From 74b2c3dfe68c4759ae726eb00c4175c94430d3e1 Mon Sep 17 00:00:00 2001 From: LexManos Date: Fri, 4 Mar 2016 16:40:34 -0800 Subject: [PATCH] World Patches work. --- .../net/minecraft/item/Item.java.patch | 7 +- .../minecraft/world/WorldProvider.java.patch | 7 +- .../world/WorldProviderSurface.java.patch | 10 ++ .../minecraft/world/chunk/Chunk.java.patch | 20 ++- .../world/gen/ChunkProviderEnd.java.patch | 68 ++++++++- .../world/gen/ChunkProviderHell.java.patch | 104 +++++++++++++ .../gen/ChunkProviderOverworld.java.patch | 101 ++++++++++++ .../world/gen/ChunkProviderServer.java.patch | 79 +++++++++- .../world/gen/MapGenCaves.java.patch | 58 +++++-- .../world/gen/MapGenRavine.java.patch | 66 ++++++-- .../world/gen/layer/GenLayer.java.patch | 12 +- .../world/gen/layer/GenLayerBiome.java.patch | 80 +++++++++- ...ComponentScatteredFeaturePieces.java.patch | 38 +++-- .../gen/structure/MapGenStronghold.java.patch | 23 +++ .../StructureMineshaftPieces.java.patch | 15 -- .../StructureStrongholdPieces.java.patch | 41 ----- .../StructureVillagePieces.java.patch | 28 ++-- .../world/gen/ChunkProviderEnd.java.patch.rej | 60 -------- .../gen/ChunkProviderGenerate.java.patch.rej | 117 -------------- .../gen/ChunkProviderHell.java.patch.rej | 144 ------------------ .../gen/ChunkProviderServer.java.patch.rej | 85 ----------- .../world/gen/MapGenCaves.java.patch.rej | 37 ----- .../world/gen/MapGenRavine.java.patch.rej | 32 ---- .../world/gen/layer/GenLayer.java.patch.rej | 10 -- .../gen/layer/GenLayerBiome.java.patch.rej | 84 ---------- ...onentScatteredFeaturePieces.java.patch.rej | 55 ------- .../structure/MapGenStronghold.java.patch.rej | 21 --- .../StructureMineshaftPieces.java.patch.rej | 19 --- ...StructureNetherBridgePieces.java.patch.rej | 29 ---- .../StructureStrongholdPieces.java.patch.rej | 37 ----- .../StructureVillagePieces.java.patch.rej | 19 --- .../minecraftforge/common/ChestGenHooks.java | 18 +-- .../event/ForgeEventFactory.java | 21 ++- ...derEvent.java => ChunkGeneratorEvent.java} | 21 +-- .../event/terraingen/InitNoiseGensEvent.java | 110 +++++++++++-- .../event/terraingen/PopulateChunkEvent.java | 17 ++- .../event/terraingen/TerrainGen.java | 9 +- .../fml/common/IWorldGenerator.java | 7 +- .../fml/common/registry/GameRegistry.java | 3 +- src/main/resources/forge.exc | 4 +- src/main/resources/forge_at.cfg | 30 ++++ 41 files changed, 810 insertions(+), 936 deletions(-) create mode 100644 patches.mcp/minecraft/net/minecraft/world/WorldProviderSurface.java.patch create mode 100644 patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderHell.java.patch create mode 100644 patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderOverworld.java.patch create mode 100644 patches.mcp/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java.patch delete mode 100644 patches.mcp/minecraft/net/minecraft/world/gen/structure/StructureMineshaftPieces.java.patch delete mode 100644 patches.mcp/minecraft/net/minecraft/world/gen/structure/StructureStrongholdPieces.java.patch delete mode 100644 rejects/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/gen/ChunkProviderGenerate.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/gen/ChunkProviderHell.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/gen/MapGenCaves.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/gen/MapGenRavine.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/gen/layer/GenLayer.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/gen/structure/StructureMineshaftPieces.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/gen/structure/StructureNetherBridgePieces.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/gen/structure/StructureStrongholdPieces.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch.rej rename src/main/java/net/minecraftforge/event/terraingen/{ChunkProviderEvent.java => ChunkGeneratorEvent.java} (68%) diff --git a/patches.mcp/minecraft/net/minecraft/item/Item.java.patch b/patches.mcp/minecraft/net/minecraft/item/Item.java.patch index 6a756fdcb..4f4b6169d 100644 --- a/patches.mcp/minecraft/net/minecraft/item/Item.java.patch +++ b/patches.mcp/minecraft/net/minecraft/item/Item.java.patch @@ -57,7 +57,7 @@ Vec3d vec3d1 = vec3d.addVector((double)f6 * d3, (double)f5 * d3, (double)f7 * d3); return worldIn.rayTraceBlocks(vec3d, vec3d1, useLiquids, !useLiquids, false); } -@@ -422,11 +431,628 @@ +@@ -422,11 +431,629 @@ return false; } @@ -301,6 +301,7 @@ + * @param original Original result registered with the chest gen hooks. + * @return New values to use as the random item, typically this will be original + */ ++ @Deprecated // LootTables! + public net.minecraft.util.WeightedRandomChestContent getChestGenBase(net.minecraftforge.common.ChestGenHooks chest, Random rnd, net.minecraft.util.WeightedRandomChestContent original) + { + if (this instanceof ItemEnchantedBook) @@ -686,7 +687,7 @@ public static void registerItems() { registerItemBlock(Blocks.stone, (new ItemMultiTexture(Blocks.stone, Blocks.stone, new Function() -@@ -935,6 +1561,10 @@ +@@ -935,6 +1562,10 @@ private final float damageVsEntity; private final int enchantability; @@ -697,7 +698,7 @@ private ToolMaterial(int harvestLevel, int maxUses, float efficiency, float damageVsEntity, int enchantability) { this.harvestLevel = harvestLevel; -@@ -969,9 +1599,36 @@ +@@ -969,9 +1600,36 @@ return this.enchantability; } diff --git a/patches.mcp/minecraft/net/minecraft/world/WorldProvider.java.patch b/patches.mcp/minecraft/net/minecraft/world/WorldProvider.java.patch index 730ed8d0e..6172c74f1 100644 --- a/patches.mcp/minecraft/net/minecraft/world/WorldProvider.java.patch +++ b/patches.mcp/minecraft/net/minecraft/world/WorldProvider.java.patch @@ -54,7 +54,7 @@ } @SideOnly(Side.CLIENT) -@@ -212,6 +198,322 @@ +@@ -212,6 +198,327 @@ return new WorldBorder(); } @@ -67,6 +67,7 @@ + /** + * Sets the providers current dimension ID, used in default getSaveFolder() + * Added to allow default providers to be registered for multiple dimensions. ++ * This is to denote the exact dimension ID opposed to the 'type' in WorldType + * + * @param dim Dimension ID + */ @@ -74,6 +75,10 @@ + { + this.dimensionId = dim; + } ++ public int getDimension() ++ { ++ return this.dimensionId; ++ } + + /** + * Returns the sub-folder of the world folder that this WorldProvider saves to. diff --git a/patches.mcp/minecraft/net/minecraft/world/WorldProviderSurface.java.patch b/patches.mcp/minecraft/net/minecraft/world/WorldProviderSurface.java.patch new file mode 100644 index 000000000..d9aeb58c8 --- /dev/null +++ b/patches.mcp/minecraft/net/minecraft/world/WorldProviderSurface.java.patch @@ -0,0 +1,10 @@ +--- ../src-base/minecraft/net/minecraft/world/WorldProviderSurface.java ++++ ../src-work/minecraft/net/minecraft/world/WorldProviderSurface.java +@@ -9,6 +9,6 @@ + + public boolean func_186056_c(int p_186056_1_, int p_186056_2_) + { +- return !this.worldObj.isSpawnChunk(p_186056_1_, p_186056_2_); ++ return !this.worldObj.isSpawnChunk(p_186056_1_, p_186056_2_) || !net.minecraftforge.common.DimensionManager.shouldLoadSpawn(this.worldObj.provider.getDimension()); + } + } diff --git a/patches.mcp/minecraft/net/minecraft/world/chunk/Chunk.java.patch b/patches.mcp/minecraft/net/minecraft/world/chunk/Chunk.java.patch index dec892407..cc85a3ee6 100644 --- a/patches.mcp/minecraft/net/minecraft/world/chunk/Chunk.java.patch +++ b/patches.mcp/minecraft/net/minecraft/world/chunk/Chunk.java.patch @@ -198,7 +198,15 @@ i = MathHelper.clamp_int(i, 0, this.entityLists.length - 1); j = MathHelper.clamp_int(j, 0, this.entityLists.length - 1); -@@ -1050,7 +1050,7 @@ +@@ -994,6 +994,7 @@ + { + this.func_150809_p(); + p_186034_1_.func_185931_b(this.xPosition, this.zPosition); ++ net.minecraftforge.fml.common.registry.GameRegistry.generateWorld(this.xPosition, this.zPosition, this.worldObj, p_186034_1_, this.worldObj.getChunkProvider()); + this.setChunkModified(); + } + } +@@ -1050,7 +1051,7 @@ { BlockPos blockpos = (BlockPos)this.tileEntityPosQueue.poll(); @@ -207,7 +215,7 @@ { TileEntity tileentity = this.createNewTileEntity(blockpos); this.worldObj.setTileEntity(blockpos, tileentity); -@@ -1114,6 +1114,13 @@ +@@ -1114,6 +1115,13 @@ @SideOnly(Side.CLIENT) public void func_186033_a(PacketBuffer p_186033_1_, int p_186033_2_, boolean p_186033_3_) { @@ -221,7 +229,7 @@ boolean flag = !this.worldObj.provider.getHasNoSky(); for (int i = 0; i < this.storageArrays.length; ++i) -@@ -1162,10 +1169,16 @@ +@@ -1162,10 +1170,16 @@ this.isTerrainPopulated = true; this.generateHeightMap(); @@ -238,7 +246,7 @@ } public BiomeGenBase getBiome(BlockPos pos, BiomeProvider chunkManager) -@@ -1239,7 +1252,7 @@ +@@ -1239,7 +1253,7 @@ { BlockPos blockpos2 = blockpos1.offset(enumfacing); @@ -247,7 +255,7 @@ { this.worldObj.checkLight(blockpos2); } -@@ -1370,7 +1383,7 @@ +@@ -1370,7 +1384,7 @@ { blockpos$mutableblockpos.set(blockpos$mutableblockpos.getX(), l, blockpos$mutableblockpos.getZ()); @@ -256,7 +264,7 @@ { this.worldObj.checkLight(blockpos$mutableblockpos); } -@@ -1481,4 +1494,20 @@ +@@ -1481,4 +1495,20 @@ QUEUED, CHECK; } diff --git a/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java.patch b/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java.patch index 9f87f08fa..827e84f8b 100644 --- a/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java.patch +++ b/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java.patch @@ -1,12 +1,72 @@ --- ../src-base/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java +++ ../src-work/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java -@@ -123,6 +123,9 @@ +@@ -39,6 +39,9 @@ + double[] field_185967_f; + double[] field_185968_g; + private final WorldGenEndIsland field_185975_r = new WorldGenEndIsland(); ++ // temporary variables used during event handling ++ private int chunkX = 0; ++ private int chunkZ = 0; + + public ChunkProviderEnd(World p_i46667_1_, boolean p_i46667_2_, long p_i46667_3_) + { +@@ -51,6 +54,16 @@ + this.noiseGen5 = new NoiseGeneratorOctaves(this.rand, 10); + this.noiseGen6 = new NoiseGeneratorOctaves(this.rand, 16); + this.field_185973_o = new NoiseGeneratorSimplex(this.rand); ++ ++ net.minecraftforge.event.terraingen.InitNoiseGensEvent.ContextEnd ctx = ++ new net.minecraftforge.event.terraingen.InitNoiseGensEvent.ContextEnd(field_185969_i, field_185970_j, field_185971_k, noiseGen5, noiseGen6, field_185973_o); ++ ctx = net.minecraftforge.event.terraingen.TerrainGen.getModdedNoiseGenerators(p_i46667_1_, this.rand, ctx); ++ this.field_185969_i = ctx.getLPerlin1(); ++ this.field_185970_j = ctx.getLPerlin2(); ++ this.field_185971_k = ctx.getPerlin(); ++ this.noiseGen5 = ctx.getDepth(); ++ this.noiseGen6 = ctx.getScale(); ++ this.field_185973_o = ctx.getIsland(); + } + + public void setBlocksInChunk(int p_180518_1_, int p_180518_2_, ChunkPrimer p_180518_3_) +@@ -123,6 +136,7 @@ public void func_185962_a(ChunkPrimer p_185962_1_) { -+ net.minecraftforge.event.terraingen.ChunkProviderEvent.ReplaceBiomeBlocks event = new net.minecraftforge.event.terraingen.ChunkProviderEvent.ReplaceBiomeBlocks(this, chunkX, chunkZ, p_180519_1_, this.endWorld); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event); -+ if (event.getResult() == net.minecraftforge.fml.common.eventhandler.Event.Result.DENY) return; ++ if (!net.minecraftforge.event.ForgeEventFactory.onReplaceBiomeBlocks(this, this.chunkX, this.chunkZ, p_185962_1_, this.worldObj)) return; for (int i = 0; i < 16; ++i) { for (int j = 0; j < 16; ++j) +@@ -174,6 +188,7 @@ + + public Chunk func_185932_a(int p_185932_1_, int p_185932_2_) + { ++ this.chunkX = p_185932_1_; this.chunkZ = p_185932_2_; + this.rand.setSeed((long)p_185932_1_ * 341873128712L + (long)p_185932_2_ * 132897987541L); + ChunkPrimer chunkprimer = new ChunkPrimer(); + this.biomesForGeneration = this.worldObj.getWorldChunkManager().loadBlockGeneratorData(this.biomesForGeneration, p_185932_1_ * 16, p_185932_2_ * 16, 16, 16); +@@ -255,6 +270,10 @@ + + private double[] func_185963_a(double[] p_185963_1_, int p_185963_2_, int p_185963_3_, int p_185963_4_, int p_185963_5_, int p_185963_6_, int p_185963_7_) + { ++ net.minecraftforge.event.terraingen.ChunkGeneratorEvent.InitNoiseField event = new net.minecraftforge.event.terraingen.ChunkGeneratorEvent.InitNoiseField(this, p_185963_1_, p_185963_2_, p_185963_3_, p_185963_4_, p_185963_5_, p_185963_6_, p_185963_7_); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event); ++ if (event.getResult() == net.minecraftforge.fml.common.eventhandler.Event.Result.DENY) return event.noisefield; ++ + if (p_185963_1_ == null) + { + p_185963_1_ = new double[p_185963_5_ * p_185963_6_ * p_185963_7_]; +@@ -327,6 +346,7 @@ + public void func_185931_b(int p_185931_1_, int p_185931_2_) + { + BlockFalling.fallInstantly = true; ++ net.minecraftforge.event.ForgeEventFactory.onChunkPopulate(true, this, this.worldObj, p_185931_1_, p_185931_2_, false); + BlockPos blockpos = new BlockPos(p_185931_1_ * 16, 0, p_185931_2_ * 16); + + if (this.mapFeaturesEnabled) +@@ -374,6 +394,7 @@ + } + } + ++ net.minecraftforge.event.ForgeEventFactory.onChunkPopulate(false, this, this.worldObj, p_185931_1_, p_185931_2_, false); + BlockFalling.fallInstantly = false; + } + diff --git a/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderHell.java.patch b/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderHell.java.patch new file mode 100644 index 000000000..b0983b7e3 --- /dev/null +++ b/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderHell.java.patch @@ -0,0 +1,104 @@ +--- ../src-base/minecraft/net/minecraft/world/gen/ChunkProviderHell.java ++++ ../src-work/minecraft/net/minecraft/world/gen/ChunkProviderHell.java +@@ -76,6 +76,19 @@ + this.field_185946_g = new NoiseGeneratorOctaves(this.field_185954_p, 10); + this.field_185947_h = new NoiseGeneratorOctaves(this.field_185954_p, 16); + worldIn.setSeaLevel(63); ++ ++ net.minecraftforge.event.terraingen.InitNoiseGensEvent.ContextHell ctx = ++ new net.minecraftforge.event.terraingen.InitNoiseGensEvent.ContextHell(field_185957_u, field_185958_v, field_185959_w, slowsandGravelNoiseGen, netherrackExculsivityNoiseGen, field_185946_g, field_185947_h); ++ ctx = net.minecraftforge.event.terraingen.TerrainGen.getModdedNoiseGenerators(worldIn, this.field_185954_p, ctx); ++ this.field_185957_u = ctx.getLPerlin1(); ++ this.field_185958_v = ctx.getLPerlin2(); ++ this.field_185959_w = ctx.getPerlin(); ++ this.slowsandGravelNoiseGen = ctx.getPerlin2(); ++ this.netherrackExculsivityNoiseGen = ctx.getPerlin3(); ++ this.field_185946_g = ctx.getScale(); ++ this.field_185947_h = ctx.getDepth(); ++ this.genNetherBridge = (MapGenNetherBridge)net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(genNetherBridge, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.NETHER_BRIDGE); ++ this.field_185939_I = net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(field_185939_I, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.NETHER_CAVE); + } + + public void func_185936_a(int p_185936_1_, int p_185936_2_, ChunkPrimer p_185936_3_) +@@ -154,6 +167,7 @@ + + public void func_185937_b(int p_185937_1_, int p_185937_2_, ChunkPrimer p_185937_3_) + { ++ if (!net.minecraftforge.event.ForgeEventFactory.onReplaceBiomeBlocks(this, p_185937_1_, p_185937_2_, p_185937_3_, this.field_185952_n)) return; + int i = this.field_185952_n.getSeaLevel() + 1; + double d0 = 0.03125D; + this.slowsandNoise = this.slowsandGravelNoiseGen.generateNoiseOctaves(this.slowsandNoise, p_185937_1_ * 16, p_185937_2_ * 16, 0, 16, 16, 1, d0, d0, 1.0D); +@@ -276,6 +290,10 @@ + p_185938_1_ = new double[p_185938_5_ * p_185938_6_ * p_185938_7_]; + } + ++ net.minecraftforge.event.terraingen.ChunkGeneratorEvent.InitNoiseField event = new net.minecraftforge.event.terraingen.ChunkGeneratorEvent.InitNoiseField(this, p_185938_1_, p_185938_2_, p_185938_3_, p_185938_4_, p_185938_5_, p_185938_6_, p_185938_7_); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event); ++ if (event.getResult() == net.minecraftforge.fml.common.eventhandler.Event.Result.DENY) return event.noisefield; ++ + double d0 = 684.412D; + double d1 = 2053.236D; + this.noiseData4 = this.field_185946_g.generateNoiseOctaves(this.noiseData4, p_185938_2_, p_185938_3_, p_185938_4_, p_185938_5_, 1, p_185938_7_, 1.0D, 0.0D, 1.0D); +@@ -357,20 +375,25 @@ + public void func_185931_b(int p_185931_1_, int p_185931_2_) + { + BlockFalling.fallInstantly = true; ++ net.minecraftforge.event.ForgeEventFactory.onChunkPopulate(true, this, this.field_185952_n, p_185931_1_, p_185931_2_, false); + BlockPos blockpos = new BlockPos(p_185931_1_ * 16, 0, p_185931_2_ * 16); + ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(p_185931_1_, p_185931_2_); + this.genNetherBridge.generateStructure(this.field_185952_n, this.field_185954_p, chunkcoordintpair); + ++ if (net.minecraftforge.event.terraingen.TerrainGen.populate(this, this.field_185952_n, this.field_185954_p, p_185931_1_, p_185931_2_, false, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.NETHER_LAVA)) + for (int i = 0; i < 8; ++i) + { + this.field_177472_y.generate(this.field_185952_n, this.field_185954_p, blockpos.add(this.field_185954_p.nextInt(16) + 8, this.field_185954_p.nextInt(120) + 4, this.field_185954_p.nextInt(16) + 8)); + } + ++ if (net.minecraftforge.event.terraingen.TerrainGen.populate(this, this.field_185952_n, this.field_185954_p, p_185931_1_, p_185931_2_, false, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.FIRE)) + for (int j = 0; j < this.field_185954_p.nextInt(this.field_185954_p.nextInt(10) + 1) + 1; ++j) + { + this.field_177470_t.generate(this.field_185952_n, this.field_185954_p, blockpos.add(this.field_185954_p.nextInt(16) + 8, this.field_185954_p.nextInt(120) + 4, this.field_185954_p.nextInt(16) + 8)); + } + ++ if (net.minecraftforge.event.terraingen.TerrainGen.populate(this, this.field_185952_n, this.field_185954_p, p_185931_1_, p_185931_2_, false, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.GLOWSTONE)) ++ { + for (int k = 0; k < this.field_185954_p.nextInt(this.field_185954_p.nextInt(10) + 1); ++k) + { + this.field_177469_u.generate(this.field_185952_n, this.field_185954_p, blockpos.add(this.field_185954_p.nextInt(16) + 8, this.field_185954_p.nextInt(120) + 4, this.field_185954_p.nextInt(16) + 8)); +@@ -380,7 +403,13 @@ + { + this.field_177468_v.generate(this.field_185952_n, this.field_185954_p, blockpos.add(this.field_185954_p.nextInt(16) + 8, this.field_185954_p.nextInt(128), this.field_185954_p.nextInt(16) + 8)); + } ++ }//Forge: End doGLowstone + ++ net.minecraftforge.event.ForgeEventFactory.onChunkPopulate(false, this, this.field_185952_n, p_185931_1_, p_185931_2_, false); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.terraingen.DecorateBiomeEvent.Pre(this.field_185952_n, this.field_185954_p, blockpos)); ++ ++ if (net.minecraftforge.event.terraingen.TerrainGen.decorate(this.field_185952_n, this.field_185954_p, blockpos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.SHROOM)) ++ { + if (this.field_185954_p.nextBoolean()) + { + this.field_177471_z.generate(this.field_185952_n, this.field_185954_p, blockpos.add(this.field_185954_p.nextInt(16) + 8, this.field_185954_p.nextInt(128), this.field_185954_p.nextInt(16) + 8)); +@@ -390,17 +419,22 @@ + { + this.field_177465_A.generate(this.field_185952_n, this.field_185954_p, blockpos.add(this.field_185954_p.nextInt(16) + 8, this.field_185954_p.nextInt(128), this.field_185954_p.nextInt(16) + 8)); + } ++ } + ++ if (net.minecraftforge.event.terraingen.TerrainGen.generateOre(this.field_185952_n, this.field_185954_p, field_177467_w, blockpos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.QUARTZ)) + for (int i1 = 0; i1 < 16; ++i1) + { + this.field_177467_w.generate(this.field_185952_n, this.field_185954_p, blockpos.add(this.field_185954_p.nextInt(16), this.field_185954_p.nextInt(108) + 10, this.field_185954_p.nextInt(16))); + } + ++ if (net.minecraftforge.event.terraingen.TerrainGen.populate(this, this.field_185952_n, this.field_185954_p, p_185931_1_, p_185931_2_, false, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.NETHER_LAVA2)) + for (int j1 = 0; j1 < 16; ++j1) + { + this.field_177473_x.generate(this.field_185952_n, this.field_185954_p, blockpos.add(this.field_185954_p.nextInt(16), this.field_185954_p.nextInt(108) + 10, this.field_185954_p.nextInt(16))); + } + ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.terraingen.DecorateBiomeEvent.Post(this.field_185952_n, this.field_185954_p, blockpos)); ++ + BlockFalling.fallInstantly = false; + } + diff --git a/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderOverworld.java.patch b/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderOverworld.java.patch new file mode 100644 index 000000000..a7478f321 --- /dev/null +++ b/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderOverworld.java.patch @@ -0,0 +1,101 @@ +--- ../src-base/minecraft/net/minecraft/world/gen/ChunkProviderOverworld.java ++++ ../src-work/minecraft/net/minecraft/world/gen/ChunkProviderOverworld.java +@@ -59,6 +59,15 @@ + + public ChunkProviderOverworld(World p_i46668_1_, long p_i46668_2_, boolean p_i46668_4_, String p_i46668_5_) + { ++ { ++ field_186003_v = net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(field_186003_v, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.CAVE); ++ field_186004_w = (MapGenStronghold)net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(field_186004_w, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.STRONGHOLD); ++ field_186005_x = (MapGenVillage)net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(field_186005_x, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.VILLAGE); ++ field_186006_y = (MapGenMineshaft)net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(field_186006_y, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.MINESHAFT); ++ field_186007_z = (MapGenScatteredFeature)net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(field_186007_z, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.SCATTERED_FEATURE); ++ field_185979_A = net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(field_185979_A, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.RAVINE); ++ field_185980_B = (StructureOceanMonument)net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(field_185980_B, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.OCEAN_MONUMENT); ++ } + this.field_185995_n = p_i46668_1_; + this.field_185996_o = p_i46668_4_; + this.field_185997_p = p_i46668_1_.getWorldInfo().getTerrainType(); +@@ -88,6 +97,17 @@ + this.field_186001_t = this.field_186000_s.useLavaOceans ? Blocks.lava.getDefaultState() : Blocks.water.getDefaultState(); + p_i46668_1_.setSeaLevel(this.field_186000_s.seaLevel); + } ++ ++ net.minecraftforge.event.terraingen.InitNoiseGensEvent.ContextOverworld ctx = ++ new net.minecraftforge.event.terraingen.InitNoiseGensEvent.ContextOverworld(field_185991_j, field_185992_k, field_185993_l, field_185994_m, field_185983_b, field_185984_c, field_185985_d); ++ ctx = net.minecraftforge.event.terraingen.TerrainGen.getModdedNoiseGenerators(p_i46668_1_, this.field_185990_i, ctx); ++ this.field_185991_j = ctx.getLPerlin1(); ++ this.field_185992_k = ctx.getLPerlin2(); ++ this.field_185993_l = ctx.getPerlin(); ++ this.field_185994_m = ctx.getHeight(); ++ this.field_185983_b = ctx.getScale(); ++ this.field_185984_c = ctx.getDepth(); ++ this.field_185985_d = ctx.getForest(); + } + + public void func_185976_a(int p_185976_1_, int p_185976_2_, ChunkPrimer p_185976_3_) +@@ -161,6 +181,7 @@ + + public void func_185977_a(int p_185977_1_, int p_185977_2_, ChunkPrimer p_185977_3_, BiomeGenBase[] p_185977_4_) + { ++ if (!net.minecraftforge.event.ForgeEventFactory.onReplaceBiomeBlocks(this, p_185977_1_, p_185977_2_, p_185977_3_, this.field_185995_n)) return; + double d0 = 0.03125D; + this.field_186002_u = this.field_185994_m.func_151599_a(this.field_186002_u, (double)(p_185977_1_ * 16), (double)(p_185977_2_ * 16), 16, 16, d0 * 2.0D, d0 * 2.0D, 1.0D); + +@@ -365,6 +386,8 @@ + boolean flag = false; + ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(p_185931_1_, p_185931_2_); + ++ net.minecraftforge.event.ForgeEventFactory.onChunkPopulate(true, this, this.field_185995_n, p_185931_1_, p_185931_2_, flag); ++ + if (this.field_185996_o) + { + if (this.field_186000_s.useMineShafts) +@@ -394,6 +417,7 @@ + } + + if (biomegenbase != Biomes.desert && biomegenbase != Biomes.desertHills && this.field_186000_s.useWaterLakes && !flag && this.field_185990_i.nextInt(this.field_186000_s.waterLakeChance) == 0) ++ if (net.minecraftforge.event.terraingen.TerrainGen.populate(this, this.field_185995_n, this.field_185990_i, p_185931_1_, p_185931_2_, flag, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.LAKE)) + { + int i1 = this.field_185990_i.nextInt(16) + 8; + int j1 = this.field_185990_i.nextInt(256); +@@ -402,6 +426,7 @@ + } + + if (!flag && this.field_185990_i.nextInt(this.field_186000_s.lavaLakeChance / 10) == 0 && this.field_186000_s.useLavaLakes) ++ if (net.minecraftforge.event.terraingen.TerrainGen.populate(this, this.field_185995_n, this.field_185990_i, p_185931_1_, p_185931_2_, flag, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.LAVA)) + { + int i2 = this.field_185990_i.nextInt(16) + 8; + int l2 = this.field_185990_i.nextInt(this.field_185990_i.nextInt(248) + 8); +@@ -414,6 +439,7 @@ + } + + if (this.field_186000_s.useDungeons) ++ if (net.minecraftforge.event.terraingen.TerrainGen.populate(this, this.field_185995_n, this.field_185990_i, p_185931_1_, p_185931_2_, flag, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.DUNGEON)) + { + for (int j2 = 0; j2 < this.field_186000_s.dungeonChance; ++j2) + { +@@ -425,9 +451,12 @@ + } + + biomegenbase.decorate(this.field_185995_n, this.field_185990_i, new BlockPos(i, 0, j)); ++ if (net.minecraftforge.event.terraingen.TerrainGen.populate(this, this.field_185995_n, this.field_185990_i, p_185931_1_, p_185931_2_, flag, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.ANIMALS)) + WorldEntitySpawner.performWorldGenSpawning(this.field_185995_n, biomegenbase, i + 8, j + 8, 16, 16, this.field_185990_i); + blockpos = blockpos.add(8, 0, 8); + ++ if (net.minecraftforge.event.terraingen.TerrainGen.populate(this, this.field_185995_n, this.field_185990_i, p_185931_1_, p_185931_2_, flag, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.ICE)) ++ { + for (int k2 = 0; k2 < 16; ++k2) + { + for (int j3 = 0; j3 < 16; ++j3) +@@ -446,7 +475,10 @@ + } + } + } ++ }//Forge: End ICE + ++ net.minecraftforge.event.ForgeEventFactory.onChunkPopulate(false, this, this.field_185995_n, p_185931_1_, p_185931_2_, flag); ++ + BlockFalling.fallInstantly = false; + } + diff --git a/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch b/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch index 3899f6d81..fe5a8cf44 100644 --- a/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch +++ b/patches.mcp/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch @@ -8,7 +8,74 @@ public ChunkProviderServer(WorldServer p_i46838_1_, IChunkLoader p_i46838_2_, IChunkGenerator p_i46838_3_) { -@@ -118,6 +119,7 @@ +@@ -92,14 +93,65 @@ + + public Chunk func_186025_d(int p_186025_1_, int p_186025_2_) + { ++ return loadChunk(p_186025_1_, p_186025_2_, null); ++ } ++ ++ public Chunk loadChunk(int X, int Z, Runnable runnable) ++ { ++ long pos = ChunkCoordIntPair.chunkXZ2Int(X, Z); ++ this.droppedChunksSet.remove(Long.valueOf(pos)); ++ Chunk chunk = this.id2ChunkMap.getValueByKey(pos); ++ net.minecraft.world.chunk.storage.AnvilChunkLoader loader = null; ++ ++ if (this.chunkLoader instanceof net.minecraft.world.chunk.storage.AnvilChunkLoader) ++ { ++ loader = (net.minecraft.world.chunk.storage.AnvilChunkLoader) this.chunkLoader; ++ } ++ ++ // We can only use the queue for already generated chunks ++ if (chunk == null && loader != null && loader.chunkExists(this.worldObj, X, Z)) ++ { ++ if (runnable != null) ++ { ++ net.minecraftforge.common.chunkio.ChunkIOExecutor.queueChunkLoad(this.worldObj, loader, this, X, Z, runnable); ++ return null; ++ } ++ else ++ { ++ chunk = net.minecraftforge.common.chunkio.ChunkIOExecutor.syncChunkLoad(this.worldObj, loader, this, X, Z); ++ } ++ } ++ else if (chunk == null) ++ { ++ chunk = this.originalLoadChunk(X, Z); ++ } ++ ++ // If we didn't load the chunk async and have a callback run it now ++ if (runnable != null) ++ { ++ runnable.run(); ++ } ++ ++ return chunk; ++ } ++ ++ public Chunk originalLoadChunk(int p_186025_1_, int p_186025_2_) ++ { + Chunk chunk = this.func_186028_c(p_186025_1_, p_186025_2_); + + if (chunk == null) + { + long i = ChunkCoordIntPair.chunkXZ2Int(p_186025_1_, p_186025_2_); +- chunk = this.loadChunkFromFile(p_186025_1_, p_186025_2_); ++ if (!loadingChunks.add(i)) ++ { ++ net.minecraftforge.fml.common.FMLLog.bigWarning("There is an attempt to load a chunk (%d,%d) in di >mension %d that is already being loaded. This will cause weird chunk breakages.", p_186025_1_, p_186025_2_, worldObj.provider.getDimension()); ++ } ++ chunk = net.minecraftforge.common.ForgeChunkManager.fetchDormantChunk(i, this.worldObj); + + if (chunk == null) ++ chunk = this.loadChunkFromFile(p_186025_1_, p_186025_2_); ++ ++ if (chunk == null) + { + try + { +@@ -118,6 +170,7 @@ this.id2ChunkMap.add(i, chunk); this.loadedChunks.add(chunk); @@ -16,7 +83,7 @@ chunk.onChunkLoad(); chunk.func_186030_a(this, this.field_186029_c); } -@@ -214,6 +216,11 @@ +@@ -214,6 +267,11 @@ { if (!this.worldObj.disableLevelSaving) { @@ -28,14 +95,14 @@ for (int i = 0; i < 100; ++i) { if (!this.droppedChunksSet.isEmpty()) -@@ -228,6 +235,12 @@ +@@ -228,6 +286,12 @@ this.saveChunkExtraData(chunk); this.id2ChunkMap.remove(olong.longValue()); this.loadedChunks.remove(chunk); + net.minecraftforge.common.ForgeChunkManager.putDormantChunk(ChunkCoordIntPair.chunkXZ2Int(chunk.xPosition, chunk.zPosition), chunk); -+ if(loadedChunks.size() == 0 && net.minecraftforge.common.ForgeChunkManager.getPersistentChunksFor(this.worldObj).size() == 0 && !net.minecraftforge.common.DimensionManager.shouldLoadSpawn(this.worldObj.provider.getDimensionId())){ -+ net.minecraftforge.common.DimensionManager.unloadWorld(this.worldObj.provider.getDimensionId()); -+ return serverChunkGenerator.unloadQueuedChunks(); ++ if(loadedChunks.size() == 0 && net.minecraftforge.common.ForgeChunkManager.getPersistentChunksFor(this.worldObj).size() == 0 && !net.minecraftforge.common.DimensionManager.shouldLoadSpawn(this.worldObj.provider.getDimension())){ ++ net.minecraftforge.common.DimensionManager.unloadWorld(this.worldObj.provider.getDimension()); ++ return false; + } + } diff --git a/patches.mcp/minecraft/net/minecraft/world/gen/MapGenCaves.java.patch b/patches.mcp/minecraft/net/minecraft/world/gen/MapGenCaves.java.patch index 432cee484..7d067708c 100644 --- a/patches.mcp/minecraft/net/minecraft/world/gen/MapGenCaves.java.patch +++ b/patches.mcp/minecraft/net/minecraft/world/gen/MapGenCaves.java.patch @@ -1,15 +1,53 @@ --- ../src-base/minecraft/net/minecraft/world/gen/MapGenCaves.java +++ ../src-work/minecraft/net/minecraft/world/gen/MapGenCaves.java -@@ -143,7 +143,7 @@ +@@ -141,9 +141,7 @@ + { + if (l1 >= 0 && l1 < 256) { - IBlockState iblockstate = p_180702_5_.getBlockState(j1, l1, k1); - +- IBlockState iblockstate = p_180702_5_.getBlockState(j1, l1, k1); +- - if (iblockstate.getBlock() == Blocks.flowing_water || iblockstate.getBlock() == Blocks.water) + if (isOceanBlock(p_180702_5_, j1, l1, k1, p_180702_3_, p_180702_4_)) { flag3 = true; } -@@ -266,4 +266,71 @@ +@@ -181,33 +179,12 @@ + IBlockState iblockstate1 = p_180702_5_.getBlockState(j3, j2, i2); + IBlockState iblockstate2 = (IBlockState)Objects.firstNonNull(p_180702_5_.getBlockState(j3, j2 + 1, i2), field_186127_b); + +- if (iblockstate1.getBlock() == Blocks.grass || iblockstate1.getBlock() == Blocks.mycelium) ++ if (isTopBlock(p_180702_5_, j3, j2, i2, p_180702_3_, p_180702_4_)) + { + flag1 = true; + } + +- if (this.func_175793_a(iblockstate1, iblockstate2)) +- { +- if (j2 - 1 < 10) +- { +- p_180702_5_.setBlockState(j3, j2, i2, field_186126_a); +- } +- else +- { +- p_180702_5_.setBlockState(j3, j2, i2, field_186127_b); +- +- if (iblockstate2.getBlock() == Blocks.sand) +- { +- p_180702_5_.setBlockState(j3, j2 + 1, i2, iblockstate2.getValue(BlockSand.VARIANT) == BlockSand.EnumType.RED_SAND ? field_186129_d : field_186128_c); +- } +- +- if (flag1 && p_180702_5_.getBlockState(j3, j2 - 1, i2).getBlock() == Blocks.dirt) +- { +- blockpos$mutableblockpos.set(j3 + p_180702_3_ * 16, 0, i2 + p_180702_4_ * 16); +- p_180702_5_.setBlockState(j3, j2 - 1, i2, this.worldObj.getBiomeGenForCoords(blockpos$mutableblockpos).topBlock.getBlock().getDefaultState()); +- } +- } +- } ++ digBlock(p_180702_5_, j3, j2, i2, p_180702_3_, p_180702_4_, flag1, iblockstate1, iblockstate2); + } + } + } +@@ -266,4 +243,71 @@ } } } @@ -23,8 +61,8 @@ + //Exception biomes to make sure we generate like vanilla + private boolean isExceptionBiome(net.minecraft.world.biome.BiomeGenBase biome) + { -+ if (biome == net.minecraft.world.biome.BiomeGenBase.beach) return true; -+ if (biome == net.minecraft.world.biome.BiomeGenBase.desert) return true; ++ if (biome == net.minecraft.init.Biomes.beach) return true; ++ if (biome == net.minecraft.init.Biomes.desert) return true; + return false; + } + @@ -60,17 +98,17 @@ + + if (this.func_175793_a(state, up) || state.getBlock() == top.getBlock() || state.getBlock() == filler.getBlock()) + { -+ if (y < 10) ++ if (y - 1 < 10) + { -+ data.setBlockState(x, y, z, Blocks.lava.getDefaultState()); ++ data.setBlockState(x, y, z, field_186126_a); + } + else + { -+ data.setBlockState(x, y, z, Blocks.air.getDefaultState()); ++ data.setBlockState(x, y, z, field_186127_b); + + if (up.getBlock() == Blocks.sand) + { -+ data.setBlockState(x, y + 1, z, up.getValue(BlockSand.VARIANT) == BlockSand.EnumType.RED_SAND ? Blocks.red_sandstone.getDefaultState() : Blocks.sandstone.getDefaultState()); ++ data.setBlockState(x, y + 1, z, up.getValue(BlockSand.VARIANT) == BlockSand.EnumType.RED_SAND ? field_186129_d : field_186128_c); + } + + if (foundTop && data.getBlockState(x, y - 1, z).getBlock() == filler.getBlock()) diff --git a/patches.mcp/minecraft/net/minecraft/world/gen/MapGenRavine.java.patch b/patches.mcp/minecraft/net/minecraft/world/gen/MapGenRavine.java.patch index 030975e7f..ce7bbd4f6 100644 --- a/patches.mcp/minecraft/net/minecraft/world/gen/MapGenRavine.java.patch +++ b/patches.mcp/minecraft/net/minecraft/world/gen/MapGenRavine.java.patch @@ -1,15 +1,59 @@ --- ../src-base/minecraft/net/minecraft/world/gen/MapGenRavine.java +++ ../src-work/minecraft/net/minecraft/world/gen/MapGenRavine.java -@@ -130,7 +130,7 @@ +@@ -128,9 +128,7 @@ + { + if (l1 >= 0 && l1 < 256) { - IBlockState iblockstate = p_180707_5_.getBlockState(j1, l1, k1); - +- IBlockState iblockstate = p_180707_5_.getBlockState(j1, l1, k1); +- - if (iblockstate.getBlock() == Blocks.flowing_water || iblockstate.getBlock() == Blocks.water) + if (isOceanBlock(p_180707_5_, j1, l1, k1, p_180707_3_, p_180707_4_)) { flag2 = true; } -@@ -223,4 +223,68 @@ +@@ -146,8 +144,6 @@ + + if (!flag2) + { +- BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(); +- + for (int j3 = k2; j3 < k; ++j3) + { + double d10 = ((double)(j3 + p_180707_3_ * 16) + 0.5D - p_180707_6_) / d9; +@@ -165,30 +161,12 @@ + + if ((d10 * d10 + d7 * d7) * (double)this.field_75046_d[j2 - 1] + d8 * d8 / 6.0D < 1.0D) + { +- IBlockState iblockstate1 = p_180707_5_.getBlockState(j3, j2, i2); +- +- if (iblockstate1.getBlock() == Blocks.grass) ++ if (isTopBlock(p_180707_5_, j3, j2, i2, p_180707_3_, p_180707_4_)) + { + flag = true; + } + +- if (iblockstate1.getBlock() == Blocks.stone || iblockstate1.getBlock() == Blocks.dirt || iblockstate1.getBlock() == Blocks.grass) +- { +- if (j2 - 1 < 10) +- { +- p_180707_5_.setBlockState(j3, j2, i2, field_186135_a); +- } +- else +- { +- p_180707_5_.setBlockState(j3, j2, i2, field_186136_b); +- +- if (flag && p_180707_5_.getBlockState(j3, j2 - 1, i2).getBlock() == Blocks.dirt) +- { +- blockpos$mutableblockpos.set(j3 + p_180707_3_ * 16, 0, i2 + p_180707_4_ * 16); +- p_180707_5_.setBlockState(j3, j2 - 1, i2, this.worldObj.getBiomeGenForCoords(blockpos$mutableblockpos).topBlock); +- } +- } +- } ++ digBlock(p_180707_5_, j3, j2, i2, p_180707_3_, p_180707_4_, flag); + } + } + } +@@ -223,4 +201,68 @@ } } } @@ -22,10 +66,10 @@ + //Exception biomes to make sure we generate like vanilla + private boolean isExceptionBiome(net.minecraft.world.biome.BiomeGenBase biome) + { -+ if (biome == net.minecraft.world.biome.BiomeGenBase.beach) return true; -+ if (biome == net.minecraft.world.biome.BiomeGenBase.desert) return true; -+ if (biome == net.minecraft.world.biome.BiomeGenBase.mushroomIsland) return true; -+ if (biome == net.minecraft.world.biome.BiomeGenBase.mushroomIslandShore) return true; ++ if (biome == net.minecraft.init.Biomes.beach) return true; ++ if (biome == net.minecraft.init.Biomes.desert) return true; ++ if (biome == net.minecraft.init.Biomes.mushroomIsland) return true; ++ if (biome == net.minecraft.init.Biomes.mushroomIslandShore) return true; + return false; + } + @@ -62,13 +106,13 @@ + + if (state.getBlock() == Blocks.stone || state.getBlock() == top.getBlock() || state.getBlock() == filler.getBlock()) + { -+ if (y < 10) ++ if (y - 1 < 10) + { -+ data.setBlockState(x, y, z, Blocks.lava.getDefaultState()); ++ data.setBlockState(x, y, z, field_186135_a); + } + else + { -+ data.setBlockState(x, y, z, Blocks.air.getDefaultState()); ++ data.setBlockState(x, y, z, field_186136_b); + + if (foundTop && data.getBlockState(x, y - 1, z).getBlock() == filler.getBlock()) + { diff --git a/patches.mcp/minecraft/net/minecraft/world/gen/layer/GenLayer.java.patch b/patches.mcp/minecraft/net/minecraft/world/gen/layer/GenLayer.java.patch index 8bd908b08..2538914b0 100644 --- a/patches.mcp/minecraft/net/minecraft/world/gen/layer/GenLayer.java.patch +++ b/patches.mcp/minecraft/net/minecraft/world/gen/layer/GenLayer.java.patch @@ -16,7 +16,17 @@ GenLayer genlayerhills = new GenLayerHills(1000L, genlayerbiomeedge, lvt_10_1_); GenLayer genlayer5 = GenLayerZoom.magnify(1000L, genlayerriverinit, 2); genlayer5 = GenLayerZoom.magnify(1000L, genlayer5, j); -@@ -171,4 +171,27 @@ +@@ -158,8 +158,7 @@ + + protected static boolean isBiomeOceanic(int p_151618_0_) + { +- BiomeGenBase biomegenbase = BiomeGenBase.getBiome(p_151618_0_); +- return biomegenbase == Biomes.ocean || biomegenbase == Biomes.deepOcean || biomegenbase == Biomes.frozenOcean; ++ return net.minecraftforge.common.BiomeManager.oceanBiomes.contains(BiomeGenBase.getBiome(p_151618_0_)); + } + + protected int selectRandom(int... p_151619_1_) +@@ -171,4 +170,27 @@ { return p_151617_2_ == p_151617_3_ && p_151617_3_ == p_151617_4_ ? p_151617_2_ : (p_151617_1_ == p_151617_2_ && p_151617_1_ == p_151617_3_ ? p_151617_1_ : (p_151617_1_ == p_151617_2_ && p_151617_1_ == p_151617_4_ ? p_151617_1_ : (p_151617_1_ == p_151617_3_ && p_151617_1_ == p_151617_4_ ? p_151617_1_ : (p_151617_1_ == p_151617_2_ && p_151617_3_ != p_151617_4_ ? p_151617_1_ : (p_151617_1_ == p_151617_3_ && p_151617_2_ != p_151617_4_ ? p_151617_1_ : (p_151617_1_ == p_151617_4_ && p_151617_2_ != p_151617_3_ ? p_151617_1_ : (p_151617_2_ == p_151617_3_ && p_151617_1_ != p_151617_4_ ? p_151617_2_ : (p_151617_2_ == p_151617_4_ && p_151617_1_ != p_151617_3_ ? p_151617_2_ : (p_151617_3_ == p_151617_4_ && p_151617_1_ != p_151617_2_ ? p_151617_3_ : this.selectRandom(new int[] {p_151617_1_, p_151617_2_, p_151617_3_, p_151617_4_})))))))))); } diff --git a/patches.mcp/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java.patch b/patches.mcp/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java.patch index 91c084e9c..adc74b8ea 100644 --- a/patches.mcp/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java.patch +++ b/patches.mcp/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java.patch @@ -1,6 +1,84 @@ --- ../src-base/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java +++ ../src-work/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java -@@ -112,4 +112,12 @@ +@@ -7,10 +7,8 @@ + + public class GenLayerBiome extends GenLayer + { +- private BiomeGenBase[] field_151623_c = new BiomeGenBase[] {Biomes.desert, Biomes.desert, Biomes.desert, Biomes.savanna, Biomes.savanna, Biomes.plains}; +- private BiomeGenBase[] field_151621_d = new BiomeGenBase[] {Biomes.forest, Biomes.roofedForest, Biomes.extremeHills, Biomes.plains, Biomes.birchForest, Biomes.swampland}; +- private BiomeGenBase[] field_151622_e = new BiomeGenBase[] {Biomes.forest, Biomes.extremeHills, Biomes.taiga, Biomes.plains}; +- private BiomeGenBase[] field_151620_f = new BiomeGenBase[] {Biomes.icePlains, Biomes.icePlains, Biomes.icePlains, Biomes.coldTaiga}; ++ @SuppressWarnings("unchecked") ++ private java.util.List[] biomes = new java.util.ArrayList[net.minecraftforge.common.BiomeManager.BiomeType.values().length]; + private final ChunkProviderSettings field_175973_g; + + public GenLayerBiome(long p_i45560_1_, GenLayer p_i45560_3_, WorldType p_i45560_4_, String p_i45560_5_) +@@ -18,9 +16,30 @@ + super(p_i45560_1_); + this.parent = p_i45560_3_; + ++ for (net.minecraftforge.common.BiomeManager.BiomeType type : net.minecraftforge.common.BiomeManager.BiomeType.values()) ++ { ++ com.google.common.collect.ImmutableList biomesToAdd = net.minecraftforge.common.BiomeManager.getBiomes(type); ++ int idx = type.ordinal(); ++ ++ if (biomes[idx] == null) biomes[idx] = new java.util.ArrayList(); ++ if (biomesToAdd != null) biomes[idx].addAll(biomesToAdd); ++ } ++ ++ int desertIdx = net.minecraftforge.common.BiomeManager.BiomeType.DESERT.ordinal(); ++ ++ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(Biomes.desert, 30)); ++ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(Biomes.savanna, 20)); ++ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(Biomes.plains, 10)); ++ + if (p_i45560_4_ == WorldType.DEFAULT_1_1) + { +- this.field_151623_c = new BiomeGenBase[] {Biomes.desert, Biomes.forest, Biomes.extremeHills, Biomes.swampland, Biomes.plains, Biomes.taiga}; ++ biomes[desertIdx].clear(); ++ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(Biomes.desert, 10)); ++ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(Biomes.forest, 10)); ++ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(Biomes.extremeHills, 10)); ++ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(Biomes.swampland, 10)); ++ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(Biomes.plains, 10)); ++ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(Biomes.taiga, 10)); + this.field_175973_g = null; + } + else if (p_i45560_4_ == WorldType.CUSTOMIZED) +@@ -74,7 +93,7 @@ + } + else + { +- aint1[j + i * areaWidth] = BiomeGenBase.func_185362_a(this.field_151623_c[this.nextInt(this.field_151623_c.length)]); ++ aint1[k + i * areaWidth] = BiomeGenBase.func_185362_a(getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.DESERT).biome); + } + } + else if (k == 2) +@@ -85,7 +104,7 @@ + } + else + { +- aint1[j + i * areaWidth] = BiomeGenBase.func_185362_a(this.field_151621_d[this.nextInt(this.field_151621_d.length)]); ++ aint1[j + i * areaWidth] = BiomeGenBase.func_185362_a(getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.WARM).biome); + } + } + else if (k == 3) +@@ -96,12 +115,12 @@ + } + else + { +- aint1[j + i * areaWidth] = BiomeGenBase.func_185362_a(this.field_151622_e[this.nextInt(this.field_151622_e.length)]); ++ aint1[j + i * areaWidth] = BiomeGenBase.func_185362_a(getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.COOL).biome); + } + } + else if (k == 4) + { +- aint1[j + i * areaWidth] = BiomeGenBase.func_185362_a(this.field_151620_f[this.nextInt(this.field_151620_f.length)]); ++ aint1[j + i * areaWidth] = BiomeGenBase.func_185362_a(getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.ICY).biome); + } + else + { +@@ -112,4 +131,12 @@ return aint1; } diff --git a/patches.mcp/minecraft/net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces.java.patch b/patches.mcp/minecraft/net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces.java.patch index 1bcaeb316..713c9cc04 100644 --- a/patches.mcp/minecraft/net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces.java.patch +++ b/patches.mcp/minecraft/net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces.java.patch @@ -1,29 +1,35 @@ --- ../src-base/minecraft/net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces.java +++ ../src-work/minecraft/net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces.java -@@ -57,6 +57,12 @@ - { - } - -+ static -+ { -+ net.minecraftforge.common.ChestGenHooks.init(net.minecraftforge.common.ChestGenHooks.PYRAMID_DESERT_CHEST, itemsToGenerateInTemple, 2, 7); -+ net.minecraftforge.common.ChestGenHooks.addItem(net.minecraftforge.common.ChestGenHooks.PYRAMID_DESERT_CHEST, new WeightedRandomChestContent(new net.minecraft.item.ItemStack(Items.enchanted_book, 1, 0), 1, 1, 1)); -+ } -+ - public DesertPyramid(Random p_i2062_1_, int p_i2062_2_, int p_i2062_3_) - { - super(p_i2062_1_, p_i2062_2_, 64, p_i2062_3_, 21, 15, 21); -@@ -451,6 +457,13 @@ +@@ -451,6 +451,11 @@ private static final List field_175815_j = Lists.newArrayList(new WeightedRandomChestContent[] {new WeightedRandomChestContent(Items.arrow, 0, 2, 7, 30)}); private static ComponentScatteredFeaturePieces.JunglePyramid.Stones junglePyramidsRandomScatteredStones = new ComponentScatteredFeaturePieces.JunglePyramid.Stones(); + static + { + net.minecraftforge.common.ChestGenHooks.init(net.minecraftforge.common.ChestGenHooks.PYRAMID_JUNGLE_DISPENSER, field_175815_j, 2, 2); -+ net.minecraftforge.common.ChestGenHooks.init(net.minecraftforge.common.ChestGenHooks.PYRAMID_JUNGLE_CHEST, field_175816_i, 2, 7); -+ net.minecraftforge.common.ChestGenHooks.addItem(net.minecraftforge.common.ChestGenHooks.PYRAMID_JUNGLE_CHEST, new WeightedRandomChestContent(new net.minecraft.item.ItemStack(Items.enchanted_book, 1, 0), 1, 1, 1)); + } + public JunglePyramid() { } +@@ -607,9 +612,10 @@ + this.setBlockState(worldIn, Blocks.redstone_wire.getDefaultState(), 4, -3, 1, structureBoundingBoxIn); + this.setBlockState(worldIn, Blocks.mossy_cobblestone.getDefaultState(), 3, -3, 1, structureBoundingBoxIn); + ++ net.minecraftforge.common.ChestGenHooks dispenser = net.minecraftforge.common.ChestGenHooks.getInfo(net.minecraftforge.common.ChestGenHooks.PYRAMID_JUNGLE_DISPENSER); + if (!this.field_74945_j) + { +- this.field_74945_j = this.func_186166_a(worldIn, structureBoundingBoxIn, randomIn, 3, -2, 1, EnumFacing.NORTH, field_175815_j, 2); ++ this.field_74945_j = this.func_186166_a(worldIn, structureBoundingBoxIn, randomIn, 3, -2, 1, EnumFacing.NORTH, dispenser.getItems(randomIn), dispenser.getCount(randomIn)); + } + + this.setBlockState(worldIn, Blocks.vine.getDefaultState().withProperty(BlockVine.SOUTH, Boolean.valueOf(true)), 3, -2, 2, structureBoundingBoxIn); +@@ -626,7 +632,7 @@ + + if (!this.field_74946_k) + { +- this.field_74946_k = this.func_186166_a(worldIn, structureBoundingBoxIn, randomIn, 9, -2, 3, EnumFacing.WEST, field_175815_j, 2); ++ this.field_74946_k = this.func_186166_a(worldIn, structureBoundingBoxIn, randomIn, 9, -2, 3, EnumFacing.WEST, dispenser.getItems(randomIn), dispenser.getCount(randomIn)); + } + + this.setBlockState(worldIn, Blocks.vine.getDefaultState().withProperty(BlockVine.EAST, Boolean.valueOf(true)), 8, -1, 3, structureBoundingBoxIn); diff --git a/patches.mcp/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java.patch b/patches.mcp/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java.patch new file mode 100644 index 000000000..81289f936 --- /dev/null +++ b/patches.mcp/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java.patch @@ -0,0 +1,23 @@ +--- ../src-base/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java ++++ ../src-work/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java +@@ -28,11 +28,19 @@ + + for (BiomeGenBase biomegenbase : BiomeGenBase.field_185377_q) + { +- if (biomegenbase != null && biomegenbase.func_185355_j() > 0.0F) ++ if (biomegenbase != null && biomegenbase.func_185355_j() > 0.0F && !net.minecraftforge.common.BiomeManager.strongHoldBiomesBlackList.contains(biomegenbase)) + { + this.field_151546_e.add(biomegenbase); + } + } ++ ++ for (BiomeGenBase biome : net.minecraftforge.common.BiomeManager.strongHoldBiomes) ++ { ++ if (!this.field_151546_e.contains(biome)) ++ { ++ this.field_151546_e.add(biome); ++ } ++ } + } + + public MapGenStronghold(Map p_i2068_1_) diff --git a/patches.mcp/minecraft/net/minecraft/world/gen/structure/StructureMineshaftPieces.java.patch b/patches.mcp/minecraft/net/minecraft/world/gen/structure/StructureMineshaftPieces.java.patch deleted file mode 100644 index b0dfd7a8c..000000000 --- a/patches.mcp/minecraft/net/minecraft/world/gen/structure/StructureMineshaftPieces.java.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- ../src-base/minecraft/net/minecraft/world/gen/structure/StructureMineshaftPieces.java -+++ ../src-work/minecraft/net/minecraft/world/gen/structure/StructureMineshaftPieces.java -@@ -31,6 +31,12 @@ - MapGenStructureIO.registerStructureComponent(StructureMineshaftPieces.Stairs.class, "MSStairs"); - } - -+ static -+ { -+ net.minecraftforge.common.ChestGenHooks.init(net.minecraftforge.common.ChestGenHooks.MINESHAFT_CORRIDOR, CHEST_CONTENT_WEIGHT_LIST, 8, 8); -+ net.minecraftforge.common.ChestGenHooks.addItem(net.minecraftforge.common.ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new net.minecraft.item.ItemStack(net.minecraft.init.Items.enchanted_book, 1, 0), 1, 1, 1)); -+ } -+ - private static StructureComponent func_175892_a(List listIn, Random rand, int x, int y, int z, EnumFacing facing, int type) - { - int i = rand.nextInt(100); diff --git a/patches.mcp/minecraft/net/minecraft/world/gen/structure/StructureStrongholdPieces.java.patch b/patches.mcp/minecraft/net/minecraft/world/gen/structure/StructureStrongholdPieces.java.patch deleted file mode 100644 index 7ebeaa9a7..000000000 --- a/patches.mcp/minecraft/net/minecraft/world/gen/structure/StructureStrongholdPieces.java.patch +++ /dev/null @@ -1,41 +0,0 @@ ---- ../src-base/minecraft/net/minecraft/world/gen/structure/StructureStrongholdPieces.java -+++ ../src-work/minecraft/net/minecraft/world/gen/structure/StructureStrongholdPieces.java -@@ -244,6 +244,12 @@ - { - } - -+ static -+ { -+ net.minecraftforge.common.ChestGenHooks.init(net.minecraftforge.common.ChestGenHooks.STRONGHOLD_CORRIDOR, strongholdChestContents, 2, 4); -+ net.minecraftforge.common.ChestGenHooks.addItem(net.minecraftforge.common.ChestGenHooks.STRONGHOLD_CORRIDOR, new WeightedRandomChestContent(new net.minecraft.item.ItemStack(Items.enchanted_book, 1, 0), 1, 1, 1)); -+ } -+ - public ChestCorridor(int p_i45582_1_, Random p_i45582_2_, StructureBoundingBox p_i45582_3_, EnumFacing p_i45582_4_) - { - super(p_i45582_1_); -@@ -599,6 +605,12 @@ - { - private boolean isLargeRoom; - -+ static -+ { -+ net.minecraftforge.common.ChestGenHooks.init(net.minecraftforge.common.ChestGenHooks.STRONGHOLD_LIBRARY, strongholdLibraryChestContents, 1, 5); -+ net.minecraftforge.common.ChestGenHooks.addItem(net.minecraftforge.common.ChestGenHooks.STRONGHOLD_LIBRARY, new WeightedRandomChestContent(new net.minecraft.item.ItemStack(Items.enchanted_book, 1, 0), 1, 5, 2)); -+ } -+ - public Library() - { - } -@@ -1025,6 +1037,12 @@ - { - protected int roomType; - -+ static -+ { -+ net.minecraftforge.common.ChestGenHooks.init(net.minecraftforge.common.ChestGenHooks.STRONGHOLD_CROSSING, strongholdRoomCrossingChestContents, 1, 5); -+ net.minecraftforge.common.ChestGenHooks.addItem(net.minecraftforge.common.ChestGenHooks.STRONGHOLD_CROSSING, new WeightedRandomChestContent(new net.minecraft.item.ItemStack(Items.enchanted_book, 1, 0), 1, 1, 1)); -+ } -+ - public RoomCrossing() - { - } diff --git a/patches.mcp/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch b/patches.mcp/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch index 8dc9017c2..e861158b7 100644 --- a/patches.mcp/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch +++ b/patches.mcp/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch @@ -19,19 +19,7 @@ return structurevillagepieces$village; } -@@ -875,6 +880,11 @@ - { - } - -+ static -+ { -+ net.minecraftforge.common.ChestGenHooks.init(net.minecraftforge.common.ChestGenHooks.VILLAGE_BLACKSMITH, villageBlacksmithChestContents, 3, 8); -+ } -+ - public House2(StructureVillagePieces.Start start, int p_i45563_2_, Random rand, StructureBoundingBox p_i45563_4_, EnumFacing facing) - { - super(start, p_i45563_2_); -@@ -1447,6 +1457,7 @@ +@@ -1447,6 +1452,7 @@ public List structureVillageWeightedPieceList; public List field_74932_i = Lists.newArrayList(); public List field_74930_j = Lists.newArrayList(); @@ -39,7 +27,15 @@ public Start() { -@@ -1520,6 +1531,7 @@ +@@ -1460,6 +1466,7 @@ + this.terrainType = p_i2104_7_; + BiomeGenBase biomegenbase = chunkManagerIn.getBiomeGenerator(new BlockPos(p_i2104_4_, 0, p_i2104_5_), Biomes.field_180279_ad); + this.inDesert = biomegenbase == Biomes.desert || biomegenbase == Biomes.desertHills; ++ this.biome = biomegenbase; + this.func_175846_a(this.inDesert); + } + +@@ -1520,6 +1527,7 @@ protected int field_143015_k = -1; private int villagersSpawned; private boolean isDesertVillage; @@ -47,7 +43,7 @@ public Village() { -@@ -1532,6 +1544,7 @@ +@@ -1532,6 +1540,7 @@ if (start != null) { this.isDesertVillage = start.inDesert; @@ -55,7 +51,7 @@ } } -@@ -1660,6 +1673,9 @@ +@@ -1660,6 +1669,9 @@ protected IBlockState func_175847_a(IBlockState p_175847_1_) { diff --git a/rejects/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java.patch.rej deleted file mode 100644 index 650a6183f..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java.patch.rej +++ /dev/null @@ -1,60 +0,0 @@ -++++ REJECTED PATCH 1 - double[] noiseData3; - double[] noiseData4; - double[] noiseData5; -+ // temporary variables used during event handling -+ private int chunkX = 0; -+ private int chunkZ = 0; - - public ChunkProviderEnd(World worldIn, long p_i2007_2_) - { -++++ END PATCH -++++ REJECTED PATCH 2 - this.noiseGen3 = new NoiseGeneratorOctaves(this.endRNG, 8); - this.noiseGen4 = new NoiseGeneratorOctaves(this.endRNG, 10); - this.noiseGen5 = new NoiseGeneratorOctaves(this.endRNG, 16); -+ -+ NoiseGenerator[] noiseGens = {noiseGen1, noiseGen2, noiseGen3, noiseGen4, noiseGen5}; -+ noiseGens = net.minecraftforge.event.terraingen.TerrainGen.getModdedNoiseGenerators(worldIn, this.endRNG, noiseGens); -+ this.noiseGen1 = (NoiseGeneratorOctaves)noiseGens[0]; -+ this.noiseGen2 = (NoiseGeneratorOctaves)noiseGens[1]; -+ this.noiseGen3 = (NoiseGeneratorOctaves)noiseGens[2]; -+ this.noiseGen4 = (NoiseGeneratorOctaves)noiseGens[3]; -+ this.noiseGen5 = (NoiseGeneratorOctaves)noiseGens[4]; - } - - public void func_180520_a(int p_180520_1_, int p_180520_2_, ChunkPrimer p_180520_3_) -++++ END PATCH -++++ REJECTED PATCH 4 - - public Chunk provideChunk(int x, int z) - { -+ chunkX = x; chunkZ = z; - this.endRNG.setSeed((long)x * 341873128712L + (long)z * 132897987541L); - ChunkPrimer chunkprimer = new ChunkPrimer(); - this.biomesForGeneration = this.endWorld.getWorldChunkManager().loadBlockGeneratorData(this.biomesForGeneration, x * 16, z * 16, 16, 16); -++++ END PATCH -++++ REJECTED PATCH 5 - - private double[] initializeNoiseField(double[] p_73187_1_, int p_73187_2_, int p_73187_3_, int p_73187_4_, int p_73187_5_, int p_73187_6_, int p_73187_7_) - { -+ net.minecraftforge.event.terraingen.ChunkProviderEvent.InitNoiseField event = new net.minecraftforge.event.terraingen.ChunkProviderEvent.InitNoiseField(this, p_73187_1_, p_73187_2_, p_73187_3_, p_73187_4_, p_73187_5_, p_73187_6_, p_73187_7_); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event); -+ if (event.getResult() == net.minecraftforge.fml.common.eventhandler.Event.Result.DENY) return event.noisefield; -+ - if (p_73187_1_ == null) - { - p_73187_1_ = new double[p_73187_5_ * p_73187_6_ * p_73187_7_]; -++++ END PATCH -++++ REJECTED PATCH 6 - public void populate(IChunkProvider p_73153_1_, int p_73153_2_, int p_73153_3_) - { - BlockFalling.fallInstantly = true; -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.terraingen.PopulateChunkEvent.Pre(p_73153_1_, endWorld, endWorld.rand, p_73153_2_, p_73153_3_, false)); - BlockPos blockpos = new BlockPos(p_73153_2_ * 16, 0, p_73153_3_ * 16); - this.endWorld.getBiomeGenForCoords(blockpos.add(16, 0, 16)).decorate(this.endWorld, this.endWorld.rand, blockpos); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.terraingen.PopulateChunkEvent.Post(p_73153_1_, endWorld, endWorld.rand, p_73153_2_, p_73153_3_, false)); - BlockFalling.fallInstantly = false; - } - -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/gen/ChunkProviderGenerate.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/ChunkProviderGenerate.java.patch.rej deleted file mode 100644 index c97f24761..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/ChunkProviderGenerate.java.patch.rej +++ /dev/null @@ -1,117 +0,0 @@ -++++ REJECTED PATCH 1 - - public ChunkProviderGenerate(World worldIn, long p_i45636_2_, boolean p_i45636_4_, String p_i45636_5_) - { -+ { -+ caveGenerator = net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(caveGenerator, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.CAVE); -+ strongholdGenerator = (MapGenStronghold)net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(strongholdGenerator, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.STRONGHOLD); -+ villageGenerator = (MapGenVillage)net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(villageGenerator, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.VILLAGE); -+ mineshaftGenerator = (MapGenMineshaft)net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(mineshaftGenerator, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.MINESHAFT); -+ scatteredFeatureGenerator = (MapGenScatteredFeature)net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(scatteredFeatureGenerator, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.SCATTERED_FEATURE); -+ ravineGenerator = net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(ravineGenerator, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.RAVINE); -+ oceanMonumentGenerator = (StructureOceanMonument)net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(oceanMonumentGenerator, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.OCEAN_MONUMENT); -+ } - this.worldObj = worldIn; - this.mapFeaturesEnabled = p_i45636_4_; - this.field_177475_o = worldIn.getWorldInfo().getTerrainType(); -++++ END PATCH -++++ REJECTED PATCH 2 - this.field_177476_s = this.settings.useLavaOceans ? Blocks.lava : Blocks.water; - worldIn.setSeaLevel(this.settings.seaLevel); - } -+ -+ NoiseGenerator[] noiseGens = {field_147431_j, field_147432_k, field_147429_l, field_147430_m, noiseGen5, noiseGen6, mobSpawnerNoise}; -+ noiseGens = net.minecraftforge.event.terraingen.TerrainGen.getModdedNoiseGenerators(worldIn, this.rand, noiseGens); -+ this.field_147431_j = (NoiseGeneratorOctaves)noiseGens[0]; -+ this.field_147432_k = (NoiseGeneratorOctaves)noiseGens[1]; -+ this.field_147429_l = (NoiseGeneratorOctaves)noiseGens[2]; -+ this.field_147430_m = (NoiseGeneratorPerlin)noiseGens[3]; -+ this.noiseGen5 = (NoiseGeneratorOctaves)noiseGens[4]; -+ this.noiseGen6 = (NoiseGeneratorOctaves)noiseGens[5]; -+ this.mobSpawnerNoise = (NoiseGeneratorOctaves)noiseGens[6]; - } - - public void setBlocksInChunk(int p_180518_1_, int p_180518_2_, ChunkPrimer p_180518_3_) -++++ END PATCH -++++ REJECTED PATCH 3 - - public void replaceBlocksForBiome(int p_180517_1_, int p_180517_2_, ChunkPrimer p_180517_3_, BiomeGenBase[] p_180517_4_) - { -+ net.minecraftforge.event.terraingen.ChunkProviderEvent.ReplaceBiomeBlocks event = new net.minecraftforge.event.terraingen.ChunkProviderEvent.ReplaceBiomeBlocks(this, p_180517_1_, p_180517_2_, p_180517_3_, this.worldObj); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event); -+ if (event.getResult() == net.minecraftforge.fml.common.eventhandler.Event.Result.DENY) return; -+ - double d0 = 0.03125D; - this.stoneNoise = this.field_147430_m.func_151599_a(this.stoneNoise, (double)(p_180517_1_ * 16), (double)(p_180517_2_ * 16), 16, 16, d0 * 2.0D, d0 * 2.0D, 1.0D); - -++++ END PATCH -++++ REJECTED PATCH 4 - boolean flag = false; - ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(p_73153_2_, p_73153_3_); - -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.terraingen.PopulateChunkEvent.Pre(p_73153_1_, worldObj, rand, p_73153_2_, p_73153_3_, flag)); -+ - if (this.settings.useMineShafts && this.mapFeaturesEnabled) - { - this.mineshaftGenerator.generateStructure(this.worldObj, this.rand, chunkcoordintpair); -++++ END PATCH -++++ REJECTED PATCH 5 - this.oceanMonumentGenerator.generateStructure(this.worldObj, this.rand, chunkcoordintpair); - } - -- if (biomegenbase != BiomeGenBase.desert && biomegenbase != BiomeGenBase.desertHills && this.settings.useWaterLakes && !flag && this.rand.nextInt(this.settings.waterLakeChance) == 0) -+ if (biomegenbase != BiomeGenBase.desert && biomegenbase != BiomeGenBase.desertHills && this.settings.useWaterLakes && !flag && this.rand.nextInt(this.settings.waterLakeChance) == 0 -+ && net.minecraftforge.event.terraingen.TerrainGen.populate(p_73153_1_, worldObj, rand, p_73153_2_, p_73153_3_, flag, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.LAKE)) - { - int i1 = this.rand.nextInt(16) + 8; - int j1 = this.rand.nextInt(256); -++++ END PATCH -++++ REJECTED PATCH 6 - (new WorldGenLakes(Blocks.water)).generate(this.worldObj, this.rand, blockpos.add(i1, j1, k1)); - } - -- if (!flag && this.rand.nextInt(this.settings.lavaLakeChance / 10) == 0 && this.settings.useLavaLakes) -+ if (!flag && this.rand.nextInt(this.settings.lavaLakeChance / 10) == 0 && this.settings.useLavaLakes && -+ net.minecraftforge.event.terraingen.TerrainGen.populate(p_73153_1_, worldObj, rand, p_73153_2_, p_73153_3_, flag, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.LAVA)) - { - int i2 = this.rand.nextInt(16) + 8; - int l2 = this.rand.nextInt(this.rand.nextInt(248) + 8); -++++ END PATCH -++++ REJECTED PATCH 7 - - if (this.settings.useDungeons) - { -- for (int j2 = 0; j2 < this.settings.dungeonChance; ++j2) -+ boolean doGen = net.minecraftforge.event.terraingen.TerrainGen.populate(p_73153_1_, worldObj, rand, p_73153_2_, p_73153_3_, flag, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.DUNGEON); -+ for (int j2 = 0; doGen && j2 < this.settings.dungeonChance; ++j2) - { - int i3 = this.rand.nextInt(16) + 8; - int l3 = this.rand.nextInt(256); -++++ END PATCH -++++ REJECTED PATCH 8 - } - - biomegenbase.decorate(this.worldObj, this.rand, new BlockPos(i, 0, j)); -+ if (net.minecraftforge.event.terraingen.TerrainGen.populate(p_73153_1_, worldObj, rand, p_73153_2_, p_73153_3_, flag, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.ANIMALS)) -+ { - SpawnerAnimals.performWorldGenSpawning(this.worldObj, biomegenbase, i + 8, j + 8, 16, 16, this.rand); -+ } - blockpos = blockpos.add(8, 0, 8); - -- for (int k2 = 0; k2 < 16; ++k2) -+ boolean doGen = net.minecraftforge.event.terraingen.TerrainGen.populate(p_73153_1_, worldObj, rand, p_73153_2_, p_73153_3_, flag, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.ICE); -+ for (int k2 = 0; doGen && k2 < 16; ++k2) - { - for (int j3 = 0; j3 < 16; ++j3) - { -++++ END PATCH -++++ REJECTED PATCH 9 - } - } - -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.terraingen.PopulateChunkEvent.Post(p_73153_1_, worldObj, rand, p_73153_2_, p_73153_3_, flag)); -+ - BlockFalling.fallInstantly = false; - } - -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/gen/ChunkProviderHell.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/ChunkProviderHell.java.patch.rej deleted file mode 100644 index 5eac183f2..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/ChunkProviderHell.java.patch.rej +++ /dev/null @@ -1,144 +0,0 @@ -++++ REJECTED PATCH 1 - private final WorldGenHellLava field_177472_y = new WorldGenHellLava(Blocks.flowing_lava, false); - private final GeneratorBushFeature field_177471_z = new GeneratorBushFeature(Blocks.brown_mushroom); - private final GeneratorBushFeature field_177465_A = new GeneratorBushFeature(Blocks.red_mushroom); -- private final MapGenNetherBridge genNetherBridge = new MapGenNetherBridge(); -- private final MapGenBase netherCaveGenerator = new MapGenCavesHell(); -+ private final MapGenNetherBridge genNetherBridge; -+ private final MapGenBase netherCaveGenerator; - double[] noiseData1; - double[] noiseData2; - double[] noiseData3; -++++ END PATCH -++++ REJECTED PATCH 2 - - public ChunkProviderHell(World worldIn, boolean p_i45637_2_, long p_i45637_3_) - { -+ this.genNetherBridge = (MapGenNetherBridge) net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(new MapGenNetherBridge(), net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.NETHER_BRIDGE); -+ this.netherCaveGenerator = net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(new MapGenCavesHell(), net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.NETHER_CAVE); - this.worldObj = worldIn; - this.field_177466_i = p_i45637_2_; - this.hellRNG = new Random(p_i45637_3_); -- this.netherNoiseGen1 = new NoiseGeneratorOctaves(this.hellRNG, 16); -- this.netherNoiseGen2 = new NoiseGeneratorOctaves(this.hellRNG, 16); -- this.netherNoiseGen3 = new NoiseGeneratorOctaves(this.hellRNG, 8); -- this.slowsandGravelNoiseGen = new NoiseGeneratorOctaves(this.hellRNG, 4); -- this.netherrackExculsivityNoiseGen = new NoiseGeneratorOctaves(this.hellRNG, 4); -- this.netherNoiseGen6 = new NoiseGeneratorOctaves(this.hellRNG, 10); -- this.netherNoiseGen7 = new NoiseGeneratorOctaves(this.hellRNG, 16); -+ NoiseGeneratorOctaves netherNoiseGen1 = new NoiseGeneratorOctaves(this.hellRNG, 16); -+ NoiseGeneratorOctaves netherNoiseGen2 = new NoiseGeneratorOctaves(this.hellRNG, 16); -+ NoiseGeneratorOctaves netherNoiseGen3 = new NoiseGeneratorOctaves(this.hellRNG, 8); -+ NoiseGeneratorOctaves slowsandGravelNoiseGen = new NoiseGeneratorOctaves(this.hellRNG, 4); -+ NoiseGeneratorOctaves netherrackExculsivityNoiseGen = new NoiseGeneratorOctaves(this.hellRNG, 4); -+ NoiseGeneratorOctaves netherNoiseGen6 = new NoiseGeneratorOctaves(this.hellRNG, 10); -+ NoiseGeneratorOctaves netherNoiseGen7 = new NoiseGeneratorOctaves(this.hellRNG, 16); -+ NoiseGenerator[] noiseGens = new NoiseGenerator[] { -+ netherNoiseGen1, netherNoiseGen2, netherNoiseGen3, slowsandGravelNoiseGen, netherrackExculsivityNoiseGen, netherNoiseGen6, netherNoiseGen7 -+ }; -+ noiseGens = net.minecraftforge.event.terraingen.TerrainGen.getModdedNoiseGenerators(worldIn, this.hellRNG, noiseGens); -+ this.netherNoiseGen1 = (NoiseGeneratorOctaves)noiseGens[0]; -+ this.netherNoiseGen2 = (NoiseGeneratorOctaves)noiseGens[1]; -+ this.netherNoiseGen3 = (NoiseGeneratorOctaves)noiseGens[2]; -+ this.slowsandGravelNoiseGen = (NoiseGeneratorOctaves)noiseGens[3]; -+ this.netherrackExculsivityNoiseGen = (NoiseGeneratorOctaves)noiseGens[4]; -+ this.netherNoiseGen6 = (NoiseGeneratorOctaves)noiseGens[5]; -+ this.netherNoiseGen7 = (NoiseGeneratorOctaves)noiseGens[6]; - worldIn.setSeaLevel(63); - } - -++++ END PATCH -++++ REJECTED PATCH 3 - - public void func_180516_b(int p_180516_1_, int p_180516_2_, ChunkPrimer p_180516_3_) - { -+ net.minecraftforge.event.terraingen.ChunkProviderEvent.ReplaceBiomeBlocks event = new net.minecraftforge.event.terraingen.ChunkProviderEvent.ReplaceBiomeBlocks(this, p_180516_1_, p_180516_2_, p_180516_3_, this.worldObj); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event); -+ if (event.getResult() == net.minecraftforge.fml.common.eventhandler.Event.Result.DENY) return; -+ - int i = this.worldObj.getSeaLevel() + 1; - double d0 = 0.03125D; - this.slowsandNoise = this.slowsandGravelNoiseGen.generateNoiseOctaves(this.slowsandNoise, p_180516_1_ * 16, p_180516_2_ * 16, 0, 16, 16, 1, d0, d0, 1.0D); -++++ END PATCH -++++ REJECTED PATCH 4 - - private double[] initializeNoiseField(double[] p_73164_1_, int p_73164_2_, int p_73164_3_, int p_73164_4_, int p_73164_5_, int p_73164_6_, int p_73164_7_) - { -+ net.minecraftforge.event.terraingen.ChunkProviderEvent.InitNoiseField event = new net.minecraftforge.event.terraingen.ChunkProviderEvent.InitNoiseField(this, p_73164_1_, p_73164_2_, p_73164_3_, p_73164_4_, p_73164_5_, p_73164_6_, p_73164_7_); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event); -+ if (event.getResult() == net.minecraftforge.fml.common.eventhandler.Event.Result.DENY) return event.noisefield; -+ - if (p_73164_1_ == null) - { - p_73164_1_ = new double[p_73164_5_ * p_73164_6_ * p_73164_7_]; -++++ END PATCH -++++ REJECTED PATCH 5 - public void populate(IChunkProvider p_73153_1_, int p_73153_2_, int p_73153_3_) - { - BlockFalling.fallInstantly = true; -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.terraingen.PopulateChunkEvent.Pre(p_73153_1_, worldObj, hellRNG, p_73153_2_, p_73153_3_, false)); - BlockPos blockpos = new BlockPos(p_73153_2_ * 16, 0, p_73153_3_ * 16); - ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(p_73153_2_, p_73153_3_); - this.genNetherBridge.generateStructure(this.worldObj, this.hellRNG, chunkcoordintpair); - -- for (int i = 0; i < 8; ++i) -+ boolean doGen = net.minecraftforge.event.terraingen.TerrainGen.populate(p_73153_1_, worldObj, hellRNG, p_73153_2_, p_73153_3_, false, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.NETHER_LAVA); -+ for (int i = 0; doGen && i < 8; ++i) - { - this.field_177472_y.generate(this.worldObj, this.hellRNG, blockpos.add(this.hellRNG.nextInt(16) + 8, this.hellRNG.nextInt(120) + 4, this.hellRNG.nextInt(16) + 8)); - } - -- for (int j = 0; j < this.hellRNG.nextInt(this.hellRNG.nextInt(10) + 1) + 1; ++j) -+ doGen = net.minecraftforge.event.terraingen.TerrainGen.populate(p_73153_1_, worldObj, hellRNG, p_73153_2_, p_73153_3_, false, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.FIRE); -+ for (int j = 0; doGen && j < this.hellRNG.nextInt(this.hellRNG.nextInt(10) + 1) + 1; ++j) - { - this.field_177470_t.generate(this.worldObj, this.hellRNG, blockpos.add(this.hellRNG.nextInt(16) + 8, this.hellRNG.nextInt(120) + 4, this.hellRNG.nextInt(16) + 8)); - } - -- for (int k = 0; k < this.hellRNG.nextInt(this.hellRNG.nextInt(10) + 1); ++k) -+ doGen = net.minecraftforge.event.terraingen.TerrainGen.populate(p_73153_1_, worldObj, hellRNG, p_73153_2_, p_73153_3_, false, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.GLOWSTONE); -+ for (int k = 0; doGen && k < this.hellRNG.nextInt(this.hellRNG.nextInt(10) + 1); ++k) - { - this.field_177469_u.generate(this.worldObj, this.hellRNG, blockpos.add(this.hellRNG.nextInt(16) + 8, this.hellRNG.nextInt(120) + 4, this.hellRNG.nextInt(16) + 8)); - } - -- for (int l = 0; l < 10; ++l) -+ for (int l = 0; doGen && l < 10; ++l) - { - this.field_177468_v.generate(this.worldObj, this.hellRNG, blockpos.add(this.hellRNG.nextInt(16) + 8, this.hellRNG.nextInt(128), this.hellRNG.nextInt(16) + 8)); - } - -- if (this.hellRNG.nextBoolean()) -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.terraingen.DecorateBiomeEvent.Pre(worldObj, hellRNG, blockpos)); -+ -+ doGen = net.minecraftforge.event.terraingen.TerrainGen.decorate(worldObj, hellRNG, blockpos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.SHROOM); -+ if (doGen && this.hellRNG.nextBoolean()) - { - this.field_177471_z.generate(this.worldObj, this.hellRNG, blockpos.add(this.hellRNG.nextInt(16) + 8, this.hellRNG.nextInt(128), this.hellRNG.nextInt(16) + 8)); - } - -- if (this.hellRNG.nextBoolean()) -+ if (doGen && this.hellRNG.nextBoolean()) - { - this.field_177465_A.generate(this.worldObj, this.hellRNG, blockpos.add(this.hellRNG.nextInt(16) + 8, this.hellRNG.nextInt(128), this.hellRNG.nextInt(16) + 8)); - } - -- for (int i1 = 0; i1 < 16; ++i1) -+ doGen = net.minecraftforge.event.terraingen.TerrainGen.generateOre(worldObj, hellRNG, field_177467_w, blockpos, net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.QUARTZ); -+ for (int i1 = 0; doGen && i1 < 16; ++i1) - { - this.field_177467_w.generate(this.worldObj, this.hellRNG, blockpos.add(this.hellRNG.nextInt(16), this.hellRNG.nextInt(108) + 10, this.hellRNG.nextInt(16))); - } - -- for (int j1 = 0; j1 < 16; ++j1) -+ doGen = net.minecraftforge.event.terraingen.TerrainGen.populate(p_73153_1_, worldObj, hellRNG, p_73153_2_, p_73153_3_, false, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.NETHER_LAVA2); -+ for (int j1 = 0; doGen && j1 < 16; ++j1) - { - this.field_177473_x.generate(this.worldObj, this.hellRNG, blockpos.add(this.hellRNG.nextInt(16), this.hellRNG.nextInt(108) + 10, this.hellRNG.nextInt(16))); - } - -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.terraingen.PopulateChunkEvent.Post(p_73153_1_, worldObj, hellRNG, p_73153_2_, p_73153_3_, false)); - BlockFalling.fallInstantly = false; - } - -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch.rej deleted file mode 100644 index e4824e612..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch.rej +++ /dev/null @@ -1,85 +0,0 @@ -++++ REJECTED PATCH 2 - - public void dropChunk(int x, int z) - { -- if (this.worldObj.provider.canRespawnHere()) -+ if (this.worldObj.provider.canRespawnHere() && net.minecraftforge.common.DimensionManager.shouldLoadSpawn(this.worldObj.provider.getDimensionId())) - { - if (!this.worldObj.isSpawnChunk(x, z)) - { -++++ END PATCH -++++ REJECTED PATCH 3 - - public Chunk loadChunk(int p_73158_1_, int p_73158_2_) - { -+ return loadChunk(p_73158_1_, p_73158_2_, null); -+ } -+ -+ public Chunk loadChunk(int par1, int par2, Runnable runnable) -+ { -+ long k = ChunkCoordIntPair.chunkXZ2Int(par1, par2); -+ this.droppedChunksSet.remove(Long.valueOf(k)); -+ Chunk chunk = (Chunk)this.id2ChunkMap.getValueByKey(k); -+ net.minecraft.world.chunk.storage.AnvilChunkLoader loader = null; -+ -+ if (this.chunkLoader instanceof net.minecraft.world.chunk.storage.AnvilChunkLoader) -+ { -+ loader = (net.minecraft.world.chunk.storage.AnvilChunkLoader) this.chunkLoader; -+ } -+ -+ // We can only use the queue for already generated chunks -+ if (chunk == null && loader != null && loader.chunkExists(this.worldObj, par1, par2)) -+ { -+ if (runnable != null) -+ { -+ net.minecraftforge.common.chunkio.ChunkIOExecutor.queueChunkLoad(this.worldObj, loader, this, par1, par2, runnable); -+ return null; -+ } -+ else -+ { -+ chunk = net.minecraftforge.common.chunkio.ChunkIOExecutor.syncChunkLoad(this.worldObj, loader, this, par1, par2); -+ } -+ } -+ else if (chunk == null) -+ { -+ chunk = this.originalLoadChunk(par1, par2); -+ } -+ -+ // If we didn't load the chunk async and have a callback run it now -+ if (runnable != null) -+ { -+ runnable.run(); -+ } -+ -+ return chunk; -+ } -+ -+ public Chunk originalLoadChunk(int p_73158_1_, int p_73158_2_) -+ { - long i = ChunkCoordIntPair.chunkXZ2Int(p_73158_1_, p_73158_2_); - this.droppedChunksSet.remove(Long.valueOf(i)); - Chunk chunk = (Chunk)this.id2ChunkMap.getValueByKey(i); - - if (chunk == null) - { -+ boolean added = loadingChunks.add(i); -+ if (!added) -+ { -+ net.minecraftforge.fml.common.FMLLog.bigWarning("There is an attempt to load a chunk (%d,%d) in di >mension %d that is already being loaded. This will cause weird chunk breakages.", p_73158_1_, p_73158_2_, worldObj.provider.getDimensionId()); -+ } -+ chunk = net.minecraftforge.common.ForgeChunkManager.fetchDormantChunk(i, this.worldObj); -+ -+ if (chunk == null) - chunk = this.loadChunkFromFile(p_73158_1_, p_73158_2_); - - if (chunk == null) -++++ END PATCH -++++ REJECTED PATCH 5 - if (this.serverChunkGenerator != null) - { - this.serverChunkGenerator.populate(p_73153_1_, p_73153_2_, p_73153_3_); -+ net.minecraftforge.fml.common.registry.GameRegistry.generateWorld(p_73153_2_, p_73153_3_, worldObj, serverChunkGenerator, p_73153_1_); - chunk.setChunkModified(); - } - } -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/gen/MapGenCaves.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/MapGenCaves.java.patch.rej deleted file mode 100644 index 5fce17302..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/MapGenCaves.java.patch.rej +++ /dev/null @@ -1,37 +0,0 @@ -++++ REJECTED PATCH 2 - IBlockState iblockstate1 = p_180702_5_.getBlockState(j3, j2, i2); - IBlockState iblockstate2 = (IBlockState)Objects.firstNonNull(p_180702_5_.getBlockState(j3, j2 + 1, i2), Blocks.air.getDefaultState()); - -- if (iblockstate1.getBlock() == Blocks.grass || iblockstate1.getBlock() == Blocks.mycelium) -+ if (isTopBlock(p_180702_5_, j3, j2, i2, p_180702_3_, p_180702_4_)) - { - flag1 = true; - } - -- if (this.func_175793_a(iblockstate1, iblockstate2)) -- { -- if (j2 - 1 < 10) -- { -- p_180702_5_.setBlockState(j3, j2, i2, Blocks.lava.getDefaultState()); -- } -- else -- { -- p_180702_5_.setBlockState(j3, j2, i2, Blocks.air.getDefaultState()); -- -- if (iblockstate2.getBlock() == Blocks.sand) -- { -- p_180702_5_.setBlockState(j3, j2 + 1, i2, iblockstate2.getValue(BlockSand.VARIANT) == BlockSand.EnumType.RED_SAND ? Blocks.red_sandstone.getDefaultState() : Blocks.sandstone.getDefaultState()); -- } -- -- if (flag1 && p_180702_5_.getBlockState(j3, j2 - 1, i2).getBlock() == Blocks.dirt) -- { -- blockpos$mutableblockpos.set(j3 + p_180702_3_ * 16, 0, i2 + p_180702_4_ * 16); -- p_180702_5_.setBlockState(j3, j2 - 1, i2, this.worldObj.getBiomeGenForCoords(blockpos$mutableblockpos).topBlock.getBlock().getDefaultState()); -- } -- } -- } -+ digBlock(p_180702_5_, j3, j2, i2, p_180702_3_, p_180702_4_, flag1, iblockstate1, iblockstate2); - } - } - } -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/gen/MapGenRavine.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/MapGenRavine.java.patch.rej deleted file mode 100644 index cf2327018..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/MapGenRavine.java.patch.rej +++ /dev/null @@ -1,32 +0,0 @@ -++++ REJECTED PATCH 2 - { - IBlockState iblockstate1 = p_180707_5_.getBlockState(j3, j2, i2); - -- if (iblockstate1.getBlock() == Blocks.grass) -+ if (isTopBlock(p_180707_5_, j3, j2, i2, p_180707_3_, p_180707_4_)) - { - flag = true; - } - -- if (iblockstate1.getBlock() == Blocks.stone || iblockstate1.getBlock() == Blocks.dirt || iblockstate1.getBlock() == Blocks.grass) -- { -- if (j2 - 1 < 10) -- { -- p_180707_5_.setBlockState(j3, j2, i2, Blocks.flowing_lava.getDefaultState()); -- } -- else -- { -- p_180707_5_.setBlockState(j3, j2, i2, Blocks.air.getDefaultState()); -- -- if (flag && p_180707_5_.getBlockState(j3, j2 - 1, i2).getBlock() == Blocks.dirt) -- { -- blockpos$mutableblockpos.set(j3 + p_180707_3_ * 16, 0, i2 + p_180707_4_ * 16); -- p_180707_5_.setBlockState(j3, j2 - 1, i2, this.worldObj.getBiomeGenForCoords(blockpos$mutableblockpos).topBlock); -- } -- } -- } -+ digBlock(p_180707_5_, j3, j2, i2, p_180707_3_, p_180707_4_, flag); - } - } - } -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/gen/layer/GenLayer.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/layer/GenLayer.java.patch.rej deleted file mode 100644 index 2a00cca4a..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/layer/GenLayer.java.patch.rej +++ /dev/null @@ -1,10 +0,0 @@ -++++ REJECTED PATCH 2 - - protected static boolean isBiomeOceanic(int p_151618_0_) - { -- return p_151618_0_ == BiomeGenBase.ocean.biomeID || p_151618_0_ == BiomeGenBase.deepOcean.biomeID || p_151618_0_ == BiomeGenBase.frozenOcean.biomeID; -+ return net.minecraftforge.common.BiomeManager.oceanBiomes.contains(BiomeGenBase.getBiome(p_151618_0_)); - } - - protected int selectRandom(int... p_151619_1_) -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java.patch.rej deleted file mode 100644 index e2267751c..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java.patch.rej +++ /dev/null @@ -1,84 +0,0 @@ -++++ REJECTED PATCH 1 - - public class GenLayerBiome extends GenLayer - { -- private BiomeGenBase[] field_151623_c = new BiomeGenBase[] {BiomeGenBase.desert, BiomeGenBase.desert, BiomeGenBase.desert, BiomeGenBase.savanna, BiomeGenBase.savanna, BiomeGenBase.plains}; -- private BiomeGenBase[] field_151621_d = new BiomeGenBase[] {BiomeGenBase.forest, BiomeGenBase.roofedForest, BiomeGenBase.extremeHills, BiomeGenBase.plains, BiomeGenBase.birchForest, BiomeGenBase.swampland}; -- private BiomeGenBase[] field_151622_e = new BiomeGenBase[] {BiomeGenBase.forest, BiomeGenBase.extremeHills, BiomeGenBase.taiga, BiomeGenBase.plains}; -- private BiomeGenBase[] field_151620_f = new BiomeGenBase[] {BiomeGenBase.icePlains, BiomeGenBase.icePlains, BiomeGenBase.icePlains, BiomeGenBase.coldTaiga}; -+ @SuppressWarnings("unchecked") -+ private java.util.List[] biomes = new java.util.ArrayList[net.minecraftforge.common.BiomeManager.BiomeType.values().length]; -+ - private final ChunkProviderSettings field_175973_g; - - public GenLayerBiome(long p_i45560_1_, GenLayer p_i45560_3_, WorldType p_i45560_4_, String p_i45560_5_) -++++ END PATCH -++++ REJECTED PATCH 2 - super(p_i45560_1_); - this.parent = p_i45560_3_; - -+ for (net.minecraftforge.common.BiomeManager.BiomeType type : net.minecraftforge.common.BiomeManager.BiomeType.values()) -+ { -+ com.google.common.collect.ImmutableList biomesToAdd = net.minecraftforge.common.BiomeManager.getBiomes(type); -+ int idx = type.ordinal(); -+ -+ if (biomes[idx] == null) biomes[idx] = new java.util.ArrayList(); -+ if (biomesToAdd != null) biomes[idx].addAll(biomesToAdd); -+ } -+ -+ int desertIdx = net.minecraftforge.common.BiomeManager.BiomeType.DESERT.ordinal(); -+ -+ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(BiomeGenBase.desert, 30)); -+ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(BiomeGenBase.savanna, 20)); -+ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(BiomeGenBase.plains, 10)); -+ - if (p_i45560_4_ == WorldType.DEFAULT_1_1) - { -- this.field_151623_c = new BiomeGenBase[] {BiomeGenBase.desert, BiomeGenBase.forest, BiomeGenBase.extremeHills, BiomeGenBase.swampland, BiomeGenBase.plains, BiomeGenBase.taiga}; -+ biomes[desertIdx].clear(); -+ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(BiomeGenBase.desert, 10)); -+ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(BiomeGenBase.forest, 10)); -+ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(BiomeGenBase.extremeHills, 10)); -+ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(BiomeGenBase.swampland, 10)); -+ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(BiomeGenBase.plains, 10)); -+ biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(BiomeGenBase.taiga, 10)); - this.field_175973_g = null; - } - else if (p_i45560_4_ == WorldType.CUSTOMIZED) -++++ END PATCH -++++ REJECTED PATCH 3 - } - else - { -- aint1[j + i * areaWidth] = this.field_151623_c[this.nextInt(this.field_151623_c.length)].biomeID; -+ aint1[j + i * areaWidth] = getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.DESERT).biome.biomeID; - } - } - else if (k == 2) -++++ END PATCH -++++ REJECTED PATCH 4 - } - else - { -- aint1[j + i * areaWidth] = this.field_151621_d[this.nextInt(this.field_151621_d.length)].biomeID; -+ aint1[j + i * areaWidth] = getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.WARM).biome.biomeID; - } - } - else if (k == 3) -++++ END PATCH -++++ REJECTED PATCH 5 - } - else - { -- aint1[j + i * areaWidth] = this.field_151622_e[this.nextInt(this.field_151622_e.length)].biomeID; -+ aint1[j + i * areaWidth] = getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.COOL).biome.biomeID; - } - } - else if (k == 4) - { -- aint1[j + i * areaWidth] = this.field_151620_f[this.nextInt(this.field_151620_f.length)].biomeID; -+ aint1[j + i * areaWidth] = getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.ICY).biome.biomeID; - } - else - { -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces.java.patch.rej deleted file mode 100644 index 7cec77af0..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces.java.patch.rej +++ /dev/null @@ -1,55 +0,0 @@ -++++ REJECTED PATCH 2 - { - int l1 = enumfacing.getFrontOffsetX() * 2; - int i2 = enumfacing.getFrontOffsetZ() * 2; -- this.field_74940_h[enumfacing.getHorizontalIndex()] = this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 10 + l1, -11, 10 + i2, WeightedRandomChestContent.func_177629_a(itemsToGenerateInTemple, new WeightedRandomChestContent[] {Items.enchanted_book.getRandom(randomIn)}), 2 + randomIn.nextInt(5)); -+ this.field_74940_h[enumfacing.getHorizontalIndex()] = this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 10 + l1, -11, 10 + i2, net.minecraftforge.common.ChestGenHooks.getItems(net.minecraftforge.common.ChestGenHooks.PYRAMID_DESERT_CHEST, randomIn), net.minecraftforge.common.ChestGenHooks.getCount(net.minecraftforge.common.ChestGenHooks.PYRAMID_DESERT_CHEST, randomIn)); - } - } - -++++ END PATCH -++++ REJECTED PATCH 4 - this.setBlockState(worldIn, Blocks.redstone_wire.getDefaultState(), 4, -3, 1, structureBoundingBoxIn); - this.setBlockState(worldIn, Blocks.mossy_cobblestone.getDefaultState(), 3, -3, 1, structureBoundingBoxIn); - -+ net.minecraftforge.common.ChestGenHooks dispenser = net.minecraftforge.common.ChestGenHooks.getInfo(net.minecraftforge.common.ChestGenHooks.PYRAMID_JUNGLE_DISPENSER); -+ net.minecraftforge.common.ChestGenHooks chest = net.minecraftforge.common.ChestGenHooks.getInfo(net.minecraftforge.common.ChestGenHooks.PYRAMID_JUNGLE_CHEST); -+ - if (!this.field_74945_j) - { -- this.field_74945_j = this.generateDispenserContents(worldIn, structureBoundingBoxIn, randomIn, 3, -2, 1, EnumFacing.NORTH.getIndex(), field_175815_j, 2); -+ this.field_74945_j = this.generateDispenserContents(worldIn, structureBoundingBoxIn, randomIn, 3, -2, 1, EnumFacing.NORTH.getIndex(), dispenser.getItems(randomIn), dispenser.getCount(randomIn)); - } - - this.setBlockState(worldIn, Blocks.vine.getStateFromMeta(15), 3, -2, 2, structureBoundingBoxIn); -++++ END PATCH -++++ REJECTED PATCH 5 - - if (!this.field_74946_k) - { -- this.field_74946_k = this.generateDispenserContents(worldIn, structureBoundingBoxIn, randomIn, 9, -2, 3, EnumFacing.WEST.getIndex(), field_175815_j, 2); -+ this.field_74946_k = this.generateDispenserContents(worldIn, structureBoundingBoxIn, randomIn, 9, -2, 3, EnumFacing.WEST.getIndex(), dispenser.getItems(randomIn), dispenser.getCount(randomIn)); - } - - this.setBlockState(worldIn, Blocks.vine.getStateFromMeta(15), 8, -1, 3, structureBoundingBoxIn); -++++ END PATCH -++++ REJECTED PATCH 6 - - if (!this.field_74947_h) - { -- this.field_74947_h = this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 8, -3, 3, WeightedRandomChestContent.func_177629_a(field_175816_i, new WeightedRandomChestContent[] {Items.enchanted_book.getRandom(randomIn)}), 2 + randomIn.nextInt(5)); -+ this.field_74947_h = this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 8, -3, 3, chest.getItems(randomIn), chest.getCount(randomIn)); - } - - this.setBlockState(worldIn, Blocks.mossy_cobblestone.getDefaultState(), 9, -3, 2, structureBoundingBoxIn); -++++ END PATCH -++++ REJECTED PATCH 7 - - if (!this.field_74948_i) - { -- this.field_74948_i = this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 9, -3, 10, WeightedRandomChestContent.func_177629_a(field_175816_i, new WeightedRandomChestContent[] {Items.enchanted_book.getRandom(randomIn)}), 2 + randomIn.nextInt(5)); -+ this.field_74948_i = this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 9, -3, 10, chest.getItems(randomIn), chest.getCount(randomIn)); - } - - return true; -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java.patch.rej deleted file mode 100644 index 5827a1fee..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java.patch.rej +++ /dev/null @@ -1,21 +0,0 @@ -++++ REJECTED PATCH 1 - - for (BiomeGenBase biomegenbase : BiomeGenBase.getBiomeGenArray()) - { -- if (biomegenbase != null && biomegenbase.minHeight > 0.0F) -+ if (biomegenbase != null && biomegenbase.minHeight > 0.0F && !net.minecraftforge.common.BiomeManager.strongHoldBiomesBlackList.contains(biomegenbase)) - { - this.field_151546_e.add(biomegenbase); - } - } -+ for (BiomeGenBase biome : net.minecraftforge.common.BiomeManager.strongHoldBiomes) -+ { -+ if (!this.field_151546_e.contains(biome)) -+ { -+ this.field_151546_e.add(biome); -+ } -+ } - } - - public MapGenStronghold(Map p_i2068_1_) -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/gen/structure/StructureMineshaftPieces.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/structure/StructureMineshaftPieces.java.patch.rej deleted file mode 100644 index 5ced572b8..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/structure/StructureMineshaftPieces.java.patch.rej +++ /dev/null @@ -1,19 +0,0 @@ -++++ REJECTED PATCH 2 - this.randomlyPlaceBlock(worldIn, structureBoundingBoxIn, randomIn, 0.05F, 1, 2, k1 - 1, Blocks.torch.getStateFromMeta(EnumFacing.UP.getIndex())); - this.randomlyPlaceBlock(worldIn, structureBoundingBoxIn, randomIn, 0.05F, 1, 2, k1 + 1, Blocks.torch.getStateFromMeta(EnumFacing.UP.getIndex())); - -+ net.minecraftforge.common.ChestGenHooks info = net.minecraftforge.common.ChestGenHooks.getInfo(net.minecraftforge.common.ChestGenHooks.MINESHAFT_CORRIDOR); - if (randomIn.nextInt(100) == 0) - { -- this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 2, 0, k1 - 1, WeightedRandomChestContent.func_177629_a(StructureMineshaftPieces.CHEST_CONTENT_WEIGHT_LIST, new WeightedRandomChestContent[] {Items.enchanted_book.getRandom(randomIn)}), 3 + randomIn.nextInt(4)); -+ this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 2, 0, k1 - 1, info.getItems(randomIn), info.getCount(randomIn)); - } - - if (randomIn.nextInt(100) == 0) - { -- this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 0, 0, k1 + 1, WeightedRandomChestContent.func_177629_a(StructureMineshaftPieces.CHEST_CONTENT_WEIGHT_LIST, new WeightedRandomChestContent[] {Items.enchanted_book.getRandom(randomIn)}), 3 + randomIn.nextInt(4)); -+ this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 0, 0, k1 + 1, info.getItems(randomIn), info.getCount(randomIn)); - } - - if (this.hasSpiders && !this.spawnerPlaced) -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/gen/structure/StructureNetherBridgePieces.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/structure/StructureNetherBridgePieces.java.patch.rej deleted file mode 100644 index 230771864..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/structure/StructureNetherBridgePieces.java.patch.rej +++ /dev/null @@ -1,29 +0,0 @@ -++++ REJECTED PATCH 1 - if (this.field_111021_b && structureBoundingBoxIn.isVecInside(new BlockPos(this.getXWithOffset(3, 3), this.getYWithOffset(2), this.getZWithOffset(3, 3)))) - { - this.field_111021_b = false; -- this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 3, 2, 3, field_111019_a, 2 + randomIn.nextInt(4)); -+ this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 3, 2, 3, net.minecraftforge.common.ChestGenHooks.getItems(net.minecraftforge.common.ChestGenHooks.NETHER_FORTRESS, randomIn), net.minecraftforge.common.ChestGenHooks.getCount(net.minecraftforge.common.ChestGenHooks.NETHER_FORTRESS, randomIn)); - } - - this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 6, 0, 4, 6, 4, Blocks.nether_brick.getDefaultState(), Blocks.nether_brick.getDefaultState(), false); -++++ END PATCH -++++ REJECTED PATCH 2 - if (this.field_111020_b && structureBoundingBoxIn.isVecInside(new BlockPos(this.getXWithOffset(1, 3), this.getYWithOffset(2), this.getZWithOffset(1, 3)))) - { - this.field_111020_b = false; -- this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 1, 2, 3, field_111019_a, 2 + randomIn.nextInt(4)); -+ this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 1, 2, 3, net.minecraftforge.common.ChestGenHooks.getItems(net.minecraftforge.common.ChestGenHooks.NETHER_FORTRESS, randomIn), net.minecraftforge.common.ChestGenHooks.getCount(net.minecraftforge.common.ChestGenHooks.NETHER_FORTRESS, randomIn)); - } - - this.fillWithBlocks(worldIn, structureBoundingBoxIn, 0, 6, 0, 4, 6, 4, Blocks.nether_brick.getDefaultState(), Blocks.nether_brick.getDefaultState(), false); -++++ END PATCH -++++ REJECTED PATCH 3 - abstract static class Piece extends StructureComponent - { - protected static final List field_111019_a = Lists.newArrayList(new WeightedRandomChestContent[] {new WeightedRandomChestContent(Items.diamond, 0, 1, 3, 5), new WeightedRandomChestContent(Items.iron_ingot, 0, 1, 5, 5), new WeightedRandomChestContent(Items.gold_ingot, 0, 1, 3, 15), new WeightedRandomChestContent(Items.golden_sword, 0, 1, 1, 5), new WeightedRandomChestContent(Items.golden_chestplate, 0, 1, 1, 5), new WeightedRandomChestContent(Items.flint_and_steel, 0, 1, 1, 5), new WeightedRandomChestContent(Items.nether_wart, 0, 3, 7, 5), new WeightedRandomChestContent(Items.saddle, 0, 1, 1, 10), new WeightedRandomChestContent(Items.golden_horse_armor, 0, 1, 1, 8), new WeightedRandomChestContent(Items.iron_horse_armor, 0, 1, 1, 5), new WeightedRandomChestContent(Items.diamond_horse_armor, 0, 1, 1, 3), new WeightedRandomChestContent(Item.getItemFromBlock(Blocks.obsidian), 0, 2, 4, 2)}); -+ static { net.minecraftforge.common.ChestGenHooks.init(net.minecraftforge.common.ChestGenHooks.NETHER_FORTRESS, field_111019_a, 2, 5); } - - public Piece() - { -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/gen/structure/StructureStrongholdPieces.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/structure/StructureStrongholdPieces.java.patch.rej deleted file mode 100644 index 6f7af3afd..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/structure/StructureStrongholdPieces.java.patch.rej +++ /dev/null @@ -1,37 +0,0 @@ -++++ REJECTED PATCH 2 - if (!this.hasMadeChest && structureBoundingBoxIn.isVecInside(new BlockPos(this.getXWithOffset(3, 3), this.getYWithOffset(2), this.getZWithOffset(3, 3)))) - { - this.hasMadeChest = true; -- this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 3, 2, 3, WeightedRandomChestContent.func_177629_a(strongholdChestContents, new WeightedRandomChestContent[] {Items.enchanted_book.getRandom(randomIn)}), 2 + randomIn.nextInt(2)); -+ this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 3, 2, 3, net.minecraftforge.common.ChestGenHooks.getItems(net.minecraftforge.common.ChestGenHooks.STRONGHOLD_CORRIDOR, randomIn), net.minecraftforge.common.ChestGenHooks.getCount(net.minecraftforge.common.ChestGenHooks.STRONGHOLD_CORRIDOR, randomIn)); - } - - return true; -++++ END PATCH -++++ REJECTED PATCH 4 - this.setBlockState(worldIn, Blocks.torch.getDefaultState(), i1, 8, j1 + 1, structureBoundingBoxIn); - } - -- this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 3, 3, 5, WeightedRandomChestContent.func_177629_a(strongholdLibraryChestContents, new WeightedRandomChestContent[] {Items.enchanted_book.getRandom(randomIn, 1, 5, 2)}), 1 + randomIn.nextInt(4)); -+ net.minecraftforge.common.ChestGenHooks info = net.minecraftforge.common.ChestGenHooks.getInfo(net.minecraftforge.common.ChestGenHooks.STRONGHOLD_LIBRARY); -+ this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 3, 3, 5, info.getItems(randomIn), info.getCount(randomIn)); - - if (this.isLargeRoom) - { - this.setBlockState(worldIn, Blocks.air.getDefaultState(), 12, 9, 1, structureBoundingBoxIn); -- this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 12, 8, 1, WeightedRandomChestContent.func_177629_a(strongholdLibraryChestContents, new WeightedRandomChestContent[] {Items.enchanted_book.getRandom(randomIn, 1, 5, 2)}), 1 + randomIn.nextInt(4)); -+ this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 12, 8, 1, info.getItems(randomIn), info.getCount(randomIn)); - } - - return true; -++++ END PATCH -++++ REJECTED PATCH 6 - this.setBlockState(worldIn, Blocks.ladder.getStateFromMeta(this.getMetadataWithOffset(Blocks.ladder, EnumFacing.WEST.getIndex())), 9, 1, 3, structureBoundingBoxIn); - this.setBlockState(worldIn, Blocks.ladder.getStateFromMeta(this.getMetadataWithOffset(Blocks.ladder, EnumFacing.WEST.getIndex())), 9, 2, 3, structureBoundingBoxIn); - this.setBlockState(worldIn, Blocks.ladder.getStateFromMeta(this.getMetadataWithOffset(Blocks.ladder, EnumFacing.WEST.getIndex())), 9, 3, 3, structureBoundingBoxIn); -- this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 3, 4, 8, WeightedRandomChestContent.func_177629_a(strongholdRoomCrossingChestContents, new WeightedRandomChestContent[] {Items.enchanted_book.getRandom(randomIn)}), 1 + randomIn.nextInt(4)); -+ this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 3, 4, 8, net.minecraftforge.common.ChestGenHooks.getItems(net.minecraftforge.common.ChestGenHooks.STRONGHOLD_CROSSING, randomIn), net.minecraftforge.common.ChestGenHooks.getCount(net.minecraftforge.common.ChestGenHooks.STRONGHOLD_CROSSING, randomIn)); - } - - return true; -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch.rej b/rejects/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch.rej deleted file mode 100644 index bba26e14d..000000000 --- a/rejects/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch.rej +++ /dev/null @@ -1,19 +0,0 @@ -++++ REJECTED PATCH 4 - if (!this.hasMadeChest && structureBoundingBoxIn.isVecInside(new BlockPos(this.getXWithOffset(5, 5), this.getYWithOffset(1), this.getZWithOffset(5, 5)))) - { - this.hasMadeChest = true; -- this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 5, 1, 5, villageBlacksmithChestContents, 3 + randomIn.nextInt(6)); -+ this.generateChestContents(worldIn, structureBoundingBoxIn, randomIn, 5, 1, 5, net.minecraftforge.common.ChestGenHooks.getItems(net.minecraftforge.common.ChestGenHooks.VILLAGE_BLACKSMITH, randomIn), net.minecraftforge.common.ChestGenHooks.getCount(net.minecraftforge.common.ChestGenHooks.VILLAGE_BLACKSMITH, randomIn)); - } - - for (int i = 6; i <= 8; ++i) -++++ END PATCH -++++ REJECTED PATCH 6 - this.terrainType = p_i2104_7_; - BiomeGenBase biomegenbase = chunkManagerIn.getBiomeGenerator(new BlockPos(p_i2104_4_, 0, p_i2104_5_), BiomeGenBase.field_180279_ad); - this.inDesert = biomegenbase == BiomeGenBase.desert || biomegenbase == BiomeGenBase.desertHills; -+ this.biome = biomegenbase; - this.func_175846_a(this.inDesert); - } - -++++ END PATCH diff --git a/src/main/java/net/minecraftforge/common/ChestGenHooks.java b/src/main/java/net/minecraftforge/common/ChestGenHooks.java index 61c024423..8d2cc0a75 100644 --- a/src/main/java/net/minecraftforge/common/ChestGenHooks.java +++ b/src/main/java/net/minecraftforge/common/ChestGenHooks.java @@ -24,17 +24,9 @@ import net.minecraftforge.oredict.OreDictionary; public class ChestGenHooks { //Currently implemented categories for chests/dispensers, Dungeon loot is still in DungeonHooks - public static final String MINESHAFT_CORRIDOR = "mineshaftCorridor"; - public static final String PYRAMID_DESERT_CHEST = "pyramidDesertyChest"; - public static final String PYRAMID_JUNGLE_CHEST = "pyramidJungleChest"; - public static final String PYRAMID_JUNGLE_DISPENSER = "pyramidJungleDispenser"; - public static final String STRONGHOLD_CORRIDOR = "strongholdCorridor"; - public static final String STRONGHOLD_LIBRARY = "strongholdLibrary"; - public static final String STRONGHOLD_CROSSING = "strongholdCrossing"; - public static final String VILLAGE_BLACKSMITH = "villageBlacksmith"; + public static final String PYRAMID_JUNGLE_DISPENSER = "pyramidJungleDispenser"; // TODO: Convert to a Loot Table public static final String BONUS_CHEST = "bonusChest"; public static final String DUNGEON_CHEST = "dungeonChest"; - public static final String NETHER_FORTRESS = "netherFortress"; private static final HashMap chestInfo = new HashMap(); private static boolean hasInit = false; @@ -53,15 +45,7 @@ public class ChestGenHooks hasInit = true; // This causes the classes static initializers to run new WorldGenDungeons(); - new DesertPyramid(); new JunglePyramid(); - new StructureMineshaftPieces(); - new StructureOceanMonument(); - new StructureStrongholdPieces.ChestCorridor(); - new StructureStrongholdPieces.Library(); - new StructureStrongholdPieces.RoomCrossing(); - new StructureVillagePieces.House2(); - new StructureNetherBridgePieces.Corridor(); WorldServer.fillChestHook(); } diff --git a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java index b1c7ecfa0..0c1fcaeb0 100644 --- a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java +++ b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java @@ -33,6 +33,8 @@ import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraft.world.WorldSettings; import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.chunk.ChunkPrimer; +import net.minecraft.world.chunk.IChunkGenerator; import net.minecraft.world.storage.IPlayerFileData; import net.minecraft.world.storage.SaveHandler; import net.minecraftforge.client.event.ClientChatReceivedEvent; @@ -73,6 +75,8 @@ import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent; import net.minecraftforge.event.entity.player.PlayerWakeUpEvent; import net.minecraftforge.event.entity.player.SleepingLocationCheckEvent; import net.minecraftforge.event.entity.player.UseHoeEvent; +import net.minecraftforge.event.terraingen.ChunkGeneratorEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.event.world.BlockEvent.NeighborNotifyEvent; import net.minecraftforge.event.world.BlockEvent.MultiPlaceEvent; @@ -521,7 +525,10 @@ public class ForgeEventFactory Result canContinueSleep = evt.getResult(); if (canContinueSleep == Result.DEFAULT) - return player.worldObj.getBlockState(player.playerLocation).getBlock().isBed(player.worldObj, player.playerLocation, player); + { + IBlockState state = player.worldObj.getBlockState(player.playerLocation); + return state.getBlock().isBed(state, player.worldObj, player.playerLocation, player); + } else return canContinueSleep == Result.ALLOW; } @@ -542,4 +549,16 @@ public class ForgeEventFactory return event.getCharge(); } + public static boolean onReplaceBiomeBlocks(IChunkGenerator gen, int x, int z, ChunkPrimer primer, World world) + { + ChunkGeneratorEvent.ReplaceBiomeBlocks event = new ChunkGeneratorEvent.ReplaceBiomeBlocks(gen, x, z, primer, world); + net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event); + return event.getResult() != net.minecraftforge.fml.common.eventhandler.Event.Result.DENY; + } + + public static void onChunkPopulate(boolean pre, IChunkGenerator gen, World world, int x, int z, boolean hasVillageGenerated) + { + MinecraftForge.EVENT_BUS.post(new PopulateChunkEvent.Pre(gen, world, world.rand, x, z, hasVillageGenerated)); + } + } diff --git a/src/main/java/net/minecraftforge/event/terraingen/ChunkProviderEvent.java b/src/main/java/net/minecraftforge/event/terraingen/ChunkGeneratorEvent.java similarity index 68% rename from src/main/java/net/minecraftforge/event/terraingen/ChunkProviderEvent.java rename to src/main/java/net/minecraftforge/event/terraingen/ChunkGeneratorEvent.java index d9374346a..a4e13d4e1 100644 --- a/src/main/java/net/minecraftforge/event/terraingen/ChunkProviderEvent.java +++ b/src/main/java/net/minecraftforge/event/terraingen/ChunkGeneratorEvent.java @@ -3,18 +3,19 @@ package net.minecraftforge.event.terraingen; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraft.world.World; import net.minecraft.world.chunk.ChunkPrimer; -import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.chunk.IChunkGenerator; -public class ChunkProviderEvent extends Event +public class ChunkGeneratorEvent extends Event { + private final IChunkGenerator gen; - public final IChunkProvider chunkProvider; - - public ChunkProviderEvent(IChunkProvider chunkProvider) + public ChunkGeneratorEvent(IChunkGenerator gen) { - this.chunkProvider = chunkProvider; + this.gen = gen; } + public IChunkGenerator getGenerator() { return this.gen; } + /** * This event is fired when a chunks blocks are replaced by a biomes top and * filler blocks. @@ -22,14 +23,14 @@ public class ChunkProviderEvent extends Event * You can set the result to DENY to prevent the default replacement. */ @HasResult - public static class ReplaceBiomeBlocks extends ChunkProviderEvent + public static class ReplaceBiomeBlocks extends ChunkGeneratorEvent { public final int x; public final int z; public final ChunkPrimer primer; public final World world; // CAN BE NULL - public ReplaceBiomeBlocks(IChunkProvider chunkProvider, int x, int z, ChunkPrimer primer, World world) + public ReplaceBiomeBlocks(IChunkGenerator chunkProvider, int x, int z, ChunkPrimer primer, World world) { super(chunkProvider); this.x = x; @@ -46,7 +47,7 @@ public class ChunkProviderEvent extends Event * You can set the result to DENY to substitute your own noise field. */ @HasResult - public static class InitNoiseField extends ChunkProviderEvent + public static class InitNoiseField extends ChunkGeneratorEvent { public double[] noisefield; public final int posX; @@ -56,7 +57,7 @@ public class ChunkProviderEvent extends Event public final int sizeY; public final int sizeZ; - public InitNoiseField(IChunkProvider chunkProvider, double[] noisefield, int posX, int posY, int posZ, int sizeX, int sizeY, int sizeZ) + public InitNoiseField(IChunkGenerator chunkProvider, double[] noisefield, int posX, int posY, int posZ, int sizeX, int sizeY, int sizeZ) { super(chunkProvider); this.noisefield = noisefield; diff --git a/src/main/java/net/minecraftforge/event/terraingen/InitNoiseGensEvent.java b/src/main/java/net/minecraftforge/event/terraingen/InitNoiseGensEvent.java index ae4af86c1..9c31596f8 100644 --- a/src/main/java/net/minecraftforge/event/terraingen/InitNoiseGensEvent.java +++ b/src/main/java/net/minecraftforge/event/terraingen/InitNoiseGensEvent.java @@ -3,20 +3,110 @@ package net.minecraftforge.event.terraingen; import java.util.Random; import net.minecraft.world.World; -import net.minecraft.world.gen.NoiseGenerator; -import net.minecraftforge.event.world.*; +import net.minecraft.world.gen.NoiseGeneratorOctaves; +import net.minecraft.world.gen.NoiseGeneratorPerlin; +import net.minecraft.world.gen.NoiseGeneratorSimplex; +import net.minecraftforge.event.world.WorldEvent; -public class InitNoiseGensEvent extends WorldEvent +public class InitNoiseGensEvent extends WorldEvent { - public final Random rand; - public final NoiseGenerator[] originalNoiseGens; - public NoiseGenerator[] newNoiseGens; - - public InitNoiseGensEvent(World world, Random rand, NoiseGenerator[] original) + private final Random rand; + private final T original; + private T newValues; + + @SuppressWarnings("unchecked") + public InitNoiseGensEvent(World world, Random rand, T original) { super(world); this.rand = rand; - originalNoiseGens = original; - newNoiseGens = original.clone(); + this.original = original; + this.newValues = (T)original.clone(); + } + public Random getRandom() { return this.rand; } + public T getOriginal() { return this.original; } + public T getNewValues() { return this.newValues; } + + public static class Context + { + private NoiseGeneratorOctaves lperlin1; + private NoiseGeneratorOctaves lperlin2; + private NoiseGeneratorOctaves perlin; + private NoiseGeneratorOctaves scale; + private NoiseGeneratorOctaves depth; + public Context(NoiseGeneratorOctaves lperlin1, NoiseGeneratorOctaves lperlin2, NoiseGeneratorOctaves perlin, + NoiseGeneratorOctaves scale, NoiseGeneratorOctaves depth) + { + this.lperlin1 = lperlin1; + this.lperlin2 = lperlin2; + this.perlin = perlin; + this.scale = scale; + this.depth = depth; + } + public NoiseGeneratorOctaves getLPerlin1() { return lperlin1; } + public NoiseGeneratorOctaves getLPerlin2() { return lperlin2; } + public NoiseGeneratorOctaves getPerlin() { return perlin; } + public NoiseGeneratorOctaves getScale() { return scale; } + public NoiseGeneratorOctaves getDepth() { return depth; } + public void setLPerlin1(NoiseGeneratorOctaves value) { this.lperlin1 = value; } + public void getLPerlin2(NoiseGeneratorOctaves value) { this.lperlin2 = value; } + public void getPerlin (NoiseGeneratorOctaves value) { this.perlin = value; } + public void getScale (NoiseGeneratorOctaves value) { this.scale = value; } + public void getDepth (NoiseGeneratorOctaves value) { this.depth = value; } + + public Context clone(){ return new Context(lperlin1, lperlin2, perlin, scale, depth); } + } + + public static class ContextOverworld extends Context + { + private NoiseGeneratorPerlin height; + private NoiseGeneratorOctaves forest; + + public ContextOverworld(NoiseGeneratorOctaves lperlin1, NoiseGeneratorOctaves lperlin2, NoiseGeneratorOctaves perlin, + NoiseGeneratorPerlin height, NoiseGeneratorOctaves scale, NoiseGeneratorOctaves depth, NoiseGeneratorOctaves forest) + { + super(lperlin1, lperlin2, perlin, scale, depth); + this.height = height; + this.forest = forest; + } + public ContextOverworld clone() { return new ContextOverworld(getLPerlin1(), getLPerlin2(), getPerlin(), height, getScale(), getDepth(), forest); } + public NoiseGeneratorPerlin getHeight() { return height; } + public NoiseGeneratorOctaves getForest() { return forest; } + + public void getHeight (NoiseGeneratorPerlin value) { this.height = value; } + public void getForest (NoiseGeneratorOctaves value) { this.forest = value; } + } + + public static class ContextEnd extends Context + { + private NoiseGeneratorSimplex island; + public ContextEnd(NoiseGeneratorOctaves lperlin1, NoiseGeneratorOctaves lperlin2, NoiseGeneratorOctaves perlin, + NoiseGeneratorOctaves scale, NoiseGeneratorOctaves depth, NoiseGeneratorSimplex island) + { + super(lperlin1, lperlin2, perlin, scale, depth); + this.island = island; + } + public ContextEnd clone() { return new ContextEnd(getLPerlin1(), getLPerlin2(), getPerlin(), getScale(), getDepth(), island); } + public NoiseGeneratorSimplex getIsland() { return island; } + public void getIsland (NoiseGeneratorSimplex value) { this.island = value; } + } + + + public static class ContextHell extends Context + { + private NoiseGeneratorOctaves perlin2; + private NoiseGeneratorOctaves perlin3; + + public ContextHell(NoiseGeneratorOctaves lperlin1, NoiseGeneratorOctaves lperlin2, NoiseGeneratorOctaves perlin, + NoiseGeneratorOctaves perlin2, NoiseGeneratorOctaves perlin3, NoiseGeneratorOctaves scale, NoiseGeneratorOctaves depth) + { + super(lperlin1, lperlin2, perlin, scale, depth); + this.perlin2 = perlin2; + this.perlin3 = perlin3; + } + public ContextHell clone() { return new ContextHell(getLPerlin1(), getLPerlin2(), getPerlin(), perlin2, perlin3, getScale(), getDepth()); } + public NoiseGeneratorOctaves getPerlin2() { return perlin2; } + public NoiseGeneratorOctaves getPerlin3() { return perlin3; } + public void getPerlin2 (NoiseGeneratorOctaves value) { this.perlin2 = value; } + public void getPerlin3 (NoiseGeneratorOctaves value) { this.perlin3 = value; } } } \ No newline at end of file diff --git a/src/main/java/net/minecraftforge/event/terraingen/PopulateChunkEvent.java b/src/main/java/net/minecraftforge/event/terraingen/PopulateChunkEvent.java index cfc77547f..78a183639 100644 --- a/src/main/java/net/minecraftforge/event/terraingen/PopulateChunkEvent.java +++ b/src/main/java/net/minecraftforge/event/terraingen/PopulateChunkEvent.java @@ -5,6 +5,7 @@ import java.util.Random; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.fml.common.eventhandler.Event.HasResult; import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkGenerator; import net.minecraft.world.chunk.IChunkProvider; /** @@ -20,7 +21,7 @@ import net.minecraft.world.chunk.IChunkProvider; *
* All children of this event are fired on the {@link MinecraftForge#EVENT_BUS}, except {@link Populate}, which fires on the {@link MinecraftForge#TERRAIN_GEN_BUS}.
**/ -public class PopulateChunkEvent extends ChunkProviderEvent +public class PopulateChunkEvent extends ChunkGeneratorEvent { public final World world; public final Random rand; @@ -28,9 +29,9 @@ public class PopulateChunkEvent extends ChunkProviderEvent public final int chunkZ; public final boolean hasVillageGenerated; - public PopulateChunkEvent(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated) + public PopulateChunkEvent(IChunkGenerator gen, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated) { - super(chunkProvider); + super(gen); this.world = world; this.rand = rand; this.chunkX = chunkX; @@ -53,9 +54,9 @@ public class PopulateChunkEvent extends ChunkProviderEvent **/ public static class Pre extends PopulateChunkEvent { - public Pre(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated) + public Pre(IChunkGenerator gen, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated) { - super(chunkProvider, world, rand, chunkX, chunkZ, hasVillageGenerated); + super(gen, world, rand, chunkX, chunkZ, hasVillageGenerated); } } @@ -74,7 +75,7 @@ public class PopulateChunkEvent extends ChunkProviderEvent **/ public static class Post extends PopulateChunkEvent { - public Post(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated) + public Post(IChunkGenerator chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated) { super(chunkProvider, world, rand, chunkX, chunkZ, hasVillageGenerated); } @@ -105,9 +106,9 @@ public class PopulateChunkEvent extends ChunkProviderEvent public final EventType type; - public Populate(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated, EventType type) + public Populate(IChunkGenerator gen, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated, EventType type) { - super(chunkProvider, world, rand, chunkX, chunkZ, hasVillageGenerated); + super(gen, world, rand, chunkX, chunkZ, hasVillageGenerated); this.type = type; } } diff --git a/src/main/java/net/minecraftforge/event/terraingen/TerrainGen.java b/src/main/java/net/minecraftforge/event/terraingen/TerrainGen.java index 9ca4e97b4..a61d29537 100644 --- a/src/main/java/net/minecraftforge/event/terraingen/TerrainGen.java +++ b/src/main/java/net/minecraftforge/event/terraingen/TerrainGen.java @@ -4,6 +4,7 @@ import java.util.Random; import net.minecraftforge.fml.common.eventhandler.Event.*; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkGenerator; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.MapGenBase; import net.minecraft.world.gen.NoiseGenerator; @@ -15,11 +16,11 @@ import net.minecraftforge.event.terraingen.PopulateChunkEvent.*; public abstract class TerrainGen { - public static NoiseGenerator[] getModdedNoiseGenerators(World world, Random rand, NoiseGenerator[] original) + public static T getModdedNoiseGenerators(World world, Random rand, T original) { - InitNoiseGensEvent event = new InitNoiseGensEvent(world, rand, original); + InitNoiseGensEvent event = new InitNoiseGensEvent(world, rand, original); MinecraftForge.TERRAIN_GEN_BUS.post(event); - return event.newNoiseGens; + return event.getNewValues(); } public static MapGenBase getModdedMapGen(MapGenBase original, InitMapGenEvent.EventType type) @@ -29,7 +30,7 @@ public abstract class TerrainGen return event.newGen; } - public static boolean populate(IChunkProvider chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated, Populate.EventType type) + public static boolean populate(IChunkGenerator chunkProvider, World world, Random rand, int chunkX, int chunkZ, boolean hasVillageGenerated, Populate.EventType type) { PopulateChunkEvent.Populate event = new PopulateChunkEvent.Populate(chunkProvider, world, rand, chunkX, chunkZ, hasVillageGenerated, type); MinecraftForge.TERRAIN_GEN_BUS.post(event); diff --git a/src/main/java/net/minecraftforge/fml/common/IWorldGenerator.java b/src/main/java/net/minecraftforge/fml/common/IWorldGenerator.java index 20b43f83d..6210b20a4 100644 --- a/src/main/java/net/minecraftforge/fml/common/IWorldGenerator.java +++ b/src/main/java/net/minecraftforge/fml/common/IWorldGenerator.java @@ -5,7 +5,7 @@ * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html - * + * * Contributors: * cpw - implementation */ @@ -15,11 +15,12 @@ package net.minecraftforge.fml.common; import java.util.Random; import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkGenerator; import net.minecraft.world.chunk.IChunkProvider; /** - * This is called back during world generation. + * This is called back during world generation. * * @author cpw * @@ -37,5 +38,5 @@ public interface IWorldGenerator * @param chunkProvider : additionalData[2] {@link IChunkProvider} that is requesting the world generation. * */ - public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider); + public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider); } diff --git a/src/main/java/net/minecraftforge/fml/common/registry/GameRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/GameRegistry.java index ee5b0fcfb..dd9d7feea 100644 --- a/src/main/java/net/minecraftforge/fml/common/registry/GameRegistry.java +++ b/src/main/java/net/minecraftforge/fml/common/registry/GameRegistry.java @@ -39,6 +39,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkGenerator; import net.minecraft.world.chunk.IChunkProvider; import net.minecraftforge.fml.common.FMLLog; import net.minecraftforge.fml.common.IFuelHandler; @@ -94,7 +95,7 @@ public class GameRegistry * @param chunkGenerator The chunk generator * @param chunkProvider The chunk provider */ - public static void generateWorld(int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) + public static void generateWorld(int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) { if (sortedGeneratorList == null) { diff --git a/src/main/resources/forge.exc b/src/main/resources/forge.exc index 70ab22e1b..d59cf947d 100644 --- a/src/main/resources/forge.exc +++ b/src/main/resources/forge.exc @@ -19,8 +19,8 @@ net/minecraft/world/biome/BiomeGenBase.(IZ)V=|p_i1971_1_,register net/minecraft/world/chunk/storage/AnvilChunkLoader.loadChunk__Async(Lnet/minecraft/world/World;II)[Ljava/lang/Object;=|p_75815_1_,p_75815_2_,p_75815_3_ net/minecraft/world/chunk/storage/AnvilChunkLoader.checkedReadChunkFromNBT__Async(Lnet/minecraft/world/World;IILnet/minecraft/nbt/NBTTagCompound;)[Ljava/lang/Object;=|p_75822_1_,p_75822_2_,p_75822_3_,p_75822_4_ net/minecraft/world/chunk/storage/AnvilChunkLoader.loadEntities(Lnet/minecraft/world/World;Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/world/chunk/Chunk;)V=|p_75823_1_,p_75823_2_,chunk -net/minecraft/world/gen/ChunkProviderServer.loadChunk(II;Ljava/lang/Runnable;)Lnet/minecraft/world/chunk/Chunk;=|p_73158_1,p_73158_2,runnable -net/minecraft/world/gen/ChunkProviderServer.originalLoadChunk(II)Lnet/minecraft/world/chunk/Chunk;=|p_73158_1_,p_73158_2_ +net/minecraft/world/gen/ChunkProviderServer.loadChunk(II;Ljava/lang/Runnable;)Lnet/minecraft/world/chunk/Chunk;=|p_186025_1_,p_186025_2_,runnable +net/minecraft/world/gen/ChunkProviderServer.originalLoadChunk(II)Lnet/minecraft/world/chunk/Chunk;=|p_186025_1_,p_186025_2_ net/minecraft/block/BlockFire.tryCatchFire(Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;ILjava/util/Random;ILnet/minecraft/util/EnumFacing;)V=|p_176536_1_,p_176536_2_,p_176536_3_,p_176536_4_,p_176536_5_,face net/minecraft/block/BlockSkull.getDrops(Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)Ljava/util/List;=|p_180663_1_,p_180663_2_,p_180663_3_,fortune diff --git a/src/main/resources/forge_at.cfg b/src/main/resources/forge_at.cfg index 654f7a749..4f78e56d3 100644 --- a/src/main/resources/forge_at.cfg +++ b/src/main/resources/forge_at.cfg @@ -234,3 +234,33 @@ protected net.minecraft.client.gui.FontRenderer func_78277_a(CZ)F # renderUnicod # ServerConfigurationManager #public net.minecraft.server.management.ServerConfigurationManager field_72404_b #playerEntityList - private in 1.8.8 #public net.minecraft.server.management.ServerConfigurationManager field_177454_f #uuidToPlayerMap - private in 1.8.8 + +# ChunkProviderEnd +private-f net/minecraft/world/gen/ChunkProviderEnd/field_185969_i #lperlin1 +private-f net/minecraft/world/gen/ChunkProviderEnd/field_185970_j #lperlin2 +private-f net/minecraft/world/gen/ChunkProviderEnd/field_185971_k #perlin +private-f net/minecraft/world/gen/ChunkProviderEnd/field_185973_o #island + +# ChunkProviderOverworld +private-f net/minecraft/world/gen/ChunkProviderOverworld/field_185991_j #lperlin1 +private-f net/minecraft/world/gen/ChunkProviderOverworld/field_185992_k #lperlin2 +private-f net/minecraft/world/gen/ChunkProviderOverworld/field_185993_l #perlin +private-f net/minecraft/world/gen/ChunkProviderOverworld/field_185994_m #surface +private-f net/minecraft/world/gen/ChunkProviderOverworld/field_185979_A #ravineGenerator +private-f net/minecraft/world/gen/ChunkProviderOverworld/field_185980_B #oceanMonumentGenerator +private-f net/minecraft/world/gen/ChunkProviderOverworld/field_186003_v #caveGenerator +private-f net/minecraft/world/gen/ChunkProviderOverworld/field_186004_w #strongholdGenerator +private-f net/minecraft/world/gen/ChunkProviderOverworld/field_186005_x #villageGenerator +private-f net/minecraft/world/gen/ChunkProviderOverworld/field_186006_y #mineshaftGenerator +private-f net/minecraft/world/gen/ChunkProviderOverworld/field_186007_z #scatteredFeatureGenerator + +# ChunkProviderHell +private-f net/minecraft/world/gen/ChunkProviderHell/field_185957_u #lperlin1 +private-f net/minecraft/world/gen/ChunkProviderHell/field_185958_v #lperlin2 +private-f net/minecraft/world/gen/ChunkProviderHell/field_185959_w #perlin +private-f net/minecraft/world/gen/ChunkProviderHell/field_73177_m #perlin2 +private-f net/minecraft/world/gen/ChunkProviderHell/field_73174_n #perlin3 +public-f net/minecraft/world/gen/ChunkProviderHell/field_185946_g #scale +public-f net/minecraft/world/gen/ChunkProviderHell/field_185947_h #depth +private-f net/minecraft/world/gen/ChunkProviderHell/field_185939_I #netherCaveGenerator +private-f net/minecraft/world/gen/ChunkProviderHell/field_73172_c #netherBridgeGenerator \ No newline at end of file