diff --git a/odb/building/placeholder.txt b/odb/building/placeholder.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/odb/chatRooms/placeholder.txt b/odb/chatRooms/placeholder.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/odb/doids/placeholder.txt b/odb/doids/placeholder.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/odb/guild/placeholder.txt b/odb/guild/placeholder.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/odb/mails/placeholder.txt b/odb/mails/placeholder.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/odb/oids/placeholder.txt b/odb/oids/placeholder.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/options.cfg b/options.cfg index 4f6d91ad..d5a813ed 100644 --- a/options.cfg +++ b/options.cfg @@ -1,2 +1,2 @@ -LOAD.SNAPSHOT_OBJECTS=1 -LOAD.BUILDOUT_OBJECTS=1 \ No newline at end of file +LOAD.SNAPSHOT_OBJECTS=0 +LOAD.BUILDOUT_OBJECTS=0 \ No newline at end of file diff --git a/src/resources/objects/resource/GalacticResource.java b/src/resources/objects/resource/GalacticResource.java index 8f4e8dbb..63ca4279 100644 --- a/src/resources/objects/resource/GalacticResource.java +++ b/src/resources/objects/resource/GalacticResource.java @@ -26,7 +26,12 @@ import java.util.Random; import java.util.Vector; import java.util.concurrent.TimeUnit; +import main.NGECore; +import protocol.swg.SurveyMapUpdateMessage; +import resources.objects.creature.CreatureObject; +import resources.objects.player.PlayerObject; import resources.objects.tangible.TangibleObject; +import resources.objects.waypoint.WaypointObject; import com.sleepycat.je.Environment; import com.sleepycat.je.Transaction; @@ -374,6 +379,78 @@ public class GalacticResource extends SWGObject implements IPersistent { return measuredOutput; } + public Vector buildConcentrationsCollection(Point3D measurePos, GalacticResource resource, float radius,float differential, int planetId){ + float leftXCoordinate = measurePos.x - (0.5f*radius); + float topZCoordinate = measurePos.z - (0.5f*radius); + float cursorX = leftXCoordinate; + float cursorZ = topZCoordinate; + int divisions=5; + if (radius<=192.0f){ + divisions = 4; + } + if (radius<=64.0f){ + divisions = 3; + } + + Vector concentrationsCollection = new Vector(); + for (int z=0;z concentrationMap, float radius){ + + int pointsAmount = 25; + if (radius<=64.0f) { + pointsAmount=9; + } else if (radius<=128.0) { + pointsAmount = 16; + } else if (radius<=192.0f) { + pointsAmount = 16; + } else if (radius<=256.0f) { + pointsAmount = 25; + } else if (radius>=256.0f) { + pointsAmount = 25; + } + + SurveyMapUpdateMessage smuMsg = new SurveyMapUpdateMessage(concentrationMap, pointsAmount); + crafter.getClient().getSession().write(smuMsg.serialize()); + services.resources.CharonPacketUtils.printAnalysis(smuMsg.serialize()); + + PlayerObject player = (PlayerObject) crafter.getSlottedObject("ghost"); + if (smuMsg.getHighestConcentration() > 0.10f){ + WaypointObject lastSurveyWaypoint = player.getLastSurveyWaypoint(); + WaypointObject surveyWaypoint = null; + if (lastSurveyWaypoint==null){ + surveyWaypoint = (WaypointObject) NGECore.getInstance().objectService.createObject("object/waypoint/shared_world_waypoint_blue.iff", crafter.getPlanet(), smuMsg.getHighestX(), 0 ,smuMsg.getHighestZ()); + surveyWaypoint.setName("Survey location"); + surveyWaypoint.setPlanetCRC(engine.resources.common.CRC.StringtoCRC(crafter.getPlanet().getName())); + surveyWaypoint.setPosition(new Point3D(smuMsg.getHighestX(),0, smuMsg.getHighestZ())); + player.waypointAdd(surveyWaypoint); + surveyWaypoint.setPosition(new Point3D(smuMsg.getHighestX(),0, smuMsg.getHighestZ())); + surveyWaypoint.setActive(true); + surveyWaypoint.setColor((byte)1); + surveyWaypoint.setStringAttribute("", ""); + player.waypointAdd(surveyWaypoint); + surveyWaypoint.setName("Survey location"); + surveyWaypoint.setPlanetCRC(engine.resources.common.CRC.StringtoCRC(crafter.getPlanet().getName())); + player.setLastSurveyWaypoint(surveyWaypoint); + } else { + surveyWaypoint = lastSurveyWaypoint; + surveyWaypoint.setPosition(new Point3D(smuMsg.getHighestX(),0, smuMsg.getHighestZ())); + player.waypointUpdate(surveyWaypoint); + } + crafter.sendSystemMessage("@survey:survey_waypoint", (byte) 0); + } + } + // Redundant just for Testing !!! public double getHelperMinDist(){ return minDist; diff --git a/src/resources/objects/resource/ResourceContainerObject.java b/src/resources/objects/resource/ResourceContainerObject.java index 4b9dd6c1..26862e75 100644 --- a/src/resources/objects/resource/ResourceContainerObject.java +++ b/src/resources/objects/resource/ResourceContainerObject.java @@ -134,70 +134,11 @@ public class ResourceContainerObject extends TangibleObject { } - // Overload to initialize with stack count -// public ResourceContainerObject(int stackCount){ -// this.stackCount = stackCount; -// long range = 1234567L; -// Random r = new Random(); -// this.containerID = (long)(r.nextDouble()*range); -// messageBuilder = new ResourceContainerMessageBuilder(this); -// } - - // Overload for objectservice call public ResourceContainerObject(long objectID, Planet planet, String template, Point3D position, Quaternion orientation){ super(objectID, planet, template, position, orientation); messageBuilder = new ResourceContainerMessageBuilder(this); } - - // Overload to initialize with stack count - // and resource reference -// public ResourceContainerObject(int stackCount, GalacticResource resource){ -// this.stackCount = stackCount; -// long range = 1234567L; -// Random r = new Random(); -// this.containerID = (long)(r.nextDouble()*range); -// this.setResourceName(resource.getName()); -// this.setResourceClass(resource.getResourceRoot().getResourceClass()); -// this.setColdResistance(resource.getResourceStats()[0]); -// this.setConductivity(resource.getResourceStats()[1]); -// this.setDecayResistance(resource.getResourceStats()[2]); -// this.setHeatResistance(resource.getResourceStats()[3]); -// this.setMalleability(resource.getResourceStats()[4]); -// this.setShockResistance(resource.getResourceStats()[5]); -// this.setUnitToughness(resource.getResourceStats()[6]); -// this.setEntangleResistance(resource.getResourceStats()[7]); -// this.setPotentialEnergy(resource.getResourceStats()[8]); -// this.setOverallQuality(resource.getResourceStats()[9]); -// this.setFlavor(resource.getResourceStats()[10]); -// this.setResourceType(resource.getResourceRoot().getResourceType()); -// this.setIffFileName(resource.getResourceRoot().getResourceFileName()); -// messageBuilder = new ResourceContainerMessageBuilder(this); -// } -// -// public ResourceContainerObject(int stackCount, GalacticResource resource, String template,long objectID, Planet planet){ -// super(objectID, planet, template); -// this.stackCount = stackCount; -// long range = 1234567L; -// Random r = new Random(); -// this.containerID = (long)(r.nextDouble()*range); -// this.setResourceName(resource.getName()); -// this.setResourceClass(resource.getResourceRoot().getResourceClass()); -// this.setColdResistance(resource.getResourceStats()[0]); -// this.setConductivity(resource.getResourceStats()[1]); -// this.setDecayResistance(resource.getResourceStats()[2]); -// this.setHeatResistance(resource.getResourceStats()[3]); -// this.setMalleability(resource.getResourceStats()[4]); -// this.setShockResistance(resource.getResourceStats()[5]); -// this.setUnitToughness(resource.getResourceStats()[6]); -// this.setEntangleResistance(resource.getResourceStats()[7]); -// this.setPotentialEnergy(resource.getResourceStats()[8]); -// this.setOverallQuality(resource.getResourceStats()[9]); -// this.setFlavor(resource.getResourceStats()[10]); -// this.setResourceType(resource.getResourceRoot().getResourceType()); -// this.setIffFileName(resource.getResourceRoot().getResourceFileName()); -// messageBuilder = new ResourceContainerMessageBuilder(this); -// } - + public void initializeStats(GalacticResource resource){ this.setResourceName(resource.getName()); this.setResourceClass(resource.getResourceClass()); @@ -216,29 +157,72 @@ public class ResourceContainerObject extends TangibleObject { this.setGeneralType(resource.getGeneralType()); this.setReferenceID(resource.getId()); this.setResourceFileName(resource.getIffFileName()); + //this.setIffFileName(resource.getIffFileName()); + + // set attributes + this.getAttributes().put("@obj_attr_n:condition", "100/100"); + this.getAttributes().put("@obj_attr_n:volume", "1"); + this.getAttributes().put("@obj_attr_n:resource_contents", this.getStackCount()+"/"+maximalStackCapacity); + this.getAttributes().put("@obj_attr_n:resource_name", this.getResourceName()); + this.getAttributes().put("@obj_attr_n:resource_class", "@resource/resource_names:" + this.getResourceFileName()); + + if (this.getColdResistance()>0){ + this.getAttributes().put("res_cold_resist", ""+this.getColdResistance()); + resource.getAttributes().put("res_cold_resist", ""+this.getColdResistance()); + } + + if (this.getConductivity()>0){ + this.getAttributes().put("res_conductivity", ""+this.getConductivity()); + resource.getAttributes().put("res_conductivity", ""+this.getConductivity()); + } + + if (this.getDecayResistance()>0){ + this.getAttributes().put("res_decay_resist", ""+this.getDecayResistance()); + resource.getAttributes().put("res_decay_resist", ""+this.getDecayResistance()); + } + + if (this.getHeatResistance()>0){ + this.getAttributes().put("res_heat_resist", ""+this.getHeatResistance()); + resource.getAttributes().put("res_heat_resist", ""+this.getHeatResistance()); + } + + if (this.getMalleability()>0){ + this.getAttributes().put("res_malleability", ""+this.getMalleability()); + resource.getAttributes().put("res_malleability", ""+this.getMalleability()); + } + + if (this.getOverallQuality()>0){ + this.getAttributes().put("res_quality", ""+this.getOverallQuality()); + resource.getAttributes().put("res_quality", ""+this.getOverallQuality()); + + } + + if (this.getShockResistance()>0){ + this.getAttributes().put("res_shock_resistance", ""+this.getShockResistance()); + resource.getAttributes().put("res_shock_resistance", ""+this.getShockResistance()); + } + + if (this.getUnitToughness()>0){ + this.getAttributes().put("res_toughness", ""+this.getUnitToughness()); + resource.getAttributes().put("res_toughness", ""+this.getUnitToughness()); + } + + if (this.getFlavor()>0){ + this.getAttributes().put("res_flavor", ""+this.getFlavor()); + resource.getAttributes().put("res_flavor", ""+this.getFlavor()); + } + + if (this.getEntangleResistance()>0){ + this.getAttributes().put("entangle_resistance", ""+this.getEntangleResistance()); + resource.getAttributes().put("entangle_resistance", ""+this.getEntangleResistance()); + } + + if (this.getPotentialEnergy()>0){ + this.getAttributes().put("res_potential_energy", ""+this.getPotentialEnergy()); + resource.getAttributes().put("res_potential_energy", ""+this.getPotentialEnergy()); + } } -// public void initializeStats(GalacticResource resource){ -// this.setResourceName(resource.getName()); -// this.setResourceClass(resource.getResourceRoot().getResourceClass()); -// this.setColdResistance(resource.getResourceStats()[0]); -// this.setConductivity(resource.getResourceStats()[1]); -// this.setDecayResistance(resource.getResourceStats()[2]); -// this.setHeatResistance(resource.getResourceStats()[3]); -// this.setMalleability(resource.getResourceStats()[4]); -// this.setShockResistance(resource.getResourceStats()[5]); -// this.setUnitToughness(resource.getResourceStats()[6]); -// this.setEntangleResistance(resource.getResourceStats()[7]); -// this.setPotentialEnergy(resource.getResourceStats()[8]); -// this.setOverallQuality(resource.getResourceStats()[9]); -// this.setFlavor(resource.getResourceStats()[10]); -// this.setResourceType(resource.getResourceRoot().getResourceType()); -// this.setGeneralType(resource.getResourceRoot().getGeneralType()); -// this.setReferenceID(resource.getId()); -// this.setResourceFileName(resource.getResourceRoot().getResourceFileName()); -// } - - public long getContainerID() { return containerID; } @@ -411,6 +395,7 @@ public class ResourceContainerObject extends TangibleObject { public void setStackCount(int stackCount) { this.stackCount = stackCount; + this.getAttributes().put("@obj_attr_n:resource_contents", this.getStackCount()+"/"+maximalStackCapacity); } public byte getContainerType() { diff --git a/src/services/SurveyService.java b/src/services/SurveyService.java index e1f6fbab..2ac9cdf4 100644 --- a/src/services/SurveyService.java +++ b/src/services/SurveyService.java @@ -70,91 +70,7 @@ public class SurveyService implements INetworkDispatch { core.commandService.registerSurveyCommand("RequestCoreSample"); } - public GalacticResource grabResourceByName(String searchName){ - GalacticResource resource = null; - Vector allResources = core.resourceService.getAllSpawnedResources(); - for (GalacticResource res : allResources){ - if (res.getName().equals(searchName)){ - resource = res; - } - } - return resource; - } - - public Vector buildConcentrationsCollection(Point3D measurePos, GalacticResource resource, float radius,float differential, int planetId){ - float leftXCoordinate = measurePos.x - (0.5f*radius); - float topZCoordinate = measurePos.z - (0.5f*radius); -// System.out.println("measurePos.x " + measurePos.x); -// System.out.println("measurePos.z " + measurePos.z); - float cursorX = leftXCoordinate; - float cursorZ = topZCoordinate; - int divisions=5; - if (radius<=192.0f){ - divisions = 4; - } - if (radius<=64.0f){ - divisions = 3; - } - Vector concentrationsCollection = new Vector(); - for (int z=0;z concentrationMap, float radius){ - - int pointsAmount = 25; - if (radius<=64.0f) { - pointsAmount=9; - } else if (radius<=128.0) { - pointsAmount = 16; - } else if (radius<=192.0f) { - pointsAmount = 16; - } else if (radius<=256.0f) { - pointsAmount = 25; - } else if (radius>=256.0f) { - pointsAmount = 25; - } - - SurveyMapUpdateMessage smuMsg = new SurveyMapUpdateMessage(concentrationMap, pointsAmount); - crafter.getClient().getSession().write(smuMsg.serialize()); - services.resources.CharonPacketUtils.printAnalysis(smuMsg.serialize()); - - PlayerObject player = (PlayerObject) crafter.getSlottedObject("ghost"); - if (smuMsg.getHighestConcentration() > 0.10f){ - WaypointObject lastSurveyWaypoint = player.getLastSurveyWaypoint(); - WaypointObject surveyWaypoint = null; - if (lastSurveyWaypoint==null){ - surveyWaypoint = (WaypointObject)core.objectService.createObject("object/waypoint/shared_world_waypoint_blue.iff", crafter.getPlanet(), smuMsg.getHighestX(), 0 ,smuMsg.getHighestZ()); - surveyWaypoint.setName("Survey location"); - surveyWaypoint.setPlanetCRC(engine.resources.common.CRC.StringtoCRC(crafter.getPlanet().getName())); - surveyWaypoint.setPosition(new Point3D(smuMsg.getHighestX(),0, smuMsg.getHighestZ())); - player.waypointAdd(surveyWaypoint); - surveyWaypoint.setPosition(new Point3D(smuMsg.getHighestX(),0, smuMsg.getHighestZ())); - surveyWaypoint.setActive(true); - surveyWaypoint.setColor((byte)1); - surveyWaypoint.setStringAttribute("", ""); - player.waypointAdd(surveyWaypoint); - surveyWaypoint.setName("Survey location"); - surveyWaypoint.setPlanetCRC(engine.resources.common.CRC.StringtoCRC(crafter.getPlanet().getName())); - player.setLastSurveyWaypoint(surveyWaypoint); - } else { - surveyWaypoint = lastSurveyWaypoint; - surveyWaypoint.setPosition(new Point3D(smuMsg.getHighestX(),0, smuMsg.getHighestZ())); - player.waypointUpdate(surveyWaypoint); - } - crafter.sendSystemMessage("@survey:survey_waypoint", (byte) 0); - } - } - public void scheduleSurveyService(){ final ScheduledFuture task = scheduler.scheduleAtFixedRate(new Runnable() { @@ -244,33 +160,10 @@ public class SurveyService implements INetworkDispatch { ResourceContainerObject containerObject = (ResourceContainerObject) core.objectService.createObject(resourceContainerIFF, crafter.getPlanet()); containerObject.initializeStats(sampleResource); containerObject.setProprietor(crafter); - - int resCRC = CRC.StringtoCRC(resourceContainerIFF); - containerObject.setIffFileName(resourceContainerIFF); - - long objectId = containerObject.getObjectID(); SWGObject crafterInventory = crafter.getSlottedObject("inventory"); - containerObject.setParent(crafterInventory); - - SceneCreateObjectByCrc createObjectMsg = new SceneCreateObjectByCrc(objectId, crafter.getOrientation().x, crafter.getOrientation().y, crafter.getOrientation().z, crafter.getOrientation().w, crafter.getPosition().x, crafter.getPosition().y, crafter.getPosition().z, resCRC, (byte) 0); - crafter.getClient().getSession().write(createObjectMsg.serialize()); - services.resources.CharonPacketUtils.printAnalysis(createObjectMsg.serialize()); - - UpdateContainmentMessage updateContainmentMessage= new UpdateContainmentMessage(containerObject.getObjectID(), crafterInventory.getObjectID(), -1); - crafter.getClient().getSession().write(updateContainmentMessage.serialize()); - containerObject.sendBaselines(crafter.getClient()); - - SceneEndBaselines sceneEndBaselinesMsg = new SceneEndBaselines(containerObject.getObjectID()); - crafter.getClient().getSession().write(sceneEndBaselinesMsg.serialize()); - services.resources.CharonPacketUtils.printAnalysis(sceneEndBaselinesMsg.serialize()); - - containerObject.buildAttributeListMessage(crafter.getClient()); + crafterInventory.add(containerObject); player.setRecentContainer(containerObject); - -// base_player -// prose_grant_xp -// exp_n -// resource_harvesting_inorganic + } } else { // Mismatch -> new container String resourceContainerIFF = ResourceRoot.CONTAINER_TYPE_IFF_SIGNIFIER[sampleResource.getResourceRoot().getContainerType()]; @@ -278,28 +171,10 @@ public class SurveyService implements INetworkDispatch { ResourceContainerObject containerObject = (ResourceContainerObject) core.objectService.createObject(resourceContainerIFF, crafter.getPlanet()); containerObject.initializeStats(sampleResource); containerObject.setProprietor(crafter); - - int resCRC = CRC.StringtoCRC(resourceContainerIFF); - containerObject.setIffFileName(resourceContainerIFF); - - long objectId = containerObject.getObjectID(); SWGObject crafterInventory = crafter.getSlottedObject("inventory"); - containerObject.setParent(crafterInventory); - - SceneCreateObjectByCrc createObjectMsg = new SceneCreateObjectByCrc(objectId, crafter.getOrientation().x, crafter.getOrientation().y, crafter.getOrientation().z, crafter.getOrientation().w, crafter.getPosition().x, crafter.getPosition().y, crafter.getPosition().z, resCRC, (byte) 0); - crafter.getClient().getSession().write(createObjectMsg.serialize()); - services.resources.CharonPacketUtils.printAnalysis(createObjectMsg.serialize()); - - UpdateContainmentMessage updateContainmentMessage= new UpdateContainmentMessage(containerObject.getObjectID(), crafterInventory.getObjectID(), -1); - crafter.getClient().getSession().write(updateContainmentMessage.serialize()); - containerObject.sendBaselines(crafter.getClient()); - - SceneEndBaselines sceneEndBaselinesMsg = new SceneEndBaselines(containerObject.getObjectID()); - crafter.getClient().getSession().write(sceneEndBaselinesMsg.serialize()); - services.resources.CharonPacketUtils.printAnalysis(sceneEndBaselinesMsg.serialize()); - - containerObject.buildAttributeListMessage(crafter.getClient()); + crafterInventory.add(containerObject); player.setRecentContainer(containerObject); + } } else { // create new container, first sample String resourceContainerIFF = ResourceRoot.CONTAINER_TYPE_IFF_SIGNIFIER[sampleResource.getResourceRoot().getContainerType()]; @@ -308,27 +183,8 @@ public class SurveyService implements INetworkDispatch { containerObject.setProprietor(crafter); stackCount = core.resourceService.getResourceSampleQuantity(crafter, sampleResource); containerObject.setStackCount(stackCount,false); - - int resCRC = CRC.StringtoCRC(resourceContainerIFF); - containerObject.setIffFileName(resourceContainerIFF); - - long objectId = containerObject.getObjectID(); - SWGObject crafterInventory = crafter.getSlottedObject("inventory"); - containerObject.setParent(crafterInventory); - - SceneCreateObjectByCrc createObjectMsg = new SceneCreateObjectByCrc(objectId, crafter.getOrientation().x, crafter.getOrientation().y, crafter.getOrientation().z, crafter.getOrientation().w, crafter.getPosition().x, crafter.getPosition().y, crafter.getPosition().z, resCRC, (byte) 0); - crafter.getClient().getSession().write(createObjectMsg.serialize()); - services.resources.CharonPacketUtils.printAnalysis(createObjectMsg.serialize()); - - UpdateContainmentMessage updateContainmentMessage= new UpdateContainmentMessage(containerObject.getObjectID(), crafterInventory.getObjectID(), -1); - crafter.getClient().getSession().write(updateContainmentMessage.serialize()); - containerObject.sendBaselines(crafter.getClient()); - - SceneEndBaselines sceneEndBaselinesMsg = new SceneEndBaselines(containerObject.getObjectID()); - crafter.getClient().getSession().write(sceneEndBaselinesMsg.serialize()); - services.resources.CharonPacketUtils.printAnalysis(sceneEndBaselinesMsg.serialize()); - - containerObject.buildAttributeListMessage(crafter.getClient()); + SWGObject crafterInventory = crafter.getSlottedObject("inventory"); + crafterInventory.add(containerObject); player.setRecentContainer(containerObject); } @@ -371,7 +227,6 @@ public class SurveyService implements INetworkDispatch { // Counter too frequent survey button activation if(surveyTool.getCurrentlySurveying()){ - //System.out.println("TOO FREQUENT!"); return; } @@ -385,7 +240,7 @@ public class SurveyService implements INetworkDispatch { addActiveSurveyTool(surveyTool); String resourceNameString = commandArgs; - GalacticResource resource = core.surveyService.grabResourceByName(resourceNameString); + GalacticResource resource = core.resourceService.grabResourceByName(resourceNameString); surveyTool.setCurrentlySurveying(true); surveyTool.setLastSurveyTime(System.currentTimeMillis()); @@ -422,8 +277,8 @@ public class SurveyService implements INetworkDispatch { float differential = surveyRadius / (float) divisor; GalacticResource resourceToSurvey = surveyTool.getSurveyResource(); - Vector concentrationMap = buildConcentrationsCollection(crafter.getPosition(),resourceToSurvey, surveyRadius, differential, crafter.getPlanetId()); - constructSurveyMapMessage(crafter, concentrationMap, surveyRadius); + Vector concentrationMap = resourceToSurvey.buildConcentrationsCollection(crafter.getPosition(),resourceToSurvey, surveyRadius, differential, crafter.getPlanetId()); + resourceToSurvey.constructSurveyMapMessage(crafter, concentrationMap, surveyRadius); crafter.sendSystemMessage("Distance to nearest Deposit : " + resourceToSurvey.getHelperMinDist(), (byte) 0); } @@ -780,8 +635,8 @@ public class SurveyService implements INetworkDispatch { public SUICallback handleSurveyRangeInput(SWGObject crafter,SUIWindow suiWindow){ SUICallback callback = suiWindow.getCallbackByEventId(1); - if (callback!=null) - System.out.println("handleExceptionalInput " + callback.toString()); +// if (callback!=null) +// System.out.println("handleExceptionalInput " + callback.toString()); core.suiService.closeSUIWindow(crafter, 0); return callback; } diff --git a/src/services/resources/ResourceService.java b/src/services/resources/ResourceService.java index a63939df..df92c130 100644 --- a/src/services/resources/ResourceService.java +++ b/src/services/resources/ResourceService.java @@ -11279,6 +11279,17 @@ public class ResourceService implements INetworkDispatch { return resourceRootreference; } + public GalacticResource grabResourceByName(String searchName){ + GalacticResource resource = null; + Vector allResources = core.resourceService.getAllSpawnedResources(); + for (GalacticResource res : allResources){ + if (res.getName().equals(searchName)){ + resource = res; + } + } + return resource; + } + // Utility method to quickly spawn resource containers into the inventory