65 lines
3.5 KiB
Diff
65 lines
3.5 KiB
Diff
--- ../src-base/minecraft/net/minecraft/item/ItemBlock.java
|
|
+++ ../src-work/minecraft/net/minecraft/item/ItemBlock.java
|
|
@@ -49,24 +49,12 @@
|
|
if (!itemstack.func_190926_b() && p_180614_1_.func_175151_a(p_180614_3_, p_180614_5_, itemstack) && p_180614_2_.func_190527_a(this.field_150939_a, p_180614_3_, false, p_180614_5_, (Entity)null))
|
|
{
|
|
int i = this.func_77647_b(itemstack.func_77960_j());
|
|
- IBlockState iblockstate1 = this.field_150939_a.func_180642_a(p_180614_2_, p_180614_3_, p_180614_5_, p_180614_6_, p_180614_7_, p_180614_8_, i, p_180614_1_);
|
|
+ IBlockState iblockstate1 = this.field_150939_a.getStateForPlacement(p_180614_2_, p_180614_3_, p_180614_5_, p_180614_6_, p_180614_7_, p_180614_8_, i, p_180614_1_, p_180614_4_);
|
|
|
|
- if (p_180614_2_.func_180501_a(p_180614_3_, iblockstate1, 11))
|
|
+ if (placeBlockAt(itemstack, p_180614_1_, p_180614_2_, p_180614_3_, p_180614_5_, p_180614_6_, p_180614_7_, p_180614_8_, iblockstate1))
|
|
{
|
|
iblockstate1 = p_180614_2_.func_180495_p(p_180614_3_);
|
|
-
|
|
- if (iblockstate1.func_177230_c() == this.field_150939_a)
|
|
- {
|
|
- func_179224_a(p_180614_2_, p_180614_1_, p_180614_3_, itemstack);
|
|
- this.field_150939_a.func_180633_a(p_180614_2_, p_180614_3_, iblockstate1, p_180614_1_, itemstack);
|
|
-
|
|
- if (p_180614_1_ instanceof EntityPlayerMP)
|
|
- {
|
|
- CriteriaTriggers.field_193137_x.func_193173_a((EntityPlayerMP)p_180614_1_, p_180614_3_, itemstack);
|
|
- }
|
|
- }
|
|
-
|
|
- SoundType soundtype = this.field_150939_a.func_185467_w();
|
|
+ SoundType soundtype = iblockstate1.func_177230_c().getSoundType(iblockstate1, p_180614_2_, p_180614_3_, p_180614_1_);
|
|
p_180614_2_.func_184133_a(p_180614_1_, p_180614_3_, soundtype.func_185841_e(), SoundCategory.BLOCKS, (soundtype.func_185843_a() + 1.0F) / 2.0F, soundtype.func_185847_b() * 0.8F);
|
|
itemstack.func_190918_g(1);
|
|
}
|
|
@@ -127,7 +115,7 @@
|
|
{
|
|
Block block = p_179222_1_.func_180495_p(p_179222_2_).func_177230_c();
|
|
|
|
- if (block == Blocks.field_150431_aC)
|
|
+ if (block == Blocks.field_150431_aC && block.func_176200_f(p_179222_1_, p_179222_2_))
|
|
{
|
|
p_179222_3_ = EnumFacing.UP;
|
|
}
|
|
@@ -171,6 +159,36 @@
|
|
+ /**
|
|
+ * Called to actually place the block, after the location is determined
|
|
+ * and all permission checks have been made.
|
|
+ *
|
|
+ * @param stack The item stack that was used to place the block. This can be changed inside the method.
|
|
+ * @param player The player who is placing the block. Can be null if the block is not being placed by a player.
|
|
+ * @param side The side the player (or machine) right-clicked on.
|
|
+ */
|
|
+ public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, IBlockState newState)
|
|
+ {
|
|
+ if (!world.func_180501_a(pos, newState, 11)) return false;
|
|
+
|
|
+ IBlockState state = world.func_180495_p(pos);
|
|
+ if (state.func_177230_c() == this.field_150939_a)
|
|
+ {
|
|
+ func_179224_a(world, player, pos, stack);
|
|
+ this.field_150939_a.func_180633_a(world, pos, state, player, stack);
|
|
+
|
|
+ if (player instanceof EntityPlayerMP)
|
|
+ CriteriaTriggers.field_193137_x.func_193173_a((EntityPlayerMP)player, pos, stack);
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
}
|