From 9dbbb7b9136b7114db4c5e5c9ebcb0151fc89e75 Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 9 Sep 2020 16:47:51 +0100 Subject: [PATCH] BioReactor, BlockBreaker porting --- .../common/blocks/BlockBioReactor.java | 14 +-- .../common/blocks/BlockBreaker.java | 99 ++++++++----------- .../common/blocks/BlockCanolaPress.java | 5 +- .../common/blocks/package-info.java | 7 ++ 4 files changed, 49 insertions(+), 76 deletions(-) create mode 100644 src/main/java/de/ellpeck/actuallyadditions/common/blocks/package-info.java diff --git a/src/main/java/de/ellpeck/actuallyadditions/common/blocks/BlockBioReactor.java b/src/main/java/de/ellpeck/actuallyadditions/common/blocks/BlockBioReactor.java index 40e12d3cc..72bef26dd 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/common/blocks/BlockBioReactor.java +++ b/src/main/java/de/ellpeck/actuallyadditions/common/blocks/BlockBioReactor.java @@ -3,10 +3,7 @@ package de.ellpeck.actuallyadditions.common.blocks; import de.ellpeck.actuallyadditions.common.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.common.tile.TileEntityBioReactor; import net.minecraft.block.BlockState; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Rarity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ActionResultType; import net.minecraft.util.Hand; @@ -14,15 +11,11 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; -import net.minecraftforge.common.ToolType; public class BlockBioReactor extends BlockContainerBase { public BlockBioReactor() { - super(Properties.create(Material.ROCK) - .hardnessAndResistance(2f, 10.0f) - .harvestTool(ToolType.PICKAXE) - .sound(SoundType.STONE)); + super(STONE_PROPS.hardnessAndResistance(2f, 10.0f)); } @Override @@ -39,9 +32,4 @@ public class BlockBioReactor extends BlockContainerBase { } return ActionResultType.SUCCESS; } - - @Override - public Rarity getRarity() { - return Rarity.EPIC; - } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/common/blocks/BlockBreaker.java b/src/main/java/de/ellpeck/actuallyadditions/common/blocks/BlockBreaker.java index c3416946d..21bf36e20 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/common/blocks/BlockBreaker.java +++ b/src/main/java/de/ellpeck/actuallyadditions/common/blocks/BlockBreaker.java @@ -1,95 +1,76 @@ package de.ellpeck.actuallyadditions.common.blocks; -import de.ellpeck.actuallyadditions.common.ActuallyAdditions; import de.ellpeck.actuallyadditions.common.blocks.base.BlockContainerBase; -import de.ellpeck.actuallyadditions.common.inventory.GuiHandler; import de.ellpeck.actuallyadditions.common.tile.TileEntityBreaker; import de.ellpeck.actuallyadditions.common.tile.TileEntityPlacer; import net.minecraft.block.Block; -import net.minecraft.block.BlockDirectional; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumRarity; -import net.minecraft.item.ItemStack; +import net.minecraft.block.BlockState; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.state.DirectionProperty; +import net.minecraft.state.StateContainer; +import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.Mirror; -import net.minecraft.util.Rotation; +import net.minecraft.util.*; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockRayTraceResult; +import net.minecraft.world.IBlockReader; import net.minecraft.world.World; -import net.minecraftforge.common.ToolType; + +import javax.annotation.Nullable; public class BlockBreaker extends BlockContainerBase { - + public static final DirectionProperty FACING = BlockStateProperties.FACING; private final boolean isPlacer; public BlockBreaker(boolean isPlacer) { - super(Block.Properties.create(Material.ROCK) - .hardnessAndResistance(1.5f, 10.0f) - .harvestTool(ToolType.PICKAXE) - .sound(SoundType.STONE)); - + super(STONE_PROPS); this.isPlacer = isPlacer; + + setDefaultState(getStateContainer().getBaseState().with(FACING, Direction.SOUTH)); } + @Nullable @Override - public TileEntity createNewTileEntity(World world, int par2) { + public TileEntity createTileEntity(BlockState state, IBlockReader world) { return this.isPlacer ? new TileEntityPlacer() : new TileEntityBreaker(); } @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing par6, float par7, float par8, float par9) { - if (this.tryToggleRedstone(world, pos, player)) { return true; } + public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + if (this.tryToggleRedstone(world, pos, player)) { return ActionResultType.SUCCESS; } if (!world.isRemote) { TileEntityBreaker breaker = (TileEntityBreaker) world.getTileEntity(pos); if (breaker != null) { - player.openGui(ActuallyAdditions.INSTANCE, GuiHandler.GuiTypes.BREAKER.ordinal(), world, pos.getX(), pos.getY(), pos.getZ()); + // todo: come back to this once we have guis +// NetworkHooks.openGui(player, new SimpleNamedContainerProvider(()); +// player.openGui(ActuallyAdditions.INSTANCE, GuiHandler.GuiTypes.BREAKER.ordinal(), world, pos.getX(), pos.getY(), pos.getZ()); } - return true; + return ActionResultType.SUCCESS; } - return true; + return ActionResultType.SUCCESS; } @Override - public EnumRarity getRarity(ItemStack stack) { - return EnumRarity.UNCOMMON; + protected void fillStateContainer(StateContainer.Builder builder) { + super.fillStateContainer(builder); + builder.add(FACING); } + @Nullable @Override - public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack) { - int rotation = EnumFacing.getDirectionFromEntityLiving(pos, player).ordinal(); - world.setBlockState(pos, this.getStateFromMeta(rotation), 2); - - super.onBlockPlacedBy(world, pos, state, player, stack); + public BlockState getStateForPlacement(BlockItemUseContext context) { + // @todo: might be wrong + return getDefaultState().with(FACING, context.getFace().getOpposite()); } - @Override - public IBlockState getStateFromMeta(int meta) { - return this.getDefaultState().withProperty(BlockDirectional.FACING, EnumFacing.byIndex(meta)); - } - - @Override - public int getMetaFromState(IBlockState state) { - return state.getValue(BlockDirectional.FACING).getIndex(); - } - - @Override - protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, BlockDirectional.FACING); - } - - @Override - public IBlockState withRotation(IBlockState state, Rotation rot) { - return state.withProperty(BlockDirectional.FACING, rot.rotate(state.getValue(BlockDirectional.FACING))); - } - - @Override - public IBlockState withMirror(IBlockState state, Mirror mirror) { - return this.withRotation(state, mirror.toRotation(state.getValue(BlockDirectional.FACING))); - } +// @Override +// public IBlockState withRotation(IBlockState state, Rotation rot) { +// return state.withProperty(BlockDirectional.FACING, rot.rotate(state.getValue(BlockDirectional.FACING))); +// } +// +// @Override +// public IBlockState withMirror(IBlockState state, Mirror mirror) { +// return this.withRotation(state, mirror.toRotation(state.getValue(BlockDirectional.FACING))); +// } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/common/blocks/BlockCanolaPress.java b/src/main/java/de/ellpeck/actuallyadditions/common/blocks/BlockCanolaPress.java index 103dcbbe2..1214e84bc 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/common/blocks/BlockCanolaPress.java +++ b/src/main/java/de/ellpeck/actuallyadditions/common/blocks/BlockCanolaPress.java @@ -19,10 +19,7 @@ import net.minecraftforge.common.ToolType; public class BlockCanolaPress extends BlockContainerBase { public BlockCanolaPress() { - super(Block.Properties.create(Material.ROCK) - .hardnessAndResistance(1.5f, 10.0f) - .harvestTool(ToolType.PICKAXE) - .sound(SoundType.STONE)); + super(STONE_PROPS); } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/common/blocks/package-info.java b/src/main/java/de/ellpeck/actuallyadditions/common/blocks/package-info.java new file mode 100644 index 000000000..f3f1184ed --- /dev/null +++ b/src/main/java/de/ellpeck/actuallyadditions/common/blocks/package-info.java @@ -0,0 +1,7 @@ +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +package de.ellpeck.actuallyadditions.common.blocks; + +import mcp.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file