104 lines
4.9 KiB
Java
104 lines
4.9 KiB
Java
/*******************************************************************************
|
|
* Copyright 2015-2016, the Biomes O' Plenty Team
|
|
*
|
|
* This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License.
|
|
*
|
|
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
|
******************************************************************************/
|
|
|
|
package biomesoplenty.common.biome.overworld;
|
|
|
|
import java.util.Random;
|
|
|
|
import biomesoplenty.api.block.BOPBlocks;
|
|
import biomesoplenty.api.enums.BOPClimates;
|
|
import biomesoplenty.api.enums.BOPFoliage;
|
|
import biomesoplenty.api.enums.BOPPlants;
|
|
import biomesoplenty.api.enums.BOPTrees;
|
|
import biomesoplenty.api.enums.BOPWoods;
|
|
import biomesoplenty.api.generation.GeneratorStage;
|
|
import biomesoplenty.common.block.BlockBOPCoral;
|
|
import biomesoplenty.common.block.BlockBOPDirt;
|
|
import biomesoplenty.common.block.BlockBOPGrass;
|
|
import biomesoplenty.common.util.biome.GeneratorUtils.ScatterYMethod;
|
|
import biomesoplenty.common.world.generator.GeneratorFlora;
|
|
import biomesoplenty.common.world.generator.GeneratorGrass;
|
|
import biomesoplenty.common.world.generator.GeneratorSplotches;
|
|
import biomesoplenty.common.world.generator.GeneratorWaterside;
|
|
import biomesoplenty.common.world.generator.GeneratorWeighted;
|
|
import biomesoplenty.common.world.generator.tree.GeneratorBigTree;
|
|
import net.minecraft.init.Blocks;
|
|
import net.minecraft.util.math.BlockPos;
|
|
import net.minecraft.world.World;
|
|
import net.minecraft.world.gen.feature.WorldGenFossils;
|
|
|
|
public class BiomeGenDeadSwamp extends BOPOverworldBiome
|
|
{
|
|
|
|
public BiomeGenDeadSwamp()
|
|
{
|
|
super("dead_swamp", new PropsBuilder("Dead Swamp").withGuiColour(0x8BAF48).withTemperature(0.6F).withRainfall(0.9F).withWaterColor(0xA2AD51));
|
|
|
|
// terrain
|
|
this.terrainSettings.avgHeight(63).heightVariation(6, 3);
|
|
|
|
//this.skyColor = 0x627268;
|
|
this.topBlock = BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.LOAMY);
|
|
this.fillerBlock = BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT, BlockBOPDirt.BOPDirtType.LOAMY);
|
|
this.seaFloorBlock = BOPBlocks.mud.getDefaultState();
|
|
|
|
this.canSpawnInBiome = false;
|
|
this.canGenerateRivers = false;
|
|
this.canGenerateVillages = false;
|
|
|
|
this.beachBiomeLocation = null;
|
|
|
|
this.addWeight(BOPClimates.COLD_SWAMP, 3);
|
|
|
|
this.spawnableCreatureList.clear();
|
|
|
|
// mud
|
|
this.addGenerator("mud", GeneratorStage.SAND_PASS2, (new GeneratorWaterside.Builder()).amountPerChunk(8).maxRadius(7).with(BOPBlocks.mud.getDefaultState()).create());
|
|
this.addGenerator("mud_patches", GeneratorStage.SAND_PASS2, (new GeneratorSplotches.Builder()).amountPerChunk(1).splotchSize(12).replace(this.topBlock).with(BOPBlocks.mud.getDefaultState()).scatterYMethod(ScatterYMethod.AT_SURFACE).create());
|
|
|
|
// trees
|
|
GeneratorWeighted treeGenerator = new GeneratorWeighted(0.6F);
|
|
this.addGenerator("trees", GeneratorStage.TREE, treeGenerator);
|
|
treeGenerator.add("dying_tree", 3, (new GeneratorBigTree.Builder()).minHeight(5).maxHeight(12).foliageHeight(1).log(BOPWoods.DEAD).leaves(BOPTrees.DEAD).create());
|
|
treeGenerator.add("dead_tree", 1, (new GeneratorBigTree.Builder()).minHeight(5).maxHeight(12).foliageHeight(0).foliageDensity(0.5D).log(BOPWoods.DEAD).leaves(Blocks.AIR.getDefaultState()).create());
|
|
|
|
// water plants
|
|
this.addGenerator("water_reeds", GeneratorStage.LILYPAD, (new GeneratorFlora.Builder()).amountPerChunk(0.5F).with(BOPPlants.REED).generationAttempts(32).create());
|
|
this.addGenerator("algae", GeneratorStage.LILYPAD, (new GeneratorFlora.Builder()).amountPerChunk(0.5F).replace(Blocks.WATER).with(BOPBlocks.coral.getDefaultState().withProperty(BlockBOPCoral.VARIANT, BlockBOPCoral.CoralType.ALGAE)).generationAttempts(32).scatterYMethod(ScatterYMethod.AT_GROUND).create());
|
|
|
|
// grasses
|
|
GeneratorWeighted grassGenerator = new GeneratorWeighted(1.4F);
|
|
this.addGenerator("grass", GeneratorStage.GRASS, grassGenerator);
|
|
grassGenerator.add("shortgrass", 4, (new GeneratorGrass.Builder()).with(BOPFoliage.SHORTGRASS).create());
|
|
}
|
|
|
|
@Override
|
|
public void decorate(World worldIn, Random rand, BlockPos pos)
|
|
{
|
|
super.decorate(worldIn, rand, pos);
|
|
|
|
if(net.minecraftforge.event.terraingen.TerrainGen.decorate(worldIn, rand, pos, net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.FOSSIL))
|
|
if (rand.nextInt(64) == 0)
|
|
{
|
|
(new WorldGenFossils()).generate(worldIn, rand, pos);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public int getGrassColorAtPos(BlockPos pos)
|
|
{
|
|
return getModdedBiomeGrassColor(0x66704C);
|
|
}
|
|
|
|
@Override
|
|
public int getFoliageColorAtPos(BlockPos pos)
|
|
{
|
|
return getModdedBiomeFoliageColor(0x66704C);
|
|
}
|
|
}
|