mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-13 11:15:57 -07:00
Update to Minecraft 1.7
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
@@ -36,12 +37,13 @@ public class World implements IBlockAccess {
|
||||
private TreeSet E = new TreeSet();
|
||||
private Set F = new HashSet();
|
||||
public List c = new ArrayList();
|
||||
private List G = new ArrayList();
|
||||
public List players = new ArrayList();
|
||||
public List e = new ArrayList();
|
||||
private long G = 16777215L;
|
||||
private long H = 16777215L;
|
||||
public int f = 0;
|
||||
protected int g = (new Random()).nextInt();
|
||||
protected int h = 1013904223;
|
||||
protected final int h = 1013904223;
|
||||
protected float i;
|
||||
protected float j;
|
||||
protected float k;
|
||||
@@ -49,7 +51,7 @@ public class World implements IBlockAccess {
|
||||
protected int m = 0;
|
||||
public int n = 0;
|
||||
public boolean suppressPhysics = false;
|
||||
private long H = System.currentTimeMillis();
|
||||
private long I = System.currentTimeMillis();
|
||||
protected int p = 40;
|
||||
public int spawnMonsters;
|
||||
public Random random = new Random();
|
||||
@@ -60,16 +62,17 @@ public class World implements IBlockAccess {
|
||||
protected final IDataManager w;
|
||||
public WorldData worldData; // CraftBukkit - protected -> public
|
||||
public boolean isLoading;
|
||||
private boolean I;
|
||||
private boolean J;
|
||||
public WorldMapCollection worldMaps;
|
||||
private ArrayList J = new ArrayList();
|
||||
private int K = 0;
|
||||
private ArrayList K = new ArrayList();
|
||||
private boolean L;
|
||||
private int M = 0;
|
||||
public boolean allowMonsters = true; // CraftBukkit - private -> public
|
||||
public boolean allowAnimals = true; // CraftBukkit - private -> public
|
||||
static int A = 0;
|
||||
private Set N = new HashSet();
|
||||
private int O;
|
||||
private List P;
|
||||
private Set P = new HashSet();
|
||||
private int Q;
|
||||
private List R;
|
||||
public boolean isStatic;
|
||||
|
||||
public WorldChunkManager getWorldChunkManager() {
|
||||
@@ -107,8 +110,8 @@ public class World implements IBlockAccess {
|
||||
this.world = new CraftWorld((WorldServer) this, gen, env);
|
||||
// CraftBukkit end
|
||||
|
||||
this.O = this.random.nextInt(12000);
|
||||
this.P = new ArrayList();
|
||||
this.Q = this.random.nextInt(12000);
|
||||
this.R = new ArrayList();
|
||||
this.isStatic = false;
|
||||
this.w = idatamanager;
|
||||
this.worldMaps = new WorldMapCollection(idatamanager);
|
||||
@@ -407,7 +410,7 @@ public class World implements IBlockAccess {
|
||||
this.b(i, k, j, i, l, j);
|
||||
}
|
||||
|
||||
public void h(int i, int j, int k) {
|
||||
public void i(int i, int j, int k) {
|
||||
for (int l = 0; l < this.u.size(); ++l) {
|
||||
((IWorldAccess) this.u.get(l)).a(i, j, k, i, j, k);
|
||||
}
|
||||
@@ -454,7 +457,7 @@ public class World implements IBlockAccess {
|
||||
return this.getChunkAt(i >> 4, k >> 4).c(i & 15, j, k & 15);
|
||||
}
|
||||
|
||||
public int j(int i, int j, int k) {
|
||||
public int k(int i, int j, int k) {
|
||||
if (j < 0) {
|
||||
return 0;
|
||||
} else {
|
||||
@@ -520,7 +523,7 @@ public class World implements IBlockAccess {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean l(int i, int j, int k) {
|
||||
public boolean m(int i, int j, int k) {
|
||||
if (i >= -32000000 && k >= -32000000 && i < 32000000 && k <= 32000000) {
|
||||
if (j < 0) {
|
||||
return false;
|
||||
@@ -558,7 +561,7 @@ public class World implements IBlockAccess {
|
||||
if (!this.worldProvider.e || enumskyblock != EnumSkyBlock.SKY) {
|
||||
if (this.isLoaded(i, j, k)) {
|
||||
if (enumskyblock == EnumSkyBlock.SKY) {
|
||||
if (this.l(i, j, k)) {
|
||||
if (this.m(i, j, k)) {
|
||||
l = 15;
|
||||
}
|
||||
} else if (enumskyblock == EnumSkyBlock.BLOCK) {
|
||||
@@ -619,7 +622,7 @@ public class World implements IBlockAccess {
|
||||
}
|
||||
}
|
||||
|
||||
public float m(int i, int j, int k) {
|
||||
public float n(int i, int j, int k) {
|
||||
return this.worldProvider.f[this.getLightLevel(i, j, k)];
|
||||
}
|
||||
|
||||
@@ -648,7 +651,7 @@ public class World implements IBlockAccess {
|
||||
int l1 = this.getData(l, i1, j1);
|
||||
Block block = Block.byId[k1];
|
||||
|
||||
if ((!flag1 || block == null || block.d(this, l, i1, j1) != null) && k1 > 0 && block.a(l1, flag)) {
|
||||
if ((!flag1 || block == null || block.e(this, l, i1, j1) != null) && k1 > 0 && block.a(l1, flag)) {
|
||||
MovingObjectPosition movingobjectposition = block.a(this, l, i1, j1, vec3d, vec3d1);
|
||||
|
||||
if (movingobjectposition != null) {
|
||||
@@ -776,7 +779,7 @@ public class World implements IBlockAccess {
|
||||
int j2 = this.getData(l, i1, j1);
|
||||
Block block1 = Block.byId[i2];
|
||||
|
||||
if ((!flag1 || block1 == null || block1.d(this, l, i1, j1) != null) && i2 > 0 && block1.a(j2, flag)) {
|
||||
if ((!flag1 || block1 == null || block1.e(this, l, i1, j1) != null) && i2 > 0 && block1.a(j2, flag)) {
|
||||
MovingObjectPosition movingobjectposition1 = block1.a(this, l, i1, j1, vec3d, vec3d1);
|
||||
|
||||
if (movingobjectposition1 != null) {
|
||||
@@ -906,10 +909,10 @@ public class World implements IBlockAccess {
|
||||
this.everyoneSleeping();
|
||||
}
|
||||
|
||||
int i = entity.bG;
|
||||
int j = entity.bI;
|
||||
int i = entity.bH;
|
||||
int j = entity.bJ;
|
||||
|
||||
if (entity.bF && this.isChunkLoaded(i, j)) {
|
||||
if (entity.bG && this.isChunkLoaded(i, j)) {
|
||||
this.getChunkAt(i, j).b(entity);
|
||||
}
|
||||
|
||||
@@ -922,7 +925,7 @@ public class World implements IBlockAccess {
|
||||
}
|
||||
|
||||
public List getEntities(Entity entity, AxisAlignedBB axisalignedbb) {
|
||||
this.J.clear();
|
||||
this.K.clear();
|
||||
int i = MathHelper.floor(axisalignedbb.a);
|
||||
int j = MathHelper.floor(axisalignedbb.d + 1.0D);
|
||||
int k = MathHelper.floor(axisalignedbb.b);
|
||||
@@ -937,7 +940,7 @@ public class World implements IBlockAccess {
|
||||
Block block = Block.byId[this.getTypeId(k1, i2, l1)];
|
||||
|
||||
if (block != null) {
|
||||
block.a(this, k1, i2, l1, axisalignedbb, this.J);
|
||||
block.a(this, k1, i2, l1, axisalignedbb, this.K);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -951,16 +954,16 @@ public class World implements IBlockAccess {
|
||||
AxisAlignedBB axisalignedbb1 = ((Entity) list.get(j2)).e_();
|
||||
|
||||
if (axisalignedbb1 != null && axisalignedbb1.a(axisalignedbb)) {
|
||||
this.J.add(axisalignedbb1);
|
||||
this.K.add(axisalignedbb1);
|
||||
}
|
||||
|
||||
axisalignedbb1 = entity.a_((Entity) list.get(j2));
|
||||
if (axisalignedbb1 != null && axisalignedbb1.a(axisalignedbb)) {
|
||||
this.J.add(axisalignedbb1);
|
||||
this.K.add(axisalignedbb1);
|
||||
}
|
||||
}
|
||||
|
||||
return this.J;
|
||||
return this.K;
|
||||
}
|
||||
|
||||
public int a(float f) {
|
||||
@@ -1058,7 +1061,7 @@ public class World implements IBlockAccess {
|
||||
continue;
|
||||
}
|
||||
// CraftBukkit end
|
||||
entity.o_();
|
||||
entity.m_();
|
||||
if (entity.dead) {
|
||||
this.e.remove(i--);
|
||||
}
|
||||
@@ -1071,9 +1074,9 @@ public class World implements IBlockAccess {
|
||||
|
||||
for (i = 0; i < this.D.size(); ++i) {
|
||||
entity = (Entity) this.D.get(i);
|
||||
j = entity.bG;
|
||||
k = entity.bI;
|
||||
if (entity.bF && this.isChunkLoaded(j, k)) {
|
||||
j = entity.bH;
|
||||
k = entity.bJ;
|
||||
if (entity.bG && this.isChunkLoaded(j, k)) {
|
||||
this.getChunkAt(j, k).b(entity);
|
||||
}
|
||||
}
|
||||
@@ -1100,9 +1103,9 @@ public class World implements IBlockAccess {
|
||||
}
|
||||
|
||||
if (entity.dead) {
|
||||
j = entity.bG;
|
||||
k = entity.bI;
|
||||
if (entity.bF && this.isChunkLoaded(j, k)) {
|
||||
j = entity.bH;
|
||||
k = entity.bJ;
|
||||
if (entity.bG && this.isChunkLoaded(j, k)) {
|
||||
this.getChunkAt(j, k).b(entity);
|
||||
}
|
||||
|
||||
@@ -1111,10 +1114,57 @@ public class World implements IBlockAccess {
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < this.c.size(); ++i) {
|
||||
TileEntity tileentity = (TileEntity) this.c.get(i);
|
||||
this.L = true;
|
||||
Iterator iterator = this.c.iterator();
|
||||
|
||||
tileentity.g_();
|
||||
while (iterator.hasNext()) {
|
||||
TileEntity tileentity = (TileEntity) iterator.next();
|
||||
|
||||
if (!tileentity.g()) {
|
||||
tileentity.g_();
|
||||
}
|
||||
|
||||
if (tileentity.g()) {
|
||||
iterator.remove();
|
||||
Chunk chunk = this.getChunkAt(tileentity.x >> 4, tileentity.z >> 4);
|
||||
|
||||
if (chunk != null) {
|
||||
chunk.e(tileentity.x & 15, tileentity.y, tileentity.z & 15);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.L = false;
|
||||
if (!this.G.isEmpty()) {
|
||||
Iterator iterator1 = this.G.iterator();
|
||||
|
||||
while (iterator1.hasNext()) {
|
||||
TileEntity tileentity1 = (TileEntity) iterator1.next();
|
||||
|
||||
if (!tileentity1.g()) {
|
||||
if (!this.c.contains(tileentity1)) {
|
||||
this.c.add(tileentity1);
|
||||
}
|
||||
|
||||
Chunk chunk1 = this.getChunkAt(tileentity1.x >> 4, tileentity1.z >> 4);
|
||||
|
||||
if (chunk1 != null) {
|
||||
chunk1.a(tileentity1.x & 15, tileentity1.y, tileentity1.z & 15, tileentity1);
|
||||
}
|
||||
|
||||
this.notify(tileentity1.x, tileentity1.y, tileentity1.z);
|
||||
}
|
||||
}
|
||||
|
||||
this.G.clear();
|
||||
}
|
||||
}
|
||||
|
||||
public void a(Collection collection) {
|
||||
if (this.L) {
|
||||
this.G.addAll(collection);
|
||||
} else {
|
||||
this.c.addAll(collection);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1133,11 +1183,11 @@ public class World implements IBlockAccess {
|
||||
entity.bq = entity.locZ;
|
||||
entity.lastYaw = entity.yaw;
|
||||
entity.lastPitch = entity.pitch;
|
||||
if (flag && entity.bF) {
|
||||
if (flag && entity.bG) {
|
||||
if (entity.vehicle != null) {
|
||||
entity.D();
|
||||
entity.E();
|
||||
} else {
|
||||
entity.o_();
|
||||
entity.m_();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1165,20 +1215,20 @@ public class World implements IBlockAccess {
|
||||
int l = MathHelper.floor(entity.locY / 16.0D);
|
||||
int i1 = MathHelper.floor(entity.locZ / 16.0D);
|
||||
|
||||
if (!entity.bF || entity.bG != k || entity.bH != l || entity.bI != i1) {
|
||||
if (entity.bF && this.isChunkLoaded(entity.bG, entity.bI)) {
|
||||
this.getChunkAt(entity.bG, entity.bI).a(entity, entity.bH);
|
||||
if (!entity.bG || entity.bH != k || entity.bI != l || entity.bJ != i1) {
|
||||
if (entity.bG && this.isChunkLoaded(entity.bH, entity.bJ)) {
|
||||
this.getChunkAt(entity.bH, entity.bJ).a(entity, entity.bI);
|
||||
}
|
||||
|
||||
if (this.isChunkLoaded(k, i1)) {
|
||||
entity.bF = true;
|
||||
entity.bG = true;
|
||||
this.getChunkAt(k, i1).a(entity);
|
||||
} else {
|
||||
entity.bF = false;
|
||||
entity.bG = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (flag && entity.bF && entity.passenger != null) {
|
||||
if (flag && entity.bG && entity.passenger != null) {
|
||||
if (!entity.passenger.dead && entity.passenger.vehicle == entity) {
|
||||
this.playerJoinedWorld(entity.passenger);
|
||||
} else {
|
||||
@@ -1474,18 +1524,38 @@ public class World implements IBlockAccess {
|
||||
}
|
||||
|
||||
public void setTileEntity(int i, int j, int k, TileEntity tileentity) {
|
||||
Chunk chunk = this.getChunkAt(i >> 4, k >> 4);
|
||||
if (!tileentity.g()) {
|
||||
if (this.L) {
|
||||
tileentity.x = i;
|
||||
tileentity.y = j;
|
||||
tileentity.z = k;
|
||||
this.G.add(tileentity);
|
||||
} else {
|
||||
this.c.add(tileentity);
|
||||
Chunk chunk = this.getChunkAt(i >> 4, k >> 4);
|
||||
|
||||
if (chunk != null) {
|
||||
chunk.a(i & 15, j, k & 15, tileentity);
|
||||
if (chunk != null) {
|
||||
chunk.a(i & 15, j, k & 15, tileentity);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void o(int i, int j, int k) {
|
||||
Chunk chunk = this.getChunkAt(i >> 4, k >> 4);
|
||||
TileEntity tileentity = this.getTileEntity(i, j, k);
|
||||
|
||||
if (chunk != null) {
|
||||
chunk.e(i & 15, j, k & 15);
|
||||
if (tileentity != null && this.L) {
|
||||
tileentity.h();
|
||||
} else {
|
||||
if (tileentity != null) {
|
||||
this.c.remove(tileentity);
|
||||
}
|
||||
|
||||
Chunk chunk = this.getChunkAt(i >> 4, k >> 4);
|
||||
|
||||
if (chunk != null) {
|
||||
chunk.e(i & 15, j, k & 15);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1495,23 +1565,23 @@ public class World implements IBlockAccess {
|
||||
return block == null ? false : block.a();
|
||||
}
|
||||
|
||||
public boolean d(int i, int j, int k) {
|
||||
public boolean e(int i, int j, int k) {
|
||||
Block block = Block.byId[this.getTypeId(i, j, k)];
|
||||
|
||||
return block == null ? false : block.material.h() && block.b();
|
||||
}
|
||||
|
||||
public boolean doLighting() {
|
||||
if (this.K >= 50) {
|
||||
if (this.M >= 50) {
|
||||
return false;
|
||||
} else {
|
||||
++this.K;
|
||||
|
||||
boolean flag;
|
||||
++this.M;
|
||||
|
||||
try {
|
||||
int i = 500;
|
||||
|
||||
boolean flag;
|
||||
|
||||
while (this.C.size() > 0) {
|
||||
--i;
|
||||
if (i <= 0) {
|
||||
@@ -1523,11 +1593,10 @@ public class World implements IBlockAccess {
|
||||
}
|
||||
|
||||
flag = false;
|
||||
return flag;
|
||||
} finally {
|
||||
--this.K;
|
||||
--this.M;
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1547,37 +1616,37 @@ public class World implements IBlockAccess {
|
||||
int k1 = (l + i) / 2;
|
||||
int l1 = (j1 + k) / 2;
|
||||
|
||||
if (!this.isLoaded(k1, 64, l1)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.getChunkAtWorldCoords(k1, l1).isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
int i2 = this.C.size();
|
||||
int j2;
|
||||
|
||||
if (flag) {
|
||||
j2 = 5;
|
||||
if (j2 > i2) {
|
||||
j2 = i2;
|
||||
if (this.isLoaded(k1, 64, l1)) {
|
||||
if (this.getChunkAtWorldCoords(k1, l1).isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (int k2 = 0; k2 < j2; ++k2) {
|
||||
MetadataChunkBlock metadatachunkblock = (MetadataChunkBlock) this.C.get(this.C.size() - k2 - 1);
|
||||
int i2 = this.C.size();
|
||||
int j2;
|
||||
|
||||
if (metadatachunkblock.a == enumskyblock && metadatachunkblock.a(i, j, k, l, i1, j1)) {
|
||||
return;
|
||||
if (flag) {
|
||||
j2 = 5;
|
||||
if (j2 > i2) {
|
||||
j2 = i2;
|
||||
}
|
||||
|
||||
for (int k2 = 0; k2 < j2; ++k2) {
|
||||
MetadataChunkBlock metadatachunkblock = (MetadataChunkBlock) this.C.get(this.C.size() - k2 - 1);
|
||||
|
||||
if (metadatachunkblock.a == enumskyblock && metadatachunkblock.a(i, j, k, l, i1, j1)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.C.add(new MetadataChunkBlock(enumskyblock, i, j, k, l, i1, j1));
|
||||
j2 = 1000000;
|
||||
if (this.C.size() > 1000000) {
|
||||
System.out.println("More than " + j2 + " updates, aborting lighting updates");
|
||||
this.C.clear();
|
||||
this.C.add(new MetadataChunkBlock(enumskyblock, i, j, k, l, i1, j1));
|
||||
j2 = 1000000;
|
||||
if (this.C.size() > 1000000) {
|
||||
System.out.println("More than " + j2 + " updates, aborting lighting updates");
|
||||
this.C.clear();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
} finally {
|
||||
--A;
|
||||
@@ -1754,7 +1823,7 @@ public class World implements IBlockAccess {
|
||||
}
|
||||
|
||||
protected void j() {
|
||||
this.N.clear();
|
||||
this.P.clear();
|
||||
|
||||
int i;
|
||||
int j;
|
||||
@@ -1770,16 +1839,16 @@ public class World implements IBlockAccess {
|
||||
|
||||
for (k = -b0; k <= b0; ++k) {
|
||||
for (l = -b0; l <= b0; ++l) {
|
||||
this.N.add(new ChunkCoordIntPair(k + i, l + j));
|
||||
this.P.add(new ChunkCoordIntPair(k + i, l + j));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this.O > 0) {
|
||||
--this.O;
|
||||
if (this.Q > 0) {
|
||||
--this.Q;
|
||||
}
|
||||
|
||||
Iterator iterator = this.N.iterator();
|
||||
Iterator iterator = this.P.iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
ChunkCoordIntPair chunkcoordintpair = (ChunkCoordIntPair) iterator.next();
|
||||
@@ -1791,8 +1860,8 @@ public class World implements IBlockAccess {
|
||||
int k1;
|
||||
int l1;
|
||||
|
||||
if (this.O == 0) {
|
||||
this.g = this.g * 3 + this.h;
|
||||
if (this.Q == 0) {
|
||||
this.g = this.g * 3 + 1013904223;
|
||||
k = this.g >> 2;
|
||||
l = k & 15;
|
||||
j1 = k >> 8 & 15;
|
||||
@@ -1800,18 +1869,18 @@ public class World implements IBlockAccess {
|
||||
l1 = chunk.getTypeId(l, k1, j1);
|
||||
l += i;
|
||||
j1 += j;
|
||||
if (l1 == 0 && this.j(l, k1, j1) <= this.random.nextInt(8) && this.a(EnumSkyBlock.SKY, l, k1, j1) <= 0) {
|
||||
if (l1 == 0 && this.k(l, k1, j1) <= this.random.nextInt(8) && this.a(EnumSkyBlock.SKY, l, k1, j1) <= 0) {
|
||||
EntityHuman entityhuman1 = this.a((double) l + 0.5D, (double) k1 + 0.5D, (double) j1 + 0.5D, 8.0D);
|
||||
|
||||
if (entityhuman1 != null && entityhuman1.d((double) l + 0.5D, (double) k1 + 0.5D, (double) j1 + 0.5D) > 4.0D) {
|
||||
this.makeSound((double) l + 0.5D, (double) k1 + 0.5D, (double) j1 + 0.5D, "ambient.cave.cave", 0.7F, 0.8F + this.random.nextFloat() * 0.2F);
|
||||
this.O = this.random.nextInt(12000) + 6000;
|
||||
this.Q = this.random.nextInt(12000) + 6000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this.random.nextInt(100000) == 0 && this.v() && this.u()) {
|
||||
this.g = this.g * 3 + this.h;
|
||||
this.g = this.g * 3 + 1013904223;
|
||||
k = this.g >> 2;
|
||||
l = i + (k & 15);
|
||||
j1 = j + (k >> 8 & 15);
|
||||
@@ -1825,7 +1894,7 @@ public class World implements IBlockAccess {
|
||||
int i2;
|
||||
|
||||
if (this.random.nextInt(16) == 0) {
|
||||
this.g = this.g * 3 + this.h;
|
||||
this.g = this.g * 3 + 1013904223;
|
||||
k = this.g >> 2;
|
||||
l = k & 15;
|
||||
j1 = k >> 8 & 15;
|
||||
@@ -1861,7 +1930,7 @@ public class World implements IBlockAccess {
|
||||
}
|
||||
|
||||
for (k = 0; k < 80; ++k) {
|
||||
this.g = this.g * 3 + this.h;
|
||||
this.g = this.g * 3 + 1013904223;
|
||||
l = this.g >> 2;
|
||||
j1 = l & 15;
|
||||
k1 = l >> 8 & 15;
|
||||
@@ -1909,7 +1978,7 @@ public class World implements IBlockAccess {
|
||||
}
|
||||
|
||||
public List b(Entity entity, AxisAlignedBB axisalignedbb) {
|
||||
this.P.clear();
|
||||
this.R.clear();
|
||||
int i = MathHelper.floor((axisalignedbb.a - 2.0D) / 16.0D);
|
||||
int j = MathHelper.floor((axisalignedbb.d + 2.0D) / 16.0D);
|
||||
int k = MathHelper.floor((axisalignedbb.c - 2.0D) / 16.0D);
|
||||
@@ -1918,12 +1987,12 @@ public class World implements IBlockAccess {
|
||||
for (int i1 = i; i1 <= j; ++i1) {
|
||||
for (int j1 = k; j1 <= l; ++j1) {
|
||||
if (this.isChunkLoaded(i1, j1)) {
|
||||
this.getChunkAt(i1, j1).a(entity, axisalignedbb, this.P);
|
||||
this.getChunkAt(i1, j1).a(entity, axisalignedbb, this.R);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return this.P;
|
||||
return this.R;
|
||||
}
|
||||
|
||||
public List a(Class oclass, AxisAlignedBB axisalignedbb) {
|
||||
@@ -1992,7 +2061,7 @@ public class World implements IBlockAccess {
|
||||
int j1 = this.getTypeId(j, k, l);
|
||||
Block block = Block.byId[j1];
|
||||
Block block1 = Block.byId[i];
|
||||
AxisAlignedBB axisalignedbb = block1.d(this, j, k, l);
|
||||
AxisAlignedBB axisalignedbb = block1.e(this, j, k, l);
|
||||
|
||||
if (flag) {
|
||||
axisalignedbb = null;
|
||||
@@ -2053,7 +2122,7 @@ public class World implements IBlockAccess {
|
||||
public boolean isBlockFacePowered(int i, int j, int k, int l) {
|
||||
int i1 = this.getTypeId(i, j, k);
|
||||
|
||||
return i1 == 0 ? false : Block.byId[i1].c(this, i, j, k, l);
|
||||
return i1 == 0 ? false : Block.byId[i1].d(this, i, j, k, l);
|
||||
}
|
||||
|
||||
public boolean isBlockPowered(int i, int j, int k) {
|
||||
@@ -2061,7 +2130,7 @@ public class World implements IBlockAccess {
|
||||
}
|
||||
|
||||
public boolean isBlockFaceIndirectlyPowered(int i, int j, int k, int l) {
|
||||
if (this.d(i, j, k)) {
|
||||
if (this.e(i, j, k)) {
|
||||
return this.isBlockPowered(i, j, k);
|
||||
} else {
|
||||
int i1 = this.getTypeId(i, j, k);
|
||||
@@ -2206,7 +2275,7 @@ public class World implements IBlockAccess {
|
||||
}
|
||||
|
||||
public void everyoneSleeping() {
|
||||
this.I = !this.players.isEmpty();
|
||||
this.J = !this.players.isEmpty();
|
||||
Iterator iterator = this.players.iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
@@ -2214,7 +2283,7 @@ public class World implements IBlockAccess {
|
||||
|
||||
// CraftBukkit
|
||||
if (!entityhuman.isSleeping() && !entityhuman.fauxSleeping) {
|
||||
this.I = false;
|
||||
this.J = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2231,7 +2300,7 @@ public class World implements IBlockAccess {
|
||||
// CraftBukkit end
|
||||
|
||||
protected void s() {
|
||||
this.I = false;
|
||||
this.J = false;
|
||||
Iterator iterator = this.players.iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
@@ -2246,7 +2315,7 @@ public class World implements IBlockAccess {
|
||||
}
|
||||
|
||||
public boolean everyoneDeeplySleeping() {
|
||||
if (this.I && !this.isStatic) {
|
||||
if (this.J && !this.isStatic) {
|
||||
Iterator iterator = this.players.iterator();
|
||||
|
||||
// CraftBukkit - This allows us to assume that some people are in bed but not really, allowing time to pass in spite of AFKers
|
||||
|
Reference in New Issue
Block a user