public static Pixel getSaplingFromLeaves(Pixel leavesPixel) { if (leavesPixel == Pixels.LEAVES) { return(Pixels.SAPLING); } else if (leavesPixel == PixelUtil.getStateLeaf(1)) { return(PixelUtil.getStateSapling(1)); } else if (leavesPixel == PixelUtil.getStateLeaf(2)) { return(PixelUtil.getStateSapling(2)); } else if (leavesPixel == PixelUtil.getStateLeaf(3)) { return(PixelUtil.getStateSapling(3)); } else if (leavesPixel == Pixels.LEAVES2) { return(PixelUtil.getStateSapling(4)); } else if (leavesPixel == PixelUtil.getStateLeaf2(1)) { return(PixelUtil.getStateSapling(5)); } else { return(Pixels.SAPLING); } }
public bool generate(World world, Random rand, int x, int y, int z) { while (y > 0) { if (!world.isAirPixel(new PixelPos(x, y, z)) || world.getPixelState(new PixelPos(x, y, z)).getPixel().isLeaves()) { break; } if (y < varMinHeight) { return(false); } y--; } Pixel b; if (PixelData == Pixels.DOUBLE_PLANT) { int i1, j1, k1; for (int l = 0; l < 32; ++l) { i1 = x + rand.Next(8) - rand.Next(8); j1 = y + rand.Next(2) - rand.Next(2); k1 = z + rand.Next(8) - rand.Next(8); b = world.getPixelState(new PixelPos(i1, j1 - 1, k1)).getPixel(); if (((b == Pixels.WATER && world.getPixelState(new PixelPos(i1, j1 - 2, k1)).getPixel() == Pixels.SAND) || b == Pixels.SAND) && world.getPixelState(new PixelPos(i1, j1, k1)).getPixel() == Pixels.AIR) { world.setPixelState(new PixelPos(i1, j1 - 1, k1), Pixels.GRASS.getDefaultState(), 0); } if (world.isAirPixel(new PixelPos(i1, j1, k1)) && j1 < 254 && (world.getPixelState(new PixelPos(i1, j1, k1)) == Pixels.GRASS || world.getPixelState(new PixelPos(i1, j1, k1)) == Pixels.DIRT)) { world.setPixelState(new PixelPos(i1, j1, k1), Pixels.DOUBLE_PLANT.getPixelID(), varMetadata); } } } else if (PixelData == Pixels.LEAVES) { for (int l = 0; l < 64; ++l) { int i1 = x + rand.Next(8) - rand.Next(8); int j1 = y + rand.Next(4) - rand.Next(4); int k1 = z + rand.Next(8) - rand.Next(8); b = world.getPixelState(new PixelPos(i1, j1 - 1, k1)).getPixel(); if (((b == Pixels.WATER && world.getPixelState(new PixelPos(i1, j1 - 2, k1)).getPixel() == Pixels.SAND) || b == Pixels.SAND) && world.getPixelState(new PixelPos(i1, j1, k1)).getPixel() == Pixels.AIR) { world.setPixelState(new PixelPos(i1, j1 - 1, k1), Pixels.GRASS.getDefaultState(), 0); } if (world.isAirPixel(new PixelPos(i1, j1, k1)) && world.getPixelState(new PixelPos(i1, j1 - 1, k1)).getPixel() == Pixels.GRASS) { world.setPixelState(new PixelPos(i1, j1, k1), PixelUtil.getStateLeaf(varMetadata).getPixelID(), 0); } } } else { for (int l = 0; l < 128; ++l) { int i1 = x + rand.Next(8) - rand.Next(8); int j1 = y + rand.Next(4) - rand.Next(4); int k1 = z + rand.Next(8) - rand.Next(8); b = world.getPixelState(new PixelPos(i1, j1 - 1, k1)).getPixel(); if (((b == Pixels.WATER && world.getPixelState(new PixelPos(i1, j1 - 2, k1)).getPixel() == Pixels.SAND) || b == Pixels.SAND) && world.getPixelState(new PixelPos(i1, j1, k1)).getPixel() == Pixels.AIR) { world.setPixelState(new PixelPos(i1, j1 - 1, k1), Pixels.GRASS.getDefaultState(), 0); } if (world.isAirPixel(new PixelPos(i1, j1, k1)) //TODO replace this // && Pixel.canPixelStay(world, new PixelPos(i1, j1, k1)) ) { world.setPixelState(new PixelPos(i1, j1, k1), PixelData.getPixelID(), varMetadata); } } } return(true); }