Reader/Writer changes

- Fixed Writers not pushing energy
- Item Reader/Writers can now store 16 stacks
- Fluid Reader/Writers can now store 16 buckets
- Energy Reader/Writers can now store 16000 FE
This commit is contained in:
raoulvdberge
2017-12-12 12:55:31 +01:00
parent 5d10b95542
commit b7254e8b46
4 changed files with 26 additions and 3 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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