diff options
author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-07-07 02:32:14 +1000 |
---|---|---|
committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-07-07 02:32:14 +1000 |
commit | df602b8f36b16fc7695c21ea66deb1a2a34aa8b3 (patch) | |
tree | 72ebb6b64c0dc291de5f66b163cb9ea26ac1b8b5 | |
parent | c8421edf9e783f0ab749e538691f35b4c02aa388 (diff) | |
download | GT5-Unofficial-df602b8f36b16fc7695c21ea66deb1a2a34aa8b3.tar.gz GT5-Unofficial-df602b8f36b16fc7695c21ea66deb1a2a34aa8b3.tar.bz2 GT5-Unofficial-df602b8f36b16fc7695c21ea66deb1a2a34aa8b3.zip |
+ Added 5 new biomes to Australia.
% Changes to certain things about Australia.
13 files changed, 869 insertions, 23 deletions
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/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/Biome_AustralianDesert.java b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert.java index 646c3c804a..6986c9931d 100644 --- a/src/Java/gtPlusPlus/australia/biome/Biome_AustralianDesert.java +++ b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert.java @@ -1,4 +1,4 @@ -package gtPlusPlus.australia.biome; +package gtPlusPlus.australia.biome.type; import java.lang.reflect.Field; import java.util.Random; @@ -35,7 +35,6 @@ import net.minecraftforge.common.BiomeManager; public class Biome_AustralianDesert { - public static BiomeGenAustralianDesert biome = new BiomeGenAustralianDesert(); public Object instance; @@ -46,8 +45,10 @@ public class Biome_AustralianDesert { 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); @@ -182,7 +183,7 @@ public class Biome_AustralianDesert { } class Tree - extends WorldGenerator + extends WorldGenAbstractTree { private final int minTreeHeight; private final boolean vinesGrow; @@ -191,7 +192,7 @@ public class Biome_AustralianDesert { public Tree() { - super(); + super(false); this.minTreeHeight = 5; this.metaWood = 0; this.metaLeaves = 0; diff --git a/src/Java/gtPlusPlus/australia/biome/Biome_AustralianDesert2.java b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert2.java index 233ca54a72..003c6cbd93 100644 --- a/src/Java/gtPlusPlus/australia/biome/Biome_AustralianDesert2.java +++ b/src/Java/gtPlusPlus/australia/biome/type/Biome_AustralianDesert2.java @@ -1,4 +1,4 @@ -package gtPlusPlus.australia.biome; +package gtPlusPlus.australia.biome.type; import java.lang.reflect.Field; import java.util.Random; @@ -9,6 +9,7 @@ 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; @@ -171,17 +172,18 @@ public class Biome_AustralianDesert2 { @Override public WorldGenAbstractTree func_150567_a(Random par1Random){ - return (WorldGenAbstractTree)(getRandomWorldGenForTrees(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 WorldGenerator getRandomWorldGenForTrees(Random par1Random) + public WorldGenAbstractTree getRandomWorldGenForTrees(Random par1Random) { return new Tree(); } class Tree - extends WorldGenerator + extends WorldGenAbstractTree { private final int minTreeHeight; private final boolean vinesGrow; @@ -190,8 +192,8 @@ public class Biome_AustralianDesert2 { public Tree() { - super(); - this.minTreeHeight = 5; + super(false); + this.minTreeHeight = 3; this.metaWood = 0; this.metaLeaves = 0; this.vinesGrow = false; 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; |