Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import net.minecraftforge.fml.relauncher.SideOnly;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
- import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
- import net.minecraftforge.fml.common.event.FMLInitializationEvent;
- import net.minecraftforge.common.BiomeManager;
- import net.minecraftforge.common.BiomeDictionary;
- import net.minecraft.world.gen.feature.WorldGenAbstractTree;
- import net.minecraft.world.biome.Biome;
- import net.minecraft.world.World;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.util.ResourceLocation;
- import net.minecraft.item.ItemStack;
- import net.minecraft.init.Blocks;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.block.Block;
- import java.util.Random;
- public class mcreator_cartoonbiome {
- static Biome.BiomeProperties customProps = null;
- public static BiomeGencartoonbiome biome = null;
- static {
- customProps = new Biome.BiomeProperties("cartoonbiome");
- customProps.setRainfall(0.2F);
- customProps.setBaseHeight(0.1F);
- customProps.setHeightVariation(0.3F);
- customProps.setWaterColor(0xc2fff9);
- biome = new BiomeGencartoonbiome(customProps);
- }
- public static Object instance;
- public mcreator_cartoonbiome() {
- }
- public void load(FMLInitializationEvent event) {
- Biome.REGISTRY.register(46, new ResourceLocation("cartoonbiome"), biome);
- BiomeDictionary.addTypes(biome, BiomeDictionary.Type.FOREST);
- BiomeManager.addSpawnBiome(biome);
- BiomeManager.addBiome(BiomeManager.BiomeType.WARM, new BiomeManager.BiomeEntry(biome, 1024));
- }
- 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 BiomeGencartoonbiome extends Biome {
- @SuppressWarnings("unchecked")
- public BiomeGencartoonbiome(Biome.BiomeProperties mycustomProps) {
- super(mycustomProps);
- topBlock = mcreator_cartoongress.block.getDefaultState();
- fillerBlock = mcreator_cartoondirt.block.getDefaultState();
- theBiomeDecorator.generateLakes = true;
- theBiomeDecorator.treesPerChunk = 230;
- theBiomeDecorator.flowersPerChunk = 20;
- theBiomeDecorator.grassPerChunk = 300;
- theBiomeDecorator.deadBushPerChunk = 0;
- theBiomeDecorator.mushroomsPerChunk = 0;
- theBiomeDecorator.reedsPerChunk = 0;
- theBiomeDecorator.cactiPerChunk = 0;
- theBiomeDecorator.sandPerChunk = 0;
- }
- @Override
- public WorldGenAbstractTree genBigTreeChance(Random rand) {
- return new Tree();
- }
- class Tree extends WorldGenAbstractTree {
- /** The minimum height of a generated tree. */
- private final int minTreeHeight;
- /** True if this tree should grow Vines. */
- private final boolean vinesGrow;
- /** The metadata value of the wood to use in tree generation. */
- private final int metaWood;
- /** The metadata value of the leaves to use in tree generation. */
- private final int metaLeaves;
- public Tree() {
- super(false);
- this.minTreeHeight = 3;
- this.metaWood = 0;
- this.metaLeaves = 0;
- this.vinesGrow = true;
- }
- public boolean generate(World par1World, Random par2Random, BlockPos pos) {
- int par3 = pos.getX();
- int par4 = pos.getY();
- int par5 = pos.getZ();
- int var6 = par2Random.nextInt(3) + this.minTreeHeight;
- boolean var7 = true;
- if (par4 >= 1 && par4 + var6 + 1 <= 256) {
- int var8;
- byte var9;
- int var11;
- int var12;
- for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) {
- 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 (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) {
- if (var8 >= 0 && var8 < 256) {
- Block var12s = par1World.getBlockState(new BlockPos(var10, var8, var11)).getBlock();
- var12 = Block.getIdFromBlock(var12s);
- if (var12 != 0 && var12s != mcreator_cartoonvine.block && var12s != mcreator_cartoongress.block
- && var12s != mcreator_cartoondirt.block && var12s != mcreator_cartoonwood.block) {
- var7 = false;
- }
- } else {
- var7 = false;
- }
- }
- }
- }
- if (!var7) {
- return false;
- } else {
- Block var8s = par1World.getBlockState(new BlockPos(par3, par4 - 1, par5)).getBlock();
- var8 = Block.getIdFromBlock(var8s);
- if ((var8s == mcreator_cartoongress.block || var8s == mcreator_cartoondirt.block) && par4 < 256 - var6 - 1) {
- par1World.setBlockState(new BlockPos(par3, par4 - 1, par5), mcreator_cartoondirt.block.getDefaultState(), 3);
- var9 = 3;
- byte var18 = 0;
- int var13;
- int var14;
- int var15;
- for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) {
- var12 = var11 - (par4 + var6);
- var13 = var18 + 1 - var12 / 2;
- for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) {
- 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.setBlockState(new BlockPos(var14, var11, var16),
- mcreator_cartoonleaves.block.getDefaultState(), 3);
- }
- }
- }
- }
- for (var11 = 0; var11 < var6; ++var11) {
- Block var12s = par1World.getBlockState(new BlockPos(par3, par4 + var11, par5)).getBlock();
- var12 = Block.getIdFromBlock(var12s);
- if (var12 == 0 || var12s == mcreator_cartoonleaves.block) {
- par1World.setBlockState(new BlockPos(par3, par4 + var11, par5), mcreator_cartoonwood.block.getDefaultState(), 3);
- if (this.vinesGrow && var11 > 0) {
- if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(new BlockPos(par3 - 1, par4 + var11, par5))) {
- par1World.setBlockState(new BlockPos(par3 - 1, par4 + var11, par5),
- mcreator_cartoonvine.block.getDefaultState(), 3);
- }
- if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(new BlockPos(par3 + 1, par4 + var11, par5))) {
- par1World.setBlockState(new BlockPos(par3 + 1, par4 + var11, par5),
- mcreator_cartoonvine.block.getDefaultState(), 3);
- }
- if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(new BlockPos(par3, par4 + var11, par5 - 1))) {
- par1World.setBlockState(new BlockPos(par3, par4 + var11, par5 - 1),
- mcreator_cartoonvine.block.getDefaultState(), 3);
- }
- if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(new BlockPos(par3, par4 + var11, par5 + 1))) {
- par1World.setBlockState(new BlockPos(par3, par4 + var11, par5 + 1),
- mcreator_cartoonvine.block.getDefaultState(), 3);
- }
- }
- }
- }
- if (this.vinesGrow) {
- for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) {
- var12 = var11 - (par4 + var6);
- var13 = 2 - var12 / 2;
- for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) {
- for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) {
- if (par1World.getBlockState(new BlockPos(var14, var11, var15)).getBlock() == mcreator_cartoonleaves.block) {
- if (par2Random.nextInt(4) == 0
- && Block.getIdFromBlock(par1World.getBlockState(new BlockPos(var14 - 1, var11, var15))
- .getBlock()) == 0) {
- this.growVines(par1World, var14 - 1, var11, var15, 8);
- }
- if (par2Random.nextInt(4) == 0
- && Block.getIdFromBlock(par1World.getBlockState(new BlockPos(var14 + 1, var11, var15))
- .getBlock()) == 0) {
- this.growVines(par1World, var14 + 1, var11, var15, 2);
- }
- if (par2Random.nextInt(4) == 0
- && Block.getIdFromBlock(par1World.getBlockState(new BlockPos(var14, var11, var15 - 1))
- .getBlock()) == 0) {
- this.growVines(par1World, var14, var11, var15 - 1, 1);
- }
- if (par2Random.nextInt(4) == 0
- && Block.getIdFromBlock(par1World.getBlockState(new BlockPos(var14, var11, var15 + 1))
- .getBlock()) == 0) {
- this.growVines(par1World, var14, var11, var15 + 1, 4);
- }
- }
- }
- }
- }
- if (par2Random.nextInt(5) == 0 && var6 > 5) {
- for (var11 = 0; var11 < 2; ++var11) {
- for (var12 = 0; var12 < 4; ++var12) {
- if (par2Random.nextInt(4 - var11) == 0) {
- var13 = par2Random.nextInt(3);
- par1World.setBlockState(new BlockPos(par3, par4 + var6 - 5 + var11, par5),
- Blocks.MELON_BLOCK.getDefaultState(), 3);
- }
- }
- }
- }
- }
- return true;
- } else {
- return false;
- }
- }
- } else {
- return false;
- }
- }
- /**
- * Grows vines downward from the given block for a given length.
- * Args: World, x, starty, z, vine-length
- */
- private void growVines(World par1World, int par2, int par3, int par4, int par5) {
- par1World.setBlockState(new BlockPos(par2, par3, par4), mcreator_cartoonvine.block.getDefaultState(), 3);
- int var6 = 4;
- while (true) {
- --par3;
- if (Block.getIdFromBlock(par1World.getBlockState(new BlockPos(par2, par3, par4)).getBlock()) != 0 || var6 <= 0) {
- return;
- }
- par1World.setBlockState(new BlockPos(par2, par3, par4), mcreator_cartoonvine.block.getDefaultState(), 3);
- --var6;
- }
- }
- protected boolean canGrowInto(Block blockType) {
- return true;
- }
- public void generateSaplings(World worldIn, Random random, BlockPos pos) {
- }
- /**
- * sets dirt at a specific location if it isn't already dirt
- */
- protected void setDirtAt(World worldIn, BlockPos pos) {
- if (worldIn.getBlockState(pos).getBlock() != Blocks.DIRT) {
- this.setBlockAndNotifyAdequately(worldIn, pos, Blocks.DIRT.getDefaultState());
- }
- }
- public boolean isReplaceable(World world, BlockPos pos) {
- net.minecraft.block.state.IBlockState state = world.getBlockState(pos);
- return state.getBlock().isAir(state, world, pos) || state.getBlock().isLeaves(state, world, pos)
- || state.getBlock().isWood(world, pos) || canGrowInto(state.getBlock());
- }
- }
- @SideOnly(Side.CLIENT)
- @Override
- public int getGrassColorAtPos(BlockPos pos) {
- return 0x158400;
- }
- @SideOnly(Side.CLIENT)
- @Override
- public int getFoliageColorAtPos(BlockPos pos) {
- return 0x158400;
- }
- @SideOnly(Side.CLIENT)
- @Override
- public int getSkyColorByTemp(float currentTemperature) {
- return 0x00ffe0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement