Fixed bug where item storage tracker didn't save on large items.

This commit is contained in:
raoulvdberge
2018-07-01 14:33:47 +02:00
parent 02f528b4c3
commit a987dcda1f
6 changed files with 18 additions and 16 deletions

View File

@@ -31,6 +31,7 @@ NOTE: Worlds that used Refined Storage 1.5.x are fully compatible with Refined S
- Fixed bug where External Storage could only handle 1 fluid inventory per block (raoulvdberge) - Fixed bug where External Storage could only handle 1 fluid inventory per block (raoulvdberge)
- Fixed shift clicking a created pattern going into Grid inventory (raoulvdberge) - Fixed shift clicking a created pattern going into Grid inventory (raoulvdberge)
- Fixed crash when moving a wireless item with the number keys (raoulvdberge) - Fixed crash when moving a wireless item with the number keys (raoulvdberge)
- Fixed bug where item storage tracker didn't save sometimes (raoulvdberge)
- Prevent accidental Grid scrollbar click after clicking JEI recipe transfer button (raoulvdberge) - Prevent accidental Grid scrollbar click after clicking JEI recipe transfer button (raoulvdberge)
- Added a missing config option for Crafter Manager energy usage (raoulvdberge) - Added a missing config option for Crafter Manager energy usage (raoulvdberge)
- Added support for Disk Drive / Storage Block storage and capacity to OC integration (zangai) - Added support for Disk Drive / Storage Block storage and capacity to OC integration (zangai)

View File

@@ -48,7 +48,7 @@ public class StorageTrackerFluid implements IStorageTracker<FluidStack> {
return changes.get(stack); return changes.get(stack);
} }
public void readFromNBT(NBTTagList list) { public void readFromNbt(NBTTagList list) {
for (int i = 0; i < list.tagCount(); ++i) { for (int i = 0; i < list.tagCount(); ++i) {
NBTTagCompound tag = list.getCompoundTagAt(i); NBTTagCompound tag = list.getCompoundTagAt(i);
@@ -63,7 +63,7 @@ public class StorageTrackerFluid implements IStorageTracker<FluidStack> {
} }
} }
public NBTTagList serializeNBT() { public NBTTagList serializeNbt() {
NBTTagList list = new NBTTagList(); NBTTagList list = new NBTTagList();
for (Map.Entry<FluidStack, IStorageTrackerEntry> entry : changes.entrySet()) { for (Map.Entry<FluidStack, IStorageTrackerEntry> entry : changes.entrySet()) {

View File

@@ -2,6 +2,7 @@ package com.raoulvdberge.refinedstorage.apiimpl.storage;
import com.raoulvdberge.refinedstorage.api.storage.IStorageTracker; import com.raoulvdberge.refinedstorage.api.storage.IStorageTracker;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.util.StackUtils;
import gnu.trove.map.hash.TCustomHashMap; import gnu.trove.map.hash.TCustomHashMap;
import gnu.trove.strategy.HashingStrategy; import gnu.trove.strategy.HashingStrategy;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@@ -47,11 +48,11 @@ public class StorageTrackerItem implements IStorageTracker<ItemStack> {
return changes.get(stack); return changes.get(stack);
} }
public void readFromNBT(NBTTagList list) { public void readFromNbt(NBTTagList list) {
for (int i = 0; i < list.tagCount(); ++i) { for (int i = 0; i < list.tagCount(); ++i) {
NBTTagCompound tag = list.getCompoundTagAt(i); NBTTagCompound tag = list.getCompoundTagAt(i);
ItemStack stack = new ItemStack(tag.getCompoundTag(NBT_STACK)); ItemStack stack = StackUtils.deserializeStackFromNbt(tag.getCompoundTag(NBT_STACK));
if (!stack.isEmpty()) { if (!stack.isEmpty()) {
changes.put( changes.put(
@@ -62,7 +63,7 @@ public class StorageTrackerItem implements IStorageTracker<ItemStack> {
} }
} }
public NBTTagList serializeNBT() { public NBTTagList serializeNbt() {
NBTTagList list = new NBTTagList(); NBTTagList list = new NBTTagList();
for (Map.Entry<ItemStack, IStorageTrackerEntry> entry : changes.entrySet()) { for (Map.Entry<ItemStack, IStorageTrackerEntry> entry : changes.entrySet()) {
@@ -70,7 +71,7 @@ public class StorageTrackerItem implements IStorageTracker<ItemStack> {
tag.setLong(NBT_TIME, entry.getValue().getTime()); tag.setLong(NBT_TIME, entry.getValue().getTime());
tag.setString(NBT_NAME, entry.getValue().getName()); tag.setString(NBT_NAME, entry.getValue().getName());
tag.setTag(NBT_STACK, entry.getKey().serializeNBT()); tag.setTag(NBT_STACK, StackUtils.serializeStackToNbt(entry.getKey()));
list.appendTag(tag); list.appendTag(tag);
} }

View File

@@ -516,11 +516,11 @@ public class TileController extends TileBase implements ITickable, INetwork, IRe
readerWriterManager.readFromNbt(tag); readerWriterManager.readFromNbt(tag);
if (tag.hasKey(NBT_ITEM_STORAGE_TRACKER)) { if (tag.hasKey(NBT_ITEM_STORAGE_TRACKER)) {
itemStorageTracker.readFromNBT(tag.getTagList(NBT_ITEM_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND)); itemStorageTracker.readFromNbt(tag.getTagList(NBT_ITEM_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND));
} }
if (tag.hasKey(NBT_FLUID_STORAGE_TRACKER)) { if (tag.hasKey(NBT_FLUID_STORAGE_TRACKER)) {
fluidStorageTracker.readFromNBT(tag.getTagList(NBT_FLUID_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND)); fluidStorageTracker.readFromNbt(tag.getTagList(NBT_FLUID_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND));
} }
} }
@@ -536,8 +536,8 @@ public class TileController extends TileBase implements ITickable, INetwork, IRe
readerWriterManager.writeToNbt(tag); readerWriterManager.writeToNbt(tag);
tag.setTag(NBT_ITEM_STORAGE_TRACKER, itemStorageTracker.serializeNBT()); tag.setTag(NBT_ITEM_STORAGE_TRACKER, itemStorageTracker.serializeNbt());
tag.setTag(NBT_FLUID_STORAGE_TRACKER, fluidStorageTracker.serializeNBT()); tag.setTag(NBT_FLUID_STORAGE_TRACKER, fluidStorageTracker.serializeNbt());
return tag; return tag;
} }

View File

@@ -64,7 +64,7 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer
private int tabPage; private int tabPage;
private int size; private int size;
private StorageTrackerItem storageTracker = new StorageTrackerItem(() -> stack.getTagCompound().setTag(NBT_STORAGE_TRACKER, getStorageTracker().serializeNBT())); private StorageTrackerItem storageTracker = new StorageTrackerItem(() -> stack.getTagCompound().setTag(NBT_STORAGE_TRACKER, getStorageTracker().serializeNbt()));
private List<IFilter> filters = new ArrayList<>(); private List<IFilter> filters = new ArrayList<>();
private List<IGridTab> tabs = new ArrayList<>(); private List<IGridTab> tabs = new ArrayList<>();
@@ -126,7 +126,7 @@ public class PortableGrid implements IGrid, IPortableGrid, IStorageDiskContainer
} }
if (stack.getTagCompound().hasKey(NBT_STORAGE_TRACKER)) { if (stack.getTagCompound().hasKey(NBT_STORAGE_TRACKER)) {
storageTracker.readFromNBT(stack.getTagCompound().getTagList(NBT_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND)); storageTracker.readFromNbt(stack.getTagCompound().getTagList(NBT_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND));
} }
StackUtils.readItems(disk, 4, stack.getTagCompound()); StackUtils.readItems(disk, 4, stack.getTagCompound());

View File

@@ -215,7 +215,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
this.redstoneMode = RedstoneMode.read(stack.getTagCompound()); this.redstoneMode = RedstoneMode.read(stack.getTagCompound());
if (stack.getTagCompound().hasKey(PortableGrid.NBT_STORAGE_TRACKER)) { if (stack.getTagCompound().hasKey(PortableGrid.NBT_STORAGE_TRACKER)) {
storageTracker.readFromNBT(stack.getTagCompound().getTagList(PortableGrid.NBT_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND)); storageTracker.readFromNbt(stack.getTagCompound().getTagList(PortableGrid.NBT_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND));
} }
} }
@@ -240,7 +240,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
stack.getTagCompound().setInteger(NetworkNodeGrid.NBT_TAB_SELECTED, tabSelected); stack.getTagCompound().setInteger(NetworkNodeGrid.NBT_TAB_SELECTED, tabSelected);
stack.getTagCompound().setInteger(NetworkNodeGrid.NBT_TAB_PAGE, tabPage); stack.getTagCompound().setInteger(NetworkNodeGrid.NBT_TAB_PAGE, tabPage);
stack.getTagCompound().setTag(PortableGrid.NBT_STORAGE_TRACKER, storageTracker.serializeNBT()); stack.getTagCompound().setTag(PortableGrid.NBT_STORAGE_TRACKER, storageTracker.serializeNbt());
stack.getCapability(CapabilityEnergy.ENERGY, null).receiveEnergy(energyStorage.getEnergyStored(), false); stack.getCapability(CapabilityEnergy.ENERGY, null).receiveEnergy(energyStorage.getEnergyStored(), false);
@@ -550,7 +550,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
redstoneMode.write(tag); redstoneMode.write(tag);
tag.setTag(NBT_STORAGE_TRACKER, storageTracker.serializeNBT()); tag.setTag(NBT_STORAGE_TRACKER, storageTracker.serializeNbt());
return tag; return tag;
} }
@@ -593,7 +593,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
redstoneMode = RedstoneMode.read(tag); redstoneMode = RedstoneMode.read(tag);
if (tag.hasKey(NBT_STORAGE_TRACKER)) { if (tag.hasKey(NBT_STORAGE_TRACKER)) {
storageTracker.readFromNBT(tag.getTagList(NBT_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND)); storageTracker.readFromNbt(tag.getTagList(NBT_STORAGE_TRACKER, Constants.NBT.TAG_COMPOUND));
} }
} }