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

Method init

source/game/items/StarActiveItem.cpp:58–94  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

56}
57
58void ActiveItem::init(ToolUserEntity* owner, ToolHand hand) {
59 ToolUserItem::init(owner, hand);
60 if (entityMode() == EntityMode::Master) {
61 m_script.setScripts(jsonToStringList(instanceValue("scripts")).transformed(bind(&AssetPath::relativeTo, directory(), _1)));
62 m_script.setUpdateDelta(instanceValue("scriptDelta", 1).toUInt());
63 m_twoHandedGrip.set(twoHanded());
64
65 if (auto previousStorage = instanceValue("scriptStorage"))
66 m_script.setScriptStorage(previousStorage.toObject());
67
68 m_script.addCallbacks("activeItem", makeActiveItemCallbacks());
69 m_script.addCallbacks("item", LuaBindings::makeItemCallbacks(this));
70 m_script.addCallbacks("config", LuaBindings::makeConfigCallbacks(bind(&Item::instanceValue, as<Item>(this), _1, _2)));
71 m_script.addCallbacks("animator", LuaBindings::makeNetworkedAnimatorCallbacks(&m_itemAnimator));
72 m_script.addCallbacks("status", LuaBindings::makeStatusControllerCallbacks(owner->statusController()));
73 m_script.addActorMovementCallbacks(owner->movementController());
74 if (auto player = as<Player>(owner))
75 m_script.addCallbacks("player", LuaBindings::makePlayerCallbacks(player));
76 m_script.addCallbacks("entity", LuaBindings::makeEntityCallbacks(as<Entity>(owner)));
77 m_script.init(world());
78 m_currentFireMode = FireMode::None;
79 }
80 if (world()->isClient()) {
81 if (auto animationScripts = instanceValue("animationScripts")) {
82 m_scriptedAnimator.setScripts(jsonToStringList(animationScripts).transformed(bind(&AssetPath::relativeTo, directory(), _1)));
83 m_scriptedAnimator.setUpdateDelta(instanceValue("animationDelta", 1).toUInt());
84
85 m_scriptedAnimator.addCallbacks("animationConfig", LuaBindings::makeScriptedAnimatorCallbacks(&m_itemAnimator,
86 [this](String const& name, Json const& defaultValue) -> Json {
87 return m_scriptedAnimationParameters.value(name, defaultValue);
88 }));
89 m_scriptedAnimator.addCallbacks("activeItemAnimation", makeScriptedAnimationCallbacks());
90 m_scriptedAnimator.addCallbacks("config", LuaBindings::makeConfigCallbacks(bind(&Item::instanceValue, as<Item>(this), _1, _2)));
91 m_scriptedAnimator.init(world());
92 }
93 }
94}
95
96void ActiveItem::uninit() {
97 if (entityMode() == EntityMode::Master) {

Callers

nothing calls this directly

Calls 15

initFunction · 0.85
jsonToStringListFunction · 0.85
setScriptsMethod · 0.80
setUpdateDeltaMethod · 0.80
toUIntMethod · 0.80
setScriptStorageMethod · 0.80
toObjectMethod · 0.80
isClientMethod · 0.80
transformedMethod · 0.45
setMethod · 0.45
addCallbacksMethod · 0.45

Tested by

no test coverage detected