mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 15:49:00 +01:00
Fix ores from bouncing off walls
By: SuPaH sPii <r29jk10@gmail.com>
This commit is contained in:
parent
15d29c806a
commit
7c1adc0df4
1 changed files with 23 additions and 7 deletions
|
@ -1,4 +1,4 @@
|
||||||
From 2bbaa8a04d59da56e08aa738dfc96b19c8f01db4 Mon Sep 17 00:00:00 2001
|
From f7efe872d9e6c29ebdc4f8c9857a8724eee1300d Mon Sep 17 00:00:00 2001
|
||||||
From: lishid <lishid@gmail.com>
|
From: lishid <lishid@gmail.com>
|
||||||
Date: Sat, 16 Feb 2013 10:05:25 +1100
|
Date: Sat, 16 Feb 2013 10:05:25 +1100
|
||||||
Subject: [PATCH] Add oreobfuscator for Spigot.
|
Subject: [PATCH] Add oreobfuscator for Spigot.
|
||||||
|
@ -7,14 +7,14 @@ Subject: [PATCH] Add oreobfuscator for Spigot.
|
||||||
.../net/minecraft/server/EntityFallingBlock.java | 1 +
|
.../net/minecraft/server/EntityFallingBlock.java | 1 +
|
||||||
src/main/java/net/minecraft/server/Explosion.java | 1 +
|
src/main/java/net/minecraft/server/Explosion.java | 1 +
|
||||||
.../net/minecraft/server/Packet51MapChunk.java | 1 +
|
.../net/minecraft/server/Packet51MapChunk.java | 1 +
|
||||||
.../net/minecraft/server/Packet56MapChunkBulk.java | 21 +++-
|
.../net/minecraft/server/Packet56MapChunkBulk.java | 21 ++-
|
||||||
.../minecraft/server/PlayerInteractManager.java | 5 +
|
.../minecraft/server/PlayerInteractManager.java | 5 +
|
||||||
.../java/org/bukkit/craftbukkit/CraftServer.java | 6 +
|
.../java/org/bukkit/craftbukkit/CraftServer.java | 6 +
|
||||||
.../java/org/bukkit/craftbukkit/CraftWorld.java | 4 +
|
.../java/org/bukkit/craftbukkit/CraftWorld.java | 4 +
|
||||||
.../bukkit/craftbukkit/OrebfuscatorManager.java | 130 +++++++++++++++++++++
|
.../bukkit/craftbukkit/OrebfuscatorManager.java | 146 +++++++++++++++++++++
|
||||||
src/main/java/org/bukkit/craftbukkit/Spigot.java | 8 ++
|
src/main/java/org/bukkit/craftbukkit/Spigot.java | 8 ++
|
||||||
src/main/resources/configurations/bukkit.yml | 6 +
|
src/main/resources/configurations/bukkit.yml | 6 +
|
||||||
10 files changed, 182 insertions(+), 1 deletion(-)
|
10 files changed, 198 insertions(+), 1 deletion(-)
|
||||||
create mode 100644 src/main/java/org/bukkit/craftbukkit/OrebfuscatorManager.java
|
create mode 100644 src/main/java/org/bukkit/craftbukkit/OrebfuscatorManager.java
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
||||||
|
@ -170,10 +170,10 @@ index 94e07fe..21bd64a 100644
|
||||||
public int cactusGrowthModifier = 100;
|
public int cactusGrowthModifier = 100;
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/OrebfuscatorManager.java b/src/main/java/org/bukkit/craftbukkit/OrebfuscatorManager.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/OrebfuscatorManager.java b/src/main/java/org/bukkit/craftbukkit/OrebfuscatorManager.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..3e74103
|
index 0000000..fe14f6d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/OrebfuscatorManager.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/OrebfuscatorManager.java
|
||||||
@@ -0,0 +1,130 @@
|
@@ -0,0 +1,146 @@
|
||||||
+package org.bukkit.craftbukkit;
|
+package org.bukkit.craftbukkit;
|
||||||
+
|
+
|
||||||
+import java.util.ArrayList;
|
+import java.util.ArrayList;
|
||||||
|
@ -243,6 +243,9 @@ index 0000000..3e74103
|
||||||
+ byte data = buffer[index];
|
+ byte data = buffer[index];
|
||||||
+ // Check if the block should be obfuscated for the default engine modes
|
+ // Check if the block should be obfuscated for the default engine modes
|
||||||
+ if (obfuscateBlocks[data & 0xFF]) {
|
+ if (obfuscateBlocks[data & 0xFF]) {
|
||||||
|
+ if (initialRadius != 0 && !isWorldLoaded(world, startX + x, (i << 4) + y, startZ + z, initialRadius)) {
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
+ if (initialRadius == 0 || !areAjacentBlocksTransparent(world, startX + x, (i << 4) + y, startZ + z, initialRadius)) {
|
+ if (initialRadius == 0 || !areAjacentBlocksTransparent(world, startX + x, (i << 4) + y, startZ + z, initialRadius)) {
|
||||||
+ if (world.getServer().orebfuscatorEngineMode == 2) {
|
+ if (world.getServer().orebfuscatorEngineMode == 2) {
|
||||||
+ // Replace with random ore.
|
+ // Replace with random ore.
|
||||||
|
@ -291,10 +294,23 @@ index 0000000..3e74103
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
|
+ private static boolean isWorldLoaded(World world, int x, int y, int z, int radius) {
|
||||||
|
+ boolean toret = (y > 0 && y <= world.getHeight() && world.isLoaded(x, y, z));
|
||||||
|
+ if (toret) {
|
||||||
|
+ return toret || (radius > 0 && (isWorldLoaded(world, x, y + 1, z, radius - 1)
|
||||||
|
+ || isWorldLoaded(world, x, y - 1, z, radius - 1)
|
||||||
|
+ || isWorldLoaded(world, x + 1, y, z, radius - 1)
|
||||||
|
+ || isWorldLoaded(world, x - 1, y, z, radius - 1)
|
||||||
|
+ || isWorldLoaded(world, x, y, z + 1, radius - 1)
|
||||||
|
+ || isWorldLoaded(world, x, y, z - 1, radius - 1)));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
+
|
+
|
||||||
+ private static boolean areAjacentBlocksTransparent(World world, int x, int y, int z, int radius) {
|
+ private static boolean areAjacentBlocksTransparent(World world, int x, int y, int z, int radius) {
|
||||||
+ return y > 0 && y <= world.getHeight()
|
+ return y > 0 && y <= world.getHeight()
|
||||||
+ && world.isLoaded(x, y, z)
|
|
||||||
+ && !Block.i(world.getTypeId(x, y, z))
|
+ && !Block.i(world.getTypeId(x, y, z))
|
||||||
+ || (radius > 0 && (areAjacentBlocksTransparent(world, x, y + 1, z, radius - 1)
|
+ || (radius > 0 && (areAjacentBlocksTransparent(world, x, y + 1, z, radius - 1)
|
||||||
+ || areAjacentBlocksTransparent(world, x, y - 1, z, radius - 1)
|
+ || areAjacentBlocksTransparent(world, x, y - 1, z, radius - 1)
|
||||||
|
|
Loading…
Reference in a new issue