Skip to content

Commit 438a7dd

Browse files
committed
feature: call onChunkPopulate in chunk decoration
1 parent 13a13b8 commit 438a7dd

File tree

3 files changed

+55
-40
lines changed

3 files changed

+55
-40
lines changed

src/main/java/micdoodle8/mods/galacticraft/api/prefab/world/gen/ChunkProviderSpace.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@
99

1010
import java.util.List;
1111
import java.util.Random;
12-
import micdoodle8.mods.galacticraft.api.prefab.core.BlockMetaPair;
13-
import micdoodle8.mods.galacticraft.api.world.ChunkProviderBase;
14-
import micdoodle8.mods.galacticraft.core.GalacticraftCore;
15-
import micdoodle8.mods.galacticraft.core.perlin.generator.GradientNoise;
16-
import micdoodle8.mods.galacticraft.core.world.gen.EnumCraterSize;
12+
1713
import net.minecraft.block.Block;
1814
import net.minecraft.block.BlockFalling;
1915
import net.minecraft.entity.EnumCreatureType;
@@ -24,6 +20,14 @@
2420
import net.minecraft.world.chunk.Chunk;
2521
import net.minecraft.world.chunk.ChunkPrimer;
2622

23+
import net.minecraftforge.event.ForgeEventFactory;
24+
25+
import micdoodle8.mods.galacticraft.api.prefab.core.BlockMetaPair;
26+
import micdoodle8.mods.galacticraft.api.world.ChunkProviderBase;
27+
import micdoodle8.mods.galacticraft.core.GalacticraftCore;
28+
import micdoodle8.mods.galacticraft.core.perlin.generator.GradientNoise;
29+
import micdoodle8.mods.galacticraft.core.world.gen.EnumCraterSize;
30+
2731
/**
2832
* Do not include this prefab class in your released mod download.
2933
*/
@@ -336,9 +340,10 @@ public void populate(int x, int z)
336340
final long var7 = this.rand.nextLong() / 2L * 2L + 1L;
337341
final long var9 = this.rand.nextLong() / 2L * 2L + 1L;
338342
this.rand.setSeed(x * var7 + z * var9 ^ this.world.getSeed());
343+
ForgeEventFactory.onChunkPopulate(true, this, this.world, this.rand, x, z, false);
339344
this.decoratePlanet(this.world, this.rand, var4, var5);
340345
this.onPopulate(x, z);
341-
346+
ForgeEventFactory.onChunkPopulate(false, this, this.world, this.rand, x, z, false);
342347
BlockFalling.fallInstantly = false;
343348
}
344349

src/main/java/micdoodle8/mods/galacticraft/core/world/gen/ChunkProviderMoon.java

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,20 @@
99

1010
import java.util.List;
1111
import java.util.Random;
12+
13+
import net.minecraft.block.BlockFalling;
14+
import net.minecraft.block.state.IBlockState;
15+
import net.minecraft.entity.EnumCreatureType;
16+
import net.minecraft.init.Blocks;
17+
import net.minecraft.util.math.BlockPos;
18+
import net.minecraft.util.math.ChunkPos;
19+
import net.minecraft.world.World;
20+
import net.minecraft.world.biome.Biome;
21+
import net.minecraft.world.chunk.Chunk;
22+
import net.minecraft.world.chunk.ChunkPrimer;
23+
24+
import net.minecraftforge.event.ForgeEventFactory;
25+
1226
import micdoodle8.mods.galacticraft.api.prefab.world.gen.BiomeAdaptive;
1327
import micdoodle8.mods.galacticraft.api.prefab.world.gen.MapGenBaseMeta;
1428
import micdoodle8.mods.galacticraft.api.world.ChunkProviderBase;
@@ -20,16 +34,6 @@
2034
import micdoodle8.mods.galacticraft.core.world.gen.dungeon.MapGenDungeon;
2135
import micdoodle8.mods.galacticraft.core.world.gen.dungeon.RoomBoss;
2236
import micdoodle8.mods.galacticraft.core.world.gen.dungeon.RoomTreasure;
23-
import net.minecraft.block.BlockFalling;
24-
import net.minecraft.block.state.IBlockState;
25-
import net.minecraft.entity.EnumCreatureType;
26-
import net.minecraft.init.Blocks;
27-
import net.minecraft.util.math.BlockPos;
28-
import net.minecraft.util.math.ChunkPos;
29-
import net.minecraft.world.World;
30-
import net.minecraft.world.biome.Biome;
31-
import net.minecraft.world.chunk.Chunk;
32-
import net.minecraft.world.chunk.ChunkPrimer;
3337

3438
public class ChunkProviderMoon extends ChunkProviderBase
3539
{
@@ -172,7 +176,7 @@ public void replaceBlocksForBiome(int x, int z, ChunkPrimer primer, Biome[] biom
172176
@Override
173177
public Chunk generateChunk(int x, int z)
174178
{
175-
this.rand.setSeed((long) x * 341873128712L + (long) z * 132897987541L);
179+
this.rand.setSeed(x * 341873128712L + z * 132897987541L);
176180
ChunkPrimer chunkprimer = new ChunkPrimer();
177181
this.setBlocksInChunk(x, z, chunkprimer);
178182
this.createCraters(x, z, chunkprimer);
@@ -271,16 +275,18 @@ public void populate(int x, int z)
271275
this.rand.setSeed(this.world.getSeed());
272276
long k = this.rand.nextLong() / 2L * 2L + 1L;
273277
long l = this.rand.nextLong() / 2L * 2L + 1L;
274-
this.rand.setSeed((long) x * k + (long) z * l ^ this.world.getSeed());
275-
278+
this.rand.setSeed(x * k + z * l ^ this.world.getSeed());
279+
boolean flag = false;
280+
ForgeEventFactory.onChunkPopulate(true, this, this.world, this.rand, x, z, flag);
276281
if (!ConfigManagerCore.disableMoonVillageGen)
277282
{
278-
this.villageGenerator.generateStructure(this.world, this.rand, new ChunkPos(x, z));
283+
flag = this.villageGenerator.generateStructure(this.world, this.rand, new ChunkPos(x, z));
279284
}
280285

281286
this.dungeonGeneratorMoon.generateStructure(this.world, this.rand, new ChunkPos(x, z));
282287

283288
biomegenbase.decorate(this.world, this.rand, new BlockPos(i, 0, j));
289+
ForgeEventFactory.onChunkPopulate(false, this, this.world, this.rand, x, z, flag);
284290
BlockFalling.fallInstantly = false;
285291
}
286292

src/main/java/micdoodle8/mods/galacticraft/planets/venus/world/gen/ChunkProviderVenus.java

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,7 @@
99

1010
import java.util.List;
1111
import java.util.Random;
12-
import micdoodle8.mods.galacticraft.api.prefab.world.gen.BiomeAdaptive;
13-
import micdoodle8.mods.galacticraft.api.prefab.world.gen.MapGenBaseMeta;
14-
import micdoodle8.mods.galacticraft.api.world.ChunkProviderBase;
15-
import micdoodle8.mods.galacticraft.core.perlin.generator.GradientNoise;
16-
import micdoodle8.mods.galacticraft.planets.venus.VenusBlocks;
17-
import micdoodle8.mods.galacticraft.planets.venus.blocks.BlockBasicVenus;
18-
import micdoodle8.mods.galacticraft.planets.venus.world.gen.dungeon.DungeonConfigurationVenus;
19-
import micdoodle8.mods.galacticraft.planets.venus.world.gen.dungeon.MapGenDungeonVenus;
20-
import micdoodle8.mods.galacticraft.planets.venus.world.gen.dungeon.RoomBossVenus;
21-
import micdoodle8.mods.galacticraft.planets.venus.world.gen.dungeon.RoomTreasureVenus;
12+
2213
import net.minecraft.block.BlockFalling;
2314
import net.minecraft.block.state.IBlockState;
2415
import net.minecraft.entity.EnumCreatureType;
@@ -35,6 +26,19 @@
3526
import net.minecraft.world.gen.NoiseGeneratorOctaves;
3627
import net.minecraft.world.gen.NoiseGeneratorPerlin;
3728

29+
import net.minecraftforge.event.ForgeEventFactory;
30+
31+
import micdoodle8.mods.galacticraft.api.prefab.world.gen.BiomeAdaptive;
32+
import micdoodle8.mods.galacticraft.api.prefab.world.gen.MapGenBaseMeta;
33+
import micdoodle8.mods.galacticraft.api.world.ChunkProviderBase;
34+
import micdoodle8.mods.galacticraft.core.perlin.generator.GradientNoise;
35+
import micdoodle8.mods.galacticraft.planets.venus.VenusBlocks;
36+
import micdoodle8.mods.galacticraft.planets.venus.blocks.BlockBasicVenus;
37+
import micdoodle8.mods.galacticraft.planets.venus.world.gen.dungeon.DungeonConfigurationVenus;
38+
import micdoodle8.mods.galacticraft.planets.venus.world.gen.dungeon.MapGenDungeonVenus;
39+
import micdoodle8.mods.galacticraft.planets.venus.world.gen.dungeon.RoomBossVenus;
40+
import micdoodle8.mods.galacticraft.planets.venus.world.gen.dungeon.RoomTreasureVenus;
41+
3842
public class ChunkProviderVenus extends ChunkProviderBase
3943
{
4044

@@ -86,7 +90,7 @@ public ChunkProviderVenus(World worldIn, long seed, boolean mapFeaturesEnabled)
8690
{
8791
for (int j = -2; j <= 2; ++j)
8892
{
89-
float f = 10.0F / MathHelper.sqrt((float) (i * i + j * j) + 0.2F);
93+
float f = 10.0F / MathHelper.sqrt(i * i + j * j + 0.2F);
9094
this.parabolicField[i + 2 + (j + 2) * 5] = f;
9195
}
9296
}
@@ -171,7 +175,7 @@ private void setBlocksInChunk(int chunkX, int chunkZ, ChunkPrimer primer)
171175
private void replaceBlocksForBiome(int x, int z, ChunkPrimer primer, Biome[] biomes)
172176
{
173177
double d0 = 0.03125D;
174-
this.stoneNoise = this.noiseGen4.getRegion(this.stoneNoise, (double) (x * 16), (double) (z * 16), 16, 16, d0 * 2.0D, d0 * 2.0D, 1.0D);
178+
this.stoneNoise = this.noiseGen4.getRegion(this.stoneNoise, x * 16, z * 16, 16, 16, d0 * 2.0D, d0 * 2.0D, 1.0D);
175179

176180
for (int i = 0; i < 16; ++i)
177181
{
@@ -186,7 +190,7 @@ private void replaceBlocksForBiome(int x, int z, ChunkPrimer primer, Biome[] bio
186190
@Override
187191
public Chunk generateChunk(int x, int z)
188192
{
189-
this.rand.setSeed((long) x * 341873128712L + (long) z * 132897987541L);
193+
this.rand.setSeed(x * 341873128712L + z * 132897987541L);
190194
ChunkPrimer chunkprimer = new ChunkPrimer();
191195
this.setBlocksInChunk(x, z, chunkprimer);
192196
this.biomesForGeneration = this.world.getBiomeProvider().getBiomes(this.biomesForGeneration, x * 16, z * 16, 16, 16);
@@ -291,15 +295,15 @@ private void createLandPerBiome(int x, int z)
291295
}
292296

293297
++j;
294-
double d8 = (double) f3;
295-
double d9 = (double) f2;
298+
double d8 = f3;
299+
double d9 = f2;
296300
d8 = d8 + d7 * 0.2D;
297301
d8 = d8 * 8.5 / 8.0D;
298302
double d0 = 8.5 + d8 * 4.0D;
299303

300304
for (int l1 = 0; l1 < 33; ++l1)
301305
{
302-
double d1 = ((double) l1 - d0) * 12.0 * 128.0D / 256.0D / d9;
306+
double d1 = (l1 - d0) * 12.0 * 128.0D / 256.0D / d9;
303307

304308
if (d1 < 0.0D)
305309
{
@@ -311,7 +315,7 @@ private void createLandPerBiome(int x, int z)
311315

312316
if (l1 > 29)
313317
{
314-
double d6 = (double) ((float) (l1 - 29) / 3.0F);
318+
double d6 = (l1 - 29) / 3.0F;
315319
d5 = d5 * (1.0D - d6) + -10.0D * d6;
316320
}
317321

@@ -333,9 +337,9 @@ public void populate(int x, int z)
333337
this.rand.setSeed(this.world.getSeed());
334338
long k = this.rand.nextLong() / 2L * 2L + 1L;
335339
long l = this.rand.nextLong() / 2L * 2L + 1L;
336-
this.rand.setSeed((long) x * k + (long) z * l ^ this.world.getSeed());
340+
this.rand.setSeed(x * k + z * l ^ this.world.getSeed());
337341
boolean isValley = biomegenbase instanceof BiomeAdaptive && ((BiomeAdaptive) biomegenbase).isInstance(BiomeGenVenusValley.class);
338-
342+
ForgeEventFactory.onChunkPopulate(true, this, this.world, this.rand, x, z, false);
339343
if (this.rand.nextInt(isValley ? 3 : 10) == 0)
340344
{
341345
int i2 = this.rand.nextInt(16) + 8;
@@ -368,7 +372,7 @@ public void populate(int x, int z)
368372

369373
biomegenbase.decorate(this.world, this.rand, new BlockPos(i, 0, j));
370374
WorldEntitySpawner.performWorldGenSpawning(this.world, biomegenbase, i + 8, j + 8, 16, 16, this.rand);
371-
375+
ForgeEventFactory.onChunkPopulate(false, this, this.world, this.rand, x, z, false);
372376
BlockFalling.fallInstantly = false;
373377
}
374378

0 commit comments

Comments
 (0)