Building Location rotations are now a quaternion.

This commit is contained in:
2023-05-02 09:10:41 -04:00
parent e745c260f0
commit 715abf1444
5 changed files with 36 additions and 64 deletions
+13 -52
View File
@@ -11,6 +11,7 @@ package engine.objects;
import engine.gameManager.BuildingManager;
import engine.gameManager.DbManager;
import engine.math.Quaternion;
import engine.math.Vector3fImmutable;
import java.sql.ResultSet;
@@ -25,9 +26,8 @@ public class BuildingLocation extends AbstractGameObject {
private final int type;
private final int slot;
private final int unknown;
private final Vector3fImmutable loc;
private final Vector3fImmutable rot;
private final float w;
private final Vector3fImmutable location;
private final Quaternion rotation;
/**
@@ -39,9 +39,8 @@ public class BuildingLocation extends AbstractGameObject {
this.type = rs.getInt("type");
this.slot = rs.getInt("slot");
this.unknown = rs.getInt("unknown");
this.loc = new Vector3fImmutable(rs.getFloat("locX"), rs.getFloat("locY"), rs.getFloat("locZ"));
this.rot = new Vector3fImmutable(rs.getFloat("rotX"), rs.getFloat("rotY"), rs.getFloat("rotZ"));
this.w = rs.getFloat("w");
this.location = new Vector3fImmutable(rs.getFloat("locX"), rs.getFloat("locY"), rs.getFloat("locZ"));
this.rotation = new Quaternion(rs.getFloat("rotX"), rs.getFloat("rotY"), rs.getFloat("rotZ"), rs.getFloat("w"));
}
/*
@@ -52,24 +51,6 @@ public class BuildingLocation extends AbstractGameObject {
return this.buildingUUID;
}
public Vector3fImmutable rotatedLoc() {
Vector3fImmutable convertLoc = null;
double rotY = 2.0 * Math.asin(this.rot.y);
// handle building rotation
convertLoc = new Vector3fImmutable(
(float) ((loc.z * Math.sin(rotY)) + (loc.x * Math.cos(rotY))),
loc.y,
(float) ((loc.z * Math.cos(rotY)) - (loc.x * Math.sin(rotY))));
return convertLoc;
}
public int getType() {
return this.type;
}
@@ -83,42 +64,22 @@ public class BuildingLocation extends AbstractGameObject {
}
public float getLocX() {
return this.loc.x;
return this.location.x;
}
public float getLocY() {
return this.loc.y;
return this.location.y;
}
public float getLocZ() {
return this.loc.z;
public Vector3fImmutable getLocation() {
return this.location;
}
public float getRotX() {
return this.rot.x;
public Quaternion getRotation() {
return this.rotation;
}
public float getRotY() {
return this.rot.y;
}
public float getRotZ() {
return this.rot.z;
}
public float getW() {
return this.w;
}
public Vector3fImmutable getLoc() {
return this.loc;
}
public Vector3fImmutable getRot() {
return this.rot;
}
@Override
public void updateDatabase() {
}
@@ -141,7 +102,7 @@ public class BuildingLocation extends AbstractGameObject {
break;
}
// Add location to the collection in BuildingManager
// Add location to collection in BuildingManager
if (locationCollection.containsKey(buildingLocation.buildingUUID))
locationCollection.get(buildingLocation.buildingUUID).add(buildingLocation);