|
|
|
@ -25,7 +25,6 @@ import engine.job.JobScheduler;
@@ -25,7 +25,6 @@ import engine.job.JobScheduler;
|
|
|
|
|
import engine.jobs.DoorCloseJob; |
|
|
|
|
import engine.jobs.SiegeSpireWithdrawlJob; |
|
|
|
|
import engine.math.Bounds; |
|
|
|
|
import engine.math.Vector2f; |
|
|
|
|
import engine.math.Vector3f; |
|
|
|
|
import engine.math.Vector3fImmutable; |
|
|
|
|
import engine.net.ByteBufferWriter; |
|
|
|
@ -35,8 +34,6 @@ import engine.net.client.msg.UpdateObjectMsg;
@@ -35,8 +34,6 @@ import engine.net.client.msg.UpdateObjectMsg;
|
|
|
|
|
import engine.server.MBServerStatics; |
|
|
|
|
import org.pmw.tinylog.Logger; |
|
|
|
|
|
|
|
|
|
import java.awt.geom.Area; |
|
|
|
|
import java.awt.geom.Path2D; |
|
|
|
|
import java.sql.ResultSet; |
|
|
|
|
import java.sql.SQLException; |
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
@ -1007,7 +1004,7 @@ public class Building extends AbstractWorldObject {
@@ -1007,7 +1004,7 @@ public class Building extends AbstractWorldObject {
|
|
|
|
|
if (this.upgradeDateTime != null) |
|
|
|
|
BuildingManager.submitUpgradeJob(this); |
|
|
|
|
|
|
|
|
|
this.updateNavMesh(); // update the navmesh of the parent zone
|
|
|
|
|
BuildingManager.bakeNavMesh(this); // update the navmesh of the parent zone
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public synchronized boolean setOwner(AbstractCharacter newOwner) { |
|
|
|
@ -1536,31 +1533,4 @@ public class Building extends AbstractWorldObject {
@@ -1536,31 +1533,4 @@ public class Building extends AbstractWorldObject {
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void updateNavMesh() { |
|
|
|
|
|
|
|
|
|
// Build up navmesh by stencil of the
|
|
|
|
|
// prop's convex hull
|
|
|
|
|
|
|
|
|
|
ArrayList<ArrayList<Vector2f>> convexHullList; |
|
|
|
|
convexHullList = BuildingManager._hull_data.get(this.meshUUID); |
|
|
|
|
|
|
|
|
|
for (ArrayList<Vector2f> meshEntry : convexHullList) { |
|
|
|
|
|
|
|
|
|
Path2D.Float stencil = new Path2D.Float(); |
|
|
|
|
|
|
|
|
|
for (Vector2f vertex : meshEntry) |
|
|
|
|
stencil.moveTo(vertex.x, vertex.y); |
|
|
|
|
|
|
|
|
|
// enclose polygon
|
|
|
|
|
|
|
|
|
|
stencil.moveTo(meshEntry.get(0).x, meshEntry.get(0).y); |
|
|
|
|
|
|
|
|
|
Area stencilArea = new Area(stencil); |
|
|
|
|
this.parentZone.navMesh.subtract(stencilArea); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//add in all the regions to the navMesh
|
|
|
|
|
for (Regions region : this.getBounds().getRegions()) |
|
|
|
|
this.parentZone.navMesh.add(region.getArea()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|