Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
1c5b3919e1
@ -8,6 +8,7 @@ import nautilus.game.arcade.game.*;
|
||||
import nautilus.game.arcade.game.games.sneakyassassins.*;
|
||||
import nautilus.game.arcade.world.*;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.block.*;
|
||||
import org.bukkit.entity.*;
|
||||
import org.bukkit.event.*;
|
||||
import org.bukkit.event.entity.*;
|
||||
@ -91,11 +92,38 @@ public class NpcManager implements Listener
|
||||
{
|
||||
if (getRandom().nextInt(40) == 0)
|
||||
{
|
||||
Location loc = npc.getLocation().add(getRandom().nextDouble() * 32 - 16, 0, getRandom().nextDouble() * 32 - 16);
|
||||
List<Location> nearby = new ArrayList<>();
|
||||
|
||||
if (loc.getWorld().getHighestBlockYAt(loc) > 0)
|
||||
for (Location location : getGame().GetTeamList().get(0).GetSpawns())
|
||||
{
|
||||
UtilEnt.CreatureMove(npc, loc, 0.8f);
|
||||
if (Math.abs(npc.getLocation().getX() - location.getX()) <= 16 && Math.abs(npc.getLocation().getZ() - location.getZ()) <= 16)
|
||||
nearby.add(location);
|
||||
}
|
||||
|
||||
if (!nearby.isEmpty())
|
||||
{
|
||||
Location location = UtilAlg.Random(nearby);
|
||||
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
int dx = getRandom().nextInt(5) - 2;
|
||||
int dz = getRandom().nextInt(5) - 2;
|
||||
|
||||
Location candidate = location.clone().add(dx, 0, dz);
|
||||
Block block = candidate.getBlock();
|
||||
|
||||
if (!block.getRelative(BlockFace.DOWN).isEmpty() &&
|
||||
!block.getRelative(BlockFace.DOWN).isLiquid() &&
|
||||
block.isEmpty() &&
|
||||
block.getRelative(BlockFace.UP).isEmpty())
|
||||
{
|
||||
location = candidate;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
UtilEnt.CreatureMove(npc, location, 0.8f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user