Преглед изворни кода

Randomize spawn location of Call of the Wild pets

So that when you’re spawning multiple pets at once, they don’t all
spawn at the same spot.
TfT_02 пре 10 година
родитељ
комит
ebeebbde72

+ 1 - 0
src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java

@@ -277,6 +277,7 @@ public class TamingManager extends SkillManager {
                 return;
             }
 
+            location = Misc.getLocationOffset(location, 1);
             LivingEntity entity = (LivingEntity) player.getWorld().spawnEntity(location, type);
 
             FakeEntityTameEvent event = new FakeEntityTameEvent(entity, player);

+ 17 - 0
src/main/java/com/gmail/nossr50/util/Misc.java

@@ -144,6 +144,23 @@ public final class Misc {
         return "UnknownMods";
     }
 
+    /**
+     * Gets a random location near the specified location
+     */
+    public static Location getLocationOffset(Location location, double strength) {
+        double blockX = location.getBlockX();
+        double blockZ = location.getBlockZ();
+
+        double distance;
+        distance = strength * random.nextDouble();
+        blockX = (random.nextBoolean()) ? blockX + (distance) : blockX - (distance);
+
+        distance = strength * random.nextDouble();
+        blockZ = (random.nextBoolean()) ? blockZ + (distance) : blockZ - (distance);
+
+        return new Location(location.getWorld(), blockX, location.getY(), blockZ);
+    }
+
     public static Random getRandom() {
         return random;
     }