diff options
author | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-02-08 14:22:52 +0000 |
---|---|---|
committer | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-02-08 14:22:52 +0000 |
commit | 6b9b59db4e5b4e6012d66f13bcb951264c8260d0 (patch) | |
tree | 71fba580f7b74ad0a46ab59a02a602ff027423d9 /src/main/java/net | |
parent | a9a0ad62787397c62bce84c1bcc706d753ba3e7b (diff) | |
download | craftbukkit-6b9b59db4e5b4e6012d66f13bcb951264c8260d0.tar craftbukkit-6b9b59db4e5b4e6012d66f13bcb951264c8260d0.tar.gz craftbukkit-6b9b59db4e5b4e6012d66f13bcb951264c8260d0.tar.lz craftbukkit-6b9b59db4e5b4e6012d66f13bcb951264c8260d0.tar.xz craftbukkit-6b9b59db4e5b4e6012d66f13bcb951264c8260d0.zip |
Added getContents() to TileEntityDispenser to be compatible with
InventoryChanged TileEntityDispenser to be built against latest mc-dev
Merge branch 'merge-fork' of https://github.com/Hidendra/CraftBukkit
Diffstat (limited to 'src/main/java/net')
-rw-r--r-- | src/main/java/net/minecraft/server/TileEntityDispenser.java | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/TileEntityDispenser.java b/src/main/java/net/minecraft/server/TileEntityDispenser.java new file mode 100644 index 00000000..7c968fc8 --- /dev/null +++ b/src/main/java/net/minecraft/server/TileEntityDispenser.java @@ -0,0 +1,120 @@ +package net.minecraft.server;
+
+import java.util.Random;
+
+public class TileEntityDispenser extends TileEntity implements IInventory {
+
+ private ItemStack[] e = new ItemStack[9];
+ private Random f = new Random();
+
+ // CraftBukkit start
+ public ItemStack[] getContents() {
+ return e;
+ }
+ // CraftBukkit end
+
+ public TileEntityDispenser() {}
+
+ public int h_() {
+ return 9;
+ }
+
+ public ItemStack a(int i) {
+ return this.e[i];
+ }
+
+ public ItemStack b(int i, int j) {
+ if (this.e[i] != null) {
+ ItemStack itemstack;
+
+ if (this.e[i].count <= j) {
+ itemstack = this.e[i];
+ this.e[i] = null;
+ this.d();
+ return itemstack;
+ } else {
+ itemstack = this.e[i].a(j);
+ if (this.e[i].count == 0) {
+ this.e[i] = null;
+ }
+
+ this.d();
+ return itemstack;
+ }
+ } else {
+ return null;
+ }
+ }
+
+ public ItemStack e() {
+ int i = -1;
+ int j = 1;
+
+ for (int k = 0; k < this.e.length; ++k) {
+ if (this.e[k] != null && this.f.nextInt(j) == 0) {
+ i = k;
+ ++j;
+ }
+ }
+
+ if (i >= 0) {
+ return this.b(i, 1);
+ } else {
+ return null;
+ }
+ }
+
+ public void a(int i, ItemStack itemstack) {
+ this.e[i] = itemstack;
+ if (itemstack != null && itemstack.count > this.c()) {
+ itemstack.count = this.c();
+ }
+
+ this.d();
+ }
+
+ public String b() {
+ return "Trap";
+ }
+
+ public void a(NBTTagCompound nbttagcompound) {
+ super.a(nbttagcompound);
+ NBTTagList nbttaglist = nbttagcompound.k("Items");
+
+ this.e = new ItemStack[this.h_()];
+
+ for (int i = 0; i < nbttaglist.b(); ++i) {
+ NBTTagCompound nbttagcompound1 = (NBTTagCompound) nbttaglist.a(i);
+ int j = nbttagcompound1.b("Slot") & 255;
+
+ if (j >= 0 && j < this.e.length) {
+ this.e[j] = new ItemStack(nbttagcompound1);
+ }
+ }
+ }
+
+ public void b(NBTTagCompound nbttagcompound) {
+ super.b(nbttagcompound);
+ NBTTagList nbttaglist = new NBTTagList();
+
+ for (int i = 0; i < this.e.length; ++i) {
+ if (this.e[i] != null) {
+ NBTTagCompound nbttagcompound1 = new NBTTagCompound();
+
+ nbttagcompound1.a("Slot", (byte) i);
+ this.e[i].a(nbttagcompound1);
+ nbttaglist.a((NBTBase) nbttagcompound1);
+ }
+ }
+
+ nbttagcompound.a("Items", (NBTBase) nbttaglist);
+ }
+
+ public int c() {
+ return 64;
+ }
+
+ public boolean a_(EntityHuman entityhuman) {
+ return this.a.getTileEntity(this.b, this.c, this.d) != this ? false : entityhuman.d((double) this.b + 0.5D, (double) this.c + 0.5D, (double) this.d + 0.5D) <= 64.0D;
+ }
+}
\ No newline at end of file |