mirror of
https://github.com/IntQuant/noita_entangled_worlds.git
synced 2025-10-19 07:03:16 +00:00
Provide API for other mods to load their owm modules.
This commit is contained in:
parent
0f55a96df4
commit
d5e7f54ef1
7 changed files with 47 additions and 10 deletions
|
@ -1,14 +1,14 @@
|
||||||
# List of available hooks:
|
# List of available hooks:
|
||||||
|
|
||||||
- `ctx.hook.on_world_initialized()`
|
- `ctx.hook.on_world_initialized()` - called on OnWorldInitialized.
|
||||||
- `ctx.hook.on_world_update()`
|
- `ctx.hook.on_world_update()` - called on OnWorldPreUpdate.
|
||||||
- `ctx.hook.on_world_update_client()`
|
- `ctx.hook.on_world_update_client()` - called on OnWorldPreUpdate, but only on clients.
|
||||||
- `ctx.hook.on_world_update_host()`
|
- `ctx.hook.on_world_update_host()` - called on OnWorldPreUpdate, but only on host.
|
||||||
- `ctx.hook.on_new_player_seen(new_playerdata, player_count)` - called the first time player with this peer_id has entered the world
|
- `ctx.hook.on_new_player_seen(new_playerdata, player_count)` - called the first time player with this peer_id has entered the world.
|
||||||
- `ctx.hook.on_local_player_spawn(my_player)`
|
- `ctx.hook.on_local_player_spawn(my_player)` - called when the *local* gets spawned. `my_player` is playerdata table for this player.
|
||||||
- `ctx.hook.on_client_spawned(peer_id, new_playerdata)`
|
- `ctx.hook.on_client_spawned(peer_id, new_playerdata)`
|
||||||
- `ctx.hook.on_should_send_updates()` - called either when we connect, or somebody else connects (and sends "welcome" message)
|
- `ctx.hook.on_should_send_updates()` - called either when we connect, or somebody else connects (and sends "welcome" message).
|
||||||
- `ctx.hook.on_draw_debug_window(imgui)`
|
- `ctx.hook.on_draw_debug_window(imgui)`
|
||||||
- `ctx.hook.on_local_player_polymorphed(currently_polymorphed)`
|
- `ctx.hook.on_local_player_polymorphed(currently_polymorphed)`
|
||||||
- `ctx.hook.on_client_polymorphed(peer_id, player_data)`
|
- `ctx.hook.on_client_polymorphed(peer_id, player_data)`
|
||||||
- `ctx.hook.on_late_init()`
|
- `ctx.hook.on_late_init()` - called on OnModPostInit.
|
||||||
|
|
4
ew_api_example/compatibility.xml
Executable file
4
ew_api_example/compatibility.xml
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
<Mod
|
||||||
|
version_built_with="12"
|
||||||
|
>
|
||||||
|
</Mod>
|
3
ew_api_example/init.lua
Normal file
3
ew_api_example/init.lua
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
if ModIsEnabled("quant.ew") then
|
||||||
|
ModLuaFileAppend("mods/quant.ew/files/api/extra_modules.lua", "mods/ew_api_example/module.lua")
|
||||||
|
end
|
9
ew_api_example/mod.xml
Executable file
9
ew_api_example/mod.xml
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
<Mod
|
||||||
|
name="EW API Example mod"
|
||||||
|
description=""
|
||||||
|
request_no_api_restrictions="0"
|
||||||
|
is_game_mode="0"
|
||||||
|
translation_xml_path=""
|
||||||
|
translation_csv_path=""
|
||||||
|
>
|
||||||
|
</Mod>
|
9
ew_api_example/module.lua
Normal file
9
ew_api_example/module.lua
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
local module = {}
|
||||||
|
|
||||||
|
function module.on_world_update()
|
||||||
|
if GameGetFrameNum() % 60 == 0 then
|
||||||
|
GamePrint("Hi from api example!")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return module
|
4
quant.ew/files/api/extra_modules.lua
Normal file
4
quant.ew/files/api/extra_modules.lua
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
-- All files that get LuaAppended here before OnModInit happens get run as modules.
|
||||||
|
-- Every module should return a table of functions (can be empty).
|
||||||
|
-- Functions starting with `on_` are called hooks. They will get called when relevant.
|
||||||
|
-- See docs/hooks.md for a list of all hooks.
|
|
@ -119,6 +119,13 @@ local function load_modules()
|
||||||
ctx.load_system("wand_charm")
|
ctx.load_system("wand_charm")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function load_extra_modules()
|
||||||
|
print("Starting to load extra stuff")
|
||||||
|
for _, file in ipairs(ModLuaFileGetAppends("mods/quant.ew/files/api/extra_modules.lua")) do
|
||||||
|
ctx.dofile_and_add_hooks(file)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local function is_suitable_target(entity)
|
local function is_suitable_target(entity)
|
||||||
return EntityGetIsAlive(entity) and not EntityHasTag(entity,"ew_notplayer")
|
return EntityGetIsAlive(entity) and not EntityHasTag(entity,"ew_notplayer")
|
||||||
end
|
end
|
||||||
|
@ -410,8 +417,9 @@ function OnModPreInit()
|
||||||
print("Entangled worlds init ok")
|
print("Entangled worlds init ok")
|
||||||
end
|
end
|
||||||
|
|
||||||
function OnModInit() end
|
function OnModInit()
|
||||||
|
load_extra_modules()
|
||||||
|
end
|
||||||
|
|
||||||
function OnModPostInit()
|
function OnModPostInit()
|
||||||
ctx.hook.on_late_init()
|
ctx.hook.on_late_init()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue