1.5 -> 1.6 migration: network node direction. #1816

This commit is contained in:
raoulvdberge
2018-06-14 21:33:37 +02:00
parent 497b22316b
commit c351c552a6
5 changed files with 46 additions and 9 deletions

View File

@@ -77,13 +77,17 @@ public class NetworkNodeManager extends WorldSavedData implements INetworkNodeMa
NBTTagList list = new NBTTagList(); NBTTagList list = new NBTTagList();
for (INetworkNode node : all()) { for (INetworkNode node : all()) {
NBTTagCompound nodeTag = new NBTTagCompound(); try {
NBTTagCompound nodeTag = new NBTTagCompound();
nodeTag.setString(NBT_NODE_ID, node.getId()); nodeTag.setString(NBT_NODE_ID, node.getId());
nodeTag.setLong(NBT_NODE_POS, node.getPos().toLong()); nodeTag.setLong(NBT_NODE_POS, node.getPos().toLong());
nodeTag.setTag(NBT_NODE_DATA, node.write(new NBTTagCompound())); nodeTag.setTag(NBT_NODE_DATA, node.write(new NBTTagCompound()));
list.appendTag(nodeTag); list.appendTag(nodeTag);
} catch (Throwable t) {
t.printStackTrace();
}
} }
tag.setTag(NBT_NODES, list); tag.setTag(NBT_NODES, list);

View File

@@ -76,8 +76,9 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IGuiStorage,
@Override @Override
public void addFluidStorages(List<IStorage<FluidStack>> storages) { public void addFluidStorages(List<IStorage<FluidStack>> storages) {
if (storage != null) if (storage != null) {
storages.add(storage); storages.add(storage);
}
} }
@Override @Override
@@ -89,7 +90,9 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IGuiStorage,
public NBTTagCompound write(NBTTagCompound tag) { public NBTTagCompound write(NBTTagCompound tag) {
super.write(tag); super.write(tag);
tag.setUniqueId(NBT_ID, storageId); if (storageId != null) {
tag.setUniqueId(NBT_ID, storageId);
}
return tag; return tag;
} }

View File

@@ -71,7 +71,9 @@ public class NetworkNodeStorage extends NetworkNode implements IGuiStorage, ISto
@Override @Override
public void addItemStorages(List<IStorage<ItemStack>> storages) { public void addItemStorages(List<IStorage<ItemStack>> storages) {
if (storage != null) storages.add(storage); if (storage != null) {
storages.add(storage);
}
} }
@Override @Override
@@ -88,7 +90,9 @@ public class NetworkNodeStorage extends NetworkNode implements IGuiStorage, ISto
public NBTTagCompound write(NBTTagCompound tag) { public NBTTagCompound write(NBTTagCompound tag) {
super.write(tag); super.write(tag);
tag.setUniqueId(NBT_ID, storageId); if (storageId != null) {
tag.setUniqueId(NBT_ID, storageId);
}
return tag; return tag;
} }

View File

@@ -182,4 +182,8 @@ public class OneSixMigrationHelper implements IOneSixMigrationHelper {
public static boolean isValidOneSixPattern(ItemStack stack) { public static boolean isValidOneSixPattern(ItemStack stack) {
return stack.hasTagCompound() && stack.getTagCompound().hasKey(ItemPattern.NBT_PROCESSING); return stack.hasTagCompound() && stack.getTagCompound().hasKey(ItemPattern.NBT_PROCESSING);
} }
// If we remove the OneSixMigrationHelper we know where to remove other migration hooks by removing this method.
public static void removalHook() {
}
} }

View File

@@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper;
import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy;
import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable; import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable;
import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode; import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode;
@@ -65,6 +66,18 @@ public abstract class TileNode<N extends NetworkNode> extends TileBase implement
getNode().setActive(tag.getBoolean(NBT_ACTIVE)); getNode().setActive(tag.getBoolean(NBT_ACTIVE));
} }
private EnumFacing directionToMigrate;
@Override
public void read(NBTTagCompound tag) {
super.read(tag);
OneSixMigrationHelper.removalHook();
if (tag.hasKey(NBT_DIRECTION)) {
directionToMigrate = EnumFacing.getFront(tag.getInteger("Direction"));
}
}
@Override @Override
@Nullable @Nullable
public IItemHandler getDrops() { public IItemHandler getDrops() {
@@ -92,6 +105,15 @@ public abstract class TileNode<N extends NetworkNode> extends TileBase implement
manager.markForSaving(); manager.markForSaving();
} }
OneSixMigrationHelper.removalHook();
if (directionToMigrate != null) {
((NetworkNode) node).setDirection(directionToMigrate);
directionToMigrate = null;
markDirty();
}
return (N) node; return (N) node;
} }