From c16dd49a1848f5ad597299e51a99558bb6e347cd Mon Sep 17 00:00:00 2001 From: StevenRS11 Date: Sun, 2 Jun 2013 01:46:31 -0400 Subject: [PATCH] changed import function --- .../mod_pocketDim/DimDoorsConfig.java | 6 +- .../mod_pocketDim/DungeonGenerator.java | 8 +- .../mod_pocketDim/SchematicLoader.java | 92 +++++++++++-------- .../commands/CommandStartDungeonCreation.java | 3 + .../mod_pocketDim/mod_pocketDim.java | 10 +- .../mod_pocketDim/world/pocketGenerator.java | 3 +- .../mod_pocketDim/world/pocketProvider.java | 6 +- .../mods/DimDoors/How_to_add_dungeons.txt | 2 +- 8 files changed, 80 insertions(+), 50 deletions(-) diff --git a/StevenDimDoors/mod_pocketDim/DimDoorsConfig.java b/StevenDimDoors/mod_pocketDim/DimDoorsConfig.java index d4b2c54..41c8ed9 100644 --- a/StevenDimDoors/mod_pocketDim/DimDoorsConfig.java +++ b/StevenDimDoors/mod_pocketDim/DimDoorsConfig.java @@ -180,7 +180,7 @@ public class DimDoorsConfig bWorldGenRifts = config.get(Configuration.CATEGORY_GENERAL, "bWorldGenRifts", true); - bWorldGenRifts.comment = "Toggles the natrual generation of dungeon rifts other dimensions"; + bWorldGenRifts.comment = "Toggles the natrual generation of dungeon rifts in other dimensions"; bLimboActive = config.get(Configuration.CATEGORY_GENERAL, "bLimboActive", true); bLimboActive.comment="Toggles if dying in a pocket dim respawns the player in limbo"; @@ -188,8 +188,8 @@ public class DimDoorsConfig riftSpreadModifier = config.get(Configuration.CATEGORY_GENERAL, "riftSpreadModifier", 3); riftSpreadModifier.comment = "How many times a rift can spread- 0 prevents rifts from spreading at all. I dont recommend putting it highter than 5, because its rather exponential. "; - limboBiomeID=config.get(Configuration.CATEGORY_GENERAL, "limboBiomeID", 217); - pocketBiomeID=config.get(Configuration.CATEGORY_GENERAL, "pocketBiomeID", 218); + limboBiomeID=config.get(Configuration.CATEGORY_GENERAL, "limboBiomeID", 251); + pocketBiomeID=config.get(Configuration.CATEGORY_GENERAL, "pocketBiomeID", 250); config.save(); diff --git a/StevenDimDoors/mod_pocketDim/DungeonGenerator.java b/StevenDimDoors/mod_pocketDim/DungeonGenerator.java index 7301860..efb5601 100644 --- a/StevenDimDoors/mod_pocketDim/DungeonGenerator.java +++ b/StevenDimDoors/mod_pocketDim/DungeonGenerator.java @@ -49,7 +49,8 @@ public class DungeonGenerator implements Serializable // DungeonGenerator boolean flag = true; int count=10; - + try + { if(incoming.destYCoord>15) { do @@ -178,6 +179,11 @@ public class DungeonGenerator implements Serializable { dungeon= mod_pocketDim.defaultUp; } + } + catch(Exception e) + { + dungeon = mod_pocketDim.registeredDungeons.get(rand.nextInt(mod_pocketDim.registeredDungeons.size())); + } mod_pocketDim.loader.init(dungeon.schematicPath, incoming); diff --git a/StevenDimDoors/mod_pocketDim/SchematicLoader.java b/StevenDimDoors/mod_pocketDim/SchematicLoader.java index 77d1803..bfa51c9 100644 --- a/StevenDimDoors/mod_pocketDim/SchematicLoader.java +++ b/StevenDimDoors/mod_pocketDim/SchematicLoader.java @@ -6,10 +6,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Random; -import StevenDimDoors.mod_pocketDim.helpers.yCoordHelper; - import net.minecraft.block.Block; +import net.minecraft.block.BlockComparator; import net.minecraft.block.BlockContainer; +import net.minecraft.block.BlockDoor; +import net.minecraft.block.BlockRedstoneRepeater; import net.minecraft.block.BlockStairs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -21,9 +22,9 @@ import net.minecraft.tileentity.TileEntityDispenser; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.chunk.EmptyChunk; import net.minecraft.world.chunk.storage.ExtendedBlockStorage; import net.minecraftforge.common.ChestGenHooks; +import StevenDimDoors.mod_pocketDim.helpers.yCoordHelper; public class SchematicLoader @@ -32,8 +33,11 @@ public class SchematicLoader public short height; public short length; - public byte[] blocks; - public byte[] data; + public short[] blocks; + public byte[] blockData; + public byte[] addId = new byte[0]; + public byte[] blockId; + public NBTTagList entities; public NBTTagList tileentities; private Random rand = new Random(); @@ -88,13 +92,33 @@ public class SchematicLoader height = nbtdata.getShort("Height"); length = nbtdata.getShort("Length"); - blocks = nbtdata.getByteArray("Blocks"); - data = nbtdata.getByteArray("Data"); - entities = nbtdata.getTagList("Entities"); - tileentities = nbtdata.getTagList("TileEntities"); - this.didRead=true; - input.close(); + blockId = nbtdata.getByteArray("Blocks"); + blockData = nbtdata.getByteArray("Data"); + + blocks=new short[blockId.length]; + + this.addId = nbtdata.getByteArray("AddBlocks"); + + entities = nbtdata.getTagList("Entities"); + tileentities = nbtdata.getTagList("TileEntities"); + this.didRead=true; + input.close(); + + + for (int index = 0; index < blockId.length; index++) { + if ((index >> 1) >= addId.length) { // No corresponding AddBlocks index + blocks[index] = (short) (blockId[index] & 0xFF); + } else { + if ((index & 1) == 0) { + blocks[index] = (short) (((addId[index >> 1] & 0x0F) << 8) + (blockId[index] & 0xFF)); + } else { + blocks[index] = (short) (((addId[index >> 1] & 0xF0) << 4) + (blockId[index] & 0xFF)); + } + } + } + + } catch (Exception e) @@ -188,7 +212,7 @@ public class SchematicLoader } - else if(blockID== Block.pistonBase.blockID||blockID==Block.pistonStickyBase.blockID||blockID==Block.dispenser.blockID) + else if(blockID== Block.pistonBase.blockID||blockID==Block.pistonStickyBase.blockID||blockID==Block.dispenser.blockID||blockID==Block.dropper.blockID) { switch (metadata) { @@ -224,7 +248,7 @@ public class SchematicLoader } - else if(blockID== Block.redstoneRepeaterActive.blockID||blockID==Block.redstoneRepeaterIdle.blockID||blockID== Block.tripWireSource.blockID||blockID== Block.doorIron.blockID||blockID==Block.doorWood.blockID) + else if(Block.blocksList[blockID] instanceof BlockRedstoneRepeater ||Block.blocksList[blockID] instanceof BlockDoor ||blockID== Block.tripWireSource.blockID||Block.blocksList[blockID] instanceof BlockComparator) { switch (metadata) { @@ -359,7 +383,7 @@ public class SchematicLoader } - else if(blockID== Block.pistonBase.blockID||blockID==Block.pistonStickyBase.blockID||blockID==Block.dispenser.blockID) + else if(blockID== Block.pistonBase.blockID||blockID==Block.pistonStickyBase.blockID||blockID==Block.dispenser.blockID||blockID==Block.dropper.blockID) { switch (metadata) { @@ -394,7 +418,7 @@ public class SchematicLoader } - else if(blockID== Block.redstoneRepeaterActive.blockID||blockID==Block.redstoneRepeaterIdle.blockID||blockID== Block.tripWireSource.blockID||blockID== Block.doorIron.blockID||blockID==Block.doorWood.blockID) + else if(Block.blocksList[blockID] instanceof BlockRedstoneRepeater ||Block.blocksList[blockID] instanceof BlockDoor ||blockID== Block.tripWireSource.blockID||Block.blocksList[blockID] instanceof BlockComparator) { switch (metadata) { @@ -524,7 +548,7 @@ public class SchematicLoader } - else if(blockID== Block.pistonBase.blockID||blockID==Block.pistonStickyBase.blockID||blockID==Block.dispenser.blockID) + else if(blockID== Block.pistonBase.blockID||blockID==Block.pistonStickyBase.blockID||blockID==Block.dispenser.blockID||blockID==Block.dropper.blockID) { switch (metadata) { @@ -560,7 +584,7 @@ public class SchematicLoader } - else if(blockID== Block.redstoneRepeaterActive.blockID||blockID==Block.redstoneRepeaterIdle.blockID||blockID== Block.tripWireSource.blockID||blockID== Block.doorIron.blockID||blockID==Block.doorWood.blockID) + else if(Block.blocksList[blockID] instanceof BlockRedstoneRepeater ||Block.blocksList[blockID] instanceof BlockDoor ||blockID== Block.tripWireSource.blockID||Block.blocksList[blockID] instanceof BlockComparator) { switch (metadata) { @@ -715,10 +739,10 @@ public class SchematicLoader zCooe=z-35; } - int index = y * loader.width * loader.length + z * loader.width + x; - + int index = y * width * length + z * width + x; + int blockToReplace=loader.blocks[index]; - int blockMetaData=loader.data[index]; + int blockMetaData=loader.blockData[index]; NBTTagList tileEntity = loader.tileentities; HashMap tileEntityMap= new HashMap(); int size = tileEntity.tagCount(); @@ -732,23 +756,12 @@ public class SchematicLoader { this.exitLinks.add(new Point3D(i+xCooe, j+yCooe, k+zCooe)); } - if(blockToReplace==-124) - { - blockToReplace=Block.tripWire.blockID; - } - if(blockToReplace==-125) - { - blockToReplace=Block.tripWireSource.blockID; - } - if(blockToReplace<0&&blockToReplace!=-39) - { - } - - if(blockToReplace<0) - { - blockToReplace=mod_pocketDim.blockDimWallID; - } + if(Block.blocksList[blockToReplace]==null&&blockToReplace!=0||blockToReplace>158) + { + blockToReplace=mod_pocketDim.blockDimWall.blockID; + } + if(blockToReplace>0) { @@ -951,6 +964,10 @@ public class SchematicLoader public void setBlockDirectly(World world, int x, int y, int z,int id, int metadata) { + if(Block.blocksList[id]==null) + { + return; + } Chunk chunk; this.cX=x >>4; this.cZ=z >>4; @@ -965,7 +982,8 @@ public class SchematicLoader try { chunk=world.getChunkFromChunkCoords(cX, cZ); - if (chunk.getBlockStorageArray()[cY] == null) { + if (chunk.getBlockStorageArray()[cY] == null) + { chunk.getBlockStorageArray()[cY] = new ExtendedBlockStorage(cY << 4, !world.provider.hasNoSky); } diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandStartDungeonCreation.java b/StevenDimDoors/mod_pocketDim/commands/CommandStartDungeonCreation.java index 43a404d..40ec3de 100644 --- a/StevenDimDoors/mod_pocketDim/commands/CommandStartDungeonCreation.java +++ b/StevenDimDoors/mod_pocketDim/commands/CommandStartDungeonCreation.java @@ -38,6 +38,9 @@ public class CommandStartDungeonCreation extends CommandBase dimHelper.instance.teleportToPocket(player.worldObj, link, player); + this.getCommandSenderAsPlayer(var1).sendChatToPlayer("DimID = "+ link.destDimID); + + diff --git a/StevenDimDoors/mod_pocketDim/mod_pocketDim.java b/StevenDimDoors/mod_pocketDim/mod_pocketDim.java index 395841c..364ba48 100644 --- a/StevenDimDoors/mod_pocketDim/mod_pocketDim.java +++ b/StevenDimDoors/mod_pocketDim/mod_pocketDim.java @@ -327,7 +327,7 @@ public class mod_pocketDim this.complexHalls.add(new DungeonGenerator(weight,path,open)); } - else if(name[0].equals("pistonTrap")) + else if(name[0].equals("trap")) { this.pistonTraps.add(new DungeonGenerator(weight,path,open)); @@ -438,7 +438,7 @@ public class mod_pocketDim DimensionManager.registerProviderType(this.providerID, pocketProvider.class, false); - DimensionManager.registerProviderType(this.limboProviderID, LimboProvider.class, false); + DimensionManager.registerProviderType(this.limboProviderID, LimboProvider.class, true); @@ -612,7 +612,7 @@ public class mod_pocketDim this.blocksImmuneToRift.add(Block.blockLapis.blockID); this.blocksImmuneToRift.add(Block.bedrock.blockID); - + /** this.hubs.add(new DungeonGenerator(0, "/schematics/4WayBasicHall.schematic", false)); this.hubs.add(new DungeonGenerator(0, "/schematics/4WayBasicHall.schematic", false)); this.hubs.add(new DungeonGenerator(0, "/schematics/doorTotemRuins.schematic", true)); @@ -690,7 +690,7 @@ public class mod_pocketDim this.registeredDungeons.addAll(this.hubs); - +**/ @@ -708,6 +708,8 @@ public class mod_pocketDim this.metadataFlipList.add(Block.doorWood.blockID); this.metadataFlipList.add(Block.pistonBase.blockID); this.metadataFlipList.add(Block.pistonStickyBase.blockID); + this.metadataFlipList.add(Block.redstoneComparatorActive); + this.metadataFlipList.add(Block.redstoneComparatorIdle); this.metadataFlipList.add(Block.stairsNetherBrick.blockID); this.metadataFlipList.add(Block.stairsCobblestone.blockID); diff --git a/StevenDimDoors/mod_pocketDim/world/pocketGenerator.java b/StevenDimDoors/mod_pocketDim/world/pocketGenerator.java index 1015e23..f8b9db9 100644 --- a/StevenDimDoors/mod_pocketDim/world/pocketGenerator.java +++ b/StevenDimDoors/mod_pocketDim/world/pocketGenerator.java @@ -46,7 +46,8 @@ public class pocketGenerator extends ChunkProviderGenerate implements IChunkProv @Override - public Chunk loadChunk(int var1, int var2) { + public Chunk loadChunk(int var1, int var2) + { // TODO Auto-generated method stub return super.loadChunk(var1, var2); } diff --git a/StevenDimDoors/mod_pocketDim/world/pocketProvider.java b/StevenDimDoors/mod_pocketDim/world/pocketProvider.java index 0704d78..97d9276 100644 --- a/StevenDimDoors/mod_pocketDim/world/pocketProvider.java +++ b/StevenDimDoors/mod_pocketDim/world/pocketProvider.java @@ -98,13 +98,13 @@ public class pocketProvider extends WorldProvider { int respawnDim; - // if(mod_pocketDim.isLimboActive) + if(mod_pocketDim.isLimboActive) { respawnDim= mod_pocketDim.limboDimID; } - // else + else { - // respawnDim= dimHelper.dimList.get(this.dimensionId).exitDimLink.destDimID; + respawnDim= dimHelper.dimList.get(this.dimensionId).exitDimLink.destDimID; } if(dimHelper.getWorld(respawnDim)==null) diff --git a/resources/mods/DimDoors/How_to_add_dungeons.txt b/resources/mods/DimDoors/How_to_add_dungeons.txt index fc0fa56..86bcc9d 100644 --- a/resources/mods/DimDoors/How_to_add_dungeons.txt +++ b/resources/mods/DimDoors/How_to_add_dungeons.txt @@ -29,7 +29,7 @@ To name it, use the following format- ___.schematic -The dungeon types are ‘hub’, ‘simpleHall’, ‘complexHall’, ‘pistonTrap’, ‘maze’, ‘exit’, and ‘deadEnd’. +The dungeon types are ‘hub’, ‘simpleHall’, ‘complexHall’, ‘trap', ‘maze’, ‘exit’, and ‘deadEnd’. isOpen determines if the dungeon is an open-air style pocket, or a closed in/walled it pocket that will spawn Monoliths.