From 3495791753dda278381f574d93e1fd0dadb41db5 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sat, 28 Jun 2014 12:11:51 +0100 Subject: [PATCH] Made getCellByCellName more efficient --- .../objects/building/BuildingObject.java | 27 +++++++------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/src/resources/objects/building/BuildingObject.java b/src/resources/objects/building/BuildingObject.java index 9ee735d1..3f163e45 100644 --- a/src/resources/objects/building/BuildingObject.java +++ b/src/resources/objects/building/BuildingObject.java @@ -22,7 +22,6 @@ package resources.objects.building; import java.io.Serializable; -import java.util.Map; import java.util.Vector; import java.util.concurrent.atomic.AtomicReference; @@ -35,9 +34,7 @@ import resources.datatables.Options; import resources.objects.ObjectMessageBuilder; import resources.objects.cell.CellObject; import resources.objects.creature.CreatureObject; -import resources.objects.player.PlayerObject; import resources.objects.tangible.TangibleObject; -import engine.clientdata.ClientFileManager; import engine.clientdata.visitors.PortalVisitor; import engine.clients.Client; import engine.resources.objects.Baseline; @@ -152,22 +149,16 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria } public CellObject getCellByCellName(String cellName) { - Map attributes = getTemplateData().getAttributes(); + PortalVisitor portal = getPortalVisitor(); - if (attributes.containsKey("portalLayoutFilename") && ((String) attributes.get("portalLayoutFilename")).length() > 0) { - String portalLayoutFilename = (String) attributes.get("portalLayoutFilename"); - - try { - PortalVisitor portal = ClientFileManager.loadFile(portalLayoutFilename, PortalVisitor.class); - - for (int i = 0; i <= portal.cellCount; i++) { - System.out.println("Cellname: " + portal.cells.get(i).name); - if (cellName.equals(portal.cells.get(i).name)) { - return getCellByCellNumber(i + 1); - } - } - } catch (InstantiationException | IllegalAccessException e) { - e.printStackTrace(); + if (portal == null) { + return null; + } + + for (int i = 0; i < portal.cellCount; i++) { + System.out.println("Cellname: " + portal.cells.get(i).name); + if (cellName.equals(portal.cells.get(i).name)) { + return getCellByCellNumber(i + 1); } }