|  |  | @ -984,52 +984,13 @@ public enum BuildingManager { | 
			
		
	
		
		
			
				
					
					|  |  |  |             return; |  |  |  |             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) { |  |  |  |         for (ArrayList<Vector2f> meshEntry : convexHullList) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             Polygon poly = new Polygon(); |  |  |  |             Polygon poly = new Polygon(); | 
			
		
	
		
		
			
				
					
					|  |  |  |             for (Vector2f vect : meshEntry) { |  |  |  |             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()); |  |  |  |                 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); |  |  |  |                 poly.addPoint((int) rotationPoint.x, (int) rotationPoint.z); | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |             footprint.subtract(new Area(poly)); |  |  |  |             building.meshes.add(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.parentZone.navMesh.add(footprint); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         //add in all the regions to the navMesh
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         //for (Regions region : building.getBounds().getRegions())
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         //   building.parentZone.navMesh.add(region.getArea());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |