i hope this works

This commit is contained in:
2023-11-05 10:45:35 -06:00
parent bdb901afce
commit 24a58db3a9
7 changed files with 323 additions and 393 deletions
@@ -120,6 +120,8 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
private long lastHateUpdate = 0;
private byte aoecntr = 0;
public Vector3fImmutable destination = Vector3fImmutable.ZERO;
public int hidden = 0; // current rank of hide/sneak/invis
public CopyOnWriteArrayList<Integer> minions = new CopyOnWriteArrayList();
+1 -5
View File
@@ -20,7 +20,6 @@ import engine.jobs.DeferredPowerJob;
import engine.jobs.UpgradeNPCJob;
import engine.math.Bounds;
import engine.math.Vector3fImmutable;
import engine.mobileAI.utilities.MovementUtilities;
import engine.net.ByteBufferWriter;
import engine.net.Dispatch;
import engine.net.DispatchMessage;
@@ -54,7 +53,7 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed {
public long nextCallForHelp = 0;
public ReentrantReadWriteLock minionLock = new ReentrantReadWriteLock();
public boolean despawned = false;
public Vector3fImmutable destination = Vector3fImmutable.ZERO;
public MobBase mobBase;
public int spawnDelay;
public Zone parentZone;
@@ -1901,7 +1900,4 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed {
return toIntExact(this.respawnTime - ((Mob) o).respawnTime);
}
public void setDestination(Vector3fImmutable destination) {
MovementUtilities.pathfind(this,destination);
}
}
+18
View File
@@ -9,12 +9,14 @@
package engine.objects;
import engine.InterestManagement.Terrain;
import engine.InterestManagement.WorldGrid;
import engine.gameManager.BuildingManager;
import engine.math.Bounds;
import engine.math.FastMath;
import engine.math.Vector3f;
import engine.math.Vector3fImmutable;
import engine.mobileAI.utilities.PathingUtilities;
import engine.server.MBServerStatics;
import java.awt.*;
@@ -287,6 +289,22 @@ public class Regions {
}
return region;
}
public static Regions getRegionAtPoint(PathingUtilities.Point point) {
Vector3fImmutable baseLoc = new Vector3fImmutable(point.x,0,point.y);
baseLoc.setY(Terrain.getWorldHeight(baseLoc));
Building building = BuildingManager.getBuildingAtLocation(baseLoc);
if(building == null)
return null;
for(Regions region : building.getBounds().getRegions())
if(region.isPointInPolygon(baseLoc))
return region;
return null;
}
public float getHeightAtPoint(PathingUtilities.Point point){
Vector3fImmutable baseLoc = new Vector3fImmutable(point.x,0,point.y);
return this.lerpY(baseLoc);
}
public int getRoom() {
return room;