This commit is contained in:
2023-12-03 10:03:40 -06:00
parent 53adbc77fb
commit d097e744b9
2 changed files with 15 additions and 5 deletions
+14 -5
View File
@@ -29,6 +29,7 @@ import engine.objects.*;
import engine.server.MBServerStatics;
import org.pmw.tinylog.Logger;
import java.awt.geom.AffineTransform;
import java.awt.geom.Path2D;
import java.time.LocalDateTime;
import java.time.ZoneId;
@@ -965,7 +966,7 @@ public enum BuildingManager {
}
public static void bakeNavMesh(Building building) {
building.meshes = new ArrayList<>();
if (building.parentZone == null) {
Logger.error("Attempt to bake navmesh with no parent: " + building.getObjectUUID());
return;
@@ -982,10 +983,6 @@ public enum BuildingManager {
return;
}
for (Path2D.Float meshEntry : convexHullList) {
building.meshes.add(meshEntry);
building.parentZone.navObstacles.add(meshEntry);
}
//add navNodes to parent zone list
float X = building.getBounds().getHalfExtents().x;
float Y = building.getBounds().getHalfExtents().y;
@@ -1043,4 +1040,16 @@ public enum BuildingManager {
outPath.closePath();
return outPath;
}
public static void loadColliders(Building building){
building.meshes = new ArrayList<>();
for(Path2D.Float path : _hull_data.get(building.meshUUID)){
Path2D.Float translatedPath = new Path2D.Float(path);
AffineTransform offset = AffineTransform.getTranslateInstance(building.loc.x , building.loc.y);
translatedPath.transform(offset);
AffineTransform rotate = AffineTransform.getRotateInstance(Math.toRadians(building.getRot().y), building.loc.x, building.loc.z);
translatedPath.transform(rotate);
building.meshes.add(translatedPath);
}
}
}
+1
View File
@@ -1008,6 +1008,7 @@ public class Building extends AbstractWorldObject {
if (this.upgradeDateTime != null)
BuildingManager.submitUpgradeJob(this);
BuildingManager.loadColliders(this); // load building colliders
BuildingManager.bakeNavMesh(this); // update the navmesh of the parent zone
}