Update disk drive on storage fullness to update the icons
This commit is contained in:
@@ -41,8 +41,12 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl
|
|||||||
public static final TileDataParameter<AccessType> ACCESS_TYPE = IAccessType.createParameter();
|
public static final TileDataParameter<AccessType> ACCESS_TYPE = IAccessType.createParameter();
|
||||||
|
|
||||||
public class ItemStorage extends ItemStorageNBT {
|
public class ItemStorage extends ItemStorageNBT {
|
||||||
|
private boolean wasFull;
|
||||||
|
|
||||||
public ItemStorage(ItemStack disk) {
|
public ItemStorage(ItemStack disk) {
|
||||||
super(disk.getTagCompound(), EnumItemStorageType.getById(disk.getItemDamage()).getCapacity(), TileDiskDrive.this);
|
super(disk.getTagCompound(), EnumItemStorageType.getById(disk.getItemDamage()).getCapacity(), TileDiskDrive.this);
|
||||||
|
|
||||||
|
wasFull = isFull();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -70,11 +74,30 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl
|
|||||||
public AccessType getAccessType() {
|
public AccessType getAccessType() {
|
||||||
return accessType;
|
return accessType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStorageChanged() {
|
||||||
|
super.onStorageChanged();
|
||||||
|
|
||||||
|
if (wasFull != isFull()) {
|
||||||
|
wasFull = isFull();
|
||||||
|
|
||||||
|
updateBlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFull() {
|
||||||
|
return getStored() == getCapacity();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class FluidStorage extends FluidStorageNBT {
|
public class FluidStorage extends FluidStorageNBT {
|
||||||
|
private boolean wasFull;
|
||||||
|
|
||||||
public FluidStorage(ItemStack disk) {
|
public FluidStorage(ItemStack disk) {
|
||||||
super(disk.getTagCompound(), EnumFluidStorageType.getById(disk.getItemDamage()).getCapacity(), TileDiskDrive.this);
|
super(disk.getTagCompound(), EnumFluidStorageType.getById(disk.getItemDamage()).getCapacity(), TileDiskDrive.this);
|
||||||
|
|
||||||
|
wasFull = isFull();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -102,6 +125,21 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl
|
|||||||
public AccessType getAccessType() {
|
public AccessType getAccessType() {
|
||||||
return accessType;
|
return accessType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStorageChanged() {
|
||||||
|
super.onStorageChanged();
|
||||||
|
|
||||||
|
if (wasFull != isFull()) {
|
||||||
|
wasFull = isFull();
|
||||||
|
|
||||||
|
updateBlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFull() {
|
||||||
|
return getStored() == getCapacity();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String NBT_PRIORITY = "Priority";
|
private static final String NBT_PRIORITY = "Priority";
|
||||||
@@ -305,8 +343,7 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl
|
|||||||
} else {
|
} else {
|
||||||
state = DISK_STATE_NORMAL;
|
state = DISK_STATE_NORMAL;
|
||||||
|
|
||||||
if ((itemStorages[i] != null && itemStorages[i].getStored() == itemStorages[i].getCapacity()) ||
|
if ((itemStorages[i] != null && itemStorages[i].isFull()) || (fluidStorages[i] != null && fluidStorages[i].isFull())) {
|
||||||
(fluidStorages[i] != null && fluidStorages[i].getStored() == fluidStorages[i].getCapacity())) {
|
|
||||||
state = DISK_STATE_FULL;
|
state = DISK_STATE_FULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user