MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / makeNpcCallbacks

Method makeNpcCallbacks

source/game/StarNpc.cpp:635–774  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

633}
634
635LuaCallbacks Npc::makeNpcCallbacks() {
636 LuaCallbacks callbacks;
637
638 callbacks.registerCallback("toAbsolutePosition", [this](Vec2F const& p) { return getAbsolutePosition(p); });
639
640 callbacks.registerCallback("species", [this]() { return m_npcVariant.species; });
641
642 callbacks.registerCallback("gender", [this]() { return GenderNames.getRight(m_humanoid.identity().gender); });
643
644 callbacks.registerCallback("humanoidIdentity", [this]() { return m_humanoid.identity().toJson(); });
645
646 callbacks.registerCallback("npcType", [this]() { return npcType(); });
647
648 callbacks.registerCallback("seed", [this]() { return m_npcVariant.seed; });
649
650 callbacks.registerCallback("level", [this]() { return m_npcVariant.level; });
651
652 callbacks.registerCallback("dropPools", [this]() { return m_dropPools.get(); });
653
654 callbacks.registerCallback("setDropPools", [this](StringList const& dropPools) { m_dropPools.set(dropPools); });
655
656 callbacks.registerCallback("energy", [this]() { return m_statusController->resource("energy"); });
657
658 callbacks.registerCallback("maxEnergy", [this]() { return m_statusController->resourceMax("energy"); });
659
660 callbacks.registerCallback("say", [this](String line, Maybe<StringMap<String>> const& tags, Json const& config) {
661 if (tags)
662 line = line.replaceTags(*tags, false);
663
664 if (!line.empty()) {
665 addChatMessage(line, config);
666 return true;
667 }
668
669 return false;
670 });
671
672 callbacks.registerCallback("sayPortrait", [this](String line, String portrait, Maybe<StringMap<String>> const& tags, Json const& config) {
673 if (tags)
674 line = line.replaceTags(*tags, false);
675
676 if (!line.empty()) {
677 addChatMessage(line, config, portrait);
678 return true;
679 }
680
681 return false;
682 });
683
684 callbacks.registerCallback("emote", [this](String const& arg1) { addEmote(HumanoidEmoteNames.getLeft(arg1)); });
685
686 callbacks.registerCallback("dance", [this](Maybe<String> const& danceName) { setDance(danceName); });
687
688 callbacks.registerCallback("setInteractive", [this](bool interactive) { m_isInteractive.set(interactive); });
689
690 callbacks.registerCallback("setLounging", [this](EntityId loungeableEntityId, Maybe<size_t> maybeAnchorIndex) {
691 size_t anchorIndex = maybeAnchorIndex.value(0);
692 auto loungeableEntity = world()->get<LoungeableEntity>(loungeableEntityId);

Callers

nothing calls this directly

Calls 15

ItemDescriptorClass · 0.85
jsonFromVec2FFunction · 0.85
EntityDamageTeamClass · 0.85
identityMethod · 0.80
entitiesLoungingInMethod · 0.80
setAnchorStateMethod · 0.80
resetAnchorStateMethod · 0.80
entityAnchorMethod · 0.80
itemDescriptorMethod · 0.80
altHandItemDescriptorMethod · 0.80
registerCallbackMethod · 0.45

Tested by

no test coverage detected