本文整理汇总了C++中ActorPtr::getName方法的典型用法代码示例。如果您正苦于以下问题:C++ ActorPtr::getName方法的具体用法?C++ ActorPtr::getName怎么用?C++ ActorPtr::getName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ActorPtr
的用法示例。
在下文中一共展示了ActorPtr::getName方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: execute
int CmdPutInto::execute()
{
int turns = 0;
ActorPtr target = SingleNeighbourSelector("Select a container to put into...")
.select()
.firstActor();
if ( target != nullptr && target->hasFeature<Inventory>())
{
OpenablePtr openable = target->getFeature<Openable>();
if ( openable && openable->isClosed() )
{
gui::msgBox("Cannot put into " + target->getName() + " - it is closed.", gui::MsgType::Warning);
}
else
{
auto afterPutIntoAction =
[&](const std::string& item, int amount)
{
target->notify(Event(EventId::Actor_Put,{{"putter","Player"},
{"container",target->getName()},
{"count", std::to_string(amount)},
{"item", tolowers(item)}}));
};
auto containerFullAction =
[&target](const std::string& item)
{
gui::msgBox("Cannot put "+item+" into "+tolowers(target->getName())+":#Not enough space!",
gui::MsgType::Error);
};
Engine::instance().getWindowManager()
.getWindow<gui::PickUpWindow>()
.setPicker(target)
.setSource( [](){ return Engine::instance().getPlayer()->getFeature<Inventory>()->items(); })
.setRemoveAction([&](ActorPtr a){Engine::instance().getPlayer()->getFeature<Inventory>()->remove(a);})
.setAfterPickupAction( afterPutIntoAction )
.setInventoryFullAction( containerFullAction )
.setWindowTitle("Select item to put")
.show();
}
++turns;
}
else if ( target )
{
gui::msgBox("You cannot put anything into "+tolowers(target->getName())+".",
gui::MsgType::Error);
}
return turns;
}
示例2: chooseItemOperationFromMenu
BagManager::ItemOperation BagManager::chooseItemOperationFromMenu(ActorPtr selected)
{
MenuWindow& menu = Engine::instance().windowManager().getWindow<MenuWindow>();
menu.setTitle( selected->getName() );
menu.setPosition( gui::AWidget::WINDOW_CENTER );
if ( selected->getFeature<Pickable>()->isEquippable() )
{
ALabelMenuItemPtr itemEquip( new ALabelMenuItem );
itemEquip->setValue("Equip");
itemEquip->setProperty<int>("operation", EQUIP);
menu.addMenuItem( itemEquip );
}
ALabelMenuItemPtr itemDrop( new ALabelMenuItem );
itemDrop->setValue("Drop");
itemDrop->setProperty<int>("operation", DROP);
menu.addMenuItem( itemDrop );
ALabelMenuItemPtr itemInfo( new ALabelMenuItem );
itemInfo->setValue("Inspect");
itemInfo->setProperty<int>("operation", INSPECT);
menu.addMenuItem( itemInfo );
menu.show();
AMenuItemPtr sItem = menu.getSelectedItem();
return sItem ? static_cast<ItemOperation>(sItem->getProperty<int>("operation"))
: INVALID;
}
示例3: execute
void CmdClose::execute()
{
Target target = SingleNeighbourSelector("Select object to close...")
.select();
auto openableIter = std::find_if(target.actors.begin(), target.actors.end(),
[](ActorPtr a)
{ return a->getFeature<Openable>(); });
ActorPtr toClose = openableIter != target.actors.end() ? *openableIter : nullptr;
if ( toClose != nullptr)
{
if ( target.actors.size() == 1 )
{
Actor::Player->performAction( std::make_shared<CloseAction>(toClose) );
}
else
{
gui::msgBox("Cannot close " + tolowers(toClose->getName())+":\n"
"It is blocked!",
gui::MsgType::Warning);
}
}
else
{
gui::msgBox("Nothing to close there.", gui::MsgType::Warning);
}
}
示例4: execute
void CmdPutInto::execute()
{
ActorPtr target = SingleNeighbourSelector("Select a container to put into...")
.select()
.firstActor();
if ( target != nullptr && target->hasFeature<Container>())
{
auto afterPutIntoAction =
[&](const std::string& item, int amount)
{
Messenger::message()->actorPutInto(Actor::Player->getName(), target->getName(), item, amount);
};
auto containerFullAction =
[&target](const std::string& item)
{
gui::msgBox("Cannot put "+item+" into "+tolowers(target->getName())+":\nNot enough space!",
gui::MsgType::Error);
};
Engine::instance().windowManager()
.getWindow<gui::PickUpWindow>()
.setPicker(target)
.setContainer(Actor::Player->getFeature<Container>())
.setAfterPickupAction( afterPutIntoAction )
.setInventoryFullAction( containerFullAction )
.setWindowTitle("Select item to put")
.show();
}
else if ( target )
{
gui::msgBox("You cannot put anything into "+tolowers(target->getName())+".",
gui::MsgType::Error);
}
}
示例5: debug
std::string Wearer::debug(const std::string &linebreak)
{
std::string d = " " + linebreak + "-----WEARER-----"+linebreak;
for(auto slot : _itemSlots)
{
ActorPtr eq = equipped(slot.first);
bool blocked = isBlocked(slot.first);
PickablePtr p = eq ? eq->getFeature<Pickable>() : nullptr;
d += ItemSlotType2Str(slot.first);
d += ": "
+ (eq ? eq->getName() : "<none>")
+ (p ? " [" + toStr(p->getAmount()) + "]" : "" )
+ ( blocked ? " [BLOCKED] " : "" ) + linebreak;
}
d.append("----------------"+linebreak);
return d;
}