WIP saving stuff
This commit is contained in:
@@ -6,6 +6,7 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
|||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.nbt.NBTTagList;
|
import net.minecraft.nbt.NBTTagList;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.Constants;
|
import net.minecraftforge.common.util.Constants;
|
||||||
@@ -20,6 +21,7 @@ import refinedstorage.autocrafting.CraftingPattern;
|
|||||||
import refinedstorage.autocrafting.task.BasicCraftingTask;
|
import refinedstorage.autocrafting.task.BasicCraftingTask;
|
||||||
import refinedstorage.autocrafting.task.ICraftingTask;
|
import refinedstorage.autocrafting.task.ICraftingTask;
|
||||||
import refinedstorage.autocrafting.task.ProcessingCraftingTask;
|
import refinedstorage.autocrafting.task.ProcessingCraftingTask;
|
||||||
|
import refinedstorage.block.BlockController;
|
||||||
import refinedstorage.block.EnumControllerType;
|
import refinedstorage.block.EnumControllerType;
|
||||||
import refinedstorage.container.ContainerGrid;
|
import refinedstorage.container.ContainerGrid;
|
||||||
import refinedstorage.item.ItemPattern;
|
import refinedstorage.item.ItemPattern;
|
||||||
@@ -29,6 +31,7 @@ import refinedstorage.tile.TileMachine;
|
|||||||
import refinedstorage.tile.TileWirelessTransmitter;
|
import refinedstorage.tile.TileWirelessTransmitter;
|
||||||
import refinedstorage.tile.config.RedstoneMode;
|
import refinedstorage.tile.config.RedstoneMode;
|
||||||
import refinedstorage.tile.controller.StorageHandler;
|
import refinedstorage.tile.controller.StorageHandler;
|
||||||
|
import refinedstorage.tile.controller.TileController;
|
||||||
import refinedstorage.tile.controller.WirelessGridHandler;
|
import refinedstorage.tile.controller.WirelessGridHandler;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -50,6 +53,7 @@ public class StorageNetwork {
|
|||||||
|
|
||||||
private List<TileMachine> machines = new ArrayList<TileMachine>();
|
private List<TileMachine> machines = new ArrayList<TileMachine>();
|
||||||
private List<TileMachine> machinesToAdd = new ArrayList<TileMachine>();
|
private List<TileMachine> machinesToAdd = new ArrayList<TileMachine>();
|
||||||
|
private List<BlockPos> machinesToLoad = new ArrayList<BlockPos>();
|
||||||
private List<TileMachine> machinesToRemove = new ArrayList<TileMachine>();
|
private List<TileMachine> machinesToRemove = new ArrayList<TileMachine>();
|
||||||
|
|
||||||
private List<CraftingPattern> patterns = new ArrayList<CraftingPattern>();
|
private List<CraftingPattern> patterns = new ArrayList<CraftingPattern>();
|
||||||
@@ -75,10 +79,14 @@ public class StorageNetwork {
|
|||||||
|
|
||||||
private RedstoneMode redstoneMode = RedstoneMode.IGNORE;
|
private RedstoneMode redstoneMode = RedstoneMode.IGNORE;
|
||||||
|
|
||||||
public StorageNetwork(World world, BlockPos pos, EnumControllerType type) {
|
public StorageNetwork(BlockPos pos, World world) {
|
||||||
this.world = world;
|
this.pos = pos;
|
||||||
|
|
||||||
|
setWorld(world);
|
||||||
|
}
|
||||||
|
|
||||||
|
public StorageNetwork(BlockPos pos) {
|
||||||
this.pos = pos;
|
this.pos = pos;
|
||||||
this.type = type;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public RedstoneMode getRedstoneMode() {
|
public RedstoneMode getRedstoneMode() {
|
||||||
@@ -87,6 +95,8 @@ public class StorageNetwork {
|
|||||||
|
|
||||||
public void setRedstoneMode(RedstoneMode mode) {
|
public void setRedstoneMode(RedstoneMode mode) {
|
||||||
this.redstoneMode = mode;
|
this.redstoneMode = mode;
|
||||||
|
|
||||||
|
markDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public EnergyStorage getEnergy() {
|
public EnergyStorage getEnergy() {
|
||||||
@@ -101,6 +111,23 @@ public class StorageNetwork {
|
|||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setWorld(World world) {
|
||||||
|
this.world = world;
|
||||||
|
this.type = (EnumControllerType) world.getBlockState(pos).getValue(BlockController.TYPE);
|
||||||
|
|
||||||
|
for (BlockPos machine : machinesToLoad) {
|
||||||
|
TileEntity tile = world.getTileEntity(machine);
|
||||||
|
|
||||||
|
if (tile instanceof TileMachine) {
|
||||||
|
((TileMachine) tile).forceConnect(this);
|
||||||
|
|
||||||
|
machines.add((TileMachine) tile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
((TileController) world.getTileEntity(pos)).setNetwork(this);
|
||||||
|
}
|
||||||
|
|
||||||
public World getWorld() {
|
public World getWorld() {
|
||||||
return world;
|
return world;
|
||||||
}
|
}
|
||||||
@@ -196,10 +223,14 @@ public class StorageNetwork {
|
|||||||
|
|
||||||
public void addMachine(TileMachine machine) {
|
public void addMachine(TileMachine machine) {
|
||||||
machinesToAdd.add(machine);
|
machinesToAdd.add(machine);
|
||||||
|
|
||||||
|
markDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeMachine(TileMachine machine) {
|
public void removeMachine(TileMachine machine) {
|
||||||
machinesToRemove.add(machine);
|
machinesToRemove.add(machine);
|
||||||
|
|
||||||
|
markDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public StorageHandler getStorageHandler() {
|
public StorageHandler getStorageHandler() {
|
||||||
@@ -232,10 +263,14 @@ public class StorageNetwork {
|
|||||||
|
|
||||||
public void addCraftingTask(ICraftingTask task) {
|
public void addCraftingTask(ICraftingTask task) {
|
||||||
craftingTasksToAdd.add(task);
|
craftingTasksToAdd.add(task);
|
||||||
|
|
||||||
|
markDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addCraftingTaskAsLast(ICraftingTask task) {
|
public void addCraftingTaskAsLast(ICraftingTask task) {
|
||||||
craftingTasksToAddAsLast.add(task);
|
craftingTasksToAddAsLast.add(task);
|
||||||
|
|
||||||
|
markDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ICraftingTask createCraftingTask(CraftingPattern pattern) {
|
public ICraftingTask createCraftingTask(CraftingPattern pattern) {
|
||||||
@@ -248,6 +283,8 @@ public class StorageNetwork {
|
|||||||
|
|
||||||
public void cancelCraftingTask(ICraftingTask task) {
|
public void cancelCraftingTask(ICraftingTask task) {
|
||||||
craftingTasksToCancel.add(task);
|
craftingTasksToCancel.add(task);
|
||||||
|
|
||||||
|
markDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<CraftingPattern> getPatterns() {
|
public List<CraftingPattern> getPatterns() {
|
||||||
@@ -514,34 +551,15 @@ public class StorageNetwork {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public void readFromNBT(NBTTagCompound tag) {
|
||||||
energy.writeToNBT(tag);
|
energy.readFromNBT(tag);
|
||||||
|
|
||||||
tag.setInteger(RedstoneMode.NBT, redstoneMode.id);
|
if (tag.hasKey(RedstoneMode.NBT)) {
|
||||||
|
redstoneMode = RedstoneMode.getById(tag.getInteger(RedstoneMode.NBT));
|
||||||
NBTTagList list = new NBTTagList();
|
|
||||||
|
|
||||||
for (ICraftingTask task : craftingTasks) {
|
|
||||||
NBTTagCompound taskTag = new NBTTagCompound();
|
|
||||||
task.writeToNBT(taskTag);
|
|
||||||
list.appendTag(taskTag);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tag.setTag(NBT_CRAFTING_TASKS, list);
|
if (tag.hasKey(NBT_CRAFTING_TASKS)) {
|
||||||
|
NBTTagList taskList = tag.getTagList(NBT_CRAFTING_TASKS, Constants.NBT.TAG_COMPOUND);
|
||||||
return tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void read(NBTTagCompound nbt) {
|
|
||||||
energy.readFromNBT(nbt);
|
|
||||||
|
|
||||||
if (nbt.hasKey(RedstoneMode.NBT)) {
|
|
||||||
redstoneMode = RedstoneMode.getById(nbt.getInteger(RedstoneMode.NBT));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nbt.hasKey(NBT_CRAFTING_TASKS)) {
|
|
||||||
NBTTagList taskList = nbt.getTagList(NBT_CRAFTING_TASKS, Constants.NBT.TAG_COMPOUND);
|
|
||||||
|
|
||||||
for (int i = 0; i < taskList.tagCount(); ++i) {
|
for (int i = 0; i < taskList.tagCount(); ++i) {
|
||||||
NBTTagCompound taskTag = taskList.getCompoundTagAt(i);
|
NBTTagCompound taskTag = taskList.getCompoundTagAt(i);
|
||||||
@@ -560,5 +578,47 @@ public class StorageNetwork {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tag.hasKey("Machines")) {
|
||||||
|
NBTTagList machinesTag = tag.getTagList("Machines", Constants.NBT.TAG_COMPOUND);
|
||||||
|
|
||||||
|
for (int i = 0; i < machinesTag.tagCount(); ++i) {
|
||||||
|
NBTTagCompound coords = machinesTag.getCompoundTagAt(i);
|
||||||
|
|
||||||
|
machinesToLoad.add(new BlockPos(coords.getInteger("X"), coords.getInteger("Y"), coords.getInteger("Z")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public NBTTagCompound writeToNBT(NBTTagCompound tag) {
|
||||||
|
energy.writeToNBT(tag);
|
||||||
|
|
||||||
|
tag.setInteger(RedstoneMode.NBT, redstoneMode.id);
|
||||||
|
|
||||||
|
NBTTagList list = new NBTTagList();
|
||||||
|
|
||||||
|
for (ICraftingTask task : craftingTasks) {
|
||||||
|
NBTTagCompound taskTag = new NBTTagCompound();
|
||||||
|
task.writeToNBT(taskTag);
|
||||||
|
list.appendTag(taskTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
tag.setTag(NBT_CRAFTING_TASKS, list);
|
||||||
|
|
||||||
|
NBTTagList machinesTag = new NBTTagList();
|
||||||
|
for (TileMachine machine : machines) {
|
||||||
|
NBTTagCompound coords = new NBTTagCompound();
|
||||||
|
coords.setInteger("X", machine.getPos().getX());
|
||||||
|
coords.setInteger("Y", machine.getPos().getY());
|
||||||
|
coords.setInteger("Z", machine.getPos().getZ());
|
||||||
|
machinesTag.appendTag(coords);
|
||||||
|
}
|
||||||
|
tag.setTag("Machines", machinesTag);
|
||||||
|
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void markDirty() {
|
||||||
|
StorageNetworkSavedData.get(world).markDirty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
26
src/main/java/refinedstorage/api/storagenet/StorageNetworkEventHandler.java
Executable file
26
src/main/java/refinedstorage/api/storagenet/StorageNetworkEventHandler.java
Executable file
@@ -0,0 +1,26 @@
|
|||||||
|
package refinedstorage.api.storagenet;
|
||||||
|
|
||||||
|
import net.minecraftforge.event.world.WorldEvent;
|
||||||
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
|
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||||
|
|
||||||
|
public class StorageNetworkEventHandler {
|
||||||
|
@SubscribeEvent
|
||||||
|
public void onWorldTick(TickEvent.WorldTickEvent e) {
|
||||||
|
// @todo: !!!
|
||||||
|
if (e.world.provider.getDimension() == 0) {
|
||||||
|
for (StorageNetwork network : StorageNetworkRegistry.NETWORKS.values()) {
|
||||||
|
if (network.getWorld() == null) {
|
||||||
|
network.setWorld(e.world);
|
||||||
|
}
|
||||||
|
|
||||||
|
network.update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public void onWorldLoad(WorldEvent.Load e) {
|
||||||
|
StorageNetworkSavedData.get(e.getWorld());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,5 +6,10 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class StorageNetworkRegistry {
|
public class StorageNetworkRegistry {
|
||||||
|
// @todo: handle multiple dims
|
||||||
public static final Map<BlockPos, StorageNetwork> NETWORKS = new HashMap<BlockPos, StorageNetwork>();
|
public static final Map<BlockPos, StorageNetwork> NETWORKS = new HashMap<BlockPos, StorageNetwork>();
|
||||||
|
|
||||||
|
public static void addStorageNetwork(StorageNetwork network) {
|
||||||
|
NETWORKS.put(network.getPos(), network);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
61
src/main/java/refinedstorage/api/storagenet/StorageNetworkSavedData.java
Executable file
61
src/main/java/refinedstorage/api/storagenet/StorageNetworkSavedData.java
Executable file
@@ -0,0 +1,61 @@
|
|||||||
|
package refinedstorage.api.storagenet;
|
||||||
|
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.nbt.NBTTagList;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraft.world.WorldSavedData;
|
||||||
|
import net.minecraftforge.common.util.Constants;
|
||||||
|
|
||||||
|
public class StorageNetworkSavedData extends WorldSavedData {
|
||||||
|
public static final String NBT_STORAGE_NETWORKS = "StorageNetworks";
|
||||||
|
|
||||||
|
public StorageNetworkSavedData(String name) {
|
||||||
|
super(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readFromNBT(NBTTagCompound tag) {
|
||||||
|
NBTTagList networks = tag.getTagList(NBT_STORAGE_NETWORKS, Constants.NBT.TAG_COMPOUND);
|
||||||
|
|
||||||
|
for (int i = 0; i < networks.tagCount(); ++i) {
|
||||||
|
NBTTagCompound networkTag = networks.getCompoundTagAt(i);
|
||||||
|
|
||||||
|
BlockPos pos = new BlockPos(networkTag.getInteger("X"), networkTag.getInteger("Y"), networkTag.getInteger("Z"));
|
||||||
|
|
||||||
|
StorageNetwork network = new StorageNetwork(pos);
|
||||||
|
network.readFromNBT(networkTag.getCompoundTag("Data"));
|
||||||
|
|
||||||
|
StorageNetworkRegistry.addStorageNetwork(network);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound writeToNBT(NBTTagCompound tag) {
|
||||||
|
NBTTagList networks = new NBTTagList();
|
||||||
|
|
||||||
|
for (StorageNetwork network : StorageNetworkRegistry.NETWORKS.values()) {
|
||||||
|
NBTTagCompound networkTag = new NBTTagCompound();
|
||||||
|
networkTag.setInteger("X", network.getPos().getX());
|
||||||
|
networkTag.setInteger("Y", network.getPos().getY());
|
||||||
|
networkTag.setInteger("Z", network.getPos().getZ());
|
||||||
|
networkTag.setTag("Data", network.writeToNBT(new NBTTagCompound()));
|
||||||
|
networks.appendTag(networkTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
tag.setTag(NBT_STORAGE_NETWORKS, networks);
|
||||||
|
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static StorageNetworkSavedData get(World world) {
|
||||||
|
StorageNetworkSavedData instance = (StorageNetworkSavedData) world.getMapStorage().getOrLoadData(StorageNetworkSavedData.class, "RSStorageNetworks");
|
||||||
|
|
||||||
|
if (instance == null) {
|
||||||
|
instance = new StorageNetworkSavedData("RSStorageNetworks");
|
||||||
|
world.getMapStorage().setData("RSStorageNetworks", instance);
|
||||||
|
}
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
package refinedstorage.api.storagenet;
|
|
||||||
|
|
||||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
|
||||||
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
|
||||||
|
|
||||||
public class StorageNetworkTickHandler {
|
|
||||||
@SubscribeEvent
|
|
||||||
public void onServerTick(TickEvent.ServerTickEvent e) {
|
|
||||||
for (StorageNetwork network : StorageNetworkRegistry.NETWORKS.values()) {
|
|
||||||
network.update();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -92,7 +92,7 @@ public class BlockController extends BlockBase {
|
|||||||
@Override
|
@Override
|
||||||
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack itemStack) {
|
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack itemStack) {
|
||||||
if (!world.isRemote) {
|
if (!world.isRemote) {
|
||||||
StorageNetwork network = new StorageNetwork(world, pos, (EnumControllerType) state.getValue(TYPE));
|
StorageNetwork network = new StorageNetwork(pos, world);
|
||||||
|
|
||||||
NBTTagCompound tag = itemStack.getTagCompound();
|
NBTTagCompound tag = itemStack.getTagCompound();
|
||||||
|
|
||||||
@@ -100,7 +100,7 @@ public class BlockController extends BlockBase {
|
|||||||
network.getEnergy().receiveEnergy(tag.getInteger(StorageNetwork.NBT_ENERGY), false);
|
network.getEnergy().receiveEnergy(tag.getInteger(StorageNetwork.NBT_ENERGY), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
StorageNetworkRegistry.NETWORKS.put(pos, network);
|
StorageNetworkRegistry.addStorageNetwork(network);
|
||||||
|
|
||||||
((TileController) world.getTileEntity(pos)).setNetwork(network);
|
((TileController) world.getTileEntity(pos)).setNetwork(network);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ package refinedstorage.network;
|
|||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import net.minecraft.entity.player.EntityPlayerMP;
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
import refinedstorage.api.storagenet.StorageNetwork;
|
import refinedstorage.tile.grid.TileGrid;
|
||||||
import refinedstorage.api.storagenet.StorageNetworkRegistry;
|
|
||||||
|
|
||||||
public class MessageGridStoragePull extends MessageHandlerPlayerToServer<MessageGridStoragePull> implements IMessage {
|
public class MessageGridStoragePull extends MessageHandlerPlayerToServer<MessageGridStoragePull> implements IMessage {
|
||||||
private int x;
|
private int x;
|
||||||
@@ -45,10 +45,10 @@ public class MessageGridStoragePull extends MessageHandlerPlayerToServer<Message
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(MessageGridStoragePull message, EntityPlayerMP player) {
|
public void handle(MessageGridStoragePull message, EntityPlayerMP player) {
|
||||||
StorageNetwork network = StorageNetworkRegistry.NETWORKS.get(new BlockPos(message.x, message.y, message.z));
|
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||||
|
|
||||||
if (network != null && network.canRun()) {
|
if (tile instanceof TileGrid && ((TileGrid) tile).isConnected()) {
|
||||||
network.getStorageHandler().onPull(message.id, message.flags, player);
|
((TileGrid) tile).getNetwork().getStorageHandler().onPull(message.id, message.flags, player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import refinedstorage.RefinedStorageItems;
|
|||||||
import refinedstorage.api.solderer.SoldererRecipeBasic;
|
import refinedstorage.api.solderer.SoldererRecipeBasic;
|
||||||
import refinedstorage.api.solderer.SoldererRegistry;
|
import refinedstorage.api.solderer.SoldererRegistry;
|
||||||
import refinedstorage.api.storage.NBTStorage;
|
import refinedstorage.api.storage.NBTStorage;
|
||||||
import refinedstorage.api.storagenet.StorageNetworkTickHandler;
|
import refinedstorage.api.storagenet.StorageNetworkEventHandler;
|
||||||
import refinedstorage.block.BlockBase;
|
import refinedstorage.block.BlockBase;
|
||||||
import refinedstorage.block.EnumControllerType;
|
import refinedstorage.block.EnumControllerType;
|
||||||
import refinedstorage.block.EnumGridType;
|
import refinedstorage.block.EnumGridType;
|
||||||
@@ -485,7 +485,7 @@ public class CommonProxy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void init(FMLInitializationEvent e) {
|
public void init(FMLInitializationEvent e) {
|
||||||
MinecraftForge.EVENT_BUS.register(new StorageNetworkTickHandler());
|
MinecraftForge.EVENT_BUS.register(new StorageNetworkEventHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void postInit(FMLPostInitializationEvent e) {
|
public void postInit(FMLPostInitializationEvent e) {
|
||||||
|
|||||||
@@ -97,6 +97,11 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void forceConnect(StorageNetwork network) {
|
||||||
|
this.network = network;
|
||||||
|
this.connected = true;
|
||||||
|
}
|
||||||
|
|
||||||
public void onDisconnected(World world) {
|
public void onDisconnected(World world) {
|
||||||
this.connected = false;
|
this.connected = false;
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
|
|||||||
public NBTTagCompound writeUpdate(NBTTagCompound tag) {
|
public NBTTagCompound writeUpdate(NBTTagCompound tag) {
|
||||||
super.writeUpdate(tag);
|
super.writeUpdate(tag);
|
||||||
|
|
||||||
tag.setInteger(StorageNetwork.NBT_ENERGY, network.getEnergy().getEnergyStored());
|
tag.setInteger(StorageNetwork.NBT_ENERGY, network != null ? network.getEnergy().getEnergyStored() : 0);
|
||||||
|
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user