From cd4679c8fdc201662dcde032181e695e1fdf6aab Mon Sep 17 00:00:00 2001 From: StevenRS11 Date: Sun, 16 Jun 2013 02:59:02 -0400 Subject: [PATCH 1/2] configurable rift gen and monolith spawn density --- StevenDimDoors/mod_pocketDim/DDProperties.java | 8 ++++++++ StevenDimDoors/mod_pocketDim/RiftGenerator.java | 6 +++--- StevenDimDoors/mod_pocketDim/SchematicLoader.java | 2 +- StevenDimDoors/mod_pocketDim/helpers/DungeonHelper.java | 6 +++--- StevenDimDoors/mod_pocketDim/world/LimboGenerator.java | 2 +- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/StevenDimDoors/mod_pocketDim/DDProperties.java b/StevenDimDoors/mod_pocketDim/DDProperties.java index f9b78b2..3d766c6 100644 --- a/StevenDimDoors/mod_pocketDim/DDProperties.java +++ b/StevenDimDoors/mod_pocketDim/DDProperties.java @@ -99,6 +99,8 @@ public class DDProperties public final int NonTntWeight; public final int RiftSpreadModifier; + public final int DungeonRiftGenDensity; + public final int MonolithSpawnDensity; public final int LimboReturnRange; public final String CustomSchematicDirectory; @@ -197,6 +199,12 @@ public class DDProperties WorldRiftGenerationEnabled = config.get(Configuration.CATEGORY_GENERAL, "Enable Rift World Generation", true, "Sets whether dungeon rifts generate in dimensions other than Limbo").getBoolean(true); + + MonolithSpawnDensity = config.get(Configuration.CATEGORY_GENERAL, "Enable Rift World Generation", 7, + "Sets the chance that monoliths will not spawn in a give Limbo chunk- higher values mean fewer monoliths, must be greater than 0, default is 7.").getInt(); + + DungeonRiftGenDensity = config.get(Configuration.CATEGORY_GENERAL, "Enable Rift World Generation", 250, + "Sets the dungeon rift density in the overworld, higher values mean less rifts, must be greater than 0. Default is 250.").getInt(); RiftSpreadModifier = config.get(Configuration.CATEGORY_GENERAL, "Rift Spread Modifier", 3, "Sets the number of times a rift can spread. 0 prevents rifts from spreading at all. " + diff --git a/StevenDimDoors/mod_pocketDim/RiftGenerator.java b/StevenDimDoors/mod_pocketDim/RiftGenerator.java index d4a6483..1f1fffe 100644 --- a/StevenDimDoors/mod_pocketDim/RiftGenerator.java +++ b/StevenDimDoors/mod_pocketDim/RiftGenerator.java @@ -51,8 +51,8 @@ public class RiftGenerator implements IWorldGenerator if(this.shouldGenHere) { - - if(random.nextInt(3500)==0) + //TODO give this a clamp int type functionality + if(random.nextInt(3000+properties.DungeonRiftGenDensity*4)==0) { i=chunkX*16-random.nextInt(16); k=chunkZ*16-random.nextInt(16); @@ -150,7 +150,7 @@ public class RiftGenerator implements IWorldGenerator } - if(random.nextInt(250)==0&&world.provider.getDimensionName()!="PocketDim"&&!world.isRemote && properties.WorldRiftGenerationEnabled) + if(random.nextInt(properties.DungeonRiftGenDensity)==0&&world.provider.getDimensionName()!="PocketDim"&&!world.isRemote && properties.WorldRiftGenerationEnabled) { // System.out.println("tryingToGen"); int blockID=Block.stoneBrick.blockID; diff --git a/StevenDimDoors/mod_pocketDim/SchematicLoader.java b/StevenDimDoors/mod_pocketDim/SchematicLoader.java index 7cf5a32..3afe6ad 100644 --- a/StevenDimDoors/mod_pocketDim/SchematicLoader.java +++ b/StevenDimDoors/mod_pocketDim/SchematicLoader.java @@ -73,7 +73,7 @@ public class SchematicLoader public void init(LinkData link) { //adding default pocket - String filePath=DungeonHelper.defaultBreak.schematicPath; + String filePath=DungeonHelper.instance().defaultBreak.schematicPath; if(dimHelper.dimList.containsKey(link.destDimID)) { if(dimHelper.dimList.get(link.destDimID).dungeonGenerator!=null) diff --git a/StevenDimDoors/mod_pocketDim/helpers/DungeonHelper.java b/StevenDimDoors/mod_pocketDim/helpers/DungeonHelper.java index fd0a3f4..5168cb6 100644 --- a/StevenDimDoors/mod_pocketDim/helpers/DungeonHelper.java +++ b/StevenDimDoors/mod_pocketDim/helpers/DungeonHelper.java @@ -72,10 +72,10 @@ public class DungeonHelper public ArrayList metadataFlipList = new ArrayList(); public ArrayList metadataNextList = new ArrayList(); - public static DungeonGenerator defaultBreak = new DungeonGenerator(0, "/schematic/somethingBroke.schematic", true); - - + + public DungeonGenerator defaultBreak = new DungeonGenerator(0, "/schematic/somethingBroke.schematic", true); public DungeonGenerator defaultUp = new DungeonGenerator(0, "/schematic/simpleStairsUp.schematic", true); + private HashSet dungeonTypeChecker; private Hashtable> dungeonTypeMapping; diff --git a/StevenDimDoors/mod_pocketDim/world/LimboGenerator.java b/StevenDimDoors/mod_pocketDim/world/LimboGenerator.java index e1e9378..3c49827 100644 --- a/StevenDimDoors/mod_pocketDim/world/LimboGenerator.java +++ b/StevenDimDoors/mod_pocketDim/world/LimboGenerator.java @@ -180,7 +180,7 @@ public class LimboGenerator extends ChunkProviderGenerate implements IChunkProvi - if(rand.nextInt(7)>1) + if(rand.nextInt(properties.MonolithSpawnDensity)>1) { return; } From 5e107f37f9db7818c3cf51b12fedd323a1960920 Mon Sep 17 00:00:00 2001 From: StevenRS11 Date: Sun, 16 Jun 2013 03:40:46 -0400 Subject: [PATCH 2/2] a few last tweaks --- .../mod_pocketDim/BlankTeleporter.java | 46 ++++++++ .../mod_pocketDim/RailTeleporter.java | 102 ------------------ .../blocks/BlockDimWallPerm.java | 3 +- .../mod_pocketDim/helpers/DungeonHelper.java | 2 +- .../mod_pocketDim/ticking/MobObelisk.java | 10 +- 5 files changed, 55 insertions(+), 108 deletions(-) create mode 100644 StevenDimDoors/mod_pocketDim/BlankTeleporter.java delete mode 100644 StevenDimDoors/mod_pocketDim/RailTeleporter.java diff --git a/StevenDimDoors/mod_pocketDim/BlankTeleporter.java b/StevenDimDoors/mod_pocketDim/BlankTeleporter.java new file mode 100644 index 0000000..259ff0e --- /dev/null +++ b/StevenDimDoors/mod_pocketDim/BlankTeleporter.java @@ -0,0 +1,46 @@ +package StevenDimDoors.mod_pocketDim; + +import StevenDimDoors.mod_pocketDim.helpers.dimHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityMinecart; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.Teleporter; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; + +public class BlankTeleporter extends Teleporter +{ + + + public BlankTeleporter(WorldServer par1WorldServer) + { + super(par1WorldServer); + } + + + /** + * Create a new portal near an entity. + */ + @Override + public void placeInPortal(Entity par1Entity, double par2, double par4, double par6, float par8) + { + + } + + + + + public void setEntityPosition(Entity entity, double x, double y, double z) + { + entity.lastTickPosX = entity.prevPosX = entity.posX = x; + entity.lastTickPosY = entity.prevPosY = entity.posY = y + (double)entity.yOffset; + entity.lastTickPosZ = entity.prevPosZ = entity.posZ = z; + entity.setPosition(x, y, z); + } + + @Override + public void removeStalePortalLocations(long par1) + { + + } +} diff --git a/StevenDimDoors/mod_pocketDim/RailTeleporter.java b/StevenDimDoors/mod_pocketDim/RailTeleporter.java deleted file mode 100644 index 6fb350d..0000000 --- a/StevenDimDoors/mod_pocketDim/RailTeleporter.java +++ /dev/null @@ -1,102 +0,0 @@ -package StevenDimDoors.mod_pocketDim; - -import StevenDimDoors.mod_pocketDim.helpers.dimHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityMinecart; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.Teleporter; -import net.minecraft.world.World; -import net.minecraft.world.WorldServer; - -public class RailTeleporter extends Teleporter -{ - int x,y,z; - World world; - LinkData sendingLink; - - - public RailTeleporter(WorldServer par1WorldServer, LinkData link) - - { - - - super(par1WorldServer); - this.x=link.destXCoord; - this.y=link.destYCoord; - this.z=link.destZCoord; - this.sendingLink=link; - world = par1WorldServer; - } - - - /** - * Create a new portal near an entity. - */ - @Override - public void placeInPortal(Entity par1Entity, double par2, double par4, double par6, float par8) - { - - - int id; - - - id=dimHelper.instance.getDestOrientation(sendingLink); - //System.out.println("Teleporting with link oreintation "+id); - - - par1Entity.rotationYaw=(id*90)+90; - if(id==2||id==6) - { - - - this.setEntityPosition(par1Entity, x+2.5, y, z+.5 ); - - - } - else if(id==3||id==7) - { - - this.setEntityPosition(par1Entity, x+.5, y, z+2.5 ); - - - } - else if(id==0||id==4) - { - - this.setEntityPosition(par1Entity,x-1.5, y, z+.5); - - } - else if(id==1||id==5) - { - - this.setEntityPosition(par1Entity,x+.5, y, z-1.5); - - - } - else - { - - this.setEntityPosition(par1Entity,x, y, z); - - } - - par1Entity.worldObj.updateEntityWithOptionalForce(par1Entity, false); - } - - - - - public void setEntityPosition(Entity entity, double x, double y, double z) - { - entity.lastTickPosX = entity.prevPosX = entity.posX = x; - entity.lastTickPosY = entity.prevPosY = entity.posY = y + (double)entity.yOffset; - entity.lastTickPosZ = entity.prevPosZ = entity.posZ = z; - entity.setPosition(x, y, z); - } - - @Override - public void removeStalePortalLocations(long par1) - { - - } -} diff --git a/StevenDimDoors/mod_pocketDim/blocks/BlockDimWallPerm.java b/StevenDimDoors/mod_pocketDim/blocks/BlockDimWallPerm.java index e0c9a97..ab0d649 100644 --- a/StevenDimDoors/mod_pocketDim/blocks/BlockDimWallPerm.java +++ b/StevenDimDoors/mod_pocketDim/blocks/BlockDimWallPerm.java @@ -4,6 +4,7 @@ import java.util.Random; import cpw.mods.fml.common.FMLCommonHandler; +import StevenDimDoors.mod_pocketDim.BlankTeleporter; import StevenDimDoors.mod_pocketDim.DDProperties; import StevenDimDoors.mod_pocketDim.LinkData; import StevenDimDoors.mod_pocketDim.mod_pocketDim; @@ -83,7 +84,7 @@ public class BlockDimWallPerm extends Block EntityPlayer.class.cast(par5Entity).setPositionAndUpdate( x, y, z ); //this complicated chunk teleports the player back to the overworld at some random location. Looks funky becaue it has to load the chunk - FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().transferPlayerToDimension((EntityPlayerMP) par5Entity, 0); + FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().transferPlayerToDimension((EntityPlayerMP) par5Entity, 0,new BlankTeleporter((WorldServer)par5Entity.worldObj)); //dimHelper.instance.teleportToPocket(par1World, new LinkData(par1World.provider.dimensionId,0,x,y,z,link.locXCoord,link.locYCoord,link.locZCoord,link.isLocPocket,0), // EntityPlayer.class.cast(par5Entity)); diff --git a/StevenDimDoors/mod_pocketDim/helpers/DungeonHelper.java b/StevenDimDoors/mod_pocketDim/helpers/DungeonHelper.java index 5168cb6..2c46f58 100644 --- a/StevenDimDoors/mod_pocketDim/helpers/DungeonHelper.java +++ b/StevenDimDoors/mod_pocketDim/helpers/DungeonHelper.java @@ -313,7 +313,7 @@ public class DungeonHelper this.deadEnds.add(new DungeonGenerator(0, "/schematics/randomTree.schematic", true)); this.deadEnds.add(new DungeonGenerator(0, "/schematics/smallHiddenTowerO.schematic", true)); this.deadEnds.add(new DungeonGenerator(0, "/schematics/smallSilverfishRoom.schematic", false)); - this.deadEnds.add(new DungeonGenerator(0, "/schematics/tntTrapO.schematic", false)); + this.deadEnds.add(new DungeonGenerator(0, "/schematics/tntTrapO.schematic", true)); this.deadEnds.add(new DungeonGenerator(0, "/schematics/smallDesert.schematic", true)); this.deadEnds.add(new DungeonGenerator(0, "/schematics/smallPond.schematic", true)); diff --git a/StevenDimDoors/mod_pocketDim/ticking/MobObelisk.java b/StevenDimDoors/mod_pocketDim/ticking/MobObelisk.java index 8b7ca50..8ca725b 100644 --- a/StevenDimDoors/mod_pocketDim/ticking/MobObelisk.java +++ b/StevenDimDoors/mod_pocketDim/ticking/MobObelisk.java @@ -93,6 +93,11 @@ public class MobObelisk extends EntityFlying implements IMob @Override public void onEntityUpdate() { + if(!(this.worldObj.provider instanceof LimboProvider ||this.worldObj.provider instanceof pocketProvider)) + { + this.setDead(); + } + byte b0 = this.dataWatcher.getWatchableObjectByte(16); this.texture="/mods/DimDoors/textures/mobs/Monolith"+b0+".png"; @@ -199,10 +204,7 @@ public class MobObelisk extends EntityFlying implements IMob this.aggro=0; entityPlayer.worldObj.playSoundAtEntity(entityPlayer,"mods.DimDoors.sfx.crack",13, 1); - if(!(this.worldObj.provider instanceof LimboProvider ||this.worldObj.provider instanceof pocketProvider)) - { - this.setDead(); - } +