summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordurron597 <martin.jared@gmail.com>2011-01-02 22:31:39 -0500
committerdurron597 <martin.jared@gmail.com>2011-01-02 22:31:39 -0500
commita712a74c23642873f2e375da3e2a96bedbee7810 (patch)
treefe682a4d5b084c0952c1e85ac192d1374477b89b
parentf4811846124859a732e46b01450b874f4b505f8e (diff)
parent31c5894743d1c0701de7d0d89184467a5a82e6d8 (diff)
downloadcraftbukkit-a712a74c23642873f2e375da3e2a96bedbee7810.tar
craftbukkit-a712a74c23642873f2e375da3e2a96bedbee7810.tar.gz
craftbukkit-a712a74c23642873f2e375da3e2a96bedbee7810.tar.lz
craftbukkit-a712a74c23642873f2e375da3e2a96bedbee7810.tar.xz
craftbukkit-a712a74c23642873f2e375da3e2a96bedbee7810.zip
Merge remote branch 'upstream/master'
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftBlock.java23
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftWorld.java22
2 files changed, 42 insertions, 3 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/CraftBlock.java
index 38422d85..19dce3c7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftBlock.java
@@ -11,6 +11,7 @@ public class CraftBlock implements Block {
private final int z;
protected int type;
protected byte data;
+ protected byte light;
protected CraftBlock(final CraftWorld world, final int x, final int y, final int z, final int type, final byte data) {
this.world = world;
@@ -19,6 +20,19 @@ public class CraftBlock implements Block {
this.z = z;
this.type = type;
this.data = data;
+ this.light = (byte)world.getHandle().i(x, y, z);
+ this.chunk = (CraftChunk)world.getChunkAt(x << 4, z << 4);
+ }
+
+ protected CraftBlock(final CraftWorld world, final int x, final int y,
+ final int z, final int type, final byte data, final byte light) {
+ this.world = world;
+ this.x = x;
+ this.y = y;
+ this.z = z;
+ this.type = type;
+ this.data = data;
+ this.light = light;
this.chunk = (CraftChunk)world.getChunkAt(x << 4, z << 4);
}
@@ -122,6 +136,15 @@ public class CraftBlock implements Block {
public int getTypeID() {
return type;
}
+
+ /**
+ * Gets the light level between 0-15
+ *
+ * @return light level
+ */
+ public byte getLightLevel() {
+ return light;
+ }
/**
* Gets the block at the given face
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 1e072f0f..20fd62ad 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -3,9 +3,11 @@ package org.bukkit.craftbukkit;
import java.util.HashMap;
import java.util.Map;
+import java.util.Random;
+import net.minecraft.server.WorldGenBigTree;
+import net.minecraft.server.WorldGenTrees;
import net.minecraft.server.WorldServer;
import net.minecraft.server.EntityArrow;
-
import org.bukkit.ArrowEntity;
import org.bukkit.Block;
import org.bukkit.Chunk;
@@ -17,6 +19,8 @@ public class CraftWorld implements World {
private final Map<ChunkCoordinate, Chunk> chunkCache = new HashMap<ChunkCoordinate, Chunk>();
private final Map<BlockCoordinate, Block> blockCache = new HashMap<BlockCoordinate, Block>();
private final WorldServer world;
+
+ private static final Random rand = new Random();
public CraftWorld(WorldServer world) {
this.world = world;
@@ -50,8 +54,8 @@ public class CraftWorld implements World {
return getChunkAt(block.getX() << 4, block.getZ() << 4);
}
- public boolean isChunkLoaded() {
- throw new UnsupportedOperationException("Not supported yet.");
+ public boolean isChunkLoaded(Chunk chunk) {
+ return world.A.a(chunk.getX(), chunk.getZ());
}
public Block updateBlock(int x, int y, int z) {
@@ -83,6 +87,18 @@ public class CraftWorld implements World {
arrow.a(velocity.getX(), velocity.getY(), velocity.getZ(), speed, spread);
return new CraftArrowEntity(world.getServer(), arrow);
}
+
+ public boolean generateTree(Location loc) {
+ WorldGenTrees treeGen = new WorldGenTrees();
+ return treeGen.a(world, rand,
+ loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
+ }
+
+ public boolean generateBigTree(Location loc) {
+ WorldGenBigTree treeGen = new WorldGenBigTree();
+ return treeGen.a(world, rand,
+ loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
+ }
@Override
public String toString() {