void InstallationObjectImplementation::broadcastMessage(BasePacket* message, bool sendSelf) { Zone* zone = getZone(); if (zone == NULL) return; Locker zoneLocker(zone); SortedVector<ManagedReference<QuadTreeEntry*> > closeSceneObjects; zone->getInRangeObjects(getPositionX(), getPositionY(), 512, &closeSceneObjects, false); for (int i = 0; i < closeSceneObjects.size(); ++i) { ManagedReference<SceneObject*> scno = cast<SceneObject*>( closeSceneObjects.get(i).get()); if (!sendSelf && scno == _this.get()) continue; if(!scno->isPlayerCreature()) continue; CreatureObject* creo = cast<CreatureObject*>( scno.get()); if(isOnAdminList(creo)) scno->sendMessage(message->clone()); } delete message; }
void GeneratorObjectImplementation::fillObjectMenuResponse(ObjectMenuResponse* menuResponse, CreatureObject* player) { if (!isOnAdminList(player)) return; InstallationObjectImplementation::fillObjectMenuResponse(menuResponse, player); menuResponse->addRadialMenuItemToRadialID(118, 78, 3, "@harvester:manage"); //Operate Machinery }
void GeneratorObjectImplementation::synchronizedUIListen(SceneObject* player, int value) { if (!player->isPlayerCreature() || !isOnAdminList(cast<CreatureObject*>(player)) || getZone() == NULL) return; addOperator(cast<CreatureObject*>(player)); updateInstallationWork(); HarvesterObjectMessage7* msg = new HarvesterObjectMessage7(_this.getReferenceUnsafeStaticCast()); player->sendMessage(msg); activateUiSync(); }
int GeneratorObjectImplementation::handleObjectMenuSelect(CreatureObject* player, byte selectedID) { if (!isOnAdminList(player)) return 1; switch (selectedID) { case 78: { ResourceHarvesterActivatePageMessage* rhapm = new ResourceHarvesterActivatePageMessage(getObjectID()); player->sendMessage(rhapm); break; } default: return InstallationObjectImplementation::handleObjectMenuSelect(player, selectedID); } return 0; }
void InstallationObjectImplementation::fillAttributeList(AttributeListMessage* alm, CreatureObject* object) { //TangibleObjectImplementation::fillAttributeList(alm, object); if (isOnAdminList(object)) { //Add the owner name to the examine window. ManagedReference<SceneObject*> obj = object->getZoneServer()->getObject(ownerObjectID); if(obj != NULL) { alm->insertAttribute("owner", obj->getDisplayedName()); } } if(isTurret() && dataObjectComponent != NULL){ TurretDataComponent* turretData = cast<TurretDataComponent*>(dataObjectComponent.get()); if(turretData == NULL) return; turretData->fillAttributeList(alm); } }
void HarvesterObjectImplementation::synchronizedUIListen(CreatureObject* player, int value) { if (!player->isPlayerCreature() || !isOnAdminList(player) || getZone() == NULL) return; addOperator(player); updateInstallationWork(); HarvesterObjectMessage7* msg = new HarvesterObjectMessage7(_this.getReferenceUnsafeStaticCast()); player->sendMessage(msg); /// Have to send the spawns of items no in shift, or the dont show /// up in the hopper when you look. for (int i = 0; i < resourceHopper.size(); ++i) { ResourceContainer* container = resourceHopper.get(i); if (container != NULL) { container->sendTo(player, true); } } activateUiSync(); }