Fixed bug where item storage tracker didn't save on large items.
This commit is contained in:
@@ -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)
|
||||||
|
@@ -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()) {
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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());
|
||||||
|
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user