mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-01 08:56:23 +01:00
Fix broken block iteration (#1269)
Fixes https://github.com/PaperMC/Paper/issues/1259 and generation of the end pillars
This commit is contained in:
parent
0e5e60c1d8
commit
af561492ab
4 changed files with 44 additions and 26 deletions
|
@ -1,11 +1,11 @@
|
|||
From fa5eced3c89ff7fa1b290628a381d1211606e2bb Mon Sep 17 00:00:00 2001
|
||||
From 5e82fb8aede56d14967ad5e126ef1870ea6f10d8 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Wed, 30 Mar 2016 19:36:20 -0400
|
||||
Subject: [PATCH] MC Dev fixes
|
||||
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java
|
||||
index e8f7b729..a0ebc1ea 100644
|
||||
index e8f7b7292..a0ebc1eaa 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperCommand.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java
|
||||
@@ -234,4 +234,5 @@ public class PaperCommand extends Command {
|
||||
|
@ -15,7 +15,7 @@ index e8f7b729..a0ebc1ea 100644
|
|||
+
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
index 002da2a1..121a137f 100644
|
||||
index 002da2a19..9f3aa2459 100644
|
||||
--- a/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
+++ b/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
@@ -150,7 +150,7 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
|
@ -56,8 +56,20 @@ index 002da2a1..121a137f 100644
|
|||
++this.j;
|
||||
}
|
||||
|
||||
@@ -213,8 +213,11 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
if (this.g.b < l) {
|
||||
++this.g.b;
|
||||
} else if (this.g.c < i1) {
|
||||
+ this.g.b = i; // Paper - Readd line removed by the decompiler
|
||||
++this.g.c;
|
||||
} else if (this.g.d < j1) {
|
||||
+ this.g.b = i; // Paper - Readd line removed by the decompiler
|
||||
+ this.g.c = j; // Paper - Readd line removed by the decompiler
|
||||
++this.g.d;
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/DefinedStructure.java b/src/main/java/net/minecraft/server/DefinedStructure.java
|
||||
index a661789c..785a1a21 100644
|
||||
index a661789c1..785a1a218 100644
|
||||
--- a/src/main/java/net/minecraft/server/DefinedStructure.java
|
||||
+++ b/src/main/java/net/minecraft/server/DefinedStructure.java
|
||||
@@ -88,7 +88,7 @@ public class DefinedStructure {
|
||||
|
@ -112,7 +124,7 @@ index a661789c..785a1a21 100644
|
|||
|
||||
public Iterator<IBlockData> iterator() {
|
||||
diff --git a/src/main/java/net/minecraft/server/RegistryID.java b/src/main/java/net/minecraft/server/RegistryID.java
|
||||
index 3b8f6ec1..bde5714d 100644
|
||||
index 3b8f6ec16..bde5714dd 100644
|
||||
--- a/src/main/java/net/minecraft/server/RegistryID.java
|
||||
+++ b/src/main/java/net/minecraft/server/RegistryID.java
|
||||
@@ -6,7 +6,7 @@ import java.util.Arrays;
|
||||
|
@ -153,5 +165,5 @@ index 3b8f6ec1..bde5714d 100644
|
|||
this.f = 0;
|
||||
|
||||
--
|
||||
2.17.0 (Apple Git-106)
|
||||
2.16.1.windows.1
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From fd30fe93ea2f20e2adb5e501d8646deabc046fcf Mon Sep 17 00:00:00 2001
|
||||
From ce4b2215cf8f7b774ee8066d8a8d0b07bd54d999 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Mon, 28 Mar 2016 20:55:47 -0400
|
||||
Subject: [PATCH] MC Utils
|
||||
|
@ -18,7 +18,7 @@ index c3e990bdf..e2a7b4be2 100644
|
|||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
index 121a137f3..279045e49 100644
|
||||
index 9f3aa2459..7dbea9090 100644
|
||||
--- a/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
+++ b/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
@@ -10,7 +10,6 @@ import org.apache.logging.log4j.Logger;
|
||||
|
@ -37,7 +37,7 @@ index 121a137f3..279045e49 100644
|
|||
public BlockPosition a(int i, int j, int k) {
|
||||
return i == 0 && j == 0 && k == 0 ? this : new BlockPosition(this.getX() + i, this.getY() + j, this.getZ() + k);
|
||||
}
|
||||
@@ -382,6 +382,7 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
@@ -385,6 +385,7 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
return this.d;
|
||||
}
|
||||
|
||||
|
@ -45,7 +45,7 @@ index 121a137f3..279045e49 100644
|
|||
public BlockPosition.MutableBlockPosition c(int i, int j, int k) {
|
||||
this.b = i;
|
||||
this.c = j;
|
||||
@@ -389,6 +390,7 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
@@ -392,6 +393,7 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -711,5 +711,5 @@ index 2179664a0..d7e1ecc03 100644
|
|||
}
|
||||
}
|
||||
--
|
||||
2.18.0
|
||||
2.16.1.windows.1
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 6ebe7f1a09ee9925c972a7800d3c654e3d86695e Mon Sep 17 00:00:00 2001
|
||||
From 5372e9c03d78bdb92741561ef1c5d2f63c8621f7 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Thu, 3 Mar 2016 02:07:55 -0600
|
||||
Subject: [PATCH] Optimize isValidLocation, getType and getBlockData for inling
|
||||
|
@ -31,10 +31,10 @@ index e2a7b4be2..58f8b4b72 100644
|
|||
public BaseBlockPosition(int i, int j, int k) {
|
||||
this.a = i;
|
||||
diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
index 279045e49..7122a9aa8 100644
|
||||
index 7dbea9090..252e00e16 100644
|
||||
--- a/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
+++ b/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
@@ -338,6 +338,16 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
@@ -341,6 +341,16 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
protected int b;
|
||||
protected int c;
|
||||
protected int d;
|
||||
|
@ -200,5 +200,5 @@ index 11cf087e7..489c152ee 100644
|
|||
} else {
|
||||
Chunk chunk = this.chunkProvider.getLoadedChunkAt(blockposition.getX() >> 4, blockposition.getZ() >> 4);
|
||||
--
|
||||
2.18.0
|
||||
2.16.1.windows.1
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From d4e24e1b648305ae75c64ba245fcfb3d1712fdfb Mon Sep 17 00:00:00 2001
|
||||
From 6fe1ca8e8466247070481df3b515bba54cec603f Mon Sep 17 00:00:00 2001
|
||||
From: Techcable <Techcable@outlook.com>
|
||||
Date: Wed, 30 Nov 2016 20:56:58 -0600
|
||||
Subject: [PATCH] Speedup BlockPos by fixing inlining
|
||||
|
@ -21,7 +21,7 @@ This is based upon conclusions drawn from inspecting the assenmbly generated byt
|
|||
They had 'callq' (invoke) instead of 'mov' (get from memory) instructions.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/BaseBlockPosition.java b/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
||||
index 58f8b4b720..98992513da 100644
|
||||
index 58f8b4b72..98992513d 100644
|
||||
--- a/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
||||
+++ b/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
||||
@@ -7,22 +7,22 @@ import javax.annotation.concurrent.Immutable;
|
||||
|
@ -80,10 +80,10 @@ index 58f8b4b720..98992513da 100644
|
|||
public BaseBlockPosition d(BaseBlockPosition baseblockposition) {
|
||||
return new BaseBlockPosition(this.getY() * baseblockposition.getZ() - this.getZ() * baseblockposition.getY(), this.getZ() * baseblockposition.getX() - this.getX() * baseblockposition.getZ(), this.getX() * baseblockposition.getY() - this.getY() * baseblockposition.getX());
|
||||
diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
index 7122a9aa8a..2f6fc330b3 100644
|
||||
index 252e00e16..f769b178c 100644
|
||||
--- a/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
+++ b/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
@@ -207,15 +207,17 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
@@ -207,18 +207,20 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
if (this.g == null) {
|
||||
this.g = new BlockPosition.MutableBlockPosition(i, j, k);
|
||||
return this.g;
|
||||
|
@ -94,21 +94,27 @@ index 7122a9aa8a..2f6fc330b3 100644
|
|||
- if (this.g.b < l) {
|
||||
- ++this.g.b;
|
||||
- } else if (this.g.c < i1) {
|
||||
- this.g.b = i; // Paper - Readd line removed by the decompiler
|
||||
- ++this.g.c;
|
||||
- } else if (this.g.d < j1) {
|
||||
- this.g.b = i; // Paper - Readd line removed by the decompiler
|
||||
- this.g.c = j; // Paper - Readd line removed by the decompiler
|
||||
- ++this.g.d;
|
||||
+ // Paper start - use xyz
|
||||
+ if (this.g.x < l) {
|
||||
+ ++this.g.x;
|
||||
+ } else if (this.g.y < i1) {
|
||||
+ this.g.x = i; // Paper - Readd line removed by the decompiler
|
||||
+ ++this.g.y;
|
||||
+ } else if (this.g.z < j1) {
|
||||
+ this.g.x = i; // Paper - Readd line removed by the decompiler
|
||||
+ this.g.y = j; // Paper - Readd line removed by the decompiler
|
||||
+ ++this.g.z;
|
||||
+ // Paper end
|
||||
}
|
||||
|
||||
return this.g;
|
||||
@@ -335,10 +337,12 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
@@ -338,10 +340,12 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
|
||||
public static class MutableBlockPosition extends BlockPosition {
|
||||
|
||||
|
@ -122,7 +128,7 @@ index 7122a9aa8a..2f6fc330b3 100644
|
|||
@Override
|
||||
public boolean isValidLocation() {
|
||||
return b >= -30000000 && d >= -30000000 && b < 30000000 && d < 30000000 && c >= 0 && c < 256;
|
||||
@@ -347,6 +351,7 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
@@ -350,6 +354,7 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
public boolean isInvalidYLocation() {
|
||||
return c < 0 || c >= 256;
|
||||
}
|
||||
|
@ -130,7 +136,7 @@ index 7122a9aa8a..2f6fc330b3 100644
|
|||
// Paper end
|
||||
|
||||
public MutableBlockPosition() {
|
||||
@@ -358,10 +363,13 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
@@ -361,10 +366,13 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
}
|
||||
|
||||
public MutableBlockPosition(int i, int j, int k) {
|
||||
|
@ -146,7 +152,7 @@ index 7122a9aa8a..2f6fc330b3 100644
|
|||
}
|
||||
|
||||
public BlockPosition a(double d0, double d1, double d2) {
|
||||
@@ -380,6 +388,8 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
@@ -383,6 +391,8 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
return super.a(enumblockrotation).h();
|
||||
}
|
||||
|
||||
|
@ -155,7 +161,7 @@ index 7122a9aa8a..2f6fc330b3 100644
|
|||
public int getX() {
|
||||
return this.b;
|
||||
}
|
||||
@@ -390,13 +400,16 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
@@ -393,13 +403,16 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
|
||||
public int getZ() {
|
||||
return this.d;
|
||||
|
@ -176,7 +182,7 @@ index 7122a9aa8a..2f6fc330b3 100644
|
|||
return this;
|
||||
}
|
||||
|
||||
@@ -414,15 +427,15 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
@@ -417,15 +430,15 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
}
|
||||
|
||||
public BlockPosition.MutableBlockPosition c(EnumDirection enumdirection, int i) {
|
||||
|
@ -196,5 +202,5 @@ index 7122a9aa8a..2f6fc330b3 100644
|
|||
|
||||
public BlockPosition h() {
|
||||
--
|
||||
2.18.0
|
||||
2.16.1.windows.1
|
||||
|
||||
|
|
Loading…
Reference in a new issue