summaryrefslogtreecommitdiffstats
path: root/src/main/java/org
diff options
context:
space:
mode:
authorsk89q <the.sk89q@gmail.com>2011-01-30 13:53:57 -0800
committersk89q <the.sk89q@gmail.com>2011-01-30 13:54:43 -0800
commit639d3e3f9400b0b5db23a48fedd7442edb180a43 (patch)
tree0f9e81616d4e8b4539213a2ee7e18700cce448e4 /src/main/java/org
parent1bc9c54233275b7bf79d73954aae8e86f876da41 (diff)
downloadcraftbukkit-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.java36
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) {