Fixed RS using internal code for disk drive display instead of API
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.RSItems;
|
||||
import com.raoulvdberge.refinedstorage.RSUtils;
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
|
||||
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
|
||||
@@ -12,10 +11,6 @@ import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiStorage;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.INetworkNodeHolder;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskFluid;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskItem;
|
||||
import com.raoulvdberge.refinedstorage.block.FluidStorageType;
|
||||
import com.raoulvdberge.refinedstorage.block.ItemStorageType;
|
||||
import com.raoulvdberge.refinedstorage.inventory.IItemValidator;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
|
||||
@@ -309,38 +304,12 @@ public class NetworkNodeDiskDrive extends NetworkNode implements IGuiStorage, IS
|
||||
|
||||
@Override
|
||||
public int getStored() {
|
||||
int stored = 0;
|
||||
|
||||
for (int i = 0; i < disks.getSlots(); ++i) {
|
||||
ItemStack disk = disks.getStackInSlot(i);
|
||||
|
||||
if (!disk.isEmpty()) {
|
||||
stored += disk.getItem() == RSItems.STORAGE_DISK ? StorageDiskItem.getStored(disk.getTagCompound()) : StorageDiskFluid.getStored(disk.getTagCompound());
|
||||
}
|
||||
}
|
||||
|
||||
return stored;
|
||||
return TileDiskDrive.STORED.getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCapacity() {
|
||||
int capacity = 0;
|
||||
|
||||
for (int i = 0; i < disks.getSlots(); ++i) {
|
||||
ItemStack disk = disks.getStackInSlot(i);
|
||||
|
||||
if (!disk.isEmpty()) {
|
||||
int diskCapacity = disk.getItem() == RSItems.STORAGE_DISK ? ItemStorageType.getById(disk.getItemDamage()).getCapacity() : FluidStorageType.getById(disk.getItemDamage()).getCapacity();
|
||||
|
||||
if (diskCapacity == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
capacity += diskCapacity;
|
||||
}
|
||||
}
|
||||
|
||||
return capacity;
|
||||
return TileDiskDrive.CAPACITY.getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -4,8 +4,10 @@ import com.raoulvdberge.refinedstorage.api.storage.AccessType;
|
||||
import com.raoulvdberge.refinedstorage.api.storage.IStorageDisk;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.NetworkNodeDiskDrive;
|
||||
import com.raoulvdberge.refinedstorage.tile.config.*;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
@@ -20,6 +22,46 @@ public class TileDiskDrive extends TileNode<NetworkNodeDiskDrive> {
|
||||
public static final TileDataParameter<Integer> TYPE = IType.createParameter();
|
||||
public static final TileDataParameter<Boolean> VOID_EXCESS = IExcessVoidable.createParameter();
|
||||
public static final TileDataParameter<AccessType> ACCESS_TYPE = IAccessType.createParameter();
|
||||
public static final TileDataParameter<Integer> STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileDiskDrive>() {
|
||||
@Override
|
||||
public Integer getValue(TileDiskDrive tile) {
|
||||
int stored = 0;
|
||||
|
||||
for (IStorageDisk storage : tile.getNode().getItemStorages()) {
|
||||
if (storage != null) {
|
||||
stored += storage.getStored();
|
||||
}
|
||||
}
|
||||
|
||||
for (IStorageDisk storage : tile.getNode().getFluidStorages()) {
|
||||
if (storage != null) {
|
||||
stored += storage.getStored();
|
||||
}
|
||||
}
|
||||
|
||||
return stored;
|
||||
}
|
||||
});
|
||||
public static final TileDataParameter<Integer> CAPACITY = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileDiskDrive>() {
|
||||
@Override
|
||||
public Integer getValue(TileDiskDrive tile) {
|
||||
int capacity = 0;
|
||||
|
||||
for (IStorageDisk storage : tile.getNode().getItemStorages()) {
|
||||
if (storage != null) {
|
||||
capacity += storage.getCapacity();
|
||||
}
|
||||
}
|
||||
|
||||
for (IStorageDisk storage : tile.getNode().getFluidStorages()) {
|
||||
if (storage != null) {
|
||||
capacity += storage.getCapacity();
|
||||
}
|
||||
}
|
||||
|
||||
return capacity;
|
||||
}
|
||||
});
|
||||
|
||||
private static final String NBT_DISK_STATE = "DiskState_%d";
|
||||
|
||||
@@ -38,6 +80,8 @@ public class TileDiskDrive extends TileNode<NetworkNodeDiskDrive> {
|
||||
dataManager.addWatchedParameter(TYPE);
|
||||
dataManager.addWatchedParameter(VOID_EXCESS);
|
||||
dataManager.addWatchedParameter(ACCESS_TYPE);
|
||||
dataManager.addWatchedParameter(STORED);
|
||||
dataManager.addWatchedParameter(CAPACITY);
|
||||
|
||||
initDiskState(diskState);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user