Browse Source

region height work

feature-region-set
FatBoy-DOTC 1 year ago
parent
commit
9b7fc0a93b
  1. 41
      src/engine/devcmd/cmds/RegionCmd.java
  2. 4
      src/engine/objects/AbstractCharacter.java
  3. 3
      src/engine/objects/Mob.java
  4. 2
      src/engine/objects/NPC.java

41
src/engine/devcmd/cmds/RegionCmd.java

@ -9,9 +9,9 @@ @@ -9,9 +9,9 @@
package engine.devcmd.cmds;
import engine.Enum;
import engine.devcmd.AbstractDevCmd;
import engine.objects.AbstractGameObject;
import engine.objects.PlayerCharacter;
import engine.objects.*;
import java.lang.reflect.Field;
@ -25,42 +25,17 @@ public class RegionCmd extends AbstractDevCmd { @@ -25,42 +25,17 @@ public class RegionCmd extends AbstractDevCmd {
protected void _doCmd(PlayerCharacter pc, String[] words,
AbstractGameObject target) {
if (pc.region == null) {
Regions region = ((AbstractCharacter)target).region;
if (region == null) {
this.throwbackInfo(pc, "No Region Found.");
return;
}
String newLine = System.getProperty("line.separator");
String result = "";
result += (pc.region.getClass().getSimpleName());
result += (" {");
result += (newLine);
Field[] fields = pc.region.getClass().getDeclaredFields();
//print field names paired with their values
for (Field field : fields) {
field.setAccessible(true);
result += (" ");
try {
if (field.getName().contains("Furniture"))
continue;
result += (field.getName());
result += (": ");
//requires access to private field:
result += (field.get(pc.region).toString());
} catch (IllegalAccessException ex) {
System.out.println(ex);
}
result.trim();
result += (newLine);
if(region != null) {
this.throwbackInfo(pc, "Region Info: " + ((AbstractCharacter) target).getName());
this.throwbackInfo(pc, "Region Name: " + region);
this.throwbackInfo(pc, "Region Height: " + region.lerpY((AbstractCharacter)target));
}
result += ("}");
this.throwbackInfo(pc, result.toString());
}

4
src/engine/objects/AbstractCharacter.java

@ -11,6 +11,7 @@ package engine.objects; @@ -11,6 +11,7 @@ package engine.objects;
import engine.Enum;
import engine.Enum.*;
import engine.InterestManagement.HeightMap;
import engine.InterestManagement.InterestManager;
import engine.InterestManagement.WorldGrid;
import engine.exception.SerializationException;
@ -986,8 +987,9 @@ public abstract class AbstractCharacter extends AbstractWorldObject { @@ -986,8 +987,9 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
public final void setLoc(final Vector3fImmutable value) {
Regions region = Regions.GetRegionForTeleport(value);
if(region != null){
float regionHeight = region.lerpY(this);
this.region = region;
Vector3fImmutable newValue = new Vector3fImmutable(value.x,value.y + region.lerpY(this),value.z); //account for height offset of the current character region
Vector3fImmutable newValue = new Vector3fImmutable(value.x,regionHeight,value.z); //account for height offset of the current character region
super.setLoc(newValue); // set the location in the world
this.resetLastSetLocUpdate();
} else {

3
src/engine/objects/Mob.java

@ -1649,7 +1649,7 @@ public class Mob extends AbstractIntelligenceAgent { @@ -1649,7 +1649,7 @@ public class Mob extends AbstractIntelligenceAgent {
// Setup location for this Mobile
this.loc = new Vector3fImmutable(bindLoc);
this.setLoc(bindLoc);
this.endLoc = new Vector3fImmutable(bindLoc);
// Initialize inventory
@ -1743,6 +1743,7 @@ public class Mob extends AbstractIntelligenceAgent { @@ -1743,6 +1743,7 @@ public class Mob extends AbstractIntelligenceAgent {
this.level = (short) newRank;
this.recalculateStats();
this.setHealth(this.healthMax);
this.setLoc(this.bindLoc);
}
public boolean isRanking() {

2
src/engine/objects/NPC.java

@ -865,7 +865,7 @@ public class NPC extends AbstractCharacter { @@ -865,7 +865,7 @@ public class NPC extends AbstractCharacter {
this.bindLoc = new Vector3fImmutable(this.statLat, this.statAlt, this.statLon);
this.bindLoc = this.parentZone.getLoc().add(this.bindLoc);
this.loc = new Vector3fImmutable(bindLoc);
this.setLoc(bindLoc);
// Handle NPCs within buildings

Loading…
Cancel
Save