From 6dc1124bc67266ec030c4175be12a16e9e6e7091 Mon Sep 17 00:00:00 2001 From: drcrazy Date: Mon, 23 Dec 2019 13:06:18 +0300 Subject: [PATCH] Energy storage should drop inventory. Closes #1919 --- .../storage/EnergyStorageBlockEntity.java | 9 ++-- .../storage/lesu/LapotronicSUBlockEntity.java | 6 +-- ...justableSU.java => AdjustableSUBlock.java} | 4 +- ...gyStorage.java => EnergyStorageBlock.java} | 52 ++++++++----------- ...VoltageSU.java => HighVoltageSUBlock.java} | 4 +- ...alSU.java => InterdimensionalSUBlock.java} | 4 +- ...ckLSUStorage.java => LSUStorageBlock.java} | 4 +- ...potronicSU.java => LapotronicSUBlock.java} | 4 +- ...wVoltageSU.java => LowVoltageSUBlock.java} | 4 +- ...ltageSU.java => MediumVoltageSUBlock.java} | 4 +- src/main/java/techreborn/init/TRContent.java | 14 ++--- 11 files changed, 50 insertions(+), 59 deletions(-) rename src/main/java/techreborn/blocks/storage/{BlockAdjustableSU.java => AdjustableSUBlock.java} (94%) rename src/main/java/techreborn/blocks/storage/{BlockEnergyStorage.java => EnergyStorageBlock.java} (85%) rename src/main/java/techreborn/blocks/storage/{BlockHighVoltageSU.java => HighVoltageSUBlock.java} (94%) rename src/main/java/techreborn/blocks/storage/{BlockInterdimensionalSU.java => InterdimensionalSUBlock.java} (96%) rename src/main/java/techreborn/blocks/storage/{BlockLSUStorage.java => LSUStorageBlock.java} (97%) rename src/main/java/techreborn/blocks/storage/{BlockLapotronicSU.java => LapotronicSUBlock.java} (94%) rename src/main/java/techreborn/blocks/storage/{BlockLowVoltageSU.java => LowVoltageSUBlock.java} (94%) rename src/main/java/techreborn/blocks/storage/{BlockMediumVoltageSU.java => MediumVoltageSUBlock.java} (94%) diff --git a/src/main/java/techreborn/blockentity/storage/EnergyStorageBlockEntity.java b/src/main/java/techreborn/blockentity/storage/EnergyStorageBlockEntity.java index 2ffe98efb..a8d6900e5 100644 --- a/src/main/java/techreborn/blockentity/storage/EnergyStorageBlockEntity.java +++ b/src/main/java/techreborn/blockentity/storage/EnergyStorageBlockEntity.java @@ -35,7 +35,7 @@ import reborncore.common.powerSystem.PowerAcceptorBlockEntity; import reborncore.common.util.RebornInventory; import team.reborn.energy.Energy; import team.reborn.energy.EnergyTier; -import techreborn.blocks.storage.BlockEnergyStorage; +import techreborn.blocks.storage.EnergyStorageBlock; /** * Created by Rushmead @@ -114,7 +114,8 @@ public class EnergyStorageBlockEntity extends PowerAcceptorBlockEntity // TileMachineBase @Override public void setFacing(Direction enumFacing) { - world.setBlockState(pos, world.getBlockState(pos).with(BlockEnergyStorage.FACING, enumFacing)); + if (world == null) { return; } + world.setBlockState(pos, world.getBlockState(pos).with(EnergyStorageBlock.FACING, enumFacing)); } @Override @@ -123,8 +124,8 @@ public class EnergyStorageBlockEntity extends PowerAcceptorBlockEntity return null; } Block block = world.getBlockState(pos).getBlock(); - if (block instanceof BlockEnergyStorage) { - return ((BlockEnergyStorage) block).getFacing(world.getBlockState(pos)); + if (block instanceof EnergyStorageBlock) { + return ((EnergyStorageBlock) block).getFacing(world.getBlockState(pos)); } return null; } diff --git a/src/main/java/techreborn/blockentity/storage/lesu/LapotronicSUBlockEntity.java b/src/main/java/techreborn/blockentity/storage/lesu/LapotronicSUBlockEntity.java index 557c96e5a..fc9dada48 100644 --- a/src/main/java/techreborn/blockentity/storage/lesu/LapotronicSUBlockEntity.java +++ b/src/main/java/techreborn/blockentity/storage/lesu/LapotronicSUBlockEntity.java @@ -34,7 +34,7 @@ import reborncore.client.containerBuilder.builder.BuiltContainer; import reborncore.client.containerBuilder.builder.ContainerBuilder; import team.reborn.energy.EnergyTier; import techreborn.blockentity.storage.EnergyStorageBlockEntity; -import techreborn.blocks.storage.BlockLapotronicSU; +import techreborn.blocks.storage.LapotronicSUBlock; import techreborn.config.TechRebornConfig; import techreborn.init.TRBlockEntities; import techreborn.init.TRContent; @@ -87,8 +87,8 @@ public class LapotronicSUBlockEntity extends EnergyStorageBlockEntity implements @Override public Direction getFacingEnum() { Block block = world.getBlockState(pos).getBlock(); - if (block instanceof BlockLapotronicSU) { - return ((BlockLapotronicSU) block).getFacing(world.getBlockState(pos)); + if (block instanceof LapotronicSUBlock) { + return ((LapotronicSUBlock) block).getFacing(world.getBlockState(pos)); } return null; } diff --git a/src/main/java/techreborn/blocks/storage/BlockAdjustableSU.java b/src/main/java/techreborn/blocks/storage/AdjustableSUBlock.java similarity index 94% rename from src/main/java/techreborn/blocks/storage/BlockAdjustableSU.java rename to src/main/java/techreborn/blocks/storage/AdjustableSUBlock.java index eed3ebcf8..3cbd270da 100644 --- a/src/main/java/techreborn/blocks/storage/BlockAdjustableSU.java +++ b/src/main/java/techreborn/blocks/storage/AdjustableSUBlock.java @@ -29,9 +29,9 @@ import net.minecraft.world.BlockView; import techreborn.blockentity.storage.AdjustableSUBlockEntity; import techreborn.client.EGui; -public class BlockAdjustableSU extends BlockEnergyStorage { +public class AdjustableSUBlock extends EnergyStorageBlock { - public BlockAdjustableSU() { + public AdjustableSUBlock() { super("AESU", EGui.AESU); } diff --git a/src/main/java/techreborn/blocks/storage/BlockEnergyStorage.java b/src/main/java/techreborn/blocks/storage/EnergyStorageBlock.java similarity index 85% rename from src/main/java/techreborn/blocks/storage/BlockEnergyStorage.java rename to src/main/java/techreborn/blocks/storage/EnergyStorageBlock.java index 8520b06d2..9284e5422 100644 --- a/src/main/java/techreborn/blocks/storage/BlockEnergyStorage.java +++ b/src/main/java/techreborn/blocks/storage/EnergyStorageBlock.java @@ -46,19 +46,19 @@ import reborncore.api.blockentity.IMachineGuiHandler; import reborncore.common.BaseBlockEntityProvider; import reborncore.common.blocks.BlockWrenchEventHandler; import reborncore.common.powerSystem.PowerAcceptorBlockEntity; +import reborncore.common.util.ItemHandlerUtils; import reborncore.common.util.WrenchUtils; -import java.util.Locale; /** * Created by Rushmead */ -public abstract class BlockEnergyStorage extends BaseBlockEntityProvider { +public abstract class EnergyStorageBlock extends BaseBlockEntityProvider { public static DirectionProperty FACING = Properties.FACING; public String name; public IMachineGuiHandler gui; - public BlockEnergyStorage(String name, IMachineGuiHandler gui) { + public EnergyStorageBlock(String name, IMachineGuiHandler gui) { super(FabricBlockSettings.of(Material.METAL).strength(2f, 2f).build()); this.setDefaultState(this.getStateManager().getDefaultState().with(FACING, Direction.NORTH)); this.name = name; @@ -74,26 +74,17 @@ public abstract class BlockEnergyStorage extends BaseBlockEntityProvider { return state.get(FACING); } - public String getSimpleName(String fullName) { - if (fullName.equalsIgnoreCase("Batbox")) { - return "lv_storage"; + // BaseBlockEntityProvider + @Override + public void onPlaced(World worldIn, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { + super.onPlaced(worldIn, pos, state, placer, stack); + Direction facing = placer.getHorizontalFacing().getOpposite(); + if (placer.pitch < -50) { + facing = Direction.DOWN; + } else if (placer.pitch > 50) { + facing = Direction.UP; } - if (fullName.equalsIgnoreCase("MEDIUM_VOLTAGE_SU")) { - return "mv_storage"; - } - if (fullName.equalsIgnoreCase("HIGH_VOLTAGE_SU")) { - return "hv_storage"; - } - if (fullName.equalsIgnoreCase("AESU")) { - return "ev_storage_adjust"; - } - if (fullName.equalsIgnoreCase("IDSU")) { - return "ev_storage_transmitter"; - } - if (fullName.equalsIgnoreCase("LESU")) { - return "ev_multi"; - } - return fullName.toLowerCase(Locale.ROOT); + setFacing(facing, worldIn, pos); } // Block @@ -102,6 +93,7 @@ public abstract class BlockEnergyStorage extends BaseBlockEntityProvider { builder.add(FACING); } + @SuppressWarnings("deprecation") @Override public ActionResult onUse(BlockState state, World worldIn, BlockPos pos, PlayerEntity playerIn, Hand hand, BlockHitResult hitResult) { ItemStack stack = playerIn.getStackInHand(Hand.MAIN_HAND); @@ -126,24 +118,22 @@ public abstract class BlockEnergyStorage extends BaseBlockEntityProvider { return super.onUse(state, worldIn, pos, playerIn, hand, hitResult); } + @SuppressWarnings("deprecation") @Override - public void onPlaced(World worldIn, BlockPos pos, BlockState state, LivingEntity placer, - ItemStack stack) { - super.onPlaced(worldIn, pos, state, placer, stack); - Direction facing = placer.getHorizontalFacing().getOpposite(); - if (placer.pitch < -50) { - facing = Direction.DOWN; - } else if (placer.pitch > 50) { - facing = Direction.UP; + public void onBlockRemoved(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { + if (state.getBlock() != newState.getBlock()) { + ItemHandlerUtils.dropContainedItems(worldIn, pos); + super.onBlockRemoved(state, worldIn, pos, newState, isMoving); } - setFacing(facing, worldIn, pos); } + @SuppressWarnings("deprecation") @Override public boolean hasComparatorOutput(BlockState state) { return true; } + @SuppressWarnings("deprecation") @Override public int getComparatorOutput(BlockState state, World world, BlockPos pos) { return PowerAcceptorBlockEntity.calculateComparatorOutputFromEnergy(world.getBlockEntity(pos)); diff --git a/src/main/java/techreborn/blocks/storage/BlockHighVoltageSU.java b/src/main/java/techreborn/blocks/storage/HighVoltageSUBlock.java similarity index 94% rename from src/main/java/techreborn/blocks/storage/BlockHighVoltageSU.java rename to src/main/java/techreborn/blocks/storage/HighVoltageSUBlock.java index 4b09c98d4..3d88686c4 100644 --- a/src/main/java/techreborn/blocks/storage/BlockHighVoltageSU.java +++ b/src/main/java/techreborn/blocks/storage/HighVoltageSUBlock.java @@ -32,9 +32,9 @@ import techreborn.client.EGui; /** * Created by modmuss50 on 14/03/2016. */ -public class BlockHighVoltageSU extends BlockEnergyStorage { +public class HighVoltageSUBlock extends EnergyStorageBlock { - public BlockHighVoltageSU() { + public HighVoltageSUBlock() { super("high_voltage_su", EGui.HIGH_VOLTAGE_SU); } diff --git a/src/main/java/techreborn/blocks/storage/BlockInterdimensionalSU.java b/src/main/java/techreborn/blocks/storage/InterdimensionalSUBlock.java similarity index 96% rename from src/main/java/techreborn/blocks/storage/BlockInterdimensionalSU.java rename to src/main/java/techreborn/blocks/storage/InterdimensionalSUBlock.java index 0ebf77bbd..ab2a02cf6 100644 --- a/src/main/java/techreborn/blocks/storage/BlockInterdimensionalSU.java +++ b/src/main/java/techreborn/blocks/storage/InterdimensionalSUBlock.java @@ -35,9 +35,9 @@ import net.minecraft.world.World; import techreborn.blockentity.storage.idsu.InterdimensionalSUBlockEntity; import techreborn.client.EGui; -public class BlockInterdimensionalSU extends BlockEnergyStorage { +public class InterdimensionalSUBlock extends EnergyStorageBlock { - public BlockInterdimensionalSU() { + public InterdimensionalSUBlock() { super("IDSU", EGui.IDSU); } diff --git a/src/main/java/techreborn/blocks/storage/BlockLSUStorage.java b/src/main/java/techreborn/blocks/storage/LSUStorageBlock.java similarity index 97% rename from src/main/java/techreborn/blocks/storage/BlockLSUStorage.java rename to src/main/java/techreborn/blocks/storage/LSUStorageBlock.java index 949dfc21d..4c67d83e3 100644 --- a/src/main/java/techreborn/blocks/storage/BlockLSUStorage.java +++ b/src/main/java/techreborn/blocks/storage/LSUStorageBlock.java @@ -46,9 +46,9 @@ import techreborn.blockentity.storage.lesu.LSUStorageBlockEntity; /** * Energy storage block for LESU */ -public class BlockLSUStorage extends BaseBlockEntityProvider { +public class LSUStorageBlock extends BaseBlockEntityProvider { - public BlockLSUStorage() { + public LSUStorageBlock() { super(FabricBlockSettings.of(Material.METAL).strength(2f, 2f).build()); BlockWrenchEventHandler.wrenableBlocks.add(this); } diff --git a/src/main/java/techreborn/blocks/storage/BlockLapotronicSU.java b/src/main/java/techreborn/blocks/storage/LapotronicSUBlock.java similarity index 94% rename from src/main/java/techreborn/blocks/storage/BlockLapotronicSU.java rename to src/main/java/techreborn/blocks/storage/LapotronicSUBlock.java index 8866cc7ac..341158a2a 100644 --- a/src/main/java/techreborn/blocks/storage/BlockLapotronicSU.java +++ b/src/main/java/techreborn/blocks/storage/LapotronicSUBlock.java @@ -29,9 +29,9 @@ import net.minecraft.world.BlockView; import techreborn.blockentity.storage.lesu.LapotronicSUBlockEntity; import techreborn.client.EGui; -public class BlockLapotronicSU extends BlockEnergyStorage { +public class LapotronicSUBlock extends EnergyStorageBlock { - public BlockLapotronicSU() { + public LapotronicSUBlock() { super("LESU", EGui.LESU); } diff --git a/src/main/java/techreborn/blocks/storage/BlockLowVoltageSU.java b/src/main/java/techreborn/blocks/storage/LowVoltageSUBlock.java similarity index 94% rename from src/main/java/techreborn/blocks/storage/BlockLowVoltageSU.java rename to src/main/java/techreborn/blocks/storage/LowVoltageSUBlock.java index f9505c77d..050e97e5c 100644 --- a/src/main/java/techreborn/blocks/storage/BlockLowVoltageSU.java +++ b/src/main/java/techreborn/blocks/storage/LowVoltageSUBlock.java @@ -32,9 +32,9 @@ import techreborn.blockentity.storage.LowVoltageSUBlockEntity; /** * Created by modmuss50 on 14/03/2016. */ -public class BlockLowVoltageSU extends BlockEnergyStorage { +public class LowVoltageSUBlock extends EnergyStorageBlock { - public BlockLowVoltageSU() { + public LowVoltageSUBlock() { super("low_voltage_su", EGui.LOW_VOLTAGE_SU); } diff --git a/src/main/java/techreborn/blocks/storage/BlockMediumVoltageSU.java b/src/main/java/techreborn/blocks/storage/MediumVoltageSUBlock.java similarity index 94% rename from src/main/java/techreborn/blocks/storage/BlockMediumVoltageSU.java rename to src/main/java/techreborn/blocks/storage/MediumVoltageSUBlock.java index a8c91b81d..4fce4131d 100644 --- a/src/main/java/techreborn/blocks/storage/BlockMediumVoltageSU.java +++ b/src/main/java/techreborn/blocks/storage/MediumVoltageSUBlock.java @@ -32,9 +32,9 @@ import techreborn.client.EGui; /** * Created by modmuss50 on 14/03/2016. */ -public class BlockMediumVoltageSU extends BlockEnergyStorage { +public class MediumVoltageSUBlock extends EnergyStorageBlock { - public BlockMediumVoltageSU() { + public MediumVoltageSUBlock() { super("medium_voltage_su", EGui.MEDIUM_VOLTAGE_SU); } diff --git a/src/main/java/techreborn/init/TRContent.java b/src/main/java/techreborn/init/TRContent.java index 5df72d4b2..e6ea7133b 100644 --- a/src/main/java/techreborn/init/TRContent.java +++ b/src/main/java/techreborn/init/TRContent.java @@ -438,14 +438,14 @@ public class TRContent { QUANTUM_CHEST(new GenericMachineBlock(EGui.QUANTUM_CHEST, QuantumChestBlockEntity::new)), QUANTUM_TANK(new GenericMachineBlock(EGui.QUANTUM_TANK, QuantumTankBlockEntity::new)), - ADJUSTABLE_SU(new BlockAdjustableSU()), + ADJUSTABLE_SU(new AdjustableSUBlock()), CHARGE_O_MAT(new GenericMachineBlock(EGui.CHARGEBENCH, ChargeOMatBlockEntity::new)), - INTERDIMENSIONAL_SU(new BlockInterdimensionalSU()), - LAPOTRONIC_SU(new BlockLapotronicSU()), - LSU_STORAGE(new BlockLSUStorage()), - LOW_VOLTAGE_SU(new BlockLowVoltageSU()), - MEDIUM_VOLTAGE_SU(new BlockMediumVoltageSU()), - HIGH_VOLTAGE_SU(new BlockHighVoltageSU()), + INTERDIMENSIONAL_SU(new InterdimensionalSUBlock()), + LAPOTRONIC_SU(new LapotronicSUBlock()), + LSU_STORAGE(new LSUStorageBlock()), + LOW_VOLTAGE_SU(new LowVoltageSUBlock()), + MEDIUM_VOLTAGE_SU(new MediumVoltageSUBlock()), + HIGH_VOLTAGE_SU(new HighVoltageSUBlock()), LV_TRANSFORMER(new BlockLVTransformer()), MV_TRANSFORMER(new BlockMVTransformer()), HV_TRANSFORMER(new BlockHVTransformer()),