From c4e1f21ac198bbec00c59be7f36d3cbe9ee2ebe3 Mon Sep 17 00:00:00 2001 From: mDiyo Date: Sat, 5 Oct 2013 11:21:32 -0700 Subject: [PATCH] Standarize fluid names --- resources/assets/tinker/lang/en_US.xml | 48 ++++---- src/tconstruct/common/TContent.java | 53 +++++---- .../library/component/TankLayerScan.java | 111 +++++++++++++++--- src/tconstruct/util/config/PHConstruct.java | 3 + 4 files changed, 149 insertions(+), 66 deletions(-) diff --git a/resources/assets/tinker/lang/en_US.xml b/resources/assets/tinker/lang/en_US.xml index 8978dffa65f..2edaca8ac75 100644 --- a/resources/assets/tinker/lang/en_US.xml +++ b/resources/assets/tinker/lang/en_US.xml @@ -472,29 +472,29 @@ Arrowhead Fletching - Molten Iron - Molten Gold - Molten Copper - Molten Tin - Molten Aluminum - Molten Cobalt - Molten Ardite - Molten Bronze - Molten Aluminum Brass - Molten Manyullyn - Molten Alumite - Molten Obsidian - Molten Steel - Molten Glass - Seared Stone - Liquified Emerald - Blood - Molten Nickel - Molten Lead - Molten Silver - Molten Platinum - Molten Invar - Molten Shiny - Liquid Ender + Molten Iron + Molten Gold + Molten Copper + Molten Tin + Molten Aluminum + Molten Cobalt + Molten Ardite + Molten Bronze + Molten Aluminum Brass + Molten Manyullyn + Molten Alumite + Molten Obsidian + Molten Steel + Molten Glass + Seared Stone + Liquified Emerald + Blood + Molten Nickel + Molten Lead + Molten Silver + Molten Platinum + Molten Invar + Molten Shiny + Liquid Ender diff --git a/src/tconstruct/common/TContent.java b/src/tconstruct/common/TContent.java index 3518258304e..325c426b23a 100644 --- a/src/tconstruct/common/TContent.java +++ b/src/tconstruct/common/TContent.java @@ -132,6 +132,7 @@ public class TContent implements IFuelHandler public static Block searedBlock; public static Block castingChannel; public static Block metalBlock; + public static Block tankAir; public static Block redstoneMachine; public static Block dryingRack; @@ -402,6 +403,10 @@ void registerBlocks() castingChannel = (new CastingChannelBlock(PHConstruct.castingChannel)).setUnlocalizedName("CastingChannel"); GameRegistry.registerBlock(castingChannel, CastingChannelItem.class, "CastingChannel"); GameRegistry.registerTileEntity(CastingChannelLogic.class, "CastingChannel"); + + tankAir = new TankAirBlock(PHConstruct.airTank, Material.air).setUnlocalizedName("tconstruct.tank.air"); + GameRegistry.registerBlock(tankAir, "TankAir"); + GameRegistry.registerTileEntity(TankAirLogic.class, "tconstruct.tank.air"); //Redstone machines redstoneMachine = new RedstoneMachine(PHConstruct.redstoneMachine).setUnlocalizedName("Redstone.Machine"); @@ -438,7 +443,7 @@ void registerBlocks() //Liquids liquidMetal = new MaterialLiquid(MapColor.tntColor); - moltenIronFluid = new Fluid("Molten Iron"); + moltenIronFluid = new Fluid("fluid.iron.molten"); FluidRegistry.registerFluid(moltenIronFluid); moltenIron = new LiquidMetalFinite(PHConstruct.moltenIron, moltenIronFluid, "liquid_iron").setUnlocalizedName("metal.molten.iron"); GameRegistry.registerBlock(moltenIron, "metal.molten.iron"); @@ -447,7 +452,7 @@ void registerBlocks() fluidBlocks[0] = moltenIron; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenIronFluid, 1000), new ItemStack(buckets, 1, 0), new ItemStack(Item.bucketEmpty))); - moltenGoldFluid = new Fluid("Molten Gold"); + moltenGoldFluid = new Fluid("fluid.gold.molten"); FluidRegistry.registerFluid(moltenGoldFluid); moltenGold = new LiquidMetalFinite(PHConstruct.moltenGold, moltenGoldFluid, "liquid_gold").setUnlocalizedName("metal.molten.gold"); GameRegistry.registerBlock(moltenGold, "metal.molten.gold"); @@ -456,7 +461,7 @@ void registerBlocks() fluidBlocks[1] = moltenGold; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenGoldFluid, 1000), new ItemStack(buckets, 1, 1), new ItemStack(Item.bucketEmpty))); - moltenCopperFluid = new Fluid("Molten Copper"); + moltenCopperFluid = new Fluid("fluid.copper.molten"); FluidRegistry.registerFluid(moltenCopperFluid); moltenCopper = new LiquidMetalFinite(PHConstruct.moltenCopper, moltenCopperFluid, "liquid_copper").setUnlocalizedName("metal.molten.copper"); GameRegistry.registerBlock(moltenCopper, "metal.molten.copper"); @@ -465,7 +470,7 @@ void registerBlocks() fluidBlocks[2] = moltenCopper; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenCopperFluid, 1000), new ItemStack(buckets, 1, 2), new ItemStack(Item.bucketEmpty))); - moltenTinFluid = new Fluid("Molten Tin"); + moltenTinFluid = new Fluid("fluid.tin.molten"); FluidRegistry.registerFluid(moltenTinFluid); moltenTin = new LiquidMetalFinite(PHConstruct.moltenTin, moltenTinFluid, "liquid_tin").setUnlocalizedName("metal.molten.tin"); GameRegistry.registerBlock(moltenTin, "metal.molten.tin"); @@ -474,7 +479,7 @@ void registerBlocks() fluidBlocks[3] = moltenTin; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenTinFluid, 1000), new ItemStack(buckets, 1, 3), new ItemStack(Item.bucketEmpty))); - moltenAluminumFluid = new Fluid("Molten Aluminum"); + moltenAluminumFluid = new Fluid("fluid.aluminum.molten"); FluidRegistry.registerFluid(moltenAluminumFluid); moltenAluminum = new LiquidMetalFinite(PHConstruct.moltenAluminum, moltenAluminumFluid, "liquid_aluminum").setUnlocalizedName("metal.molten.aluminum"); GameRegistry.registerBlock(moltenAluminum, "metal.molten.aluminum"); @@ -483,7 +488,7 @@ void registerBlocks() fluidBlocks[4] = moltenAluminum; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenAluminumFluid, 1000), new ItemStack(buckets, 1, 4), new ItemStack(Item.bucketEmpty))); - moltenCobaltFluid = new Fluid("Molten Cobalt"); + moltenCobaltFluid = new Fluid("fluid.cobalt.molten"); FluidRegistry.registerFluid(moltenCobaltFluid); moltenCobalt = new LiquidMetalFinite(PHConstruct.moltenCobalt, moltenCobaltFluid, "liquid_cobalt").setUnlocalizedName("metal.molten.cobalt"); GameRegistry.registerBlock(moltenCobalt, "metal.molten.cobalt"); @@ -492,7 +497,7 @@ void registerBlocks() fluidBlocks[5] = moltenCobalt; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenCobaltFluid, 1000), new ItemStack(buckets, 1, 5), new ItemStack(Item.bucketEmpty))); - moltenArditeFluid = new Fluid("Molten Ardite"); + moltenArditeFluid = new Fluid("fluid.ardite.molten"); FluidRegistry.registerFluid(moltenArditeFluid); moltenArdite = new LiquidMetalFinite(PHConstruct.moltenArdite, moltenArditeFluid, "liquid_ardite").setUnlocalizedName("metal.molten.ardite"); GameRegistry.registerBlock(moltenArdite, "metal.molten.ardite"); @@ -501,7 +506,7 @@ void registerBlocks() fluidBlocks[6] = moltenArdite; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenArditeFluid, 1000), new ItemStack(buckets, 1, 6), new ItemStack(Item.bucketEmpty))); - moltenBronzeFluid = new Fluid("Molten Bronze"); + moltenBronzeFluid = new Fluid("fluid.bronze.molten"); FluidRegistry.registerFluid(moltenBronzeFluid); moltenBronze = new LiquidMetalFinite(PHConstruct.moltenBronze, moltenBronzeFluid, "liquid_bronze").setUnlocalizedName("metal.molten.bronze"); GameRegistry.registerBlock(moltenBronze, "metal.molten.bronze"); @@ -510,7 +515,7 @@ void registerBlocks() fluidBlocks[7] = moltenBronze; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenBronzeFluid, 1000), new ItemStack(buckets, 1, 7), new ItemStack(Item.bucketEmpty))); - moltenAlubrassFluid = new Fluid("Molten Aluminum Brass"); + moltenAlubrassFluid = new Fluid("fluid.aluminumbrass.molten"); FluidRegistry.registerFluid(moltenAlubrassFluid); moltenAlubrass = new LiquidMetalFinite(PHConstruct.moltenAlubrass, moltenAlubrassFluid, "liquid_alubrass").setUnlocalizedName("metal.molten.alubrass"); GameRegistry.registerBlock(moltenAlubrass, "metal.molten.alubrass"); @@ -519,7 +524,7 @@ void registerBlocks() fluidBlocks[8] = moltenAlubrass; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenAlubrassFluid, 1000), new ItemStack(buckets, 1, 8), new ItemStack(Item.bucketEmpty))); - moltenManyullynFluid = new Fluid("Molten Manyullyn"); + moltenManyullynFluid = new Fluid("fluid.manyullyn.molten"); FluidRegistry.registerFluid(moltenManyullynFluid); moltenManyullyn = new LiquidMetalFinite(PHConstruct.moltenManyullyn, moltenManyullynFluid, "liquid_manyullyn").setUnlocalizedName("metal.molten.manyullyn"); GameRegistry.registerBlock(moltenManyullyn, "metal.molten.manyullyn"); @@ -528,7 +533,7 @@ void registerBlocks() fluidBlocks[9] = moltenManyullyn; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenManyullynFluid, 1000), new ItemStack(buckets, 1, 9), new ItemStack(Item.bucketEmpty))); - moltenAlumiteFluid = new Fluid("Molten Alumite"); + moltenAlumiteFluid = new Fluid("fluid.alumite.molten"); FluidRegistry.registerFluid(moltenAlumiteFluid); moltenAlumite = new LiquidMetalFinite(PHConstruct.moltenAlumite, moltenAlumiteFluid, "liquid_alumite").setUnlocalizedName("metal.molten.alumite"); GameRegistry.registerBlock(moltenAlumite, "metal.molten.alumite"); @@ -537,7 +542,7 @@ void registerBlocks() fluidBlocks[10] = moltenAlumite; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenAlumiteFluid, 1000), new ItemStack(buckets, 1, 10), new ItemStack(Item.bucketEmpty))); - moltenObsidianFluid = new Fluid("Molten Obsidian"); + moltenObsidianFluid = new Fluid("fluid.obsidian.molten"); FluidRegistry.registerFluid(moltenObsidianFluid); moltenObsidian = new LiquidMetalFinite(PHConstruct.moltenObsidian, moltenObsidianFluid, "liquid_obsidian").setUnlocalizedName("metal.molten.obsidian"); GameRegistry.registerBlock(moltenObsidian, "metal.molten.obsidian"); @@ -546,7 +551,7 @@ void registerBlocks() fluidBlocks[11] = moltenObsidian; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenObsidianFluid, 1000), new ItemStack(buckets, 1, 11), new ItemStack(Item.bucketEmpty))); - moltenSteelFluid = new Fluid("Molten Steel"); + moltenSteelFluid = new Fluid("fluid.steel.molten"); FluidRegistry.registerFluid(moltenSteelFluid); moltenSteel = new LiquidMetalFinite(PHConstruct.moltenSteel, moltenSteelFluid, "liquid_steel").setUnlocalizedName("metal.molten.steel"); GameRegistry.registerBlock(moltenSteel, "metal.molten.steel"); @@ -555,7 +560,7 @@ void registerBlocks() fluidBlocks[12] = moltenSteel; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenSteelFluid, 1000), new ItemStack(buckets, 1, 12), new ItemStack(Item.bucketEmpty))); - moltenGlassFluid = new Fluid("Molten Glass"); + moltenGlassFluid = new Fluid("fluid.glass.molten"); FluidRegistry.registerFluid(moltenGlassFluid); moltenGlass = new LiquidMetalFinite(PHConstruct.moltenGlass, moltenGlassFluid, "liquid_glass").setUnlocalizedName("metal.molten.glass"); GameRegistry.registerBlock(moltenGlass, "metal.molten.glass"); @@ -564,7 +569,7 @@ void registerBlocks() fluidBlocks[13] = moltenGlass; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenGlassFluid, 1000), new ItemStack(buckets, 1, 13), new ItemStack(Item.bucketEmpty))); - moltenStoneFluid = new Fluid("Seared Stone"); + moltenStoneFluid = new Fluid("fluid.stone.seared"); FluidRegistry.registerFluid(moltenStoneFluid); moltenStone = new LiquidMetalFinite(PHConstruct.moltenStone, moltenStoneFluid, "liquid_stone").setUnlocalizedName("molten.stone"); GameRegistry.registerBlock(moltenStone, "molten.stone"); @@ -573,7 +578,7 @@ void registerBlocks() fluidBlocks[14] = moltenStone; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenStoneFluid, 1000), new ItemStack(buckets, 1, 14), new ItemStack(Item.bucketEmpty))); - moltenEmeraldFluid = new Fluid("Liquified Emerald"); + moltenEmeraldFluid = new Fluid("fluid.emerald.liquid"); FluidRegistry.registerFluid(moltenEmeraldFluid); moltenEmerald = new LiquidMetalFinite(PHConstruct.moltenEmerald, moltenEmeraldFluid, "liquid_villager").setUnlocalizedName("molten.emerald"); GameRegistry.registerBlock(moltenEmerald, "molten.emerald"); @@ -582,7 +587,7 @@ void registerBlocks() fluidBlocks[15] = moltenEmerald; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenEmeraldFluid, 1000), new ItemStack(buckets, 1, 15), new ItemStack(Item.bucketEmpty))); - bloodFluid = new Fluid("Blood"); + bloodFluid = new Fluid("fluid.blood"); FluidRegistry.registerFluid(bloodFluid); blood = new LiquidMetalFinite(PHConstruct.blood, bloodFluid, "liquid_cow").setUnlocalizedName("liquid.blood"); GameRegistry.registerBlock(blood, "liquid.blood"); @@ -591,7 +596,7 @@ void registerBlocks() fluidBlocks[16] = blood; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(bloodFluid, 1000), new ItemStack(buckets, 1, 16), new ItemStack(Item.bucketEmpty))); - moltenNickelFluid = new Fluid("nickel.molten"); + moltenNickelFluid = new Fluid("fluid.nickel.molten"); FluidRegistry.registerFluid(moltenNickelFluid); moltenNickel = new LiquidMetalFinite(PHConstruct.moltenNickel, moltenNickelFluid, "liquid_ferrous").setUnlocalizedName("metal.molten.nickel"); GameRegistry.registerBlock(moltenNickel, "metal.molten.nickel"); @@ -600,7 +605,7 @@ void registerBlocks() fluidBlocks[17] = moltenNickel; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenNickelFluid, 1000), new ItemStack(buckets, 1, 17), new ItemStack(Item.bucketEmpty))); - moltenLeadFluid = new Fluid("lead.molten"); + moltenLeadFluid = new Fluid("fluid.lead.molten"); FluidRegistry.registerFluid(moltenLeadFluid); moltenLead = new LiquidMetalFinite(PHConstruct.moltenLead, moltenLeadFluid, "liquid_lead").setUnlocalizedName("metal.molten.lead"); GameRegistry.registerBlock(moltenLead, "metal.molten.lead"); @@ -609,7 +614,7 @@ void registerBlocks() fluidBlocks[18] = moltenLead; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenLeadFluid, 1000), new ItemStack(buckets, 1, 18), new ItemStack(Item.bucketEmpty))); - moltenSilverFluid = new Fluid("silver.molten"); + moltenSilverFluid = new Fluid("fluid.silver.molten"); FluidRegistry.registerFluid(moltenSilverFluid); moltenSilver = new LiquidMetalFinite(PHConstruct.moltenSilver, moltenSilverFluid, "liquid_silver").setUnlocalizedName("metal.molten.silver"); GameRegistry.registerBlock(moltenSilver, "metal.molten.silver"); @@ -618,7 +623,7 @@ void registerBlocks() fluidBlocks[19] = moltenSilver; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenSilverFluid, 1000), new ItemStack(buckets, 1, 19), new ItemStack(Item.bucketEmpty))); - moltenShinyFluid = new Fluid("platinum.molten"); + moltenShinyFluid = new Fluid("fluid.platinum.molten"); FluidRegistry.registerFluid(moltenShinyFluid); moltenShiny = new LiquidMetalFinite(PHConstruct.moltenShiny, moltenShinyFluid, "liquid_shiny").setUnlocalizedName("metal.molten.shiny"); GameRegistry.registerBlock(moltenShiny, "metal.molten.shiny"); @@ -627,7 +632,7 @@ void registerBlocks() fluidBlocks[20] = moltenShiny; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenShinyFluid, 1000), new ItemStack(buckets, 1, 20), new ItemStack(Item.bucketEmpty))); - moltenInvarFluid = new Fluid("invar.molten"); + moltenInvarFluid = new Fluid("fluid.invar.molten"); FluidRegistry.registerFluid(moltenInvarFluid); moltenInvar = new LiquidMetalFinite(PHConstruct.moltenInvar, moltenInvarFluid, "liquid_invar").setUnlocalizedName("metal.molten.invar"); GameRegistry.registerBlock(moltenInvar, "metal.molten.invar"); @@ -636,7 +641,7 @@ void registerBlocks() fluidBlocks[21] = moltenInvar; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenInvarFluid, 1000), new ItemStack(buckets, 1, 21), new ItemStack(Item.bucketEmpty))); - moltenElectrumFluid = new Fluid("electrum.molten"); + moltenElectrumFluid = new Fluid("fluid.electrum.molten"); FluidRegistry.registerFluid(moltenElectrumFluid); moltenElectrum = new LiquidMetalFinite(PHConstruct.moltenElectrum, moltenElectrumFluid, "liquid_electrum").setUnlocalizedName("metal.molten.electrum"); GameRegistry.registerBlock(moltenElectrum, "metal.molten.electrum"); @@ -645,7 +650,7 @@ void registerBlocks() fluidBlocks[22] = moltenElectrum; FluidContainerRegistry.registerFluidContainer(new FluidContainerData(new FluidStack(moltenElectrumFluid, 1000), new ItemStack(buckets, 1, 22), new ItemStack(Item.bucketEmpty))); - moltenEnderFluid = new Fluid("ender"); + moltenEnderFluid = new Fluid("fluid.ender"); FluidRegistry.registerFluid(moltenEnderFluid); moltenEnder = new LiquidMetalFinite(PHConstruct.moltenEnder, moltenEnderFluid, "liquid_ender").setUnlocalizedName("liquid.ender"); GameRegistry.registerBlock(moltenEnder, "liquid.ender"); diff --git a/src/tconstruct/library/component/TankLayerScan.java b/src/tconstruct/library/component/TankLayerScan.java index 3f83e377353..2bb2c08cdba 100644 --- a/src/tconstruct/library/component/TankLayerScan.java +++ b/src/tconstruct/library/component/TankLayerScan.java @@ -5,6 +5,9 @@ import java.util.TreeSet; import net.minecraft.block.Block; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagIntArray; +import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import tconstruct.library.util.CoordTuple; import tconstruct.library.util.IFacingLogic; @@ -18,17 +21,18 @@ public class TankLayerScan extends LogicComponent protected Block[] scanBlocks; protected boolean completeStructure; + protected int lowestY; protected int bricks = 0; protected int airBlocks = 0; - protected TreeSet tempBlockCoords = new TreeSet(); - protected TreeSet tempAirCoords = new TreeSet(); + protected TreeSet layerBlockCoords = new TreeSet(); + protected TreeSet layerAirCoords = new TreeSet(); public TreeSet blockCoords = new TreeSet(); public TreeSet airCoords = new TreeSet(); protected ArrayList validAirCoords = new ArrayList(); protected CoordTuple returnStone; - + private boolean debug = false; public TankLayerScan(TileEntity te, Block... ids) @@ -114,11 +118,13 @@ public void checkValidStructure () if (sealed) { - tempAirCoords = new TreeSet(airCoords); - tempBlockCoords = new TreeSet(blockCoords); + layerAirCoords = new TreeSet(airCoords); + layerBlockCoords = new TreeSet(blockCoords); - if (recurseStructureDown(master.yCoord - 1)) + int lowY = recurseStructureDown(master.yCoord - 1); + if (lowY != -1) { + lowestY = lowY; completeStructure = true; recurseStructureUp(master.yCoord + 1); @@ -130,14 +136,14 @@ public void checkValidStructure () } } } - + if (completeStructure) { - + } else { - + } } @@ -145,8 +151,8 @@ public boolean isComplete () { return completeStructure; } - - public int getAirSize() + + public int getAirSize () { return airBlocks; } @@ -251,9 +257,9 @@ else if (!blockCoords.contains(coord) && checkServant(x + offset[0], y, z + offs return true; } - public boolean recurseStructureDown (int y) + public int recurseStructureDown (int y) { - Iterator i = tempAirCoords.iterator(); + Iterator i = layerAirCoords.iterator(); if (i.hasNext()) { CoordTuple coord = (CoordTuple) i.next(); @@ -277,7 +283,7 @@ public boolean recurseStructureDown (int y) } //Bricks - i = tempBlockCoords.iterator(); + i = layerBlockCoords.iterator(); while (i.hasNext()) { coord = (CoordTuple) i.next(); @@ -311,16 +317,17 @@ else if (checkServant(coord.x, y, coord.z)) break; } } - return valid; + if (valid) + return y+1; } } - return false; + return -1; } public void recurseStructureUp (int y) { - Iterator i = tempBlockCoords.iterator(); + Iterator i = layerBlockCoords.iterator(); if (i.hasNext()) { CoordTuple coord = (CoordTuple) i.next(); @@ -345,7 +352,7 @@ public void recurseStructureUp (int y) //Air blocks if (valid) { - i = tempAirCoords.iterator(); + i = layerAirCoords.iterator(); while (i.hasNext()) { coord = (CoordTuple) i.next(); @@ -385,4 +392,72 @@ public void cleanup () servant.invalidateMaster(imaster, world, master.xCoord, master.yCoord, master.zCoord); } } + + @Override + public void readFromNBT (NBTTagCompound tags) + { + NBTTagList layerAir = tags.getTagList("AirLayer"); + if (layerAir != null) + { + layerAirCoords.clear(); + + for (int i = 0; i < layerAir.tagCount(); ++i) + { + NBTTagIntArray tag = (NBTTagIntArray) layerAir.tagAt(i); + int[] coord = tag.intArray; + layerAirCoords.add(new CoordTuple(coord[0], coord[1], coord[2])); + } + } + + NBTTagList blocks = tags.getTagList("AirLayer"); + if (blocks != null) + { + blockCoords.clear(); + + for (int i = 0; i < blocks.tagCount(); ++i) + { + NBTTagIntArray tag = (NBTTagIntArray) blocks.tagAt(i); + int[] coord = tag.intArray; + blockCoords.add(new CoordTuple(coord[0], coord[1], coord[2])); + } + } + + NBTTagList air = tags.getTagList("AirLayer"); + if (air != null) + { + airCoords.clear(); + + for (int i = 0; i < air.tagCount(); ++i) + { + NBTTagIntArray tag = (NBTTagIntArray) air.tagAt(i); + int[] coord = tag.intArray; + airCoords.add(new CoordTuple(coord[0], coord[1], coord[2])); + } + } + } + + @Override + public void writeToNBT (NBTTagCompound tags) + { + NBTTagList layerAir = new NBTTagList(); + for (CoordTuple coord : layerAirCoords) + { + layerAir.appendTag(new NBTTagIntArray("coord", new int[] { coord.x, coord.y, coord.z })); + } + tags.setTag("AirLayer", layerAir); + + NBTTagList blocks = new NBTTagList(); + for (CoordTuple coord : blockCoords) + { + blocks.appendTag(new NBTTagIntArray("coord", new int[] { coord.x, coord.y, coord.z })); + } + tags.setTag("Blocks", blocks); + + NBTTagList air = new NBTTagList(); + for (CoordTuple coord : airCoords) + { + air.appendTag(new NBTTagIntArray("coord", new int[] { coord.x, coord.y, coord.z })); + } + tags.setTag("Air", air); + } } diff --git a/src/tconstruct/util/config/PHConstruct.java b/src/tconstruct/util/config/PHConstruct.java index 47d94d59312..630457a0618 100644 --- a/src/tconstruct/util/config/PHConstruct.java +++ b/src/tconstruct/util/config/PHConstruct.java @@ -175,6 +175,7 @@ public static void initProps (File location) woodCrafterSlab = config.getBlock("Crafting Slab", 3243).getInt(3243); woolSlab1 = config.getBlock("Wool Slab 1", 3244).getInt(3244); woolSlab2 = config.getBlock("Wool Slab 2", 3245).getInt(3245); + airTank = config.getBlock("Air Tank", 3246).getInt(3246); castingChannel = config.getBlock("Casting Channel", 3249).getInt(3249); manual = config.getItem("Patterns and Misc", "Tinker's Manual", 14018).getInt(14018); @@ -397,6 +398,8 @@ public static void initProps (File location) public static int smeltery; public static int searedTable; public static int castingChannel; + public static int airTank; + public static int craftedSoil; public static int oreSlag; public static int oreGravel;