diff --git a/common/buildcraft/api/blueprints/MappingRegistry.java b/common/buildcraft/api/blueprints/MappingRegistry.java index 780dd40f..4335d98b 100755 --- a/common/buildcraft/api/blueprints/MappingRegistry.java +++ b/common/buildcraft/api/blueprints/MappingRegistry.java @@ -50,7 +50,6 @@ public class MappingRegistry { } } - public Item getItemForId(int id) { if (id >= idToItem.size()) { return null; diff --git a/common/buildcraft/builders/BuildingItem.java b/common/buildcraft/builders/BuildingItem.java index e4bf0f5f..f272595e 100755 --- a/common/buildcraft/builders/BuildingItem.java +++ b/common/buildcraft/builders/BuildingItem.java @@ -17,6 +17,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import buildcraft.BuildCraftBuilders; import buildcraft.api.blueprints.IBuilderContext; +import buildcraft.api.blueprints.MappingRegistry; import buildcraft.api.core.Position; import buildcraft.core.blueprints.BuildingSlot; import buildcraft.core.blueprints.IBuilder; @@ -222,6 +223,8 @@ public class BuildingItem implements IBuilder { destination.writeToNBT(destinationNBT); nbt.setTag ("destination", destinationNBT); + nbt.setDouble("lifeTime", lifetime); + NBTTagList items = new NBTTagList(); for (ItemStack s : stacksToBuild) { NBTTagCompound cpt = new NBTTagCompound(); @@ -229,7 +232,16 @@ public class BuildingItem implements IBuilder { items.appendTag(cpt); } - // TODO: How to write the schematic??? Or load that from the builder??? + MappingRegistry registry = new MappingRegistry(); + + NBTTagCompound slotNBT = new NBTTagCompound(); + NBTTagCompound registryNBT = new NBTTagCompound(); + + slotToBuild.writeToNBT(slotNBT, registry); + registry.write(registryNBT); + + nbt.setTag("registry", registryNBT); + nbt.setTag("slotToBuild", slotNBT); } public void readFromNBT (NBTTagCompound nbt) { diff --git a/common/buildcraft/core/blueprints/BuildingSlot.java b/common/buildcraft/core/blueprints/BuildingSlot.java index fd141166..339128e4 100755 --- a/common/buildcraft/core/blueprints/BuildingSlot.java +++ b/common/buildcraft/core/blueprints/BuildingSlot.java @@ -11,7 +11,9 @@ package buildcraft.core.blueprints; import java.util.LinkedList; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import buildcraft.api.blueprints.IBuilderContext; +import buildcraft.api.blueprints.MappingRegistry; import buildcraft.api.blueprints.Schematic; import buildcraft.api.core.Position; @@ -48,4 +50,8 @@ public abstract class BuildingSlot { public abstract boolean isAlreadyBuilt (IBuilderContext context); public abstract Schematic getSchematic (); + + public abstract void writeToNBT (NBTTagCompound nbt, MappingRegistry registry); + + public abstract void readFromNBT (NBTTagCompound nbt, MappingRegistry registry); } diff --git a/common/buildcraft/core/blueprints/BuildingSlotBlock.java b/common/buildcraft/core/blueprints/BuildingSlotBlock.java index f1dcd748..4558ebad 100755 --- a/common/buildcraft/core/blueprints/BuildingSlotBlock.java +++ b/common/buildcraft/core/blueprints/BuildingSlotBlock.java @@ -11,8 +11,10 @@ package buildcraft.core.blueprints; import java.util.LinkedList; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import buildcraft.api.blueprints.IBuilderContext; +import buildcraft.api.blueprints.MappingRegistry; import buildcraft.api.blueprints.SchematicBlockBase; import buildcraft.api.blueprints.SchematicMask; import buildcraft.api.core.Position; @@ -124,4 +126,21 @@ public class BuildingSlotBlock extends BuildingSlot implements Comparable