diff options
author | sk89q <the.sk89q@gmail.com> | 2011-01-30 13:53:57 -0800 |
---|---|---|
committer | sk89q <the.sk89q@gmail.com> | 2011-01-30 13:54:43 -0800 |
commit | 639d3e3f9400b0b5db23a48fedd7442edb180a43 (patch) | |
tree | 0f9e81616d4e8b4539213a2ee7e18700cce448e4 /src/main/java/org | |
parent | 1bc9c54233275b7bf79d73954aae8e86f876da41 (diff) | |
download | craftbukkit-639d3e3f9400b0b5db23a48fedd7442edb180a43.tar craftbukkit-639d3e3f9400b0b5db23a48fedd7442edb180a43.tar.gz craftbukkit-639d3e3f9400b0b5db23a48fedd7442edb180a43.tar.lz craftbukkit-639d3e3f9400b0b5db23a48fedd7442edb180a43.tar.xz craftbukkit-639d3e3f9400b0b5db23a48fedd7442edb180a43.zip |
Added support for different tree generation types and a callback.
Diffstat (limited to 'src/main/java/org')
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/CraftWorld.java | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 30e91359..a9c394f6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -18,7 +18,9 @@ import org.bukkit.Chunk; import org.bukkit.entity.ItemDrop; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; +import org.bukkit.BlockChangeDelegate; import org.bukkit.Location; +import org.bukkit.TreeType; import org.bukkit.World; public class CraftWorld implements World { @@ -194,14 +196,34 @@ public class CraftWorld implements World { return (Boat) boat.getBukkitEntity(); } - public boolean generateTree(Location loc) { - WorldGenTrees treeGen = new WorldGenTrees(); - return treeGen.a(world, rand, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); + public boolean generateTree(Location loc, TreeType type) { + return generateTree(loc, type, world); } - - public boolean generateBigTree(Location loc) { - WorldGenBigTree treeGen = new WorldGenBigTree(); - return treeGen.a(world, rand, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); + + public boolean generateTree(Location loc, TreeType type, BlockChangeDelegate delegate) { + switch (type) { + case BIG_TREE: + return (new WorldGenBigTree()) + .generate(delegate, rand, + loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); + case BIRCH: + return (new WorldGenForest()) + .generate(delegate, rand, + loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); + case REDWOOD: + return (new WorldGenTaiga2()) + .generate(delegate, rand, + loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); + case TALL_REDWOOD: + return (new WorldGenTaiga1()) + .generate(delegate, rand, + loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); + case TREE: + default: + return (new WorldGenTrees()) + .generate(delegate, rand, + loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); + } } public TileEntity getTileEntityAt(final int x, final int y, final int z) { |