diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/BlockBreakerBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/BlockBreakerBlockEntity.java index 2d8f940..237e152 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/BlockBreakerBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/BlockBreakerBlockEntity.java @@ -1,6 +1,5 @@ package com.thebrokenrail.energonrelics.block.entity; -import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.BlockBreakerBlock; import com.thebrokenrail.energonrelics.config.HardcodedConfig; import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; @@ -10,7 +9,6 @@ import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; -import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.world.explosion.Explosion; @@ -42,7 +40,7 @@ public class BlockBreakerBlockEntity extends EnergyReceiverBlockEntity { @Override protected void tickEnergy() { - addAction(Action.createBlockStatePropertyAction(HardcodedConfig.BLOCK_BREAKER_ENERGY_REQUIRED_IDLE, BlockBreakerBlock.POWERED, true, false, new Identifier(EnergonRelics.NAMESPACE, "block_breaker_idle"))); + addAction(Action.createBlockStatePropertyAction(HardcodedConfig.BLOCK_BREAKER_ENERGY_REQUIRED_IDLE, BlockBreakerBlock.POWERED, true, false)); if (getCachedState().get(BlockBreakerBlock.POWERED)) { BlockPos targetPos = getPos().offset(getCachedState().get(BlockBreakerBlock.FACING)); @@ -55,7 +53,7 @@ public class BlockBreakerBlockEntity extends EnergyReceiverBlockEntity { Block.dropStacks(target, world, targetPos, target.getBlock().hasBlockEntity() ? world.getBlockEntity(targetPos) : null, null, new ItemStack(HardcodedConfig.BLOCK_BREAKER_ITEM)); world.breakBlock(targetPos, false); progress = 0; - }, (world, pos, state) -> progress = 0, new Identifier(EnergonRelics.NAMESPACE, "block_breaker_break"))); + }, (world, pos, state) -> progress = 0)); } progress++; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/DefensiveLaserBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/DefensiveLaserBlockEntity.java index 57e3f9a..0972bf6 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/DefensiveLaserBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/DefensiveLaserBlockEntity.java @@ -16,7 +16,6 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.nbt.CompoundTag; import net.minecraft.particle.ParticleTypes; import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.Identifier; import net.minecraft.util.hit.HitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Box; @@ -225,7 +224,7 @@ public class DefensiveLaserBlockEntity extends EnergyReceiverBlockEntity { @Override protected void tickEnergy() { assert getWorld() != null; - addAction(Action.createBlockStatePropertyAction(HardcodedConfig.DEFENSIVE_LASER_IDLE_ENERGY_REQUIRED, DefensiveLaserBlock.POWERED, true, false, new Identifier(EnergonRelics.NAMESPACE, "defensive_laser_idle"))); + addAction(Action.createBlockStatePropertyAction(HardcodedConfig.DEFENSIVE_LASER_IDLE_ENERGY_REQUIRED, DefensiveLaserBlock.POWERED, true, false)); if (getCachedState().get(DefensiveLaserBlock.POWERED)) { if (countdown > 0) { countdown--; @@ -234,7 +233,7 @@ public class DefensiveLaserBlockEntity extends EnergyReceiverBlockEntity { addAction(new Action(HardcodedConfig.DEFENSIVE_LASER_FIRE_ENERGY_REQUIRED, (world, pos, state) -> { firing = false; fire(world, pos); - }, (world, pos, state) -> firing = false, new Identifier(EnergonRelics.NAMESPACE, "defensive_laser_fire"))); + }, (world, pos, state) -> firing = false)); target = null; firing = true; } else if (countdown < 1 && !firing) { diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/EnergonLightBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/EnergonLightBlockEntity.java index c9c70ac..0ee5ebe 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/EnergonLightBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/EnergonLightBlockEntity.java @@ -1,12 +1,10 @@ package com.thebrokenrail.energonrelics.block.entity; -import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.config.HardcodedConfig; import com.thebrokenrail.energonrelics.block.EnergonLightBlock; import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; import com.thebrokenrail.energonrelics.energy.core.util.Action; import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.util.Identifier; public class EnergonLightBlockEntity extends EnergyReceiverBlockEntity { public EnergonLightBlockEntity(BlockEntityType type) { @@ -15,6 +13,6 @@ public class EnergonLightBlockEntity extends EnergyReceiverBlockEntity { @Override protected void tickEnergy() { - addAction(Action.createBlockStatePropertyAction(HardcodedConfig.ENERGON_LIGHT_ENERGY_REQUIRED, EnergonLightBlock.POWERED, true, false, new Identifier(EnergonRelics.NAMESPACE, "energon_light"))); + addAction(Action.createBlockStatePropertyAction(HardcodedConfig.ENERGON_LIGHT_ENERGY_REQUIRED, EnergonLightBlock.POWERED, true, false)); } } diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/battery/PassiveBatteryControllerBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/battery/PassiveBatteryControllerBlockEntity.java index 7d92af5..70afda0 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/battery/PassiveBatteryControllerBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/battery/PassiveBatteryControllerBlockEntity.java @@ -9,7 +9,6 @@ import com.thebrokenrail.energonrelics.energy.helper.EnergyGenerator; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.World; @@ -19,12 +18,11 @@ public class PassiveBatteryControllerBlockEntity extends EnergyReceiverBlockEnti super(type); } - private static class UnlimitedAction extends Action.UniqueAction implements Action.PropagatedAction { + private static class UnlimitedAction implements Action.PropagatedAction { private final World world; private final BlockPos pos; private UnlimitedAction(World world, BlockPos pos) { - super(new Identifier(EnergonRelics.NAMESPACE, "active_battery_controller"), pos); this.world = world; this.pos = pos; } @@ -58,7 +56,7 @@ public class PassiveBatteryControllerBlockEntity extends EnergyReceiverBlockEnti PassiveBatteryControllerBlockEntity battery = (PassiveBatteryControllerBlockEntity) entity; battery.setEnergy(battery.getEnergy() + charge); } - }, (world, pos, state) -> {}, new Identifier(EnergonRelics.NAMESPACE, "passive_battery_controller"))); + }, (world, pos, state) -> {})); } else { propagateAction(new UnlimitedAction(getWorld(), getPos())); } diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/forcefield/ForcefieldProjectorBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/forcefield/ForcefieldProjectorBlockEntity.java index 9792309..a4461f8 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/forcefield/ForcefieldProjectorBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/forcefield/ForcefieldProjectorBlockEntity.java @@ -8,7 +8,6 @@ import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; import com.thebrokenrail.energonrelics.energy.core.util.Action; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; @@ -21,7 +20,7 @@ public class ForcefieldProjectorBlockEntity extends EnergyReceiverBlockEntity { protected void tickEnergy() { assert getWorld() != null; - addAction(Action.createBlockStatePropertyAction(HardcodedConfig.FORCEFIELD_PROJECTOR_ENERGY_REQUIRED, ForcefieldProjectorBlock.POWERED, true, false, new Identifier(EnergonRelics.NAMESPACE, "forcefield_projector"))); + addAction(Action.createBlockStatePropertyAction(HardcodedConfig.FORCEFIELD_PROJECTOR_ENERGY_REQUIRED, ForcefieldProjectorBlock.POWERED, true, false)); if (getCachedState().get(ForcefieldProjectorBlock.POWERED)) { Direction facing = getCachedState().get(ForcefieldProjectorBlock.FACING); BlockState state = EnergonRelics.FORCEFIELD_BLOCK.getDefaultState().with(ForcefieldBlock.FACING, facing); diff --git a/src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyProviderBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyProviderBlockEntity.java index 31b9afd..bdabf32 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyProviderBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyProviderBlockEntity.java @@ -20,7 +20,6 @@ import net.minecraft.util.math.Vec3d; import net.minecraft.util.registry.RegistryKey; import net.minecraft.world.World; -import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Objects; @@ -32,10 +31,7 @@ public class EnergyProviderBlockEntity extends BlockEntity implements BlockEntit public final void addPropagatedAction(Action.PropagatedAction action) { if (isEnergyProvider()) { - if (!completedActions.contains(action)) { - handlePropagatedAction(action); - completedActions.add(action); - } + handlePropagatedAction(action); } else { throw new UnsupportedOperationException(); } @@ -78,8 +74,6 @@ public class EnergyProviderBlockEntity extends BlockEntity implements BlockEntit return false; } - private final List completedActions = new ArrayList<>(); - protected void handlePropagatedAction(Action.PropagatedAction action) { if (!isEnergyProvider()) { throw new UnsupportedOperationException(); @@ -90,7 +84,6 @@ public class EnergyProviderBlockEntity extends BlockEntity implements BlockEntit } public List startTick() { - completedActions.clear(); if (isEnergyProvider()) { NetworkComponent component = NetworkComponent.getInstance((ServerWorld) Objects.requireNonNull(getWorld())); List sources = component.getSourcePos(EnergonRelics.NETWORK_CHIP_ITEM.getID(stack)); diff --git a/src/main/java/com/thebrokenrail/energonrelics/energy/core/util/Action.java b/src/main/java/com/thebrokenrail/energonrelics/energy/core/util/Action.java index 6ed165e..b67e037 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/energy/core/util/Action.java +++ b/src/main/java/com/thebrokenrail/energonrelics/energy/core/util/Action.java @@ -3,12 +3,9 @@ package com.thebrokenrail.energonrelics.energy.core.util; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.state.property.Property; -import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import java.util.Objects; - public class Action { public interface ActionFunction { void run(World world, BlockPos pos, BlockState state); @@ -17,16 +14,14 @@ public class Action { private final long cost; private final ActionFunction success; private final ActionFunction fail; - private final Identifier id; - public Action(long cost, ActionFunction success, ActionFunction fail, Identifier id) { + public Action(long cost, ActionFunction success, ActionFunction fail) { this.cost = cost; this.success = success; this.fail = fail; - this.id = id; } - public static > Action createBlockStatePropertyAction(long cost, Property property, T successValue, T failureValue, Identifier id) { + public static > Action createBlockStatePropertyAction(long cost, Property property, T successValue, T failureValue) { return new Action(cost, (world, pos, state) -> { if (!state.get(property).equals(successValue)) { world.setBlockState(pos, state.with(property, successValue)); @@ -35,7 +30,7 @@ public class Action { if (!state.get(property).equals(failureValue)) { world.setBlockState(pos, state.with(property, failureValue)); } - }, id); + }); } public interface PropagatedAction { @@ -44,28 +39,7 @@ public class Action { void pay(long amount); } - public static class UniqueAction { - private final Identifier id; - private final BlockPos pos; - - public UniqueAction(Identifier id, BlockPos pos) { - this.id = id; - this.pos = pos; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } else if (obj instanceof UniqueAction) { - return Objects.equals(id, ((UniqueAction) obj).id) && Objects.equals(pos, ((UniqueAction) obj).pos); - } else { - return false; - } - } - } - - public static class PropagatedActionImpl extends UniqueAction implements PropagatedAction { + public static class PropagatedActionImpl implements PropagatedAction { private final Action action; private final World world; private final BlockPos pos; @@ -75,7 +49,6 @@ public class Action { private long amountPaid = 0; public PropagatedActionImpl(Action action, World world, BlockPos pos, Block block) { - super(action.id, pos); this.action = action; this.world = world; this.pos = pos;