From 5178e284d5a50ffcd313c7aabea14e27bc4d43a7 Mon Sep 17 00:00:00 2001 From: KnightMiner Date: Thu, 26 Dec 2019 22:46:01 -0600 Subject: [PATCH] Hoppers waterlog on placement --- .../tweaks/block/DryHopperBlock.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/knightminer/inspirations/tweaks/block/DryHopperBlock.java b/src/main/java/knightminer/inspirations/tweaks/block/DryHopperBlock.java index 884a92cd..8270bc05 100644 --- a/src/main/java/knightminer/inspirations/tweaks/block/DryHopperBlock.java +++ b/src/main/java/knightminer/inspirations/tweaks/block/DryHopperBlock.java @@ -1,6 +1,7 @@ package knightminer.inspirations.tweaks.block; import knightminer.inspirations.tweaks.InspirationsTweaks; +import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.HopperBlock; import net.minecraft.block.IWaterLoggable; @@ -8,8 +9,11 @@ import net.minecraft.fluid.Fluids; import net.minecraft.fluid.IFluidState; import net.minecraft.inventory.InventoryHelper; +import net.minecraft.item.BlockItemUseContext; import net.minecraft.tileentity.HopperTileEntity; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Direction; +import net.minecraft.util.Direction.Axis; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockReader; import net.minecraft.world.IWorld; @@ -23,11 +27,21 @@ public DryHopperBlock(Properties props) { super(props); } + @Override + public BlockState getStateForPlacement(BlockItemUseContext context) { + Direction side = context.getFace().getOpposite(); + Block block = context.getWorld().getFluidState(context.getPos()).getFluid() == Fluids.WATER + ? InspirationsTweaks.wetHopper : InspirationsTweaks.dryHopper; + return block.getDefaultState() + .with(FACING, side.getAxis() == Axis.Y ? Direction.DOWN : side) + .with(ENABLED, true); + } + @Override public void onReplaced(BlockState state1, @Nonnull World world, @Nonnull BlockPos pos, BlockState state2, boolean moving) { - if ( state2.getBlock() != state1.getBlock() && - state2.getBlock() != InspirationsTweaks.dryHopper && - state2.getBlock() != InspirationsTweaks.wetHopper + if (state2.getBlock() != state1.getBlock() && + state2.getBlock() != InspirationsTweaks.dryHopper && + state2.getBlock() != InspirationsTweaks.wetHopper ) { TileEntity te = world.getTileEntity(pos); if (te instanceof HopperTileEntity) {