diff options
Diffstat (limited to 'advtrains_signals_japan/init.lua')
-rw-r--r-- | advtrains_signals_japan/init.lua | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/advtrains_signals_japan/init.lua b/advtrains_signals_japan/init.lua index 1140b6b..914a139 100644 --- a/advtrains_signals_japan/init.lua +++ b/advtrains_signals_japan/init.lua @@ -15,6 +15,19 @@ local light_distant = light_purple local light_off = signal_face_texture do + local model_dir = core.get_modpath("advtrains_signals_japan") .. DIR_DELIM .. "models" + local function add_model(name, content) + local fn = "advtrains_signals_japan_" .. name + if core.features.dynamic_add_media_startup then + core.dynamic_add_media { + filename = fn, + filedata = content, + } + else + core.mkdir(model_dir) + core.safe_file_write(model_dir .. DIR_DELIM .. fn, content) + end + end local model_path_prefix = table.concat({minetest.get_modpath("advtrains_signals_japan"), "models", "advtrains_signals_japan_"}, DIR_DELIM) local function vertex(x, y, z) @@ -122,7 +135,7 @@ do pole_vertices = table.concat(pole_vertices, "\n") pole_objdef = table.concat(pole_objdef, "\n") pole_uv = table.concat(pole_uv, "\n") - minetest.safe_file_write(model_path_prefix .. "pole.obj", table.concat({pole_vertices, pole_uv, pole_objdef}, "\n")) + add_model("pole.obj", table.concat({pole_vertices, pole_uv, pole_objdef}, "\n")) -- generate signals for lightcount = 5, 6 do @@ -231,7 +244,7 @@ do face_vertices = table.concat(face_vertices, "\n") face_uv = table.concat(face_uv, "\n") face_objdef = table.concat(face_objdef, "\n") - minetest.safe_file_write(model_path_prefix .. lightcount .. "_" .. rotname .. ".obj", table.concat({ + add_model(lightcount .. "_" .. rotname .. ".obj", table.concat({ pole_vertices, face_vertices, table.concat(light_vertices, "\n"), @@ -247,7 +260,8 @@ do end end -local S = attrans +-- ask engine for translator instance, this will load the translation files +local S = core.get_translator("advtrains_signals_japan") minetest.register_node("advtrains_signals_japan:pole_0", { description = S("Japanese signal pole"), @@ -385,7 +399,7 @@ for _, rtab in ipairs { local lightcount = siginfo.lightcount for asp, texture in pairs(siginfo.textures) do minetest.register_node("advtrains_signals_japan:"..sigtype.."_"..asp.."_"..rot, { - description = attrans(string.format("Japanese%s signal (type %s)", siginfo.isdst and " repeating" or "", siginfo.desc)), + description = S(string.format("Japanese%s signal (type %s)", siginfo.isdst and " repeating" or "", siginfo.desc)), drawtype = "mesh", mesh = string.format("advtrains_signals_japan_%d_%s.obj", lightcount, rot), tiles = {pole_texture, signal_face_texture, texture}, |