Update to Minecraft Server 1.2
Dieser Commit ist enthalten in:
Ursprung
e6e50ddf9b
Commit
2761b59845
2
pom.xml
2
pom.xml
@ -23,7 +23,7 @@
|
||||
<dependency>
|
||||
<groupId>org.bukkit</groupId>
|
||||
<artifactId>minecraft-server</artifactId>
|
||||
<version>1.1_02</version>
|
||||
<version>1.2</version>
|
||||
<type>jar</type>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
@ -60,18 +60,18 @@ public class BlockButton extends Block {
|
||||
if (l == 5 && world.d(i - 1, j, k)) {
|
||||
i1 = 1;
|
||||
}
|
||||
world.b(i, j, k, i1 + j1);
|
||||
world.c(i, j, k, i1 + j1);
|
||||
}
|
||||
|
||||
public void e(World world, int i, int j, int k) {
|
||||
if (world.d(i - 1, j, k)) {
|
||||
world.b(i, j, k, 1);
|
||||
world.c(i, j, k, 1);
|
||||
} else if (world.d(i + 1, j, k)) {
|
||||
world.b(i, j, k, 2);
|
||||
world.c(i, j, k, 2);
|
||||
} else if (world.d(i, j, k - 1)) {
|
||||
world.b(i, j, k, 3);
|
||||
world.c(i, j, k, 3);
|
||||
} else if (world.d(i, j, k + 1)) {
|
||||
world.b(i, j, k, 4);
|
||||
world.c(i, j, k, 4);
|
||||
}
|
||||
g(world, i, j, k);
|
||||
}
|
||||
@ -95,7 +95,7 @@ public class BlockButton extends Block {
|
||||
}
|
||||
if (flag) {
|
||||
a_(world, i, j, k, world.b(i, j, k));
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -103,7 +103,7 @@ public class BlockButton extends Block {
|
||||
private boolean g(World world, int i, int j, int k) {
|
||||
if (!a(world, i, j, k)) {
|
||||
a_(world, i, j, k, world.b(i, j, k));
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
@ -168,22 +168,22 @@ public class BlockButton extends Block {
|
||||
BlockRedstoneEvent bre = new BlockRedstoneEvent(block, BlockFace.Self, old, current);
|
||||
((WorldServer) world).getServer().getPluginManager().callEvent(bre);
|
||||
if ((bre.getNewCurrent() > 0) == (k == 8)) {
|
||||
world.b(i, j, k, i1 + j1);
|
||||
world.c(i, j, k, i1 + j1);
|
||||
world.b(i, j, k, i, j, k);
|
||||
world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.click", 0.3F, 0.6F);
|
||||
world.g(i, j, k, bh);
|
||||
world.h(i, j, k, bi);
|
||||
if (i1 == 1) {
|
||||
world.g(i - 1, j, k, bh);
|
||||
world.h(i - 1, j, k, bi);
|
||||
} else if (i1 == 2) {
|
||||
world.g(i + 1, j, k, bh);
|
||||
world.h(i + 1, j, k, bi);
|
||||
} else if (i1 == 3) {
|
||||
world.g(i, j, k - 1, bh);
|
||||
world.h(i, j, k - 1, bi);
|
||||
} else if (i1 == 4) {
|
||||
world.g(i, j, k + 1, bh);
|
||||
world.h(i, j, k + 1, bi);
|
||||
} else {
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.h(i, j - 1, k, bi);
|
||||
}
|
||||
world.h(i, j, k, bh);
|
||||
world.i(i, j, k, bi);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -192,19 +192,19 @@ public class BlockButton extends Block {
|
||||
int l = world.b(i, j, k);
|
||||
|
||||
if ((l & 8) > 0) {
|
||||
world.g(i, j, k, bh);
|
||||
world.h(i, j, k, bi);
|
||||
int i1 = l & 7;
|
||||
|
||||
if (i1 == 1) {
|
||||
world.g(i - 1, j, k, bh);
|
||||
world.h(i - 1, j, k, bi);
|
||||
} else if (i1 == 2) {
|
||||
world.g(i + 1, j, k, bh);
|
||||
world.h(i + 1, j, k, bi);
|
||||
} else if (i1 == 3) {
|
||||
world.g(i, j, k - 1, bh);
|
||||
world.h(i, j, k - 1, bi);
|
||||
} else if (i1 == 4) {
|
||||
world.g(i, j, k + 1, bh);
|
||||
world.h(i, j, k + 1, bi);
|
||||
} else {
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.h(i, j - 1, k, bi);
|
||||
}
|
||||
}
|
||||
super.b(world, i, j, k);
|
||||
@ -250,20 +250,20 @@ public class BlockButton extends Block {
|
||||
if ((l & 8) == 0) {
|
||||
return;
|
||||
}
|
||||
world.b(i, j, k, l & 7);
|
||||
world.g(i, j, k, bh);
|
||||
world.c(i, j, k, l & 7);
|
||||
world.h(i, j, k, bi);
|
||||
int i1 = l & 7;
|
||||
|
||||
if (i1 == 1) {
|
||||
world.g(i - 1, j, k, bh);
|
||||
world.h(i - 1, j, k, bi);
|
||||
} else if (i1 == 2) {
|
||||
world.g(i + 1, j, k, bh);
|
||||
world.h(i + 1, j, k, bi);
|
||||
} else if (i1 == 3) {
|
||||
world.g(i, j, k - 1, bh);
|
||||
world.h(i, j, k - 1, bi);
|
||||
} else if (i1 == 4) {
|
||||
world.g(i, j, k + 1, bh);
|
||||
world.h(i, j, k + 1, bi);
|
||||
} else {
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.h(i, j - 1, k, bi);
|
||||
}
|
||||
world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.click", 0.3F, 0.5F);
|
||||
world.b(i, j, k, i, j, k);
|
||||
|
@ -23,17 +23,17 @@ public class BlockCactus extends Block {
|
||||
if (world.e(i, j + 1, k)) {
|
||||
int l;
|
||||
|
||||
for (l = 1; world.a(i, j - l, k) == bh; l++) {
|
||||
for (l = 1; world.a(i, j - l, k) == bi; l++) {
|
||||
;
|
||||
}
|
||||
if (l < 3) {
|
||||
int i1 = world.b(i, j, k);
|
||||
|
||||
if (i1 == 15) {
|
||||
world.d(i, j + 1, k, bh);
|
||||
world.b(i, j, k, 0);
|
||||
world.e(i, j + 1, k, bi);
|
||||
world.c(i, j, k, 0);
|
||||
} else {
|
||||
world.b(i, j, k, i1 + 1);
|
||||
world.c(i, j, k, i1 + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -47,12 +47,12 @@ public class BlockCactus extends Block {
|
||||
|
||||
public int a(int i) {
|
||||
if (i == 1) {
|
||||
return bg - 1;
|
||||
return bh - 1;
|
||||
}
|
||||
if (i == 0) {
|
||||
return bg + 1;
|
||||
return bh + 1;
|
||||
} else {
|
||||
return bg;
|
||||
return bh;
|
||||
}
|
||||
}
|
||||
|
||||
@ -71,7 +71,7 @@ public class BlockCactus extends Block {
|
||||
public void b(World world, int i, int j, int k, int l) {
|
||||
if (!f(world, i, j, k)) {
|
||||
a_(world, i, j, k, world.b(i, j, k));
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -90,7 +90,7 @@ public class BlockCactus extends Block {
|
||||
} else {
|
||||
int l = world.a(i, j - 1, k);
|
||||
|
||||
return l == Block.aV.bh || l == Block.E.bh;
|
||||
return l == Block.aV.bi || l == Block.E.bi;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16,36 +16,36 @@ public class BlockChest extends BlockContainer {
|
||||
protected BlockChest(int i) {
|
||||
super(i, Material.c);
|
||||
a = new Random();
|
||||
bg = 26;
|
||||
bh = 26;
|
||||
}
|
||||
|
||||
public int a(int i) {
|
||||
if (i == 1) {
|
||||
return bg - 1;
|
||||
return bh - 1;
|
||||
}
|
||||
if (i == 0) {
|
||||
return bg - 1;
|
||||
return bh - 1;
|
||||
}
|
||||
if (i == 3) {
|
||||
return bg + 1;
|
||||
return bh + 1;
|
||||
} else {
|
||||
return bg;
|
||||
return bh;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean a(World world, int i, int j, int k) {
|
||||
int l = 0;
|
||||
|
||||
if (world.a(i - 1, j, k) == bh) {
|
||||
if (world.a(i - 1, j, k) == bi) {
|
||||
l++;
|
||||
}
|
||||
if (world.a(i + 1, j, k) == bh) {
|
||||
if (world.a(i + 1, j, k) == bi) {
|
||||
l++;
|
||||
}
|
||||
if (world.a(i, j, k - 1) == bh) {
|
||||
if (world.a(i, j, k - 1) == bi) {
|
||||
l++;
|
||||
}
|
||||
if (world.a(i, j, k + 1) == bh) {
|
||||
if (world.a(i, j, k + 1) == bi) {
|
||||
l++;
|
||||
}
|
||||
if (l > 1) {
|
||||
@ -64,26 +64,26 @@ public class BlockChest extends BlockContainer {
|
||||
}
|
||||
|
||||
private boolean g(World world, int i, int j, int k) {
|
||||
if (world.a(i, j, k) != bh) {
|
||||
if (world.a(i, j, k) != bi) {
|
||||
return false;
|
||||
}
|
||||
if (world.a(i - 1, j, k) == bh) {
|
||||
if (world.a(i - 1, j, k) == bi) {
|
||||
return true;
|
||||
}
|
||||
if (world.a(i + 1, j, k) == bh) {
|
||||
if (world.a(i + 1, j, k) == bi) {
|
||||
return true;
|
||||
}
|
||||
if (world.a(i, j, k - 1) == bh) {
|
||||
if (world.a(i, j, k - 1) == bi) {
|
||||
return true;
|
||||
}
|
||||
return world.a(i, j, k + 1) == bh;
|
||||
return world.a(i, j, k + 1) == bi;
|
||||
}
|
||||
|
||||
public void b(World world, int i, int j, int k) {
|
||||
TileEntityChest tileentitychest = (TileEntityChest) world.l(i, j, k);
|
||||
TileEntityChest tileentitychest = (TileEntityChest) world.m(i, j, k);
|
||||
|
||||
label0:
|
||||
for (int l = 0; l < ((IInventory) (tileentitychest)).a(); l++) {
|
||||
for (int l = 0; l < ((IInventory) (tileentitychest)).h_(); l++) {
|
||||
ItemStack itemstack = ((IInventory) (tileentitychest)).a(l);
|
||||
|
||||
if (itemstack == null) {
|
||||
@ -103,7 +103,7 @@ public class BlockChest extends BlockContainer {
|
||||
i1 = itemstack.a;
|
||||
}
|
||||
itemstack.a -= i1;
|
||||
EntityItem entityitem = new EntityItem(world, (float) i + f, (float) j + f1, (float) k + f2, new ItemStack(itemstack.c, i1, itemstack.d));
|
||||
EntityItem entityitem = new EntityItem(world, (float) i + f, (float) j + f1, (float) k + f2, new ItemStack(itemstack.c, i1, itemstack.h()));
|
||||
float f3 = 0.05F;
|
||||
|
||||
entityitem.s = (float) a.nextGaussian() * f3;
|
||||
@ -117,34 +117,34 @@ public class BlockChest extends BlockContainer {
|
||||
}
|
||||
|
||||
public boolean a(World world, int i, int j, int k, EntityPlayer entityplayer) {
|
||||
Object obj = (((TileEntityChest) world.l(i, j, k)));
|
||||
Object obj = (((TileEntityChest) world.m(i, j, k)));
|
||||
|
||||
if (world.d(i, j + 1, k)) {
|
||||
return true;
|
||||
}
|
||||
if (world.a(i - 1, j, k) == bh && world.d(i - 1, j + 1, k)) {
|
||||
if (world.a(i - 1, j, k) == bi && world.d(i - 1, j + 1, k)) {
|
||||
return true;
|
||||
}
|
||||
if (world.a(i + 1, j, k) == bh && world.d(i + 1, j + 1, k)) {
|
||||
if (world.a(i + 1, j, k) == bi && world.d(i + 1, j + 1, k)) {
|
||||
return true;
|
||||
}
|
||||
if (world.a(i, j, k - 1) == bh && world.d(i, j + 1, k - 1)) {
|
||||
if (world.a(i, j, k - 1) == bi && world.d(i, j + 1, k - 1)) {
|
||||
return true;
|
||||
}
|
||||
if (world.a(i, j, k + 1) == bh && world.d(i, j + 1, k + 1)) {
|
||||
if (world.a(i, j, k + 1) == bi && world.d(i, j + 1, k + 1)) {
|
||||
return true;
|
||||
}
|
||||
if (world.a(i - 1, j, k) == bh) {
|
||||
obj = ((new InventoryLargeChest("Large chest", ((IInventory) ((TileEntityChest) world.l(i - 1, j, k))), ((IInventory) (obj)))));
|
||||
if (world.a(i - 1, j, k) == bi) {
|
||||
obj = ((new InventoryLargeChest("Large chest", ((IInventory) ((TileEntityChest) world.m(i - 1, j, k))), ((IInventory) (obj)))));
|
||||
}
|
||||
if (world.a(i + 1, j, k) == bh) {
|
||||
obj = ((new InventoryLargeChest("Large chest", ((IInventory) (obj)), ((IInventory) ((TileEntityChest) world.l(i + 1, j, k))))));
|
||||
if (world.a(i + 1, j, k) == bi) {
|
||||
obj = ((new InventoryLargeChest("Large chest", ((IInventory) (obj)), ((IInventory) ((TileEntityChest) world.m(i + 1, j, k))))));
|
||||
}
|
||||
if (world.a(i, j, k - 1) == bh) {
|
||||
obj = ((new InventoryLargeChest("Large chest", ((IInventory) ((TileEntityChest) world.l(i, j, k - 1))), ((IInventory) (obj)))));
|
||||
if (world.a(i, j, k - 1) == bi) {
|
||||
obj = ((new InventoryLargeChest("Large chest", ((IInventory) ((TileEntityChest) world.m(i, j, k - 1))), ((IInventory) (obj)))));
|
||||
}
|
||||
if (world.a(i, j, k + 1) == bh) {
|
||||
obj = ((new InventoryLargeChest("Large chest", ((IInventory) (obj)), ((IInventory) ((TileEntityChest) world.l(i, j, k + 1))))));
|
||||
if (world.a(i, j, k + 1) == bi) {
|
||||
obj = ((new InventoryLargeChest("Large chest", ((IInventory) (obj)), ((IInventory) ((TileEntityChest) world.m(i, j, k + 1))))));
|
||||
}
|
||||
if (world.z) {
|
||||
return true;
|
||||
|
@ -13,9 +13,9 @@ public class BlockDoor extends Block {
|
||||
|
||||
protected BlockDoor(int i, Material material) {
|
||||
super(i, material);
|
||||
bg = 97;
|
||||
bh = 97;
|
||||
if (material == Material.e) {
|
||||
bg++;
|
||||
bh++;
|
||||
}
|
||||
float f = 0.5F;
|
||||
float f1 = 1.0F;
|
||||
@ -33,10 +33,10 @@ public class BlockDoor extends Block {
|
||||
}
|
||||
|
||||
public void a(IBlockAccess iblockaccess, int i, int j, int k) {
|
||||
b(d(iblockaccess.b(i, j, k)));
|
||||
c(d(iblockaccess.b(i, j, k)));
|
||||
}
|
||||
|
||||
public void b(int i) {
|
||||
public void c(int i) {
|
||||
float f = 0.1875F;
|
||||
|
||||
a(0.0F, 0.0F, 0.0F, 1.0F, 2.0F, 1.0F);
|
||||
@ -59,13 +59,13 @@ public class BlockDoor extends Block {
|
||||
}
|
||||
|
||||
public boolean a(World world, int i, int j, int k, EntityPlayer entityplayer) {
|
||||
if (bs == Material.e) {
|
||||
if (bt == Material.e) {
|
||||
return true;
|
||||
}
|
||||
int l = world.b(i, j, k);
|
||||
|
||||
if ((l & 8) != 0) {
|
||||
if (world.a(i, j - 1, k) == bh) {
|
||||
if (world.a(i, j - 1, k) == bi) {
|
||||
a(world, i, j - 1, k, entityplayer);
|
||||
}
|
||||
return true;
|
||||
@ -87,10 +87,10 @@ public class BlockDoor extends Block {
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
if (world.a(i, j + 1, k) == bh) {
|
||||
world.b(i, j + 1, k, (l ^ 4) + 8);
|
||||
if (world.a(i, j + 1, k) == bi) {
|
||||
world.c(i, j + 1, k, (l ^ 4) + 8);
|
||||
}
|
||||
world.b(i, j, k, l ^ 4);
|
||||
world.c(i, j, k, l ^ 4);
|
||||
world.b(i, j - 1, k, i, j, k);
|
||||
if (Math.random() < 0.5D) {
|
||||
world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_open", 1.0F, world.l.nextFloat() * 0.1F + 0.9F);
|
||||
@ -104,7 +104,7 @@ public class BlockDoor extends Block {
|
||||
int l = world.b(i, j, k);
|
||||
|
||||
if ((l & 8) != 0) {
|
||||
if (world.a(i, j - 1, k) == bh) {
|
||||
if (world.a(i, j - 1, k) == bi) {
|
||||
a(world, i, j - 1, k, flag);
|
||||
}
|
||||
return;
|
||||
@ -114,10 +114,10 @@ public class BlockDoor extends Block {
|
||||
if (flag1 == flag) {
|
||||
return;
|
||||
}
|
||||
if (world.a(i, j + 1, k) == bh) {
|
||||
world.b(i, j + 1, k, (l ^ 4) + 8);
|
||||
if (world.a(i, j + 1, k) == bi) {
|
||||
world.c(i, j + 1, k, (l ^ 4) + 8);
|
||||
}
|
||||
world.b(i, j, k, l ^ 4);
|
||||
world.c(i, j, k, l ^ 4);
|
||||
world.b(i, j - 1, k, i, j, k);
|
||||
if (Math.random() < 0.5D) {
|
||||
world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_open", 1.0F, world.l.nextFloat() * 0.1F + 0.9F);
|
||||
@ -130,8 +130,8 @@ public class BlockDoor extends Block {
|
||||
int i1 = world.b(i, j, k);
|
||||
|
||||
if ((i1 & 8) != 0) {
|
||||
if (world.a(i, j - 1, k) != bh) {
|
||||
world.d(i, j, k, 0);
|
||||
if (world.a(i, j - 1, k) != bi) {
|
||||
world.e(i, j, k, 0);
|
||||
}
|
||||
if (l > 0 && Block.m[l].c()) {
|
||||
b(world, i, j - 1, k, l);
|
||||
@ -139,21 +139,21 @@ public class BlockDoor extends Block {
|
||||
} else {
|
||||
boolean flag = false;
|
||||
|
||||
if (world.a(i, j + 1, k) != bh) {
|
||||
world.d(i, j, k, 0);
|
||||
if (world.a(i, j + 1, k) != bi) {
|
||||
world.e(i, j, k, 0);
|
||||
flag = true;
|
||||
}
|
||||
if (!world.d(i, j - 1, k)) {
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
flag = true;
|
||||
if (world.a(i, j + 1, k) == bh) {
|
||||
world.d(i, j + 1, k, 0);
|
||||
if (world.a(i, j + 1, k) == bi) {
|
||||
world.e(i, j + 1, k, 0);
|
||||
}
|
||||
}
|
||||
if (flag) {
|
||||
a_(world, i, j, k, i1);
|
||||
} else if (l > 0 && Block.m[l].c()) {
|
||||
boolean flag1 = world.o(i, j, k) || world.o(i, j + 1, k);
|
||||
boolean flag1 = world.p(i, j, k) || world.p(i, j + 1, k);
|
||||
|
||||
a(world, i, j, k, flag1);
|
||||
}
|
||||
@ -164,10 +164,10 @@ public class BlockDoor extends Block {
|
||||
if ((i & 8) != 0) {
|
||||
return 0;
|
||||
}
|
||||
if (bs == Material.e) {
|
||||
return Item.az.aW;
|
||||
if (bt == Material.e) {
|
||||
return Item.az.ba;
|
||||
} else {
|
||||
return Item.at.aW;
|
||||
return Item.at.ba;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -15,12 +15,12 @@ public class BlockFire extends Block {
|
||||
super(i, j, Material.l);
|
||||
a = new int[256];
|
||||
b = new int[256];
|
||||
a(Block.x.bh, 5, 20);
|
||||
a(Block.J.bh, 5, 5);
|
||||
a(Block.K.bh, 30, 60);
|
||||
a(Block.an.bh, 30, 20);
|
||||
a(Block.am.bh, 15, 100);
|
||||
a(Block.ab.bh, 30, 60);
|
||||
a(Block.x.bi, 5, 20);
|
||||
a(Block.J.bi, 5, 5);
|
||||
a(Block.K.bi, 30, 60);
|
||||
a(Block.an.bi, 30, 20);
|
||||
a(Block.am.bi, 15, 100);
|
||||
a(Block.ab.bi, 30, 60);
|
||||
a(true);
|
||||
}
|
||||
|
||||
@ -45,27 +45,25 @@ public class BlockFire extends Block {
|
||||
return 10;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void a(World world, int i, int j, int k, Random random) {
|
||||
boolean flag = world.a(i, j - 1, k) == Block.bb.bh;
|
||||
int ll = world.b(i, j, k);
|
||||
boolean flag = world.a(i, j - 1, k) == Block.bb.bi;
|
||||
int l = world.b(i, j, k);
|
||||
|
||||
if (ll < 15) {
|
||||
world.b(i, j, k, ll + 1);
|
||||
world.h(i, j, k, bh);
|
||||
if (l < 15) {
|
||||
world.c(i, j, k, l + 1);
|
||||
world.i(i, j, k, bi);
|
||||
}
|
||||
if (!flag && !g(world, i, j, k)) {
|
||||
if (!world.d(i, j - 1, k) || ll > 3) {
|
||||
world.d(i, j, k, 0);
|
||||
if (!world.d(i, j - 1, k) || l > 3) {
|
||||
world.e(i, j, k, 0);
|
||||
}
|
||||
return;
|
||||
}
|
||||
// CraftBukkit: Cast to fix compile errors.
|
||||
if ((i == 0) && (!b((IBlockAccess)world, i, j - 1, k)) && ll == 15 && (random.nextInt(4) == 0)) {
|
||||
world.d(i, j, k, 0);
|
||||
if (!flag && !b(((IBlockAccess) (world)), i, j - 1, k) && l == 15 && random.nextInt(4) == 0) {
|
||||
world.e(i, j, k, 0);
|
||||
return;
|
||||
}
|
||||
if (ll % 2 == 0 && ll > 2) {
|
||||
if (l % 2 == 0 && l > 2) {
|
||||
a(world, i + 1, j, k, 300, random);
|
||||
a(world, i - 1, j, k, 300, random);
|
||||
a(world, i, j - 1, k, 250, random);
|
||||
@ -95,7 +93,7 @@ public class BlockFire extends Block {
|
||||
return;
|
||||
}
|
||||
if (i2 > 0 && random.nextInt(l1) <= i2) {
|
||||
world.d(i1, k1, j1, bh);
|
||||
world.e(i1, k1, j1, bi);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -107,7 +105,7 @@ public class BlockFire extends Block {
|
||||
int i1 = b[world.a(i, j, k)];
|
||||
|
||||
if (random.nextInt(l) < i1) {
|
||||
boolean flag = world.a(i, j, k) == Block.am.bh ? true : false;
|
||||
boolean flag = world.a(i, j, k) == Block.am.bi;
|
||||
|
||||
if (random.nextInt(2) == 0) {
|
||||
// CraftBukkit: Call to stop very slow spread of fire.
|
||||
@ -119,9 +117,9 @@ public class BlockFire extends Block {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
world.d(i, j, k, bh);
|
||||
world.e(i, j, k, bi);
|
||||
} else {
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
}
|
||||
if (flag) {
|
||||
Block.am.a(world, i, j, k, 0);
|
||||
@ -130,23 +128,22 @@ public class BlockFire extends Block {
|
||||
}
|
||||
|
||||
private boolean g(World world, int i, int j, int k) {
|
||||
// CraftBukkit: Cast to correct compile errors 6 times.
|
||||
if (b((IBlockAccess)world, i + 1, j, k)) {
|
||||
if (b(((IBlockAccess) (world)), i + 1, j, k)) {
|
||||
return true;
|
||||
}
|
||||
if (b((IBlockAccess)world, i - 1, j, k)) {
|
||||
if (b(((IBlockAccess) (world)), i - 1, j, k)) {
|
||||
return true;
|
||||
}
|
||||
if (b((IBlockAccess)world, i, j - 1, k)) {
|
||||
if (b(((IBlockAccess) (world)), i, j - 1, k)) {
|
||||
return true;
|
||||
}
|
||||
if (b((IBlockAccess)world, i, j + 1, k)) {
|
||||
if (b(((IBlockAccess) (world)), i, j + 1, k)) {
|
||||
return true;
|
||||
}
|
||||
if (b((IBlockAccess)world, i, j, k - 1)) {
|
||||
if (b(((IBlockAccess) (world)), i, j, k - 1)) {
|
||||
return true;
|
||||
}
|
||||
return b((IBlockAccess)world, i, j, k + 1);
|
||||
return b(((IBlockAccess) (world)), i, j, k + 1);
|
||||
}
|
||||
|
||||
private int h(World world, int i, int j, int k) {
|
||||
@ -189,7 +186,7 @@ public class BlockFire extends Block {
|
||||
|
||||
public void b(World world, int i, int j, int k, int l) {
|
||||
if (!world.d(i, j - 1, k) && !g(world, i, j, k)) {
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
return;
|
||||
} else {
|
||||
return;
|
||||
@ -197,16 +194,15 @@ public class BlockFire extends Block {
|
||||
}
|
||||
|
||||
public void e(World world, int i, int j, int k) {
|
||||
if (world.a(i, j - 1, k) == Block.ap.bh && Block.be.a_(world, i, j, k)) {
|
||||
if (world.a(i, j - 1, k) == Block.ap.bi && Block.be.b_(world, i, j, k)) {
|
||||
return;
|
||||
}
|
||||
if (!world.d(i, j - 1, k) && !g(world, i, j, k)) {
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
return;
|
||||
} else {
|
||||
world.h(i, j, k, bh);
|
||||
world.i(i, j, k, bi);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@ public class BlockFlowing extends BlockFluids {
|
||||
private void i(World world, int i1, int j1, int k1) {
|
||||
int l1 = world.b(i1, j1, k1);
|
||||
|
||||
world.a(i1, j1, k1, bh + 1, l1);
|
||||
world.a(i1, j1, k1, bi + 1, l1);
|
||||
world.b(i1, j1, k1, i1, j1, k1);
|
||||
world.g(i1, j1, k1);
|
||||
}
|
||||
@ -34,7 +34,7 @@ public class BlockFlowing extends BlockFluids {
|
||||
int l1 = g(world, i1, j1, k1);
|
||||
byte byte0 = 1;
|
||||
|
||||
if (bs == Material.g && !world.q.d) {
|
||||
if (bt == Material.g && !world.q.d) {
|
||||
byte0 = 2;
|
||||
}
|
||||
boolean flag = true;
|
||||
@ -61,25 +61,25 @@ public class BlockFlowing extends BlockFluids {
|
||||
j2 = l2 + 8;
|
||||
}
|
||||
}
|
||||
if (a >= 2 && bs == Material.f) {
|
||||
if (a >= 2 && bt == Material.f) {
|
||||
if (world.d(i1, j1 - 1, k1)) {
|
||||
j2 = 0;
|
||||
} else if (world.c(i1, j1 - 1, k1) == bs && world.b(i1, j1, k1) == 0) {
|
||||
} else if (world.c(i1, j1 - 1, k1) == bt && world.b(i1, j1, k1) == 0) {
|
||||
j2 = 0;
|
||||
}
|
||||
}
|
||||
if (bs == Material.g && l1 < 8 && j2 < 8 && j2 > l1 && random.nextInt(4) != 0) {
|
||||
if (bt == Material.g && l1 < 8 && j2 < 8 && j2 > l1 && random.nextInt(4) != 0) {
|
||||
j2 = l1;
|
||||
flag = false;
|
||||
}
|
||||
if (j2 != l1) {
|
||||
l1 = j2;
|
||||
if (l1 < 0) {
|
||||
world.d(i1, j1, k1, 0);
|
||||
world.e(i1, j1, k1, 0);
|
||||
} else {
|
||||
world.b(i1, j1, k1, l1);
|
||||
world.h(i1, j1, k1, bh);
|
||||
world.g(i1, j1, k1, bh);
|
||||
world.c(i1, j1, k1, l1);
|
||||
world.i(i1, j1, k1, bi);
|
||||
world.h(i1, j1, k1, bi);
|
||||
}
|
||||
} else if (flag) {
|
||||
i(world, i1, j1, k1);
|
||||
@ -97,9 +97,9 @@ public class BlockFlowing extends BlockFluids {
|
||||
|
||||
if (!blockFlow.isCancelled()) {
|
||||
if (l1 >= 8) {
|
||||
world.b(i1, j1 - 1, k1, bh, l1);
|
||||
world.b(i1, j1 - 1, k1, bi, l1);
|
||||
} else {
|
||||
world.b(i1, j1 - 1, k1, bh, l1 + 8);
|
||||
world.b(i1, j1 - 1, k1, bi, l1 + 8);
|
||||
}
|
||||
}
|
||||
// CraftBukkit end
|
||||
@ -135,17 +135,17 @@ public class BlockFlowing extends BlockFluids {
|
||||
int i2 = world.a(i1, j1, k1);
|
||||
|
||||
if (i2 > 0) {
|
||||
if (bs == Material.g) {
|
||||
if (bt == Material.g) {
|
||||
h(world, i1, j1, k1);
|
||||
} else {
|
||||
Block.m[i2].a_(world, i1, j1, k1, world.b(i1, j1, k1));
|
||||
}
|
||||
}
|
||||
world.b(i1, j1, k1, bh, l1);
|
||||
world.b(i1, j1, k1, bi, l1);
|
||||
}
|
||||
}
|
||||
|
||||
private int a(World world, int i1, int j1, int k1, int l1, int i2) {
|
||||
private int b(World world, int i1, int j1, int k1, int l1, int i2) {
|
||||
int j2 = 1000;
|
||||
|
||||
for (int k2 = 0; k2 < 4; k2++) {
|
||||
@ -168,7 +168,7 @@ public class BlockFlowing extends BlockFluids {
|
||||
if (k2 == 3) {
|
||||
j3++;
|
||||
}
|
||||
if (k(world, l2, i3, j3) || world.c(l2, i3, j3) == bs && world.b(l2, i3, j3) == 0) {
|
||||
if (k(world, l2, i3, j3) || world.c(l2, i3, j3) == bt && world.b(l2, i3, j3) == 0) {
|
||||
continue;
|
||||
}
|
||||
if (!k(world, l2, i3 - 1, j3)) {
|
||||
@ -177,7 +177,7 @@ public class BlockFlowing extends BlockFluids {
|
||||
if (l1 >= 4) {
|
||||
continue;
|
||||
}
|
||||
int k3 = a(world, l2, i3, j3, l1 + 1, k2);
|
||||
int k3 = b(world, l2, i3, j3, l1 + 1, k2);
|
||||
|
||||
if (k3 < j2) {
|
||||
j2 = k3;
|
||||
@ -206,13 +206,13 @@ public class BlockFlowing extends BlockFluids {
|
||||
if (l1 == 3) {
|
||||
j3++;
|
||||
}
|
||||
if (k(world, j2, i3, j3) || world.c(j2, i3, j3) == bs && world.b(j2, i3, j3) == 0) {
|
||||
if (k(world, j2, i3, j3) || world.c(j2, i3, j3) == bt && world.b(j2, i3, j3) == 0) {
|
||||
continue;
|
||||
}
|
||||
if (!k(world, j2, i3 - 1, j3)) {
|
||||
c[l1] = 0;
|
||||
} else {
|
||||
c[l1] = a(world, j2, i3, j3, 1, l1);
|
||||
c[l1] = b(world, j2, i3, j3, 1, l1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -234,13 +234,13 @@ public class BlockFlowing extends BlockFluids {
|
||||
private boolean k(World world, int i1, int j1, int k1) {
|
||||
int l1 = world.a(i1, j1, k1);
|
||||
|
||||
if (l1 == Block.aE.bh || l1 == Block.aL.bh || l1 == Block.aD.bh || l1 == Block.aF.bh || l1 == Block.aX.bh) {
|
||||
if (l1 == Block.aE.bi || l1 == Block.aL.bi || l1 == Block.aD.bi || l1 == Block.aF.bi || l1 == Block.aX.bi) {
|
||||
return true;
|
||||
}
|
||||
if (l1 == 0) {
|
||||
return false;
|
||||
}
|
||||
Material material = Block.m[l1].bs;
|
||||
Material material = Block.m[l1].bt;
|
||||
|
||||
return material.a();
|
||||
}
|
||||
@ -263,7 +263,7 @@ public class BlockFlowing extends BlockFluids {
|
||||
private boolean l(World world, int i1, int j1, int k1) {
|
||||
Material material = world.c(i1, j1, k1);
|
||||
|
||||
if (material == bs) {
|
||||
if (material == bt) {
|
||||
return false;
|
||||
}
|
||||
if (material == Material.g) {
|
||||
@ -275,8 +275,8 @@ public class BlockFlowing extends BlockFluids {
|
||||
|
||||
public void e(World world, int i1, int j1, int k1) {
|
||||
super.e(world, i1, j1, k1);
|
||||
if (world.a(i1, j1, k1) == bh) {
|
||||
world.h(i1, j1, k1, bh);
|
||||
if (world.a(i1, j1, k1) == bi) {
|
||||
world.i(i1, j1, k1, bi);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -16,11 +16,11 @@ public class BlockFurnace extends BlockContainer {
|
||||
protected BlockFurnace(int i, boolean flag) {
|
||||
super(i, Material.d);
|
||||
a = flag;
|
||||
bg = 45;
|
||||
bh = 45;
|
||||
}
|
||||
|
||||
public int a(int i, Random random) {
|
||||
return Block.aB.bh;
|
||||
return Block.aB.bi;
|
||||
}
|
||||
|
||||
public void e(World world, int i, int j, int k) {
|
||||
@ -47,20 +47,20 @@ public class BlockFurnace extends BlockContainer {
|
||||
if (Block.o[k1] && !Block.o[j1]) {
|
||||
byte0 = 4;
|
||||
}
|
||||
world.b(i, j, k, ((int) (byte0)));
|
||||
world.c(i, j, k, ((int) (byte0)));
|
||||
}
|
||||
|
||||
public int a(int i) {
|
||||
if (i == 1) {
|
||||
return Block.t.bh;
|
||||
return bh + 17;
|
||||
}
|
||||
if (i == 0) {
|
||||
return Block.t.bh;
|
||||
return bh + 17;
|
||||
}
|
||||
if (i == 3) {
|
||||
return bg - 1;
|
||||
return bh - 1;
|
||||
} else {
|
||||
return bg;
|
||||
return bh;
|
||||
}
|
||||
}
|
||||
|
||||
@ -78,7 +78,7 @@ public class BlockFurnace extends BlockContainer {
|
||||
if (bie.isCancelled()) return true;
|
||||
// CraftBukkit end
|
||||
|
||||
TileEntityFurnace tileentityfurnace = (TileEntityFurnace) world.l(i, j, k);
|
||||
TileEntityFurnace tileentityfurnace = (TileEntityFurnace) world.m(i, j, k);
|
||||
|
||||
entityplayer.a(tileentityfurnace);
|
||||
return true;
|
||||
@ -87,14 +87,14 @@ public class BlockFurnace extends BlockContainer {
|
||||
|
||||
public static void a(boolean flag, World world, int i, int j, int k) {
|
||||
int l = world.b(i, j, k);
|
||||
TileEntity tileentity = world.l(i, j, k);
|
||||
TileEntity tileentity = world.m(i, j, k);
|
||||
|
||||
if (flag) {
|
||||
world.d(i, j, k, Block.aC.bh);
|
||||
world.e(i, j, k, Block.aC.bi);
|
||||
} else {
|
||||
world.d(i, j, k, Block.aB.bh);
|
||||
world.e(i, j, k, Block.aB.bi);
|
||||
}
|
||||
world.b(i, j, k, l);
|
||||
world.c(i, j, k, l);
|
||||
world.a(i, j, k, tileentity);
|
||||
}
|
||||
|
||||
@ -106,16 +106,16 @@ public class BlockFurnace extends BlockContainer {
|
||||
int l = MathHelper.b((double) ((entityliving.v * 4F) / 360F) + 0.5D) & 3;
|
||||
|
||||
if (l == 0) {
|
||||
world.b(i, j, k, 2);
|
||||
world.c(i, j, k, 2);
|
||||
}
|
||||
if (l == 1) {
|
||||
world.b(i, j, k, 5);
|
||||
world.c(i, j, k, 5);
|
||||
}
|
||||
if (l == 2) {
|
||||
world.b(i, j, k, 3);
|
||||
world.c(i, j, k, 3);
|
||||
}
|
||||
if (l == 3) {
|
||||
world.b(i, j, k, 4);
|
||||
world.c(i, j, k, 4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ public class BlockJukeBox extends Block {
|
||||
}
|
||||
|
||||
public int a(int i) {
|
||||
return bg + (i != 1 ? 0 : 1);
|
||||
return bh + (i != 1 ? 0 : 1);
|
||||
}
|
||||
|
||||
public boolean a(World world, int i, int j, int k, EntityPlayer entityplayer) {
|
||||
@ -40,13 +40,13 @@ public class BlockJukeBox extends Block {
|
||||
|
||||
public void f(World world, int i, int j, int k, int l) {
|
||||
world.a(((String) (null)), i, j, k);
|
||||
world.b(i, j, k, 0);
|
||||
int i1 = (Item.aU.aW + l) - 1;
|
||||
world.c(i, j, k, 0);
|
||||
int i1 = (Item.aY.ba + l) - 1;
|
||||
float f1 = 0.7F;
|
||||
double d = (double) (world.l.nextFloat() * f1) + (double) (1.0F - f1) * 0.5D;
|
||||
double d1 = (double) (world.l.nextFloat() * f1) + (double) (1.0F - f1) * 0.20000000000000001D + 0.59999999999999998D;
|
||||
double d2 = (double) (world.l.nextFloat() * f1) + (double) (1.0F - f1) * 0.5D;
|
||||
EntityItem entityitem = new EntityItem(world, (double) i + d, (double) j + d1, (double) k + d2, new ItemStack(i1));
|
||||
EntityItem entityitem = new EntityItem(world, (double) i + d, (double) j + d1, (double) k + d2, new ItemStack(i1, 1, 0));
|
||||
|
||||
entityitem.c = 10;
|
||||
world.a(((Entity) (entityitem)));
|
||||
|
@ -30,8 +30,10 @@ public class BlockLeaves extends BlockLeavesBase {
|
||||
for (int l1 = -l; l1 <= l; l1++) {
|
||||
int i2 = world.a(i + j1, j + k1, k + l1);
|
||||
|
||||
if (i2 == Block.K.bh) {
|
||||
world.c(i + j1, j + k1, k + l1, 7);
|
||||
if (i2 == Block.K.bi) {
|
||||
int j2 = world.b(i + j1, j + k1, k + l1);
|
||||
|
||||
world.d(i + j1, j + k1, k + l1, j2 | 4);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -43,69 +45,71 @@ public class BlockLeaves extends BlockLeavesBase {
|
||||
if (world.z) {
|
||||
return;
|
||||
}
|
||||
if (world.b(i, j, k) == 7) {
|
||||
int l = world.b(i, j, k);
|
||||
|
||||
if ((l & 4) != 0) {
|
||||
byte byte0 = 4;
|
||||
int l = byte0 + 1;
|
||||
int i1 = byte0 + 1;
|
||||
byte byte1 = 32;
|
||||
int i1 = byte1 * byte1;
|
||||
int j1 = byte1 / 2;
|
||||
int j1 = byte1 * byte1;
|
||||
int k1 = byte1 / 2;
|
||||
|
||||
if (b == null) {
|
||||
b = new int[byte1 * byte1 * byte1];
|
||||
}
|
||||
if (world.a(i - l, j - l, k - l, i + l, j + l, k + l)) {
|
||||
for (int k1 = -byte0; k1 <= byte0; k1++) {
|
||||
for (int j2 = -byte0; j2 <= byte0; j2++) {
|
||||
for (int l2 = -byte0; l2 <= byte0; l2++) {
|
||||
int j3 = world.a(i + k1, j + j2, k + l2);
|
||||
|
||||
if (j3 == Block.J.bh) {
|
||||
b[(k1 + j1) * i1 + (j2 + j1) * byte1 + (l2 + j1)] = 0;
|
||||
continue;
|
||||
}
|
||||
if (j3 == Block.K.bh) {
|
||||
b[(k1 + j1) * i1 + (j2 + j1) * byte1 + (l2 + j1)] = -2;
|
||||
} else {
|
||||
b[(k1 + j1) * i1 + (j2 + j1) * byte1 + (l2 + j1)] = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int l1 = 1; l1 <= 4; l1++) {
|
||||
if (world.a(i - i1, j - i1, k - i1, i + i1, j + i1, k + i1)) {
|
||||
for (int l1 = -byte0; l1 <= byte0; l1++) {
|
||||
for (int k2 = -byte0; k2 <= byte0; k2++) {
|
||||
for (int i3 = -byte0; i3 <= byte0; i3++) {
|
||||
for (int k3 = -byte0; k3 <= byte0; k3++) {
|
||||
if (b[(k2 + j1) * i1 + (i3 + j1) * byte1 + (k3 + j1)] != l1 - 1) {
|
||||
int k3 = world.a(i + l1, j + k2, k + i3);
|
||||
|
||||
if (k3 == Block.J.bi) {
|
||||
b[(l1 + k1) * j1 + (k2 + k1) * byte1 + (i3 + k1)] = 0;
|
||||
continue;
|
||||
}
|
||||
if (b[((k2 + j1) - 1) * i1 + (i3 + j1) * byte1 + (k3 + j1)] == -2) {
|
||||
b[((k2 + j1) - 1) * i1 + (i3 + j1) * byte1 + (k3 + j1)] = l1;
|
||||
}
|
||||
if (b[(k2 + j1 + 1) * i1 + (i3 + j1) * byte1 + (k3 + j1)] == -2) {
|
||||
b[(k2 + j1 + 1) * i1 + (i3 + j1) * byte1 + (k3 + j1)] = l1;
|
||||
}
|
||||
if (b[(k2 + j1) * i1 + ((i3 + j1) - 1) * byte1 + (k3 + j1)] == -2) {
|
||||
b[(k2 + j1) * i1 + ((i3 + j1) - 1) * byte1 + (k3 + j1)] = l1;
|
||||
}
|
||||
if (b[(k2 + j1) * i1 + (i3 + j1 + 1) * byte1 + (k3 + j1)] == -2) {
|
||||
b[(k2 + j1) * i1 + (i3 + j1 + 1) * byte1 + (k3 + j1)] = l1;
|
||||
}
|
||||
if (b[(k2 + j1) * i1 + (i3 + j1) * byte1 + ((k3 + j1) - 1)] == -2) {
|
||||
b[(k2 + j1) * i1 + (i3 + j1) * byte1 + ((k3 + j1) - 1)] = l1;
|
||||
}
|
||||
if (b[(k2 + j1) * i1 + (i3 + j1) * byte1 + (k3 + j1 + 1)] == -2) {
|
||||
b[(k2 + j1) * i1 + (i3 + j1) * byte1 + (k3 + j1 + 1)] = l1;
|
||||
if (k3 == Block.K.bi) {
|
||||
b[(l1 + k1) * j1 + (k2 + k1) * byte1 + (i3 + k1)] = -2;
|
||||
} else {
|
||||
b[(l1 + k1) * j1 + (k2 + k1) * byte1 + (i3 + k1)] = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
int i2 = b[j1 * i1 + j1 * byte1 + j1];
|
||||
|
||||
if (i2 >= 0) {
|
||||
world.b(i, j, k, 0);
|
||||
for (int i2 = 1; i2 <= 4; i2++) {
|
||||
for (int l2 = -byte0; l2 <= byte0; l2++) {
|
||||
for (int j3 = -byte0; j3 <= byte0; j3++) {
|
||||
for (int l3 = -byte0; l3 <= byte0; l3++) {
|
||||
if (b[(l2 + k1) * j1 + (j3 + k1) * byte1 + (l3 + k1)] != i2 - 1) {
|
||||
continue;
|
||||
}
|
||||
if (b[((l2 + k1) - 1) * j1 + (j3 + k1) * byte1 + (l3 + k1)] == -2) {
|
||||
b[((l2 + k1) - 1) * j1 + (j3 + k1) * byte1 + (l3 + k1)] = i2;
|
||||
}
|
||||
if (b[(l2 + k1 + 1) * j1 + (j3 + k1) * byte1 + (l3 + k1)] == -2) {
|
||||
b[(l2 + k1 + 1) * j1 + (j3 + k1) * byte1 + (l3 + k1)] = i2;
|
||||
}
|
||||
if (b[(l2 + k1) * j1 + ((j3 + k1) - 1) * byte1 + (l3 + k1)] == -2) {
|
||||
b[(l2 + k1) * j1 + ((j3 + k1) - 1) * byte1 + (l3 + k1)] = i2;
|
||||
}
|
||||
if (b[(l2 + k1) * j1 + (j3 + k1 + 1) * byte1 + (l3 + k1)] == -2) {
|
||||
b[(l2 + k1) * j1 + (j3 + k1 + 1) * byte1 + (l3 + k1)] = i2;
|
||||
}
|
||||
if (b[(l2 + k1) * j1 + (j3 + k1) * byte1 + ((l3 + k1) - 1)] == -2) {
|
||||
b[(l2 + k1) * j1 + (j3 + k1) * byte1 + ((l3 + k1) - 1)] = i2;
|
||||
}
|
||||
if (b[(l2 + k1) * j1 + (j3 + k1) * byte1 + (l3 + k1 + 1)] == -2) {
|
||||
b[(l2 + k1) * j1 + (j3 + k1) * byte1 + (l3 + k1 + 1)] = i2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
int j2 = b[k1 * j1 + k1 * byte1 + k1];
|
||||
|
||||
if (j2 >= 0) {
|
||||
world.c(i, j, k, l & -5);
|
||||
} else {
|
||||
g(world, i, j, k);
|
||||
}
|
||||
@ -123,7 +127,7 @@ public class BlockLeaves extends BlockLeavesBase {
|
||||
// CraftBukkit end
|
||||
|
||||
a_(world, i, j, k, world.b(i, j, k));
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
}
|
||||
|
||||
public int a(Random random) {
|
||||
@ -131,7 +135,7 @@ public class BlockLeaves extends BlockLeavesBase {
|
||||
}
|
||||
|
||||
public int a(int i, Random random) {
|
||||
return Block.y.bh;
|
||||
return Block.y.bi;
|
||||
}
|
||||
|
||||
public boolean a() {
|
||||
|
@ -59,20 +59,20 @@ public class BlockLever extends Block {
|
||||
if (l == 5 && world.d(i - 1, j, k)) {
|
||||
i1 = 1;
|
||||
}
|
||||
world.b(i, j, k, i1 + j1);
|
||||
world.c(i, j, k, i1 + j1);
|
||||
}
|
||||
|
||||
public void e(World world, int i, int j, int k) {
|
||||
if (world.d(i - 1, j, k)) {
|
||||
world.b(i, j, k, 1);
|
||||
world.c(i, j, k, 1);
|
||||
} else if (world.d(i + 1, j, k)) {
|
||||
world.b(i, j, k, 2);
|
||||
world.c(i, j, k, 2);
|
||||
} else if (world.d(i, j, k - 1)) {
|
||||
world.b(i, j, k, 3);
|
||||
world.c(i, j, k, 3);
|
||||
} else if (world.d(i, j, k + 1)) {
|
||||
world.b(i, j, k, 4);
|
||||
world.c(i, j, k, 4);
|
||||
} else if (world.d(i, j - 1, k)) {
|
||||
world.b(i, j, k, 5 + world.l.nextInt(2));
|
||||
world.c(i, j, k, 5 + world.l.nextInt(2));
|
||||
}
|
||||
g(world, i, j, k);
|
||||
}
|
||||
@ -99,7 +99,7 @@ public class BlockLever extends Block {
|
||||
}
|
||||
if (flag) {
|
||||
a_(world, i, j, k, world.b(i, j, k));
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -107,7 +107,7 @@ public class BlockLever extends Block {
|
||||
private boolean g(World world, int i, int j, int k) {
|
||||
if (!a(world, i, j, k)) {
|
||||
a_(world, i, j, k, world.b(i, j, k));
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
@ -161,26 +161,28 @@ public class BlockLever extends Block {
|
||||
int i1 = l & 7;
|
||||
int j1 = 8 - (l & 8);
|
||||
|
||||
//Allow the lever to change the current
|
||||
// Craftbukkit start
|
||||
int old = (j1 != 8) ? 1 : 0;
|
||||
int current = (j1 == 8) ? 1 : 0;
|
||||
BlockRedstoneEvent bre = new BlockRedstoneEvent(block, BlockFace.Self, old, current);
|
||||
((WorldServer) world).getServer().getPluginManager().callEvent(bre);
|
||||
// Craftbukkit end
|
||||
|
||||
if ((bre.getNewCurrent() > 0) == (k == 8)) {
|
||||
world.b(i, j, k, i1 + j1);
|
||||
world.c(i, j, k, i1 + j1);
|
||||
world.b(i, j, k, i, j, k);
|
||||
world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.click", 0.3F, j1 <= 0 ? 0.5F : 0.6F);
|
||||
world.g(i, j, k, bh);
|
||||
world.h(i, j, k, bi);
|
||||
if (i1 == 1) {
|
||||
world.g(i - 1, j, k, bh);
|
||||
world.h(i - 1, j, k, bi);
|
||||
} else if (i1 == 2) {
|
||||
world.g(i + 1, j, k, bh);
|
||||
world.h(i + 1, j, k, bi);
|
||||
} else if (i1 == 3) {
|
||||
world.g(i, j, k - 1, bh);
|
||||
world.h(i, j, k - 1, bi);
|
||||
} else if (i1 == 4) {
|
||||
world.g(i, j, k + 1, bh);
|
||||
world.h(i, j, k + 1, bi);
|
||||
} else {
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.h(i, j - 1, k, bi);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@ -190,19 +192,19 @@ public class BlockLever extends Block {
|
||||
int l = world.b(i, j, k);
|
||||
|
||||
if ((l & 8) > 0) {
|
||||
world.g(i, j, k, bh);
|
||||
world.h(i, j, k, bi);
|
||||
int i1 = l & 7;
|
||||
|
||||
if (i1 == 1) {
|
||||
world.g(i - 1, j, k, bh);
|
||||
world.h(i - 1, j, k, bi);
|
||||
} else if (i1 == 2) {
|
||||
world.g(i + 1, j, k, bh);
|
||||
world.h(i + 1, j, k, bi);
|
||||
} else if (i1 == 3) {
|
||||
world.g(i, j, k - 1, bh);
|
||||
world.h(i, j, k - 1, bi);
|
||||
} else if (i1 == 4) {
|
||||
world.g(i, j, k + 1, bh);
|
||||
world.h(i, j, k + 1, bi);
|
||||
} else {
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.h(i, j - 1, k, bi);
|
||||
}
|
||||
}
|
||||
super.b(world, i, j, k);
|
||||
|
@ -41,8 +41,7 @@ public class BlockPressurePlate extends Block {
|
||||
return world.d(i, j - 1, k);
|
||||
}
|
||||
|
||||
public void e(World world, int i, int j, int k) {
|
||||
}
|
||||
public void e(World world, int i, int j, int k) {}
|
||||
|
||||
public void b(World world, int i, int j, int k, int l) {
|
||||
boolean flag = false;
|
||||
@ -52,7 +51,7 @@ public class BlockPressurePlate extends Block {
|
||||
}
|
||||
if (flag) {
|
||||
a_(world, i, j, k, world.b(i, j, k));
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -118,26 +117,30 @@ public class BlockPressurePlate extends Block {
|
||||
if (list.size() > 0) {
|
||||
flag1 = true;
|
||||
}
|
||||
|
||||
// Craftbukkit start
|
||||
CraftBlock block = (CraftBlock) ((WorldServer) world).getWorld().getBlockAt(i, j, k);
|
||||
BlockRedstoneEvent bre = new BlockRedstoneEvent(block, BlockFace.Self, flag ? 15 : 0, flag1 ? 15 : 0);
|
||||
((WorldServer) world).getServer().getPluginManager().callEvent(bre);
|
||||
flag1 = bre.getNewCurrent() > 0;
|
||||
// Craftbukkit end
|
||||
|
||||
if (flag1 && !flag) {
|
||||
world.b(i, j, k, 1);
|
||||
world.g(i, j, k, bh);
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.c(i, j, k, 1);
|
||||
world.h(i, j, k, bi);
|
||||
world.h(i, j - 1, k, bi);
|
||||
world.b(i, j, k, i, j, k);
|
||||
world.a((double) i + 0.5D, (double) j + 0.10000000000000001D, (double) k + 0.5D, "random.click", 0.3F, 0.6F);
|
||||
}
|
||||
if (!flag1 && flag) {
|
||||
world.b(i, j, k, 0);
|
||||
world.g(i, j, k, bh);
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.c(i, j, k, 0);
|
||||
world.h(i, j, k, bi);
|
||||
world.h(i, j - 1, k, bi);
|
||||
world.b(i, j, k, i, j, k);
|
||||
world.a((double) i + 0.5D, (double) j + 0.10000000000000001D, (double) k + 0.5D, "random.click", 0.3F, 0.5F);
|
||||
}
|
||||
if (flag1) {
|
||||
world.h(i, j, k, bh);
|
||||
world.i(i, j, k, bi);
|
||||
}
|
||||
}
|
||||
|
||||
@ -145,8 +148,8 @@ public class BlockPressurePlate extends Block {
|
||||
int l = world.b(i, j, k);
|
||||
|
||||
if (l > 0) {
|
||||
world.g(i, j, k, bh);
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.h(i, j, k, bi);
|
||||
world.h(i, j - 1, k, bi);
|
||||
}
|
||||
super.b(world, i, j, k);
|
||||
}
|
||||
|
@ -43,23 +43,23 @@ public class BlockRedstoneTorch extends BlockTorch {
|
||||
super.e(world, i, j, k);
|
||||
}
|
||||
if (a) {
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.g(i, j + 1, k, bh);
|
||||
world.g(i - 1, j, k, bh);
|
||||
world.g(i + 1, j, k, bh);
|
||||
world.g(i, j, k - 1, bh);
|
||||
world.g(i, j, k + 1, bh);
|
||||
world.h(i, j - 1, k, bi);
|
||||
world.h(i, j + 1, k, bi);
|
||||
world.h(i - 1, j, k, bi);
|
||||
world.h(i + 1, j, k, bi);
|
||||
world.h(i, j, k - 1, bi);
|
||||
world.h(i, j, k + 1, bi);
|
||||
}
|
||||
}
|
||||
|
||||
public void b(World world, int i, int j, int k) {
|
||||
if (a) {
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.g(i, j + 1, k, bh);
|
||||
world.g(i - 1, j, k, bh);
|
||||
world.g(i + 1, j, k, bh);
|
||||
world.g(i, j, k - 1, bh);
|
||||
world.g(i, j, k + 1, bh);
|
||||
world.h(i, j - 1, k, bi);
|
||||
world.h(i, j + 1, k, bi);
|
||||
world.h(i - 1, j, k, bi);
|
||||
world.h(i + 1, j, k, bi);
|
||||
world.h(i, j, k - 1, bi);
|
||||
world.h(i, j, k + 1, bi);
|
||||
}
|
||||
}
|
||||
|
||||
@ -87,19 +87,19 @@ public class BlockRedstoneTorch extends BlockTorch {
|
||||
private boolean g(World world, int i, int j, int k) {
|
||||
int l = world.b(i, j, k);
|
||||
|
||||
if (l == 5 && world.j(i, j - 1, k, 0)) {
|
||||
if (l == 5 && world.k(i, j - 1, k, 0)) {
|
||||
return true;
|
||||
}
|
||||
if (l == 3 && world.j(i, j, k - 1, 2)) {
|
||||
if (l == 3 && world.k(i, j, k - 1, 2)) {
|
||||
return true;
|
||||
}
|
||||
if (l == 4 && world.j(i, j, k + 1, 3)) {
|
||||
if (l == 4 && world.k(i, j, k + 1, 3)) {
|
||||
return true;
|
||||
}
|
||||
if (l == 1 && world.j(i - 1, j, k, 4)) {
|
||||
if (l == 1 && world.k(i - 1, j, k, 4)) {
|
||||
return true;
|
||||
}
|
||||
return l == 2 && world.j(i + 1, j, k, 5);
|
||||
return l == 2 && world.k(i + 1, j, k, 5);
|
||||
}
|
||||
|
||||
public void a(World world, int i, int j, int k, Random random) {
|
||||
@ -108,17 +108,19 @@ public class BlockRedstoneTorch extends BlockTorch {
|
||||
for (; b.size() > 0 && world.e - ((RedstoneUpdateInfo) b.get(0)).d > 100L; b.remove(0)) {
|
||||
;
|
||||
}
|
||||
//Added by craftbukkit
|
||||
|
||||
// Craftbukkit start
|
||||
CraftBlock block = (CraftBlock) ((WorldServer) world).getWorld().getBlockAt(i, j, k);
|
||||
BlockRedstoneEvent bre = new BlockRedstoneEvent(block, BlockFace.Self, flag ? 15 : 0, flag ? 0 : 15);
|
||||
((WorldServer) world).getServer().getPluginManager().callEvent(bre);
|
||||
if ((bre.getNewCurrent() != 0) == flag) {
|
||||
return;
|
||||
}
|
||||
// Craftbukkit end
|
||||
|
||||
if (a) {
|
||||
if (flag) {
|
||||
world.b(i, j, k, Block.aP.bh, world.b(i, j, k));
|
||||
|
||||
world.b(i, j, k, Block.aP.bi, world.b(i, j, k));
|
||||
if (a(world, i, j, k, true)) {
|
||||
world.a((float) i + 0.5F, (float) j + 0.5F, (float) k + 0.5F, "random.fizz", 0.5F, 2.6F + (world.l.nextFloat() - world.l.nextFloat()) * 0.8F);
|
||||
for (int l = 0; l < 5; l++) {
|
||||
@ -130,16 +132,14 @@ public class BlockRedstoneTorch extends BlockTorch {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (!flag
|
||||
&& !a(world, i, j, k,
|
||||
false)) {
|
||||
world.b(i, j, k, Block.aQ.bh, world.b(i, j, k));
|
||||
} else if (!flag && !a(world, i, j, k, false)) {
|
||||
world.b(i, j, k, Block.aQ.bi, world.b(i, j, k));
|
||||
}
|
||||
}
|
||||
|
||||
public void b(World world, int i, int j, int k, int l) {
|
||||
super.b(world, i, j, k, l);
|
||||
world.h(i, j, k, bh);
|
||||
world.i(i, j, k, bi);
|
||||
}
|
||||
|
||||
public boolean d(World world, int i, int j, int k, int l) {
|
||||
@ -151,7 +151,7 @@ public class BlockRedstoneTorch extends BlockTorch {
|
||||
}
|
||||
|
||||
public int a(int i, Random random) {
|
||||
return Block.aQ.bh;
|
||||
return Block.aQ.bi;
|
||||
}
|
||||
|
||||
public boolean c() {
|
||||
|
@ -1,6 +1,10 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
import org.bukkit.BlockFace;
|
||||
import org.bukkit.craftbukkit.CraftBlock;
|
||||
import org.bukkit.event.block.BlockRedstoneEvent;
|
||||
@ -9,10 +13,12 @@ import org.bukkit.plugin.PluginLoader;
|
||||
public class BlockRedstoneWire extends Block {
|
||||
|
||||
private boolean a;
|
||||
private Set b;
|
||||
|
||||
public BlockRedstoneWire(int i, int j) {
|
||||
super(i, j, Material.n);
|
||||
a = true;
|
||||
b = ((Set) (new HashSet()));
|
||||
a(0.0F, 0.0F, 0.0F, 1.0F, 0.0625F, 1.0F);
|
||||
}
|
||||
|
||||
@ -29,115 +35,142 @@ public class BlockRedstoneWire extends Block {
|
||||
}
|
||||
|
||||
private void g(World world, int i, int j, int k) {
|
||||
int l = world.b(i, j, k);
|
||||
int i1 = 0;
|
||||
a(world, i, j, k, i, j, k);
|
||||
ArrayList arraylist = new ArrayList(((java.util.Collection) (b)));
|
||||
|
||||
b.clear();
|
||||
for (int l = 0; l < ((List) (arraylist)).size(); l++) {
|
||||
ChunkPosition chunkposition = (ChunkPosition) ((List) (arraylist)).get(l);
|
||||
|
||||
world.h(chunkposition.a, chunkposition.b, chunkposition.c, bi);
|
||||
}
|
||||
}
|
||||
|
||||
private void a(World world, int i, int j, int k, int l, int i1, int j1) {
|
||||
int k1 = world.b(i, j, k);
|
||||
int l1 = 0;
|
||||
|
||||
a = false;
|
||||
boolean flag = world.o(i, j, k);
|
||||
boolean flag = world.p(i, j, k);
|
||||
|
||||
a = true;
|
||||
if (flag) {
|
||||
i1 = 15;
|
||||
l1 = 15;
|
||||
} else {
|
||||
for (int j1 = 0; j1 < 4; j1++) {
|
||||
int l1 = i;
|
||||
int j2 = k;
|
||||
for (int i2 = 0; i2 < 4; i2++) {
|
||||
int k2 = i;
|
||||
int i3 = k;
|
||||
|
||||
if (j1 == 0) {
|
||||
l1--;
|
||||
}
|
||||
if (j1 == 1) {
|
||||
l1++;
|
||||
}
|
||||
if (j1 == 2) {
|
||||
j2--;
|
||||
}
|
||||
if (j1 == 3) {
|
||||
j2++;
|
||||
}
|
||||
i1 = f(world, l1, j, j2, i1);
|
||||
if (world.d(l1, j, j2) && !world.d(i, j + 1, k)) {
|
||||
i1 = f(world, l1, j + 1, j2, i1);
|
||||
continue;
|
||||
}
|
||||
if (!world.d(l1, j, j2)) {
|
||||
i1 = f(world, l1, j - 1, j2, i1);
|
||||
}
|
||||
}
|
||||
|
||||
if (i1 > 0) {
|
||||
i1--;
|
||||
} else {
|
||||
i1 = 0;
|
||||
}
|
||||
}
|
||||
//Allow redstone wire current changes
|
||||
if (l != i1) {
|
||||
CraftBlock block = (CraftBlock) ((WorldServer) world).getWorld().getBlockAt(i, j, k);
|
||||
BlockRedstoneEvent bre = new BlockRedstoneEvent(block, BlockFace.Self, l, i1);
|
||||
((WorldServer) world).getServer().getPluginManager().callEvent(bre);
|
||||
i1 = bre.getNewCurrent();
|
||||
}
|
||||
if (l != i1) {
|
||||
world.b(i, j, k, i1);
|
||||
world.b(i, j, k, i, j, k);
|
||||
if (i1 > 0) {
|
||||
i1--;
|
||||
}
|
||||
for (int k1 = 0; k1 < 4; k1++) {
|
||||
int i2 = i;
|
||||
int k2 = k;
|
||||
int l2 = j - 1;
|
||||
|
||||
if (k1 == 0) {
|
||||
i2--;
|
||||
}
|
||||
if (k1 == 1) {
|
||||
i2++;
|
||||
}
|
||||
if (k1 == 2) {
|
||||
if (i2 == 0) {
|
||||
k2--;
|
||||
}
|
||||
if (k1 == 3) {
|
||||
if (i2 == 1) {
|
||||
k2++;
|
||||
}
|
||||
if (world.d(i2, j, k2)) {
|
||||
l2 += 2;
|
||||
if (i2 == 2) {
|
||||
i3--;
|
||||
}
|
||||
int i3 = f(world, i2, j, k2, -1);
|
||||
|
||||
if (i3 >= 0 && i3 != i1) {
|
||||
g(world, i2, j, k2);
|
||||
if (i2 == 3) {
|
||||
i3++;
|
||||
}
|
||||
i3 = f(world, i2, l2, k2, -1);
|
||||
if (i3 >= 0 && i3 != i1) {
|
||||
g(world, i2, l2, k2);
|
||||
if (k2 != l || j != i1 || i3 != j1) {
|
||||
l1 = f(world, k2, j, i3, l1);
|
||||
}
|
||||
if (world.d(k2, j, i3) && !world.d(i, j + 1, k)) {
|
||||
if (k2 != l || j + 1 != i1 || i3 != j1) {
|
||||
l1 = f(world, k2, j + 1, i3, l1);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (!world.d(k2, j, i3) && (k2 != l || j - 1 != i1 || i3 != j1)) {
|
||||
l1 = f(world, k2, j - 1, i3, l1);
|
||||
}
|
||||
}
|
||||
|
||||
if (l == 0 || i1 == 0) {
|
||||
world.g(i, j, k, bh);
|
||||
world.g(i - 1, j, k, bh);
|
||||
world.g(i + 1, j, k, bh);
|
||||
world.g(i, j, k - 1, bh);
|
||||
world.g(i, j, k + 1, bh);
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.g(i, j + 1, k, bh);
|
||||
if (l1 > 0) {
|
||||
l1--;
|
||||
} else {
|
||||
l1 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Craftbukkit start
|
||||
if (k1 != l1) {
|
||||
CraftBlock block = (CraftBlock) ((WorldServer) world).getWorld().getBlockAt(i, j, k);
|
||||
BlockRedstoneEvent bre = new BlockRedstoneEvent(block, BlockFace.Self, k1, l1);
|
||||
((WorldServer) world).getServer().getPluginManager().callEvent(bre);
|
||||
l1 = bre.getNewCurrent();
|
||||
}
|
||||
// Craftbukkit end
|
||||
|
||||
if (k1 != l1) {
|
||||
world.i = true;
|
||||
world.c(i, j, k, l1);
|
||||
world.b(i, j, k, i, j, k);
|
||||
world.i = false;
|
||||
for (int j2 = 0; j2 < 4; j2++) {
|
||||
int l2 = i;
|
||||
int j3 = k;
|
||||
int k3 = j - 1;
|
||||
|
||||
if (j2 == 0) {
|
||||
l2--;
|
||||
}
|
||||
if (j2 == 1) {
|
||||
l2++;
|
||||
}
|
||||
if (j2 == 2) {
|
||||
j3--;
|
||||
}
|
||||
if (j2 == 3) {
|
||||
j3++;
|
||||
}
|
||||
if (world.d(l2, j, j3)) {
|
||||
k3 += 2;
|
||||
}
|
||||
int l3 = 0;
|
||||
|
||||
l3 = f(world, l2, j, j3, -1);
|
||||
l1 = world.b(i, j, k);
|
||||
if (l1 > 0) {
|
||||
l1--;
|
||||
}
|
||||
if (l3 >= 0 && l3 != l1) {
|
||||
a(world, l2, j, j3, i, j, k);
|
||||
}
|
||||
l3 = f(world, l2, k3, j3, -1);
|
||||
l1 = world.b(i, j, k);
|
||||
if (l1 > 0) {
|
||||
l1--;
|
||||
}
|
||||
if (l3 >= 0 && l3 != l1) {
|
||||
a(world, l2, k3, j3, i, j, k);
|
||||
}
|
||||
}
|
||||
|
||||
if (k1 == 0 || l1 == 0) {
|
||||
b.add(((new ChunkPosition(i, j, k))));
|
||||
b.add(((new ChunkPosition(i - 1, j, k))));
|
||||
b.add(((new ChunkPosition(i + 1, j, k))));
|
||||
b.add(((new ChunkPosition(i, j - 1, k))));
|
||||
b.add(((new ChunkPosition(i, j + 1, k))));
|
||||
b.add(((new ChunkPosition(i, j, k - 1))));
|
||||
b.add(((new ChunkPosition(i, j, k + 1))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void h(World world, int i, int j, int k) {
|
||||
if (world.a(i, j, k) != bh) {
|
||||
if (world.a(i, j, k) != bi) {
|
||||
return;
|
||||
} else {
|
||||
world.g(i, j, k, bh);
|
||||
world.g(i - 1, j, k, bh);
|
||||
world.g(i + 1, j, k, bh);
|
||||
world.g(i, j, k - 1, bh);
|
||||
world.g(i, j, k + 1, bh);
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.g(i, j + 1, k, bh);
|
||||
world.h(i, j, k, bi);
|
||||
world.h(i - 1, j, k, bi);
|
||||
world.h(i + 1, j, k, bi);
|
||||
world.h(i, j, k - 1, bi);
|
||||
world.h(i, j, k + 1, bi);
|
||||
world.h(i, j - 1, k, bi);
|
||||
world.h(i, j + 1, k, bi);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -148,8 +181,8 @@ public class BlockRedstoneWire extends Block {
|
||||
return;
|
||||
}
|
||||
g(world, i, j, k);
|
||||
world.g(i, j + 1, k, bh);
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.h(i, j + 1, k, bi);
|
||||
world.h(i, j - 1, k, bi);
|
||||
h(world, i - 1, j, k);
|
||||
h(world, i + 1, j, k);
|
||||
h(world, i, j, k - 1);
|
||||
@ -181,8 +214,8 @@ public class BlockRedstoneWire extends Block {
|
||||
if (world.z) {
|
||||
return;
|
||||
}
|
||||
world.g(i, j + 1, k, bh);
|
||||
world.g(i, j - 1, k, bh);
|
||||
world.h(i, j + 1, k, bi);
|
||||
world.h(i, j - 1, k, bi);
|
||||
g(world, i, j, k);
|
||||
h(world, i - 1, j, k);
|
||||
h(world, i + 1, j, k);
|
||||
@ -211,7 +244,7 @@ public class BlockRedstoneWire extends Block {
|
||||
}
|
||||
|
||||
private int f(World world, int i, int j, int k, int l) {
|
||||
if (world.a(i, j, k) != bh) {
|
||||
if (world.a(i, j, k) != bi) {
|
||||
return l;
|
||||
}
|
||||
int i1 = world.b(i, j, k);
|
||||
@ -232,7 +265,7 @@ public class BlockRedstoneWire extends Block {
|
||||
|
||||
if (!flag) {
|
||||
a_(world, i, j, k, i1);
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
} else {
|
||||
g(world, i, j, k);
|
||||
}
|
||||
@ -240,7 +273,7 @@ public class BlockRedstoneWire extends Block {
|
||||
}
|
||||
|
||||
public int a(int i, Random random) {
|
||||
return Item.aA.aW;
|
||||
return Item.aA.ba;
|
||||
}
|
||||
|
||||
public boolean d(World world, int i, int j, int k, int l) {
|
||||
@ -302,7 +335,7 @@ public class BlockRedstoneWire extends Block {
|
||||
public static boolean b(IBlockAccess iblockaccess, int i, int j, int k) {
|
||||
int l = iblockaccess.a(i, j, k);
|
||||
|
||||
if (l == Block.av.bh) {
|
||||
if (l == Block.av.bi) {
|
||||
return true;
|
||||
}
|
||||
if (l == 0) {
|
||||
|
@ -17,7 +17,7 @@ public class BlockStationary extends BlockFluids {
|
||||
|
||||
public void b(World world, int k, int l, int i1, int j1) {
|
||||
super.b(world, k, l, i1, j1);
|
||||
if (world.a(k, l, i1) == bh) {
|
||||
if (world.a(k, l, i1) == bi) {
|
||||
i(world, k, l, i1);
|
||||
}
|
||||
}
|
||||
@ -26,25 +26,27 @@ public class BlockStationary extends BlockFluids {
|
||||
int j1 = world.b(k, l, i1);
|
||||
|
||||
world.i = true;
|
||||
world.a(k, l, i1, bh - 1, j1);
|
||||
world.a(k, l, i1, bi - 1, j1);
|
||||
world.b(k, l, i1, k, l, i1);
|
||||
world.h(k, l, i1, bh - 1);
|
||||
world.h(k, l, i1, bi - 1);
|
||||
world.i = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void a(World world, int k, int l, int i1, Random random) {
|
||||
if (bs == Material.g) {
|
||||
if (bt == Material.g) {
|
||||
int j1 = random.nextInt(3);
|
||||
// CraftBukkit: prevent lava putting something on fire.
|
||||
|
||||
// Craftbukkit start: prevent lava putting something on fire.
|
||||
CraftServer server = ((WorldServer)world).getServer();
|
||||
CraftWorld cworld = ((WorldServer)world).getWorld();
|
||||
org.bukkit.Block bblock = (cworld.getBlockAt(k, l, i1));
|
||||
BlockIgniteEvent event = new BlockIgniteEvent((org.bukkit.Block) bblock, BlockIgniteEvent.IgniteCause.LAVA, null);
|
||||
server.getPluginManager().callEvent(event);
|
||||
if (event.isCancelled()) {
|
||||
;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
// Craftbukkit end
|
||||
|
||||
for (int k1 = 0; k1 < j1; k1++) {
|
||||
k += random.nextInt(3) - 1;
|
||||
l++;
|
||||
@ -53,18 +55,17 @@ public class BlockStationary extends BlockFluids {
|
||||
|
||||
if (l1 == 0) {
|
||||
if (j(world, k - 1, l, i1) || j(world, k + 1, l, i1) || j(world, k, l, i1 - 1) || j(world, k, l, i1 + 1) || j(world, k, l - 1, i1) || j(world, k, l + 1, i1)) {
|
||||
world.d(k, l, i1, Block.ar.bh);
|
||||
world.e(k, l, i1, Block.ar.bi);
|
||||
return;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (Block.m[l1].bs.c()) {
|
||||
if (Block.m[l1].bt.c()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean j(World world, int k, int l, int i1) {
|
||||
return world.c(k, l, i1).e();
|
||||
|
@ -11,20 +11,20 @@ public class BlockWorkbench extends Block {
|
||||
|
||||
protected BlockWorkbench(int i) {
|
||||
super(i, Material.c);
|
||||
bg = 59;
|
||||
bh = 59;
|
||||
}
|
||||
|
||||
public int a(int i) {
|
||||
if (i == 1) {
|
||||
return bg - 16;
|
||||
return bh - 16;
|
||||
}
|
||||
if (i == 0) {
|
||||
return Block.x.a(0);
|
||||
}
|
||||
if (i == 2 || i == 4) {
|
||||
return bg + 1;
|
||||
return bh + 1;
|
||||
} else {
|
||||
return bg;
|
||||
return bh;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,9 +25,7 @@ public class ChunkProviderServer implements IChunkProvider {
|
||||
a = ((Set) (new HashSet()));
|
||||
e = ((Map) (new HashMap()));
|
||||
f = ((List) (new ArrayList()));
|
||||
b = new Chunk(((World) (worldserver)), new byte[32768], 0, 0);
|
||||
b.q = true;
|
||||
b.p = true;
|
||||
b = ((Chunk) (new EmptyChunk(((World) (worldserver)), new byte[32768], 0, 0)));
|
||||
g = worldserver;
|
||||
d = ichunkloader;
|
||||
c = ichunkprovider;
|
||||
@ -66,8 +64,8 @@ public class ChunkProviderServer implements IChunkProvider {
|
||||
}
|
||||
e.put(((chunkcoordinates)), ((chunk)));
|
||||
f.add(((chunk)));
|
||||
chunk.c();
|
||||
if (chunk != null) {
|
||||
chunk.c();
|
||||
chunk.d();
|
||||
}
|
||||
|
||||
@ -124,7 +122,7 @@ public class ChunkProviderServer implements IChunkProvider {
|
||||
Chunk chunk = d.a(((World) (g)), i, j);
|
||||
|
||||
if (chunk != null) {
|
||||
chunk.s = g.e;
|
||||
chunk.r = g.e;
|
||||
}
|
||||
return chunk;
|
||||
} catch (Exception exception) {
|
||||
@ -149,7 +147,7 @@ public class ChunkProviderServer implements IChunkProvider {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
chunk.s = g.e;
|
||||
chunk.r = g.e;
|
||||
d.a(((World) (g)), chunk);
|
||||
} catch (Throwable ioexception) { // CraftBukkit -- downcast to work
|
||||
ioexception.printStackTrace();
|
||||
|
@ -67,12 +67,13 @@ public abstract class Entity {
|
||||
public int ad;
|
||||
private boolean c;
|
||||
protected boolean ae;
|
||||
protected DataWatcher af;
|
||||
private double d;
|
||||
private double e;
|
||||
public boolean af;
|
||||
public int ag;
|
||||
public boolean ag;
|
||||
public int ah;
|
||||
public int ai;
|
||||
public int aj;
|
||||
|
||||
public Entity(World world) {
|
||||
g = a++;
|
||||
@ -106,9 +107,18 @@ public abstract class Entity {
|
||||
ad = 300;
|
||||
c = true;
|
||||
ae = false;
|
||||
af = false;
|
||||
af = new DataWatcher();
|
||||
ag = false;
|
||||
l = world;
|
||||
a(0.0D, 0.0D, 0.0D);
|
||||
af.a(0, ((Byte.valueOf((byte) 0))));
|
||||
a();
|
||||
}
|
||||
|
||||
protected abstract void a();
|
||||
|
||||
public DataWatcher p() {
|
||||
return af;
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
@ -123,7 +133,7 @@ public abstract class Entity {
|
||||
return g;
|
||||
}
|
||||
|
||||
public void l() {
|
||||
public void q() {
|
||||
G = true;
|
||||
}
|
||||
|
||||
@ -148,10 +158,10 @@ public abstract class Entity {
|
||||
}
|
||||
|
||||
public void b_() {
|
||||
m();
|
||||
r();
|
||||
}
|
||||
|
||||
public void m() {
|
||||
public void r() {
|
||||
if (k != null && k.G) {
|
||||
k = null;
|
||||
}
|
||||
@ -162,7 +172,7 @@ public abstract class Entity {
|
||||
o = r;
|
||||
y = w;
|
||||
x = v;
|
||||
if (r()) {
|
||||
if (v()) {
|
||||
if (!ab && !c) {
|
||||
float f1 = MathHelper.a(s * s * 0.20000000298023224D + t * t + u * u * 0.20000000298023224D) * 0.2F;
|
||||
|
||||
@ -207,24 +217,28 @@ public abstract class Entity {
|
||||
Z--;
|
||||
}
|
||||
}
|
||||
if (t()) {
|
||||
n();
|
||||
if (x()) {
|
||||
s();
|
||||
}
|
||||
if (q < -64D) {
|
||||
o();
|
||||
t();
|
||||
}
|
||||
if (!l.z) {
|
||||
a(0, Z > 0);
|
||||
a(2, k != null);
|
||||
}
|
||||
c = false;
|
||||
}
|
||||
|
||||
protected void n() {
|
||||
protected void s() {
|
||||
if (!ae) {
|
||||
a(((Entity) (null)), 4);
|
||||
Z = 600;
|
||||
}
|
||||
}
|
||||
|
||||
protected void o() {
|
||||
l();
|
||||
protected void t() {
|
||||
q();
|
||||
}
|
||||
|
||||
public boolean b(double d1, double d2, double d3) {
|
||||
@ -251,7 +265,7 @@ public abstract class Entity {
|
||||
double d7 = d2;
|
||||
double d8 = d3;
|
||||
AxisAlignedBB axisalignedbb = z.b();
|
||||
boolean flag = A && p();
|
||||
boolean flag = A && J();
|
||||
|
||||
if (flag) {
|
||||
double d9 = 0.050000000000000003D;
|
||||
@ -383,12 +397,12 @@ public abstract class Entity {
|
||||
|
||||
if (L > (float) b && i3 > 0) {
|
||||
b++;
|
||||
StepSound stepsound = Block.m[i3].bq;
|
||||
StepSound stepsound = Block.m[i3].br;
|
||||
|
||||
if (l.a(k3, i4 + 1, l1) == Block.aS.bh) {
|
||||
stepsound = Block.aS.bq;
|
||||
if (l.a(k3, i4 + 1, l1) == Block.aS.bi) {
|
||||
stepsound = Block.aS.br;
|
||||
l.a(this, stepsound.c(), stepsound.a() * 0.15F, stepsound.b());
|
||||
} else if (!Block.m[i3].bs.d()) {
|
||||
} else if (!Block.m[i3].bt.d()) {
|
||||
l.a(this, stepsound.c(), stepsound.a() * 0.15F, stepsound.b());
|
||||
}
|
||||
Block.m[i3].b(l, k3, i4, l1, this);
|
||||
@ -401,6 +415,7 @@ public abstract class Entity {
|
||||
int k4 = MathHelper.b(z.e);
|
||||
int l4 = MathHelper.b(z.f);
|
||||
|
||||
if (l.a(l3, j4, i2, j3, k4, l4)) {
|
||||
for (int i5 = l3; i5 <= j3; i5++) {
|
||||
for (int j5 = j4; j5 <= k4; j5++) {
|
||||
for (int k5 = i2; k5 <= l4; k5++) {
|
||||
@ -412,9 +427,9 @@ public abstract class Entity {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
R *= 0.4F;
|
||||
boolean flag2 = r();
|
||||
boolean flag2 = v();
|
||||
|
||||
if (l.c(z)) {
|
||||
b(1);
|
||||
@ -444,11 +459,7 @@ public abstract class Entity {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean p() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public AxisAlignedBB q() {
|
||||
public AxisAlignedBB u() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -477,19 +488,19 @@ public abstract class Entity {
|
||||
|
||||
protected void a(float f1) {}
|
||||
|
||||
public boolean r() {
|
||||
public boolean v() {
|
||||
return l.a(z.b(0.0D, -0.40000000596046448D, 0.0D), Material.f, this);
|
||||
}
|
||||
|
||||
public boolean a(Material material) {
|
||||
double d1 = q + (double) s();
|
||||
double d1 = q + (double) w();
|
||||
int i1 = MathHelper.b(p);
|
||||
int j1 = MathHelper.d(MathHelper.b(d1));
|
||||
int k1 = MathHelper.b(r);
|
||||
int l1 = l.a(i1, j1, k1);
|
||||
|
||||
if (l1 != 0 && Block.m[l1].bs == material) {
|
||||
float f1 = BlockFluids.b(l.b(i1, j1, k1)) - 0.1111111F;
|
||||
if (l1 != 0 && Block.m[l1].bt == material) {
|
||||
float f1 = BlockFluids.c(l.b(i1, j1, k1)) - 0.1111111F;
|
||||
float f2 = (float) (j1 + 1) - f1;
|
||||
|
||||
return d1 < (double) f2;
|
||||
@ -498,12 +509,12 @@ public abstract class Entity {
|
||||
}
|
||||
}
|
||||
|
||||
public float s() {
|
||||
public float w() {
|
||||
return 0.0F;
|
||||
}
|
||||
|
||||
public boolean t() {
|
||||
return l.a(z.b(0.0D, -0.40000000596046448D, 0.0D), Material.g);
|
||||
public boolean x() {
|
||||
return l.a(z.b(-0.10000000149011612D, -0.40000000596046448D, -0.10000000149011612D), Material.g);
|
||||
}
|
||||
|
||||
public void a(float f1, float f2, float f3) {
|
||||
@ -531,7 +542,11 @@ public abstract class Entity {
|
||||
int j1 = MathHelper.b((q - (double) H) + d1);
|
||||
int k1 = MathHelper.b(r);
|
||||
|
||||
return l.k(i1, j1, k1);
|
||||
if (l.a(MathHelper.b(z.a), MathHelper.b(z.b), MathHelper.b(z.c), MathHelper.b(z.d), MathHelper.b(z.e), MathHelper.b(z.f))) {
|
||||
return l.l(i1, j1, k1);
|
||||
} else {
|
||||
return 0.0F;
|
||||
}
|
||||
}
|
||||
|
||||
public void b(double d1, double d2, double d3, float f1, float f2) {
|
||||
@ -554,9 +569,9 @@ public abstract class Entity {
|
||||
}
|
||||
|
||||
public void c(double d1, double d2, double d3, float f1, float f2) {
|
||||
m = p = d1;
|
||||
n = q = d2 + (double) H;
|
||||
o = r = d3;
|
||||
O = m = p = d1;
|
||||
P = n = q = d2 + (double) H;
|
||||
Q = o = r = d3;
|
||||
v = f1;
|
||||
w = f2;
|
||||
a(p, q, r);
|
||||
@ -630,12 +645,12 @@ public abstract class Entity {
|
||||
u += d3;
|
||||
}
|
||||
|
||||
protected void u() {
|
||||
protected void y() {
|
||||
E = true;
|
||||
}
|
||||
|
||||
public boolean a(Entity entity, int i1) {
|
||||
u();
|
||||
y();
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -643,14 +658,14 @@ public abstract class Entity {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean v() {
|
||||
public boolean z() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void b(Entity entity, int i1) {}
|
||||
|
||||
public boolean c(NBTTagCompound nbttagcompound) {
|
||||
String s1 = w();
|
||||
String s1 = A();
|
||||
|
||||
if (G || s1 == null) {
|
||||
return false;
|
||||
@ -700,7 +715,7 @@ public abstract class Entity {
|
||||
b(nbttagcompound);
|
||||
}
|
||||
|
||||
protected final String w() {
|
||||
protected final String A() {
|
||||
return EntityList.b(this);
|
||||
}
|
||||
|
||||
@ -736,25 +751,29 @@ public abstract class Entity {
|
||||
return nbttaglist;
|
||||
}
|
||||
|
||||
public EntityItem b(int i1, int j1) {
|
||||
public EntityItem a(int i1, int j1) {
|
||||
return a(i1, j1, 0.0F);
|
||||
}
|
||||
|
||||
public EntityItem a(int i1, int j1, float f1) {
|
||||
EntityItem entityitem = new EntityItem(l, p, q + (double) f1, r, new ItemStack(i1, j1));
|
||||
return a(new ItemStack(i1, j1, 0), f1);
|
||||
}
|
||||
|
||||
public EntityItem a(ItemStack itemstack, float f1) {
|
||||
EntityItem entityitem = new EntityItem(l, p, q + (double) f1, r, itemstack);
|
||||
|
||||
entityitem.c = 10;
|
||||
l.a(((Entity) (entityitem)));
|
||||
return entityitem;
|
||||
}
|
||||
|
||||
public boolean x() {
|
||||
public boolean B() {
|
||||
return !G;
|
||||
}
|
||||
|
||||
public boolean y() {
|
||||
public boolean C() {
|
||||
int i1 = MathHelper.b(p);
|
||||
int j1 = MathHelper.b(q + (double) s());
|
||||
int j1 = MathHelper.b(q + (double) w());
|
||||
int k1 = MathHelper.b(r);
|
||||
|
||||
return l.d(i1, j1, k1);
|
||||
@ -768,7 +787,7 @@ public abstract class Entity {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void z() {
|
||||
public void D() {
|
||||
if (k.G) {
|
||||
k = null;
|
||||
return;
|
||||
@ -777,7 +796,7 @@ public abstract class Entity {
|
||||
t = 0.0D;
|
||||
u = 0.0D;
|
||||
b_();
|
||||
k.A();
|
||||
k.E();
|
||||
e += k.v - k.x;
|
||||
d += k.w - k.y;
|
||||
for (; e >= 180D; e -= 360D) {
|
||||
@ -814,15 +833,15 @@ public abstract class Entity {
|
||||
w += ((float) (d2));
|
||||
}
|
||||
|
||||
public void A() {
|
||||
j.a(p, q + j() + j.B(), r);
|
||||
public void E() {
|
||||
j.a(p, q + k() + j.F(), r);
|
||||
}
|
||||
|
||||
public double B() {
|
||||
public double F() {
|
||||
return (double) H;
|
||||
}
|
||||
|
||||
public double j() {
|
||||
public double k() {
|
||||
return (double) J * 0.75D;
|
||||
}
|
||||
|
||||
@ -863,13 +882,35 @@ public abstract class Entity {
|
||||
entity.j = this;
|
||||
}
|
||||
|
||||
public Vec3D C() {
|
||||
public Vec3D G() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void D() {}
|
||||
public void H() {}
|
||||
|
||||
public int[] E() {
|
||||
public ItemStack[] I() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean J() {
|
||||
return c(1);
|
||||
}
|
||||
|
||||
public void b(boolean flag) {
|
||||
a(1, flag);
|
||||
}
|
||||
|
||||
protected boolean c(int i1) {
|
||||
return (af.a(0) & 1 << i1) != 0;
|
||||
}
|
||||
|
||||
protected void a(int i1, boolean flag) {
|
||||
byte byte0 = af.a(0);
|
||||
|
||||
if (flag) {
|
||||
af.b(0, ((Byte.valueOf((byte) (byte0 | 1 << i1)))));
|
||||
} else {
|
||||
af.b(0, ((Byte.valueOf((byte) (byte0 & ~(1 << i1))))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,9 +25,9 @@ public class EntityBoat extends Entity implements CraftMappable { // CraftBukkit
|
||||
private int d;
|
||||
private double e;
|
||||
private double f;
|
||||
private double aj;
|
||||
private double ak;
|
||||
private double al;
|
||||
private double am;
|
||||
|
||||
// CraftBukkit start
|
||||
private CraftBoat boat;
|
||||
@ -50,15 +50,17 @@ public class EntityBoat extends Entity implements CraftMappable { // CraftBukkit
|
||||
handleCreation(world); // CraftBukkit
|
||||
}
|
||||
|
||||
protected void a() {}
|
||||
|
||||
public AxisAlignedBB d(Entity entity) {
|
||||
return entity.z;
|
||||
}
|
||||
|
||||
public AxisAlignedBB q() {
|
||||
public AxisAlignedBB u() {
|
||||
return z;
|
||||
}
|
||||
|
||||
public boolean v() {
|
||||
public boolean z() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -84,7 +86,7 @@ public class EntityBoat extends Entity implements CraftMappable { // CraftBukkit
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
public double j() {
|
||||
public double l() {
|
||||
return (double) J * 0.0D - 0.30000001192092896D;
|
||||
}
|
||||
|
||||
@ -104,17 +106,17 @@ public class EntityBoat extends Entity implements CraftMappable { // CraftBukkit
|
||||
c = -c;
|
||||
b = 10;
|
||||
a += i * 10;
|
||||
u();
|
||||
y();
|
||||
if (a > 40) {
|
||||
for (int k = 0; k < 3; k++) {
|
||||
a(Block.x.bh, 1, 0.0F);
|
||||
for (int j = 0; j < 3; j++) {
|
||||
a(Block.x.bi, 1, 0.0F);
|
||||
}
|
||||
|
||||
for (int l = 0; l < 2; l++) {
|
||||
a(Item.B.aW, 1, 0.0F);
|
||||
a(Item.B.ba, 1, 0.0F);
|
||||
}
|
||||
|
||||
l();
|
||||
q();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -145,9 +147,9 @@ public class EntityBoat extends Entity implements CraftMappable { // CraftBukkit
|
||||
int i = 5;
|
||||
double d1 = 0.0D;
|
||||
|
||||
for (int k = 0; k < i; k++) {
|
||||
double d2 = (z.b + ((z.e - z.b) * (double) (k + 0)) / (double) i) - 0.125D;
|
||||
double d3 = (z.b + ((z.e - z.b) * (double) (k + 1)) / (double) i) - 0.125D;
|
||||
for (int j = 0; j < i; j++) {
|
||||
double d2 = (z.b + ((z.e - z.b) * (double) (j + 0)) / (double) i) - 0.125D;
|
||||
double d3 = (z.b + ((z.e - z.b) * (double) (j + 1)) / (double) i) - 0.125D;
|
||||
AxisAlignedBB axisalignedbb = AxisAlignedBB.b(z.a, d2, z.c, z.d, d3, z.f);
|
||||
|
||||
if (this.l.b(axisalignedbb, Material.f)) {
|
||||
@ -159,17 +161,17 @@ public class EntityBoat extends Entity implements CraftMappable { // CraftBukkit
|
||||
if (d > 0) {
|
||||
double d4 = p + (e - p) / (double) d;
|
||||
double d7 = q + (f - q) / (double) d;
|
||||
double d10 = r + (aj - r) / (double) d;
|
||||
double d10 = r + (ak - r) / (double) d;
|
||||
double d13;
|
||||
|
||||
for (d13 = ak - (double) v; d13 < -180D; d13 += 360D) {
|
||||
for (d13 = al - (double) v; d13 < -180D; d13 += 360D) {
|
||||
;
|
||||
}
|
||||
for (; d13 >= 180D; d13 -= 360D) {
|
||||
;
|
||||
}
|
||||
v += ((float) (d13 / (double) d));
|
||||
w += ((float) ((al - (double) w) / (double) d));
|
||||
w += ((float) ((am - (double) w) / (double) d));
|
||||
d--;
|
||||
a(d4, d7, d10);
|
||||
b(v, w);
|
||||
@ -193,9 +195,9 @@ public class EntityBoat extends Entity implements CraftMappable { // CraftBukkit
|
||||
double d6 = d1 * 2D - 1.0D;
|
||||
|
||||
t += 0.039999999105930328D * d6;
|
||||
if (j != null) {
|
||||
s += j.s * 0.20000000000000001D;
|
||||
u += j.u * 0.20000000000000001D;
|
||||
if (this.j != null) {
|
||||
s += this.j.s * 0.20000000000000001D;
|
||||
u += this.j.u * 0.20000000000000001D;
|
||||
}
|
||||
double d9 = 0.40000000000000002D;
|
||||
|
||||
@ -239,17 +241,16 @@ public class EntityBoat extends Entity implements CraftMappable { // CraftBukkit
|
||||
this.l.a("splash", d21, q - 0.125D, d23, s, t, u);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (B && d12 > 0.14999999999999999D) {
|
||||
if (!this.l.z) {
|
||||
l();
|
||||
q();
|
||||
for (int i1 = 0; i1 < 3; i1++) {
|
||||
a(Block.x.bh, 1, 0.0F);
|
||||
a(Block.x.bi, 1, 0.0F);
|
||||
}
|
||||
|
||||
for (int j1 = 0; j1 < 2; j1++) {
|
||||
a(Item.B.aW, 1, 0.0F);
|
||||
a(Item.B.ba, 1, 0.0F);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -299,24 +300,24 @@ public class EntityBoat extends Entity implements CraftMappable { // CraftBukkit
|
||||
for (int k1 = 0; k1 < list.size(); k1++) {
|
||||
Entity entity = (Entity) list.get(k1);
|
||||
|
||||
if (entity != j && entity.v() && (entity instanceof EntityBoat)) {
|
||||
if (entity != this.j && entity.z() && (entity instanceof EntityBoat)) {
|
||||
entity.c(((Entity) (this)));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (j != null && j.G) {
|
||||
j = null;
|
||||
if (this.j != null && this.j.G) {
|
||||
this.j = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void A() {
|
||||
public void E() {
|
||||
if (j == null) {
|
||||
return;
|
||||
} else {
|
||||
double d1 = Math.cos(((double) v * 3.1415926535897931D) / 180D) * 0.40000000000000002D;
|
||||
double d2 = Math.sin(((double) v * 3.1415926535897931D) / 180D) * 0.40000000000000002D;
|
||||
|
||||
j.a(p + d1, q + j() + j.B(), r + d2);
|
||||
j.a(p + d1, q + l() + j.F(), r + d2);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -16,9 +16,9 @@ public class EntityEgg extends Entity {
|
||||
private int e;
|
||||
private boolean f;
|
||||
public int a;
|
||||
private EntityLiving aj;
|
||||
private int ak;
|
||||
private EntityLiving ak;
|
||||
private int al;
|
||||
private int am;
|
||||
|
||||
public EntityEgg(World world) {
|
||||
super(world);
|
||||
@ -28,10 +28,12 @@ public class EntityEgg extends Entity {
|
||||
e = 0;
|
||||
f = false;
|
||||
a = 0;
|
||||
al = 0;
|
||||
am = 0;
|
||||
a(0.25F, 0.25F);
|
||||
}
|
||||
|
||||
protected void a() {}
|
||||
|
||||
public EntityEgg(World world, EntityLiving entityliving) {
|
||||
super(world);
|
||||
b = -1;
|
||||
@ -40,10 +42,10 @@ public class EntityEgg extends Entity {
|
||||
e = 0;
|
||||
f = false;
|
||||
a = 0;
|
||||
al = 0;
|
||||
aj = entityliving;
|
||||
am = 0;
|
||||
ak = entityliving;
|
||||
a(0.25F, 0.25F);
|
||||
c(entityliving.p, entityliving.q + (double) entityliving.s(), entityliving.r, entityliving.v, entityliving.w);
|
||||
c(entityliving.p, entityliving.q + (double) entityliving.w(), entityliving.r, entityliving.v, entityliving.w);
|
||||
p -= MathHelper.b((v / 180F) * 3.141593F) * 0.16F;
|
||||
q -= 0.10000000149011612D;
|
||||
r -= MathHelper.a((v / 180F) * 3.141593F) * 0.16F;
|
||||
@ -57,8 +59,22 @@ public class EntityEgg extends Entity {
|
||||
a(s, t, u, 1.5F, 1.0F);
|
||||
}
|
||||
|
||||
public void a(double d1, double d2, double d3, float f1,
|
||||
float f2) {
|
||||
public EntityEgg(World world, double d1, double d2, double d3) {
|
||||
super(world);
|
||||
b = -1;
|
||||
c = -1;
|
||||
d = -1;
|
||||
e = 0;
|
||||
f = false;
|
||||
a = 0;
|
||||
am = 0;
|
||||
al = 0;
|
||||
a(0.25F, 0.25F);
|
||||
a(d1, d2, d3);
|
||||
H = 0.0F;
|
||||
}
|
||||
|
||||
public void a(double d1, double d2, double d3, float f1, float f2) {
|
||||
float f3 = MathHelper.a(d1 * d1 + d2 * d2 + d3 * d3);
|
||||
|
||||
d1 /= f3;
|
||||
@ -77,7 +93,7 @@ public class EntityEgg extends Entity {
|
||||
|
||||
x = v = (float) ((Math.atan2(d1, d3) * 180D) / 3.1415927410125732D);
|
||||
y = w = (float) ((Math.atan2(d2, f4) * 180D) / 3.1415927410125732D);
|
||||
ak = 0;
|
||||
al = 0;
|
||||
}
|
||||
|
||||
public void b_() {
|
||||
@ -96,17 +112,17 @@ public class EntityEgg extends Entity {
|
||||
s *= W.nextFloat() * 0.2F;
|
||||
t *= W.nextFloat() * 0.2F;
|
||||
u *= W.nextFloat() * 0.2F;
|
||||
ak = 0;
|
||||
al = 0;
|
||||
am = 0;
|
||||
} else {
|
||||
ak++;
|
||||
if (ak == 1200) {
|
||||
l();
|
||||
al++;
|
||||
if (al == 1200) {
|
||||
q();
|
||||
}
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
al++;
|
||||
am++;
|
||||
}
|
||||
Vec3D vec3d = Vec3D.b(p, q, r);
|
||||
Vec3D vec3d1 = Vec3D.b(p + s, q + t, r + u);
|
||||
@ -119,13 +135,13 @@ public class EntityEgg extends Entity {
|
||||
}
|
||||
if (!this.l.z) {
|
||||
Entity entity = null;
|
||||
List list = this.l.b(this, z.a(s, t, u).b(1.0D, 1.0D, 1.0D));
|
||||
List list = this.l.b(((Entity) (this)), z.a(s, t, u).b(1.0D, 1.0D, 1.0D));
|
||||
double d1 = 0.0D;
|
||||
|
||||
for (int l = 0; l < list.size(); l++) {
|
||||
Entity entity1 = (Entity) list.get(l);
|
||||
|
||||
if (!entity1.c_() || entity1 == aj && al < 5) {
|
||||
if (!entity1.c_() || entity1 == ak && am < 5) {
|
||||
continue;
|
||||
}
|
||||
float f4 = 0.3F;
|
||||
@ -149,7 +165,7 @@ public class EntityEgg extends Entity {
|
||||
}
|
||||
if (movingobjectposition != null) {
|
||||
if (movingobjectposition.g != null) {
|
||||
if (!movingobjectposition.g.a(aj, 0)) {
|
||||
if (!movingobjectposition.g.a(((Entity) (ak)), 0)) {
|
||||
;
|
||||
}
|
||||
}
|
||||
@ -162,9 +178,9 @@ public class EntityEgg extends Entity {
|
||||
}
|
||||
MobType type = MobType.CHICKEN;
|
||||
|
||||
if (aj instanceof EntityPlayerMP) {
|
||||
if (ak instanceof EntityPlayerMP) {
|
||||
CraftServer server = ((WorldServer) l).getServer();
|
||||
CraftPlayer player = new CraftPlayer(server, (EntityPlayerMP) aj);
|
||||
CraftPlayer player = new CraftPlayer(server, (EntityPlayerMP) ak);
|
||||
PlayerEggThrowEvent event = new PlayerEggThrowEvent(Type.PLAYER_EGG_THROW, player, hatching, numHatching, type);
|
||||
server.getPluginManager().callEvent(event);
|
||||
hatching = event.isHatching();
|
||||
@ -220,7 +236,7 @@ public class EntityEgg extends Entity {
|
||||
this.l.a("snowballpoof", p, q, r, 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
|
||||
l();
|
||||
q();
|
||||
}
|
||||
p += s;
|
||||
q += t;
|
||||
@ -245,7 +261,7 @@ public class EntityEgg extends Entity {
|
||||
float f2 = 0.99F;
|
||||
float f5 = 0.03F;
|
||||
|
||||
if (r()) {
|
||||
if (v()) {
|
||||
for (int i1 = 0; i1 < 4; i1++) {
|
||||
float f3 = 0.25F;
|
||||
|
||||
@ -271,19 +287,19 @@ public class EntityEgg extends Entity {
|
||||
}
|
||||
|
||||
public void b(NBTTagCompound nbttagcompound) {
|
||||
b = nbttagcompound.c("xTile");
|
||||
c = nbttagcompound.c("yTile");
|
||||
d = nbttagcompound.c("zTile");
|
||||
b = ((int) (nbttagcompound.c("xTile")));
|
||||
c = ((int) (nbttagcompound.c("yTile")));
|
||||
d = ((int) (nbttagcompound.c("zTile")));
|
||||
e = nbttagcompound.b("inTile") & 0xff;
|
||||
a = nbttagcompound.b("shake") & 0xff;
|
||||
f = nbttagcompound.b("inGround") == 1;
|
||||
}
|
||||
|
||||
public void b(EntityPlayer entityplayer) {
|
||||
if (f && aj == entityplayer && a <= 0 && entityplayer.an.a(new ItemStack(Item.j.aW, 1))) {
|
||||
l.a(this, "random.pop", 0.2F, ((W.nextFloat() - W.nextFloat()) * 0.7F + 1.0F) * 2.0F);
|
||||
entityplayer.c(this, 1);
|
||||
l();
|
||||
if (f && ak == entityplayer && a <= 0 && entityplayer.an.a(new ItemStack(Item.j, 1))) {
|
||||
l.a(((Entity) (this)), "random.pop", 0.2F, ((W.nextFloat() - W.nextFloat()) * 0.7F + 1.0F) * 2.0F);
|
||||
entityplayer.c(((Entity) (this)), 1);
|
||||
q();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -16,16 +16,16 @@ import org.bukkit.event.vehicle.*;
|
||||
|
||||
public class EntityMinecart extends Entity implements IInventory, CraftMappable { // CraftBukkit
|
||||
|
||||
private ItemStack ak[];
|
||||
private ItemStack al[];
|
||||
public int a;
|
||||
public int b;
|
||||
public int c;
|
||||
private boolean al;
|
||||
private boolean am;
|
||||
public int d;
|
||||
public int e;
|
||||
public double f;
|
||||
public double aj;
|
||||
private static final int am[][][] = {
|
||||
public double ak;
|
||||
private static final int an[][][] = {
|
||||
{
|
||||
{
|
||||
0, 0, -1
|
||||
@ -88,12 +88,12 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
}
|
||||
}
|
||||
};
|
||||
private int an;
|
||||
private double ao;
|
||||
private int ao;
|
||||
private double ap;
|
||||
private double aq;
|
||||
private double ar;
|
||||
private double as;
|
||||
private double at;
|
||||
|
||||
// CraftBukkit start
|
||||
private CraftMinecart minecart;
|
||||
@ -111,17 +111,17 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
}
|
||||
|
||||
public ItemStack[] getContents() {
|
||||
return this.ak;
|
||||
return this.al;
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
public EntityMinecart(World world) {
|
||||
super(world);
|
||||
ak = new ItemStack[36];
|
||||
al = new ItemStack[36];
|
||||
a = 0;
|
||||
b = 0;
|
||||
c = 1;
|
||||
al = false;
|
||||
am = false;
|
||||
i = true;
|
||||
a(0.98F, 0.7F);
|
||||
H = J / 2.0F;
|
||||
@ -130,15 +130,17 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
handleCreation(world); // CraftBukkit
|
||||
}
|
||||
|
||||
protected void a() {}
|
||||
|
||||
public AxisAlignedBB d(Entity entity) {
|
||||
return entity.z;
|
||||
}
|
||||
|
||||
public AxisAlignedBB q() {
|
||||
public AxisAlignedBB u() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean v() {
|
||||
public boolean z() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -165,7 +167,7 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
public double j() {
|
||||
public double l() {
|
||||
return (double) J * 0.0D - 0.30000001192092896D;
|
||||
}
|
||||
|
||||
@ -185,16 +187,16 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
}
|
||||
c = -c;
|
||||
b = 10;
|
||||
u();
|
||||
y();
|
||||
a += i * 10;
|
||||
if (a > 40) {
|
||||
a(Item.ax.aW, 1, 0.0F);
|
||||
a(Item.ax.ba, 1, 0.0F);
|
||||
if (d == 1) {
|
||||
a(Block.au.bh, 1, 0.0F);
|
||||
a(Block.au.bi, 1, 0.0F);
|
||||
} else if (d == 2) {
|
||||
a(Block.aB.bh, 1, 0.0F);
|
||||
a(Block.aB.bi, 1, 0.0F);
|
||||
}
|
||||
l();
|
||||
q();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -203,9 +205,9 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
return !G;
|
||||
}
|
||||
|
||||
public void l() {
|
||||
public void q() {
|
||||
label0:
|
||||
for (int i = 0; i < a(); i++) {
|
||||
for (int i = 0; i < h_(); i++) {
|
||||
ItemStack itemstack = a(i);
|
||||
|
||||
if (itemstack == null) {
|
||||
@ -219,13 +221,13 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
if (itemstack.a <= 0) {
|
||||
continue label0;
|
||||
}
|
||||
int k = W.nextInt(21) + 10;
|
||||
int j = W.nextInt(21) + 10;
|
||||
|
||||
if (k > itemstack.a) {
|
||||
k = itemstack.a;
|
||||
if (j > itemstack.a) {
|
||||
j = itemstack.a;
|
||||
}
|
||||
itemstack.a -= k;
|
||||
EntityItem entityitem = new EntityItem(l, p + (double) f1, q + (double) f2, r + (double) f3, new ItemStack(itemstack.c, k, itemstack.d));
|
||||
itemstack.a -= j;
|
||||
EntityItem entityitem = new EntityItem(l, p + (double) f1, q + (double) f2, r + (double) f3, new ItemStack(itemstack.c, j, itemstack.h()));
|
||||
float f4 = 0.05F;
|
||||
|
||||
entityitem.s = (float) W.nextGaussian() * f4;
|
||||
@ -235,7 +237,7 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
} while (true);
|
||||
}
|
||||
|
||||
super.l();
|
||||
super.q();
|
||||
}
|
||||
|
||||
public void b_() {
|
||||
@ -252,22 +254,22 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
if (a > 0) {
|
||||
a--;
|
||||
}
|
||||
if (l.z && an > 0) {
|
||||
if (an > 0) {
|
||||
double d1 = p + (ao - p) / (double) an;
|
||||
double d2 = q + (ap - q) / (double) an;
|
||||
double d3 = r + (aq - r) / (double) an;
|
||||
if (this.l.z && ao > 0) {
|
||||
if (ao > 0) {
|
||||
double d1 = p + (ap - p) / (double) ao;
|
||||
double d2 = q + (aq - q) / (double) ao;
|
||||
double d3 = r + (ar - r) / (double) ao;
|
||||
double d4;
|
||||
|
||||
for (d4 = ar - (double) v; d4 < -180D; d4 += 360D) {
|
||||
for (d4 = as - (double) v; d4 < -180D; d4 += 360D) {
|
||||
;
|
||||
}
|
||||
for (; d4 >= 180D; d4 -= 360D) {
|
||||
;
|
||||
}
|
||||
v += ((float) (d4 / (double) an));
|
||||
w += ((float) ((as - (double) w) / (double) an));
|
||||
an--;
|
||||
v += ((float) (d4 / (double) ao));
|
||||
w += ((float) ((at - (double) w) / (double) ao));
|
||||
ao--;
|
||||
a(d1, d2, d3);
|
||||
b(v, w);
|
||||
} else {
|
||||
@ -281,37 +283,37 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
o = r;
|
||||
t -= 0.039999999105930328D;
|
||||
int i = MathHelper.b(p);
|
||||
int k = MathHelper.b(q);
|
||||
int i1 = MathHelper.b(r);
|
||||
int j = MathHelper.b(q);
|
||||
int l = MathHelper.b(r);
|
||||
|
||||
if (l.a(i, k - 1, i1) == Block.aG.bh) {
|
||||
k--;
|
||||
if (this.l.a(i, j - 1, l) == Block.aG.bi) {
|
||||
j--;
|
||||
}
|
||||
double d6 = 0.40000000000000002D;
|
||||
boolean flag = false;
|
||||
double d5 = 0.0078125D;
|
||||
|
||||
if (l.a(i, k, i1) == Block.aG.bh) {
|
||||
if (this.l.a(i, j, l) == Block.aG.bi) {
|
||||
Vec3D vec3d = g(p, q, r);
|
||||
int j1 = l.b(i, k, i1);
|
||||
int i1 = this.l.b(i, j, l);
|
||||
|
||||
q = k;
|
||||
if (j1 >= 2 && j1 <= 5) {
|
||||
q = k + 1;
|
||||
q = j;
|
||||
if (i1 >= 2 && i1 <= 5) {
|
||||
q = j + 1;
|
||||
}
|
||||
if (j1 == 2) {
|
||||
if (i1 == 2) {
|
||||
s -= d5;
|
||||
}
|
||||
if (j1 == 3) {
|
||||
if (i1 == 3) {
|
||||
s += d5;
|
||||
}
|
||||
if (j1 == 4) {
|
||||
if (i1 == 4) {
|
||||
u += d5;
|
||||
}
|
||||
if (j1 == 5) {
|
||||
if (i1 == 5) {
|
||||
u -= d5;
|
||||
}
|
||||
int ai[][] = am[j1];
|
||||
int ai[][] = an[i1];
|
||||
double d7 = ai[1][0] - ai[0][0];
|
||||
double d8 = ai[1][2] - ai[0][2];
|
||||
double d9 = Math.sqrt(d7 * d7 + d8 * d8);
|
||||
@ -327,17 +329,17 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
u = (d11 * d8) / d9;
|
||||
double d14 = 0.0D;
|
||||
double d15 = (double) i + 0.5D + (double) ai[0][0] * 0.5D;
|
||||
double d16 = (double) i1 + 0.5D + (double) ai[0][2] * 0.5D;
|
||||
double d16 = (double) l + 0.5D + (double) ai[0][2] * 0.5D;
|
||||
double d17 = (double) i + 0.5D + (double) ai[1][0] * 0.5D;
|
||||
double d18 = (double) i1 + 0.5D + (double) ai[1][2] * 0.5D;
|
||||
double d18 = (double) l + 0.5D + (double) ai[1][2] * 0.5D;
|
||||
|
||||
d7 = d17 - d15;
|
||||
d8 = d18 - d16;
|
||||
if (d7 == 0.0D) {
|
||||
p = (double) i + 0.5D;
|
||||
d14 = r - (double) i1;
|
||||
d14 = r - (double) l;
|
||||
} else if (d8 == 0.0D) {
|
||||
r = (double) i1 + 0.5D;
|
||||
r = (double) l + 0.5D;
|
||||
d14 = p - (double) i;
|
||||
} else {
|
||||
double d19 = p - d15;
|
||||
@ -352,7 +354,7 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
double d20 = s;
|
||||
double d22 = u;
|
||||
|
||||
if (j != null) {
|
||||
if (this.j != null) {
|
||||
d20 *= 0.75D;
|
||||
d22 *= 0.75D;
|
||||
}
|
||||
@ -369,31 +371,30 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
d22 = d6;
|
||||
}
|
||||
c(d20, 0.0D, d22);
|
||||
if (ai[0][1] != 0 && MathHelper.b(p) - i == ai[0][0] && MathHelper.b(r) - i1 == ai[0][2]) {
|
||||
if (ai[0][1] != 0 && MathHelper.b(p) - i == ai[0][0] && MathHelper.b(r) - l == ai[0][2]) {
|
||||
a(p, q + (double) ai[0][1], r);
|
||||
} else if (ai[1][1] != 0 && MathHelper.b(p) - i == ai[1][0] && MathHelper.b(r) - i1 == ai[1][2]) {
|
||||
} else if (ai[1][1] != 0 && MathHelper.b(p) - i == ai[1][0] && MathHelper.b(r) - l == ai[1][2]) {
|
||||
a(p, q + (double) ai[1][1], r);
|
||||
}
|
||||
// CraftBukkit
|
||||
if (j != null || !slowWhenEmpty) {
|
||||
if (this.j != null || !slowWhenEmpty) { // CraftBukkit
|
||||
s *= 0.99699997901916504D;
|
||||
t *= 0.0D;
|
||||
u *= 0.99699997901916504D;
|
||||
} else {
|
||||
if (d == 2) {
|
||||
double d24 = MathHelper.a(f * f + aj * aj);
|
||||
double d24 = MathHelper.a(f * f + ak * ak);
|
||||
|
||||
if (d24 > 0.01D) {
|
||||
flag = true;
|
||||
f /= d24;
|
||||
aj /= d24;
|
||||
ak /= d24;
|
||||
double d25 = 0.040000000000000001D;
|
||||
|
||||
s *= 0.80000001192092896D;
|
||||
t *= 0.0D;
|
||||
u *= 0.80000001192092896D;
|
||||
s += f * d25;
|
||||
u += aj * d25;
|
||||
u += ak * d25;
|
||||
} else {
|
||||
s *= 0.89999997615814209D;
|
||||
t *= 0.0D;
|
||||
@ -416,27 +417,27 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
}
|
||||
a(p, vec3d1.b, r);
|
||||
}
|
||||
int k1 = MathHelper.b(p);
|
||||
int l1 = MathHelper.b(r);
|
||||
int j1 = MathHelper.b(p);
|
||||
int k1 = MathHelper.b(r);
|
||||
|
||||
if (k1 != i || l1 != i1) {
|
||||
if (j1 != i || k1 != l) {
|
||||
double d13 = Math.sqrt(s * s + u * u);
|
||||
|
||||
s = d13 * (double) (k1 - i);
|
||||
u = d13 * (double) (l1 - i1);
|
||||
s = d13 * (double) (j1 - i);
|
||||
u = d13 * (double) (k1 - l);
|
||||
}
|
||||
if (d == 2) {
|
||||
double d27 = MathHelper.a(f * f + aj * aj);
|
||||
double d27 = MathHelper.a(f * f + ak * ak);
|
||||
|
||||
if (d27 > 0.01D && s * s + u * u > 0.001D) {
|
||||
f /= d27;
|
||||
aj /= d27;
|
||||
if (f * s + aj * u < 0.0D) {
|
||||
ak /= d27;
|
||||
if (f * s + ak * u < 0.0D) {
|
||||
f = 0.0D;
|
||||
aj = 0.0D;
|
||||
ak = 0.0D;
|
||||
} else {
|
||||
f = s;
|
||||
aj = u;
|
||||
ak = u;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -475,7 +476,7 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
|
||||
if (d28 * d28 + d29 * d29 > 0.001D) {
|
||||
v = (float) ((Math.atan2(d29, d28) * 180D) / 3.1415926535897931D);
|
||||
if (al) {
|
||||
if (am) {
|
||||
v += 180F;
|
||||
}
|
||||
}
|
||||
@ -489,76 +490,76 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
}
|
||||
if (d30 < -170D || d30 >= 170D) {
|
||||
v += 180F;
|
||||
al = !al;
|
||||
am = !am;
|
||||
}
|
||||
b(v, w);
|
||||
|
||||
// CraftBukkit start
|
||||
CraftServer server = ((WorldServer)l).getServer();
|
||||
CraftServer server = ((WorldServer)this.l).getServer();
|
||||
VehicleMoveEvent event = new VehicleMoveEvent(
|
||||
Type.VEHICLE_MOVE,
|
||||
minecart,
|
||||
new Location(((WorldServer)l).getWorld(), prevX, prevY, prevZ, prevYaw, prevPitch),
|
||||
new Location(((WorldServer)l).getWorld(), p, q, r, v, w)
|
||||
new Location(((WorldServer)this.l).getWorld(), prevX, prevY, prevZ, prevYaw, prevPitch),
|
||||
new Location(((WorldServer)this.l).getWorld(), p, q, r, v, w)
|
||||
);
|
||||
server.getPluginManager().callEvent(event);
|
||||
// CraftBukkit end
|
||||
|
||||
List list = l.b(((Entity) (this)), z.b(0.20000000298023224D, 0.0D, 0.20000000298023224D));
|
||||
List list = this.l.b(((Entity) (this)), z.b(0.20000000298023224D, 0.0D, 0.20000000298023224D));
|
||||
|
||||
if (list != null && list.size() > 0) {
|
||||
for (int i2 = 0; i2 < list.size(); i2++) {
|
||||
Entity entity = (Entity) list.get(i2);
|
||||
for (int l1 = 0; l1 < list.size(); l1++) {
|
||||
Entity entity = (Entity) list.get(l1);
|
||||
|
||||
if (entity != j && entity.v() && (entity instanceof EntityMinecart)) {
|
||||
if (entity != this.j && entity.z() && (entity instanceof EntityMinecart)) {
|
||||
entity.c(((Entity) (this)));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (j != null && j.G) {
|
||||
j = null;
|
||||
if (this.j != null && this.j.G) {
|
||||
this.j = null;
|
||||
}
|
||||
if (flag && W.nextInt(4) == 0) {
|
||||
e--;
|
||||
if (e < 0) {
|
||||
f = aj = 0.0D;
|
||||
f = ak = 0.0D;
|
||||
}
|
||||
l.a("largesmoke", p, q + 0.80000000000000004D, r, 0.0D, 0.0D, 0.0D);
|
||||
this.l.a("largesmoke", p, q + 0.80000000000000004D, r, 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
}
|
||||
|
||||
public Vec3D g(double d1, double d2, double d3) {
|
||||
int i = MathHelper.b(d1);
|
||||
int k = MathHelper.b(d2);
|
||||
int i1 = MathHelper.b(d3);
|
||||
int j = MathHelper.b(d2);
|
||||
int l = MathHelper.b(d3);
|
||||
|
||||
if (l.a(i, k - 1, i1) == Block.aG.bh) {
|
||||
k--;
|
||||
if (this.l.a(i, j - 1, l) == Block.aG.bi) {
|
||||
j--;
|
||||
}
|
||||
if (l.a(i, k, i1) == Block.aG.bh) {
|
||||
int j1 = l.b(i, k, i1);
|
||||
if (this.l.a(i, j, l) == Block.aG.bi) {
|
||||
int i1 = this.l.b(i, j, l);
|
||||
|
||||
d2 = k;
|
||||
if (j1 >= 2 && j1 <= 5) {
|
||||
d2 = k + 1;
|
||||
d2 = j;
|
||||
if (i1 >= 2 && i1 <= 5) {
|
||||
d2 = j + 1;
|
||||
}
|
||||
int ai[][] = am[j1];
|
||||
int ai[][] = an[i1];
|
||||
double d4 = 0.0D;
|
||||
double d5 = (double) i + 0.5D + (double) ai[0][0] * 0.5D;
|
||||
double d6 = (double) k + 0.5D + (double) ai[0][1] * 0.5D;
|
||||
double d7 = (double) i1 + 0.5D + (double) ai[0][2] * 0.5D;
|
||||
double d6 = (double) j + 0.5D + (double) ai[0][1] * 0.5D;
|
||||
double d7 = (double) l + 0.5D + (double) ai[0][2] * 0.5D;
|
||||
double d8 = (double) i + 0.5D + (double) ai[1][0] * 0.5D;
|
||||
double d9 = (double) k + 0.5D + (double) ai[1][1] * 0.5D;
|
||||
double d10 = (double) i1 + 0.5D + (double) ai[1][2] * 0.5D;
|
||||
double d9 = (double) j + 0.5D + (double) ai[1][1] * 0.5D;
|
||||
double d10 = (double) l + 0.5D + (double) ai[1][2] * 0.5D;
|
||||
double d11 = d8 - d5;
|
||||
double d12 = (d9 - d6) * 2D;
|
||||
double d13 = d10 - d7;
|
||||
|
||||
if (d11 == 0.0D) {
|
||||
d1 = (double) i + 0.5D;
|
||||
d4 = d3 - (double) i1;
|
||||
d4 = d3 - (double) l;
|
||||
} else if (d13 == 0.0D) {
|
||||
d3 = (double) i1 + 0.5D;
|
||||
d3 = (double) l + 0.5D;
|
||||
d4 = d1 - (double) i;
|
||||
} else {
|
||||
double d14 = d1 - d5;
|
||||
@ -586,17 +587,17 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
nbttagcompound.a("Type", d);
|
||||
if (d == 2) {
|
||||
nbttagcompound.a("PushX", f);
|
||||
nbttagcompound.a("PushZ", aj);
|
||||
nbttagcompound.a("PushZ", ak);
|
||||
nbttagcompound.a("Fuel", (short) e);
|
||||
} else if (d == 1) {
|
||||
NBTTagList nbttaglist = new NBTTagList();
|
||||
|
||||
for (int i = 0; i < ak.length; i++) {
|
||||
if (ak[i] != null) {
|
||||
for (int i = 0; i < al.length; i++) {
|
||||
if (al[i] != null) {
|
||||
NBTTagCompound nbttagcompound1 = new NBTTagCompound();
|
||||
|
||||
nbttagcompound1.a("Slot", (byte) i);
|
||||
ak[i].a(nbttagcompound1);
|
||||
al[i].a(nbttagcompound1);
|
||||
nbttaglist.a(((NBTBase) (nbttagcompound1)));
|
||||
}
|
||||
}
|
||||
@ -609,18 +610,18 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
d = nbttagcompound.d("Type");
|
||||
if (d == 2) {
|
||||
f = nbttagcompound.g("PushX");
|
||||
aj = nbttagcompound.g("PushZ");
|
||||
ak = nbttagcompound.g("PushZ");
|
||||
e = ((int) (nbttagcompound.c("Fuel")));
|
||||
} else if (d == 1) {
|
||||
NBTTagList nbttaglist = nbttagcompound.k("Items");
|
||||
|
||||
ak = new ItemStack[a()];
|
||||
al = new ItemStack[h_()];
|
||||
for (int i = 0; i < nbttaglist.b(); i++) {
|
||||
NBTTagCompound nbttagcompound1 = (NBTTagCompound) nbttaglist.a(i);
|
||||
int k = nbttagcompound1.b("Slot") & 0xff;
|
||||
int j = nbttagcompound1.b("Slot") & 0xff;
|
||||
|
||||
if (k >= 0 && k < ak.length) {
|
||||
ak[k] = new ItemStack(nbttagcompound1);
|
||||
if (j >= 0 && j < al.length) {
|
||||
al[j] = new ItemStack(nbttagcompound1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -710,26 +711,26 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
}
|
||||
}
|
||||
|
||||
public int a() {
|
||||
public int h_() {
|
||||
return 27;
|
||||
}
|
||||
|
||||
public ItemStack a(int i) {
|
||||
return ak[i];
|
||||
return al[i];
|
||||
}
|
||||
|
||||
public ItemStack a(int i, int k) {
|
||||
if (ak[i] != null) {
|
||||
if (ak[i].a <= k) {
|
||||
ItemStack itemstack = ak[i];
|
||||
public ItemStack b(int i, int j) {
|
||||
if (al[i] != null) {
|
||||
if (al[i].a <= j) {
|
||||
ItemStack itemstack = al[i];
|
||||
|
||||
ak[i] = null;
|
||||
al[i] = null;
|
||||
return itemstack;
|
||||
}
|
||||
ItemStack itemstack1 = ak[i].a(k);
|
||||
ItemStack itemstack1 = al[i].a(j);
|
||||
|
||||
if (ak[i].a == 0) {
|
||||
ak[i] = null;
|
||||
if (al[i].a == 0) {
|
||||
al[i] = null;
|
||||
}
|
||||
return itemstack1;
|
||||
} else {
|
||||
@ -738,7 +739,7 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
}
|
||||
|
||||
public void a(int i, ItemStack itemstack) {
|
||||
ak[i] = itemstack;
|
||||
al[i] = itemstack;
|
||||
if (itemstack != null && itemstack.a > c()) {
|
||||
itemstack.a = c();
|
||||
}
|
||||
@ -779,14 +780,14 @@ public class EntityMinecart extends Entity implements IInventory, CraftMappable
|
||||
} else if (d == 2) {
|
||||
ItemStack itemstack = entityplayer.an.e();
|
||||
|
||||
if (itemstack != null && itemstack.c == Item.k.aW) {
|
||||
if (itemstack != null && itemstack.c == Item.k.ba) {
|
||||
if (--itemstack.a == 0) {
|
||||
entityplayer.an.a(entityplayer.an.c, ((ItemStack) (null)));
|
||||
}
|
||||
e += 1200;
|
||||
}
|
||||
f = p - entityplayer.p;
|
||||
aj = r - entityplayer.r;
|
||||
ak = r - entityplayer.r;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -10,78 +10,67 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting {
|
||||
public double d;
|
||||
public double e;
|
||||
public List f;
|
||||
public Set aj;
|
||||
public double ak;
|
||||
public boolean al;
|
||||
public Set ak;
|
||||
public double al;
|
||||
private int bD;
|
||||
private int bE;
|
||||
private int bF;
|
||||
private int bG[] = {
|
||||
-1, -1, -1, -1, -1
|
||||
private ItemStack bF[] = {
|
||||
null, null, null, null, null
|
||||
};
|
||||
private int bH;
|
||||
private int bG;
|
||||
public boolean am;
|
||||
|
||||
public EntityPlayerMP(MinecraftServer minecraftserver, World world, String s1, ItemInWorldManager iteminworldmanager) {
|
||||
public EntityPlayerMP(MinecraftServer minecraftserver, World world, String s, ItemInWorldManager iteminworldmanager) {
|
||||
super(world);
|
||||
f = ((List) (new LinkedList()));
|
||||
aj = ((Set) (new HashSet()));
|
||||
al = false;
|
||||
bE = 0xfa0a1f01;
|
||||
bF = 60;
|
||||
bH = 0;
|
||||
ak = ((Set) (new HashSet()));
|
||||
bD = 0xfa0a1f01;
|
||||
bE = 60;
|
||||
bG = 0;
|
||||
int i = world.m;
|
||||
int j = world.o;
|
||||
int l = world.n;
|
||||
int k = world.n;
|
||||
|
||||
if (!world.q.e) {
|
||||
i += W.nextInt(20) - 10;
|
||||
l = world.e(i, j);
|
||||
k = world.e(i, j);
|
||||
j += W.nextInt(20) - 10;
|
||||
}
|
||||
c((double) i + 0.5D, l, (double) j + 0.5D, 0.0F, 0.0F);
|
||||
c((double) i + 0.5D, k, (double) j + 0.5D, 0.0F, 0.0F);
|
||||
b = minecraftserver;
|
||||
S = 0.0F;
|
||||
iteminworldmanager.a = ((EntityPlayer) (this));
|
||||
aw = s1;
|
||||
aw = s;
|
||||
c = iteminworldmanager;
|
||||
H = 0.0F;
|
||||
}
|
||||
|
||||
public void k() {
|
||||
public void l() {
|
||||
ap.a(((ICrafting) (this)));
|
||||
}
|
||||
|
||||
public int[] E() {
|
||||
return bG;
|
||||
public ItemStack[] I() {
|
||||
return bF;
|
||||
}
|
||||
|
||||
public void b_() {
|
||||
bF--;
|
||||
bE--;
|
||||
ap.a();
|
||||
for (int i = 0; i < 5; i++) {
|
||||
int j = a(i);
|
||||
ItemStack itemstack = a(i);
|
||||
|
||||
if (j != bG[i]) {
|
||||
b.k.a(((Entity) (this)), ((Packet) (new Packet5PlayerInventory(g, i, j))));
|
||||
bG[i] = j;
|
||||
if (itemstack != bF[i]) {
|
||||
b.k.a(((Entity) (this)), ((Packet) (new Packet5PlayerInventory(g, i, itemstack))));
|
||||
bF[i] = itemstack;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int a(int i) {
|
||||
public ItemStack a(int i) {
|
||||
if (i == 0) {
|
||||
return c(an.e());
|
||||
return an.e();
|
||||
} else {
|
||||
return c(an.b[i - 1]);
|
||||
}
|
||||
}
|
||||
|
||||
private int c(ItemStack itemstack) {
|
||||
if (itemstack == null) {
|
||||
return -1;
|
||||
} else {
|
||||
return itemstack.c;
|
||||
return an.b[i - 1];
|
||||
}
|
||||
}
|
||||
|
||||
@ -90,7 +79,7 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting {
|
||||
}
|
||||
|
||||
public boolean a(Entity entity, int i) {
|
||||
if (bF > 0) {
|
||||
if (bE > 0) {
|
||||
return false;
|
||||
}
|
||||
if (!b.n) {
|
||||
@ -108,11 +97,11 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting {
|
||||
return super.a(entity, i);
|
||||
}
|
||||
|
||||
public void c(int i) {
|
||||
super.c(i);
|
||||
public void d(int i) {
|
||||
super.d(i);
|
||||
}
|
||||
|
||||
public void F() {
|
||||
public void n() {
|
||||
super.b_();
|
||||
ChunkCoordIntPair chunkcoordintpair = null;
|
||||
double d1 = 0.0D;
|
||||
@ -146,15 +135,15 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ba != bE) {
|
||||
a.b(((Packet) (new Packet8(ba))));
|
||||
bE = ba;
|
||||
if (aZ != bD) {
|
||||
a.b(((Packet) (new Packet8(aZ))));
|
||||
bD = aZ;
|
||||
}
|
||||
}
|
||||
|
||||
private void a(TileEntity tileentity) {
|
||||
if (tileentity != null) {
|
||||
Packet packet = tileentity.f();
|
||||
Packet packet = tileentity.g();
|
||||
|
||||
if (packet != null) {
|
||||
a.b(packet);
|
||||
@ -162,10 +151,10 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting {
|
||||
}
|
||||
}
|
||||
|
||||
public void G() {
|
||||
public void o() {
|
||||
s = t = u = 0.0D;
|
||||
bB = false;
|
||||
super.G();
|
||||
bA = false;
|
||||
super.o();
|
||||
}
|
||||
|
||||
public void c(Entity entity, int i) {
|
||||
@ -181,7 +170,7 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting {
|
||||
ap.a();
|
||||
}
|
||||
|
||||
public void H() {
|
||||
public void K() {
|
||||
if (!au) {
|
||||
av = -1;
|
||||
au = true;
|
||||
@ -189,7 +178,7 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting {
|
||||
}
|
||||
}
|
||||
|
||||
public float s() {
|
||||
public float w() {
|
||||
return 1.62F;
|
||||
}
|
||||
|
||||
@ -214,35 +203,39 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting {
|
||||
super.a(d1, flag);
|
||||
}
|
||||
|
||||
public boolean p() {
|
||||
return al;
|
||||
private void U() {
|
||||
bG = bG % 100 + 1;
|
||||
}
|
||||
|
||||
private void R() {
|
||||
bH = bH % 100 + 1;
|
||||
}
|
||||
|
||||
public void a(int i, int j, int l) {
|
||||
R();
|
||||
a.b(((Packet) (new Packet100(bH, 1, "Crafting", 9))));
|
||||
ap = ((CraftingInventoryCB) (new CraftingInventoryWorkbenchCB(an, this.l, i, j, l)));
|
||||
ap.f = bH;
|
||||
public void a(int i, int j, int k) {
|
||||
U();
|
||||
a.b(((Packet) (new Packet100(bG, 1, "Crafting", 9))));
|
||||
ap = ((CraftingInventoryCB) (new CraftingInventoryWorkbenchCB(an, l, i, j, k)));
|
||||
ap.f = bG;
|
||||
ap.a(((ICrafting) (this)));
|
||||
}
|
||||
|
||||
public void a(IInventory iinventory) {
|
||||
R();
|
||||
a.b(((Packet) (new Packet100(bH, 0, iinventory.b(), iinventory.a()))));
|
||||
U();
|
||||
a.b(((Packet) (new Packet100(bG, 0, iinventory.b(), iinventory.h_()))));
|
||||
ap = ((CraftingInventoryCB) (new CraftingInventoryChestCB(((IInventory) (an)), iinventory)));
|
||||
ap.f = bH;
|
||||
ap.f = bG;
|
||||
ap.a(((ICrafting) (this)));
|
||||
}
|
||||
|
||||
public void a(TileEntityFurnace tileentityfurnace) {
|
||||
R();
|
||||
a.b(((Packet) (new Packet100(bH, 2, tileentityfurnace.b(), tileentityfurnace.a()))));
|
||||
U();
|
||||
a.b(((Packet) (new Packet100(bG, 2, tileentityfurnace.b(), tileentityfurnace.h_()))));
|
||||
ap = ((CraftingInventoryCB) (new CraftingInventoryFurnaceCB(((IInventory) (an)), tileentityfurnace)));
|
||||
ap.f = bH;
|
||||
ap.f = bG;
|
||||
ap.a(((ICrafting) (this)));
|
||||
}
|
||||
|
||||
public void a(TileEntityDispenser tileentitydispenser) {
|
||||
U();
|
||||
a.b(((Packet) (new Packet100(bG, 3, tileentitydispenser.b(), tileentitydispenser.h_()))));
|
||||
ap = ((CraftingInventoryCB) (new CraftingInventoryDispenserCB(((IInventory) (an)), tileentitydispenser)));
|
||||
ap.f = bG;
|
||||
ap.a(((ICrafting) (this)));
|
||||
}
|
||||
|
||||
@ -269,12 +262,12 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting {
|
||||
|
||||
public void a(ItemStack itemstack) {}
|
||||
|
||||
public void I() {
|
||||
public void L() {
|
||||
a.b(((Packet) (new Packet101(ap.f))));
|
||||
K();
|
||||
N();
|
||||
}
|
||||
|
||||
public void J() {
|
||||
public void M() {
|
||||
if (am) {
|
||||
return;
|
||||
} else {
|
||||
@ -283,7 +276,7 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting {
|
||||
}
|
||||
}
|
||||
|
||||
public void K() {
|
||||
public void N() {
|
||||
ap.a(((EntityPlayer) (this)));
|
||||
ap = ao;
|
||||
}
|
||||
|
@ -15,26 +15,26 @@ public class EntitySkeleton extends EntityMobs {
|
||||
|
||||
public EntitySkeleton(World world) {
|
||||
super(world);
|
||||
aQ = "/mob/skeleton.png";
|
||||
}
|
||||
|
||||
protected String d() {
|
||||
return "mob.skeleton";
|
||||
aP = "/mob/skeleton.png";
|
||||
}
|
||||
|
||||
protected String e() {
|
||||
return "mob.skeletonhurt";
|
||||
return "mob.skeleton";
|
||||
}
|
||||
|
||||
protected String f() {
|
||||
return "mob.skeletonhurt";
|
||||
}
|
||||
|
||||
public void G() {
|
||||
protected String g() {
|
||||
return "mob.skeletonhurt";
|
||||
}
|
||||
|
||||
public void o() {
|
||||
if (l.b()) {
|
||||
float f1 = b(1.0F);
|
||||
|
||||
if (f1 > 0.5F && l.h(MathHelper.b(p), MathHelper.b(q), MathHelper.b(r)) && W.nextFloat() * 30F < (f1 - 0.4F) * 2.0F) {
|
||||
if (f1 > 0.5F && l.i(MathHelper.b(p), MathHelper.b(q), MathHelper.b(r)) && W.nextFloat() * 30F < (f1 - 0.4F) * 2.0F) {
|
||||
// CraftBukkit start
|
||||
CraftServer server = ((WorldServer) l).getServer();
|
||||
EntityCombustEvent event = new EntityCombustEvent(Type.ENTITY_COMBUST, new CraftLivingEntity(server, (EntityLiving) this));
|
||||
@ -45,28 +45,28 @@ public class EntitySkeleton extends EntityMobs {
|
||||
// CraftBukkit end
|
||||
}
|
||||
}
|
||||
super.G();
|
||||
super.o();
|
||||
}
|
||||
|
||||
protected void a(Entity entity, float f1) {
|
||||
if (f1 < 10F) {
|
||||
double d1 = entity.p - p;
|
||||
double d2 = entity.r - r;
|
||||
double d = entity.p - p;
|
||||
double d1 = entity.r - r;
|
||||
|
||||
if (bg == 0) {
|
||||
if (bf == 0) {
|
||||
EntityArrow entityarrow = new EntityArrow(l, ((EntityLiving) (this)));
|
||||
|
||||
entityarrow.q += 1.3999999761581421D;
|
||||
double d3 = entity.q - 0.20000000298023224D - entityarrow.q;
|
||||
float f2 = MathHelper.a(d1 * d1 + d2 * d2) * 0.2F;
|
||||
double d2 = entity.q - 0.20000000298023224D - entityarrow.q;
|
||||
float f2 = MathHelper.a(d * d + d1 * d1) * 0.2F;
|
||||
|
||||
l.a(((Entity) (this)), "random.bow", 1.0F, 1.0F / (W.nextFloat() * 0.4F + 0.8F));
|
||||
l.a(((Entity) (entityarrow)));
|
||||
entityarrow.a(d1, d3 + (double) f2, d2, 0.6F, 12F);
|
||||
bg = 30;
|
||||
entityarrow.a(d, d2 + (double) f2, d1, 0.6F, 12F);
|
||||
bf = 30;
|
||||
}
|
||||
v = (float) ((Math.atan2(d2, d1) * 180D) / 3.1415927410125732D) - 90F;
|
||||
ak = true;
|
||||
v = (float) ((Math.atan2(d1, d) * 180D) / 3.1415927410125732D) - 90F;
|
||||
e = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -78,8 +78,21 @@ public class EntitySkeleton extends EntityMobs {
|
||||
super.b(nbttagcompound);
|
||||
}
|
||||
|
||||
protected int g() {
|
||||
return Item.j.aW;
|
||||
protected int h() {
|
||||
return Item.j.ba;
|
||||
}
|
||||
|
||||
protected void g_() {
|
||||
int i = W.nextInt(3);
|
||||
|
||||
for (int j = 0; j < i; j++) {
|
||||
a(Item.j.ba, 1);
|
||||
}
|
||||
|
||||
i = W.nextInt(3);
|
||||
for (int k = 0; k < i; k++) {
|
||||
a(Item.aV.ba, 1);
|
||||
}
|
||||
}
|
||||
|
||||
static {
|
||||
|
@ -13,16 +13,16 @@ public class EntityZombie extends EntityMobs {
|
||||
|
||||
public EntityZombie(World world) {
|
||||
super(world);
|
||||
aQ = "/mob/zombie.png";
|
||||
bD = 0.5F;
|
||||
f = 5;
|
||||
aP = "/mob/zombie.png";
|
||||
bC = 0.5F;
|
||||
c = 5;
|
||||
}
|
||||
|
||||
public void G() {
|
||||
public void o() {
|
||||
if (l.b()) {
|
||||
float f1 = b(1.0F);
|
||||
|
||||
if (f1 > 0.5F && l.h(MathHelper.b(p), MathHelper.b(q), MathHelper.b(r)) && W.nextFloat() * 30F < (f1 - 0.4F) * 2.0F) {
|
||||
if (f1 > 0.5F && l.i(MathHelper.b(p), MathHelper.b(q), MathHelper.b(r)) && W.nextFloat() * 30F < (f1 - 0.4F) * 2.0F) {
|
||||
// CraftBukkit start
|
||||
CraftServer server = ((WorldServer) l).getServer();
|
||||
EntityCombustEvent event = new EntityCombustEvent(Type.ENTITY_COMBUST, new CraftLivingEntity(server, (EntityLiving) this));
|
||||
@ -33,22 +33,22 @@ public class EntityZombie extends EntityMobs {
|
||||
// CraftBukkit end
|
||||
}
|
||||
}
|
||||
super.G();
|
||||
}
|
||||
|
||||
protected String d() {
|
||||
return "mob.zombie";
|
||||
super.o();
|
||||
}
|
||||
|
||||
protected String e() {
|
||||
return "mob.zombiehurt";
|
||||
return "mob.zombie";
|
||||
}
|
||||
|
||||
protected String f() {
|
||||
return "mob.zombiehurt";
|
||||
}
|
||||
|
||||
protected String g() {
|
||||
return "mob.zombiedeath";
|
||||
}
|
||||
|
||||
protected int g() {
|
||||
return Item.J.aW;
|
||||
protected int h() {
|
||||
return Item.J.ba;
|
||||
}
|
||||
}
|
||||
|
@ -83,7 +83,6 @@ public class Explosion {
|
||||
} while (true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
f *= 2.0F;
|
||||
@ -166,7 +165,7 @@ public class Explosion {
|
||||
int j5 = i.a(i2, k4 - 1, l4);
|
||||
|
||||
if (i5 == 0 && Block.o[j5] && h.nextInt(3) == 0) {
|
||||
i.d(i2, k4, l4, Block.ar.bh);
|
||||
i.e(i2, k4, l4, Block.ar.bi);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -208,8 +207,8 @@ public class Explosion {
|
||||
|
||||
if (j1 > 0) {
|
||||
Block.m[j1].a(i, k, l, i1, i.b(k, l, i1), 0.3F);
|
||||
i.d(k, l, i1, 0);
|
||||
Block.m[j1].c(i, k, l, i1);
|
||||
i.e(k, l, i1, 0);
|
||||
Block.m[j1].a_(i, k, l, i1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,11 +2,11 @@ package net.minecraft.server;
|
||||
|
||||
public interface IInventory {
|
||||
|
||||
public abstract int a();
|
||||
public abstract int h_();
|
||||
|
||||
public abstract ItemStack a(int i);
|
||||
|
||||
public abstract ItemStack a(int i, int j);
|
||||
public abstract ItemStack b(int i, int j);
|
||||
|
||||
public abstract void a(int i, ItemStack itemstack);
|
||||
|
||||
|
@ -14,7 +14,7 @@ public class InventoryCraftResult implements IInventory {
|
||||
a = new ItemStack[1];
|
||||
}
|
||||
|
||||
public int a() {
|
||||
public int h_() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -26,7 +26,7 @@ public class InventoryCraftResult implements IInventory {
|
||||
return "Result";
|
||||
}
|
||||
|
||||
public ItemStack a(int i, int j) {
|
||||
public ItemStack b(int i, int j) {
|
||||
if (a[i] != null) {
|
||||
ItemStack itemstack = a[i];
|
||||
|
||||
|
@ -13,24 +13,40 @@ public class InventoryCrafting implements IInventory {
|
||||
// CraftBukkit end
|
||||
|
||||
public InventoryCrafting(CraftingInventoryCB craftinginventorycb, int i, int j) {
|
||||
b = i * j;
|
||||
a = new ItemStack[b];
|
||||
int k = i * j;
|
||||
|
||||
a = new ItemStack[k];
|
||||
c = craftinginventorycb;
|
||||
b = i;
|
||||
}
|
||||
|
||||
public int a() {
|
||||
return b;
|
||||
public int h_() {
|
||||
return a.length;
|
||||
}
|
||||
|
||||
public ItemStack a(int i) {
|
||||
if (i >= h_()) {
|
||||
return null;
|
||||
} else {
|
||||
return a[i];
|
||||
}
|
||||
}
|
||||
|
||||
public ItemStack a(int i, int j) {
|
||||
if (i < 0 || i >= b) {
|
||||
return null;
|
||||
} else {
|
||||
int k = i + j * b;
|
||||
|
||||
return a(k);
|
||||
}
|
||||
}
|
||||
|
||||
public String b() {
|
||||
return "Crafting";
|
||||
}
|
||||
|
||||
public ItemStack a(int i, int j) {
|
||||
public ItemStack b(int i, int j) {
|
||||
if (a[i] != null) {
|
||||
if (a[i].a <= j) {
|
||||
ItemStack itemstack = a[i];
|
||||
|
@ -8,7 +8,7 @@ public class InventoryLargeChest implements IInventory {
|
||||
|
||||
// CraftBukkit start
|
||||
public ItemStack[] getContents() {
|
||||
ItemStack[] result = new ItemStack[a()];
|
||||
ItemStack[] result = new ItemStack[h_()];
|
||||
for (int i = 0; i < result.length; i++) {
|
||||
result[i] = a(i);
|
||||
}
|
||||
@ -22,8 +22,8 @@ public class InventoryLargeChest implements IInventory {
|
||||
c = iinventory1;
|
||||
}
|
||||
|
||||
public int a() {
|
||||
return b.a() + c.a();
|
||||
public int h_() {
|
||||
return b.h_() + c.h_();
|
||||
}
|
||||
|
||||
public String b() {
|
||||
@ -31,24 +31,24 @@ public class InventoryLargeChest implements IInventory {
|
||||
}
|
||||
|
||||
public ItemStack a(int i) {
|
||||
if (i >= b.a()) {
|
||||
return c.a(i - b.a());
|
||||
if (i >= b.h_()) {
|
||||
return c.a(i - b.h_());
|
||||
} else {
|
||||
return b.a(i);
|
||||
}
|
||||
}
|
||||
|
||||
public ItemStack a(int i, int j) {
|
||||
if (i >= b.a()) {
|
||||
return c.a(i - b.a(), j);
|
||||
public ItemStack b(int i, int j) {
|
||||
if (i >= b.h_()) {
|
||||
return c.b(i - b.h_(), j);
|
||||
} else {
|
||||
return b.a(i, j);
|
||||
return b.b(i, j);
|
||||
}
|
||||
}
|
||||
|
||||
public void a(int i, ItemStack itemstack) {
|
||||
if (i >= b.a()) {
|
||||
c.a(i - b.a(), itemstack);
|
||||
if (i >= b.h_()) {
|
||||
c.a(i - b.h_(), itemstack);
|
||||
} else {
|
||||
b.a(i, itemstack);
|
||||
}
|
||||
|
@ -41,10 +41,10 @@ public class InventoryPlayer implements IInventory {
|
||||
return -1;
|
||||
}
|
||||
|
||||
private int e(int k) {
|
||||
for (int l = 0; l < a.length; l++) {
|
||||
if (a[l] != null && a[l].c == k && a[l].a < a[l].b() && a[l].a < c()) {
|
||||
return l;
|
||||
private int c(ItemStack itemstack) {
|
||||
for (int k = 0; k < a.length; k++) {
|
||||
if (a[k] != null && a[k].c == itemstack.c && a[k].c() && a[k].a < a[k].b() && a[k].a < c() && (!a[k].e() || a[k].h() == itemstack.h())) {
|
||||
return k;
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,8 +61,10 @@ public class InventoryPlayer implements IInventory {
|
||||
return -1;
|
||||
}
|
||||
|
||||
private int b(int k, int l) {
|
||||
int i1 = e(k);
|
||||
private int d(ItemStack itemstack) {
|
||||
int k = itemstack.c;
|
||||
int l = itemstack.a;
|
||||
int i1 = c(itemstack);
|
||||
|
||||
if (i1 < 0) {
|
||||
i1 = j();
|
||||
@ -71,7 +73,7 @@ public class InventoryPlayer implements IInventory {
|
||||
return l;
|
||||
}
|
||||
if (a[i1] == null) {
|
||||
a[i1] = new ItemStack(k, 0);
|
||||
a[i1] = new ItemStack(k, 0, itemstack.h());
|
||||
}
|
||||
int j1 = l;
|
||||
|
||||
@ -97,7 +99,6 @@ public class InventoryPlayer implements IInventory {
|
||||
a[k].b--;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean b(int k) {
|
||||
@ -113,8 +114,8 @@ public class InventoryPlayer implements IInventory {
|
||||
}
|
||||
|
||||
public boolean a(ItemStack itemstack) {
|
||||
if (itemstack.d == 0) {
|
||||
itemstack.a = b(itemstack.c, itemstack.a);
|
||||
if (!itemstack.f()) {
|
||||
itemstack.a = d(itemstack);
|
||||
if (itemstack.a == 0) {
|
||||
return true;
|
||||
}
|
||||
@ -130,7 +131,7 @@ public class InventoryPlayer implements IInventory {
|
||||
}
|
||||
}
|
||||
|
||||
public ItemStack a(int k, int l) {
|
||||
public ItemStack b(int k, int l) {
|
||||
ItemStack aitemstack[] = a;
|
||||
|
||||
if (k >= a.length) {
|
||||
@ -218,7 +219,7 @@ public class InventoryPlayer implements IInventory {
|
||||
}
|
||||
}
|
||||
|
||||
public int a() {
|
||||
public int h_() {
|
||||
return a.length + 4;
|
||||
}
|
||||
|
||||
@ -251,7 +252,7 @@ public class InventoryPlayer implements IInventory {
|
||||
}
|
||||
|
||||
public boolean b(Block block) {
|
||||
if (block.bs != Material.d && block.bs != Material.e && block.bs != Material.t && block.bs != Material.s) {
|
||||
if (block.bt != Material.d && block.bt != Material.e && block.bt != Material.t && block.bt != Material.s) {
|
||||
return true;
|
||||
}
|
||||
ItemStack itemstack = a(c);
|
||||
@ -270,13 +271,13 @@ public class InventoryPlayer implements IInventory {
|
||||
|
||||
for (int j1 = 0; j1 < b.length; j1++) {
|
||||
if (b[j1] != null && (b[j1].a() instanceof ItemArmor)) {
|
||||
int k1 = b[j1].c();
|
||||
int l1 = b[j1].d;
|
||||
int k1 = b[j1].i();
|
||||
int l1 = b[j1].g();
|
||||
int i2 = k1 - l1;
|
||||
|
||||
l += i2;
|
||||
i1 += k1;
|
||||
int j2 = ((ItemArmor) b[j1].a()).bc;
|
||||
int j2 = ((ItemArmor) b[j1].a()).bh;
|
||||
|
||||
k += j2;
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ public class ItemBlock extends Item {
|
||||
public ItemBlock(int i) {
|
||||
super(i);
|
||||
a = i + 256;
|
||||
a(Block.m[i + 256].a(2));
|
||||
b(Block.m[i + 256].a(2));
|
||||
}
|
||||
|
||||
public boolean a(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) {
|
||||
@ -31,7 +31,7 @@ public class ItemBlock extends Item {
|
||||
BlockFace faceClicked = CraftBlock.notchToBlockFace(l);
|
||||
// CraftBukkit end
|
||||
|
||||
if (world.a(i, j, k) == Block.aS.bh) {
|
||||
if (world.a(i, j, k) == Block.aS.bi) {
|
||||
l = 0;
|
||||
} else {
|
||||
if (l == 0) {
|
||||
@ -62,7 +62,7 @@ public class ItemBlock extends Item {
|
||||
Block block = Block.m[a];
|
||||
|
||||
// This executes the placement of the block
|
||||
if (world.d(i, j, k, a)) {
|
||||
if (world.e(i, j, k, a)) {
|
||||
CraftBlock placedBlock = (CraftBlock) blockClicked.getFace(faceClicked) ;
|
||||
CraftItemStack itemInHand = new CraftItemStack(itemstack);
|
||||
CraftPlayer thePlayer = new CraftPlayer(((WorldServer) world).getServer(), (EntityPlayerMP) entityplayer);
|
||||
@ -91,11 +91,11 @@ public class ItemBlock extends Item {
|
||||
world.c(i, j, k, oldData);
|
||||
} else {
|
||||
world.g(i, j, k);
|
||||
world.g(i, j, k, this.a);
|
||||
world.h(i, j, k, this.a);
|
||||
|
||||
Block.m[a].c(world, i, j, k, l);
|
||||
Block.m[a].a(world, i, j, k, ((EntityLiving) (entityplayer)));
|
||||
world.a((float) i + 0.5F, (float) j + 0.5F, (float) k + 0.5F, block.bq.c(), (block.bq.a() + 1.0F) / 2.0F, block.bq.b() * 0.8F);
|
||||
world.a((float) i + 0.5F, (float) j + 0.5F, (float) k + 0.5F, block.br.c(), (block.br.a() + 1.0F) / 2.0F, block.br.b() * 0.8F);
|
||||
itemstack.a--;
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ public class ItemBoat extends Item {
|
||||
|
||||
public ItemBoat(int i) {
|
||||
super(i);
|
||||
aX = 1;
|
||||
bb = 1;
|
||||
}
|
||||
|
||||
public ItemStack a(ItemStack itemstack, World world, EntityPlayer entityplayer) {
|
||||
@ -37,7 +37,7 @@ public class ItemBoat extends Item {
|
||||
if (movingobjectposition == null) {
|
||||
return itemstack;
|
||||
}
|
||||
if (movingobjectposition.a == 0) {
|
||||
if (movingobjectposition.a == EnumMovingObjectType.a) {
|
||||
int i = movingobjectposition.b;
|
||||
int j = movingobjectposition.c;
|
||||
int k = movingobjectposition.d;
|
||||
|
@ -18,8 +18,8 @@ public class ItemBucket extends Item {
|
||||
|
||||
public ItemBucket(int i, int j) {
|
||||
super(i);
|
||||
aX = 1;
|
||||
aY = 64;
|
||||
bb = 1;
|
||||
bc = 64;
|
||||
a = j;
|
||||
}
|
||||
|
||||
@ -45,7 +45,7 @@ public class ItemBucket extends Item {
|
||||
if (movingobjectposition == null) {
|
||||
return itemstack;
|
||||
}
|
||||
if (movingobjectposition.a == 0) {
|
||||
if (movingobjectposition.a == EnumMovingObjectType.a) {
|
||||
int i = movingobjectposition.b;
|
||||
int j = movingobjectposition.c;
|
||||
int k = movingobjectposition.d;
|
||||
@ -72,7 +72,7 @@ public class ItemBucket extends Item {
|
||||
return itemstack;
|
||||
}
|
||||
// CraftBukkit end
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
return new ItemStack(Item.av);
|
||||
}
|
||||
if (world.c(i, j, k) == Material.g && world.b(i, j, k) == 0) {
|
||||
@ -84,7 +84,7 @@ public class ItemBucket extends Item {
|
||||
return itemstack;
|
||||
}
|
||||
// CraftBukkit end
|
||||
world.d(i, j, k, 0);
|
||||
world.e(i, j, k, 0);
|
||||
return new ItemStack(Item.aw);
|
||||
}
|
||||
} else {
|
||||
@ -110,7 +110,7 @@ public class ItemBucket extends Item {
|
||||
i++;
|
||||
}
|
||||
if (world.e(i, j, k) || !world.c(i, j, k).a()) {
|
||||
if (world.q.d && a == Block.A.bh) {
|
||||
if (world.q.d && a == Block.A.bi) {
|
||||
world.a(d + 0.5D, d1 + 0.5D, d2 + 0.5D, "random.fizz", 0.5F, 2.6F + (world.l.nextFloat() - world.l.nextFloat()) * 0.8F);
|
||||
for (int l = 0; l < 8; l++) {
|
||||
world.a("largesmoke", (double) i + Math.random(), (double) j + Math.random(), (double) k + Math.random(), 0.0D, 0.0D, 0.0D);
|
||||
|
@ -15,8 +15,8 @@ public class ItemFlintAndSteel extends Item {
|
||||
|
||||
public ItemFlintAndSteel(int i) {
|
||||
super(i);
|
||||
aX = 1;
|
||||
aY = 64;
|
||||
bb = 1;
|
||||
bc = 64;
|
||||
}
|
||||
|
||||
public boolean a(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) {
|
||||
@ -63,7 +63,7 @@ public class ItemFlintAndSteel extends Item {
|
||||
// CraftBukkit end
|
||||
|
||||
world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "fire.ignite", 1.0F, b.nextFloat() * 0.4F + 0.8F);
|
||||
world.d(i, j, k, Block.ar.bh);
|
||||
world.e(i, j, k, Block.ar.bi);
|
||||
}
|
||||
itemstack.b(1);
|
||||
return true;
|
||||
|
@ -12,17 +12,17 @@ import org.bukkit.event.player.PlayerItemEvent;
|
||||
|
||||
public class ItemHoe extends Item {
|
||||
|
||||
public ItemHoe(int i, int j) {
|
||||
public ItemHoe(int i, EnumToolMaterial enumtoolmaterial) {
|
||||
super(i);
|
||||
aX = 1;
|
||||
aY = 32 << j;
|
||||
bb = 1;
|
||||
bc = enumtoolmaterial.a();
|
||||
}
|
||||
|
||||
public boolean a(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) {
|
||||
int i1 = world.a(i, j, k);
|
||||
Material material = world.c(i, j + 1, k);
|
||||
|
||||
if (!material.a() && i1 == Block.u.bh || i1 == Block.v.bh) {
|
||||
if (!material.a() && i1 == Block.u.bi || i1 == Block.v.bi) {
|
||||
// CraftBukkit start - Hoes
|
||||
CraftBlock blockClicked = (CraftBlock) ((WorldServer) world).getWorld().getBlockAt(i, j, k);
|
||||
CraftItemStack itemInHand = new CraftItemStack(itemstack);
|
||||
@ -36,13 +36,13 @@ public class ItemHoe extends Item {
|
||||
|
||||
Block block = Block.aA;
|
||||
|
||||
world.a((float) i + 0.5F, (float) j + 0.5F, (float) k + 0.5F, block.bq.c(), (block.bq.a() + 1.0F) / 2.0F, block.bq.b() * 0.8F);
|
||||
world.a((float) i + 0.5F, (float) j + 0.5F, (float) k + 0.5F, block.br.c(), (block.br.a() + 1.0F) / 2.0F, block.br.b() * 0.8F);
|
||||
if (world.z) {
|
||||
return true;
|
||||
}
|
||||
world.d(i, j, k, block.bh);
|
||||
world.e(i, j, k, block.bi);
|
||||
itemstack.b(1);
|
||||
if (world.l.nextInt(8) == 0 && i1 == Block.u.bh) {
|
||||
if (world.l.nextInt(8) == 0 && i1 == Block.u.bi) {
|
||||
int j1 = 1;
|
||||
|
||||
for (int k1 = 0; k1 < j1; k1++) {
|
||||
|
@ -70,7 +70,7 @@ public class ItemInWorldManager {
|
||||
public boolean b(int j, int k, int l) {
|
||||
Block block = Block.m[b.a(j, k, l)];
|
||||
int i1 = b.b(j, k, l);
|
||||
boolean flag = b.d(j, k, l, 0);
|
||||
boolean flag = b.e(j, k, l, 0);
|
||||
|
||||
if (block != null && flag) {
|
||||
block.a(b, j, k, l, i1);
|
||||
@ -82,13 +82,13 @@ public class ItemInWorldManager {
|
||||
int i1 = b.a(j, k, l);
|
||||
int j1 = b.b(j, k, l);
|
||||
boolean flag = b(j, k, l);
|
||||
ItemStack itemstack = a.M();
|
||||
ItemStack itemstack = a.P();
|
||||
|
||||
if (itemstack != null) {
|
||||
itemstack.a(i1, j, k, l);
|
||||
if (itemstack.a == 0) {
|
||||
itemstack.a(a);
|
||||
a.N();
|
||||
a.Q();
|
||||
}
|
||||
}
|
||||
if (flag && a.b(Block.m[i1])) {
|
||||
|
@ -14,14 +14,14 @@ public class ItemMinecart extends Item {
|
||||
|
||||
public ItemMinecart(int i, int j) {
|
||||
super(i);
|
||||
aX = 1;
|
||||
bb = 1;
|
||||
a = j;
|
||||
}
|
||||
|
||||
public boolean a(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) {
|
||||
int i1 = world.a(i, j, k);
|
||||
|
||||
if (i1 == Block.aG.bh) {
|
||||
if (i1 == Block.aG.bi) {
|
||||
// CraftBukkit start - Minecarts
|
||||
CraftBlock blockClicked = (CraftBlock) ((WorldServer) world).getWorld().getBlockAt(i, j, k);
|
||||
CraftItemStack itemInHand = new CraftItemStack(itemstack);
|
||||
|
@ -51,7 +51,7 @@ public class ItemRedstone extends Item {
|
||||
// CraftBukkit end
|
||||
|
||||
itemstack.a--;
|
||||
world.d(i, j, k, Block.av.bh);
|
||||
world.e(i, j, k, Block.av.bi);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ public class ItemSeeds extends Item {
|
||||
}
|
||||
int i1 = world.a(i, j, k);
|
||||
|
||||
if (i1 == Block.aA.bh) {
|
||||
if (i1 == Block.aA.bi && world.e(i, j + 1, k)) {
|
||||
// CraftBukkit start - Seeds
|
||||
CraftBlock blockClicked = (CraftBlock) ((WorldServer) world).getWorld().getBlockAt(i, j, k);
|
||||
CraftItemStack itemInHand = new CraftItemStack(itemstack);
|
||||
@ -37,7 +37,7 @@ public class ItemSeeds extends Item {
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
world.d(i, j + 1, k, a);
|
||||
world.e(i, j + 1, k, a);
|
||||
itemstack.a--;
|
||||
return true;
|
||||
} else {
|
||||
|
@ -12,8 +12,8 @@ public class ItemSign extends Item {
|
||||
|
||||
public ItemSign(int i) {
|
||||
super(i);
|
||||
aY = 64;
|
||||
aX = 1;
|
||||
bc = 64;
|
||||
bb = 1;
|
||||
}
|
||||
|
||||
public boolean a(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) {
|
||||
@ -58,12 +58,12 @@ public class ItemSign extends Item {
|
||||
// CraftBukkit end
|
||||
|
||||
if (l == 1) {
|
||||
world.b(i, j, k, Block.aD.bh, MathHelper.b((double) (((entityplayer.v + 180F) * 16F) / 360F) + 0.5D) & 0xf);
|
||||
world.b(i, j, k, Block.aD.bi, MathHelper.b((double) (((entityplayer.v + 180F) * 16F) / 360F) + 0.5D) & 0xf);
|
||||
} else {
|
||||
world.b(i, j, k, Block.aI.bh, l);
|
||||
world.b(i, j, k, Block.aI.bi, l);
|
||||
}
|
||||
itemstack.a--;
|
||||
TileEntitySign tileentitysign = (TileEntitySign) world.l(i, j, k);
|
||||
TileEntitySign tileentitysign = (TileEntitySign) world.m(i, j, k);
|
||||
|
||||
if (tileentitysign != null) {
|
||||
entityplayer.a(tileentitysign);
|
||||
|
184
src/main/java/net/minecraft/server/ItemStack.java
Normale Datei
184
src/main/java/net/minecraft/server/ItemStack.java
Normale Datei
@ -0,0 +1,184 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
public final class ItemStack {
|
||||
|
||||
public int a;
|
||||
public int b;
|
||||
public int c;
|
||||
public int d; // Craftbukkit - make public
|
||||
|
||||
public ItemStack(Block block) {
|
||||
this(block, 1);
|
||||
}
|
||||
|
||||
public ItemStack(Block block, int k) {
|
||||
this(block.bi, k, 0);
|
||||
}
|
||||
|
||||
public ItemStack(Block block, int k, int l) {
|
||||
this(block.bi, k, l);
|
||||
}
|
||||
|
||||
public ItemStack(Item item) {
|
||||
this(item.ba, 1, 0);
|
||||
}
|
||||
|
||||
public ItemStack(Item item, int k) {
|
||||
this(item.ba, k, 0);
|
||||
}
|
||||
|
||||
public ItemStack(Item item, int k, int l) {
|
||||
this(item.ba, k, l);
|
||||
}
|
||||
|
||||
public ItemStack(int k, int l, int i1) {
|
||||
a = 0;
|
||||
c = k;
|
||||
a = l;
|
||||
d = i1;
|
||||
}
|
||||
|
||||
public ItemStack(NBTTagCompound nbttagcompound) {
|
||||
a = 0;
|
||||
b(nbttagcompound);
|
||||
}
|
||||
|
||||
public ItemStack a(int k) {
|
||||
a -= k;
|
||||
return new ItemStack(c, k, d);
|
||||
}
|
||||
|
||||
public Item a() {
|
||||
return Item.c[c];
|
||||
}
|
||||
|
||||
public boolean a(EntityPlayer entityplayer, World world, int k, int l, int i1, int j1) {
|
||||
return a().a(this, entityplayer, world, k, l, i1, j1);
|
||||
}
|
||||
|
||||
public float a(Block block) {
|
||||
return a().a(this, block);
|
||||
}
|
||||
|
||||
public ItemStack a(World world, EntityPlayer entityplayer) {
|
||||
return a().a(this, world, entityplayer);
|
||||
}
|
||||
|
||||
public NBTTagCompound a(NBTTagCompound nbttagcompound) {
|
||||
nbttagcompound.a("id", (short) c);
|
||||
nbttagcompound.a("Count", (byte) a);
|
||||
nbttagcompound.a("Damage", (short) d);
|
||||
return nbttagcompound;
|
||||
}
|
||||
|
||||
public void b(NBTTagCompound nbttagcompound) {
|
||||
c = ((int) (nbttagcompound.c("id")));
|
||||
a = ((int) (nbttagcompound.b("Count")));
|
||||
d = ((int) (nbttagcompound.c("Damage")));
|
||||
}
|
||||
|
||||
public int b() {
|
||||
return a().b();
|
||||
}
|
||||
|
||||
public boolean c() {
|
||||
return b() > 1 && (!d() || !f());
|
||||
}
|
||||
|
||||
public boolean d() {
|
||||
return Item.c[c].d() > 0;
|
||||
}
|
||||
|
||||
public boolean e() {
|
||||
return Item.c[c].c();
|
||||
}
|
||||
|
||||
public boolean f() {
|
||||
return d() && d > 0;
|
||||
}
|
||||
|
||||
public int g() {
|
||||
return d;
|
||||
}
|
||||
|
||||
public int h() {
|
||||
return d;
|
||||
}
|
||||
|
||||
public int i() {
|
||||
return Item.c[c].d();
|
||||
}
|
||||
|
||||
public void b(int k) {
|
||||
if (!d()) {
|
||||
return;
|
||||
}
|
||||
d += k;
|
||||
if (d > i()) {
|
||||
a--;
|
||||
if (a < 0) {
|
||||
a = 0;
|
||||
}
|
||||
d = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void a(EntityLiving entityliving) {
|
||||
Item.c[c].a(this, entityliving);
|
||||
}
|
||||
|
||||
public void a(int k, int l, int i1, int j1) {
|
||||
Item.c[c].a(this, k, l, i1, j1);
|
||||
}
|
||||
|
||||
public int a(Entity entity) {
|
||||
return Item.c[c].a(entity);
|
||||
}
|
||||
|
||||
public boolean b(Block block) {
|
||||
return Item.c[c].a(block);
|
||||
}
|
||||
|
||||
public void a(EntityPlayer entityplayer) {}
|
||||
|
||||
public void b(EntityLiving entityliving) {
|
||||
Item.c[c].b(this, entityliving);
|
||||
}
|
||||
|
||||
public ItemStack j() {
|
||||
return new ItemStack(c, a, d);
|
||||
}
|
||||
|
||||
public static boolean a(ItemStack itemstack, ItemStack itemstack1) {
|
||||
if (itemstack == null && itemstack1 == null) {
|
||||
return true;
|
||||
}
|
||||
if (itemstack == null || itemstack1 == null) {
|
||||
return false;
|
||||
} else {
|
||||
return itemstack.c(itemstack1);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean c(ItemStack itemstack) {
|
||||
if (a != itemstack.a) {
|
||||
return false;
|
||||
}
|
||||
if (c != itemstack.c) {
|
||||
return false;
|
||||
}
|
||||
return d == itemstack.d;
|
||||
}
|
||||
|
||||
public boolean a(ItemStack itemstack) {
|
||||
return c == itemstack.c && d == itemstack.d;
|
||||
}
|
||||
|
||||
public static ItemStack b(ItemStack itemstack) {
|
||||
return itemstack != null ? itemstack.j() : null;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return (new StringBuilder()).append(a).append("x").append(Item.c[c].a()).append("@").append(d).toString();
|
||||
}
|
||||
}
|
@ -61,7 +61,7 @@ public class MinecraftServer implements ICommandListener, Runnable {
|
||||
((Thread) (threadcommandreader)).setDaemon(true);
|
||||
((Thread) (threadcommandreader)).start();
|
||||
ConsoleLogManager.a();
|
||||
a.info("Starting minecraft server version Beta 1.1_02");
|
||||
a.info("Starting minecraft server version Beta 1.2");
|
||||
if (Runtime.getRuntime().maxMemory() / 1024L / 1024L < 512L) {
|
||||
a.warning("**** NOT ENOUGH RAM!");
|
||||
a.warning("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\"");
|
||||
@ -111,16 +111,29 @@ public class MinecraftServer implements ICommandListener, Runnable {
|
||||
e = new WorldServer(this, new File("."), s, d.a("hellworld", false) ? -1 : 0);
|
||||
e.a(((IWorldAccess) (new WorldManager(this))));
|
||||
e.k = d.a("spawn-monsters", true) ? 1 : 0;
|
||||
e.a(d.a("spawn-monsters", true), m);
|
||||
f.a(e);
|
||||
byte byte0 = 10;
|
||||
char c1 = '\304';
|
||||
long l1 = System.currentTimeMillis();
|
||||
|
||||
for (int i1 = -byte0; i1 <= byte0; i1++) {
|
||||
a("Preparing spawn area", ((i1 + byte0) * 100) / (byte0 + byte0 + 1));
|
||||
for (int j1 = -byte0; j1 <= byte0; j1++) {
|
||||
if (!o) {
|
||||
return;
|
||||
for (int i1 = -c1; i1 <= c1 && o; i1 += 16) {
|
||||
for (int j1 = -c1; j1 <= c1 && o; j1 += 16) {
|
||||
long l2 = System.currentTimeMillis();
|
||||
|
||||
if (l2 < l1) {
|
||||
l1 = l2;
|
||||
}
|
||||
if (l2 > l1 + 1000L) {
|
||||
int k1 = (c1 * 2 + 1) * (c1 * 2 + 1);
|
||||
int i2 = (i1 + c1) * (c1 * 2 + 1) + (j1 + 1);
|
||||
|
||||
a("Preparing spawn area", (i2 * 100) / k1);
|
||||
l1 = l2;
|
||||
}
|
||||
e.A.d(e.m + i1 >> 4, e.o + j1 >> 4);
|
||||
while (e.d() && o) {
|
||||
;
|
||||
}
|
||||
e.A.d((e.m >> 4) + i1, (e.o >> 4) + j1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -207,11 +220,14 @@ public class MinecraftServer implements ICommandListener, Runnable {
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
try {
|
||||
g();
|
||||
g = true;
|
||||
} finally {
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void h() {
|
||||
ArrayList arraylist = new ArrayList();
|
||||
@ -405,7 +421,7 @@ public class MinecraftServer implements ICommandListener, Runnable {
|
||||
if (k1 > 64) {
|
||||
k1 = 64;
|
||||
}
|
||||
entityplayermp4.b(new ItemStack(j1, k1));
|
||||
entityplayermp4.b(new ItemStack(j1, k1, 0));
|
||||
} else {
|
||||
icommandlistener.b((new StringBuilder()).append("There's no item with id ").append(j1).toString());
|
||||
}
|
||||
|
@ -106,7 +106,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
float f1 = e.v;
|
||||
float f2 = e.w;
|
||||
|
||||
e.k.A();
|
||||
e.k.E();
|
||||
double d3 = e.p;
|
||||
double d5 = e.q;
|
||||
double d7 = e.r;
|
||||
@ -122,7 +122,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
d10 = packet10flying.c;
|
||||
}
|
||||
e.A = packet10flying.g;
|
||||
e.F();
|
||||
e.n();
|
||||
e.c(d9, 0.0D, d10);
|
||||
e.b(d3, d5, d7, f1, f2);
|
||||
e.s = d9;
|
||||
@ -131,7 +131,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
d.e.b(e.k, true);
|
||||
}
|
||||
if (e.k != null) {
|
||||
e.k.A();
|
||||
e.k.E();
|
||||
}
|
||||
d.f.b(e);
|
||||
g = e.p;
|
||||
@ -164,13 +164,13 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
a("Illegal stance");
|
||||
a.warning((new StringBuilder()).append(e.aw).append(" had an illegal stance: ").append(d11).toString());
|
||||
}
|
||||
e.ak = packet10flying.d;
|
||||
e.al = packet10flying.d;
|
||||
}
|
||||
if (packet10flying.i) {
|
||||
f3 = packet10flying.e;
|
||||
f4 = packet10flying.f;
|
||||
}
|
||||
e.F();
|
||||
e.n();
|
||||
e.R = 0.0F;
|
||||
e.b(g, h, i, f3, f4);
|
||||
double d12 = d4 - e.p;
|
||||
@ -242,7 +242,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
|
||||
public void a(Packet14BlockDig packet14blockdig) {
|
||||
if (packet14blockdig.e == 4) {
|
||||
e.L();
|
||||
e.O();
|
||||
return;
|
||||
}
|
||||
boolean flag = d.e.B = d.f.g(e.aw);
|
||||
@ -269,7 +269,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
}
|
||||
double d5 = e.q;
|
||||
|
||||
e.q = e.ak;
|
||||
e.q = e.al;
|
||||
e.q = d5;
|
||||
}
|
||||
int k1 = packet14blockdig.d;
|
||||
@ -407,10 +407,10 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
// CraftBukkit We still call this event even in spawn protection.
|
||||
// Don't call this event if using Buckets / signs
|
||||
switch (craftItem.getType()) {
|
||||
case Sign:
|
||||
case Bucket:
|
||||
case WaterBucket:
|
||||
case LavaBucket:
|
||||
case SIGN:
|
||||
case BUCKET:
|
||||
case WATER_BUCKET:
|
||||
case LAVA_BUCKET:
|
||||
break;
|
||||
default:
|
||||
server.getPluginManager().callEvent(pie);
|
||||
@ -470,7 +470,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
e.an.a[e.an.c] = null;
|
||||
}
|
||||
e.am = true;
|
||||
e.an.a[e.an.c] = ItemStack.a(e.an.a[e.an.c]);
|
||||
e.an.a[e.an.c] = ItemStack.b(e.an.a[e.an.c]);
|
||||
Slot slot = e.ap.a(((IInventory) (e.an)), e.an.c);
|
||||
|
||||
e.ap.a();
|
||||
@ -578,11 +578,16 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
|
||||
public void a(Packet18ArmAnimation packet18armanimation) {
|
||||
if (packet18armanimation.b == 1) {
|
||||
e.H();
|
||||
} else if (packet18armanimation.b == 104) {
|
||||
e.al = true;
|
||||
} else if (packet18armanimation.b == 105) {
|
||||
e.al = false;
|
||||
e.K();
|
||||
}
|
||||
}
|
||||
|
||||
public void a(Packet19 packet19) {
|
||||
System.out.println((new StringBuilder()).append("handlePlayerCommand ").append(packet19.a).append(" ").append(packet19.b).toString());
|
||||
if (packet19.b == 1) {
|
||||
e.b(true);
|
||||
} else if (packet19.b == 2) {
|
||||
e.b(false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -615,7 +620,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
}
|
||||
|
||||
public void a(Packet9 packet9) {
|
||||
if (e.ba > 0) {
|
||||
if (e.aZ > 0) {
|
||||
return;
|
||||
} else {
|
||||
e = d.f.d(e);
|
||||
@ -625,7 +630,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
}
|
||||
|
||||
public void a(Packet101 packet101) {
|
||||
e.K();
|
||||
e.N();
|
||||
}
|
||||
|
||||
public void a(Packet102 packet102) {
|
||||
@ -636,7 +641,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
e.a.b(((Packet) (new Packet106(packet102.a, packet102.d, true))));
|
||||
e.am = true;
|
||||
e.ap.a();
|
||||
e.J();
|
||||
e.M();
|
||||
e.am = false;
|
||||
} else {
|
||||
k.put(((Integer.valueOf(e.ap.f))), ((Short.valueOf(packet102.d))));
|
||||
@ -663,7 +668,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
|
||||
public void a(Packet130 packet130) {
|
||||
if (d.e.f(packet130.a, packet130.b, packet130.c)) {
|
||||
TileEntity tileentity = d.e.l(packet130.a, packet130.b, packet130.c);
|
||||
TileEntity tileentity = d.e.m(packet130.a, packet130.b, packet130.c);
|
||||
|
||||
for (int l = 0; l < 4; l++) {
|
||||
boolean flag = true;
|
||||
@ -676,7 +681,6 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (!flag) {
|
||||
packet130.d[l] = "!?";
|
||||
|
@ -1,47 +0,0 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
import java.util.HashMap;
|
||||
|
||||
class NetworkAcceptThread extends Thread {
|
||||
|
||||
final MinecraftServer a; /* synthetic field */
|
||||
|
||||
final NetworkListenThread b; /* synthetic field */
|
||||
|
||||
|
||||
NetworkAcceptThread(NetworkListenThread networklistenthread, String s, MinecraftServer minecraftserver) {
|
||||
b = networklistenthread;
|
||||
a = minecraftserver;
|
||||
// super(s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
HashMap<InetAddress, Long> clients = new HashMap<InetAddress, Long>();
|
||||
do {
|
||||
if (!b.b) {
|
||||
break;
|
||||
}
|
||||
try {
|
||||
java.net.Socket socket = NetworkListenThread.a(b).accept();
|
||||
if (socket != null) {
|
||||
InetAddress addr = socket.getInetAddress();
|
||||
if (clients.containsKey(addr)) {
|
||||
if (System.currentTimeMillis() - clients.get(addr) < 5000) {
|
||||
clients.put(addr, System.currentTimeMillis());
|
||||
socket.close();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
clients.put(addr, System.currentTimeMillis());
|
||||
NetLoginHandler netloginhandler = new NetLoginHandler(a, socket, (new StringBuilder()).append("Connection #").append(NetworkListenThread.b(b)).toString());
|
||||
NetworkListenThread.a(b, netloginhandler);
|
||||
}
|
||||
} catch (IOException ioexception) {
|
||||
ioexception.printStackTrace();
|
||||
}
|
||||
} while (true);
|
||||
}
|
||||
}
|
@ -1,91 +0,0 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.ServerSocket;
|
||||
import java.util.ArrayList;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class NetworkListenThread {
|
||||
|
||||
public static Logger a = Logger.getLogger("Minecraft");
|
||||
private ServerSocket d;
|
||||
private Thread e;
|
||||
public volatile boolean b;
|
||||
private int f;
|
||||
private ArrayList g;
|
||||
private ArrayList h;
|
||||
public MinecraftServer c;
|
||||
|
||||
public NetworkListenThread(MinecraftServer minecraftserver, InetAddress inetaddress, int i) {
|
||||
b = false;
|
||||
f = 0;
|
||||
g = new ArrayList();
|
||||
h = new ArrayList();
|
||||
c = minecraftserver;
|
||||
try {
|
||||
d = new ServerSocket(i, 20, inetaddress);
|
||||
} catch (IOException ioexception) {
|
||||
}
|
||||
d.setPerformancePreferences(0, 2, 1);
|
||||
b = true;
|
||||
e = new NetworkAcceptThread(this, "Listen thread", minecraftserver);
|
||||
e.start();
|
||||
}
|
||||
|
||||
public void a(NetServerHandler netserverhandler) {
|
||||
h.add(netserverhandler);
|
||||
}
|
||||
|
||||
private void a(NetLoginHandler netloginhandler) {
|
||||
if (netloginhandler == null) {
|
||||
throw new IllegalArgumentException("Got null pendingconnection!");
|
||||
} else {
|
||||
g.add(netloginhandler);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public void a() {
|
||||
for (int i = 0; i < g.size(); i++) {
|
||||
NetLoginHandler netloginhandler = (NetLoginHandler) g.get(i);
|
||||
try {
|
||||
netloginhandler.a();
|
||||
} catch (Exception exception) {
|
||||
netloginhandler.a("Internal server error");
|
||||
a.log(Level.WARNING, (new StringBuilder()).append("Failed to handle packet: ").append(exception).toString(), exception);
|
||||
}
|
||||
if (netloginhandler.c) {
|
||||
g.remove(i--);
|
||||
}
|
||||
}
|
||||
|
||||
for (int j = 0; j < h.size(); j++) {
|
||||
NetServerHandler netserverhandler = (NetServerHandler) h.get(j);
|
||||
|
||||
try {
|
||||
netserverhandler.a();
|
||||
} catch (Exception exception1) {
|
||||
a.log(Level.WARNING, (new StringBuilder()).append("Failed to handle packet: ").append(exception1).toString(), exception1);
|
||||
netserverhandler.a("Internal server error");
|
||||
}
|
||||
if (netserverhandler.c) {
|
||||
h.remove(j--);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static ServerSocket a(NetworkListenThread networklistenthread) {
|
||||
return networklistenthread.d;
|
||||
}
|
||||
|
||||
static int b(NetworkListenThread networklistenthread) {
|
||||
return networklistenthread.f++;
|
||||
}
|
||||
|
||||
static void a(NetworkListenThread networklistenthread, NetLoginHandler netloginhandler) {
|
||||
networklistenthread.a(netloginhandler);
|
||||
}
|
||||
}
|
@ -148,7 +148,7 @@ public class ServerConfigurationManager {
|
||||
d.a(entityplayermp1);
|
||||
c.e.a(((Entity) (entityplayermp1)));
|
||||
b.add(((entityplayermp1)));
|
||||
entityplayermp1.k();
|
||||
entityplayermp1.l();
|
||||
return entityplayermp1;
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ public class Slot {
|
||||
}
|
||||
|
||||
public ItemStack a(int i) {
|
||||
return b.a(a, i);
|
||||
return b.b(a, i);
|
||||
}
|
||||
|
||||
public boolean a(IInventory iinventory, int i) {
|
||||
|
@ -14,7 +14,7 @@ public class TileEntityChest extends TileEntity implements IInventory {
|
||||
e = new ItemStack[36];
|
||||
}
|
||||
|
||||
public int a() {
|
||||
public int h_() {
|
||||
return 27;
|
||||
}
|
||||
|
||||
@ -22,7 +22,7 @@ public class TileEntityChest extends TileEntity implements IInventory {
|
||||
return e[i];
|
||||
}
|
||||
|
||||
public ItemStack a(int i, int j) {
|
||||
public ItemStack b(int i, int j) {
|
||||
if (e[i] != null) {
|
||||
if (e[i].a <= j) {
|
||||
ItemStack itemstack = e[i];
|
||||
@ -59,7 +59,7 @@ public class TileEntityChest extends TileEntity implements IInventory {
|
||||
super.a(nbttagcompound);
|
||||
NBTTagList nbttaglist = nbttagcompound.k("Items");
|
||||
|
||||
e = new ItemStack[a()];
|
||||
e = new ItemStack[h_()];
|
||||
for (int i = 0; i < nbttaglist.b(); i++) {
|
||||
NBTTagCompound nbttagcompound1 = (NBTTagCompound) nbttaglist.a(i);
|
||||
int j = nbttagcompound1.b("Slot") & 0xff;
|
||||
@ -92,7 +92,7 @@ public class TileEntityChest extends TileEntity implements IInventory {
|
||||
}
|
||||
|
||||
public boolean a_(EntityPlayer entityplayer) {
|
||||
if (a.l(b, c, d) != this) {
|
||||
if (a.m(b, c, d) != this) {
|
||||
return false;
|
||||
}
|
||||
return entityplayer.d((double) b + 0.5D, (double) c + 0.5D, (double) d + 0.5D) <= 64D;
|
||||
|
@ -20,7 +20,7 @@ public class TileEntityFurnace extends TileEntity implements IInventory {
|
||||
g = 0;
|
||||
}
|
||||
|
||||
public int a() {
|
||||
public int h_() {
|
||||
return h.length;
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@ public class TileEntityFurnace extends TileEntity implements IInventory {
|
||||
return h[j];
|
||||
}
|
||||
|
||||
public ItemStack a(int j, int k) {
|
||||
public ItemStack b(int j, int k) {
|
||||
if (h[j] != null) {
|
||||
if (h[j].a <= k) {
|
||||
ItemStack itemstack = h[j];
|
||||
@ -62,7 +62,7 @@ public class TileEntityFurnace extends TileEntity implements IInventory {
|
||||
super.a(nbttagcompound);
|
||||
NBTTagList nbttaglist = nbttagcompound.k("Items");
|
||||
|
||||
h = new ItemStack[a()];
|
||||
h = new ItemStack[h_()];
|
||||
for (int j = 0; j < nbttaglist.b(); j++) {
|
||||
NBTTagCompound nbttagcompound1 = (NBTTagCompound) nbttaglist.a(j);
|
||||
byte byte0 = nbttagcompound1.b("Slot");
|
||||
@ -100,11 +100,11 @@ public class TileEntityFurnace extends TileEntity implements IInventory {
|
||||
return 64;
|
||||
}
|
||||
|
||||
public boolean g() {
|
||||
public boolean e() {
|
||||
return e > 0;
|
||||
}
|
||||
|
||||
public void e() {
|
||||
public void f() {
|
||||
boolean flag = e > 0;
|
||||
boolean flag1 = false;
|
||||
|
||||
@ -124,7 +124,7 @@ public class TileEntityFurnace extends TileEntity implements IInventory {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (g() && i()) {
|
||||
if (e() && i()) {
|
||||
g++;
|
||||
if (g == 200) {
|
||||
g = 0;
|
||||
@ -148,32 +148,32 @@ public class TileEntityFurnace extends TileEntity implements IInventory {
|
||||
if (h[0] == null) {
|
||||
return false;
|
||||
}
|
||||
int j = b(h[0].a().aW);
|
||||
ItemStack itemstack = FurnaceRecipes.a().a(h[0].a().ba);
|
||||
|
||||
if (j < 0) {
|
||||
if (itemstack == null) {
|
||||
return false;
|
||||
}
|
||||
if (h[2] == null) {
|
||||
return true;
|
||||
}
|
||||
if (h[2].c != j) {
|
||||
if (!h[2].a(itemstack)) {
|
||||
return false;
|
||||
}
|
||||
if (h[2].a < c() && h[2].a < h[2].b()) {
|
||||
return true;
|
||||
}
|
||||
return h[2].a < Item.c[j].b();
|
||||
return h[2].a < itemstack.b();
|
||||
}
|
||||
|
||||
public void h() {
|
||||
if (!i()) {
|
||||
return;
|
||||
}
|
||||
int j = b(h[0].a().aW);
|
||||
ItemStack itemstack = FurnaceRecipes.a().a(h[0].a().ba);
|
||||
|
||||
if (h[2] == null) {
|
||||
h[2] = new ItemStack(j, 1);
|
||||
} else if (h[2].c == j) {
|
||||
h[2] = itemstack.j();
|
||||
} else if (h[2].c == itemstack.c) {
|
||||
h[2].a++;
|
||||
}
|
||||
h[0].a--;
|
||||
@ -182,55 +182,26 @@ public class TileEntityFurnace extends TileEntity implements IInventory {
|
||||
}
|
||||
}
|
||||
|
||||
private int b(int j) {
|
||||
if (j == Block.H.bh) {
|
||||
return Item.m.aW;
|
||||
}
|
||||
if (j == Block.G.bh) {
|
||||
return Item.n.aW;
|
||||
}
|
||||
if (j == Block.aw.bh) {
|
||||
return Item.l.aW;
|
||||
}
|
||||
if (j == Block.E.bh) {
|
||||
return Block.M.bh;
|
||||
}
|
||||
if (j == Item.ao.aW) {
|
||||
return Item.ap.aW;
|
||||
}
|
||||
if (j == Item.aS.aW) {
|
||||
return Item.aT.aW;
|
||||
}
|
||||
if (j == Block.w.bh) {
|
||||
return Block.t.bh;
|
||||
}
|
||||
if (j == Item.aG.aW) {
|
||||
return Item.aF.aW;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
private int a(ItemStack itemstack) {
|
||||
if (itemstack == null) {
|
||||
return 0;
|
||||
}
|
||||
int j = itemstack.a().aW;
|
||||
int j = itemstack.a().ba;
|
||||
|
||||
if (j < 256 && Block.m[j].bs == Material.c) {
|
||||
if (j < 256 && Block.m[j].bt == Material.c) {
|
||||
return 300;
|
||||
}
|
||||
if (j == Item.B.aW) {
|
||||
if (j == Item.B.ba) {
|
||||
return 100;
|
||||
}
|
||||
if (j == Item.k.aW) {
|
||||
if (j == Item.k.ba) {
|
||||
return 1600;
|
||||
}
|
||||
return j != Item.aw.aW ? 0 : 20000;
|
||||
return j != Item.aw.ba ? 0 : 20000;
|
||||
}
|
||||
|
||||
public boolean a_(EntityPlayer entityplayer) {
|
||||
if (a.l(b, c, d) != this) {
|
||||
if (a.m(b, c, d) != this) {
|
||||
return false;
|
||||
}
|
||||
return entityplayer.d((double) b + 0.5D, (double) c + 0.5D, (double) d + 0.5D) <= 64D;
|
||||
|
@ -34,8 +34,8 @@ public class WorldServer extends World {
|
||||
}
|
||||
|
||||
public void a(Entity entity, boolean flag) {
|
||||
if (!D.m && (entity instanceof EntityAnimals)) {
|
||||
entity.l();
|
||||
if (!D.m && ((entity instanceof EntityAnimals) || (entity instanceof EntityWaterMob))) {
|
||||
entity.q();
|
||||
}
|
||||
if (entity.j == null || !(entity.j instanceof EntityPlayer)) {
|
||||
super.a(entity, flag);
|
||||
@ -107,15 +107,15 @@ public class WorldServer extends World {
|
||||
private final CraftServer server;
|
||||
|
||||
@Override
|
||||
public boolean c(int i1, int j1, int k1, int l1) {
|
||||
boolean result = super.c(i1, j1, k1, l1);
|
||||
public boolean d(int i1, int j1, int k1, int l1) {
|
||||
boolean result = super.d(i1, j1, k1, l1);
|
||||
if ((result) && (world != null)) world.updateBlock(i1, j1, k1);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean a(int i1, int j1, int k1, int l1) {
|
||||
boolean result = super.a(i1, j1, k1, l1);
|
||||
public boolean b(int i1, int j1, int k1, int l1) {
|
||||
boolean result = super.b(i1, j1, k1, l1);
|
||||
if ((result) && (world != null)) world.updateBlock(i1, j1, k1);
|
||||
return result;
|
||||
}
|
||||
@ -138,17 +138,17 @@ public class WorldServer extends World {
|
||||
// XXX: the following method is straight from the World.java with tweaks as noted. KEEP THEM UPDATED!
|
||||
// XXX: done because it calls private k()
|
||||
@Override
|
||||
public void g(int i1, int j1, int k1, int l1) {
|
||||
k(i1 - 1, j1, k1, l1);
|
||||
k(i1 + 1, j1, k1, l1);
|
||||
k(i1, j1 - 1, k1, l1);
|
||||
k(i1, j1 + 1, k1, l1);
|
||||
k(i1, j1, k1 - 1, l1);
|
||||
k(i1, j1, k1 + 1, l1);
|
||||
public void h(int i1, int j1, int k1, int l1) {
|
||||
l(i1 - 1, j1, k1, l1);
|
||||
l(i1 + 1, j1, k1, l1);
|
||||
l(i1, j1 - 1, k1, l1);
|
||||
l(i1, j1 + 1, k1, l1);
|
||||
l(i1, j1, k1 - 1, l1);
|
||||
l(i1, j1, k1 + 1, l1);
|
||||
}
|
||||
|
||||
// XXX: the following method is straight from the World.java with tweaks as noted. KEEP THEM UPDATED!
|
||||
private void k(int i1, int j1, int k1, int l1) {
|
||||
private void l(int i1, int j1, int k1, int l1) {
|
||||
if (i || z) {
|
||||
return;
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ public class CraftBlock implements Block {
|
||||
this.z = z;
|
||||
this.type = type;
|
||||
this.data = data;
|
||||
this.light = (byte)world.getHandle().i(x, y, z);
|
||||
this.light = (byte)world.getHandle().j(x, y, z);
|
||||
this.chunk = (CraftChunk)world.getChunkAt(x << 4, z << 4);
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ public class CraftBlock implements Block {
|
||||
*/
|
||||
public boolean setTypeID(final int type) {
|
||||
this.type = type;
|
||||
return world.getHandle().d(x, y, z, type);
|
||||
return world.getHandle().e(x, y, z, type);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -259,9 +259,9 @@ public class CraftBlock implements Block {
|
||||
Material material = getType();
|
||||
|
||||
switch (material) {
|
||||
case Sign:
|
||||
case SignPost:
|
||||
case WallSign:
|
||||
case SIGN:
|
||||
case SIGN_POST:
|
||||
case WALL_SIGN:
|
||||
return new CraftSign(this);
|
||||
default:
|
||||
return new CraftBlockState(this);
|
||||
|
@ -19,7 +19,7 @@ public class CraftInventory implements org.bukkit.Inventory {
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
return getInventory().a();
|
||||
return getInventory().h_();
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
@ -42,7 +42,7 @@ public class CraftInventory implements org.bukkit.Inventory {
|
||||
}
|
||||
|
||||
public void setItem(int index, ItemStack item) {
|
||||
getInventory().a( index, new net.minecraft.server.ItemStack( item.getTypeID(), item.getAmount()));
|
||||
getInventory().a( index, new net.minecraft.server.ItemStack( item.getTypeID(), item.getAmount(), 0));
|
||||
}
|
||||
|
||||
public boolean contains(int materialId) {
|
||||
@ -121,7 +121,7 @@ public class CraftInventory implements org.bukkit.Inventory {
|
||||
}
|
||||
|
||||
public int firstEmpty() {
|
||||
return first(Material.Air);
|
||||
return first(Material.AIR);
|
||||
}
|
||||
|
||||
public int firstPartial(int materialId) {
|
||||
|
@ -36,7 +36,7 @@ public class CraftItemStack extends ItemStack {
|
||||
item = null;
|
||||
} else {
|
||||
if (item == null) {
|
||||
item = new net.minecraft.server.ItemStack(type);
|
||||
item = new net.minecraft.server.ItemStack(type, 1, 0);
|
||||
super.setAmount(1);
|
||||
} else {
|
||||
item.c = type;
|
||||
|
@ -213,7 +213,7 @@ public class CraftWorld implements World {
|
||||
}
|
||||
|
||||
public TileEntity getTileEntityAt(final int x, final int y, final int z) {
|
||||
return world.l(x, y, z);
|
||||
return world.m(x, y, z);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
|
@ -110,7 +110,7 @@ public class CraftBlockState implements BlockState {
|
||||
*/
|
||||
public void setTypeID(final int type) {
|
||||
this.type = type;
|
||||
world.getHandle().d(x, y, z, type);
|
||||
world.getHandle().e(x, y, z, type);
|
||||
}
|
||||
|
||||
/**
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren