From c25b2984b54b3305ad91246fbdea8c88e63666ab Mon Sep 17 00:00:00 2001 From: Dinnerbone Date: Sat, 15 Jan 2011 00:08:49 +0000 Subject: Added MaterialData from BlockState --- src/main/java/org/bukkit/ItemStack.java | 27 +++++++++++--------------- src/main/java/org/bukkit/block/BlockState.java | 5 +++-- 2 files changed, 14 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/main/java/org/bukkit/ItemStack.java b/src/main/java/org/bukkit/ItemStack.java index 65f4e540..e318cd7a 100644 --- a/src/main/java/org/bukkit/ItemStack.java +++ b/src/main/java/org/bukkit/ItemStack.java @@ -40,14 +40,7 @@ public class ItemStack { this.type = type; this.amount = amount; this.damage = damage; - - Material mat = Material.getMaterial(type); - - if (mat == null) { - this.data = new MaterialData(type, data); - } else { - this.data = mat.getNewData(data); - } + createData(data); } public ItemStack(final Material type, final int amount, final byte damage, final byte data) { @@ -92,14 +85,7 @@ public class ItemStack { */ public void setTypeID(int type) { this.type = type; - - Material mat = Material.getMaterial(type); - - if (mat == null) { - data = new MaterialData(type, (byte)0); - } else { - data = mat.getNewData((byte)0); - } + createData((byte)0); } /** @@ -185,6 +171,15 @@ public class ItemStack { return -1; } + private void createData(final byte data) { + Material mat = Material.getMaterial(type); + if (mat == null) { + this.data = new MaterialData(type, data); + } else { + this.data = mat.getNewData(data); + } + } + @Override public String toString() { return "ItemStack{"+getType().name()+" x "+getAmount()+"}"; diff --git a/src/main/java/org/bukkit/block/BlockState.java b/src/main/java/org/bukkit/block/BlockState.java index cb124fc7..acfc3209 100644 --- a/src/main/java/org/bukkit/block/BlockState.java +++ b/src/main/java/org/bukkit/block/BlockState.java @@ -5,6 +5,7 @@ import org.bukkit.Block; import org.bukkit.Chunk; import org.bukkit.Material; import org.bukkit.World; +import org.bukkit.material.MaterialData; /** * Represents a captured state of a block, which will not change automatically. @@ -27,7 +28,7 @@ public interface BlockState { * * @return block specific metadata */ - byte getData(); + MaterialData getData(); /** * Gets the type of this block @@ -90,7 +91,7 @@ public interface BlockState { * * @param data New block specific metadata */ - void setData(byte data); + void setData(MaterialData data); /** * Sets the type of this block -- cgit v1.2.3