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