geforkt von Mirrors/Paper
2f782a6652
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes:17543ecf
SPIGOT-5035: Error Using Virtual Merchant GUI0fc6922b
SPIGOT-5028: Villager#setVillagerExperience() doesn't workbdbdbe44
SPIGOT-5024: Fox error - Unknown target reason
59 Zeilen
2.7 KiB
Diff
59 Zeilen
2.7 KiB
Diff
From e26b52705a78ba126636037a2dcce82441872159 Mon Sep 17 00:00:00 2001
|
|
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
|
Date: Tue, 1 Jan 2019 02:22:01 -0800
|
|
Subject: [PATCH] Add Heightmap API
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
index 177ea8f4cd..a12964f904 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -625,8 +625,8 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
|
}
|
|
}
|
|
|
|
- @Override
|
|
- public int a(HeightMap.Type heightmap_type, int i, int j) {
|
|
+ public final int getHighestBlockY(final HeightMap.Type heightmap, final int x, final int z) { return this.a(heightmap, x, z); } // Paper - OBFHELPER
|
|
+ @Override public int a(HeightMap.Type heightmap_type, int i, int j) { // Paper - OBFHELPER
|
|
int k;
|
|
|
|
if (i >= -30000000 && j >= -30000000 && i < 30000000 && j < 30000000) {
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
index f4afddba4d..fa4142c824 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
@@ -317,6 +317,29 @@ public class CraftWorld implements World {
|
|
return world.getHighestBlockYAt(HeightMap.Type.MOTION_BLOCKING, new BlockPosition(x, 0, z)).getY();
|
|
}
|
|
|
|
+ // Paper start - Implement heightmap api
|
|
+ @Override
|
|
+ public int getHighestBlockYAt(final int x, final int z, final com.destroystokyo.paper.HeightmapType heightmap) throws UnsupportedOperationException {
|
|
+ this.getChunkAt(x >> 4, z >> 4); // heightmap will ret 0 on unloaded areas
|
|
+
|
|
+ switch (heightmap) {
|
|
+ case LIGHT_BLOCKING:
|
|
+ throw new UnsupportedOperationException(); // TODO
|
|
+ //return this.world.getHighestBlockY(HeightMap.Type.LIGHT_BLOCKING, x, z);
|
|
+ case ANY:
|
|
+ return this.world.getHighestBlockY(HeightMap.Type.WORLD_SURFACE, x, z);
|
|
+ case SOLID:
|
|
+ return this.world.getHighestBlockY(HeightMap.Type.OCEAN_FLOOR, x, z);
|
|
+ case SOLID_OR_LIQUID:
|
|
+ return this.world.getHighestBlockY(HeightMap.Type.MOTION_BLOCKING, x, z);
|
|
+ case SOLID_OR_LIQUID_NO_LEAVES:
|
|
+ return this.world.getHighestBlockY(HeightMap.Type.MOTION_BLOCKING_NO_LEAVES, x, z);
|
|
+ default:
|
|
+ throw new UnsupportedOperationException();
|
|
+ }
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
@Override
|
|
public Location getSpawnLocation() {
|
|
BlockPosition spawn = world.getSpawn();
|
|
--
|
|
2.21.0
|
|
|