Reference<ResourceContainer*> ResourceSpawnImplementation::createResource(int units) { Reference<ResourceContainer*> newResource = NULL; newResource = (getZoneServer()->createObject(containerCRC, 2)).castTo<ResourceContainer*>(); if(newResource == NULL) { error("Unable to create resource container, using generic. CRC attempted was: " + String::valueOf(containerCRC)); print(); String genericContainer = "object/resource_container/organic_food.iff"; newResource = (getZoneServer()->createObject(genericContainer.hashCode(), 2)).castTo<ResourceContainer*>(); } Locker locker(newResource); newResource->setSpawnObject(_this.getReferenceUnsafeStaticCast()); if (units != 0) newResource->setQuantity(units); String resourceName = getFinalClass() + " (" + getName() + ")"; newResource->setCustomObjectName(resourceName, false); ++containerReferenceCount; return newResource; }
void ResourceSpawnImplementation::fillAttributeList(AttributeListMessage* alm, CreatureObject* object) { alm->insertAttribute("resource_class", getFinalClass()); for (int i = 0; i < spawnAttributes.size(); ++i) { String attrib; int value = getAttributeAndValue(attrib, i); alm->insertAttribute(attrib, value); } alm->insertInt(0); }
void ResourceSpawnImplementation::print() { info("**** Resource Data ****\n", true); info("Class: " + getFinalClass(), true); info("Name: " + spawnName, true); info("--------Classes--------", true); for (int i = 0; i < spawnClasses.size(); ++i) info(spawnClasses.get(i) + "(" + stfSpawnClasses.get(i) + ")", true); info("------Attributes-------", true); for (int i = 0; i < spawnAttributes.size(); ++i) { String attrib; int value = getAttributeAndValue(attrib, i); info(attrib + " " + value, true); } for (int i = 0; i < spawnMaps.size(); ++i) { info(spawnMaps.elementAt(i).getKey()); spawnMaps.get(i).print(); } info("***********************", true); }