diff --git a/api/buildcraft/api/blueprints/MappingRegistry.java b/api/buildcraft/api/blueprints/MappingRegistry.java index aae00a21..6d087e90 100755 --- a/api/buildcraft/api/blueprints/MappingRegistry.java +++ b/api/buildcraft/api/blueprints/MappingRegistry.java @@ -277,8 +277,12 @@ public class MappingRegistry { for (int i = 0; i < blocksMapping.tagCount(); ++i) { NBTTagCompound sub = blocksMapping.getCompoundTagAt(i); String name = sub.getString("name"); - Block b = (Block) Block.blockRegistry.getObject(name); - + Block b = null; + + if (Block.blockRegistry.containsKey(name)) { + b = (Block) Block.blockRegistry.getObject(name); + } + if (b != null) { registerBlock(b); } else { @@ -294,8 +298,12 @@ public class MappingRegistry { for (int i = 0; i < itemsMapping.tagCount(); ++i) { NBTTagCompound sub = itemsMapping.getCompoundTagAt(i); String name = sub.getString("name"); - Item item = (Item) Item.itemRegistry.getObject(name); - + Item item = null; + + if (Item.itemRegistry.containsKey(name)) { + item = (Item) Item.itemRegistry.getObject(name); + } + if (item != null) { registerItem(item); } else { diff --git a/api/buildcraft/api/blueprints/SchematicBlock.java b/api/buildcraft/api/blueprints/SchematicBlock.java index d21d409d..010455ef 100755 --- a/api/buildcraft/api/blueprints/SchematicBlock.java +++ b/api/buildcraft/api/blueprints/SchematicBlock.java @@ -33,6 +33,8 @@ public class SchematicBlock extends SchematicBlockBase { */ public ItemStack [] storedRequirements = new ItemStack [0]; + private boolean doNotUse = false; + @Override public void getRequirementsForPlacement(IBuilderContext context, LinkedList requirements) { if (block != null) { @@ -86,7 +88,9 @@ public class SchematicBlock extends SchematicBlockBase { super.readSchematicFromNBT(nbt, registry); readBlockFromNBT(nbt, registry); - readRequirementsFromNBT(nbt, registry); + if (!doNotUse()) { + readRequirementsFromNBT(nbt, registry); + } } @Override @@ -114,12 +118,16 @@ public class SchematicBlock extends SchematicBlockBase { context.world().setBlockMetadataWithNotify(x, y, z, meta, 3); } + public boolean doNotUse() { + return doNotUse; + } + protected void readBlockFromNBT(NBTTagCompound nbt, MappingRegistry registry) { try { block = registry.getBlockForId(nbt.getInteger("blockId")); meta = nbt.getInteger("blockMeta"); } catch (MappingNotFoundException e) { - defaultPermission = BuildingPermission.CREATIVE_ONLY; + doNotUse = true; } } @@ -128,11 +136,11 @@ public class SchematicBlock extends SchematicBlockBase { NBTTagList rq = nbt.getTagList("rq", Constants.NBT.TAG_COMPOUND); ArrayList rqs = new ArrayList(); - + int idTEST = 0; for (int i = 0; i < rq.tagCount(); ++i) { try { NBTTagCompound sub = rq.getCompoundTagAt(i); - + idTEST = sub.getInteger("id"); if (sub.getInteger("id") >= 0) { registry.stackToWorld(sub); rqs.add(ItemStack.loadItemStackFromNBT(sub)); diff --git a/common/buildcraft/core/blueprints/Blueprint.java b/common/buildcraft/core/blueprints/Blueprint.java index b59a2691..6dd5026b 100644 --- a/common/buildcraft/core/blueprints/Blueprint.java +++ b/common/buildcraft/core/blueprints/Blueprint.java @@ -226,9 +226,9 @@ public class Blueprint extends BlueprintBase { case ALL: break; case CREATIVE_ONLY: - System.out.println("FOUND CREATIVE BUILDING PERMISSION"); - System.out.println("- block: " + Block.blockRegistry.getNameForObject(block)); - System.out.println("- meta: " + meta); + //System.out.println("FOUND CREATIVE BUILDING PERMISSION"); + //System.out.println("- block: " + Block.blockRegistry.getNameForObject(block)); + //System.out.println("- meta: " + meta); if (buildingPermission == BuildingPermission.ALL) { buildingPermission = BuildingPermission.CREATIVE_ONLY; }