NPC rotations inherit building rotation.
This commit is contained in:
@@ -929,7 +929,7 @@ public class Mob extends AbstractIntelligenceAgent {
|
|||||||
this.loc = new Vector3fImmutable(bindLoc);
|
this.loc = new Vector3fImmutable(bindLoc);
|
||||||
this.endLoc = new Vector3fImmutable(bindLoc);
|
this.endLoc = new Vector3fImmutable(bindLoc);
|
||||||
|
|
||||||
// Rotate mobile's rotation by the building's rotation
|
// Rotate mobile rotation by the building's rotation
|
||||||
|
|
||||||
slotRotation = new Quaternion().fromAngles(0, acos(this.getRot().y) * 2, 0);
|
slotRotation = new Quaternion().fromAngles(0, acos(this.getRot().y) * 2, 0);
|
||||||
slotRotation = slotRotation.mult(building.getBounds().getQuaternion());
|
slotRotation = slotRotation.mult(building.getBounds().getQuaternion());
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import java.util.HashSet;
|
|||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||||
|
|
||||||
|
import static engine.math.FastMath.acos;
|
||||||
import static engine.net.client.msg.ErrorPopupMsg.sendErrorPopup;
|
import static engine.net.client.msg.ErrorPopupMsg.sendErrorPopup;
|
||||||
import static engine.objects.MobBase.loadEquipmentSet;
|
import static engine.objects.MobBase.loadEquipmentSet;
|
||||||
|
|
||||||
@@ -375,6 +376,12 @@ public class NPC extends AbstractCharacter {
|
|||||||
slotRotation = BuildingManager.getSlotLocation(building, slot).getRotation();
|
slotRotation = BuildingManager.getSlotLocation(building, slot).getRotation();
|
||||||
this.setRot(new Vector3f(0, slotRotation.y, 0));
|
this.setRot(new Vector3f(0, slotRotation.y, 0));
|
||||||
|
|
||||||
|
// Rotate NPC rotation by the building's rotation
|
||||||
|
|
||||||
|
slotRotation = new Quaternion().fromAngles(0, acos(this.getRot().y) * 2, 0);
|
||||||
|
slotRotation = slotRotation.mult(building.getBounds().getQuaternion());
|
||||||
|
this.setRot(new Vector3f(0, slotRotation.y, 0));
|
||||||
|
|
||||||
// Configure region and floor/level for this NPC
|
// Configure region and floor/level for this NPC
|
||||||
|
|
||||||
this.region = BuildingManager.GetRegion(this.building, bindLoc.x, bindLoc.y, bindLoc.z);
|
this.region = BuildingManager.GetRegion(this.building, bindLoc.x, bindLoc.y, bindLoc.z);
|
||||||
|
|||||||
Reference in New Issue
Block a user