summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorsk89q <the.sk89q@gmail.com>2011-01-23 00:37:36 -0800
committersk89q <the.sk89q@gmail.com>2011-01-23 00:37:36 -0800
commit1f63ea78bb9c41a70758f9dabb85025ba9407450 (patch)
treedbff856bd92901c723f13f7adc9fe5ad3169edb6 /src
parent8dcf6e0b87dea6dc685e694cd723b4b4431ff7ca (diff)
downloadbukkit-1f63ea78bb9c41a70758f9dabb85025ba9407450.tar
bukkit-1f63ea78bb9c41a70758f9dabb85025ba9407450.tar.gz
bukkit-1f63ea78bb9c41a70758f9dabb85025ba9407450.tar.lz
bukkit-1f63ea78bb9c41a70758f9dabb85025ba9407450.tar.xz
bukkit-1f63ea78bb9c41a70758f9dabb85025ba9407450.zip
Added full tile entity data support for all block types that use it, including chests, dispensers, furnaces, mob spawners, and note blocks.
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/bukkit/block/Chest.java9
-rw-r--r--src/main/java/org/bukkit/block/ContainerBlock.java17
-rw-r--r--src/main/java/org/bukkit/block/Dispenser.java9
-rw-r--r--src/main/java/org/bukkit/block/Furnace.java36
-rw-r--r--src/main/java/org/bukkit/block/MobSpawner.java52
-rw-r--r--src/main/java/org/bukkit/block/NoteBlock.java22
-rw-r--r--src/main/java/org/bukkit/entity/MobType.java18
7 files changed, 162 insertions, 1 deletions
diff --git a/src/main/java/org/bukkit/block/Chest.java b/src/main/java/org/bukkit/block/Chest.java
new file mode 100644
index 00000000..8d2af5d9
--- /dev/null
+++ b/src/main/java/org/bukkit/block/Chest.java
@@ -0,0 +1,9 @@
+package org.bukkit.block;
+
+/**
+ * Represents a chest.
+ *
+ * @author sk89q
+ */
+public interface Chest extends BlockState, ContainerBlock {
+}
diff --git a/src/main/java/org/bukkit/block/ContainerBlock.java b/src/main/java/org/bukkit/block/ContainerBlock.java
new file mode 100644
index 00000000..6c271ffa
--- /dev/null
+++ b/src/main/java/org/bukkit/block/ContainerBlock.java
@@ -0,0 +1,17 @@
+package org.bukkit.block;
+
+import org.bukkit.inventory.Inventory;
+
+/**
+ * Indicates a block type that has inventory.
+ *
+ * @author sk89q
+ */
+public interface ContainerBlock {
+ /**
+ * Get the block's inventory.
+ *
+ * @return
+ */
+ public Inventory getInventory();
+}
diff --git a/src/main/java/org/bukkit/block/Dispenser.java b/src/main/java/org/bukkit/block/Dispenser.java
new file mode 100644
index 00000000..64692514
--- /dev/null
+++ b/src/main/java/org/bukkit/block/Dispenser.java
@@ -0,0 +1,9 @@
+package org.bukkit.block;
+
+/**
+ * Represents a dispenser.
+ *
+ * @author sk89q
+ */
+public interface Dispenser extends BlockState, ContainerBlock {
+}
diff --git a/src/main/java/org/bukkit/block/Furnace.java b/src/main/java/org/bukkit/block/Furnace.java
new file mode 100644
index 00000000..6f3e2bea
--- /dev/null
+++ b/src/main/java/org/bukkit/block/Furnace.java
@@ -0,0 +1,36 @@
+package org.bukkit.block;
+
+/**
+ * Represents a furnace.
+ *
+ * @author sk89q
+ */
+public interface Furnace extends BlockState, ContainerBlock {
+ /**
+ * Get burn time.
+ *
+ * @return
+ */
+ public short getBurnTime();
+
+ /**
+ * Set burn time.
+ *
+ * @param burnTime
+ */
+ public void setBurnTime(short burnTime);
+
+ /**
+ * Get cook time.
+ *
+ * @return
+ */
+ public short getCookTime();
+
+ /**
+ * Set cook time.
+ *
+ * @param cookTime
+ */
+ public void setCookTime(short cookTime);
+}
diff --git a/src/main/java/org/bukkit/block/MobSpawner.java b/src/main/java/org/bukkit/block/MobSpawner.java
new file mode 100644
index 00000000..53c2ee6b
--- /dev/null
+++ b/src/main/java/org/bukkit/block/MobSpawner.java
@@ -0,0 +1,52 @@
+package org.bukkit.block;
+
+import org.bukkit.entity.MobType;
+
+/**
+ * Represents a mob spawner.
+ *
+ * @author sk89q
+ */
+public interface MobSpawner extends BlockState {
+ /**
+ * Get the spawner's mob type.
+ *
+ * @return
+ */
+ public MobType getMobType();
+
+ /**
+ * Set the spawner mob type.
+ *
+ * @param mobType
+ */
+ public void setMobType(MobType mobType);
+
+ /**
+ * Get the spawner's mob type.
+ *
+ * @return
+ */
+ public String getMobTypeId();
+
+ /**
+ * Set the spawner mob type.
+ *
+ * @param mobType
+ */
+ public void setMobTypeId(String mobType);
+
+ /**
+ * Get the spawner's delay.
+ *
+ * @return
+ */
+ public int getDelay();
+
+ /**
+ * Set the spawner's delay.
+ *
+ * @param delay
+ */
+ public void setDelay(int delay);
+}
diff --git a/src/main/java/org/bukkit/block/NoteBlock.java b/src/main/java/org/bukkit/block/NoteBlock.java
new file mode 100644
index 00000000..5e318a19
--- /dev/null
+++ b/src/main/java/org/bukkit/block/NoteBlock.java
@@ -0,0 +1,22 @@
+package org.bukkit.block;
+
+/**
+ * Represents a note.
+ *
+ * @author sk89q
+ */
+public interface NoteBlock extends BlockState {
+ /**
+ * Gets the note.
+ *
+ * @return
+ */
+ public byte getNote();
+
+ /**
+ * Set the note.
+ *
+ * @param note
+ */
+ public void setNote(byte note);
+}
diff --git a/src/main/java/org/bukkit/entity/MobType.java b/src/main/java/org/bukkit/entity/MobType.java
index 7f52a7ad..9fc3f933 100644
--- a/src/main/java/org/bukkit/entity/MobType.java
+++ b/src/main/java/org/bukkit/entity/MobType.java
@@ -1,5 +1,9 @@
package org.bukkit.entity;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.Map;
+
public enum MobType {
CHICKEN("Chicken"),
COW("Cow"),
@@ -13,6 +17,15 @@ public enum MobType {
ZOMBIE("Zombie");
private String name;
+
+ private static final Map<String, MobType> mapping
+ = new HashMap<String, MobType>();
+
+ static {
+ for (MobType type : EnumSet.allOf(MobType.class)) {
+ mapping.put(type.name, type);
+ }
+ }
private MobType(String name) {
this.name = name;
@@ -21,5 +34,8 @@ public enum MobType {
public String getName() {
return name;
}
-
+
+ public static MobType fromName(String name) {
+ return mapping.get(name);
+ }
}