From df602b8f36b16fc7695c21ea66deb1a2a34aa8b3 Mon Sep 17 00:00:00 2001 From: Alkalus <3060479+draknyte1@users.noreply.github.com> Date: Sat, 7 Jul 2018 02:32:14 +1000 Subject: + Added 5 new biomes to Australia. % Changes to certain things about Australia. --- .../gtPlusPlus/australia/GTplusplus_Australia.java | 32 +- .../australia/biome/Biome_AustralianDesert.java | 350 -------------------- .../australia/biome/Biome_AustralianDesert2.java | 349 ------------------- .../biome/GenLayerBiomesAustraliaDimension.java | 17 +- .../biome/type/Biome_AustralianDesert.java | 351 ++++++++++++++++++++ .../biome/type/Biome_AustralianDesert2.java | 351 ++++++++++++++++++++ .../biome/type/Biome_AustralianDesert_Ex.java | 54 +++ .../biome/type/Biome_AustralianForest.java | 225 +++++++++++++ .../biome/type/Biome_AustralianOcean.java | 41 +++ .../biome/type/Biome_AustralianOutback.java | 368 +++++++++++++++++++++ .../biome/type/Biome_AustralianPlains.java | 112 +++++++ .../australia/block/AustraliaContentLoader.java | 4 +- .../australia/block/BlockAustraliaSand.java | 6 +- .../australia/block/BlockAustraliaTopSoil.java | 5 +- src/Java/gtPlusPlus/core/lib/CORE.java | 5 + 15 files changed, 1558 insertions(+), 712 deletions(-) delete mode 100644 src/Java/gtPlusPlus/australia/biome/Biome_AustralianDesert.java delete mode 100644 src/Java/gtPlusPlus/australia/biome/Biome_AustralianDesert2.java create mode 100644 src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert.java create mode 100644 src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert2.java create mode 100644 src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert_Ex.java create mode 100644 src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianForest.java create mode 100644 src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianOcean.java create mode 100644 src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianOutback.java create mode 100644 src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianPlains.java (limited to 'src') diff --git a/src/Java/gtPlusPlus/australia/GTplusplus_Australia.java b/src/Java/gtPlusPlus/australia/GTplusplus_Australia.java index 4cccf2c2e6..70e6268e9d 100644 --- a/src/Java/gtPlusPlus/australia/GTplusplus_Australia.java +++ b/src/Java/gtPlusPlus/australia/GTplusplus_Australia.java @@ -11,8 +11,13 @@ import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion; import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.australia.biome.Biome_AustralianDesert; -import gtPlusPlus.australia.biome.Biome_AustralianDesert2; +import gtPlusPlus.australia.biome.type.Biome_AustralianDesert; +import gtPlusPlus.australia.biome.type.Biome_AustralianDesert2; +import gtPlusPlus.australia.biome.type.Biome_AustralianDesert_Ex; +import gtPlusPlus.australia.biome.type.Biome_AustralianForest; +import gtPlusPlus.australia.biome.type.Biome_AustralianOcean; +import gtPlusPlus.australia.biome.type.Biome_AustralianOutback; +import gtPlusPlus.australia.biome.type.Biome_AustralianPlains; import gtPlusPlus.australia.block.AustraliaContentLoader; import gtPlusPlus.australia.dimension.Dimension_Australia; import gtPlusPlus.australia.gen.gt.WorldGen_Australia_Ores; @@ -34,7 +39,14 @@ public class GTplusplus_Australia implements ActionListener { // Dark World Handler protected static volatile Biome_AustralianDesert Australian_Desert_Biome_1; - protected static volatile Biome_AustralianDesert2 Australian_Desert_Biome_2; + protected static volatile Biome_AustralianDesert2 Australian_Desert_Biome_2; + + protected static volatile Biome_AustralianDesert_Ex Australian_Desert_Biome_3; + protected static volatile Biome_AustralianForest Australian_Forest_Biome; + protected static volatile Biome_AustralianOcean Australian_Ocean_Biome; + protected static volatile Biome_AustralianOutback Australian_Outback_Biome; + protected static volatile Biome_AustralianPlains Australian_Plains_Biome; + protected static volatile Dimension_Australia Australia_Dimension; public static int globalAustraliaPortalSpawnTimer = 0; @@ -51,14 +63,19 @@ public class GTplusplus_Australia implements ActionListener { Australian_Desert_Biome_1 = (new Biome_AustralianDesert()); Australian_Desert_Biome_2 = (new Biome_AustralianDesert2()); - Australian_Desert_Biome_1.instance = instance; Australian_Desert_Biome_2.instance = instance; - Australian_Desert_Biome_1.preInit(event); Australian_Desert_Biome_2.preInit(event); + Australian_Desert_Biome_3 = (Biome_AustralianDesert_Ex.biome); + Australian_Forest_Biome = (Biome_AustralianForest.biome); + Australian_Ocean_Biome = (Biome_AustralianOcean.biome); + Australian_Outback_Biome = (Biome_AustralianOutback.biome); + Australian_Plains_Biome = Biome_AustralianPlains.biome; + + //Load/Set Custom Ore Gen sCustomWorldgenFile = new GTPP_Config(new Configuration(new File(new File(event.getModConfigurationDirectory(), "GTplusplus"), "Australia.cfg"))); @@ -73,6 +90,11 @@ public class GTplusplus_Australia implements ActionListener { Australian_Desert_Biome_1.load(); Australian_Desert_Biome_2.load(); + Australian_Desert_Biome_3.load(); + Australian_Forest_Biome.load(); + Australian_Ocean_Biome.load(); + Australian_Outback_Biome.load(); + Australian_Plains_Biome.load(); Australia_Dimension.load(); diff --git a/src/Java/gtPlusPlus/australia/biome/Biome_AustralianDesert.java b/src/Java/gtPlusPlus/australia/biome/Biome_AustralianDesert.java deleted file mode 100644 index 646c3c804a..0000000000 --- a/src/Java/gtPlusPlus/australia/biome/Biome_AustralianDesert.java +++ /dev/null @@ -1,350 +0,0 @@ -package gtPlusPlus.australia.biome; - -import java.lang.reflect.Field; -import java.util.Random; - -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.core.util.reflect.ReflectionUtils; -import net.minecraft.block.Block; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntitySilverfish; -import net.minecraft.entity.monster.EntitySkeleton; -import net.minecraft.entity.monster.EntitySlime; -import net.minecraft.entity.monster.EntitySpider; -import net.minecraft.entity.monster.EntityWitch; -import net.minecraft.entity.monster.EntityZombie; -import net.minecraft.entity.passive.EntityChicken; -import net.minecraft.entity.passive.EntityCow; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntitySheep; -import net.minecraft.entity.passive.EntitySquid; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.gen.feature.WorldGenAbstractTree; -import net.minecraft.world.gen.feature.WorldGenerator; -import net.minecraftforge.common.BiomeDictionary; -import net.minecraftforge.common.BiomeManager; - -public class Biome_AustralianDesert { - - public static BiomeGenAustralianDesert biome = new BiomeGenAustralianDesert(); - - public Object instance; - - public static Block blockTopLayer; - public static Block blockSecondLayer; - public static Block blockMainFiller = Blocks.stone; - public static Block blockSecondaryFiller; - public static Block blockFluidLakes; - - public Biome_AustralianDesert() { - } - - public void load() { - BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.DESERT); - BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.DRY); - BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.HOT); - BiomeManager.addSpawnBiome(biome); - } - - public void generateNether(World world, Random random, int chunkX, int chunkZ) { - } - - public void generateSurface(World world, Random random, int chunkX, int chunkZ) { - } - - public void registerRenderers() { - } - - public int addFuel(ItemStack fuel) { - return 0; - } - - public void serverLoad(FMLServerStartingEvent event) { - } - - public void preInit(FMLPreInitializationEvent event) { - } - - static class BiomeGenAustralianDesert extends BiomeGenBase { - @SuppressWarnings("unchecked") - public BiomeGenAustralianDesert() { - super(CORE.AUSTRALIA_BIOME_DESERT_1_ID); - this.setBiomeName("Australian Desert"); - this.setBiomeID(); - this.enableRain = true; - this.enableSnow = false; - this.topBlock = blockTopLayer; - this.fillerBlock = blockSecondLayer; - //this.theBiomeDecorator = new BiomeGenerator_Custom(); - this.theBiomeDecorator.generateLakes = true; - this.theBiomeDecorator.treesPerChunk = 20; - this.theBiomeDecorator.flowersPerChunk = 0; - this.theBiomeDecorator.grassPerChunk = 5; - this.theBiomeDecorator.deadBushPerChunk = 63; - this.theBiomeDecorator.mushroomsPerChunk = 0; - this.theBiomeDecorator.reedsPerChunk = 42; - this.theBiomeDecorator.cactiPerChunk = 56; - this.theBiomeDecorator.sandPerChunk = 84; - this.rainfall = 0.1F; - this.waterColorMultiplier = 13434879; - setHeight(new BiomeGenBase.Height(0.15F, 0.45F)); - this.rootHeight = -0.25f; //Ground level - - this.spawnableMonsterList.clear(); - this.spawnableCreatureList.clear(); - this.spawnableWaterCreatureList.clear(); - this.spawnableCaveCreatureList.clear(); - - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityChicken.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityCow.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityCreeper.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityHorse.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySheep.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySilverfish.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySkeleton.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySlime.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySpider.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityWitch.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityWolf.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityZombie.class, 5, 1, 5)); - - this.spawnableWaterCreatureList.add(new BiomeGenBase.SpawnListEntry(EntitySquid.class, 5, 1, 5)); - - } - - private synchronized boolean setBiomeID() { - BiomeGenBase[] mTempList; - try { - Field mInternalBiomeList = ReflectionUtils.getField(BiomeGenBase.class, "biomeList"); - Field mClone = mInternalBiomeList; - mTempList = (BiomeGenBase[]) mInternalBiomeList.get(null); - if (mTempList != null){ - mTempList[CORE.AUSTRALIA_BIOME_DESERT_1_ID] = this; - mInternalBiomeList.set(null, mTempList); - if (mTempList != mInternalBiomeList.get(null)){ - ReflectionUtils.setFinalStatic(mInternalBiomeList, mTempList); - Logger.REFLECTION("Set Biome ID for "+this.biomeName+" Biome internally in 'biomeList' field from "+BiomeGenBase.class.getCanonicalName()+"."); - return true; - } - else { - Logger.REFLECTION("Failed to set Biome ID for "+this.biomeName+" Biome internally in 'biomeList' field from "+BiomeGenBase.class.getCanonicalName()+"."); - } - } - return false; - } - catch (Exception e) { - Logger.REFLECTION("Could not access 'biomeList' field in "+BiomeGenBase.class.getCanonicalName()+"."); - return false; - } - } - - @SideOnly(Side.CLIENT) - public int getBiomeGrassColor() { - return 6697728; - } - - @SideOnly(Side.CLIENT) - public int getBiomeFoliageColor() { - return 6697728; - } - - @SideOnly(Side.CLIENT) - public int getSkyColorByTemp(float par1) { - return 13421772; - } - - @SuppressWarnings({ "unchecked", "unused" }) - private boolean addToMonsterSpawnLists(Class EntityClass, int a, int b, int c){ - //this.spawnableMonsterList.add(new SpawnListEntry(EntityClass, a, b, c)); - this.spawnableCaveCreatureList.add(new SpawnListEntry(EntityClass, a, b, c)); - return true; - } - - @Override - public WorldGenAbstractTree func_150567_a(Random par1Random){ - return (WorldGenAbstractTree)(getRandomWorldGenForTrees(par1Random)); - } - - - //TODO - DOES THIS WORK? - public WorldGenerator getRandomWorldGenForTrees(Random par1Random) - { - return new Tree(); - } - - class Tree - extends WorldGenerator - { - private final int minTreeHeight; - private final boolean vinesGrow; - private final int metaWood; - private final int metaLeaves; - - public Tree() - { - super(); - this.minTreeHeight = 5; - this.metaWood = 0; - this.metaLeaves = 0; - this.vinesGrow = false; - } - - public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) - { - int var6 = par2Random.nextInt(3) + this.minTreeHeight; - boolean var7 = true; - if ((par4 >= 1) && (par4 + var6 + 1 <= 256)) - { - for (int var8 = par4; var8 <= par4 + 1 + var6; var8++) - { - byte var9 = 1; - if (var8 == par4) { - var9 = 0; - } - if (var8 >= par4 + 1 + var6 - 2) { - var9 = 2; - } - for (int var10 = par3 - var9; (var10 <= par3 + var9) && (var7); var10++) { - for (int var11 = par5 - var9; (var11 <= par5 + var9) && (var7); var11++) { - if ((var8 >= 0) && (var8 < 256)) - { - Block var12s = par1World.getBlock(var10, var8, var11); - int var12 = Block.getIdFromBlock(var12s); - if ((var12 != 0) && (var12s != Blocks.air) && (var12s != Blocks.grass) && (var12s != Blocks.dirt) && (var12s != Blocks.cactus)) { - var7 = false; - } - } - else - { - var7 = false; - } - } - } - } - if (!var7) { - return false; - } - Block var8s = par1World.getBlock(par3, par4 - 1, par5); - int var8 = Block.getIdFromBlock(var8s); - if (((var8s == Blocks.grass) || (var8s == Blocks.dirt)) && (par4 < 256 - var6 - 1)) - { - par1World.setBlock(par3, par4 - 1, par5, Blocks.dirt, 0, 2); - byte var9 = 3; - byte var18 = 0; - for (int var11 = par4 - var9 + var6; var11 <= par4 + var6; var11++) - { - int var12 = var11 - (par4 + var6); - int var13 = var18 + 1 - var12 / 2; - for (int var14 = par3 - var13; var14 <= par3 + var13; var14++) - { - int var15 = var14 - par3; - for (int var16 = par5 - var13; var16 <= par5 + var13; var16++) - { - int var17 = var16 - par5; - if ((Math.abs(var15) != var13) || (Math.abs(var17) != var13) || ((par2Random.nextInt(2) != 0) && (var12 != 0))) { - par1World.setBlock(var14, var11, var16, Blocks.air, this.metaLeaves, 2); - } - } - } - } - for (int var11 = 0; var11 < var6; var11++) - { - Block var12s = par1World.getBlock(par3, par4 + var11, par5); - int var12 = Block.getIdFromBlock(var12s); - if ((var12 == 0) || (var12s == Blocks.air)) - { - par1World.setBlock(par3, par4 + var11, par5, Blocks.cactus, this.metaWood, 2); - if ((this.vinesGrow) && (var11 > 0)) - { - if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3 - 1, par4 + var11, par5))) { - par1World.setBlock(par3 - 1, par4 + var11, par5, Blocks.air, 8, 2); - } - if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3 + 1, par4 + var11, par5))) { - par1World.setBlock(par3 + 1, par4 + var11, par5, Blocks.air, 2, 2); - } - if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3, par4 + var11, par5 - 1))) { - par1World.setBlock(par3, par4 + var11, par5 - 1, Blocks.air, 1, 2); - } - if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3, par4 + var11, par5 + 1))) { - par1World.setBlock(par3, par4 + var11, par5 + 1, Blocks.air, 4, 2); - } - } - } - } - if (this.vinesGrow) - { - for (int var11 = par4 - 3 + var6; var11 <= par4 + var6; var11++) - { - int var12 = var11 - (par4 + var6); - int var13 = 2 - var12 / 2; - for (int var14 = par3 - var13; var14 <= par3 + var13; var14++) { - for (int var15 = par5 - var13; var15 <= par5 + var13; var15++) { - if (par1World.getBlock(var14, var11, var15) == Blocks.air) - { - if ((par2Random.nextInt(4) == 0) && - (Block.getIdFromBlock(par1World.getBlock(var14 - 1, var11, var15)) == 0)) { - growVines(par1World, var14 - 1, var11, var15, 8); - } - if ((par2Random.nextInt(4) == 0) && - (Block.getIdFromBlock(par1World.getBlock(var14 + 1, var11, var15)) == 0)) { - growVines(par1World, var14 + 1, var11, var15, 2); - } - if ((par2Random.nextInt(4) == 0) && - (Block.getIdFromBlock(par1World.getBlock(var14, var11, var15 - 1)) == 0)) { - growVines(par1World, var14, var11, var15 - 1, 1); - } - if ((par2Random.nextInt(4) == 0) && - (Block.getIdFromBlock(par1World.getBlock(var14, var11, var15 + 1)) == 0)) { - growVines(par1World, var14, var11, var15 + 1, 4); - } - } - } - } - } - if ((par2Random.nextInt(5) == 0) && (var6 > 5)) { - for (int var11 = 0; var11 < 2; var11++) { - for (int var12 = 0; var12 < 4; var12++) { - if (par2Random.nextInt(4 - var11) == 0) - { - int var13 = par2Random.nextInt(3); - par1World.setBlock(par3 + net.minecraft.util.Direction.offsetX[net.minecraft.util.Direction.rotateOpposite[var12]], par4 + var6 - 5 + var11, par5 + net.minecraft.util.Direction.offsetZ[net.minecraft.util.Direction.rotateOpposite[var12]], Blocks.air, var13 << 2 | var12, 2); - } - } - } - } - } - return true; - } - return false; - } - return false; - } - - private void growVines(World par1World, int par2, int par3, int par4, int par5) - { - par1World.setBlock(par2, par3, par4, Blocks.vine, par5, 2); - int var6 = 4; - for (;;) - { - par3--; - if ((Block.getIdFromBlock(par1World.getBlock(par2, par3, par4)) != 0) || (var6 <= 0)) { - return; - } - par1World.setBlock(par2, par3, par4, Blocks.air, par5, 2); - var6--; - } - } - } - - } - -} diff --git a/src/Java/gtPlusPlus/australia/biome/Biome_AustralianDesert2.java b/src/Java/gtPlusPlus/australia/biome/Biome_AustralianDesert2.java deleted file mode 100644 index 233ca54a72..0000000000 --- a/src/Java/gtPlusPlus/australia/biome/Biome_AustralianDesert2.java +++ /dev/null @@ -1,349 +0,0 @@ -package gtPlusPlus.australia.biome; - -import java.lang.reflect.Field; -import java.util.Random; - -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.core.util.reflect.ReflectionUtils; -import net.minecraft.block.Block; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntitySilverfish; -import net.minecraft.entity.monster.EntitySkeleton; -import net.minecraft.entity.monster.EntitySlime; -import net.minecraft.entity.monster.EntitySpider; -import net.minecraft.entity.monster.EntityWitch; -import net.minecraft.entity.monster.EntityZombie; -import net.minecraft.entity.passive.EntityChicken; -import net.minecraft.entity.passive.EntityCow; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntitySheep; -import net.minecraft.entity.passive.EntitySquid; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.gen.feature.WorldGenAbstractTree; -import net.minecraft.world.gen.feature.WorldGenerator; -import net.minecraftforge.common.BiomeDictionary; -import net.minecraftforge.common.BiomeManager; - -public class Biome_AustralianDesert2 { - - public static BiomeGenAustralianDesert2 biome = new BiomeGenAustralianDesert2(); - - public Object instance; - - public static Block blockTopLayer; - public static Block blockSecondLayer; - public static Block blockMainFiller = Blocks.stone; - public static Block blockSecondaryFiller; - public static Block blockFluidLakes; - - public Biome_AustralianDesert2() { - } - - public void load() { - BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.DESERT); - BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.DRY); - BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.HOT); - BiomeManager.addSpawnBiome(biome); - } - - public void generateNether(World world, Random random, int chunkX, int chunkZ) { - } - - public void generateSurface(World world, Random random, int chunkX, int chunkZ) { - } - - public void registerRenderers() { - } - - public int addFuel(ItemStack fuel) { - return 0; - } - - public void serverLoad(FMLServerStartingEvent event) { - } - - public void preInit(FMLPreInitializationEvent event) { - } - - static class BiomeGenAustralianDesert2 extends BiomeGenBase { - @SuppressWarnings("unchecked") - public BiomeGenAustralianDesert2() { - super(CORE.AUSTRALIA_BIOME_DESERT_2_ID); - this.setBiomeName("Australian Desert II"); - this.setBiomeID(); - this.enableRain = true; - this.enableSnow = false; - this.topBlock = blockTopLayer; - this.fillerBlock = blockSecondLayer; - //this.theBiomeDecorator = new BiomeGenerator_Custom(); - this.theBiomeDecorator.generateLakes = true; - this.theBiomeDecorator.treesPerChunk = 40; - this.theBiomeDecorator.flowersPerChunk = 0; - this.theBiomeDecorator.grassPerChunk = 0; - this.theBiomeDecorator.deadBushPerChunk = 63; - this.theBiomeDecorator.mushroomsPerChunk = 0; - this.theBiomeDecorator.reedsPerChunk = 42; - this.theBiomeDecorator.cactiPerChunk = 84; - this.theBiomeDecorator.sandPerChunk = 84; - this.rainfall = 0.1F; - this.waterColorMultiplier = 13434879; - setHeight(new BiomeGenBase.Height(0.10F, 0.35F)); - this.rootHeight = -0.15f; //Ground level - - this.spawnableMonsterList.clear(); - this.spawnableCreatureList.clear(); - this.spawnableWaterCreatureList.clear(); - this.spawnableCaveCreatureList.clear(); - - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityChicken.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityCow.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityCreeper.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityHorse.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySheep.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySilverfish.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySkeleton.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySlime.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySpider.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityWitch.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityWolf.class, 5, 1, 5)); - this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityZombie.class, 5, 1, 5)); - - this.spawnableWaterCreatureList.add(new BiomeGenBase.SpawnListEntry(EntitySquid.class, 5, 1, 5)); - - } - - private synchronized boolean setBiomeID() { - BiomeGenBase[] mTempList; - try { - Field mInternalBiomeList = ReflectionUtils.getField(BiomeGenBase.class, "biomeList"); - Field mClone = mInternalBiomeList; - mTempList = (BiomeGenBase[]) mInternalBiomeList.get(null); - if (mTempList != null){ - mTempList[CORE.AUSTRALIA_BIOME_DESERT_2_ID] = this; - mInternalBiomeList.set(null, mTempList); - if (mTempList != mInternalBiomeList.get(null)){ - ReflectionUtils.setFinalStatic(mInternalBiomeList, mTempList); - Logger.REFLECTION("Set Biome ID for "+this.biomeName+" Biome internally in 'biomeList' field from "+BiomeGenBase.class.getCanonicalName()+"."); - return true; - } - else { - Logger.REFLECTION("Failed to set Biome ID for "+this.biomeName+" Biome internally in 'biomeList' field from "+BiomeGenBase.class.getCanonicalName()+"."); - } - } - return false; - } - catch (Exception e) { - Logger.REFLECTION("Could not access 'biomeList' field in "+BiomeGenBase.class.getCanonicalName()+"."); - return false; - } - } - - @SideOnly(Side.CLIENT) - public int getBiomeGrassColor() { - return 6697728; - } - - @SideOnly(Side.CLIENT) - public int getBiomeFoliageColor() { - return 6697728; - } - - @SideOnly(Side.CLIENT) - public int getSkyColorByTemp(float par1) { - return 13421772; - } - - @SuppressWarnings({ "unchecked", "unused" }) - private boolean addToMonsterSpawnLists(Class EntityClass, int a, int b, int c){ - //this.spawnableMonsterList.add(new SpawnListEntry(EntityClass, a, b, c)); - this.spawnableCaveCreatureList.add(new SpawnListEntry(EntityClass, a, b, c)); - return true; - } - - @Override - public WorldGenAbstractTree func_150567_a(Random par1Random){ - return (WorldGenAbstractTree)(getRandomWorldGenForTrees(par1Random)); - } - - //TODO - DOES THIS WORK? - public WorldGenerator getRandomWorldGenForTrees(Random par1Random) - { - return new Tree(); - } - - class Tree - extends WorldGenerator - { - private final int minTreeHeight; - private final boolean vinesGrow; - private final int metaWood; - private final int metaLeaves; - - public Tree() - { - super(); - this.minTreeHeight = 5; - this.metaWood = 0; - this.metaLeaves = 0; - this.vinesGrow = false; - } - - public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) - { - int var6 = par2Random.nextInt(3) + this.minTreeHeight; - boolean var7 = true; - if ((par4 >= 1) && (par4 + var6 + 1 <= 256)) - { - for (int var8 = par4; var8 <= par4 + 1 + var6; var8++) - { - byte var9 = 1; - if (var8 == par4) { - var9 = 0; - } - if (var8 >= par4 + 1 + var6 - 2) { - var9 = 2; - } - for (int var10 = par3 - var9; (var10 <= par3 + var9) && (var7); var10++) { - for (int var11 = par5 - var9; (var11 <= par5 + var9) && (var7); var11++) { - if ((var8 >= 0) && (var8 < 256)) - { - Block var12s = par1World.getBlock(var10, var8, var11); - int var12 = Block.getIdFromBlock(var12s); - if ((var12 != 0) && (var12s != Blocks.air) && (var12s != Blocks.grass) && (var12s != Blocks.dirt) && (var12s != Blocks.cactus)) { - var7 = false; - } - } - else - { - var7 = false; - } - } - } - } - if (!var7) { - return false; - } - Block var8s = par1World.getBlock(par3, par4 - 1, par5); - int var8 = Block.getIdFromBlock(var8s); - if (((var8s == Blocks.grass) || (var8s == Blocks.dirt)) && (par4 < 256 - var6 - 1)) - { - par1World.setBlock(par3, par4 - 1, par5, Blocks.dirt, 0, 2); - byte var9 = 3; - byte var18 = 0; - for (int var11 = par4 - var9 + var6; var11 <= par4 + var6; var11++) - { - int var12 = var11 - (par4 + var6); - int var13 = var18 + 1 - var12 / 2; - for (int var14 = par3 - var13; var14 <= par3 + var13; var14++) - { - int var15 = var14 - par3; - for (int var16 = par5 - var13; var16 <= par5 + var13; var16++) - { - int var17 = var16 - par5; - if ((Math.abs(var15) != var13) || (Math.abs(var17) != var13) || ((par2Random.nextInt(2) != 0) && (var12 != 0))) { - par1World.setBlock(var14, var11, var16, Blocks.air, this.metaLeaves, 2); - } - } - } - } - for (int var11 = 0; var11 < var6; var11++) - { - Block var12s = par1World.getBlock(par3, par4 + var11, par5); - int var12 = Block.getIdFromBlock(var12s); - if ((var12 == 0) || (var12s == Blocks.air)) - { - par1World.setBlock(par3, par4 + var11, par5, Blocks.cactus, this.metaWood, 2); - if ((this.vinesGrow) && (var11 > 0)) - { - if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3 - 1, par4 + var11, par5))) { - par1World.setBlock(par3 - 1, par4 + var11, par5, Blocks.air, 8, 2); - } - if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3 + 1, par4 + var11, par5))) { - par1World.setBlock(par3 + 1, par4 + var11, par5, Blocks.air, 2, 2); - } - if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3, par4 + var11, par5 - 1))) { - par1World.setBlock(par3, par4 + var11, par5 - 1, Blocks.air, 1, 2); - } - if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3, par4 + var11, par5 + 1))) { - par1World.setBlock(par3, par4 + var11, par5 + 1, Blocks.air, 4, 2); - } - } - } - } - if (this.vinesGrow) - { - for (int var11 = par4 - 3 + var6; var11 <= par4 + var6; var11++) - { - int var12 = var11 - (par4 + var6); - int var13 = 2 - var12 / 2; - for (int var14 = par3 - var13; var14 <= par3 + var13; var14++) { - for (int var15 = par5 - var13; var15 <= par5 + var13; var15++) { - if (par1World.getBlock(var14, var11, var15) == Blocks.air) - { - if ((par2Random.nextInt(4) == 0) && - (Block.getIdFromBlock(par1World.getBlock(var14 - 1, var11, var15)) == 0)) { - growVines(par1World, var14 - 1, var11, var15, 8); - } - if ((par2Random.nextInt(4) == 0) && - (Block.getIdFromBlock(par1World.getBlock(var14 + 1, var11, var15)) == 0)) { - growVines(par1World, var14 + 1, var11, var15, 2); - } - if ((par2Random.nextInt(4) == 0) && - (Block.getIdFromBlock(par1World.getBlock(var14, var11, var15 - 1)) == 0)) { - growVines(par1World, var14, var11, var15 - 1, 1); - } - if ((par2Random.nextInt(4) == 0) && - (Block.getIdFromBlock(par1World.getBlock(var14, var11, var15 + 1)) == 0)) { - growVines(par1World, var14, var11, var15 + 1, 4); - } - } - } - } - } - if ((par2Random.nextInt(5) == 0) && (var6 > 5)) { - for (int var11 = 0; var11 < 2; var11++) { - for (int var12 = 0; var12 < 4; var12++) { - if (par2Random.nextInt(4 - var11) == 0) - { - int var13 = par2Random.nextInt(3); - par1World.setBlock(par3 + net.minecraft.util.Direction.offsetX[net.minecraft.util.Direction.rotateOpposite[var12]], par4 + var6 - 5 + var11, par5 + net.minecraft.util.Direction.offsetZ[net.minecraft.util.Direction.rotateOpposite[var12]], Blocks.air, var13 << 2 | var12, 2); - } - } - } - } - } - return true; - } - return false; - } - return false; - } - - private void growVines(World par1World, int par2, int par3, int par4, int par5) - { - par1World.setBlock(par2, par3, par4, Blocks.vine, par5, 2); - int var6 = 4; - for (;;) - { - par3--; - if ((Block.getIdFromBlock(par1World.getBlock(par2, par3, par4)) != 0) || (var6 <= 0)) { - return; - } - par1World.setBlock(par2, par3, par4, Blocks.air, par5, 2); - var6--; - } - } - } - - } - -} diff --git a/src/Java/gtPlusPlus/australia/biome/GenLayerBiomesAustraliaDimension.java b/src/Java/gtPlusPlus/australia/biome/GenLayerBiomesAustraliaDimension.java index c8ceaa3ed3..56d5291823 100644 --- a/src/Java/gtPlusPlus/australia/biome/GenLayerBiomesAustraliaDimension.java +++ b/src/Java/gtPlusPlus/australia/biome/GenLayerBiomesAustraliaDimension.java @@ -1,12 +1,27 @@ package gtPlusPlus.australia.biome; +import gtPlusPlus.australia.biome.type.Biome_AustralianDesert; +import gtPlusPlus.australia.biome.type.Biome_AustralianDesert2; +import gtPlusPlus.australia.biome.type.Biome_AustralianDesert_Ex; +import gtPlusPlus.australia.biome.type.Biome_AustralianForest; +import gtPlusPlus.australia.biome.type.Biome_AustralianOcean; +import gtPlusPlus.australia.biome.type.Biome_AustralianOutback; +import gtPlusPlus.australia.biome.type.Biome_AustralianPlains; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.gen.layer.GenLayer; import net.minecraft.world.gen.layer.IntCache; public class GenLayerBiomesAustraliaDimension extends GenLayer { - protected BiomeGenBase[] allowedBiomes = { Biome_AustralianDesert.biome, Biome_AustralianDesert2.biome}; + protected BiomeGenBase[] allowedBiomes = { + /*Biome_AustralianDesert.biome, + Biome_AustralianDesert2.biome,*/ + Biome_AustralianDesert_Ex.biome, + Biome_AustralianOcean.biome, + Biome_AustralianForest.biome, + Biome_AustralianPlains.biome, + Biome_AustralianOutback.biome + }; public GenLayerBiomesAustraliaDimension(long seed) { super(seed); diff --git a/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert.java b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert.java new file mode 100644 index 0000000000..6986c9931d --- /dev/null +++ b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert.java @@ -0,0 +1,351 @@ +package gtPlusPlus.australia.biome.type; + +import java.lang.reflect.Field; +import java.util.Random; + +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.event.FMLServerStartingEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.reflect.ReflectionUtils; +import net.minecraft.block.Block; +import net.minecraft.entity.monster.EntityCreeper; +import net.minecraft.entity.monster.EntitySilverfish; +import net.minecraft.entity.monster.EntitySkeleton; +import net.minecraft.entity.monster.EntitySlime; +import net.minecraft.entity.monster.EntitySpider; +import net.minecraft.entity.monster.EntityWitch; +import net.minecraft.entity.monster.EntityZombie; +import net.minecraft.entity.passive.EntityChicken; +import net.minecraft.entity.passive.EntityCow; +import net.minecraft.entity.passive.EntityHorse; +import net.minecraft.entity.passive.EntitySheep; +import net.minecraft.entity.passive.EntitySquid; +import net.minecraft.entity.passive.EntityWolf; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenAbstractTree; +import net.minecraft.world.gen.feature.WorldGenerator; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.common.BiomeManager; + +public class Biome_AustralianDesert { + + + public Object instance; + + public static Block blockTopLayer; + public static Block blockSecondLayer; + public static Block blockMainFiller = Blocks.stone; + public static Block blockSecondaryFiller; + public static Block blockFluidLakes; + + public Biome_AustralianDesert() { + + } + + public static BiomeGenAustralianDesert biome = new BiomeGenAustralianDesert(); + public void load() { + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.DESERT); + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.DRY); + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.HOT); + BiomeManager.addSpawnBiome(biome); + } + + public void generateNether(World world, Random random, int chunkX, int chunkZ) { + } + + public void generateSurface(World world, Random random, int chunkX, int chunkZ) { + } + + public void registerRenderers() { + } + + public int addFuel(ItemStack fuel) { + return 0; + } + + public void serverLoad(FMLServerStartingEvent event) { + } + + public void preInit(FMLPreInitializationEvent event) { + } + + static class BiomeGenAustralianDesert extends BiomeGenBase { + @SuppressWarnings("unchecked") + public BiomeGenAustralianDesert() { + super(CORE.AUSTRALIA_BIOME_DESERT_1_ID); + this.setBiomeName("Australian Desert"); + this.setBiomeID(); + this.enableRain = true; + this.enableSnow = false; + this.topBlock = blockTopLayer; + this.fillerBlock = blockSecondLayer; + //this.theBiomeDecorator = new BiomeGenerator_Custom(); + this.theBiomeDecorator.generateLakes = true; + this.theBiomeDecorator.treesPerChunk = 20; + this.theBiomeDecorator.flowersPerChunk = 0; + this.theBiomeDecorator.grassPerChunk = 5; + this.theBiomeDecorator.deadBushPerChunk = 63; + this.theBiomeDecorator.mushroomsPerChunk = 0; + this.theBiomeDecorator.reedsPerChunk = 42; + this.theBiomeDecorator.cactiPerChunk = 56; + this.theBiomeDecorator.sandPerChunk = 84; + this.rainfall = 0.1F; + this.waterColorMultiplier = 13434879; + setHeight(new BiomeGenBase.Height(0.15F, 0.45F)); + this.rootHeight = -0.25f; //Ground level + + this.spawnableMonsterList.clear(); + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.spawnableCaveCreatureList.clear(); + + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityChicken.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityCow.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityCreeper.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityHorse.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySheep.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySilverfish.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySkeleton.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySlime.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySpider.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityWitch.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityWolf.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityZombie.class, 5, 1, 5)); + + this.spawnableWaterCreatureList.add(new BiomeGenBase.SpawnListEntry(EntitySquid.class, 5, 1, 5)); + + } + + private synchronized boolean setBiomeID() { + BiomeGenBase[] mTempList; + try { + Field mInternalBiomeList = ReflectionUtils.getField(BiomeGenBase.class, "biomeList"); + Field mClone = mInternalBiomeList; + mTempList = (BiomeGenBase[]) mInternalBiomeList.get(null); + if (mTempList != null){ + mTempList[CORE.AUSTRALIA_BIOME_DESERT_1_ID] = this; + mInternalBiomeList.set(null, mTempList); + if (mTempList != mInternalBiomeList.get(null)){ + ReflectionUtils.setFinalStatic(mInternalBiomeList, mTempList); + Logger.REFLECTION("Set Biome ID for "+this.biomeName+" Biome internally in 'biomeList' field from "+BiomeGenBase.class.getCanonicalName()+"."); + return true; + } + else { + Logger.REFLECTION("Failed to set Biome ID for "+this.biomeName+" Biome internally in 'biomeList' field from "+BiomeGenBase.class.getCanonicalName()+"."); + } + } + return false; + } + catch (Exception e) { + Logger.REFLECTION("Could not access 'biomeList' field in "+BiomeGenBase.class.getCanonicalName()+"."); + return false; + } + } + + @SideOnly(Side.CLIENT) + public int getBiomeGrassColor() { + return 6697728; + } + + @SideOnly(Side.CLIENT) + public int getBiomeFoliageColor() { + return 6697728; + } + + @SideOnly(Side.CLIENT) + public int getSkyColorByTemp(float par1) { + return 13421772; + } + + @SuppressWarnings({ "unchecked", "unused" }) + private boolean addToMonsterSpawnLists(Class EntityClass, int a, int b, int c){ + //this.spawnableMonsterList.add(new SpawnListEntry(EntityClass, a, b, c)); + this.spawnableCaveCreatureList.add(new SpawnListEntry(EntityClass, a, b, c)); + return true; + } + + @Override + public WorldGenAbstractTree func_150567_a(Random par1Random){ + return (WorldGenAbstractTree)(getRandomWorldGenForTrees(par1Random)); + } + + + //TODO - DOES THIS WORK? + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new Tree(); + } + + class Tree + extends WorldGenAbstractTree + { + private final int minTreeHeight; + private final boolean vinesGrow; + private final int metaWood; + private final int metaLeaves; + + public Tree() + { + super(false); + this.minTreeHeight = 5; + this.metaWood = 0; + this.metaLeaves = 0; + this.vinesGrow = false; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(3) + this.minTreeHeight; + boolean var7 = true; + if ((par4 >= 1) && (par4 + var6 + 1 <= 256)) + { + for (int var8 = par4; var8 <= par4 + 1 + var6; var8++) + { + byte var9 = 1; + if (var8 == par4) { + var9 = 0; + } + if (var8 >= par4 + 1 + var6 - 2) { + var9 = 2; + } + for (int var10 = par3 - var9; (var10 <= par3 + var9) && (var7); var10++) { + for (int var11 = par5 - var9; (var11 <= par5 + var9) && (var7); var11++) { + if ((var8 >= 0) && (var8 < 256)) + { + Block var12s = par1World.getBlock(var10, var8, var11); + int var12 = Block.getIdFromBlock(var12s); + if ((var12 != 0) && (var12s != Blocks.air) && (var12s != Blocks.grass) && (var12s != Blocks.dirt) && (var12s != Blocks.cactus)) { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + if (!var7) { + return false; + } + Block var8s = par1World.getBlock(par3, par4 - 1, par5); + int var8 = Block.getIdFromBlock(var8s); + if (((var8s == Blocks.grass) || (var8s == Blocks.dirt)) && (par4 < 256 - var6 - 1)) + { + par1World.setBlock(par3, par4 - 1, par5, Blocks.dirt, 0, 2); + byte var9 = 3; + byte var18 = 0; + for (int var11 = par4 - var9 + var6; var11 <= par4 + var6; var11++) + { + int var12 = var11 - (par4 + var6); + int var13 = var18 + 1 - var12 / 2; + for (int var14 = par3 - var13; var14 <= par3 + var13; var14++) + { + int var15 = var14 - par3; + for (int var16 = par5 - var13; var16 <= par5 + var13; var16++) + { + int var17 = var16 - par5; + if ((Math.abs(var15) != var13) || (Math.abs(var17) != var13) || ((par2Random.nextInt(2) != 0) && (var12 != 0))) { + par1World.setBlock(var14, var11, var16, Blocks.air, this.metaLeaves, 2); + } + } + } + } + for (int var11 = 0; var11 < var6; var11++) + { + Block var12s = par1World.getBlock(par3, par4 + var11, par5); + int var12 = Block.getIdFromBlock(var12s); + if ((var12 == 0) || (var12s == Blocks.air)) + { + par1World.setBlock(par3, par4 + var11, par5, Blocks.cactus, this.metaWood, 2); + if ((this.vinesGrow) && (var11 > 0)) + { + if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3 - 1, par4 + var11, par5))) { + par1World.setBlock(par3 - 1, par4 + var11, par5, Blocks.air, 8, 2); + } + if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3 + 1, par4 + var11, par5))) { + par1World.setBlock(par3 + 1, par4 + var11, par5, Blocks.air, 2, 2); + } + if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3, par4 + var11, par5 - 1))) { + par1World.setBlock(par3, par4 + var11, par5 - 1, Blocks.air, 1, 2); + } + if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3, par4 + var11, par5 + 1))) { + par1World.setBlock(par3, par4 + var11, par5 + 1, Blocks.air, 4, 2); + } + } + } + } + if (this.vinesGrow) + { + for (int var11 = par4 - 3 + var6; var11 <= par4 + var6; var11++) + { + int var12 = var11 - (par4 + var6); + int var13 = 2 - var12 / 2; + for (int var14 = par3 - var13; var14 <= par3 + var13; var14++) { + for (int var15 = par5 - var13; var15 <= par5 + var13; var15++) { + if (par1World.getBlock(var14, var11, var15) == Blocks.air) + { + if ((par2Random.nextInt(4) == 0) && + (Block.getIdFromBlock(par1World.getBlock(var14 - 1, var11, var15)) == 0)) { + growVines(par1World, var14 - 1, var11, var15, 8); + } + if ((par2Random.nextInt(4) == 0) && + (Block.getIdFromBlock(par1World.getBlock(var14 + 1, var11, var15)) == 0)) { + growVines(par1World, var14 + 1, var11, var15, 2); + } + if ((par2Random.nextInt(4) == 0) && + (Block.getIdFromBlock(par1World.getBlock(var14, var11, var15 - 1)) == 0)) { + growVines(par1World, var14, var11, var15 - 1, 1); + } + if ((par2Random.nextInt(4) == 0) && + (Block.getIdFromBlock(par1World.getBlock(var14, var11, var15 + 1)) == 0)) { + growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + if ((par2Random.nextInt(5) == 0) && (var6 > 5)) { + for (int var11 = 0; var11 < 2; var11++) { + for (int var12 = 0; var12 < 4; var12++) { + if (par2Random.nextInt(4 - var11) == 0) + { + int var13 = par2Random.nextInt(3); + par1World.setBlock(par3 + net.minecraft.util.Direction.offsetX[net.minecraft.util.Direction.rotateOpposite[var12]], par4 + var6 - 5 + var11, par5 + net.minecraft.util.Direction.offsetZ[net.minecraft.util.Direction.rotateOpposite[var12]], Blocks.air, var13 << 2 | var12, 2); + } + } + } + } + } + return true; + } + return false; + } + return false; + } + + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + par1World.setBlock(par2, par3, par4, Blocks.vine, par5, 2); + int var6 = 4; + for (;;) + { + par3--; + if ((Block.getIdFromBlock(par1World.getBlock(par2, par3, par4)) != 0) || (var6 <= 0)) { + return; + } + par1World.setBlock(par2, par3, par4, Blocks.air, par5, 2); + var6--; + } + } + } + + } + +} diff --git a/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert2.java b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert2.java new file mode 100644 index 0000000000..003c6cbd93 --- /dev/null +++ b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert2.java @@ -0,0 +1,351 @@ +package gtPlusPlus.australia.biome.type; + +import java.lang.reflect.Field; +import java.util.Random; + +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.event.FMLServerStartingEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.math.MathUtils; +import gtPlusPlus.core.util.reflect.ReflectionUtils; +import net.minecraft.block.Block; +import net.minecraft.entity.monster.EntityCreeper; +import net.minecraft.entity.monster.EntitySilverfish; +import net.minecraft.entity.monster.EntitySkeleton; +import net.minecraft.entity.monster.EntitySlime; +import net.minecraft.entity.monster.EntitySpider; +import net.minecraft.entity.monster.EntityWitch; +import net.minecraft.entity.monster.EntityZombie; +import net.minecraft.entity.passive.EntityChicken; +import net.minecraft.entity.passive.EntityCow; +import net.minecraft.entity.passive.EntityHorse; +import net.minecraft.entity.passive.EntitySheep; +import net.minecraft.entity.passive.EntitySquid; +import net.minecraft.entity.passive.EntityWolf; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenAbstractTree; +import net.minecraft.world.gen.feature.WorldGenerator; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.common.BiomeManager; + +public class Biome_AustralianDesert2 { + + public static BiomeGenAustralianDesert2 biome = new BiomeGenAustralianDesert2(); + + public Object instance; + + public static Block blockTopLayer; + public static Block blockSecondLayer; + public static Block blockMainFiller = Blocks.stone; + public static Block blockSecondaryFiller; + public static Block blockFluidLakes; + + public Biome_AustralianDesert2() { + } + + public void load() { + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.DESERT); + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.DRY); + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.HOT); + BiomeManager.addSpawnBiome(biome); + } + + public void generateNether(World world, Random random, int chunkX, int chunkZ) { + } + + public void generateSurface(World world, Random random, int chunkX, int chunkZ) { + } + + public void registerRenderers() { + } + + public int addFuel(ItemStack fuel) { + return 0; + } + + public void serverLoad(FMLServerStartingEvent event) { + } + + public void preInit(FMLPreInitializationEvent event) { + } + + static class BiomeGenAustralianDesert2 extends BiomeGenBase { + @SuppressWarnings("unchecked") + public BiomeGenAustralianDesert2() { + super(CORE.AUSTRALIA_BIOME_DESERT_2_ID); + this.setBiomeName("Australian Desert II"); + this.setBiomeID(); + this.enableRain = true; + this.enableSnow = false; + this.topBlock = blockTopLayer; + this.fillerBlock = blockSecondLayer; + //this.theBiomeDecorator = new BiomeGenerator_Custom(); + this.theBiomeDecorator.generateLakes = true; + this.theBiomeDecorator.treesPerChunk = 40; + this.theBiomeDecorator.flowersPerChunk = 0; + this.theBiomeDecorator.grassPerChunk = 0; + this.theBiomeDecorator.deadBushPerChunk = 63; + this.theBiomeDecorator.mushroomsPerChunk = 0; + this.theBiomeDecorator.reedsPerChunk = 42; + this.theBiomeDecorator.cactiPerChunk = 84; + this.theBiomeDecorator.sandPerChunk = 84; + this.rainfall = 0.1F; + this.waterColorMultiplier = 13434879; + setHeight(new BiomeGenBase.Height(0.10F, 0.35F)); + this.rootHeight = -0.15f; //Ground level + + this.spawnableMonsterList.clear(); + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.spawnableCaveCreatureList.clear(); + + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityChicken.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityCow.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityCreeper.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityHorse.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySheep.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySilverfish.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySkeleton.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySlime.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySpider.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityWitch.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityWolf.class, 5, 1, 5)); + this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityZombie.class, 5, 1, 5)); + + this.spawnableWaterCreatureList.add(new BiomeGenBase.SpawnListEntry(EntitySquid.class, 5, 1, 5)); + + } + + private synchronized boolean setBiomeID() { + BiomeGenBase[] mTempList; + try { + Field mInternalBiomeList = ReflectionUtils.getField(BiomeGenBase.class, "biomeList"); + Field mClone = mInternalBiomeList; + mTempList = (BiomeGenBase[]) mInternalBiomeList.get(null); + if (mTempList != null){ + mTempList[CORE.AUSTRALIA_BIOME_DESERT_2_ID] = this; + mInternalBiomeList.set(null, mTempList); + if (mTempList != mInternalBiomeList.get(null)){ + ReflectionUtils.setFinalStatic(mInternalBiomeList, mTempList); + Logger.REFLECTION("Set Biome ID for "+this.biomeName+" Biome internally in 'biomeList' field from "+BiomeGenBase.class.getCanonicalName()+"."); + return true; + } + else { + Logger.REFLECTION("Failed to set Biome ID for "+this.biomeName+" Biome internally in 'biomeList' field from "+BiomeGenBase.class.getCanonicalName()+"."); + } + } + return false; + } + catch (Exception e) { + Logger.REFLECTION("Could not access 'biomeList' field in "+BiomeGenBase.class.getCanonicalName()+"."); + return false; + } + } + + @SideOnly(Side.CLIENT) + public int getBiomeGrassColor() { + return 6697728; + } + + @SideOnly(Side.CLIENT) + public int getBiomeFoliageColor() { + return 6697728; + } + + @SideOnly(Side.CLIENT) + public int getSkyColorByTemp(float par1) { + return 13421772; + } + + @SuppressWarnings({ "unchecked", "unused" }) + private boolean addToMonsterSpawnLists(Class EntityClass, int a, int b, int c){ + //this.spawnableMonsterList.add(new SpawnListEntry(EntityClass, a, b, c)); + this.spawnableCaveCreatureList.add(new SpawnListEntry(EntityClass, a, b, c)); + return true; + } + + @Override + public WorldGenAbstractTree func_150567_a(Random par1Random){ + boolean a = (MathUtils.randInt(0, 100) < MathUtils.randInt(30, 65)); + return a ? getRandomWorldGenForTrees(par1Random) : super.func_150567_a(par1Random); + } + + //TODO - DOES THIS WORK? + public WorldGenAbstractTree getRandomWorldGenForTrees(Random par1Random) + { + return new Tree(); + } + + class Tree + extends WorldGenAbstractTree + { + private final int minTreeHeight; + private final boolean vinesGrow; + private final int metaWood; + private final int metaLeaves; + + public Tree() + { + super(false); + this.minTreeHeight = 3; + this.metaWood = 0; + this.metaLeaves = 0; + this.vinesGrow = false; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(3) + this.minTreeHeight; + boolean var7 = true; + if ((par4 >= 1) && (par4 + var6 + 1 <= 256)) + { + for (int var8 = par4; var8 <= par4 + 1 + var6; var8++) + { + byte var9 = 1; + if (var8 == par4) { + var9 = 0; + } + if (var8 >= par4 + 1 + var6 - 2) { + var9 = 2; + } + for (int var10 = par3 - var9; (var10 <= par3 + var9) && (var7); var10++) { + for (int var11 = par5 - var9; (var11 <= par5 + var9) && (var7); var11++) { + if ((var8 >= 0) && (var8 < 256)) + { + Block var12s = par1World.getBlock(var10, var8, var11); + int var12 = Block.getIdFromBlock(var12s); + if ((var12 != 0) && (var12s != Blocks.air) && (var12s != Blocks.grass) && (var12s != Blocks.dirt) && (var12s != Blocks.cactus)) { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + if (!var7) { + return false; + } + Block var8s = par1World.getBlock(par3, par4 - 1, par5); + int var8 = Block.getIdFromBlock(var8s); + if (((var8s == Blocks.grass) || (var8s == Blocks.dirt)) && (par4 < 256 - var6 - 1)) + { + par1World.setBlock(par3, par4 - 1, par5, Blocks.dirt, 0, 2); + byte var9 = 3; + byte var18 = 0; + for (int var11 = par4 - var9 + var6; var11 <= par4 + var6; var11++) + { + int var12 = var11 - (par4 + var6); + int var13 = var18 + 1 - var12 / 2; + for (int var14 = par3 - var13; var14 <= par3 + var13; var14++) + { + int var15 = var14 - par3; + for (int var16 = par5 - var13; var16 <= par5 + var13; var16++) + { + int var17 = var16 - par5; + if ((Math.abs(var15) != var13) || (Math.abs(var17) != var13) || ((par2Random.nextInt(2) != 0) && (var12 != 0))) { + par1World.setBlock(var14, var11, var16, Blocks.air, this.metaLeaves, 2); + } + } + } + } + for (int var11 = 0; var11 < var6; var11++) + { + Block var12s = par1World.getBlock(par3, par4 + var11, par5); + int var12 = Block.getIdFromBlock(var12s); + if ((var12 == 0) || (var12s == Blocks.air)) + { + par1World.setBlock(par3, par4 + var11, par5, Blocks.cactus, this.metaWood, 2); + if ((this.vinesGrow) && (var11 > 0)) + { + if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3 - 1, par4 + var11, par5))) { + par1World.setBlock(par3 - 1, par4 + var11, par5, Blocks.air, 8, 2); + } + if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3 + 1, par4 + var11, par5))) { + par1World.setBlock(par3 + 1, par4 + var11, par5, Blocks.air, 2, 2); + } + if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3, par4 + var11, par5 - 1))) { + par1World.setBlock(par3, par4 + var11, par5 - 1, Blocks.air, 1, 2); + } + if ((par2Random.nextInt(3) > 0) && (par1World.isAirBlock(par3, par4 + var11, par5 + 1))) { + par1World.setBlock(par3, par4 + var11, par5 + 1, Blocks.air, 4, 2); + } + } + } + } + if (this.vinesGrow) + { + for (int var11 = par4 - 3 + var6; var11 <= par4 + var6; var11++) + { + int var12 = var11 - (par4 + var6); + int var13 = 2 - var12 / 2; + for (int var14 = par3 - var13; var14 <= par3 + var13; var14++) { + for (int var15 = par5 - var13; var15 <= par5 + var13; var15++) { + if (par1World.getBlock(var14, var11, var15) == Blocks.air) + { + if ((par2Random.nextInt(4) == 0) && + (Block.getIdFromBlock(par1World.getBlock(var14 - 1, var11, var15)) == 0)) { + growVines(par1World, var14 - 1, var11, var15, 8); + } + if ((par2Random.nextInt(4) == 0) && + (Block.getIdFromBlock(par1World.getBlock(var14 + 1, var11, var15)) == 0)) { + growVines(par1World, var14 + 1, var11, var15, 2); + } + if ((par2Random.nextInt(4) == 0) && + (Block.getIdFromBlock(par1World.getBlock(var14, var11, var15 - 1)) == 0)) { + growVines(par1World, var14, var11, var15 - 1, 1); + } + if ((par2Random.nextInt(4) == 0) && + (Block.getIdFromBlock(par1World.getBlock(var14, var11, var15 + 1)) == 0)) { + growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + if ((par2Random.nextInt(5) == 0) && (var6 > 5)) { + for (int var11 = 0; var11 < 2; var11++) { + for (int var12 = 0; var12 < 4; var12++) { + if (par2Random.nextInt(4 - var11) == 0) + { + int var13 = par2Random.nextInt(3); + par1World.setBlock(par3 + net.minecraft.util.Direction.offsetX[net.minecraft.util.Direction.rotateOpposite[var12]], par4 + var6 - 5 + var11, par5 + net.minecraft.util.Direction.offsetZ[net.minecraft.util.Direction.rotateOpposite[var12]], Blocks.air, var13 << 2 | var12, 2); + } + } + } + } + } + return true; + } + return false; + } + return false; + } + + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + par1World.setBlock(par2, par3, par4, Blocks.vine, par5, 2); + int var6 = 4; + for (;;) + { + par3--; + if ((Block.getIdFromBlock(par1World.getBlock(par2, par3, par4)) != 0) || (var6 <= 0)) { + return; + } + par1World.setBlock(par2, par3, par4, Blocks.air, par5, 2); + var6--; + } + } + } + + } + +} diff --git a/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert_Ex.java b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert_Ex.java new file mode 100644 index 0000000000..3fd15e130a --- /dev/null +++ b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert_Ex.java @@ -0,0 +1,54 @@ +package gtPlusPlus.australia.biome.type; + +import java.util.Random; + +import gtPlusPlus.core.lib.CORE; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenDesert; +import net.minecraft.world.gen.feature.WorldGenDesertWells; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.common.BiomeManager; + +public class Biome_AustralianDesert_Ex extends BiomeGenDesert { + + public Biome_AustralianDesert_Ex(int aID) + { + super(aID); + this.spawnableCreatureList.clear(); + this.topBlock = Blocks.sand; + this.fillerBlock = Blocks.sand; + this.theBiomeDecorator.treesPerChunk = -999; + this.theBiomeDecorator.deadBushPerChunk = 2; + this.theBiomeDecorator.reedsPerChunk = 50; + this.theBiomeDecorator.cactiPerChunk = 10; + this.setColor(16421912); + this.setBiomeName("Australian Desert III"); + this.setDisableRain(); + this.setTemperatureRainfall(2.0F, 0.0F); + this.setHeight(height_LowPlains); + this.spawnableCreatureList.clear(); + } + + public static Biome_AustralianDesert_Ex biome = new Biome_AustralianDesert_Ex(CORE.AUSTRALIA_BIOME_DESERT_3_ID); + public void load() { + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.DRY); + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.SPARSE); + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.HOT); + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.DESERT); + BiomeManager.addSpawnBiome(biome); + } + + public void decorate(World p_76728_1_, Random p_76728_2_, int p_76728_3_, int p_76728_4_) + { + super.decorate(p_76728_1_, p_76728_2_, p_76728_3_, p_76728_4_); + + if (p_76728_2_.nextInt(1000) == 0) + { + int k = p_76728_3_ + p_76728_2_.nextInt(16) + 8; + int l = p_76728_4_ + p_76728_2_.nextInt(16) + 8; + WorldGenDesertWells worldgendesertwells = new WorldGenDesertWells(); + worldgendesertwells.generate(p_76728_1_, p_76728_2_, k, p_76728_1_.getHeightValue(k, l) + 1, l); + } + } +} \ No newline at end of file diff --git a/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianForest.java b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianForest.java new file mode 100644 index 0000000000..29fd27bed6 --- /dev/null +++ b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianForest.java @@ -0,0 +1,225 @@ +package gtPlusPlus.australia.biome.type; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gtPlusPlus.core.lib.CORE; + +import java.util.Random; +import net.minecraft.block.BlockFlower; +import net.minecraft.entity.passive.EntityWolf; +import net.minecraft.init.Blocks; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.BiomeGenForest; +import net.minecraft.world.biome.BiomeGenMutated; +import net.minecraft.world.gen.feature.WorldGenAbstractTree; +import net.minecraft.world.gen.feature.WorldGenBigMushroom; +import net.minecraft.world.gen.feature.WorldGenCanopyTree; +import net.minecraft.world.gen.feature.WorldGenForest; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.common.BiomeManager; + +public class Biome_AustralianForest extends BiomeGenForest { + + private int field_150632_aF; + protected static final WorldGenForest field_150629_aC = new WorldGenForest(false, true); + protected static final WorldGenForest field_150630_aD = new WorldGenForest(false, false); + protected static final WorldGenCanopyTree field_150631_aE = new WorldGenCanopyTree(false); + + + public static Biome_AustralianForest biome = new Biome_AustralianForest(CORE.AUSTRALIA_BIOME_FOREST_ID, 2); + public void load() { + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.FOREST); + BiomeManager.addSpawnBiome(biome); + } + + public Biome_AustralianForest(int p_i45377_1_, int p_i45377_2_){ + super(p_i45377_1_, p_i45377_2_); + this.field_150632_aF = p_i45377_2_; + this.setColor(353825); + this.setBiomeName("Australian Forest"); + this.theBiomeDecorator.treesPerChunk = 10; + this.theBiomeDecorator.grassPerChunk = 2; + + if (this.field_150632_aF == 1) + { + this.theBiomeDecorator.treesPerChunk = 6; + this.theBiomeDecorator.flowersPerChunk = 100; + this.theBiomeDecorator.grassPerChunk = 1; + } + + this.func_76733_a(5159473); + this.setTemperatureRainfall(0.7F, 0.8F); + + if (this.field_150632_aF == 2) + { + this.field_150609_ah = 353825; + this.color = 3175492; + this.setTemperatureRainfall(0.6F, 0.6F); + } + + if (this.field_150632_aF == 0) + { + this.spawnableCreatureList.add(new BiomeGenBase.SpawnListEntry(EntityWolf.class, 5, 4, 4)); + } + + if (this.field_150632_aF == 3) + { + this.theBiomeDecorator.treesPerChunk = -999; + } + + if (this.field_150632_aF == 1) + { + this.flowers.clear(); + for (int x = 0; x < BlockFlower.field_149859_a.length; x++) + { + this.addFlower(Blocks.red_flower, x == 1 ? 0 : x, 10); + } + } + } + + public BiomeGenBase func_150557_a(int p_150557_1_, boolean p_150557_2_) + { + if (this.field_150632_aF == 2) + { + this.field_150609_ah = 353825; + this.color = p_150557_1_; + + if (p_150557_2_) + { + this.field_150609_ah = (this.field_150609_ah & 16711422) >> 1; + } + + return this; + } + else + { + return super.func_150557_a(p_150557_1_, p_150557_2_); + } + } + + public WorldGenAbstractTree func_150567_a(Random p_150567_1_) + { + return (WorldGenAbstractTree)(this.field_150632_aF == 3 && p_150567_1_.nextInt(3) > 0 ? field_150631_aE : (this.field_150632_aF != 2 && p_150567_1_.nextInt(5) != 0 ? this.worldGeneratorTrees : field_150630_aD)); + } + + public String func_150572_a(Random p_150572_1_, int p_150572_2_, int p_150572_3_, int p_150572_4_) + { + if (this.field_150632_aF == 1) + { + double d0 = MathHelper.clamp_double((1.0D + plantNoise.func_151601_a((double)p_150572_2_ / 48.0D, (double)p_150572_4_ / 48.0D)) / 2.0D, 0.0D, 0.9999D); + int l = (int)(d0 * (double)BlockFlower.field_149859_a.length); + + if (l == 1) + { + l = 0; + } + + return BlockFlower.field_149859_a[l]; + } + else + { + return super.func_150572_a(p_150572_1_, p_150572_2_, p_150572_3_, p_150572_4_); + } + } + + public void decorate(World p_76728_1_, Random p_76728_2_, int p_76728_3_, int p_76728_4_) + { + int k; + int l; + int i1; + int j1; + int k1; + + if (this.field_150632_aF == 3) + { + for (k = 0; k < 4; ++k) + { + for (l = 0; l < 4; ++l) + { + i1 = p_76728_3_ + k * 4 + 1 + 8 + p_76728_2_.nextInt(3); + j1 = p_76728_4_ + l * 4 + 1 + 8 + p_76728_2_.nextInt(3); + k1 = p_76728_1_.getHeightValue(i1, j1); + + if (p_76728_2_.nextInt(20) == 0) + { + WorldGenBigMushroom worldgenbigmushroom = new WorldGenBigMushroom(); + worldgenbigmushroom.generate(p_76728_1_, p_76728_2_, i1, k1, j1); + } + else + { + WorldGenAbstractTree worldgenabstracttree = this.func_150567_a(p_76728_2_); + worldgenabstracttree.setScale(1.0D, 1.0D, 1.0D); + + if (worldgenabstracttree.generate(p_76728_1_, p_76728_2_, i1, k1, j1)) + { + worldgenabstracttree.func_150524_b(p_76728_1_, p_76728_2_, i1, k1, j1); + } + } + } + } + } + + k = p_76728_2_.nextInt(5) - 3; + + if (this.field_150632_aF == 1) + { + k += 2; + } + + l = 0; + + while (l < k) + { + i1 = p_76728_2_.nextInt(3); + + if (i1 == 0) + { + genTallFlowers.func_150548_a(1); + } + else if (i1 == 1) + { + genTallFlowers.func_150548_a(4); + } + else if (i1 == 2) + { + genTallFlowers.func_150548_a(5); + } + + j1 = 0; + + while (true) + { + if (j1 < 5) + { + k1 = p_76728_3_ + p_76728_2_.nextInt(16) + 8; + int i2 = p_76728_4_ + p_76728_2_.nextInt(16) + 8; + int l1 = p_76728_2_.nextInt(p_76728_1_.getHeightValue(k1, i2) + 32); + + if (!genTallFlowers.generate(p_76728_1_, p_76728_2_, k1, l1, i2)) + { + ++j1; + continue; + } + } + + ++l; + break; + } + } + + super.decorate(p_76728_1_, p_76728_2_, p_76728_3_, p_76728_4_); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + @SideOnly(Side.CLIENT) + public int getBiomeGrassColor(int p_150558_1_, int p_150558_2_, int p_150558_3_) + { + int l = super.getBiomeGrassColor(p_150558_1_, p_150558_2_, p_150558_3_); + return this.field_150632_aF == 3 ? (l & 16711422) + 2634762 >> 1 : l; + } + +} \ No newline at end of file diff --git a/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianOcean.java b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianOcean.java new file mode 100644 index 0000000000..d92b5d78c4 --- /dev/null +++ b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianOcean.java @@ -0,0 +1,41 @@ +package gtPlusPlus.australia.biome.type; + +import java.util.Random; + +import gtPlusPlus.core.lib.CORE; +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.BiomeGenOcean; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.common.BiomeManager; + +public class Biome_AustralianOcean extends BiomeGenOcean { + + public Biome_AustralianOcean(int p_i1985_1_) + { + super(p_i1985_1_); + this.setColor(48); + this.setBiomeName("Australian Ocean"); + this.setHeight(height_DeepOceans); + this.spawnableCreatureList.clear(); + } + + public static Biome_AustralianOcean biome = new Biome_AustralianOcean(CORE.AUSTRALIA_BIOME_OCEAN_ID); + public void load() { + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.SPARSE); + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.COLD); + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.OCEAN); + BiomeManager.addSpawnBiome(biome); + } + + public BiomeGenBase.TempCategory getTempCategory() + { + return BiomeGenBase.TempCategory.OCEAN; + } + + public void genTerrainBlocks(World p_150573_1_, Random p_150573_2_, Block[] p_150573_3_, byte[] p_150573_4_, int p_150573_5_, int p_150573_6_, double p_150573_7_) + { + super.genTerrainBlocks(p_150573_1_, p_150573_2_, p_150573_3_, p_150573_4_, p_150573_5_, p_150573_6_, p_150573_7_); + } +} \ No newline at end of file diff --git a/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianOutback.java b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianOutback.java new file mode 100644 index 0000000000..e9705994e3 --- /dev/null +++ b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianOutback.java @@ -0,0 +1,368 @@ +package gtPlusPlus.australia.biome.type; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gtPlusPlus.core.lib.CORE; + +import java.util.Arrays; +import java.util.Random; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.BiomeGenMesa; +import net.minecraft.world.gen.NoiseGeneratorPerlin; +import net.minecraft.world.gen.feature.WorldGenAbstractTree; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.common.BiomeManager; + +public class Biome_AustralianOutback extends BiomeGenMesa +{ + private byte[] field_150621_aC; + private long field_150622_aD; + private NoiseGeneratorPerlin field_150623_aE; + private NoiseGeneratorPerlin field_150624_aF; + private NoiseGeneratorPerlin field_150625_aG; + private boolean field_150626_aH; + private boolean field_150620_aI; + + public Biome_AustralianOutback(int p_i45380_1_){ + super(p_i45380_1_, false, false); + this.setColor(14238997); + this.setBiomeName("Australian Outback"); + this.field_150626_aH = false; + this.field_150620_aI = false; + this.setDisableRain(); + this.setTemperatureRainfall(2.0F, 0.0F); + this.spawnableCreatureList.clear(); + this.topBlock = Blocks.sand; + this.field_150604_aj = 1; + this.fillerBlock = Blocks.stained_hardened_clay; + this.theBiomeDecorator.deadBushPerChunk = 20; + this.theBiomeDecorator.reedsPerChunk = 3; + this.theBiomeDecorator.cactiPerChunk = 5; + this.theBiomeDecorator.flowersPerChunk = 0; + this.spawnableCreatureList.clear(); + this.theBiomeDecorator.treesPerChunk = 5; + } + + public static Biome_AustralianOutback biome = new Biome_AustralianOutback(CORE.AUSTRALIA_BIOME_OUTBACK_ID); + public void load() { + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.DRY); + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.SPARSE); + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.HOT); + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.DESERT); + BiomeManager.addSpawnBiome(biome); + } + + public WorldGenAbstractTree func_150567_a(Random p_150567_1_) + { + return this.worldGeneratorTrees; + } + + public void decorate(World p_76728_1_, Random p_76728_2_, int p_76728_3_, int p_76728_4_) + { + super.decorate(p_76728_1_, p_76728_2_, p_76728_3_, p_76728_4_); + } + + public void genTerrainBlocks(World p_150573_1_, Random p_150573_2_, Block[] p_150573_3_, byte[] p_150573_4_, int p_150573_5_, int p_150573_6_, double p_150573_7_) + { + if (this.field_150621_aC == null || this.field_150622_aD != p_150573_1_.getSeed()) + { + this.func_150619_a(p_150573_1_.getSeed()); + } + + if (this.field_150623_aE == null || this.field_150624_aF == null || this.field_150622_aD != p_150573_1_.getSeed()) + { + Random random1 = new Random(this.field_150622_aD); + this.field_150623_aE = new NoiseGeneratorPerlin(random1, 4); + this.field_150624_aF = new NoiseGeneratorPerlin(random1, 1); + } + + this.field_150622_aD = p_150573_1_.getSeed(); + double d5 = 0.0D; + int k; + int l; + + if (this.field_150626_aH) + { + k = (p_150573_5_ & -16) + (p_150573_6_ & 15); + l = (p_150573_6_ & -16) + (p_150573_5_ & 15); + double d1 = Math.min(Math.abs(p_150573_7_), this.field_150623_aE.func_151601_a((double)k * 0.25D, (double)l * 0.25D)); + + if (d1 > 0.0D) + { + double d2 = 0.001953125D; + double d3 = Math.abs(this.field_150624_aF.func_151601_a((double)k * d2, (double)l * d2)); + d5 = d1 * d1 * 2.5D; + double d4 = Math.ceil(d3 * 50.0D) + 14.0D; + + if (d5 > d4) + { + d5 = d4; + } + + d5 += 64.0D; + } + } + + k = p_150573_5_ & 15; + l = p_150573_6_ & 15; + boolean flag = true; + Block block = Blocks.stained_hardened_clay; + Block block2 = this.fillerBlock; + int i1 = (int)(p_150573_7_ / 3.0D + 3.0D + p_150573_2_.nextDouble() * 0.25D); + boolean flag1 = Math.cos(p_150573_7_ / 3.0D * Math.PI) > 0.0D; + int j1 = -1; + boolean flag2 = false; + int k1 = p_150573_3_.length / 256; + + for (int l1 = 255; l1 >= 0; --l1) + { + int i2 = (l * 16 + k) * k1 + l1; + + if ((p_150573_3_[i2] == null || p_150573_3_[i2].getMaterial() == Material.air) && l1 < (int)d5) + { + p_150573_3_[i2] = Blocks.stone; + } + + if (l1 <= 0 + p_150573_2_.nextInt(5)) + { + p_150573_3_[i2] = Blocks.bedrock; + } + else + { + Block block1 = p_150573_3_[i2]; + + if (block1 != null && block1.getMaterial() != Material.air) + { + if (block1 == Blocks.stone) + { + byte b0; + + if (j1 == -1) + { + flag2 = false; + + if (i1 <= 0) + { + block = null; + block2 = Blocks.stone; + } + else if (l1 >= 59 && l1 <= 64) + { + block = Blocks.stained_hardened_clay; + block2 = this.fillerBlock; + } + + if (l1 < 63 && (block == null || block.getMaterial() == Material.air)) + { + block = Blocks.water; + } + + j1 = i1 + Math.max(0, l1 - 63); + + if (l1 >= 62) + { + if (this.field_150620_aI && l1 > 86 + i1 * 2) + { + if (flag1) + { + p_150573_3_[i2] = Blocks.dirt; + p_150573_4_[i2] = 1; + } + else + { + p_150573_3_[i2] = Blocks.grass; + } + } + else if (l1 > 66 + i1) + { + b0 = 16; + + if (l1 >= 64 && l1 <= 127) + { + if (!flag1) + { + b0 = this.func_150618_d(p_150573_5_, l1, p_150573_6_); + } + } + else + { + b0 = 1; + } + + if (b0 < 16) + { + p_150573_3_[i2] = Blocks.stained_hardened_clay; + p_150573_4_[i2] = (byte)b0; + } + else + { + p_150573_3_[i2] = Blocks.hardened_clay; + } + } + else + { + p_150573_3_[i2] = this.topBlock; + p_150573_4_[i2] = (byte)this.field_150604_aj; + flag2 = true; + } + } + else + { + p_150573_3_[i2] = block2; + + if (block2 == Blocks.stained_hardened_clay) + { + p_150573_4_[i2] = 1; + } + } + } + else if (j1 > 0) + { + --j1; + + if (flag2) + { + p_150573_3_[i2] = Blocks.stained_hardened_clay; + p_150573_4_[i2] = 1; + } + else + { + b0 = this.func_150618_d(p_150573_5_, l1, p_150573_6_); + + if (b0 < 16) + { + p_150573_3_[i2] = Blocks.stained_hardened_clay; + p_150573_4_[i2] = b0; + } + else + { + p_150573_3_[i2] = Blocks.hardened_clay; + } + } + } + } + } + else + { + j1 = -1; + } + } + } + } + + public void func_150619_a(long p_150619_1_) + { + this.field_150621_aC = new byte[64]; + Arrays.fill(this.field_150621_aC, (byte)16); + Random random = new Random(p_150619_1_); + this.field_150625_aG = new NoiseGeneratorPerlin(random, 1); + int j; + + for (j = 0; j < 64; ++j) + { + j += random.nextInt(5) + 1; + + if (j < 64) + { + this.field_150621_aC[j] = 1; + } + } + + j = random.nextInt(4) + 2; + int k; + int l; + int i1; + int j1; + + for (k = 0; k < j; ++k) + { + l = random.nextInt(3) + 1; + i1 = random.nextInt(64); + + for (j1 = 0; i1 + j1 < 64 && j1 < l; ++j1) + { + this.field_150621_aC[i1 + j1] = 4; + } + } + + k = random.nextInt(4) + 2; + int k1; + + for (l = 0; l < k; ++l) + { + i1 = random.nextInt(3) + 2; + j1 = random.nextInt(64); + + for (k1 = 0; j1 + k1 < 64 && k1 < i1; ++k1) + { + this.field_150621_aC[j1 + k1] = 12; + } + } + + l = random.nextInt(4) + 2; + + for (i1 = 0; i1 < l; ++i1) + { + j1 = random.nextInt(3) + 1; + k1 = random.nextInt(64); + + for (int l1 = 0; k1 + l1 < 64 && l1 < j1; ++l1) + { + this.field_150621_aC[k1 + l1] = 14; + } + } + + i1 = random.nextInt(3) + 3; + j1 = 0; + + for (k1 = 0; k1 < i1; ++k1) + { + byte b0 = 1; + j1 += random.nextInt(16) + 4; + + for (int i2 = 0; j1 + i2 < 64 && i2 < b0; ++i2) + { + this.field_150621_aC[j1 + i2] = 0; + + if (j1 + i2 > 1 && random.nextBoolean()) + { + this.field_150621_aC[j1 + i2 - 1] = 8; + } + + if (j1 + i2 < 63 && random.nextBoolean()) + { + this.field_150621_aC[j1 + i2 + 1] = 8; + } + } + } + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + @SideOnly(Side.CLIENT) + public int getBiomeFoliageColor(int p_150571_1_, int p_150571_2_, int p_150571_3_) + { + return 10387789; + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + @SideOnly(Side.CLIENT) + public int getBiomeGrassColor(int p_150558_1_, int p_150558_2_, int p_150558_3_) + { + return 9470285; + } + + public byte func_150618_d(int p_150618_1_, int p_150618_2_, int p_150618_3_) + { + int l = (int)Math.round(this.field_150625_aG.func_151601_a((double)p_150618_1_ * 1.0D / 512.0D, (double)p_150618_1_ * 1.0D / 512.0D) * 2.0D); + return this.field_150621_aC[(p_150618_2_ + l + 64) % 64]; + } + +} \ No newline at end of file diff --git a/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianPlains.java b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianPlains.java new file mode 100644 index 0000000000..efbc0111ed --- /dev/null +++ b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianPlains.java @@ -0,0 +1,112 @@ +package gtPlusPlus.australia.biome.type; + +import java.util.Random; + +import gtPlusPlus.core.lib.CORE; +import net.minecraft.block.BlockFlower; +import net.minecraft.entity.passive.EntityHorse; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.BiomeGenPlains; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.common.BiomeManager; + +public class Biome_AustralianPlains extends BiomeGenPlains +{ + protected boolean field_150628_aC; + + public Biome_AustralianPlains(int p_i1986_1_) + { + super(p_i1986_1_); + this.setTemperatureRainfall(0.8F, 0.4F); + this.setColor(9286496); + this.setBiomeName("Plainlands"); + this.setHeight(height_LowPlains); + this.spawnableCreatureList.add(new BiomeGenBase.SpawnListEntry(EntityHorse.class, 5, 2, 6)); + this.theBiomeDecorator.treesPerChunk = 1; + this.theBiomeDecorator.flowersPerChunk = 4; + this.theBiomeDecorator.grassPerChunk = 20; + this.flowers.clear(); + this.addFlower(Blocks.red_flower, 4, 3); + this.addFlower(Blocks.red_flower, 5, 3); + this.addFlower(Blocks.red_flower, 6, 3); + this.addFlower(Blocks.red_flower, 7, 3); + this.addFlower(Blocks.red_flower, 0, 20); + this.addFlower(Blocks.red_flower, 3, 20); + this.addFlower(Blocks.red_flower, 8, 20); + this.addFlower(Blocks.yellow_flower, 0, 30); + } + + public static Biome_AustralianPlains biome = new Biome_AustralianPlains(CORE.AUSTRALIA_BIOME_PLAINS_ID); + public void load() { + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.DRY); + BiomeDictionary.registerBiomeType(biome, BiomeDictionary.Type.SPARSE); + BiomeManager.addSpawnBiome(biome); + } + + public String func_150572_a(Random p_150572_1_, int p_150572_2_, int p_150572_3_, int p_150572_4_) + { + double d0 = plantNoise.func_151601_a((double)p_150572_2_ / 200.0D, (double)p_150572_4_ / 200.0D); + int l; + + if (d0 < -0.8D) + { + l = p_150572_1_.nextInt(4); + return BlockFlower.field_149859_a[4 + l]; + } + else if (p_150572_1_.nextInt(3) > 0) + { + l = p_150572_1_.nextInt(3); + return l == 0 ? BlockFlower.field_149859_a[0] : (l == 1 ? BlockFlower.field_149859_a[3] : BlockFlower.field_149859_a[8]); + } + else + { + return BlockFlower.field_149858_b[0]; + } + } + + public void decorate(World p_76728_1_, Random p_76728_2_, int p_76728_3_, int p_76728_4_) + { + double d0 = plantNoise.func_151601_a((double)(p_76728_3_ + 8) / 200.0D, (double)(p_76728_4_ + 8) / 200.0D); + int k; + int l; + int i1; + int j1; + + if (d0 < -0.8D) + { + this.theBiomeDecorator.flowersPerChunk = 15; + this.theBiomeDecorator.grassPerChunk = 5; + } + else + { + this.theBiomeDecorator.flowersPerChunk = 4; + this.theBiomeDecorator.grassPerChunk = 10; + genTallFlowers.func_150548_a(2); + + for (k = 0; k < 7; ++k) + { + l = p_76728_3_ + p_76728_2_.nextInt(16) + 8; + i1 = p_76728_4_ + p_76728_2_.nextInt(16) + 8; + j1 = p_76728_2_.nextInt(p_76728_1_.getHeightValue(l, i1) + 32); + genTallFlowers.generate(p_76728_1_, p_76728_2_, l, j1, i1); + } + } + + if (this.field_150628_aC) + { + genTallFlowers.func_150548_a(0); + + for (k = 0; k < 10; ++k) + { + l = p_76728_3_ + p_76728_2_.nextInt(16) + 8; + i1 = p_76728_4_ + p_76728_2_.nextInt(16) + 8; + j1 = p_76728_2_.nextInt(p_76728_1_.getHeightValue(l, i1) + 32); + genTallFlowers.generate(p_76728_1_, p_76728_2_, l, j1, i1); + } + } + + super.decorate(p_76728_1_, p_76728_2_, p_76728_3_, p_76728_4_); + } +} \ No newline at end of file diff --git a/src/Java/gtPlusPlus/australia/block/AustraliaContentLoader.java b/src/Java/gtPlusPlus/australia/block/AustraliaContentLoader.java index e5836a907c..0df84500e1 100644 --- a/src/Java/gtPlusPlus/australia/block/AustraliaContentLoader.java +++ b/src/Java/gtPlusPlus/australia/block/AustraliaContentLoader.java @@ -6,8 +6,8 @@ import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import gtPlusPlus.api.objects.data.AutoMap; -import gtPlusPlus.australia.biome.Biome_AustralianDesert; -import gtPlusPlus.australia.biome.Biome_AustralianDesert2; +import gtPlusPlus.australia.biome.type.Biome_AustralianDesert; +import gtPlusPlus.australia.biome.type.Biome_AustralianDesert2; import gtPlusPlus.australia.item.ItemAustraliaPortalTrigger; import gtPlusPlus.australia.item.ItemBlockAustralia; diff --git a/src/Java/gtPlusPlus/australia/block/BlockAustraliaSand.java b/src/Java/gtPlusPlus/australia/block/BlockAustraliaSand.java index f4f9c04a3b..62d443bc13 100644 --- a/src/Java/gtPlusPlus/australia/block/BlockAustraliaSand.java +++ b/src/Java/gtPlusPlus/australia/block/BlockAustraliaSand.java @@ -3,17 +3,17 @@ package gtPlusPlus.australia.block; import cpw.mods.fml.common.registry.LanguageRegistry; import net.minecraft.block.BlockGrass; - +import net.minecraft.block.BlockSand; import gtPlusPlus.api.interfaces.ITileTooltip; import gtPlusPlus.core.creative.AddToCreativeTab; -public class BlockAustraliaSand extends BlockGrass implements ITileTooltip{ +public class BlockAustraliaSand extends BlockSand implements ITileTooltip{ public BlockAustraliaSand() { this.setCreativeTab(AddToCreativeTab.tabBlock); this.setBlockName("blockAustralianSand"); this.setHardness(0.1F); - this.setBlockTextureName("minecraft" + ":" + "red_sand"); + this.setBlockTextureName("minecraft" + ":" + "sand"); LanguageRegistry.addName(this, "Sandy Earth"); } diff --git a/src/Java/gtPlusPlus/australia/block/BlockAustraliaTopSoil.java b/src/Java/gtPlusPlus/australia/block/BlockAustraliaTopSoil.java index 055e3f6372..09c7dbf22d 100644 --- a/src/Java/gtPlusPlus/australia/block/BlockAustraliaTopSoil.java +++ b/src/Java/gtPlusPlus/australia/block/BlockAustraliaTopSoil.java @@ -5,6 +5,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockDirt; +import net.minecraft.block.BlockSand; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.world.ColorizerGrass; import net.minecraft.world.IBlockAccess; @@ -12,11 +13,11 @@ import net.minecraft.world.IBlockAccess; import gtPlusPlus.api.interfaces.ITileTooltip; import gtPlusPlus.core.creative.AddToCreativeTab; -public class BlockAustraliaTopSoil extends BlockDirt implements ITileTooltip{ +public class BlockAustraliaTopSoil extends BlockSand implements ITileTooltip{ public BlockAustraliaTopSoil() { this.setHardness(0.5F); - this.setBlockTextureName("minecraft" + ":" + "sand"); + this.setBlockTextureName("minecraft" + ":" + "dirt"); this.setCreativeTab(CreativeTabs.tabBlock); this.setBlockName("blockAustralianTopSoil"); LanguageRegistry.addName(this, "Desert Earth"); diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java index e9a6778c32..452c1bad0f 100644 --- a/src/Java/gtPlusPlus/core/lib/CORE.java +++ b/src/Java/gtPlusPlus/core/lib/CORE.java @@ -62,6 +62,11 @@ public class CORE { public static int AUSTRALIA_ID = 228; public static int AUSTRALIA_BIOME_DESERT_1_ID = 239; public static int AUSTRALIA_BIOME_DESERT_2_ID = 240; + public static int AUSTRALIA_BIOME_DESERT_3_ID = 241; + public static int AUSTRALIA_BIOME_PLAINS_ID = 242; + public static int AUSTRALIA_BIOME_OUTBACK_ID = 243; + public static int AUSTRALIA_BIOME_OCEAN_ID = 244; + public static int AUSTRALIA_BIOME_FOREST_ID = 245; //GT Vars; public static final int GREG_FIRST_ID = 760; -- cgit