package mattparks.mods.space.venus.world.gen.village;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import mattparks.mods.space.venus.world.gen.BiomeGenBaseVenus;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.gen.structure.MapGenStructure;
import net.minecraft.world.gen.structure.MapGenStructureIO;
import net.minecraft.world.gen.structure.StructureStart;
public class MapGenVillageVenus extends MapGenStructure {
public static List<BiomeGenBase> villageSpawnBiomes = Arrays.asList(new BiomeGenBase[] { BiomeGenBaseVenus.venus });
private final int terrainType;
private static boolean initialized;
static {
try {
MapGenVillageVenus.initiateStructures();
} catch (Throwable e) {
}
}
public static void initiateStructures() throws Throwable {
if (!MapGenVillageVenus.initialized) {
MapGenStructureIO.registerStructure(StructureVillageStartVenus.class, "VenusVillage");
MapGenStructureIO.func_143031_a(StructureComponentVenusVillageField.class, "VenusField1");
MapGenStructureIO.func_143031_a(StructureComponentVenusVillageField2.class, "VenusField2");
MapGenStructureIO.func_143031_a(StructureComponentVenusVillageHouse.class, "VenusHouse");
MapGenStructureIO.func_143031_a(StructureComponentVenusVillageRoadPiece.class, "VenusRoadPiece");
MapGenStructureIO.func_143031_a(StructureComponentVenusVillagePathGen.class, "VenusPath");
MapGenStructureIO.func_143031_a(StructureComponentVenusVillageTorch.class, "VenusTorch");
MapGenStructureIO.func_143031_a(StructureComponentVenusVillageStartPiece.class, "VenusWell");
MapGenStructureIO.func_143031_a(StructureComponentVenusVillageWoodHut.class, "VenusWoodHut");
}
MapGenVillageVenus.initialized = true;
}
public MapGenVillageVenus() {
this.terrainType = 0;
}
@Override
protected boolean canSpawnStructureAtCoords(int i, int j) {
final byte numChunks = 32;
final byte offsetChunks = 8;
final int oldi = i;
final int oldj = j;
if (i < 0) {
i -= numChunks - 1;
}
if (j < 0) {
j -= numChunks - 1;
}
int randX = i / numChunks;
int randZ = j / numChunks;
final Random var7 = this.worldObj.setRandomSeed(i, j, 10387312);
randX *= numChunks;
randZ *= numChunks;
randX += var7.nextInt(numChunks - offsetChunks);
randZ += var7.nextInt(numChunks - offsetChunks);
return oldi == randX && oldj == randZ;
}
@Override
protected StructureStart getStructureStart(int par1, int par2) {
return new StructureVillageStartVenus(this.worldObj, this.rand, par1, par2, this.terrainType);
}
@Override
public String func_143025_a() {
return "VenusVillage";
}
}