diff --git a/common/biomesoplenty/api/Biomes.java b/common/biomesoplenty/api/Biomes.java index 88c07b43d..5eb37f755 100644 --- a/common/biomesoplenty/api/Biomes.java +++ b/common/biomesoplenty/api/Biomes.java @@ -92,6 +92,7 @@ public class Biomes public static Optional promisedLandForest = Optional.absent(); public static Optional promisedLandPlains = Optional.absent(); + public static Optional promisedLandShrub = Optional.absent(); public static Optional promisedLandSwamp = Optional.absent(); public static Optional quagmire = Optional.absent(); diff --git a/common/biomesoplenty/api/BlockReferences.java b/common/biomesoplenty/api/BlockReferences.java index 715aaf620..6b224463c 100644 --- a/common/biomesoplenty/api/BlockReferences.java +++ b/common/biomesoplenty/api/BlockReferences.java @@ -119,6 +119,7 @@ public class BlockReferences { holyDirt (Blocks.holyDirt, 0), holyStone (Blocks.holyStone, 0), holyStoneCobble (Blocks.holyStone, 1), + holyStoneMossy (Blocks.holyStone, 3), crystal (Blocks.crystal, 0), cragRock (Blocks.cragRock, 0), quicksand (Blocks.mud, 1), diff --git a/common/biomesoplenty/biomes/BiomeDecoratorBOP.java b/common/biomesoplenty/biomes/BiomeDecoratorBOP.java index 1d14868ed..ed6290e01 100644 --- a/common/biomesoplenty/biomes/BiomeDecoratorBOP.java +++ b/common/biomesoplenty/biomes/BiomeDecoratorBOP.java @@ -45,7 +45,6 @@ import net.minecraftforge.event.terraingen.OreGenEvent; import net.minecraftforge.event.terraingen.TerrainGen; import biomesoplenty.api.Blocks; import biomesoplenty.api.Fluids; -import biomesoplenty.configuration.configfile.BOPConfiguration; import biomesoplenty.configuration.configfile.BOPConfigurationTerrainGen; import biomesoplenty.worldgen.WorldGenAlgae; import biomesoplenty.worldgen.WorldGenAsh; @@ -80,10 +79,10 @@ import biomesoplenty.worldgen.WorldGenKelp; import biomesoplenty.worldgen.WorldGenLilyflower; import biomesoplenty.worldgen.WorldGenMelon; import biomesoplenty.worldgen.WorldGenMesa; +import biomesoplenty.worldgen.WorldGenMossySkystone; import biomesoplenty.worldgen.WorldGenMud; import biomesoplenty.worldgen.WorldGenMycelium; import biomesoplenty.worldgen.WorldGenNetherGrass; -import biomesoplenty.worldgen.WorldGenNetherHive; import biomesoplenty.worldgen.WorldGenNetherLava; import biomesoplenty.worldgen.WorldGenNetherVines; import biomesoplenty.worldgen.WorldGenNetherWart; @@ -154,7 +153,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator public WorldGenerator clayInStone2Gen; public WorldGenerator quagmireGen; public WorldGenerator quicksandGen; - public WorldGenerator hiveGen; + public WorldGenerator mossySkystoneGen; public WorldGenerator spongeGen; public WorldGenerator canyonGen; public WorldGenerator cloudGen; @@ -443,7 +442,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator public boolean generateClouds; public boolean generateQuicksand; public boolean generateSponge; - public boolean generateHive; + public boolean generateMossySkystone; public BiomeDecoratorBOP(BiomeGenBase par1BiomeGenBase) { @@ -468,7 +467,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator clayInStoneGen = new WorldGenBadlands3(Block.stainedClay.blockID, 32); clayInStone2Gen = new WorldGenBadlands(Block.stainedClay.blockID, 32); quagmireGen = new WorldGenQuagmire(Block.grass.blockID, 48); - hiveGen = new WorldGenNetherHive(Blocks.hive.get().blockID, 48); + mossySkystoneGen = new WorldGenMossySkystone(Blocks.holyStone.get().blockID, 24); quicksandGen = new WorldGenQuicksand(Blocks.mud.get().blockID, 24); spongeGen = new WorldGenSponge(Block.sponge.blockID, 24); canyonGen = new WorldGenCanyon(Blocks.redRock.get().blockID, 48); @@ -659,8 +658,8 @@ public class BiomeDecoratorBOP extends BiomeDecorator koruPerChunk = 0; waspHivesPerChunk = 0; rootsPerChunk = 9; - stalagmitesPerChunk = 5; - stalactitesPerChunk = 10; + stalagmitesPerChunk = 3; + stalactitesPerChunk = 6; cloudsPerChunk = 0; generateLakes = true; generateAsh = false; @@ -682,7 +681,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator generateClouds = false; generateQuicksand = false; generateSponge = false; - generateHive = false; + generateMossySkystone = false; biome = par1BiomeGenBase; } @@ -876,9 +875,9 @@ public class BiomeDecoratorBOP extends BiomeDecorator this.genStandardOre1(15, quagmireGen, 64, 128); } - if (generateHive) + if (generateMossySkystone) { - this.genStandardOre1(5, hiveGen, 0, 128); + this.genStandardOre1(15, mossySkystoneGen, 0, 80); } if (generateCanyon) @@ -1357,7 +1356,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator if (BOPConfigurationTerrainGen.stoneFormationGen) { var3 = chunk_X + randomGenerator.nextInt(16) + 8; - var4 = randomGenerator.nextInt(64); + var4 = randomGenerator.nextInt(60); var5 = chunk_Z + randomGenerator.nextInt(16) + 8; stalagmiteGen.generate(currentWorld, randomGenerator, var3, var4, var5); } @@ -1368,7 +1367,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator if (BOPConfigurationTerrainGen.stoneFormationGen) { var3 = chunk_X + randomGenerator.nextInt(16) + 8; - var4 = randomGenerator.nextInt(64); + var4 = randomGenerator.nextInt(60); var5 = chunk_Z + randomGenerator.nextInt(16) + 8; stalactiteGen.generate(currentWorld, randomGenerator, var3, var4, var5); } diff --git a/common/biomesoplenty/biomes/BiomeGenAlpsForest.java b/common/biomesoplenty/biomes/BiomeGenAlpsForest.java index 07cc224d0..c4fb791ef 100644 --- a/common/biomesoplenty/biomes/BiomeGenAlpsForest.java +++ b/common/biomesoplenty/biomes/BiomeGenAlpsForest.java @@ -21,10 +21,11 @@ public class BiomeGenAlpsForest extends BiomeGenBase theBiomeDecorator = new BiomeDecoratorBOP(this); customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; customBiomeDecorator.treesPerChunk = 8; - customBiomeDecorator.flowersPerChunk = -999; - customBiomeDecorator.grassPerChunk = -999; + customBiomeDecorator.flowersPerChunk = 2; + customBiomeDecorator.grassPerChunk = 3; customBiomeDecorator.sandPerChunk = -999; customBiomeDecorator.sandPerChunk2 = -999; + customBiomeDecorator.violetsPerChunk = 2; } @Override diff --git a/common/biomesoplenty/biomes/BiomeGenConiferousForestSnow.java b/common/biomesoplenty/biomes/BiomeGenConiferousForestSnow.java index d84a1b088..5993edf75 100644 --- a/common/biomesoplenty/biomes/BiomeGenConiferousForestSnow.java +++ b/common/biomesoplenty/biomes/BiomeGenConiferousForestSnow.java @@ -27,6 +27,7 @@ public class BiomeGenConiferousForestSnow extends BiomeGenBase customBiomeDecorator.flowersPerChunk = -999; customBiomeDecorator.shrubsPerChunk = 4; customBiomeDecorator.wheatGrassPerChunk = 1; + customBiomeDecorator.violetsPerChunk = 3; customBiomeDecorator.sandPerChunk = -999; customBiomeDecorator.sandPerChunk2 = -999; customBiomeDecorator.gravelPerChunk = 1; diff --git a/common/biomesoplenty/biomes/BiomeGenDeadForestSnow.java b/common/biomesoplenty/biomes/BiomeGenDeadForestSnow.java index 5aa348e4b..b82d78839 100644 --- a/common/biomesoplenty/biomes/BiomeGenDeadForestSnow.java +++ b/common/biomesoplenty/biomes/BiomeGenDeadForestSnow.java @@ -28,6 +28,7 @@ public class BiomeGenDeadForestSnow extends BiomeGenBase customBiomeDecorator.reedsPerChunk = -999; customBiomeDecorator.wheatGrassPerChunk = 1; customBiomeDecorator.shrubsPerChunk = 1; + customBiomeDecorator.violetsPerChunk = 1; } @Override diff --git a/common/biomesoplenty/biomes/BiomeGenFrostForest.java b/common/biomesoplenty/biomes/BiomeGenFrostForest.java index d736432b5..0d1b7ac26 100644 --- a/common/biomesoplenty/biomes/BiomeGenFrostForest.java +++ b/common/biomesoplenty/biomes/BiomeGenFrostForest.java @@ -27,6 +27,7 @@ public class BiomeGenFrostForest extends BiomeGenBase implements IWCFog customBiomeDecorator.shrubsPerChunk = 1; customBiomeDecorator.icyIrisPerChunk = 3; customBiomeDecorator.wheatGrassPerChunk = 1; + customBiomeDecorator.violetsPerChunk = 1; customBiomeDecorator.generatePumpkins = false; } diff --git a/common/biomesoplenty/biomes/BiomeGenMapleWoods.java b/common/biomesoplenty/biomes/BiomeGenMapleWoods.java index 4adaa9af1..675233b2a 100644 --- a/common/biomesoplenty/biomes/BiomeGenMapleWoods.java +++ b/common/biomesoplenty/biomes/BiomeGenMapleWoods.java @@ -21,7 +21,7 @@ public class BiomeGenMapleWoods extends BiomeGenBase customBiomeDecorator.treesPerChunk = 9; customBiomeDecorator.grassPerChunk = 1; customBiomeDecorator.wheatGrassPerChunk = 1; - customBiomeDecorator.violetsPerChunk = 1; + customBiomeDecorator.violetsPerChunk = 2; customBiomeDecorator.poisonIvyPerChunk = 1; customBiomeDecorator.shrubsPerChunk = 2; } diff --git a/common/biomesoplenty/biomes/BiomeGenSacredSprings.java b/common/biomesoplenty/biomes/BiomeGenSacredSprings.java index e9c6d7994..cb1dd0661 100644 --- a/common/biomesoplenty/biomes/BiomeGenSacredSprings.java +++ b/common/biomesoplenty/biomes/BiomeGenSacredSprings.java @@ -29,7 +29,6 @@ public class BiomeGenSacredSprings extends BiomeGenBase implements IWCFog customBiomeDecorator.grassPerChunk = 4; customBiomeDecorator.wheatGrassPerChunk = 1; customBiomeDecorator.waterlilyPerChunk = 5; - customBiomeDecorator.violetsPerChunk = 1; customBiomeDecorator.generatePumpkins = false; spawnableMonsterList.add(new SpawnListEntry(EntityJungleSpider.class, 12, 6, 6)); diff --git a/common/biomesoplenty/biomes/BiomeGenTundra.java b/common/biomesoplenty/biomes/BiomeGenTundra.java index da93b9462..82605d5c9 100644 --- a/common/biomesoplenty/biomes/BiomeGenTundra.java +++ b/common/biomesoplenty/biomes/BiomeGenTundra.java @@ -30,6 +30,7 @@ public class BiomeGenTundra extends BiomeGenBase customBiomeDecorator.gravelPerChunk2 = 8; customBiomeDecorator.shrubsPerChunk = 2; customBiomeDecorator.waterReedsPerChunk = 2; + customBiomeDecorator.violetsPerChunk = 1; } @Override diff --git a/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandForest.java b/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandForest.java index f7800ccfd..c422173b0 100644 --- a/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandForest.java +++ b/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandForest.java @@ -31,7 +31,7 @@ public class BiomeGenPromisedLandForest extends BiomeGenBase implements IWCFog customBiomeDecorator.treesPerChunk = 20; customBiomeDecorator.grassPerChunk = -999; customBiomeDecorator.holyTallGrassPerChunk = 50; - customBiomeDecorator.promisedWillowPerChunk = 80; + customBiomeDecorator.promisedWillowPerChunk = 40; customBiomeDecorator.pinkFlowersPerChunk = 12; customBiomeDecorator.rainbowflowersPerChunk = 10; customBiomeDecorator.blueMilksPerChunk = 5; @@ -47,6 +47,7 @@ public class BiomeGenPromisedLandForest extends BiomeGenBase implements IWCFog spawnableMonsterList.clear(); spawnableCaveCreatureList.clear(); customBiomeDecorator.generatePumpkins = false; + customBiomeDecorator.generateMossySkystone = true; //customBiomeDecorator.generateClouds = true; //this.customBiomeDecorator.generateLakes = false; theWorldGenerator = new WorldGenWaterSpring(Block.waterMoving.blockID, 8); @@ -71,7 +72,7 @@ public class BiomeGenPromisedLandForest extends BiomeGenBase implements IWCFog @Override public WorldGenerator getRandomWorldGenForTrees(Random par1Random) { - return par1Random.nextInt(2) == 0 ? new WorldGenPromisedShrub(0,0) : (par1Random.nextInt(8) == 0 ? new WorldGenPromisedTree2(false) : new WorldGenPromisedTree(false)); + return par1Random.nextInt(8) == 0 ? new WorldGenPromisedTree2(false) : new WorldGenPromisedTree(false); } @Override diff --git a/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandPlains.java b/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandPlains.java index ba048c34d..c65940fde 100644 --- a/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandPlains.java +++ b/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandPlains.java @@ -26,7 +26,7 @@ public class BiomeGenPromisedLandPlains extends BiomeGenBase implements IWCFog customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; topBlock = (byte)Blocks.holyGrass.get().blockID; fillerBlock = (byte)Blocks.holyDirt.get().blockID; - customBiomeDecorator.treesPerChunk = 4; + customBiomeDecorator.treesPerChunk = -999; customBiomeDecorator.grassPerChunk = -999; customBiomeDecorator.holyTallGrassPerChunk = 999; customBiomeDecorator.promisedWillowPerChunk = 80; @@ -43,6 +43,7 @@ public class BiomeGenPromisedLandPlains extends BiomeGenBase implements IWCFog spawnableMonsterList.clear(); spawnableCaveCreatureList.clear(); customBiomeDecorator.generatePumpkins = false; + customBiomeDecorator.generateMossySkystone = true; //customBiomeDecorator.generateClouds = true; //this.customBiomeDecorator.generateLakes = false; theWorldGenerator = new WorldGenWaterSpring(Block.waterMoving.blockID, 8); @@ -59,15 +60,6 @@ public class BiomeGenPromisedLandPlains extends BiomeGenBase implements IWCFog } }*/ } - - /** - * Gets a WorldGen appropriate for this biome. - */ - @Override - public WorldGenerator getRandomWorldGenForTrees(Random par1Random) - { - return new WorldGenPromisedBush(); - } @Override public int getBiomeGrassColor() diff --git a/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandShrub.java b/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandShrub.java new file mode 100644 index 000000000..52f7ae471 --- /dev/null +++ b/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandShrub.java @@ -0,0 +1,143 @@ +package biomesoplenty.biomes.promisedland; + +import java.awt.Color; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenerator; +import worldcore.interfaces.IWCFog; +import biomesoplenty.api.Blocks; +import biomesoplenty.biomes.BiomeDecoratorBOP; +import biomesoplenty.configuration.configfile.BOPConfigurationMisc; +import biomesoplenty.worldgen.WorldGenPromisedShrub; +import biomesoplenty.worldgen.WorldGenWaterSpring; + +public class BiomeGenPromisedLandShrub extends BiomeGenBase implements IWCFog +{ + private WorldGenerator theWorldGenerator; + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenPromisedLandShrub(int par1) + { + super(par1); + theBiomeDecorator = new BiomeDecoratorBOP(this); + customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + topBlock = (byte)Blocks.holyGrass.get().blockID; + fillerBlock = (byte)Blocks.holyDirt.get().blockID; + customBiomeDecorator.treesPerChunk = 50; + customBiomeDecorator.grassPerChunk = -999; + customBiomeDecorator.holyTallGrassPerChunk = 10; + customBiomeDecorator.promisedWillowPerChunk = 80; + customBiomeDecorator.rainbowflowersPerChunk = 5; + customBiomeDecorator.generateLakes = false; + customBiomeDecorator.pondsPerChunk = -100; + customBiomeDecorator.crystalsPerChunk = 25; + customBiomeDecorator.crystals2PerChunk = 50; + customBiomeDecorator.cloudsPerChunk = 1; + spawnableCreatureList.clear(); + spawnableWaterCreatureList.clear(); + spawnableMonsterList.clear(); + spawnableCaveCreatureList.clear(); + customBiomeDecorator.generatePumpkins = false; + customBiomeDecorator.generateMossySkystone = true; + //customBiomeDecorator.generateClouds = true; + //this.customBiomeDecorator.generateLakes = false; + theWorldGenerator = new WorldGenWaterSpring(Block.waterMoving.blockID, 8); + + /*if (Loader.isModLoaded("TwilightForest")) + { + try { + this.spawnableMonsterList.add(new SpawnListEntry(Class.forName("twilightforest.entity.passive.EntityTFBird"), 2, 1, 3)); + this.spawnableMonsterList.add(new SpawnListEntry(Class.forName("twilightforest.entity.passive.EntityTFBunny"), 4, 1, 3)); + this.spawnableMonsterList.add(new SpawnListEntry(Class.forName("twilightforest.entity.passive.EntityTFSquirrel"), 4, 1, 2)); + } catch (ClassNotFoundException e) { + System.out.println("[BiomesOPlenty] There was an error while integrating Twilight Forest with Biomes O' Plenty!"); + e.printStackTrace(); + } + }*/ + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + @Override + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new WorldGenPromisedShrub(0, 0); + } + + @Override + public int getBiomeGrassColor() + { + return 7925125; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + @Override + public int getBiomeFoliageColor() + { + return 7925125; + } + + @Override + public int getFogColour() + { + return 16754234; + } + + @Override + public float getFogCloseness() + { + // TODO Auto-generated method stub + return 1.0F; + } + + @Override + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 100; + int var6; + int var7; + int var8; + + for (var5 = 0; var5 < 10; ++var5) + { + var6 = par3 + par2Random.nextInt(16); + var7 = par2Random.nextInt(60); + var8 = par4 + par2Random.nextInt(16); + theWorldGenerator.generate(par1World, par2Random, var6, var7, var8); + } + } + + /** + * takes temperature, returns color + */ + @Override + public int getSkyColorByTemp(float par1) + { + if (BOPConfigurationMisc.skyColors) + return BOPConfigurationMisc.promisedLandSkyColor; + else + { + par1 /= 3.0F; + + if (par1 < -1.0F) + { + par1 = -1.0F; + } + + if (par1 > 1.0F) + { + par1 = 1.0F; + } + + return Color.getHSBColor(0.62222224F - par1 * 0.05F, 0.5F + par1 * 0.1F, 1.0F).getRGB(); + } + } +} diff --git a/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandSwamp.java b/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandSwamp.java index 190105968..463ba13d3 100644 --- a/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandSwamp.java +++ b/common/biomesoplenty/biomes/promisedland/BiomeGenPromisedLandSwamp.java @@ -30,7 +30,7 @@ public class BiomeGenPromisedLandSwamp extends BiomeGenBase implements IWCFog customBiomeDecorator.treesPerChunk = 12; customBiomeDecorator.grassPerChunk = -999; customBiomeDecorator.holyTallGrassPerChunk = 100; - customBiomeDecorator.promisedWillowPerChunk = 80; + customBiomeDecorator.promisedWillowPerChunk = 40; customBiomeDecorator.pinkFlowersPerChunk = 6; customBiomeDecorator.rainbowflowersPerChunk = 5; customBiomeDecorator.blueMilksPerChunk = 15; @@ -48,6 +48,7 @@ public class BiomeGenPromisedLandSwamp extends BiomeGenBase implements IWCFog spawnableMonsterList.clear(); spawnableCaveCreatureList.clear(); customBiomeDecorator.generatePumpkins = false; + customBiomeDecorator.generateMossySkystone = true; //customBiomeDecorator.generateClouds = true; //this.customBiomeDecorator.generateLakes = false; theWorldGenerator = new WorldGenWaterSpring(Block.waterMoving.blockID, 8); @@ -71,7 +72,7 @@ public class BiomeGenPromisedLandSwamp extends BiomeGenBase implements IWCFog @Override public WorldGenerator getRandomWorldGenForTrees(Random par1Random) { - return par1Random.nextInt(6) == 0 ? new WorldGenPromisedTree(false) : new WorldGenPromisedWillowTree(); + return new WorldGenPromisedWillowTree(); } @Override diff --git a/common/biomesoplenty/blocks/BlockBOPSkystone.java b/common/biomesoplenty/blocks/BlockBOPSkystone.java index 99629087b..13e196ca0 100644 --- a/common/biomesoplenty/blocks/BlockBOPSkystone.java +++ b/common/biomesoplenty/blocks/BlockBOPSkystone.java @@ -14,7 +14,7 @@ import biomesoplenty.BiomesOPlenty; public class BlockBOPSkystone extends Block { - private static final String[] types = new String[] {"holystone", "holycobble", "holybrick"}; + private static final String[] types = new String[] {"holystone", "holycobble", "holybrick", "holystonemossy"}; private Icon[] textures = {null, null, null}; public BlockBOPSkystone(int par1) @@ -60,7 +60,16 @@ public class BlockBOPSkystone extends Block @Override public int damageDropped(int meta) { - return meta == 0 ? 1 : meta; + if (meta == 0) + { + return 1; + } + if (meta == 3) + { + return 1; + } + + return meta; } @Override @@ -82,6 +91,10 @@ public class BlockBOPSkystone extends Block case 2: hardness = 1.1F; break; + + case 3: + hardness = 1.0F; + break; } return hardness; diff --git a/common/biomesoplenty/configuration/BOPAchievements.java b/common/biomesoplenty/configuration/BOPAchievements.java index 037470eab..117fa5896 100644 --- a/common/biomesoplenty/configuration/BOPAchievements.java +++ b/common/biomesoplenty/configuration/BOPAchievements.java @@ -104,6 +104,11 @@ public class BOPAchievements player.addStat(BOPAchievements.achPromised, 1); } + if (biomeID == Biomes.promisedLandShrub.get().biomeID) + { + player.addStat(BOPAchievements.achPromised, 1); + } + if (biomeID == Biomes.promisedLandSwamp.get().biomeID) { player.addStat(BOPAchievements.achPromised, 1); diff --git a/common/biomesoplenty/configuration/BOPBiomes.java b/common/biomesoplenty/configuration/BOPBiomes.java index 3368751a1..8c2159e4c 100644 --- a/common/biomesoplenty/configuration/BOPBiomes.java +++ b/common/biomesoplenty/configuration/BOPBiomes.java @@ -115,6 +115,7 @@ import biomesoplenty.biomes.ocean.BiomeGenOceanCoral; import biomesoplenty.biomes.ocean.BiomeGenOceanKelp; import biomesoplenty.biomes.promisedland.BiomeGenPromisedLandForest; import biomesoplenty.biomes.promisedland.BiomeGenPromisedLandPlains; +import biomesoplenty.biomes.promisedland.BiomeGenPromisedLandShrub; import biomesoplenty.biomes.promisedland.BiomeGenPromisedLandSwamp; import biomesoplenty.biomes.vanilla.BiomeGenDesertNew; import biomesoplenty.biomes.vanilla.BiomeGenForestNew; @@ -264,6 +265,7 @@ public class BOPBiomes { Biomes.promisedLandForest = Optional.of((new BiomeGenPromisedLandForest(BOPConfigurationIDs.promisedLandForestID)).setColor(7925125).setBiomeName("Wonderous Woods").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 2.0F)); Biomes.promisedLandPlains = Optional.of((new BiomeGenPromisedLandPlains(BOPConfigurationIDs.promisedLandPlainsID)).setColor(13433204).setBiomeName("Majestic Meadow").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 2.0F)); + Biomes.promisedLandShrub = Optional.of((new BiomeGenPromisedLandShrub(BOPConfigurationIDs.promisedLandShrubID)).setColor(13433204).setBiomeName("Sublime Shrubland").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 2.0F)); Biomes.promisedLandSwamp = Optional.of((new BiomeGenPromisedLandSwamp(BOPConfigurationIDs.promisedLandSwampID)).setColor(3447145).setBiomeName("Blessed Bog").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 2.0F)); Biomes.quagmire = Optional.of((new BiomeGenQuagmire(BOPConfigurationIDs.quagmireID)).setColor(5257771).setBiomeName("Quagmire").func_76733_a(9154376).setMinMaxHeight(0.2F, 0.3F).setTemperatureRainfall(0.8F, 0.9F)); @@ -410,6 +412,7 @@ public class BOPBiomes { BiomeDictionary.registerBiomeType(Biomes.promisedLandForest.get(), Type.FOREST, Type.MAGICAL); BiomeDictionary.registerBiomeType(Biomes.promisedLandPlains.get(), Type.PLAINS, Type.MAGICAL); + BiomeDictionary.registerBiomeType(Biomes.promisedLandShrub.get(), Type.PLAINS, Type.FOREST, Type.MAGICAL); BiomeDictionary.registerBiomeType(Biomes.promisedLandSwamp.get(), Type.SWAMP, Type.MAGICAL); BiomeDictionary.registerBiomeType(Biomes.quagmire.get(), Type.WASTELAND, Type.SWAMP); diff --git a/common/biomesoplenty/configuration/BOPEntities.java b/common/biomesoplenty/configuration/BOPEntities.java index b55f59443..b169ea320 100644 --- a/common/biomesoplenty/configuration/BOPEntities.java +++ b/common/biomesoplenty/configuration/BOPEntities.java @@ -106,9 +106,9 @@ public class BOPEntities { registerEntityEgg(EntityBird.class, 5277691, 16772788); - if (Biomes.promisedLandForest.isPresent() && Biomes.promisedLandSwamp.isPresent() && Biomes.promisedLandPlains.isPresent()) + if (Biomes.promisedLandForest.isPresent() && Biomes.promisedLandSwamp.isPresent() && Biomes.promisedLandPlains.isPresent() && Biomes.promisedLandShrub.isPresent()) { - EntityRegistry.addSpawn(EntityBird.class, 10, 3, 5, EnumCreatureType.creature, Biomes.promisedLandForest.get(), Biomes.promisedLandSwamp.get(), Biomes.promisedLandPlains.get()); + EntityRegistry.addSpawn(EntityBird.class, 10, 3, 5, EnumCreatureType.creature, Biomes.promisedLandForest.get(), Biomes.promisedLandSwamp.get(), Biomes.promisedLandPlains.get(), Biomes.promisedLandShrub.get()); } } } diff --git a/common/biomesoplenty/configuration/configfile/BOPConfigurationIDs.java b/common/biomesoplenty/configuration/configfile/BOPConfigurationIDs.java index 651931402..a0404111f 100644 --- a/common/biomesoplenty/configuration/configfile/BOPConfigurationIDs.java +++ b/common/biomesoplenty/configuration/configfile/BOPConfigurationIDs.java @@ -242,6 +242,7 @@ public class BOPConfigurationIDs public static int promisedLandForestID; public static int promisedLandPlainsID; + public static int promisedLandShrubID; public static int promisedLandSwampID; public static int quagmireID; @@ -496,6 +497,7 @@ public class BOPConfigurationIDs //23-79 ExtraBiomesXL + promisedLandShrubID = config.get("Biome IDs", "Sublime Shrubland (Promised Land) ID", 28).getInt(); mysticGroveThinID = config.get("Biome IDs", "Thinned Mystic Grove (Sub-Biome) ID", 29).getInt(); netherBloodID = config.get("Biome IDs", "Bloody Heap (Nether) ID", 30).getInt(); lavenderFieldsID = config.get("Biome IDs", "Lavender Fields ID", 31).getInt(); diff --git a/common/biomesoplenty/integration/BCIntegration.java b/common/biomesoplenty/integration/BCIntegration.java index 51158db9b..671da7a34 100644 --- a/common/biomesoplenty/integration/BCIntegration.java +++ b/common/biomesoplenty/integration/BCIntegration.java @@ -16,6 +16,7 @@ public class BCIntegration { { FMLInterModComms.sendMessage("BuildCraft|Energy", "oil-gen-exclude", Integer.toString(Biomes.promisedLandForest.get().biomeID)); FMLInterModComms.sendMessage("BuildCraft|Energy", "oil-gen-exclude", Integer.toString(Biomes.promisedLandPlains.get().biomeID)); + FMLInterModComms.sendMessage("BuildCraft|Energy", "oil-gen-exclude", Integer.toString(Biomes.promisedLandShrub.get().biomeID)); FMLInterModComms.sendMessage("BuildCraft|Energy", "oil-gen-exclude", Integer.toString(Biomes.promisedLandSwamp.get().biomeID)); FMLInterModComms.sendMessage("BuildCraft|Energy", "oil-gen-exclude", Integer.toString(Biomes.netherBase.get().biomeID)); diff --git a/common/biomesoplenty/integration/ForestryIntegration.java b/common/biomesoplenty/integration/ForestryIntegration.java index bed8a4e42..be1328235 100644 --- a/common/biomesoplenty/integration/ForestryIntegration.java +++ b/common/biomesoplenty/integration/ForestryIntegration.java @@ -58,6 +58,7 @@ public class ForestryIntegration EnumTemperature.hotBiomeIds.add(BOPConfigurationIDs.volcanoID); EnumTemperature.hotBiomeIds.add(BOPConfigurationIDs.wastelandID); EnumTemperature.hotBiomeIds.add(BOPConfigurationIDs.promisedLandPlainsID); + EnumTemperature.hotBiomeIds.add(BOPConfigurationIDs.promisedLandShrubID); EnumTemperature.hotBiomeIds.add(BOPConfigurationIDs.deadForestID); EnumTemperature.hotBiomeIds.add(BOPConfigurationIDs.desertNewID); @@ -70,6 +71,7 @@ public class ForestryIntegration EnumHumidity.aridBiomeIds.add(BOPConfigurationIDs.volcanoID); EnumHumidity.aridBiomeIds.add(BOPConfigurationIDs.wastelandID); EnumHumidity.aridBiomeIds.add(BOPConfigurationIDs.promisedLandPlainsID); + EnumHumidity.aridBiomeIds.add(BOPConfigurationIDs.promisedLandShrubID); EnumHumidity.aridBiomeIds.add(BOPConfigurationIDs.deadForestID); EnumHumidity.aridBiomeIds.add(BOPConfigurationIDs.desertNewID); diff --git a/common/biomesoplenty/itemblocks/ItemBlockSkystone.java b/common/biomesoplenty/itemblocks/ItemBlockSkystone.java index 86b83a653..f8a8c08eb 100644 --- a/common/biomesoplenty/itemblocks/ItemBlockSkystone.java +++ b/common/biomesoplenty/itemblocks/ItemBlockSkystone.java @@ -5,7 +5,7 @@ import net.minecraft.item.ItemStack; public class ItemBlockSkystone extends ItemBlock { - private static final String[] types = new String[] {"holystone", "holycobble", "holybrick"}; + private static final String[] types = new String[] {"holystone", "holycobble", "holybrick", "holystonemossy"}; public ItemBlockSkystone(int par1) { diff --git a/common/biomesoplenty/world/WorldProviderPromised.java b/common/biomesoplenty/world/WorldProviderPromised.java index 026e4abcb..c7ab6dc7f 100644 --- a/common/biomesoplenty/world/WorldProviderPromised.java +++ b/common/biomesoplenty/world/WorldProviderPromised.java @@ -18,7 +18,7 @@ public class WorldProviderPromised extends WorldProvider @Override public void registerWorldChunkManager() { - if (Biomes.promisedLandForest.isPresent() || Biomes.promisedLandPlains.isPresent() || Biomes.promisedLandSwamp.isPresent()) + if (Biomes.promisedLandForest.isPresent() || Biomes.promisedLandPlains.isPresent() || Biomes.promisedLandShrub.isPresent() || Biomes.promisedLandSwamp.isPresent()) { worldChunkMgr = new WorldChunkManagerPromised(worldObj); } diff --git a/common/biomesoplenty/world/layer/BiomeLayerBiomes.java b/common/biomesoplenty/world/layer/BiomeLayerBiomes.java index efac359fd..a8a0980b3 100644 --- a/common/biomesoplenty/world/layer/BiomeLayerBiomes.java +++ b/common/biomesoplenty/world/layer/BiomeLayerBiomes.java @@ -104,6 +104,10 @@ public class BiomeLayerBiomes extends BiomeLayer { promisedBiomes.add(Biomes.promisedLandPlains.get()); } + if (Biomes.promisedLandShrub.isPresent()) + { + promisedBiomes.add(Biomes.promisedLandShrub.get()); + } if (Biomes.promisedLandSwamp.isPresent()) { promisedBiomes.add(Biomes.promisedLandSwamp.get()); diff --git a/common/biomesoplenty/worldgen/WorldGenMossySkystone.java b/common/biomesoplenty/worldgen/WorldGenMossySkystone.java new file mode 100644 index 000000000..ea8c07f09 --- /dev/null +++ b/common/biomesoplenty/worldgen/WorldGenMossySkystone.java @@ -0,0 +1,79 @@ +package biomesoplenty.worldgen; + +import java.util.Random; + +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import biomesoplenty.api.Blocks; + +public class WorldGenMossySkystone extends WorldGenerator +{ + /** The block ID of the ore to be placed using this generator. */ + private int minableBlockId; + + /** The number of blocks to generate. */ + private int numberOfBlocks; + + public WorldGenMossySkystone(int par1, int par2) + { + minableBlockId = par1; + numberOfBlocks = par2; + } + + @Override + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + float var6 = par2Random.nextFloat() * (float)Math.PI; + double var7 = par3 + 8 + MathHelper.sin(var6) * numberOfBlocks / 8.0F; + double var9 = par3 + 8 - MathHelper.sin(var6) * numberOfBlocks / 8.0F; + double var11 = par5 + 8 + MathHelper.cos(var6) * numberOfBlocks / 8.0F; + double var13 = par5 + 8 - MathHelper.cos(var6) * numberOfBlocks / 8.0F; + double var15 = par4 + par2Random.nextInt(3) - 2; + double var17 = par4 + par2Random.nextInt(3) - 2; + + for (int var19 = 0; var19 <= numberOfBlocks; ++var19) + { + double var20 = var7 + (var9 - var7) * var19 / numberOfBlocks; + double var22 = var15 + (var17 - var15) * var19 / numberOfBlocks; + double var24 = var11 + (var13 - var11) * var19 / numberOfBlocks; + double var26 = par2Random.nextDouble() * numberOfBlocks / 16.0D; + double var28 = (MathHelper.sin(var19 * (float)Math.PI / numberOfBlocks) + 1.0F) * var26 + 1.0D; + double var30 = (MathHelper.sin(var19 * (float)Math.PI / numberOfBlocks) + 1.0F) * var26 + 1.0D; + int var32 = MathHelper.floor_double(var20 - var28 / 2.0D); + int var33 = MathHelper.floor_double(var22 - var30 / 2.0D); + int var34 = MathHelper.floor_double(var24 - var28 / 2.0D); + int var35 = MathHelper.floor_double(var20 + var28 / 2.0D); + int var36 = MathHelper.floor_double(var22 + var30 / 2.0D); + int var37 = MathHelper.floor_double(var24 + var28 / 2.0D); + + for (int var38 = var32; var38 <= var35; ++var38) + { + double var39 = (var38 + 0.5D - var20) / (var28 / 2.0D); + + if (var39 * var39 < 1.0D) + { + for (int var41 = var33; var41 <= var36; ++var41) + { + double var42 = (var41 + 0.5D - var22) / (var30 / 2.0D); + + if (var39 * var39 + var42 * var42 < 1.0D) + { + for (int var44 = var34; var44 <= var37; ++var44) + { + double var45 = (var44 + 0.5D - var24) / (var28 / 2.0D); + + if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && par1World.getBlockId(var38, var41, var44) == Blocks.holyStone.get().blockID && par1World.getBlockMetadata(var38, var41, var44) == 0) + { + par1World.setBlock(var38, var41, var44, minableBlockId, 3, 2); + } + } + } + } + } + } + } + + return true; + } +} diff --git a/resources/assets/biomesoplenty/lang/en_US.lang b/resources/assets/biomesoplenty/lang/en_US.lang index bc0a66e68..bb8a762a1 100644 --- a/resources/assets/biomesoplenty/lang/en_US.lang +++ b/resources/assets/biomesoplenty/lang/en_US.lang @@ -49,7 +49,7 @@ tile.bop.flowers.rainbowflower.name=Chromaflora tile.bop.flowers.bromeliad.name=Bromeliad tile.bop.flowers.sunflowerbottom.name=Sunflower tile.bop.flowers.sunflowertop.name=Sunflower -tile.bop.flowers.dandelion.name=White Dandelion +tile.bop.flowers.dandelion.name=Dandelion Puff tile.bop.flowers2.hibiscus.name=Pink Hibiscus tile.bop.flowers2.lilyofthevalley.name=Lily of the Valley @@ -136,6 +136,7 @@ tile.bop.holyGrass.smolderinggrass.name=Smoldering Grass Block tile.bop.holyStone.holystone.name=Skystone tile.bop.holyStone.holycobble.name=Skystone Cobblestone tile.bop.holyStone.holybrick.name=Skystone Bricks +tile.bop.holyStone.holystonemossy.name=Mossy Skystone tile.bop.holyCobbleStairs.name=Skystone Cobblestone Stairs tile.bop.holyBricksStairs.name=Skystone Bricks Stairs diff --git a/resources/assets/biomesoplenty/textures/blocks/amethystore.png b/resources/assets/biomesoplenty/textures/blocks/amethystore.png index fbaa7cfb6..7906493ed 100644 Binary files a/resources/assets/biomesoplenty/textures/blocks/amethystore.png and b/resources/assets/biomesoplenty/textures/blocks/amethystore.png differ diff --git a/resources/assets/biomesoplenty/textures/blocks/enderlotus.png b/resources/assets/biomesoplenty/textures/blocks/enderlotus.png new file mode 100644 index 000000000..6ce42ad9d Binary files /dev/null and b/resources/assets/biomesoplenty/textures/blocks/enderlotus.png differ diff --git a/resources/assets/biomesoplenty/textures/blocks/holymossycobble.png b/resources/assets/biomesoplenty/textures/blocks/holymossycobble.png index d88cf5cc3..3ccf079d2 100644 Binary files a/resources/assets/biomesoplenty/textures/blocks/holymossycobble.png and b/resources/assets/biomesoplenty/textures/blocks/holymossycobble.png differ diff --git a/resources/assets/biomesoplenty/textures/blocks/holystone.png b/resources/assets/biomesoplenty/textures/blocks/holystone.png index caa4b71f9..1d8b7ee7f 100644 Binary files a/resources/assets/biomesoplenty/textures/blocks/holystone.png and b/resources/assets/biomesoplenty/textures/blocks/holystone.png differ diff --git a/resources/assets/biomesoplenty/textures/blocks/holystonemossy.png b/resources/assets/biomesoplenty/textures/blocks/holystonemossy.png new file mode 100644 index 000000000..a52e9a0a5 Binary files /dev/null and b/resources/assets/biomesoplenty/textures/blocks/holystonemossy.png differ