本文整理汇总了C++中atlas::objects::operation::RootOperation::getParents方法的典型用法代码示例。如果您正苦于以下问题:C++ RootOperation::getParents方法的具体用法?C++ RootOperation::getParents怎么用?C++ RootOperation::getParents使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类atlas::objects::operation::RootOperation
的用法示例。
在下文中一共展示了RootOperation::getParents方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: operationGetThoughtResult
void EntityEditor::operationGetThoughtResult(const Atlas::Objects::Operation::RootOperation& op)
{
//What we receive here has been relayed from the mind of the entity. That means that this op
//is potentially unsafe, as it could be of any type (Set, Logout etc.), all depending on what the
//mind client decided to send (i.e. someone might want to try to hack). We should therefore treat it
//very carefully.
if (op->getClassNo() == Atlas::Objects::Operation::ROOT_OPERATION_NO) {
//An empty root operation signals a timeout; we never got any answer from the entity.
return;
}
//Since we'll just be iterating over the args we only need to do an extra check that what we got is a
//"think" operation.
if (op->getParents().empty()) {
S_LOG_WARNING("Got think operation without any parent set.");
return;
}
if (op->getParents().front() != "think") {
S_LOG_WARNING("Got think operation with wrong type set.");
return;
}
if (!op->getArgs().empty()) {
auto thoughts = op->getArgsAsList();
for (auto thought : thoughts) {
EventGotThought(thought);
}
} else {
S_LOG_VERBOSE("Got thought op without any thoughts.");
}
}
示例2: Entity_Action
void SoundEntity::Entity_Action(const Atlas::Objects::Operation::RootOperation& act)
{
const std::list<std::string> &p = act->getParents();
std::list<std::string>::const_iterator I = p.begin();
if (I != p.end()) {
const std::string& name = *I;
playAction(name);
}
}
示例3: onAction
void EmberEntity::onAction(const Atlas::Objects::Operation::RootOperation& act)
{
const std::list<std::string> &p = act->getParents();
std::list<std::string>::const_iterator I = p.begin();
if (I != p.end()) {
const std::string& name = *I;
std::string message = getName() + " performs a " + name + ".";
ConsoleBackend::getSingletonPtr()->pushMessage(message, "info");
S_LOG_VERBOSE("Entity: " << this->getId() << " (" << this->getName() << ") action: " << name);
}
Entity::onAction(act);
}
示例4: onSoundAction
void EmberEntity::onSoundAction(const Atlas::Objects::Operation::RootOperation & op)
{
//We'll just catch the call and write something to both the log and the console, and then pass it on.
const std::list<std::string> &p = op->getParents();
std::list<std::string>::const_iterator I = p.begin();
if (I != p.end()) {
const std::string& name = *I;
std::string message = getName() + " emits a " + name + ".";
ConsoleBackend::getSingletonPtr()->pushMessage(message, "info");
S_LOG_VERBOSE("Entity: " << this->getId() << " (" << this->getName() << ") sound action: " << name);
}
Eris::Entity::onSoundAction(op);
}