diff --git a/CHANGELOG.md b/CHANGELOG.md index dba463eef..34dc5e68c 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Refined Storage Changelog +### 1.5.28 +- Fixed Writers not pushing energy (raoulvdberge) +- Item Reader/Writers can now store 16 stacks (raoulvdberge) +- Fluid Reader/Writers can now store 16 buckets (raoulvdberge) +- Energy Reader/Writers can now store 16000 FE (raoulvdberge) + ### 1.5.27 - Fixed non-oredict patterns not consuming resources (raoulvdberge) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/readerwriter/ReaderWriterHandlerFluids.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/readerwriter/ReaderWriterHandlerFluids.java index b787a0b7e..aaf8fee6e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/readerwriter/ReaderWriterHandlerFluids.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/readerwriter/ReaderWriterHandlerFluids.java @@ -26,7 +26,7 @@ public class ReaderWriterHandlerFluids implements IReaderWriterHandler { private FluidTankReaderWriter tankReader, tankWriter; public ReaderWriterHandlerFluids(@Nullable NBTTagCompound tag) { - this.tank = new FluidTank(4 * Fluid.BUCKET_VOLUME); + this.tank = new FluidTank(16 * Fluid.BUCKET_VOLUME); this.tankReader = new FluidTankReaderWriter(tank, true, false); this.tankWriter = new FluidTankReaderWriter(tank, false, true); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/readerwriter/ReaderWriterHandlerItems.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/readerwriter/ReaderWriterHandlerItems.java index 2c6a4fa1d..8fdb41c21 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/readerwriter/ReaderWriterHandlerItems.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/readerwriter/ReaderWriterHandlerItems.java @@ -27,7 +27,7 @@ public class ReaderWriterHandlerItems implements IReaderWriterHandler { private ItemHandlerReaderWriter itemsReader, itemsWriter; public ReaderWriterHandlerItems(@Nullable NBTTagCompound tag) { - this.items = new ItemStackHandler(4); + this.items = new ItemStackHandler(16); this.itemsWriter = new ItemHandlerReaderWriter(items, false, true); this.itemsReader = new ItemHandlerReaderWriter(items, true, false); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ReaderWriterHandlerForgeEnergy.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ReaderWriterHandlerForgeEnergy.java index d8963d671..29f4f1066 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ReaderWriterHandlerForgeEnergy.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ReaderWriterHandlerForgeEnergy.java @@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterCha import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandler; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IWriter; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TextComponentString; import net.minecraftforge.common.capabilities.Capability; @@ -25,7 +26,7 @@ public class ReaderWriterHandlerForgeEnergy implements IReaderWriterHandler { private EnergyStorageReaderWriter storageReader, storageWriter; public ReaderWriterHandlerForgeEnergy(@Nullable NBTTagCompound tag) { - this.storage = new EnergyStorage(4000); + this.storage = new EnergyStorage(16000); this.storageReader = new EnergyStorageReaderWriter(storage, false, true); this.storageWriter = new EnergyStorageReaderWriter(storage, true, false); @@ -36,6 +37,22 @@ public class ReaderWriterHandlerForgeEnergy implements IReaderWriterHandler { @Override public void update(IReaderWriterChannel channel) { + if (channel.getWriters().isEmpty()) { + return; + } + + int toSend = (int) Math.floor((float) storage.getEnergyStored() / (float) channel.getWriters().size()); + int toExtract = 0; + + for (IWriter writer : channel.getWriters()) { + TileEntity tile = writer.getWorld().getTileEntity(writer.getPos().offset(writer.getDirection())); + + if (tile != null && tile.hasCapability(CapabilityEnergy.ENERGY, writer.getDirection().getOpposite())) { + toExtract += tile.getCapability(CapabilityEnergy.ENERGY, writer.getDirection().getOpposite()).receiveEnergy(storage.extractEnergy(toSend, false), false); + } + } + + storage.extractEnergy(toExtract, false); } @Override