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.
This commit is contained in:
TfT_02 2014-12-20 19:11:08 +01:00
parent e71eff852c
commit ebeebbde72
2 changed files with 18 additions and 0 deletions

View File

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

View File

@ -144,6 +144,23 @@ public final class Misc {
return "UnknownMods"; 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() { public static Random getRandom() {
return random; return random;
} }