Fixed miscelaneous getLocation() issues and optimized some calls to avoid unnecessary copies

This commit is contained in:
Obique PSWG
2015-08-08 12:04:54 -05:00
parent 69c71e7e47
commit 68833935a5
6 changed files with 14 additions and 13 deletions
@@ -107,13 +107,14 @@ public class WaypointObject extends IntangibleObject implements OutOfBandData {
@Override
public void decode(ByteBuffer data) {
data.getInt();
setLocation(data.getFloat(), data.getFloat(), data.getFloat());
Location loc = new Location(data.getFloat(), data.getFloat(), data.getFloat(), null);
cellId = Packet.getLong(data);
getLocation().setTerrain(Terrain.getTerrainFromCrc(data.getInt()));
loc.setTerrain(Terrain.getTerrainFromCrc(data.getInt()));
name = Packet.getUnicode(data);
Packet.getLong(data); // objectId
color = WaypointColor.valueOf(data.get());
active = Packet.getBoolean(data);
setLocation(loc);
}
@Override
+1 -1
View File
@@ -547,7 +547,7 @@ public class ChatRoomService extends Service {
}
}
Terrain terrain = player.getCreatureObject().getLocation().getTerrain();
Terrain terrain = player.getCreatureObject().getTerrain();
// Enter the new zone-only chat channels
String planetPath = "SWG." + player.getGalaxyName() + "." + terrain.getName() + ".";
+1 -1
View File
@@ -92,7 +92,7 @@ public final class WeatherService extends Service {
private final void handleZoneIn(PlayerEventIntent pei) {
Player p = pei.getPlayer();
Terrain t = p.getCreatureObject().getLocation().getTerrain();
Terrain t = p.getCreatureObject().getTerrain();
p.sendPacket(constructWeatherPacket(t));
}
+3 -3
View File
@@ -191,10 +191,10 @@ public class MapService extends Service {
mapLocation.setSubcategory((byte) mapCategories.get(mappingTemplate.getSubcategory()).getIndex());
else
mapLocation.setSubcategory((byte) 0);
mapLocation.setX((float) object.getLocation().getX());
mapLocation.setY((float) object.getLocation().getZ());
mapLocation.setX((float) object.getX());
mapLocation.setY((float) object.getZ());
String planet = object.getLocation().getTerrain().getName();
String planet = object.getTerrain().getName();
switch (type) {
case STATIC:
+2 -2
View File
@@ -408,7 +408,7 @@ public class ObjectManager extends Manager {
if (transform == null)
return;
Location newLocation = transform.getLocation();
newLocation.setTerrain(obj.getLocation().getTerrain());
newLocation.setTerrain(obj.getTerrain());
objectAwareness.move(obj, newLocation);
obj.sendDataTransforms(transform);
@@ -418,7 +418,7 @@ public class ObjectManager extends Manager {
private void moveObject(SWGObject obj, DataTransformWithParent transformWithParent) {
Location newLocation = transformWithParent.getLocation();
newLocation.setTerrain(obj.getLocation().getTerrain());
newLocation.setTerrain(obj.getTerrain());
SWGObject parent = objectMap.get(transformWithParent.getCellId());
if (parent == null) {
System.err.println("ObjectManager: Could not find parent for transform! Cell: " + transformWithParent.getCellId());
+4 -4
View File
@@ -199,7 +199,7 @@ public class PlayerManager extends Manager {
synchronized(players) {
for (Player p : players.values()) {
if (p != null && p.getCreatureObject() != null && p.getCreatureObject().getLocation().getTerrain() == terrain && conditional.meetsCondition(p))
if (p != null && p.getCreatureObject() != null && p.getCreatureObject().getTerrain() == terrain && conditional.meetsCondition(p))
p.sendPacket(packets);
}
}
@@ -208,7 +208,7 @@ public class PlayerManager extends Manager {
public void notifyPlayersAtPlanet(Terrain terrain, Packet... packets) {
synchronized(players) {
for (Player p : players.values()) {
if (p != null && p.getCreatureObject() != null && p.getCreatureObject().getLocation().getTerrain() == terrain)
if (p != null && p.getCreatureObject() != null && p.getCreatureObject().getTerrain() == terrain)
p.sendPacket(packets);
}
}
@@ -223,7 +223,7 @@ public class PlayerManager extends Manager {
synchronized(players) {
networkIds.forEach(id -> {
Player p = players.get(id);
if (p != null && p.getCreatureObject() != null && p.getCreatureObject().getLocation().getTerrain() == terrain && conditional.meetsCondition(p))
if (p != null && p.getCreatureObject() != null && p.getCreatureObject().getTerrain() == terrain && conditional.meetsCondition(p))
p.sendPacket(packets);
});
}
@@ -233,7 +233,7 @@ public class PlayerManager extends Manager {
synchronized(players) {
networkIds.forEach(id -> {
Player p = players.get(id);
if (p != null && p.getCreatureObject() != null && p.getCreatureObject().getLocation().getTerrain() == terrain)
if (p != null && p.getCreatureObject() != null && p.getCreatureObject().getTerrain() == terrain)
p.sendPacket(packets);
});
}