Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.geometrically.prehistoric.common.world.gen;
- import com.google.common.collect.HashMultimap;
- import com.google.common.collect.ImmutableList;
- import com.google.common.collect.Lists;
- import com.google.common.collect.Multimap;
- import net.minecraft.block.BlockFalling;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.client.Minecraft;
- import net.minecraft.entity.EnumCreatureType;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.util.math.MathHelper;
- import net.minecraft.world.World;
- import net.minecraft.world.WorldEntitySpawner;
- import net.minecraft.world.WorldServer;
- import net.minecraft.world.biome.Biome;
- import net.minecraft.world.chunk.Chunk;
- import net.minecraft.world.chunk.ChunkPrimer;
- import net.minecraft.world.gen.*;
- import net.minecraftforge.event.ForgeEventFactory;
- import net.minecraftforge.event.terraingen.InitMapGenEvent;
- import net.minecraftforge.event.terraingen.TerrainGen;
- import javax.annotation.Nullable;
- import javax.imageio.ImageIO;
- import java.awt.*;
- import java.awt.image.BufferedImage;
- import java.io.IOException;
- import java.util.*;
- import java.util.List;
- public class ChunkGeneratorPrehistoric implements IChunkGenerator {
- private final World worldObj;
- private Random random;
- private Biome[] biomesForGeneration;
- //private List<Biome.SpawnListEntry> mobs = Lists.newArrayList(new Biome.SpawnListEntry(EntityWeirdZombie.class, 100, 2, 2));
- private MapGenBase caveGenerator = new MapGenCaves();
- private PrehistoricTerrainGenerator terraingen = new PrehistoricTerrainGenerator();
- public ChunkGeneratorPrehistoric(World worldObj) {
- this.worldObj = worldObj;
- long seed = worldObj.getSeed();
- this.random = new Random((seed + 516) * 314);
- terraingen.setup(worldObj, random);
- caveGenerator = TerrainGen.getModdedMapGen(caveGenerator, InitMapGenEvent.EventType.CAVE);
- }
- @Override
- public Chunk generateChunk(int x, int z) {
- ChunkPrimer chunkprimer = new ChunkPrimer();
- // Setup biomes for terraingen
- this.biomesForGeneration = this.worldObj.getBiomeProvider().getBiomesForGeneration(this.biomesForGeneration, x * 4 - 2, z * 4 - 2, 10, 10);
- terraingen.setBiomesForGeneration(biomesForGeneration);
- terraingen.generate(x, z, chunkprimer);
- // Setup biomes again for actual biome decoration
- this.biomesForGeneration = this.worldObj.getBiomeProvider().getBiomes(this.biomesForGeneration, x * 16, z * 16, 16, 16);
- // This will replace stone with the biome specific stones
- terraingen.replaceBiomeBlocks(x, z, chunkprimer, this, biomesForGeneration);
- // Generate caves
- this.caveGenerator.generate(this.worldObj, x, z, chunkprimer);
- Chunk chunk = new Chunk(this.worldObj, chunkprimer, x, z);
- byte[] biomeArray = chunk.getBiomeArray();
- for (int i = 0; i < biomeArray.length; ++i) {
- biomeArray[i] = (byte) Biome.getIdForBiome(this.biomesForGeneration[i]);
- }
- chunk.generateSkylightMap();
- return chunk;
- }
- @Override
- public void populate(int x, int z) {
- int i = x * 16;
- int j = z * 16;
- BlockPos blockpos = new BlockPos(i, 0, j);
- Biome biome = this.worldObj.getBiome(blockpos.add(16, 0, 16));
- // Add biome decorations (like flowers, grass, trees, ...)
- biome.decorate(this.worldObj, this.random, blockpos);
- // Make sure animals appropriate to the biome spawn here when the chunk is generated
- WorldEntitySpawner.performWorldGenSpawning(this.worldObj, biome, i + 8, j + 8, 16, 16, this.random);
- }
- @Override
- public boolean generateStructures(Chunk chunkIn, int x, int z) {
- return false;
- }
- @Override
- public List<Biome.SpawnListEntry> getPossibleCreatures(EnumCreatureType creatureType, BlockPos pos) {
- /* if (creatureType == EnumCreatureType.MONSTER){
- return mobs;
- }*/
- return ImmutableList.of();
- }
- @Nullable
- @Override
- public BlockPos getNearestStructurePos(World worldIn, String structureName, BlockPos position, boolean findUnexplored) {
- return null;
- }
- @Override
- public boolean isInsideStructure(World worldIn, String structureName, BlockPos pos) {
- return false;
- }
- @Override
- public void recreateStructures(Chunk chunkIn, int x, int z) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement