override entity spawning stuff

This commit is contained in:
dfsek committed 2021-05-28 13:34:12 -07:00
1 parent 51c51111a2
commit 0600176e31
2 files changed
+36 -2

No files matched your search

@@ -20,6 +20,7 @@ import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.jafama.FastMath;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.entity.EntityClassification;
import net.minecraft.util.SharedSeedRandom;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
@@ -31,6 +32,7 @@ import net.minecraft.world.IBlockReader;
import net.minecraft.world.IWorld;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.BiomeManager;
import net.minecraft.world.biome.MobSpawnInfo;
import net.minecraft.world.chunk.IChunk;
import net.minecraft.world.gen.ChunkGenerator;
import net.minecraft.world.gen.GenerationStage;
@@ -45,6 +47,7 @@ import net.minecraft.world.spawner.WorldEntitySpawner;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
@@ -143,7 +146,7 @@ public class ForgeChunkGeneratorWrapper extends ChunkGenerator implements Genera
public int getBaseHeight(int x, int z, Heightmap.@NotNull Type type) {
TerraWorld world = TerraForgePlugin.getInstance().getWorld(dimensionType);
int height = world.getWorld().getMaxHeight();
while(height >= 0 && !type.isOpaque().test(((ForgeBlockData) world.getUngeneratedBlock(x, height-1, z)).getHandle())) {
while(height >= 0 && !type.isOpaque().test(((ForgeBlockData) world.getUngeneratedBlock(x, height - 1, z)).getHandle())) {
height--;
}
return height;
@@ -181,6 +184,13 @@ public class ForgeChunkGeneratorWrapper extends ChunkGenerator implements Genera
}
}
@Override
public List<MobSpawnInfo.Spawners> getMobsAt(Biome p_230353_1_, StructureManager p_230353_2_, EntityClassification p_230353_3_, BlockPos p_230353_4_) {
List<MobSpawnInfo.Spawners> spawns = net.minecraftforge.common.world.StructureSpawnManager.getStructureSpawns(p_230353_2_, p_230353_3_, p_230353_4_);
if(spawns != null) return spawns;
return super.getMobsAt(p_230353_1_, p_230353_2_, p_230353_3_, p_230353_4_);
}
@Override
public TerraChunkGenerator getHandle() {
return delegate;