forked from mt-mods/xcompat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
init.lua
45 lines (37 loc) · 1.38 KB
/
init.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
local modpath = minetest.get_modpath("xcompat")
xcompat = {
modpath = modpath,
}
xcompat.gameid = dofile(modpath .. "/src/gameid.lua")
xcompat.utilities = dofile(modpath .. "/src/utilities.lua")
xcompat.sounds = dofile(modpath .. "/src/sounds.lua")
xcompat.materials = dofile(modpath .. "/src/materials.lua")
xcompat.textures = dofile(modpath .. "/src/textures.lua")
xcompat.functions = dofile(modpath .. "/src/functions.lua")
local function validate_sound(key)
if key and xcompat.sounds[key] then
return true
elseif key then
minetest.log("warning", "attempted to call invalid sound: "..key)
else
minetest.log("warning", "sound_def is missing a sound_api key")
end
return false
end
minetest.register_on_mods_loaded(function()
for name, def in pairs(minetest.registered_nodes) do
if def._sound_def and validate_sound(def._sound_def.key) then
minetest.override_item(name, {
sounds = xcompat.sounds[def._sound_def.key](def._sound_def.input)
})
end
end
local old_reg_node = minetest.register_node
function minetest.register_node(name, def)
if def._sound_def and validate_sound(def._sound_def.key) then
def.sounds = xcompat.sounds[def._sound_def.key](def._sound_def.input)
end
old_reg_node(name, def)
end
end)
dofile(modpath .. "/src/commands.lua")