debug dev command for collision
This commit is contained in:
@@ -2,11 +2,13 @@ package engine.collision;
|
|||||||
|
|
||||||
import java.awt.geom.Line2D;
|
import java.awt.geom.Line2D;
|
||||||
|
|
||||||
|
import java.awt.geom.Rectangle2D;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class Mesh {
|
public class Mesh {
|
||||||
public ArrayList<Triangle> triangles;
|
public ArrayList<Triangle> triangles;
|
||||||
public ArrayList<Line2D> BoundingLines;
|
public ArrayList<Line2D> BoundingLines;
|
||||||
|
public Rectangle2D boundsRect;
|
||||||
public float meshHeight;
|
public float meshHeight;
|
||||||
|
|
||||||
public boolean BoundsCollides(Line2D line){
|
public boolean BoundsCollides(Line2D line){
|
||||||
|
|||||||
@@ -10,10 +10,12 @@
|
|||||||
package engine.devcmd.cmds;
|
package engine.devcmd.cmds;
|
||||||
|
|
||||||
import engine.Enum;
|
import engine.Enum;
|
||||||
|
import engine.collision.Mesh;
|
||||||
import engine.devcmd.AbstractDevCmd;
|
import engine.devcmd.AbstractDevCmd;
|
||||||
import engine.gameManager.BuildingManager;
|
import engine.gameManager.BuildingManager;
|
||||||
import engine.objects.*;
|
import engine.objects.*;
|
||||||
|
|
||||||
|
import java.awt.geom.Point2D;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
public class RegionCmd extends AbstractDevCmd {
|
public class RegionCmd extends AbstractDevCmd {
|
||||||
@@ -37,7 +39,6 @@ public class RegionCmd extends AbstractDevCmd {
|
|||||||
Regions region = ((AbstractCharacter)target).region;
|
Regions region = ((AbstractCharacter)target).region;
|
||||||
if (region == null) {
|
if (region == null) {
|
||||||
this.throwbackInfo(pc, "No Region Found.");
|
this.throwbackInfo(pc, "No Region Found.");
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(region != null) {
|
if(region != null) {
|
||||||
@@ -48,7 +49,15 @@ public class RegionCmd extends AbstractDevCmd {
|
|||||||
output += "is Outside: " + region.isOutside();
|
output += "is Outside: " + region.isOutside();
|
||||||
this.throwbackInfo(pc, output);
|
this.throwbackInfo(pc, output);
|
||||||
}
|
}
|
||||||
|
if(building != null){
|
||||||
|
for(Mesh mesh : building.buildingMeshes){
|
||||||
|
if(mesh.boundsRect.contains(new Point2D.Float(((AbstractCharacter) target).loc.x,((AbstractCharacter) target).loc.z))){
|
||||||
|
this.throwbackInfo(pc, "Inside Mesh Bounds");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.throwbackInfo(pc, "Outside Mesh Bounds");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1031,6 +1031,9 @@ public enum BuildingManager {
|
|||||||
tri.sides.add(new Line2D.Float(p3,p1));
|
tri.sides.add(new Line2D.Float(p3,p1));
|
||||||
generatedMesh.triangles.add(tri);
|
generatedMesh.triangles.add(tri);
|
||||||
}
|
}
|
||||||
|
if(BuildingManager.mesh_bounding_boxes.containsKey(mesh)){
|
||||||
|
generatedMesh.boundsRect = BuildingManager.mesh_bounding_boxes.get(mesh);
|
||||||
|
}
|
||||||
building.buildingMeshes.add(generatedMesh);
|
building.buildingMeshes.add(generatedMesh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user