ofs | hex dump | ascii |
---|
0000 | 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 04 00 00 00 02 00 01 00 00 00 00 34 b6 23 | .PNG........IHDR.............4.# |
0020 | 14 00 00 00 04 67 41 4d 41 00 00 b1 8f 0b fc 61 05 00 00 00 01 73 52 47 42 00 ae ce 1c e9 00 00 | .....gAMA......a.....sRGB....... |
0040 | 00 20 63 48 52 4d 00 00 7a 26 00 00 80 84 00 00 fa 00 00 00 80 e8 00 00 75 30 00 00 ea 60 00 00 | ..cHRM..z&..............u0...`.. |
0060 | 3a 98 00 00 17 70 9c ba 51 3c 00 00 00 09 70 48 59 73 00 00 00 48 00 00 00 48 00 46 c9 6b 3e 00 | :....p..Q<....pHYs...H...H.F.k>. |
0080 | 00 00 02 74 52 4e 53 00 00 76 93 cd 38 00 00 00 02 62 4b 47 44 00 01 dd 8a 13 a4 00 00 3a 44 49 | ...tRNS..v..8....bKGD........:DI |
00a0 | 44 41 54 18 19 ec c1 0d 7c 54 e5 81 e8 ff df f3 9c 93 33 27 70 92 1c 30 d5 41 02 39 20 d6 d8 5b | DAT.....|T........3'p..0.A.9...[ |
00c0 | 75 28 2c 06 45 72 02 a8 b4 6b db 78 b7 bb d7 b5 d5 1e c4 b5 ec 2d 6d 63 df 44 05 f2 e4 45 c0 16 | u(,.Er...k.x.........-mc.D...E.. |
00e0 | 6b 6c ed 2d b5 56 06 b1 2e bb ff b6 a6 5d b7 52 2b 70 02 5e a0 2e e2 88 6e 4d 2b 95 41 50 42 a5 | kl.-.V.......].R+p.^....nM+.APB. |
0100 | 30 81 81 4c 26 33 73 ee cc 24 e1 d5 97 6a 7b b7 f7 ff d9 7e bf fc 39 95 03 92 3f 07 83 48 55 c8 | 0..L&3s..$...j{....~..9...?..HU. |
0120 | 25 03 68 fc 59 04 b3 53 fb 1e b2 5e e8 03 0c 1f 05 13 5d de b5 da 72 20 0c 9e a6 c2 84 c3 9c 6a | %.h.Y..S...^......]...r........j |
0140 | 0d 45 0a c6 02 5a 82 a2 30 67 98 d2 79 de 9e 96 aa 89 f5 80 18 3b b5 27 fe 99 3d cf ed d9 a4 00 | .E...Z..0g..y........;.'..=..... |
0160 | 91 98 ae 85 e2 7d a9 c5 99 3a af 6b fe fb ad b2 96 b1 d5 ad 9d a9 85 41 d7 fc e1 d6 c5 c3 45 d3 | .....}...:.k...........A......E. |
0180 | 4f 0d 5b a8 30 78 06 e1 70 57 98 53 88 09 50 1f d7 5a 1e 62 ba 04 e2 21 aa f6 30 5d 3c 22 9a ad | O.[.0x..pW.S..
core.callback_origins = {}
local getinfo = debug.getinfo
debug.getinfo = nil
--- Runs given callbacks.
--
-- Note: this function is also called from C++
-- @tparam table callbacks a table with registered callbacks, like `core.registered_on_*`
-- @tparam number mode a RunCallbacksMode, as defined in src/script/common/c_internal.h
-- @param ... arguments for the callback
-- @return depends on mode
function core.run_callbacks(callbacks, mode, ...)
assert(type(callbacks) == "table")
local cb_len = #callbacks
if cb_len == 0 then
if mode == 2 or mode == 3 then
return true
elseif mode == 4 or mode == 5 then
return false
end
end
local ret
for i = 1, cb_len do
local cb_ret = callbacks[i](...)
if mode == 0 and i == 1 or mode == 1 and i == cb_len then
ret = cb_ret
elseif mode == 2 then
if not cb_ret or i == 1 then
ret = cb_ret
end
elseif mode == 3 then
if cb_ret then
return cb_ret
end
ret = cb_ret
elseif mode == 4 then
if (cb_ret and not ret) or i == 1 then
ret = cb_ret
end
elseif mode == 5 and cb_ret then
return cb_ret
end
end
return ret
end
--
-- Callback registration
--
local function make_registration()
local t = {}
local registerfunc = function(func)
t[#t + 1] = func
core.callback_origins[func] = {
mod = core.get_current_modname() or "??",
name = getinfo(1, "n").name or "??"
}
--local origin = core.callback_origins[func]
--print(origin.name .. ": " .. origin.mod .. " registering cbk " .. tostring(func))
end
return t, registerfunc
end
core.registered_globalsteps, core.register_globalstep = make_registration()
core.registered_on_mods_loaded, core.register_on_mods_loaded = make_registration()
core.registered_on_shutdown, core.register_on_shutdown = make_registration()
core.registered_on_receiving_chat_message, core.register_on_receiving_chat_message = make_registration()
core.registered_on_sending_chat_message, core.register_on_sending_chat_message = make_registration()
core.registered_on_chatcommand, core.register_on_chatcommand = make_registration()
core.registered_on_death, core.register_on_death = make_registration()
core.registered_on_hp_modification, core.register_on_hp_modification = make_registration()
core.registered_on_damage_taken, core.register_on_damage_taken = make_registration()
core.registered_on_formspec_input, core.register_on_formspec_input = make_registration()
core.registered_on_dignode, core.register_on_dignode = make_registration()
core.registered_on_punchnode, core.register_on_punchnode = make_registration()
core.registered_on_placenode, core.register_on_placenode = make_registration()
core.registered_on_item_use, core.register_on_item_use = make_registration()
core.registered_on_modchannel_message, core.register_on_modchannel_message = make_registration()
core.registered_on_modchannel_signal, core.register_on_modchannel_signal = make_registration()
core.registered_on_inventory_open, core.register_on_inventory_open = make_registration()
|