This commit is contained in:
2023-11-07 19:18:46 -06:00
parent 60b7cab0fe
commit f5200abf61
4 changed files with 29 additions and 49 deletions
+3 -42
View File
@@ -984,52 +984,13 @@ public enum BuildingManager {
return;
}
Area footprint = new Area(new Rectangle((int) building.loc.x, (int) building.loc.z, (int) (building.getBounds().getHalfExtents().x * 2), (int) (building.getBounds().getHalfExtents().y * 2)));
building.parentZone.navMesh.subtract(footprint);
for (ArrayList<Vector2f> meshEntry : convexHullList) {
Polygon poly = new Polygon();
for(Vector2f vect : meshEntry){
Vector3fImmutable rotationPoint = Vector3fImmutable.rotateAroundPoint(new Vector3fImmutable(vect.x + building.loc.x,0,vect.y + building.loc.z),building.loc,building.getRot().getRotation());
for (Vector2f vect : meshEntry) {
Vector3fImmutable rotationPoint = Vector3fImmutable.rotateAroundPoint(new Vector3fImmutable(vect.x + building.loc.x, 0, vect.y + building.loc.z), building.loc, building.getRot().getRotation());
poly.addPoint((int) rotationPoint.x, (int) rotationPoint.z);
}
footprint.subtract(new Area(poly));
//Path2D.Float stencilPath = new Path2D.Float();
// Add building offset and rotation to vertices
//for (Vector2f vertex : meshEntry) {
// vertex.addLocal(building.getLoc().x, building.getLoc().z);
// Vector3fImmutable rotatedPoint = new Vector3fImmutable(vertex.x, 0, vertex.y);
// rotatedPoint = Vector3fImmutable.rotateAroundPoint(building.getLoc(), rotatedPoint, building.getBounds().getQuaternion().angleY);
// vertex.set(rotatedPoint.x, rotatedPoint.z);
//}
// Move to start of path
//stencilPath.moveTo(meshEntry.get(0).x, meshEntry.get(0).y);
// Draw path
//for (int i = 1; i < meshEntry.size(); i++)
// stencilPath.lineTo(meshEntry.get(i).x, meshEntry.get(i).y);
// enclose the path
//stencilPath.closePath();
// subtract stencil from zone navmesh
//Area stencilArea = new Area(stencilPath);
//AffineTransform at = new AffineTransform();
//at.createTransformedShape(new Polygon());
//building.parentZone.navMesh.subtract(stencilArea.createTransformedArea(at));
building.meshes.add(new Area(poly));
}
building.parentZone.navMesh.add(footprint);
//add in all the regions to the navMesh
//for (Regions region : building.getBounds().getRegions())
// building.parentZone.navMesh.add(region.getArea());
}
}