Added MaterialData from BlockState

By: Dinnerbone <dinnerbone@dinnerbone.com>
This commit is contained in:
Bukkit/Spigot 2011-01-15 00:08:49 +00:00
parent 5488422237
commit 4d7b10c59d
2 changed files with 14 additions and 18 deletions

View file

@ -40,14 +40,7 @@ public class ItemStack {
this.type = type; this.type = type;
this.amount = amount; this.amount = amount;
this.damage = damage; this.damage = damage;
createData(data);
Material mat = Material.getMaterial(type);
if (mat == null) {
this.data = new MaterialData(type, data);
} else {
this.data = mat.getNewData(data);
}
} }
public ItemStack(final Material type, final int amount, final byte damage, final byte 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) { public void setTypeID(int type) {
this.type = type; this.type = type;
createData((byte)0);
Material mat = Material.getMaterial(type);
if (mat == null) {
data = new MaterialData(type, (byte)0);
} else {
data = mat.getNewData((byte)0);
}
} }
/** /**
@ -185,6 +171,15 @@ public class ItemStack {
return -1; 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 @Override
public String toString() { public String toString() {
return "ItemStack{"+getType().name()+" x "+getAmount()+"}"; return "ItemStack{"+getType().name()+" x "+getAmount()+"}";

View file

@ -5,6 +5,7 @@ import org.bukkit.Block;
import org.bukkit.Chunk; import org.bukkit.Chunk;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.material.MaterialData;
/** /**
* Represents a captured state of a block, which will not change automatically. * Represents a captured state of a block, which will not change automatically.
@ -27,7 +28,7 @@ public interface BlockState {
* *
* @return block specific metadata * @return block specific metadata
*/ */
byte getData(); MaterialData getData();
/** /**
* Gets the type of this block * Gets the type of this block
@ -90,7 +91,7 @@ public interface BlockState {
* *
* @param data New block specific metadata * @param data New block specific metadata
*/ */
void setData(byte data); void setData(MaterialData data);
/** /**
* Sets the type of this block * Sets the type of this block