diff --git a/src/main/java/refinedstorage/block/BlockController.java b/src/main/java/refinedstorage/block/BlockController.java index 1dbedffa9..60efcbf3b 100755 --- a/src/main/java/refinedstorage/block/BlockController.java +++ b/src/main/java/refinedstorage/block/BlockController.java @@ -91,10 +91,18 @@ public class BlockController extends BlockBase { public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack itemStack) { super.onBlockPlacedBy(world, pos, state, player, itemStack); - NBTTagCompound tag = itemStack.getTagCompound(); + if (!world.isRemote) { + StorageNetwork network = new StorageNetwork(world, pos, (EnumControllerType) state.getValue(TYPE)); - if (tag != null && tag.hasKey(StorageNetwork.NBT_ENERGY)) { - StorageNetworkRegistry.NETWORKS.get(pos).getEnergy().receiveEnergy(tag.getInteger(StorageNetwork.NBT_ENERGY), false); + NBTTagCompound tag = itemStack.getTagCompound(); + + if (tag != null && tag.hasKey(StorageNetwork.NBT_ENERGY)) { + network.getEnergy().receiveEnergy(tag.getInteger(StorageNetwork.NBT_ENERGY), false); + } + + StorageNetworkRegistry.NETWORKS.put(pos, network); + + ((TileController) world.getTileEntity(pos)).setNetwork(network); } } diff --git a/src/main/java/refinedstorage/tile/controller/TileController.java b/src/main/java/refinedstorage/tile/controller/TileController.java index 4b0d45e9e..20159448b 100755 --- a/src/main/java/refinedstorage/tile/controller/TileController.java +++ b/src/main/java/refinedstorage/tile/controller/TileController.java @@ -10,7 +10,6 @@ import net.minecraft.util.EnumFacing; import net.minecraftforge.fml.common.network.ByteBufUtils; import refinedstorage.RefinedStorageBlocks; import refinedstorage.api.storagenet.StorageNetwork; -import refinedstorage.api.storagenet.StorageNetworkRegistry; import refinedstorage.block.BlockController; import refinedstorage.block.EnumControllerType; import refinedstorage.container.ContainerController; @@ -24,26 +23,17 @@ import java.util.ArrayList; import java.util.List; public class TileController extends TileBase implements IEnergyReceiver, ISynchronizedContainer, IRedstoneModeConfig { - private StorageNetwork network = StorageNetworkRegistry.NETWORKS.get(pos); + private StorageNetwork network; + // Only used client side private List clientMachines = new ArrayList(); private int energy; private int energyUsage; private EnumControllerType type; private RedstoneMode redstoneMode; - @Override - public NBTTagCompound write(NBTTagCompound tag) { - super.write(tag); - - return network.write(tag); - } - - @Override - public void read(NBTTagCompound tag) { - super.read(tag); - - network.read(tag); + public void setNetwork(StorageNetwork network) { + this.network = network; } @Override