Compare commits
6 commits
3b140b91c9
...
626612688f
| Author | SHA1 | Date | |
|---|---|---|---|
| 626612688f | |||
| 6229599499 | |||
| e6c5ba54b8 | |||
| ae22a3edf7 | |||
| 741b356b7d | |||
| a985c7ec2a |
7 changed files with 185 additions and 47 deletions
|
|
@ -54,7 +54,10 @@ public class BlockFlowing extends BlockFluid {
|
|||
if (this.field_659_a >= 2 && this.blockMaterial == Material.water) {
|
||||
if (var1.getBlockMaterial(var2, var3 - 1, var4).isSolid()) {
|
||||
var10 = 0;
|
||||
} else if (var1.getBlockMaterial(var2, var3 - 1, var4) == this.blockMaterial && var1.getBlockMetadata(var2, var3, var4) == 0) {
|
||||
// Patch start
|
||||
// } else if (var1.getBlockMaterial(var2, var3 - 1, var4) == this.blockMaterial && var1.getBlockMetadata(var2, var3, var4) == 0) {
|
||||
} else if (var1.getBlockMaterial(var2, var3 - 1, var4) == this.blockMaterial && var1.getBlockMetadata(var2, var3 - 1, var4) == 0) {
|
||||
// Patch end
|
||||
var10 = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,15 @@ public class EntityItem extends Entity {
|
|||
this.yOffset = this.height / 2.0F;
|
||||
this.setPosition(var2, var4, var6);
|
||||
this.item = var8;
|
||||
// Patch start
|
||||
if (this.item.itemID < 0 || this.item.itemID >= Item.itemsList.length || Item.itemsList[this.item.itemID] == null) {
|
||||
this.setEntityDead();
|
||||
this.item = new ItemStack(Block.stone); // Workaround for the EntityTracker
|
||||
}
|
||||
if (this.item.stackSize < 1) {
|
||||
this.item.stackSize = 1;
|
||||
}
|
||||
// Patch end
|
||||
this.rotationYaw = (float) (Math.random() * 360.0D);
|
||||
this.motionX = (double) ((float) (Math.random() * (double) 0.2F - (double) 0.1F));
|
||||
this.motionY = (double) 0.2F;
|
||||
|
|
@ -47,6 +56,12 @@ public class EntityItem extends Entity {
|
|||
if (this.delayBeforeCanPickup > 0) {
|
||||
--this.delayBeforeCanPickup;
|
||||
}
|
||||
// Patch start
|
||||
if (this.item.itemID < 0 || this.item.itemID >= Item.itemsList.length || Item.itemsList[this.item.itemID] == null) {
|
||||
this.setEntityDead();
|
||||
this.age = 6001;
|
||||
}
|
||||
// Patch end
|
||||
|
||||
this.prevPosX = this.posX;
|
||||
this.prevPosY = this.posY;
|
||||
|
|
|
|||
|
|
@ -61,7 +61,10 @@ class PlayerInstance {
|
|||
}
|
||||
|
||||
var1.loadedChunks.remove(this.currentChunk);
|
||||
if (var1.field_420_ah.contains(this.currentChunk)) {
|
||||
// Patch start
|
||||
//if (var1.field_420_ah.contains(this.currentChunk)) { // ChunkCoordIntPair leaking
|
||||
if (var1.field_420_ah.remove(this.currentChunk)) {
|
||||
// Patch end
|
||||
var1.playerNetServerHandler.sendPacket(new Packet50PreChunk(this.chunkX, this.chunkZ, false));
|
||||
}
|
||||
|
||||
|
|
@ -117,6 +120,11 @@ class PlayerInstance {
|
|||
public void sendPacketToPlayersInInstance(Packet var1) {
|
||||
for (int var2 = 0; var2 < this.players.size(); ++var2) {
|
||||
EntityPlayerMP var3 = (EntityPlayerMP) this.players.get(var2);
|
||||
// Patch start
|
||||
if (var1.isChunkDataPacket && var3.loadedChunks.contains(this.currentChunk)) {
|
||||
continue;
|
||||
}
|
||||
// Patch end
|
||||
if (var3.field_420_ah.contains(this.currentChunk)) {
|
||||
var3.playerNetServerHandler.sendPacket(var1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
package net.minecraft.server.observers;
|
||||
|
||||
import net.minecraft.entity.EntityPlayerMP;
|
||||
import net.minecraft.math.ChunkCoordIntPair;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.world.WorldServer;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
public class PlayerManager {
|
||||
public List players = new ArrayList();
|
||||
|
|
@ -15,6 +15,10 @@ public class PlayerManager {
|
|||
private int field_28110_e;
|
||||
private int playerViewRadius;
|
||||
private final int[][] field_22089_e = new int[][]{{1, 0}, {0, 1}, {-1, 0}, {0, -1}};
|
||||
// Patch start
|
||||
private final byte[] circularMask;
|
||||
private final Set<ChunkCoordIntPair> prevChunksTmp = new HashSet<>();
|
||||
// Patch end
|
||||
|
||||
public PlayerManager(MinecraftServer var1, int var2, int var3) {
|
||||
if (var3 > 15) {
|
||||
|
|
@ -25,6 +29,22 @@ public class PlayerManager {
|
|||
this.playerViewRadius = var3;
|
||||
this.mcServer = var1;
|
||||
this.field_28110_e = var2;
|
||||
// Patch start
|
||||
if (var1.propertyManagerObj.getBooleanProperty("round-view-of-the-terrain", false)) {
|
||||
int sideWidth = var3 + var3 + 1;
|
||||
this.circularMask = new byte[sideWidth * sideWidth];
|
||||
for (int x = 0; x < sideWidth; x++) {
|
||||
for (int y = 0; y < sideWidth; y++) {
|
||||
int a = x - var3, b = y - var3;
|
||||
if (a * a + b * b - sideWidth < var3 * var3) {
|
||||
this.circularMask[sideWidth * x + y] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.circularMask = new byte[0];
|
||||
}
|
||||
// Patch end
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -62,37 +82,62 @@ public class PlayerManager {
|
|||
}
|
||||
|
||||
public void addPlayer(EntityPlayerMP var1) {
|
||||
int var2 = (int) var1.posX >> 4;
|
||||
int var3 = (int) var1.posZ >> 4;
|
||||
// Patch start
|
||||
//int var2 = (int) var1.posX >> 4;
|
||||
//int var3 = (int) var1.posZ >> 4;
|
||||
final int var2 = (int) var1.posX >> 4;
|
||||
final int var3 = (int) var1.posZ >> 4;
|
||||
// Patch end
|
||||
var1.field_9155_d = var1.posX;
|
||||
var1.field_9154_e = var1.posZ;
|
||||
int var4 = 0;
|
||||
int var5 = this.playerViewRadius;
|
||||
int var6 = 0;
|
||||
int var7 = 0;
|
||||
this.getPlayerInstance(var2, var3, true).addPlayer(var1);
|
||||
|
||||
int var8;
|
||||
for (var8 = 1; var8 <= var5 * 2; ++var8) {
|
||||
for (int var9 = 0; var9 < 2; ++var9) {
|
||||
int[] var10 = this.field_22089_e[var4++ % 4];
|
||||
|
||||
for (int var11 = 0; var11 < var8; ++var11) {
|
||||
var6 += var10[0];
|
||||
var7 += var10[1];
|
||||
this.getPlayerInstance(var2 + var6, var3 + var7, true).addPlayer(var1);
|
||||
// Patch start
|
||||
if (this.circularMask.length > 0) {
|
||||
int k1 = var5 + var5 + 1;
|
||||
for (int vx = -var5; vx <= var5; vx++) {
|
||||
for (int vz = -var5; vz <= var5; vz++) {
|
||||
int relX = vx + var5, relZ = vz + var5;
|
||||
if (this.circularMask[k1 * relX + relZ] != 0) {
|
||||
this.getPlayerInstance(var2 + vx, var3 + vz, true).addPlayer(var1);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.getPlayerInstance(var2, var3, true).addPlayer(var1);
|
||||
|
||||
int var8;
|
||||
for (var8 = 1; var8 <= var5 * 2; ++var8) {
|
||||
for (int var9 = 0; var9 < 2; ++var9) {
|
||||
int[] var10 = this.field_22089_e[var4++ % 4];
|
||||
|
||||
for (int var11 = 0; var11 < var8; ++var11) {
|
||||
var6 += var10[0];
|
||||
var7 += var10[1];
|
||||
this.getPlayerInstance(var2 + var6, var3 + var7, true).addPlayer(var1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var4 %= 4;
|
||||
|
||||
for (var8 = 0; var8 < var5 * 2; ++var8) {
|
||||
var6 += this.field_22089_e[var4][0];
|
||||
var7 += this.field_22089_e[var4][1];
|
||||
this.getPlayerInstance(var2 + var6, var3 + var7, true).addPlayer(var1);
|
||||
}
|
||||
}
|
||||
|
||||
var4 %= 4;
|
||||
|
||||
for (var8 = 0; var8 < var5 * 2; ++var8) {
|
||||
var6 += this.field_22089_e[var4][0];
|
||||
var7 += this.field_22089_e[var4][1];
|
||||
this.getPlayerInstance(var2 + var6, var3 + var7, true).addPlayer(var1);
|
||||
}
|
||||
|
||||
Collections.sort(var1.loadedChunks, new Comparator<ChunkCoordIntPair>() {
|
||||
@Override
|
||||
public int compare(ChunkCoordIntPair a, ChunkCoordIntPair b) {
|
||||
return Math.max(Math.abs(a.chunkXPos - var2), Math.abs(a.chunkZPos - var3))
|
||||
- Math.max(Math.abs(b.chunkXPos - var2), Math.abs(b.chunkZPos - var3));
|
||||
}
|
||||
});
|
||||
// Patch end
|
||||
this.players.add(var1);
|
||||
}
|
||||
|
||||
|
|
@ -130,16 +175,44 @@ public class PlayerManager {
|
|||
int var12 = var2 - var10;
|
||||
int var13 = var3 - var11;
|
||||
if (var12 != 0 || var13 != 0) {
|
||||
for (int var14 = var2 - this.playerViewRadius; var14 <= var2 + this.playerViewRadius; ++var14) {
|
||||
for (int var15 = var3 - this.playerViewRadius; var15 <= var3 + this.playerViewRadius; ++var15) {
|
||||
if (!this.func_544_a(var14, var15, var10, var11)) {
|
||||
this.getPlayerInstance(var14, var15, true).addPlayer(var1);
|
||||
}
|
||||
// Patch start
|
||||
if (this.circularMask.length > 0) {
|
||||
this.prevChunksTmp.clear();
|
||||
this.prevChunksTmp.addAll(var1.field_420_ah);
|
||||
int k1 = this.playerViewRadius + this.playerViewRadius + 1;
|
||||
|
||||
if (!this.func_544_a(var14 - var12, var15 - var13, var2, var3)) {
|
||||
PlayerInstance var16 = this.getPlayerInstance(var14 - var12, var15 - var13, false);
|
||||
if (var16 != null) {
|
||||
var16.removePlayer(var1);
|
||||
for (int vx = -this.playerViewRadius; vx <= this.playerViewRadius; vx++) {
|
||||
for (int vz = -this.playerViewRadius; vz <= this.playerViewRadius; vz++) {
|
||||
int relX = vx + this.playerViewRadius, relZ = vz + this.playerViewRadius;
|
||||
if (this.circularMask[k1 * relX + relZ] == 0) {
|
||||
continue;
|
||||
}
|
||||
ChunkCoordIntPair rem = new ChunkCoordIntPair(var2 + vx, var3 + vz);
|
||||
if (!this.prevChunksTmp.remove(rem)) {
|
||||
this.getPlayerInstance(var2 + vx, var3 + vz, true).addPlayer(var1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (ChunkCoordIntPair pair : this.prevChunksTmp) {
|
||||
PlayerInstance playerinstance = this.getPlayerInstance(pair.chunkXPos, pair.chunkZPos, false);
|
||||
if (playerinstance != null) {
|
||||
playerinstance.removePlayer(var1);
|
||||
}
|
||||
}
|
||||
this.prevChunksTmp.clear();
|
||||
} else {
|
||||
for (int var14 = var2 - this.playerViewRadius; var14 <= var2 + this.playerViewRadius; ++var14) {
|
||||
for (int var15 = var3 - this.playerViewRadius; var15 <= var3 + this.playerViewRadius; ++var15) {
|
||||
if (!this.func_544_a(var14, var15, var10, var11)) {
|
||||
this.getPlayerInstance(var14, var15, true).addPlayer(var1);
|
||||
}
|
||||
|
||||
if (!this.func_544_a(var14 - var12, var15 - var13, var2, var3)) {
|
||||
PlayerInstance var16 = this.getPlayerInstance(var14 - var12, var15 - var13, false);
|
||||
if (var16 != null) {
|
||||
var16.removePlayer(var1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -147,6 +220,20 @@ public class PlayerManager {
|
|||
|
||||
var1.field_9155_d = var1.posX;
|
||||
var1.field_9154_e = var1.posZ;
|
||||
|
||||
// CraftBukkit start - send nearest chunks first
|
||||
if (var12 > 1 || var12 < -1 || var13 > 1 || var13 < -1) {
|
||||
final int x = var2;
|
||||
final int z = var3;
|
||||
Collections.sort(var1.loadedChunks, new Comparator<ChunkCoordIntPair>() {
|
||||
public int compare(ChunkCoordIntPair a, ChunkCoordIntPair b) {
|
||||
return Math.max(Math.abs(a.chunkXPos - x), Math.abs(a.chunkZPos - z))
|
||||
- Math.max(Math.abs(b.chunkXPos - x), Math.abs(b.chunkZPos - z));
|
||||
}
|
||||
});
|
||||
}
|
||||
// CraftBukkit end
|
||||
// Patch end
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,15 +8,19 @@ import java.util.Random;
|
|||
|
||||
public class MapGenCaves extends MapGenBase {
|
||||
protected void func_669_a(int var1, int var2, byte[] var3, double var4, double var6, double var8) {
|
||||
this.releaseEntitySkin(var1, var2, var3, var4, var6, var8, 1.0F + this.rand.nextFloat() * 6.0F, 0.0F, 0.0F, -1, -1, 0.5D);
|
||||
// Patch start
|
||||
//this.releaseEntitySkin(var1, var2, var3, var4, var6, var8, 1.0F + this.rand.nextFloat() * 6.0F, 0.0F, 0.0F, -1, -1, 0.5D);
|
||||
this.releaseEntitySkin(var1, var2, var3, var4, var6, var8, 1.0F + this.rand.nextFloat() * 6.0F, 0.0F, 0.0F, -1, -1, 0.5D, new Random(this.rand.nextLong()));
|
||||
}
|
||||
|
||||
protected void releaseEntitySkin(int var1, int var2, byte[] var3, double var4, double var6, double var8, float var10, float var11, float var12, int var13, int var14, double var15) {
|
||||
//protected void releaseEntitySkin(int var1, int var2, byte[] var3, double var4, double var6, double var8, float var10, float var11, float var12, int var13, int var14, double var15) {
|
||||
protected void releaseEntitySkin(int var1, int var2, byte[] var3, double var4, double var6, double var8, float var10, float var11, float var12, int var13, int var14, double var15, Random var23) {
|
||||
double var17 = (double) (var1 * 16 + 8);
|
||||
double var19 = (double) (var2 * 16 + 8);
|
||||
float var21 = 0.0F;
|
||||
float var22 = 0.0F;
|
||||
Random var23 = new Random(this.rand.nextLong());
|
||||
//Random var23 = new Random(this.rand.nextLong());
|
||||
// Patch end
|
||||
if (var14 <= 0) {
|
||||
int var24 = this.field_947_a * 16 - 16;
|
||||
var14 = var24 - var23.nextInt(var24 / 4);
|
||||
|
|
@ -51,8 +55,12 @@ public class MapGenCaves extends MapGenBase {
|
|||
var22 += (var23.nextFloat() - var23.nextFloat()) * var23.nextFloat() * 2.0F;
|
||||
var21 += (var23.nextFloat() - var23.nextFloat()) * var23.nextFloat() * 4.0F;
|
||||
if (!var52 && var13 == var25 && var10 > 1.0F) {
|
||||
this.releaseEntitySkin(var1, var2, var3, var4, var6, var8, var23.nextFloat() * 0.5F + 0.5F, var11 - (float) Math.PI * 0.5F, var12 / 3.0F, var13, var14, 1.0D);
|
||||
this.releaseEntitySkin(var1, var2, var3, var4, var6, var8, var23.nextFloat() * 0.5F + 0.5F, var11 + (float) Math.PI * 0.5F, var12 / 3.0F, var13, var14, 1.0D);
|
||||
// Patch start
|
||||
//this.releaseEntitySkin(var1, var2, var3, var4, var6, var8, var23.nextFloat() * 0.5F + 0.5F, var11 - (float) Math.PI * 0.5F, var12 / 3.0F, var13, var14, 1.0D);
|
||||
//this.releaseEntitySkin(var1, var2, var3, var4, var6, var8, var23.nextFloat() * 0.5F + 0.5F, var11 + (float) Math.PI * 0.5F, var12 / 3.0F, var13, var14, 1.0D);
|
||||
this.releaseEntitySkin(var1, var2, var3, var4, var6, var8, var23.nextFloat() * 0.5F + 0.5F, var11 - (float) Math.PI * 0.5F, var12 / 3.0F, var13, var14, 1.0D, var23);
|
||||
this.releaseEntitySkin(var1, var2, var3, var4, var6, var8, var23.nextFloat() * 0.5F + 0.5F, var11 + (float) Math.PI * 0.5F, var12 / 3.0F, var13, var14, 1.0D, var23);
|
||||
// Patch end
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -182,7 +190,10 @@ public class MapGenCaves extends MapGenBase {
|
|||
float var17 = this.rand.nextFloat() * (float) Math.PI * 2.0F;
|
||||
float var18 = (this.rand.nextFloat() - 0.5F) * 2.0F / 8.0F;
|
||||
float var19 = this.rand.nextFloat() * 2.0F + this.rand.nextFloat();
|
||||
this.releaseEntitySkin(var4, var5, var6, var9, var11, var13, var19, var17, var18, 0, 0, 1.0D);
|
||||
// Patch start
|
||||
//this.releaseEntitySkin(var4, var5, var6, var9, var11, var13, var19, var17, var18, 0, 0, 1.0D);
|
||||
this.releaseEntitySkin(var4, var5, var6, var9, var11, var13, var19, var17, var18, 0, 0, 1.0D, new Random(this.rand.nextLong()));
|
||||
// Patch end
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,15 +8,19 @@ import java.util.Random;
|
|||
|
||||
public class MapGenCavesHell extends MapGenBase {
|
||||
protected void func_4106_a(int var1, int var2, byte[] var3, double var4, double var6, double var8) {
|
||||
this.func_4105_a(var1, var2, var3, var4, var6, var8, 1.0F + this.rand.nextFloat() * 6.0F, 0.0F, 0.0F, -1, -1, 0.5D);
|
||||
// Patch start
|
||||
//this.func_4105_a(var1, var2, var3, var4, var6, var8, 1.0F + this.rand.nextFloat() * 6.0F, 0.0F, 0.0F, -1, -1, 0.5D);
|
||||
this.func_4105_a(var1, var2, var3, var4, var6, var8, 1.0F + this.rand.nextFloat() * 6.0F, 0.0F, 0.0F, -1, -1, 0.5D, new Random(this.rand.nextLong()));
|
||||
}
|
||||
|
||||
protected void func_4105_a(int var1, int var2, byte[] var3, double var4, double var6, double var8, float var10, float var11, float var12, int var13, int var14, double var15) {
|
||||
//protected void func_4105_a(int var1, int var2, byte[] var3, double var4, double var6, double var8, float var10, float var11, float var12, int var13, int var14, double var15) {
|
||||
protected void func_4105_a(int var1, int var2, byte[] var3, double var4, double var6, double var8, float var10, float var11, float var12, int var13, int var14, double var15, Random var23) {
|
||||
double var17 = (double) (var1 * 16 + 8);
|
||||
double var19 = (double) (var2 * 16 + 8);
|
||||
float var21 = 0.0F;
|
||||
float var22 = 0.0F;
|
||||
Random var23 = new Random(this.rand.nextLong());
|
||||
//Random var23 = new Random(this.rand.nextLong());
|
||||
// Patch end
|
||||
if (var14 <= 0) {
|
||||
int var24 = this.field_947_a * 16 - 16;
|
||||
var14 = var24 - var23.nextInt(var24 / 4);
|
||||
|
|
@ -51,8 +55,12 @@ public class MapGenCavesHell extends MapGenBase {
|
|||
var22 += (var23.nextFloat() - var23.nextFloat()) * var23.nextFloat() * 2.0F;
|
||||
var21 += (var23.nextFloat() - var23.nextFloat()) * var23.nextFloat() * 4.0F;
|
||||
if (!var51 && var13 == var25 && var10 > 1.0F) {
|
||||
this.func_4105_a(var1, var2, var3, var4, var6, var8, var23.nextFloat() * 0.5F + 0.5F, var11 - (float) Math.PI * 0.5F, var12 / 3.0F, var13, var14, 1.0D);
|
||||
this.func_4105_a(var1, var2, var3, var4, var6, var8, var23.nextFloat() * 0.5F + 0.5F, var11 + (float) Math.PI * 0.5F, var12 / 3.0F, var13, var14, 1.0D);
|
||||
// Patch start
|
||||
//this.func_4105_a(var1, var2, var3, var4, var6, var8, var23.nextFloat() * 0.5F + 0.5F, var11 - (float) Math.PI * 0.5F, var12 / 3.0F, var13, var14, 1.0D);
|
||||
//this.func_4105_a(var1, var2, var3, var4, var6, var8, var23.nextFloat() * 0.5F + 0.5F, var11 + (float) Math.PI * 0.5F, var12 / 3.0F, var13, var14, 1.0D);
|
||||
this.func_4105_a(var1, var2, var3, var4, var6, var8, var23.nextFloat() * 0.5F + 0.5F, var11 - (float) Math.PI * 0.5F, var12 / 3.0F, var13, var14, 1.0D, var23);
|
||||
this.func_4105_a(var1, var2, var3, var4, var6, var8, var23.nextFloat() * 0.5F + 0.5F, var11 + (float) Math.PI * 0.5F, var12 / 3.0F, var13, var14, 1.0D, var23);
|
||||
//Patch end
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -169,7 +177,10 @@ public class MapGenCavesHell extends MapGenBase {
|
|||
float var17 = this.rand.nextFloat() * (float) Math.PI * 2.0F;
|
||||
float var18 = (this.rand.nextFloat() - 0.5F) * 2.0F / 8.0F;
|
||||
float var19 = this.rand.nextFloat() * 2.0F + this.rand.nextFloat();
|
||||
this.func_4105_a(var4, var5, var6, var9, var11, var13, var19 * 2.0F, var17, var18, 0, 0, 0.5D);
|
||||
// Patch start
|
||||
//this.func_4105_a(var4, var5, var6, var9, var11, var13, var19 * 2.0F, var17, var18, 0, 0, 0.5D);
|
||||
this.func_4105_a(var4, var5, var6, var9, var11, var13, var19 * 2.0F, var17, var18, 0, 0, 0.5D, new Random(this.rand.nextLong()));
|
||||
// Patch end
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -289,7 +289,10 @@ public class WorldGenBigTree extends WorldGenerator {
|
|||
var13[var6] = MathHelper.floor_double((double) var1[var6] + (double) var14 * var9);
|
||||
var13[var7] = MathHelper.floor_double((double) var1[var7] + (double) var14 * var11);
|
||||
int var16 = this.worldObj.getBlockId(var13[0], var13[1], var13[2]);
|
||||
if (var16 != 0 && var16 != 18) {
|
||||
// Patch start
|
||||
// if (var16 != 0 && var16 != 18) {
|
||||
if ((var16 != 0 && var16 != 18) || var13[1] >= 128) {
|
||||
// Patch end
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue