geforkt von Mirrors/Paper
855637f967
Upstream has released updates that appear 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: e9f972d6 Improve CreativeCategory conversion c2698249 PR-1034: Fix exception on init of CraftCreativeCategory f48739ca Add tests for material creative categories
62 Zeilen
3.2 KiB
Diff
62 Zeilen
3.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
|
|
Date: Mon, 14 Mar 2022 22:46:05 -0700
|
|
Subject: [PATCH] Implement getComputedBiome API
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
|
index 99cb7625d50d5da4ce0999e10fb84403958a7ffe..e231636403a70f28e7e4bf51542608872234ce94 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
|
|
@@ -204,6 +204,13 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
|
|
return CraftBlock.biomeBaseToBiome(this.getHandle().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY), this.getHandle().getNoiseBiome(x >> 2, y >> 2, z >> 2));
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public Biome getComputedBiome(int x, int y, int z) {
|
|
+ return CraftBlock.biomeBaseToBiome(this.getHandle().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY), this.getHandle().getBiome(new BlockPos(x, y, z)));
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
@Override
|
|
public void setBiome(Location location, Biome biome) {
|
|
this.setBiome(location.getBlockX(), location.getBlockY(), location.getBlockZ(), biome);
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
index 68eaae018646c541c8553ded80c5cafdfc5ae63f..a52e76c8870b1dd578c4332930c6f2fd3b31d471 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
@@ -341,6 +341,13 @@ public class CraftBlock implements Block {
|
|
return this.getWorld().getBiome(this.getX(), this.getY(), this.getZ());
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public Biome getComputedBiome() {
|
|
+ return this.getWorld().getComputedBiome(this.getX(), this.getY(), this.getZ());
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
@Override
|
|
public void setBiome(Biome bio) {
|
|
this.getWorld().setBiome(this.getX(), this.getY(), this.getZ(), bio);
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
|
|
index 392701b0022e05d0fd03ee5836fd18f00502f028..b01904021bd4f485aaf03d1d7634b56f134d3099 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
|
|
@@ -166,6 +166,14 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
|
|
return super.getBiome(x, y, z);
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public Biome getComputedBiome(int x, int y, int z) {
|
|
+ Preconditions.checkArgument(this.isInRegion(x, y, z), "Coordinates %s, %s, %s are not in the region", x, y, z);
|
|
+ return super.getComputedBiome(x, y, z);
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
@Override
|
|
public void setBiome(int x, int y, int z, Holder<net.minecraft.world.level.biome.Biome> biomeBase) {
|
|
Preconditions.checkArgument(this.isInRegion(x, y, z), "Coordinates %s, %s, %s are not in the region", x, y, z);
|