|
|
@ -15,6 +15,7 @@ import engine.Enum.GameObjectType; |
|
|
|
import engine.Enum.GridObjectType; |
|
|
|
import engine.Enum.GridObjectType; |
|
|
|
import engine.InterestManagement.HeightMap; |
|
|
|
import engine.InterestManagement.HeightMap; |
|
|
|
import engine.InterestManagement.WorldGrid; |
|
|
|
import engine.InterestManagement.WorldGrid; |
|
|
|
|
|
|
|
import engine.gameManager.ZoneManager; |
|
|
|
import engine.job.AbstractScheduleJob; |
|
|
|
import engine.job.AbstractScheduleJob; |
|
|
|
import engine.job.JobContainer; |
|
|
|
import engine.job.JobContainer; |
|
|
|
import engine.job.JobScheduler; |
|
|
|
import engine.job.JobScheduler; |
|
|
@ -500,8 +501,24 @@ public abstract class AbstractWorldObject extends AbstractGameObject { |
|
|
|
if (loc.x > MBServerStatics.MAX_WORLD_WIDTH || loc.z < MBServerStatics.MAX_WORLD_HEIGHT) |
|
|
|
if (loc.x > MBServerStatics.MAX_WORLD_WIDTH || loc.z < MBServerStatics.MAX_WORLD_HEIGHT) |
|
|
|
return; |
|
|
|
return; |
|
|
|
this.lastLoc = new Vector3fImmutable(this.loc); |
|
|
|
this.lastLoc = new Vector3fImmutable(this.loc); |
|
|
|
|
|
|
|
if(AbstractCharacter.IsAbstractCharacter(this)){ |
|
|
|
|
|
|
|
float y; |
|
|
|
|
|
|
|
float worldHeight = HeightMap.getWorldHeight(loc); |
|
|
|
|
|
|
|
Zone zone = ZoneManager.findSmallestZone(loc); |
|
|
|
|
|
|
|
if(zone != null && zone.isPlayerCity()){ |
|
|
|
|
|
|
|
worldHeight = zone.absY; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if(this.region != null){ |
|
|
|
|
|
|
|
float regionAlt = this.region.lerpY(this); |
|
|
|
|
|
|
|
float altitude = this.getAltitude(); |
|
|
|
|
|
|
|
y = regionAlt + altitude + worldHeight; |
|
|
|
|
|
|
|
}else{ |
|
|
|
|
|
|
|
y = HeightMap.getWorldHeight(loc) + this.getAltitude(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
loc.setY(y); |
|
|
|
|
|
|
|
} |
|
|
|
this.loc = loc; |
|
|
|
this.loc = loc; |
|
|
|
this.loc = this.loc.setY(HeightMap.getWorldHeight(this) + this.getAltitude()); |
|
|
|
//this.loc = this.loc.setY(HeightMap.getWorldHeight(this) + this.getAltitude());
|
|
|
|
|
|
|
|
|
|
|
|
//lets not add mob to world grid if he is currently despawned.
|
|
|
|
//lets not add mob to world grid if he is currently despawned.
|
|
|
|
if (this.getObjectType().equals(GameObjectType.Mob) && ((Mob) this).despawned) |
|
|
|
if (this.getObjectType().equals(GameObjectType.Mob) && ((Mob) this).despawned) |
|
|
|