From c657efe4373be242a303228deeff24fa4115979a Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Sat, 12 Oct 2019 17:27:09 +0200 Subject: [PATCH] Remove energy API --- .../refinedstorage/api/energy/IEnergy.java | 51 ---------- .../refinedstorage/api/network/INetwork.java | 6 -- .../refinedstorage/apiimpl/energy/Energy.java | 97 ------------------- .../refinedstorage/config/ServerConfig.java | 8 +- .../forgeenergy/BaseEnergyStorage.java | 13 +++ .../integration/forgeenergy/EnergyProxy.java | 51 ---------- .../refinedstorage/tile/ControllerTile.java | 32 +++--- 7 files changed, 29 insertions(+), 229 deletions(-) delete mode 100644 src/main/java/com/raoulvdberge/refinedstorage/api/energy/IEnergy.java delete mode 100644 src/main/java/com/raoulvdberge/refinedstorage/apiimpl/energy/Energy.java create mode 100644 src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/BaseEnergyStorage.java delete mode 100644 src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/EnergyProxy.java diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/energy/IEnergy.java b/src/main/java/com/raoulvdberge/refinedstorage/api/energy/IEnergy.java deleted file mode 100644 index 04e388ef0..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/energy/IEnergy.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.raoulvdberge.refinedstorage.api.energy; - -import com.raoulvdberge.refinedstorage.api.util.Action; - -import java.util.UUID; - -/** - * An energy container. - */ -public interface IEnergy { - /** - * @param id id of the storage - * @param amount the amount - */ - void removeCapacity(UUID id, int amount); - - /** - * @param id id of the storage - * @param amount the amount - */ - void addCapacity(UUID id, int amount); - - /** - * @return the capacity - */ - int getCapacity(); - - /** - * @return the amount stored - */ - int getStored(); - - /** - * @param amount the amount stored - */ - void setStored(int amount); - - /** - * @param amount the amount - * @param action the action - * @return the energy extracted - */ - int extract(int amount, Action action); - - /** - * @param amount the amount - * @param action the action - * @return the energy inserted - */ - int insert(int amount, Action action); -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetwork.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetwork.java index b387429c7..6f99db893 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetwork.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetwork.java @@ -1,7 +1,6 @@ package com.raoulvdberge.refinedstorage.api.network; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager; -import com.raoulvdberge.refinedstorage.api.energy.IEnergy; import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; @@ -55,11 +54,6 @@ public interface INetwork { */ ICraftingManager getCraftingManager(); - /** - * @return the {@link IEnergy} of this network - */ - IEnergy getEnergy(); - /** * @return the {@link IItemGridHandler} of this network */ diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/energy/Energy.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/energy/Energy.java deleted file mode 100644 index 4c2e62d3d..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/energy/Energy.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.raoulvdberge.refinedstorage.apiimpl.energy; - -import com.raoulvdberge.refinedstorage.api.energy.IEnergy; -import com.raoulvdberge.refinedstorage.api.util.Action; -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; - -import java.util.Map; -import java.util.UUID; - -public final class Energy implements IEnergy { - private static final UUID DEFAULT_UUID = new UUID(0L, 0L); - - protected int capacity; - protected int energy; - - private final Map storages; - - public Energy(int controllerCapacity) { - this.storages = new Object2ObjectOpenHashMap<>(); - this.storages.put(DEFAULT_UUID, controllerCapacity); - - calculateCapacity(); - } - - private void calculateCapacity() { - long newCapacity = storages.values().stream().mapToLong(Long::valueOf).sum(); - - this.capacity = (int) Math.min(newCapacity, Integer.MAX_VALUE); - } - - @Override - public void removeCapacity(UUID id, int amount) { - if (id.equals(DEFAULT_UUID)) { - return; - } - - this.storages.remove(id); - - calculateCapacity(); - } - - @Override - public int extract(int maxExtract, Action action) { - if (maxExtract <= 0) { - return 0; - } - - int extracted = Math.min(energy, maxExtract); - - if (action == Action.PERFORM) { - energy -= extracted; - } - - return extracted; - } - - @Override - public int getCapacity() { - return this.capacity; - } - - @Override - public int getStored() { - return this.energy; - } - - @Override - public void addCapacity(UUID id, int amount) { - if (id.equals(DEFAULT_UUID) || amount <= 0) { - return; - } - - this.storages.merge(id, amount, (k, v) -> amount); - - calculateCapacity(); - } - - @Override - public int insert(int maxReceive, Action action) { - if (maxReceive <= 0) { - return 0; - } - - int inserted = Math.min(capacity - energy, maxReceive); - - if (action == Action.PERFORM) { - energy += inserted; - } - - return inserted; - } - - @Override - public void setStored(int amount) { - this.energy = Math.min(amount, this.capacity); - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/config/ServerConfig.java b/src/main/java/com/raoulvdberge/refinedstorage/config/ServerConfig.java index 1bf2169af..4829321d2 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/config/ServerConfig.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/config/ServerConfig.java @@ -48,7 +48,7 @@ public class ServerConfig { public class Controller { private final ForgeConfigSpec.IntValue baseUsage; - private final ForgeConfigSpec.IntValue maxReceive; + private final ForgeConfigSpec.IntValue maxTransfer; private final ForgeConfigSpec.IntValue capacity; private final ForgeConfigSpec.BooleanValue useEnergy; @@ -56,7 +56,7 @@ public class ServerConfig { builder.push("controller"); baseUsage = builder.comment("The base energy used by the Controller").defineInRange("baseUsage", 0, 0, Integer.MAX_VALUE); - maxReceive = builder.comment("The maximum energy the Controller receives per tick").defineInRange("maxReceive", Integer.MAX_VALUE, 0, Integer.MAX_VALUE); + maxTransfer = builder.comment("The maximum energy that the Controller can receive").defineInRange("maxTransfer", Integer.MAX_VALUE, 0, Integer.MAX_VALUE); capacity = builder.comment("The energy capacity of the Controller").defineInRange("capacity", 32000, 0, Integer.MAX_VALUE); useEnergy = builder.comment("Whether the Controller uses energy").define("useEnergy", true); @@ -67,8 +67,8 @@ public class ServerConfig { return baseUsage.get(); } - public int getMaxReceive() { - return maxReceive.get(); + public int getMaxTransfer() { + return maxTransfer.get(); } public int getCapacity() { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/BaseEnergyStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/BaseEnergyStorage.java new file mode 100644 index 000000000..6789433c6 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/BaseEnergyStorage.java @@ -0,0 +1,13 @@ +package com.raoulvdberge.refinedstorage.integration.forgeenergy; + +import net.minecraftforge.energy.EnergyStorage; + +public class BaseEnergyStorage extends EnergyStorage { + public BaseEnergyStorage(int capacity, int maxTransfer) { + super(capacity, maxTransfer); + } + + public void setStored(int energy) { + this.energy = energy; + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/EnergyProxy.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/EnergyProxy.java deleted file mode 100644 index 879952608..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/EnergyProxy.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.raoulvdberge.refinedstorage.integration.forgeenergy; - -import com.raoulvdberge.refinedstorage.api.energy.IEnergy; -import com.raoulvdberge.refinedstorage.api.util.Action; -import net.minecraftforge.energy.IEnergyStorage; - -public final class EnergyProxy implements IEnergyStorage { - private final int maxReceive; - private final int maxExtract; - private final IEnergy energy; - - public EnergyProxy(IEnergy energy, int maxTransfer) { - this(energy, maxTransfer, maxTransfer); - } - - public EnergyProxy(IEnergy energy, int maxReceive, int maxExtract) { - this.energy = energy; - this.maxReceive = maxReceive; - this.maxExtract = maxExtract; - } - - @Override - public int receiveEnergy(int maxReceive, boolean simulate) { - return !canReceive() ? 0 : this.energy.insert(Math.min(this.maxReceive, maxReceive), simulate ? Action.SIMULATE : Action.PERFORM); - } - - @Override - public int extractEnergy(int maxExtract, boolean simulate) { - return !canExtract() ? 0 : this.energy.extract(Math.min(this.maxExtract, maxExtract), simulate ? Action.SIMULATE : Action.PERFORM); - } - - @Override - public int getEnergyStored() { - return this.energy.getStored(); - } - - @Override - public int getMaxEnergyStored() { - return this.energy.getCapacity(); - } - - @Override - public boolean canExtract() { - return this.maxExtract > 0; - } - - @Override - public boolean canReceive() { - return this.maxReceive > 0; - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/ControllerTile.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/ControllerTile.java index 4b919d1d0..3c4b28116 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/ControllerTile.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/ControllerTile.java @@ -4,7 +4,6 @@ import com.google.common.base.Preconditions; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSTiles; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager; -import com.raoulvdberge.refinedstorage.api.energy.IEnergy; import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetworkNodeGraph; import com.raoulvdberge.refinedstorage.api.network.INetworkNodeVisitor; @@ -23,7 +22,6 @@ import com.raoulvdberge.refinedstorage.api.storage.externalstorage.IStorageExter import com.raoulvdberge.refinedstorage.api.storage.tracker.IStorageTracker; import com.raoulvdberge.refinedstorage.api.util.Action; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingManager; -import com.raoulvdberge.refinedstorage.apiimpl.energy.Energy; import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeGraph; import com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler.FluidGridHandler; import com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler.ItemGridHandler; @@ -36,7 +34,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.storage.cache.ItemStorageCache; import com.raoulvdberge.refinedstorage.apiimpl.storage.tracker.FluidStorageTracker; import com.raoulvdberge.refinedstorage.apiimpl.storage.tracker.ItemStorageTracker; import com.raoulvdberge.refinedstorage.block.ControllerBlock; -import com.raoulvdberge.refinedstorage.integration.forgeenergy.EnergyProxy; +import com.raoulvdberge.refinedstorage.integration.forgeenergy.BaseEnergyStorage; import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable; import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode; import com.raoulvdberge.refinedstorage.tile.data.RSSerializers; @@ -82,8 +80,8 @@ public class ControllerTile extends BaseTile implements ITickableTileEntity, INe public static final TileDataParameter REDSTONE_MODE = RedstoneMode.createParameter(); public static final TileDataParameter ENERGY_USAGE = new TileDataParameter<>(DataSerializers.VARINT, 0, ControllerTile::getEnergyUsage); - public static final TileDataParameter ENERGY_STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getEnergy().getStored()); - public static final TileDataParameter ENERGY_CAPACITY = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getEnergy().getCapacity()); + public static final TileDataParameter ENERGY_STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.energy.getEnergyStored()); + public static final TileDataParameter ENERGY_CAPACITY = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.energy.getMaxEnergyStored()); public static final TileDataParameter, ControllerTile> NODES = new TileDataParameter<>(RSSerializers.CLIENT_NODE_SERIALIZER, new ArrayList<>(), t -> { List nodes = new ArrayList<>(); @@ -140,10 +138,9 @@ public class ControllerTile extends BaseTile implements ITickableTileEntity, INe private IReaderWriterManager readerWriterManager = new ReaderWriterManager(this); - private final IEnergy energy = new Energy(RS.SERVER_CONFIG.getController().getCapacity()); - private final EnergyProxy energyProxy = new EnergyProxy(this.energy, RS.SERVER_CONFIG.getController().getMaxReceive()); + private final BaseEnergyStorage energy = new BaseEnergyStorage(RS.SERVER_CONFIG.getController().getCapacity(), RS.SERVER_CONFIG.getController().getMaxTransfer()); - private final LazyOptional energyProxyCap = LazyOptional.of(() -> energyProxy); + private final LazyOptional energyProxyCap = LazyOptional.of(() -> energy); private final LazyOptional> networkNodeProxyCap = LazyOptional.of(() -> this); private boolean throttlingDisabled = true; // Will be enabled after first update @@ -180,11 +177,6 @@ public class ControllerTile extends BaseTile implements ITickableTileEntity, INe nodeGraph.addListener(() -> dataManager.sendParameterToWatchers(ControllerTile.NODES)); } - @Override - public IEnergy getEnergy() { - return this.energy; - } - @Override public BlockPos getPosition() { return pos; @@ -192,7 +184,7 @@ public class ControllerTile extends BaseTile implements ITickableTileEntity, INe @Override public boolean canRun() { - return this.energy.getStored() > 0 && redstoneMode.isEnabled(world, pos); + return this.energy.getEnergyStored() > 0 && redstoneMode.isEnabled(world, pos); } @Override @@ -225,14 +217,14 @@ public class ControllerTile extends BaseTile implements ITickableTileEntity, INe if (type == ControllerBlock.Type.NORMAL) { if (!RS.SERVER_CONFIG.getController().getUseEnergy()) { - this.energy.setStored(this.energy.getCapacity()); - } else if (this.energy.extract(getEnergyUsage(), Action.SIMULATE) >= 0) { - this.energy.extract(getEnergyUsage(), Action.PERFORM); + this.energy.setStored(this.energy.getMaxEnergyStored()); + } else if (this.energy.extractEnergy(getEnergyUsage(), true) >= 0) { + this.energy.extractEnergy(getEnergyUsage(), false); } else { this.energy.setStored(0); } } else if (type == ControllerBlock.Type.CREATIVE) { - this.energy.setStored(this.energy.getCapacity()); + this.energy.setStored(this.energy.getMaxEnergyStored()); } boolean canRun = canRun(); @@ -538,7 +530,7 @@ public class ControllerTile extends BaseTile implements ITickableTileEntity, INe public CompoundNBT write(CompoundNBT tag) { super.write(tag); - tag.putInt(NBT_ENERGY, this.energy.getStored()); + tag.putInt(NBT_ENERGY, this.energy.getEnergyStored()); redstoneMode.write(tag); @@ -584,7 +576,7 @@ public class ControllerTile extends BaseTile implements ITickableTileEntity, INe return ControllerBlock.EnergyType.OFF; } - return getEnergyType(this.energy.getStored(), this.energy.getCapacity()); + return getEnergyType(this.energy.getEnergyStored(), this.energy.getMaxEnergyStored()); } public static ControllerBlock.EnergyType getEnergyType(int stored, int capacity) {