region lookup and height offset for AbstractCharacters when setLoc is called

This commit is contained in:
2023-09-13 21:28:20 -05:00
parent 9b7fc0a93b
commit 7654d5183a
2 changed files with 7 additions and 2 deletions
+7 -1
View File
@@ -502,7 +502,13 @@ public abstract class AbstractWorldObject extends AbstractGameObject {
return;
this.lastLoc = new Vector3fImmutable(this.loc);
this.loc = loc;
this.loc = this.loc.setY(HeightMap.getWorldHeight(this.getLoc()) + this.getAltitude());
if(this instanceof AbstractCharacter && this.region != null){
this.loc = this.loc.setY(this.region.lerpY(this) + this.getAltitude());
} else{
this.loc = this.loc.setY(HeightMap.getWorldHeight(this.getLoc()) + this.getAltitude());
}
//lets not add mob to world grid if he is currently despawned.
if (this.getObjectType().equals(GameObjectType.Mob) && ((Mob) this).despawned)
-1
View File
@@ -1743,7 +1743,6 @@ public class Mob extends AbstractIntelligenceAgent {
this.level = (short) newRank;
this.recalculateStats();
this.setHealth(this.healthMax);
this.setLoc(this.bindLoc);
}
public boolean isRanking() {