package mattparks.mods.space.venus.world.gen.pit; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Random; import micdoodle8.mods.galacticraft.api.prefab.world.gen.MapGenBaseMeta; import net.minecraft.block.Block; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.gen.structure.StructureBoundingBox; import net.minecraft.world.gen.structure.StructureStart; public abstract class MapGenBlazePitStructure extends MapGenBaseMeta { protected Map<Long, StructureStart> structureMap = new HashMap<Long, StructureStart>(); @Override protected void recursiveGenerate(World world, int xChunkCoord, int zChunkCoord, int origXChunkCoord, int origZChunkCoord, Block[] blocks, byte[] metadata) { this.rand.nextInt(); if (this.canSpawnStructureAtCoords(xChunkCoord, zChunkCoord)) { final StructureStart var7 = this.getStructureStart(xChunkCoord, zChunkCoord); this.structureMap.put(Long.valueOf(ChunkCoordIntPair.chunkXZ2Int(xChunkCoord, zChunkCoord)), var7); } } public boolean generateStructuresInChunk(World par1World, Random par2Random, int par3, int par4) { final int var5 = (par3 << 4) + 8; final int var6 = (par4 << 4) + 8; boolean var7 = false; final Iterator<?> var8 = this.structureMap.values().iterator(); while (var8.hasNext()) { final StructureStart var9 = (StructureStart) var8.next(); if (var9 != null && var9.isSizeableStructure() && var9.getBoundingBox().intersectsWith(var5, var6, var5 + 15, var6 + 15)) { var9.generateStructure(par1World, par2Random, new StructureBoundingBox(var5, var6, var5 + 15, var6 + 15)); var7 = true; } } return var7; } protected abstract boolean canSpawnStructureAtCoords(int var1, int var2); protected abstract StructureStart getStructureStart(int var1, int var2); }