From 1b11900cffb7560143e72dd717821e163078e509 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Thu, 26 Mar 2026 11:44:13 -0700 Subject: [PATCH 01/35] Refactor combineWithAnd function for l18n --- mods/sbz_progression/questbook.lua | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/mods/sbz_progression/questbook.lua b/mods/sbz_progression/questbook.lua index 3f6c8a82..de8cf150 100644 --- a/mods/sbz_progression/questbook.lua +++ b/mods/sbz_progression/questbook.lua @@ -5,18 +5,17 @@ local function getquestbyname(questname) end local function combineWithAnd(list) - local listLength = #list - - if listLength == 0 then + local n = #list + if n == 0 then return '' - elseif listLength == 1 then + elseif n == 1 then return list[1] - elseif listLength == 2 then - return list[1] .. ' and ' .. list[2] + elseif n == 2 then + return S('@1 and @2', list[1], list[2]) else - local combinedString = table.concat(list, ', ', 1, listLength - 1) - combinedString = combinedString .. ', and ' .. list[listLength] - return combinedString + -- Produces "A, B, and C". + -- Translators can reorder as needed via @1 and @2. + return S('@1, and @2', table.concat(list, ', ', 1, n - 1), list[n]) end end From fafc39b72c22b6e669e2a0e665c0456eff11eaeb Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Thu, 26 Mar 2026 12:16:58 -0700 Subject: [PATCH 02/35] Make qb functionality more l10n-friendly Per-player language support for quest markdown files is not yet implemented. --- mods/sbz_progression/annoy.lua | 24 ++++----- mods/sbz_progression/init.lua | 33 +++++++------ mods/sbz_progression/quest_parser.lua | 7 ++- mods/sbz_progression/questbook.lua | 70 +++++++++++++-------------- 4 files changed, 70 insertions(+), 64 deletions(-) diff --git a/mods/sbz_progression/annoy.lua b/mods/sbz_progression/annoy.lua index ad991bd9..0579537c 100644 --- a/mods/sbz_progression/annoy.lua +++ b/mods/sbz_progression/annoy.lua @@ -1,18 +1,20 @@ +local S = core.get_translator('sbz_progression') + local timer = 0 -minetest.register_globalstep(function(dtime) +core.register_globalstep(function(dtime) timer = timer + dtime if timer >= 1 then -- 1s timer = 0 - for _, player in ipairs(minetest.get_connected_players()) do + for _, player in ipairs(core.get_connected_players()) do local inv = player:get_inventory() if inv then if not inv:contains_item('main', 'sbz_progression:questbook') then - if player:get_meta():get_int 'questbookwarning' == 0 then + if player:get_meta():get_int 'questbook_warning' == 0 then sbz_api.displayDialogLine( player:get_player_name(), - 'Lost your questbook? Use /qb to get it back.' + S('Lost your questbook? Use /qb to get it back.') ) - player:get_meta():set_int('questbookwarning', 1) + player:get_meta():set_int('questbook_warning', 1) end end end @@ -20,21 +22,21 @@ minetest.register_globalstep(function(dtime) end end) -minetest.register_chatcommand('qb', { - description = "Gives you a questbook if you don't have one.", +core.register_chatcommand('qb', { + description = S("Gives you a questbook if you don't have one."), privs = {}, func = function(name, param) - local inv = minetest.get_player_by_name(name):get_inventory() + local inv = core.get_player_by_name(name):get_inventory() if not inv then return end if inv:contains_item('main', 'sbz_progression:questbook') then - sbz_api.displayDialogLine(name, 'You already have a Quest Book.') + sbz_api.displayDialogLine(name, S('You already have a Quest Book.')) else if inv:room_for_item('main', 'sbz_progression:questbook') then inv:add_item('main', 'sbz_progression:questbook') - sbz_api.displayDialogLine(name, 'You have been given a Quest Book.') + sbz_api.displayDialogLine(name, S('You have been given a Quest Book.')) else - sbz_api.displayDialogLine(name, 'Your inventory is full.') + sbz_api.displayDialogLine(name, S('Your inventory is full.')) end end end, diff --git a/mods/sbz_progression/init.lua b/mods/sbz_progression/init.lua index 6ea2a170..c8b265a7 100644 --- a/mods/sbz_progression/init.lua +++ b/mods/sbz_progression/init.lua @@ -1,5 +1,6 @@ -- sbz_progression = {} +local S = core.get_translator('sbz_progression') local modpath = core.get_modpath 'sbz_progression' dofile(modpath .. '/quest_parser.lua') @@ -15,15 +16,12 @@ dofile(modpath .. '/annoy.lua') function sbz_api.displayDialogLine(player_name, text) core.chat_send_player(player_name, '⌠ ' .. text .. ' ⌡') ---[[ -- Different sound effects are going to be used from a callback in sound_api.lua - core.sound_play('dialogue', { - to_player = player_name, - gain = 1, - }) - ]] end -- it will be funny if we all added quest items in the order of recency, not where they are placed on the questbook + +-- Achievement table keys are used as metadata storage keys — do NOT translate them. +-- Translation happens at the point of display in unlock_achievement below. local achievement_table = { ['sbz_resources:matter_blob'] = 'A bigger platform', ['sbz_resources:matter_stair'] = 'Matter Stairs', @@ -179,8 +177,9 @@ local achievement_table = { } core.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) - if achievement_table[itemstack:get_name()] then - unlock_achievement(player:get_player_name(), achievement_table[itemstack:get_name()]) + local achievement_name = achievement_table[itemstack:get_name()] + if achievement_name then + unlock_achievement(player:get_player_name(), achievement_name) end end) @@ -189,6 +188,7 @@ end) function sbz_api.activate_safetynet(player_name, pos) return true end + core.register_globalstep(function(dtime) for _, player in ipairs(core.get_connected_players()) do local pos = player:get_pos() @@ -196,7 +196,7 @@ core.register_globalstep(function(dtime) if pos.y < safetynet_low - 100 then unlock_achievement(player:get_player_name(), 'Emptiness') end if pos.y < safetynet_low - 300 then if sbz_api.activate_safetynet(player:get_player_name(), pos) then - sbz_api.displayDialogLine(player:get_player_name(), 'You fell off the platform.') + sbz_api.displayDialogLine(player:get_player_name(), S('You fell off the platform.')) player:set_pos { x = 0, y = 1, z = 0 } -- Singularity Rune drop @@ -204,12 +204,13 @@ core.register_globalstep(function(dtime) local rune = ItemStack("sbz_runes:singularity_rune") local inv = player:get_inventory() local rune_leftover = inv:add_item("main", rune) - + if not rune_leftover:is_empty() then core.add_item(pos, rune_leftover) end - core.chat_send_all("⌠ Crazy Rare Drop: " .. puncher:get_player_name() .. " just dropped a Singularity Rune! ⌡") + core.chat_send_all(S('⌠ Crazy Rare Drop: @1 just dropped a Singularity Rune! ⌡', + player:get_player_name())) end end end @@ -284,8 +285,9 @@ core.register_on_player_inventory_action(function(player, action, inv, inv_info) end local player_name = player:get_player_name() local itemname = itemstack:get_name() - if achievement_in_inventory_table[itemname] then - unlock_achievement(player_name, achievement_in_inventory_table[itemname]) + local achievement_name = achievement_in_inventory_table[itemname] + if achievement_name then + unlock_achievement(player_name, achievement_name) end end) @@ -293,8 +295,9 @@ core.register_on_dignode(function(pos, oldnode, digger) if digger ~= nil and digger:is_valid() then local player_name = digger:get_player_name() local itemname = oldnode.name - if achievement_on_dig_table[itemname] then - unlock_achievement(player_name, achievement_on_dig_table[itemname]) + local achievement_name = achievement_on_dig_table[itemname] + if achievement_name then + unlock_achievement(player_name, achievement_name) end end end) diff --git a/mods/sbz_progression/quest_parser.lua b/mods/sbz_progression/quest_parser.lua index fda9dc57..17adcc26 100644 --- a/mods/sbz_progression/quest_parser.lua +++ b/mods/sbz_progression/quest_parser.lua @@ -23,6 +23,9 @@ Hello! Yes this is an info ]] +--local S = core.get_translator('sbz_progression') +-- This file processes internal data and contains no player-facing strings. + local markdown_parser = {} local questline_fmt = '\n# %s\n' @@ -35,7 +38,7 @@ local requires_fmt = 'Requires: %s' local requires_sep = ', ' local requires_sep_trim = requires_sep:trim() -local function ltrim(text) -- trim each line seperately +local function ltrim(text) -- trim each line separately return table.concat( table.foreach(text:split('\n', true), function(v) return v:trim() @@ -151,7 +154,7 @@ local function decode_text_and_meta(lines, line_index, quest) got_text, '[parser]: Quest: ' .. quest.title - .. ": I know, i'm strict, but you need to have the ### Text AFTER the ### Meta" + .. ": I know, I'm strict, but you need to have the ### Text AFTER the ### Meta" ) while true do line_index = line_index + 1 diff --git a/mods/sbz_progression/questbook.lua b/mods/sbz_progression/questbook.lua index de8cf150..95d71b38 100644 --- a/mods/sbz_progression/questbook.lua +++ b/mods/sbz_progression/questbook.lua @@ -1,6 +1,8 @@ -local function getquestbyname(questname) +local S = core.get_translator('sbz_progression') + +local function get_quest_by_name(quest_name) for i, quest in ipairs(quests) do - if quest.title == questname then return quest end + if quest.title == quest_name then return quest end end end @@ -20,16 +22,16 @@ local function combineWithAnd(list) end function unlock_achievement(player_name, achievement_id) - local player = minetest.get_player_by_name(player_name) + local player = core.get_player_by_name(player_name) if not player then return end local meta = player:get_meta() if not is_achievement_unlocked(player_name, achievement_id) then meta:set_string(achievement_id, 'true') - minetest.chat_send_player(player_name, 'Quest Completed: ' .. achievement_id .. '!') + core.chat_send_player(player_name, S('Quest Completed: @1!', S(achievement_id))) local pos = player:get_pos() - minetest.add_particlespawner { + core.add_particlespawner { amount = 50, time = 1, minpos = { x = pos.x - 0.5, y = pos.y - 0.5, z = pos.z - 0.5 }, @@ -51,18 +53,18 @@ function unlock_achievement(player_name, achievement_id) end function revoke_achievement(player_name, achievement_id) - local player = minetest.get_player_by_name(player_name) + local player = core.get_player_by_name(player_name) if not player then return end local meta = player:get_meta() if is_achievement_unlocked(player_name, achievement_id) then meta:set_string(achievement_id, '') - minetest.chat_send_player(player_name, 'Quest revoked: ' .. achievement_id) + core.chat_send_player(player_name, S('Quest revoked: @1', achievement_id)) end end function is_achievement_unlocked(player_name, achievement_id) - local player = minetest.get_player_by_name(player_name) + local player = core.get_player_by_name(player_name) if not player then return false end local meta = player:get_meta() @@ -74,11 +76,11 @@ function is_achievement_unlocked(player_name, achievement_id) end function is_quest_available(player_name, quest_id) - local quest = getquestbyname(quest_id) + local quest = get_quest_by_name(quest_id) if quest.requires == nil then return true end - for i, questname in ipairs(quest.requires) do - if is_achievement_unlocked(player_name, questname) == false then return false end + for i, quest_name in ipairs(quest.requires) do + if is_achievement_unlocked(player_name, quest_name) == false then return false end end return true end @@ -188,8 +190,8 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ button[5.25,0.35;0.3,0.3;font_add;+] button[5.55,0.35;0.3,0.3;font_sub;-] - tooltip[font_add;Makes font larger] - tooltip[font_sub;Makes font smaller] + tooltip[font_add;%s] + tooltip[font_sub;%s] ]]):format( sbz_api.ui.hypertext( 0.3, @@ -197,19 +199,15 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ 5.6, 0.5, '', - 'Quest List (✓ ' - .. completed_count - .. ' / ► ' - .. available_count - .. ' / ✕ ' - .. (quest_count - completed_count) - .. ')' + S('Quest List (✓ @1 / ► @2 / ✕ @3)', completed_count, available_count, quest_count - completed_count) ), sbz_api.ui.box_shadow(0.2, 0.7, 5.6, 11.3, 2), table_style, quest_list, selected_quest_index, - sbz_api.ui.field(0.2, 12, 5.25, 0.5, 'search', '', search_text) + sbz_api.ui.field(0.2, 12, 5.25, 0.5, 'search', '', search_text), + core.formspec_escape(S('Makes font larger')), + core.formspec_escape(S('Makes font smaller')) ) formspec = formspec .. sbz_api.ui.box(5.85, 0.2, 11.2, 11.8) @@ -243,16 +241,16 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ then formspec = formspec .. hypertext:format( - minetest.formspec_escape('' .. selected_quest.title .. ''), + core.formspec_escape('' .. selected_quest.title .. ''), ( is_quest_available(player_name, selected_quest.title) - and minetest.formspec_escape(selected_quest.text) - or 'Complete ' .. combineWithAnd(selected_quest.requires) .. ' to unlock.' + and core.formspec_escape(selected_quest.text) + or core.formspec_escape(S('Complete @1 to unlock.', combineWithAnd(selected_quest.requires))) ), ( is_achievement_unlocked(player_name, selected_quest.title) - and (selected_quest.type == 'secret' and "✔ Shhh... don't tell anyone :)" or '✔ You have completed this Quest.') - or 'You have not completed this Quest.' + and (selected_quest.type == 'secret' and core.formspec_escape(S("✔ Shhh... don't tell anyone :)")) or core.formspec_escape(S('✔ You have completed this Quest.'))) + or core.formspec_escape(S('You have not completed this Quest.')) ) ) elseif @@ -264,8 +262,8 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ '', ( is_achievement_unlocked(player_name, selected_quest.title) - and "✔ Shhh... don't tell anyone" - or 'You have not completed this Quest.' + and core.formspec_escape(S("✔ Shhh... don't tell anyone")) + or core.formspec_escape(S('You have not completed this Quest.')) ) ) elseif selected_quest.type == 'text' then @@ -274,8 +272,8 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ ('', ( is_quest_available(player_name, selected_quest.title) - and minetest.formspec_escape(selected_quest.text) - or 'Complete ' .. combineWithAnd(selected_quest.requires) .. ' to unlock.' + and core.formspec_escape(selected_quest.text) + or core.formspec_escape(S('Complete @1 to unlock.', combineWithAnd(selected_quest.requires))) ), '' ) @@ -295,7 +293,7 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ end -- play page sound lol - minetest.sound_play('questbook', { + core.sound_play('questbook', { to_player = player_name, gain = 1, }) @@ -305,7 +303,7 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ end -- Handle form submissions -minetest.register_on_player_receive_fields(function(player, formname, fields) +core.register_on_player_receive_fields(function(player, formname, fields) if formname == 'questbook:main' then local name = player:get_player_name() local meta = player:get_meta() @@ -329,7 +327,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end if fields.quest_list or fields.search or force_query or (fields.font_add or fields.font_sub) then - local event = minetest.explode_table_event(fields.quest_list) + local event = core.explode_table_event(fields.quest_list) local selected_quest_index if event.row and event.row ~= 0 or (fields.search and fields.search ~= '') then @@ -374,8 +372,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end end) -minetest.register_craftitem('sbz_progression:questbook', { - description = 'Quest Book', +core.register_craftitem('sbz_progression:questbook', { + description = S('Quest Book'), inventory_image = 'questbook.png', stack_max = 1, on_use = function(itemstack, player, pointed_thing) @@ -384,7 +382,7 @@ minetest.register_craftitem('sbz_progression:questbook', { if meta then selected_quest_index = meta:get_int 'selected_quest_index' end if selected_quest_index == 0 then selected_quest_index = 1 end - minetest.show_formspec( + core.show_formspec( player:get_player_name(), 'questbook:main', get_questbook_formspec(selected_quest_index, player:get_player_name(), quests) From b7c5697468f6fa25b2b5ebaa8e8cb33c7a730072 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Thu, 26 Mar 2026 13:06:00 -0700 Subject: [PATCH 03/35] Add localization support to sbz_base's init.lua's strings --- mods/sbz_base/init.lua | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/mods/sbz_base/init.lua b/mods/sbz_base/init.lua index da554ee9..3c5c6507 100644 --- a/mods/sbz_base/init.lua +++ b/mods/sbz_base/init.lua @@ -1,3 +1,5 @@ +local S = core.get_translator('sbz_base') + ---@diagnostic disable-next-line: lowercase-global sbz_api = { version = 45, @@ -46,8 +48,8 @@ Server Optimizations: %s ]]):format('\x1b', sbz_api.version, sbz_api.is_version_dev and 'true' or 'false', sbz_api.server_optimizations, '\x1b')) sbz_api.get_version_string = function() - local gamename = 'Skyblock: Zero ' - local version_string = 'Release ' .. sbz_api.version + local gamename = S('Skyblock: Zero') .. ' ' + local version_string = S('Release') .. ' ' .. sbz_api.version if sbz_api.is_version_dev then version_string = version_string .. '-dev' end if sbz_api.debug then version_string = version_string .. ' debug ' end @@ -57,7 +59,7 @@ sbz_api.get_version_string = function() end sbz_api.get_simple_version_string = function() - return 'Skyblock: Zero (Release ' .. sbz_api.version .. (sbz_api.is_version_dev and '-dev' or '') .. ')' + return S('Skyblock: Zero (Release') .. ' ' .. sbz_api.version .. (sbz_api.is_version_dev and '-dev' or '') .. ')' end -- /community is added here, because it's what a fork is likely to change @@ -163,12 +165,12 @@ core.register_on_newplayer(function(player) local name = player:get_player_name() if inv then if inv:contains_item('main', 'sbz_progression:questbook') then - sbz_api.displayDialogLine(name, 'You already had a questbook before joining.') + sbz_api.displayDialogLine(name, S('You already had a questbook before joining.')) else if inv:room_for_item('main', 'sbz_progression:questbook') then inv:add_item('main', 'sbz_progression:questbook') else - sbz_api.displayDialogLine(name, "Your inventory is full. Can't give you a questbook. Use /qb") + sbz_api.displayDialogLine(name, S("Your inventory is full. Can't give you a questbook. Use /qb")) end end end @@ -184,12 +186,11 @@ core.register_on_joinplayer(function(ref, last_login) end) core.register_chatcommand('core', { - description = 'Go back to the core.', + description = S('Go back to the core.'), privs = {}, func = function(name, param) core.get_player_by_name(name):set_pos { x = 0, y = 1, z = 0 } - sbz_api.displayDialogLine(name, 'Sent you back to the Core.') -- i think me renaming "Beamed" to "Sent" is going to make zander mad but i geniuenly have no idea what "Beamed" means so i think most people have no idea too - -- me, frog, renaming it will also most likely make people investigate its meaning, so we will see :) + sbz_api.displayDialogLine(name, S("Sent you back to the Core.")) -- "Sent" used in place of "Beamed" because not enough people watch Star Trek end, }) @@ -245,12 +246,12 @@ end sbz_api.bgm_handles = handles core.register_chatcommand('bgm_volume', { - description = 'Adjusts volume of background music', + description = S("Adjusts volume of background music"), params = '[volume, 0 to 200%]', func = function(name, param) local volume = tonumber(param) if volume == nil or volume < 0 or volume > 200 then - return false, 'Needs to be a number between 0 and 200, 100 is the default volume.' + return false, S("Needs to be a number between 0 and 200, 100 is the default volume.") end local player = core.get_player_by_name(name or '') if not player then return end @@ -259,7 +260,7 @@ core.register_chatcommand('bgm_volume', { meta:set_int('has_set_volume', 1) local handle = sbz_api.bgm_handles[player:get_player_name()] if handle then core.sound_fade(handle, 4, (volume / 100) + 0.001) end -- HACK: +0.001 so it doesn't delete the sound xDD - return true, 'Set the background volume to ' .. volume + return true, S('Set the background volume to @1.', volume) end, }) @@ -269,8 +270,8 @@ core.register_on_joinplayer(function(player) if sbz_api.welcome_messages then core.chat_send_player(player_name, sbz_api.get_simple_version_string()) - core.chat_send_player(player_name, '‼ reminder: If you fall off, use /core to teleport back to the core.') - core.chat_send_player(player_name, '‼ reminder: If lose your Quest Book, use /qb to get it back.') + core.chat_send_player(player_name, S("‼ reminder: If you fall off, use /core to teleport back to the core.")) + core.chat_send_player(player_name, S("‼ reminder: If lose your Quest Book, use /qb to get it back.")) core.chat_send_player( player_name, '!! If you have any suggestions/bug reports to Skyblock Zero, see /community' @@ -357,7 +358,7 @@ core.register_on_respawnplayer(function(ref) end) core.register_chatcommand('killme', { - description = 'Kills you.', + description = S("Kills you."), privs = { ['interact'] = true }, func = function(name) local player = core.get_player_by_name(name) @@ -370,7 +371,7 @@ core.register_chatcommand('killme', { core.register_on_chat_message(function(name, message) local players = core.get_connected_players() if #players == 1 then - sbz_api.displayDialogLine(name, 'You talk. But there is no one to listen.') + sbz_api.displayDialogLine(name, S("You talk. But there is no one to listen.")) unlock_achievement(name, 'Desolate') end return false @@ -777,4 +778,4 @@ core.error_handler = function(error, stack_level) .. ('\n==============\n%s\n=============='):format(sbz_api.get_version_string()) end -core.log('action', "Skyblock: Zero's Base Mod has finished loading.") +core.log('action', S("Skyblock: Zero's Base Mod has finished loading.")) From fe7894a9ad6fd47ed0a2ffb98e76789966810b30 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Thu, 26 Mar 2026 14:42:41 -0700 Subject: [PATCH 04/35] Add localization support for item name/description text --- mods/areas/pvp.lua | 4 +- mods/areasprotector/init.lua | 6 ++- mods/drawers/api.lua | 2 +- mods/jumpdrive/backbone.lua | 4 +- mods/jumpdrive/bookmark.lua | 6 ++- mods/jumpdrive/engine.lua | 4 +- mods/jumpdrive/fleet/fleet_controller.lua | 4 +- mods/jumpdrive/station.lua | 4 +- mods/jumpdrive/warp_device.lua | 4 +- mods/metatool/copytool/init.lua | 3 +- .../metatool/copytool/nodes/teleport_tube.lua | 2 +- mods/player_monoids/test.lua | 5 +- mods/replacer/blabla.lua | 8 ++-- mods/replacer/replacer/replacer.lua | 2 +- mods/sbz_area_containers/init.lua | 8 ++-- mods/sbz_armor/armor_types.lua | 6 ++- mods/sbz_base/legacy.lua | 4 +- mods/sbz_base/playtime_and_afk.lua | 8 ++-- mods/sbz_base/space_movement.lua | 6 ++- mods/sbz_bio/colorium_emitter.lua | 4 +- mods/sbz_bio/fertilizer.lua | 4 +- mods/sbz_bio/fire.lua | 6 ++- mods/sbz_bio/habitat.lua | 8 ++-- mods/sbz_bio/misc.lua | 8 ++-- mods/sbz_bio/moss.lua | 6 ++- mods/sbz_bio/paper.lua | 6 ++- mods/sbz_bio/plants.lua | 28 +++++------ mods/sbz_bio/potions.lua | 4 +- mods/sbz_bio/soil.lua | 12 ++--- mods/sbz_bio/trees.lua | 16 +++---- mods/sbz_bio/uses.lua | 4 +- mods/sbz_chem/alloy_furnace.lua | 6 ++- mods/sbz_chem/centrifuge.lua | 6 ++- mods/sbz_chem/compressor.lua | 6 ++- mods/sbz_chem/crusher.lua | 8 ++-- mods/sbz_chem/crystal_grower.lua | 6 ++- mods/sbz_chem/decay_accel.lua | 4 +- mods/sbz_chem/decay_chains.lua | 4 +- mods/sbz_chem/engraver.lua | 6 ++- mods/sbz_chem/fluids.lua | 6 ++- mods/sbz_chem/hpef.lua | 4 +- mods/sbz_chem/melter_cooler.lua | 10 ++-- mods/sbz_chem/pebble_enhancer.lua | 6 ++- mods/sbz_chem/radiation.lua | 6 +-- mods/sbz_chem/reactor.lua | 12 +++-- mods/sbz_decor/cnc.lua | 4 +- mods/sbz_decor/init.lua | 20 ++++---- mods/sbz_decor/signs.lua | 6 ++- mods/sbz_devtools/init.lua | 28 +++++------ mods/sbz_instatube/init.lua | 20 ++++---- mods/sbz_instatube/recipes.lua | 4 +- mods/sbz_logic/code_disks.lua | 13 +++--- mods/sbz_logic/init.lua | 10 ++-- mods/sbz_logic/knowledge.lua | 4 +- mods/sbz_logic/link_tool.lua | 14 +++--- mods/sbz_logic/upgrades.lua | 6 ++- mods/sbz_logic_devices/builder.lua | 10 ++-- mods/sbz_logic_devices/button.lua | 6 ++- mods/sbz_logic_devices/formspec_screen.lua | 4 +- mods/sbz_logic_devices/gpu.lua | 4 +- mods/sbz_logic_devices/hologram_projector.lua | 4 +- mods/sbz_logic_devices/memory_controller.lua | 10 ++-- .../sbz_logic_devices/meteorite_attractor.lua | 4 +- mods/sbz_logic_devices/mscreen.lua | 9 ++-- mods/sbz_logic_devices/nic.lua | 6 ++- mods/sbz_logic_devices/nodeDB.lua | 4 +- mods/sbz_logic_devices/noteblock.lua | 5 +- mods/sbz_logic_devices/object_detector.lua | 4 +- mods/sbz_meteorites/attractor.lua | 6 ++- mods/sbz_meteorites/init.lua | 4 +- mods/sbz_meteorites/meteorite_maker.lua | 4 +- mods/sbz_meteorites/nodes.lua | 14 +++--- mods/sbz_meteorites/visualiser.lua | 4 +- mods/sbz_multiblocks/blast_furnace.lua | 16 ++++--- mods/sbz_multiblocks/init.lua | 4 +- mods/sbz_multiblocks/large_liquid_storage.lua | 8 ++-- mods/sbz_pipeworks/basic_blocks.lua | 6 ++- mods/sbz_pipeworks/basic_tubes.lua | 18 ++++---- mods/sbz_pipeworks/filter_injector.lua | 4 +- mods/sbz_pipeworks/luaentity.lua | 4 +- mods/sbz_pipeworks/pattern_storinator.lua | 4 +- mods/sbz_planets/orbs.lua | 10 ++-- mods/sbz_planets/planet_nodes.lua | 36 ++++++++------- mods/sbz_planets/planet_teleporter.lua | 4 +- mods/sbz_power/batteries.lua | 15 +++--- mods/sbz_power/connectors.lua | 6 ++- mods/sbz_power/ele_fab.lua | 6 ++- mods/sbz_power/emittrium_reactor.lua | 16 ++++--- mods/sbz_power/extractor.lua | 6 ++- mods/sbz_power/fluid_transport.lua | 14 +++--- mods/sbz_power/generator.lua | 20 ++++---- mods/sbz_power/infinite_storinator.lua | 4 +- mods/sbz_power/lights.lua | 8 ++-- mods/sbz_power/manual_crafter.lua | 4 +- mods/sbz_power/misc.lua | 8 ++-- mods/sbz_power/phlogiston_fuser.lua | 4 +- mods/sbz_power/power_pipes.lua | 6 ++- mods/sbz_power/sensors/delayer.lua | 4 +- mods/sbz_power/sensors/gates.lua | 20 ++++---- mods/sbz_power/sensors/item_sensor.lua | 4 +- mods/sbz_power/sensors/node_sensors.lua | 6 ++- mods/sbz_power/sensors/sensor_linker.lua | 12 +++-- .../sensors/sensors_player_facing.lua | 8 ++-- mods/sbz_power/starlight_catcher.lua | 6 ++- mods/sbz_power/switching_station.lua | 8 ++-- mods/sbz_power/testnodes.lua | 4 +- mods/sbz_power/turret.lua | 8 ++-- mods/sbz_resources/basic_resources.lua | 12 +++-- mods/sbz_resources/bomb.lua | 6 ++- mods/sbz_resources/crystals.lua | 12 +++-- mods/sbz_resources/emitters.lua | 10 ++-- mods/sbz_resources/fireworks.lua | 4 +- mods/sbz_resources/items.lua | 20 ++++---- mods/sbz_resources/jetpack.lua | 4 +- mods/sbz_resources/laser.lua | 4 +- mods/sbz_resources/logic_craftitems.lua | 8 ++-- mods/sbz_resources/nodes.lua | 46 ++++++++++--------- mods/sbz_resources/parkour.lua | 4 +- .../sbz_resources/processors_and_circuits.lua | 30 ++++++------ mods/sbz_resources/storinators.lua | 16 ++++--- mods/sbz_resources/strange_matter.lua | 14 +++--- mods/sbz_resources/tools.lua | 16 ++++--- mods/sbz_resources/water.lua | 6 ++- mods/sbz_resources/wormhole.lua | 10 ++-- mods/sbz_runes/init.lua | 12 +++-- mods/sbz_ui/default_themes.lua | 16 ++++--- mods/sbz_ui/theming.lua | 4 +- mods/smartshop/privs.lua | 4 +- mods/stairs/init.lua | 2 +- mods/travelnet/chat.lua | 3 +- mods/unified_inventory/api.lua | 9 ++-- mods/unifieddyes/airbrush.lua | 4 +- mods/unifieddyes/nodes.lua | 16 ++++--- 133 files changed, 679 insertions(+), 441 deletions(-) diff --git a/mods/areas/pvp.lua b/mods/areas/pvp.lua index c2bfcd2e..8d547373 100644 --- a/mods/areas/pvp.lua +++ b/mods/areas/pvp.lua @@ -27,8 +27,10 @@ License along with this software; if not, see . Hello, this was copied from https://github.com/BlockySurvival/areas/commit/085d10041da9e81d4c3fe309ccf7cdb05fa2b1f3 also https://github.com/BlockySurvival/areas/commit/dacfe5fbad7ae3d2f32a897fde8e4107326c9f5c too ]] +local S = core.get_translator(core.get_current_modname()) + minetest.register_chatcommand("toggle_area_pvp", { - description = "Toggle PvP in an area", + description = S("Toggle PvP in an area"), params = "", func = function(name, param) local id = tonumber(param) diff --git a/mods/areasprotector/init.lua b/mods/areasprotector/init.lua index 7a6b7081..d086ed6e 100644 --- a/mods/areasprotector/init.lua +++ b/mods/areasprotector/init.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local creative_mode = core.settings:get_bool("creative_mode") local function cyan(str) @@ -279,7 +281,7 @@ local area_protector_sounds = { } core.register_node("areasprotector:protector_large", { - description = "Large Protector Block", + description = S("Large Protector Block"), on_receive_fields = function(pos, formname, fields, sender) return on_receive_fields(pos, formname, fields, sender, horizontal_reach_large, vertical_reach_large) end, @@ -304,7 +306,7 @@ core.register_node("areasprotector:protector_large", { core.register_node("areasprotector:protector_small", { - description = "Small Protector Block", + description = S("Small Protector Block"), on_receive_fields = function(pos, formname, fields, sender) return on_receive_fields(pos, formname, fields, sender, horizontal_reach_small, vertical_reach_small) end, diff --git a/mods/drawers/api.lua b/mods/drawers/api.lua index daa20d51..6cb14fa9 100755 --- a/mods/drawers/api.lua +++ b/mods/drawers/api.lua @@ -539,7 +539,7 @@ function drawers.register_drawer_upgrade(name, def) end core.register_chatcommand("drawers_fix", { - description = "Refreshes nearby drawer contents' visual indicators.\n" .. + description = S("Refreshes nearby drawer contents' visual indicators.\n") .. "Should not be necessary except to update in bulk on an old save.\n" .. "Issues: github.com/ChefZander/skyblock_zero/issues\n" .. "Discussion: discord.gg/kHPbzrfcJ4", diff --git a/mods/jumpdrive/backbone.lua b/mods/jumpdrive/backbone.lua index 29d0a1e3..9d38c41d 100644 --- a/mods/jumpdrive/backbone.lua +++ b/mods/jumpdrive/backbone.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_node("jumpdrive:backbone", { - description = "Jumpdrive Backbone", + description = S("Jumpdrive Backbone"), tiles = { "jumpdrive_backbone.png" }, groups = { cracky = 3, oddly_breakable_by_hand = 3, handy = 1, pickaxey = 1, matter = 1, level = 2 }, diff --git a/mods/jumpdrive/bookmark.lua b/mods/jumpdrive/bookmark.lua index 983ca8ad..b54dd6eb 100644 --- a/mods/jumpdrive/bookmark.lua +++ b/mods/jumpdrive/bookmark.lua @@ -1,4 +1,6 @@ -local book_item, book_written = "" +local S = core.get_translator(core.get_current_modname()) + +local book_item, book_written = "", "" if minetest.get_modpath("default") then book_item = "default:book" @@ -23,7 +25,7 @@ jumpdrive.write_to_book = function(pos, sender) data.owner = sender:get_player_name() data.title = "Jumpdrive coordinates" - data.description = "Jumpdrive coordinates" + data.description = S("Jumpdrive coordinates") data.text = minetest.serialize(jumpdrive.get_meta_pos(pos)) data.page = 1 data.page_max = 1 diff --git a/mods/jumpdrive/engine.lua b/mods/jumpdrive/engine.lua index 07d90172..bffe3dba 100644 --- a/mods/jumpdrive/engine.lua +++ b/mods/jumpdrive/engine.lua @@ -1,7 +1,9 @@ +local S = core.get_translator(core.get_current_modname()) + local has_vizlib = core.get_modpath("vizlib") core.register_node("jumpdrive:engine", { - description = "Jumpdrive", + description = S("Jumpdrive"), tiles = { "jumpdrive.png" }, diff --git a/mods/jumpdrive/fleet/fleet_controller.lua b/mods/jumpdrive/fleet/fleet_controller.lua index de043276..d9b64b6f 100644 --- a/mods/jumpdrive/fleet/fleet_controller.lua +++ b/mods/jumpdrive/fleet/fleet_controller.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_node("jumpdrive:fleet_controller", { - description = "Jumpdrive Fleet Controller", + description = S("Jumpdrive Fleet Controller"), tiles = { "jumpdrive_fleet_controller.png" }, groups = { oddly_breakable_by_hand = 3, matter = 1 }, diff --git a/mods/jumpdrive/station.lua b/mods/jumpdrive/station.lua index 43a4f03c..b15f344e 100644 --- a/mods/jumpdrive/station.lua +++ b/mods/jumpdrive/station.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_node("jumpdrive:station", { - description = "Jumpdrive Station", + description = S("Jumpdrive Station"), tiles = { "jumpdrive_station.png", }, diff --git a/mods/jumpdrive/warp_device.lua b/mods/jumpdrive/warp_device.lua index a34e8448..7baf6735 100644 --- a/mods/jumpdrive/warp_device.lua +++ b/mods/jumpdrive/warp_device.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_node("jumpdrive:warp_device", { - description = "Warp Device", + description = S("Warp Device"), tiles = { "jumpdrive_warpdevice.png" }, groups = { cracky = 5, oddly_breakable_by_hand = 1, handy = 1, pickaxey = 1 }, diff --git a/mods/metatool/copytool/init.lua b/mods/metatool/copytool/init.lua index 5e4e37de..b5580ec3 100644 --- a/mods/metatool/copytool/init.lua +++ b/mods/metatool/copytool/init.lua @@ -1,6 +1,7 @@ -- -- tubetool:wand is in game tool that allows cloning pipeworks node data -- +local S = core.get_translator('copytool') local modpath = core.get_modpath('copytool') @@ -10,7 +11,7 @@ local recipe = { } local tool = metatool:register_tool('copytool', { - description = 'Copy Tool', + description = S("Copy Tool"), name = 'CopyTool', texture = 'copytool_wand.png', recipe = recipe, diff --git a/mods/metatool/copytool/nodes/teleport_tube.lua b/mods/metatool/copytool/nodes/teleport_tube.lua index 20bf384b..7e49bed1 100644 --- a/mods/metatool/copytool/nodes/teleport_tube.lua +++ b/mods/metatool/copytool/nodes/teleport_tube.lua @@ -103,7 +103,7 @@ function definition:copy(node, pos, player) local receive = meta:get_int("can_receive") local description if channel == "" then - description = "Teleport tube configuration cleaner" + description = S("Teleport tube configuration cleaner") else description = meta:get_string("infotext") end diff --git a/mods/player_monoids/test.lua b/mods/player_monoids/test.lua index 6cc8d3d9..27cf8ada 100644 --- a/mods/player_monoids/test.lua +++ b/mods/player_monoids/test.lua @@ -1,8 +1,9 @@ +local S = core.get_translator(core.get_current_modname()) local speed = player_monoids.speed minetest.register_privilege("monoid_master", { - description = "Allows testing of player monoids.", + description = S("Allows testing of player monoids."), give_to_singleplayer = false, give_to_admin = true, }) @@ -22,7 +23,7 @@ local function test(player) end minetest.register_chatcommand("test_monoids", { - description = "Runs a test on monoids", + description = S("Runs a test on monoids"), privs = { monoid_master = true }, func = function(p_name) test(minetest.get_player_by_name(p_name)) diff --git a/mods/replacer/blabla.lua b/mods/replacer/blabla.lua index f3e58ec5..3e0cd7b0 100644 --- a/mods/replacer/blabla.lua +++ b/mods/replacer/blabla.lua @@ -56,11 +56,11 @@ rb.log_deny_list_insert = 'Added "%s" to deny list.' rb.timed_out = S('Time-limit reached.') rb.tool_short_description = '(%s %s%s) %s' rb.tool_long_description = '%s\n%s\n%s' -rb.ccm_params = '(chat|audio) (0|1)' +rb.ccm_params = S("(chat|audio) (0|1)") rb.ccm_description = S('Toggles verbosity.\nchat: When on, ' .. 'messages are posted to chat.\naudio: When off, replacer is silent.') -rb.ccm_player_not_found = 'Player not found' -rb.ccm_player_meta_error = 'Player meta not existant' +rb.ccm_player_not_found = S("Player not found") +rb.ccm_player_meta_error = S("Player meta not existent") rb.log_reg_exception_override = 'register_exception: ' .. 'exception for "%s" already exists.' rb.log_reg_exception = 'registered exception for "%s" to "%s"' @@ -111,7 +111,7 @@ rbi.mobs_loyal = S('Is loyal to owner.') rbi.mobs_attacks = S('Likes to attack:') rbi.mobs_follows = S('Follows players holding:') rbi.mobs_drops = S('May drop:') -rbi.mobs_shoots = S('Can shoot misiles.') +rbi.mobs_shoots = S('Can shoot missiles.') rbi.mobs_breed = S('Can breed.') rbi.mobs_spawns_on = S('Spawns on:') rbi.mobs_spawns_neighbours = S('with neighours:') diff --git a/mods/replacer/replacer/replacer.lua b/mods/replacer/replacer/replacer.lua index 55bfb338..57dcb6f1 100644 --- a/mods/replacer/replacer/replacer.lua +++ b/mods/replacer/replacer/replacer.lua @@ -682,7 +682,7 @@ end function replacer.tool_def_technic() local def = r.tool_def_basic() - def.description = "Bulk Placer Tool" + def.description = S("Bulk Placer Tool") if r.has_technic_mod then if technic.plus then def.technic_max_charge = r.max_charge diff --git a/mods/sbz_area_containers/init.lua b/mods/sbz_area_containers/init.lua index d9984798..f1aaf788 100644 --- a/mods/sbz_area_containers/init.lua +++ b/mods/sbz_area_containers/init.lua @@ -18,6 +18,8 @@ -- This entire mod is contained within a single file, with sections being separated by comments +local S = core.get_translator(core.get_current_modname()) + ---======================---- --- === CONFIGURATION === --- ---======================---- @@ -315,8 +317,8 @@ core.register_node( core.register_node( 'sbz_area_containers:entry_point', unifieddyes.def { - description = 'Room Container Entry Point', - info_extra = 'This block decides where you spawn in a room.\nRight-click to exit a room.\nIf you have multiple of these in a room, one of them will be chosen.', -- block not node hehe, im a little rebel :3 + description = S("Room Container Entry Point"), + info_extra = S("This block decides where you spawn in a room.\nRight-click to exit a room.\nIf you have multiple of these in a room, one of them will be chosen."), -- block not node hehe, im a little rebel :3 paramtype = 'light', light_source = 14, groups = { matter = 1 }, @@ -335,7 +337,7 @@ core.register_node( ) core.register_node('sbz_area_containers:room_container', { - description = 'Room Container', + description = S("Room Container"), tiles = { 'room_container.png' }, paramtype = 'light', light_source = 14, diff --git a/mods/sbz_armor/armor_types.lua b/mods/sbz_armor/armor_types.lua index c3923739..5d2c7d69 100644 --- a/mods/sbz_armor/armor_types.lua +++ b/mods/sbz_armor/armor_types.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local armor = sbz_api.armor local recipes = armor.recipes @@ -20,7 +22,7 @@ local armor_types_to_names = { for armor_type, armor_name in pairs(armor_types_to_names) do armor.register("sbz_armor:admin_" .. armor_name:lower(), { - description = "Creative " .. armor_name, + description = S("Creative ") .. armor_name, armor_type = armor_type, inventory_image = ("(armor_%s_inv.png^[multiply:grey)"):format(armor_name:lower()), armor_texture = ("(armor_%s_body.png^[multiply:grey)"):format(armor_name:lower()), @@ -93,7 +95,7 @@ for armor_type, armor_name in pairs(armor_types_to_names) do -- phlogiston armor armor.register("sbz_armor:phlogiston_" .. armor_name:lower(), { - description = "Phlogiston " .. armor_name, + description = S("Phlogiston ") .. armor_name, armor_type = armor_type, inventory_image = ("(armor_%s_inv.png^[multiply:%s)"):format(armor_name:lower(), "#fe620b"), armor_texture = ("(armor_%s_body.png^[multiply:%s)"):format(armor_name:lower(), "#fe620b"), diff --git a/mods/sbz_base/legacy.lua b/mods/sbz_base/legacy.lua index 2c175f42..dd4560c2 100644 --- a/mods/sbz_base/legacy.lua +++ b/mods/sbz_base/legacy.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- local at_every_load = false -- for lbms if ever needed local function deprecate_entity(name) core.register_entity(':' .. name, { @@ -9,7 +11,7 @@ end local function deprecate_item(name) core.register_craftitem(':' .. name, { - description = 'Deprecated item, throw away', + description = S("Deprecated item, throw away"), inventory_image = 'blank.png', stack_max = 1, groups = { not_in_creative_inventory = 1 }, diff --git a/mods/sbz_base/playtime_and_afk.lua b/mods/sbz_base/playtime_and_afk.lua index 073b0c81..269bbced 100644 --- a/mods/sbz_base/playtime_and_afk.lua +++ b/mods/sbz_base/playtime_and_afk.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local inaction_treshold = 5 * 60 sbz_api.afk_players = setmetatable({}, { __index = function(t, k) @@ -86,7 +88,7 @@ local function get_time(x) end core.register_chatcommand("playtime", { - description = "Shows your, or other player's playtime.", + description = S("Shows your, or other player's playtime."), params = "[player]", privs = {}, func = function(name, param) @@ -103,11 +105,11 @@ core.register_chatcommand("playtime", { }) core.register_chatcommand("afk", { - description = "Become afk", + description = S("Notify others that you are afk status (away from keyboard)"), param = "", privs = {}, func = function(name) afkp[name].action = 0 - return true, "You became afk" + return true, S("You became afk") end }) diff --git a/mods/sbz_base/space_movement.lua b/mods/sbz_base/space_movement.lua index 18e71fa3..6980b1f9 100644 --- a/mods/sbz_base/space_movement.lua +++ b/mods/sbz_base/space_movement.lua @@ -1,8 +1,10 @@ +local S = core.get_translator(core.get_current_modname()) + local timer_max = 0 local timer = 0 core.register_privilege("space", { - description = "Allows toggling space movement", + description = S("Allows toggling space movement"), give_to_singleplayer = false, }) @@ -19,7 +21,7 @@ local function set_space_enabled(player, enabled) end core.register_chatcommand("space", { - description = "Toggle space movement", + description = S("Toggle space movement"), privs = { space = true }, -- must have "space" priv func = function(name) local player = core.get_player_by_name(name) diff --git a/mods/sbz_bio/colorium_emitter.lua b/mods/sbz_bio/colorium_emitter.lua index 75f55b54..9058a961 100644 --- a/mods/sbz_bio/colorium_emitter.lua +++ b/mods/sbz_bio/colorium_emitter.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local action = function(pos, _, puncher) local itemstack = puncher:get_wielded_item() local tool_name = itemstack:get_name() @@ -40,7 +42,7 @@ local action = function(pos, _, puncher) end core.register_node("sbz_bio:colorium_emitter", unifieddyes.def { - description = "Colorium Emitter", + description = S("Colorium Emitter"), tiles = { "colorium_emitter.png" }, groups = { unbreakable = 1, transparent = 1, matter = 1, level = 2 }, sounds = { diff --git a/mods/sbz_bio/fertilizer.lua b/mods/sbz_bio/fertilizer.lua index 21a61a51..4edebe01 100644 --- a/mods/sbz_bio/fertilizer.lua +++ b/mods/sbz_bio/fertilizer.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local sprouts = { "sbz_bio:pyrograss_1", "sbz_bio:stemfruit_plant_1" @@ -41,7 +43,7 @@ local fert_use = function(itemstack, user, pointed) return itemstack end core.register_craftitem("sbz_bio:fertilizer", { - description = "Fertilizer", + description = S("Fertilizer"), inventory_image = "fertilizer.png", on_place = sbz_api.on_place_precedence(fert_use), on_use = fert_use, diff --git a/mods/sbz_bio/fire.lua b/mods/sbz_bio/fire.lua index 1c5102f4..81a0c77b 100644 --- a/mods/sbz_bio/fire.lua +++ b/mods/sbz_bio/fire.lua @@ -22,8 +22,10 @@ https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html -- Flood flame function -- Flame nodes +local S = core.get_translator(core.get_current_modname()) + local fire_node = { - description = "Fire", + description = S("Fire"), drawtype = "firelike", tiles = { { name = "fire.png", @@ -91,7 +93,7 @@ core.register_node("sbz_bio:fire", fire_node) -- Flint and Steel core.register_tool("sbz_bio:igniter", { - description = "Igniter", + description = S("Igniter"), inventory_image = "igniter.png", on_use = function(itemstack, user, pointed_thing) diff --git a/mods/sbz_bio/habitat.lua b/mods/sbz_bio/habitat.lua index e0a34999..37741e69 100644 --- a/mods/sbz_bio/habitat.lua +++ b/mods/sbz_bio/habitat.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local hash = core.hash_node_position local touched_nodes = {} @@ -202,7 +204,7 @@ Make sure the habitat is fully sealed. And make sure things like slabs or non-ai end sbz_api.register_machine('sbz_bio:habitat_regulator', { - description = 'Habitat Regulator', + description = S("Habitat Regulator"), sounds = sbz_api.sounds.machine(), tiles = { 'habitat_regulator.png' }, groups = { matter = 1, ui_bio = 1 }, @@ -228,9 +230,9 @@ sbz_api.register_machine('sbz_bio:habitat_regulator', { }) core.register_node('sbz_bio:co2_compactor', { - description = 'CO2 Compactor', + description = S("CO2 Compactor"), sounds = sbz_api.sounds.matter(), - info_extra = "Stores 30 CO₂. Habitat regulator doesn't consider it a wall, but it can be passed through", + info_extra = S("Stores 30 CO₂. Habitat regulator doesn't consider it a wall, but it can be passed through"), groups = { matter = 2, explody = 8 }, walkable = false, drawtype = 'glasslike', -- this is so that when you are inside the node, it looks OK diff --git a/mods/sbz_bio/misc.lua b/mods/sbz_bio/misc.lua index 6bd85e65..9ee1f94b 100644 --- a/mods/sbz_bio/misc.lua +++ b/mods/sbz_bio/misc.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_node("sbz_bio:burner", sbz_api.add_tube_support({ - description = "Burner", + description = S("Burner"), tiles = { "burner.png" }, groups = { matter = 1, co2_source = 1 }, paramtype = "light", @@ -67,7 +69,7 @@ end core.register_node("sbz_bio:airlock", { - description = "Airlock", + description = S("Airlock"), drawtype = "glasslike", tiles = { { name = "airlock.png^[opacity:192", animation = { type = "vertical_frames", length = 0.25 } } }, use_texture_alpha = "blend", @@ -94,7 +96,7 @@ do -- Airlock recipe scope end sbz_api.register_stateful_machine("sbz_bio:neutron_emitter", { - description = "Basic Neutron Emitter", + description = S("Basic Neutron Emitter"), sounds = sbz_api.sounds.machine(), info_extra = "Emits radiation, forces plants mutate.", info_power_consume = 10, diff --git a/mods/sbz_bio/moss.lua b/mods/sbz_bio/moss.lua index de3560d1..1ecd5594 100644 --- a/mods/sbz_bio/moss.lua +++ b/mods/sbz_bio/moss.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_node("sbz_bio:moss", { - description = "Moss", + description = S("Moss"), sounds = { footstep = { name = 'foley_leaf_step', gain = 0.1, pitch = 0.5 }, dig = { name = 'foley_leaf_step', gain = 0.3, pitch = 0.4 }, @@ -41,7 +43,7 @@ core.register_node("sbz_bio:moss", { }) core.register_node("sbz_bio:algae", { - description = "Algae", + description = S("Algae"), sounds = { footstep = { name = 'foley_leaf_step', gain = 0.1, pitch = 0.5 }, dig = { name = 'foley_leaf_step', gain = 0.3, pitch = 0.4 }, diff --git a/mods/sbz_bio/paper.lua b/mods/sbz_bio/paper.lua index 413c9c71..d32f6355 100644 --- a/mods/sbz_bio/paper.lua +++ b/mods/sbz_bio/paper.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_craftitem("sbz_bio:paper", { - description = "Paper", + description = S("Paper"), inventory_image = "paper.png" }) @@ -55,7 +57,7 @@ core.register_on_player_receive_fields(function(user, formname, fields) end) core.register_craftitem("sbz_bio:book", { - description = "Book", + description = S("Book"), inventory_image = "book.png", info_extra = "You can write stuff in this!", on_use = function(stack, user, pointed) diff --git a/mods/sbz_bio/plants.lua b/mods/sbz_bio/plants.lua index a0824874..1c4ccc89 100644 --- a/mods/sbz_bio/plants.lua +++ b/mods/sbz_bio/plants.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local up = vector.new(0, 1, 0) function sbz_api.plant_grow(next_stage) return function(pos, node) @@ -267,7 +269,7 @@ end --Pyrograss, hardy and quick to grow, highly flammable due to its carbon content --To be used in rockets and explosives and stuff sbz_api.register_plant('pyrograss', { - description = 'Pyrograss Plant', + description = S("Pyrograss Plant"), sounds = { footstep = { name = 'foley_leaf_step', gain = 0.2, pitch = 1.0 }, dig = { name = 'foley_leaf_step', gain = 0.5, pitch = 0.8 }, @@ -283,7 +285,7 @@ sbz_api.register_plant('pyrograss', { no_wilt = true, }) core.register_craftitem('sbz_bio:pyrograss', { - description = 'Pyrograss', + description = S("Pyrograss"), inventory_image = 'pyrograss_4.png', groups = { burn = 30, eat = 1 }, sound = { eat = { name = 'foley_crackle_chomp_simple', gain = 1, pitch = 1.0 } }, @@ -317,7 +319,7 @@ playereffects.register_effect_type( ) sbz_api.register_plant('razorgrass', { - description = 'Razorgrass Plant', + description = S("Razorgrass Plant"), sounds = { footstep = { name = 'foley_leaf_step', gain = 0.2, pitch = 1.0 }, dig = { name = 'foley_leaf_step', gain = 0.5, pitch = 0.8 }, @@ -349,7 +351,7 @@ do -- Fertilizer bulk recipe scope end core.register_craftitem('sbz_bio:razorgrass', { - description = 'Razorgrass', + description = S("Razorgrass"), inventory_image = 'razorgrass_4.png', groups = { burn = 2, eat = -8 }, sound = { eat = { name = 'foley_crackle_chomp_thin', gain = 1, pitch = 1.0 } }, @@ -375,7 +377,7 @@ playereffects.register_effect_type('immune', 'Immune', 'fx_immunity.png', { 'imm end, function(fx, player) end, false, true, 0.1) sbz_api.register_plant('cleargrass', { - description = 'Cleargrass Plant', + description = S("Cleargrass Plant"), sounds = { footstep = { name = 'foley_leaf_step', gain = 0.2, pitch = 1.0 }, dig = { name = 'foley_leaf_step', gain = 0.5, pitch = 0.8 }, @@ -397,7 +399,7 @@ sbz_api.register_plant('cleargrass', { }) core.register_craftitem('sbz_bio:cleargrass', { - description = 'Cleargrass', + description = S("Cleargrass"), inventory_image = 'cleargrass_4.png', groups = { burn = 0, eat = 0 }, sound = { eat = { name = 'foley_crackle_chomp_smooth', gain = 1, pitch = 1.0 } }, @@ -413,7 +415,7 @@ core.register_craftitem('sbz_bio:cleargrass', { --Stemfruit, generic plant, quite versatile --To be used to craft other plants sbz_api.register_plant('stemfruit_plant', { - description = 'Stemfruit Plant', + description = S("Stemfruit Plant"), drop = 'sbz_bio:stemfruit 3', family = 'stemfruit', growth_rate = 8, @@ -425,7 +427,7 @@ sbz_api.register_plant('stemfruit_plant', { }) core.register_craftitem('sbz_bio:stemfruit', { - description = 'Stemfruit', + description = S("Stemfruit"), inventory_image = 'stemfruit.png', groups = { burn = 12, eat = 5 }, sound = { eat = { name = 'mix_eat_fruit', gain = 1.0, pitch = 1.0 } }, @@ -453,7 +455,7 @@ core.register_craftitem('sbz_bio:stemfruit', { --Warpshroom, grows slowly, has teleportation powers --To be used later in teleporters sbz_api.register_plant('warpshroom', { - description = 'Warpshroom Plant', + description = S("Warpshroom Plant"), drop = 'sbz_bio:warpshroom 2', family = 'warpshroom', growth_rate = 16, @@ -486,7 +488,7 @@ end local eat = core.item_eat(6) core.register_craftitem('sbz_bio:warpshroom', { - description = 'Warpshroom', + description = S("Warpshroom"), inventory_image = 'warpshroom_4.png', on_place = sbz_api.plant_plant('sbz_bio:warpshroom_1', { 'group:matter' }), on_use = function(itemstack, user, pointed) @@ -541,7 +543,7 @@ end, function(fx, player) end, false, true, 0.5) sbz_api.register_plant('shockshroom', { - description = 'Shockshroom Plant', + description = S("Shockshroom Plant"), drop = 'sbz_bio:shockshroom 2', family = 'warpshroom', growth_rate = 6, @@ -557,7 +559,7 @@ sbz_api.register_plant('shockshroom', { }) core.register_craftitem('sbz_bio:shockshroom', { - description = 'Shockshroom', + description = S("Shockshroom"), inventory_image = 'shockshroom_4.png', on_place = sbz_api.plant_plant('sbz_bio:shockshroom_1', { 'group:soil' }), groups = { ui_bio = 1, eat = -1 }, @@ -583,7 +585,7 @@ local function is_all_water(pos, leveled) end core.register_node('sbz_bio:fiberweed', { - description = 'Fiberweed', + description = S("Fiberweed"), drawtype = 'plantlike_rooted', tiles = { 'dirt.png^fiberweed_overlay.png', 'dirt.png' }, special_tiles = { { name = 'fiberweed_plant.png', tileable_vertical = true } }, diff --git a/mods/sbz_bio/potions.lua b/mods/sbz_bio/potions.lua index d186665f..1264214e 100644 --- a/mods/sbz_bio/potions.lua +++ b/mods/sbz_bio/potions.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_craftitem('sbz_bio:screen_inverter_potion', { - description = "Potion of Inverting", + description = S("Potion of Inverting"), sound = { eat = { name = 'gen_water_drink' } }, diff --git a/mods/sbz_bio/soil.lua b/mods/sbz_bio/soil.lua index 8c7e6d5e..87c5002a 100644 --- a/mods/sbz_bio/soil.lua +++ b/mods/sbz_bio/soil.lua @@ -1,5 +1,5 @@ core.register_node("sbz_bio:dirt", unifieddyes.def { - description = "Dirt", + description = S("Dirt"), tiles = { "dirt.png" }, paramtype2 = "color", groups = { @@ -48,7 +48,7 @@ sbz_api.recipe.register_craft { core.register_node("sbz_bio:fertilized_dirt", unifieddyes.def { paramtype2 = "color", - description = "Fertilized Dirt", + description = S("Fertilized Dirt"), tiles = { "fertilized_dirt.png" }, groups = { explody = 100, @@ -61,8 +61,8 @@ core.register_node("sbz_bio:fertilized_dirt", unifieddyes.def { paramtype = "light", sounds = sbz_api.sounds.dirt(), info_extra = { - "Plants grow 2x faster than on dirt, on this soil.", - "Fertilizer can't sprout plants on this soil." + S("Plants grow 2x faster than on dirt, on this soil."), + S("Fertilizer can't sprout plants on this soil.") } }) @@ -82,7 +82,7 @@ end core.register_node("sbz_bio:dirt_with_grass", unifieddyes.def { paramtype2 = "color", - description = "Dirt With Pyrograss", + description = S("Dirt With Pyrograss"), tiles = { "dirt_with_grass_y.png", "dirt.png", @@ -112,7 +112,7 @@ core.register_node("sbz_bio:dirt_with_grass", unifieddyes.def { sbz_api.register_stateful_machine("sbz_bio:electric_soil", unifieddyes.def { paramtype2 = "colorwallmounted", - description = "Electric Soil", + description = S("Electric Soil"), groups = { matter = 1, soil = 0, diff --git a/mods/sbz_bio/trees.lua b/mods/sbz_bio/trees.lua index 92c5617f..12274355 100644 --- a/mods/sbz_bio/trees.lua +++ b/mods/sbz_bio/trees.lua @@ -17,7 +17,7 @@ without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR See the GNU Lesser General Public License for more details: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html ]] - +local S = core.get_translator(core.get_current_modname()) function sbz_api.can_tree_grow(pos) local node_under = core.get_node_or_nil { x = pos.x, y = pos.y - 1, z = pos.z } if not node_under then return false end @@ -215,7 +215,7 @@ end sbz_api.register_trunk( 'sbz_bio:colorium_tree', unifieddyes.def { - description = 'Colorium Tree', + description = S("Colorium Tree"), groups = { matter = 3, oddly_breakable_by_hand = 3, @@ -240,7 +240,7 @@ sbz_api.register_trunk( sbz_api.register_leaves( 'sbz_bio:colorium_leaves', unifieddyes.def { - description = 'Colorium Leaves', + description = S("Colorium Leaves"), groups = { matter = 3, oddly_breakable_by_hand = 3, @@ -305,7 +305,7 @@ do -- Colorium Sapling recipe scope end sbz_api.register_tree('sbz_bio:colorium_sapling', { - description = 'Colorium Sapling', + description = S("Colorium Sapling"), paramtype = 'light', drawtype = 'plantlike', tiles = { @@ -337,7 +337,7 @@ sbz_api.register_tree('sbz_bio:colorium_sapling', { }, }) sbz_api.register_tree('sbz_bio:giant_colorium_sapling', { - description = 'Giant Colorium Sapling', + description = S("Giant Colorium Sapling"), paramtype = 'light', drawtype = 'plantlike', tiles = { @@ -388,7 +388,7 @@ end core.register_node( 'sbz_bio:colorium_planks', unifieddyes.def { - description = 'Colorium Planks', + description = S("Colorium Planks"), tiles = { 'colorium_planks.png' }, paramtype2 = 'color', groups = { matter = 3, oddly_breakable_by_hand = 2, burn = 1, transparent = 1, explody = 10 }, @@ -434,7 +434,7 @@ local function get_hash_name(string) end core.register_node('sbz_bio:colorium_tree_core', { - description = 'Colorium Tree Core', + description = S("Colorium Tree Core"), info_extra = "Contains the tree's dna.", sounds = sbz_api.sounds.wood_solid(), groups = { @@ -499,7 +499,7 @@ sbz_api.recipe.register_craft { local power_needed = 85 sbz_api.register_stateful_machine('sbz_bio:dna_extractor', { - description = 'DNA Extractor', + description = S("DNA Extractor"), info_extra = 'Copies DNA from tree cores, puts it into saplings', paramtype2 = 'facedir', tiles = { diff --git a/mods/sbz_bio/uses.lua b/mods/sbz_bio/uses.lua index 67c3c10b..bc0163a6 100644 --- a/mods/sbz_bio/uses.lua +++ b/mods/sbz_bio/uses.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + minetest.register_node("sbz_bio:rope", { - description = "Rope", + description = S("Rope"), drawtype = "plantlike", tiles = { "rope.png" }, selection_box = { type = "fixed", fixed = { -0.25, -0.5, -0.25, 0.25, 0.5, 0.25 } }, diff --git a/mods/sbz_chem/alloy_furnace.lua b/mods/sbz_chem/alloy_furnace.lua index 0d8f7b70..1082b0dc 100644 --- a/mods/sbz_chem/alloy_furnace.lua +++ b/mods/sbz_chem/alloy_furnace.lua @@ -1,6 +1,8 @@ +local S = core.get_translator(core.get_current_modname()) + sbz_api.recipe.register_craft_type { type = 'alloying', - description = 'Alloying', + description = S("Alloying"), icon = 'simple_alloy_furnace.png^[verticalframe:13:1', width = 2, height = 1, @@ -27,7 +29,7 @@ sbz_api.recipe.register_craft { } sbz_api.register_stateful_machine('sbz_chem:simple_alloy_furnace', { - description = 'Simple Alloy Furnace', + description = S("Simple Alloy Furnace"), tiles = { 'simple_alloy_furnace.png^[verticalframe:13:1', }, diff --git a/mods/sbz_chem/centrifuge.lua b/mods/sbz_chem/centrifuge.lua index 29eee853..bcacfa24 100644 --- a/mods/sbz_chem/centrifuge.lua +++ b/mods/sbz_chem/centrifuge.lua @@ -1,6 +1,8 @@ +local S = core.get_translator(core.get_current_modname()) + sbz_api.recipe.register_craft_type { type = 'centrifuging', - description = 'Separating', + description = S("Separating"), icon = 'centrifuge.png^[verticalframe:12:1', single = true, } @@ -123,7 +125,7 @@ for k, v in ipairs { end sbz_api.register_stateful_machine('sbz_chem:centrifuge', { - description = 'Centrifuge', + description = S("Centrifuge"), tiles = { 'centrifuge.png^[verticalframe:12:1', 'centrifuge_side.png', diff --git a/mods/sbz_chem/compressor.lua b/mods/sbz_chem/compressor.lua index 05d269fa..263c2fc0 100644 --- a/mods/sbz_chem/compressor.lua +++ b/mods/sbz_chem/compressor.lua @@ -1,6 +1,8 @@ +local S = core.get_translator(core.get_current_modname()) + sbz_api.recipe.register_craft_type({ type = "compressing", - description = "Compressing", + description = S("Compressing"), icon = "compressor.png^[verticalframe:11:1", single = true, }) @@ -19,7 +21,7 @@ end sbz_api.register_stateful_machine("sbz_chem:compressor", { - description = "Compressor", + description = S("Compressor"), tiles = { "compressor_side.png", "compressor_side.png", diff --git a/mods/sbz_chem/crusher.lua b/mods/sbz_chem/crusher.lua index c47b54d4..82b35294 100644 --- a/mods/sbz_chem/crusher.lua +++ b/mods/sbz_chem/crusher.lua @@ -1,6 +1,8 @@ +local S = core.get_translator(core.get_current_modname()) + sbz_api.recipe.register_craft_type { type = 'crushing', - description = 'Crushing', + description = S("Crushing"), icon = 'crusher_top.png^[verticalframe:4:1', single = true, } @@ -16,7 +18,7 @@ for k, v in pairs(sbz_api.crusher_drops) do end core.register_craftitem('sbz_chem:enhanced_pebble', { - description = 'Enhanced Pebble', + description = S("Enhanced Pebble"), inventory_image = 'enhanced_pebble.png', }) @@ -59,7 +61,7 @@ sbz_api.recipe.register_craft { local crusher_power_consume = 5 sbz_api.register_stateful_machine('sbz_chem:crusher', { - description = 'Crusher', + description = S("Crusher"), tiles = { 'crusher_top.png^[verticalframe:4:1', 'crusher_side.png', diff --git a/mods/sbz_chem/crystal_grower.lua b/mods/sbz_chem/crystal_grower.lua index 26982c8c..eda637e8 100644 --- a/mods/sbz_chem/crystal_grower.lua +++ b/mods/sbz_chem/crystal_grower.lua @@ -1,6 +1,8 @@ +local S = core.get_translator(core.get_current_modname()) + sbz_api.recipe.register_craft_type({ type = "crystal_growing", - description = "Crystal Growing", + description = S("Crystal Growing"), icon = "crystal_grower.png^[verticalframe:17:1", single = true }) @@ -66,7 +68,7 @@ local function stop_active_sound(pos) end sbz_api.register_stateful_machine("sbz_chem:crystal_grower", { - description = "Crystal Grower", + description = S("Crystal Grower"), sounds = sbz_api.sounds.machine(), info_power_consume = 120, tiles = { diff --git a/mods/sbz_chem/decay_accel.lua b/mods/sbz_chem/decay_accel.lua index d9824366..bd53118f 100644 --- a/mods/sbz_chem/decay_accel.lua +++ b/mods/sbz_chem/decay_accel.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- Proper handling needed for actual looping of a 2-second audio clip local decay_sounds = {} local function pos_hash(pos) @@ -47,7 +49,7 @@ local function stop_decay_sound(pos) end sbz_api.register_stateful_machine("sbz_chem:decay_accel", { - description = "Decay Accelerator", + description = S("Decay Accelerator"), tiles = { "decay_accel.png", "decay_accel.png", diff --git a/mods/sbz_chem/decay_chains.lua b/mods/sbz_chem/decay_chains.lua index 9c66f339..38ba09aa 100644 --- a/mods/sbz_chem/decay_chains.lua +++ b/mods/sbz_chem/decay_chains.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + --[[ Recipes for the decay accelerator Currently, just used to make plutonium @@ -7,7 +9,7 @@ If you want to add more, feel free to do so :D sbz_api.recipe.register_craft_type({ type = "decay_accelerating", - description = "Decay Accelerating", + description = S("Decay Accelerating"), icon = "decay_accel_front.png", single = true }) diff --git a/mods/sbz_chem/engraver.lua b/mods/sbz_chem/engraver.lua index 92ad27b3..f52a41db 100644 --- a/mods/sbz_chem/engraver.lua +++ b/mods/sbz_chem/engraver.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local function allow_metadata_inventory_put(pos, listname, index, stack, player) if listname == "dst" then return 0 @@ -12,13 +14,13 @@ end sbz_api.recipe.register_craft_type({ type = "engraver", - description = "Engraving", + description = S("Engraving"), icon = "engraver.png^[verticalframe:24:1", single = true, }) sbz_api.register_stateful_machine("sbz_chem:engraver", { - description = "Engraver", + description = S("Engraver"), info_power_consume = 3400, tiles = { "engraver_side.png", diff --git a/mods/sbz_chem/fluids.lua b/mods/sbz_chem/fluids.lua index f1d9c2a4..f96a542b 100644 --- a/mods/sbz_chem/fluids.lua +++ b/mods/sbz_chem/fluids.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + sbz_api.sources2fluid_cells = {} sbz_api.fluid_cells2sources = {} local empty_cell = "sbz_chem:empty_fluid_cell" @@ -34,7 +36,7 @@ end -- Empty core.register_craftitem(empty_cell, { - description = "Empty Fluid Cell (Empty)", + description = S("Empty Fluid Cell (Empty)"), inventory_image = "fluid_cell.png", liquids_pointable = true, groups = { chem_element = 1 }, @@ -72,7 +74,7 @@ do -- Empty Fluid Cell recipe scope end sbz_api.register_fluid_cell("sbz_chem:water_fluid_cell", { - description = "Water Fluid Cell (H₂O)", + description = S("Water Fluid Cell (H₂O)"), sound = { footstep = { name = 'gen_water_step', gain = 0.5, pitch = 0.8 }, place = { name = 'mix_water_place' } diff --git a/mods/sbz_chem/hpef.lua b/mods/sbz_chem/hpef.lua index 8e7f60a5..1e7e5176 100644 --- a/mods/sbz_chem/hpef.lua +++ b/mods/sbz_chem/hpef.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- these allow_metadata_* functions were taken from the mtg furnace local function allow_metadata_inventory_put(pos, listname, index, stack, player) if listname == 'dst' then return 0 end @@ -10,7 +12,7 @@ local function allow_metadata_inventory_move(pos, from_list, from_index, to_list end sbz_api.register_stateful_machine('sbz_chem:high_power_electric_furnace', { - description = 'High Power Electric Furnace', + description = S("High Power Electric Furnace"), info_extra = 'Consumes 30 power.', tiles = { 'hpef_top.png', diff --git a/mods/sbz_chem/melter_cooler.lua b/mods/sbz_chem/melter_cooler.lua index a26c35dc..abb38cd0 100644 --- a/mods/sbz_chem/melter_cooler.lua +++ b/mods/sbz_chem/melter_cooler.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- Melter and cooler -- Melter: [Block] -> [Block's liquid form] -- cooler: [Liquid] -> [Block] @@ -9,7 +11,7 @@ sbz_api.recipe.register_craft_type({ type = "melting", - description = "Melting", + description = S("Melting"), icon = "melter_front_off.png", single = true }) @@ -17,7 +19,7 @@ sbz_api.recipe.register_craft_type({ sbz_api.recipe.register_craft_type({ type = "cooling", - description = "Cooling", + description = S("Cooling"), icon = "cooler_front_off.png", single = true }) @@ -46,7 +48,7 @@ end sbz_api.register_stateful_machine("sbz_chem:melter", { - description = "Melter", + description = S("Melter"), info_extra = "Melts blocks into liquids", tiles = { "melter_top.png", @@ -146,7 +148,7 @@ listring[] }) sbz_api.register_stateful_machine("sbz_chem:cooler", { - description = "Cooler", + description = S("Cooler"), info_extra = "Cools down liquids into blocks", tiles = { "cooler_top.png", diff --git a/mods/sbz_chem/pebble_enhancer.lua b/mods/sbz_chem/pebble_enhancer.lua index 9a479acb..44ffbd7c 100644 --- a/mods/sbz_chem/pebble_enhancer.lua +++ b/mods/sbz_chem/pebble_enhancer.lua @@ -1,6 +1,8 @@ +local S = core.get_translator(core.get_current_modname()) + sbz_api.recipe.register_craft_type { type = 'pebble_enhancing', - description = 'Enhancing', + description = S("Enhancing"), icon = 'pebble_enhancer_top.png', single = true, } @@ -14,7 +16,7 @@ sbz_api.recipe.register_craft { } sbz_api.register_stateful_machine("sbz_chem:pebble_enhancer", { - description = "Pebble Enhancer", + description = S("Pebble Enhancer"), info_extra = "Makes shiny, potentially radioactive pebbles.", tiles = { "pebble_enhancer_top.png", diff --git a/mods/sbz_chem/radiation.lua b/mods/sbz_chem/radiation.lua index f064f5c9..85d38042 100644 --- a/mods/sbz_chem/radiation.lua +++ b/mods/sbz_chem/radiation.lua @@ -56,7 +56,7 @@ non-zero radiation resistance; anything with non-uniform geometry or complex internal structure should show no radiation resistance. Fractional resistance values are permitted. --]] - +local S = core.get_translator(core.get_current_modname()) local rad_resistance_node = {} local rad_resistance_group = { matter = 512, @@ -219,7 +219,7 @@ end -- RADON!!! core.register_node('sbz_chem:radon', { - description = 'radon', + description = S("radon"), drawtype = 'glasslike', paramtype = 'light', drop = '', @@ -319,7 +319,7 @@ core.register_abm({ local water_color = '#6abe3032' core.register_node('sbz_chem:radioactive_water', { - description = 'bad water, unhealthy even', + description = S("bad water, unhealthy even"), drawtype = 'liquid', tiles = { { name = 'water.png^[multiply:' .. water_color .. '^[opacity:200', backface_culling = false }, diff --git a/mods/sbz_chem/reactor.lua b/mods/sbz_chem/reactor.lua index ca4988e4..46710bdc 100644 --- a/mods/sbz_chem/reactor.lua +++ b/mods/sbz_chem/reactor.lua @@ -1,8 +1,10 @@ +local S = core.get_translator(core.get_current_modname()) + -- Fuel rods core.register_craftitem("sbz_chem:thorium_fuel_rod", { groups = { chem_element = 1, fuel_rod = 1, radioactive = 1 }, - description = "Thorium Fuel Rod", + description = S("Thorium Fuel Rod"), inventory_image = "fuel_rod.png^[multiply:#d633af" }) @@ -14,7 +16,7 @@ sbz_api.recipe.register_craft { core.register_craftitem("sbz_chem:uranium_fuel_rod", { groups = { chem_element = 1, fuel_rod = 2, radioactive = 3 }, - description = "Uranium Fuel Rod", + description = S("Uranium Fuel Rod"), inventory_image = "fuel_rod.png^[multiply:#47681e" }) @@ -26,7 +28,7 @@ sbz_api.recipe.register_craft { core.register_craftitem("sbz_chem:plutonium_fuel_rod", { groups = { chem_element = 1, fuel_rod = 3, radioactive = 5 }, - description = "Plutonium Fuel Rod", + description = S("Plutonium Fuel Rod"), info_extra = "Not for noobs...", inventory_image = "fuel_rod.png^[multiply:#1d2aba" }) @@ -64,7 +66,7 @@ local rod_duration = 3 * 60 * 60 local random = PcgRandom(0) sbz_api.register_stateful_generator("sbz_chem:nuclear_reactor", { - description = "Nuclear Reactor", + description = S("Nuclear Reactor"), tiles = { "reactor_top_off.png", "reactor_bottom.png", @@ -240,7 +242,7 @@ listring[] -- the scary local xray_demand = 1800 sbz_api.register_stateful_machine("sbz_chem:xray", { - description = "X-ray Emitter", + description = S("X-ray Emitter"), tiles = { "xray_top.png", "xray_top.png", diff --git a/mods/sbz_decor/cnc.lua b/mods/sbz_decor/cnc.lua index 33b32d4a..7abaf4dc 100644 --- a/mods/sbz_decor/cnc.lua +++ b/mods/sbz_decor/cnc.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local options = { 'slab', 'stair', @@ -42,7 +44,7 @@ core.register_node( 'sbz_decor:cnc', sbz_api.add_tube_support { _after_dig_drop = false, -- To prevent duping - description = 'CNC Machine', + description = S("CNC Machine"), info = 'Use it to cut stairs/slabs out of nodes.', tiles = { 'cnc_top.png', 'cnc_top.png', 'cnc_side.png' }, groups = { matter = 1 }, diff --git a/mods/sbz_decor/init.lua b/mods/sbz_decor/init.lua index 7e3eb5dd..669029cf 100644 --- a/mods/sbz_decor/init.lua +++ b/mods/sbz_decor/init.lua @@ -1,7 +1,9 @@ +local S = core.get_translator(core.get_current_modname()) + local modpath = core.get_modpath 'sbz_decor' core.register_node('sbz_decor:photonlamp', { - description = 'Photon Lamp', + description = S("Photon Lamp"), drawtype = 'mesh', mesh = 'photonlamp.obj', tiles = { 'photonlamp.png' }, @@ -38,7 +40,7 @@ end core.register_node( 'sbz_decor:factory_floor', unifieddyes.def { - description = 'Factory Floor', + description = S("Factory Floor"), tiles = { 'factory_floor.png' }, groups = { matter = 1, cracky = 3, explody = 3, moss_growable = 1 }, sounds = { @@ -71,7 +73,7 @@ stairs.register('sbz_decor:factory_floor', { core.register_node( 'sbz_decor:factory_floor_tiling', unifieddyes.def { - description = 'Factory Floor (Tiled)', + description = S("Factory Floor (Tiled)"), tiles = { 'factory_floor_tiling.png' }, groups = { matter = 1, cracky = 3, explody = 3, moss_growable = 1, ud_param2_colorable = 1 }, sounds = { @@ -99,7 +101,7 @@ core.register_craft { } core.register_node('sbz_decor:factory_ventilator', { - description = 'Factory Ventilator', + description = S("Factory Ventilator"), tiles = { { name = 'factory_ventilator.png', animation = { type = 'vertical_frames', length = 1 } }, }, @@ -149,7 +151,7 @@ core.register_craft { core.register_node( 'sbz_decor:factory_warning', unifieddyes.def { - description = 'Factory Warning', + description = S("Factory Warning"), tiles = { 'factory_warning.png' }, groups = { matter = 1, cracky = 3, explody = 3, moss_growable = 1 }, sunlight_propagates = true, @@ -165,7 +167,7 @@ core.register_craft { } core.register_node('sbz_decor:mystery_terrarium', { - description = 'Mystery Terrarium', + description = S("Mystery Terrarium"), tiles = { { name = 'mystery_terrarium.png', animation = { type = 'vertical_frames', length = 1 } }, }, @@ -183,7 +185,7 @@ core.register_craft { core.register_node( 'sbz_decor:large_server_rack', unifieddyes.def { - description = 'Large Server Rack', + description = S("Large Server Rack"), info_extra = 'Just decoration.', tiles = { { name = 'large_server_rack_back.png' }, @@ -241,7 +243,7 @@ end core.register_node( 'sbz_decor:ladder', unifieddyes.def { - description = 'Matter Ladder', + description = S("Matter Ladder"), sounds = sbz_api.sounds.matter(), drawtype = 'nodebox', node_box = { -- nodebox inspired by that one 3d ladders mod, but i made this myself with nodebox editor @@ -285,7 +287,7 @@ core.register_node( core.register_node( 'sbz_decor:antimatter_ladder', unifieddyes.def { - description = 'Antimatter Ladder', + description = S("Antimatter Ladder"), sounds = sbz_api.sounds.antimatter(), drawtype = 'nodebox', node_box = { -- nodebox inspired by that one 3d ladders mod, but i made this myself with nodebox editor diff --git a/mods/sbz_decor/signs.lua b/mods/sbz_decor/signs.lua index 8397101d..1219a348 100644 --- a/mods/sbz_decor/signs.lua +++ b/mods/sbz_decor/signs.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + signs_lib.register_sign("sbz_decor:antimatter_sign", { - description = "Antimatter Sign", + description = S("Antimatter Sign"), sounds = sbz_api.sounds.antimatter(), inventory_image = "[combine:32x32:0,0=antimatter_sign.png^[makealpha:0,0,0", tiles = { @@ -21,7 +23,7 @@ signs_lib.register_sign("sbz_decor:antimatter_sign", { }) signs_lib.register_sign("sbz_decor:matter_sign", { - description = "Matter Sign", + description = S("Matter Sign"), sounds = sbz_api.sounds.matter(), inventory_image = "[combine:32x32:0,0=antimatter_sign.png^[makealpha:0,0,0^[invert:rgb", tiles = { diff --git a/mods/sbz_devtools/init.lua b/mods/sbz_devtools/init.lua index c786970f..94691517 100644 --- a/mods/sbz_devtools/init.lua +++ b/mods/sbz_devtools/init.lua @@ -1,7 +1,9 @@ --- Dont touch this stuff +local S = core.get_translator(core.get_current_modname()) + +-- Don't touch this stuff minetest.register_chatcommand("dev_givequest", { - description = "Gives achievements - for debugging only", + description = S("Gives achievements - for debugging only"), params = ' | "all"', privs = { ["server"] = true }, @@ -19,7 +21,7 @@ minetest.register_chatcommand("dev_givequest", { }) minetest.register_chatcommand("dev_revokequest", { - description = "Revoke an achievement - for debugging only", + description = S("Revoke an achievement - for debugging only"), params = ' | "all"', privs = { ["server"] = true }, @@ -37,7 +39,7 @@ minetest.register_chatcommand("dev_revokequest", { }) minetest.register_chatcommand("dev_hotbar", { - description = "Set hotbar slot count - for debugging only", + description = S("Set hotbar slot count - for debugging only"), params = '', privs = { ["server"] = true }, @@ -55,7 +57,7 @@ minetest.register_chatcommand("dev_hotbar", { }) minetest.register_chatcommand("dev_platform", { - description = "Spawn a 10x10 platform below the player - for debugging only", + description = S("Spawn a 10x10 platform below the player - for debugging only"), privs = { ["server"] = true }, func = function(name, param) @@ -82,7 +84,7 @@ minetest.register_chatcommand("dev_platform", { }) minetest.register_chatcommand("dev_close", { - description = "Get the 8 closest unique nodes within a distance of 32 and receive them as items - for debugging only", + description = S("Get the 8 closest unique nodes within a distance of 32 and receive them as items - for debugging only"), privs = { ["server"] = true }, func = function(name) local player = minetest.get_player_by_name(name) @@ -147,7 +149,7 @@ minetest.register_chatcommand("dev_close", { -- this is such a zander thing to do lmfao minetest.register_chatcommand("dev_clear", { - description = "Clears the player's inventory - for debugging only", + description = S("Clears the player's inventory - for debugging only"), privs = { ["server"] = true }, func = function(name) local player = minetest.get_player_by_name(name) @@ -164,7 +166,7 @@ minetest.register_chatcommand("dev_clear", { }) minetest.register_chatcommand("dev_toggle_libox", { - description = "Enables/Disables all lua sandboxing", + description = S("Enables/Disables all lua sandboxing"), privs = { ["server"] = true }, func = function() libox.disabled = not libox.disabled @@ -174,7 +176,7 @@ minetest.register_chatcommand("dev_toggle_libox", { sbz_api.forced_light = {} minetest.register_chatcommand("dev_light", { - description = "Makes it day only for you", + description = S("Makes it day only for you"), privs = { ["server"] = true }, func = function(name) local player = minetest.get_player_by_name(name) @@ -205,7 +207,7 @@ minetest.register_chatcommand("dev_craft", { }) minetest.register_chatcommand("dev_regen", { - description = "Re-generate a mapblock (one that you are standing on)", + description = S("Re-generate a mapblock (one that you are standing on)"), params = "[radius]", privs = { ["server"] = true }, func = function(name, param) @@ -247,7 +249,7 @@ minetest.register_chatcommand("dev_mapblocks", { end }) core.register_chatcommand("dev_fast_habitats", { - description = "Toggles making habitats fast, don't use this in a server", + description = S("Toggles making habitats fast, don't use this in a server"), params = "", privs = { ["server"] = true }, func = function(name, param) @@ -256,7 +258,7 @@ core.register_chatcommand("dev_fast_habitats", { }) core.register_chatcommand("dev_toggle_pvp", { - description = "Toggle pvp, NEEDS SERVER RESTART, bad idea to use if you aren't a dev", + description = S("Toggle pvp, NEEDS SERVER RESTART, bad idea to use if you aren't a dev"), params = "", privs = { ["server"] = true }, func = function(name, param) @@ -265,7 +267,7 @@ core.register_chatcommand("dev_toggle_pvp", { }) core.register_chatcommand("dev_test_rain", { - description = "Test rain particles ", + description = S("Test rain particles "), privs = { ["server"] = true }, func = function(name, param) diff --git a/mods/sbz_instatube/init.lua b/mods/sbz_instatube/init.lua index 6694ab65..d68de04b 100644 --- a/mods/sbz_instatube/init.lua +++ b/mods/sbz_instatube/init.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- instatube!! sbz_api.instatube = {} local instatube = sbz_api.instatube @@ -305,7 +307,7 @@ end core.register_node( 'sbz_instatube:instant_tube', unifieddyes.def { - description = 'Instatube', + description = S("Instatube"), sounds = sbz_api.sounds.glass(), connects_to = { 'sbz_instatube:instant_tube', 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, info_extra = { 'Deliver items in record time! (Also less lag and less weird behavior!)' }, @@ -352,7 +354,7 @@ core.register_node( core.register_node( 'sbz_instatube:one_way_instatube', unifieddyes.def { - description = 'One Way Instatube', + description = S("One Way Instatube"), sounds = sbz_api.sounds.glass(), tiles = { 'one_way_instatube.png^[transformFX', @@ -408,7 +410,7 @@ end core.register_node( 'sbz_instatube:item_filter', unifieddyes.def { - description = 'Instatube Item Filter', + description = S("Instatube Item Filter"), connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, paramtype2 = 'color', @@ -512,7 +514,7 @@ end core.register_node( 'sbz_instatube:high_priority_instant_tube', unifieddyes.def { - description = 'High Priority Instatube', + description = S("High Priority Instatube"), sounds = sbz_api.sounds.glass(), connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, @@ -558,7 +560,7 @@ instatube.special_priority['sbz_instatube:high_priority_instant_tube'] = 150 core.register_node( 'sbz_instatube:low_priority_instant_tube', unifieddyes.def { - description = 'Low Priority Instatube', + description = S("Low Priority Instatube"), sounds = sbz_api.sounds.glass(), info_extra = "Can't be used with normal tubes, but with instatubes it works fine.", connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, @@ -620,7 +622,7 @@ sbz_api.instatube.remove_all_nets_around = remove_all_nets_around core.register_node( 'sbz_instatube:teleport_instant_tube', unifieddyes.def { - description = 'Teleport Instatube', + description = S("Teleport Instatube"), sounds = sbz_api.sounds.glass(), info_extra = { 'Links to all teleport tubes in a channel at once.' }, connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, @@ -701,7 +703,7 @@ end) core.register_node( 'sbz_instatube:randomized_input_instant_tube', unifieddyes.def { - description = 'Randomized Input Instatube', + description = S("Randomized Input Instatube"), sounds = sbz_api.sounds.glass(), connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, @@ -746,7 +748,7 @@ core.register_node( core.register_node( 'sbz_instatube:cycling_input_instant_tube', unifieddyes.def { - description = 'Cycling Input Instatube', + description = S("Cycling Input Instatube"), sounds = sbz_api.sounds.glass(), connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, info_extra = { '' }, @@ -909,7 +911,7 @@ core.register_on_player_receive_fields(function(player, formname, fields) end) core.register_craftitem('sbz_instatube:dbg_tool', { - description = 'Instatube Debug Tool', + description = S("Instatube Debug Tool"), sounds = sbz_api.sounds.glass(), info_extra = 'Shows all machines connected to instatube', inventory_image = 'instatube_debug_tool.png', diff --git a/mods/sbz_instatube/recipes.lua b/mods/sbz_instatube/recipes.lua index 5a9b85e3..72138fdd 100644 --- a/mods/sbz_instatube/recipes.lua +++ b/mods/sbz_instatube/recipes.lua @@ -1,6 +1,8 @@ +local S = core.get_translator(core.get_current_modname()) + -- instantinium core.register_craftitem("sbz_instatube:instantinium", { - description = "Instantinium", + description = S("Instantinium"), inventory_image = "instantinium.png", info_extra = "Takes a bit of time to cook up in the blast furnace", }) diff --git a/mods/sbz_logic/code_disks.lua b/mods/sbz_logic/code_disks.lua index 198ce5f5..6f283581 100644 --- a/mods/sbz_logic/code_disks.lua +++ b/mods/sbz_logic/code_disks.lua @@ -1,12 +1,13 @@ -local logic = sbz_api.logic +local S = core.get_translator(core.get_current_modname()) +local logic = sbz_api.logic minetest.register_craftitem("sbz_logic:data_disk", { - description = "Empty Data Disk", + description = S("Empty Data Disk"), info_extra = { - "Can hold 20 kilobytes.", - "Can be configured to override editor or normal code on use.", - "Insert into a luacontroller to configure", + S("Can hold 20 kilobytes."), + S("Can be configured to override editor or normal code on use."), + S("Insert into a luacontroller to configure"), }, can_hold = 1024 * 20, -- 20 kilobytes on_use = function(stack, user, pointed) @@ -49,7 +50,7 @@ unified_inventory.register_craft { function logic.register_system_disk(name, desc, source, punch_editor, punch_code, craft) local def = { - description = "System Code Disk - " .. desc, + description = S("System Code Disk - ") .. desc, inventory_image = "system_code_disk.png", info_extra = { "Immutable", diff --git a/mods/sbz_logic/init.lua b/mods/sbz_logic/init.lua index c1188633..5dae7dd3 100644 --- a/mods/sbz_logic/init.lua +++ b/mods/sbz_logic/init.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + sbz_api.logic = { log = function(msg) if sbz_api.debug then @@ -24,12 +26,12 @@ dofile(MP .. "/code_disks.lua") sbz_api.register_stateful_machine("sbz_logic:lua_controller", { tiles = { "luacontroller_top.png", "luacontroller_top.png", "luacontroller.png" }, - description = "Lua Controller", + description = S("Lua Controller"), sounds = sbz_api.sounds.matter(), info_extra = { - "The most complex block in this game.", - "No like actually... it might be", - "Punch with the basic editor disk to get started.", + S("The most complex block in this game."), + S("No like actually... it might be"), + S("Punch with the basic editor disk to get started."), }, disallow_pipeworks = true, autostate = false, diff --git a/mods/sbz_logic/knowledge.lua b/mods/sbz_logic/knowledge.lua index 677d6036..c9fd313d 100644 --- a/mods/sbz_logic/knowledge.lua +++ b/mods/sbz_logic/knowledge.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + logic = sbz_api.logic local P = core.get_modpath("sbz_logic") .. "/help_pages/" @@ -94,7 +96,7 @@ local function on_receive_fields(pos, formname, fields, sender) end core.register_node("sbz_logic:knowledge_station", { - description = "Knowledge Station", + description = S("Knowledge Station"), sounds = sbz_api.sounds.matter(), info_extra = "Explains logic.", on_construct = function(pos) diff --git a/mods/sbz_logic/link_tool.lua b/mods/sbz_logic/link_tool.lua index 74c67186..a9c0fb48 100644 --- a/mods/sbz_logic/link_tool.lua +++ b/mods/sbz_logic/link_tool.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local render_links_delay = 1 local waypoint_ids = {} @@ -190,13 +192,13 @@ end) minetest.register_craftitem("sbz_logic:luacontroller_linker", { - description = "Luacontroller Linker", - short_description = "Luacontroller Linker", + description = S("Luacontroller Linker"), + short_description = S("Luacontroller Linker"), info_extra = { - "Right click: ask for a name, if a block is pointed to, link the block", - "Left click: use the previous name, and link the block", - "Aux1 + right click/left click: link to that luacontroller", - "If you hold it, it should show all the links and the luacontroller's radius" + S("Right click: ask for a name, if a block is pointed to, link the block"), + S("Left click: use the previous name, and link the block"), + S("Aux1 + right click/left click: link to that luacontroller"), + S("If you hold it, it should show all the links and the luacontroller's radius") }, inventory_image = "luacontroller_linker.png", range = 10, diff --git a/mods/sbz_logic/upgrades.lua b/mods/sbz_logic/upgrades.lua index e62ac78e..1b597545 100644 --- a/mods/sbz_logic/upgrades.lua +++ b/mods/sbz_logic/upgrades.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local logic = sbz_api.logic --[[ @@ -6,7 +8,7 @@ local logic = sbz_api.logic ]] minetest.register_craftitem("sbz_logic:upgrade_template", { - description = "Logic Upgrade Template", + description = S("Logic Upgrade Template"), inventory_image = "upgrade_template.png", groups = { ui_logic = 1 } }) @@ -34,7 +36,7 @@ logic.register_upgrade("sbz_logic:linking_upgrade", { info_extra = { "Upgrades linking radius by 8, you can have 3 of these", "Also it is needed for *any* sort of communication, or getting information about the world." }, stack_max = 1, same_upgrade_max = 3, - description = "Linking Upgrade", + description = S("Linking Upgrade"), action_in = function(stack, logic_pos, logic_meta) logic_meta:set_int("linking_range", logic_meta:get_int "linking_range" + 8) end, diff --git a/mods/sbz_logic_devices/builder.lua b/mods/sbz_logic_devices/builder.lua index b1a9a189..ad5abcd9 100644 --- a/mods/sbz_logic_devices/builder.lua +++ b/mods/sbz_logic_devices/builder.lua @@ -1,13 +1,13 @@ +local S = core.get_translator(core.get_current_modname()) + -- like the digibuilder... but better... yea! -- more overpowered!! - local power_per_action = 40 local queue_max = 50 local range = 20 - local function get_index(inv, item) if not inv:contains_item("main", item) then return false end local list = inv:get_list("main") @@ -152,10 +152,10 @@ end local builder_queues = {} sbz_api.register_machine("sbz_logic_devices:builder", { - description = "Lua Builder", + description = S("Lua Builder"), info_extra = { - "A way for lua controllers to interact with the world.", - "Can build/break/dig/punch/see 50 nodes every 0.25 seconds...", + S("A way for lua controllers to interact with the world."), + S("Can build/break/dig/punch/see 50 nodes every 0.25 seconds..."), }, tiles = { "lua_builder.png" diff --git a/mods/sbz_logic_devices/button.lua b/mods/sbz_logic_devices/button.lua index 03d2d8ab..7183d210 100644 --- a/mods/sbz_logic_devices/button.lua +++ b/mods/sbz_logic_devices/button.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_node("sbz_logic_devices:button", { - description = "Logic Button", + description = S("Logic Button"), tiles = { "button_side.png", "button_side.png^[transformFY", @@ -64,7 +66,7 @@ local function tobool(x) end sbz_api.register_stateful("sbz_logic_devices:toggle", { - description = "Logic Toggle", + description = S("Logic Toggle"), tiles = { "button_side.png", "button_side.png^[transformFY", diff --git a/mods/sbz_logic_devices/formspec_screen.lua b/mods/sbz_logic_devices/formspec_screen.lua index efaad11d..ea5e5c0d 100644 --- a/mods/sbz_logic_devices/formspec_screen.lua +++ b/mods/sbz_logic_devices/formspec_screen.lua @@ -1,6 +1,8 @@ +local S = core.get_translator(core.get_current_modname()) + local max = 100 * 1024 core.register_node("sbz_logic_devices:formspec_screen", { - description = "Formspec Screen", + description = S("Formspec Screen"), info_extra = "Max formspec size: 100kb", tiles = { "formspec_screen.png", diff --git a/mods/sbz_logic_devices/gpu.lua b/mods/sbz_logic_devices/gpu.lua index 523e93bb..76d4888f 100644 --- a/mods/sbz_logic_devices/gpu.lua +++ b/mods/sbz_logic_devices/gpu.lua @@ -2,7 +2,7 @@ -- Focus: be fast, at least faster than what digistuff does :> -- https://github.com/mt-mods/digistuff/blob/reworkGPU/gpu.lua -- License: LGPLv3 or later - +local S = core.get_translator("sbz_logic_devices") local MP = core.get_modpath("sbz_logic_devices") ---@type function @@ -778,7 +778,7 @@ local function exec_command(buffers, command, pos, from_pos) end core.register_node("sbz_logic_devices:gpu", { - description = "GPU", + description = S("GPU"), groups = { matter = 1, ui_logic = 1 }, is_ground_content = false, diff --git a/mods/sbz_logic_devices/hologram_projector.lua b/mods/sbz_logic_devices/hologram_projector.lua index c5f0b6e0..a3f153e4 100644 --- a/mods/sbz_logic_devices/hologram_projector.lua +++ b/mods/sbz_logic_devices/hologram_projector.lua @@ -1,5 +1,5 @@ -- inspired by https://github.com/BuckarooBanzay/holoemitter/ though should be completely different in implementation (i havent looked at the code of holoemitter) - +local S = core.get_translator(core.get_current_modname()) local function transform_texture_name(tex, is_incomplete) local addon = "" if is_incomplete then @@ -540,7 +540,7 @@ mesecon.register_on_mvps_move(function(moved_nodes) end) core.register_node("sbz_logic_devices:hologram_projector", { - description = "Hologram Projector", + description = S("Hologram Projector"), info_extra = "Inspired by the holoemitter mod.", groups = { ui_logic = 1, matter = 1 }, sounds = sbz_api.sounds.matter(), diff --git a/mods/sbz_logic_devices/memory_controller.lua b/mods/sbz_logic_devices/memory_controller.lua index 34315942..47d2e6d4 100644 --- a/mods/sbz_logic_devices/memory_controller.lua +++ b/mods/sbz_logic_devices/memory_controller.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- memcontroller local function compress(data) @@ -16,11 +18,11 @@ local default_index_state = { } core.register_node("sbz_logic_devices:memcontroller", { - description = "Memory Controller", + description = S("Memory Controller"), info_extra = { - "Holds " .. (size_limit / 1024 ^ 3) .. "mb", - "Capable of compressing data", - "Limited to " .. (lag_limit) .. "ms/s", + S("Holds @1 MB", size_limit / 1024 ^ 3), + S("Capable of compressing data"), + S("Limited to @1 ms of lag per second", lag_limit), }, tiles = { "memcontroller_top.png", diff --git a/mods/sbz_logic_devices/meteorite_attractor.lua b/mods/sbz_logic_devices/meteorite_attractor.lua index ddb1debe..a26ddc54 100644 --- a/mods/sbz_logic_devices/meteorite_attractor.lua +++ b/mods/sbz_logic_devices/meteorite_attractor.lua @@ -1,7 +1,9 @@ +local S = core.get_translator(core.get_current_modname()) + local max_attract = 10 sbz_api.register_machine("sbz_logic_devices:luanium_attractor", { - description = "Luanium Meteorite Attractor", + description = S("Luanium Meteorite Attractor"), info_extra = "At this point it might as well be a black hole...", tiles = { "luanium_attractor.png" }, groups = { ui_logic = 1, matter = 1, charged = 1, sbz_machine_subticking = 1 }, diff --git a/mods/sbz_logic_devices/mscreen.lua b/mods/sbz_logic_devices/mscreen.lua index a866a0b8..9f115fb7 100644 --- a/mods/sbz_logic_devices/mscreen.lua +++ b/mods/sbz_logic_devices/mscreen.lua @@ -30,6 +30,7 @@ OTHER DEALINGS IN THE SOFTWARE. For more information, please refer to ]] +local S = core.get_translator(core.get_current_modname()) local DISP_MAX_RESOLUTION = 32 local function remove_entity(pos) @@ -108,11 +109,11 @@ core.register_entity("sbz_logic_devices:matrix_screen_entity", { }) core.register_node("sbz_logic_devices:matrix_screen", { - description = "Matrix Screen", + description = S("Matrix Screen"), info_extra = { - "Named that because it accepts a 2D matrix.", - "Ok i just realised that techage had the exact same name, for a very similar thing... lol,\n but yea, this was forked from digiscreen. (But made better :>)", - "You can put a backlight behind... to... yea... have the screen be brighter" }, + S("Named that because it accepts a 2D matrix."), + S("Ok I just realised that techage had the exact same name, for a very similar thing... lol,\n but yeah, this was forked from digiscreen. (But made better :>)"), + S("You can put a backlight behind... to... yea... have the screen be brighter") }, tiles = { "blank.png^[invert:rgba^[colorize:grey", "blank.png^[invert:rgba^[colorize:grey", diff --git a/mods/sbz_logic_devices/nic.lua b/mods/sbz_logic_devices/nic.lua index 59a755f6..da6d61ba 100644 --- a/mods/sbz_logic_devices/nic.lua +++ b/mods/sbz_logic_devices/nic.lua @@ -2,17 +2,19 @@ local http = ... -- License: LGPLv3 or later -- from: https://github.com/mt-mods/digistuff/blob/master/nic.lua +local S = core.get_translator(core.get_current_modname()) + local settings = core.settings local is_priv_locked = settings:get_bool("sbz_nic_priv_locked", true) core.register_privilege("nic_user", { - description = "If the server has priv locked the NIC, this priv makes you able to place the thing.", + description = S("If the server has priv locked the NIC, this priv makes you able to place the thing."), give_to_admin = true, give_to_singleplayer = true, }) core.register_node("sbz_logic_devices:nic", { - description = "Logic NIC", + description = S("Logic NIC"), info_extra = " Priv Locked: " .. (is_priv_locked and "yes" or "no"), groups = { cracky = 3, matter = 1, ui_logic = 1 }, diff --git a/mods/sbz_logic_devices/nodeDB.lua b/mods/sbz_logic_devices/nodeDB.lua index f5925943..22553162 100644 --- a/mods/sbz_logic_devices/nodeDB.lua +++ b/mods/sbz_logic_devices/nodeDB.lua @@ -2,10 +2,12 @@ -- https://github.com/dennisjenkins75/digiline_craftdb/ -- months later to clarify: No code from it was actually used here +local S = core.get_translator(core.get_current_modname()) + local MAX_RESULTS = 200 core.register_node("sbz_logic_devices:node_db", { - description = "Node DB", + description = S("Node DB"), info_extra = { "Similar to the craftDB, use it to lookup node definitions and recipes" }, groups = { matter = 1, ui_logic = 1 }, sounds = sbz_api.sounds.machine(), diff --git a/mods/sbz_logic_devices/noteblock.lua b/mods/sbz_logic_devices/noteblock.lua index 27d173c8..dd42032d 100644 --- a/mods/sbz_logic_devices/noteblock.lua +++ b/mods/sbz_logic_devices/noteblock.lua @@ -1,9 +1,12 @@ -- License: LGPLv3 or later -- from: https://github.com/mt-mods/digistuff/tree/master + +local S = core.get_translator(core.get_current_modname()) + local MAX_COMMANDS_AT_ONCE = 10 local t = type core.register_node("sbz_logic_devices:noteblock", { - description = "Note Block", + description = S("Note Block"), info_extra = "Plays sounds, fully capable of blowing your ears off! :>", tiles = { "noteblock_top.png", diff --git a/mods/sbz_logic_devices/object_detector.lua b/mods/sbz_logic_devices/object_detector.lua index 55820d3d..2decdc55 100644 --- a/mods/sbz_logic_devices/object_detector.lua +++ b/mods/sbz_logic_devices/object_detector.lua @@ -1,7 +1,9 @@ +local S = core.get_translator(core.get_current_modname()) + local R = 10 core.register_node("sbz_logic_devices:object_detector", { - description = "Object/Player Detector", + description = S("Object/Player Detector"), info_extra = ("Has a radius of %s"):format(R), tiles = { diff --git a/mods/sbz_meteorites/attractor.lua b/mods/sbz_meteorites/attractor.lua index 7370d4ae..44883143 100644 --- a/mods/sbz_meteorites/attractor.lua +++ b/mods/sbz_meteorites/attractor.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local elapsed = 0 playereffects.register_effect_type('attracted', 'Attracted', 'fx_attracted.png', { @@ -107,7 +109,7 @@ core.register_entity('sbz_meteorites:gravitational_attractor_entity', { }) core.register_node('sbz_meteorites:gravitational_attractor', { - description = 'Gravitational Attractor', + description = S("Gravitational Attractor"), drawtype = 'glasslike', tiles = { 'gravitational_attractor.png' }, inventory_image = 'gravitational_attractor.png^(([combine:32x32:8,8=neutronium.png)^[resize:16x16)', @@ -137,7 +139,7 @@ do -- Gravitational Attractor recipe scope end core.register_node('sbz_meteorites:gravitational_repulsor', { - description = 'Gravitational Repulsor', + description = S("Gravitational Repulsor"), drawtype = 'glasslike', tiles = { 'gravitational_repulsor.png' }, inventory_image = 'gravitational_repulsor.png^(([combine:32x32:8,8=neutronium.png)^[invert:rgb^[resize:16x16)', diff --git a/mods/sbz_meteorites/init.lua b/mods/sbz_meteorites/init.lua index b82f6eca..2d0f31f3 100644 --- a/mods/sbz_meteorites/init.lua +++ b/mods/sbz_meteorites/init.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local y_min = -300 local function spawn_meteorite(pos) if not pos then @@ -27,7 +29,7 @@ end minetest.register_chatcommand('spawn_meteorite', { params = '([ ] | ["here"]) [number]', - description = 'Attempts to spawn a meteorite somewhere.', + description = S("Attempts to spawn a meteorite somewhere."), privs = { give = true }, func = function(name, param) local split = string.split(param, ' ', false) diff --git a/mods/sbz_meteorites/meteorite_maker.lua b/mods/sbz_meteorites/meteorite_maker.lua index 964a46a3..5d68fcf8 100644 --- a/mods/sbz_meteorites/meteorite_maker.lua +++ b/mods/sbz_meteorites/meteorite_maker.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- each meteorite should require something like 1 000 matter blobs local meteorite_recipes = { @@ -156,7 +158,7 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { }, groups = { matter = 1 }, light_source = 0, - description = "Meteorite Maker", + description = S("Meteorite Maker"), sounds = sbz_api.sounds.machine(), info_extra = "Makes meteorites", diff --git a/mods/sbz_meteorites/nodes.lua b/mods/sbz_meteorites/nodes.lua index 84c26e91..3190a86e 100644 --- a/mods/sbz_meteorites/nodes.lua +++ b/mods/sbz_meteorites/nodes.lua @@ -1,9 +1,11 @@ +local S = core.get_translator(core.get_current_modname()) + local matter_items = {} for _ = 1, 8 do matter_items[#matter_items + 1] = { rarity = 2, items = { 'sbz_resources:matter_dust 8' } } end core.register_node('sbz_meteorites:meteoric_matter', { - description = 'Meteoric Matter', + description = S("Meteoric Matter"), tiles = { 'matter_blob.png^meteoric_overlay.png' }, paramtype = 'light', light_source = 10, @@ -36,7 +38,7 @@ for _ = 1, 8 do end core.register_node('sbz_meteorites:meteoric_antimatter', { - description = 'Meteoric Antimatter', + description = S("Meteoric Antimatter"), tiles = { 'antimatter_blob.png^(meteoric_overlay.png^[invert:rgb)' }, paramtype = 'light', light_source = 12, @@ -54,7 +56,7 @@ for _ = 1, 8 do end core.register_node('sbz_meteorites:meteoric_emittrium', { - description = 'Meteoric Emittrium', + description = S("Meteoric Emittrium"), tiles = { 'emitter.png^meteoric_overlay.png' }, paramtype = 'light', light_source = 10, @@ -79,7 +81,7 @@ for k, v in ipairs(drops) do end core.register_node('sbz_meteorites:meteoric_metal', { - description = 'Meteoric Metal', + description = S("Meteoric Metal"), tiles = { 'metal.png^meteoric_overlay.png' }, paramtype = 'light', light_source = 10, @@ -92,7 +94,7 @@ core.register_node('sbz_meteorites:meteoric_metal', { }) core.register_node('sbz_meteorites:neutronium', { - description = 'Neutronium', + description = S("Neutronium"), tiles = { 'neutronium.png' }, paramtype = 'light', light_source = 4, @@ -100,7 +102,7 @@ core.register_node('sbz_meteorites:neutronium', { sounds = sbz_api.sounds.matter(), }) core.register_node('sbz_meteorites:antineutronium', { - description = 'Antineutronium', + description = S("Antineutronium"), tiles = { 'neutronium.png^[invert:rgb' }, paramtype = 'light', light_source = 8, diff --git a/mods/sbz_meteorites/visualiser.lua b/mods/sbz_meteorites/visualiser.lua index fe44da4d..3ecd37a8 100644 --- a/mods/sbz_meteorites/visualiser.lua +++ b/mods/sbz_meteorites/visualiser.lua @@ -1,6 +1,8 @@ +local S = core.get_translator(core.get_current_modname()) + sbz_api.register_machine('sbz_meteorites:meteorite_radar', { disallow_pipeworks = true, - description = 'Meteorite Radar', + description = S("Meteorite Radar"), info_extra = "Detects if meteorites are nearby. Uses 10Cj if there aren't, uses 40Cj if there are.", drawtype = 'mesh', paramtype = 'light', diff --git a/mods/sbz_multiblocks/blast_furnace.lua b/mods/sbz_multiblocks/blast_furnace.lua index 580be15d..11a0b69e 100644 --- a/mods/sbz_multiblocks/blast_furnace.lua +++ b/mods/sbz_multiblocks/blast_furnace.lua @@ -1,9 +1,11 @@ +local S = core.get_translator(core.get_current_modname()) + -- controller, machine casing, furnace heaters -- item I/O, power input sbz_api.recipe.register_craft_type({ type = "blast_furnace", - description = "Blast Furnace", + description = S("Blast Furnace"), icon = "blast_furnace_heater_inner.png^blast_furnace_heater_frame.png", width = 3, height = 1, @@ -160,7 +162,7 @@ end -- contains storage core.register_node("sbz_multiblocks:blast_furnace_controller", ud { - description = "Blast Furnace Controller", + description = S("Blast Furnace Controller"), sounds = sbz_api.sounds.machine(), groups = { matter = 1, @@ -372,7 +374,7 @@ core.register_node("sbz_multiblocks:blast_furnace_controller", ud { }) core.register_node("sbz_multiblocks:blast_furnace_casing", ud { - description = "Blast Furnace Casing", + description = S("Blast Furnace Casing"), sounds = sbz_api.sounds.machine(), groups = { matter = 1, @@ -392,7 +394,7 @@ core.register_node("sbz_multiblocks:blast_furnace_casing", ud { }) core.register_node("sbz_multiblocks:blast_furnace_heater", ud { - description = "Blast Furnace Heater", + description = S("Blast Furnace Heater"), sounds = sbz_api.sounds.machine(), heater_power_use = 5, info_power_needed = 5, -- they do not connect to cables directly @@ -419,7 +421,7 @@ core.register_node("sbz_multiblocks:blast_furnace_heater", ud { }) sbz_api.register_machine("sbz_multiblocks:blast_furnace_power_port", ud { - description = "Blast Furnace Power Port", + description = S("Blast Furnace Power Port"), sounds = sbz_api.sounds.machine(), groups = { matter = 1, @@ -473,7 +475,7 @@ sbz_api.register_machine("sbz_multiblocks:blast_furnace_power_port", ud { }) core.register_node("sbz_multiblocks:blast_furnace_item_input", ud { - description = "Blast Furnace Item Input", + description = S("Blast Furnace Item Input"), sounds = sbz_api.sounds.machine(), info_extra = "It will never clog the furnace just trust me, if it does somehow its a bug", groups = { @@ -541,7 +543,7 @@ core.register_node("sbz_multiblocks:blast_furnace_item_input", ud { before_movenode = sbz_api.multiblocks.before_movenode, }) core.register_node("sbz_multiblocks:blast_furnace_item_output", ud { - description = "Blast Furnace Item Output", + description = S("Blast Furnace Item Output"), sounds = sbz_api.sounds.machine(), groups = { matter = 1, diff --git a/mods/sbz_multiblocks/init.lua b/mods/sbz_multiblocks/init.lua index 971a6855..c8420e4f 100644 --- a/mods/sbz_multiblocks/init.lua +++ b/mods/sbz_multiblocks/init.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + sbz_api.multiblocks = {} local multiblocks = sbz_api.multiblocks @@ -240,7 +242,7 @@ dofile(mp .. "/blast_furnace_recipes.lua") dofile(mp .. "/large_liquid_storage.lua") core.register_chatcommand("build_multiblock", { - description = "Build out a multiblock controller's build plan", + description = S("Build out a multiblock controller's build plan"), privs = { ["server"] = true, }, diff --git a/mods/sbz_multiblocks/large_liquid_storage.lua b/mods/sbz_multiblocks/large_liquid_storage.lua index 26805a9a..25e87982 100644 --- a/mods/sbz_multiblocks/large_liquid_storage.lua +++ b/mods/sbz_multiblocks/large_liquid_storage.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local storage_per_node = 200 -- 5x5x5 25000 liquid sources -- That's a lot, and that's okay @@ -142,7 +144,7 @@ local default_inv = core.serialize { core.register_node( 'sbz_multiblocks:large_liquid_storage_controller', unifieddyes.def { - description = 'Large Liquid Storage Controller', + description = S("Large Liquid Storage Controller"), sounds = sbz_api.sounds.machine(), groups = { matter = 1, @@ -245,7 +247,7 @@ core.register_node( core.register_node( 'sbz_multiblocks:large_liquid_storage_casing', unifieddyes.def { - description = 'Large Liquid Storage Casing', + description = S("Large Liquid Storage Casing"), sounds = sbz_api.sounds.machine(), groups = { matter = 1, @@ -271,7 +273,7 @@ core.register_node( core.register_node( 'sbz_multiblocks:large_liquid_storage_casing_edge', unifieddyes.def { - description = 'Large Liquid Storage Edge Casing', + description = S("Large Liquid Storage Edge Casing"), sounds = sbz_api.sounds.machine(), groups = { matter = 1, diff --git a/mods/sbz_pipeworks/basic_blocks.lua b/mods/sbz_pipeworks/basic_blocks.lua index e72ffc59..e7fc887d 100644 --- a/mods/sbz_pipeworks/basic_blocks.lua +++ b/mods/sbz_pipeworks/basic_blocks.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + --[[ includes: Item Sorter - sorting tube code Item Void - pipeworks trashcan code @@ -52,7 +54,7 @@ local function item_sorter_formspec(pos) end core.register_node("pipeworks:item_sorter", { - description = "Item Sorter", + description = S("Item Sorter"), sounds = sbz_api.sounds.matter(), tiles = { { name = "itemsorter.png", color = "green" }, @@ -190,7 +192,7 @@ do -- Item Sorter recipe scope end core.register_node("pipeworks:item_void", { - description = "Item Void", + description = S("Item Void"), sounds = sbz_api.sounds.matter(), tiles = { { name = "trashcan.png" } }, groups = { cracky = 3, matter = 3, tubedevice = 1, tubedevice_receiver = 1 }, diff --git a/mods/sbz_pipeworks/basic_tubes.lua b/mods/sbz_pipeworks/basic_tubes.lua index 73872595..58a0e44f 100644 --- a/mods/sbz_pipeworks/basic_tubes.lua +++ b/mods/sbz_pipeworks/basic_tubes.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + pipeworks.register_tube('pipeworks:tube', { - description = 'Basic Tube', + description = S("Basic Tube"), sounds = sbz_api.sounds.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling } }, noctr = { { name = 'basic_tube_noctr.png', backface_culling = pipeworks.tube_backface_culling } }, @@ -20,7 +22,7 @@ do -- Basic Tube recipe scope end pipeworks.register_tube('pipeworks:accelerator_tube', { - description = 'Accelerating Tube', + description = S("Accelerating Tube"), sounds = sbz_api.sounds.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = 'springgreen' }, @@ -55,7 +57,7 @@ do -- Accelerator Tube recipe scope end pipeworks.register_tube('pipeworks:one_direction_tube', { - description = 'One Direction Tube', + description = S("One Direction Tube"), sounds = sbz_api.sounds.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = '#45283c' } }, noctr = { { name = 'basic_tube_noctr.png', backface_culling = pipeworks.tube_backface_culling, color = '#45283c' } }, @@ -132,7 +134,7 @@ do -- One Direction Tube recipe scope end pipeworks.register_tube('pipeworks:high_priority_tube', { - description = 'High Priority Tube', + description = S("High Priority Tube"), sounds = sbz_api.sounds.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = 'tomato' } }, noctr = { { name = 'basic_tube_noctr.png', backface_culling = pipeworks.tube_backface_culling, color = 'tomato' } }, @@ -156,7 +158,7 @@ do -- High Priority Tube recipe scope end pipeworks.register_tube('pipeworks:low_priority_tube', { - description = 'Low Priority Tube', + description = S("Low Priority Tube"), sounds = sbz_api.sounds.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = 'lightgreen' }, @@ -184,7 +186,7 @@ do -- Low Priority Tube recipe scope end core.register_node('pipeworks:one_way_tube', { - description = 'One-Way Tube', + description = S("One-Way Tube"), sounds = sbz_api.sounds.glass(), tiles = { { name = 'one_way_tube_top.png', backface_culling = pipeworks.tube_backface_culling }, @@ -245,7 +247,7 @@ do -- One Way Tube recipe scope end pipeworks.register_tube('pipeworks:crossing_tube', { - description = 'Crossing Tube', + description = S("Crossing Tube"), sounds = sbz_api.sounds.glass(), plain = { 'crossing_tube_plain.png' }, noctr = { 'crossing_tube_noctr.png' }, @@ -273,7 +275,7 @@ do -- Crossing Tube recipe scope end pipeworks.register_tube('pipeworks:broken_tube', { - description = 'Broken Tube', + description = S("Broken Tube"), sounds = sbz_api.sounds.glass(), plain = { { name = 'pipeworks_broken_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = 'red' }, diff --git a/mods/sbz_pipeworks/filter_injector.lua b/mods/sbz_pipeworks/filter_injector.lua index 9df2bc11..f05f976c 100644 --- a/mods/sbz_pipeworks/filter_injector.lua +++ b/mods/sbz_pipeworks/filter_injector.lua @@ -3,6 +3,8 @@ -- Patches: https://github.com/mt-mods/pipeworks/pull/154 by The4codeblocks (Heavily edited) +local S = core.get_translator(core.get_current_modname()) + local fs_helpers = pipeworks.fs_helpers local function set_filter_formspec(meta) @@ -41,7 +43,7 @@ local animation_def = { } core.register_node('pipeworks:automatic_filter_injector', { - description = 'Automatic Filter-Injector', + description = S("Automatic Filter-Injector"), sounds = sbz_api.sounds.matter(), info_extra = 'Pushes items out of containers.', tiles = { diff --git a/mods/sbz_pipeworks/luaentity.lua b/mods/sbz_pipeworks/luaentity.lua index 27c3cacc..917ca849 100644 --- a/mods/sbz_pipeworks/luaentity.lua +++ b/mods/sbz_pipeworks/luaentity.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local max_entity_id = 1000000000000 -- If you need more, there's a problem with your code local luaentity = {} @@ -435,7 +437,7 @@ end) core.register_chatcommand("remove_tube_entities", { - description = "Removes all tube entities, use when it lags", + description = S("Removes all tube entities, use when it lags"), privs = { ["server"] = true }, func = function(name, param) for id, luaent in pairs(luaentity.entities) do diff --git a/mods/sbz_pipeworks/pattern_storinator.lua b/mods/sbz_pipeworks/pattern_storinator.lua index 8e6e31be..affbe336 100644 --- a/mods/sbz_pipeworks/pattern_storinator.lua +++ b/mods/sbz_pipeworks/pattern_storinator.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local function check_and_act_if_filled(pos, meta, storage_or_inv, pattern) local storage if type(storage_or_inv) == 'userdata' then @@ -25,7 +27,7 @@ local h = core.hash_node_position core.register_node( 'pipeworks:pattern_storinator', unifieddyes.def { - description = 'Pattern Storinator', + description = S("Pattern Storinator"), sounds = sbz_api.sounds.wood_planks(), info_extra = '16 slots', groups = { diff --git a/mods/sbz_planets/orbs.lua b/mods/sbz_planets/orbs.lua index 521ccdd2..7bd73d46 100644 --- a/mods/sbz_planets/orbs.lua +++ b/mods/sbz_planets/orbs.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + --[[ Orb maker: needs all orbs to be crafted, makes orbs @@ -5,9 +7,9 @@ ]] core.register_craftitem("sbz_planets:dwarf_orb", { - description = "Dwarf Orb", + description = S("Dwarf Orb"), inventory_image = "dwarf_orb.png", - info_extra = "Used as a crafting replacement for matter annihilators, found naturally in dwarf planets", + info_extra = S("Used as a crafting replacement for matter annihilators, found naturally in dwarf planets"), }) do -- Dwarf Orb multiply recipe scope @@ -24,7 +26,7 @@ do -- Dwarf Orb multiply recipe scope end core.register_node("sbz_planets:dwarf_orb_ore", { - description = "Dwarf Orb Ore", + description = S("Dwarf Orb Ore"), sounds = sbz_api.sounds.matter(), groups = { matter = 1, antimatter = 1, ore = 1, level = 2, @@ -34,7 +36,7 @@ core.register_node("sbz_planets:dwarf_orb_ore", { }) core.register_node("sbz_planets:dwarf_stone", { - description = "Stone", + description = S("Stone"), sounds = sbz_api.sounds.matter(), tiles = { "stone.png" }, groups = { matter = 1, charged = 1, moss_growable = 1, not_in_creative_inventory = 1, explody = 10 }, diff --git a/mods/sbz_planets/planet_nodes.lua b/mods/sbz_planets/planet_nodes.lua index b7ccf17b..1bb1559d 100644 --- a/mods/sbz_planets/planet_nodes.lua +++ b/mods/sbz_planets/planet_nodes.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + --[[ dead planets: Crust: @@ -45,7 +47,7 @@ make_nofall 'sbz_resources:white_sand' core.register_node( 'sbz_planets:marble', unifieddyes.def { - description = 'Marble', + description = S("Marble"), tiles = { { name = 'marble.png', scale = 2, align_style = 'world' } }, groups = { matter = 1, charged = 1, explody = 10 }, sounds = sbz_api.sounds.matter(), @@ -55,7 +57,7 @@ core.register_node( stairs.register 'sbz_planets:marble' core.register_node('sbz_planets:basalt', { - description = 'Basalt', + description = S("Basalt"), tiles = { { name = 'basalt.png' } }, groups = { matter = 1, charged = 1, explody = 10 }, sounds = sbz_api.sounds.matter(), @@ -63,7 +65,7 @@ core.register_node('sbz_planets:basalt', { stairs.register 'sbz_planets:basalt' core.register_node('sbz_planets:red_stone', { - description = 'Red Stone', + description = S("Red Stone"), tiles = { { name = 'red_stone.png' } }, groups = { matter = 1, charged = 1, explody = 10 }, sounds = sbz_api.sounds.matter(), @@ -71,14 +73,14 @@ core.register_node('sbz_planets:red_stone', { stairs.register 'sbz_planets:red_stone' core.register_node('sbz_planets:red_stone', { - description = 'Red Stone', + description = S("Red Stone"), tiles = { { name = 'red_stone.png' } }, groups = { matter = 1, charged = 1, explody = 10 }, sounds = sbz_api.sounds.matter(), }) core.register_node('sbz_planets:thorium_ore', { - description = 'Thorium Ore', + description = S("Thorium Ore"), tiles = { { name = 'thorium_ore.png' } }, groups = { matter = 1, charged = 1, explody = 10, silktouch = 1, level = 2, ore = 1, radioactive = 1 }, sounds = sbz_api.sounds.matter(), @@ -94,14 +96,14 @@ core.register_ore { y_min = 2000, } core.register_node('sbz_planets:blue_stone', { - description = 'Blue Stone', + description = S("Blue Stone"), tiles = { { name = 'stone.png^[colorize:blue:128' } }, groups = { matter = 1, charged = 1, explody = 10 }, sounds = sbz_api.sounds.matter(), }) core.register_node('sbz_planets:uranium_ore', { - description = 'Uranium Ore', + description = S("Uranium Ore"), tiles = { { name = 'uranium_ore.png' } }, groups = { matter = 1, charged = 1, explody = 10, silktouch = 1, level = 2, ore = 1, radioactive = 1 }, sounds = sbz_api.sounds.matter(), @@ -122,7 +124,7 @@ core.register_ore { stairs.register 'sbz_planets:blue_stone' core.register_node('sbz_planets:granite', { - description = 'Granite', + description = S("Granite"), tiles = { { name = 'granite.png', align_style = 'world', scale = 2 } }, groups = { matter = 1, charged = 1, explody = 10 }, sounds = sbz_api.sounds.matter(), @@ -130,7 +132,7 @@ core.register_node('sbz_planets:granite', { stairs.register 'sbz_planets:granite' core.register_node('sbz_planets:dead_core', { - description = 'Dead Core Piece', + description = S("Dead Core Piece"), tiles = { 'dead_core_piece.png' }, groups = { matter = 1, charged = 1, explody = 1, level = 2 }, sounds = sbz_api.sounds.matter(), @@ -142,7 +144,7 @@ core.register_node('sbz_planets:dead_core', { -- +gravel core.register_node('sbz_planets:ice', { - description = 'Ice', + description = S("Ice"), tiles = { 'ice.png' }, groups = { matter = 1, water = 1, cold = 20, charged = 1, slippery = 5, explody = 20 }, sounds = sbz_api.sounds.ice(), @@ -151,7 +153,7 @@ core.register_node('sbz_planets:ice', { stairs.register 'sbz_planets:ice' core.register_node('sbz_planets:ice_core', { - description = 'Ice Core Piece - deprecated', + description = S("Ice Core Piece - deprecated"), tiles = { 'ice_core_piece.png' }, groups = { matter = 1, charged = 1, slippery = (2 ^ 15) - 1, explody = 10, level = 2 }, sounds = sbz_api.sounds.ice(), @@ -160,7 +162,7 @@ core.register_node('sbz_planets:ice_core', { }) core.register_node('sbz_planets:snow', { - description = 'Snow', + description = S("Snow"), tiles = { 'snow.png' }, drawtype = 'liquid', paramtype = 'light', @@ -192,7 +194,7 @@ local snow_box = { } core.register_node('sbz_planets:snow_layer', { - description = 'Snow layer', + description = S("Snow layer"), tiles = { 'snow.png', 'blank.png', 'snow.png' }, use_texture_alpha = 'clip', drawtype = 'nodebox', @@ -220,12 +222,12 @@ core.register_node('sbz_planets:snow_layer', { }) core.register_craftitem('sbz_planets:snowball', { - description = 'Snowball', + description = S("Snowball"), inventory_image = 'snowball.png', }) core.register_node('sbz_planets:colorium_core', { - description = 'Colorium Core Piece - Deprecated', + description = S("Colorium Core Piece - Deprecated"), tiles = { 'blank.png^[invert:rgba' }, groups = { matter = 1, charged = 1, slippery = (2 ^ 15) - 1, explody = 1, level = 2, not_in_creative_inventory = 1 }, sounds = sbz_api.sounds.matter(), @@ -236,7 +238,7 @@ core.register_node('sbz_planets:colorium_core', { local water_color = '#576ee180' core.register_node('sbz_planets:water_source_nofall', { - description = 'Not Water', + description = S("Not Water"), sounds = { footstep = { name = 'mix_notwater_step' } }, @@ -262,7 +264,7 @@ core.register_node('sbz_planets:water_source_nofall', { }) core.register_node('sbz_planets:colorium_mapgen_sapling', { - description = 'Mapgen Sapling (I guess you just got an instant sapling. lol.)', + description = S("Mapgen Sapling (I guess you just got an instant sapling. lol.)"), -- drop = "", groups = { not_in_creative_inventory = 1 }, drawtype = 'allfaces', diff --git a/mods/sbz_planets/planet_teleporter.lua b/mods/sbz_planets/planet_teleporter.lua index 73c53421..e23026bb 100644 --- a/mods/sbz_planets/planet_teleporter.lua +++ b/mods/sbz_planets/planet_teleporter.lua @@ -1,8 +1,10 @@ +local S = core.get_translator(core.get_current_modname()) + local mg_limit = tonumber(core.settings:get("mapgen_limit")) or 31007 local mg_vector = vector.new(mg_limit, mg_limit, mg_limit) core.register_node("sbz_planets:planet_teleporter", { info_extra = "Teleports you to a planet. Insert a warp crystal to get teleported.", - description = "Planet Teleporter", + description = S("Planet Teleporter"), sounds = sbz_api.sounds.matter(), tiles = { "planet_teleporter.png" }, groups = { matter = 1, level = 2 }, diff --git a/mods/sbz_power/batteries.lua b/mods/sbz_power/batteries.lua index 3a06bc83..053c3745 100644 --- a/mods/sbz_power/batteries.lua +++ b/mods/sbz_power/batteries.lua @@ -1,5 +1,6 @@ -local storage = core.get_mod_storage() +local S = core.get_translator(core.get_current_modname()) +local storage = core.get_mod_storage() function sbz_power.register_battery(name, def) for k, v in pairs { sbz_battery = 1, sbz_machine = 1, pipe_connects = 1, pipe_conducts = 1 } do @@ -29,7 +30,7 @@ function sbz_power.register_battery(name, def) end sbz_power.register_battery("sbz_power:battery", { - description = "Battery", + description = S("Battery"), sounds = sbz_api.sounds.matter(), tiles = { "battery.png" }, groups = { matter = 1 }, @@ -52,7 +53,7 @@ do -- Battery recipe scope end sbz_power.register_battery("sbz_power:advanced_battery", { - description = "Advanced Battery", + description = S("Advanced Battery"), sounds = sbz_api.sounds.matter(), tiles = { "advanced_battery.png" }, groups = { matter = 1 }, @@ -74,7 +75,7 @@ do -- Advanced Battery recipe scope end sbz_power.register_battery("sbz_power:very_advanced_battery", { - description = "Very Advanced Battery", + description = S("Very Advanced Battery"), sounds = sbz_api.sounds.matter(), tiles = { "very_advanced_battery.png" }, groups = { matter = 1, level = 2 }, @@ -114,7 +115,7 @@ local function set_tp_battery_formspec(pos) end sbz_power.register_battery("sbz_power:teleport_battery", { - description = "Teleport Battery", + description = S("Teleport Battery"), sounds = sbz_api.sounds.matter(), tiles = { "teleport_battery.png" }, groups = { matter = 1, level = 2 }, @@ -245,7 +246,7 @@ do -- Teleport Battery recipe scope end core.register_node("sbz_power:creative_battery", { - description = "Creative Power Generating Battery", + description = S("Creative Power Generating Battery"), sounds = sbz_api.sounds.matter(), info_extra = "It never runs out of power... useful for when you need to not have noise in your \"Supply\" statistic in the switching station.", @@ -260,7 +261,7 @@ core.register_node("sbz_power:creative_battery", { }) core.register_node("sbz_power:real_creative_battery", { - description = "Creative Battery", + description = S("Creative Battery"), sounds = sbz_api.sounds.matter(), tiles = { "creative_battery.png" }, groups = { creative = 1, sbz_battery = 1, sbz_machine = 1, pipe_conducts = 1, pipe_connects = 1, matter = 3 }, diff --git a/mods/sbz_power/connectors.lua b/mods/sbz_power/connectors.lua index 5e98b63a..cf3ed4c0 100644 --- a/mods/sbz_power/connectors.lua +++ b/mods/sbz_power/connectors.lua @@ -1,7 +1,9 @@ +local S = core.get_translator(core.get_current_modname()) + local hash = core.hash_node_position core.register_node("sbz_power:connector_off", { - description = "Connector", + description = S("Connector"), sounds = sbz_api.sounds.matter(), drawtype = "nodebox", paramtype = "light", @@ -47,7 +49,7 @@ core.register_node("sbz_power:connector_off", { }) core.register_node("sbz_power:connector_on", { - description = "Connector", + description = S("Connector"), sounds = sbz_api.sounds.matter(), drawtype = "nodebox", paramtype = "light", diff --git a/mods/sbz_power/ele_fab.lua b/mods/sbz_power/ele_fab.lua index b9b47077..04d35868 100644 --- a/mods/sbz_power/ele_fab.lua +++ b/mods/sbz_power/ele_fab.lua @@ -1,5 +1,7 @@ -- concept shamelessly borrowed from techage +local S = core.get_translator(core.get_current_modname()) + local animation_def = { type = "vertical_frames", aspect_w = 16, @@ -47,7 +49,7 @@ local function get_possible_recipe(list, rtype, inv) end unified_inventory.register_craft_type("ele_fab", { - description = "Ele Fab", + description = S("Ele Fab"), icon = "ele_fab.png^[verticalframe:8:1", width = 2, height = 2, @@ -98,7 +100,7 @@ unified_inventory.register_craft { local power_needed = 30 sbz_api.register_stateful_machine("sbz_power:ele_fab", { - description = "Ele Fab", + description = S("Ele Fab"), sounds = sbz_api.sounds.matter(), info_extra = "Yeah the concept is from techage.", tiles = { diff --git a/mods/sbz_power/emittrium_reactor.lua b/mods/sbz_power/emittrium_reactor.lua index 5c3ca710..80aff99f 100644 --- a/mods/sbz_power/emittrium_reactor.lua +++ b/mods/sbz_power/emittrium_reactor.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- This code is garbage, avoid it if you can -- Rewrite if you must @@ -27,7 +29,7 @@ local function try_linking(pos, meta) end core.register_node('sbz_power:reactor_shell', { - description = 'Reactor Shell', + description = S("Reactor Shell"), sounds = sbz_api.sounds.machine(), info_extra = 'Used for the emittrium reactor', tiles = { @@ -54,7 +56,7 @@ do -- Reactor Shell recipe scope end core.register_node('sbz_power:reactor_glass', { - description = 'Reactor Glass', + description = S("Reactor Glass"), info_extra = 'Decorative; acts like a shell', tiles = { 'reactor_shell.png', @@ -84,7 +86,7 @@ end local reactor_shell = 'blank.png^[invert:rgba^[multiply:#639bFF^reactor_shell.png' core.register_node('sbz_power:reactor_item_input', { - description = 'Reactor Emittrium Input', + description = S("Reactor Emittrium Input"), sounds = sbz_api.sounds.machine(), info_extra = 'ONLY ONE can be used in an emittrium reactor, supplies emittrium to the reactor core', groups = { matter = 1, reactor_shell = 1, tubedevice = 1, tubedevice_receiver = 1, explody = 1, charged = 1 }, @@ -135,7 +137,7 @@ do -- Reactor Emittrium Input recipe scope end sbz_api.register_stateful('sbz_power:reactor_core', { - description = 'Reactor Core', + description = S("Reactor Core"), sounds = sbz_api.sounds.machine(), info_extra = "Don't let it explode!", tiles = { @@ -213,7 +215,7 @@ local function make_infoscreen_off_formspec(meta) end core.register_node('sbz_power:reactor_infoscreen', { - description = 'Reactor Infoscreen', + description = S("Reactor Infoscreen"), sounds = sbz_api.sounds.machine(), paramtype2 = '4dir', tiles = { @@ -319,7 +321,7 @@ do -- Reactor Infoscreen recipe scope end sbz_api.register_generator('sbz_power:reactor_power_port', { - description = 'Reactor Power Port', + description = S("Reactor Power Port"), sounds = sbz_api.sounds.machine(), paramtype2 = '4dir', tiles = { @@ -364,7 +366,7 @@ do -- Reactor Power Port recipe scope end core.register_node('sbz_power:reactor_coolant_port', { - description = 'Reactor Coolant Port', + description = S("Reactor Coolant Port"), sounds = sbz_api.sounds.machine(), info_extra = 'Provide it water', paramtype2 = '4dir', diff --git a/mods/sbz_power/extractor.lua b/mods/sbz_power/extractor.lua index 3c75d796..179fd5bc 100644 --- a/mods/sbz_power/extractor.lua +++ b/mods/sbz_power/extractor.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- Simple Extractor Node local formspec = [[ @@ -10,7 +12,7 @@ local formspec = [[ ]] sbz_api.register_machine('sbz_power:simple_matter_extractor', { - description = 'Simple Matter Extractor', + description = S("Simple Matter Extractor"), sounds = sbz_api.sounds.matter(), tiles = { 'simple_matter_extractor.png' }, groups = { matter = 1, sbz_machine = 1, pipe_connects = 1 }, @@ -84,7 +86,7 @@ local advanced_formspec = [[ ]] sbz_api.register_machine('sbz_power:advanced_matter_extractor', { - description = 'Advanced Matter Extractor', + description = S("Advanced Matter Extractor"), sounds = sbz_api.sounds.matter(), tiles = { 'advanced_matter_extractor.png' }, groups = { matter = 1, sbz_machine = 1, pipe_connects = 1 }, diff --git a/mods/sbz_power/fluid_transport.lua b/mods/sbz_power/fluid_transport.lua index 9429abaa..2a17608c 100644 --- a/mods/sbz_power/fluid_transport.lua +++ b/mods/sbz_power/fluid_transport.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- "entirety of fluid transport in 1 file, seriously?... even in the sbz_power mod... like bro" -- - frog, writing to past self @@ -49,7 +51,7 @@ end local wire_size = 3 / 16 core.register_node("sbz_power:fluid_pipe", { - description = "Fluid Pipe", + description = S("Fluid Pipe"), sounds = sbz_api.sounds.glass(), info_extra = "Transports liquid", @@ -200,7 +202,7 @@ function fluid_transport.pump(start_pos, liquid_stack, frompos) end sbz_api.register_stateful_machine("sbz_power:pump", { - description = "Fluid Pump", + description = S("Fluid Pump"), sounds = sbz_api.sounds.machine(), autostate = true, paramtype2 = "facedir", @@ -340,7 +342,7 @@ do end sbz_api.register_stateful_machine("sbz_power:creative_pump", { - description = "Creative Pump", + description = S("Creative Pump"), sounds = sbz_api.sounds.machine(), autostate = true, paramtype2 = "facedir", @@ -472,7 +474,7 @@ sbz_api.register_stateful_machine("sbz_power:creative_pump", { }) core.register_node("sbz_power:fluid_tank", { - description = "Fluid Storage Tank", + description = S("Fluid Storage Tank"), sounds = sbz_api.sounds.machine(), groups = { matter = 1, fluid_pipe_connects = 1, fluid_pipe_stores = 1, ui_fluid = 1 }, tiles = { @@ -525,7 +527,7 @@ do -- Fluid Tank recipe scope end sbz_api.register_stateful_machine("sbz_power:fluid_capturer", { - description = "Fluid Capturer", + description = S("Fluid Capturer"), sounds = sbz_api.sounds.machine(), autostate = true, tiles = { @@ -605,7 +607,7 @@ do -- Fluid Capturer recipe scope end sbz_api.register_machine("sbz_power:fluid_cell_filler", { - description = "Fluid Cell Filler", + description = S("Fluid Cell Filler"), sounds = sbz_api.sounds.machine(), tiles = { "fluid_tank_top.png", diff --git a/mods/sbz_power/generator.lua b/mods/sbz_power/generator.lua index c4dee5c7..24bb03b6 100644 --- a/mods/sbz_power/generator.lua +++ b/mods/sbz_power/generator.lua @@ -1,9 +1,11 @@ +local S = core.get_translator(core.get_current_modname()) + local core_dust_power = 30 local charged_particle_power = 36 -- 30*10 => 300 power per core dust -- 36*10 => 360 power per charged particle sbz_api.register_stateful_generator('sbz_power:simple_charge_generator', { - description = 'Simple Charge Generator', + description = S("Simple Charge Generator"), sounds = sbz_api.sounds.machine(), tiles = { 'simple_charge_generator_off.png' }, @@ -118,7 +120,7 @@ do -- Simple Charge Generator recipe scope end sbz_api.register_generator('sbz_power:simple_charged_field', { - description = 'Simple Charged Field', + description = S("Simple Charged Field"), drawtype = 'glasslike', tiles = { 'simple_charged_field.png' }, groups = { dig_immediate = 2, cracky = 3, sbz_machine = 1, explody = 5, charged = 1, charged_field = 1 }, @@ -233,7 +235,7 @@ core.register_abm { } core.register_node('sbz_power:charged_field_residue', { - description = 'Charged Field Residue', + description = S("Charged Field Residue"), drawtype = 'glasslike', tiles = { 'charged_field_residue.png' }, groups = { unbreakable = 1, charged_field = 1 }, @@ -262,7 +264,7 @@ core.register_abm { } core.register_node('sbz_power:solid_charged_field', { - description = 'Solid Charged Field', + description = S("Solid Charged Field"), info_extra = 'Used for protecting against radiation.', tiles = { 'solid_charged_field.png' }, groups = { dig_immediate = 2, matter = 1, explody = 5, charged = 1, charged_field = 1 }, @@ -285,7 +287,7 @@ sbz_api.recipe.register_craft { -- Starlight Collector sbz_api.register_generator('sbz_power:starlight_collector', { - description = 'Starlight Collector', + description = S("Starlight Collector"), sounds = sbz_api.sounds.matter(), drawtype = 'nodebox', tiles = { @@ -408,10 +410,10 @@ local function stop_agen_active_sound(pos) end sbz_api.register_stateful_generator('sbz_power:antimatter_generator', { - description = 'Antimatter Generator', + description = S("Antimatter Generator"), info_extra = { - 'Generates 600 power', - 'Needs 1 antimatter/s and 1 matter/s', + S("Generates 600 power"), + S("Needs 1 antimatter/s and 1 matter/s"), }, groups = { matter = 1, pipe_connects = 1, disallow_pipeworks = 1, tubedevice = 1, tubedevice_receiver = 1 }, tiles = { @@ -607,7 +609,7 @@ do -- Antimatter Generator recipe scope end sbz_api.register_generator('sbz_power:creative_generator', { - description = 'Creative Generator', + description = S("Creative Generator"), sounds = sbz_api.sounds.machine(), tiles = { { diff --git a/mods/sbz_power/infinite_storinator.lua b/mods/sbz_power/infinite_storinator.lua index 4d60a3c7..4a79fd1b 100644 --- a/mods/sbz_power/infinite_storinator.lua +++ b/mods/sbz_power/infinite_storinator.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + sbz_api.register_machine('sbz_power:infinite_storinator', { - description = 'Infinite Storinator (deprecated)', + description = S("Infinite Storinator (deprecated)"), sounds = sbz_api.sounds.wood_planks(), paramtype2 = 'facedir', groups = { matter = 1, not_in_creative_inventory = 1 }, diff --git a/mods/sbz_power/lights.lua b/mods/sbz_power/lights.lua index 77fd47c2..ad7747a8 100644 --- a/mods/sbz_power/lights.lua +++ b/mods/sbz_power/lights.lua @@ -1,6 +1,8 @@ +local S = core.get_translator(core.get_current_modname()) + local cost = 1 sbz_api.register_stateful_machine("sbz_power:powered_lamp", { - description = "Powered Lamp", + description = S("Powered Lamp"), sounds = sbz_api.sounds.glass(), tiles = { "power_lamp_off.png^[colorize:black:50" }, light_source = 0, @@ -23,7 +25,7 @@ sbz_api.register_stateful_machine("sbz_power:powered_lamp", { -- https://github.com/mt-mods/technic/blob/32f1d5a9e76a17b075259b0824db29730c9beb06/technic/machines/LV/lamp.lua#L15 -- i used that to help with the registration core.register_node("sbz_power:funny_air", { - description = "Funny air (YOU HACKER YOU!!!!)", + description = S("Funny air (YOU HACKER YOU!!!!)"), info_extra = "You weren't technically supposed to obtain this but you can, if you have added some mod soup on top of this.", drawtype = "airlike", @@ -89,7 +91,7 @@ local function undo_illuminate(pos) end sbz_api.register_stateful_machine("sbz_power:super_powered_lamp", { - description = "Super Powered Lamp", + description = S("Super Powered Lamp"), sounds = sbz_api.sounds.glass(), tiles = { "super_power_lamp_off.png^[colorize:black:50" }, light_source = 0, diff --git a/mods/sbz_power/manual_crafter.lua b/mods/sbz_power/manual_crafter.lua index 136fc70b..a37f6dd5 100644 --- a/mods/sbz_power/manual_crafter.lua +++ b/mods/sbz_power/manual_crafter.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + --- The manual crafter doesn't support replacing stacks in recipes local notify = core.chat_send_player @@ -155,7 +157,7 @@ local function craft(user, meta) end core.register_node('sbz_power:manual_crafter', { - description = 'Manual Crafter', + description = S("Manual Crafter"), info_extra = 'May be faster than navigating the inventory. See questbook for controls.', tiles = { 'manual_crafter.png' }, on_construct = function(pos) diff --git a/mods/sbz_power/misc.lua b/mods/sbz_power/misc.lua index f7193020..7ffa5ca9 100644 --- a/mods/sbz_power/misc.lua +++ b/mods/sbz_power/misc.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + sbz_api.register_stateful_machine("sbz_power:phosphor", unifieddyes.def { - description = "Phosphor", + description = S("Phosphor"), sounds = sbz_api.sounds.glass(), paramtype = "light", sunlight_propagates = true, @@ -59,7 +61,7 @@ local function vacuum(pos, radius, inv) end core.register_chatcommand("clearitems", { - description = "Like clearobjects but only for items, and only quick", + description = S("Like clearobjects but only for items, and only quick"), privs = { ["server"] = true }, func = function(name, param) for k, obj in pairs(core.object_refs) do @@ -81,7 +83,7 @@ local item_vaccum_power_demand = 20 -- frog here: this mod depends on pipeworks to add pipeworks support... sbz_api.register_machine("sbz_power:item_vacuum", { - description = "Item Vacuum", + description = S("Item Vacuum"), sounds = sbz_api.sounds.machine(), tiles = { "item_vacuum.png" }, groups = { diff --git a/mods/sbz_power/phlogiston_fuser.lua b/mods/sbz_power/phlogiston_fuser.lua index 0b0c431e..37594c5c 100644 --- a/mods/sbz_power/phlogiston_fuser.lua +++ b/mods/sbz_power/phlogiston_fuser.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local function allow_metadata_inventory_put(pos, listname, index, stack, player) if listname == "dst" then return 0 @@ -13,7 +15,7 @@ end local ticks = 60 * 3 -- 3 minutes... yeah sbz_api.register_stateful_machine("sbz_power:phlogiston_fuser", { - description = "Phlogiston Fuser", + description = S("Phlogiston Fuser"), sounds = sbz_api.sounds.machine(), tiles = { "phlogiston_fuser_side.png", diff --git a/mods/sbz_power/power_pipes.lua b/mods/sbz_power/power_pipes.lua index ac8310bf..45b1be20 100644 --- a/mods/sbz_power/power_pipes.lua +++ b/mods/sbz_power/power_pipes.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local function wire(len, stretch_to) local full = 0.5 local base_box = { -len, -len, -len, len, len, len } @@ -22,7 +24,7 @@ local wire_size = 1 / 8 core.register_node( 'sbz_power:power_pipe', unifieddyes.def { - description = 'Emittrium Power Cable', + description = S("Emittrium Power Cable"), sounds = sbz_api.sounds.matter(), connects_to = { 'group:pipe_connects' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, @@ -65,7 +67,7 @@ do -- Emit end core.register_node('sbz_power:airtight_power_cable', { - description = 'Airtight Emittrium Power Cable', + description = S("Airtight Emittrium Power Cable"), connects_to = { 'group:pipe_connects' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, diff --git a/mods/sbz_power/sensors/delayer.lua b/mods/sbz_power/sensors/delayer.lua index 4c753d6e..f7a28c9d 100644 --- a/mods/sbz_power/sensors/delayer.lua +++ b/mods/sbz_power/sensors/delayer.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + sbz_api.register_stateful("sbz_power:delayer", unifieddyes.def { - description = "Delayer", + description = S("Delayer"), sounds = sbz_api.sounds.matter(), info_extra = "It is not a machine, but conducts power, it is ran on node timers.\nIt may stop when you are not near it, if it isn't forceloaded. You can alternatively use buffer gates connected in a slow way.", tiles = { diff --git a/mods/sbz_power/sensors/gates.lua b/mods/sbz_power/sensors/gates.lua index ce5f9bfb..684726bd 100644 --- a/mods/sbz_power/sensors/gates.lua +++ b/mods/sbz_power/sensors/gates.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- Logic gates -- they are stateful machines yeah @@ -41,7 +43,7 @@ local function make_tex_off(tex) return make_tex_on(tex) .. "^[hsl:0:0:-30" end sbz_api.register_stateful_machine("sbz_power:lgate_not", def { - description = "NOT gate", + description = S("NOT gate"), sounds = sbz_api.sounds.matter(), tiles = { make_tex_off("not") @@ -60,7 +62,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_not", def { }) sbz_api.register_stateful_machine("sbz_power:lgate_buffer", def { - description = "Buffer gate", + description = S("Buffer gate"), sounds = sbz_api.sounds.matter(), info_extra = "whats the use for this again...", tiles = { @@ -110,7 +112,7 @@ local function lgate_action(func) end sbz_api.register_stateful_machine("sbz_power:lgate_or", def { - description = "OR gate", + description = S("OR gate"), sounds = sbz_api.sounds.matter(), tiles = { make_tex_off("or") @@ -129,7 +131,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_or", def { }) sbz_api.register_stateful_machine("sbz_power:lgate_nor", def { - description = "NOR gate", + description = S("NOR gate"), sounds = sbz_api.sounds.matter(), tiles = { make_tex_off("nor") @@ -148,7 +150,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_nor", def { }) sbz_api.register_stateful_machine("sbz_power:lgate_and", def { - description = "AND gate", + description = S("AND gate"), sounds = sbz_api.sounds.matter(), tiles = { make_tex_off("and") @@ -167,7 +169,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_and", def { }) sbz_api.register_stateful_machine("sbz_power:lgate_nand", def { - description = "NAND gate", + description = S("NAND gate"), sounds = sbz_api.sounds.matter(), tiles = { make_tex_off("nand") @@ -186,7 +188,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_nand", def { }) sbz_api.register_stateful_machine("sbz_power:lgate_xor", def { - description = "XOR gate", + description = S("XOR gate"), sounds = sbz_api.sounds.matter(), tiles = { make_tex_off("xor") @@ -205,7 +207,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_xor", def { }) sbz_api.register_stateful_machine("sbz_power:lgate_xnor", def { - description = "XNOR gate", + description = S("XNOR gate"), sounds = sbz_api.sounds.matter(), tiles = { make_tex_off("xnor") @@ -232,7 +234,7 @@ function sbz_api.make_sensor_tex_off(tex) end sbz_api.register_stateful_machine("sbz_power:machine_controller", unifieddyes.def { - description = "Machine Controller", + description = S("Machine Controller"), sounds = sbz_api.sounds.machine(), tiles = { sbz_api.make_sensor_tex_off("machine_controller") diff --git a/mods/sbz_power/sensors/item_sensor.lua b/mods/sbz_power/sensors/item_sensor.lua index d3a60c1e..eac446be 100644 --- a/mods/sbz_power/sensors/item_sensor.lua +++ b/mods/sbz_power/sensors/item_sensor.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local index_to_dir = { [0] = "Up", @@ -38,7 +40,7 @@ dropdown[3.4,1.6;3,1;direction;Up,Down,North,South,West,East;%s;true] end sbz_api.register_stateful_machine("sbz_power:item_sensor", unifieddyes.def { - description = "Item Sensor", + description = S("Item Sensor"), sounds = sbz_api.sounds.matter(), info_extra = "Checks if a machine can be inserted to with an item.\nYou can use it to attempt to optimize your giant instatube set up i guess.", tiles = { diff --git a/mods/sbz_power/sensors/node_sensors.lua b/mods/sbz_power/sensors/node_sensors.lua index 40706744..64c04b09 100644 --- a/mods/sbz_power/sensors/node_sensors.lua +++ b/mods/sbz_power/sensors/node_sensors.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- light, node type -- i hope its performant at least a little bit @@ -45,7 +47,7 @@ button[4,1.5;1,0.5;save;Save] end sbz_api.register_stateful_machine("sbz_power:light_sensor", unifieddyes.def { - description = "Light Sensor", + description = S("Light Sensor"), sounds = sbz_api.sounds.matter(), info_extra = "Doesn't emit light when turned on", tiles = { @@ -178,7 +180,7 @@ button[7,1.5;1,0.5;save;Save] end -- NODE SENSOR sbz_api.register_stateful_machine("sbz_power:node_sensor", unifieddyes.def { - description = "Node Sensor", + description = S("Node Sensor"), sounds = sbz_api.sounds.matter(), tiles = { sbz_api.make_sensor_tex_off("node_detector") diff --git a/mods/sbz_power/sensors/sensor_linker.lua b/mods/sbz_power/sensors/sensor_linker.lua index 9a6b5d78..68fa7889 100644 --- a/mods/sbz_power/sensors/sensor_linker.lua +++ b/mods/sbz_power/sensors/sensor_linker.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local render_links_delay = 1 local waypoint_ids = {} @@ -182,12 +184,12 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end) minetest.register_craftitem('sbz_power:sensor_linker', { - description = 'Sensor Linker', + description = S("Sensor Linker"), info_extra = { - 'Right click: asks for a name, if a block is pointed to, links to the to the sensor.', - 'Left click: uses the previous name from when you right clicked, links it to the sensor.', - 'Aux1 + right click/left click: Links the tool to the sensor.', - "If you hold it, it should show all the links and the sensor's linking radius.", + S("Right click: asks for a name, if a block is pointed to, links to the to the sensor."), + S("Left click: uses the previous name from when you right clicked, links it to the sensor."), + S("Aux1 + right click/left click: Links the tool to the sensor."), + S("If you hold it, it should show all the links and the sensor's linking radius."), }, inventory_image = 'sensor_linker.png', range = 10, diff --git a/mods/sbz_power/sensors/sensors_player_facing.lua b/mods/sbz_power/sensors/sensors_player_facing.lua index 16ebacea..331e06d3 100644 --- a/mods/sbz_power/sensors/sensors_player_facing.lua +++ b/mods/sbz_power/sensors/sensors_player_facing.lua @@ -1,9 +1,11 @@ +local S = core.get_translator(core.get_current_modname()) + -- "placer facing" = things like buttons --- should have 2 nodes: a private variant, and a public variant --- usually not machines, afterall they don't need to be +-- Should have 2 nodes: a private variant, and a public variant. +-- Usually not machines. After all, they don't need to be. for _, variant in pairs { "public", "private" } do sbz_api.register_stateful("sbz_power:switch_" .. variant, unifieddyes.def { - description = "Switch " .. "(" .. variant .. ")", + description = S("Switch " .. "(" .. variant .. ")"), tiles = { "lgate_base.png", "lgate_base.png", diff --git a/mods/sbz_power/starlight_catcher.lua b/mods/sbz_power/starlight_catcher.lua index bcf3fcc6..dd954cfb 100644 --- a/mods/sbz_power/starlight_catcher.lua +++ b/mods/sbz_power/starlight_catcher.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local pos2network = {} local networks = {} @@ -21,7 +23,7 @@ local remove_nets = function(pos) end core.register_node("sbz_power:starlight_catcher", { - description = "Starlight Catcher", + description = S("Starlight Catcher"), sounds = sbz_api.sounds.matter(), info_extra = "For those who insist on starlight collectors.\n Generates energy and is less laggy in large quantities.\n It generates energy that can be converted to 1Cj/s. ", @@ -96,7 +98,7 @@ local assemble_network = function(start_pos) end sbz_api.register_generator("sbz_power:photon_energy_converter", { - description = "Photon-Energy Converter", + description = S("Photon-Energy Converter"), sounds = sbz_api.sounds.matter(), info_extra = "Converts energy provided by starlight catchers to cosmic joules.\nFor maximum possible lag-reduction during construction, place this component last. (So for about 10 000 starlight catchers, you should consider it.)", diff --git a/mods/sbz_power/switching_station.lua b/mods/sbz_power/switching_station.lua index 42d605ef..dcac1f53 100644 --- a/mods/sbz_power/switching_station.lua +++ b/mods/sbz_power/switching_station.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + ---@type string|boolean|nil local unload_switching_stations = core.settings:get('sbz_switching_station_unload') if unload_switching_stations == nil or unload_switching_stations == 'default' then @@ -455,7 +457,7 @@ button_exit[0,10;12,1;exit;Exit] end core.register_node('sbz_power:switching_station', { - description = 'Switching Station', + description = S("Switching Station"), sounds = sbz_api.sounds.matter(), tiles = { 'switching_station.png' }, groups = { matter = 1, cracky = 1, pipe_connects = 1, pipe_conducts = 1 }, @@ -582,7 +584,7 @@ mesecon.register_on_mvps_move(function(moved_nodes) end) core.register_chatcommand('toggle_power', { - description = 'Toggles if switching stations are enabled or not', + description = S("Toggles if switching stations are enabled or not"), params = '', privs = { ['server'] = true }, @@ -707,7 +709,7 @@ sbz_api.make_network_visible = function(p1, p2, net) end core.register_chatcommand('teleport_to_laggiest_switching_station', { - description = 'Teleports to the laggiest switching station, useful to diagnose issues with skyblock zero on multiplayer.', + description = S("Teleports to the laggiest switching station, useful to diagnose issues with skyblock zero on multiplayer."), privs = { ['server'] = true }, func = function(name, param) local pos = nil diff --git a/mods/sbz_power/testnodes.lua b/mods/sbz_power/testnodes.lua index 07715807..35a738ea 100644 --- a/mods/sbz_power/testnodes.lua +++ b/mods/sbz_power/testnodes.lua @@ -1,7 +1,9 @@ +local S = core.get_translator(core.get_current_modname()) + local times = {} local h = core.hash_node_position sbz_api.register_machine("sbz_power:testmach", { - description = "Test machine", + description = S("Test machine"), sounds = sbz_api.sounds.machine(), action = function(pos, node, meta, supply, demand) local t = times[core.hash_node_position(pos)] or 0 diff --git a/mods/sbz_power/turret.lua b/mods/sbz_power/turret.lua index 832c926d..5600d4c4 100644 --- a/mods/sbz_power/turret.lua +++ b/mods/sbz_power/turret.lua @@ -1,3 +1,5 @@ +local S, PS = core.get_translator(core.get_current_modname()) + core.register_entity("sbz_power:turret_entity", { initial_properties = { visual = "mesh", @@ -70,12 +72,12 @@ end local range = 120 local power_use = 30 sbz_api.register_machine("sbz_power:turret", { - description = "Automatic Turret", + description = S("Automatic Turret"), sounds = sbz_api.sounds.glass(), drawtype = "glasslike", info_extra = { - "Shoots things like lasers.", - "Range: " .. range .. " nodes", + S("Shoots things like lasers."), + PS("Range: @1 node", "Range: @1 nodes", range, tostring(range)), }, power_needed = 50, tiles = { "gravitational_repulsor.png" }, diff --git a/mods/sbz_resources/basic_resources.lua b/mods/sbz_resources/basic_resources.lua index 862eee72..2285aec0 100644 --- a/mods/sbz_resources/basic_resources.lua +++ b/mods/sbz_resources/basic_resources.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + unified_inventory.register_craft_type("punching", { - description = "Punching", + description = S("Punching"), icon = "robotic_arm.png^[transformR90", width = 1, height = 1, @@ -12,7 +14,7 @@ unified_inventory.register_craft_type("punching", { -- The basis of all progression -- Core Drops minetest.register_craftitem("sbz_resources:core_dust", { - description = "Core Dust", + description = S("Core Dust"), inventory_image = "core_dust.png", stack_max = 256, }) @@ -34,7 +36,7 @@ unified_inventory.register_craft { } minetest.register_craftitem("sbz_resources:matter_dust", { - description = "Matter Dust", + description = S("Matter Dust"), inventory_image = "matter_dust.png", stack_max = 256, }) @@ -54,7 +56,7 @@ unified_inventory.register_craft { } minetest.register_craftitem("sbz_resources:charged_particle", { - description = "Charged Particle", + description = S("Charged Particle"), inventory_image = "charged_particle.png", stack_max = 256, }) @@ -76,7 +78,7 @@ unified_inventory.register_craft { -- Other Items minetest.register_craftitem("sbz_resources:antimatter_dust", { - description = "Antimatter Dust", + description = S("Antimatter Dust"), inventory_image = "antimatter_dust.png", stack_max = 256, }) diff --git a/mods/sbz_resources/bomb.lua b/mods/sbz_resources/bomb.lua index 58132567..60ba3a60 100644 --- a/mods/sbz_resources/bomb.lua +++ b/mods/sbz_resources/bomb.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- can be stacked in water for extra... bad.... local function detonate(obj, owner) @@ -42,7 +44,7 @@ core.register_entity("sbz_resources:bomb_stick_entity", { }) core.register_craftitem("sbz_resources:bomb_stick", { - description = "TNT Stick\n" .. core.colorize("#ffff00", "Ability: Throw (Left-Click)") .. " Throw the TNT Stick, which will explode when it lands.", + description = S("TNT Stick\n" .. core.colorize("#ffff00", "Ability: Throw (Left-Click)") .. " Throw the TNT Stick, which will explode when it lands."), wield_scale = { x = 1, y = 1, z = 2.5 }, wield_image = "bomb_stick_wield.png", inventory_image = "bomb_stick_inv.png", @@ -117,7 +119,7 @@ core.register_entity("sbz_resources:bomb_entity", { }) core.register_node("sbz_resources:bomb", { - description = "TNT", + description = S("TNT"), tiles = { "bomb_top.png", "bomb_top.png", diff --git a/mods/sbz_resources/crystals.lua b/mods/sbz_resources/crystals.lua index acb69b65..602af337 100644 --- a/mods/sbz_resources/crystals.lua +++ b/mods/sbz_resources/crystals.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_entity("sbz_resources:warp_crystal_entity", { initial_properties = { visual = "sprite", @@ -56,7 +58,7 @@ core.register_entity("sbz_resources:warp_crystal_entity", { }) core.register_craftitem("sbz_resources:warp_crystal", { - description = "Warp Crystal", + description = S("Warp Crystal"), inventory_image = "warp_crystal.png", info_extra = "You can throw it. Also if you throw it at an entity/player you will swap places.", on_use = function(stack, placer, pointed) @@ -84,17 +86,17 @@ sbz_api.recipe.register_craft { } core.register_craftitem(":sbz_chem:uranium_crystal", { - description = "Uranium Crystal", + description = S("Uranium Crystal"), inventory_image = "uranium_crystal.png", }) core.register_craftitem(":sbz_chem:thorium_crystal", { - description = "Thorium Crystal", + description = S("Thorium Crystal"), inventory_image = "thorium_crystal.png", }) core.register_craftitem(":sbz_chem:silicon_crystal", { - description = "Silicon Crystal", + description = S("Silicon Crystal"), inventory_image = "silicon_crystal.png", }) @@ -120,7 +122,7 @@ end -- TODO: make it actually shock, by that i mean knock back you and give you shocked fx core.register_craftitem("sbz_resources:shock_crystal", { - description = "Shock Crystal", + description = S("Shock Crystal"), inventory_image = "shock_crystal.png", }) diff --git a/mods/sbz_resources/emitters.lua b/mods/sbz_resources/emitters.lua index f9da158d..df5433b2 100644 --- a/mods/sbz_resources/emitters.lua +++ b/mods/sbz_resources/emitters.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- Emitter Node local action = function(pos, _, puncher) @@ -55,7 +57,7 @@ local action = function(pos, _, puncher) end core.register_node("sbz_resources:emitter", { - description = "Emitter", + description = S("Emitter"), tiles = { "emitter.png" }, groups = { gravity = 25, unbreakable = 1, transparent = 1, not_in_creative_inventory = 1 }, sounds = { @@ -74,7 +76,7 @@ core.register_node("sbz_resources:emitter", { }) core.register_node("sbz_resources:movable_emitter", { - description = "Movable Emitter", + description = S("Movable Emitter"), tiles = { "movable_emitter.png" }, groups = { transparent = 1, matter = 1, level = 2 }, sounds = { @@ -133,7 +135,7 @@ core.register_abm({ -- Emitter Resources core.register_craftitem("sbz_resources:raw_emittrium", { - description = "Raw Emittrium", + description = S("Raw Emittrium"), inventory_image = "raw_emittrium.png", stack_max = 256, }) @@ -198,7 +200,7 @@ end -- THE CORE!!! core.register_node("sbz_resources:the_core", { - description = "The Core", + description = S("The Core"), sounds = sbz_api.sounds.matter(), tiles = { "the_core.png" }, groups = { gravity = 25, unbreakable = 1, not_in_creative_inventory = 1 }, diff --git a/mods/sbz_resources/fireworks.lua b/mods/sbz_resources/fireworks.lua index fe576dcc..79b214ba 100644 --- a/mods/sbz_resources/fireworks.lua +++ b/mods/sbz_resources/fireworks.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local fx = { { amount = 1000, @@ -175,7 +177,7 @@ end core.register_craftitem("sbz_resources:firework", { info_extra = { "You can activate it by \"trying to dig with it\" it, you can also try node breakers, or better yet, logic builders..." }, - description = "Firework", + description = S("Firework"), inventory_image = "firework.png", stack_max = 365, -- ha get it, because 365~ish days in a year -- lets be real, this needs to be efficient cuz its going to get used probably 1000 times per second diff --git a/mods/sbz_resources/items.lua b/mods/sbz_resources/items.lua index dd49ea71..9cd51b87 100644 --- a/mods/sbz_resources/items.lua +++ b/mods/sbz_resources/items.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_craftitem("sbz_resources:matter_plate", { - description = "Matter Plate", + description = S("Matter Plate"), inventory_image = "matter_plate.png", stack_max = 256, }) @@ -16,7 +18,7 @@ do -- Matter Plate recipe scope end core.register_craftitem("sbz_resources:antimatter_plate", { - description = "Antimatter Plate", + description = S("Antimatter Plate"), inventory_image = "antimatter_plate.png", stack_max = 256, }) @@ -33,14 +35,14 @@ do -- Antimatter Plate recipe scope end core.register_craftitem("sbz_resources:conversion_chamber", { - description = "Conversion chamber (!! DEPRECATED !! Throw it away!)", + description = S("Conversion chamber (!! DEPRECATED !! Throw it away!)"), inventory_image = "conversion_chamber.png", stack_max = 1, groups = { not_in_creative_inventory = 1, } }) core.register_craftitem("sbz_resources:pebble", { - description = "Pebble", + description = S("Pebble"), inventory_image = "pebble.png", stack_max = 128, }) @@ -57,7 +59,7 @@ end -- Angel's Wing core.register_tool("sbz_resources:angels_wing", { - description = "Angel's Wing", + description = S("Angel's Wing"), inventory_image = "angels_wing.png", stack_max = 1, tool_capabilities = {}, -- No specific tool capabilities, as it's not meant for digging @@ -113,12 +115,12 @@ do -- Angels Wing recipe scope end core.register_craftitem("sbz_resources:phlogiston", { - description = "Phlogiston", + description = S("Phlogiston"), inventory_image = "phlogiston.png" }) core.register_node("sbz_resources:phlogiston_blob", { - description = "Phlogiston Blob", + description = S("Phlogiston Blob"), tiles = { "phlogiston_blob.png" }, groups = { matter = 1, charged = 1 }, light_source = 14 @@ -138,7 +140,7 @@ do -- Phlogiston Blob recipe scope end core.register_craftitem("sbz_resources:heating_element", { - description = "Heating Element", + description = S("Heating Element"), inventory_image = "heating_element.png", }) @@ -158,6 +160,6 @@ do -- Heating Element recipe scope end core.register_craftitem("sbz_resources:sensor_casing_plate", { - description = "Sensor Casing Plate", + description = S("Sensor Casing Plate"), inventory_image = "sensor_casing_plate.png" }) diff --git a/mods/sbz_resources/jetpack.lua b/mods/sbz_resources/jetpack.lua index 5cd06dfe..883dafcc 100644 --- a/mods/sbz_resources/jetpack.lua +++ b/mods/sbz_resources/jetpack.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- this doesn't use any code from techage local jetpack_durability_s = 60 * 5 -- jetpack durability, in seconds @@ -30,7 +32,7 @@ local function stop_jetpack_sound(player) end core.register_tool('sbz_resources:jetpack', { - description = 'Jetpack', + description = S("Jetpack"), info_extra = 'Idea originated from techage', inventory_image = 'jetpack_off.png', stack_max = 1, diff --git a/mods/sbz_resources/laser.lua b/mods/sbz_resources/laser.lua index f48cbbec..219855d6 100644 --- a/mods/sbz_resources/laser.lua +++ b/mods/sbz_resources/laser.lua @@ -1,10 +1,12 @@ +local S = core.get_translator(core.get_current_modname()) + local laser_range = 300 local max_wear = 50 local power_per_1_use = 50 core.register_tool("sbz_resources:laser_weapon", { - description = "Laser", + description = S("Laser"), info_extra = core.colorize("#ffff00", "Ability: Fire (Left-Click)") .. " Fire a laserbeam which destroys meteorites and damages players.", inventory_image = "laser_pointer.png", groups = { disable_repair = 1, power_tool = 1 }, diff --git a/mods/sbz_resources/logic_craftitems.lua b/mods/sbz_resources/logic_craftitems.lua index 8553a640..908372b9 100644 --- a/mods/sbz_resources/logic_craftitems.lua +++ b/mods/sbz_resources/logic_craftitems.lua @@ -1,16 +1,18 @@ +local S = core.get_translator(core.get_current_modname()) + minetest.register_craftitem("sbz_resources:luanium", { - description = "Luanium", + description = S("Luanium"), info_extra = "No, not moon matter", inventory_image = "luanium.png", groups = { ui_logic = 1 } }) minetest.register_craftitem("sbz_resources:lua_chip", { - description = "Lua Chip", + description = S("Lua Chip"), inventory_image = "luachip.png", groups = { ui_logic = 1 } }) minetest.register_craftitem("sbz_resources:ram_stick_1mb", { - description = "Ram Stick", + description = S("Ram Stick"), inventory_image = "ram1mb.png", groups = { ui_logic = 1 } }) diff --git a/mods/sbz_resources/nodes.lua b/mods/sbz_resources/nodes.lua index d883cb4e..cd91ae0c 100644 --- a/mods/sbz_resources/nodes.lua +++ b/mods/sbz_resources/nodes.lua @@ -1,7 +1,9 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_node( 'sbz_resources:matter_blob', unifieddyes.def { - description = 'Matter Blob', + description = S("Matter Blob"), tiles = { 'matter_blob.png' }, groups = { matter = 1, cracky = 3, explody = 3, moss_growable = 1 }, walkable = true, @@ -28,7 +30,7 @@ local platform_selbox = { core.register_node( 'sbz_resources:matter_platform', unifieddyes.def { - description = 'Matter Platform', + description = S("Matter Platform"), tiles = { 'matter_blob.png^platform_overlay.png^[makealpha:255,0,0' }, use_texture_alpha = 'clip', drawtype = 'nodebox', @@ -77,7 +79,7 @@ end core.register_node( 'sbz_resources:antimatter_blob', unifieddyes.def { - description = 'Antimatter Blob', + description = S("Antimatter Blob"), tiles = { 'antimatter_blob.png' }, groups = { antimatter = 1, cracky = 3, explody = 3, slippery = 32767 }, walkable = true, @@ -129,7 +131,7 @@ core.register_alias('sbz_resources:antimatter_slab', 'sbz_resources:antimatter_b core.register_node( 'sbz_resources:antimatter_platform', unifieddyes.def { - description = 'Antimatter Platform', + description = S("Antimatter Platform"), tiles = { 'antimatter_blob.png^platform_overlay.png^[makealpha:255,0,0' }, use_texture_alpha = 'clip', paramtype2 = 'color', @@ -161,7 +163,7 @@ do -- Antimatter Platform recipe scope end core.register_node('sbz_resources:emitter_imitator', { - description = 'Emitter Imitator', + description = S("Emitter Imitator"), sounds = { footstep = { name = 'mix_gassy_quack_hit', gain = 0.2, pitch = 0.5, fade = 0.0 }, dig = { name = 'mix_gassy_quack_hit', gain = 0.4, pitch = 0.8, fade = 0.0 }, @@ -212,7 +214,7 @@ end core.register_node( 'sbz_resources:stone', unifieddyes.def { - description = 'Stone', + description = S("Stone"), tiles = { 'stone.png' }, groups = { matter = 1, moss_growable = 1, charged = 1 }, walkable = true, @@ -249,7 +251,7 @@ do -- Pebble recipe scope end core.register_node('sbz_resources:reinforced_matter', { - description = 'Reinforced Matter', + description = S("Reinforced Matter"), tiles = { 'reinforced_matter.png' }, groups = { matter = 1, moss_growable = 1 }, walkable = true, @@ -271,7 +273,7 @@ do -- Reinforced Matter recipe scope end core.register_node('sbz_resources:reinforced_antimatter', { - description = 'Reinforced Antimatter', + description = S("Reinforced Antimatter"), tiles = { 'reinforced_antimatter.png' }, groups = { antimatter = 1 }, light_source = 5, @@ -351,7 +353,7 @@ if false then -- annoying as hell end core.register_node('sbz_resources:emittrium_glass', { - description = 'Emittrium Glass', + description = S("Emittrium Glass"), drawtype = 'glasslike_framed_optional', tiles = { 'emittrium_glass.png', 'emittrium_glass_shine.png' }, use_texture_alpha = 'clip', @@ -379,7 +381,7 @@ end core.register_node( 'sbz_resources:colorium_glass', unifieddyes.def { - description = 'Colorium Glass', + description = S("Colorium Glass"), drawtype = 'glasslike_framed_optional', tiles = { 'emittrium_glass.png^[colorize:#ffffff:255', 'emittrium_glass_shine.png^[colorize:#ffffff:255' }, use_texture_alpha = 'clip', @@ -408,7 +410,7 @@ end core.register_node( 'sbz_resources:clear_colorium_glass', unifieddyes.def { - description = 'Clear Colorium Glass', + description = S("Clear Colorium Glass"), drawtype = 'glasslike_framed_optional', tiles = { 'emittrium_glass_border.png^[colorize:#ffffff:255', 'blank.png' }, use_texture_alpha = 'clip', @@ -438,7 +440,7 @@ end core.register_node( 'sbz_resources:stained_colorium_glass', unifieddyes.def { - description = 'Stained Colorium Glass', + description = S("Stained Colorium Glass"), drawtype = 'glasslike_framed', tiles = { 'emittrium_glass_border.png^[colorize:#ffffff:255', '(blank.png^[invert:rgba^[opacity:150)' }, inventory_image = core.inventorycube 'stained_glass_inv.png', @@ -468,7 +470,7 @@ do -- Stained Colorium Glass recipe scope end core.register_node('sbz_resources:compressed_core_dust', { - description = 'Compressed Core Dust', + description = S("Compressed Core Dust"), tiles = { 'compressed_core_dust.png', }, @@ -506,7 +508,7 @@ end core.register_node( 'sbz_resources:sand', unifieddyes.def { - description = 'Sand', + description = S("Sand"), tiles = { 'sand.png' }, groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, explody = 80 }, @@ -517,7 +519,7 @@ core.register_node( ) core.register_node('sbz_resources:red_sand', { - description = 'Red Sand', + description = S("Red Sand"), tiles = { 'sand.png^[colorize:red:128' }, groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, float = 1, explody = 80 }, walkable = true, @@ -526,7 +528,7 @@ core.register_node('sbz_resources:red_sand', { }) core.register_node('sbz_resources:gravel', { - description = 'Gravel', + description = S("Gravel"), tiles = { 'gravel.png' }, groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, explody = 40 }, walkable = true, @@ -535,7 +537,7 @@ core.register_node('sbz_resources:gravel', { }) core.register_node('sbz_resources:dust', { - description = 'Dust', + description = S("Dust"), info_extra = 'Great for scaffolding (no seriously, you can climb it).\nIt is temporary, it will go away after some time.', tiles = { 'dust.png' }, groups = { matter = 1, charged = 1, sand = 1, explody = 40, soil = 2, oddly_breakable_by_hand = 1 }, @@ -580,7 +582,7 @@ core.register_abm { } core.register_node('sbz_resources:clay', { - description = 'Clay', + description = S("Clay"), tiles = { 'clay.png' }, groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, explody = 40 }, walkable = true, @@ -591,7 +593,7 @@ core.register_node('sbz_resources:clay', { core.register_node( 'sbz_resources:bricks', unifieddyes.def { - description = 'Bricks', + description = S("Bricks"), tiles = { 'bricks.png' }, paramtype2 = 'color', groups = { @@ -618,7 +620,7 @@ core.register_craft { stairs.register 'sbz_resources:bricks' core.register_node('sbz_resources:dark_sand', { - description = 'Dark Sand', + description = S("Dark Sand"), tiles = { 'sand.png^[colorizehsl:0:0:-50' }, groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, float = 0, explody = 80 }, @@ -628,7 +630,7 @@ core.register_node('sbz_resources:dark_sand', { }) core.register_node('sbz_resources:black_sand', { - description = 'Black Sand', + description = S("Black Sand"), tiles = { 'sand.png^[colorizehsl:0:0:-80' }, groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, float = 1, explody = 80 }, @@ -638,7 +640,7 @@ core.register_node('sbz_resources:black_sand', { }) core.register_node('sbz_resources:white_sand', { - description = 'White Sand', + description = S("White Sand"), tiles = { 'sand.png^[colorizehsl:0:0' }, groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, float = 0, explody = 80 }, diff --git a/mods/sbz_resources/parkour.lua b/mods/sbz_resources/parkour.lua index e1e5221c..d800473b 100644 --- a/mods/sbz_resources/parkour.lua +++ b/mods/sbz_resources/parkour.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- Here should be anything related to parkour. -- Like, even ladders. -- But they are in sbz_decor, @@ -9,7 +11,7 @@ core.register_node( 'sbz_resources:emittrium_block', unifieddyes.def { - description = 'Emittrium Block', + description = S("Emittrium Block"), sounds = sbz_api.sounds.matter(), info_extra = 'You should punch it, and place some close to each other.', paramtype2 = 'color', diff --git a/mods/sbz_resources/processors_and_circuits.lua b/mods/sbz_resources/processors_and_circuits.lua index 2ce58916..164422c8 100644 --- a/mods/sbz_resources/processors_and_circuits.lua +++ b/mods/sbz_resources/processors_and_circuits.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + minetest.register_craftitem('sbz_resources:simple_circuit', { - description = 'Simple Circuit', + description = S("Simple Circuit"), inventory_image = 'simple_circuit.png', stack_max = 256, }) @@ -17,7 +19,7 @@ do -- Simple Circuit recipe scope end minetest.register_craftitem('sbz_resources:retaining_circuit', { - description = 'Retaining Circuit', + description = S("Retaining Circuit"), inventory_image = 'retaining_circuit.png', stack_max = 256, }) @@ -35,7 +37,7 @@ do -- Retaining Circuit recipe scope end minetest.register_craftitem('sbz_resources:emittrium_circuit', { - description = 'Emittrium Circuit', + description = S("Emittrium Circuit"), inventory_image = 'emittrium_circuit.png', stack_max = 256, }) @@ -54,7 +56,7 @@ do -- Emittrium Circuit recipe scope end core.register_craftitem('sbz_resources:phlogiston_circuit', { - description = 'Phlogiston Circuit', + description = S("Phlogiston Circuit"), inventory_image = 'phlogiston_circuit.png', }) @@ -79,7 +81,7 @@ end -- used in meteorite radars and weapons core.register_craftitem('sbz_resources:prediction_circuit', { - description = 'Prediction Circuit', + description = S("Prediction Circuit"), inventory_image = 'prediction_circuit.png', }) @@ -99,7 +101,7 @@ do -- Prediction Circuit recipe scope end minetest.register_craftitem('sbz_resources:simple_logic_circuit', { - description = 'Simple Logic Circuit', + description = S("Simple Logic Circuit"), inventory_image = 'simple_logic_circuit.png', stack_max = 256, }) @@ -122,7 +124,7 @@ do -- Simple Logic Circuit recipe scope end minetest.register_craftitem('sbz_resources:simple_inverted_logic_circuit', { - description = 'Simple Inverted Logic Circuit', + description = S("Simple Inverted Logic Circuit"), inventory_image = 'simple_inverting_circuit.png', stack_max = 256, }) @@ -160,7 +162,7 @@ end --- === PROCESSORS === core.register_craftitem('sbz_resources:simple_processor', { - description = 'Simple Processor', + description = S("Simple Processor"), inventory_image = 'simple_procesor.png', -- someone correct the typo lmfao }) @@ -190,7 +192,7 @@ sbz_api.crafting_processor_stats = { } core.register_craftitem('sbz_resources:simple_crafting_processor', { - description = 'Simple Crafting Processor', + description = S("Simple Crafting Processor"), info_extra = 'Crafts 1 item/s for 5Cj', inventory_image = 'simple_crafting_processor.png', }) @@ -211,7 +213,7 @@ do -- Simple Crafting Processor recipe scope end core.register_craftitem('sbz_resources:fast_crafting_processor', { - description = 'Fast Crafting Processor', + description = S("Fast Crafting Processor"), info_extra = 'Crafts 8 items/s for 20Cj', inventory_image = 'quick_crafting_processor.png', }) @@ -235,7 +237,7 @@ end core.register_alias('sbz_resources:quick_crafting_processor', 'sbz_resources:fast_crafting_processor') core.register_craftitem('sbz_resources:very_fast_crafting_processor', { - description = 'Very Fast Crafting Processor', + description = S("Very Fast Crafting Processor"), inventory_image = 'accelerated_silicon_crafting_processor.png', info_extra = "Crafts 32 items per second for 140 power." }) @@ -256,7 +258,7 @@ do -- Very Fast Crafting Processor recipe scope end core.register_craftitem('sbz_resources:extremely_fast_crafting_processor', { - description = 'Extremely Fast Crafting Processor', + description = S("Extremely Fast Crafting Processor"), inventory_image = 'quantum_crafting_processor.png', info_extra = "Crafts 128 items/s and uses 640Cj. You shouldn't need this.", }) @@ -296,7 +298,7 @@ end -- stylua: ignore end core.register_craftitem('sbz_resources:instant_crafting_processor', { - description = 'Instant Crafting Processor', + description = S("Instant Crafting Processor"), inventory_image = 'creative_crafting_processor.png', info_extra = 'Crafts 100000 items/s, consumes 800Cj.\nThe crafting recipe is a joke. You should not try to get it... but if you want to', }) @@ -307,7 +309,7 @@ core.register_alias( -- deprecated stuff core.register_craftitem('sbz_resources:mosfet', { - description = 'Metal-Oxide-Semiconductor Field-Effect Transistor (MOSFET)', + description = S("Metal-Oxide-Semiconductor Field-Effect Transistor (MOSFET)"), info_extra = 'Deprecated. Throw it away.', inventory_image = 'mosfet.png', groups = { not_in_creative_inventory = 1 }, diff --git a/mods/sbz_resources/storinators.lua b/mods/sbz_resources/storinators.lua index 82e4a0b7..70b620cf 100644 --- a/mods/sbz_resources/storinators.lua +++ b/mods/sbz_resources/storinators.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + local storinator_upgrades = {} local function update_node_texture(pos) local meta = core.get_meta(pos) @@ -182,7 +184,7 @@ listring[] for kk, vv in ipairs(def_copy.tiles) do def_copy.tiles[kk] = vv .. "^[colorize:cyan:40" end - def_copy.description = "Public " .. def_copy.description + def_copy.description = S("Public ") .. def_copy.description end def_copy = unifieddyes.def(def_copy, false) core.register_node(name, def_copy) @@ -227,7 +229,7 @@ end register_storinator("", { - description = "Storinator", + description = S("Storinator"), sounds = sbz_api.sounds.matter(), level = 0, overlay_color = "#696a6a", @@ -238,7 +240,7 @@ register_storinator("", { local lvl0 = slots_lvl(0) register_storinator("bronze", { - description = "Bronze Storinator", + description = S("Bronze Storinator"), level = 1, overlay_color = "#df7126", spacing = 0.2 / (slots_lvl(1) / lvl0) * 1.25, @@ -248,7 +250,7 @@ register_storinator("bronze", { }) register_storinator("stemfruit", { - description = "Stemfruit Storinator", + description = S("Stemfruit Storinator"), level = 2, overlay_color = "#ac3232", spacing = 0.2 / (slots_lvl(2) / lvl0) * 1.5, @@ -257,7 +259,7 @@ register_storinator("stemfruit", { material = "sbz_bio:stemfruit", }) register_storinator("colorium", { - description = "Colorium Storinator", + description = S("Colorium Storinator"), level = 3, overlay_color = "white", spacing = 0.2 / (slots_lvl(3) / lvl0) * 1.7, @@ -269,7 +271,7 @@ register_storinator("colorium", { }) register_storinator("warpshroom", { - description = "Warpshroom Storinator", + description = S("Warpshroom Storinator"), level = 4, overlay_color = "#76428a", spacing = 0.2 / (slots_lvl(4) / lvl0) * 1.9, @@ -281,7 +283,7 @@ register_storinator("warpshroom", { }) register_storinator("neutronium", { - description = "Neutronium Storinator", + description = S("Neutronium Storinator"), level = 6, overlay_color = "#111111", brighten_base = true, diff --git a/mods/sbz_resources/strange_matter.lua b/mods/sbz_resources/strange_matter.lua index b2ffd9c1..f5c39eed 100644 --- a/mods/sbz_resources/strange_matter.lua +++ b/mods/sbz_resources/strange_matter.lua @@ -1,10 +1,12 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_craftitem('sbz_resources:strange_dust', { - description = 'Strange Dust', + description = S("Strange Dust"), inventory_image = 'strange_dust.png', }) core.register_node('sbz_resources:strange_blob', { - description = 'Strange Blob', + description = S("Strange Blob"), info_extra = 'It sure is strange looking', tiles = { 'strange_blob.png' }, groups = { matter = 1, antimatter = 1, strange = 1, explody = 100 }, @@ -84,10 +86,10 @@ local power_per_1_use = 10 local max_wear = power_per_1_use * 200 core.register_tool('sbz_resources:strange_cleaner', { - description = 'Strange Blob Cleaner', + description = S("Strange Blob Cleaner"), info_extra = { - 'Restores what was.... done.... by strange blobs.', - '"Place" it into a battery to charge.', + S("Restores what was.... done.... by strange blobs."), + S('"Place" it into a battery to charge.'), }, inventory_image = 'strange_cleaner.png', groups = { disable_repair = 1, power_tool = 1 }, @@ -162,7 +164,7 @@ end core.register_node( 'sbz_resources:stable_strange_blob', unifieddyes.def { - description = 'Stabilized Strange Blob', + description = S("Stabilized Strange Blob"), tiles = { 'stable_strange_blob.png' }, paramtype2 = 'color', paramtype = 'light', diff --git a/mods/sbz_resources/tools.lua b/mods/sbz_resources/tools.lua index 84baa1d6..68bfc9c6 100644 --- a/mods/sbz_resources/tools.lua +++ b/mods/sbz_resources/tools.lua @@ -1,7 +1,9 @@ +local S, PS = core.get_translator(core.get_current_modname()) + local index_adjustment = 1 core.register_craftitem('sbz_resources:matter_annihilator', { - description = 'Matter Annihilator', + description = S("Matter Annihilator"), inventory_image = 'matter_annihilator.png', groups = { core_drop_multi = 1 }, @@ -45,7 +47,7 @@ do -- Matter Annihilator recipe scope end core.register_craftitem('sbz_resources:antimatter_annihilator', { - description = 'Antimatter Annihilator', + description = S("Antimatter Annihilator"), inventory_image = 'antimatter_annihilator.png', groups = { core_drop_multi = 1 }, @@ -89,7 +91,7 @@ do -- Antimatter Annihilator recipe scope end core.register_craftitem('sbz_resources:robotic_arm', { - description = 'Robotic Arm', + description = S("Robotic Arm"), inventory_image = 'robotic_arm.png', groups = { core_drop_multi = 2 }, tool_capabilities = { @@ -166,12 +168,12 @@ local tool_caps = { } core.register_tool('sbz_resources:drill', { - description = 'Electric Drill', + description = S("Electric Drill"), inventory_image = 'drill.png', info_extra = { - 'Powered by electricity. Wear bar indicates the amount of charge left.', - ('%s uses'):format(drill_max_wear), - '"Place" it on a battery to re-charge it.', + S('Powered by electricity. Wear bar indicates the amount of charge left.'), + PS('@1 use', '@1 uses', drill_max_wear, tostring(drill_max_wear)), + S('"Place" it on a battery to re-charge it.'), }, groups = { core_drop_multi = 4, disable_repair = 1, power_tool = 1 }, tool_capabilities = tool_caps, diff --git a/mods/sbz_resources/water.lua b/mods/sbz_resources/water.lua index 76f71372..6c6a40c3 100644 --- a/mods/sbz_resources/water.lua +++ b/mods/sbz_resources/water.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- would slow you 0.8x playereffects.register_effect_type("wet", "Wet", "fx_wet.png", { "speed" }, function(player) unlock_achievement(player:get_player_name(), "Wet") @@ -17,7 +19,7 @@ local source_animation = { } core.register_node("sbz_resources:water_source", { - description = "Water Source", + description = S("Water Source"), sounds = { footstep = { name = 'gen_water_step', gain = 0.3, pitch = 0.8 }, place = { name = 'mix_water_place'} @@ -64,7 +66,7 @@ local flowing_animation = { } core.register_node("sbz_resources:water_flowing", { - description = "Flowing Water", + description = S("Flowing Water"), drawtype = "flowingliquid", tiles = { "water.png" }, special_tiles = { diff --git a/mods/sbz_resources/wormhole.lua b/mods/sbz_resources/wormhole.lua index 7aacac41..389fc995 100644 --- a/mods/sbz_resources/wormhole.lua +++ b/mods/sbz_resources/wormhole.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_tool("sbz_resources:wormhole", { - description = "Wormhole", + description = S("Wormhole"), info_extra = "Left Click: Link, Right Click: Rightclick linked node", inventory_image = "wormhole.png", stack_max = 1, @@ -57,7 +59,7 @@ core.register_tool("sbz_resources:wormhole", { -- onto the recipe minetest.register_craftitem("sbz_resources:unrefined_firmament", { - description = "Unrefined Firmament", + description = S("Unrefined Firmament"), inventory_image = "unrefined_firmament.png", stack_max = 256, }) @@ -72,7 +74,7 @@ sbz_api.recipe.register_craft { } minetest.register_craftitem("sbz_resources:gravitational_lens", { - description = "Gravitational Lens", + description = S("Gravitational Lens"), inventory_image = "gravitational_lens.png", stack_max = 1, }) @@ -93,7 +95,7 @@ do -- Gravitational Lens recipe scope end minetest.register_craftitem("sbz_resources:refined_firmament", { - description = "Refined Firmament", + description = S("Refined Firmament"), inventory_image = "refined_firmament.png", stack_max = 256, }) diff --git a/mods/sbz_runes/init.lua b/mods/sbz_runes/init.lua index 41f3db51..ea55a67c 100644 --- a/mods/sbz_runes/init.lua +++ b/mods/sbz_runes/init.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_craftitem("sbz_runes:meteoric_rune", { - description = "¤ Meteoric Rune\n" .. + description = S("¤ Meteoric Rune\n") .. core.colorize("#00FFFF", "Cosmetic: Surrounds you with meteorite particles.") .. "\n" .. core.colorize("#BF00FF", "1/100k chance when breaking Meteoric Matter."), inventory_image = "meteoric_rune.png", @@ -7,7 +9,7 @@ core.register_craftitem("sbz_runes:meteoric_rune", { }) core.register_craftitem("sbz_runes:core_rune", { - description = "¤ Core Rune\n" .. + description = S("¤ Core Rune\n") .. core.colorize("#00FFFF", "Cosmetic: Surrounds you with core particles like The Core.") .. "\n" .. core.colorize("#BF00FF", "1/10m chance when punching The Core."), inventory_image = "core_rune.png", @@ -15,7 +17,7 @@ core.register_craftitem("sbz_runes:core_rune", { }) core.register_craftitem("sbz_runes:firework_rune", { - description = "¤ Firework Rune\n" .. + description = S("¤ Firework Rune\n") .. core.colorize("#00FFFF", "Cosmetic: Occasionally fires off firework rockets on it's own.") .. "\n" .. core.colorize("#BF00FF", "1/1m chance when firing off a firework rocket."), inventory_image = "firework_rune.png", @@ -23,7 +25,7 @@ core.register_craftitem("sbz_runes:firework_rune", { }) core.register_craftitem("sbz_runes:halo_rune", { - description = "¤ Halo Rune\n" .. + description = S("¤ Halo Rune\n") .. core.colorize("#00FFFF", "Cosmetic: A divine ring of light floats above you.") .. "\n" .. core.colorize("#BF00FF", "1/10m chance when punching a Colorium Emitter."), inventory_image = "halo_rune.png", @@ -31,7 +33,7 @@ core.register_craftitem("sbz_runes:halo_rune", { }) core.register_craftitem("sbz_runes:singularity_rune", { - description = "¤ Singularity Rune\n" .. + description = S("¤ Singularity Rune\n") .. core.colorize("#00FFFF", "Cosmetic: Reality bends around you.") .. "\n" .. core.colorize("#BF00FF", "1/50k chance when falling into the Void."), inventory_image = "singularity_rune.png", diff --git a/mods/sbz_ui/default_themes.lua b/mods/sbz_ui/default_themes.lua index 5f12bdd7..8ce29800 100644 --- a/mods/sbz_ui/default_themes.lua +++ b/mods/sbz_ui/default_themes.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + --- default palette sbz_api.default_palette = { dark0 = '#1d1d1d', @@ -62,19 +64,19 @@ local space_colors = { sbz_api.register_theme('space', { default = true, name = 'Space', - description = '[Default Theme] The default sbz experience', + description = S("[Default Theme] The default sbz experience"), config = { ['HUE'] = { default = '0', type = { 'int', -180, 180 }, - description = 'Theme Hue (a number from -180 to 180)', + description = S("Theme Hue (a number from -180 to 180)"), }, ['FONT'] = { -- becomes @@FONT default = true, value_true = ';font=mono', value_false = '', type = { 'bool' }, - description = 'Force mono font', + description = S("Force mono font"), }, }, button_theme = { @@ -142,7 +144,7 @@ sbz_api.register_theme('tilde', { default = false, unordered = false, name = 'Tilde', - description = 'Theme inspired by https://tilde.team, This theme will most likely change a lot in the future. Some things may look ugly.', + description = S("Theme inspired by https://tilde.team, This theme will most likely change a lot in the future. Some things may look ugly."), -- force_font = ";font=mono", -- => @@FONT config = { ['FONT'] = { -- becomes @@FONT @@ -150,7 +152,7 @@ sbz_api.register_theme('tilde', { value_true = ';font=mono', value_false = '', type = { 'bool' }, - description = 'Force mono font', + description = S("Force mono font"), }, }, button_theme = { @@ -240,14 +242,14 @@ local gruvbox_colors = { sbz_api.register_theme('gruvbox', { default = false, name = 'Gruvbox', - description = 'Gruvbox colorscheme ported to sbz.', + description = S("Gruvbox colorscheme ported to sbz."), config = { ['FONT'] = { -- becomes @@FONT default = true, value_true = ';font=mono', value_false = '', type = { 'bool' }, - description = 'Force mono font', + description = S("Force mono font"), }, }, button_theme = { diff --git a/mods/sbz_ui/theming.lua b/mods/sbz_ui/theming.lua index 5aac2437..a3f7967c 100644 --- a/mods/sbz_ui/theming.lua +++ b/mods/sbz_ui/theming.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + -- This code is responsible for the player's formspec prepend -- And also for theming you know -- And also some helpers that the ui library can use @@ -5,7 +7,7 @@ sbz_api.themes = { ['builtin'] = { -- the very minimal theme name = 'builtin', - description = 'Very minimal for sure... not recomended to use', + description = S("Very minimal for sure... not recommended to use"), }, } diff --git a/mods/smartshop/privs.lua b/mods/smartshop/privs.lua index be83c0d1..579cbdd4 100644 --- a/mods/smartshop/privs.lua +++ b/mods/smartshop/privs.lua @@ -1,6 +1,8 @@ +local S = core.get_translator(core.get_current_modname()) + if not minetest.registered_privileges[smartshop.settings.admin_shop_priv] then minetest.register_privilege(smartshop.settings.admin_shop_priv, { - description = "Smartshop admin", + description = S("Smartshop admin"), give_to_singleplayer = false, give_to_admin = false, }) diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua index 7ef79e99..49a8a618 100644 --- a/mods/stairs/init.lua +++ b/mods/stairs/init.lua @@ -30,9 +30,9 @@ License along with this software; if not, see . -- Global namespace for functions - stairs = {} +local S = core.get_translator(core.get_current_modname()) local function rotate_and_place(itemstack, placer, pointed_thing) local p0 = pointed_thing.under diff --git a/mods/travelnet/chat.lua b/mods/travelnet/chat.lua index 9d7731bd..13d6fe09 100644 --- a/mods/travelnet/chat.lua +++ b/mods/travelnet/chat.lua @@ -1,7 +1,8 @@ +local S = core.get_translator(core.get_current_modname()) minetest.register_chatcommand("travelnet", { params = "[network?]", - description = "Shows the travelnet formspec for the network", + description = S("Shows the travelnet formspec for the network"), privs = { teleport = true }, diff --git a/mods/unified_inventory/api.lua b/mods/unified_inventory/api.lua index 6b37eacf..9789e87b 100644 --- a/mods/unified_inventory/api.lua +++ b/mods/unified_inventory/api.lua @@ -23,12 +23,13 @@ You should have received a copy of the GNU Library General Public License along with this program. If not, see . ]=] -local S = minetest.get_translator("unified_inventory") +local S = core.get_translator(core.get_current_modname()) + local F = minetest.formspec_escape local ui = unified_inventory local function is_recipe_craftable(recipe) - -- Ensure the ingedients exist + -- Ensure the ingredients exist for _, itemname in pairs(recipe.items) do local groups = string.find(itemname, "group:") if groups then @@ -101,7 +102,7 @@ minetest.after(0.01, function() to register them later, in order to avoid duplicates. These tables counts the total number of guaranteed drops and drops by chance (“maybes”) for each item. For “maybes”, the final count is the theoretical maximum number of items, not - neccessarily the actual drop count. ]] + necessarily the actual drop count. ]] local drop_guaranteed = {} local drop_maybe = {} -- This is for catching an obscure corner case: If the top items table has @@ -380,7 +381,7 @@ ui.register_craft_type("digging", { }) ui.register_craft_type("digging_chance", { - description = "Digging (by chance)", + description = S("Digging (by chance)"), icon = "robotic_arm.png", width = 1, height = 1, diff --git a/mods/unifieddyes/airbrush.lua b/mods/unifieddyes/airbrush.lua index 815d3737..43a81ef1 100644 --- a/mods/unifieddyes/airbrush.lua +++ b/mods/unifieddyes/airbrush.lua @@ -23,6 +23,8 @@ You should have received a copy of the GNU General Public License along with this program; if not, see . ]=] +local S = core.get_translator(core.get_current_modname()) + local function sheet(t, sx, sy, x, y) sx = sx + 1 sy = sy + 1 @@ -163,7 +165,7 @@ local function color_block(stack, player, pointed) end minetest.register_tool("unifieddyes:coloring_tool", { - description = "Coloring Tool", + description = S("Coloring Tool"), inventory_image = "color_tool.png", liquids_pointable = false, -- colorable liquids probably wont exist but they would be funny light_source = 14, diff --git a/mods/unifieddyes/nodes.lua b/mods/unifieddyes/nodes.lua index eea704ed..20016d22 100644 --- a/mods/unifieddyes/nodes.lua +++ b/mods/unifieddyes/nodes.lua @@ -1,5 +1,7 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_craftitem('unifieddyes:colorium', { - description = 'Colorium', + description = S("Colorium"), inventory_image = 'colorium.png', }) @@ -14,14 +16,14 @@ do -- Colorium recipe scope end core.register_craftitem('unifieddyes:colorium_powder', { - description = 'Colorium Powder', + description = S("Colorium Powder"), inventory_image = 'powder.png^[mask:colorium.png', }) core.register_node( 'unifieddyes:colorium_blob', unifieddyes.def { - description = 'Colorium Blob', + description = S("Colorium Blob"), sounds = sbz_api.sounds.matter(), tiles = { 'blank.png^[invert:rgba', @@ -41,7 +43,7 @@ local full_m_height = -full + height core.register_node( 'unifieddyes:colorium_ground_line', unifieddyes.def { - description = 'Colorium Ground Line', + description = S("Colorium Ground Line"), sounds = sbz_api.sounds.matter(), tiles = { 'blank.png^[invert:rgba', @@ -68,7 +70,7 @@ core.register_node( core.register_node( 'unifieddyes:power_ground_line', unifieddyes.def { - description = 'Power Ground Line', + description = S("Power Ground Line"), sounds = sbz_api.sounds.matter(), tiles = { { @@ -114,7 +116,7 @@ end core.register_node( 'unifieddyes:antiblock', unifieddyes.def { - description = 'Antiblock', + description = S("Antiblock"), sounds = sbz_api.sounds.matter(), tiles = { 'blank.png', @@ -131,7 +133,7 @@ core.register_node( core.register_node( 'unifieddyes:airlike_antiblock', unifieddyes.def { - description = 'Airlike Antiblock', + description = S("Airlike Antiblock"), -- I tried to make it work without noclip but failed so ehh you get magic airlike antiblock that's not airlike and kinda lame overlay_tiles = { { name = 'blank.png', backface_culling = false }, From 3f1678a617454a67fa7444f1407c5ed92229578e Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Thu, 26 Mar 2026 14:50:26 -0700 Subject: [PATCH 05/35] Update minetest to core where applicable --- mods/areas/pvp.lua | 6 +-- mods/jumpdrive/bookmark.lua | 20 +++---- mods/player_monoids/test.lua | 14 ++--- mods/replacer/blabla.lua | 10 ++-- mods/replacer/replacer/replacer.lua | 26 ++++----- mods/sbz_bio/fire.lua | 32 +++++------ mods/sbz_bio/uses.lua | 16 +++--- mods/sbz_chem/centrifuge.lua | 2 +- mods/sbz_chem/compressor.lua | 2 +- mods/sbz_chem/crystal_grower.lua | 2 +- mods/sbz_chem/hpef.lua | 4 +- mods/sbz_chem/pebble_enhancer.lua | 2 +- mods/sbz_chem/radiation.lua | 16 +++--- mods/sbz_devtools/init.lua | 54 +++++++++---------- mods/sbz_logic/code_disks.lua | 24 ++++----- mods/sbz_logic/link_tool.lua | 36 ++++++------- mods/sbz_logic/upgrades.lua | 4 +- .../sbz_logic_devices/meteorite_attractor.lua | 2 +- mods/sbz_meteorites/init.lua | 24 ++++----- mods/sbz_meteorites/meteorite_maker.lua | 40 +++++++------- mods/sbz_meteorites/visualiser.lua | 12 ++--- mods/sbz_pipeworks/luaentity.lua | 22 ++++---- mods/sbz_power/sensors/sensor_linker.lua | 32 +++++------ mods/sbz_resources/basic_resources.lua | 8 +-- mods/sbz_resources/fireworks.lua | 4 +- mods/sbz_resources/logic_craftitems.lua | 8 +-- .../sbz_resources/processors_and_circuits.lua | 10 ++-- mods/sbz_resources/wormhole.lua | 22 ++++---- mods/smartshop/privs.lua | 4 +- mods/stairs/init.lua | 26 ++++----- mods/travelnet/chat.lua | 4 +- mods/unified_inventory/api.lua | 30 +++++------ mods/unifieddyes/airbrush.lua | 36 ++++++------- 33 files changed, 277 insertions(+), 277 deletions(-) diff --git a/mods/areas/pvp.lua b/mods/areas/pvp.lua index 8d547373..e9b8ba11 100644 --- a/mods/areas/pvp.lua +++ b/mods/areas/pvp.lua @@ -29,7 +29,7 @@ also https://github.com/BlockySurvival/areas/commit/dacfe5fbad7ae3d2f32a897fde8e ]] local S = core.get_translator(core.get_current_modname()) -minetest.register_chatcommand("toggle_area_pvp", { +core.register_chatcommand("toggle_area_pvp", { description = S("Toggle PvP in an area"), params = "", func = function(name, param) @@ -69,12 +69,12 @@ local function punchplayer_func(player, hitter, time_from_last_punch, tool_capab end -- Otherwise, it doesn't do damage if no_dm ~= nil then - minetest.chat_send_player(hitter:get_player_name(), "PvP is not allowed in this area!") + core.chat_send_player(hitter:get_player_name(), "PvP is not allowed in this area!") end return true end -minetest.register_on_punchplayer(punchplayer_func) +core.register_on_punchplayer(punchplayer_func) -- i added local knockback = core.calculate_knockback diff --git a/mods/jumpdrive/bookmark.lua b/mods/jumpdrive/bookmark.lua index b54dd6eb..fcaeec0f 100644 --- a/mods/jumpdrive/bookmark.lua +++ b/mods/jumpdrive/bookmark.lua @@ -2,18 +2,18 @@ local S = core.get_translator(core.get_current_modname()) local book_item, book_written = "", "" -if minetest.get_modpath("default") then +if core.get_modpath("default") then book_item = "default:book" book_written = "default:book_written" end -if minetest.get_modpath("mcl_books") then +if core.get_modpath("mcl_books") then book_item = "mcl_books:book" book_written = "mcl_books:written_book" end jumpdrive.write_to_book = function(pos, sender) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local inv = meta:get_inventory() if inv:contains_item("main", { name = book_item, count = 1 }) then @@ -26,7 +26,7 @@ jumpdrive.write_to_book = function(pos, sender) data.owner = sender:get_player_name() data.title = "Jumpdrive coordinates" data.description = S("Jumpdrive coordinates") - data.text = minetest.serialize(jumpdrive.get_meta_pos(pos)) + data.text = core.serialize(jumpdrive.get_meta_pos(pos)) data.page = 1 data.page_max = 1 @@ -60,7 +60,7 @@ local function sanitize_and_set_coordinates(meta, pos) end jumpdrive.read_from_book = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local inv = meta:get_inventory() local player_name = meta:get_string("owner") @@ -78,7 +78,7 @@ jumpdrive.read_from_book = function(pos) inv:set_stack("main", i, ItemStack()) stack_meta = stack:get_meta() text = stack_meta:get_string("text") - local data = minetest.deserialize(text) + local data = core.deserialize(text) if has_nil(data) then -- put book back where it was, it may contain other information inv:set_stack("main", i, stack) @@ -94,7 +94,7 @@ jumpdrive.read_from_book = function(pos) inv:set_stack("main", i, stack) -- alert player if nil ~= player_name then - minetest.chat_send_player(player_name, "Invalid coordinates") + core.chat_send_player(player_name, "Invalid coordinates") end return end @@ -109,7 +109,7 @@ jumpdrive.read_from_book = function(pos) stack_meta = stack:get_meta() text = stack_meta:get_string("pos") - target_pos = minetest.string_to_pos(text) + target_pos = core.string_to_pos(text) if has_nil(target_pos) then -- put wand back where it was. @@ -130,7 +130,7 @@ jumpdrive.read_from_book = function(pos) stack_meta = stack:get_meta() text = stack_meta:get_string("target_pos") - target_pos = minetest.string_to_pos(text) + target_pos = core.string_to_pos(text) if has_nil(target_pos) then -- put compass back, it is probably not calibrated @@ -148,7 +148,7 @@ jumpdrive.read_from_book = function(pos) -- should we or should we not message user? --[[ if nil ~= player_name then - minetest.chat_send_player(player_name, "No valid bookmark item found.") + core.chat_send_player(player_name, "No valid bookmark item found.") end --]] end diff --git a/mods/player_monoids/test.lua b/mods/player_monoids/test.lua index 27cf8ada..1eac093b 100644 --- a/mods/player_monoids/test.lua +++ b/mods/player_monoids/test.lua @@ -2,7 +2,7 @@ local S = core.get_translator(core.get_current_modname()) local speed = player_monoids.speed -minetest.register_privilege("monoid_master", { +core.register_privilege("monoid_master", { description = S("Allows testing of player monoids."), give_to_singleplayer = false, give_to_admin = true, @@ -12,20 +12,20 @@ local function test(player) local ch_id = speed:add_change(player, 10) local p_name = player:get_player_name() - minetest.chat_send_player(p_name, "Your speed is: " .. speed:value(player)) + core.chat_send_player(p_name, "Your speed is: " .. speed:value(player)) - minetest.after(3, function() - local player = minetest.get_player_by_name(p_name) + core.after(3, function() + local player = core.get_player_by_name(p_name) if not player then return end speed:del_change(player, ch_id) - minetest.chat_send_player(p_name, "Your speed is: " .. speed:value(player)) + core.chat_send_player(p_name, "Your speed is: " .. speed:value(player)) end) end -minetest.register_chatcommand("test_monoids", { +core.register_chatcommand("test_monoids", { description = S("Runs a test on monoids"), privs = { monoid_master = true }, func = function(p_name) - test(minetest.get_player_by_name(p_name)) + test(core.get_player_by_name(p_name)) end, }) diff --git a/mods/replacer/blabla.lua b/mods/replacer/blabla.lua index 3e0cd7b0..8f15387d 100644 --- a/mods/replacer/blabla.lua +++ b/mods/replacer/blabla.lua @@ -1,5 +1,5 @@ -if not minetest.translate then - function minetest.translate(_, str, ...) +if not core.translate then + function core.translate(_, str, ...) local arg = { n = select('#', ...), ... } return str:gsub('@(.)', function(matched) local c = string.byte(matched) @@ -11,11 +11,11 @@ if not minetest.translate then end) end - function minetest.get_translator(textdomain) - return function(str, ...) return minetest.translate(textdomain or '', str, ...) end + function core.get_translator(textdomain) + return function(str, ...) return core.translate(textdomain or '', str, ...) end end end -- backward compatibility -replacer.S = minetest.get_translator('replacer') +replacer.S = core.get_translator('replacer') local S = replacer.S replacer.blabla = {} diff --git a/mods/replacer/replacer/replacer.lua b/mods/replacer/replacer/replacer.lua index 57dcb6f1..834f3c5c 100644 --- a/mods/replacer/replacer/replacer.lua +++ b/mods/replacer/replacer/replacer.lua @@ -9,18 +9,18 @@ local S = replacer.S local max_time_us = 1000000 * r.max_time -- math local max, min, floor = math.max, math.min, math.floor -local core_check_player_privs = minetest.check_player_privs -local core_get_node = minetest.get_node -local core_get_node_or_nil = minetest.get_node_or_nil -local core_get_item_group = minetest.get_item_group -local core_registered_items = minetest.registered_items -local core_registered_nodes = minetest.registered_nodes -local core_swap_node = minetest.swap_node -local deserialize = minetest.deserialize -local get_craft_recipe = minetest.get_craft_recipe +local core_check_player_privs = core.check_player_privs +local core_get_node = core.get_node +local core_get_node_or_nil = core.get_node_or_nil +local core_get_item_group = core.get_item_group +local core_registered_items = core.registered_items +local core_registered_nodes = core.registered_nodes +local core_swap_node = core.swap_node +local deserialize = core.deserialize +local get_craft_recipe = core.get_craft_recipe local has_creative = r.has_creative -local serialize = minetest.serialize -local us_time = minetest.get_us_time +local serialize = core.serialize +local us_time = core.get_us_time -- vector local vector_distance = vector.distance local vector_multiply = vector.multiply @@ -243,7 +243,7 @@ function replacer.on_use(itemstack, player, pt, right_clicked) return end - local pos = minetest.get_pointed_thing_position(pt, right_clicked) + local pos = core.get_pointed_thing_position(pt, right_clicked) local node_old = core_get_node_or_nil(pos) if not node_old then @@ -694,4 +694,4 @@ function replacer.tool_def_technic() return def end -minetest.register_tool(r.tool_name_technic, r.tool_def_technic()) +core.register_tool(r.tool_name_technic, r.tool_def_technic()) diff --git a/mods/sbz_bio/fire.lua b/mods/sbz_bio/fire.lua index 81a0c77b..d1a2379e 100644 --- a/mods/sbz_bio/fire.lua +++ b/mods/sbz_bio/fire.lua @@ -53,8 +53,8 @@ local fire_node = { }, drop = "", on_timer = function(pos) - if not minetest.find_node_near(pos, 1, { "group:igniter" }) then - minetest.remove_node(pos) + if not core.find_node_near(pos, 1, { "group:igniter" }) then + core.remove_node(pos) return end -- Restart timer @@ -63,7 +63,7 @@ local fire_node = { air = true, co2_action = function(start_pos) - local meta = minetest.get_meta(start_pos) + local meta = core.get_meta(start_pos) local co2 = meta:get_int("co2") if is_node_within_radius(start_pos, "group:water", 1) then core.remove_node(start_pos) @@ -73,14 +73,14 @@ local fire_node = { local node = core.get_node(pos).name local co2_produced = core.get_item_group(node, "burn") ---@type function|nil - local on_burn = (minetest.registered_nodes[node] or {}).on_burn + local on_burn = (core.registered_nodes[node] or {}).on_burn if co2_produced > 0 then if on_burn then on_burn(pos) else core.set_node(pos, { name = "sbz_bio:fire" }) core.get_meta(pos):set_int("co2", co2_produced) - minetest.get_node_timer(pos):start(math.random(30, 60)) + core.get_node_timer(pos):start(math.random(30, 60)) end end end) @@ -99,26 +99,26 @@ core.register_tool("sbz_bio:igniter", { on_use = function(itemstack, user, pointed_thing) local player_name = user:get_player_name() if pointed_thing.type == "node" then - local node_under = minetest.get_node(pointed_thing.under).name - local nodedef = minetest.registered_nodes[node_under] + local node_under = core.get_node(pointed_thing.under).name + local nodedef = core.registered_nodes[node_under] if not nodedef then return end - if minetest.is_protected(pointed_thing.under, player_name) then - minetest.record_protection_violation(pointed_thing.under, player_name) + if core.is_protected(pointed_thing.under, player_name) then + core.record_protection_violation(pointed_thing.under, player_name) return end if nodedef.on_ignite then nodedef.on_ignite(pointed_thing.under, user) - elseif minetest.get_item_group(node_under, "burn") >= 1 - and minetest.get_node(pointed_thing.above).name == "air" then - if minetest.is_protected(pointed_thing.above, player_name) then - minetest.record_protection_violation(pointed_thing.above, player_name) + elseif core.get_item_group(node_under, "burn") >= 1 + and core.get_node(pointed_thing.above).name == "air" then + if core.is_protected(pointed_thing.above, player_name) then + core.record_protection_violation(pointed_thing.above, player_name) return end - minetest.set_node(pointed_thing.above, { name = "sbz_bio:fire" }) + core.set_node(pointed_thing.above, { name = "sbz_bio:fire" }) end end -- Wear tool @@ -142,12 +142,12 @@ do -- Igniter recipe scope }) end -minetest.register_abm({ +core.register_abm({ label = "Remove fire", interval = 10, chance = 3, nodenames = { "sbz_bio:fire" }, action = function(pos) - minetest.remove_node(pos) + core.remove_node(pos) end }) diff --git a/mods/sbz_bio/uses.lua b/mods/sbz_bio/uses.lua index bc0163a6..a38f15c3 100644 --- a/mods/sbz_bio/uses.lua +++ b/mods/sbz_bio/uses.lua @@ -1,6 +1,6 @@ local S = core.get_translator(core.get_current_modname()) -minetest.register_node("sbz_bio:rope", { +core.register_node("sbz_bio:rope", { description = S("Rope"), drawtype = "plantlike", tiles = { "rope.png" }, @@ -16,16 +16,16 @@ minetest.register_node("sbz_bio:rope", { on_place = sbz_api.on_place_precedence(function(itemstack, user, pointed) if pointed.type ~= "node" then return end if pointed.above.y < pointed.under.y then - minetest.set_node(pointed.above, { name = "sbz_bio:rope" }) - elseif minetest.get_node(pointed.under).name == "sbz_bio:rope" then + core.set_node(pointed.above, { name = "sbz_bio:rope" }) + elseif core.get_node(pointed.under).name == "sbz_bio:rope" then local pos = pointed.under local nodename repeat pos.y = pos.y - 1 - nodename = minetest.get_node(pos).name + nodename = core.get_node(pos).name until nodename ~= "sbz_bio:rope" - if minetest.registered_nodes[nodename].buildable_to then - minetest.set_node(pos, { name = "sbz_bio:rope" }) + if core.registered_nodes[nodename].buildable_to then + core.set_node(pos, { name = "sbz_bio:rope" }) else return end @@ -38,9 +38,9 @@ minetest.register_node("sbz_bio:rope", { after_dig_node = function(pos, node, meta, user) while true do pos.y = pos.y - 1 - node = minetest.get_node(pos) + node = core.get_node(pos) if node.name == "sbz_bio:rope" then - minetest.node_dig(pos, node, user) + core.node_dig(pos, node, user) else return end diff --git a/mods/sbz_chem/centrifuge.lua b/mods/sbz_chem/centrifuge.lua index bcacfa24..70d3b827 100644 --- a/mods/sbz_chem/centrifuge.lua +++ b/mods/sbz_chem/centrifuge.lua @@ -148,7 +148,7 @@ sbz_api.register_stateful_machine('sbz_chem:centrifuge', { input_inv = 'src', output_inv = 'dst', on_construct = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local inv = meta:get_inventory() inv:set_size('src', 1) inv:set_size('dst', 16) diff --git a/mods/sbz_chem/compressor.lua b/mods/sbz_chem/compressor.lua index 263c2fc0..8c849611 100644 --- a/mods/sbz_chem/compressor.lua +++ b/mods/sbz_chem/compressor.lua @@ -44,7 +44,7 @@ sbz_api.register_stateful_machine("sbz_chem:compressor", { input_inv = "src", output_inv = "dst", on_construct = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local inv = meta:get_inventory() inv:set_size("src", 4) inv:set_size("dst", 4) diff --git a/mods/sbz_chem/crystal_grower.lua b/mods/sbz_chem/crystal_grower.lua index eda637e8..5c5d5e32 100644 --- a/mods/sbz_chem/crystal_grower.lua +++ b/mods/sbz_chem/crystal_grower.lua @@ -87,7 +87,7 @@ sbz_api.register_stateful_machine("sbz_chem:crystal_grower", { input_inv = "src", output_inv = "dst", on_construct = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local inv = meta:get_inventory() inv:set_size("src", 4) inv:set_size("dst", 4) diff --git a/mods/sbz_chem/hpef.lua b/mods/sbz_chem/hpef.lua index 1e7e5176..b19974b2 100644 --- a/mods/sbz_chem/hpef.lua +++ b/mods/sbz_chem/hpef.lua @@ -36,7 +36,7 @@ sbz_api.register_stateful_machine('sbz_chem:high_power_electric_furnace', { input_inv = 'src', output_inv = 'dst', on_construct = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local inv = meta:get_inventory() inv:set_size('src', 4) inv:set_size('dst', 4) @@ -72,7 +72,7 @@ listring[context;dst] local out, decremented_input, index for i = 1, 4 do - local out_inner, decremented_input_inner = minetest.get_craft_result { + local out_inner, decremented_input_inner = core.get_craft_result { method = 'cooking', width = 1, items = { src[i] }, diff --git a/mods/sbz_chem/pebble_enhancer.lua b/mods/sbz_chem/pebble_enhancer.lua index 44ffbd7c..9398441e 100644 --- a/mods/sbz_chem/pebble_enhancer.lua +++ b/mods/sbz_chem/pebble_enhancer.lua @@ -31,7 +31,7 @@ sbz_api.register_stateful_machine("sbz_chem:pebble_enhancer", { }, on_construct = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local inv = meta:get_inventory() inv:set_size("input", 1) inv:set_size("output", 16) diff --git a/mods/sbz_chem/radiation.lua b/mods/sbz_chem/radiation.lua index 85d38042..4b923181 100644 --- a/mods/sbz_chem/radiation.lua +++ b/mods/sbz_chem/radiation.lua @@ -69,7 +69,7 @@ local cache_radiation_resistance = {} local function node_radiation_resistance(node_name) local resistance = cache_radiation_resistance[node_name] if resistance then return resistance end - local def = minetest.registered_nodes[node_name] + local def = core.registered_nodes[node_name] if not def then cache_radiation_resistance[node_name] = 0 return 0 @@ -154,7 +154,7 @@ local function calculate_base_damage(node_pos, object_pos, strength) for ray_pos in Raycast(node_pos, vector.multiply(vector.direction(node_pos, object_pos), dist), false, false) do ray_pos = ray_pos.under - local shield_name = minetest.get_node(ray_pos).name + local shield_name = core.get_node(ray_pos).name shielding = shielding + node_radiation_resistance(shield_name) * 0.025 end @@ -192,23 +192,23 @@ end local rad_dmg_mult_sqrt = math.sqrt(1 / rad_dmg_cutoff) local function dmg_abm(pos, node) - local strength = minetest.get_item_group(node.name, 'radioactive') - + (minetest.get_item_group(node.name, 'weak_radioactive') / 100) + local strength = core.get_item_group(node.name, 'radioactive') + + (core.get_item_group(node.name, 'weak_radioactive') / 100) local max_dist = math.min(strength * rad_dmg_mult_sqrt, 10) - for _, o in pairs(minetest.get_objects_inside_radius(pos, max_dist + abdomen_offset)) do + for _, o in pairs(core.get_objects_inside_radius(pos, max_dist + abdomen_offset)) do if (o:is_player()) and o:get_hp() > 0 then dmg_object(pos, o, strength) end end end -if minetest.settings:get_bool('enable_damage') then - minetest.register_abm({ +if core.settings:get_bool('enable_damage') then + core.register_abm({ label = 'Radiation damage', nodenames = { 'group:radioactive' }, interval = 1, chance = 1, action = dmg_abm, }) - minetest.register_abm({ + core.register_abm({ label = 'Radiation damage (Weak, mostly radon)', nodenames = { 'group:weak_radioactive' }, interval = 1, diff --git a/mods/sbz_devtools/init.lua b/mods/sbz_devtools/init.lua index 94691517..936cbceb 100644 --- a/mods/sbz_devtools/init.lua +++ b/mods/sbz_devtools/init.lua @@ -2,7 +2,7 @@ local S = core.get_translator(core.get_current_modname()) -- Don't touch this stuff -minetest.register_chatcommand("dev_givequest", { +core.register_chatcommand("dev_givequest", { description = S("Gives achievements - for debugging only"), params = ' | "all"', @@ -12,15 +12,15 @@ minetest.register_chatcommand("dev_givequest", { for _, q in ipairs(quests) do unlock_achievement(name, q.title) end - minetest.chat_send_player(name, "Gave you all achievements") + core.chat_send_player(name, "Gave you all achievements") else unlock_achievement(name, param) - minetest.chat_send_player(name, "Gave you the achievement with the name \"" .. param .. "\"") + core.chat_send_player(name, "Gave you the achievement with the name \"" .. param .. "\"") end end }) -minetest.register_chatcommand("dev_revokequest", { +core.register_chatcommand("dev_revokequest", { description = S("Revoke an achievement - for debugging only"), params = ' | "all"', @@ -30,15 +30,15 @@ minetest.register_chatcommand("dev_revokequest", { for _, q in ipairs(quests) do revoke_achievement(name, q.title) end - minetest.chat_send_player(name, "Revoked all achievements") + core.chat_send_player(name, "Revoked all achievements") else revoke_achievement(name, param) - minetest.chat_send_player(name, "Revoked the achievement with the name \"" .. param .. "\"") + core.chat_send_player(name, "Revoked the achievement with the name \"" .. param .. "\"") end end }) -minetest.register_chatcommand("dev_hotbar", { +core.register_chatcommand("dev_hotbar", { description = S("Set hotbar slot count - for debugging only"), params = '', privs = { ["server"] = true }, @@ -46,7 +46,7 @@ minetest.register_chatcommand("dev_hotbar", { func = function(name, param) local count = tonumber(param) or 32 - local player = minetest.get_player_by_name(name) + local player = core.get_player_by_name(name) if player then player:hud_set_hotbar_itemcount(count) return true, "Hotbar slot count set to " .. count @@ -56,12 +56,12 @@ minetest.register_chatcommand("dev_hotbar", { end }) -minetest.register_chatcommand("dev_platform", { +core.register_chatcommand("dev_platform", { description = S("Spawn a 10x10 platform below the player - for debugging only"), privs = { ["server"] = true }, func = function(name, param) - local player = minetest.get_player_by_name(name) + local player = core.get_player_by_name(name) if player then local pos = player:get_pos() local platform_start_pos = vector.subtract(pos, { x = 5, y = 1, z = 5 }) @@ -69,10 +69,10 @@ minetest.register_chatcommand("dev_platform", { for z = 0, 9 do if (x == 0 and z == 0) or (x == 0 and z == 9) or (x == 9 and z == 0) or (x == 9 and z == 9) then local platform_pos = vector.add(platform_start_pos, { x = x, y = 0, z = z }) - minetest.set_node(platform_pos, { name = "sbz_decor:photonlamp" }) + core.set_node(platform_pos, { name = "sbz_decor:photonlamp" }) else local platform_pos = vector.add(platform_start_pos, { x = x, y = 0, z = z }) - minetest.set_node(platform_pos, { name = "sbz_resources:matter_blob" }) + core.set_node(platform_pos, { name = "sbz_resources:matter_blob" }) end end end @@ -83,11 +83,11 @@ minetest.register_chatcommand("dev_platform", { end }) -minetest.register_chatcommand("dev_close", { +core.register_chatcommand("dev_close", { description = S("Get the 8 closest unique nodes within a distance of 32 and receive them as items - for debugging only"), privs = { ["server"] = true }, func = function(name) - local player = minetest.get_player_by_name(name) + local player = core.get_player_by_name(name) if not player then return false, "Player not found!" end @@ -114,7 +114,7 @@ minetest.register_chatcommand("dev_close", { end local node_pos = vector.add(pos, { x = x, y = y, z = z }) - local node = minetest.get_node(node_pos) + local node = core.get_node(node_pos) local node_name = node.name if node_name ~= "air" and not unique_nodes[node_name] then @@ -148,11 +148,11 @@ minetest.register_chatcommand("dev_close", { }) -- this is such a zander thing to do lmfao -minetest.register_chatcommand("dev_clear", { +core.register_chatcommand("dev_clear", { description = S("Clears the player's inventory - for debugging only"), privs = { ["server"] = true }, func = function(name) - local player = minetest.get_player_by_name(name) + local player = core.get_player_by_name(name) if not player then return false, "Player not found!" end @@ -165,7 +165,7 @@ minetest.register_chatcommand("dev_clear", { end }) -minetest.register_chatcommand("dev_toggle_libox", { +core.register_chatcommand("dev_toggle_libox", { description = S("Enables/Disables all lua sandboxing"), privs = { ["server"] = true }, func = function() @@ -175,11 +175,11 @@ minetest.register_chatcommand("dev_toggle_libox", { }) sbz_api.forced_light = {} -minetest.register_chatcommand("dev_light", { +core.register_chatcommand("dev_light", { description = S("Makes it day only for you"), privs = { ["server"] = true }, func = function(name) - local player = minetest.get_player_by_name(name) + local player = core.get_player_by_name(name) if not player then return false, "Player not found!" end @@ -188,30 +188,30 @@ minetest.register_chatcommand("dev_light", { end }) -minetest.register_chatcommand("dev_craft", { +core.register_chatcommand("dev_craft", { description = "Fake a craft, used for quest testing, param should be an item name or \"item\" to specify wielded item's name", privs = { ["server"] = true }, func = function(name, param) - local player = minetest.get_player_by_name(name) + local player = core.get_player_by_name(name) if not player then return false, "Player not found!" end if param == "item" or param == "" then param = player:get_wielded_item():get_name() end - for k, v in pairs(minetest.registered_on_crafts) do + for k, v in pairs(core.registered_on_crafts) do v(ItemStack(param), player) end end }) -minetest.register_chatcommand("dev_regen", { +core.register_chatcommand("dev_regen", { description = S("Re-generate a mapblock (one that you are standing on)"), params = "[radius]", privs = { ["server"] = true }, func = function(name, param) - local player = minetest.get_player_by_name(name) + local player = core.get_player_by_name(name) if not player then return false, "Player not found!" end @@ -224,13 +224,13 @@ minetest.register_chatcommand("dev_regen", { end }) -minetest.register_chatcommand("dev_mapblocks", { +core.register_chatcommand("dev_mapblocks", { description = "Sends you all the mapblocks in the radius. RADIUS IS IN MAPBLOCKS!! may not work... in singleplayer at least", params = "[radius]", privs = { ["server"] = true }, func = function(name, param) - local player = minetest.get_player_by_name(name) + local player = core.get_player_by_name(name) if not player then return false, "Player not found!" end diff --git a/mods/sbz_logic/code_disks.lua b/mods/sbz_logic/code_disks.lua index 6f283581..79eab72c 100644 --- a/mods/sbz_logic/code_disks.lua +++ b/mods/sbz_logic/code_disks.lua @@ -2,7 +2,7 @@ local S = core.get_translator(core.get_current_modname()) local logic = sbz_api.logic -minetest.register_craftitem("sbz_logic:data_disk", { +core.register_craftitem("sbz_logic:data_disk", { description = S("Empty Data Disk"), info_extra = { S("Can hold 20 kilobytes."), @@ -17,12 +17,12 @@ minetest.register_craftitem("sbz_logic:data_disk", { stack_meta:get_int("override_code") == 1, stack_meta:get_int("override_editor") == 1 local target = pointed.under - if minetest.is_protected(target, user:get_player_name()) then - minetest.record_protection_violation(target, user:get_player_name()) + if core.is_protected(target, user:get_player_name()) then + core.record_protection_violation(target, user:get_player_name()) return end - local node = minetest.get_node(target) - if not minetest.get_item_group(node.name, "sbz_luacontroller") == 1 then return end + local node = core.get_node(target) + if not core.get_item_group(node.name, "sbz_luacontroller") == 1 then return end local deserialized = core.deserialize(stack_meta:get_string("data")) if type(deserialized) == "string" then @@ -62,13 +62,13 @@ function logic.register_system_disk(name, desc, source, punch_editor, punch_code on_use = function(stack, user, pointed) if pointed.type ~= "node" then return end local target = pointed.under - if minetest.is_protected(target, user:get_player_name()) then - minetest.record_protection_violation(target, user:get_player_name()) + if core.is_protected(target, user:get_player_name()) then + core.record_protection_violation(target, user:get_player_name()) return end - local node = minetest.get_node(target) - if minetest.get_item_group(node.name, "sbz_luacontroller") ~= 1 then return end + local node = core.get_node(target) + if core.get_item_group(node.name, "sbz_luacontroller") ~= 1 then return end if punch_editor then logic.override_editor(target, source) @@ -79,11 +79,11 @@ function logic.register_system_disk(name, desc, source, punch_editor, punch_code end, stack_max = 1 } - minetest.register_craftitem(name, def) - minetest.register_craft(craft) + core.register_craftitem(name, def) + core.register_craft(craft) end -local file = assert(io.open(minetest.get_modpath("sbz_logic") .. "/disks/default_editor.sandboxed.lua", "r"), "wtf??") +local file = assert(io.open(core.get_modpath("sbz_logic") .. "/disks/default_editor.sandboxed.lua", "r"), "wtf??") local default_editor_code = file:read("*a") file:close() diff --git a/mods/sbz_logic/link_tool.lua b/mods/sbz_logic/link_tool.lua index a9c0fb48..fdff2754 100644 --- a/mods/sbz_logic/link_tool.lua +++ b/mods/sbz_logic/link_tool.lua @@ -8,7 +8,7 @@ local logic = sbz_api.logic function logic.happy_particles(pos) local vel = vector.new(-3, -3, -3) - minetest.add_particlespawner({ + core.add_particlespawner({ amount = 1000, time = 0.1, exptime = 3, @@ -48,13 +48,13 @@ local function render_links(dtime) sbz_api.remove_waypoint(v) end waypoint_ids = {} - for k, v in pairs(minetest.get_connected_players()) do + for k, v in pairs(core.get_connected_players()) do local wielded_item = v:get_wielded_item() if wielded_item:get_name() == "sbz_logic:luacontroller_linker" then local itemmeta = wielded_item:get_meta() local linked_pos = vector.from_string(itemmeta:get_string("linked")) if linked_pos ~= nil then -- ahh ok lua kinda needs a continue statement :/ - local linked_meta = minetest.get_meta(linked_pos) + local linked_meta = core.get_meta(linked_pos) local radius = linked_meta:get_int("linking_range") if radius ~= 0 then vizlib.draw_cube(linked_pos, radius + 0.5, { @@ -64,7 +64,7 @@ local function render_links(dtime) time = render_links_delay + 0.1 }) end - local links = minetest.deserialize(linked_meta:get_string("links")) + local links = core.deserialize(linked_meta:get_string("links")) if type(links) == "table" then for k, link in pairs(links) do for _, position in pairs(link) do @@ -85,17 +85,17 @@ local function try_to_link_to_luac(stack, pos, placer) local node = sbz_api.get_or_load_node(pos) if not node then return end node = node.name - local ndef = minetest.registered_nodes[node] + local ndef = core.registered_nodes[node] if not ndef then return end - if not ndef.can_link then return minetest.chat_send_player(name, "Can't link") end + if not ndef.can_link then return core.chat_send_player(name, "Can't link") end -- ok yeah it can link meta:set_string("linked", vector.to_string(pos)) - minetest.chat_send_player(name, "Luacontroller succesfully linked to the luacontroller linking tool!") + core.chat_send_player(name, "Luacontroller succesfully linked to the luacontroller linking tool!") logic.happy_particles(pos) end local function err_link_invalid(placer) - minetest.chat_send_player(placer:get_player_name(), + core.chat_send_player(placer:get_player_name(), "Link is invalid, please link the luacontroller linker to a luacontroller again.") end @@ -111,31 +111,31 @@ local function make_link(meta, pos, placer) end linked_node = linked_node.name - local ndef = minetest.registered_nodes[linked_node] + local ndef = core.registered_nodes[linked_node] if ndef == nil then return err_link_invalid(placer) end if not ndef.can_link then return err_link_invalid(placer) end - local linked_meta = minetest.get_meta(linked_pos) + local linked_meta = core.get_meta(linked_pos) local linked_range = linked_meta:get_int("linking_range") if linked_range == 0 then - minetest.chat_send_player(placer:get_player_name(), "The luacontroller doesn't have a linking upgrade.") + core.chat_send_player(placer:get_player_name(), "The luacontroller doesn't have a linking upgrade.") return end if not logic.in_square_radius(linked_pos, pos, linked_range) then - minetest.chat_send_player(placer:get_player_name(), "Outside of the radius") + core.chat_send_player(placer:get_player_name(), "Outside of the radius") return end local name = meta:get_string "name" if name == "" then - minetest.chat_send_player(placer:get_player_name(), "You need to set a name first (Left click)") + core.chat_send_player(placer:get_player_name(), "You need to set a name first (Left click)") return end -- ok HOPEFULLY thats enough checks holy crap - local links = minetest.deserialize(linked_meta:get_string("links")) or {} + local links = core.deserialize(linked_meta:get_string("links")) or {} links[name] = links[name] or {} links[name][#links[name] + 1] = pos @@ -166,10 +166,10 @@ local function make_link(meta, pos, placer) for k, v in pairs(links) do if #v == 0 then links[k] = nil end end - linked_meta:set_string("links", minetest.serialize(links)) + linked_meta:set_string("links", core.serialize(links)) end -minetest.register_on_player_receive_fields(function(player, formname, fields) +core.register_on_player_receive_fields(function(player, formname, fields) if formname ~= "sbz_logic:luacontroller_linker_form" then return end @@ -191,7 +191,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end) -minetest.register_craftitem("sbz_logic:luacontroller_linker", { +core.register_craftitem("sbz_logic:luacontroller_linker", { description = S("Luacontroller Linker"), short_description = S("Luacontroller Linker"), info_extra = { @@ -211,7 +211,7 @@ minetest.register_craftitem("sbz_logic:luacontroller_linker", { end if placer:get_player_control().aux1 == false then local target = pointed.under - minetest.show_formspec(placer:get_player_name(), "sbz_logic:luacontroller_linker_form", + core.show_formspec(placer:get_player_name(), "sbz_logic:luacontroller_linker_form", "field[set_name;The name of the link;]") if pointed.type ~= "node" then placer:get_meta():set_string("target", "") diff --git a/mods/sbz_logic/upgrades.lua b/mods/sbz_logic/upgrades.lua index 1b597545..03999c57 100644 --- a/mods/sbz_logic/upgrades.lua +++ b/mods/sbz_logic/upgrades.lua @@ -7,7 +7,7 @@ local logic = sbz_api.logic def.action_out = function(stack, logic_pos, logic_meta) -- undo that ^ ]] -minetest.register_craftitem("sbz_logic:upgrade_template", { +core.register_craftitem("sbz_logic:upgrade_template", { description = S("Logic Upgrade Template"), inventory_image = "upgrade_template.png", groups = { ui_logic = 1 } @@ -29,7 +29,7 @@ end logic.register_upgrade = function(name, def) def.groups = { sbz_logic_upgrade = 1, ui_logic = 1 } - minetest.register_craftitem(name, def) + core.register_craftitem(name, def) end logic.register_upgrade("sbz_logic:linking_upgrade", { diff --git a/mods/sbz_logic_devices/meteorite_attractor.lua b/mods/sbz_logic_devices/meteorite_attractor.lua index a26ddc54..56338fb7 100644 --- a/mods/sbz_logic_devices/meteorite_attractor.lua +++ b/mods/sbz_logic_devices/meteorite_attractor.lua @@ -15,7 +15,7 @@ sbz_api.register_machine("sbz_logic_devices:luanium_attractor", { if msg.type == nil or msg.type == "manual" then sbz_api.attract_meteorites(pos, 1, msg.attract) else - minetest.get_meta(pos):set_float("attract", msg.attract) + core.get_meta(pos):set_float("attract", msg.attract) end end, action_subtick = function(pos, node, meta, supply, demand) diff --git a/mods/sbz_meteorites/init.lua b/mods/sbz_meteorites/init.lua index 2d0f31f3..a46cd87a 100644 --- a/mods/sbz_meteorites/init.lua +++ b/mods/sbz_meteorites/init.lua @@ -3,7 +3,7 @@ local S = core.get_translator(core.get_current_modname()) local y_min = -300 local function spawn_meteorite(pos) if not pos then - for _, ref in pairs(minetest.get_connected_players()) do + for _, ref in pairs(core.get_connected_players()) do local player_pos = ref:get_pos() local relative_pos local success = false @@ -24,10 +24,10 @@ local function spawn_meteorite(pos) end end - if pos then return minetest.add_entity(pos, 'sbz_meteorites:meteorite') end + if pos then return core.add_entity(pos, 'sbz_meteorites:meteorite') end end -minetest.register_chatcommand('spawn_meteorite', { +core.register_chatcommand('spawn_meteorite', { params = '([ ] | ["here"]) [number]', description = S("Attempts to spawn a meteorite somewhere."), privs = { give = true }, @@ -38,8 +38,8 @@ minetest.register_chatcommand('spawn_meteorite', { -- do not read below if type(tonumber(split[1])) == 'number' and type(tonumber(split[2])) ~= 'number' then num_of_meteorites = math.max(1, tonumber(split[1])) - elseif split[1] == 'here' and minetest.get_player_by_name(name) then - pos = minetest.get_player_by_name(name):get_pos() + elseif split[1] == 'here' and core.get_player_by_name(name) then + pos = core.get_player_by_name(name):get_pos() if tonumber(split[2]) ~= nil then num_of_meteorites = math.max(1, tonumber(split[2])) end else if tonumber(split[1]) ~= nil and tonumber(split[2]) ~= nil and tonumber(split[3]) ~= nil then @@ -52,19 +52,19 @@ minetest.register_chatcommand('spawn_meteorite', { meteorite = spawn_meteorite(pos) end if not meteorite then - minetest.chat_send_player(name, 'Failed to spawn meteorite.') + core.chat_send_player(name, 'Failed to spawn meteorite.') return end local mpos = vector.round(meteorite:get_pos()) if num_of_meteorites == 1 then - minetest.chat_send_player(name, 'Spawned meteorite at ' .. mpos.x .. ' ' .. mpos.y .. ' ' .. mpos.z .. '.') + core.chat_send_player(name, 'Spawned meteorite at ' .. mpos.x .. ' ' .. mpos.y .. ' ' .. mpos.z .. '.') else - minetest.chat_send_player(name, 'Spawned meteorites.') + core.chat_send_player(name, 'Spawned meteorites.') end end, }) -local storage = minetest.get_mod_storage() +local storage = core.get_mod_storage() local time_since = storage:get_float('time_since_last_spawn') local function meteorite_globalstep(dtime) @@ -72,7 +72,7 @@ local function meteorite_globalstep(dtime) if time_since > 120 then time_since = 0 if math.random() < 0.25 then spawn_meteorite() end - -- for _, obj in ipairs(minetest.object_refs) do + -- for _, obj in ipairs(core.object_refs) do -- if obj and obj:get_luaentity() and obj:get_luaentity().name == "sbz_meteorites:gravitational_attractor_entity" and math.random() < 0.2 then -- spawns = spawns + obj:get_luaentity().type -- end @@ -82,9 +82,9 @@ local function meteorite_globalstep(dtime) storage:set_float('time_since_last_spawn', time_since) end -minetest.register_globalstep(meteorite_globalstep) +core.register_globalstep(meteorite_globalstep) -local modpath = minetest.get_modpath('sbz_meteorites') +local modpath = core.get_modpath('sbz_meteorites') dofile(modpath .. '/meteorite.lua') dofile(modpath .. '/nodes.lua') diff --git a/mods/sbz_meteorites/meteorite_maker.lua b/mods/sbz_meteorites/meteorite_maker.lua index 5d68fcf8..0472c11c 100644 --- a/mods/sbz_meteorites/meteorite_maker.lua +++ b/mods/sbz_meteorites/meteorite_maker.lua @@ -116,7 +116,7 @@ core.register_entity("sbz_meteorites:emerging_meteorite", { }, on_activate = function(self, staticdata, dtime) self.object:set_rotation(vector.new(math.random() * 2, math.random(), math.random() * 2) * math.pi) - staticdata = minetest.deserialize(staticdata) -- why does the engine make me do this crap? xd + staticdata = core.deserialize(staticdata) -- why does the engine make me do this crap? xd self.type = staticdata.type self.origin = staticdata.origin @@ -163,12 +163,12 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { info_extra = "Makes meteorites", on_construct = function(pos) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local inventory = meta:get_inventory() inventory:set_size("main", 32) meta:set_string("type", "") meta:set_string("formspec", get_meteorite_maker_formspec(pos, meta)) - meta:set_string("counts", minetest.serialize {}) + meta:set_string("counts", core.serialize {}) end, autostate = true, action = function(pos, node, meta, supply, demand, dir) @@ -204,7 +204,7 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { } for k, v in ipairs(positions) do - local def = minetest.registered_nodes[minetest.get_node(vector.add(pos, v)).name] + local def = core.registered_nodes[core.get_node(vector.add(pos, v)).name] if not def or not def.buildable_to then meta:set_string("infotext", "Can't summon/feed meteorite, it needs some space.") return 0 @@ -220,7 +220,7 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { local center_pos = vector.add(pos, vector.new(0, 4, 0)) - local entities = minetest.get_objects_inside_radius(center_pos, 1) + local entities = core.get_objects_inside_radius(center_pos, 1) local our_meteorite = nil for k, v in pairs(entities) do @@ -228,7 +228,7 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { if luaentity and luaentity.name == "sbz_meteorites:emerging_meteorite" then if luaentity.origin and - minetest.hash_node_position(luaentity.origin) == minetest.hash_node_position(pos) + core.hash_node_position(luaentity.origin) == core.hash_node_position(pos) then our_meteorite = v break @@ -237,7 +237,7 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { end if our_meteorite == nil then - our_meteorite = minetest.add_entity(center_pos, "sbz_meteorites:emerging_meteorite", minetest.serialize { + our_meteorite = core.add_entity(center_pos, "sbz_meteorites:emerging_meteorite", core.serialize { origin = pos, type = meta:get_string("type"), }) @@ -247,7 +247,7 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { end end - local counts = minetest.deserialize(meta:get_string("counts")) + local counts = core.deserialize(meta:get_string("counts")) local sum_max = 0 local sum_current = 0 @@ -267,12 +267,12 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { if size_to_apply == 2 then -- full our_meteorite:remove() - local m = minetest.add_entity(center_pos, "sbz_meteorites:meteorite", meta:get_string("type")) + local m = core.add_entity(center_pos, "sbz_meteorites:meteorite", meta:get_string("type")) for k, v in pairs(counts) do v.current = 0 end - meta:set_string("counts", minetest.serialize(counts)) + meta:set_string("counts", core.serialize(counts)) meta:set_string("infotext", "Spawned the meteorite") return power_consume end @@ -293,11 +293,11 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { end end - meta:set_string("counts", minetest.serialize(counts)) + meta:set_string("counts", core.serialize(counts)) meta:set_string("formspec", get_meteorite_maker_formspec(pos, meta, counts)) meta:set_string("infotext", "Working") - minetest.add_particlespawner({ + core.add_particlespawner({ pos = pos, attract = { kind = "point", @@ -321,7 +321,7 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { return added_any_items and power_consume or power_consume_when_holding_meteorite end, on_receive_fields = function(pos, formname, fields, sender) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local inv = meta:get_inventory() local type = meta:get_string("type") @@ -345,16 +345,16 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { max = stack:get_count(), } end - meta:set_string("counts", minetest.serialize(c)) + meta:set_string("counts", core.serialize(c)) end else if fields.discard then local center_pos = vector.add(pos, vector.new(0, 4, 0)) - local counts = minetest.deserialize(meta:get_string("counts")) + local counts = core.deserialize(meta:get_string("counts")) for item, v in pairs(counts) do local items = split_stack_to_correct_items(ItemStack(item .. " " .. v.current)) for k, v in pairs(items) do - minetest.item_drop(v, fakelib.create_player({ + core.item_drop(v, fakelib.create_player({ name = "", direction = { x = 0, y = 1, z = 0 @@ -363,12 +363,12 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { end end meta:set_string("type", "") - meta:set_string("counts", minetest.serialize {}) + meta:set_string("counts", core.serialize {}) -- and remove the meteorite entity - local entities = minetest.get_objects_inside_radius(center_pos, 1) + local entities = core.get_objects_inside_radius(center_pos, 1) local our_meteorite = nil for k, v in pairs(entities) do @@ -376,7 +376,7 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { if luaentity and luaentity.name == "sbz_meteorites:emerging_meteorite" then if luaentity.origin and - minetest.hash_node_position(luaentity.origin) == minetest.hash_node_position(pos) + core.hash_node_position(luaentity.origin) == core.hash_node_position(pos) then our_meteorite = v break @@ -388,7 +388,7 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { end meta:set_string("formspec", - get_meteorite_maker_formspec(pos, meta, minetest.deserialize(meta:get_string("counts")))) + get_meteorite_maker_formspec(pos, meta, core.deserialize(meta:get_string("counts")))) end, output_inv = "main", input_inv = "main", diff --git a/mods/sbz_meteorites/visualiser.lua b/mods/sbz_meteorites/visualiser.lua index 3ecd37a8..364245fe 100644 --- a/mods/sbz_meteorites/visualiser.lua +++ b/mods/sbz_meteorites/visualiser.lua @@ -19,7 +19,7 @@ sbz_api.register_machine('sbz_meteorites:meteorite_radar', { groups = { matter = 1 }, power_needed = 40, on_construct = function(pos) - minetest.sound_play({ name = 'machine_build' }, { pos = pos }) + core.sound_play({ name = 'machine_build' }, { pos = pos }) end, action = function(radar_pos) local power_consume = 10 @@ -28,7 +28,7 @@ sbz_api.register_machine('sbz_meteorites:meteorite_radar', { local meteorites = {} local attractors = {} local repulsors = {} - for _, obj in pairs(minetest.get_objects_inside_radius(radar_pos, 150)) do + for _, obj in pairs(core.get_objects_inside_radius(radar_pos, 150)) do if obj then local entity = obj:get_luaentity() if not entity then @@ -43,7 +43,7 @@ sbz_api.register_machine('sbz_meteorites:meteorite_radar', { end end if #meteorites > 0 then - minetest.add_particle { + core.add_particle { pos = radar_pos + vector.new(0, 1.5, 0), expiration_time = 1, size = 10, @@ -52,7 +52,7 @@ sbz_api.register_machine('sbz_meteorites:meteorite_radar', { glow = 14, } - minetest.sound_play({ name = 'alarm', gain = 0.7 }, { pos = radar_pos, max_hear_distance = 64 }) + core.sound_play({ name = 'alarm', gain = 0.7 }, { pos = radar_pos, max_hear_distance = 64 }) power_consume = 40 end @@ -70,9 +70,9 @@ sbz_api.register_machine('sbz_meteorites:meteorite_radar', { for _, repulsor in ipairs(repulsors) do vel = vel - 51.2 * sbz_api.get_attraction(pos, repulsor) end - local collides = minetest.registered_nodes[minetest.get_node(vector.round(pos)).name].walkable + local collides = core.registered_nodes[core.get_node(vector.round(pos)).name].walkable for _, player in ipairs(players) do - minetest.add_particle { + core.add_particle { pos = pos, expiration_time = 1, size = collides and 50 or 10, diff --git a/mods/sbz_pipeworks/luaentity.lua b/mods/sbz_pipeworks/luaentity.lua index 917ca849..42249f2c 100644 --- a/mods/sbz_pipeworks/luaentity.lua +++ b/mods/sbz_pipeworks/luaentity.lua @@ -7,19 +7,19 @@ pipeworks.luaentity = luaentity luaentity.registered_entities = {} -local filename = minetest.get_worldpath() .. "/luaentities" +local filename = core.get_worldpath() .. "/luaentities" local function read_file() local f = io.open(filename, "r") if f == nil then return {} end local t = f:read("*all") f:close() if t == "" or t == nil then return {} end - return minetest.deserialize(t) or {} + return core.deserialize(t) or {} end local function write_file(tbl) local f = io.open(filename, "w") - f:write(minetest.serialize(tbl)) + f:write(core.serialize(tbl)) f:close() end @@ -67,7 +67,7 @@ local function write_entities() write_file(luaentity.entities) end -minetest.register_on_shutdown(write_entities) +core.register_on_shutdown(write_entities) luaentity.entities_index = 0 local move_entities_globalstep_part1 @@ -85,11 +85,11 @@ if pipeworks.use_real_entities then end move_entities_globalstep_part1 = function(dtime) - local active_block_range = tonumber(minetest.settings:get("active_block_range")) or 2 + local active_block_range = tonumber(core.settings:get("active_block_range")) or 2 for key in pairs(active_blocks) do active_blocks[key] = nil end - for _, player in ipairs(minetest.get_connected_players()) do + for _, player in ipairs(core.get_connected_players()) do local blockpos = get_blockpos(player:get_pos()) local minpx = blockpos.x - active_block_range local minpy = blockpos.y - active_block_range @@ -102,7 +102,7 @@ if pipeworks.use_real_entities then for y = minpy, maxpy do for z = minpz, maxpz do local pos = { x = x, y = y, z = z } - active_blocks[minetest.hash_node_position(pos)] = true + active_blocks[core.hash_node_position(pos)] = true end end end @@ -111,7 +111,7 @@ if pipeworks.use_real_entities then end is_active = function(pos) - return active_blocks[minetest.hash_node_position(get_blockpos(pos))] ~= nil + return active_blocks[core.hash_node_position(get_blockpos(pos))] ~= nil end else move_entities_globalstep_part1 = function() @@ -173,7 +173,7 @@ local entitydef_default = { if not is_active(entity_pos) then return end - local object = minetest.add_entity(entity_pos, entity.name) + local object = core.add_entity(entity_pos, entity.name) if not object then return end @@ -295,7 +295,7 @@ end function luaentity.add_entity(pos, name) if not luaentity.entities then - minetest.after(0, luaentity.add_entity, vector.new(pos), name) + core.after(0, luaentity.add_entity, vector.new(pos), name) return end local index = luaentity.entities_index @@ -409,7 +409,7 @@ local dtime_accum = 0 local dtime_delayed = 0 local skip_update = false -minetest.register_globalstep(function(dtime) +core.register_globalstep(function(dtime) if dtime >= 0.2 and dtime_delayed < 1 then -- Reduce activity when the server is lagging. skip_update = true diff --git a/mods/sbz_power/sensors/sensor_linker.lua b/mods/sbz_power/sensors/sensor_linker.lua index 68fa7889..c299bec3 100644 --- a/mods/sbz_power/sensors/sensor_linker.lua +++ b/mods/sbz_power/sensors/sensor_linker.lua @@ -5,7 +5,7 @@ local waypoint_ids = {} local function happy_particles(pos) local vel = vector.new(-3, -3, -3) - minetest.add_particlespawner { + core.add_particlespawner { amount = 1000, time = 0.1, exptime = 3, @@ -39,7 +39,7 @@ local function render_links(dtime) end waypoint_ids = {} - for k, v in pairs(minetest.get_connected_players()) do + for k, v in pairs(core.get_connected_players()) do local wielded_item = v:get_wielded_item() if wielded_item:get_name() == 'sbz_power:sensor_linker' then local itemmeta = wielded_item:get_meta() @@ -47,7 +47,7 @@ local function render_links(dtime) if linked_pos_data ~= '' then local linked_pos = core.deserialize(linked_pos_data) local linked_node = sbz_api.get_or_load_node(linked_pos) - local linked_meta = minetest.get_meta(linked_pos) + local linked_meta = core.get_meta(linked_pos) local radius = core.registered_nodes[linked_node.name].linking_range or linked_meta:get_int 'linking_range' @@ -78,17 +78,17 @@ local function try_to_link_to_tool(stack, pos, placer) local node = sbz_api.get_or_load_node(pos) if not node then return end node = node.name - local ndef = minetest.registered_nodes[node] + local ndef = core.registered_nodes[node] if not ndef then return end if not ndef.can_sensor_link then return sbz_api.displayDialogLine(name, "Can't link with that.") end -- ok yeah it can link meta:set_string('linked', core.serialize(pos)) - minetest.chat_send_player(name, 'Succesfully linked to the sensor.') + core.chat_send_player(name, 'Succesfully linked to the sensor.') happy_particles(pos) end local function err_link_invalid(placer) - minetest.chat_send_player(placer:get_player_name(), 'Link is invalid, please link the tool to your sensor again.') + core.chat_send_player(placer:get_player_name(), 'Link is invalid, please link the tool to your sensor again.') end local function make_link(meta, pos, placer) @@ -100,7 +100,7 @@ local function make_link(meta, pos, placer) local linked_node = sbz_api.get_or_load_node(linked_pos) linked_node = linked_node.name - local ndef = minetest.registered_nodes[linked_node] + local ndef = core.registered_nodes[linked_node] if ndef == nil then return err_link_invalid(placer) end if not ndef.can_sensor_link then return core.chat_send_player( @@ -109,29 +109,29 @@ local function make_link(meta, pos, placer) ) end - local linked_meta = minetest.get_meta(linked_pos) + local linked_meta = core.get_meta(linked_pos) local linked_range = ndef.linking_range or linked_meta:get_int 'linking_range' if linked_range == 0 then - minetest.chat_send_player(placer:get_player_name(), "Can't link anything in that sensor, linked range is 0.") + core.chat_send_player(placer:get_player_name(), "Can't link anything in that sensor, linked range is 0.") return end if not logic.in_square_radius(linked_pos, pos, linked_range) then - minetest.chat_send_player(placer:get_player_name(), 'Outside of the radius') + core.chat_send_player(placer:get_player_name(), 'Outside of the radius') return end local name = meta:get_string 'name' if name == '' then - minetest.chat_send_player(placer:get_player_name(), 'You need to set a name first (Left click)') + core.chat_send_player(placer:get_player_name(), 'You need to set a name first (Left click)') return end if ndef.add_link then ndef.add_link(meta, pos, placer) else - local links = minetest.deserialize(linked_meta:get_string 'links') or {} + local links = core.deserialize(linked_meta:get_string 'links') or {} links[name] = links[name] or {} links[name][#links[name] + 1] = pos @@ -162,11 +162,11 @@ local function make_link(meta, pos, placer) for k, v in pairs(links) do if #v == 0 then links[k] = nil end end - linked_meta:set_string('links', minetest.serialize(links)) + linked_meta:set_string('links', core.serialize(links)) end end -minetest.register_on_player_receive_fields(function(player, formname, fields) +core.register_on_player_receive_fields(function(player, formname, fields) if formname ~= 'sbz_power:sensor_linker_form' then return end local name = fields.set_name local wield_item = player:get_wielded_item() @@ -183,7 +183,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) return true end) -minetest.register_craftitem('sbz_power:sensor_linker', { +core.register_craftitem('sbz_power:sensor_linker', { description = S("Sensor Linker"), info_extra = { S("Right click: asks for a name, if a block is pointed to, links to the to the sensor."), @@ -203,7 +203,7 @@ minetest.register_craftitem('sbz_power:sensor_linker', { if placer:get_player_control().aux1 == false then local target = pointed.under - minetest.show_formspec( + core.show_formspec( placer:get_player_name(), 'sbz_power:sensor_linker_form', 'field[set_name;The name of the link;]' diff --git a/mods/sbz_resources/basic_resources.lua b/mods/sbz_resources/basic_resources.lua index 2285aec0..71a908bd 100644 --- a/mods/sbz_resources/basic_resources.lua +++ b/mods/sbz_resources/basic_resources.lua @@ -13,7 +13,7 @@ unified_inventory.register_craft_type("punching", { -- The Core -- The basis of all progression -- Core Drops -minetest.register_craftitem("sbz_resources:core_dust", { +core.register_craftitem("sbz_resources:core_dust", { description = S("Core Dust"), inventory_image = "core_dust.png", stack_max = 256, @@ -35,7 +35,7 @@ unified_inventory.register_craft { } } -minetest.register_craftitem("sbz_resources:matter_dust", { +core.register_craftitem("sbz_resources:matter_dust", { description = S("Matter Dust"), inventory_image = "matter_dust.png", stack_max = 256, @@ -55,7 +55,7 @@ unified_inventory.register_craft { } } -minetest.register_craftitem("sbz_resources:charged_particle", { +core.register_craftitem("sbz_resources:charged_particle", { description = S("Charged Particle"), inventory_image = "charged_particle.png", stack_max = 256, @@ -77,7 +77,7 @@ unified_inventory.register_craft { } -- Other Items -minetest.register_craftitem("sbz_resources:antimatter_dust", { +core.register_craftitem("sbz_resources:antimatter_dust", { description = S("Antimatter Dust"), inventory_image = "antimatter_dust.png", stack_max = 256, diff --git a/mods/sbz_resources/fireworks.lua b/mods/sbz_resources/fireworks.lua index 79b214ba..b79d433a 100644 --- a/mods/sbz_resources/fireworks.lua +++ b/mods/sbz_resources/fireworks.lua @@ -197,10 +197,10 @@ core.register_craftitem("sbz_resources:firework", { if inv:room_for_item("main", drop) then inv:add_item("main", drop) else - minetest.add_item(user:get_pos(), drop) + core.add_item(user:get_pos(), drop) end - minetest.chat_send_all("⌠ Crazy Rare Drop: " .. player_name .. " just dropped a Firework Rune! ⌡") + core.chat_send_all("⌠ Crazy Rare Drop: " .. player_name .. " just dropped a Firework Rune! ⌡") end return stack diff --git a/mods/sbz_resources/logic_craftitems.lua b/mods/sbz_resources/logic_craftitems.lua index 908372b9..af323a8b 100644 --- a/mods/sbz_resources/logic_craftitems.lua +++ b/mods/sbz_resources/logic_craftitems.lua @@ -1,20 +1,20 @@ local S = core.get_translator(core.get_current_modname()) -minetest.register_craftitem("sbz_resources:luanium", { +core.register_craftitem("sbz_resources:luanium", { description = S("Luanium"), info_extra = "No, not moon matter", inventory_image = "luanium.png", groups = { ui_logic = 1 } }) -minetest.register_craftitem("sbz_resources:lua_chip", { +core.register_craftitem("sbz_resources:lua_chip", { description = S("Lua Chip"), inventory_image = "luachip.png", groups = { ui_logic = 1 } }) -minetest.register_craftitem("sbz_resources:ram_stick_1mb", { +core.register_craftitem("sbz_resources:ram_stick_1mb", { description = S("Ram Stick"), inventory_image = "ram1mb.png", groups = { ui_logic = 1 } }) -minetest.register_alias("sbz_resources:ram_stick_1kb", "sbz_resources:ram_stick_1mb") +core.register_alias("sbz_resources:ram_stick_1kb", "sbz_resources:ram_stick_1mb") diff --git a/mods/sbz_resources/processors_and_circuits.lua b/mods/sbz_resources/processors_and_circuits.lua index 164422c8..3d4182b0 100644 --- a/mods/sbz_resources/processors_and_circuits.lua +++ b/mods/sbz_resources/processors_and_circuits.lua @@ -1,6 +1,6 @@ local S = core.get_translator(core.get_current_modname()) -minetest.register_craftitem('sbz_resources:simple_circuit', { +core.register_craftitem('sbz_resources:simple_circuit', { description = S("Simple Circuit"), inventory_image = 'simple_circuit.png', stack_max = 256, @@ -18,7 +18,7 @@ do -- Simple Circuit recipe scope }) end -minetest.register_craftitem('sbz_resources:retaining_circuit', { +core.register_craftitem('sbz_resources:retaining_circuit', { description = S("Retaining Circuit"), inventory_image = 'retaining_circuit.png', stack_max = 256, @@ -36,7 +36,7 @@ do -- Retaining Circuit recipe scope }) end -minetest.register_craftitem('sbz_resources:emittrium_circuit', { +core.register_craftitem('sbz_resources:emittrium_circuit', { description = S("Emittrium Circuit"), inventory_image = 'emittrium_circuit.png', stack_max = 256, @@ -100,7 +100,7 @@ do -- Prediction Circuit recipe scope }) end -minetest.register_craftitem('sbz_resources:simple_logic_circuit', { +core.register_craftitem('sbz_resources:simple_logic_circuit', { description = S("Simple Logic Circuit"), inventory_image = 'simple_logic_circuit.png', stack_max = 256, @@ -123,7 +123,7 @@ do -- Simple Logic Circuit recipe scope }) end -minetest.register_craftitem('sbz_resources:simple_inverted_logic_circuit', { +core.register_craftitem('sbz_resources:simple_inverted_logic_circuit', { description = S("Simple Inverted Logic Circuit"), inventory_image = 'simple_inverting_circuit.png', stack_max = 256, diff --git a/mods/sbz_resources/wormhole.lua b/mods/sbz_resources/wormhole.lua index 389fc995..7512a599 100644 --- a/mods/sbz_resources/wormhole.lua +++ b/mods/sbz_resources/wormhole.lua @@ -24,19 +24,19 @@ core.register_tool("sbz_resources:wormhole", { on_secondary_use = function(itemstack, user, pointed_thing) -- this is a bit broken, formspecs themselves work, but the inventory slots do not! local pos_str = itemstack:get_meta():get_string("target_pos") if pos_str == "" then - minetest.chat_send_player(user:get_player_name(), "Not linked!") + core.chat_send_player(user:get_player_name(), "Not linked!") return itemstack end - local target_pos = minetest.deserialize(pos_str) - local node = minetest.get_node_or_nil(target_pos) + local target_pos = core.deserialize(pos_str) + local node = core.get_node_or_nil(target_pos) if not node or node.name == "ignore" then - minetest.chat_send_player(user:get_player_name(), "Target area is not loaded!") + core.chat_send_player(user:get_player_name(), "Target area is not loaded!") return itemstack end - local def = minetest.registered_nodes[node.name] + local def = core.registered_nodes[node.name] local player_name = user:get_player_name() if def and def.on_rightclick then @@ -44,21 +44,21 @@ core.register_tool("sbz_resources:wormhole", { def.on_rightclick(target_pos, node, user, itemstack, fake_pointed) end - local meta = minetest.get_meta(target_pos) + local meta = core.get_meta(target_pos) local formspec = meta:get_string("formspec") - minetest.show_formspec(player_name, "remote_linker:remote", formspec) + core.show_formspec(player_name, "remote_linker:remote", formspec) return itemstack end, on_place = function(itemstack, user, pointed_thing) - return minetest.registered_tools["sbz_resources:wormhole"].on_secondary_use(itemstack, user, pointed_thing) + return core.registered_tools["sbz_resources:wormhole"].on_secondary_use(itemstack, user, pointed_thing) end, }) -- onto the recipe -minetest.register_craftitem("sbz_resources:unrefined_firmament", { +core.register_craftitem("sbz_resources:unrefined_firmament", { description = S("Unrefined Firmament"), inventory_image = "unrefined_firmament.png", stack_max = 256, @@ -73,7 +73,7 @@ sbz_api.recipe.register_craft { }, } -minetest.register_craftitem("sbz_resources:gravitational_lens", { +core.register_craftitem("sbz_resources:gravitational_lens", { description = S("Gravitational Lens"), inventory_image = "gravitational_lens.png", stack_max = 1, @@ -94,7 +94,7 @@ do -- Gravitational Lens recipe scope }) end -minetest.register_craftitem("sbz_resources:refined_firmament", { +core.register_craftitem("sbz_resources:refined_firmament", { description = S("Refined Firmament"), inventory_image = "refined_firmament.png", stack_max = 256, diff --git a/mods/smartshop/privs.lua b/mods/smartshop/privs.lua index 579cbdd4..21e5f7f4 100644 --- a/mods/smartshop/privs.lua +++ b/mods/smartshop/privs.lua @@ -1,7 +1,7 @@ local S = core.get_translator(core.get_current_modname()) -if not minetest.registered_privileges[smartshop.settings.admin_shop_priv] then - minetest.register_privilege(smartshop.settings.admin_shop_priv, { +if not core.registered_privileges[smartshop.settings.admin_shop_priv] then + core.register_privilege(smartshop.settings.admin_shop_priv, { description = S("Smartshop admin"), give_to_singleplayer = false, give_to_admin = false, diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua index 49a8a618..8201c38c 100644 --- a/mods/stairs/init.lua +++ b/mods/stairs/init.lua @@ -43,7 +43,7 @@ local function rotate_and_place(itemstack, placer, pointed_thing) local placer_pos = placer:get_pos() if placer_pos then local diff = vector.subtract(p1, placer_pos) - param2 = minetest.dir_to_facedir(diff) + param2 = core.dir_to_facedir(diff) -- The player places a node on the side face of the node he is standing on if p0.y == p1.y and math.abs(diff.x) <= 0.5 and math.abs(diff.z) <= 0.5 and diff.y < 0 then -- reverse node direction @@ -51,7 +51,7 @@ local function rotate_and_place(itemstack, placer, pointed_thing) end end - local finepos = minetest.pointed_thing_to_face_pos(placer, pointed_thing) + local finepos = core.pointed_thing_to_face_pos(placer, pointed_thing) local fpos = finepos.y % 1 if p0.y - 1 == p1.y or (fpos > 0 and fpos < 0.5) @@ -64,7 +64,7 @@ local function rotate_and_place(itemstack, placer, pointed_thing) end end end - return minetest.item_place(itemstack, placer, pointed_thing, param2) + return core.item_place(itemstack, placer, pointed_thing, param2) end -- Set backface culling and world-aligned textures @@ -92,7 +92,7 @@ end function stairs.register(name, reg_def) - local def = assert(minetest.registered_nodes[name]) + local def = assert(core.registered_nodes[name]) reg_def = reg_def or {} if reg_def == "leveled" then reg_def = { leveled = true } end local tex = reg_def.tex @@ -184,7 +184,7 @@ function stairs.register(name, reg_def) end def_copy.tiles = set_textures(def_copy.tiles, reg_def.align) end - minetest.register_node(name .. "_" .. v, def_copy) + core.register_node(name .. "_" .. v, def_copy) end if reg_def.leveled == true then @@ -205,7 +205,7 @@ function stairs.register(name, reg_def) } do c[k] = v end - minetest.register_node(def.name .. "_leveled", c) + core.register_node(def.name .. "_leveled", c) end local to_override_info_extra = def.info_extra @@ -220,7 +220,7 @@ function stairs.register(name, reg_def) local g = def.groups for k, v in pairs { cnc = 1, cnc_leveled = reg_def.leveled and 1 or 0 } do g[k] = v end - minetest.override_item(name, { + core.override_item(name, { info_extra = to_override_info_extra, groups = g }) @@ -245,18 +245,18 @@ local action = function(action) local bpos = pointed.under local function doit(pos, a) - local n = minetest.get_node(pos) + local n = core.get_node(pos) if n == nil then return end - local ndef = minetest.registered_nodes[n.name] + local ndef = core.registered_nodes[n.name] if ndef == nil then return end if ndef.paramtype2 ~= "leveled" then return end - local level = minetest.get_node_level(pos) - local max = minetest.get_node_max_level(pos) + local level = core.get_node_level(pos) + local max = core.get_node_max_level(pos) level = math.round(level + a) if level <= 0 then level = 0 end if level >= max then level = max end if control.zoom then level = 0 end - minetest.set_node_level(pos, level) + core.set_node_level(pos, level) end if r == 1 then @@ -278,7 +278,7 @@ local action = function(action) return stack end end -minetest.register_craftitem("stairs:leveled_tool", { +core.register_craftitem("stairs:leveled_tool", { description = "Leveled node tool", info_extra = { "Placing: Increase level by 1", diff --git a/mods/travelnet/chat.lua b/mods/travelnet/chat.lua index 13d6fe09..5a9d1b20 100644 --- a/mods/travelnet/chat.lua +++ b/mods/travelnet/chat.lua @@ -1,6 +1,6 @@ local S = core.get_translator(core.get_current_modname()) -minetest.register_chatcommand("travelnet", { +core.register_chatcommand("travelnet", { params = "[network?]", description = S("Shows the travelnet formspec for the network"), privs = { @@ -23,7 +23,7 @@ minetest.register_chatcommand("travelnet", { local first_station = network[first_station_name] local pos = first_station.pos - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) travelnet.show_current_formspec(pos, meta, playername) end diff --git a/mods/unified_inventory/api.lua b/mods/unified_inventory/api.lua index 9789e87b..92eb49f4 100644 --- a/mods/unified_inventory/api.lua +++ b/mods/unified_inventory/api.lua @@ -25,7 +25,7 @@ License along with this program. If not, see . local S = core.get_translator(core.get_current_modname()) -local F = minetest.formspec_escape +local F = core.formspec_escape local ui = unified_inventory local function is_recipe_craftable(recipe) @@ -39,8 +39,8 @@ local function is_recipe_craftable(recipe) else -- Possibly an item local itemname_cleaned = ItemStack(itemname):get_name() - if not minetest.registered_items[itemname_cleaned] - or minetest.get_item_group(itemname_cleaned, "not_in_craft_guide") ~= 0 then + if not core.registered_items[itemname_cleaned] + or core.get_item_group(itemname_cleaned, "not_in_craft_guide") ~= 0 then return false end end @@ -49,9 +49,9 @@ local function is_recipe_craftable(recipe) end -- Create detached creative inventory after loading all mods -minetest.after(0.01, function() +core.after(0.01, function() local rev_aliases = {} - for original, newname in pairs(minetest.registered_aliases) do + for original, newname in pairs(core.registered_aliases) do if not rev_aliases[newname] then rev_aliases[newname] = {} end @@ -60,7 +60,7 @@ minetest.after(0.01, function() -- Filtered item list ui.items_list = {} - for name, def in pairs(minetest.registered_items) do + for name, def in pairs(core.registered_items) do if ui.is_itemdef_listable(def) then table.insert(ui.items_list, name) @@ -68,7 +68,7 @@ minetest.after(0.01, function() local all_names = rev_aliases[name] or {} table.insert(all_names, name) for _, itemname in ipairs(all_names) do - local recipes = minetest.get_all_craft_recipes(itemname) + local recipes = core.get_all_craft_recipes(itemname) for _, recipe in ipairs(recipes or {}) do if is_recipe_craftable(recipe) then ui.register_craft(recipe) @@ -84,7 +84,7 @@ minetest.after(0.01, function() -- Analyse dropped items -> custom "digging" recipes for _, name in ipairs(ui.items_list) do - local def = minetest.registered_items[name] + local def = core.registered_items[name] -- Simple drops if type(def.drop) == "string" then local dstack = ItemStack(def.drop) @@ -213,12 +213,12 @@ minetest.after(0.01, function() local total_removed = 0 for cat_name, cat_def in pairs(ui.registered_category_items) do for itemname, _ in pairs(cat_def) do - local idef = minetest.registered_items[itemname] + local idef = core.registered_items[itemname] if not idef then total_removed = total_removed + 1 --[[ -- For analysis - minetest.log("warning", "[unified_inventory] Removed item '" + core.log("warning", "[unified_inventory] Removed item '" .. itemname .. "' from category '" .. cat_name .. "'. Reason: item not registered") ]] @@ -227,7 +227,7 @@ minetest.after(0.01, function() total_removed = total_removed + 1 --[[ -- For analysis - minetest.log("warning", "[unified_inventory] Removed item '" + core.log("warning", "[unified_inventory] Removed item '" .. itemname .. "' from category '" .. cat_name .. "'. Reason: item is in 'not_in_creative_inventory' group") ]] @@ -236,7 +236,7 @@ minetest.after(0.01, function() end end if total_removed > 0 then - minetest.log("info", "[unified_inventory] Removed " .. total_removed .. + core.log("info", "[unified_inventory] Removed " .. total_removed .. " items from the categories.") end @@ -273,7 +273,7 @@ function ui.set_home(player, pos) -- save the home data from the table to the file local output = io.open(ui.home_filename, "w") if not output then - minetest.log("warning", "[unified_inventory] Failed to save file: " + core.log("warning", "[unified_inventory] Failed to save file: " .. ui.home_filename) return end @@ -440,8 +440,8 @@ end ---------------- Player utilities ---------------- function ui.is_creative(playername) - return minetest.check_player_privs(playername, { creative = true }) - or minetest.settings:get_bool("creative_mode") + return core.check_player_privs(playername, { creative = true }) + or core.settings:get_bool("creative_mode") end ---------------- Formspec helpers ---------------- diff --git a/mods/unifieddyes/airbrush.lua b/mods/unifieddyes/airbrush.lua index 43a81ef1..80f91fe6 100644 --- a/mods/unifieddyes/airbrush.lua +++ b/mods/unifieddyes/airbrush.lua @@ -44,7 +44,7 @@ end local function show_fs(user, palette) local size = palette_sizes[palette] if size == nil then - minetest.chat_send_player(user:get_player_name(), "Node not supported!") + core.chat_send_player(user:get_player_name(), "Node not supported!") return end @@ -71,15 +71,15 @@ size[%s,%s] fs[head] = string.format("image_button[%s,%s;%s,%s;%s;%s;]", (x * button_spacing) + 0.2, (y * button_spacing) + 0.2, button_size, button_size, - minetest.formspec_escape(sheet(palette, size.x, size.y, x, y)), idx) + core.formspec_escape(sheet(palette, size.x, size.y, x, y)), idx) head = head + 1 end end - minetest.show_formspec(user:get_player_name(), "color_dialog", + core.show_formspec(user:get_player_name(), "color_dialog", table.concat(fs)) end -minetest.register_on_player_receive_fields(function(player, formname, fields) +core.register_on_player_receive_fields(function(player, formname, fields) if formname ~= "color_dialog" then return end local wield_item = player:get_wielded_item() @@ -93,8 +93,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) wield_item:get_meta():set_int("selected_index", idx) player:set_wielded_item(wield_item) - minetest.chat_send_player(player:get_player_name(), "Updated the tool succesfully") - minetest.show_formspec(player:get_player_name(), "color_dialog", "") + core.chat_send_player(player:get_player_name(), "Updated the tool succesfully") + core.show_formspec(player:get_player_name(), "color_dialog", "") end) _G.show_fs = show_fs @@ -104,10 +104,10 @@ _G.show_fs = show_fs local function load_into(stack, player, pointed) if pointed.type ~= "node" then return end local pos = pointed.under - local n = minetest.get_node(pos) - local def = minetest.registered_nodes[n.name] or {} + local n = core.get_node(pos) + local def = core.registered_nodes[n.name] or {} if not palette_sizes[def.palette or "no"] then - minetest.chat_send_player(player:get_player_name(), "Node not supported!") + core.chat_send_player(player:get_player_name(), "Node not supported!") return end show_fs(player, def.palette) @@ -118,8 +118,8 @@ end local function color_block(stack, player, pointed) if pointed.type ~= "node" then return end local pos = pointed.under - if minetest.is_protected(pos, player:get_player_name()) then - minetest.chat_send_player(player:get_player_name(), + if core.is_protected(pos, player:get_player_name()) then + core.chat_send_player(player:get_player_name(), "PROTECTED!!!!!") return end @@ -129,24 +129,24 @@ local function color_block(stack, player, pointed) local pinv = player:get_inventory() if not pinv:contains_item("main", "unifieddyes:colorium 1") then - minetest.chat_send_player(player:get_player_name(), "You don't have the required colorium") + core.chat_send_player(player:get_player_name(), "You don't have the required colorium") return end - local n = minetest.get_node(pos) - local def = minetest.registered_nodes[n.name] or {} + local n = core.get_node(pos) + local def = core.registered_nodes[n.name] or {} local pal = def.palette local meta = stack:get_meta() local stack_pal = meta:get_string("palette") if pal ~= stack_pal then - minetest.chat_send_player(player:get_player_name(), "Palette mismatch, need to re-configure again") + core.chat_send_player(player:get_player_name(), "Palette mismatch, need to re-configure again") return load_into(stack, player, pointed) end local indx = meta:get_int("selected_index") local paramtype = def.paramtype2 local rotation = 0 - rotation = n.param2 - minetest.strip_param2_color(n.param2, paramtype) + rotation = n.param2 - core.strip_param2_color(n.param2, paramtype) local mul = 1 if paramtype == "colorfacedir" then @@ -159,12 +159,12 @@ local function color_block(stack, player, pointed) mul = 32 end indx = indx - 1 - minetest.swap_node(pos, { name = n.name, param2 = rotation + (math.floor(indx * mul)) }) + core.swap_node(pos, { name = n.name, param2 = rotation + (math.floor(indx * mul)) }) pinv:remove_item("main", "unifieddyes:colorium 1") end -minetest.register_tool("unifieddyes:coloring_tool", { +core.register_tool("unifieddyes:coloring_tool", { description = S("Coloring Tool"), inventory_image = "color_tool.png", liquids_pointable = false, -- colorable liquids probably wont exist but they would be funny From 7f0d891bc9c6d67a625f8a658f5a665511b667ef Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Thu, 26 Mar 2026 15:37:24 -0700 Subject: [PATCH 06/35] Fix issues with l10n implementation for descriptions --- mods/areasprotector/init.lua | 31 ++++++++++++++----------- mods/sbz_base/override_descriptions.lua | 4 +++- mods/sbz_bio/potions.lua | 2 +- mods/sbz_bio/soil.lua | 2 ++ mods/sbz_resources/bomb.lua | 2 +- mods/sbz_resources/laser.lua | 2 +- 6 files changed, 26 insertions(+), 17 deletions(-) diff --git a/mods/areasprotector/init.lua b/mods/areasprotector/init.lua index d086ed6e..c9f6f525 100644 --- a/mods/areasprotector/init.lua +++ b/mods/areasprotector/init.lua @@ -1,4 +1,5 @@ -local S = core.get_translator(core.get_current_modname()) +local S, PS = core.get_translator(core.get_current_modname()) +PS = PS or {} local creative_mode = core.settings:get_bool("creative_mode") @@ -100,23 +101,23 @@ local function on_receive_fields(pos, formname, fields, sender, horizontal_reach local pos2 = vector.add(pos, vector.new(-horizontal_reach, -vertical_reach, -horizontal_reach)) local perm, err = areas:canPlayerAddArea(pos1, pos2, owner_name) if not perm then - core.chat_send_player(owner_name, red("You are not allowed to protect that area: ") .. err) + core.chat_send_player(owner_name, red(S("You are not allowed to protect that area: ")) .. err) return end if string.find(name, "[\\%[%];,$]", 1, false) then core.chat_send_player(owner_name, - red("You are not allowed to protect that area: ") .. - "That name is obviously invalid.") + red(S("You are not allowed to protect that area: ")) .. + S("That name is obviously invalid.")) return end if name == "" then core.chat_send_player(owner_name, - red("You are not allowed to protect that area: ") .. - "You need to fill out the field with a name") + red(S("You are not allowed to protect that area: ")) .. + S("You need to fill out the field with a name")) return end - owners_area_id[name] = areas:add(name, "Protector block sub-area", pos1, pos2, meta:get_int("area_id")) + owners_area_id[name] = areas:add(name, S("Protector block sub-area"), pos1, pos2, meta:get_int("area_id")) areas:save() owners[#owners + 1] = fields.add_more_owners end @@ -158,7 +159,7 @@ local function on_place(itemstack, player, pointed, horizontal_reach, vertical_r local name = player:get_player_name() local perm, err = areas:canPlayerAddArea(pos1, pos2, name) if not perm then - core.chat_send_player(name, red("You are not allowed to protect that area: ") .. err) + core.chat_send_player(name, red(S("You are not allowed to protect that area: ")) .. err) return itemstack end --[[ @@ -176,16 +177,20 @@ local function on_place(itemstack, player, pointed, horizontal_reach, vertical_r ]] local userareas = 0 for k, v in pairs(areas.areas) do - if v.owner == name and string.sub(v.name, 1, 28) == "Protected by Protector Block" then + if v.owner == name and string.sub(v.name, 1, 28) == S("Protected by Protector Block") then userareas = userareas + 1 end end if userareas >= max_protectors and not core.check_player_privs(name, "areas") then core.chat_send_player(name, - red("You are using too many protector blocks:") .. - " this server allows you to use up to " .. - cyan(tostring(max_protectors)) .. " protector blocks, and you already have " .. - cyan(tostring(userareas)) .. ".") + PS( + "You are using too many protector blocks: this server allows you to use up to @1 protector block, and you already have @2.", + "You are using too many protector blocks: this server allows you to use up to @1 protector blocks, and you already have @2.", + max_protectors, + max_protectors, + userareas + ) + ) if sizeword == "small" then core.chat_send_player(name, "If you need to protect more, please consider using the larger protector blocks, using the chat commands instead, or at the very least taking the time to rename some of your areas to something more descriptive first.") diff --git a/mods/sbz_base/override_descriptions.lua b/mods/sbz_base/override_descriptions.lua index b0c7187f..51700c89 100644 --- a/mods/sbz_base/override_descriptions.lua +++ b/mods/sbz_base/override_descriptions.lua @@ -87,7 +87,9 @@ core.register_on_mods_loaded(function() if #new_desc > 1 then for i = 2, #new_desc do - new_desc[i] = core.colorize("#777", new_desc[i]) + if not new_desc[i]:find('\027') then + new_desc[i] = core.colorize("#777", new_desc[i]) + end end core.override_item(k, { description = table.concat(new_desc, "\n"), diff --git a/mods/sbz_bio/potions.lua b/mods/sbz_bio/potions.lua index 1264214e..6d24eeb0 100644 --- a/mods/sbz_bio/potions.lua +++ b/mods/sbz_bio/potions.lua @@ -21,7 +21,7 @@ core.register_craftitem('sbz_bio:screen_inverter_potion', { return stack end, info_extra = { - core.colorize("#ffff00", "Ability: Drink (Left-Click)") .. " Inverts your screen colors.", + core.colorize("#ffff00", S("Ability: Drink (Left-Click)")) .. S(" Inverts your screen colors."), }, groups = { ui_bio = 1 }, inventory_image = 'screen_inverter_potion.png', diff --git a/mods/sbz_bio/soil.lua b/mods/sbz_bio/soil.lua index 87c5002a..bfd0a37d 100644 --- a/mods/sbz_bio/soil.lua +++ b/mods/sbz_bio/soil.lua @@ -1,3 +1,5 @@ +local S = core.get_translator(core.get_current_modname()) + core.register_node("sbz_bio:dirt", unifieddyes.def { description = S("Dirt"), tiles = { "dirt.png" }, diff --git a/mods/sbz_resources/bomb.lua b/mods/sbz_resources/bomb.lua index 60ba3a60..79e2d97b 100644 --- a/mods/sbz_resources/bomb.lua +++ b/mods/sbz_resources/bomb.lua @@ -44,7 +44,7 @@ core.register_entity("sbz_resources:bomb_stick_entity", { }) core.register_craftitem("sbz_resources:bomb_stick", { - description = S("TNT Stick\n" .. core.colorize("#ffff00", "Ability: Throw (Left-Click)") .. " Throw the TNT Stick, which will explode when it lands."), + description = S("TNT Stick\n") .. core.colorize("#ffff00", S("Ability: Throw (Left-Click)")) .. S(" Throw the TNT Stick, which will explode when it lands."), wield_scale = { x = 1, y = 1, z = 2.5 }, wield_image = "bomb_stick_wield.png", inventory_image = "bomb_stick_inv.png", diff --git a/mods/sbz_resources/laser.lua b/mods/sbz_resources/laser.lua index 219855d6..4179d078 100644 --- a/mods/sbz_resources/laser.lua +++ b/mods/sbz_resources/laser.lua @@ -7,7 +7,7 @@ local power_per_1_use = 50 core.register_tool("sbz_resources:laser_weapon", { description = S("Laser"), - info_extra = core.colorize("#ffff00", "Ability: Fire (Left-Click)") .. " Fire a laserbeam which destroys meteorites and damages players.", + info_extra = core.colorize("#ffff00", S("Ability: Fire (Left-Click)")) .. S(" Fire a laserbeam which destroys meteorites and damages players."), inventory_image = "laser_pointer.png", groups = { disable_repair = 1, power_tool = 1 }, wear_represents = "power", From f249a360388e93f1df219b8936dd40f19f4dfc47 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Thu, 26 Mar 2026 17:01:09 -0700 Subject: [PATCH 07/35] Add localization support for chat strings --- mods/jumpdrive/bookmark.lua | 8 +-- mods/jumpdrive/fleet/fleet_controller.lua | 24 +++++--- mods/jumpdrive/jump.lua | 60 ++++++++++--------- .../metatool/copytool/nodes/teleport_tube.lua | 4 +- mods/metatool/metatool/formspec.lua | 8 +-- mods/player_monoids/test.lua | 4 +- mods/sbz_area_containers/init.lua | 2 +- mods/sbz_base/playtime_and_afk.lua | 4 +- mods/sbz_devtools/init.lua | 44 +++++++------- mods/sbz_instatube/init.lua | 10 ++-- mods/sbz_logic/link_tool.lua | 12 ++-- mods/sbz_meteorites/init.lua | 6 +- mods/sbz_pipeworks/basic_tubes.lua | 4 +- mods/sbz_planets/planet_teleporter.lua | 8 +-- mods/sbz_power/switching_station.lua | 10 ++-- mods/smartshop/api/purchase_mechanics.lua | 16 ++--- mods/smartshop/api/storage_linking.lua | 14 ++--- mods/unified_inventory/register.lua | 34 +++++------ 18 files changed, 142 insertions(+), 130 deletions(-) diff --git a/mods/jumpdrive/bookmark.lua b/mods/jumpdrive/bookmark.lua index fcaeec0f..7355b670 100644 --- a/mods/jumpdrive/bookmark.lua +++ b/mods/jumpdrive/bookmark.lua @@ -24,7 +24,7 @@ jumpdrive.write_to_book = function(pos, sender) local data = {} data.owner = sender:get_player_name() - data.title = "Jumpdrive coordinates" + data.title = S("Jumpdrive coordinates") data.description = S("Jumpdrive coordinates") data.text = core.serialize(jumpdrive.get_meta_pos(pos)) data.page = 1 @@ -94,7 +94,7 @@ jumpdrive.read_from_book = function(pos) inv:set_stack("main", i, stack) -- alert player if nil ~= player_name then - core.chat_send_player(player_name, "Invalid coordinates") + core.chat_send_player(player_name, S("Invalid coordinates")) end return end @@ -123,7 +123,7 @@ jumpdrive.read_from_book = function(pos) inv:add_item("main", stack) return end - elseif "ccompass:" == stack_name:sub(1, 9) + elseif "compass:" == stack_name:sub(1, 9) or "compass:" == stack_name:sub(1, 8) then -- remove item from inventory inv:set_stack("main", i, ItemStack()) @@ -148,7 +148,7 @@ jumpdrive.read_from_book = function(pos) -- should we or should we not message user? --[[ if nil ~= player_name then - core.chat_send_player(player_name, "No valid bookmark item found.") + core.chat_send_player(player_name, S("No valid bookmark item found.")) end --]] end diff --git a/mods/jumpdrive/fleet/fleet_controller.lua b/mods/jumpdrive/fleet/fleet_controller.lua index d9b64b6f..b8669f3d 100644 --- a/mods/jumpdrive/fleet/fleet_controller.lua +++ b/mods/jumpdrive/fleet/fleet_controller.lua @@ -1,4 +1,8 @@ -local S = core.get_translator(core.get_current_modname()) +local S, PS = core.get_translator("jumpdrive") + +-- Satisfy linter concerning PS +---@cast S fun(string, ...): string +---@cast PS fun(string, string, number, ...): string core.register_node("jumpdrive:fleet_controller", { description = S("Jumpdrive Fleet Controller"), @@ -128,7 +132,11 @@ core.register_node("jumpdrive:fleet_controller", { if fields.show then local playername = sender:get_player_name() - core.chat_send_player(playername, "Found " .. #engines_pos_list .. " jumpdrives") + core.chat_send_player(playername, + PS("Found @1 jumpdrive", "Found @2 jumpdrives", + #engines_pos_list, tostring(#engines_pos_list) + ) + ) if #engines_pos_list == 0 then return @@ -140,12 +148,14 @@ core.register_node("jumpdrive:fleet_controller", { local engine_pos = engines_pos_list[index] local success, msg = jumpdrive.simulate_jump(engine_pos, sender, true) if not success then - core.chat_send_player(playername, msg .. " @ " .. core.pos_to_string(engine_pos)) + core.chat_send_player(playername, + msg .. " @ " .. core.pos_to_string(engine_pos) + ) return end core.chat_send_player(sender:get_player_name(), - "Check passed for engine " .. index .. "/" .. #engines_pos_list) + S("Check passed for engine ") .. index .. "/" .. #engines_pos_list) if index < #engines_pos_list then -- more drives to check @@ -153,7 +163,7 @@ core.register_node("jumpdrive:fleet_controller", { core.after(1, async_check) elseif index >= #engines_pos_list then -- done - core.chat_send_player(sender:get_player_name(), "Simulation successful") + core.chat_send_player(sender:get_player_name(), S("Simulation successful")) end end @@ -190,12 +200,12 @@ core.register_node("jumpdrive:fleet_controller", { end if playername then local time_millis = math.floor(msg / 1000) - core.chat_send_player(playername, "Jump executed in " .. time_millis .. " ms") + core.chat_send_player(playername, S("Jump executed in ") .. time_millis .. " ms") end else meta:set_int("active", 0) jumpdrive.fleet.update_formspec(meta, pos) - meta:set_string("infotext", "Engine " .. core.pos_to_string(node_pos) .. " failed with: " .. msg) + meta:set_string("infotext", S("Engine ") .. core.pos_to_string(node_pos) .. S(" failed with: ") .. msg) if playername then core.chat_send_player(playername, msg) end diff --git a/mods/jumpdrive/jump.lua b/mods/jumpdrive/jump.lua index a920b039..7805266a 100644 --- a/mods/jumpdrive/jump.lua +++ b/mods/jumpdrive/jump.lua @@ -1,16 +1,18 @@ -local has_vizlib = minetest.get_modpath("vizlib") +local S = core.get_translator(core.get_current_modname()) + +local has_vizlib = core.get_modpath("vizlib") jumpdrive.simulate_jump = function(pos, player, show_marker) local targetPos = jumpdrive.get_meta_pos(pos) if jumpdrive.check_mapgen(pos) then - return false, "Error: mapgen was active in this area, please try again later for your own safety!" + return false, S("Error: mapgen was active in this area, please try again later for your own safety!") end - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) if show_marker and has_vizlib and os.time() < meta:get_int("simulation_expiry") then - return false, "Error: simulation is still active! please wait before simulating again" + return false, S("Error: simulation is still active! please wait before simulating again") end local radius = jumpdrive.get_radius(pos) @@ -36,11 +38,11 @@ jumpdrive.simulate_jump = function(pos, player, show_marker) (target_pos2.z <= source_pos2.z and target_pos2.z >= source_pos1.z) if x_overlap and y_overlap and z_overlap then - return false, "Error: jump into itself! extend your jump target" + return false, S("Error: jump into itself! extend your jump target") end -- load chunk - minetest.get_voxel_manip():read_from_map(target_pos1, target_pos2) + core.get_voxel_manip():read_from_map(target_pos1, target_pos2) if show_marker and has_vizlib then vizlib.draw_cube(targetPos, radius + 0.5, { color = "#ff0000" }) @@ -52,32 +54,32 @@ jumpdrive.simulate_jump = function(pos, player, show_marker) local msg = nil local success = true - local blacklisted_pos_list = minetest.find_nodes_in_area(source_pos1, source_pos2, jumpdrive.blacklist) + local blacklisted_pos_list = core.find_nodes_in_area(source_pos1, source_pos2, jumpdrive.blacklist) local _, nodepos = next(blacklisted_pos_list) if nodepos then - return false, "Error: Can't jump node @ " .. minetest.pos_to_string(nodepos) + return false, S("Error: Can't jump node @ ") .. core.pos_to_string(nodepos) end - if minetest.find_node_near(targetPos, radius, "vacuum:vacuum", true) then - msg = "Warning: Jump-target is in vacuum!" + if core.find_node_near(targetPos, radius, "vacuum:vacuum", true) then + msg = S("Warning: Jump-target is in vacuum!") end - if minetest.find_node_near(targetPos, radius, "ignore", true) then - return false, "Error: Jump-target is in uncharted area!" + if core.find_node_near(targetPos, radius, "ignore", true) then + return false, S("Error: Jump-target is in uncharted area!") end if jumpdrive.is_area_protected(source_pos1, source_pos2, playername) then - return false, "Error: Jump-source is protected!" + return false, S("Error: Jump-source is protected!") end if jumpdrive.is_area_protected(target_pos1, target_pos2, playername) then - return false, "Error: Jump-target is protected!" + return false, S("Error: Jump-target is protected!") end local is_empty, empty_msg = jumpdrive.is_area_empty(target_pos1, target_pos2) if not is_empty then - msg = "Error: Jump-target is obstructed (" .. empty_msg .. ")" + msg = S("Error: Jump-target is obstructed") .. " (" .. empty_msg .. ")" success = false end @@ -86,9 +88,9 @@ jumpdrive.simulate_jump = function(pos, player, show_marker) if not preflight_result.success then -- check failed in customization - msg = "Error: Preflight check failed!" + msg = S("Error: Preflight check failed!") if preflight_result.message then - msg = "Error: " .. preflight_result.message + msg = S("Error: ") .. preflight_result.message end success = false end @@ -105,17 +107,17 @@ jumpdrive.simulate_jump = function(pos, player, show_marker) if usable_power < power_req then -- not enough power - msg = "Error: Not enough power: required:" .. - sbz_api.format_power(power_req) .. ", power storage: " .. sbz_api.format_power(powerstorage) + msg = S("Error: Not enough power: required:") .. + sbz_api.format_power(power_req) .. ", " .. S("power storage:") .. " " .. sbz_api.format_power(powerstorage) if used_network then msg = msg .. - ", power from batteries (25% efficency, so actual power use is 4x of this):" .. + S(", power from batteries (25% efficiency, so actual power use is 4x of this): ") .. sbz_api.format_power((usable_power - powerstorage)) end success = false elseif used_network and msg == nil then - msg = "Info: Has to use " .. - sbz_api.format_power((usable_power - powerstorage) * 4) .. " from your batteries. (25% efficency)" + msg = S("Info: Has to use @1 from your batteries. (25% efficiency)", + sbz_api.format_power((usable_power - powerstorage) * 4)) --sbz_api.drain_power_from_batteries(pos, (usable_power - powerstorage) * 4) end @@ -126,7 +128,7 @@ end -- execute jump jumpdrive.execute_jump = function(pos, player) - local meta = minetest.get_meta(pos) + local meta = core.get_meta(pos) local radius = jumpdrive.get_radius(pos) local targetPos = jumpdrive.get_meta_pos(pos) @@ -153,9 +155,9 @@ jumpdrive.execute_jump = function(pos, player) meta:set_int("power", math.max(0, powerstorage - power_req)) end - local t0 = minetest.get_us_time() + local t0 = core.get_us_time() - minetest.sound_play("jumpdrive_engine", { + core.sound_play("jumpdrive_engine", { pos = pos, max_hear_distance = 50, gain = 0.7, @@ -164,13 +166,13 @@ jumpdrive.execute_jump = function(pos, player) -- actual move jumpdrive.move(source_pos1, source_pos2, target_pos1, target_pos2) - local t1 = minetest.get_us_time() + local t1 = core.get_us_time() local time_micros = t1 - t0 - minetest.log("action", "[jumpdrive] jump took " .. time_micros .. " us") + core.log("action", "[jumpdrive] jump took " .. time_micros .. " us") -- show animation in source - minetest.add_particlespawner({ + core.add_particlespawner({ amount = 200, time = 2, minpos = source_pos1, @@ -189,7 +191,7 @@ jumpdrive.execute_jump = function(pos, player) -- show animation in target - minetest.add_particlespawner({ + core.add_particlespawner({ amount = 200, time = 2, minpos = target_pos1, diff --git a/mods/metatool/copytool/nodes/teleport_tube.lua b/mods/metatool/copytool/nodes/teleport_tube.lua index 7e49bed1..39ca1220 100644 --- a/mods/metatool/copytool/nodes/teleport_tube.lua +++ b/mods/metatool/copytool/nodes/teleport_tube.lua @@ -44,7 +44,7 @@ metatool.form.register_form('copytool:teleport_tube_list', { if tube and tube.pos and data.channel then local id = player:hud_add({ hud_elem_type = "waypoint", - name = S("%s\n\nReceive: %s", data.channel, tube.can_receive and "yes" or "no"), + name = "%s\n\nReceive: %s", data.channel, tube.can_receive and "yes" or "no", text = "m", number = 0xE0B020, world_pos = tube.pos @@ -125,7 +125,7 @@ function definition:paste(node, pos, player, data) if owner ~= name and mode == ";" then receive = 0 if type(player) == "userdata" then - core.chat_send_player(name, "Receive was disabled because you're not owner of private receiver.") + core.chat_send_player(name, S("Receive was disabled because you're not owner of private receiver.")) end end end diff --git a/mods/metatool/metatool/formspec.lua b/mods/metatool/metatool/formspec.lua index a1d2a65b..2bc0f0a0 100644 --- a/mods/metatool/metatool/formspec.lua +++ b/mods/metatool/metatool/formspec.lua @@ -210,7 +210,7 @@ function metatool.form.on_receive(player, form_name, fields) local data = form_data[playername] local name = data and data.name if name ~= form_name then - core.chat_send_player(playername, "Bug: Form name mismatch: " .. form_name) + core.chat_send_player(playername, S("Bug: Form name mismatch: ") .. form_name) return true end local secure = data and data.nonce == matcher() @@ -219,7 +219,7 @@ function metatool.form.on_receive(player, form_name, fields) if secure then result = metatool.form.handlers[form_name].on_receive(player, fields, data.data, secure) elseif not fields.quit then - core.chat_send_player(playername, "Bug: Invalid security token for form " .. form_name) + core.chat_send_player(playername, S("Bug: Invalid security token for form ") .. form_name) end if result and not fields.quit then core.close_formspec(playername, form_name) @@ -275,7 +275,7 @@ function metatool.form.show(player, form_name, data) local form = metatool.form.on_create(player, name, data) local playername = player:get_player_name() if type(form) ~= "table" then - core.chat_send_player(playername, "Bug: Attempt to open invalid form " .. form_name) + core.chat_send_player(playername, S("Bug: Attempt to open invalid form ") .. form_name) return end if metatool.form.handlers[name].on_receive then @@ -289,6 +289,6 @@ function metatool.form.show(player, form_name, data) -- Show form to player core.show_formspec(playername, name .. "~" .. nonce, form:render()) else - core.chat_send_player(player:get_player_name(), "Bug: Metatool form does not exist " .. form_name) + core.chat_send_player(player:get_player_name(), S("Bug: Metatool form does not exist ") .. form_name) end end diff --git a/mods/player_monoids/test.lua b/mods/player_monoids/test.lua index 1eac093b..23470943 100644 --- a/mods/player_monoids/test.lua +++ b/mods/player_monoids/test.lua @@ -12,13 +12,13 @@ local function test(player) local ch_id = speed:add_change(player, 10) local p_name = player:get_player_name() - core.chat_send_player(p_name, "Your speed is: " .. speed:value(player)) + core.chat_send_player(p_name, S("Your speed is: ") .. speed:value(player)) core.after(3, function() local player = core.get_player_by_name(p_name) if not player then return end speed:del_change(player, ch_id) - core.chat_send_player(p_name, "Your speed is: " .. speed:value(player)) + core.chat_send_player(p_name, S("Your speed is: ") .. speed:value(player)) end) end diff --git a/mods/sbz_area_containers/init.lua b/mods/sbz_area_containers/init.lua index f1aaf788..98828f9f 100644 --- a/mods/sbz_area_containers/init.lua +++ b/mods/sbz_area_containers/init.lua @@ -165,7 +165,7 @@ end function sbz_area_containers.new_room(player_name) local container_ids = player_container_ids[player_name] or {} if #container_ids >= max_areas_per_player then - core.chat_send_player(player_name, ('You may only have %s areas'):format(max_areas_per_player)) + core.chat_send_player(player_name, (S('You may only have %s areas')):format(max_areas_per_player)) return false end diff --git a/mods/sbz_base/playtime_and_afk.lua b/mods/sbz_base/playtime_and_afk.lua index 269bbced..ba26c95a 100644 --- a/mods/sbz_base/playtime_and_afk.lua +++ b/mods/sbz_base/playtime_and_afk.lua @@ -96,7 +96,7 @@ core.register_chatcommand("playtime", { if #param ~= 0 and param ~= " " then player = param end - core.chat_send_player(name, ("%s's playtime: %s\n%s's afk time: %s\n%s's afk and playtime: %s"):format( + core.chat_send_player(name, (S("%s's playtime: %s\n%s's afk time: %s\n%s's afk and playtime: %s")):format( player, get_time(modstorage:get_int(player .. "_playtime")), player, get_time(modstorage:get_int(player .. "_afk_playtime")), player, get_time(modstorage:get_int(player .. "_playtime") + modstorage:get_int(player .. "_afk_playtime")) @@ -105,7 +105,7 @@ core.register_chatcommand("playtime", { }) core.register_chatcommand("afk", { - description = S("Notify others that you are afk status (away from keyboard)"), + description = S("Set your status to afk (away from keyboard)"), param = "", privs = {}, func = function(name) diff --git a/mods/sbz_devtools/init.lua b/mods/sbz_devtools/init.lua index 936cbceb..082c2d70 100644 --- a/mods/sbz_devtools/init.lua +++ b/mods/sbz_devtools/init.lua @@ -1,4 +1,4 @@ -local S = core.get_translator(core.get_current_modname()) +local S, PS = core.get_translator(core.get_current_modname()) -- Don't touch this stuff @@ -12,10 +12,10 @@ core.register_chatcommand("dev_givequest", { for _, q in ipairs(quests) do unlock_achievement(name, q.title) end - core.chat_send_player(name, "Gave you all achievements") + core.chat_send_player(name, S("Gave you all achievements")) else unlock_achievement(name, param) - core.chat_send_player(name, "Gave you the achievement with the name \"" .. param .. "\"") + core.chat_send_player(name, S("Gave you the achievement with the name ") .. '"' .. param .. '".') end end }) @@ -30,10 +30,10 @@ core.register_chatcommand("dev_revokequest", { for _, q in ipairs(quests) do revoke_achievement(name, q.title) end - core.chat_send_player(name, "Revoked all achievements") + core.chat_send_player(name, S("Revoked all achievements")) else revoke_achievement(name, param) - core.chat_send_player(name, "Revoked the achievement with the name \"" .. param .. "\"") + core.chat_send_player(name, S("Revoked the achievement with the name ") .. '"' .. param .. '".') end end }) @@ -49,9 +49,9 @@ core.register_chatcommand("dev_hotbar", { local player = core.get_player_by_name(name) if player then player:hud_set_hotbar_itemcount(count) - return true, "Hotbar slot count set to " .. count + return true, S("Hotbar slot count set to ") .. count else - return false, "Player not found." + return false, S("Player not found.") end end }) @@ -76,9 +76,9 @@ core.register_chatcommand("dev_platform", { end end end - return true, "Platform spawned." + return true, S("Platform spawned.") else - return false, "Player not found." + return false, S("Player not found.") end end }) @@ -89,7 +89,7 @@ core.register_chatcommand("dev_close", { func = function(name) local player = core.get_player_by_name(name) if not player then - return false, "Player not found!" + return false, S("Player not found!") end local pos = vector.round(player:get_pos()) @@ -140,10 +140,10 @@ core.register_chatcommand("dev_close", { end if found_nodes == 0 then - return false, "No unique nodes found within 32 blocks." + return false, S("No unique nodes found within 32 blocks.") end - return true, "Given " .. found_nodes .. " unique nodes." + return true, PS("Given @1 unique node.", "Given @2 unique nodes.", found_nodes, tostring(found_nodes)) end }) @@ -154,14 +154,14 @@ core.register_chatcommand("dev_clear", { func = function(name) local player = core.get_player_by_name(name) if not player then - return false, "Player not found!" + return false, S("Player not found!") end local inventory = player:get_inventory() inventory:set_list("main", {}) inventory:set_list("craft", {}) - return true, "Inventory cleared." + return true, S("Inventory cleared.") end }) @@ -181,7 +181,7 @@ core.register_chatcommand("dev_light", { func = function(name) local player = core.get_player_by_name(name) if not player then - return false, "Player not found!" + return false, S("Player not found!") end sbz_api.forced_light[name] = true player:override_day_night_ratio(1) @@ -190,12 +190,12 @@ core.register_chatcommand("dev_light", { core.register_chatcommand("dev_craft", { description = - "Fake a craft, used for quest testing, param should be an item name or \"item\" to specify wielded item's name", + S("Fake a craft, used for quest testing, param should be an item name or \"item\" to specify wielded item's name"), privs = { ["server"] = true }, func = function(name, param) local player = core.get_player_by_name(name) if not player then - return false, "Player not found!" + return false, S("Player not found!") end if param == "item" or param == "" then param = player:get_wielded_item():get_name() end @@ -213,26 +213,26 @@ core.register_chatcommand("dev_regen", { func = function(name, param) local player = core.get_player_by_name(name) if not player then - return false, "Player not found!" + return false, S("Player not found!") end local radius = tonumber(param) or 1 core.delete_area(vector.subtract(player:get_pos(), vector.new(radius, radius, radius)), vector.add(player:get_pos(), vector.new(radius, radius, radius))) - return true, "Area re-generated!" + return true, S("Area re-generated!") end }) core.register_chatcommand("dev_mapblocks", { description = - "Sends you all the mapblocks in the radius. RADIUS IS IN MAPBLOCKS!! may not work... in singleplayer at least", + S("Sends you all the mapblocks in the radius. RADIUS IS IN MAPBLOCKS!! may not work... in singleplayer at least"), params = "[radius]", privs = { ["server"] = true }, func = function(name, param) local player = core.get_player_by_name(name) if not player then - return false, "Player not found!" + return false, S("Player not found!") end local radius = tonumber(param) or 1 @@ -245,7 +245,7 @@ core.register_chatcommand("dev_mapblocks", { end end - return true, "Area sent!" + return true, S("Area sent!") end }) core.register_chatcommand("dev_fast_habitats", { diff --git a/mods/sbz_instatube/init.lua b/mods/sbz_instatube/init.lua index d68de04b..7ed4c7c0 100644 --- a/mods/sbz_instatube/init.lua +++ b/mods/sbz_instatube/init.lua @@ -853,12 +853,12 @@ local fsdata = {} local function display_formspec(username) local chosen_net_id = fsdata[username].chosen_net if not chosen_net_id then - core.chat_send_player(username, 'Something went wrong.') + core.chat_send_player(username, S("Something went wrong.")) return end local chosen_net = instatube.networks[chosen_net_id] if not chosen_net then - core.chat_send_player(username, 'That network no longer exists') + core.chat_send_player(username, S("That network no longer exists")) return end local fs = [[ @@ -883,7 +883,7 @@ button_exit[0,10;10,1;exit;Exit] end end if not dropdown_id then - core.chat_send_player(username, 'The network you were looking at no longer exists') + core.chat_send_player(username, S("The network you were looking at no longer exists")) return end @@ -913,7 +913,7 @@ end) core.register_craftitem('sbz_instatube:dbg_tool', { description = S("Instatube Debug Tool"), sounds = sbz_api.sounds.glass(), - info_extra = 'Shows all machines connected to instatube', + info_extra = S("Shows all machines connected to instatube"), inventory_image = 'instatube_debug_tool.png', stack_max = 1, @@ -923,7 +923,7 @@ core.register_craftitem('sbz_instatube:dbg_tool', { local username = user:get_player_name() local nets = pos2network[hash(target)] if not nets then - core.chat_send_player(username, 'No instatube networks found.') + core.chat_send_player(username, S("No instatube networks found.")) return end local chosen_net = instatubes_net_id[hash(target)] diff --git a/mods/sbz_logic/link_tool.lua b/mods/sbz_logic/link_tool.lua index fdff2754..3af8c890 100644 --- a/mods/sbz_logic/link_tool.lua +++ b/mods/sbz_logic/link_tool.lua @@ -87,16 +87,16 @@ local function try_to_link_to_luac(stack, pos, placer) node = node.name local ndef = core.registered_nodes[node] if not ndef then return end - if not ndef.can_link then return core.chat_send_player(name, "Can't link") end + if not ndef.can_link then return core.chat_send_player(name, S("Can't link")) end -- ok yeah it can link meta:set_string("linked", vector.to_string(pos)) - core.chat_send_player(name, "Luacontroller succesfully linked to the luacontroller linking tool!") + core.chat_send_player(name, S("Luacontroller successfully linked to the luacontroller linking tool!")) logic.happy_particles(pos) end local function err_link_invalid(placer) core.chat_send_player(placer:get_player_name(), - "Link is invalid, please link the luacontroller linker to a luacontroller again.") + S("Link is invalid, please link the luacontroller linker to a luacontroller again.")) end local function make_link(meta, pos, placer) @@ -119,18 +119,18 @@ local function make_link(meta, pos, placer) local linked_range = linked_meta:get_int("linking_range") if linked_range == 0 then - core.chat_send_player(placer:get_player_name(), "The luacontroller doesn't have a linking upgrade.") + core.chat_send_player(placer:get_player_name(), S("The luacontroller doesn't have a linking upgrade.")) return end if not logic.in_square_radius(linked_pos, pos, linked_range) then - core.chat_send_player(placer:get_player_name(), "Outside of the radius") + core.chat_send_player(placer:get_player_name(), S("Outside of the radius")) return end local name = meta:get_string "name" if name == "" then - core.chat_send_player(placer:get_player_name(), "You need to set a name first (Left click)") + core.chat_send_player(placer:get_player_name(), S("You need to set a name first (Left click)")) return end -- ok HOPEFULLY thats enough checks holy crap diff --git a/mods/sbz_meteorites/init.lua b/mods/sbz_meteorites/init.lua index a46cd87a..fcd5a9ab 100644 --- a/mods/sbz_meteorites/init.lua +++ b/mods/sbz_meteorites/init.lua @@ -52,14 +52,14 @@ core.register_chatcommand('spawn_meteorite', { meteorite = spawn_meteorite(pos) end if not meteorite then - core.chat_send_player(name, 'Failed to spawn meteorite.') + core.chat_send_player(name, S("Failed to spawn meteorite.")) return end local mpos = vector.round(meteorite:get_pos()) if num_of_meteorites == 1 then - core.chat_send_player(name, 'Spawned meteorite at ' .. mpos.x .. ' ' .. mpos.y .. ' ' .. mpos.z .. '.') + core.chat_send_player(name, S("Spawned meteorite at ") .. mpos.x .. ' ' .. mpos.y .. ' ' .. mpos.z .. '.') else - core.chat_send_player(name, 'Spawned meteorites.') + core.chat_send_player(name, S("Spawned meteorites.")) end end, }) diff --git a/mods/sbz_pipeworks/basic_tubes.lua b/mods/sbz_pipeworks/basic_tubes.lua index 58a0e44f..10c384f3 100644 --- a/mods/sbz_pipeworks/basic_tubes.lua +++ b/mods/sbz_pipeworks/basic_tubes.lua @@ -312,7 +312,7 @@ pipeworks.register_tube('pipeworks:broken_tube', { if wieldname == '' then core.chat_send_player( playername, - 'Broken tubes may be a bit sharp. Maybe try hitting it with a robotic arm?' + S("Broken tubes may be a bit sharp. Maybe try hitting it with a robotic arm?") ) if core.settings:get_bool 'enable_damage' then puncher:set_hp(puncher:get_hp() - 1) end end @@ -332,7 +332,7 @@ pipeworks.register_tube('pipeworks:broken_tube', { meta:set_string('the_tube_was', '') else pipeworks.logger(log_msg .. ' but original node ' .. was_node.name .. ' is not registered anymore.') - core.chat_send_player(playername, 'This tube cannot be repaired.') + core.chat_send_player(playername, S("This tube cannot be repaired.")) end end, allow_metadata_inventory_put = function() diff --git a/mods/sbz_planets/planet_teleporter.lua b/mods/sbz_planets/planet_teleporter.lua index e23026bb..9b8e46c7 100644 --- a/mods/sbz_planets/planet_teleporter.lua +++ b/mods/sbz_planets/planet_teleporter.lua @@ -3,7 +3,7 @@ local S = core.get_translator(core.get_current_modname()) local mg_limit = tonumber(core.settings:get("mapgen_limit")) or 31007 local mg_vector = vector.new(mg_limit, mg_limit, mg_limit) core.register_node("sbz_planets:planet_teleporter", { - info_extra = "Teleports you to a planet. Insert a warp crystal to get teleported.", + info_extra = S("Teleports you to a planet. Insert a warp crystal to get teleported."), description = S("Planet Teleporter"), sounds = sbz_api.sounds.matter(), tiles = { "planet_teleporter.png" }, @@ -12,7 +12,7 @@ core.register_node("sbz_planets:planet_teleporter", { if clicker.is_fake_player then return stack end local clicker_name = clicker:get_player_name() if stack:get_name() ~= "sbz_resources:warp_crystal" then - core.chat_send_player(clicker_name, "You must be holding a warp crystal for this to work.") + core.chat_send_player(clicker_name, S("You must be holding a warp crystal for this to work.")) return stack end core.sound_play({ name = 'gen_teleport_warp_woosh' }, { pos = clicker.pos }) @@ -23,7 +23,7 @@ core.register_node("sbz_planets:planet_teleporter", { pos_to_tp_to.y = content.max.y + 60 if not vector.in_area(pos_to_tp_to, -mg_vector, mg_vector) then core.chat_send_player(clicker_name, - "Oops, the crystal broke, please insert another one. [What actually happened was that the planet teleporter tried to teleport you out of this world. Hello if you are seeing this - you must be very lucky.]") + S("Oops, the crystal broke, please insert another one. [What actually happened was that the planet teleporter tried to teleport you out of this world. Hello if you are seeing this - you must be very lucky.]")) stack:take_item(1) return stack end @@ -31,7 +31,7 @@ core.register_node("sbz_planets:planet_teleporter", { pos_to_tp_to.y = pos_to_tp_to.y - (((content.max.y - content.min.y) / 4) + sbz_api.planets.ring_size + 10) end clicker:set_pos(pos_to_tp_to) - core.chat_send_player(clicker_name, "You have been teleported to the planet. Please wait and fall a bit.") + core.chat_send_player(clicker_name, S("You have been teleported to the planet. Please wait and fall a bit.")) stack:take_item(1) return stack end diff --git a/mods/sbz_power/switching_station.lua b/mods/sbz_power/switching_station.lua index dcac1f53..bd2f584b 100644 --- a/mods/sbz_power/switching_station.lua +++ b/mods/sbz_power/switching_station.lua @@ -436,7 +436,7 @@ local function profiler_formspec(pos, username) if not net then return end if net.dirty then return end if not net.profiler then return end - core.chat_send_player(username, '[Switching Station] Network ID: ' .. dump(sbz_api.pos2network[h(pos)])) -- use: detect if the network has changed + core.chat_send_player(username, S("[Switching Station] Network ID: ") .. dump(sbz_api.pos2network[h(pos)])) -- use: detect if the network has changed local fs = [[ formspec_version[7] size[12,11] @@ -591,10 +591,10 @@ core.register_chatcommand('toggle_power', { func = function(name, param) if core.is_yes(param) then sbz_api.enable_switching_station_globalstep = true - core.chat_send_player(name, 'Enabled switching stations') + core.chat_send_player(name, S("Enabled switching stations")) else sbz_api.enable_switching_station_globalstep = false - core.chat_send_player(name, 'Temporarily disabled switching stations.') + core.chat_send_player(name, S("Temporarily disabled switching stations.")) end end, }) @@ -721,9 +721,9 @@ core.register_chatcommand('teleport_to_laggiest_switching_station', { pos = v.switching_station_pos end end - if pos == nil then return false, 'Could not find a switching station like that' end + if pos == nil then return false, S("Could not find a switching station like that") end local player = core.get_player_by_name(name) player:set_pos(pos) - return true, 'Done' + return true, S("Done") end, }) diff --git a/mods/smartshop/api/purchase_mechanics.lua b/mods/smartshop/api/purchase_mechanics.lua index 7f0c9ee0..7996c0d0 100644 --- a/mods/smartshop/api/purchase_mechanics.lua +++ b/mods/smartshop/api/purchase_mechanics.lua @@ -73,11 +73,11 @@ function api.try_purchase(player, shop, i) end local reason = api.get_purchase_fail_reason(player, shop, i) - smartshop.chat_send_player(player, ("Cannot exchange: %s"):format(reason)) + core.chat_send_player(player, (S("Cannot exchange: %s")):format(reason)) - if reason == "Shop is sold out" then + if reason == S("Shop is sold out") then api.on_shop_empty(player, shop, i) - elseif reason == "Shop is full" then + elseif reason == S("Shop is full") then api.on_shop_full(player, shop, i) end @@ -91,16 +91,16 @@ function api.get_purchase_fail_reason(player, shop, i) local strict_meta = shop:is_strict_meta() if not player_inv:contains_item(pay_stack, strict_meta) then - return "You lack appropriate payment" + return S("You lack appropriate payment") elseif not shop:contains_item(give_stack, "give") then - return "Shop is sold out" + return S("Shop is sold out") elseif not player_inv:room_for_item(give_stack) then - return "No room in your inventory" + return S("No room in your inventory") elseif not shop:room_for_item(pay_stack, "pay") then - return "Shop is full" + return S("Shop is full") end - return "Failed for unknown reason" + return S("Failed for unknown reason") end api.register_purchase_mechanic({ diff --git a/mods/smartshop/api/storage_linking.lua b/mods/smartshop/api/storage_linking.lua index 30d6b393..ab3766be 100644 --- a/mods/smartshop/api/storage_linking.lua +++ b/mods/smartshop/api/storage_linking.lua @@ -1,4 +1,4 @@ -local get_us_time = minetest.get_us_time +local get_us_time = core.get_us_time local api = smartshop.api @@ -15,14 +15,14 @@ local function expire(player_name, id, shop, storage_type) -- make sure we're expiring the correct request if data and data.id == id and data.shop == shop and data.storage_type == storage_type then data_by_player_name[player_name] = nil - smartshop.chat_send_player(player_name, "Storage link attempt timed out, please try again.") + core.chat_send_player(player_name, S("Storage link attempt timed out, please try again.")) end end function api.start_storage_linking(player, shop, storage_type) local player_name = player:get_player_name() - smartshop.chat_send_player(player_name, "Punch a smartshop storage node to link @1 storage", S(storage_type)) + core.chat_send_player(player_name, S("Punch a smartshop storage node to link @1 storage", storage_type)) local id = get_us_time() data_by_player_name[player_name] = { @@ -31,7 +31,7 @@ function api.start_storage_linking(player, shop, storage_type) storage_type = storage_type, } - minetest.after(storage_link_time, expire, player_name, id, shop, storage_type) + core.after(storage_link_time, expire, player_name, id, shop, storage_type) end function api.try_link_storage(storage, player) @@ -45,13 +45,13 @@ function api.try_link_storage(storage, player) local storage_type = data.storage_type if not storage:is_owner(shop:get_owner()) then - smartshop.chat_send_player(player_name, "You do not own this storage!") + core.chat_send_player(player_name, S("You do not own this storage!")) elseif storage_max_distance > 0 and vector.distance(data.shop.pos, storage.pos) > storage_max_distance then - smartshop.chat_send_player(player_name, "Storage is too far from shop to link!") + core.chat_send_player(player_name, S("Storage is too far from shop to link!")) else shop:link_storage(storage, storage_type) - smartshop.chat_send_player(player_name, "@1 storage linked!", storage_type) + core.chat_send_player(player_name, S("@1 storage linked!", storage_type)) end data_by_player_name[player_name] = nil diff --git a/mods/unified_inventory/register.lua b/mods/unified_inventory/register.lua index 0fdb49b7..83588bde 100644 --- a/mods/unified_inventory/register.lua +++ b/mods/unified_inventory/register.lua @@ -23,24 +23,24 @@ You should have received a copy of the GNU Library General Public License along with this program. If not, see . ]=] -local S = minetest.get_translator 'unified_inventory' +local S = core.get_translator 'unified_inventory' local NS = function(s) return s end -local F = minetest.formspec_escape +local F = core.formspec_escape local ui = unified_inventory -minetest.register_privilege('creative', { +core.register_privilege('creative', { description = S 'Can use the creative inventory', give_to_singleplayer = false, }) -minetest.register_privilege('ui_full', { +core.register_privilege('ui_full', { description = S 'Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally', give_to_singleplayer = false, }) -local trash = minetest.create_detached_inventory('trash', { +local trash = core.create_detached_inventory('trash', { --allow_put = function(inv, listname, index, stack, player) -- if ui.is_creative(player:get_player_name()) then -- return stack:get_count() @@ -51,7 +51,7 @@ local trash = minetest.create_detached_inventory('trash', { on_put = function(inv, listname, index, stack, player) inv:set_stack(listname, index, nil) local player_name = player:get_player_name() - minetest.sound_play('trash', { to_player = player_name, gain = 1.0 }) + core.sound_play('trash', { to_player = player_name, gain = 1.0 }) end, }) trash:set_size('main', 1) @@ -75,7 +75,7 @@ ui.register_button('clear_inv', { action = function(player) local player_name = player:get_player_name() if not ui.is_creative(player_name) then - minetest.chat_send_player( + core.chat_send_player( player_name, S( 'This button has been disabled outside' @@ -88,8 +88,8 @@ ui.register_button('clear_inv', { return end player:get_inventory():set_list('main', {}) - minetest.chat_send_player(player_name, S 'Inventory cleared!') - minetest.sound_play('trash_all', { to_player = player_name, gain = 1.0 }) + core.chat_send_player(player_name, S('Inventory cleared!')) + core.sound_play('trash_all', { to_player = player_name, gain = 1.0 }) end, condition = function(player) return ui.is_creative(player:get_player_name()) @@ -122,7 +122,7 @@ ui.register_page('craft', { } local n = #formspec + 1 - if ui.trash_enabled or ui.is_creative(player_name) or minetest.get_player_privs(player_name).give then + if ui.trash_enabled or ui.is_creative(player_name) or core.get_player_privs(player_name).give then formspec[n] = string.format('label[%f,%f;%s]', craftx + 6.35, crafty + 2.3, F(S 'Trash:')) formspec[n + 1] = ui.make_trash_slot(craftx + 6.25, crafty + 2.5) n = n + 2 @@ -223,7 +223,7 @@ ui.register_page('craftguide', { local give_x = perplayer_formspec.give_btn_x local player_name = player:get_player_name() - local player_privs = minetest.get_player_privs(player_name) + local player_privs = core.get_player_privs(player_name) local formspec = { perplayer_formspec.standard_inv_bg, @@ -236,7 +236,7 @@ ui.register_page('craftguide', { local n = #formspec + 1 - local item_def = minetest.registered_items[item_name] + local item_def = core.registered_items[item_name] local item_name_shown local desc = item_def.short_description or item_def.description @@ -460,9 +460,9 @@ ui.register_page('craftguide', { local function craftguide_giveme(player, formname, fields) local player_name = player:get_player_name() - local player_privs = minetest.get_player_privs(player_name) + local player_privs = core.get_player_privs(player_name) if not player_privs.give and not ui.is_creative(player_name) then - minetest.log('action', '[unified_inventory] Denied give action to player ' .. player_name) + core.log('action', '[unified_inventory] Denied give action to player ' .. player_name) return end @@ -507,9 +507,9 @@ local function craftguide_craft(player, formname, fields) local craft = crafts[alternate] if not craft.width then if not craft.output then - minetest.log('warning', '[unified_inventory] Craft has no output.') + core.log('warning', '[unified_inventory] Craft has no output.') else - minetest.log('warning', ("[unified_inventory] Craft for '%s' has no width."):format(craft.output)) + core.log('warning', ("[unified_inventory] Craft for '%s' has no width."):format(craft.output)) end return end @@ -520,7 +520,7 @@ local function craftguide_craft(player, formname, fields) ui.set_inventory_formspec(player, 'craft') end -minetest.register_on_player_receive_fields(function(player, formname, fields) +core.register_on_player_receive_fields(function(player, formname, fields) if formname ~= '' then return end for k, v in pairs(fields) do From 46dd948ca9a36888a536a03116de9854bfefff40 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Thu, 26 Mar 2026 17:44:14 -0700 Subject: [PATCH 08/35] Add a recursive pot file generator --- extract_translations.sh | 55 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 extract_translations.sh diff --git a/extract_translations.sh b/extract_translations.sh new file mode 100644 index 00000000..c513134a --- /dev/null +++ b/extract_translations.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash +set -e + +# Get submodule mod names from .gitmodules +SUBMODULES=$(grep 'path = mods/' .gitmodules 2>/dev/null | sed 's|.*mods/||') + +for mod in mods/*; do + [ -d "$mod" ] || continue + + modname="$(basename "$mod")" + + # Skip if this mod is a git submodule + if echo "$SUBMODULES" | grep -qx "$modname"; then + echo "Skipping git submodule: $modname" + continue + fi + + # Skip mods that don’t use translations + if ! grep -qr "get_translator" "$mod"; then + echo "Skipping (no translations): $modname" + continue + fi + + outdir="$mod/locale" + outfile="$outdir/$modname.pot" + + echo "Processing $modname..." + + mkdir -p "$outdir" + + find "$mod" -type f -name "*.lua" \ + -not -path "*/.git/*" \ + -not -path "*/vendor/*" \ + -not -path "*/deps/*" \ + -not -path "*/third_party/*" \ + | xgettext \ + --from-code=UTF-8 \ + -L lua \ + -kS -kPS:1,2 \ + -kcore.translate:1c,2 \ + -kcore.translate_n:1c,2,3 \ + -d "$modname" \ + -o "$outfile" \ + -f - + + # Fix charset + if [ -f "$outfile" ]; then + sed -i 's/charset=CHARSET/charset=UTF-8/' "$outfile" + else + echo "No translatable strings found in $modname" + fi + +done + +echo "Done." \ No newline at end of file From e6ed97ecdfbd4c116347c3f13d31c1eb1e97767e Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Thu, 26 Mar 2026 17:45:40 -0700 Subject: [PATCH 09/35] Generate translation template files --- mods/areas/locale/areas.pot | 413 +++++++++++++++++ mods/areasprotector/locale/areasprotector.pot | 58 +++ mods/creative/locale/creative.pot | 22 + mods/drawers/locale/drawers.pot | 92 ++++ mods/hudbars/locale/hudbars.pot | 26 ++ mods/jumpdrive/locale/jumpdrive.pot | 136 ++++++ mods/metatool/locale/metatool.pot | 225 ++++++++++ mods/player_monoids/locale/player_monoids.pot | 30 ++ mods/replacer/locale/replacer.pot | 396 +++++++++++++++++ .../locale/sbz_area_containers.pot | 38 ++ mods/sbz_armor/locale/sbz_armor.pot | 26 ++ mods/sbz_base/locale/sbz_base.pot | 110 +++++ mods/sbz_bio/locale/sbz_bio.pot | 196 +++++++++ mods/sbz_chem/locale/sbz_chem.pot | 142 ++++++ mods/sbz_decor/locale/sbz_decor.pot | 66 +++ mods/sbz_devtools/locale/sbz_devtools.pot | 137 ++++++ mods/sbz_instatube/locale/sbz_instatube.pot | 78 ++++ mods/sbz_logic/locale/sbz_logic.pot | 113 +++++ .../locale/sbz_logic_devices.pot | 112 +++++ mods/sbz_meteorites/locale/sbz_meteorites.pot | 74 ++++ .../locale/sbz_multiblocks.pot | 62 +++ mods/sbz_pipeworks/locale/sbz_pipeworks.pot | 167 +++++++ mods/sbz_planets/locale/sbz_planets.pot | 123 ++++++ mods/sbz_power/locale/sbz_power.pot | 332 ++++++++++++++ .../locale/sbz_progression.pot | 100 +++++ mods/sbz_resources/locale/sbz_resources.pot | 413 +++++++++++++++++ mods/sbz_runes/locale/sbz_runes.pot | 38 ++ mods/sbz_ui/locale/sbz_ui.pot | 45 ++ mods/sbz_wrench/locale/sbz_wrench.pot | 67 +++ mods/screwdriver/locale/screwdriver.pot | 26 ++ mods/signs_lib/locale/signs_lib.pot | 57 +++ mods/smartshop/locale/smartshop.pot | 129 ++++++ mods/travelnet/locale/travelnet.pot | 415 ++++++++++++++++++ .../locale/unified_inventory.pot | 250 +++++++++++ mods/unifieddyes/locale/unifieddyes.pot | 50 +++ 35 files changed, 4764 insertions(+) create mode 100644 mods/areas/locale/areas.pot create mode 100644 mods/areasprotector/locale/areasprotector.pot create mode 100644 mods/creative/locale/creative.pot create mode 100644 mods/drawers/locale/drawers.pot create mode 100644 mods/hudbars/locale/hudbars.pot create mode 100644 mods/jumpdrive/locale/jumpdrive.pot create mode 100644 mods/metatool/locale/metatool.pot create mode 100644 mods/player_monoids/locale/player_monoids.pot create mode 100644 mods/replacer/locale/replacer.pot create mode 100644 mods/sbz_area_containers/locale/sbz_area_containers.pot create mode 100644 mods/sbz_armor/locale/sbz_armor.pot create mode 100644 mods/sbz_base/locale/sbz_base.pot create mode 100644 mods/sbz_bio/locale/sbz_bio.pot create mode 100644 mods/sbz_chem/locale/sbz_chem.pot create mode 100644 mods/sbz_decor/locale/sbz_decor.pot create mode 100644 mods/sbz_devtools/locale/sbz_devtools.pot create mode 100644 mods/sbz_instatube/locale/sbz_instatube.pot create mode 100644 mods/sbz_logic/locale/sbz_logic.pot create mode 100644 mods/sbz_logic_devices/locale/sbz_logic_devices.pot create mode 100644 mods/sbz_meteorites/locale/sbz_meteorites.pot create mode 100644 mods/sbz_multiblocks/locale/sbz_multiblocks.pot create mode 100644 mods/sbz_pipeworks/locale/sbz_pipeworks.pot create mode 100644 mods/sbz_planets/locale/sbz_planets.pot create mode 100644 mods/sbz_power/locale/sbz_power.pot create mode 100644 mods/sbz_progression/locale/sbz_progression.pot create mode 100644 mods/sbz_resources/locale/sbz_resources.pot create mode 100644 mods/sbz_runes/locale/sbz_runes.pot create mode 100644 mods/sbz_ui/locale/sbz_ui.pot create mode 100644 mods/sbz_wrench/locale/sbz_wrench.pot create mode 100644 mods/screwdriver/locale/screwdriver.pot create mode 100644 mods/signs_lib/locale/signs_lib.pot create mode 100644 mods/smartshop/locale/smartshop.pot create mode 100644 mods/travelnet/locale/travelnet.pot create mode 100644 mods/unified_inventory/locale/unified_inventory.pot create mode 100644 mods/unifieddyes/locale/unifieddyes.pot diff --git a/mods/areas/locale/areas.pot b/mods/areas/locale/areas.pot new file mode 100644 index 00000000..b676e80f --- /dev/null +++ b/mods/areas/locale/areas.pot @@ -0,0 +1,413 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/areas/chatcommands.lua:33 mods/areas/chatcommands.lua:64 +#: mods/areas/chatcommands.lua:102 +msgid "" +msgstr "" + +#: mods/areas/chatcommands.lua:34 +msgid "Protect your own area" +msgstr "" + +#: mods/areas/chatcommands.lua:38 mods/areas/chatcommands.lua:73 +#: mods/areas/chatcommands.lua:110 mods/areas/chatcommands.lua:152 +#: mods/areas/chatcommands.lua:262 mods/areas/chatcommands.lua:284 +#: mods/areas/chatcommands.lua:305 mods/areas/chatcommands.lua:334 +#: mods/areas/chatcommands.lua:361 mods/areas/chatcommands.lua:400 +#: mods/areas/pos.lua:70 +msgid "Invalid usage, see /help @1." +msgstr "" + +#: mods/areas/chatcommands.lua:42 mods/areas/chatcommands.lua:78 +#: mods/areas/chatcommands.lua:116 mods/areas/chatcommands.lua:410 +msgid "You need to select an area first." +msgstr "" + +#: mods/areas/chatcommands.lua:52 +msgid "You can't protect that area: @1" +msgstr "" + +#: mods/areas/chatcommands.lua:58 mods/areas/chatcommands.lua:96 +#: mods/areas/chatcommands.lua:141 +msgid "Area protected. ID: @1" +msgstr "" + +#: mods/areas/chatcommands.lua:64 mods/areas/chatcommands.lua:102 +msgid "" +msgstr "" + +#: mods/areas/chatcommands.lua:65 +msgid "" +"Protect an area between two positions and give a player access to it without " +"setting the parent of the area to any existing area" +msgstr "" + +#: mods/areas/chatcommands.lua:82 mods/areas/chatcommands.lua:120 +#: mods/areas/chatcommands.lua:310 +msgid "The player \"@1\" does not exist." +msgstr "" + +#: mods/areas/chatcommands.lua:94 mods/areas/chatcommands.lua:139 +msgid "" +"You have been granted control over area #@1. Type /list_areas to show your " +"areas." +msgstr "" + +#: mods/areas/chatcommands.lua:102 +msgid "" +msgstr "" + +#: mods/areas/chatcommands.lua:103 +msgid "" +"Give a player access to a sub-area between two positions that have already " +"been protected, Use set_owner if you don't want the parent to be set." +msgstr "" + +#: mods/areas/chatcommands.lua:132 +msgid "You can't protect that area." +msgstr "" + +#: mods/areas/chatcommands.lua:147 mods/areas/chatcommands.lua:257 +#: mods/areas/chatcommands.lua:279 mods/areas/chatcommands.lua:300 +#: mods/areas/chatcommands.lua:329 mods/areas/chatcommands.lua:394 +msgid "" +msgstr "" + +#: mods/areas/chatcommands.lua:147 +msgid "" +msgstr "" + +#: mods/areas/chatcommands.lua:148 +msgid "Rename an area that you own" +msgstr "" + +#: mods/areas/chatcommands.lua:157 +msgid "That area doesn't exist." +msgstr "" + +#: mods/areas/chatcommands.lua:161 +msgid "You don't own that area." +msgstr "" + +#: mods/areas/chatcommands.lua:166 +msgid "Area renamed." +msgstr "" + +#: mods/areas/chatcommands.lua:173 +msgid "Find areas using a Lua regular expression" +msgstr "" + +#: mods/areas/chatcommands.lua:177 +msgid "A regular expression is required." +msgstr "" + +#: mods/areas/chatcommands.lua:186 +msgid "Invalid regular expression." +msgstr "" + +#: mods/areas/chatcommands.lua:199 +msgid "No matches found." +msgstr "" + +#: mods/areas/chatcommands.lua:206 +msgid "[]" +msgstr "" + +#: mods/areas/chatcommands.lua:207 +msgid "" +"List your areas. Admins can list all areas or those of a specific player." +msgstr "" + +#: mods/areas/chatcommands.lua:238 +msgid "@1 : @2 area(s)" +msgstr "" + +#: mods/areas/chatcommands.lua:249 +msgid "No visible areas." +msgstr "" + +#: mods/areas/chatcommands.lua:258 +msgid "Recursively remove areas using an ID" +msgstr "" + +#: mods/areas/chatcommands.lua:267 mods/areas/chatcommands.lua:288 +#: mods/areas/chatcommands.lua:315 mods/areas/chatcommands.lua:338 +#: mods/areas/chatcommands.lua:365 +msgid "Area @1 does not exist or is not owned by you." +msgstr "" + +#: mods/areas/chatcommands.lua:273 +msgid "Removed area @1 and its sub areas." +msgstr "" + +#: mods/areas/chatcommands.lua:280 +msgid "Remove an area using an ID" +msgstr "" + +#: mods/areas/chatcommands.lua:294 +msgid "Removed area @1" +msgstr "" + +#: mods/areas/chatcommands.lua:300 +msgid "" +msgstr "" + +#: mods/areas/chatcommands.lua:301 +msgid "Change the owner of an area using its ID" +msgstr "" + +#: mods/areas/chatcommands.lua:321 +msgid "@1 has given you control over the area \"@2\" (ID @3)." +msgstr "" + +#: mods/areas/chatcommands.lua:323 +msgid "Owner changed." +msgstr "" + +#: mods/areas/chatcommands.lua:330 +msgid "Toggle an area open (anyone can interact) or closed" +msgstr "" + +#: mods/areas/chatcommands.lua:345 +msgid "Area opened." +msgstr "" + +#: mods/areas/chatcommands.lua:345 +msgid "Area closed." +msgstr "" + +#: mods/areas/chatcommands.lua:352 +msgid " [faction_name]" +msgstr "" + +#: mods/areas/chatcommands.lua:353 +msgid "Toggle an area open/closed for members in your faction." +msgstr "" + +#: mods/areas/chatcommands.lua:370 +msgid "Faction doesn't exists" +msgstr "" + +#: mods/areas/chatcommands.lua:386 +msgid "Area is open for members of: @1" +msgstr "" + +#: mods/areas/chatcommands.lua:387 +msgid "Area closed for faction members." +msgstr "" + +#: mods/areas/chatcommands.lua:395 +msgid "Move (or resize) an area to the current positions." +msgstr "" + +#: mods/areas/chatcommands.lua:405 +msgid "Area does not exist." +msgstr "" + +#: mods/areas/chatcommands.lua:416 +msgid "Area successfully moved." +msgstr "" + +#: mods/areas/chatcommands.lua:422 +msgid "Get information about area configuration and usage." +msgstr "" + +#: mods/areas/chatcommands.lua:445 +msgid "Self protection is enabled." +msgstr "" + +#: mods/areas/chatcommands.lua:446 +msgid "Self protection is disabled." +msgstr "" + +#: mods/areas/chatcommands.lua:450 +msgid "You have the necessary privilege (\"@1\")." +msgstr "" + +#: mods/areas/chatcommands.lua:451 +msgid "You don't have the necessary privilege (\"@1\")." +msgstr "" + +#: mods/areas/chatcommands.lua:454 +msgid "You are an area administrator (\"areas\" privilege)." +msgstr "" + +#: mods/areas/chatcommands.lua:458 +msgid "" +"You have extended area protection limits (\"areas_high_limit\" privilege)." +msgstr "" + +#: mods/areas/chatcommands.lua:469 +msgid "You have @1 areas." +msgstr "" + +#: mods/areas/chatcommands.lua:473 +msgid "Limit: no area count limit" +msgstr "" + +#: mods/areas/chatcommands.lua:474 +msgid "Limit: @1 areas" +msgstr "" + +#: mods/areas/chatcommands.lua:479 +msgid "@1 spanning up to @2x@3x@4." +msgstr "" + +#: mods/areas/chatcommands.lua:483 +msgid "Players with the \"@1\" privilege can protect up to @2 areas" +msgstr "" + +#: mods/areas/chatcommands.lua:494 +msgid "You can protect areas" +msgstr "" + +#: mods/areas/chatcommands.lua:504 +msgid "Removes all ownerless areas" +msgstr "" + +#: mods/areas/hud.lua:72 +msgid ":open" +msgstr "" + +#: mods/areas/hud.lua:84 +msgid "Areas:" +msgstr "" + +#: mods/areas/init.lua:31 +msgid "Can administer areas." +msgstr "" + +#: mods/areas/init.lua:35 +msgid "Can protect more, bigger areas." +msgstr "" + +#: mods/areas/init.lua:41 +msgid "Can protect areas." +msgstr "" + +#: mods/areas/interact.lua:15 +msgid "@1 is protected by @2." +msgstr "" + +#: mods/areas/internal.lua:261 +msgid "Self protection is disabled or you do not have the necessary privilege." +msgstr "" + +#: mods/areas/internal.lua:276 +msgid "Area is too big." +msgstr "" + +#: mods/areas/internal.lua:293 +msgid "" +"You have reached the maximum amount of areas that you are allowed to protect." +msgstr "" + +#: mods/areas/internal.lua:303 +msgid "The area intersects with @1 [@2] (@3)." +msgstr "" + +#: mods/areas/legacy.lua:6 +msgid "" +msgstr "" + +#: mods/areas/legacy.lua:7 +msgid "Loads, converts, and saves the areas from a legacy save file." +msgstr "" + +#: mods/areas/legacy.lua:11 +msgid "Converting areas…" +msgstr "" + +#: mods/areas/legacy.lua:16 +msgid "Error loading legacy file: @1" +msgstr "" + +#: mods/areas/legacy.lua:20 +msgid "Invalid version number. (0 allowed)" +msgstr "" + +#: mods/areas/legacy.lua:23 +msgid "Legacy file loaded." +msgstr "" + +#: mods/areas/legacy.lua:38 +msgid "unnamed" +msgstr "" + +#: mods/areas/legacy.lua:43 +msgid "Table format updated." +msgstr "" + +#: mods/areas/legacy.lua:46 +msgid "Converted areas saved. Done." +msgstr "" + +#: mods/areas/pos.lua:50 +msgid "" +"Relative coordinates is not supported on this server. Please upgrade " +"Minetest to 5.7.0 or newer versions." +msgstr "" + +#: mods/areas/pos.lua:73 +msgid "Unable to get position." +msgstr "" + +#: mods/areas/pos.lua:83 +msgid "Area position @1 set to @2" +msgstr "" + +#: mods/areas/pos.lua:89 mods/areas/pos.lua:99 +msgid "" +"Set area protection region position @1 to your location or the one specified" +msgstr "" + +#: mods/areas/pos.lua:108 +msgid "" +"Set area protection region, position 1, or position 2 by punching nodes, or " +"display the region" +msgstr "" + +#: mods/areas/pos.lua:113 +msgid "Select positions by punching two nodes." +msgstr "" + +#: mods/areas/pos.lua:116 mods/areas/pos.lua:119 +msgid "Select position @1 by punching a node." +msgstr "" + +#: mods/areas/pos.lua:121 +msgid "Position @1:" +msgstr "" + +#: mods/areas/pos.lua:125 mods/areas/pos.lua:130 +msgid "" +msgstr "" + +#: mods/areas/pos.lua:134 +msgid "Unknown subcommand: @1" +msgstr "" + +#: mods/areas/pos.lua:206 mods/areas/pos.lua:212 +msgid "Position @1 set to @2" +msgstr "" + +#: mods/areas/pvp.lua:33 +msgid "Toggle PvP in an area" +msgstr "" diff --git a/mods/areasprotector/locale/areasprotector.pot b/mods/areasprotector/locale/areasprotector.pot new file mode 100644 index 00000000..6fedba89 --- /dev/null +++ b/mods/areasprotector/locale/areasprotector.pot @@ -0,0 +1,58 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: mods/areasprotector/init.lua:104 mods/areasprotector/init.lua:109 +#: mods/areasprotector/init.lua:115 mods/areasprotector/init.lua:162 +msgid "You are not allowed to protect that area: " +msgstr "" + +#: mods/areasprotector/init.lua:110 +msgid "That name is obviously invalid." +msgstr "" + +#: mods/areasprotector/init.lua:116 +msgid "You need to fill out the field with a name" +msgstr "" + +#: mods/areasprotector/init.lua:120 +msgid "Protector block sub-area" +msgstr "" + +#: mods/areasprotector/init.lua:180 +msgid "Protected by Protector Block" +msgstr "" + +#: mods/areasprotector/init.lua:187 +msgid "" +"You are using too many protector blocks: this server allows you to use up to " +"@1 protector block, and you already have @2." +msgid_plural "" +"You are using too many protector blocks: this server allows you to use up to " +"@1 protector blocks, and you already have @2." +msgstr[0] "" +msgstr[1] "" + +#: mods/areasprotector/init.lua:289 +msgid "Large Protector Block" +msgstr "" + +#: mods/areasprotector/init.lua:314 +msgid "Small Protector Block" +msgstr "" diff --git a/mods/creative/locale/creative.pot b/mods/creative/locale/creative.pot new file mode 100644 index 00000000..feb8dc5b --- /dev/null +++ b/mods/creative/locale/creative.pot @@ -0,0 +1,22 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/creative/init.lua:10 +msgid "Allow player to use creative inventory" +msgstr "" diff --git a/mods/drawers/locale/drawers.pot b/mods/drawers/locale/drawers.pot new file mode 100644 index 00000000..c49a532d --- /dev/null +++ b/mods/drawers/locale/drawers.pot @@ -0,0 +1,92 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/drawers/api.lua:91 mods/drawers/visuals.lua:564 +msgid "Empty" +msgstr "" + +#: mods/drawers/api.lua:542 +msgid "Refreshes nearby drawer contents' visual indicators.\n" +msgstr "" + +#: mods/drawers/controller.lua:52 mods/drawers/controller.lua:387 +msgid "Drawer Controller" +msgstr "" + +#: mods/drawers/helpers.lua:50 +msgid "@1 (@2% full)" +msgstr "" + +#: mods/drawers/helpers.lua:52 +msgid "@1 @2 (@3% full)" +msgstr "" + +#: mods/drawers/nodes.lua:35 +msgid "@1 Drawer Upgrade (@2x)" +msgstr "" + +#: mods/drawers/nodes.lua:43 +msgid "Matter Drawer" +msgstr "" + +#: mods/drawers/nodes.lua:56 +msgid "If you aren't seeing drawer visuals, try using /drawers_fix" +msgstr "" + +#: mods/drawers/nodes.lua:62 +msgid "Drawer Connector" +msgstr "" + +#: mods/drawers/nodes.lua:76 +msgid "" +"For use with the Drawer Controller; transfers items through it to adjacent " +"drawers." +msgstr "" + +#: mods/drawers/nodes.lua:82 +msgid "Bronze" +msgstr "" + +#: mods/drawers/nodes.lua:89 +msgid "Stemfruit" +msgstr "" + +#: mods/drawers/nodes.lua:96 +msgid "Colorium" +msgstr "" + +#: mods/drawers/nodes.lua:100 +msgid "Sorry, but it doesn't actually make the drawer color-able..." +msgstr "" + +#: mods/drawers/nodes.lua:104 +msgid "Warpshroom" +msgstr "" + +#: mods/drawers/nodes.lua:113 +msgid "Neutronium" +msgstr "" + +#: mods/drawers/nodes.lua:120 +msgid "Creative" +msgstr "" + +#: mods/drawers/nodes.lua:129 +msgid "Drawer Upgrade Template" +msgstr "" diff --git a/mods/hudbars/locale/hudbars.pot b/mods/hudbars/locale/hudbars.pot new file mode 100644 index 00000000..9259bbca --- /dev/null +++ b/mods/hudbars/locale/hudbars.pot @@ -0,0 +1,26 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/hudbars/init.lua:542 +msgid "Health" +msgstr "" + +#: mods/hudbars/init.lua:551 +msgid "Breath" +msgstr "" diff --git a/mods/jumpdrive/locale/jumpdrive.pot b/mods/jumpdrive/locale/jumpdrive.pot new file mode 100644 index 00000000..36c0a715 --- /dev/null +++ b/mods/jumpdrive/locale/jumpdrive.pot @@ -0,0 +1,136 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: mods/jumpdrive/backbone.lua:4 +msgid "Jumpdrive Backbone" +msgstr "" + +#: mods/jumpdrive/bookmark.lua:27 mods/jumpdrive/bookmark.lua:28 +msgid "Jumpdrive coordinates" +msgstr "" + +#: mods/jumpdrive/bookmark.lua:97 +msgid "Invalid coordinates" +msgstr "" + +#: mods/jumpdrive/engine.lua:6 +msgid "Jumpdrive" +msgstr "" + +#: mods/jumpdrive/fleet/fleet_controller.lua:8 +msgid "Jumpdrive Fleet Controller" +msgstr "" + +#: mods/jumpdrive/fleet/fleet_controller.lua:136 +msgid "Found @1 jumpdrive" +msgid_plural "Found @2 jumpdrives" +msgstr[0] "" +msgstr[1] "" + +#: mods/jumpdrive/fleet/fleet_controller.lua:158 +msgid "Check passed for engine " +msgstr "" + +#: mods/jumpdrive/fleet/fleet_controller.lua:166 +msgid "Simulation successful" +msgstr "" + +#: mods/jumpdrive/fleet/fleet_controller.lua:203 +msgid "Jump executed in " +msgstr "" + +#: mods/jumpdrive/fleet/fleet_controller.lua:208 +msgid "Engine " +msgstr "" + +#: mods/jumpdrive/fleet/fleet_controller.lua:208 +msgid " failed with: " +msgstr "" + +#: mods/jumpdrive/jump.lua:9 +msgid "" +"Error: mapgen was active in this area, please try again later for your own " +"safety!" +msgstr "" + +#: mods/jumpdrive/jump.lua:15 +msgid "Error: simulation is still active! please wait before simulating again" +msgstr "" + +#: mods/jumpdrive/jump.lua:41 +msgid "Error: jump into itself! extend your jump target" +msgstr "" + +#: mods/jumpdrive/jump.lua:60 +msgid "Error: Can't jump node @ " +msgstr "" + +#: mods/jumpdrive/jump.lua:64 +msgid "Warning: Jump-target is in vacuum!" +msgstr "" + +#: mods/jumpdrive/jump.lua:68 +msgid "Error: Jump-target is in uncharted area!" +msgstr "" + +#: mods/jumpdrive/jump.lua:72 +msgid "Error: Jump-source is protected!" +msgstr "" + +#: mods/jumpdrive/jump.lua:76 +msgid "Error: Jump-target is protected!" +msgstr "" + +#: mods/jumpdrive/jump.lua:82 +msgid "Error: Jump-target is obstructed" +msgstr "" + +#: mods/jumpdrive/jump.lua:91 +msgid "Error: Preflight check failed!" +msgstr "" + +#: mods/jumpdrive/jump.lua:93 +msgid "Error: " +msgstr "" + +#: mods/jumpdrive/jump.lua:110 +msgid "Error: Not enough power: required:" +msgstr "" + +#: mods/jumpdrive/jump.lua:111 +msgid "power storage:" +msgstr "" + +#: mods/jumpdrive/jump.lua:114 +msgid "" +", power from batteries (25% efficiency, so actual power use is 4x of this): " +msgstr "" + +#: mods/jumpdrive/jump.lua:119 +msgid "Info: Has to use @1 from your batteries. (25% efficiency)" +msgstr "" + +#: mods/jumpdrive/station.lua:4 +msgid "Jumpdrive Station" +msgstr "" + +#: mods/jumpdrive/warp_device.lua:4 +msgid "Warp Device" +msgstr "" diff --git a/mods/metatool/locale/metatool.pot b/mods/metatool/locale/metatool.pot new file mode 100644 index 00000000..e265ec05 --- /dev/null +++ b/mods/metatool/locale/metatool.pot @@ -0,0 +1,225 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/metatool/copytool/init.lua:14 +msgid "Copy Tool" +msgstr "" + +#: mods/metatool/copytool/nodes/teleport_tube.lua:106 +msgid "Teleport tube configuration cleaner" +msgstr "" + +#: mods/metatool/copytool/nodes/teleport_tube.lua:128 +msgid "Receive was disabled because you're not owner of private receiver." +msgstr "" + +#: mods/metatool/metatool/api.lua:14 +#, lua-format +msgid "Registering %s as privileged tool" +msgstr "" + +#: mods/metatool/metatool/api.lua:34 +#, lua-format +msgid "Privileged tools removed from inventory: %s" +msgstr "" + +#: mods/metatool/metatool/api.lua:145 +#, lua-format +msgid "Invalid or nonexistent namespace requested: %s" +msgstr "" + +#: mods/metatool/metatool/api.lua:149 +#, lua-format +msgid "Namespace created for: %s" +msgstr "" + +#: mods/metatool/metatool/api.lua:185 +#, lua-format +msgid "%s cannot inspect %s" +msgstr "" + +#: mods/metatool/metatool/api.lua:201 +#, lua-format +msgid "%s copied data for group %s" +msgstr "" + +#: mods/metatool/metatool/api.lua:205 +#, lua-format +msgid "%s copying data for group %s failed" +msgstr "" + +#: mods/metatool/metatool/api.lua:209 +#, lua-format +msgid "%s cannot read from %s" +msgstr "" + +#: mods/metatool/metatool/api.lua:245 +#, lua-format +msgid "metatool wand contains data for %s, cannot apply for %s" +msgstr "" + +#: mods/metatool/metatool/api.lua:250 +#, lua-format +msgid "%s cannot write to %s" +msgstr "" + +#: mods/metatool/metatool/api.lua:340 +#, lua-format +msgid "metatool:register_tool invalid definition, must be table but was %s" +msgstr "" + +#: mods/metatool/metatool/api.lua:346 +#, lua-format +msgid "metatool:register_tool tool registration failed for \"%s\"." +msgstr "" + +#: mods/metatool/metatool/api.lua:367 +#, lua-format +msgid "metatool:register_tool registered tool \"%s\"." +msgstr "" + +#: mods/metatool/metatool/api.lua:370 +#, lua-format +msgid "" +"metatool:register_tool not registering tool %s because it is already " +"registered." +msgstr "" + +#: mods/metatool/metatool/api.lua:378 +#, lua-format +msgid "metatool:register_node invalid definition, must be table but was %s" +msgstr "" + +#: mods/metatool/metatool/api.lua:382 +#, lua-format +msgid "" +"metatool:register_node node %s not registered for core, skipping " +"registration." +msgstr "" + +#: mods/metatool/metatool/api.lua:394 +#, lua-format +msgid "metatool:register_node registered %s for tool %s with group %s." +msgstr "" + +#: mods/metatool/metatool/api.lua:396 +#, lua-format +msgid "" +"metatool:register_node invalid definition for %s: copy or paste function not " +"defined." +msgstr "" + +#: mods/metatool/metatool/api.lua:399 +#, lua-format +msgid "" +"metatool:register_node not registering node %s because it is already " +"registered." +msgstr "" + +#: mods/metatool/metatool/api.lua:418 +#, lua-format +msgid "%s could not get valid position" +msgstr "" + +#: mods/metatool/metatool/api.lua:431 +#, lua-format +msgid "%s cannot be used on %s" +msgstr "" + +#: mods/metatool/metatool/command.lua:7 +#, lua-format +msgid "Metatool registering chat command /%s" +msgstr "" + +#: mods/metatool/metatool/command.lua:24 +#, lua-format +msgid "Invalid command parameters: %s" +msgstr "" + +#: mods/metatool/metatool/command.lua:36 mods/metatool/metatool/command.lua:48 +#, lua-format +msgid "Tool not available: %s" +msgstr "" + +#: mods/metatool/metatool/command.lua:42 +#, lua-format +msgid "Tool count must be between %d and %d" +msgstr "" + +#: mods/metatool/metatool/command.lua:55 +#, lua-format +msgid "%d %s added to inventory" +msgstr "" + +#: mods/metatool/metatool/command.lua:58 +#, lua-format +msgid "Not enough inventory space for %s" +msgstr "" + +#: mods/metatool/metatool/command.lua:71 +#, lua-format +msgid "Available tools: %s" +msgstr "" + +#: mods/metatool/metatool/formspec.lua:213 +msgid "Bug: Form name mismatch: " +msgstr "" + +#: mods/metatool/metatool/formspec.lua:222 +msgid "Bug: Invalid security token for form " +msgstr "" + +#: mods/metatool/metatool/formspec.lua:253 +#, lua-format +msgid "metatool.form.register_form Registration failed, invalid form_name: %s" +msgstr "" + +#: mods/metatool/metatool/formspec.lua:257 +#, lua-format +msgid "" +"metatool.form.register_form Registration failed, invalid form_def type: %s" +msgstr "" + +#: mods/metatool/metatool/formspec.lua:261 +#, lua-format +msgid "metatool.form.register_form Registering form: %s" +msgstr "" + +#: mods/metatool/metatool/formspec.lua:278 +msgid "Bug: Attempt to open invalid form " +msgstr "" + +#: mods/metatool/metatool/formspec.lua:292 +msgid "Bug: Metatool form does not exist " +msgstr "" + +#: mods/metatool/metatool/settings.lua:131 +#, lua-format +msgid "metatool.merge_node_settings merging settings for node %s" +msgstr "" + +#: mods/metatool/metatool/settings.lua:161 +#, lua-format +msgid "metatool.merge_tool_settings merging settings for tool %s" +msgstr "" + +#: mods/metatool/metatool/util.lua:75 +#, lua-format +msgid "Cannot store %d bytes, max storage for %s is %d bytes" +msgstr "" diff --git a/mods/player_monoids/locale/player_monoids.pot b/mods/player_monoids/locale/player_monoids.pot new file mode 100644 index 00000000..a9247755 --- /dev/null +++ b/mods/player_monoids/locale/player_monoids.pot @@ -0,0 +1,30 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/player_monoids/test.lua:6 +msgid "Allows testing of player monoids." +msgstr "" + +#: mods/player_monoids/test.lua:15 mods/player_monoids/test.lua:21 +msgid "Your speed is: " +msgstr "" + +#: mods/player_monoids/test.lua:26 +msgid "Runs a test on monoids" +msgstr "" diff --git a/mods/replacer/locale/replacer.pot b/mods/replacer/locale/replacer.pot new file mode 100644 index 00000000..1e263155 --- /dev/null +++ b/mods/replacer/locale/replacer.pot @@ -0,0 +1,396 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/replacer/blabla.lua:27 +msgid "History" +msgstr "" + +#: mods/replacer/blabla.lua:28 +msgid "Choose mode" +msgstr "" + +#: mods/replacer/blabla.lua:29 +msgid "Both" +msgstr "" + +#: mods/replacer/blabla.lua:30 +msgid "Node" +msgstr "" + +#: mods/replacer/blabla.lua:31 +msgid "Rotation" +msgstr "" + +#: mods/replacer/blabla.lua:32 +msgid "Replace node and apply orientation." +msgstr "" + +#: mods/replacer/blabla.lua:33 +msgid "Replace node without changing orientation." +msgstr "" + +#: mods/replacer/blabla.lua:34 +msgid "Apply orientation without changing node type." +msgstr "" + +#: mods/replacer/blabla.lua:35 +msgid "Single" +msgstr "" + +#: mods/replacer/blabla.lua:36 +msgid "Field" +msgstr "" + +#: mods/replacer/blabla.lua:37 +msgid "Crust" +msgstr "" + +#: mods/replacer/blabla.lua:38 +msgid "Replace single node." +msgstr "" + +#: mods/replacer/blabla.lua:39 +msgid "" +"Left click: Replace field of nodes of a kind where a translucent node is in " +"front of it.@nRight click: Replace field of air where no translucent node is " +"behind the air." +msgstr "" + +#: mods/replacer/blabla.lua:42 +msgid "" +"Left click: Replace nodes which touch another one of its kind and a " +"translucent node, e.g. air.@nRight click: Replace air nodes which touch the " +"crust." +msgstr "" + +#: mods/replacer/blabla.lua:45 +msgid "" +"Target node not yet loaded. Please wait a moment for the server to catch up." +msgstr "" + +#: mods/replacer/blabla.lua:47 +msgid "Nothing to replace." +msgstr "" + +#: mods/replacer/blabla.lua:48 +msgid "Not enough charge to use this mode." +msgstr "" + +#: mods/replacer/blabla.lua:49 +msgid "Aborted, too many nodes detected." +msgstr "" + +#: mods/replacer/blabla.lua:50 +msgid "Error: No node selected." +msgstr "" + +#: mods/replacer/blabla.lua:51 +msgid "Node replacement tool" +msgstr "" + +#: mods/replacer/blabla.lua:52 +msgid "Node replacement tool (technic)" +msgstr "" + +#: mods/replacer/blabla.lua:56 +msgid "Time-limit reached." +msgstr "" + +#: mods/replacer/blabla.lua:59 +msgid "(chat|audio) (0|1)" +msgstr "" + +#: mods/replacer/blabla.lua:60 +msgid "" +"Toggles verbosity.\n" +"chat: When on, messages are posted to chat.\n" +"audio: When off, replacer is silent." +msgstr "" + +#: mods/replacer/blabla.lua:62 +msgid "Player not found" +msgstr "" + +#: mods/replacer/blabla.lua:63 +msgid "Player meta not existent" +msgstr "" + +#: mods/replacer/blabla.lua:74 +msgid "Minor modes are disabled on this server." +msgstr "" + +#: mods/replacer/blabla.lua:75 +msgid "" +msgstr "" + +#: mods/replacer/blabla.lua:76 +msgid "days" +msgstr "" + +#: mods/replacer/blabla.lua:79 +msgid "" +"Inspection Tool\n" +"Use to inspect target node or entity.\n" +"Place to inspect the adjacent node." +msgstr "" + +#: mods/replacer/blabla.lua:81 +msgid "" +"This is a broken object. We have no further information about it. It is " +"located" +msgstr "" + +#: mods/replacer/blabla.lua:82 +msgid "owned, protected and locked" +msgstr "" + +#: mods/replacer/blabla.lua:83 +msgid "owned and protected" +msgstr "" + +#: mods/replacer/blabla.lua:84 +msgid "owned and locked" +msgstr "" + +#: mods/replacer/blabla.lua:85 +msgid "This is an object" +msgstr "" + +#: mods/replacer/blabla.lua:86 +msgid "WARNING: You can't dig this node. It is protected." +msgstr "" + +#: mods/replacer/blabla.lua:87 +msgid "INFO: You can dig this node, others can't." +msgstr "" + +#: mods/replacer/blabla.lua:88 +msgid "~ no description provided ~" +msgstr "" + +#: mods/replacer/blabla.lua:89 +msgid "~ no node description provided ~" +msgstr "" + +#: mods/replacer/blabla.lua:90 +msgid "~ no item description provided ~" +msgstr "" + +#: mods/replacer/blabla.lua:91 +msgid "Name:" +msgstr "" + +#: mods/replacer/blabla.lua:92 +msgid "Exit" +msgstr "" + +#: mods/replacer/blabla.lua:93 +msgid "This is:" +msgstr "" + +#: mods/replacer/blabla.lua:94 +msgid "previous recipe" +msgstr "" + +#: mods/replacer/blabla.lua:95 +msgid "next recipe" +msgstr "" + +#: mods/replacer/blabla.lua:96 +msgid "No recipes." +msgstr "" + +#: mods/replacer/blabla.lua:97 +msgid "Drops on dig:" +msgstr "" + +#: mods/replacer/blabla.lua:98 +msgid "nothing." +msgstr "" + +#: mods/replacer/blabla.lua:99 +msgid "May drop on dig:" +msgstr "" + +#: mods/replacer/blabla.lua:100 +msgid "This can be used as a fuel." +msgstr "" + +#: mods/replacer/blabla.lua:101 +msgid "Error: Unknown recipe." +msgstr "" + +#: mods/replacer/blabla.lua:105 +msgid "scoop up" +msgstr "" + +#: mods/replacer/blabla.lua:106 +msgid "pour out" +msgstr "" + +#: mods/replacer/blabla.lua:107 +msgid "filling" +msgstr "" + +#: mods/replacer/blabla.lua:108 +msgid "(Functions may exist that change attributes and conditions of mobs)" +msgstr "" + +#: mods/replacer/blabla.lua:109 +msgid "Is of type" +msgstr "" + +#: mods/replacer/blabla.lua:110 +msgid "Is loyal to owner." +msgstr "" + +#: mods/replacer/blabla.lua:111 +msgid "Likes to attack:" +msgstr "" + +#: mods/replacer/blabla.lua:112 +msgid "Follows players holding:" +msgstr "" + +#: mods/replacer/blabla.lua:113 +msgid "May drop:" +msgstr "" + +#: mods/replacer/blabla.lua:114 +msgid "Can shoot missiles." +msgstr "" + +#: mods/replacer/blabla.lua:115 +msgid "Can breed." +msgstr "" + +#: mods/replacer/blabla.lua:116 +msgid "Spawns on:" +msgstr "" + +#: mods/replacer/blabla.lua:117 +msgid "with neighours:" +msgstr "" + +#: mods/replacer/blabla.lua:118 +msgid "Placed:" +msgstr "" + +#: mods/replacer/blabla.lua:119 +msgid "Digs:" +msgstr "" + +#: mods/replacer/blabla.lua:120 +msgid "Inflicted:" +msgstr "" + +#: mods/replacer/blabla.lua:121 +msgid "Punched:" +msgstr "" + +#: mods/replacer/blabla.lua:122 +msgid "XP:" +msgstr "" + +#: mods/replacer/blabla.lua:123 +msgid "Deaths:" +msgstr "" + +#: mods/replacer/blabla.lua:124 +msgid "Played:" +msgstr "" + +#: mods/replacer/blabla.lua:125 +msgid "Is currently on a mission." +msgstr "" + +#: mods/replacer/blabla.lua:126 +msgid "You don't have any common channels." +msgstr "" + +#: mods/replacer/blabla.lua:127 +msgid "You are both on these channels:" +msgstr "" + +#: mods/replacer/blabla.lua:128 +msgid "Is wearing:" +msgstr "" + +#: mods/replacer/replacer/constrain.lua:59 +msgid "" +"Replacing nodes of type \"@1\" is not allowed on this server. Replacement " +"failed." +msgstr "" + +#: mods/replacer/replacer/constrain.lua:63 +msgid "Protected at @1" +msgstr "" + +#: mods/replacer/replacer/replacer.lua:140 +msgid "You have no further \"@1\". Replacement failed." +msgstr "" + +#: mods/replacer/replacer/replacer.lua:146 +msgid "Unknown node: \"@1\"" +msgstr "" + +#: mods/replacer/replacer/replacer.lua:150 +msgid "Unknown node to place: \"@1\"" +msgstr "" + +#: mods/replacer/replacer/replacer.lua:161 +msgid "Could not dig \"@1\" properly." +msgstr "" + +#: mods/replacer/replacer/replacer.lua:175 +msgid "Could not place \"@1\"." +msgstr "" + +#: mods/replacer/replacer/replacer.lua:242 +msgid "Error: \"@1\" is not a node." +msgstr "" + +#: mods/replacer/replacer/replacer.lua:468 +msgid "@1 nodes replaced." +msgstr "" + +#: mods/replacer/replacer/replacer.lua:507 +#: mods/replacer/replacer/replacer.lua:513 +msgid "Mode changed to @1: @2" +msgstr "" + +#: mods/replacer/replacer/replacer.lua:552 +msgid "Placing nodes of type \"@1\" is not allowed on this server." +msgstr "" + +#: mods/replacer/replacer/replacer.lua:652 +msgid "" +"Failed to set replacer to \"@1\". If there was one in your inventory, then " +"maybe." +msgstr "" + +#: mods/replacer/replacer/replacer.lua:663 +msgid "" +"Node replacement tool set to:\n" +"@1." +msgstr "" + +#: mods/replacer/replacer/replacer.lua:685 +msgid "Bulk Placer Tool" +msgstr "" diff --git a/mods/sbz_area_containers/locale/sbz_area_containers.pot b/mods/sbz_area_containers/locale/sbz_area_containers.pot new file mode 100644 index 00000000..1b63c3c3 --- /dev/null +++ b/mods/sbz_area_containers/locale/sbz_area_containers.pot @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_area_containers/init.lua:168 +#, lua-format +msgid "You may only have %s areas" +msgstr "" + +#: mods/sbz_area_containers/init.lua:320 +msgid "Room Container Entry Point" +msgstr "" + +#: mods/sbz_area_containers/init.lua:321 +msgid "" +"This block decides where you spawn in a room.\n" +"Right-click to exit a room.\n" +"If you have multiple of these in a room, one of them will be chosen." +msgstr "" + +#: mods/sbz_area_containers/init.lua:340 +msgid "Room Container" +msgstr "" diff --git a/mods/sbz_armor/locale/sbz_armor.pot b/mods/sbz_armor/locale/sbz_armor.pot new file mode 100644 index 00000000..5e4db629 --- /dev/null +++ b/mods/sbz_armor/locale/sbz_armor.pot @@ -0,0 +1,26 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_armor/armor_types.lua:25 +msgid "Creative " +msgstr "" + +#: mods/sbz_armor/armor_types.lua:98 +msgid "Phlogiston " +msgstr "" diff --git a/mods/sbz_base/locale/sbz_base.pot b/mods/sbz_base/locale/sbz_base.pot new file mode 100644 index 00000000..aa0fca3a --- /dev/null +++ b/mods/sbz_base/locale/sbz_base.pot @@ -0,0 +1,110 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_base/init.lua:51 +msgid "Skyblock: Zero" +msgstr "" + +#: mods/sbz_base/init.lua:52 +msgid "Release" +msgstr "" + +#: mods/sbz_base/init.lua:62 +msgid "Skyblock: Zero (Release" +msgstr "" + +#: mods/sbz_base/init.lua:168 +msgid "You already had a questbook before joining." +msgstr "" + +#: mods/sbz_base/init.lua:173 +msgid "Your inventory is full. Can't give you a questbook. Use /qb" +msgstr "" + +#: mods/sbz_base/init.lua:189 +msgid "Go back to the core." +msgstr "" + +#: mods/sbz_base/init.lua:193 +msgid "Sent you back to the Core." +msgstr "" + +#: mods/sbz_base/init.lua:249 +msgid "Adjusts volume of background music" +msgstr "" + +#: mods/sbz_base/init.lua:254 +msgid "Needs to be a number between 0 and 200, 100 is the default volume." +msgstr "" + +#: mods/sbz_base/init.lua:263 +msgid "Set the background volume to @1." +msgstr "" + +#: mods/sbz_base/init.lua:273 +msgid "‼ reminder: If you fall off, use /core to teleport back to the core." +msgstr "" + +#: mods/sbz_base/init.lua:274 +msgid "‼ reminder: If lose your Quest Book, use /qb to get it back." +msgstr "" + +#: mods/sbz_base/init.lua:361 +msgid "Kills you." +msgstr "" + +#: mods/sbz_base/init.lua:374 +msgid "You talk. But there is no one to listen." +msgstr "" + +#: mods/sbz_base/init.lua:781 +msgid "Skyblock: Zero's Base Mod has finished loading." +msgstr "" + +#: mods/sbz_base/legacy.lua:14 +msgid "Deprecated item, throw away" +msgstr "" + +#: mods/sbz_base/playtime_and_afk.lua:91 +msgid "Shows your, or other player's playtime." +msgstr "" + +#: mods/sbz_base/playtime_and_afk.lua:99 +#, lua-format +msgid "" +"%s's playtime: %s\n" +"%s's afk time: %s\n" +"%s's afk and playtime: %s" +msgstr "" + +#: mods/sbz_base/playtime_and_afk.lua:108 +msgid "Set your status to afk (away from keyboard)" +msgstr "" + +#: mods/sbz_base/playtime_and_afk.lua:113 +msgid "You became afk" +msgstr "" + +#: mods/sbz_base/space_movement.lua:7 +msgid "Allows toggling space movement" +msgstr "" + +#: mods/sbz_base/space_movement.lua:24 +msgid "Toggle space movement" +msgstr "" diff --git a/mods/sbz_bio/locale/sbz_bio.pot b/mods/sbz_bio/locale/sbz_bio.pot new file mode 100644 index 00000000..b9b1aec0 --- /dev/null +++ b/mods/sbz_bio/locale/sbz_bio.pot @@ -0,0 +1,196 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_bio/colorium_emitter.lua:45 +msgid "Colorium Emitter" +msgstr "" + +#: mods/sbz_bio/fertilizer.lua:46 +msgid "Fertilizer" +msgstr "" + +#: mods/sbz_bio/fire.lua:28 +msgid "Fire" +msgstr "" + +#: mods/sbz_bio/fire.lua:96 +msgid "Igniter" +msgstr "" + +#: mods/sbz_bio/habitat.lua:207 +msgid "Habitat Regulator" +msgstr "" + +#: mods/sbz_bio/habitat.lua:233 +msgid "CO2 Compactor" +msgstr "" + +#: mods/sbz_bio/habitat.lua:235 +msgid "" +"Stores 30 CO₂. Habitat regulator doesn't consider it a wall, but it can be " +"passed through" +msgstr "" + +#: mods/sbz_bio/misc.lua:4 +msgid "Burner" +msgstr "" + +#: mods/sbz_bio/misc.lua:72 +msgid "Airlock" +msgstr "" + +#: mods/sbz_bio/misc.lua:99 +msgid "Basic Neutron Emitter" +msgstr "" + +#: mods/sbz_bio/moss.lua:4 +msgid "Moss" +msgstr "" + +#: mods/sbz_bio/moss.lua:46 +msgid "Algae" +msgstr "" + +#: mods/sbz_bio/paper.lua:4 +msgid "Paper" +msgstr "" + +#: mods/sbz_bio/paper.lua:60 +msgid "Book" +msgstr "" + +#: mods/sbz_bio/plants.lua:272 +msgid "Pyrograss Plant" +msgstr "" + +#: mods/sbz_bio/plants.lua:288 +msgid "Pyrograss" +msgstr "" + +#: mods/sbz_bio/plants.lua:322 +msgid "Razorgrass Plant" +msgstr "" + +#: mods/sbz_bio/plants.lua:354 +msgid "Razorgrass" +msgstr "" + +#: mods/sbz_bio/plants.lua:380 +msgid "Cleargrass Plant" +msgstr "" + +#: mods/sbz_bio/plants.lua:402 +msgid "Cleargrass" +msgstr "" + +#: mods/sbz_bio/plants.lua:418 +msgid "Stemfruit Plant" +msgstr "" + +#: mods/sbz_bio/plants.lua:430 +msgid "Stemfruit" +msgstr "" + +#: mods/sbz_bio/plants.lua:458 +msgid "Warpshroom Plant" +msgstr "" + +#: mods/sbz_bio/plants.lua:491 +msgid "Warpshroom" +msgstr "" + +#: mods/sbz_bio/plants.lua:546 +msgid "Shockshroom Plant" +msgstr "" + +#: mods/sbz_bio/plants.lua:562 +msgid "Shockshroom" +msgstr "" + +#: mods/sbz_bio/plants.lua:588 +msgid "Fiberweed" +msgstr "" + +#: mods/sbz_bio/potions.lua:4 +msgid "Potion of Inverting" +msgstr "" + +#: mods/sbz_bio/potions.lua:24 +msgid "Ability: Drink (Left-Click)" +msgstr "" + +#: mods/sbz_bio/potions.lua:24 +msgid " Inverts your screen colors." +msgstr "" + +#: mods/sbz_bio/soil.lua:4 +msgid "Dirt" +msgstr "" + +#: mods/sbz_bio/soil.lua:53 +msgid "Fertilized Dirt" +msgstr "" + +#: mods/sbz_bio/soil.lua:66 +msgid "Plants grow 2x faster than on dirt, on this soil." +msgstr "" + +#: mods/sbz_bio/soil.lua:67 +msgid "Fertilizer can't sprout plants on this soil." +msgstr "" + +#: mods/sbz_bio/soil.lua:87 +msgid "Dirt With Pyrograss" +msgstr "" + +#: mods/sbz_bio/soil.lua:117 +msgid "Electric Soil" +msgstr "" + +#: mods/sbz_bio/trees.lua:218 +msgid "Colorium Tree" +msgstr "" + +#: mods/sbz_bio/trees.lua:243 +msgid "Colorium Leaves" +msgstr "" + +#: mods/sbz_bio/trees.lua:308 +msgid "Colorium Sapling" +msgstr "" + +#: mods/sbz_bio/trees.lua:340 +msgid "Giant Colorium Sapling" +msgstr "" + +#: mods/sbz_bio/trees.lua:391 +msgid "Colorium Planks" +msgstr "" + +#: mods/sbz_bio/trees.lua:437 +msgid "Colorium Tree Core" +msgstr "" + +#: mods/sbz_bio/trees.lua:502 +msgid "DNA Extractor" +msgstr "" + +#: mods/sbz_bio/uses.lua:4 +msgid "Rope" +msgstr "" diff --git a/mods/sbz_chem/locale/sbz_chem.pot b/mods/sbz_chem/locale/sbz_chem.pot new file mode 100644 index 00000000..b527663e --- /dev/null +++ b/mods/sbz_chem/locale/sbz_chem.pot @@ -0,0 +1,142 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_chem/alloy_furnace.lua:5 +msgid "Alloying" +msgstr "" + +#: mods/sbz_chem/alloy_furnace.lua:32 +msgid "Simple Alloy Furnace" +msgstr "" + +#: mods/sbz_chem/centrifuge.lua:5 +msgid "Separating" +msgstr "" + +#: mods/sbz_chem/centrifuge.lua:128 +msgid "Centrifuge" +msgstr "" + +#: mods/sbz_chem/compressor.lua:5 +msgid "Compressing" +msgstr "" + +#: mods/sbz_chem/compressor.lua:24 +msgid "Compressor" +msgstr "" + +#: mods/sbz_chem/crusher.lua:5 +msgid "Crushing" +msgstr "" + +#: mods/sbz_chem/crusher.lua:21 +msgid "Enhanced Pebble" +msgstr "" + +#: mods/sbz_chem/crusher.lua:64 +msgid "Crusher" +msgstr "" + +#: mods/sbz_chem/crystal_grower.lua:5 +msgid "Crystal Growing" +msgstr "" + +#: mods/sbz_chem/crystal_grower.lua:71 +msgid "Crystal Grower" +msgstr "" + +#: mods/sbz_chem/decay_accel.lua:52 +msgid "Decay Accelerator" +msgstr "" + +#: mods/sbz_chem/decay_chains.lua:12 +msgid "Decay Accelerating" +msgstr "" + +#: mods/sbz_chem/engraver.lua:17 +msgid "Engraving" +msgstr "" + +#: mods/sbz_chem/engraver.lua:23 +msgid "Engraver" +msgstr "" + +#: mods/sbz_chem/fluids.lua:39 +msgid "Empty Fluid Cell (Empty)" +msgstr "" + +#: mods/sbz_chem/fluids.lua:77 +msgid "Water Fluid Cell (H₂O)" +msgstr "" + +#: mods/sbz_chem/hpef.lua:15 +msgid "High Power Electric Furnace" +msgstr "" + +#: mods/sbz_chem/melter_cooler.lua:14 +msgid "Melting" +msgstr "" + +#: mods/sbz_chem/melter_cooler.lua:22 +msgid "Cooling" +msgstr "" + +#: mods/sbz_chem/melter_cooler.lua:51 +msgid "Melter" +msgstr "" + +#: mods/sbz_chem/melter_cooler.lua:151 +msgid "Cooler" +msgstr "" + +#: mods/sbz_chem/pebble_enhancer.lua:5 +msgid "Enhancing" +msgstr "" + +#: mods/sbz_chem/pebble_enhancer.lua:19 +msgid "Pebble Enhancer" +msgstr "" + +#: mods/sbz_chem/radiation.lua:222 +msgid "radon" +msgstr "" + +#: mods/sbz_chem/radiation.lua:322 +msgid "bad water, unhealthy even" +msgstr "" + +#: mods/sbz_chem/reactor.lua:7 +msgid "Thorium Fuel Rod" +msgstr "" + +#: mods/sbz_chem/reactor.lua:19 +msgid "Uranium Fuel Rod" +msgstr "" + +#: mods/sbz_chem/reactor.lua:31 +msgid "Plutonium Fuel Rod" +msgstr "" + +#: mods/sbz_chem/reactor.lua:69 +msgid "Nuclear Reactor" +msgstr "" + +#: mods/sbz_chem/reactor.lua:245 +msgid "X-ray Emitter" +msgstr "" diff --git a/mods/sbz_decor/locale/sbz_decor.pot b/mods/sbz_decor/locale/sbz_decor.pot new file mode 100644 index 00000000..08a75534 --- /dev/null +++ b/mods/sbz_decor/locale/sbz_decor.pot @@ -0,0 +1,66 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_decor/cnc.lua:47 +msgid "CNC Machine" +msgstr "" + +#: mods/sbz_decor/init.lua:6 +msgid "Photon Lamp" +msgstr "" + +#: mods/sbz_decor/init.lua:43 +msgid "Factory Floor" +msgstr "" + +#: mods/sbz_decor/init.lua:76 +msgid "Factory Floor (Tiled)" +msgstr "" + +#: mods/sbz_decor/init.lua:104 +msgid "Factory Ventilator" +msgstr "" + +#: mods/sbz_decor/init.lua:154 +msgid "Factory Warning" +msgstr "" + +#: mods/sbz_decor/init.lua:170 +msgid "Mystery Terrarium" +msgstr "" + +#: mods/sbz_decor/init.lua:188 +msgid "Large Server Rack" +msgstr "" + +#: mods/sbz_decor/init.lua:246 +msgid "Matter Ladder" +msgstr "" + +#: mods/sbz_decor/init.lua:290 +msgid "Antimatter Ladder" +msgstr "" + +#: mods/sbz_decor/signs.lua:4 +msgid "Antimatter Sign" +msgstr "" + +#: mods/sbz_decor/signs.lua:26 +msgid "Matter Sign" +msgstr "" diff --git a/mods/sbz_devtools/locale/sbz_devtools.pot b/mods/sbz_devtools/locale/sbz_devtools.pot new file mode 100644 index 00000000..39b5b671 --- /dev/null +++ b/mods/sbz_devtools/locale/sbz_devtools.pot @@ -0,0 +1,137 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: mods/sbz_devtools/init.lua:6 +msgid "Gives achievements - for debugging only" +msgstr "" + +#: mods/sbz_devtools/init.lua:15 +msgid "Gave you all achievements" +msgstr "" + +#: mods/sbz_devtools/init.lua:18 +msgid "Gave you the achievement with the name " +msgstr "" + +#: mods/sbz_devtools/init.lua:24 +msgid "Revoke an achievement - for debugging only" +msgstr "" + +#: mods/sbz_devtools/init.lua:33 +msgid "Revoked all achievements" +msgstr "" + +#: mods/sbz_devtools/init.lua:36 +msgid "Revoked the achievement with the name " +msgstr "" + +#: mods/sbz_devtools/init.lua:42 +msgid "Set hotbar slot count - for debugging only" +msgstr "" + +#: mods/sbz_devtools/init.lua:52 +msgid "Hotbar slot count set to " +msgstr "" + +#: mods/sbz_devtools/init.lua:54 mods/sbz_devtools/init.lua:81 +msgid "Player not found." +msgstr "" + +#: mods/sbz_devtools/init.lua:60 +msgid "Spawn a 10x10 platform below the player - for debugging only" +msgstr "" + +#: mods/sbz_devtools/init.lua:79 +msgid "Platform spawned." +msgstr "" + +#: mods/sbz_devtools/init.lua:87 +msgid "" +"Get the 8 closest unique nodes within a distance of 32 and receive them as " +"items - for debugging only" +msgstr "" + +#: mods/sbz_devtools/init.lua:92 mods/sbz_devtools/init.lua:157 +#: mods/sbz_devtools/init.lua:184 mods/sbz_devtools/init.lua:198 +#: mods/sbz_devtools/init.lua:216 mods/sbz_devtools/init.lua:235 +msgid "Player not found!" +msgstr "" + +#: mods/sbz_devtools/init.lua:143 +msgid "No unique nodes found within 32 blocks." +msgstr "" + +#: mods/sbz_devtools/init.lua:146 +msgid "Given @1 unique node." +msgid_plural "Given @2 unique nodes." +msgstr[0] "" +msgstr[1] "" + +#: mods/sbz_devtools/init.lua:152 +msgid "Clears the player's inventory - for debugging only" +msgstr "" + +#: mods/sbz_devtools/init.lua:164 +msgid "Inventory cleared." +msgstr "" + +#: mods/sbz_devtools/init.lua:169 +msgid "Enables/Disables all lua sandboxing" +msgstr "" + +#: mods/sbz_devtools/init.lua:179 +msgid "Makes it day only for you" +msgstr "" + +#: mods/sbz_devtools/init.lua:193 +msgid "" +"Fake a craft, used for quest testing, param should be an item name or " +"\"item\" to specify wielded item's name" +msgstr "" + +#: mods/sbz_devtools/init.lua:210 +msgid "Re-generate a mapblock (one that you are standing on)" +msgstr "" + +#: mods/sbz_devtools/init.lua:223 +msgid "Area re-generated!" +msgstr "" + +#: mods/sbz_devtools/init.lua:229 +msgid "" +"Sends you all the mapblocks in the radius. RADIUS IS IN MAPBLOCKS!! may not " +"work... in singleplayer at least" +msgstr "" + +#: mods/sbz_devtools/init.lua:248 +msgid "Area sent!" +msgstr "" + +#: mods/sbz_devtools/init.lua:252 +msgid "Toggles making habitats fast, don't use this in a server" +msgstr "" + +#: mods/sbz_devtools/init.lua:261 +msgid "Toggle pvp, NEEDS SERVER RESTART, bad idea to use if you aren't a dev" +msgstr "" + +#: mods/sbz_devtools/init.lua:270 +msgid "Test rain particles " +msgstr "" diff --git a/mods/sbz_instatube/locale/sbz_instatube.pot b/mods/sbz_instatube/locale/sbz_instatube.pot new file mode 100644 index 00000000..40f33dfc --- /dev/null +++ b/mods/sbz_instatube/locale/sbz_instatube.pot @@ -0,0 +1,78 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_instatube/init.lua:310 +msgid "Instatube" +msgstr "" + +#: mods/sbz_instatube/init.lua:357 +msgid "One Way Instatube" +msgstr "" + +#: mods/sbz_instatube/init.lua:413 +msgid "Instatube Item Filter" +msgstr "" + +#: mods/sbz_instatube/init.lua:517 +msgid "High Priority Instatube" +msgstr "" + +#: mods/sbz_instatube/init.lua:563 +msgid "Low Priority Instatube" +msgstr "" + +#: mods/sbz_instatube/init.lua:625 +msgid "Teleport Instatube" +msgstr "" + +#: mods/sbz_instatube/init.lua:706 +msgid "Randomized Input Instatube" +msgstr "" + +#: mods/sbz_instatube/init.lua:751 +msgid "Cycling Input Instatube" +msgstr "" + +#: mods/sbz_instatube/init.lua:856 +msgid "Something went wrong." +msgstr "" + +#: mods/sbz_instatube/init.lua:861 +msgid "That network no longer exists" +msgstr "" + +#: mods/sbz_instatube/init.lua:886 +msgid "The network you were looking at no longer exists" +msgstr "" + +#: mods/sbz_instatube/init.lua:914 +msgid "Instatube Debug Tool" +msgstr "" + +#: mods/sbz_instatube/init.lua:916 +msgid "Shows all machines connected to instatube" +msgstr "" + +#: mods/sbz_instatube/init.lua:926 +msgid "No instatube networks found." +msgstr "" + +#: mods/sbz_instatube/recipes.lua:5 +msgid "Instantinium" +msgstr "" diff --git a/mods/sbz_logic/locale/sbz_logic.pot b/mods/sbz_logic/locale/sbz_logic.pot new file mode 100644 index 00000000..99d06a48 --- /dev/null +++ b/mods/sbz_logic/locale/sbz_logic.pot @@ -0,0 +1,113 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_logic/code_disks.lua:6 +msgid "Empty Data Disk" +msgstr "" + +#: mods/sbz_logic/code_disks.lua:8 +msgid "Can hold 20 kilobytes." +msgstr "" + +#: mods/sbz_logic/code_disks.lua:9 +msgid "Can be configured to override editor or normal code on use." +msgstr "" + +#: mods/sbz_logic/code_disks.lua:10 +msgid "Insert into a luacontroller to configure" +msgstr "" + +#: mods/sbz_logic/code_disks.lua:53 +msgid "System Code Disk - " +msgstr "" + +#: mods/sbz_logic/init.lua:29 +msgid "Lua Controller" +msgstr "" + +#: mods/sbz_logic/init.lua:32 +msgid "The most complex block in this game." +msgstr "" + +#: mods/sbz_logic/init.lua:33 +msgid "No like actually... it might be" +msgstr "" + +#: mods/sbz_logic/init.lua:34 +msgid "Punch with the basic editor disk to get started." +msgstr "" + +#: mods/sbz_logic/knowledge.lua:99 +msgid "Knowledge Station" +msgstr "" + +#: mods/sbz_logic/link_tool.lua:90 +msgid "Can't link" +msgstr "" + +#: mods/sbz_logic/link_tool.lua:93 +msgid "Luacontroller successfully linked to the luacontroller linking tool!" +msgstr "" + +#: mods/sbz_logic/link_tool.lua:99 +msgid "" +"Link is invalid, please link the luacontroller linker to a luacontroller " +"again." +msgstr "" + +#: mods/sbz_logic/link_tool.lua:122 +msgid "The luacontroller doesn't have a linking upgrade." +msgstr "" + +#: mods/sbz_logic/link_tool.lua:127 +msgid "Outside of the radius" +msgstr "" + +#: mods/sbz_logic/link_tool.lua:133 +msgid "You need to set a name first (Left click)" +msgstr "" + +#: mods/sbz_logic/link_tool.lua:195 mods/sbz_logic/link_tool.lua:196 +msgid "Luacontroller Linker" +msgstr "" + +#: mods/sbz_logic/link_tool.lua:198 +msgid "Right click: ask for a name, if a block is pointed to, link the block" +msgstr "" + +#: mods/sbz_logic/link_tool.lua:199 +msgid "Left click: use the previous name, and link the block" +msgstr "" + +#: mods/sbz_logic/link_tool.lua:200 +msgid "Aux1 + right click/left click: link to that luacontroller" +msgstr "" + +#: mods/sbz_logic/link_tool.lua:201 +msgid "" +"If you hold it, it should show all the links and the luacontroller's radius" +msgstr "" + +#: mods/sbz_logic/upgrades.lua:11 +msgid "Logic Upgrade Template" +msgstr "" + +#: mods/sbz_logic/upgrades.lua:39 +msgid "Linking Upgrade" +msgstr "" diff --git a/mods/sbz_logic_devices/locale/sbz_logic_devices.pot b/mods/sbz_logic_devices/locale/sbz_logic_devices.pot new file mode 100644 index 00000000..d27e42e5 --- /dev/null +++ b/mods/sbz_logic_devices/locale/sbz_logic_devices.pot @@ -0,0 +1,112 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_logic_devices/builder.lua:155 +msgid "Lua Builder" +msgstr "" + +#: mods/sbz_logic_devices/builder.lua:157 +msgid "A way for lua controllers to interact with the world." +msgstr "" + +#: mods/sbz_logic_devices/builder.lua:158 +msgid "Can build/break/dig/punch/see 50 nodes every 0.25 seconds..." +msgstr "" + +#: mods/sbz_logic_devices/button.lua:4 +msgid "Logic Button" +msgstr "" + +#: mods/sbz_logic_devices/button.lua:69 +msgid "Logic Toggle" +msgstr "" + +#: mods/sbz_logic_devices/formspec_screen.lua:5 +msgid "Formspec Screen" +msgstr "" + +#: mods/sbz_logic_devices/gpu.lua:781 +msgid "GPU" +msgstr "" + +#: mods/sbz_logic_devices/hologram_projector.lua:543 +msgid "Hologram Projector" +msgstr "" + +#: mods/sbz_logic_devices/memory_controller.lua:21 +msgid "Memory Controller" +msgstr "" + +#: mods/sbz_logic_devices/memory_controller.lua:23 +msgid "Holds @1 MB" +msgstr "" + +#: mods/sbz_logic_devices/memory_controller.lua:24 +msgid "Capable of compressing data" +msgstr "" + +#: mods/sbz_logic_devices/memory_controller.lua:25 +msgid "Limited to @1 ms of lag per second" +msgstr "" + +#: mods/sbz_logic_devices/meteorite_attractor.lua:6 +msgid "Luanium Meteorite Attractor" +msgstr "" + +#: mods/sbz_logic_devices/mscreen.lua:112 +msgid "Matrix Screen" +msgstr "" + +#: mods/sbz_logic_devices/mscreen.lua:114 +msgid "Named that because it accepts a 2D matrix." +msgstr "" + +#: mods/sbz_logic_devices/mscreen.lua:115 +msgid "" +"Ok I just realised that techage had the exact same name, for a very similar " +"thing... lol,\n" +" but yeah, this was forked from digiscreen. (But made better :>)" +msgstr "" + +#: mods/sbz_logic_devices/mscreen.lua:116 +msgid "" +"You can put a backlight behind... to... yea... have the screen be brighter" +msgstr "" + +#: mods/sbz_logic_devices/nic.lua:11 +msgid "" +"If the server has priv locked the NIC, this priv makes you able to place the " +"thing." +msgstr "" + +#: mods/sbz_logic_devices/nic.lua:17 +msgid "Logic NIC" +msgstr "" + +#: mods/sbz_logic_devices/nodeDB.lua:10 +msgid "Node DB" +msgstr "" + +#: mods/sbz_logic_devices/noteblock.lua:9 +msgid "Note Block" +msgstr "" + +#: mods/sbz_logic_devices/object_detector.lua:6 +msgid "Object/Player Detector" +msgstr "" diff --git a/mods/sbz_meteorites/locale/sbz_meteorites.pot b/mods/sbz_meteorites/locale/sbz_meteorites.pot new file mode 100644 index 00000000..399e05c9 --- /dev/null +++ b/mods/sbz_meteorites/locale/sbz_meteorites.pot @@ -0,0 +1,74 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_meteorites/attractor.lua:112 +msgid "Gravitational Attractor" +msgstr "" + +#: mods/sbz_meteorites/attractor.lua:142 +msgid "Gravitational Repulsor" +msgstr "" + +#: mods/sbz_meteorites/init.lua:32 +msgid "Attempts to spawn a meteorite somewhere." +msgstr "" + +#: mods/sbz_meteorites/init.lua:55 +msgid "Failed to spawn meteorite." +msgstr "" + +#: mods/sbz_meteorites/init.lua:60 +msgid "Spawned meteorite at " +msgstr "" + +#: mods/sbz_meteorites/init.lua:62 +msgid "Spawned meteorites." +msgstr "" + +#: mods/sbz_meteorites/meteorite_maker.lua:161 +msgid "Meteorite Maker" +msgstr "" + +#: mods/sbz_meteorites/nodes.lua:8 +msgid "Meteoric Matter" +msgstr "" + +#: mods/sbz_meteorites/nodes.lua:41 +msgid "Meteoric Antimatter" +msgstr "" + +#: mods/sbz_meteorites/nodes.lua:59 +msgid "Meteoric Emittrium" +msgstr "" + +#: mods/sbz_meteorites/nodes.lua:84 +msgid "Meteoric Metal" +msgstr "" + +#: mods/sbz_meteorites/nodes.lua:97 +msgid "Neutronium" +msgstr "" + +#: mods/sbz_meteorites/nodes.lua:105 +msgid "Antineutronium" +msgstr "" + +#: mods/sbz_meteorites/visualiser.lua:5 +msgid "Meteorite Radar" +msgstr "" diff --git a/mods/sbz_multiblocks/locale/sbz_multiblocks.pot b/mods/sbz_multiblocks/locale/sbz_multiblocks.pot new file mode 100644 index 00000000..d673a172 --- /dev/null +++ b/mods/sbz_multiblocks/locale/sbz_multiblocks.pot @@ -0,0 +1,62 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_multiblocks/blast_furnace.lua:8 +msgid "Blast Furnace" +msgstr "" + +#: mods/sbz_multiblocks/blast_furnace.lua:165 +msgid "Blast Furnace Controller" +msgstr "" + +#: mods/sbz_multiblocks/blast_furnace.lua:377 +msgid "Blast Furnace Casing" +msgstr "" + +#: mods/sbz_multiblocks/blast_furnace.lua:397 +msgid "Blast Furnace Heater" +msgstr "" + +#: mods/sbz_multiblocks/blast_furnace.lua:424 +msgid "Blast Furnace Power Port" +msgstr "" + +#: mods/sbz_multiblocks/blast_furnace.lua:478 +msgid "Blast Furnace Item Input" +msgstr "" + +#: mods/sbz_multiblocks/blast_furnace.lua:546 +msgid "Blast Furnace Item Output" +msgstr "" + +#: mods/sbz_multiblocks/init.lua:245 +msgid "Build out a multiblock controller's build plan" +msgstr "" + +#: mods/sbz_multiblocks/large_liquid_storage.lua:147 +msgid "Large Liquid Storage Controller" +msgstr "" + +#: mods/sbz_multiblocks/large_liquid_storage.lua:250 +msgid "Large Liquid Storage Casing" +msgstr "" + +#: mods/sbz_multiblocks/large_liquid_storage.lua:276 +msgid "Large Liquid Storage Edge Casing" +msgstr "" diff --git a/mods/sbz_pipeworks/locale/sbz_pipeworks.pot b/mods/sbz_pipeworks/locale/sbz_pipeworks.pot new file mode 100644 index 00000000..c8578dfe --- /dev/null +++ b/mods/sbz_pipeworks/locale/sbz_pipeworks.pot @@ -0,0 +1,167 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_pipeworks/autocrafter.lua:23 +msgid "Unknown item" +msgstr "" + +#: mods/sbz_pipeworks/autocrafter.lua:264 +msgid "unconfigured Autocrafter: unknown recipe" +msgstr "" + +#: mods/sbz_pipeworks/autocrafter.lua:359 +msgid "unconfigured Autocrafter" +msgstr "" + +#: mods/sbz_pipeworks/autocrafter.lua:362 +msgid "No crafting processor." +msgstr "" + +#: mods/sbz_pipeworks/autocrafter.lua:367 +msgid "'@1' Autocrafter (@2)" +msgstr "" + +#: mods/sbz_pipeworks/autocrafter.lua:381 +msgid "Autocrafter" +msgstr "" + +#: mods/sbz_pipeworks/basic_blocks.lua:57 +msgid "Item Sorter" +msgstr "" + +#: mods/sbz_pipeworks/basic_blocks.lua:195 +msgid "Item Void" +msgstr "" + +#: mods/sbz_pipeworks/basic_tubes.lua:4 +msgid "Basic Tube" +msgstr "" + +#: mods/sbz_pipeworks/basic_tubes.lua:25 +msgid "Accelerating Tube" +msgstr "" + +#: mods/sbz_pipeworks/basic_tubes.lua:60 +msgid "One Direction Tube" +msgstr "" + +#: mods/sbz_pipeworks/basic_tubes.lua:137 +msgid "High Priority Tube" +msgstr "" + +#: mods/sbz_pipeworks/basic_tubes.lua:161 +msgid "Low Priority Tube" +msgstr "" + +#: mods/sbz_pipeworks/basic_tubes.lua:189 +msgid "One-Way Tube" +msgstr "" + +#: mods/sbz_pipeworks/basic_tubes.lua:250 +msgid "Crossing Tube" +msgstr "" + +#: mods/sbz_pipeworks/basic_tubes.lua:278 +msgid "Broken Tube" +msgstr "" + +#: mods/sbz_pipeworks/basic_tubes.lua:315 +msgid "" +"Broken tubes may be a bit sharp. Maybe try hitting it with a robotic arm?" +msgstr "" + +#: mods/sbz_pipeworks/basic_tubes.lua:335 +msgid "This tube cannot be repaired." +msgstr "" + +#: mods/sbz_pipeworks/common.lua:31 +msgid "Allow splitting incoming stacks from tubes" +msgstr "" + +#: mods/sbz_pipeworks/filter_injector.lua:46 +msgid "Automatic Filter-Injector" +msgstr "" + +#: mods/sbz_pipeworks/luaentity.lua:440 +msgid "Removes all tube entities, use when it lags" +msgstr "" + +#: mods/sbz_pipeworks/pattern_storinator.lua:30 +msgid "Pattern Storinator" +msgstr "" + +#: mods/sbz_pipeworks/teleport_tube.lua:129 +msgid "Channels are public by default" +msgstr "" + +#: mods/sbz_pipeworks/teleport_tube.lua:130 +msgid "Use : for fully private channels" +msgstr "" + +#: mods/sbz_pipeworks/teleport_tube.lua:131 +msgid "Use ; for private receivers" +msgstr "" + +#: mods/sbz_pipeworks/teleport_tube.lua:136 +msgid "Teleporting Tube" +msgstr "" + +#: mods/sbz_pipeworks/teleport_tube.lua:137 +msgid "Channel" +msgstr "" + +#: mods/sbz_pipeworks/teleport_tube.lua:138 +msgid "Save" +msgstr "" + +#: mods/sbz_pipeworks/teleport_tube.lua:139 +msgid "Receive" +msgstr "" + +#: mods/sbz_pipeworks/teleport_tube.lua:147 +msgid "Unconfigured Teleport Tube" +msgstr "" + +#: mods/sbz_pipeworks/teleport_tube.lua:150 +msgid "Teleport Tube @1 on '@2'" +msgstr "" + +#: mods/sbz_pipeworks/teleport_tube.lua:173 +msgid "Sorry, channel '@1' is reserved for exclusive use by @2" +msgstr "" + +#: mods/sbz_pipeworks/teleport_tube.lua:177 +msgid "Sorry, receiving from channel '@1' is reserved for @2" +msgstr "" + +#: mods/sbz_pipeworks/teleport_tube.lua:288 +msgid "Teleport Tube" +msgstr "" + +#: mods/sbz_pipeworks/wielder.lua:234 +msgid "Node Breaker" +msgstr "" + +#: mods/sbz_pipeworks/wielder.lua:296 +msgid "Deployer" +msgstr "" + +#: mods/sbz_pipeworks/wielder.lua:326 +msgid "Puncher" +msgstr "" diff --git a/mods/sbz_planets/locale/sbz_planets.pot b/mods/sbz_planets/locale/sbz_planets.pot new file mode 100644 index 00000000..f792cc2f --- /dev/null +++ b/mods/sbz_planets/locale/sbz_planets.pot @@ -0,0 +1,123 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_planets/orbs.lua:10 +msgid "Dwarf Orb" +msgstr "" + +#: mods/sbz_planets/orbs.lua:12 +msgid "" +"Used as a crafting replacement for matter annihilators, found naturally in " +"dwarf planets" +msgstr "" + +#: mods/sbz_planets/orbs.lua:29 +msgid "Dwarf Orb Ore" +msgstr "" + +#: mods/sbz_planets/orbs.lua:39 +msgid "Stone" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:50 +msgid "Marble" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:60 +msgid "Basalt" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:68 mods/sbz_planets/planet_nodes.lua:76 +msgid "Red Stone" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:83 +msgid "Thorium Ore" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:99 +msgid "Blue Stone" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:106 +msgid "Uranium Ore" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:127 +msgid "Granite" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:135 +msgid "Dead Core Piece" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:147 +msgid "Ice" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:156 +msgid "Ice Core Piece - deprecated" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:165 +msgid "Snow" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:197 +msgid "Snow layer" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:225 +msgid "Snowball" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:230 +msgid "Colorium Core Piece - Deprecated" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:241 +msgid "Not Water" +msgstr "" + +#: mods/sbz_planets/planet_nodes.lua:267 +msgid "Mapgen Sapling (I guess you just got an instant sapling. lol.)" +msgstr "" + +#: mods/sbz_planets/planet_teleporter.lua:6 +msgid "Teleports you to a planet. Insert a warp crystal to get teleported." +msgstr "" + +#: mods/sbz_planets/planet_teleporter.lua:7 +msgid "Planet Teleporter" +msgstr "" + +#: mods/sbz_planets/planet_teleporter.lua:15 +msgid "You must be holding a warp crystal for this to work." +msgstr "" + +#: mods/sbz_planets/planet_teleporter.lua:26 +msgid "" +"Oops, the crystal broke, please insert another one. [What actually happened " +"was that the planet teleporter tried to teleport you out of this world. " +"Hello if you are seeing this - you must be very lucky.]" +msgstr "" + +#: mods/sbz_planets/planet_teleporter.lua:34 +msgid "You have been teleported to the planet. Please wait and fall a bit." +msgstr "" diff --git a/mods/sbz_power/locale/sbz_power.pot b/mods/sbz_power/locale/sbz_power.pot new file mode 100644 index 00000000..97e83f12 --- /dev/null +++ b/mods/sbz_power/locale/sbz_power.pot @@ -0,0 +1,332 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: mods/sbz_power/batteries.lua:33 +msgid "Battery" +msgstr "" + +#: mods/sbz_power/batteries.lua:56 +msgid "Advanced Battery" +msgstr "" + +#: mods/sbz_power/batteries.lua:78 +msgid "Very Advanced Battery" +msgstr "" + +#: mods/sbz_power/batteries.lua:118 +msgid "Teleport Battery" +msgstr "" + +#: mods/sbz_power/batteries.lua:249 +msgid "Creative Power Generating Battery" +msgstr "" + +#: mods/sbz_power/batteries.lua:264 +msgid "Creative Battery" +msgstr "" + +#: mods/sbz_power/connectors.lua:6 mods/sbz_power/connectors.lua:52 +msgid "Connector" +msgstr "" + +#: mods/sbz_power/ele_fab.lua:52 mods/sbz_power/ele_fab.lua:103 +msgid "Ele Fab" +msgstr "" + +#: mods/sbz_power/emittrium_reactor.lua:32 +msgid "Reactor Shell" +msgstr "" + +#: mods/sbz_power/emittrium_reactor.lua:59 +msgid "Reactor Glass" +msgstr "" + +#: mods/sbz_power/emittrium_reactor.lua:89 +msgid "Reactor Emittrium Input" +msgstr "" + +#: mods/sbz_power/emittrium_reactor.lua:140 +msgid "Reactor Core" +msgstr "" + +#: mods/sbz_power/emittrium_reactor.lua:218 +msgid "Reactor Infoscreen" +msgstr "" + +#: mods/sbz_power/emittrium_reactor.lua:324 +msgid "Reactor Power Port" +msgstr "" + +#: mods/sbz_power/emittrium_reactor.lua:369 +msgid "Reactor Coolant Port" +msgstr "" + +#: mods/sbz_power/extractor.lua:15 +msgid "Simple Matter Extractor" +msgstr "" + +#: mods/sbz_power/extractor.lua:89 +msgid "Advanced Matter Extractor" +msgstr "" + +#: mods/sbz_power/fluid_transport.lua:54 +msgid "Fluid Pipe" +msgstr "" + +#: mods/sbz_power/fluid_transport.lua:205 +msgid "Fluid Pump" +msgstr "" + +#: mods/sbz_power/fluid_transport.lua:345 +msgid "Creative Pump" +msgstr "" + +#: mods/sbz_power/fluid_transport.lua:477 +msgid "Fluid Storage Tank" +msgstr "" + +#: mods/sbz_power/fluid_transport.lua:530 +msgid "Fluid Capturer" +msgstr "" + +#: mods/sbz_power/fluid_transport.lua:610 +msgid "Fluid Cell Filler" +msgstr "" + +#: mods/sbz_power/generator.lua:8 +msgid "Simple Charge Generator" +msgstr "" + +#: mods/sbz_power/generator.lua:123 +msgid "Simple Charged Field" +msgstr "" + +#: mods/sbz_power/generator.lua:238 +msgid "Charged Field Residue" +msgstr "" + +#: mods/sbz_power/generator.lua:267 +msgid "Solid Charged Field" +msgstr "" + +#: mods/sbz_power/generator.lua:290 +msgid "Starlight Collector" +msgstr "" + +#: mods/sbz_power/generator.lua:413 +msgid "Antimatter Generator" +msgstr "" + +#: mods/sbz_power/generator.lua:415 +msgid "Generates 600 power" +msgstr "" + +#: mods/sbz_power/generator.lua:416 +msgid "Needs 1 antimatter/s and 1 matter/s" +msgstr "" + +#: mods/sbz_power/generator.lua:612 +msgid "Creative Generator" +msgstr "" + +#: mods/sbz_power/infinite_storinator.lua:4 +msgid "Infinite Storinator (deprecated)" +msgstr "" + +#: mods/sbz_power/lights.lua:5 +msgid "Powered Lamp" +msgstr "" + +#: mods/sbz_power/lights.lua:28 +msgid "Funny air (YOU HACKER YOU!!!!)" +msgstr "" + +#: mods/sbz_power/lights.lua:94 +msgid "Super Powered Lamp" +msgstr "" + +#: mods/sbz_power/manual_crafter.lua:160 +msgid "Manual Crafter" +msgstr "" + +#: mods/sbz_power/misc.lua:4 +msgid "Phosphor" +msgstr "" + +#: mods/sbz_power/misc.lua:64 +msgid "Like clearobjects but only for items, and only quick" +msgstr "" + +#: mods/sbz_power/misc.lua:86 +msgid "Item Vacuum" +msgstr "" + +#: mods/sbz_power/phlogiston_fuser.lua:18 +msgid "Phlogiston Fuser" +msgstr "" + +#: mods/sbz_power/power_pipes.lua:27 +msgid "Emittrium Power Cable" +msgstr "" + +#: mods/sbz_power/power_pipes.lua:70 +msgid "Airtight Emittrium Power Cable" +msgstr "" + +#: mods/sbz_power/sensors/delayer.lua:4 +msgid "Delayer" +msgstr "" + +#: mods/sbz_power/sensors/gates.lua:46 +msgid "NOT gate" +msgstr "" + +#: mods/sbz_power/sensors/gates.lua:65 +msgid "Buffer gate" +msgstr "" + +#: mods/sbz_power/sensors/gates.lua:115 +msgid "OR gate" +msgstr "" + +#: mods/sbz_power/sensors/gates.lua:134 +msgid "NOR gate" +msgstr "" + +#: mods/sbz_power/sensors/gates.lua:153 +msgid "AND gate" +msgstr "" + +#: mods/sbz_power/sensors/gates.lua:172 +msgid "NAND gate" +msgstr "" + +#: mods/sbz_power/sensors/gates.lua:191 +msgid "XOR gate" +msgstr "" + +#: mods/sbz_power/sensors/gates.lua:210 +msgid "XNOR gate" +msgstr "" + +#: mods/sbz_power/sensors/gates.lua:237 +msgid "Machine Controller" +msgstr "" + +#: mods/sbz_power/sensors/item_sensor.lua:43 +msgid "Item Sensor" +msgstr "" + +#: mods/sbz_power/sensors/node_sensors.lua:50 +msgid "Light Sensor" +msgstr "" + +#: mods/sbz_power/sensors/node_sensors.lua:183 +msgid "Node Sensor" +msgstr "" + +#: mods/sbz_power/sensors/sensors_player_facing.lua:8 +msgid "Switch (" +msgstr "" + +#: mods/sbz_power/sensors/sensor_linker.lua:187 +msgid "Sensor Linker" +msgstr "" + +#: mods/sbz_power/sensors/sensor_linker.lua:189 +msgid "" +"Right click: asks for a name, if a block is pointed to, links to the to the " +"sensor." +msgstr "" + +#: mods/sbz_power/sensors/sensor_linker.lua:190 +msgid "" +"Left click: uses the previous name from when you right clicked, links it to " +"the sensor." +msgstr "" + +#: mods/sbz_power/sensors/sensor_linker.lua:191 +msgid "Aux1 + right click/left click: Links the tool to the sensor." +msgstr "" + +#: mods/sbz_power/sensors/sensor_linker.lua:192 +msgid "" +"If you hold it, it should show all the links and the sensor's linking radius." +msgstr "" + +#: mods/sbz_power/starlight_catcher.lua:26 +msgid "Starlight Catcher" +msgstr "" + +#: mods/sbz_power/starlight_catcher.lua:101 +msgid "Photon-Energy Converter" +msgstr "" + +#: mods/sbz_power/switching_station.lua:439 +msgid "[Switching Station] Network ID: " +msgstr "" + +#: mods/sbz_power/switching_station.lua:460 +msgid "Switching Station" +msgstr "" + +#: mods/sbz_power/switching_station.lua:587 +msgid "Toggles if switching stations are enabled or not" +msgstr "" + +#: mods/sbz_power/switching_station.lua:594 +msgid "Enabled switching stations" +msgstr "" + +#: mods/sbz_power/switching_station.lua:597 +msgid "Temporarily disabled switching stations." +msgstr "" + +#: mods/sbz_power/switching_station.lua:712 +msgid "" +"Teleports to the laggiest switching station, useful to diagnose issues with " +"skyblock zero on multiplayer." +msgstr "" + +#: mods/sbz_power/switching_station.lua:724 +msgid "Could not find a switching station like that" +msgstr "" + +#: mods/sbz_power/switching_station.lua:727 +msgid "Done" +msgstr "" + +#: mods/sbz_power/testnodes.lua:6 +msgid "Test machine" +msgstr "" + +#: mods/sbz_power/turret.lua:75 +msgid "Automatic Turret" +msgstr "" + +#: mods/sbz_power/turret.lua:79 +msgid "Shoots things like lasers." +msgstr "" + +#: mods/sbz_power/turret.lua:80 +msgid "Range: @1 node" +msgid_plural "Range: @1 nodes" +msgstr[0] "" +msgstr[1] "" diff --git a/mods/sbz_progression/locale/sbz_progression.pot b/mods/sbz_progression/locale/sbz_progression.pot new file mode 100644 index 00000000..c890df73 --- /dev/null +++ b/mods/sbz_progression/locale/sbz_progression.pot @@ -0,0 +1,100 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_progression/annoy.lua:15 +msgid "Lost your questbook? Use /qb to get it back." +msgstr "" + +#: mods/sbz_progression/annoy.lua:26 +msgid "Gives you a questbook if you don't have one." +msgstr "" + +#: mods/sbz_progression/annoy.lua:33 +msgid "You already have a Quest Book." +msgstr "" + +#: mods/sbz_progression/annoy.lua:37 +msgid "You have been given a Quest Book." +msgstr "" + +#: mods/sbz_progression/annoy.lua:39 +msgid "Your inventory is full." +msgstr "" + +#: mods/sbz_progression/init.lua:199 +msgid "You fell off the platform." +msgstr "" + +#: mods/sbz_progression/init.lua:212 +msgid "⌠ Crazy Rare Drop: @1 just dropped a Singularity Rune! ⌡" +msgstr "" + +#: mods/sbz_progression/questbook.lua:16 +msgid "@1 and @2" +msgstr "" + +#: mods/sbz_progression/questbook.lua:20 +msgid "@1, and @2" +msgstr "" + +#: mods/sbz_progression/questbook.lua:31 +msgid "Quest Completed: @1!" +msgstr "" + +#: mods/sbz_progression/questbook.lua:62 +msgid "Quest revoked: @1" +msgstr "" + +#: mods/sbz_progression/questbook.lua:202 +msgid "Quest List (✓ @1 / ► @2 / ✕ @3)" +msgstr "" + +#: mods/sbz_progression/questbook.lua:209 +msgid "Makes font larger" +msgstr "" + +#: mods/sbz_progression/questbook.lua:210 +msgid "Makes font smaller" +msgstr "" + +#: mods/sbz_progression/questbook.lua:248 +#: mods/sbz_progression/questbook.lua:276 +msgid "Complete @1 to unlock." +msgstr "" + +#: mods/sbz_progression/questbook.lua:252 +msgid "✔ Shhh... don't tell anyone :)" +msgstr "" + +#: mods/sbz_progression/questbook.lua:252 +msgid "✔ You have completed this Quest." +msgstr "" + +#: mods/sbz_progression/questbook.lua:253 +#: mods/sbz_progression/questbook.lua:266 +msgid "You have not completed this Quest." +msgstr "" + +#: mods/sbz_progression/questbook.lua:265 +msgid "✔ Shhh... don't tell anyone" +msgstr "" + +#: mods/sbz_progression/questbook.lua:376 +msgid "Quest Book" +msgstr "" diff --git a/mods/sbz_resources/locale/sbz_resources.pot b/mods/sbz_resources/locale/sbz_resources.pot new file mode 100644 index 00000000..9427510a --- /dev/null +++ b/mods/sbz_resources/locale/sbz_resources.pot @@ -0,0 +1,413 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: mods/sbz_resources/basic_resources.lua:4 +msgid "Punching" +msgstr "" + +#: mods/sbz_resources/basic_resources.lua:17 +msgid "Core Dust" +msgstr "" + +#: mods/sbz_resources/basic_resources.lua:39 +msgid "Matter Dust" +msgstr "" + +#: mods/sbz_resources/basic_resources.lua:59 +msgid "Charged Particle" +msgstr "" + +#: mods/sbz_resources/basic_resources.lua:81 +msgid "Antimatter Dust" +msgstr "" + +#: mods/sbz_resources/bomb.lua:47 +msgid "TNT Stick\n" +msgstr "" + +#: mods/sbz_resources/bomb.lua:47 +msgid "Ability: Throw (Left-Click)" +msgstr "" + +#: mods/sbz_resources/bomb.lua:47 +msgid " Throw the TNT Stick, which will explode when it lands." +msgstr "" + +#: mods/sbz_resources/bomb.lua:122 +msgid "TNT" +msgstr "" + +#: mods/sbz_resources/crystals.lua:61 +msgid "Warp Crystal" +msgstr "" + +#: mods/sbz_resources/crystals.lua:89 +msgid "Uranium Crystal" +msgstr "" + +#: mods/sbz_resources/crystals.lua:94 +msgid "Thorium Crystal" +msgstr "" + +#: mods/sbz_resources/crystals.lua:99 +msgid "Silicon Crystal" +msgstr "" + +#: mods/sbz_resources/crystals.lua:125 +msgid "Shock Crystal" +msgstr "" + +#: mods/sbz_resources/emitters.lua:60 +msgid "Emitter" +msgstr "" + +#: mods/sbz_resources/emitters.lua:79 +msgid "Movable Emitter" +msgstr "" + +#: mods/sbz_resources/emitters.lua:138 +msgid "Raw Emittrium" +msgstr "" + +#: mods/sbz_resources/emitters.lua:203 +msgid "The Core" +msgstr "" + +#: mods/sbz_resources/fireworks.lua:180 +msgid "Firework" +msgstr "" + +#: mods/sbz_resources/items.lua:4 +msgid "Matter Plate" +msgstr "" + +#: mods/sbz_resources/items.lua:21 +msgid "Antimatter Plate" +msgstr "" + +#: mods/sbz_resources/items.lua:38 +msgid "Conversion chamber (!! DEPRECATED !! Throw it away!)" +msgstr "" + +#: mods/sbz_resources/items.lua:45 +msgid "Pebble" +msgstr "" + +#: mods/sbz_resources/items.lua:62 +msgid "Angel's Wing" +msgstr "" + +#: mods/sbz_resources/items.lua:118 +msgid "Phlogiston" +msgstr "" + +#: mods/sbz_resources/items.lua:123 +msgid "Phlogiston Blob" +msgstr "" + +#: mods/sbz_resources/items.lua:143 +msgid "Heating Element" +msgstr "" + +#: mods/sbz_resources/items.lua:163 +msgid "Sensor Casing Plate" +msgstr "" + +#: mods/sbz_resources/jetpack.lua:35 +msgid "Jetpack" +msgstr "" + +#: mods/sbz_resources/laser.lua:9 +msgid "Laser" +msgstr "" + +#: mods/sbz_resources/laser.lua:10 +msgid "Ability: Fire (Left-Click)" +msgstr "" + +#: mods/sbz_resources/laser.lua:10 +msgid " Fire a laserbeam which destroys meteorites and damages players." +msgstr "" + +#: mods/sbz_resources/logic_craftitems.lua:4 +msgid "Luanium" +msgstr "" + +#: mods/sbz_resources/logic_craftitems.lua:10 +msgid "Lua Chip" +msgstr "" + +#: mods/sbz_resources/logic_craftitems.lua:15 +msgid "Ram Stick" +msgstr "" + +#: mods/sbz_resources/nodes.lua:6 +msgid "Matter Blob" +msgstr "" + +#: mods/sbz_resources/nodes.lua:33 +msgid "Matter Platform" +msgstr "" + +#: mods/sbz_resources/nodes.lua:82 +msgid "Antimatter Blob" +msgstr "" + +#: mods/sbz_resources/nodes.lua:134 +msgid "Antimatter Platform" +msgstr "" + +#: mods/sbz_resources/nodes.lua:166 +msgid "Emitter Imitator" +msgstr "" + +#: mods/sbz_resources/nodes.lua:217 +msgid "Stone" +msgstr "" + +#: mods/sbz_resources/nodes.lua:254 +msgid "Reinforced Matter" +msgstr "" + +#: mods/sbz_resources/nodes.lua:276 +msgid "Reinforced Antimatter" +msgstr "" + +#: mods/sbz_resources/nodes.lua:356 +msgid "Emittrium Glass" +msgstr "" + +#: mods/sbz_resources/nodes.lua:384 +msgid "Colorium Glass" +msgstr "" + +#: mods/sbz_resources/nodes.lua:413 +msgid "Clear Colorium Glass" +msgstr "" + +#: mods/sbz_resources/nodes.lua:443 +msgid "Stained Colorium Glass" +msgstr "" + +#: mods/sbz_resources/nodes.lua:473 +msgid "Compressed Core Dust" +msgstr "" + +#: mods/sbz_resources/nodes.lua:511 +msgid "Sand" +msgstr "" + +#: mods/sbz_resources/nodes.lua:522 +msgid "Red Sand" +msgstr "" + +#: mods/sbz_resources/nodes.lua:531 +msgid "Gravel" +msgstr "" + +#: mods/sbz_resources/nodes.lua:540 +msgid "Dust" +msgstr "" + +#: mods/sbz_resources/nodes.lua:585 +msgid "Clay" +msgstr "" + +#: mods/sbz_resources/nodes.lua:596 +msgid "Bricks" +msgstr "" + +#: mods/sbz_resources/nodes.lua:623 +msgid "Dark Sand" +msgstr "" + +#: mods/sbz_resources/nodes.lua:633 +msgid "Black Sand" +msgstr "" + +#: mods/sbz_resources/nodes.lua:643 +msgid "White Sand" +msgstr "" + +#: mods/sbz_resources/parkour.lua:14 +msgid "Emittrium Block" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:4 +msgid "Simple Circuit" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:22 +msgid "Retaining Circuit" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:40 +msgid "Emittrium Circuit" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:59 +msgid "Phlogiston Circuit" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:84 +msgid "Prediction Circuit" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:104 +msgid "Simple Logic Circuit" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:127 +msgid "Simple Inverted Logic Circuit" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:165 +msgid "Simple Processor" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:195 +msgid "Simple Crafting Processor" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:216 +msgid "Fast Crafting Processor" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:240 +msgid "Very Fast Crafting Processor" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:261 +msgid "Extremely Fast Crafting Processor" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:301 +msgid "Instant Crafting Processor" +msgstr "" + +#: mods/sbz_resources/processors_and_circuits.lua:312 +msgid "Metal-Oxide-Semiconductor Field-Effect Transistor (MOSFET)" +msgstr "" + +#: mods/sbz_resources/storinators.lua:187 +msgid "Public " +msgstr "" + +#: mods/sbz_resources/storinators.lua:232 +msgid "Storinator" +msgstr "" + +#: mods/sbz_resources/storinators.lua:243 +msgid "Bronze Storinator" +msgstr "" + +#: mods/sbz_resources/storinators.lua:253 +msgid "Stemfruit Storinator" +msgstr "" + +#: mods/sbz_resources/storinators.lua:262 +msgid "Colorium Storinator" +msgstr "" + +#: mods/sbz_resources/storinators.lua:274 +msgid "Warpshroom Storinator" +msgstr "" + +#: mods/sbz_resources/storinators.lua:286 +msgid "Neutronium Storinator" +msgstr "" + +#: mods/sbz_resources/strange_matter.lua:4 +msgid "Strange Dust" +msgstr "" + +#: mods/sbz_resources/strange_matter.lua:9 +msgid "Strange Blob" +msgstr "" + +#: mods/sbz_resources/strange_matter.lua:89 +msgid "Strange Blob Cleaner" +msgstr "" + +#: mods/sbz_resources/strange_matter.lua:91 +msgid "Restores what was.... done.... by strange blobs." +msgstr "" + +#: mods/sbz_resources/strange_matter.lua:92 +msgid "\"Place\" it into a battery to charge." +msgstr "" + +#: mods/sbz_resources/strange_matter.lua:167 +msgid "Stabilized Strange Blob" +msgstr "" + +#: mods/sbz_resources/tools.lua:6 +msgid "Matter Annihilator" +msgstr "" + +#: mods/sbz_resources/tools.lua:50 +msgid "Antimatter Annihilator" +msgstr "" + +#: mods/sbz_resources/tools.lua:94 +msgid "Robotic Arm" +msgstr "" + +#: mods/sbz_resources/tools.lua:171 +msgid "Electric Drill" +msgstr "" + +#: mods/sbz_resources/tools.lua:174 +msgid "Powered by electricity. Wear bar indicates the amount of charge left." +msgstr "" + +#: mods/sbz_resources/tools.lua:175 +msgid "@1 use" +msgid_plural "@1 uses" +msgstr[0] "" +msgstr[1] "" + +#: mods/sbz_resources/tools.lua:176 +msgid "\"Place\" it on a battery to re-charge it." +msgstr "" + +#: mods/sbz_resources/water.lua:22 +msgid "Water Source" +msgstr "" + +#: mods/sbz_resources/water.lua:69 +msgid "Flowing Water" +msgstr "" + +#: mods/sbz_resources/wormhole.lua:4 +msgid "Wormhole" +msgstr "" + +#: mods/sbz_resources/wormhole.lua:62 +msgid "Unrefined Firmament" +msgstr "" + +#: mods/sbz_resources/wormhole.lua:77 +msgid "Gravitational Lens" +msgstr "" + +#: mods/sbz_resources/wormhole.lua:98 +msgid "Refined Firmament" +msgstr "" diff --git a/mods/sbz_runes/locale/sbz_runes.pot b/mods/sbz_runes/locale/sbz_runes.pot new file mode 100644 index 00000000..915a52ba --- /dev/null +++ b/mods/sbz_runes/locale/sbz_runes.pot @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_runes/init.lua:4 +msgid "¤ Meteoric Rune\n" +msgstr "" + +#: mods/sbz_runes/init.lua:12 +msgid "¤ Core Rune\n" +msgstr "" + +#: mods/sbz_runes/init.lua:20 +msgid "¤ Firework Rune\n" +msgstr "" + +#: mods/sbz_runes/init.lua:28 +msgid "¤ Halo Rune\n" +msgstr "" + +#: mods/sbz_runes/init.lua:36 +msgid "¤ Singularity Rune\n" +msgstr "" diff --git a/mods/sbz_ui/locale/sbz_ui.pot b/mods/sbz_ui/locale/sbz_ui.pot new file mode 100644 index 00000000..0a7fa25b --- /dev/null +++ b/mods/sbz_ui/locale/sbz_ui.pot @@ -0,0 +1,45 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_ui/default_themes.lua:67 +msgid "[Default Theme] The default sbz experience" +msgstr "" + +#: mods/sbz_ui/default_themes.lua:72 +msgid "Theme Hue (a number from -180 to 180)" +msgstr "" + +#: mods/sbz_ui/default_themes.lua:79 mods/sbz_ui/default_themes.lua:155 +#: mods/sbz_ui/default_themes.lua:252 +msgid "Force mono font" +msgstr "" + +#: mods/sbz_ui/default_themes.lua:147 +msgid "" +"Theme inspired by https://tilde.team, This theme will most likely change a " +"lot in the future. Some things may look ugly." +msgstr "" + +#: mods/sbz_ui/default_themes.lua:245 +msgid "Gruvbox colorscheme ported to sbz." +msgstr "" + +#: mods/sbz_ui/theming.lua:10 +msgid "Very minimal for sure... not recommended to use" +msgstr "" diff --git a/mods/sbz_wrench/locale/sbz_wrench.pot b/mods/sbz_wrench/locale/sbz_wrench.pot new file mode 100644 index 00000000..ad22f483 --- /dev/null +++ b/mods/sbz_wrench/locale/sbz_wrench.pot @@ -0,0 +1,67 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/sbz_wrench/functions.lua:11 +msgid "Cannot pickup node. Owned by @1." +msgstr "" + +#: mods/sbz_wrench/functions.lua:12 +msgid "Cannot pickup node containing @1." +msgstr "" + +#: mods/sbz_wrench/functions.lua:13 +msgid "Not enough room in inventory to pickup node." +msgstr "" + +#: mods/sbz_wrench/functions.lua:14 +msgid "Cannot pickup node. Nesting inventories is not allowed." +msgstr "" + +#: mods/sbz_wrench/functions.lua:15 +msgid "" +"Cannot pickup node. Node contains too much metadata. (Too much information)" +msgstr "" + +#: mods/sbz_wrench/functions.lua:16 +msgid "Cannot pickup node. Node is missing inventory." +msgstr "" + +#: mods/sbz_wrench/functions.lua:17 +msgid "Cannot pickup node. Node doesn't contain metadata?" +msgstr "" + +#: mods/sbz_wrench/functions.lua:18 +msgid "A robotic arm cannot dig that node." +msgstr "" + +#: mods/sbz_wrench/functions.lua:28 +msgid "@1 with items" +msgstr "" + +#: mods/sbz_wrench/functions.lua:37 +msgid "@1 with text \"@2\"" +msgstr "" + +#: mods/sbz_wrench/functions.lua:42 +msgid "@1 with configuration" +msgstr "" + +#: mods/sbz_wrench/tool.lua:6 +msgid "Node Preserver" +msgstr "" diff --git a/mods/screwdriver/locale/screwdriver.pot b/mods/screwdriver/locale/screwdriver.pot new file mode 100644 index 00000000..c04d48e4 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.pot @@ -0,0 +1,26 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/screwdriver/init.lua:231 +msgid "Screwdriver" +msgstr "" + +#: mods/screwdriver/init.lua:231 +msgid "(left-click rotates face, right-click rotates axis)" +msgstr "" diff --git a/mods/signs_lib/locale/signs_lib.pot b/mods/signs_lib/locale/signs_lib.pot new file mode 100644 index 00000000..0988f21a --- /dev/null +++ b/mods/signs_lib/locale/signs_lib.pot @@ -0,0 +1,57 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/signs_lib/api.lua:824 mods/signs_lib/api.lua:994 +msgid "Locked sign, owned by @1\n" +msgstr "" + +#: mods/signs_lib/api.lua:1301 +msgid "" +"Skims through all currently-loaded sign-bearing mapblocks, clears away any " +"entities within each sign's node space, and regenerates their text entities, " +"if any." +msgstr "" + +#: mods/signs_lib/api.lua:1320 +msgid "There are no signs in the currently-loaded terrain." +msgstr "" + +#: mods/signs_lib/api.lua:1326 +msgid "Found a total of @1 sign nodes across @2 blocks." +msgstr "" + +#: mods/signs_lib/api.lua:1327 +msgid "Regenerating sign entities ..." +msgstr "" + +#: mods/signs_lib/api.lua:1339 +msgid "Finished." +msgstr "" + +#: mods/signs_lib/api.lua:1365 +msgid "Write" +msgstr "" + +#: mods/signs_lib/standard_signs.lua:7 +msgid "Wooden Wall Sign" +msgstr "" + +#: mods/signs_lib/standard_signs.lua:25 +msgid "Steel Wall Sign" +msgstr "" diff --git a/mods/smartshop/locale/smartshop.pot b/mods/smartshop/locale/smartshop.pot new file mode 100644 index 00000000..a351e0cc --- /dev/null +++ b/mods/smartshop/locale/smartshop.pot @@ -0,0 +1,129 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/smartshop/api/purchase_mechanics.lua:76 +#, lua-format +msgid "Cannot exchange: %s" +msgstr "" + +#: mods/smartshop/api/purchase_mechanics.lua:78 +#: mods/smartshop/api/purchase_mechanics.lua:96 +msgid "Shop is sold out" +msgstr "" + +#: mods/smartshop/api/purchase_mechanics.lua:80 +#: mods/smartshop/api/purchase_mechanics.lua:100 +msgid "Shop is full" +msgstr "" + +#: mods/smartshop/api/purchase_mechanics.lua:94 +msgid "You lack appropriate payment" +msgstr "" + +#: mods/smartshop/api/purchase_mechanics.lua:98 +msgid "No room in your inventory" +msgstr "" + +#: mods/smartshop/api/purchase_mechanics.lua:103 +msgid "Failed for unknown reason" +msgstr "" + +#: mods/smartshop/api/purchase_mechanics.lua:108 +msgid "normal exchange" +msgstr "" + +#: mods/smartshop/api/shop_class.lua:43 +msgid "Shop by: @1" +msgstr "" + +#: mods/smartshop/api/shop_class.lua:567 +msgid "(Smartshop by @1)" +msgstr "" + +#: mods/smartshop/api/shop_class.lua:578 +msgid "This shop is over-full." +msgstr "" + +#: mods/smartshop/api/shop_class.lua:580 +msgid "This shop is sold out." +msgstr "" + +#: mods/smartshop/api/shop_class.lua:582 +msgid "This shop is not configured." +msgstr "" + +#: mods/smartshop/api/storage_class.lua:40 +msgid "External storage by: @1" +msgstr "" + +#: mods/smartshop/api/storage_linking.lua:18 +msgid "Storage link attempt timed out, please try again." +msgstr "" + +#: mods/smartshop/api/storage_linking.lua:25 +msgid "Punch a smartshop storage node to link @1 storage" +msgstr "" + +#: mods/smartshop/api/storage_linking.lua:48 +msgid "You do not own this storage!" +msgstr "" + +#: mods/smartshop/api/storage_linking.lua:50 +msgid "Storage is too far from shop to link!" +msgstr "" + +#: mods/smartshop/api/storage_linking.lua:54 +msgid "@1 storage linked!" +msgstr "" + +#: mods/smartshop/compat/currency.lua:191 +msgid "currency exchange" +msgstr "" + +#: mods/smartshop/compat/mesecons.lua:53 +msgid "Don't send" +msgstr "" + +#: mods/smartshop/compat/mesecons.lua:54 +msgid "Incoming" +msgstr "" + +#: mods/smartshop/compat/mesecons.lua:55 +msgid "Outgoing" +msgstr "" + +#: mods/smartshop/compat/mesecons.lua:56 +msgid "Both" +msgstr "" + +#: mods/smartshop/compat/mesecons.lua:67 +msgid "When to send a mesecons signal" +msgstr "" + +#: mods/smartshop/nodes/shop.lua:8 +msgid "Smartshop" +msgstr "" + +#: mods/smartshop/nodes/storage.lua:9 +msgid "Smartshop external storage" +msgstr "" + +#: mods/smartshop/privs.lua:5 +msgid "Smartshop admin" +msgstr "" diff --git a/mods/travelnet/locale/travelnet.pot b/mods/travelnet/locale/travelnet.pot new file mode 100644 index 00000000..67842170 --- /dev/null +++ b/mods/travelnet/locale/travelnet.pot @@ -0,0 +1,415 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/travelnet/actions/add_station.lua:8 +msgid "The give player is not a player" +msgstr "" + +#: mods/travelnet/actions/add_station.lua:12 +msgid "There is no player with interact privilege named '@1'. Aborting." +msgstr "" + +#: mods/travelnet/actions/add_station.lua:27 +#: mods/travelnet/actions/update_elevator.lua:23 +msgid "at @1 m" +msgstr "" + +#: mods/travelnet/actions/add_station.lua:32 +msgid "Please provide a name for this station." +msgstr "" + +#: mods/travelnet/actions/add_station.lua:36 +msgid "" +"Please provide the name of the network this station ought to be connected to." +msgstr "" + +#: mods/travelnet/actions/add_station.lua:44 +msgid "" +"You do not have the travelnet_attach priv which is required to attach your " +"box to the network of someone else. Aborting." +msgstr "" + +#: mods/travelnet/actions/add_station.lua:59 +msgid "" +"A station named '@1' already exists on this network. Please choose a " +"different name!" +msgstr "" + +#: mods/travelnet/actions/add_station.lua:66 +msgid "" +"Network '@1', already contains the maximum number (@2) of allowed stations " +"per network. Please choose a different/new network name." +msgstr "" + +#: mods/travelnet/actions/add_station.lua:85 +msgid "" +"Station '@1' has been added to the network '@2', which now consists of @3 " +"station(s)." +msgstr "" + +#: mods/travelnet/actions/add_station.lua:95 +#: mods/travelnet/actions/update_elevator.lua:76 +#: mods/travelnet/actions/update_travelnet.lua:233 +msgid "Station '@1' on network '@2' (owned by @3) ready for usage." +msgstr "" + +#: mods/travelnet/actions/change_order.lua:20 +msgid "This station does not have a network." +msgstr "" + +#: mods/travelnet/actions/change_order.lua:45 +msgid "This station is already the first one on the list." +msgstr "" + +#: mods/travelnet/actions/change_order.lua:47 +msgid "This station is already the last one on the list." +msgstr "" + +#: mods/travelnet/actions/change_order.lua:71 +#: mods/travelnet/actions/main.lua:72 +#: mods/travelnet/actions/update_elevator.lua:40 +#: mods/travelnet/actions/update_travelnet.lua:56 +msgid "This @1 belongs to @2. You can't edit it." +msgstr "" + +#: mods/travelnet/actions/main.lua:46 +msgid "This @1 belongs to @2. You can't remove it." +msgstr "" + +#: mods/travelnet/actions/main.lua:52 +msgid "You do not have enough room in your inventory." +msgstr "" + +#: mods/travelnet/actions/main.lua:99 +msgid "Please click on the target you want to travel to." +msgstr "" + +#: mods/travelnet/actions/repair_station.lua:15 +msgid "Update failed! Resetting this box on the travelnet." +msgstr "" + +#: mods/travelnet/actions/repair_station.lua:39 +msgid "Station '@1' has been reattached to the network '@2'." +msgstr "" + +#: mods/travelnet/actions/transport_player.lua:20 +msgid "Station '@1' does not exist (anymore?) on this network." +msgstr "" + +#: mods/travelnet/actions/transport_player.lua:33 +msgid "You are not allowed to travel to this station." +msgstr "" + +#: mods/travelnet/actions/update_elevator.lua:14 +#: mods/travelnet/actions/update_travelnet.lua:20 +#: mods/travelnet/on_receive_fields.lua:28 +msgid "Unknown node." +msgstr "" + +#: mods/travelnet/actions/update_elevator.lua:18 +#: mods/travelnet/actions/update_travelnet.lua:9 +msgid "Invalid data or node." +msgstr "" + +#: mods/travelnet/actions/update_elevator.lua:55 +#: mods/travelnet/actions/update_travelnet.lua:149 +#: mods/travelnet/actions/update_travelnet.lua:203 +msgid "Station \"@1\" already exists on network \"@2\"." +msgstr "" + +#: mods/travelnet/actions/update_elevator.lua:62 +#: mods/travelnet/actions/update_travelnet.lua:210 +msgid "Station does exist." +msgstr "" + +#: mods/travelnet/actions/update_elevator.lua:72 +#: mods/travelnet/actions/update_travelnet.lua:220 +msgid "Station \"@1\" has been renamed to \"@2\" on network \"@3\"." +msgstr "" + +#: mods/travelnet/actions/update_travelnet.lua:33 +msgid "Please provide a station name." +msgstr "" + +#: mods/travelnet/actions/update_travelnet.lua:37 +msgid "Please provide a network name." +msgstr "" + +#: mods/travelnet/actions/update_travelnet.lua:41 +msgid "Please provide an owner." +msgstr "" + +#: mods/travelnet/actions/update_travelnet.lua:67 +msgid "You don't have permission to change the owner of this travelnet" +msgstr "" + +#: mods/travelnet/actions/update_travelnet.lua:85 +msgid "Station \"@1\" already exists on network \"@2\" of player \"@3\"." +msgstr "" + +#: mods/travelnet/actions/update_travelnet.lua:92 +#: mods/travelnet/actions/update_travelnet.lua:156 +msgid "" +"Network \"@1\", already contains the maximum number (@2) of allowed stations " +"per network. Please choose a different network name." +msgstr "" + +#: mods/travelnet/actions/update_travelnet.lua:103 +#: mods/travelnet/actions/update_travelnet.lua:166 +msgid "Station does not have network." +msgstr "" + +#: mods/travelnet/actions/update_travelnet.lua:118 +msgid "" +"Station \"@1\" has been renamed to \"@2\", moved from network \"@3\" to " +"network \"@4\" and from owner \"@5\" to owner \"@6\"." +msgstr "" + +#: mods/travelnet/actions/update_travelnet.lua:178 +msgid "" +"Station \"@1\" has been renamed to \"@2\" and moved from network \"@3\" to " +"network \"@4\"." +msgstr "" + +#: mods/travelnet/add_target.lua:19 mods/travelnet/formspecs.lua:33 +#: mods/travelnet/functions.lua:339 mods/travelnet/on_receive_fields.lua:18 +msgid "Error" +msgstr "" + +#: mods/travelnet/chat.lua:5 +msgid "Shows the travelnet formspec for the network" +msgstr "" + +#: mods/travelnet/elevator.lua:14 +msgid "" +"Congratulations! This is your first elevator. You can build an elevator " +"network by placing further elevators somewhere above or below this one. Just " +"make sure that the x and z coordinate are the same." +msgstr "" + +#: mods/travelnet/elevator.lua:27 +msgid "" +"This elevator will automatically connect to the other elevators you have " +"placed at different heights. Just enter a station name and click on " +"\"store\" to set it up. Or just punch it to set the height as station name." +msgstr "" + +#: mods/travelnet/elevator.lua:38 +msgid "" +"This is your first elevator. It differs from travelnet networks by only " +"allowing movement in vertical direction (up or down). All further elevators " +"which you will place at the same x,z coordinates at different heights will " +"be able to connect to this elevator." +msgstr "" + +#: mods/travelnet/elevator.lua:46 +msgid "m to the right" +msgstr "" + +#: mods/travelnet/elevator.lua:47 +msgid "m behind this elevator and" +msgstr "" + +#: mods/travelnet/elevator.lua:48 +msgid "m to the left" +msgstr "" + +#: mods/travelnet/elevator.lua:49 +msgid "m in front of this elevator and" +msgstr "" + +#: mods/travelnet/elevator.lua:56 +msgid "Your nearest elevator network is located" +msgstr "" + +#: mods/travelnet/elevator.lua:68 +msgid ", located at x" +msgstr "" + +#: mods/travelnet/elevator.lua:70 +msgid "This elevator here will start a new shaft/network." +msgstr "" + +#: mods/travelnet/elevator.lua:85 +msgid "Elevator" +msgstr "" + +#: mods/travelnet/elevator.lua:108 +msgid "Elevator (unconfigured)" +msgstr "" + +#: mods/travelnet/elevator.lua:140 mods/travelnet/register_travelnet.lua:84 +msgid "Not enough vertical space to place the travelnet box!" +msgstr "" + +#: mods/travelnet/formspecs.lua:35 +msgid "Back" +msgstr "" + +#: mods/travelnet/formspecs.lua:36 mods/travelnet/formspecs.lua:72 +#: mods/travelnet/formspecs.lua:91 mods/travelnet/formspecs.lua:119 +msgid "Exit" +msgstr "" + +#: mods/travelnet/formspecs.lua:56 +msgid "Configure this travelnet station" +msgstr "" + +#: mods/travelnet/formspecs.lua:57 mods/travelnet/formspecs.lua:87 +msgid "Remove station" +msgstr "" + +#: mods/travelnet/formspecs.lua:58 mods/travelnet/formspecs.lua:88 +#: mods/travelnet/formspecs.lua:112 +msgid "Name of this station:" +msgstr "" + +#: mods/travelnet/formspecs.lua:60 +msgid "" +"What do you call this place here? Example: \"my first house\", \"mine\", " +"\"shop\"..." +msgstr "" + +#: mods/travelnet/formspecs.lua:61 +msgid "Assign to network:" +msgstr "" + +#: mods/travelnet/formspecs.lua:67 +msgid "You can have more than one network. If unsure, use \"@1\"." +msgstr "" + +#: mods/travelnet/formspecs.lua:68 mods/travelnet/formspecs.lua:116 +msgid "Owned by:" +msgstr "" + +#: mods/travelnet/formspecs.lua:70 +msgid "Unless you know what you are doing, leave this as is." +msgstr "" + +#: mods/travelnet/formspecs.lua:71 mods/travelnet/formspecs.lua:90 +msgid "Save" +msgstr "" + +#: mods/travelnet/formspecs.lua:86 +msgid "Configure this elevator station" +msgstr "" + +#: mods/travelnet/formspecs.lua:111 +msgid "Elevator:" +msgstr "" + +#: mods/travelnet/formspecs.lua:111 +msgid "Travelnet-Box:" +msgstr "" + +#: mods/travelnet/formspecs.lua:114 +msgid "Assigned to Network:" +msgstr "" + +#: mods/travelnet/formspecs.lua:118 +msgid "Click on target to travel there:" +msgstr "" + +#: mods/travelnet/formspecs.lua:200 +msgid "move up" +msgstr "" + +#: mods/travelnet/formspecs.lua:201 +msgid "move down" +msgstr "" + +#: mods/travelnet/formspecs.lua:212 +msgid "Edit station" +msgstr "" + +#: mods/travelnet/formspecs.lua:218 +msgid "<<" +msgstr "" + +#: mods/travelnet/formspecs.lua:221 +msgid "<" +msgstr "" + +#: mods/travelnet/formspecs.lua:224 +msgid "Page @1/@2" +msgstr "" + +#: mods/travelnet/formspecs.lua:227 +msgid ">" +msgstr "" + +#: mods/travelnet/formspecs.lua:230 +msgid ">>" +msgstr "" + +#: mods/travelnet/functions.lua:30 +msgid "travelnet box" +msgstr "" + +#: mods/travelnet/functions.lua:32 +msgid "elevator" +msgstr "" + +#: mods/travelnet/functions.lua:34 +msgid "locked travelnet" +msgstr "" + +#: mods/travelnet/functions.lua:36 +msgid "locked elevator" +msgstr "" + +#: mods/travelnet/functions.lua:300 +msgid "Could not find information about the station that is to be removed." +msgstr "" + +#: mods/travelnet/functions.lua:311 +msgid "Could not find the station that is to be removed." +msgstr "" + +#: mods/travelnet/functions.lua:322 +msgid "Station '@1' has been REMOVED from the network '@2'." +msgstr "" + +#: mods/travelnet/on_receive_fields.lua:19 +msgid "There is something wrong with the configuration of this station." +msgstr "" + +#: mods/travelnet/persistence.lua:18 +msgid "[travelnet] migrating from json-file to mod-storage" +msgstr "" + +#: mods/travelnet/persistence.lua:21 +msgid "[travelnet] migrating from serialize-file to mod-storage" +msgstr "" + +#: mods/travelnet/privs.lua:6 +msgid "allows to attach travelnet boxes to travelnets of other players" +msgstr "" + +#: mods/travelnet/privs.lua:15 +msgid "allows to dig travelnet boxes which belog to nets of other players" +msgstr "" + +#: mods/travelnet/register_travelnet.lua:25 +msgid "Travelnet-Box" +msgstr "" + +#: mods/travelnet/register_travelnet.lua:52 +msgid "Travelnet-Box (unconfigured)" +msgstr "" diff --git a/mods/unified_inventory/locale/unified_inventory.pot b/mods/unified_inventory/locale/unified_inventory.pot new file mode 100644 index 00000000..5f3c6285 --- /dev/null +++ b/mods/unified_inventory/locale/unified_inventory.pot @@ -0,0 +1,250 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/unified_inventory/api.lua:338 mods/unified_inventory/register.lua:118 +msgid "Crafting" +msgstr "" + +#: mods/unified_inventory/api.lua:354 +msgid "Mixing" +msgstr "" + +#: mods/unified_inventory/api.lua:369 +msgid "Cooking" +msgstr "" + +#: mods/unified_inventory/api.lua:377 +msgid "Digging" +msgstr "" + +#: mods/unified_inventory/api.lua:384 +msgid "Digging (by chance)" +msgstr "" + +#: mods/unified_inventory/category.lua:70 +msgid "All Items" +msgstr "" + +#: mods/unified_inventory/category.lua:77 +msgid "Miscellaneous" +msgstr "" + +#: mods/unified_inventory/default-categories.lua:31 +msgid "Organics" +msgstr "" + +#: mods/unified_inventory/default-categories.lua:36 +msgid "Tools" +msgstr "" + +#: mods/unified_inventory/default-categories.lua:40 +msgid "Chemistry" +msgstr "" + +#: mods/unified_inventory/default-categories.lua:45 +msgid "Fluids" +msgstr "" + +#: mods/unified_inventory/default-categories.lua:50 +msgid "Decorations" +msgstr "" + +#: mods/unified_inventory/default-categories.lua:55 +msgid "Machines" +msgstr "" + +#: mods/unified_inventory/default-categories.lua:60 +msgid "Item or Fluid Transportation" +msgstr "" + +#: mods/unified_inventory/default-categories.lua:64 +msgid "Luacontrollers" +msgstr "" + +#: mods/unified_inventory/group.lua:37 +msgid " and " +msgstr "" + +#: mods/unified_inventory/internal.lua:178 +msgid "Scroll categories left" +msgstr "" + +#: mods/unified_inventory/internal.lua:184 +msgid "Scroll categories right" +msgstr "" + +#: mods/unified_inventory/internal.lua:204 +msgid "Search" +msgstr "" + +#: mods/unified_inventory/internal.lua:209 +msgid "Reset search and display everything" +msgstr "" + +#: mods/unified_inventory/internal.lua:214 +msgid "Filter" +msgstr "" + +#: mods/unified_inventory/internal.lua:225 +msgid "First page" +msgstr "" + +#: mods/unified_inventory/internal.lua:226 +msgid "Back three pages" +msgstr "" + +#: mods/unified_inventory/internal.lua:227 +msgid "Back one page" +msgstr "" + +#: mods/unified_inventory/internal.lua:228 +msgid "Forward one page" +msgstr "" + +#: mods/unified_inventory/internal.lua:229 +msgid "Forward three pages" +msgstr "" + +#: mods/unified_inventory/internal.lua:230 +msgid "Last page" +msgstr "" + +#: mods/unified_inventory/internal.lua:252 +msgid "No matching items" +msgstr "" + +#: mods/unified_inventory/internal.lua:254 +msgid "No matches." +msgstr "" + +#: mods/unified_inventory/internal.lua:313 +msgid "Page" +msgstr "" + +#: mods/unified_inventory/internal.lua:313 +msgid "@1 of @2" +msgstr "" + +#: mods/unified_inventory/internal.lua:477 +msgid "" +"Unified Inventory: Your game version is too old and does not support the GUI " +"requirements. You might experience visual issues." +msgstr "" + +#: mods/unified_inventory/register.lua:34 +msgid "Can use the creative inventory" +msgstr "" + +#: mods/unified_inventory/register.lua:39 +msgid "" +"Forces Unified Inventory to be displayed in Full mode if Lite mode is " +"configured globally" +msgstr "" + +#: mods/unified_inventory/register.lua:62 +msgid "Crafting Grid" +msgstr "" + +#: mods/unified_inventory/register.lua:68 +#: mods/unified_inventory/register.lua:230 +msgid "Crafting Guide" +msgstr "" + +#: mods/unified_inventory/register.lua:74 +msgid "Clear inventory" +msgstr "" + +#: mods/unified_inventory/register.lua:81 +msgid "" +"This button has been disabled outside of creative mode to prevent accidental " +"inventory trashing.\n" +"Use the trash slot instead." +msgstr "" + +#: mods/unified_inventory/register.lua:91 +msgid "Inventory cleared!" +msgstr "" + +#: mods/unified_inventory/register.lua:126 +msgid "Trash:" +msgstr "" + +#: mods/unified_inventory/register.lua:133 +msgid "Refill:" +msgstr "" + +#: mods/unified_inventory/register.lua:175 +msgid "Any item belonging to the @1 group" +msgstr "" + +#: mods/unified_inventory/register.lua:177 +msgid "Any item belonging to the groups @1" +msgstr "" + +#: mods/unified_inventory/register.lua:195 +msgid "No recipes" +msgstr "" + +#: mods/unified_inventory/register.lua:196 +msgid "No usages" +msgstr "" + +#: mods/unified_inventory/register.lua:199 +msgid "Result" +msgstr "" + +#: mods/unified_inventory/register.lua:200 +msgid "Ingredient" +msgstr "" + +#: mods/unified_inventory/register.lua:203 +msgid "Show next recipe" +msgstr "" + +#: mods/unified_inventory/register.lua:204 +msgid "Show next usage" +msgstr "" + +#: mods/unified_inventory/register.lua:207 +msgid "Show previous recipe" +msgstr "" + +#: mods/unified_inventory/register.lua:208 +msgid "Show previous usage" +msgstr "" + +#: mods/unified_inventory/register.lua:244 +msgid "@1 (@2)" +msgstr "" + +#: mods/unified_inventory/register.lua:283 +msgid "Give me:" +msgstr "" + +#: mods/unified_inventory/register.lua:403 +msgid "This recipe is too@nlarge to be displayed." +msgstr "" + +#: mods/unified_inventory/register.lua:413 +msgid "To craft grid:" +msgstr "" + +#: mods/unified_inventory/register.lua:426 +msgid "All" +msgstr "" diff --git a/mods/unifieddyes/locale/unifieddyes.pot b/mods/unifieddyes/locale/unifieddyes.pot new file mode 100644 index 00000000..09630359 --- /dev/null +++ b/mods/unifieddyes/locale/unifieddyes.pot @@ -0,0 +1,50 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-03-26 17:40-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: mods/unifieddyes/airbrush.lua:168 +msgid "Coloring Tool" +msgstr "" + +#: mods/unifieddyes/nodes.lua:4 +msgid "Colorium" +msgstr "" + +#: mods/unifieddyes/nodes.lua:19 +msgid "Colorium Powder" +msgstr "" + +#: mods/unifieddyes/nodes.lua:26 +msgid "Colorium Blob" +msgstr "" + +#: mods/unifieddyes/nodes.lua:46 +msgid "Colorium Ground Line" +msgstr "" + +#: mods/unifieddyes/nodes.lua:73 +msgid "Power Ground Line" +msgstr "" + +#: mods/unifieddyes/nodes.lua:119 +msgid "Antiblock" +msgstr "" + +#: mods/unifieddyes/nodes.lua:136 +msgid "Airlike Antiblock" +msgstr "" From 2f15f5da4bf8d75de0f99819d40241b3a8b5f825 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Fri, 27 Mar 2026 15:54:19 -0700 Subject: [PATCH 10/35] Update api call to make merging easier --- mods/sbz_base/sound_api.lua | 24 +++++------ mods/sbz_bio/habitat.lua | 4 +- mods/sbz_bio/misc.lua | 4 +- mods/sbz_bio/soil.lua | 8 ++-- mods/sbz_bio/trees.lua | 8 ++-- mods/sbz_chem/alloy_furnace.lua | 2 +- mods/sbz_chem/crusher.lua | 2 +- mods/sbz_chem/crystal_grower.lua | 2 +- mods/sbz_chem/engraver.lua | 2 +- mods/sbz_chem/melter_cooler.lua | 4 +- mods/sbz_chem/reactor.lua | 4 +- mods/sbz_decor/cnc.lua | 2 +- mods/sbz_decor/init.lua | 10 ++--- mods/sbz_decor/signs.lua | 4 +- mods/sbz_instatube/init.lua | 16 +++---- mods/sbz_logic/init.lua | 2 +- mods/sbz_logic/knowledge.lua | 4 +- mods/sbz_logic_devices/builder.lua | 2 +- mods/sbz_logic_devices/button.lua | 2 +- mods/sbz_logic_devices/formspec_screen.lua | 2 +- mods/sbz_logic_devices/gpu.lua | 2 +- mods/sbz_logic_devices/hologram_projector.lua | 2 +- mods/sbz_logic_devices/mscreen.lua | 2 +- mods/sbz_logic_devices/nic.lua | 2 +- mods/sbz_logic_devices/nodeDB.lua | 2 +- mods/sbz_logic_devices/noteblock.lua | 2 +- mods/sbz_logic_devices/object_detector.lua | 2 +- mods/sbz_meteorites/attractor.lua | 4 +- mods/sbz_meteorites/meteorite_maker.lua | 2 +- mods/sbz_meteorites/nodes.lua | 12 +++--- mods/sbz_multiblocks/blast_furnace.lua | 12 +++--- mods/sbz_multiblocks/large_liquid_storage.lua | 8 ++-- mods/sbz_pipeworks/autocrafter.lua | 2 +- mods/sbz_pipeworks/basic_blocks.lua | 4 +- mods/sbz_pipeworks/basic_tubes.lua | 16 +++---- mods/sbz_pipeworks/filter_injector.lua | 2 +- mods/sbz_pipeworks/pattern_storinator.lua | 2 +- mods/sbz_pipeworks/tube_register.lua | 2 +- mods/sbz_planets/orbs.lua | 4 +- mods/sbz_planets/planet_nodes.lua | 28 ++++++------- mods/sbz_planets/planet_teleporter.lua | 2 +- mods/sbz_power/batteries.lua | 12 +++--- mods/sbz_power/connectors.lua | 4 +- mods/sbz_power/ele_fab.lua | 2 +- mods/sbz_power/emittrium_reactor.lua | 14 +++---- mods/sbz_power/extractor.lua | 4 +- mods/sbz_power/fluid_transport.lua | 12 +++--- mods/sbz_power/generator.lua | 8 ++-- mods/sbz_power/infinite_storinator.lua | 2 +- mods/sbz_power/init.lua | 4 +- mods/sbz_power/lights.lua | 4 +- mods/sbz_power/misc.lua | 4 +- mods/sbz_power/phlogiston_fuser.lua | 2 +- mods/sbz_power/power_pipes.lua | 4 +- mods/sbz_power/sensors/delayer.lua | 2 +- mods/sbz_power/sensors/gates.lua | 18 ++++---- mods/sbz_power/sensors/item_sensor.lua | 2 +- mods/sbz_power/sensors/node_sensors.lua | 4 +- mods/sbz_power/starlight_catcher.lua | 4 +- mods/sbz_power/switching_station.lua | 2 +- mods/sbz_power/testnodes.lua | 2 +- mods/sbz_power/turret.lua | 2 +- mods/sbz_resources/emitters.lua | 2 +- mods/sbz_resources/nodes.lua | 42 +++++++++---------- mods/sbz_resources/parkour.lua | 2 +- mods/sbz_resources/storinators.lua | 4 +- mods/unifieddyes/nodes.lua | 8 ++-- 67 files changed, 196 insertions(+), 196 deletions(-) diff --git a/mods/sbz_base/sound_api.lua b/mods/sbz_base/sound_api.lua index ffdf22fb..8a2f988d 100644 --- a/mods/sbz_base/sound_api.lua +++ b/mods/sbz_base/sound_api.lua @@ -30,7 +30,7 @@ end) sbz_api.sounds = sbz_api.sounds or {} -- Use as a template (include fade if needed on any) -function sbz_api.sounds.blank() +function sbz_audio.blank() local sounds = { footstep = { name = '', gain = 0.2, pitch = 1.0 }, dig = { name = '', gain = 0.8, pitch = 1.0 }, @@ -40,7 +40,7 @@ function sbz_api.sounds.blank() return sounds end -function sbz_api.sounds.machine() +function sbz_audio.machine() local sounds = { footstep = { name = 'mix_thunk_slightly_metallic', gain = 0.2, pitch = 0.5 }, dig = { name = 'mix_metal_cabinet_hit', gain = 0.8, pitch = 1.0 }, @@ -50,7 +50,7 @@ function sbz_api.sounds.machine() return sounds end -function sbz_api.sounds.matter() +function sbz_audio.matter() local sounds = { footstep = { name = 'mix_choppy_rubber_step', gain = 0.1, pitch = 0.5 }, dig = { name = 'foley_matter_hit_thunky', gain = 0.8, pitch = 0.8 }, @@ -60,7 +60,7 @@ function sbz_api.sounds.matter() return sounds end -function sbz_api.sounds.dirt() +function sbz_audio.dirt() local sounds = { footstep = { name = 'mix_dirt_step', gain = 0.2, pitch = 0.8 }, dig = { name = 'mix_dirt_dig', gain = 0.6, pitch = 1.1 }, @@ -70,7 +70,7 @@ function sbz_api.sounds.dirt() return sounds end -function sbz_api.sounds.antimatter() +function sbz_audio.antimatter() local sounds = { footstep = { name = 'foley_antimatter_hum', gain = 0.2, pitch = 0.8 }, dig = { name = 'foley_antimatter_hit', gain = 0.8, pitch = 1.0 }, @@ -80,7 +80,7 @@ function sbz_api.sounds.antimatter() return sounds end -function sbz_api.sounds.wood_planks() +function sbz_audio.wood_planks() local sounds = { footstep = { name = 'gen_wump_wood', gain = 0.3, pitch = 0.9 }, dig = { name = 'foley_wood_thud_shallow', gain = 0.6, pitch = 0.8 }, @@ -90,7 +90,7 @@ function sbz_api.sounds.wood_planks() return sounds end -function sbz_api.sounds.wood_solid() +function sbz_audio.wood_solid() local sounds = { footstep = { name = 'mix_choppy_rubber_step', gain = 0.2, pitch = 0.8 }, dig = { name = 'mix_matter_hit_weird', gain = 0.8, pitch = 1.2 }, @@ -100,7 +100,7 @@ function sbz_api.sounds.wood_solid() return sounds end -function sbz_api.sounds.leaves() +function sbz_audio.leaves() local sounds = { footstep = { name = 'foley_leaf_step', gain = 0.1, pitch = 0.8 }, dig = { name = 'foley_leaf_step', gain = 0.2, pitch = 0.5 }, @@ -110,7 +110,7 @@ function sbz_api.sounds.leaves() return sounds end -function sbz_api.sounds.glass() +function sbz_audio.glass() local sounds = { footstep = { name = 'foley_matter_hit_light', gain = 0.1, pitch = 1.1 }, dig = { name = 'gen_soft_glass_bump', gain = 0.8, pitch = 1.2 }, @@ -120,7 +120,7 @@ function sbz_api.sounds.glass() return sounds end -function sbz_api.sounds.snow() +function sbz_audio.snow() local sounds = { footstep = { name = 'gen_snow_crunch_abrupt', gain = 0.2, pitch = 1.0 }, dig = { name = 'foley_snow_hit', gain = 0.5, pitch = 1.0 }, @@ -130,7 +130,7 @@ function sbz_api.sounds.snow() return sounds end -function sbz_api.sounds.ice() +function sbz_audio.ice() local sounds = { footstep = { name = 'foley_solid_step_soft', gain = 0.2, pitch = 1.0 }, dig = { name = 'gen_ice_chip', gain = 0.8, pitch = 1.0 }, @@ -140,7 +140,7 @@ function sbz_api.sounds.ice() return sounds end -function sbz_api.sounds.sand() +function sbz_audio.sand() local sounds = { footstep = { name = 'gen_sand_generic', gain = 0.1, pitch = 0.8 }, dig = { name = 'gen_sand_generic_hit', gain = 0.2, pitch = 0.6 }, diff --git a/mods/sbz_bio/habitat.lua b/mods/sbz_bio/habitat.lua index 37741e69..ccf02749 100644 --- a/mods/sbz_bio/habitat.lua +++ b/mods/sbz_bio/habitat.lua @@ -205,7 +205,7 @@ end sbz_api.register_machine('sbz_bio:habitat_regulator', { description = S("Habitat Regulator"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { 'habitat_regulator.png' }, groups = { matter = 1, ui_bio = 1 }, control_action_raw = true, @@ -231,7 +231,7 @@ sbz_api.register_machine('sbz_bio:habitat_regulator', { core.register_node('sbz_bio:co2_compactor', { description = S("CO2 Compactor"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = S("Stores 30 CO₂. Habitat regulator doesn't consider it a wall, but it can be passed through"), groups = { matter = 2, explody = 8 }, walkable = false, diff --git a/mods/sbz_bio/misc.lua b/mods/sbz_bio/misc.lua index 9ee1f94b..97d8639e 100644 --- a/mods/sbz_bio/misc.lua +++ b/mods/sbz_bio/misc.lua @@ -5,7 +5,7 @@ core.register_node("sbz_bio:burner", sbz_api.add_tube_support({ tiles = { "burner.png" }, groups = { matter = 1, co2_source = 1 }, paramtype = "light", - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), light_source = 5, on_construct = function(pos) local meta = core.get_meta(pos) @@ -97,7 +97,7 @@ end sbz_api.register_stateful_machine("sbz_bio:neutron_emitter", { description = S("Basic Neutron Emitter"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = "Emits radiation, forces plants mutate.", info_power_consume = 10, autostate = true, diff --git a/mods/sbz_bio/soil.lua b/mods/sbz_bio/soil.lua index bfd0a37d..855e315e 100644 --- a/mods/sbz_bio/soil.lua +++ b/mods/sbz_bio/soil.lua @@ -14,7 +14,7 @@ core.register_node("sbz_bio:dirt", unifieddyes.def { charged = 1, }, paramtype = "light", -- if you leave this out, fertilizer wont work - sounds = sbz_api.sounds.dirt(), + sounds = sbz_audio.dirt(), }) do -- Dirt recipe scope @@ -61,7 +61,7 @@ core.register_node("sbz_bio:fertilized_dirt", unifieddyes.def { fertilizer_no_sprout = 1, }, paramtype = "light", - sounds = sbz_api.sounds.dirt(), + sounds = sbz_audio.dirt(), info_extra = { S("Plants grow 2x faster than on dirt, on this soil."), S("Fertilizer can't sprout plants on this soil.") @@ -100,7 +100,7 @@ core.register_node("sbz_bio:dirt_with_grass", unifieddyes.def { charged = 1 }, paramtype = "light", - sounds = sbz_api.sounds.dirt(), + sounds = sbz_audio.dirt(), info_extra = "Spreads, same growth speed as dirt.", on_burn = function(pos) if is_air(vector.add(pos, vector.new(0, 1, 0))) then @@ -120,7 +120,7 @@ sbz_api.register_stateful_machine("sbz_bio:electric_soil", unifieddyes.def { soil = 0, pipe_connects = 1, }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), autostate = true, info_power_consume = 40, info_extra = "When powered, it's 5 times more powerful than regular dirt.", diff --git a/mods/sbz_bio/trees.lua b/mods/sbz_bio/trees.lua index 12274355..baa6b354 100644 --- a/mods/sbz_bio/trees.lua +++ b/mods/sbz_bio/trees.lua @@ -233,7 +233,7 @@ sbz_api.register_trunk( 'colorium_tree_side.png', }, leaves = 'sbz_bio:colorium_leaves', - sounds = sbz_api.sounds.wood_solid(), + sounds = sbz_audio.wood_solid(), } ) @@ -286,7 +286,7 @@ sbz_api.register_leaves( }, }, }, - sounds = sbz_api.sounds.leaves(), + sounds = sbz_audio.leaves(), } ) @@ -392,7 +392,7 @@ core.register_node( tiles = { 'colorium_planks.png' }, paramtype2 = 'color', groups = { matter = 3, oddly_breakable_by_hand = 2, burn = 1, transparent = 1, explody = 10 }, - sounds = sbz_api.sounds.wood_planks(), + sounds = sbz_audio.wood_planks(), } ) @@ -436,7 +436,7 @@ end core.register_node('sbz_bio:colorium_tree_core', { description = S("Colorium Tree Core"), info_extra = "Contains the tree's dna.", - sounds = sbz_api.sounds.wood_solid(), + sounds = sbz_audio.wood_solid(), groups = { matter = 3, oddly_breakable_by_hand = 3, diff --git a/mods/sbz_chem/alloy_furnace.lua b/mods/sbz_chem/alloy_furnace.lua index 1082b0dc..2b8e6090 100644 --- a/mods/sbz_chem/alloy_furnace.lua +++ b/mods/sbz_chem/alloy_furnace.lua @@ -34,7 +34,7 @@ sbz_api.register_stateful_machine('sbz_chem:simple_alloy_furnace', { 'simple_alloy_furnace.png^[verticalframe:13:1', }, groups = { matter = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = 'facedir', on_construct = function(pos) diff --git a/mods/sbz_chem/crusher.lua b/mods/sbz_chem/crusher.lua index 82b35294..359294ac 100644 --- a/mods/sbz_chem/crusher.lua +++ b/mods/sbz_chem/crusher.lua @@ -67,7 +67,7 @@ sbz_api.register_stateful_machine('sbz_chem:crusher', { 'crusher_side.png', }, groups = { matter = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = 'facedir', on_construct = function(pos) diff --git a/mods/sbz_chem/crystal_grower.lua b/mods/sbz_chem/crystal_grower.lua index 5c5d5e32..82b83946 100644 --- a/mods/sbz_chem/crystal_grower.lua +++ b/mods/sbz_chem/crystal_grower.lua @@ -69,7 +69,7 @@ end sbz_api.register_stateful_machine("sbz_chem:crystal_grower", { description = S("Crystal Grower"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_power_consume = 120, tiles = { "crystal_grower_side.png", diff --git a/mods/sbz_chem/engraver.lua b/mods/sbz_chem/engraver.lua index f52a41db..b0cd1fdd 100644 --- a/mods/sbz_chem/engraver.lua +++ b/mods/sbz_chem/engraver.lua @@ -31,7 +31,7 @@ sbz_api.register_stateful_machine("sbz_chem:engraver", { "engraver.png^[verticalframe:24:1", }, groups = { matter = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = "4dir", allow_metadata_inventory_move = allow_metadata_inventory_move, allow_metadata_inventory_put = allow_metadata_inventory_put, diff --git a/mods/sbz_chem/melter_cooler.lua b/mods/sbz_chem/melter_cooler.lua index abb38cd0..ee790e59 100644 --- a/mods/sbz_chem/melter_cooler.lua +++ b/mods/sbz_chem/melter_cooler.lua @@ -64,7 +64,7 @@ sbz_api.register_stateful_machine("sbz_chem:melter", { fluid_pipe_stores = 1, ui_fluid = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = "4dir", input_inv = "src", @@ -164,7 +164,7 @@ sbz_api.register_stateful_machine("sbz_chem:cooler", { fluid_pipe_stores = 1, ui_fluid = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = "4dir", output_inv = "dst", diff --git a/mods/sbz_chem/reactor.lua b/mods/sbz_chem/reactor.lua index 46710bdc..dd9dff80 100644 --- a/mods/sbz_chem/reactor.lua +++ b/mods/sbz_chem/reactor.lua @@ -76,7 +76,7 @@ sbz_api.register_stateful_generator("sbz_chem:nuclear_reactor", { "reactor_side.png", }, groups = { matter = 1, fluid_pipe_connects = 1, fluid_pipe_stores = 1, ui_fluid = 1, explody = 2 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), input_inv = "rods", output_inv = "rods", on_construct = function(pos) @@ -249,7 +249,7 @@ sbz_api.register_stateful_machine("sbz_chem:xray", { "xray_side.png", }, groups = { matter = 1, }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), autostate = true, action = function(pos, _, meta, supply, demand) if supply < demand + xray_demand then diff --git a/mods/sbz_decor/cnc.lua b/mods/sbz_decor/cnc.lua index 7abaf4dc..df0774a7 100644 --- a/mods/sbz_decor/cnc.lua +++ b/mods/sbz_decor/cnc.lua @@ -48,7 +48,7 @@ core.register_node( info = 'Use it to cut stairs/slabs out of nodes.', tiles = { 'cnc_top.png', 'cnc_top.png', 'cnc_side.png' }, groups = { matter = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), input_inv = 'src', output_inv = 'choices', on_construct = function(pos) diff --git a/mods/sbz_decor/init.lua b/mods/sbz_decor/init.lua index 669029cf..3d808aff 100644 --- a/mods/sbz_decor/init.lua +++ b/mods/sbz_decor/init.lua @@ -156,7 +156,7 @@ core.register_node( groups = { matter = 1, cracky = 3, explody = 3, moss_growable = 1 }, sunlight_propagates = true, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), } ) stairs.register 'sbz_decor:factory_warning' @@ -174,7 +174,7 @@ core.register_node('sbz_decor:mystery_terrarium', { groups = { matter = 1, cracky = 3, explody = 3 }, sunlight_propagates = true, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) core.register_craft { output = 'sbz_decor:mystery_terrarium', @@ -199,7 +199,7 @@ core.register_node( groups = { matter = 1, cracky = 3, explody = 3 }, light_source = 10, sunlight_propagates = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), } ) @@ -244,7 +244,7 @@ core.register_node( 'sbz_decor:ladder', unifieddyes.def { description = S("Matter Ladder"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drawtype = 'nodebox', node_box = { -- nodebox inspired by that one 3d ladders mod, but i made this myself with nodebox editor type = 'fixed', @@ -288,7 +288,7 @@ core.register_node( 'sbz_decor:antimatter_ladder', unifieddyes.def { description = S("Antimatter Ladder"), - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), drawtype = 'nodebox', node_box = { -- nodebox inspired by that one 3d ladders mod, but i made this myself with nodebox editor type = 'fixed', diff --git a/mods/sbz_decor/signs.lua b/mods/sbz_decor/signs.lua index 1219a348..7b7d9615 100644 --- a/mods/sbz_decor/signs.lua +++ b/mods/sbz_decor/signs.lua @@ -2,7 +2,7 @@ local S = core.get_translator(core.get_current_modname()) signs_lib.register_sign("sbz_decor:antimatter_sign", { description = S("Antimatter Sign"), - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), inventory_image = "[combine:32x32:0,0=antimatter_sign.png^[makealpha:0,0,0", tiles = { "antimatter_sign.png", @@ -24,7 +24,7 @@ signs_lib.register_sign("sbz_decor:antimatter_sign", { signs_lib.register_sign("sbz_decor:matter_sign", { description = S("Matter Sign"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), inventory_image = "[combine:32x32:0,0=antimatter_sign.png^[makealpha:0,0,0^[invert:rgb", tiles = { "antimatter_sign.png^[invert:rgb", diff --git a/mods/sbz_instatube/init.lua b/mods/sbz_instatube/init.lua index 7ed4c7c0..c01ed8d0 100644 --- a/mods/sbz_instatube/init.lua +++ b/mods/sbz_instatube/init.lua @@ -308,7 +308,7 @@ core.register_node( 'sbz_instatube:instant_tube', unifieddyes.def { description = S("Instatube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), connects_to = { 'sbz_instatube:instant_tube', 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, info_extra = { 'Deliver items in record time! (Also less lag and less weird behavior!)' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, @@ -355,7 +355,7 @@ core.register_node( 'sbz_instatube:one_way_instatube', unifieddyes.def { description = S("One Way Instatube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), tiles = { 'one_way_instatube.png^[transformFX', 'one_way_instatube.png^[transformFX', @@ -515,7 +515,7 @@ core.register_node( 'sbz_instatube:high_priority_instant_tube', unifieddyes.def { description = S("High Priority Instatube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, paramtype2 = 'color', @@ -561,7 +561,7 @@ core.register_node( 'sbz_instatube:low_priority_instant_tube', unifieddyes.def { description = S("Low Priority Instatube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = "Can't be used with normal tubes, but with instatubes it works fine.", connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, @@ -623,7 +623,7 @@ core.register_node( 'sbz_instatube:teleport_instant_tube', unifieddyes.def { description = S("Teleport Instatube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = { 'Links to all teleport tubes in a channel at once.' }, connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, @@ -704,7 +704,7 @@ core.register_node( 'sbz_instatube:randomized_input_instant_tube', unifieddyes.def { description = S("Randomized Input Instatube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, paramtype2 = 'color', @@ -749,7 +749,7 @@ core.register_node( 'sbz_instatube:cycling_input_instant_tube', unifieddyes.def { description = S("Cycling Input Instatube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), connects_to = { 'group:tubedevice', 'pipeworks:automatic_filter_injector' }, info_extra = { '' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, @@ -912,7 +912,7 @@ end) core.register_craftitem('sbz_instatube:dbg_tool', { description = S("Instatube Debug Tool"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = S("Shows all machines connected to instatube"), inventory_image = 'instatube_debug_tool.png', stack_max = 1, diff --git a/mods/sbz_logic/init.lua b/mods/sbz_logic/init.lua index 5dae7dd3..31a93ada 100644 --- a/mods/sbz_logic/init.lua +++ b/mods/sbz_logic/init.lua @@ -27,7 +27,7 @@ dofile(MP .. "/code_disks.lua") sbz_api.register_stateful_machine("sbz_logic:lua_controller", { tiles = { "luacontroller_top.png", "luacontroller_top.png", "luacontroller.png" }, description = S("Lua Controller"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = { S("The most complex block in this game."), S("No like actually... it might be"), diff --git a/mods/sbz_logic/knowledge.lua b/mods/sbz_logic/knowledge.lua index c9fd313d..402ac800 100644 --- a/mods/sbz_logic/knowledge.lua +++ b/mods/sbz_logic/knowledge.lua @@ -97,7 +97,7 @@ end core.register_node("sbz_logic:knowledge_station", { description = S("Knowledge Station"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "Explains logic.", on_construct = function(pos) local meta = core.get_meta(pos) @@ -106,7 +106,7 @@ core.register_node("sbz_logic:knowledge_station", { on_receive_fields = on_receive_fields, groups = { matter = 1, ui_logic = 1 }, tiles = { "knowledge_station.png" }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) local player_name = clicker:get_player_name() core.sound_play("questbook", { diff --git a/mods/sbz_logic_devices/builder.lua b/mods/sbz_logic_devices/builder.lua index ad5abcd9..2cbd6549 100644 --- a/mods/sbz_logic_devices/builder.lua +++ b/mods/sbz_logic_devices/builder.lua @@ -161,7 +161,7 @@ sbz_api.register_machine("sbz_logic_devices:builder", { "lua_builder.png" }, groups = { matter = 1, ui_logic = 1, sbz_machine_subticking = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), on_construct = function(pos) local meta = core.get_meta(pos) meta:get_inventory():set_size("main", 32) diff --git a/mods/sbz_logic_devices/button.lua b/mods/sbz_logic_devices/button.lua index 7183d210..e6f8c7a7 100644 --- a/mods/sbz_logic_devices/button.lua +++ b/mods/sbz_logic_devices/button.lua @@ -85,7 +85,7 @@ sbz_api.register_stateful("sbz_logic_devices:toggle", { { -0.375, -0.375, 0.3125, 0.375, 0.375, 0.5 }, -- NodeBox1 } }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = "facedir", paramtype = "light", light_source = 10, diff --git a/mods/sbz_logic_devices/formspec_screen.lua b/mods/sbz_logic_devices/formspec_screen.lua index ea5e5c0d..f7633fd2 100644 --- a/mods/sbz_logic_devices/formspec_screen.lua +++ b/mods/sbz_logic_devices/formspec_screen.lua @@ -20,7 +20,7 @@ core.register_node("sbz_logic_devices:formspec_screen", { 0.5, -3 / 16, 0.5 }, }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = "wallmounted", paramtype = "light", light_source = 5, diff --git a/mods/sbz_logic_devices/gpu.lua b/mods/sbz_logic_devices/gpu.lua index 76d4888f..fb305286 100644 --- a/mods/sbz_logic_devices/gpu.lua +++ b/mods/sbz_logic_devices/gpu.lua @@ -790,7 +790,7 @@ core.register_node("sbz_logic_devices:gpu", { "gpu_side.png", "gpu_side.png" }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), on_logic_send = function(pos, msg, from_pos) if type(msg) ~= "table" then return end diff --git a/mods/sbz_logic_devices/hologram_projector.lua b/mods/sbz_logic_devices/hologram_projector.lua index a3f153e4..1481d347 100644 --- a/mods/sbz_logic_devices/hologram_projector.lua +++ b/mods/sbz_logic_devices/hologram_projector.lua @@ -543,7 +543,7 @@ core.register_node("sbz_logic_devices:hologram_projector", { description = S("Hologram Projector"), info_extra = "Inspired by the holoemitter mod.", groups = { ui_logic = 1, matter = 1 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), on_logic_send = exec_command, tiles = { "hologram_projector.png" }, on_punch = function(pos, _, player) diff --git a/mods/sbz_logic_devices/mscreen.lua b/mods/sbz_logic_devices/mscreen.lua index 9f115fb7..b49aaada 100644 --- a/mods/sbz_logic_devices/mscreen.lua +++ b/mods/sbz_logic_devices/mscreen.lua @@ -198,7 +198,7 @@ core.register_node("sbz_logic_devices:matrix_screen", { return ret end, groups = { matter = 3, ui_logic = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), on_logic_send = function(pos, msg, from_pos) local meta = core.get_meta(pos) if msg == "subscribe" then diff --git a/mods/sbz_logic_devices/nic.lua b/mods/sbz_logic_devices/nic.lua index da6d61ba..5423a972 100644 --- a/mods/sbz_logic_devices/nic.lua +++ b/mods/sbz_logic_devices/nic.lua @@ -18,7 +18,7 @@ core.register_node("sbz_logic_devices:nic", { info_extra = " Priv Locked: " .. (is_priv_locked and "yes" or "no"), groups = { cracky = 3, matter = 1, ui_logic = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), is_ground_content = false, tiles = { "nic_top.png", diff --git a/mods/sbz_logic_devices/nodeDB.lua b/mods/sbz_logic_devices/nodeDB.lua index 22553162..b196b6a0 100644 --- a/mods/sbz_logic_devices/nodeDB.lua +++ b/mods/sbz_logic_devices/nodeDB.lua @@ -10,7 +10,7 @@ core.register_node("sbz_logic_devices:node_db", { description = S("Node DB"), info_extra = { "Similar to the craftDB, use it to lookup node definitions and recipes" }, groups = { matter = 1, ui_logic = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { "gpu_bottom.png", "gpu_bottom.png", diff --git a/mods/sbz_logic_devices/noteblock.lua b/mods/sbz_logic_devices/noteblock.lua index dd42032d..c95d88d1 100644 --- a/mods/sbz_logic_devices/noteblock.lua +++ b/mods/sbz_logic_devices/noteblock.lua @@ -18,7 +18,7 @@ core.register_node("sbz_logic_devices:noteblock", { }, paramtype2 = "4dir", groups = { matter = 1, ui_logic = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), on_logic_send = function(pos, msg, from_pos) if type(msg) == "string" then return core.sound_play(msg, { pos = pos }) end if type(msg) ~= "table" then return end diff --git a/mods/sbz_logic_devices/object_detector.lua b/mods/sbz_logic_devices/object_detector.lua index 2decdc55..2f0312c1 100644 --- a/mods/sbz_logic_devices/object_detector.lua +++ b/mods/sbz_logic_devices/object_detector.lua @@ -13,7 +13,7 @@ core.register_node("sbz_logic_devices:object_detector", { matter = 1, ui_logic = 1 }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), on_logic_send = function(pos, msg, from_pos) local settings = { inventories = true, diff --git a/mods/sbz_meteorites/attractor.lua b/mods/sbz_meteorites/attractor.lua index 44883143..795994a6 100644 --- a/mods/sbz_meteorites/attractor.lua +++ b/mods/sbz_meteorites/attractor.lua @@ -121,7 +121,7 @@ core.register_node('sbz_meteorites:gravitational_attractor', { on_construct = function(pos) core.add_entity(pos, 'sbz_meteorites:gravitational_attractor_entity') end, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), }) do -- Gravitational Attractor recipe scope @@ -151,7 +151,7 @@ core.register_node('sbz_meteorites:gravitational_repulsor', { on_construct = function(pos) core.add_entity(pos, 'sbz_meteorites:gravitational_attractor_entity') end, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), }) mesecon.register_on_mvps_move(function(moved) diff --git a/mods/sbz_meteorites/meteorite_maker.lua b/mods/sbz_meteorites/meteorite_maker.lua index 0472c11c..a0549c56 100644 --- a/mods/sbz_meteorites/meteorite_maker.lua +++ b/mods/sbz_meteorites/meteorite_maker.lua @@ -159,7 +159,7 @@ sbz_api.register_stateful_machine("sbz_meteorites:meteorite_maker", { groups = { matter = 1 }, light_source = 0, description = S("Meteorite Maker"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = "Makes meteorites", on_construct = function(pos) diff --git a/mods/sbz_meteorites/nodes.lua b/mods/sbz_meteorites/nodes.lua index 3190a86e..a7d7bfcc 100644 --- a/mods/sbz_meteorites/nodes.lua +++ b/mods/sbz_meteorites/nodes.lua @@ -14,7 +14,7 @@ core.register_node('sbz_meteorites:meteoric_matter', { max_items = 9 * 4, items = matter_items, }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), after_dig_node = function(pos, oldnode, oldmetadata, digger) if math.random(1, 100000) == 1 then -- 1/100k local player_name = digger:get_player_name() @@ -47,7 +47,7 @@ core.register_node('sbz_meteorites:meteoric_antimatter', { max_items = 9 * 4, items = antimatter_items, }, - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), }) local emittrium_items = {} @@ -65,7 +65,7 @@ core.register_node('sbz_meteorites:meteoric_emittrium', { max_items = 9 * 4, items = emittrium_items, }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) local drops = sbz_api.crusher_drops @@ -90,7 +90,7 @@ core.register_node('sbz_meteorites:meteoric_metal', { max_items = 8 * 4, items = processed_drops, }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) core.register_node('sbz_meteorites:neutronium', { @@ -99,7 +99,7 @@ core.register_node('sbz_meteorites:neutronium', { paramtype = 'light', light_source = 4, groups = { gravity = 300, matter = 1, charged = 1, attraction = 256 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) core.register_node('sbz_meteorites:antineutronium', { description = S("Antineutronium"), @@ -107,7 +107,7 @@ core.register_node('sbz_meteorites:antineutronium', { paramtype = 'light', light_source = 8, groups = { antigravity = 300, antimatter = 1, charged = 1, attraction = -256 }, - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), }) local core_blob = 'sbz_resources:compressed_core_dust' diff --git a/mods/sbz_multiblocks/blast_furnace.lua b/mods/sbz_multiblocks/blast_furnace.lua index 11a0b69e..ab4fbfbe 100644 --- a/mods/sbz_multiblocks/blast_furnace.lua +++ b/mods/sbz_multiblocks/blast_furnace.lua @@ -163,7 +163,7 @@ end -- contains storage core.register_node("sbz_multiblocks:blast_furnace_controller", ud { description = S("Blast Furnace Controller"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, multiblock_controller = 1, @@ -375,7 +375,7 @@ core.register_node("sbz_multiblocks:blast_furnace_controller", ud { core.register_node("sbz_multiblocks:blast_furnace_casing", ud { description = S("Blast Furnace Casing"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, wallsharing = 1, @@ -395,7 +395,7 @@ core.register_node("sbz_multiblocks:blast_furnace_casing", ud { core.register_node("sbz_multiblocks:blast_furnace_heater", ud { description = S("Blast Furnace Heater"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), heater_power_use = 5, info_power_needed = 5, -- they do not connect to cables directly groups = { @@ -422,7 +422,7 @@ core.register_node("sbz_multiblocks:blast_furnace_heater", ud { sbz_api.register_machine("sbz_multiblocks:blast_furnace_power_port", ud { description = S("Blast Furnace Power Port"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, multiblock_power_port = 1, @@ -476,7 +476,7 @@ sbz_api.register_machine("sbz_multiblocks:blast_furnace_power_port", ud { core.register_node("sbz_multiblocks:blast_furnace_item_input", ud { description = S("Blast Furnace Item Input"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = "It will never clog the furnace just trust me, if it does somehow its a bug", groups = { matter = 1, @@ -544,7 +544,7 @@ core.register_node("sbz_multiblocks:blast_furnace_item_input", ud { }) core.register_node("sbz_multiblocks:blast_furnace_item_output", ud { description = S("Blast Furnace Item Output"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, tubedevice = 1, diff --git a/mods/sbz_multiblocks/large_liquid_storage.lua b/mods/sbz_multiblocks/large_liquid_storage.lua index 25e87982..7e907a5a 100644 --- a/mods/sbz_multiblocks/large_liquid_storage.lua +++ b/mods/sbz_multiblocks/large_liquid_storage.lua @@ -145,7 +145,7 @@ core.register_node( 'sbz_multiblocks:large_liquid_storage_controller', unifieddyes.def { description = S("Large Liquid Storage Controller"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, multiblock_controller = 1, @@ -248,13 +248,13 @@ core.register_node( 'sbz_multiblocks:large_liquid_storage_casing', unifieddyes.def { description = S("Large Liquid Storage Casing"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, wallsharing = 1, ui_fluid = 1, }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = 'Or "Dark Stained Colorium Glass" If you are into decorating', drawtype = 'glasslike_framed', paramtype = 'light', @@ -274,7 +274,7 @@ core.register_node( 'sbz_multiblocks:large_liquid_storage_casing_edge', unifieddyes.def { description = S("Large Liquid Storage Edge Casing"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, wallsharing = 1, diff --git a/mods/sbz_pipeworks/autocrafter.lua b/mods/sbz_pipeworks/autocrafter.lua index 48ba09b3..617c1306 100644 --- a/mods/sbz_pipeworks/autocrafter.lua +++ b/mods/sbz_pipeworks/autocrafter.lua @@ -379,7 +379,7 @@ local list_cache = sbz_api.make_cache('list_cache', 0, true) core.register_node('pipeworks:autocrafter', { description = S 'Autocrafter', - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drawtype = 'normal', tiles = { 'autocrafter.png' }, groups = { diff --git a/mods/sbz_pipeworks/basic_blocks.lua b/mods/sbz_pipeworks/basic_blocks.lua index e7fc887d..0c828a00 100644 --- a/mods/sbz_pipeworks/basic_blocks.lua +++ b/mods/sbz_pipeworks/basic_blocks.lua @@ -55,7 +55,7 @@ end core.register_node("pipeworks:item_sorter", { description = S("Item Sorter"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { { name = "itemsorter.png", color = "green" }, { name = "itemsorter.png", color = "yellow" }, @@ -193,7 +193,7 @@ end core.register_node("pipeworks:item_void", { description = S("Item Void"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { { name = "trashcan.png" } }, groups = { cracky = 3, matter = 3, tubedevice = 1, tubedevice_receiver = 1 }, tube = { diff --git a/mods/sbz_pipeworks/basic_tubes.lua b/mods/sbz_pipeworks/basic_tubes.lua index 10c384f3..3e87dc74 100644 --- a/mods/sbz_pipeworks/basic_tubes.lua +++ b/mods/sbz_pipeworks/basic_tubes.lua @@ -2,7 +2,7 @@ local S = core.get_translator(core.get_current_modname()) pipeworks.register_tube('pipeworks:tube', { description = S("Basic Tube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling } }, noctr = { { name = 'basic_tube_noctr.png', backface_culling = pipeworks.tube_backface_culling } }, }) @@ -23,7 +23,7 @@ end pipeworks.register_tube('pipeworks:accelerator_tube', { description = S("Accelerating Tube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = 'springgreen' }, }, @@ -58,7 +58,7 @@ end pipeworks.register_tube('pipeworks:one_direction_tube', { description = S("One Direction Tube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = '#45283c' } }, noctr = { { name = 'basic_tube_noctr.png', backface_culling = pipeworks.tube_backface_culling, color = '#45283c' } }, node_def = { @@ -135,7 +135,7 @@ end pipeworks.register_tube('pipeworks:high_priority_tube', { description = S("High Priority Tube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = 'tomato' } }, noctr = { { name = 'basic_tube_noctr.png', backface_culling = pipeworks.tube_backface_culling, color = 'tomato' } }, node_def = { @@ -159,7 +159,7 @@ end pipeworks.register_tube('pipeworks:low_priority_tube', { description = S("Low Priority Tube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { { name = 'basic_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = 'lightgreen' }, }, @@ -187,7 +187,7 @@ end core.register_node('pipeworks:one_way_tube', { description = S("One-Way Tube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), tiles = { { name = 'one_way_tube_top.png', backface_culling = pipeworks.tube_backface_culling }, { name = 'one_way_tube_top.png', backface_culling = pipeworks.tube_backface_culling }, @@ -248,7 +248,7 @@ end pipeworks.register_tube('pipeworks:crossing_tube', { description = S("Crossing Tube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { 'crossing_tube_plain.png' }, noctr = { 'crossing_tube_noctr.png' }, node_def = { @@ -276,7 +276,7 @@ end pipeworks.register_tube('pipeworks:broken_tube', { description = S("Broken Tube"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), plain = { { name = 'pipeworks_broken_tube_plain.png', backface_culling = pipeworks.tube_backface_culling, color = 'red' }, }, diff --git a/mods/sbz_pipeworks/filter_injector.lua b/mods/sbz_pipeworks/filter_injector.lua index f05f976c..6bd21c57 100644 --- a/mods/sbz_pipeworks/filter_injector.lua +++ b/mods/sbz_pipeworks/filter_injector.lua @@ -44,7 +44,7 @@ local animation_def = { core.register_node('pipeworks:automatic_filter_injector', { description = S("Automatic Filter-Injector"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = 'Pushes items out of containers.', tiles = { { name = 'filter_side.png^[transformFX', animation = animation_def }, diff --git a/mods/sbz_pipeworks/pattern_storinator.lua b/mods/sbz_pipeworks/pattern_storinator.lua index affbe336..d0a19e99 100644 --- a/mods/sbz_pipeworks/pattern_storinator.lua +++ b/mods/sbz_pipeworks/pattern_storinator.lua @@ -28,7 +28,7 @@ core.register_node( 'pipeworks:pattern_storinator', unifieddyes.def { description = S("Pattern Storinator"), - sounds = sbz_api.sounds.wood_planks(), + sounds = sbz_audio.wood_planks(), info_extra = '16 slots', groups = { tubedevice = 1, diff --git a/mods/sbz_pipeworks/tube_register.lua b/mods/sbz_pipeworks/tube_register.lua index 48356861..dc1affd2 100644 --- a/mods/sbz_pipeworks/tube_register.lua +++ b/mods/sbz_pipeworks/tube_register.lua @@ -124,7 +124,7 @@ local register_one_tube = function(name, tname, dropname, desc, plain, noctrs, s pipeworks.scan_for_tube_objects(pos) end, tubenumber = tonumber(tname), - sounds = sbz_api.sounds.matter() + sounds = sbz_audio.matter() } if special == nil then special = {} end diff --git a/mods/sbz_planets/orbs.lua b/mods/sbz_planets/orbs.lua index 7bd73d46..6ed5a040 100644 --- a/mods/sbz_planets/orbs.lua +++ b/mods/sbz_planets/orbs.lua @@ -27,7 +27,7 @@ end core.register_node("sbz_planets:dwarf_orb_ore", { description = S("Dwarf Orb Ore"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), groups = { matter = 1, antimatter = 1, ore = 1, level = 2, }, @@ -37,7 +37,7 @@ core.register_node("sbz_planets:dwarf_orb_ore", { core.register_node("sbz_planets:dwarf_stone", { description = S("Stone"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "stone.png" }, groups = { matter = 1, charged = 1, moss_growable = 1, not_in_creative_inventory = 1, explody = 10 }, drop = "sbz_resources:stone" diff --git a/mods/sbz_planets/planet_nodes.lua b/mods/sbz_planets/planet_nodes.lua index 1bb1559d..94edeebe 100644 --- a/mods/sbz_planets/planet_nodes.lua +++ b/mods/sbz_planets/planet_nodes.lua @@ -50,7 +50,7 @@ core.register_node( description = S("Marble"), tiles = { { name = 'marble.png', scale = 2, align_style = 'world' } }, groups = { matter = 1, charged = 1, explody = 10 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), } ) @@ -60,7 +60,7 @@ core.register_node('sbz_planets:basalt', { description = S("Basalt"), tiles = { { name = 'basalt.png' } }, groups = { matter = 1, charged = 1, explody = 10 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) stairs.register 'sbz_planets:basalt' @@ -68,7 +68,7 @@ core.register_node('sbz_planets:red_stone', { description = S("Red Stone"), tiles = { { name = 'red_stone.png' } }, groups = { matter = 1, charged = 1, explody = 10 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) stairs.register 'sbz_planets:red_stone' @@ -76,14 +76,14 @@ core.register_node('sbz_planets:red_stone', { description = S("Red Stone"), tiles = { { name = 'red_stone.png' } }, groups = { matter = 1, charged = 1, explody = 10 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) core.register_node('sbz_planets:thorium_ore', { description = S("Thorium Ore"), tiles = { { name = 'thorium_ore.png' } }, groups = { matter = 1, charged = 1, explody = 10, silktouch = 1, level = 2, ore = 1, radioactive = 1 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drop = 'sbz_chem:thorium_powder', }) core.register_ore { @@ -99,14 +99,14 @@ core.register_node('sbz_planets:blue_stone', { description = S("Blue Stone"), tiles = { { name = 'stone.png^[colorize:blue:128' } }, groups = { matter = 1, charged = 1, explody = 10 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) core.register_node('sbz_planets:uranium_ore', { description = S("Uranium Ore"), tiles = { { name = 'uranium_ore.png' } }, groups = { matter = 1, charged = 1, explody = 10, silktouch = 1, level = 2, ore = 1, radioactive = 1 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drop = 'sbz_chem:uranium_powder', light_source = 8, }) @@ -127,7 +127,7 @@ core.register_node('sbz_planets:granite', { description = S("Granite"), tiles = { { name = 'granite.png', align_style = 'world', scale = 2 } }, groups = { matter = 1, charged = 1, explody = 10 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) stairs.register 'sbz_planets:granite' @@ -135,7 +135,7 @@ core.register_node('sbz_planets:dead_core', { description = S("Dead Core Piece"), tiles = { 'dead_core_piece.png' }, groups = { matter = 1, charged = 1, explody = 1, level = 2 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), light_source = 14, damage_per_second = 20, }) @@ -147,7 +147,7 @@ core.register_node('sbz_planets:ice', { description = S("Ice"), tiles = { 'ice.png' }, groups = { matter = 1, water = 1, cold = 20, charged = 1, slippery = 5, explody = 20 }, - sounds = sbz_api.sounds.ice(), + sounds = sbz_audio.ice(), light_source = 1, }) stairs.register 'sbz_planets:ice' @@ -156,7 +156,7 @@ core.register_node('sbz_planets:ice_core', { description = S("Ice Core Piece - deprecated"), tiles = { 'ice_core_piece.png' }, groups = { matter = 1, charged = 1, slippery = (2 ^ 15) - 1, explody = 10, level = 2 }, - sounds = sbz_api.sounds.ice(), + sounds = sbz_audio.ice(), light_source = core.LIGHT_MAX, drop = 'sbz_resources:movable_emitter', }) @@ -167,7 +167,7 @@ core.register_node('sbz_planets:snow', { drawtype = 'liquid', paramtype = 'light', groups = { oddly_breakable_by_hand = 1, matter = 3, water = 1, cold = 10, charged = 1, explody = 100 }, - sounds = sbz_api.sounds.snow(), + sounds = sbz_audio.snow(), walkable = false, climbable = true, move_resistance = 1, @@ -210,7 +210,7 @@ core.register_node('sbz_planets:snow_layer', { not_in_creative_inventory = 1, attached_node = 1, }, - sounds = sbz_api.sounds.snow(), + sounds = sbz_audio.snow(), node_box = snow_box, collision_box = snow_box, walkable = false, @@ -230,7 +230,7 @@ core.register_node('sbz_planets:colorium_core', { description = S("Colorium Core Piece - Deprecated"), tiles = { 'blank.png^[invert:rgba' }, groups = { matter = 1, charged = 1, slippery = (2 ^ 15) - 1, explody = 1, level = 2, not_in_creative_inventory = 1 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), light_source = core.LIGHT_MAX, drop = 'sbz_bio:colorium_emitter', }) diff --git a/mods/sbz_planets/planet_teleporter.lua b/mods/sbz_planets/planet_teleporter.lua index 9b8e46c7..161238e1 100644 --- a/mods/sbz_planets/planet_teleporter.lua +++ b/mods/sbz_planets/planet_teleporter.lua @@ -5,7 +5,7 @@ local mg_vector = vector.new(mg_limit, mg_limit, mg_limit) core.register_node("sbz_planets:planet_teleporter", { info_extra = S("Teleports you to a planet. Insert a warp crystal to get teleported."), description = S("Planet Teleporter"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "planet_teleporter.png" }, groups = { matter = 1, level = 2 }, on_rightclick = function(pos, node, clicker, stack, pointed) diff --git a/mods/sbz_power/batteries.lua b/mods/sbz_power/batteries.lua index 053c3745..13b41f17 100644 --- a/mods/sbz_power/batteries.lua +++ b/mods/sbz_power/batteries.lua @@ -31,7 +31,7 @@ end sbz_power.register_battery("sbz_power:battery", { description = S("Battery"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "battery.png" }, groups = { matter = 1 }, battery_max = 5000, @@ -54,7 +54,7 @@ end sbz_power.register_battery("sbz_power:advanced_battery", { description = S("Advanced Battery"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "advanced_battery.png" }, groups = { matter = 1 }, battery_max = 20000, @@ -76,7 +76,7 @@ end sbz_power.register_battery("sbz_power:very_advanced_battery", { description = S("Very Advanced Battery"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "very_advanced_battery.png" }, groups = { matter = 1, level = 2 }, battery_max = 200000, @@ -116,7 +116,7 @@ end sbz_power.register_battery("sbz_power:teleport_battery", { description = S("Teleport Battery"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "teleport_battery.png" }, groups = { matter = 1, level = 2 }, no_battery_formspec = true, @@ -247,7 +247,7 @@ end core.register_node("sbz_power:creative_battery", { description = S("Creative Power Generating Battery"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "It never runs out of power... useful for when you need to not have noise in your \"Supply\" statistic in the switching station.", tiles = { { name = "creative_battery_power_gen.png", animation = { type = "vertical_frames", length = 0.5 }, } }, @@ -262,7 +262,7 @@ core.register_node("sbz_power:creative_battery", { core.register_node("sbz_power:real_creative_battery", { description = S("Creative Battery"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "creative_battery.png" }, groups = { creative = 1, sbz_battery = 1, sbz_machine = 1, pipe_conducts = 1, pipe_connects = 1, matter = 3 }, battery_max = 10 ^ 9, -- G diff --git a/mods/sbz_power/connectors.lua b/mods/sbz_power/connectors.lua index cf3ed4c0..0573a57e 100644 --- a/mods/sbz_power/connectors.lua +++ b/mods/sbz_power/connectors.lua @@ -4,7 +4,7 @@ local hash = core.hash_node_position core.register_node("sbz_power:connector_off", { description = S("Connector"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drawtype = "nodebox", paramtype = "light", paramtype2 = "wallmounted", @@ -50,7 +50,7 @@ core.register_node("sbz_power:connector_off", { core.register_node("sbz_power:connector_on", { description = S("Connector"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drawtype = "nodebox", paramtype = "light", paramtype2 = "wallmounted", diff --git a/mods/sbz_power/ele_fab.lua b/mods/sbz_power/ele_fab.lua index 04d35868..f6caab57 100644 --- a/mods/sbz_power/ele_fab.lua +++ b/mods/sbz_power/ele_fab.lua @@ -101,7 +101,7 @@ local power_needed = 30 sbz_api.register_stateful_machine("sbz_power:ele_fab", { description = S("Ele Fab"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "Yeah the concept is from techage.", tiles = { "ele_fab_top.png", diff --git a/mods/sbz_power/emittrium_reactor.lua b/mods/sbz_power/emittrium_reactor.lua index 80aff99f..9db9af03 100644 --- a/mods/sbz_power/emittrium_reactor.lua +++ b/mods/sbz_power/emittrium_reactor.lua @@ -30,7 +30,7 @@ end core.register_node('sbz_power:reactor_shell', { description = S("Reactor Shell"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = 'Used for the emittrium reactor', tiles = { 'reactor_shell.png', @@ -62,7 +62,7 @@ core.register_node('sbz_power:reactor_glass', { 'reactor_shell.png', 'blank.png', }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), drawtype = 'glasslike_framed', paramtype = 'light', groups = { matter = 1, reactor_shell = 1, explody = 1, charged = 1 }, @@ -87,7 +87,7 @@ local reactor_shell = 'blank.png^[invert:rgba^[multiply:#639bFF^reactor_shell.pn core.register_node('sbz_power:reactor_item_input', { description = S("Reactor Emittrium Input"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = 'ONLY ONE can be used in an emittrium reactor, supplies emittrium to the reactor core', groups = { matter = 1, reactor_shell = 1, tubedevice = 1, tubedevice_receiver = 1, explody = 1, charged = 1 }, @@ -138,7 +138,7 @@ end sbz_api.register_stateful('sbz_power:reactor_core', { description = S("Reactor Core"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = "Don't let it explode!", tiles = { 'reactor_core.png', @@ -216,7 +216,7 @@ end core.register_node('sbz_power:reactor_infoscreen', { description = S("Reactor Infoscreen"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = '4dir', tiles = { reactor_shell, @@ -322,7 +322,7 @@ end sbz_api.register_generator('sbz_power:reactor_power_port', { description = S("Reactor Power Port"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), paramtype2 = '4dir', tiles = { reactor_shell, @@ -367,7 +367,7 @@ end core.register_node('sbz_power:reactor_coolant_port', { description = S("Reactor Coolant Port"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), info_extra = 'Provide it water', paramtype2 = '4dir', tiles = { diff --git a/mods/sbz_power/extractor.lua b/mods/sbz_power/extractor.lua index 179fd5bc..739e8bf6 100644 --- a/mods/sbz_power/extractor.lua +++ b/mods/sbz_power/extractor.lua @@ -13,7 +13,7 @@ local formspec = [[ sbz_api.register_machine('sbz_power:simple_matter_extractor', { description = S("Simple Matter Extractor"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { 'simple_matter_extractor.png' }, groups = { matter = 1, sbz_machine = 1, pipe_connects = 1 }, sunlight_propagates = true, @@ -87,7 +87,7 @@ local advanced_formspec = [[ sbz_api.register_machine('sbz_power:advanced_matter_extractor', { description = S("Advanced Matter Extractor"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { 'advanced_matter_extractor.png' }, groups = { matter = 1, sbz_machine = 1, pipe_connects = 1 }, sunlight_propagates = true, diff --git a/mods/sbz_power/fluid_transport.lua b/mods/sbz_power/fluid_transport.lua index 2a17608c..0a41d64d 100644 --- a/mods/sbz_power/fluid_transport.lua +++ b/mods/sbz_power/fluid_transport.lua @@ -52,7 +52,7 @@ local wire_size = 3 / 16 core.register_node("sbz_power:fluid_pipe", { description = S("Fluid Pipe"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = "Transports liquid", connects_to = { "group:fluid_pipe_connects" }, @@ -203,7 +203,7 @@ end sbz_api.register_stateful_machine("sbz_power:pump", { description = S("Fluid Pump"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), autostate = true, paramtype2 = "facedir", after_place_node = function(pos) @@ -343,7 +343,7 @@ end sbz_api.register_stateful_machine("sbz_power:creative_pump", { description = S("Creative Pump"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), autostate = true, paramtype2 = "facedir", disallow_pipeworks = true, @@ -475,7 +475,7 @@ sbz_api.register_stateful_machine("sbz_power:creative_pump", { core.register_node("sbz_power:fluid_tank", { description = S("Fluid Storage Tank"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), groups = { matter = 1, fluid_pipe_connects = 1, fluid_pipe_stores = 1, ui_fluid = 1 }, tiles = { "fluid_tank_top.png", @@ -528,7 +528,7 @@ end sbz_api.register_stateful_machine("sbz_power:fluid_capturer", { description = S("Fluid Capturer"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), autostate = true, tiles = { "fluid_capturer_top.png^[verticalframe:7:7", @@ -608,7 +608,7 @@ end sbz_api.register_machine("sbz_power:fluid_cell_filler", { description = S("Fluid Cell Filler"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { "fluid_tank_top.png", "fluid_tank_top.png", diff --git a/mods/sbz_power/generator.lua b/mods/sbz_power/generator.lua index 24bb03b6..f554b839 100644 --- a/mods/sbz_power/generator.lua +++ b/mods/sbz_power/generator.lua @@ -6,7 +6,7 @@ local charged_particle_power = 36 -- 36*10 => 360 power per charged particle sbz_api.register_stateful_generator('sbz_power:simple_charge_generator', { description = S("Simple Charge Generator"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { 'simple_charge_generator_off.png' }, groups = { dig_immediate = 2, sbz_machine = 1, pipe_connects = 1 }, @@ -288,7 +288,7 @@ sbz_api.recipe.register_craft { -- Starlight Collector sbz_api.register_generator('sbz_power:starlight_collector', { description = S("Starlight Collector"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), drawtype = 'nodebox', tiles = { 'starlight_collector.png', @@ -421,7 +421,7 @@ sbz_api.register_stateful_generator('sbz_power:antimatter_generator', { 'antimatter_gen_top.png', 'antimatter_gen_side.png', }, - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), input_inv = 'input', output_inv = 'input', on_construct = function(pos) @@ -610,7 +610,7 @@ end sbz_api.register_generator('sbz_power:creative_generator', { description = S("Creative Generator"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { { name = 'creative_battery_power_gen.png^[colorize:purple:100', diff --git a/mods/sbz_power/infinite_storinator.lua b/mods/sbz_power/infinite_storinator.lua index 4a79fd1b..11e2711d 100644 --- a/mods/sbz_power/infinite_storinator.lua +++ b/mods/sbz_power/infinite_storinator.lua @@ -2,7 +2,7 @@ local S = core.get_translator(core.get_current_modname()) sbz_api.register_machine('sbz_power:infinite_storinator', { description = S("Infinite Storinator (deprecated)"), - sounds = sbz_api.sounds.wood_planks(), + sounds = sbz_audio.wood_planks(), paramtype2 = 'facedir', groups = { matter = 1, not_in_creative_inventory = 1 }, drop = '', diff --git a/mods/sbz_power/init.lua b/mods/sbz_power/init.lua index aacb8f5e..70bd1b1d 100644 --- a/mods/sbz_power/init.lua +++ b/mods/sbz_power/init.lua @@ -76,7 +76,7 @@ function sbz_api.register_machine(name, def) def.groups.sbz_machine = 1 def.groups.pipe_conducts = def.groups.pipe_conducts or 1 def.groups.pipe_connects = 1 - -- def.sounds = def.sounds or sbz_api.sounds.machine() + -- def.sounds = def.sounds or sbz_audio.machine() sbz_api.add_tube_support(def) if not def.control_action_raw then @@ -139,7 +139,7 @@ function sbz_api.register_generator(name, def) def.groups.sbz_generator = 1 def.groups.pipe_conducts = def.groups.pipe_conducts or 1 def.groups.pipe_connects = 1 - -- def.sounds = sbz_api.sounds.machine() + -- def.sounds = sbz_audio.machine() if def.power_generated then def.action = function(pos, node, meta, ...) diff --git a/mods/sbz_power/lights.lua b/mods/sbz_power/lights.lua index ad7747a8..cb9d2c5f 100644 --- a/mods/sbz_power/lights.lua +++ b/mods/sbz_power/lights.lua @@ -3,7 +3,7 @@ local S = core.get_translator(core.get_current_modname()) local cost = 1 sbz_api.register_stateful_machine("sbz_power:powered_lamp", { description = S("Powered Lamp"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), tiles = { "power_lamp_off.png^[colorize:black:50" }, light_source = 0, info_extra = "Really cheap lamp.", @@ -92,7 +92,7 @@ end sbz_api.register_stateful_machine("sbz_power:super_powered_lamp", { description = S("Super Powered Lamp"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), tiles = { "super_power_lamp_off.png^[colorize:black:50" }, light_source = 0, info_extra = "Lights up a 13x13x13 square around itself!", diff --git a/mods/sbz_power/misc.lua b/mods/sbz_power/misc.lua index 7ffa5ca9..44f989ab 100644 --- a/mods/sbz_power/misc.lua +++ b/mods/sbz_power/misc.lua @@ -2,7 +2,7 @@ local S = core.get_translator(core.get_current_modname()) sbz_api.register_stateful_machine("sbz_power:phosphor", unifieddyes.def { description = S("Phosphor"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), paramtype = "light", sunlight_propagates = true, drawtype = "glasslike_framed", @@ -84,7 +84,7 @@ local item_vaccum_power_demand = 20 sbz_api.register_machine("sbz_power:item_vacuum", { description = S("Item Vacuum"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { "item_vacuum.png" }, groups = { sbz_machine = 1, diff --git a/mods/sbz_power/phlogiston_fuser.lua b/mods/sbz_power/phlogiston_fuser.lua index 37594c5c..3cf11446 100644 --- a/mods/sbz_power/phlogiston_fuser.lua +++ b/mods/sbz_power/phlogiston_fuser.lua @@ -16,7 +16,7 @@ end local ticks = 60 * 3 -- 3 minutes... yeah sbz_api.register_stateful_machine("sbz_power:phlogiston_fuser", { description = S("Phlogiston Fuser"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { "phlogiston_fuser_side.png", "phlogiston_fuser_side.png", diff --git a/mods/sbz_power/power_pipes.lua b/mods/sbz_power/power_pipes.lua index 45b1be20..2d41134e 100644 --- a/mods/sbz_power/power_pipes.lua +++ b/mods/sbz_power/power_pipes.lua @@ -25,7 +25,7 @@ core.register_node( 'sbz_power:power_pipe', unifieddyes.def { description = S("Emittrium Power Cable"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), connects_to = { 'group:pipe_connects' }, connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, @@ -72,7 +72,7 @@ core.register_node('sbz_power:airtight_power_cable', { connect_sides = { 'top', 'bottom', 'front', 'left', 'back', 'right' }, tiles = { 'airtight_power_cable.png' }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), drawtype = 'mesh', mesh = 'voxelmodel.obj', light_source = 3, diff --git a/mods/sbz_power/sensors/delayer.lua b/mods/sbz_power/sensors/delayer.lua index f7a28c9d..82fce7e0 100644 --- a/mods/sbz_power/sensors/delayer.lua +++ b/mods/sbz_power/sensors/delayer.lua @@ -2,7 +2,7 @@ local S = core.get_translator(core.get_current_modname()) sbz_api.register_stateful("sbz_power:delayer", unifieddyes.def { description = S("Delayer"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "It is not a machine, but conducts power, it is ran on node timers.\nIt may stop when you are not near it, if it isn't forceloaded. You can alternatively use buffer gates connected in a slow way.", tiles = { sbz_api.make_sensor_tex_off("delayer") diff --git a/mods/sbz_power/sensors/gates.lua b/mods/sbz_power/sensors/gates.lua index 684726bd..3925fbba 100644 --- a/mods/sbz_power/sensors/gates.lua +++ b/mods/sbz_power/sensors/gates.lua @@ -44,7 +44,7 @@ local function make_tex_off(tex) end sbz_api.register_stateful_machine("sbz_power:lgate_not", def { description = S("NOT gate"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("not") }, @@ -63,7 +63,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_not", def { sbz_api.register_stateful_machine("sbz_power:lgate_buffer", def { description = S("Buffer gate"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "whats the use for this again...", tiles = { make_tex_off("buffer") @@ -113,7 +113,7 @@ end sbz_api.register_stateful_machine("sbz_power:lgate_or", def { description = S("OR gate"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("or") }, @@ -132,7 +132,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_or", def { sbz_api.register_stateful_machine("sbz_power:lgate_nor", def { description = S("NOR gate"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("nor") }, @@ -151,7 +151,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_nor", def { sbz_api.register_stateful_machine("sbz_power:lgate_and", def { description = S("AND gate"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("and") }, @@ -170,7 +170,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_and", def { sbz_api.register_stateful_machine("sbz_power:lgate_nand", def { description = S("NAND gate"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("nand") }, @@ -189,7 +189,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_nand", def { sbz_api.register_stateful_machine("sbz_power:lgate_xor", def { description = S("XOR gate"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("xor") }, @@ -208,7 +208,7 @@ sbz_api.register_stateful_machine("sbz_power:lgate_xor", def { sbz_api.register_stateful_machine("sbz_power:lgate_xnor", def { description = S("XNOR gate"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { make_tex_off("xnor") }, @@ -235,7 +235,7 @@ end sbz_api.register_stateful_machine("sbz_power:machine_controller", unifieddyes.def { description = S("Machine Controller"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), tiles = { sbz_api.make_sensor_tex_off("machine_controller") }, diff --git a/mods/sbz_power/sensors/item_sensor.lua b/mods/sbz_power/sensors/item_sensor.lua index eac446be..1737307b 100644 --- a/mods/sbz_power/sensors/item_sensor.lua +++ b/mods/sbz_power/sensors/item_sensor.lua @@ -41,7 +41,7 @@ end sbz_api.register_stateful_machine("sbz_power:item_sensor", unifieddyes.def { description = S("Item Sensor"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "Checks if a machine can be inserted to with an item.\nYou can use it to attempt to optimize your giant instatube set up i guess.", tiles = { sbz_api.make_sensor_tex_off("item_sensor"), diff --git a/mods/sbz_power/sensors/node_sensors.lua b/mods/sbz_power/sensors/node_sensors.lua index 64c04b09..2146fdb5 100644 --- a/mods/sbz_power/sensors/node_sensors.lua +++ b/mods/sbz_power/sensors/node_sensors.lua @@ -48,7 +48,7 @@ end sbz_api.register_stateful_machine("sbz_power:light_sensor", unifieddyes.def { description = S("Light Sensor"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "Doesn't emit light when turned on", tiles = { sbz_api.make_sensor_tex_off("light_sensor") @@ -181,7 +181,7 @@ end -- NODE SENSOR sbz_api.register_stateful_machine("sbz_power:node_sensor", unifieddyes.def { description = S("Node Sensor"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { sbz_api.make_sensor_tex_off("node_detector") }, diff --git a/mods/sbz_power/starlight_catcher.lua b/mods/sbz_power/starlight_catcher.lua index dd954cfb..8f921f5d 100644 --- a/mods/sbz_power/starlight_catcher.lua +++ b/mods/sbz_power/starlight_catcher.lua @@ -24,7 +24,7 @@ end core.register_node("sbz_power:starlight_catcher", { description = S("Starlight Catcher"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "For those who insist on starlight collectors.\n Generates energy and is less laggy in large quantities.\n It generates energy that can be converted to 1Cj/s. ", tiles = { @@ -99,7 +99,7 @@ end sbz_api.register_generator("sbz_power:photon_energy_converter", { description = S("Photon-Energy Converter"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = "Converts energy provided by starlight catchers to cosmic joules.\nFor maximum possible lag-reduction during construction, place this component last. (So for about 10 000 starlight catchers, you should consider it.)", tiles = { diff --git a/mods/sbz_power/switching_station.lua b/mods/sbz_power/switching_station.lua index bd2f584b..c5b1937b 100644 --- a/mods/sbz_power/switching_station.lua +++ b/mods/sbz_power/switching_station.lua @@ -458,7 +458,7 @@ end core.register_node('sbz_power:switching_station', { description = S("Switching Station"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { 'switching_station.png' }, groups = { matter = 1, cracky = 1, pipe_connects = 1, pipe_conducts = 1 }, light_source = 3, diff --git a/mods/sbz_power/testnodes.lua b/mods/sbz_power/testnodes.lua index 35a738ea..8f4acc73 100644 --- a/mods/sbz_power/testnodes.lua +++ b/mods/sbz_power/testnodes.lua @@ -4,7 +4,7 @@ local times = {} local h = core.hash_node_position sbz_api.register_machine("sbz_power:testmach", { description = S("Test machine"), - sounds = sbz_api.sounds.machine(), + sounds = sbz_audio.machine(), action = function(pos, node, meta, supply, demand) local t = times[core.hash_node_position(pos)] or 0 meta:set_string("infotext", "DTIME: " .. math.floor((core.get_us_time() - t) / 1000) .. "ms") diff --git a/mods/sbz_power/turret.lua b/mods/sbz_power/turret.lua index 5600d4c4..43ba7bee 100644 --- a/mods/sbz_power/turret.lua +++ b/mods/sbz_power/turret.lua @@ -73,7 +73,7 @@ local range = 120 local power_use = 30 sbz_api.register_machine("sbz_power:turret", { description = S("Automatic Turret"), - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), drawtype = "glasslike", info_extra = { S("Shoots things like lasers."), diff --git a/mods/sbz_resources/emitters.lua b/mods/sbz_resources/emitters.lua index df5433b2..0743c588 100644 --- a/mods/sbz_resources/emitters.lua +++ b/mods/sbz_resources/emitters.lua @@ -201,7 +201,7 @@ end -- THE CORE!!! core.register_node("sbz_resources:the_core", { description = S("The Core"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { "the_core.png" }, groups = { gravity = 25, unbreakable = 1, not_in_creative_inventory = 1 }, drop = "", diff --git a/mods/sbz_resources/nodes.lua b/mods/sbz_resources/nodes.lua index cd91ae0c..7ae1cf9e 100644 --- a/mods/sbz_resources/nodes.lua +++ b/mods/sbz_resources/nodes.lua @@ -7,7 +7,7 @@ core.register_node( tiles = { 'matter_blob.png' }, groups = { matter = 1, cracky = 3, explody = 3, moss_growable = 1 }, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), on_punch = function(pos, node, puncher) core.sound_play('step', { pos = pos, gain = 1.0 }) end, @@ -41,7 +41,7 @@ core.register_node( paramtype = 'light', sunlight_propagates = true, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), on_punch = function(pos, node, puncher) core.sound_play('step', { pos = pos, gain = 1.0 }) end, @@ -84,7 +84,7 @@ core.register_node( groups = { antimatter = 1, cracky = 3, explody = 3, slippery = 32767 }, walkable = true, light_source = 3, - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), on_punch = function(pos, node, puncher) core.sound_play('invertedstep', { pos = pos, gain = 1.0 }) end, @@ -143,7 +143,7 @@ core.register_node( paramtype = 'light', sunlight_propagates = true, walkable = true, - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), on_punch = function(pos, node, puncher) core.sound_play('invertedstep', { pos = pos, gain = 1.0 }) end, @@ -218,7 +218,7 @@ core.register_node( tiles = { 'stone.png' }, groups = { matter = 1, moss_growable = 1, charged = 1 }, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), } ) @@ -255,7 +255,7 @@ core.register_node('sbz_resources:reinforced_matter', { tiles = { 'reinforced_matter.png' }, groups = { matter = 1, moss_growable = 1 }, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) do -- Reinforced Matter recipe scope @@ -278,7 +278,7 @@ core.register_node('sbz_resources:reinforced_antimatter', { groups = { antimatter = 1 }, light_source = 5, walkable = true, - sounds = sbz_api.sounds.antimatter(), + sounds = sbz_audio.antimatter(), }) do -- Reinforced Antimatter recipe scope @@ -360,7 +360,7 @@ core.register_node('sbz_resources:emittrium_glass', { paramtype = 'light', sunlight_propagates = true, groups = { matter = 1, transparent = 1, explody = 100 }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), }) do -- Emittrium Glass recipe scope @@ -388,7 +388,7 @@ core.register_node( paramtype = 'light', sunlight_propagates = true, groups = { matter = 1, transparent = 1, explody = 100, charged = 1 }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), } ) @@ -417,7 +417,7 @@ core.register_node( paramtype = 'light', sunlight_propagates = true, groups = { matter = 1, transparent = 1, explody = 100, charged = 1 }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = "Recipe requires cleargrass but it returns it back once you've crafted with it.", } ) @@ -449,7 +449,7 @@ core.register_node( paramtype = 'light', sunlight_propagates = true, groups = { matter = 1, transparent = 1, explody = 100, charged = 1 }, - sounds = sbz_api.sounds.glass(), + sounds = sbz_audio.glass(), info_extra = { "Recipe requires razorgrass, but it returns it back once you've crafted with it." }, } ) @@ -475,7 +475,7 @@ core.register_node('sbz_resources:compressed_core_dust', { 'compressed_core_dust.png', }, groups = { matter = 2, oddly_breakable_by_hand = 1, explody = 10, charged = 1 }, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), }) do -- Compressed Core Dust recipe scope @@ -513,7 +513,7 @@ core.register_node( groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, explody = 80 }, walkable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, } ) @@ -523,7 +523,7 @@ core.register_node('sbz_resources:red_sand', { tiles = { 'sand.png^[colorize:red:128' }, groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, float = 1, explody = 80 }, walkable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, }) @@ -532,7 +532,7 @@ core.register_node('sbz_resources:gravel', { tiles = { 'gravel.png' }, groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, explody = 40 }, walkable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, }) @@ -543,7 +543,7 @@ core.register_node('sbz_resources:dust', { groups = { matter = 1, charged = 1, sand = 1, explody = 40, soil = 2, oddly_breakable_by_hand = 1 }, walkable = false, climbable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, }) @@ -586,7 +586,7 @@ core.register_node('sbz_resources:clay', { tiles = { 'clay.png' }, groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, explody = 40 }, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), light_source = 3, }) @@ -606,7 +606,7 @@ core.register_node( oddly_breakable_by_hand = 1, }, walkable = true, - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), light_source = 3, } ) @@ -625,7 +625,7 @@ core.register_node('sbz_resources:dark_sand', { groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, float = 0, explody = 80 }, walkable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, }) @@ -635,7 +635,7 @@ core.register_node('sbz_resources:black_sand', { groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, float = 1, explody = 80 }, walkable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, }) @@ -645,7 +645,7 @@ core.register_node('sbz_resources:white_sand', { groups = { matter = 1, charged = 1, sand = 1, falling_node = 1, float = 0, explody = 80 }, walkable = true, - sounds = sbz_api.sounds.sand(), + sounds = sbz_audio.sand(), light_source = 3, }) diff --git a/mods/sbz_resources/parkour.lua b/mods/sbz_resources/parkour.lua index d800473b..89975e8d 100644 --- a/mods/sbz_resources/parkour.lua +++ b/mods/sbz_resources/parkour.lua @@ -12,7 +12,7 @@ core.register_node( 'sbz_resources:emittrium_block', unifieddyes.def { description = S("Emittrium Block"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), info_extra = 'You should punch it, and place some close to each other.', paramtype2 = 'color', groups = { matter = 1 }, diff --git a/mods/sbz_resources/storinators.lua b/mods/sbz_resources/storinators.lua index 70b620cf..99ecc466 100644 --- a/mods/sbz_resources/storinators.lua +++ b/mods/sbz_resources/storinators.lua @@ -122,7 +122,7 @@ local function register_storinator(added_name, def) def_copy.after_place_node = pipeworks.after_place def_copy.input_inv = "main" def_copy.output_inv = "main" - -- def_copy.sounds = sbz_api.sounds.machine() + -- def_copy.sounds = sbz_audio.machine() def_copy.tube = { input_inventory = "main", @@ -230,7 +230,7 @@ end register_storinator("", { description = S("Storinator"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), level = 0, overlay_color = "#696a6a", groups = { matter = 1 }, diff --git a/mods/unifieddyes/nodes.lua b/mods/unifieddyes/nodes.lua index 20016d22..26dcb1cc 100644 --- a/mods/unifieddyes/nodes.lua +++ b/mods/unifieddyes/nodes.lua @@ -24,7 +24,7 @@ core.register_node( 'unifieddyes:colorium_blob', unifieddyes.def { description = S("Colorium Blob"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { 'blank.png^[invert:rgba', }, @@ -44,7 +44,7 @@ core.register_node( 'unifieddyes:colorium_ground_line', unifieddyes.def { description = S("Colorium Ground Line"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { 'blank.png^[invert:rgba', }, @@ -71,7 +71,7 @@ core.register_node( 'unifieddyes:power_ground_line', unifieddyes.def { description = S("Power Ground Line"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { { name = 'power_ground_line.png', @@ -117,7 +117,7 @@ core.register_node( 'unifieddyes:antiblock', unifieddyes.def { description = S("Antiblock"), - sounds = sbz_api.sounds.matter(), + sounds = sbz_audio.matter(), tiles = { 'blank.png', }, From f8a1fd3a7444bd28fc7bebbd5de5920d6b91ae50 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Fri, 27 Mar 2026 16:33:47 -0700 Subject: [PATCH 11/35] Finish merge I guess --- mods/sbz_resources/storinators.lua | 4 ---- mods/unifieddyes/nodes.lua | 4 ---- 2 files changed, 8 deletions(-) diff --git a/mods/sbz_resources/storinators.lua b/mods/sbz_resources/storinators.lua index 215716e9..99ecc466 100644 --- a/mods/sbz_resources/storinators.lua +++ b/mods/sbz_resources/storinators.lua @@ -229,11 +229,7 @@ end register_storinator("", { -<<<<<<< HEAD description = S("Storinator"), -======= - description = "Storinator", ->>>>>>> upstream/master sounds = sbz_audio.matter(), level = 0, overlay_color = "#696a6a", diff --git a/mods/unifieddyes/nodes.lua b/mods/unifieddyes/nodes.lua index 500696e9..0a232ba2 100644 --- a/mods/unifieddyes/nodes.lua +++ b/mods/unifieddyes/nodes.lua @@ -23,11 +23,7 @@ core.register_craftitem('unifieddyes:colorium_powder', { core.register_node( 'unifieddyes:colorium_blob', unifieddyes.def { -<<<<<<< HEAD description = S("Colorium Blob"), -======= - description = 'Colorium Blob', ->>>>>>> upstream/master sounds = sbz_audio.matter(), tiles = { 'blank.png^[invert:rgba', From 6ba01f1400bc26213a535fd57cb413df341899e1 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Fri, 27 Mar 2026 16:34:43 -0700 Subject: [PATCH 12/35] Finish merge more betterer --- mods/unifieddyes/nodes.lua | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/mods/unifieddyes/nodes.lua b/mods/unifieddyes/nodes.lua index 0a232ba2..26dcb1cc 100644 --- a/mods/unifieddyes/nodes.lua +++ b/mods/unifieddyes/nodes.lua @@ -43,11 +43,7 @@ local full_m_height = -full + height core.register_node( 'unifieddyes:colorium_ground_line', unifieddyes.def { -<<<<<<< HEAD description = S("Colorium Ground Line"), -======= - description = 'Colorium Ground Line', ->>>>>>> upstream/master sounds = sbz_audio.matter(), tiles = { 'blank.png^[invert:rgba', @@ -74,11 +70,7 @@ core.register_node( core.register_node( 'unifieddyes:power_ground_line', unifieddyes.def { -<<<<<<< HEAD description = S("Power Ground Line"), -======= - description = 'Power Ground Line', ->>>>>>> upstream/master sounds = sbz_audio.matter(), tiles = { { @@ -124,11 +116,7 @@ end core.register_node( 'unifieddyes:antiblock', unifieddyes.def { -<<<<<<< HEAD description = S("Antiblock"), -======= - description = 'Antiblock', ->>>>>>> upstream/master sounds = sbz_audio.matter(), tiles = { 'blank.png', From 29f6940dbc8f9bd50f3393961dbea342fb42d97d Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Fri, 27 Mar 2026 17:09:27 -0700 Subject: [PATCH 13/35] Revert localization-centric changes to sbz_logic Doing this because lots of stuff is moving and shifting over on frog's fork. --- mods/sbz_logic/code_disks.lua | 37 +++++---- mods/sbz_logic/init.lua | 10 +-- mods/sbz_logic/knowledge.lua | 4 +- mods/sbz_logic/link_tool.lua | 52 ++++++------- mods/sbz_logic/locale/sbz_logic.pot | 113 ---------------------------- mods/sbz_logic/upgrades.lua | 10 +-- 6 files changed, 52 insertions(+), 174 deletions(-) delete mode 100644 mods/sbz_logic/locale/sbz_logic.pot diff --git a/mods/sbz_logic/code_disks.lua b/mods/sbz_logic/code_disks.lua index 79eab72c..198ce5f5 100644 --- a/mods/sbz_logic/code_disks.lua +++ b/mods/sbz_logic/code_disks.lua @@ -1,13 +1,12 @@ -local S = core.get_translator(core.get_current_modname()) - local logic = sbz_api.logic -core.register_craftitem("sbz_logic:data_disk", { - description = S("Empty Data Disk"), + +minetest.register_craftitem("sbz_logic:data_disk", { + description = "Empty Data Disk", info_extra = { - S("Can hold 20 kilobytes."), - S("Can be configured to override editor or normal code on use."), - S("Insert into a luacontroller to configure"), + "Can hold 20 kilobytes.", + "Can be configured to override editor or normal code on use.", + "Insert into a luacontroller to configure", }, can_hold = 1024 * 20, -- 20 kilobytes on_use = function(stack, user, pointed) @@ -17,12 +16,12 @@ core.register_craftitem("sbz_logic:data_disk", { stack_meta:get_int("override_code") == 1, stack_meta:get_int("override_editor") == 1 local target = pointed.under - if core.is_protected(target, user:get_player_name()) then - core.record_protection_violation(target, user:get_player_name()) + if minetest.is_protected(target, user:get_player_name()) then + minetest.record_protection_violation(target, user:get_player_name()) return end - local node = core.get_node(target) - if not core.get_item_group(node.name, "sbz_luacontroller") == 1 then return end + local node = minetest.get_node(target) + if not minetest.get_item_group(node.name, "sbz_luacontroller") == 1 then return end local deserialized = core.deserialize(stack_meta:get_string("data")) if type(deserialized) == "string" then @@ -50,7 +49,7 @@ unified_inventory.register_craft { function logic.register_system_disk(name, desc, source, punch_editor, punch_code, craft) local def = { - description = S("System Code Disk - ") .. desc, + description = "System Code Disk - " .. desc, inventory_image = "system_code_disk.png", info_extra = { "Immutable", @@ -62,13 +61,13 @@ function logic.register_system_disk(name, desc, source, punch_editor, punch_code on_use = function(stack, user, pointed) if pointed.type ~= "node" then return end local target = pointed.under - if core.is_protected(target, user:get_player_name()) then - core.record_protection_violation(target, user:get_player_name()) + if minetest.is_protected(target, user:get_player_name()) then + minetest.record_protection_violation(target, user:get_player_name()) return end - local node = core.get_node(target) - if core.get_item_group(node.name, "sbz_luacontroller") ~= 1 then return end + local node = minetest.get_node(target) + if minetest.get_item_group(node.name, "sbz_luacontroller") ~= 1 then return end if punch_editor then logic.override_editor(target, source) @@ -79,11 +78,11 @@ function logic.register_system_disk(name, desc, source, punch_editor, punch_code end, stack_max = 1 } - core.register_craftitem(name, def) - core.register_craft(craft) + minetest.register_craftitem(name, def) + minetest.register_craft(craft) end -local file = assert(io.open(core.get_modpath("sbz_logic") .. "/disks/default_editor.sandboxed.lua", "r"), "wtf??") +local file = assert(io.open(minetest.get_modpath("sbz_logic") .. "/disks/default_editor.sandboxed.lua", "r"), "wtf??") local default_editor_code = file:read("*a") file:close() diff --git a/mods/sbz_logic/init.lua b/mods/sbz_logic/init.lua index 31a93ada..1fda4342 100644 --- a/mods/sbz_logic/init.lua +++ b/mods/sbz_logic/init.lua @@ -1,5 +1,3 @@ -local S = core.get_translator(core.get_current_modname()) - sbz_api.logic = { log = function(msg) if sbz_api.debug then @@ -26,12 +24,12 @@ dofile(MP .. "/code_disks.lua") sbz_api.register_stateful_machine("sbz_logic:lua_controller", { tiles = { "luacontroller_top.png", "luacontroller_top.png", "luacontroller.png" }, - description = S("Lua Controller"), + description = "Lua Controller", sounds = sbz_audio.matter(), info_extra = { - S("The most complex block in this game."), - S("No like actually... it might be"), - S("Punch with the basic editor disk to get started."), + "The most complex block in this game.", + "No like actually... it might be", + "Punch with the basic editor disk to get started.", }, disallow_pipeworks = true, autostate = false, diff --git a/mods/sbz_logic/knowledge.lua b/mods/sbz_logic/knowledge.lua index 402ac800..d90cf156 100644 --- a/mods/sbz_logic/knowledge.lua +++ b/mods/sbz_logic/knowledge.lua @@ -1,5 +1,3 @@ -local S = core.get_translator(core.get_current_modname()) - logic = sbz_api.logic local P = core.get_modpath("sbz_logic") .. "/help_pages/" @@ -96,7 +94,7 @@ local function on_receive_fields(pos, formname, fields, sender) end core.register_node("sbz_logic:knowledge_station", { - description = S("Knowledge Station"), + description = "Knowledge Station", sounds = sbz_audio.matter(), info_extra = "Explains logic.", on_construct = function(pos) diff --git a/mods/sbz_logic/link_tool.lua b/mods/sbz_logic/link_tool.lua index 3af8c890..74c67186 100644 --- a/mods/sbz_logic/link_tool.lua +++ b/mods/sbz_logic/link_tool.lua @@ -1,5 +1,3 @@ -local S = core.get_translator(core.get_current_modname()) - local render_links_delay = 1 local waypoint_ids = {} @@ -8,7 +6,7 @@ local logic = sbz_api.logic function logic.happy_particles(pos) local vel = vector.new(-3, -3, -3) - core.add_particlespawner({ + minetest.add_particlespawner({ amount = 1000, time = 0.1, exptime = 3, @@ -48,13 +46,13 @@ local function render_links(dtime) sbz_api.remove_waypoint(v) end waypoint_ids = {} - for k, v in pairs(core.get_connected_players()) do + for k, v in pairs(minetest.get_connected_players()) do local wielded_item = v:get_wielded_item() if wielded_item:get_name() == "sbz_logic:luacontroller_linker" then local itemmeta = wielded_item:get_meta() local linked_pos = vector.from_string(itemmeta:get_string("linked")) if linked_pos ~= nil then -- ahh ok lua kinda needs a continue statement :/ - local linked_meta = core.get_meta(linked_pos) + local linked_meta = minetest.get_meta(linked_pos) local radius = linked_meta:get_int("linking_range") if radius ~= 0 then vizlib.draw_cube(linked_pos, radius + 0.5, { @@ -64,7 +62,7 @@ local function render_links(dtime) time = render_links_delay + 0.1 }) end - local links = core.deserialize(linked_meta:get_string("links")) + local links = minetest.deserialize(linked_meta:get_string("links")) if type(links) == "table" then for k, link in pairs(links) do for _, position in pairs(link) do @@ -85,18 +83,18 @@ local function try_to_link_to_luac(stack, pos, placer) local node = sbz_api.get_or_load_node(pos) if not node then return end node = node.name - local ndef = core.registered_nodes[node] + local ndef = minetest.registered_nodes[node] if not ndef then return end - if not ndef.can_link then return core.chat_send_player(name, S("Can't link")) end + if not ndef.can_link then return minetest.chat_send_player(name, "Can't link") end -- ok yeah it can link meta:set_string("linked", vector.to_string(pos)) - core.chat_send_player(name, S("Luacontroller successfully linked to the luacontroller linking tool!")) + minetest.chat_send_player(name, "Luacontroller succesfully linked to the luacontroller linking tool!") logic.happy_particles(pos) end local function err_link_invalid(placer) - core.chat_send_player(placer:get_player_name(), - S("Link is invalid, please link the luacontroller linker to a luacontroller again.")) + minetest.chat_send_player(placer:get_player_name(), + "Link is invalid, please link the luacontroller linker to a luacontroller again.") end local function make_link(meta, pos, placer) @@ -111,31 +109,31 @@ local function make_link(meta, pos, placer) end linked_node = linked_node.name - local ndef = core.registered_nodes[linked_node] + local ndef = minetest.registered_nodes[linked_node] if ndef == nil then return err_link_invalid(placer) end if not ndef.can_link then return err_link_invalid(placer) end - local linked_meta = core.get_meta(linked_pos) + local linked_meta = minetest.get_meta(linked_pos) local linked_range = linked_meta:get_int("linking_range") if linked_range == 0 then - core.chat_send_player(placer:get_player_name(), S("The luacontroller doesn't have a linking upgrade.")) + minetest.chat_send_player(placer:get_player_name(), "The luacontroller doesn't have a linking upgrade.") return end if not logic.in_square_radius(linked_pos, pos, linked_range) then - core.chat_send_player(placer:get_player_name(), S("Outside of the radius")) + minetest.chat_send_player(placer:get_player_name(), "Outside of the radius") return end local name = meta:get_string "name" if name == "" then - core.chat_send_player(placer:get_player_name(), S("You need to set a name first (Left click)")) + minetest.chat_send_player(placer:get_player_name(), "You need to set a name first (Left click)") return end -- ok HOPEFULLY thats enough checks holy crap - local links = core.deserialize(linked_meta:get_string("links")) or {} + local links = minetest.deserialize(linked_meta:get_string("links")) or {} links[name] = links[name] or {} links[name][#links[name] + 1] = pos @@ -166,10 +164,10 @@ local function make_link(meta, pos, placer) for k, v in pairs(links) do if #v == 0 then links[k] = nil end end - linked_meta:set_string("links", core.serialize(links)) + linked_meta:set_string("links", minetest.serialize(links)) end -core.register_on_player_receive_fields(function(player, formname, fields) +minetest.register_on_player_receive_fields(function(player, formname, fields) if formname ~= "sbz_logic:luacontroller_linker_form" then return end @@ -191,14 +189,14 @@ core.register_on_player_receive_fields(function(player, formname, fields) end) -core.register_craftitem("sbz_logic:luacontroller_linker", { - description = S("Luacontroller Linker"), - short_description = S("Luacontroller Linker"), +minetest.register_craftitem("sbz_logic:luacontroller_linker", { + description = "Luacontroller Linker", + short_description = "Luacontroller Linker", info_extra = { - S("Right click: ask for a name, if a block is pointed to, link the block"), - S("Left click: use the previous name, and link the block"), - S("Aux1 + right click/left click: link to that luacontroller"), - S("If you hold it, it should show all the links and the luacontroller's radius") + "Right click: ask for a name, if a block is pointed to, link the block", + "Left click: use the previous name, and link the block", + "Aux1 + right click/left click: link to that luacontroller", + "If you hold it, it should show all the links and the luacontroller's radius" }, inventory_image = "luacontroller_linker.png", range = 10, @@ -211,7 +209,7 @@ core.register_craftitem("sbz_logic:luacontroller_linker", { end if placer:get_player_control().aux1 == false then local target = pointed.under - core.show_formspec(placer:get_player_name(), "sbz_logic:luacontroller_linker_form", + minetest.show_formspec(placer:get_player_name(), "sbz_logic:luacontroller_linker_form", "field[set_name;The name of the link;]") if pointed.type ~= "node" then placer:get_meta():set_string("target", "") diff --git a/mods/sbz_logic/locale/sbz_logic.pot b/mods/sbz_logic/locale/sbz_logic.pot deleted file mode 100644 index 99d06a48..00000000 --- a/mods/sbz_logic/locale/sbz_logic.pot +++ /dev/null @@ -1,113 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-26 17:40-0700\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: mods/sbz_logic/code_disks.lua:6 -msgid "Empty Data Disk" -msgstr "" - -#: mods/sbz_logic/code_disks.lua:8 -msgid "Can hold 20 kilobytes." -msgstr "" - -#: mods/sbz_logic/code_disks.lua:9 -msgid "Can be configured to override editor or normal code on use." -msgstr "" - -#: mods/sbz_logic/code_disks.lua:10 -msgid "Insert into a luacontroller to configure" -msgstr "" - -#: mods/sbz_logic/code_disks.lua:53 -msgid "System Code Disk - " -msgstr "" - -#: mods/sbz_logic/init.lua:29 -msgid "Lua Controller" -msgstr "" - -#: mods/sbz_logic/init.lua:32 -msgid "The most complex block in this game." -msgstr "" - -#: mods/sbz_logic/init.lua:33 -msgid "No like actually... it might be" -msgstr "" - -#: mods/sbz_logic/init.lua:34 -msgid "Punch with the basic editor disk to get started." -msgstr "" - -#: mods/sbz_logic/knowledge.lua:99 -msgid "Knowledge Station" -msgstr "" - -#: mods/sbz_logic/link_tool.lua:90 -msgid "Can't link" -msgstr "" - -#: mods/sbz_logic/link_tool.lua:93 -msgid "Luacontroller successfully linked to the luacontroller linking tool!" -msgstr "" - -#: mods/sbz_logic/link_tool.lua:99 -msgid "" -"Link is invalid, please link the luacontroller linker to a luacontroller " -"again." -msgstr "" - -#: mods/sbz_logic/link_tool.lua:122 -msgid "The luacontroller doesn't have a linking upgrade." -msgstr "" - -#: mods/sbz_logic/link_tool.lua:127 -msgid "Outside of the radius" -msgstr "" - -#: mods/sbz_logic/link_tool.lua:133 -msgid "You need to set a name first (Left click)" -msgstr "" - -#: mods/sbz_logic/link_tool.lua:195 mods/sbz_logic/link_tool.lua:196 -msgid "Luacontroller Linker" -msgstr "" - -#: mods/sbz_logic/link_tool.lua:198 -msgid "Right click: ask for a name, if a block is pointed to, link the block" -msgstr "" - -#: mods/sbz_logic/link_tool.lua:199 -msgid "Left click: use the previous name, and link the block" -msgstr "" - -#: mods/sbz_logic/link_tool.lua:200 -msgid "Aux1 + right click/left click: link to that luacontroller" -msgstr "" - -#: mods/sbz_logic/link_tool.lua:201 -msgid "" -"If you hold it, it should show all the links and the luacontroller's radius" -msgstr "" - -#: mods/sbz_logic/upgrades.lua:11 -msgid "Logic Upgrade Template" -msgstr "" - -#: mods/sbz_logic/upgrades.lua:39 -msgid "Linking Upgrade" -msgstr "" diff --git a/mods/sbz_logic/upgrades.lua b/mods/sbz_logic/upgrades.lua index 03999c57..e62ac78e 100644 --- a/mods/sbz_logic/upgrades.lua +++ b/mods/sbz_logic/upgrades.lua @@ -1,5 +1,3 @@ -local S = core.get_translator(core.get_current_modname()) - local logic = sbz_api.logic --[[ @@ -7,8 +5,8 @@ local logic = sbz_api.logic def.action_out = function(stack, logic_pos, logic_meta) -- undo that ^ ]] -core.register_craftitem("sbz_logic:upgrade_template", { - description = S("Logic Upgrade Template"), +minetest.register_craftitem("sbz_logic:upgrade_template", { + description = "Logic Upgrade Template", inventory_image = "upgrade_template.png", groups = { ui_logic = 1 } }) @@ -29,14 +27,14 @@ end logic.register_upgrade = function(name, def) def.groups = { sbz_logic_upgrade = 1, ui_logic = 1 } - core.register_craftitem(name, def) + minetest.register_craftitem(name, def) end logic.register_upgrade("sbz_logic:linking_upgrade", { info_extra = { "Upgrades linking radius by 8, you can have 3 of these", "Also it is needed for *any* sort of communication, or getting information about the world." }, stack_max = 1, same_upgrade_max = 3, - description = S("Linking Upgrade"), + description = "Linking Upgrade", action_in = function(stack, logic_pos, logic_meta) logic_meta:set_int("linking_range", logic_meta:get_int "linking_range" + 8) end, From 0ba38990ae08701cac5f0c2dd33019bffa393332 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Fri, 27 Mar 2026 17:16:48 -0700 Subject: [PATCH 14/35] Revert localization-centric changes to sbz_logic_devices Doing this because lots of stuff is moving and shifting over on frog's fork. --- mods/sbz_logic_devices/builder.lua | 10 +- mods/sbz_logic_devices/button.lua | 6 +- mods/sbz_logic_devices/formspec_screen.lua | 4 +- mods/sbz_logic_devices/gpu.lua | 4 +- mods/sbz_logic_devices/hologram_projector.lua | 4 +- .../locale/sbz_logic_devices.pot | 112 ------------------ mods/sbz_logic_devices/memory_controller.lua | 10 +- .../sbz_logic_devices/meteorite_attractor.lua | 6 +- mods/sbz_logic_devices/mscreen.lua | 9 +- mods/sbz_logic_devices/nic.lua | 6 +- mods/sbz_logic_devices/nodeDB.lua | 4 +- mods/sbz_logic_devices/noteblock.lua | 5 +- mods/sbz_logic_devices/object_detector.lua | 4 +- 13 files changed, 27 insertions(+), 157 deletions(-) delete mode 100644 mods/sbz_logic_devices/locale/sbz_logic_devices.pot diff --git a/mods/sbz_logic_devices/builder.lua b/mods/sbz_logic_devices/builder.lua index 2cbd6549..2cd3a373 100644 --- a/mods/sbz_logic_devices/builder.lua +++ b/mods/sbz_logic_devices/builder.lua @@ -1,13 +1,13 @@ -local S = core.get_translator(core.get_current_modname()) - -- like the digibuilder... but better... yea! -- more overpowered!! + local power_per_action = 40 local queue_max = 50 local range = 20 + local function get_index(inv, item) if not inv:contains_item("main", item) then return false end local list = inv:get_list("main") @@ -152,10 +152,10 @@ end local builder_queues = {} sbz_api.register_machine("sbz_logic_devices:builder", { - description = S("Lua Builder"), + description = "Lua Builder", info_extra = { - S("A way for lua controllers to interact with the world."), - S("Can build/break/dig/punch/see 50 nodes every 0.25 seconds..."), + "A way for lua controllers to interact with the world.", + "Can build/break/dig/punch/see 50 nodes every 0.25 seconds...", }, tiles = { "lua_builder.png" diff --git a/mods/sbz_logic_devices/button.lua b/mods/sbz_logic_devices/button.lua index e6f8c7a7..b09fa51b 100644 --- a/mods/sbz_logic_devices/button.lua +++ b/mods/sbz_logic_devices/button.lua @@ -1,7 +1,5 @@ -local S = core.get_translator(core.get_current_modname()) - core.register_node("sbz_logic_devices:button", { - description = S("Logic Button"), + description = "Logic Button", tiles = { "button_side.png", "button_side.png^[transformFY", @@ -66,7 +64,7 @@ local function tobool(x) end sbz_api.register_stateful("sbz_logic_devices:toggle", { - description = S("Logic Toggle"), + description = "Logic Toggle", tiles = { "button_side.png", "button_side.png^[transformFY", diff --git a/mods/sbz_logic_devices/formspec_screen.lua b/mods/sbz_logic_devices/formspec_screen.lua index f7633fd2..fc456ae5 100644 --- a/mods/sbz_logic_devices/formspec_screen.lua +++ b/mods/sbz_logic_devices/formspec_screen.lua @@ -1,8 +1,6 @@ -local S = core.get_translator(core.get_current_modname()) - local max = 100 * 1024 core.register_node("sbz_logic_devices:formspec_screen", { - description = S("Formspec Screen"), + description = "Formspec Screen", info_extra = "Max formspec size: 100kb", tiles = { "formspec_screen.png", diff --git a/mods/sbz_logic_devices/gpu.lua b/mods/sbz_logic_devices/gpu.lua index fb305286..c6a45f01 100644 --- a/mods/sbz_logic_devices/gpu.lua +++ b/mods/sbz_logic_devices/gpu.lua @@ -2,7 +2,7 @@ -- Focus: be fast, at least faster than what digistuff does :> -- https://github.com/mt-mods/digistuff/blob/reworkGPU/gpu.lua -- License: LGPLv3 or later -local S = core.get_translator("sbz_logic_devices") + local MP = core.get_modpath("sbz_logic_devices") ---@type function @@ -778,7 +778,7 @@ local function exec_command(buffers, command, pos, from_pos) end core.register_node("sbz_logic_devices:gpu", { - description = S("GPU"), + description = "GPU", groups = { matter = 1, ui_logic = 1 }, is_ground_content = false, diff --git a/mods/sbz_logic_devices/hologram_projector.lua b/mods/sbz_logic_devices/hologram_projector.lua index 1481d347..a670f267 100644 --- a/mods/sbz_logic_devices/hologram_projector.lua +++ b/mods/sbz_logic_devices/hologram_projector.lua @@ -1,5 +1,5 @@ -- inspired by https://github.com/BuckarooBanzay/holoemitter/ though should be completely different in implementation (i havent looked at the code of holoemitter) -local S = core.get_translator(core.get_current_modname()) + local function transform_texture_name(tex, is_incomplete) local addon = "" if is_incomplete then @@ -540,7 +540,7 @@ mesecon.register_on_mvps_move(function(moved_nodes) end) core.register_node("sbz_logic_devices:hologram_projector", { - description = S("Hologram Projector"), + description = "Hologram Projector", info_extra = "Inspired by the holoemitter mod.", groups = { ui_logic = 1, matter = 1 }, sounds = sbz_audio.matter(), diff --git a/mods/sbz_logic_devices/locale/sbz_logic_devices.pot b/mods/sbz_logic_devices/locale/sbz_logic_devices.pot deleted file mode 100644 index d27e42e5..00000000 --- a/mods/sbz_logic_devices/locale/sbz_logic_devices.pot +++ /dev/null @@ -1,112 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-26 17:40-0700\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: mods/sbz_logic_devices/builder.lua:155 -msgid "Lua Builder" -msgstr "" - -#: mods/sbz_logic_devices/builder.lua:157 -msgid "A way for lua controllers to interact with the world." -msgstr "" - -#: mods/sbz_logic_devices/builder.lua:158 -msgid "Can build/break/dig/punch/see 50 nodes every 0.25 seconds..." -msgstr "" - -#: mods/sbz_logic_devices/button.lua:4 -msgid "Logic Button" -msgstr "" - -#: mods/sbz_logic_devices/button.lua:69 -msgid "Logic Toggle" -msgstr "" - -#: mods/sbz_logic_devices/formspec_screen.lua:5 -msgid "Formspec Screen" -msgstr "" - -#: mods/sbz_logic_devices/gpu.lua:781 -msgid "GPU" -msgstr "" - -#: mods/sbz_logic_devices/hologram_projector.lua:543 -msgid "Hologram Projector" -msgstr "" - -#: mods/sbz_logic_devices/memory_controller.lua:21 -msgid "Memory Controller" -msgstr "" - -#: mods/sbz_logic_devices/memory_controller.lua:23 -msgid "Holds @1 MB" -msgstr "" - -#: mods/sbz_logic_devices/memory_controller.lua:24 -msgid "Capable of compressing data" -msgstr "" - -#: mods/sbz_logic_devices/memory_controller.lua:25 -msgid "Limited to @1 ms of lag per second" -msgstr "" - -#: mods/sbz_logic_devices/meteorite_attractor.lua:6 -msgid "Luanium Meteorite Attractor" -msgstr "" - -#: mods/sbz_logic_devices/mscreen.lua:112 -msgid "Matrix Screen" -msgstr "" - -#: mods/sbz_logic_devices/mscreen.lua:114 -msgid "Named that because it accepts a 2D matrix." -msgstr "" - -#: mods/sbz_logic_devices/mscreen.lua:115 -msgid "" -"Ok I just realised that techage had the exact same name, for a very similar " -"thing... lol,\n" -" but yeah, this was forked from digiscreen. (But made better :>)" -msgstr "" - -#: mods/sbz_logic_devices/mscreen.lua:116 -msgid "" -"You can put a backlight behind... to... yea... have the screen be brighter" -msgstr "" - -#: mods/sbz_logic_devices/nic.lua:11 -msgid "" -"If the server has priv locked the NIC, this priv makes you able to place the " -"thing." -msgstr "" - -#: mods/sbz_logic_devices/nic.lua:17 -msgid "Logic NIC" -msgstr "" - -#: mods/sbz_logic_devices/nodeDB.lua:10 -msgid "Node DB" -msgstr "" - -#: mods/sbz_logic_devices/noteblock.lua:9 -msgid "Note Block" -msgstr "" - -#: mods/sbz_logic_devices/object_detector.lua:6 -msgid "Object/Player Detector" -msgstr "" diff --git a/mods/sbz_logic_devices/memory_controller.lua b/mods/sbz_logic_devices/memory_controller.lua index 47d2e6d4..34315942 100644 --- a/mods/sbz_logic_devices/memory_controller.lua +++ b/mods/sbz_logic_devices/memory_controller.lua @@ -1,5 +1,3 @@ -local S = core.get_translator(core.get_current_modname()) - -- memcontroller local function compress(data) @@ -18,11 +16,11 @@ local default_index_state = { } core.register_node("sbz_logic_devices:memcontroller", { - description = S("Memory Controller"), + description = "Memory Controller", info_extra = { - S("Holds @1 MB", size_limit / 1024 ^ 3), - S("Capable of compressing data"), - S("Limited to @1 ms of lag per second", lag_limit), + "Holds " .. (size_limit / 1024 ^ 3) .. "mb", + "Capable of compressing data", + "Limited to " .. (lag_limit) .. "ms/s", }, tiles = { "memcontroller_top.png", diff --git a/mods/sbz_logic_devices/meteorite_attractor.lua b/mods/sbz_logic_devices/meteorite_attractor.lua index 56338fb7..ddb1debe 100644 --- a/mods/sbz_logic_devices/meteorite_attractor.lua +++ b/mods/sbz_logic_devices/meteorite_attractor.lua @@ -1,9 +1,7 @@ -local S = core.get_translator(core.get_current_modname()) - local max_attract = 10 sbz_api.register_machine("sbz_logic_devices:luanium_attractor", { - description = S("Luanium Meteorite Attractor"), + description = "Luanium Meteorite Attractor", info_extra = "At this point it might as well be a black hole...", tiles = { "luanium_attractor.png" }, groups = { ui_logic = 1, matter = 1, charged = 1, sbz_machine_subticking = 1 }, @@ -15,7 +13,7 @@ sbz_api.register_machine("sbz_logic_devices:luanium_attractor", { if msg.type == nil or msg.type == "manual" then sbz_api.attract_meteorites(pos, 1, msg.attract) else - core.get_meta(pos):set_float("attract", msg.attract) + minetest.get_meta(pos):set_float("attract", msg.attract) end end, action_subtick = function(pos, node, meta, supply, demand) diff --git a/mods/sbz_logic_devices/mscreen.lua b/mods/sbz_logic_devices/mscreen.lua index b49aaada..66ff8915 100644 --- a/mods/sbz_logic_devices/mscreen.lua +++ b/mods/sbz_logic_devices/mscreen.lua @@ -30,7 +30,6 @@ OTHER DEALINGS IN THE SOFTWARE. For more information, please refer to ]] -local S = core.get_translator(core.get_current_modname()) local DISP_MAX_RESOLUTION = 32 local function remove_entity(pos) @@ -109,11 +108,11 @@ core.register_entity("sbz_logic_devices:matrix_screen_entity", { }) core.register_node("sbz_logic_devices:matrix_screen", { - description = S("Matrix Screen"), + description = "Matrix Screen", info_extra = { - S("Named that because it accepts a 2D matrix."), - S("Ok I just realised that techage had the exact same name, for a very similar thing... lol,\n but yeah, this was forked from digiscreen. (But made better :>)"), - S("You can put a backlight behind... to... yea... have the screen be brighter") }, + "Named that because it accepts a 2D matrix.", + "Ok i just realised that techage had the exact same name, for a very similar thing... lol,\n but yea, this was forked from digiscreen. (But made better :>)", + "You can put a backlight behind... to... yea... have the screen be brighter" }, tiles = { "blank.png^[invert:rgba^[colorize:grey", "blank.png^[invert:rgba^[colorize:grey", diff --git a/mods/sbz_logic_devices/nic.lua b/mods/sbz_logic_devices/nic.lua index 5423a972..35e1163c 100644 --- a/mods/sbz_logic_devices/nic.lua +++ b/mods/sbz_logic_devices/nic.lua @@ -2,19 +2,17 @@ local http = ... -- License: LGPLv3 or later -- from: https://github.com/mt-mods/digistuff/blob/master/nic.lua -local S = core.get_translator(core.get_current_modname()) - local settings = core.settings local is_priv_locked = settings:get_bool("sbz_nic_priv_locked", true) core.register_privilege("nic_user", { - description = S("If the server has priv locked the NIC, this priv makes you able to place the thing."), + description = "If the server has priv locked the NIC, this priv makes you able to place the thing.", give_to_admin = true, give_to_singleplayer = true, }) core.register_node("sbz_logic_devices:nic", { - description = S("Logic NIC"), + description = "Logic NIC", info_extra = " Priv Locked: " .. (is_priv_locked and "yes" or "no"), groups = { cracky = 3, matter = 1, ui_logic = 1 }, diff --git a/mods/sbz_logic_devices/nodeDB.lua b/mods/sbz_logic_devices/nodeDB.lua index b196b6a0..5e1b164c 100644 --- a/mods/sbz_logic_devices/nodeDB.lua +++ b/mods/sbz_logic_devices/nodeDB.lua @@ -2,12 +2,10 @@ -- https://github.com/dennisjenkins75/digiline_craftdb/ -- months later to clarify: No code from it was actually used here -local S = core.get_translator(core.get_current_modname()) - local MAX_RESULTS = 200 core.register_node("sbz_logic_devices:node_db", { - description = S("Node DB"), + description = "Node DB", info_extra = { "Similar to the craftDB, use it to lookup node definitions and recipes" }, groups = { matter = 1, ui_logic = 1 }, sounds = sbz_audio.machine(), diff --git a/mods/sbz_logic_devices/noteblock.lua b/mods/sbz_logic_devices/noteblock.lua index c95d88d1..d130b0d7 100644 --- a/mods/sbz_logic_devices/noteblock.lua +++ b/mods/sbz_logic_devices/noteblock.lua @@ -1,12 +1,9 @@ -- License: LGPLv3 or later -- from: https://github.com/mt-mods/digistuff/tree/master - -local S = core.get_translator(core.get_current_modname()) - local MAX_COMMANDS_AT_ONCE = 10 local t = type core.register_node("sbz_logic_devices:noteblock", { - description = S("Note Block"), + description = "Note Block", info_extra = "Plays sounds, fully capable of blowing your ears off! :>", tiles = { "noteblock_top.png", diff --git a/mods/sbz_logic_devices/object_detector.lua b/mods/sbz_logic_devices/object_detector.lua index 2f0312c1..0dc64c56 100644 --- a/mods/sbz_logic_devices/object_detector.lua +++ b/mods/sbz_logic_devices/object_detector.lua @@ -1,9 +1,7 @@ -local S = core.get_translator(core.get_current_modname()) - local R = 10 core.register_node("sbz_logic_devices:object_detector", { - description = S("Object/Player Detector"), + description = "Object/Player Detector", info_extra = ("Has a radius of %s"):format(R), tiles = { From 358c5098f6d7ec10edb7718e46bea57a4bae3bce Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 12:18:57 -0700 Subject: [PATCH 15/35] Move quest md docs to a language-specific subfolder --- mods/sbz_progression/quests/{ => en}/Chemistry.md | 0 mods/sbz_progression/quests/{ => en}/Decorator.md | 0 mods/sbz_progression/quests/{ => en}/Emittrium.md | 0 mods/sbz_progression/quests/{ => en}/Introduction.md | 0 mods/sbz_progression/quests/{ => en}/Jumpdrive.md | 0 mods/sbz_progression/quests/{ => en}/Meteorites.md | 0 mods/sbz_progression/quests/{ => en}/Organics.md | 0 .../quests/{ => en}/Pipeworks_and_fluid_transport.md | 0 mods/sbz_progression/quests/{ => en}/Reactor.md | 0 mods/sbz_progression/quests/{ => en}/Secrets.md | 0 mods/sbz_progression/quests/{ => en}/Sensors.md | 0 mods/sbz_progression/quests/{ => en}/Status_Effects.md | 0 mods/sbz_progression/quests/{ => en}/Storage.md | 0 13 files changed, 0 insertions(+), 0 deletions(-) rename mods/sbz_progression/quests/{ => en}/Chemistry.md (100%) rename mods/sbz_progression/quests/{ => en}/Decorator.md (100%) rename mods/sbz_progression/quests/{ => en}/Emittrium.md (100%) rename mods/sbz_progression/quests/{ => en}/Introduction.md (100%) rename mods/sbz_progression/quests/{ => en}/Jumpdrive.md (100%) rename mods/sbz_progression/quests/{ => en}/Meteorites.md (100%) rename mods/sbz_progression/quests/{ => en}/Organics.md (100%) rename mods/sbz_progression/quests/{ => en}/Pipeworks_and_fluid_transport.md (100%) rename mods/sbz_progression/quests/{ => en}/Reactor.md (100%) rename mods/sbz_progression/quests/{ => en}/Secrets.md (100%) rename mods/sbz_progression/quests/{ => en}/Sensors.md (100%) rename mods/sbz_progression/quests/{ => en}/Status_Effects.md (100%) rename mods/sbz_progression/quests/{ => en}/Storage.md (100%) diff --git a/mods/sbz_progression/quests/Chemistry.md b/mods/sbz_progression/quests/en/Chemistry.md similarity index 100% rename from mods/sbz_progression/quests/Chemistry.md rename to mods/sbz_progression/quests/en/Chemistry.md diff --git a/mods/sbz_progression/quests/Decorator.md b/mods/sbz_progression/quests/en/Decorator.md similarity index 100% rename from mods/sbz_progression/quests/Decorator.md rename to mods/sbz_progression/quests/en/Decorator.md diff --git a/mods/sbz_progression/quests/Emittrium.md b/mods/sbz_progression/quests/en/Emittrium.md similarity index 100% rename from mods/sbz_progression/quests/Emittrium.md rename to mods/sbz_progression/quests/en/Emittrium.md diff --git a/mods/sbz_progression/quests/Introduction.md b/mods/sbz_progression/quests/en/Introduction.md similarity index 100% rename from mods/sbz_progression/quests/Introduction.md rename to mods/sbz_progression/quests/en/Introduction.md diff --git a/mods/sbz_progression/quests/Jumpdrive.md b/mods/sbz_progression/quests/en/Jumpdrive.md similarity index 100% rename from mods/sbz_progression/quests/Jumpdrive.md rename to mods/sbz_progression/quests/en/Jumpdrive.md diff --git a/mods/sbz_progression/quests/Meteorites.md b/mods/sbz_progression/quests/en/Meteorites.md similarity index 100% rename from mods/sbz_progression/quests/Meteorites.md rename to mods/sbz_progression/quests/en/Meteorites.md diff --git a/mods/sbz_progression/quests/Organics.md b/mods/sbz_progression/quests/en/Organics.md similarity index 100% rename from mods/sbz_progression/quests/Organics.md rename to mods/sbz_progression/quests/en/Organics.md diff --git a/mods/sbz_progression/quests/Pipeworks_and_fluid_transport.md b/mods/sbz_progression/quests/en/Pipeworks_and_fluid_transport.md similarity index 100% rename from mods/sbz_progression/quests/Pipeworks_and_fluid_transport.md rename to mods/sbz_progression/quests/en/Pipeworks_and_fluid_transport.md diff --git a/mods/sbz_progression/quests/Reactor.md b/mods/sbz_progression/quests/en/Reactor.md similarity index 100% rename from mods/sbz_progression/quests/Reactor.md rename to mods/sbz_progression/quests/en/Reactor.md diff --git a/mods/sbz_progression/quests/Secrets.md b/mods/sbz_progression/quests/en/Secrets.md similarity index 100% rename from mods/sbz_progression/quests/Secrets.md rename to mods/sbz_progression/quests/en/Secrets.md diff --git a/mods/sbz_progression/quests/Sensors.md b/mods/sbz_progression/quests/en/Sensors.md similarity index 100% rename from mods/sbz_progression/quests/Sensors.md rename to mods/sbz_progression/quests/en/Sensors.md diff --git a/mods/sbz_progression/quests/Status_Effects.md b/mods/sbz_progression/quests/en/Status_Effects.md similarity index 100% rename from mods/sbz_progression/quests/Status_Effects.md rename to mods/sbz_progression/quests/en/Status_Effects.md diff --git a/mods/sbz_progression/quests/Storage.md b/mods/sbz_progression/quests/en/Storage.md similarity index 100% rename from mods/sbz_progression/quests/Storage.md rename to mods/sbz_progression/quests/en/Storage.md From a7b64e5a4a7d75ab2faabbe4b8925a0a0ed12c48 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 13:47:55 -0700 Subject: [PATCH 16/35] Refactor md ingest to separate concerns and prevent crash Extracts parse_md_file as a private helper that returns quest data rather than registering it directly, making both easier to extend later. It'll just fall back to English on missing file instead of crashing. --- mods/sbz_progression/quests.lua | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/mods/sbz_progression/quests.lua b/mods/sbz_progression/quests.lua index 4051032f..e97cc8e1 100644 --- a/mods/sbz_progression/quests.lua +++ b/mods/sbz_progression/quests.lua @@ -27,22 +27,28 @@ function sbz_api.quests_from_file(path) table.foreach(assert(loadfile(path))(), sbz_api.register_quest, true) end -function sbz_api.quests_from_file_md(path) - local file = assert(io.open(path)) +-- Parses a markdown file and returns the quest list, or nil if the file doesn't exist. +local function parse_md_file(path) + local file = io.open(path) + if not file then return nil end local qdata = sbz_api.quest_parser.decode(file:read '*a') file:close() - table.foreach(qdata, sbz_api.register_quest, true) + return qdata end local t0 = core.get_us_time() table.foreach(quest_files, function(name) - sbz_api.quests_from_file_md(minetest.get_modpath 'sbz_progression' .. '/quests/' .. name .. '.md') + local path = core.get_modpath 'sbz_progression' .. '/quests/' .. name .. '.md' + local qdata = parse_md_file(path) + if qdata then + table.foreach(qdata, sbz_api.register_quest, true) + end end, true) sbz_api.register_quest({ ["type"] = "secret", ["istoplevel"] = true, ["title"] = "Credits", - ["text"] = + ["text"] = "Thank you for playing Skyblock: Zero. " .. "You demonstrated extreme logical thinking skills, planning skills, and invested probably at least a couple of hours into our game. " .. "We hope you enjoyed this current version, because there will be more coming. " @@ -50,7 +56,7 @@ sbz_api.register_quest({ .. "\n" .. "Below is a list of all the people who helped work on the game, optionally, along with a quote by the respective developer.\n" - -- Note to developers: Feel free to add yourself to the list if you're new, along with a quote. + -- Note to developers: Feel free to add yourself to the list if you're new, along with a quote. -- If you're already on the list, feel free to edit your quote as well. (But not other people's) .. "Developers & Contributors\n" From 12dd320e4819e2be3a62b57bdd132c02dd47d437 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 13:52:12 -0700 Subject: [PATCH 17/35] Add a modpath local --- mods/sbz_progression/quests.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mods/sbz_progression/quests.lua b/mods/sbz_progression/quests.lua index e97cc8e1..e40d90d1 100644 --- a/mods/sbz_progression/quests.lua +++ b/mods/sbz_progression/quests.lua @@ -36,9 +36,10 @@ local function parse_md_file(path) return qdata end +local modpath = core.get_modpath('sbz_progression') local t0 = core.get_us_time() table.foreach(quest_files, function(name) - local path = core.get_modpath 'sbz_progression' .. '/quests/' .. name .. '.md' + local path = modpath .. '/quests/' .. name .. '.md' local qdata = parse_md_file(path) if qdata then table.foreach(qdata, sbz_api.register_quest, true) From 42812045c997a4c41028e61cf52ffdafe470c801 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 13:56:46 -0700 Subject: [PATCH 18/35] Change path and crash with error on missing fallback --- mods/sbz_progression/quests.lua | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mods/sbz_progression/quests.lua b/mods/sbz_progression/quests.lua index e40d90d1..9bc77712 100644 --- a/mods/sbz_progression/quests.lua +++ b/mods/sbz_progression/quests.lua @@ -38,12 +38,14 @@ end local modpath = core.get_modpath('sbz_progression') local t0 = core.get_us_time() + +-- Load the canonical English files first. +-- These establish all quest IDs — every other language patches on top of this. table.foreach(quest_files, function(name) - local path = modpath .. '/quests/' .. name .. '.md' + local path = modpath .. '/quests/en/' .. name .. '.md' local qdata = parse_md_file(path) - if qdata then - table.foreach(qdata, sbz_api.register_quest, true) - end + assert(qdata, '[sbz_progression] Missing required English quest file: ' .. path) + table.foreach(qdata, sbz_api.register_quest, true) end, true) sbz_api.register_quest({ ["type"] = "secret", From 648da7472771de3b54c5d5715051ae6d4b2059dc Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 15:14:29 -0700 Subject: [PATCH 19/35] Index quests and fix credits text indentation --- mods/sbz_progression/quests.lua | 100 +++++++++++++++++--------------- 1 file changed, 52 insertions(+), 48 deletions(-) diff --git a/mods/sbz_progression/quests.lua b/mods/sbz_progression/quests.lua index 9bc77712..8865cee1 100644 --- a/mods/sbz_progression/quests.lua +++ b/mods/sbz_progression/quests.lua @@ -1,7 +1,11 @@ quests = {} +-- Index for faster lookups when patching-in the translations +local quest_id_index = {} + function sbz_api.register_quest(def) quests[#quests + 1] = def + quest_id_index[def.id] = #quests end local quest_files = { @@ -52,60 +56,60 @@ sbz_api.register_quest({ ["istoplevel"] = true, ["title"] = "Credits", ["text"] = - "Thank you for playing Skyblock: Zero. " - .. "You demonstrated extreme logical thinking skills, planning skills, and invested probably at least a couple of hours into our game. " - .. "We hope you enjoyed this current version, because there will be more coming. " - .. "- Zander\n" - .. "\n" + "Thank you for playing Skyblock: Zero. " + .. "You demonstrated extreme logical thinking skills, planning skills, and invested probably at least a couple of hours into our game. " + .. "We hope you enjoyed this current version, because there will be more coming. " + .. "- Zander\n" + .. "\n" - .. "Below is a list of all the people who helped work on the game, optionally, along with a quote by the respective developer.\n" - -- Note to developers: Feel free to add yourself to the list if you're new, along with a quote. - -- If you're already on the list, feel free to edit your quote as well. (But not other people's) + .. "Below is a list of all the people who helped work on the game, optionally, along with a quote by the respective developer.\n" + -- Note to developers: Feel free to add yourself to the list if you're new, along with a quote. + -- If you're already on the list, feel free to edit your quote as well. (But not other people's) - .. "Developers & Contributors\n" - .. "- Zander \"Removing Global Power is the worst thing to have happened to Skyblock: Zero\"\n" - .. "- frogTheSecond\n" - .. "- theidealist\n" - .. "- birdlover32767\n" - .. "- ACorp \"0 coolant - not great, not terrible\"\n" - .. "- lnee\n" - .. "- The4codeblocks\n" - .. "- watilin\n" - .. "- Aredron\n" - .. "- 0je\n" - .. "- JustAPotota\n" - .. "- Kycilak\n" - .. "- cx384\n" - .. "- AbbyRead\n" - .. "- jack-obrien\n" - .. "- gamefreq0\n" - .. "\n" + .. "Developers & Contributors\n" + .. "- Zander \"Removing Global Power is the worst thing to have happened to Skyblock: Zero\"\n" + .. "- frogTheSecond\n" + .. "- theidealist\n" + .. "- birdlover32767\n" + .. "- ACorp \"0 coolant - not great, not terrible\"\n" + .. "- lnee\n" + .. "- The4codeblocks\n" + .. "- watilin\n" + .. "- Aredron\n" + .. "- 0je\n" + .. "- JustAPotota\n" + .. "- Kycilak\n" + .. "- cx384\n" + .. "- AbbyRead\n" + .. "- jack-obrien\n" + .. "- gamefreq0\n" + .. "\n" - .. "Submodule Contributors\n" - .. "- SmallJoker\n" - .. "- SwissalpS\n" - .. "- lumberjackgames\n" - .. "- Emojigit\n" - .. "\n" + .. "Submodule Contributors\n" + .. "- SmallJoker\n" + .. "- SwissalpS\n" + .. "- lumberjackgames\n" + .. "- Emojigit\n" + .. "\n" - .. "Translators\n" - .. "There's not been any work to translate the game outside of English. Maybe your name will one day show up here?\n" - .. "\n" + .. "Translators\n" + .. "There's not been any work to translate the game outside of English. Maybe your name will one day show up here?\n" + .. "\n" - .. "Menu & In-Game Music\n" - .. "- 'Tragic ambient main menu' by Brandon Morris (Menu Music)\n" - .. "- 'Cave Theme' by Brandon Morris\n" - .. "- 'Background space track' by yd\n" - .. "- 'Bleeding Out' by Brandon Morris\n" - .. "- 'Factory Ambiance' by yd\n" - .. "- 'Galactic Temple' by yd\n" - .. "- 'A Choice With Many Regrets' by Tsorthan Grove" - .. "\n" + .. "Menu & In-Game Music\n" + .. "- 'Tragic ambient main menu' by Brandon Morris (Menu Music)\n" + .. "- 'Cave Theme' by Brandon Morris\n" + .. "- 'Background space track' by yd\n" + .. "- 'Bleeding Out' by Brandon Morris\n" + .. "- 'Factory Ambiance' by yd\n" + .. "- 'Galactic Temple' by yd\n" + .. "- 'A Choice With Many Regrets' by Tsorthan Grove" + .. "\n" - .. "Skybox was made by StumpyStrust.\n" - .. "\n" + .. "Skybox was made by StumpyStrust.\n" + .. "\n" - .. "You've finished the Questbook, but the game has only just begun.\n" - .. "", + .. "You've finished the Questbook, but the game has only just begun.\n" + .. "", }) core.log('action', 'Loading quests from markdown took: ' .. ((core.get_us_time() - t0) / 1000) .. 'ms') From c05f666c29d64ce29c4dcece4e343f84c5e92756 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 14:25:30 -0700 Subject: [PATCH 20/35] Make key/value pairs read better --- mods/sbz_progression/quests.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mods/sbz_progression/quests.lua b/mods/sbz_progression/quests.lua index 8865cee1..8954b1b4 100644 --- a/mods/sbz_progression/quests.lua +++ b/mods/sbz_progression/quests.lua @@ -52,10 +52,10 @@ table.foreach(quest_files, function(name) table.foreach(qdata, sbz_api.register_quest, true) end, true) sbz_api.register_quest({ - ["type"] = "secret", - ["istoplevel"] = true, - ["title"] = "Credits", - ["text"] = + type = 'secret', + istoplevel = true, + title = 'Credits', + text = "Thank you for playing Skyblock: Zero. " .. "You demonstrated extreme logical thinking skills, planning skills, and invested probably at least a couple of hours into our game. " .. "We hope you enjoyed this current version, because there will be more coming. " From f08509f69a10adcc1f6598240679498e45b9d188 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 14:29:35 -0700 Subject: [PATCH 21/35] Add id and wrap translatable strings --- mods/sbz_progression/quests.lua | 50 +++++++++++++++++---------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/mods/sbz_progression/quests.lua b/mods/sbz_progression/quests.lua index 8954b1b4..e0e7c3ae 100644 --- a/mods/sbz_progression/quests.lua +++ b/mods/sbz_progression/quests.lua @@ -1,5 +1,5 @@ quests = {} - +local S = core.get_translator('sbz_progression') -- Index for faster lookups when patching-in the translations local quest_id_index = {} @@ -51,22 +51,28 @@ table.foreach(quest_files, function(name) assert(qdata, '[sbz_progression] Missing required English quest file: ' .. path) table.foreach(qdata, sbz_api.register_quest, true) end, true) + +-- The Credits quest is hardcoded so that developer names and quotes can be +-- handled carefully. Only the surrounding prose is wrapped in S(). sbz_api.register_quest({ + id = 'Credits', type = 'secret', istoplevel = true, title = 'Credits', text = - "Thank you for playing Skyblock: Zero. " - .. "You demonstrated extreme logical thinking skills, planning skills, and invested probably at least a couple of hours into our game. " - .. "We hope you enjoyed this current version, because there will be more coming. " - .. "- Zander\n" - .. "\n" - - .. "Below is a list of all the people who helped work on the game, optionally, along with a quote by the respective developer.\n" + S('Thank you for playing Skyblock: Zero. ' + .. + 'You demonstrated extreme logical thinking skills, planning skills, and invested probably at least a couple of hours into our game. ' + .. 'We hope you enjoyed this current version, because there will be more coming.') + .. '\n- Zander\n' + .. '\n' + .. + S( + 'Below is a list of all the people who helped work on the game, optionally, along with a quote by the respective developer.') + .. '\n\n' -- Note to developers: Feel free to add yourself to the list if you're new, along with a quote. -- If you're already on the list, feel free to edit your quote as well. (But not other people's) - - .. "Developers & Contributors\n" + .. S("Developers & Contributors") .. "\n" .. "- Zander \"Removing Global Power is the worst thing to have happened to Skyblock: Zero\"\n" .. "- frogTheSecond\n" .. "- theidealist\n" @@ -84,32 +90,28 @@ sbz_api.register_quest({ .. "- jack-obrien\n" .. "- gamefreq0\n" .. "\n" - - .. "Submodule Contributors\n" + .. S("Submodule Contributors") .. "\n" .. "- SmallJoker\n" .. "- SwissalpS\n" .. "- lumberjackgames\n" .. "- Emojigit\n" .. "\n" - - .. "Translators\n" - .. "There's not been any work to translate the game outside of English. Maybe your name will one day show up here?\n" - .. "\n" - - .. "Menu & In-Game Music\n" + .. S("Translators") .. "\n" + .. S( + "There's not been any work to translate the game outside of English. Maybe your name will one day show up here?") + .. '\n\n' + .. S("Menu & In-Game Music") .. "\n" .. "- 'Tragic ambient main menu' by Brandon Morris (Menu Music)\n" .. "- 'Cave Theme' by Brandon Morris\n" .. "- 'Background space track' by yd\n" .. "- 'Bleeding Out' by Brandon Morris\n" .. "- 'Factory Ambiance' by yd\n" .. "- 'Galactic Temple' by yd\n" - .. "- 'A Choice With Many Regrets' by Tsorthan Grove" + .. "- 'A Choice With Many Regrets' by Tsorthan Grove\n" .. "\n" - - .. "Skybox was made by StumpyStrust.\n" + .. S("Skybox was made by StumpyStrust.") .. "\n" .. "\n" - - .. "You've finished the Questbook, but the game has only just begun.\n" - .. "", + .. S("You've finished the Questbook, but the game has only just begun.") + .. "\n", }) core.log('action', 'Loading quests from markdown took: ' .. ((core.get_us_time() - t0) / 1000) .. 'ms') From 7f02ac5be6067ad365636b9bd422d5df9b5b2d93 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 15:08:46 -0700 Subject: [PATCH 22/35] Populate a quest object with supported translations --- mods/sbz_progression/quests.lua | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/mods/sbz_progression/quests.lua b/mods/sbz_progression/quests.lua index e0e7c3ae..fa2c2a83 100644 --- a/mods/sbz_progression/quests.lua +++ b/mods/sbz_progression/quests.lua @@ -114,4 +114,44 @@ sbz_api.register_quest({ .. S("You've finished the Questbook, but the game has only just begun.") .. "\n", }) + +-- Load translations for all supported languages. +-- Translated title and text are stored in .title_localized[lang] and .text_localized[lang], +-- so all languages coexist on the quest object; the display code picks the right one at runtime. +-- Logic fields (.id, .requires, .type) are never touched. +-- Add new language codes here as translators contribute files. +-- `x-` prefix marks a private use language code (must be specified in minetest.conf, e.g.: language = x-pirate) +local supported_languages = { 'x-pirate', 'x-pig-latin' } + +for _, lang in ipairs(supported_languages) do + for _, name in ipairs(quest_files) do + local path = modpath .. '/quests/' .. lang .. '/' .. name .. '.md' + local qdata = parse_md_file(path) + + if qdata == nil then + core.log('warning', + ('[sbz_progression] No %s translation found for %s.md — falling back to English'):format(lang, name) + ) + else + for _, translated_quest in ipairs(qdata) do + local idx = quest_id_index[translated_quest.id] + if idx then + -- Patch display fields only. Logic fields (.id, .requires, .type) are untouched. + quests[idx].title_localized = quests[idx].title_localized or {} + quests[idx].title_localized[lang] = translated_quest.title + + quests[idx].text_localized = quests[idx].text_localized or {} + quests[idx].text_localized[lang] = translated_quest.text + else + core.log('warning', + ('[sbz_progression] Translation references unknown quest ID "%s" in %s/%s.md — skipped'):format( + translated_quest.id, lang, name + ) + ) + end + end + end + end +end + core.log('action', 'Loading quests from markdown took: ' .. ((core.get_us_time() - t0) / 1000) .. 'ms') From 517e2395a7cfc758fd836ad3e529fe1e80963082 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 15:32:04 -0700 Subject: [PATCH 23/35] Add id field to quest parser --- mods/sbz_progression/quest_parser.lua | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mods/sbz_progression/quest_parser.lua b/mods/sbz_progression/quest_parser.lua index 17adcc26..54e9e769 100644 --- a/mods/sbz_progression/quest_parser.lua +++ b/mods/sbz_progression/quest_parser.lua @@ -202,9 +202,10 @@ function markdown_parser.decode(text) local quest = {} local write_to_quests = false if starts_with(line, '## Info: ') then + quest.id = string.sub(line, #'## Info: ' + 1):trim() + quest.title = quest.id quest.type = 'text' quest.info = true - quest.title = string.sub(line, #'## Info: ' + 1):trim() line_index = decode_text_and_meta(lines, line_index, quest) write_to_quests = true elseif starts_with(line, '## ') then @@ -214,14 +215,15 @@ function markdown_parser.decode(text) name = string.sub(line, #'## Secret: ' + 1) secret = true end + quest.id = name:trim() -- stable internal key, never overwritten by translations + quest.title = name:trim() -- display text, patched per-language in quests.lua quest.type = secret and 'secret' or 'quest' - quest.title = name:trim() line_index = decode_text_and_meta(lines, line_index, quest) - write_to_quests = true elseif starts_with(line, '# ') then local name = line - quest.title = string.sub(name, #'# ' + 1) + quest.id = string.sub(name, #'# ' + 1) + quest.title = quest.id quest.type = 'text' local desc = {} From bd049fe2d1b1e9dddc9616713ffd3c03e1e7be2f Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 15:55:29 -0700 Subject: [PATCH 24/35] Change quest handling to be based on id --- mods/sbz_progression/questbook.lua | 38 +++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/mods/sbz_progression/questbook.lua b/mods/sbz_progression/questbook.lua index 95d71b38..12bec05f 100644 --- a/mods/sbz_progression/questbook.lua +++ b/mods/sbz_progression/questbook.lua @@ -1,8 +1,8 @@ local S = core.get_translator('sbz_progression') -local function get_quest_by_name(quest_name) - for i, quest in ipairs(quests) do - if quest.title == quest_name then return quest end +local function get_quest_by_id(quest_id) + for _, quest in ipairs(quests) do + if quest.id == quest_id then return quest end end end @@ -76,11 +76,11 @@ function is_achievement_unlocked(player_name, achievement_id) end function is_quest_available(player_name, quest_id) - local quest = get_quest_by_name(quest_id) - if quest.requires == nil then return true end + local quest = get_quest_by_id(quest_id) + if quest == nil or quest.requires == nil then return true end - for i, quest_name in ipairs(quest.requires) do - if is_achievement_unlocked(player_name, quest_name) == false then return false end + for _, req_id in ipairs(quest.requires) do + if not is_achievement_unlocked(player_name, req_id) then return false end end return true end @@ -110,13 +110,13 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ for _, quest in ipairs(quests_to_show) do if quest.type == 'quest' then - if is_achievement_unlocked(player_name, quest.title) then + if is_achievement_unlocked(player_name, quest.id) then ins(pal.bright_green) ins(default_indent) ins '✓' ins(quest.title) completed_count = completed_count + 1 -- WHY LUA WHY?!?!?!? - elseif is_quest_available(player_name, quest.title) then + elseif is_quest_available(player_name, quest.id) then ins(pal.light1) ins(default_indent) ins '►' @@ -140,7 +140,7 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ ins '≡' ins(quest.title) quest_count = quest_count - 1 - elseif quest.type == 'secret' and is_achievement_unlocked(player_name, quest.title) then + elseif quest.type == 'secret' and is_achievement_unlocked(player_name, quest.id) then ins(pal.bright_purple) -- just for the credits quest @@ -153,7 +153,7 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ ins '✪' ins(quest.title) completed_count = completed_count + 1 -- WHY LUA WHY?!?!?!? - elseif quest.type == 'secret' and is_achievement_unlocked(player_name, quest.title) == false then + elseif quest.type == 'secret' and is_achievement_unlocked(player_name, quest.id) == false then ins(pal.bright_purple) -- just for the credits quest @@ -237,31 +237,31 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ if selected_quest then if selected_quest.type == 'quest' - or (selected_quest.type == 'secret' and is_achievement_unlocked(player_name, selected_quest.title)) + or (selected_quest.type == 'secret' and is_achievement_unlocked(player_name, selected_quest.id)) then formspec = formspec .. hypertext:format( core.formspec_escape('' .. selected_quest.title .. ''), ( - is_quest_available(player_name, selected_quest.title) + is_quest_available(player_name, selected_quest.id) and core.formspec_escape(selected_quest.text) or core.formspec_escape(S('Complete @1 to unlock.', combineWithAnd(selected_quest.requires))) ), ( - is_achievement_unlocked(player_name, selected_quest.title) + is_achievement_unlocked(player_name, selected_quest.id) and (selected_quest.type == 'secret' and core.formspec_escape(S("✔ Shhh... don't tell anyone :)")) or core.formspec_escape(S('✔ You have completed this Quest.'))) or core.formspec_escape(S('You have not completed this Quest.')) ) ) elseif - selected_quest.type == 'secret' and is_achievement_unlocked(player_name, selected_quest.title) == false + selected_quest.type == 'secret' and is_achievement_unlocked(player_name, selected_quest.id) == false then formspec = formspec .. hypertext:format( '???', '', ( - is_achievement_unlocked(player_name, selected_quest.title) + is_achievement_unlocked(player_name, selected_quest.id) and core.formspec_escape(S("✔ Shhh... don't tell anyone")) or core.formspec_escape(S('You have not completed this Quest.')) ) @@ -271,7 +271,7 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ .. hypertext:format( ('', ( - is_quest_available(player_name, selected_quest.title) + is_quest_available(player_name, selected_quest.id) and core.formspec_escape(selected_quest.text) or core.formspec_escape(S('Complete @1 to unlock.', combineWithAnd(selected_quest.requires))) ), @@ -342,9 +342,9 @@ core.register_on_player_receive_fields(function(player, formname, fields) if fields.search == 'reachable' then -- When re-working this, don't forget to update the questbook, it's in the introduction questline, last infopage for k, v in pairs(quests) do if - is_quest_available(name, v.title) + is_quest_available(name, v.id) and v.type == 'quest' - and is_achievement_unlocked(name, v.title) == false + and is_achievement_unlocked(name, v.id) == false then filtered_quests[#filtered_quests + 1] = v end From 97c0b608dcb3c183b6b79fc350e79f1cc722132b Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 16:17:25 -0700 Subject: [PATCH 25/35] Show localized quest titles and text to players --- mods/sbz_progression/questbook.lua | 43 ++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/mods/sbz_progression/questbook.lua b/mods/sbz_progression/questbook.lua index 12bec05f..c971b960 100644 --- a/mods/sbz_progression/questbook.lua +++ b/mods/sbz_progression/questbook.lua @@ -1,5 +1,21 @@ local S = core.get_translator('sbz_progression') +-- Returns the display title or text for a quest in the player's language, +-- falling back to the English default if no translation exists. +local function localized(quest, field, lang) + local localized_field = field .. '_localized' + if lang and quest[localized_field] and quest[localized_field][lang] then + return quest[localized_field][lang] + end + return quest[field] -- English default +end + +-- Gets the lang code for a player, defaulting to "en". +local function player_lang(player_name) + local info = core.get_player_information(player_name) + return (info and info.lang_code and info.lang_code ~= '') and info.lang_code or 'en' +end + local function get_quest_by_id(quest_id) for _, quest in ipairs(quests) do if quest.id == quest_id then return quest end @@ -91,6 +107,8 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ if not player_ref then return '' end sbz_api.ui.set_player(player_ref) + local lang = player_lang(player_name) + local selected_quest = quests_to_show[selected_quest_index] local quest_count = #quests -- we subtract uncompletable quests from this later, like infotexts local completed_count = 0 @@ -114,31 +132,31 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ ins(pal.bright_green) ins(default_indent) ins '✓' - ins(quest.title) - completed_count = completed_count + 1 -- WHY LUA WHY?!?!?!? + ins(localized(quest, 'title', lang)) + completed_count = completed_count + 1 elseif is_quest_available(player_name, quest.id) then ins(pal.light1) ins(default_indent) ins '►' - ins(quest.title) + ins(localized(quest, 'title', lang)) available_count = available_count + 1 else ins(pal.light4) ins(default_indent) ins '✕' - ins(quest.title) + ins(localized(quest, 'title', lang)) end elseif quest.info == true then -- info text ins(pal.bright_blue) ins(default_indent) ins '!' - ins(quest.title) + ins(localized(quest, 'title', lang)) quest_count = quest_count - 1 elseif quest.type == 'text' then ins(pal.bright_aqua) ins '0' ins '≡' - ins(quest.title) + ins(localized(quest, 'title', lang)) quest_count = quest_count - 1 elseif quest.type == 'secret' and is_achievement_unlocked(player_name, quest.id) then ins(pal.bright_purple) @@ -241,10 +259,10 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ then formspec = formspec .. hypertext:format( - core.formspec_escape('' .. selected_quest.title .. ''), + core.formspec_escape('' .. localized(selected_quest, 'title', lang) .. ''), ( is_quest_available(player_name, selected_quest.id) - and core.formspec_escape(selected_quest.text) + and core.formspec_escape(localized(selected_quest, 'text', lang)) or core.formspec_escape(S('Complete @1 to unlock.', combineWithAnd(selected_quest.requires))) ), ( @@ -269,10 +287,11 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ elseif selected_quest.type == 'text' then formspec = formspec .. hypertext:format( - ('', + ('', ( is_quest_available(player_name, selected_quest.id) - and core.formspec_escape(selected_quest.text) + and core.formspec_escape(localized(selected_quest, 'text', lang)) or core.formspec_escape(S('Complete @1 to unlock.', combineWithAnd(selected_quest.requires))) ), '' @@ -306,6 +325,7 @@ end core.register_on_player_receive_fields(function(player, formname, fields) if formname == 'questbook:main' then local name = player:get_player_name() + local lang = player_lang(name) local meta = player:get_meta() local force_query = false if fields.search_reset then @@ -353,7 +373,8 @@ core.register_on_player_receive_fields(function(player, formname, fields) local real_search = fields.search:lower() local quests_with_holes = table.copy(quests) for k, v in pairs(quests_with_holes) do - local title = v.title:lower() + -- Search against the player's localized title so they can search in their own language + local title = localized(v, 'title', lang):lower() if not title:find(real_search, 1, true) then quests_with_holes[k] = nil end end for i = 1, #quests do From 50a6a7f0b253acd5f4e04edef28fb5749bbc8201 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 16:25:49 -0700 Subject: [PATCH 26/35] Collapse duplicate secret-quest branches --- mods/sbz_progression/questbook.lua | 38 ++++++++---------------------- 1 file changed, 10 insertions(+), 28 deletions(-) diff --git a/mods/sbz_progression/questbook.lua b/mods/sbz_progression/questbook.lua index c971b960..49f0a9c3 100644 --- a/mods/sbz_progression/questbook.lua +++ b/mods/sbz_progression/questbook.lua @@ -158,34 +158,20 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ ins '≡' ins(localized(quest, 'title', lang)) quest_count = quest_count - 1 - elseif quest.type == 'secret' and is_achievement_unlocked(player_name, quest.id) then + elseif quest.type == 'secret' then ins(pal.bright_purple) - - -- just for the credits quest - if quest.istoplevel then - ins '0' - else - ins(default_indent) - end - + ins(quest.istoplevel and '0' or default_indent) ins '✪' - ins(quest.title) - completed_count = completed_count + 1 -- WHY LUA WHY?!?!?!? - elseif quest.type == 'secret' and is_achievement_unlocked(player_name, quest.id) == false then - ins(pal.bright_purple) - - -- just for the credits quest - if quest.istoplevel then - ins '0' + if is_achievement_unlocked(player_name, quest.id) then + ins(localized(quest, 'title', lang)) + completed_count = completed_count + 1 else - ins(default_indent) + ins '???' + available_count = available_count + 1 end - - ins '✪' - ins '???' - available_count = available_count + 1 end end + ---@diagnostic disable-next-line: cast-local-type quest_list = table.concat(quest_list, ',') @@ -272,17 +258,13 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ ) ) elseif - selected_quest.type == 'secret' and is_achievement_unlocked(player_name, selected_quest.id) == false + selected_quest.type == 'secret' and not is_achievement_unlocked(player_name, selected_quest.id) then formspec = formspec .. hypertext:format( '???', '', - ( - is_achievement_unlocked(player_name, selected_quest.id) - and core.formspec_escape(S("✔ Shhh... don't tell anyone")) - or core.formspec_escape(S('You have not completed this Quest.')) - ) + core.formspec_escape(S('You have not completed this Quest.')) ) elseif selected_quest.type == 'text' then formspec = formspec From 41a205356ccc0ef968f678b6c6fef30d90f66c59 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 16:26:13 -0700 Subject: [PATCH 27/35] Clean up comments and style --- mods/sbz_progression/questbook.lua | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mods/sbz_progression/questbook.lua b/mods/sbz_progression/questbook.lua index 49f0a9c3..e0a79b6a 100644 --- a/mods/sbz_progression/questbook.lua +++ b/mods/sbz_progression/questbook.lua @@ -282,14 +282,14 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ end if available_count == 1 and (quest_count - completed_count) == 1 then - unlock_achievement(player_name, 'Credits') - - -- okay let me explain - -- this will be called only once - -- to refresh the questbook - -- if i dont do this, the quest will be granted but show up as not complete in the book - -- so by refreshing it once here, itll show up correct - -- it looks so ugly though... + unlock_achievement(player_name, 'Credits') -- 'Credits' is the stable ID, not a display title + + -- Okay, let me explain. + -- This will be called only once to refresh the questbook. + -- If I don't do this, the quest will be granted + -- but show up as not complete in the book. + -- So, by refreshing it once here, it'll show up correctly. + -- It looks so ugly though... return get_questbook_formspec(selected_quest_index, player_name, quests_to_show, search_text) end @@ -346,7 +346,7 @@ core.register_on_player_receive_fields(function(player, formname, fields) if is_quest_available(name, v.id) and v.type == 'quest' - and is_achievement_unlocked(name, v.id) == false + and not is_achievement_unlocked(name, v.id) then filtered_quests[#filtered_quests + 1] = v end From e397a65ca28869ec31c95bfb1bd591902de2c03f Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 18:29:03 -0700 Subject: [PATCH 28/35] Make parser ingest a clear, static ID for the quest I think we need to do this so that it's clear to the translators that this is not to be changed, and they can still have the localized titles as markdown titles. I'm not sure if the localization files need to worry about requirements though, since that should probably be a single source of truth in the en version. --- mods/sbz_progression/quest_parser.lua | 73 ++++++++++++++++++--------- 1 file changed, 50 insertions(+), 23 deletions(-) diff --git a/mods/sbz_progression/quest_parser.lua b/mods/sbz_progression/quest_parser.lua index 54e9e769..1b29adc7 100644 --- a/mods/sbz_progression/quest_parser.lua +++ b/mods/sbz_progression/quest_parser.lua @@ -14,13 +14,19 @@ Stuff above gets ignored, could be like a disclaimer that this contains spoilers # Some Questline name Some questline description ## Some quest name +### ID: qid_some_quest_name ### Text Some quest text ### Meta -Requires: Something +Requires: qid_something ## Info: Some info name +### ID: qid_some_info_name Hello! Yes this is an info +The ### ID: line must appear immediately after every ## header. +It is the stable, permanent key for the quest and must never be changed after release. +The ## title above it is the human-readable display name and may be translated freely. + ]] --local S = core.get_translator('sbz_progression') @@ -30,8 +36,9 @@ local markdown_parser = {} local questline_fmt = '\n# %s\n' local quest_fmt = '\n## %s\n' -local info_fmt = quest_fmt:format 'Info: %s' -local secret_fmt = quest_fmt:format 'Secret: %s' +local id_fmt = '### ID: %s\n' +local info_fmt = '## Info: %s\n' +local secret_fmt = '## Secret: %s\n' local meta_fmt = '\n### %s\n' local requires_fmt = 'Requires: %s' @@ -63,8 +70,9 @@ function markdown_parser.encode(quests) local result = {} for k, v in ipairs(quests) do if v.type == 'text' then - if v.info then -- Case: Infopage (more similar to a quest) + if v.info then -- Case: Infopage result[#result + 1] = info_fmt:format(v.title) + result[#result + 1] = id_fmt:format(v.id) result[#result + 1] = meta_fmt:format 'Text' result[#result + 1] = encode_text(v.text) result[#result + 1] = meta_fmt:format 'Meta' @@ -73,12 +81,13 @@ function markdown_parser.encode(quests) else result[#result + 1] = 'Requires: ' end - else -- Case: Questline + else -- Case: Questline banner result[#result + 1] = questline_fmt:format(v.title) result[#result + 1] = v.text end elseif v.type == 'quest' then result[#result + 1] = quest_fmt:format(v.title) + result[#result + 1] = id_fmt:format(v.id) result[#result + 1] = meta_fmt:format 'Text' result[#result + 1] = encode_text(v.text) result[#result + 1] = meta_fmt:format 'Meta' @@ -89,6 +98,7 @@ function markdown_parser.encode(quests) end elseif v.type == 'secret' then result[#result + 1] = secret_fmt:format(v.title) + result[#result + 1] = id_fmt:format(v.id) result[#result + 1] = meta_fmt:format 'Text' result[#result + 1] = encode_text(v.text) result[#result + 1] = meta_fmt:format 'Meta' @@ -141,7 +151,10 @@ function markdown_parser.decode_text(text) return text end +-- Reads the ### ID:, ### Text, and ### Meta blocks for a quest. +-- The ### ID: line must be the first ### encountered after a ## header. local function decode_text_and_meta(lines, line_index, quest) + local got_id local got_text local line local break_out_of_main_loop = false @@ -149,12 +162,23 @@ local function decode_text_and_meta(lines, line_index, quest) line_index = line_index + 1 line = lines[line_index] if line == nil then break end - if starts_with(line, '### Meta') then + if starts_with(line, '### ID:') then + quest.id = string.sub(line, #'### ID:' + 1):trim() + assert( + starts_with(quest.id, 'qid_'), + '[parser]: Quest "' .. quest.title .. '" has an ### ID: that does not start with qid_: ' .. quest.id + ) + got_id = true + elseif starts_with(line, '### Meta') then + assert( + got_id, + '[parser]: Quest "' .. quest.title .. '" is missing ### ID: before ### Meta' + ) assert( got_text, '[parser]: Quest: ' - .. quest.title - .. ": I know, I'm strict, but you need to have the ### Text AFTER the ### Meta" + .. quest.title + .. ": I know, I'm strict, but you need to have the ### Text BEFORE the ### Meta" ) while true do line_index = line_index + 1 @@ -202,30 +226,33 @@ function markdown_parser.decode(text) local quest = {} local write_to_quests = false if starts_with(line, '## Info: ') then - quest.id = string.sub(line, #'## Info: ' + 1):trim() - quest.title = quest.id - quest.type = 'text' - quest.info = true - line_index = decode_text_and_meta(lines, line_index, quest) + quest.title = string.sub(line, #'## Info: ' + 1):trim() + quest.type = 'text' + quest.info = true + line_index = decode_text_and_meta(lines, line_index, quest) write_to_quests = true elseif starts_with(line, '## ') then local name = string.sub(line, #'## ' + 1) local secret = false if starts_with(line, '## Secret: ') then - name = string.sub(line, #'## Secret: ' + 1) + name = string.sub(line, #'## Secret: ' + 1) secret = true end - quest.id = name:trim() -- stable internal key, never overwritten by translations - quest.title = name:trim() -- display text, patched per-language in quests.lua - quest.type = secret and 'secret' or 'quest' - line_index = decode_text_and_meta(lines, line_index, quest) + quest.title = name:trim() -- display text; may be translated freely + quest.type = secret and 'secret' or 'quest' + -- quest.id is read from ### ID: inside decode_text_and_meta + line_index = decode_text_and_meta(lines, line_index, quest) + assert( + quest.id, + '[parser]: Quest "' .. quest.title .. '" is missing a ### ID: line' + ) write_to_quests = true elseif starts_with(line, '# ') then - local name = line - quest.id = string.sub(name, #'# ' + 1) - quest.title = quest.id - quest.type = 'text' - local desc = {} + -- Questline banner: no ID required, not part of the progression graph + quest.title = string.sub(line, #'# ' + 1):trim() + quest.id = quest.title -- banners use title as id; they are never referenced by Requires: + quest.type = 'text' + local desc = {} while true do line_index = line_index + 1 From f6f1e842882870d4590225a5c3a84327a8192ee2 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 18:33:01 -0700 Subject: [PATCH 29/35] Add quest ID update pass --- mods/sbz_progression/quests.lua | 190 +++++++++++++++++++++++++++++++- 1 file changed, 189 insertions(+), 1 deletion(-) diff --git a/mods/sbz_progression/quests.lua b/mods/sbz_progression/quests.lua index fa2c2a83..c054c978 100644 --- a/mods/sbz_progression/quests.lua +++ b/mods/sbz_progression/quests.lua @@ -55,7 +55,7 @@ end, true) -- The Credits quest is hardcoded so that developer names and quotes can be -- handled carefully. Only the surrounding prose is wrapped in S(). sbz_api.register_quest({ - id = 'Credits', + id = 'qid_credits', type = 'secret', istoplevel = true, title = 'Credits', @@ -155,3 +155,191 @@ for _, lang in ipairs(supported_languages) do end core.log('action', 'Loading quests from markdown took: ' .. ((core.get_us_time() - t0) / 1000) .. 'ms') + +-- ============================================================ +-- One-time migration: old metadata keys were English display +-- titles (e.g. "Jumpdrive Backbone"). New keys are qid_ slugs +-- (e.g. "qid_jumpdrive_backbone"). This block runs once per +-- player on join and rewrites any old-format keys it finds. +-- +-- This table and the register_on_joinplayer block below may be +-- removed once all live players have been migrated. +-- ============================================================ +local legacy_key_map = { + ['A bigger platform'] = 'qid_a_bigger_platform', + ['Matter Stairs'] = 'qid_matter_stairs', + ['Antimatter'] = 'qid_antimatter', + ['Annihilator'] = 'qid_annihilator', + ['Charged Field'] = 'qid_charged_field', + ['Automation'] = 'qid_automation', + ['Advanced Extractors'] = 'qid_advanced_extractors', + ['Circuitry'] = 'qid_circuitry', + ['Generators'] = 'qid_generators', + ['Matter Plates'] = 'qid_matter_plates', + ['Retaining Circuits'] = 'qid_retaining_circuits', + ['Storinators'] = 'qid_storinators', + ['Pretty Pebbles'] = 'qid_pretty_pebbles', + ['Concrete Plan'] = 'qid_concrete_plan', + ['Compressed Core Dust'] = 'qid_compressed_core_dust', + ['Photon Lamps'] = 'qid_photon_lamps', + ['More Antimatter'] = 'qid_more_antimatter', + ['Anti-Annihilator'] = 'qid_anti_annihilator', + ['Emitter Imitators'] = 'qid_emitter_imitators', + ['Factory Flooring'] = 'qid_factory_flooring', + ['Tiled Factory Flooring'] = 'qid_tiled_factory_flooring', + ['Factory Ventilator'] = 'qid_factory_ventilator', + ['Emittrium Circuits'] = 'qid_emittrium_circuits', + ["Angel's Wing"] = 'qid_angels_wing', + ['Batteries'] = 'qid_batteries', + ['Advanced Batteries'] = 'qid_advanced_batteries', + ['Connectors'] = 'qid_connectors', + ['Phosphor'] = 'qid_phosphor', + ['Power Cables'] = 'qid_power_cables', + ['Starlight Collectors'] = 'qid_starlight_collectors', + ['Reinforced Matter'] = 'qid_reinforced_matter', + ['Switching Station'] = 'qid_switching_station', + ['Infinite Storinators'] = 'qid_infinite_storinators', + ['Crusher'] = 'qid_crusher', + ['Simple Alloy Furnace'] = 'qid_simple_alloy_furnace', + ['Meteorites'] = 'qid_meteorites', + ['Neutronium'] = 'qid_neutronium', + ['Bear Arms'] = 'qid_bear_arms', + ['Automatic Filter-Injectors'] = 'qid_automatic_filter_injectors', + ['Tubes'] = 'qid_tubes', + ['One Direction Tubes'] = 'qid_one_direction_tubes', + ['Node Breakers'] = 'qid_node_breakers', + ['Deployers'] = 'qid_deployers', + ['Punchers'] = 'qid_punchers', + ['Autocrafters'] = 'qid_autocrafters', + ['Simple Crafting Processors'] = 'qid_simple_crafting_processors', + ['Item Voids'] = 'qid_item_voids', + ['Item Vacuums'] = 'qid_item_vacuums', + ['Screwdriver'] = 'qid_screwdriver', + ['Furnace'] = 'qid_furnace', + ['Small Protectors'] = 'qid_small_protectors', + ['Big Protectors'] = 'qid_big_protectors', + ['Antimatter Generators'] = 'qid_antimatter_generators', + ['Public Storinators'] = 'qid_public_storinators', + ['Emittrium Glass'] = 'qid_emittrium_glass', + ['Dirt'] = 'qid_dirt', + ['Sprouting Plants'] = 'qid_sprouting_plants', + ['Carbon Dioxide'] = 'qid_carbon_dioxide', + ['Airlocks'] = 'qid_airlocks', + ['Fluid Pipes'] = 'qid_fluid_pipes', + ['Fluid Pumps'] = 'qid_fluid_pumps', + ['Fluid Capturers'] = 'qid_fluid_capturers', + ['Fluid Storage Tanks'] = 'qid_fluid_storage_tanks', + ['Fluid Cell Fillers'] = 'qid_fluid_cell_fillers', + ['Reactor Shells'] = 'qid_reactor_shells', + ['Reactor Glass'] = 'qid_reactor_glass', + ['Reactor Infoscreens'] = 'qid_reactor_infoscreens', + ['Reactor Power Ports'] = 'qid_reactor_power_ports', + ['Reactor Coolant Ports'] = 'qid_reactor_coolant_ports', + ['Reactor Emittrium Input'] = 'qid_reactor_emittrium_input', + ['Reactor Core'] = 'qid_reactor_core', + ['Ele Fabs'] = 'qid_ele_fabs', + ['Knowledge Stations'] = 'qid_knowledge_stations', + ['Signs'] = 'qid_signs', + ['CNC Machines'] = 'qid_cnc_machines', + ['Powered Lights'] = 'qid_powered_lights', + ['Coloring Tool'] = 'qid_coloring_tool', + ['Mystery Terrarium'] = 'qid_mystery_terrarium', + ['Large Server Rack'] = 'qid_large_server_rack', + ['Ground Line'] = 'qid_ground_line', + ['Power Ground Line'] = 'qid_power_ground_line', + ['Antiblocks'] = 'qid_antiblocks', + ['Jetpack'] = 'qid_jetpack', + ['Electric Drill'] = 'qid_electric_drill', + ['Meteorite Maker'] = 'qid_meteorite_maker', + ['Strange Blob Cleaner'] = 'qid_strange_blob_cleaner', + ['Fertilized Dirt'] = 'qid_fertilized_dirt', + ['Laser'] = 'qid_laser', + ['Better Storinators'] = 'qid_better_storinators', + ['Best Storinators'] = 'qid_best_storinators', + ['Drawers'] = 'qid_drawers', + ['Drawer Upgrades'] = 'qid_drawer_upgrades', + ['Drawer Controller'] = 'qid_drawer_controller', + ['Compressor'] = 'qid_compressor', + ['Crystal Grower'] = 'qid_crystal_grower', + ['Very Advanced Batteries'] = 'qid_very_advanced_batteries', + ['Jumpdrive Backbone'] = 'qid_jumpdrive_backbone', + ['Jumpdrive Fleet Controller'] = 'qid_jumpdrive_fleet_controller', + ['The Jumpdrive (engine)'] = 'qid_the_jumpdrive_engine', + ['Warp Device'] = 'qid_warp_device', + ['Jumpdrive Stations'] = 'qid_jumpdrive_stations', + ['Dna Extractor'] = 'qid_dna_extractor', + ['Centrifuge'] = 'qid_centrifuge', + ['Phlogiston Fuser'] = 'qid_phlogiston_fuser', + ['Planet Teleporter'] = 'qid_planet_teleporter', + ['Pebble Enhancer'] = 'qid_pebble_enhancer', + ['Nuclear Reactor'] = 'qid_nuclear_reactor', + ['Teleport Tubes'] = 'qid_teleport_tubes', + ['Decay Accelerator'] = 'qid_decay_accelerator', + ['Automatic Turrets'] = 'qid_automatic_turrets', + ['CO2 Compactors'] = 'qid_co2_compactors', + ['Node Preserver'] = 'qid_node_preserver', + ['Bulk Placer Tool'] = 'qid_bulk_placer_tool', + ['Copy Tool'] = 'qid_copy_tool', + ['Basic Neutron Emitter'] = 'qid_basic_neutron_emitter', + ['Electric Soil'] = 'qid_electric_soil', + ['Engraver'] = 'qid_engraver', + ['Blast Furnace'] = 'qid_blast_furnace', + ['Instatubes'] = 'qid_instatubes', + ['Teleport Battery'] = 'qid_teleport_battery', + ['Pattern Storinator'] = 'qid_pattern_storinator', + ['Starlight Catchers'] = 'qid_starlight_catchers', + ['Gravitational Lens'] = 'qid_gravitational_lens', + ['Sensor Linker'] = 'qid_sensor_linker', + ['Logic Gates'] = 'qid_logic_gates', + ['Delayer'] = 'qid_delayer', + ['Light Sensor'] = 'qid_light_sensor', + ['Node Sensor'] = 'qid_node_sensor', + ['Item Sensor'] = 'qid_item_sensor', + ['Switches'] = 'qid_switches', + ['Manual Crafters'] = 'qid_manual_crafters', + ['Craftageddon'] = 'qid_craftageddon', + ['Room Containers'] = 'qid_room_containers', + -- achievement_in_inventory_table + ["It's fake"] = 'qid_its_fake', + ['Bronze Age'] = 'qid_bronze_age', + ['Liquid Water'] = 'qid_liquid_water', + ['Stemfruit'] = 'qid_stemfruit', + ['Warpshrooms'] = 'qid_warpshrooms', + ['Planet Ores'] = 'qid_planet_ores', + ['Movable Emitters'] = 'qid_movable_emitters', + ['Colorium Emitters'] = 'qid_colorium_emitters', + ['Radiation Shielding'] = 'qid_radiation_shielding', + ['TNT'] = 'qid_tnt', + ["It's strange..."] = 'qid_its_strange', + ['Cleargrass'] = 'qid_cleargrass', + ['Razorgrass'] = 'qid_razorgrass', + ['Shockshrooms'] = 'qid_shockshrooms', + ['Dust'] = 'qid_dust', + ['Bricks'] = 'qid_bricks', + ['Firmament'] = 'qid_firmament', + ['Refined Firmament'] = 'qid_refined_firmament', + ['Wormhole'] = 'qid_wormhole', + -- achievement_on_dig_table + ['Antineutronium'] = 'qid_antineutronium', + -- special + ['Emptiness'] = 'qid_emptiness', + ['Credits'] = 'qid_credits', +} + +core.register_on_joinplayer(function(player) + local meta = player:get_meta() + local migrated = 0 + for old_key, new_key in pairs(legacy_key_map) do + if meta:get_string(old_key) == 'true' then + meta:set_string(new_key, 'true') + meta:set_string(old_key, '') + migrated = migrated + 1 + end + end + if migrated > 0 then + core.log('action', + ('[sbz_progression] Migrated %d legacy quest key(s) for player "%s"') + :format(migrated, player:get_player_name()) + ) + end +end) From 25293c09793085f38fea0755a2c58f64d7172183 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 18:35:47 -0700 Subject: [PATCH 30/35] Update achievement unlock to use qid --- mods/sbz_progression/questbook.lua | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mods/sbz_progression/questbook.lua b/mods/sbz_progression/questbook.lua index e0a79b6a..f8f1895e 100644 --- a/mods/sbz_progression/questbook.lua +++ b/mods/sbz_progression/questbook.lua @@ -44,7 +44,14 @@ function unlock_achievement(player_name, achievement_id) local meta = player:get_meta() if not is_achievement_unlocked(player_name, achievement_id) then meta:set_string(achievement_id, 'true') - core.chat_send_player(player_name, S('Quest Completed: @1!', S(achievement_id))) + + -- Look up the human-readable title for the completion message. + -- It resolves via quest ID so this is always in sync with the quest definition, + -- and uses localized() so the player sees their own language if a translation exists. + local lang = player_lang(player_name) + local quest = get_quest_by_id(achievement_id) + local display_title = quest and localized(quest, 'title', lang) or achievement_id + core.chat_send_player(player_name, S('Quest Completed: @1!', display_title)) local pos = player:get_pos() core.add_particlespawner { @@ -282,7 +289,7 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ end if available_count == 1 and (quest_count - completed_count) == 1 then - unlock_achievement(player_name, 'Credits') -- 'Credits' is the stable ID, not a display title + unlock_achievement(player_name, 'qid_credits') -- Okay, let me explain. -- This will be called only once to refresh the questbook. From e27e70967b0b72ad9016c765a9266ad4516fa2f9 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 18:50:24 -0700 Subject: [PATCH 31/35] Change achievement_table over to use qid slugs --- mods/sbz_progression/init.lua | 376 +++++++++++++++++----------------- 1 file changed, 189 insertions(+), 187 deletions(-) diff --git a/mods/sbz_progression/init.lua b/mods/sbz_progression/init.lua index c8b265a7..64b8a231 100644 --- a/mods/sbz_progression/init.lua +++ b/mods/sbz_progression/init.lua @@ -20,160 +20,161 @@ end -- it will be funny if we all added quest items in the order of recency, not where they are placed on the questbook --- Achievement table keys are used as metadata storage keys — do NOT translate them. --- Translation happens at the point of display in unlock_achievement below. +-- Maps craftable item IDs to their quest IDs. +-- The qids are found on the `### ID:` line in the corresponding markdown quest. +-- No titles as values; qid slugs are the permanent, not-to-be-localized keys, present as identifiers. local achievement_table = { - ['sbz_resources:matter_blob'] = 'A bigger platform', - ['sbz_resources:matter_stair'] = 'Matter Stairs', - ['sbz_resources:antimatter_dust'] = 'Antimatter', - ['sbz_resources:matter_annihilator'] = 'Annihilator', - ['sbz_power:simple_charged_field'] = 'Charged Field', - ['sbz_power:simple_matter_extractor'] = 'Automation', - ['sbz_power:advanced_matter_extractor'] = 'Advanced Extractors', - ['sbz_resources:simple_circuit'] = 'Circuitry', - ['sbz_power:simple_charge_generator_off'] = 'Generators', - ['sbz_resources:matter_plate'] = 'Matter Plates', - ['sbz_resources:retaining_circuit'] = 'Retaining Circuits', - ['sbz_resources:storinator'] = 'Storinators', - ['sbz_resources:pebble'] = 'Pretty Pebbles', - ['sbz_resources:stone'] = 'Concrete Plan', - - ['sbz_resources:compressed_core_dust'] = 'Compressed Core Dust', - ['sbz_decor:photonlamp'] = 'Photon Lamps', - ['sbz_resources:antimatter_blob'] = 'More Antimatter', - ['sbz_resources:antimatter_annihilator'] = 'Anti-Annihilator', - ['sbz_resources:emitter_imitator'] = 'Emitter Imitators', - - ['sbz_decor:factory_floor'] = 'Factory Flooring', - ['sbz_decor:factory_floor_tiling'] = 'Tiled Factory Flooring', - ['sbz_decor:factory_ventilator'] = 'Factory Ventilator', - - ['sbz_resources:emittrium_circuit'] = 'Emittrium Circuits', - ['sbz_resources:angels_wing'] = "Angel's Wing", - ['sbz_power:battery'] = 'Batteries', - ['sbz_power:advanced_battery'] = 'Advanced Batteries', - ['sbz_power:connector_off'] = 'Connectors', - ['sbz_power:phosphor_off'] = 'Phosphor', - ['sbz_power:power_pipe'] = 'Power Cables', - ['sbz_power:starlight_collector'] = 'Starlight Collectors', - ['sbz_resources:reinforced_matter'] = 'Reinforced Matter', - ['sbz_power:switching_station'] = 'Switching Station', - ['sbz_power:infinite_storinator'] = 'Infinite Storinators', - ['sbz_chem:crusher_off'] = 'Crusher', - ['sbz_chem:simple_alloy_furnace_off'] = 'Simple Alloy Furnace', - ['sbz_meteorites:meteorite_radar'] = 'Meteorites', - ['sbz_meteorites:gravitational_attractor'] = 'Neutronium', - ['sbz_meteorites:gravitational_repulsor'] = 'Neutronium', - ['sbz_resources:robotic_arm'] = 'Bear Arms', - ['pipeworks:automatic_filter_injector'] = 'Automatic Filter-Injectors', - ['pipeworks:tube_1'] = 'Tubes', - ['pipeworks:one_direction_tube_1'] = 'One Direction Tubes', - ['pipeworks:nodebreaker'] = 'Node Breakers', - ['pipeworks:deployer'] = 'Deployers', - ['pipeworks:puncher'] = 'Punchers', - ['pipeworks:autocrafter'] = 'Autocrafters', - ['sbz_resources:simple_crafting_processor'] = 'Simple Crafting Processors', - ['pipeworks:item_void'] = 'Item Voids', - ['sbz_power:item_vacuum'] = 'Item Vacuums', - ['screwdriver:screwdriver'] = 'Screwdriver', - ['sbz_chem:high_power_electric_furnace_off'] = 'Furnace', - ['areasprotector:protector_small'] = 'Small Protectors', - ['areasprotector:protector_large'] = 'Big Protectors', - ['sbz_power:antimatter_generator_off'] = 'Antimatter Generators', - ['sbz_resources:storinator_public'] = 'Public Storinators', - - ['sbz_resources:emittrium_glass'] = 'Emittrium Glass', - ['sbz_bio:dirt'] = 'Dirt', - ['sbz_bio:fertilizer'] = 'Sprouting Plants', - ['sbz_bio:burner'] = 'Carbon Dioxide', - ['sbz_bio:airlock'] = 'Airlocks', - ['sbz_power:fluid_pipe'] = 'Fluid Pipes', - ['sbz_power:pump_off'] = 'Fluid Pumps', - ['sbz_power:fluid_capturer_off'] = 'Fluid Capturers', - ['sbz_power:fluid_tank'] = 'Fluid Storage Tanks', - ['sbz_power:fluid_cell_filler'] = 'Fluid Cell Fillers', - - ['sbz_power:reactor_shell'] = 'Reactor Shells', - ['sbz_power:reactor_glass'] = 'Reactor Glass', - ['sbz_power:reactor_infoscreen'] = 'Reactor Infoscreens', - ['sbz_power:reactor_power_port'] = 'Reactor Power Ports', - ['sbz_power:reactor_coolant_port'] = 'Reactor Coolant Ports', - ['sbz_power:reactor_item_input'] = 'Reactor Emittrium Input', - ['sbz_power:reactor_core_off'] = 'Reactor Core', - - ['sbz_power:ele_fab_off'] = 'Ele Fabs', - ['sbz_logic:knowledge_station'] = 'Knowledge Stations', - - ['sbz_decor:matter_sign'] = 'Signs', - ['sbz_decor:antimatter_sign'] = 'Signs', - ['sbz_decor:cnc'] = 'CNC Machines', - ['sbz_power:powered_lamp_off'] = 'Powered Lights', - ['sbz_power:super_powered_lamp_off'] = 'Powered Lights', - ['unifieddyes:coloring_tool'] = 'Coloring Tool', - ['sbz_decor:mystery_terrarium'] = 'Mystery Terrarium', - ['sbz_decor:large_server_rack'] = 'Large Server Rack', - ['unifieddyes:colorium_ground_line'] = 'Ground Line', - ['unifieddyes:power_ground_line'] = 'Power Ground Line', - ['unifieddyes:antiblock'] = 'Antiblocks', - ['sbz_resources:jetpack'] = 'Jetpack', - ['sbz_resources:drill'] = 'Electric Drill', - ['sbz_meteorites:meteorite_maker_off'] = 'Meteorite Maker', - ['sbz_resources:strange_cleaner'] = 'Strange Blob Cleaner', - ['sbz_bio:fertilized_dirt'] = 'Fertilized Dirt', - ['sbz_resources:laser_weapon'] = 'Laser', - - ['sbz_resources:storinator_bronze'] = 'Better Storinators', - ['sbz_resources:storinator_neutronium'] = 'Best Storinators', - ['drawers:drawer1'] = 'Drawers', - ['drawers:drawer2'] = 'Drawers', - ['drawers:drawer4'] = 'Drawers', - ['drawers:upgrade_template'] = 'Drawer Upgrades', - ['drawers:controller'] = 'Drawer Controller', - ['sbz_chem:compressor_off'] = 'Compressor', - ['sbz_chem:crystal_grower_off'] = 'Crystal Grower', - ['sbz_power:very_advanced_battery'] = 'Very Advanced Batteries', - - ['jumpdrive:backbone'] = 'Jumpdrive Backbone', - ['jumpdrive:fleet_controller'] = 'Jumpdrive Fleet Controller', - ['jumpdrive:engine'] = 'The Jumpdrive (engine)', - ['jumpdrive:warp_device'] = 'Warp Device', - ['jumpdrive:station'] = 'Jumpdrive Stations', - - ['sbz_bio:dna_extractor_off'] = 'Dna Extractor', - ['sbz_chem:centrifuge_off'] = 'Centrifuge', - ['sbz_power:phlogiston_fuser_off'] = 'Phlogiston Fuser', - ['sbz_planets:planet_teleporter'] = 'Planet Teleporter', - ['sbz_chem:pebble_enhancer_off'] = 'Pebble Enhancer', - ['sbz_chem:nuclear_reactor_off'] = 'Nuclear Reactor', - ['pipeworks:teleport_tube_1'] = 'Teleport Tubes', - ['sbz_chem:decay_accel_off'] = 'Decay Accelerator', - ['sbz_power:turret'] = 'Automatic Turrets', - ['sbz_bio:co2_compactor'] = 'CO2 Compactors', - ['sbz_wrench:wrench'] = 'Node Preserver', - ['replacer:replacer'] = 'Bulk Placer Tool', - ['metatool:copytool'] = 'Copy Tool', - ['sbz_bio:neutron_emitter_off'] = 'Basic Neutron Emitter', - ['sbz_bio:electric_soil_off'] = 'Electric Soil', - ['sbz_chem:engraver_off'] = 'Engraver', - ['sbz_multiblocks:blast_furnace_controller'] = 'Blast Furnace', - ['sbz_instatube:instant_tube'] = 'Instatubes', - ['sbz_power:teleport_battery'] = 'Teleport Battery', - ['pipeworks:pattern_storinator'] = 'Pattern Storinator', - ['sbz_power:starlight_catcher'] = 'Starlight Catchers', - - ['sbz_resources:gravitational_lens'] = "Gravitational Lens", - - ['sbz_power:sensor_linker'] = 'Sensor Linker', - ['sbz_power:lgate_buffer_off'] = 'Logic Gates', - ['sbz_power:delayer_off'] = 'Delayer', - ['sbz_power:light_sensor_off'] = 'Light Sensor', - ['sbz_power:node_sensor_off'] = 'Node Sensor', - ['sbz_power:item_sensor_off'] = 'Item Sensor', - ['sbz_power:switch_private_off'] = 'Switches', - - ['sbz_power:manual_crafter'] = 'Manual Crafters', - ['sbz_resources:nuclear_crafting_processor'] = 'Craftageddon', - ['sbz_area_containers:room_container'] = 'Room Containers', + ['sbz_resources:matter_blob'] = 'qid_a_bigger_platform', + ['sbz_resources:matter_stair'] = 'qid_matter_stairs', + ['sbz_resources:antimatter_dust'] = 'qid_antimatter', + ['sbz_resources:matter_annihilator'] = 'qid_annihilator', + ['sbz_power:simple_charged_field'] = 'qid_charged_field', + ['sbz_power:simple_matter_extractor'] = 'qid_automation', + ['sbz_power:advanced_matter_extractor'] = 'qid_advanced_extractors', + ['sbz_resources:simple_circuit'] = 'qid_circuitry', + ['sbz_power:simple_charge_generator_off'] = 'qid_generators', + ['sbz_resources:matter_plate'] = 'qid_matter_plates', + ['sbz_resources:retaining_circuit'] = 'qid_retaining_circuits', + ['sbz_resources:storinator'] = 'qid_storinators', + ['sbz_resources:pebble'] = 'qid_pretty_pebbles', + ['sbz_resources:stone'] = 'qid_concrete_plan', + + ['sbz_resources:compressed_core_dust'] = 'qid_compressed_core_dust', + ['sbz_decor:photonlamp'] = 'qid_photon_lamps', + ['sbz_resources:antimatter_blob'] = 'qid_more_antimatter', + ['sbz_resources:antimatter_annihilator'] = 'qid_anti_annihilator', + ['sbz_resources:emitter_imitator'] = 'qid_emitter_imitators', + + ['sbz_decor:factory_floor'] = 'qid_factory_flooring', + ['sbz_decor:factory_floor_tiling'] = 'qid_tiled_factory_flooring', + ['sbz_decor:factory_ventilator'] = 'qid_factory_ventilator', + + ['sbz_resources:emittrium_circuit'] = 'qid_emittrium_circuits', + ['sbz_resources:angels_wing'] = 'qid_angels_wing', + ['sbz_power:battery'] = 'qid_batteries', + ['sbz_power:advanced_battery'] = 'qid_advanced_batteries', + ['sbz_power:connector_off'] = 'qid_connectors', + ['sbz_power:phosphor_off'] = 'qid_phosphor', + ['sbz_power:power_pipe'] = 'qid_power_cables', + ['sbz_power:starlight_collector'] = 'qid_starlight_collectors', + ['sbz_resources:reinforced_matter'] = 'qid_reinforced_matter', + ['sbz_power:switching_station'] = 'qid_switching_station', + ['sbz_power:infinite_storinator'] = 'qid_infinite_storinators', + ['sbz_chem:crusher_off'] = 'qid_crusher', + ['sbz_chem:simple_alloy_furnace_off'] = 'qid_simple_alloy_furnace', + ['sbz_meteorites:meteorite_radar'] = 'qid_meteorites', + ['sbz_meteorites:gravitational_attractor'] = 'qid_neutronium', + ['sbz_meteorites:gravitational_repulsor'] = 'qid_neutronium', + ['sbz_resources:robotic_arm'] = 'qid_bear_arms', + ['pipeworks:automatic_filter_injector'] = 'qid_automatic_filter_injectors', + ['pipeworks:tube_1'] = 'qid_tubes', + ['pipeworks:one_direction_tube_1'] = 'qid_one_direction_tubes', + ['pipeworks:nodebreaker'] = 'qid_node_breakers', + ['pipeworks:deployer'] = 'qid_deployers', + ['pipeworks:puncher'] = 'qid_punchers', + ['pipeworks:autocrafter'] = 'qid_autocrafters', + ['sbz_resources:simple_crafting_processor'] = 'qid_simple_crafting_processors', + ['pipeworks:item_void'] = 'qid_item_voids', + ['sbz_power:item_vacuum'] = 'qid_item_vacuums', + ['screwdriver:screwdriver'] = 'qid_screwdriver', + ['sbz_chem:high_power_electric_furnace_off'] = 'qid_furnace', + ['areasprotector:protector_small'] = 'qid_small_protectors', + ['areasprotector:protector_large'] = 'qid_big_protectors', + ['sbz_power:antimatter_generator_off'] = 'qid_antimatter_generators', + ['sbz_resources:storinator_public'] = 'qid_public_storinators', + + ['sbz_resources:emittrium_glass'] = 'qid_emittrium_glass', + ['sbz_bio:dirt'] = 'qid_dirt', + ['sbz_bio:fertilizer'] = 'qid_sprouting_plants', + ['sbz_bio:burner'] = 'qid_carbon_dioxide', + ['sbz_bio:airlock'] = 'qid_airlocks', + ['sbz_power:fluid_pipe'] = 'qid_fluid_pipes', + ['sbz_power:pump_off'] = 'qid_fluid_pumps', + ['sbz_power:fluid_capturer_off'] = 'qid_fluid_capturers', + ['sbz_power:fluid_tank'] = 'qid_fluid_storage_tanks', + ['sbz_power:fluid_cell_filler'] = 'qid_fluid_cell_fillers', + + ['sbz_power:reactor_shell'] = 'qid_reactor_shells', + ['sbz_power:reactor_glass'] = 'qid_reactor_glass', + ['sbz_power:reactor_infoscreen'] = 'qid_reactor_infoscreens', + ['sbz_power:reactor_power_port'] = 'qid_reactor_power_ports', + ['sbz_power:reactor_coolant_port'] = 'qid_reactor_coolant_ports', + ['sbz_power:reactor_item_input'] = 'qid_reactor_emittrium_input', + ['sbz_power:reactor_core_off'] = 'qid_reactor_core', + + ['sbz_power:ele_fab_off'] = 'qid_ele_fabs', + ['sbz_logic:knowledge_station'] = 'qid_knowledge_stations', + + ['sbz_decor:matter_sign'] = 'qid_signs', + ['sbz_decor:antimatter_sign'] = 'qid_signs', + ['sbz_decor:cnc'] = 'qid_cnc_machines', + ['sbz_power:powered_lamp_off'] = 'qid_powered_lights', + ['sbz_power:super_powered_lamp_off'] = 'qid_powered_lights', + ['unifieddyes:coloring_tool'] = 'qid_coloring_tool', + ['sbz_decor:mystery_terrarium'] = 'qid_mystery_terrarium', + ['sbz_decor:large_server_rack'] = 'qid_large_server_rack', + ['unifieddyes:colorium_ground_line'] = 'qid_ground_line', + ['unifieddyes:power_ground_line'] = 'qid_power_ground_line', + ['unifieddyes:antiblock'] = 'qid_antiblocks', + ['sbz_resources:jetpack'] = 'qid_jetpack', + ['sbz_resources:drill'] = 'qid_electric_drill', + ['sbz_meteorites:meteorite_maker_off'] = 'qid_meteorite_maker', + ['sbz_resources:strange_cleaner'] = 'qid_strange_blob_cleaner', + ['sbz_bio:fertilized_dirt'] = 'qid_fertilized_dirt', + ['sbz_resources:laser_weapon'] = 'qid_laser', + + ['sbz_resources:storinator_bronze'] = 'qid_better_storinators', + ['sbz_resources:storinator_neutronium'] = 'qid_best_storinators', + ['drawers:drawer1'] = 'qid_drawers', + ['drawers:drawer2'] = 'qid_drawers', + ['drawers:drawer4'] = 'qid_drawers', + ['drawers:upgrade_template'] = 'qid_drawer_upgrades', + ['drawers:controller'] = 'qid_drawer_controller', + ['sbz_chem:compressor_off'] = 'qid_compressor', + ['sbz_chem:crystal_grower_off'] = 'qid_crystal_grower', + ['sbz_power:very_advanced_battery'] = 'qid_very_advanced_batteries', + + ['jumpdrive:backbone'] = 'qid_jumpdrive_backbone', + ['jumpdrive:fleet_controller'] = 'qid_jumpdrive_fleet_controller', + ['jumpdrive:engine'] = 'qid_the_jumpdrive_engine', + ['jumpdrive:warp_device'] = 'qid_warp_device', + ['jumpdrive:station'] = 'qid_jumpdrive_stations', + + ['sbz_bio:dna_extractor_off'] = 'qid_dna_extractor', + ['sbz_chem:centrifuge_off'] = 'qid_centrifuge', + ['sbz_power:phlogiston_fuser_off'] = 'qid_phlogiston_fuser', + ['sbz_planets:planet_teleporter'] = 'qid_planet_teleporter', + ['sbz_chem:pebble_enhancer_off'] = 'qid_pebble_enhancer', + ['sbz_chem:nuclear_reactor_off'] = 'qid_nuclear_reactor', + ['pipeworks:teleport_tube_1'] = 'qid_teleport_tubes', + ['sbz_chem:decay_accel_off'] = 'qid_decay_accelerator', + ['sbz_power:turret'] = 'qid_automatic_turrets', + ['sbz_bio:co2_compactor'] = 'qid_co2_compactors', + ['sbz_wrench:wrench'] = 'qid_node_preserver', + ['replacer:replacer'] = 'qid_bulk_placer_tool', + ['metatool:copytool'] = 'qid_copy_tool', + ['sbz_bio:neutron_emitter_off'] = 'qid_basic_neutron_emitter', + ['sbz_bio:electric_soil_off'] = 'qid_electric_soil', + ['sbz_chem:engraver_off'] = 'qid_engraver', + ['sbz_multiblocks:blast_furnace_controller'] = 'qid_blast_furnace', + ['sbz_instatube:instant_tube'] = 'qid_instatubes', + ['sbz_power:teleport_battery'] = 'qid_teleport_battery', + ['pipeworks:pattern_storinator'] = 'qid_pattern_storinator', + ['sbz_power:starlight_catcher'] = 'qid_starlight_catchers', + + ['sbz_resources:gravitational_lens'] = 'qid_gravitational_lens', + + ['sbz_power:sensor_linker'] = 'qid_sensor_linker', + ['sbz_power:lgate_buffer_off'] = 'qid_logic_gates', + ['sbz_power:delayer_off'] = 'qid_delayer', + ['sbz_power:light_sensor_off'] = 'qid_light_sensor', + ['sbz_power:node_sensor_off'] = 'qid_node_sensor', + ['sbz_power:item_sensor_off'] = 'qid_item_sensor', + ['sbz_power:switch_private_off'] = 'qid_switches', + + ['sbz_power:manual_crafter'] = 'qid_manual_crafters', + ['sbz_resources:nuclear_crafting_processor'] = 'qid_craftageddon', + ['sbz_area_containers:room_container'] = 'qid_room_containers', } core.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) @@ -193,7 +194,7 @@ core.register_globalstep(function(dtime) for _, player in ipairs(core.get_connected_players()) do local pos = player:get_pos() local safetynet_low = 0 - if pos.y < safetynet_low - 100 then unlock_achievement(player:get_player_name(), 'Emptiness') end + if pos.y < safetynet_low - 100 then unlock_achievement(player:get_player_name(), 'qid_emptiness') end if pos.y < safetynet_low - 300 then if sbz_api.activate_safetynet(player:get_player_name(), pos) then sbz_api.displayDialogLine(player:get_player_name(), S('You fell off the platform.')) @@ -239,41 +240,42 @@ core.register_chatcommand("dynamic_safetynet", { })--]] local achievement_in_inventory_table = { - ['sbz_chem:gold_powder'] = "It's fake", - ['sbz_chem:bronze_powder'] = 'Bronze Age', - ['sbz_chem:water_fluid_cell'] = 'Liquid Water', - ['sbz_bio:stemfruit'] = 'Stemfruit', - ['sbz_bio:warpshroom'] = 'Warpshrooms', - ['sbz_chem:uranium_powder'] = 'Planet Ores', - ['sbz_chem:thorium_powder'] = 'Planet Ores', - ['sbz_resources:movable_emitter'] = 'Movable Emitters', - ['sbz_bio:colorium_emitter'] = 'Colorium Emitters', - ['sbz_power:solid_charged_field'] = 'Radiation Shielding', - ['sbz_resources:bomb'] = 'TNT', - ['sbz_chem:lead_block'] = 'Radiation Shielding', - ['sbz_resources:strange_blob'] = "It's strange...", - ['sbz_bio:cleargrass'] = 'Cleargrass', - ['sbz_bio:razorgrass'] = 'Razorgrass', - ['sbz_bio:shockshroom'] = 'Shockshrooms', - - ['sbz_resources:dust'] = 'Dust', - -- ['sbz_resources:clay'] = 'Clay', This was removed from the QB - ['sbz_resources:bricks'] = 'Bricks', - - ['sbz_resources:unrefined_firmament'] = "Firmament", - ['sbz_resources:refined_firmament'] = "Refined Firmament", - ['sbz_resources:wormhole'] = "Wormhole", + ['sbz_chem:gold_powder'] = 'qid_its_fake', + ['sbz_chem:bronze_powder'] = 'qid_bronze_age', + ['sbz_chem:water_fluid_cell'] = 'qid_liquid_water', + ['sbz_bio:stemfruit'] = 'qid_stemfruit', + ['sbz_bio:warpshroom'] = 'qid_warpshrooms', + ['sbz_chem:uranium_powder'] = 'qid_planet_ores', + ['sbz_chem:thorium_powder'] = 'qid_planet_ores', + ['sbz_resources:movable_emitter'] = 'qid_movable_emitters', + ['sbz_bio:colorium_emitter'] = 'qid_colorium_emitters', + ['sbz_power:solid_charged_field'] = 'qid_radiation_shielding', + ['sbz_resources:bomb'] = 'qid_tnt', + ['sbz_chem:lead_block'] = 'qid_radiation_shielding', + ['sbz_resources:strange_blob'] = 'qid_its_strange', + ['sbz_bio:cleargrass'] = 'qid_cleargrass', + ['sbz_bio:razorgrass'] = 'qid_razorgrass', + ['sbz_bio:shockshroom'] = 'qid_shockshrooms', + + ['sbz_resources:dust'] = 'qid_dust', + -- ['sbz_resources:clay'] = 'qid_clay', This was removed from the QB + ['sbz_resources:bricks'] = 'qid_bricks', + + ['sbz_resources:unrefined_firmament'] = 'qid_firmament', + ['sbz_resources:refined_firmament'] = 'qid_refined_firmament', + ['sbz_resources:wormhole'] = 'qid_wormhole', } + local achievement_on_dig_table = { - ['sbz_meteorites:antineutronium'] = 'Antineutronium', - ['sbz_resources:strange_blob'] = "It's strange...", - ['sbz_resources:movable_emitter'] = 'Movable Emitters', - ['sbz_bio:colorium_emitter'] = 'Colorium Emitters', - ['sbz_power:solid_charged_field'] = 'Radiation Shielding', - ['sbz_resources:bomb'] = 'TNT', - ['sbz_bio:cleargrass_4'] = 'Cleargrass', - ['sbz_bio:razorgrass_4'] = 'Razorgrass', - ['sbz_bio:shockshroom_4'] = 'Shockshrooms', + ['sbz_meteorites:antineutronium'] = 'qid_antineutronium', + ['sbz_resources:strange_blob'] = 'qid_its_strange', + ['sbz_resources:movable_emitter'] = 'qid_movable_emitters', + ['sbz_bio:colorium_emitter'] = 'qid_colorium_emitters', + ['sbz_power:solid_charged_field'] = 'qid_radiation_shielding', + ['sbz_resources:bomb'] = 'qid_tnt', + ['sbz_bio:cleargrass_4'] = 'qid_cleargrass', + ['sbz_bio:razorgrass_4'] = 'qid_razorgrass', + ['sbz_bio:shockshroom_4'] = 'qid_shockshrooms', } core.register_on_player_inventory_action(function(player, action, inv, inv_info) From 18630dc786b4df5ed96a250aa1d4833558bc942b Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 21:14:40 -0700 Subject: [PATCH 32/35] Fix typos, misspellings, and non-words --- mods/sbz_progression/quests/en/Chemistry.md | 12 ++++++------ mods/sbz_progression/quests/en/Decorator.md | 12 ++++++------ mods/sbz_progression/quests/en/Emittrium.md | 4 ++-- mods/sbz_progression/quests/en/Introduction.md | 4 ++-- mods/sbz_progression/quests/en/Jumpdrive.md | 2 +- mods/sbz_progression/quests/en/Organics.md | 8 ++++---- .../quests/en/Pipeworks_and_fluid_transport.md | 6 +++--- mods/sbz_progression/quests/en/Secrets.md | 2 +- mods/sbz_progression/quests/en/Sensors.md | 6 +++--- mods/sbz_progression/quests/en/Storage.md | 3 --- 10 files changed, 28 insertions(+), 31 deletions(-) diff --git a/mods/sbz_progression/quests/en/Chemistry.md b/mods/sbz_progression/quests/en/Chemistry.md index c621c9c2..e8accbae 100644 --- a/mods/sbz_progression/quests/en/Chemistry.md +++ b/mods/sbz_progression/quests/en/Chemistry.md @@ -127,7 +127,7 @@ Have you wished to fly? Do I have the tool for you... The controls: -Left clicking while holding an un-activated jetpack (you can see with the red lighgt on the texture) will activate it. +Left clicking while holding an un-activated jetpack (you can see with the red light on the texture) will activate it. Left clicking while holding an activated jetpack (the light becomes green) will de-activate it When a jetpack is activated: @@ -167,7 +167,7 @@ Requires: Furnace ### Text -The elecric drill has 500 uses and is powered by electricity. +The electric drill has 500 uses and is powered by electricity. If you right click on a battery with the electric drill in your hand, it will take power from the battery and charge the drill! (Just like the jetpack) It needs 1 power per 1 use. @@ -184,7 +184,7 @@ Requires: Bear Arms Craft the antimatter generator, it is best used with automation or a large array of batteries. It needs 1 matter and 1 antimatter per second. -It's super resource hungy but gives you more power. +It's super resource hungry but gives you more power. ### Meta @@ -269,7 +269,7 @@ Requires: Neutronium, Phlogiston Fuser In the center of a planet, there is a core, around it is some molten metal. Molten metal reacts with cold nodes (like water and ice), very slowly, to: -- if flowing molten metal collides with water, it gets tured into stone +- if flowing molten metal collides with water, it gets turned into stone - if a flowing metal source collides with water, it gets turned into the node that the flowing metal was. For example molten silicon =\> silicon block There is currently no way to make molten metal. @@ -332,7 +332,7 @@ If you need even more power, you might want to consider nuclear reactors. Types of fuel rods: - thorium: doesn't explode, 800 power - uranium: explodes if not given cooling, 2200 power -- plutonium: must have a sufficent amount **non-radioactive** water sources (not flowing water) near the reactor, it explodes, generates 4800 power +- plutonium: must have a sufficient amount **non-radioactive** water sources (not flowing water) near the reactor, it explodes, generates 4800 power You need at least 6 fuel rods for the reactor to power on. @@ -424,7 +424,7 @@ Requires: Tubes, Phlogiston Fuser ### Text -The tool is from the "replacer" mod (specifically, SwissalpS's fork), originally called "Node replacement tool (technic)", but the name was changed in skyblock zero as that was a bit innacurate (there is no technic here, and it can place nodes too). +The tool is from the "replacer" mod (specifically, SwissalpS's fork), originally called "Node replacement tool (technic)", but the name was changed in skyblock zero as that was a bit inaccurate (there is no technic here, and it can place nodes too). Sneak+right click =\> "Select" the node (this will be used later to decide what node to (re)place with) Aux1+left click =\> Brings up a form where you can chose how the bulk placer tool will behave. Nodes that aren't rendered as a square, or are like/rendered like glass are treated as air. diff --git a/mods/sbz_progression/quests/en/Decorator.md b/mods/sbz_progression/quests/en/Decorator.md index cd45a553..3f28c272 100644 --- a/mods/sbz_progression/quests/en/Decorator.md +++ b/mods/sbz_progression/quests/en/Decorator.md @@ -20,7 +20,7 @@ Requires: A bigger platform ### Text You can also craft Antimatter Blobs. They give off extremely faint light and unlock some lighting nodes to light up your island. -You can also make antimatter versions of some decorational blocks! +You can also make antimatter versions of some decorative blocks! Previously, they used to explode when next to regular matter, but with new updates they no longer do. @@ -109,9 +109,9 @@ Requires: A bigger platform, Matter Plates ### Text -Emitter Immitators are decorational nodes providing light. +Emitter Imitators are decorative nodes providing light. -TIP: Emitter Immitators spawn a lot of particles when punched, try it! +TIP: Emitter Imitators spawn a lot of particles when punched, try it! ### Meta @@ -121,11 +121,11 @@ Requires: A bigger platform, More Antimatter ### Text -Are Emitter Immitators too dim for you? Introducing: Photon Lamps! +Are Emitter Imitators too dim for you? Introducing: Photon Lamps! -With this revolutionary technology you can light up your world the same way as with Emitter Immitators just brighter! +With this revolutionary technology you can light up your world the same way as with Emitter Imitators just brighter! -To craft: A matter blob in the center, four matter plates in the corners and then just fill the rest of the spaces with regular Emitter Immitators. +To craft: A matter blob in the center, four matter plates in the corners and then just fill the rest of the spaces with regular Emitter Imitators. Boom! You're done! Now you've got yourself a Photon Lamp! No more sitting in darkness! Yay! ### Meta diff --git a/mods/sbz_progression/quests/en/Emittrium.md b/mods/sbz_progression/quests/en/Emittrium.md index b1492c9a..ecd26b80 100644 --- a/mods/sbz_progression/quests/en/Emittrium.md +++ b/mods/sbz_progression/quests/en/Emittrium.md @@ -25,7 +25,7 @@ Requires: Annihilator To transfer power from generators to machines, you'll need Power Cables. You can get a power cable with a shapeless craft using one Raw Emittrium and one Matter Plate. The cables will connect up and supply your machines with power, looking at your machine will show 'Running' if the machine is running. Also, if you put a machine next to another machine, it will conduct power to that machine, so you only need power cables in some cases. -For example, if you have one area for plants, one area for manifacturing, cables are the nicest option to bridge the areas. +For example, if you have one area for plants, one area for manufacturing, cables are the nicest option to bridge the areas. ### Meta @@ -100,7 +100,7 @@ Requires: Emittrium Circuits, Concrete Plan ### Text -Used to manifacture various logic components. +Used to manufacture various logic components. ### Meta diff --git a/mods/sbz_progression/quests/en/Introduction.md b/mods/sbz_progression/quests/en/Introduction.md index 9c33d7cf..54f553fe 100644 --- a/mods/sbz_progression/quests/en/Introduction.md +++ b/mods/sbz_progression/quests/en/Introduction.md @@ -28,7 +28,7 @@ Some commands useful for survival: **Hotbar switching** You can switch your hotbar row to another one by pressing `sneak` + `aux1` (usually `e`) + `left mouse button`, to cycle your hotbar in the opposite direction use `sneak` + `aux1` + `right mouse button`. -**Recomended for small screens** +**Recommended for small screens** In theme settings, you can disable "Force mono font", this will make the font less good but it will make it smaller. **Player settings** @@ -271,7 +271,7 @@ Requires: Antimatter, Circuitry We're making the jump from generic matter to stone now! Here is where building a space station gets fun! First, before we can make Stone nodes we will need Pebbles. They are quite difficult to make, requiring **three matter blobs**, so **having at least 4 advanced matter extractors is recommended**, as you will need a lot of pebbles. -Pebbles will unlock a lot of decorational nodes to spice up your island, as well as plenty of tech, and if you want you can even start building your own planet. It's all up to your imagination! +Pebbles will unlock a lot of decorative nodes to spice up your island, as well as plenty of tech, and if you want you can even start building your own planet. It's all up to your imagination! ### Meta diff --git a/mods/sbz_progression/quests/en/Jumpdrive.md b/mods/sbz_progression/quests/en/Jumpdrive.md index 3217050b..c30a6972 100644 --- a/mods/sbz_progression/quests/en/Jumpdrive.md +++ b/mods/sbz_progression/quests/en/Jumpdrive.md @@ -38,7 +38,7 @@ The jumpdrive also acts as a battery, storing 200 kCj, this also means it can be If you punch the jumpdrive with an empty hand, you will see an outline of what nodes it will teleport. You can transport emitters with the jumpdrive. -Also, emitters stop spawning after y=1000, so you can transport stuff more easily there, since no emitters will intefere with you. +Also, emitters stop spawning after y=1000, so you can transport stuff more easily there, since no emitters will interfere with you. If your jumpdrive flight takes too much energy, the jumpdrive can also take away power from other batteries, it will do this automatically, but its 4 times less efficient compared to using regular jumpdrive's power. It is good practice to use the "show" button before using the "jump" button, to see how much power your flight will consume, diff --git a/mods/sbz_progression/quests/en/Organics.md b/mods/sbz_progression/quests/en/Organics.md index 7d036b52..9a6f300f 100644 --- a/mods/sbz_progression/quests/en/Organics.md +++ b/mods/sbz_progression/quests/en/Organics.md @@ -69,7 +69,7 @@ Requires: Switching Station, Emittrium Glass, Dirt, Sprouting Plants I'm guessing you want to grow plants faster now, don't worry, this is one of the solutions! -The growth of plants above it will be 2x faster, but so will the CO₂ consumbtion, and you can't fertilize the dirt, you will have to manually place your plant. +The growth of plants above it will be 2x faster, but so will the CO₂ consumption, and you can't fertilize the dirt, you will have to manually place your plant. ### Meta @@ -108,7 +108,7 @@ Requires: Carbon Dioxide There is not enough radiation in the air for plants to mutate on their own, so basic neutron emitter helps them to mutate. Fully grown plants don't mutate. -The radiation comming off of the Basic Neutron Emitter is mostly harmless to players, but if there are multiple Neutron Emitters, that might become a concern, place this node near plants. +The radiation coming off of the Basic Neutron Emitter is mostly harmless to players, but if there are multiple Neutron Emitters, that might become a concern, place this node near plants. ### Meta @@ -219,7 +219,7 @@ Requires: There are TNT sticks, they are made by compressing 9 Pyrograss. These TNT sticks can be thrown and they can be used in combat. -Normal TNT (compressed 9 tnt sticks, 81 Pyrograss) can be lit by right clicking it. TNT knocks back entites (regardless of if there is line of sight) and damages entities only if there is line of sight. +Normal TNT (compressed 9 tnt sticks, 81 Pyrograss) can be lit by right clicking it. TNT knocks back entities (regardless of if there is line of sight) and damages entities only if there is line of sight. To complete this quest, craft a full TNT block. @@ -254,7 +254,7 @@ So, how do you grow them: 3) Wait or use Fertilizer on it Unlike plants, it does not need to be inside a Habitat Regulator. -Achievment will unlock when your tree grows. +Achievement will unlock when your tree grows. And also, Colorium Trunks can be used in the burner. Also, you may see there is a tree core where the sapling used to be, that tree core contains the tree's DNA. diff --git a/mods/sbz_progression/quests/en/Pipeworks_and_fluid_transport.md b/mods/sbz_progression/quests/en/Pipeworks_and_fluid_transport.md index 32077d51..5864d819 100644 --- a/mods/sbz_progression/quests/en/Pipeworks_and_fluid_transport.md +++ b/mods/sbz_progression/quests/en/Pipeworks_and_fluid_transport.md @@ -224,19 +224,19 @@ It completely ignores the priority of receivers and instead cycles between them. \Randomized Input Instatube\ Like the cycling input instatube, but it gives the item to a random receiver. -\Instatube Item Filter\ +\Instatube Item Filter\ Similar to the item sorter, but it only governs what can pass through that tube. (The advantage of using it over item sorters is that it will respect priority, and no short-lived entities will be created.) \One-Way Instatubes\ Instatubes that only allow items to flow in one direction, useful when having multiple filter injectors. \Performance\ -With big speed comes big responsiblity. +With big speed comes big responsibility. The lag from instatubes may show up in your switching station as lag from the thing that is inserting to them. (For example Automatic Filter-Injectors or punchers). The lag from pipeworks tubes does not show up in there. 1st tip: Don't make all of your base a single large instatube network. (unless you know what you are doing, and know the flaws of instatubes) -2nd tip: Don't transport MANY small item stacks in a large instatube network, have one or the other. Always prefer larger item stacks. (Instead of sending 100 matter blobs in seperate stacks to a large network, just send one stack of matter blobs) +2nd tip: Don't transport MANY small item stacks in a large instatube network, have one or the other. Always prefer larger item stacks. (Instead of sending 100 matter blobs in separate stacks to a large network, just send one stack of matter blobs) 3rd tip: Only debug performance when it matters. (for example: you notice unusually high lag from filter injectors, or from your 500 puncher setup) Practical example: Say you want to wire up 50 punchers to your base for processing, how should you go about doing this? diff --git a/mods/sbz_progression/quests/en/Secrets.md b/mods/sbz_progression/quests/en/Secrets.md index ffaa601c..75fadf4b 100644 --- a/mods/sbz_progression/quests/en/Secrets.md +++ b/mods/sbz_progression/quests/en/Secrets.md @@ -36,7 +36,7 @@ Requires: Colorium planets, but something is wrong with them. -Hint: You need to have enabled post processing in luanti's settings, or this won't work. This requires shaders to be enabled. It may not be avaliable on some weaker devices. +Hint: You need to have enabled post processing in luanti's settings, or this won't work. This requires shaders to be enabled. It may not be available on some weaker devices. Hint 2: Use a screen inverter potion to reverse the effect, at the cost of a mild saturation increase. diff --git a/mods/sbz_progression/quests/en/Sensors.md b/mods/sbz_progression/quests/en/Sensors.md index dba766c0..dbefcdb1 100644 --- a/mods/sbz_progression/quests/en/Sensors.md +++ b/mods/sbz_progression/quests/en/Sensors.md @@ -27,7 +27,7 @@ You have to use the sensor linker with logic gates: - You have to make an "A" link as the 1st input - Most of the time you have to make a "B" link as your 2nd input -All logic gates run once every 0.25 seconds, this may be refered to as a "switching station subtick". +All logic gates run once every 0.25 seconds, this may be referred to as a "switching station subtick". When you have multiple logic gates in a chain, there are 2 categories of connections you can make: - "slow" connections - Where each logic gate has to wait 0.25s to execute @@ -35,9 +35,9 @@ When you have multiple logic gates in a chain, there are 2 categories of connect They are dependant on the order that the switching station executes the logic gates. -Switching from a fast connection to a slow one or the other way around may involve switching the direction the power source or switching the way that the logic gates are connected to eachother. +Switching from a fast connection to a slow one or the other way around may involve switching the direction the power source or switching the way that the logic gates are connected to each other. -You can make a computer with these. I would strongly recomend not doing that. If you want to do that, submit your code optimizations to skyblock zero logic gates with a pull request. +You can make a computer with these. I would strongly recommend not doing that. If you want to do that, submit your code optimizations to skyblock zero logic gates with a pull request. Descriptions of each logic gate if you are unfamiliar with them: Buffer gate - It will copy the state of the machine linked in "A", so if it is on, it will be on, if it is off, it will be off diff --git a/mods/sbz_progression/quests/en/Storage.md b/mods/sbz_progression/quests/en/Storage.md index 090b45cd..2a14c020 100644 --- a/mods/sbz_progression/quests/en/Storage.md +++ b/mods/sbz_progression/quests/en/Storage.md @@ -110,9 +110,6 @@ Server owners should ideally have backups. Warning: The power input functionality may not work correctly on servers (by default), or on Skyblock Zero configurations that have the "sbz_switching_station_unload" setting active, it may be unusable, sorry. - - - ### Meta Requires: Warpshrooms From a86ad983159b7631c0e16e97a97195de04b8aacc Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 21:15:38 -0700 Subject: [PATCH 33/35] Update markdown documents to use qids --- mods/sbz_progression/quests/en/Chemistry.md | 106 ++++++++++++------ mods/sbz_progression/quests/en/Decorator.md | 66 +++++++---- mods/sbz_progression/quests/en/Emittrium.md | 31 +++-- .../sbz_progression/quests/en/Introduction.md | 48 +++++--- mods/sbz_progression/quests/en/Jumpdrive.md | 15 ++- mods/sbz_progression/quests/en/Meteorites.md | 21 ++-- mods/sbz_progression/quests/en/Organics.md | 67 +++++++---- .../en/Pipeworks_and_fluid_transport.md | 63 +++++++---- mods/sbz_progression/quests/en/Reactor.md | 22 ++-- mods/sbz_progression/quests/en/Secrets.md | 6 + mods/sbz_progression/quests/en/Sensors.md | 24 ++-- .../quests/en/Status_Effects.md | 5 + mods/sbz_progression/quests/en/Storage.md | 24 ++-- 13 files changed, 337 insertions(+), 161 deletions(-) diff --git a/mods/sbz_progression/quests/en/Chemistry.md b/mods/sbz_progression/quests/en/Chemistry.md index e8accbae..a8534d42 100644 --- a/mods/sbz_progression/quests/en/Chemistry.md +++ b/mods/sbz_progression/quests/en/Chemistry.md @@ -3,6 +3,7 @@ ## Crusher +### ID: qid_crusher ### Text @@ -10,9 +11,10 @@ You can put in pebbles to get metals, it will also crush stones into 2 gravel ea ### Meta -Requires: Concrete Plan, Antimatter, Charged Field +Requires: qid_concrete_plan, qid_antimatter, qid_charged_field ## Secret: It's fake +### ID: qid_its_fake ### Text @@ -23,6 +25,7 @@ Digital gold? Where have I heard that before... Requires: ## Furnace +### ID: qid_furnace ### Text @@ -30,9 +33,10 @@ The High Power Electric Furnace (H.P.E.F for short), allows you to smelt any pow ### Meta -Requires: Crusher +Requires: qid_crusher ## Simple Alloy Furnace +### ID: qid_simple_alloy_furnace ### Text @@ -41,9 +45,10 @@ Try out some combinations of metals to see which ones create alloys. Consumes 10 ### Meta -Requires: Crusher, Emittrium Circuits, Antimatter, Charged Field +Requires: qid_crusher, qid_emittrium_circuits, qid_antimatter, qid_charged_field ## Bronze Age +### ID: qid_bronze_age ### Text @@ -51,9 +56,10 @@ Congratulations, Commander! You've just unlocked the Bronze Age, because nothing ### Meta -Requires: Simple Alloy Furnace, Crusher +Requires: qid_simple_alloy_furnace, qid_crusher ## Centrifuge +### ID: qid_centrifuge ### Text @@ -64,9 +70,10 @@ In the centrifuge you can get: ### Meta -Requires: Crusher, Simple Alloy Furnace +Requires: qid_crusher, qid_simple_alloy_furnace ## Compressor +### ID: qid_compressor ### Text @@ -76,10 +83,11 @@ Craft this wonderful compressor, insert 9 powder, or 9 ingots, and watch as it m Blocks made from metals cannot be dug with Matter Annihilators, you must use the robotic arm or the drill instead. ### Meta -Requires: Crusher, Simple Alloy Furnace +Requires: qid_crusher, qid_simple_alloy_furnace ## Advanced Batteries +### ID: qid_advanced_batteries ### Text @@ -87,9 +95,10 @@ A battery made with metals. Significantly better than the basic battery. ### Meta -Requires: Batteries, Furnace, Centrifuge +Requires: qid_batteries, qid_furnace, qid_centrifuge ## Very Advanced Batteries +### ID: qid_very_advanced_batteries ### Text @@ -97,9 +106,10 @@ If you have **lots of metals** this is the battery for you! If you don't, then t ### Meta -Requires: Batteries, Furnace, Advanced Batteries +Requires: qid_batteries, qid_furnace, qid_advanced_batteries ## Crystal Grower +### ID: qid_crystal_grower ### Text @@ -107,19 +117,21 @@ Grows crystals out of stuff. ### Meta -Requires: Compressor, Neutronium +Requires: qid_compressor, qid_neutronium ## Teleport Battery +### ID: qid_teleport_battery ### Text -Teleport Battery teleports power accross networks. Can be useful when trying to share power with other people. +Teleport Battery teleports power across networks. Can be useful when trying to share power with other people. ### Meta -Requires: Crystal Grower +Requires: qid_crystal_grower ## Jetpack +### ID: qid_jetpack ### Text @@ -151,9 +163,10 @@ The Jetpack originally used to get automatically de-activated when you stop havi ### Meta -Requires: Neutronium +Requires: qid_neutronium ## Bear Arms +### ID: qid_bear_arms ### Text @@ -161,9 +174,10 @@ Notice the small little pun there? .. it's obvious that it tells you to craft a ### Meta -Requires: Furnace +Requires: qid_furnace ## Electric Drill +### ID: qid_electric_drill ### Text @@ -176,9 +190,10 @@ It also digs 2x faster than the robotic arm. ### Meta -Requires: Bear Arms +Requires: qid_bear_arms ## Antimatter Generators +### ID: qid_antimatter_generators ### Text @@ -188,9 +203,10 @@ It's super resource hungry but gives you more power. ### Meta -Requires: Furnace +Requires: qid_furnace ## Engraver +### ID: qid_engraver ### Text @@ -198,7 +214,7 @@ Creates processors from silicon crystals. ### Meta -Requires: Laser, Crystal Grower +Requires: qid_laser, qid_crystal_grower ## Info: Multiblock Terminology @@ -217,6 +233,7 @@ The emittrium reactor was made before multiblocks got standardised, so some of t Requires: ## Blast Furnace +### ID: qid_blast_furnace ### Text @@ -238,9 +255,10 @@ To complete this quest, craft a blast furnace controller, but be aware that it d ### Meta -Requires: Compressor, Engraver +Requires: qid_compressor, qid_engraver ## Phlogiston Fuser +### ID: qid_phlogiston_fuser ### Text @@ -250,9 +268,10 @@ You can also make some armor from phlogiston, once it is low on durability, you ### Meta -Requires: Crystal Grower, Very Advanced Batteries +Requires: qid_crystal_grower, qid_very_advanced_batteries ## Planet Teleporter +### ID: qid_planet_teleporter ### Text @@ -260,7 +279,7 @@ Requires: Crystal Grower, Very Advanced Batteries ### Meta -Requires: Neutronium, Phlogiston Fuser +Requires: qid_neutronium, qid_phlogiston_fuser ## Info: Inside of planets @@ -276,9 +295,10 @@ There is currently no way to make molten metal. ### Meta -Requires: Planet Teleporter +Requires: qid_planet_teleporter ## Planet Ores +### ID: qid_planet_ores ### Text @@ -289,9 +309,10 @@ To get this achievement, you will need to put uranium or thorium powder in your ### Meta -Requires: Planet Teleporter +Requires: qid_planet_teleporter ## Pebble Enhancer +### ID: qid_pebble_enhancer ### Text @@ -301,9 +322,10 @@ Simply put a pebble into the pebble enhancer, it will become enhanced. ### Meta -Requires: Planet Ores +Requires: qid_planet_ores ## Decay Accelerator +### ID: qid_decay_accelerator ### Text @@ -311,9 +333,10 @@ It is used to obtain plutonium or lead from radioactive materials (Uranium, thor ### Meta -Requires: Planet Ores +Requires: qid_planet_ores ## Radiation Shielding +### ID: qid_radiation_shielding ### Text @@ -321,9 +344,10 @@ Solid charged field or lead blocks shield against radiation. Craft some shieldin ### Meta -Requires: Planet Ores +Requires: qid_planet_ores ## Nuclear Reactor +### ID: qid_nuclear_reactor ### Text @@ -338,9 +362,10 @@ You need at least 6 fuel rods for the reactor to power on. ### Meta -Requires: Planet Ores, Radiation Shielding +Requires: qid_planet_ores, qid_radiation_shielding ## Dust +### ID: qid_dust ### Text @@ -349,9 +374,10 @@ You can also climb it, and it is great for scaffolding. ### Meta -Requires: Crusher +Requires: qid_crusher ## Small Protectors +### ID: qid_small_protectors ### Text @@ -365,9 +391,10 @@ Special names ("owners") that you can add to protectors (no player can name them ### Meta -Requires: Concrete Plan, Furnace +Requires: qid_concrete_plan, qid_furnace ## Big Protectors +### ID: qid_big_protectors ### Text @@ -375,9 +402,10 @@ Large protectors are like the small protectors but bigger. ### Meta -Requires: Small Protectors +Requires: qid_small_protectors ## Node Preserver +### ID: qid_node_preserver ### Text @@ -391,9 +419,10 @@ They can only dig nodes that the robotic arm can. ### Meta -Requires: Phlogiston Fuser +Requires: qid_phlogiston_fuser ## Copy Tool +### ID: qid_copy_tool ### Text @@ -418,9 +447,10 @@ P.S. if you find anything that you'd like to be compatible with the copytool, do ### Meta -Requires: Tubes, Phlogiston Fuser +Requires: qid_tubes, qid_phlogiston_fuser ## Bulk Placer Tool +### ID: qid_bulk_placer_tool ### Text @@ -437,7 +467,7 @@ It might behave weirdly with super powered lamps, be aware of that. ### Meta -Requires: Phlogiston Fuser +Requires: qid_phlogiston_fuser +Requires: qid_crusher, qid_liquid_water --> ## Firmament +### ID: qid_firmament ### Text @@ -455,9 +486,10 @@ Firmament is a very rare drop from centrifuging dust. ### Meta -Requires: Centrifuge, Dust +Requires: qid_centrifuge, qid_dust ## Gravitational Lens +### ID: qid_gravitational_lens ### Text @@ -465,9 +497,10 @@ Gain insight into matter by gravitational lensing. ### Meta -Requires: Neutronium +Requires: qid_neutronium ## Refined Firmament +### ID: qid_refined_firmament ### Text @@ -475,9 +508,10 @@ You can refine Unrefined Firmament by looking at it through a Gravitational Lens ### Meta -Requires: Firmament, Blast Furnace +Requires: qid_firmament, qid_blast_furnace ## Wormhole +### ID: qid_wormhole ### Text @@ -485,4 +519,4 @@ Open far-away inventories by linking them to the Wormhole. ### Meta -Requires: Refined Firmament, Blast Furnace, Phlogiston Fuser \ No newline at end of file +Requires: qid_refined_firmament, qid_blast_furnace, qid_phlogiston_fuser diff --git a/mods/sbz_progression/quests/en/Decorator.md b/mods/sbz_progression/quests/en/Decorator.md index 3f28c272..b48c77c8 100644 --- a/mods/sbz_progression/quests/en/Decorator.md +++ b/mods/sbz_progression/quests/en/Decorator.md @@ -4,6 +4,7 @@ An island with just machines will look very boring! Use the knowledge from the Decorator Questline to spice up your island! These quests are not required for progression, but playing can get boring on an empty, barren, dark island. So don't just ignore this questline, okay? :P ## Compressed Core Dust +### ID: qid_compressed_core_dust ### Text @@ -13,9 +14,10 @@ Compress it! Compressed Core Dust can be used as a building material. ### Meta -Requires: A bigger platform +Requires: qid_a_bigger_platform ## More Antimatter +### ID: qid_more_antimatter ### Text @@ -26,9 +28,10 @@ Previously, they used to explode when next to regular matter, but with new updat ### Meta -Requires: Antimatter +Requires: qid_antimatter ## Anti-Annihilator +### ID: qid_anti_annihilator ### Text @@ -36,9 +39,10 @@ Unfortunately, you again don't seem to be strong enough to destroy that node [an ### Meta -Requires: More Antimatter +Requires: qid_more_antimatter ## Screwdriver +### ID: qid_screwdriver ### Text @@ -47,9 +51,10 @@ TIP: This acts similarly to the Minetest Game screwdriver. ### Meta -Requires: Antimatter, Introduction +Requires: qid_antimatter, qid_introduction ## CNC Machines +### ID: qid_cnc_machines ### Text @@ -63,9 +68,10 @@ Craft one, put in the block of your choosing*, and boom! ### Meta -Requires: Emittrium Circuits +Requires: qid_emittrium_circuits ## Factory Flooring +### ID: qid_factory_flooring ### Text @@ -73,9 +79,10 @@ This is a node to use as floor for your factory, to give it those classic vibes. ### Meta -Requires: A bigger platform +Requires: qid_a_bigger_platform ## Tiled Factory Flooring +### ID: qid_tiled_factory_flooring ### Text @@ -83,9 +90,10 @@ A variation of Factory Flooring which adds even more tiling! ### Meta -Requires: A bigger platform, Factory Flooring +Requires: qid_a_bigger_platform, qid_factory_flooring ## Factory Ventilator +### ID: qid_factory_ventilator ### Text @@ -93,9 +101,10 @@ You might want a Ventilation system inside a factory, just saying. ### Meta -Requires: Factory Flooring, Crusher +Requires: qid_factory_flooring, qid_crusher ## Reinforced Matter +### ID: qid_reinforced_matter ### Text @@ -103,10 +112,10 @@ Normal matter isn't sturdy enough? Try this. ### Meta -Requires: A bigger platform, Matter Plates - -## Emitter Immitators +Requires: qid_a_bigger_platform, qid_matter_plates +## Emitter Imitators +### ID: qid_emitter_imitators ### Text Emitter Imitators are decorative nodes providing light. @@ -115,9 +124,10 @@ TIP: Emitter Imitators spawn a lot of particles when punched, try it! ### Meta -Requires: A bigger platform, More Antimatter +Requires: qid_a_bigger_platform, qid_more_antimatter ## Photon Lamps +### ID: qid_photon_lamps ### Text @@ -130,9 +140,10 @@ Boom! You're done! Now you've got yourself a Photon Lamp! No more sitting in dar ### Meta -Requires: Emitter Immitators, Matter Plates +Requires: qid_emitter_imitators, qid_matter_plates ## Phosphor +### ID: qid_phosphor ### Text @@ -140,9 +151,10 @@ On the other hand, you can craft an Emittrium Circuit with an Emitter Imitator t ### Meta -Requires: Emitter Immitators, Emittrium Circuits +Requires: qid_emitter_imitators, qid_emittrium_circuits ## Signs +### ID: qid_signs ### Text @@ -150,9 +162,10 @@ Do you want to write something that's visible in the world? You should consider ### Meta -Requires: Antimatter +Requires: qid_antimatter ## Powered Lights +### ID: qid_powered_lights ### Text @@ -161,9 +174,10 @@ Or do you want to light up a huge area, the Super Powered Lamp is for you, it fi ### Meta -Requires: Switching Station, More Antimatter, Emittrium Glass +Requires: qid_switching_station, qid_more_antimatter, qid_emittrium_glass ## Coloring Tool +### ID: qid_coloring_tool ### Text @@ -175,9 +189,10 @@ With that colorium, you make your tool. ### Meta -Requires: Colorium Trees +Requires: qid_colorium_trees ## Bricks +### ID: qid_bricks ### Text @@ -185,9 +200,10 @@ More fancy traditional bricks to build with. ### Meta -Requires: Clay +Requires: qid_clay ## Mystery Terrarium +### ID: qid_mystery_terrarium ### Text @@ -195,9 +211,10 @@ I wonder what's in there... ### Meta -Requires: Growing Plants, Planet Ores +Requires: qid_growing_plants, qid_planet_ores ## Large Server Rack +### ID: qid_large_server_rack ### Text @@ -205,9 +222,10 @@ A decor node that looks like a server rack, with rainbow LEDs. ### Meta -Requires: Engraver, Knowledge Stations, Ele Fabs +Requires: qid_engraver, qid_knowledge_stations, qid_ele_fabs ## Ground Line +### ID: qid_ground_line ### Text @@ -215,9 +233,10 @@ A line on the ground. Not fully 2D. Can be colored. ### Meta -Requires: Colorium Trees +Requires: qid_colorium_trees ## Power Ground Line +### ID: qid_power_ground_line ### Text @@ -225,9 +244,10 @@ Line on the ground, just like Ground Line. Animated, conducts power like a cable ### Meta -Requires: Colorium Trees, Power Cables +Requires: qid_colorium_trees, qid_power_cables ## Antiblocks +### ID: qid_antiblocks ### Text @@ -236,4 +256,4 @@ Airlike Antiblock: The same properties as the regular Antiblock, but you can wal ### Meta -Requires: Colorium Trees, Antimatter \ No newline at end of file +Requires: qid_colorium_trees, qid_antimatter diff --git a/mods/sbz_progression/quests/en/Emittrium.md b/mods/sbz_progression/quests/en/Emittrium.md index ecd26b80..b0f4fb5a 100644 --- a/mods/sbz_progression/quests/en/Emittrium.md +++ b/mods/sbz_progression/quests/en/Emittrium.md @@ -4,6 +4,7 @@ Emittrium is a very important material when working with Cosmic Joules. This questline will teach you all about it. ## Obtain Emittrium +### ID: qid_obtain_emittrium ### Text @@ -16,9 +17,10 @@ Emitters have a 1/10 chance of producing Raw Emittrium, and a 9/10 chance of pro ### Meta -Requires: Annihilator +Requires: qid_annihilator ## Power Cables +### ID: qid_power_cables ### Text @@ -29,9 +31,10 @@ For example, if you have one area for plants, one area for manufacturing, cables ### Meta -Requires: Matter Plates, Obtain Emittrium +Requires: qid_matter_plates, Obtain Emittrium ## Starlight Collectors +### ID: qid_starlight_collectors ### Text @@ -42,6 +45,7 @@ Starlight Collectors turn the light of stars into power for you to use. But the Requires: Obtain Emittrium ## Starlight Catchers +### ID: qid_starlight_catchers ### Text @@ -51,9 +55,10 @@ They won't do anything if you connect them directly to a Switching Station, as t ### Meta -Requires: Starlight Collectors +Requires: qid_starlight_collectors ## Emittrium Circuits +### ID: qid_emittrium_circuits ### Text @@ -61,9 +66,10 @@ For some recipes related to storing or transferring power, you'll need Emittrium ### Meta -Requires: Matter Plates, Obtain Emittrium, Retaining Circuits +Requires: qid_matter_plates, Obtain Emittrium, qid_retaining_circuits ## Batteries +### ID: qid_batteries ### Text @@ -73,9 +79,10 @@ TIP: Without batteries, all power that isn't being used for machines is wasted, ### Meta -Requires: Emittrium Circuits +Requires: qid_emittrium_circuits ## Connectors +### ID: qid_connectors ### Text @@ -84,9 +91,10 @@ IMPORTANT: Make sure that only one of the two or more joined networks has a Swit ### Meta -Requires: Emittrium Circuits, Reinforced Matter +Requires: qid_emittrium_circuits, qid_reinforced_matter ## Angel's Wing +### ID: qid_angels_wing ### Text @@ -94,9 +102,10 @@ The Angel's Wing can make you fly. Right-Click to use, it has 100 uses. To craft ### Meta -Requires: Emittrium Circuits, Concrete Plan +Requires: qid_emittrium_circuits, qid_concrete_plan ## Ele Fabs +### ID: qid_ele_fabs ### Text @@ -104,9 +113,10 @@ Used to manufacture various logic components. ### Meta -Requires: Antimatter, Emittrium Circuits +Requires: qid_antimatter, qid_emittrium_circuits ## Knowledge Stations +### ID: qid_knowledge_stations ### Text @@ -114,9 +124,10 @@ Teaches you about logic, which is not documented in this questbook but instead i ### Meta -Requires: Concrete Plan, Ele Fabs +Requires: qid_concrete_plan, qid_ele_fabs ## Movable Emitters +### ID: qid_movable_emitters ### Text @@ -127,4 +138,4 @@ Movable emitters can be duplicated with 8 phlogiston. ### Meta -Requires: Planet Teleporter +Requires: qid_planet_teleporter diff --git a/mods/sbz_progression/quests/en/Introduction.md b/mods/sbz_progression/quests/en/Introduction.md index 54f553fe..908a0b0a 100644 --- a/mods/sbz_progression/quests/en/Introduction.md +++ b/mods/sbz_progression/quests/en/Introduction.md @@ -8,6 +8,7 @@ The first questline, to introduce you to the game. Your adventure will start her To expand one of those questlines, click the plus next to the name, use the arrow keys or double click on the questline. ## Info: General Info +### ID: qid_general_info ### Text @@ -39,6 +40,7 @@ In your inventory, you can see a settings icon at the bottom. Clicking that take Requires: ## Info: Navigating the inventory +### ID: qid_navigating_the_inventory ### Text @@ -57,6 +59,7 @@ If you aren't familiar with it, here are some things to know: Requires: ## Introduction +### ID: qid_introduction ### Text @@ -79,6 +82,7 @@ TIP: If you lose your Quest Book, you can use /qb to get it back. Requires: ## A bigger platform +### ID: qid_a_bigger_platform ### Text @@ -92,6 +96,7 @@ If you are unable to place a matter blob next to the core, try sneaking while pl Requires: Introduction ## Antimatter +### ID: qid_antimatter ### Text @@ -103,6 +108,7 @@ Don't know how to craft it? The search bar in your inventory will help. Requires: Introduction ## Annihilator +### ID: qid_annihilator ### Text @@ -112,9 +118,10 @@ Also, make sure you are crafting the **Matter** annihilator, not the **Anti**mat ### Meta -Requires: A bigger platform, Antimatter +Requires: qid_a_bigger_platform, qid_antimatter ## Info: Bridging out +### ID: qid_info_bridging_out ### Text @@ -124,9 +131,10 @@ TIP: You can craft **Matter Platforms** to have a cheaper way of bridging out. ### Meta -Requires: Annihilator +Requires: qid_annihilator ## Charged Field +### ID: qid_charged_field ### Text @@ -142,6 +150,7 @@ Generators use energy even when there's nothing connected to them. Since resourc Requires: Introduction ## Matter Plates +### ID: qid_matter_plates ### Text @@ -151,9 +160,10 @@ You can get four Matter Plates by placing one matter blob into the crafting grid ### Meta -Requires: A bigger platform +Requires: qid_a_bigger_platform ## Switching Station +### ID: qid_switching_station ### Text @@ -166,9 +176,10 @@ When you right-click a Switching Station, you will see a summary of all the mach ### Meta -Requires: Matter Plates +Requires: qid_matter_plates ## Info: What conducts power? +### ID: qid_info_what_conducts_power ### Text @@ -178,9 +189,10 @@ The power unit is Cosmic Joules, and is abbreviated to Cj in most interfaces. ### Meta -Requires: Switching Station +Requires: qid_switching_station ## Automation +### ID: qid_automation ### Text @@ -189,9 +201,10 @@ TIP: Some early game machines without power emit red particles. ### Meta -Requires: Annihilator, Charged Field +Requires: qid_annihilator, qid_charged_field ## Advanced Extractors +### ID: qid_advanced_extractors ### Text @@ -203,9 +216,10 @@ For the curious, an Advanced Extractor has a 4% chance of extracting core dust. ### Meta -Requires: Automation +Requires: qid_automation ## Circuitry +### ID: qid_circuitry ### Text @@ -217,9 +231,10 @@ To craft a Simple Circuit, you'll need one core dust and one matter blob. You'll ### Meta -Requires: A bigger platform +Requires: qid_a_bigger_platform ## Manual Crafters +### ID: qid_manual_crafters ### Text @@ -234,9 +249,10 @@ They also won't work with crafting recipes that have "replacements", it will ins ### Meta -Requires: Circuitry +Requires: qid_circuitry ## Generators +### ID: qid_generators ### Text @@ -248,9 +264,10 @@ It generates `36 Cj` with charged particles, `30 Cj` with core dust. ### Meta -Requires: Charged Field, Antimatter +Requires: qid_charged_field, qid_antimatter ## Retaining Circuits +### ID: qid_retaining_circuits ### Text @@ -262,9 +279,10 @@ TIP: With retaining circuits, you can craft **Storinators** to permanently store ### Meta -Requires: Antimatter, Circuitry +Requires: qid_antimatter, qid_circuitry ## Pretty Pebbles +### ID: qid_pretty_pebbles ### Text @@ -275,9 +293,10 @@ Pebbles will unlock a lot of decorative nodes to spice up your island, as well a ### Meta -Requires: A bigger platform +Requires: qid_a_bigger_platform ## Concrete Plan +### ID: qid_concrete_plan ### Text @@ -287,9 +306,10 @@ That said, it's made using 9 pebbles. ### Meta -Requires: Pretty Pebbles +Requires: qid_pretty_pebbles ## Info: What to do next? +### ID: qid_info_what_to_do_next ### Text @@ -307,4 +327,4 @@ Example: Getting the Very Advanced Battery would be greatly helped by the pipewo ### Meta -Requires: Concrete Plan +Requires: qid_concrete_plan diff --git a/mods/sbz_progression/quests/en/Jumpdrive.md b/mods/sbz_progression/quests/en/Jumpdrive.md index c30a6972..d5fc7c88 100644 --- a/mods/sbz_progression/quests/en/Jumpdrive.md +++ b/mods/sbz_progression/quests/en/Jumpdrive.md @@ -5,6 +5,7 @@ A modified version of the mt-mods/jumpdrive mod, lets you teleport yourself, and ## Jumpdrive Backbone +### ID: qid_jumpdrive_backbone ### Text @@ -13,9 +14,10 @@ Also used in connecting jumpdrives to a fleet controller. ### Meta -Requires: Compressor, Reactor Shells +Requires: qid_compressor, qid_reactor_shells ## Warp Device +### ID: qid_warp_device ### Text @@ -23,9 +25,10 @@ An ingredient in making the jumpdrive engine. May be required for other things i ### Meta -Requires: Crystal Grower, Antimatter Generators +Requires: qid_crystal_grower, qid_antimatter_generators ## The Jumpdrive (engine) +### ID: qid_the_jumpdrive_engine ### Text @@ -48,9 +51,10 @@ With protections: Jumpdrive leaves protections behind if it collides with anothe ### Meta -Requires: Jumpdrive Backbone, Warp Device, Very Advanced Batteries +Requires: qid_jumpdrive_backbone, qid_warp_device, qid_very_advanced_batteries ## Jumpdrive Stations +### ID: qid_jumpdrive_stations ### Text @@ -60,9 +64,10 @@ Simply place one down in your target destination. Now you can teleport near it w ### Meta -Requires: The Jumpdrive (engine) +Requires: qid_the_jumpdrive_engine ## Jumpdrive Fleet Controller +### ID: qid_jumpdrive_fleet_controller ### Text @@ -73,4 +78,4 @@ Warning: Make sure to ALWAYS press "show" before jump... you don't want one of y ### Meta -Requires: Jumpdrive Backbone \ No newline at end of file +Requires: qid_jumpdrive_backbone diff --git a/mods/sbz_progression/quests/en/Meteorites.md b/mods/sbz_progression/quests/en/Meteorites.md index db763de7..334cb8c6 100644 --- a/mods/sbz_progression/quests/en/Meteorites.md +++ b/mods/sbz_progression/quests/en/Meteorites.md @@ -3,6 +3,7 @@ ## Meteorites +### ID: qid_meteorites ### Text @@ -14,9 +15,10 @@ TIP: The Meteorite Radar consumes **40 Cj** when a meteorite is nearby, but it w ### Meta -Requires: Simple Alloy Furnace, Emittrium Circuits +Requires: qid_simple_alloy_furnace, qid_emittrium_circuits ## Laser +### ID: qid_laser ### Text @@ -27,9 +29,10 @@ It also does some damage to other players if PVP is enabled. ### Meta -Requires: Simple Alloy Furnace, Emittrium Circuits +Requires: qid_simple_alloy_furnace, qid_emittrium_circuits ## Neutronium +### ID: qid_neutronium ### Text @@ -38,9 +41,10 @@ To complete this quest, make a Gravitational attractor. ### Meta -Requires: Meteorites +Requires: qid_meteorites ## Antineutronium +### ID: qid_antineutronium ### Text @@ -53,9 +57,10 @@ TIP: Build a shield out of compressed core dust to protect against Antimatter me ### Meta -Requires: Meteorites +Requires: qid_meteorites ## Meteorite Maker +### ID: qid_meteorite_maker ### Text @@ -67,9 +72,10 @@ Tip: Meteorites don't really explode in protected areas, you'll have to lure it ### Meta -Requires: Autocrafters, Neutronium +Requires: qid_autocrafters, qid_neutronium ## It's strange... +### ID: qid_its_strange ### Text @@ -82,9 +88,10 @@ Strange Matter meteorites spawn if you are 100 nodes away from the core. ### Meta -Requires: Neutronium +Requires: qid_neutronium ## Strange Blob Cleaner +### ID: qid_strange_blob_cleaner ### Text @@ -92,4 +99,4 @@ Restores what was destroyed by Strange Blobs. ### Meta -Requires: It's strange... +Requires: qid_its_strange diff --git a/mods/sbz_progression/quests/en/Organics.md b/mods/sbz_progression/quests/en/Organics.md index 9a6f300f..2b95f685 100644 --- a/mods/sbz_progression/quests/en/Organics.md +++ b/mods/sbz_progression/quests/en/Organics.md @@ -4,6 +4,7 @@ Grow plants and fungi to craft more things and also make your base look really cool. ## Liquid Water +### ID: qid_liquid_water ### Text @@ -11,9 +12,10 @@ Crushing pebbles squeezes out a bit of water. You can take advantage of this by ### Meta -Requires: Crusher +Requires: qid_crusher ## Emittrium Glass +### ID: qid_emittrium_glass ### Text @@ -21,9 +23,10 @@ The other preliminary we need before we can start growing plants is Glass. Thank ### Meta -Requires: Antimatter, Obtain Emittrium +Requires: qid_antimatter, Obtain Emittrium ## Dirt +### ID: qid_dirt ### Text @@ -31,9 +34,10 @@ If you've followed my instructions and built a pool, you should notice Moss begi ### Meta -Requires: Liquid Water +Requires: qid_liquid_water ## Sprouting Plants +### ID: qid_sprouting_plants ### Text @@ -41,9 +45,10 @@ You'll also need to craft the Algae on your pool into Fertilizer. This is useful ### Meta -Requires: Liquid Water +Requires: qid_liquid_water ## Growing Plants +### ID: qid_growing_plants ### Text @@ -61,9 +66,10 @@ To complete this quest, place a Habitat Regulator inside your habitat. ### Meta -Requires: Switching Station, Emittrium Glass, Dirt, Sprouting Plants +Requires: qid_switching_station, qid_emittrium_glass, qid_dirt, qid_sprouting_plants ## Fertilized Dirt +### ID: qid_fertilized_dirt ### Text @@ -73,9 +79,10 @@ The growth of plants above it will be 2x faster, but so will the CO₂ consumpti ### Meta -Requires: Growing Plants +Requires: qid_growing_plants ## Carbon Dioxide +### ID: qid_carbon_dioxide ### Text @@ -89,9 +96,10 @@ The size of the habitat determines how much CO₂ it can hold. ### Meta -Requires: Growing Plants, Annihilator +Requires: qid_growing_plants, qid_annihilator ## Stemfruit +### ID: qid_stemfruit ### Text @@ -99,9 +107,10 @@ The only other plant you can get from fertilizing dirt is Stemfruit; you won't n ### Meta -Requires: Carbon Dioxide +Requires: qid_carbon_dioxide ## Basic Neutron Emitter +### ID: qid_basic_neutron_emitter ### Text @@ -112,9 +121,10 @@ The radiation coming off of the Basic Neutron Emitter is mostly harmless to play ### Meta -Requires: Growing Plants, Neutronium +Requires: qid_growing_plants, qid_neutronium ## Fiberweed +### ID: qid_fiberweed ### Text @@ -126,9 +136,10 @@ It must also be regular Dirt, Electric Soil or Fertilized Dirt won't be able to ### Meta -Requires: Stemfruit, Basic Neutron Emitter +Requires: qid_stemfruit, qid_basic_neutron_emitter ## Warpshrooms +### ID: qid_warpshrooms ### Text @@ -136,9 +147,10 @@ Warpshrooms are used for teleport technology, they grow slightly slower than oth ### Meta -Requires: Stemfruit, Basic Neutron Emitter +Requires: qid_stemfruit, qid_basic_neutron_emitter ## Shockshrooms +### ID: qid_shockshrooms ### Text @@ -147,9 +159,10 @@ Unlike other plants, they will continue consuming CO₂ even after they have com ### Meta -Requires: Stemfruit, Basic Neutron Emitter +Requires: qid_stemfruit, qid_basic_neutron_emitter ## Cleargrass +### ID: qid_cleargrass ### Text @@ -159,9 +172,10 @@ Unlike other plants, they will continue consuming CO₂ even after they have com ### Meta -Requires: Stemfruit, Basic Neutron Emitter +Requires: qid_stemfruit, qid_basic_neutron_emitter ## Razorgrass +### ID: qid_razorgrass ### Text @@ -170,9 +184,10 @@ It is used for some crafting recipes and fertilizer. ### Meta -Requires: Stemfruit, Basic Neutron Emitter +Requires: qid_stemfruit, qid_basic_neutron_emitter ## Electric Soil +### ID: qid_electric_soil ### Text @@ -181,9 +196,10 @@ Electric soil will make plants grow a LOT faster, and consume a LOT more CO₂, ### Meta -Requires: Shockshrooms +Requires: qid_shockshrooms ## Airlocks +### ID: qid_airlocks ### Text @@ -191,9 +207,10 @@ Tired of breaking a hole in the wall whenever you want to enter a habitat? Intro ### Meta -Requires: Growing Plants, Emittrium Glass +Requires: qid_growing_plants, qid_emittrium_glass ## CO2 Compactors +### ID: qid_co2_compactors ### Text @@ -201,9 +218,10 @@ I'll assume you want to store a little more carbon dioxide in your habitat, if s ### Meta -Requires: Stemfruit, Airlocks +Requires: qid_stemfruit, qid_airlocks ## Secret: Not Chorus Fruit +### ID: qid_secret_not_chorus_fruit ### Text @@ -214,6 +232,7 @@ So apparently Warpshrooms make you teleport randomly when you eat them. Dunno if Requires: ## TNT +### ID: qid_tnt ### Text @@ -227,9 +246,10 @@ Also, TNT explosions are delayed if the server is laggy, meaning you can set up ### Meta -Requires: Growing Plants +Requires: qid_growing_plants ## Info: Organics Automation +### ID: qid_info_organics_automation ### Text @@ -241,9 +261,10 @@ Side note: deployers can place 2 nodes ahead, that's a "feature" not a bug. ### Meta -Requires: Liquid Water +Requires: qid_liquid_water ## Colorium Trees +### ID: qid_colorium_trees ### Text @@ -261,9 +282,10 @@ Also, you may see there is a tree core where the sapling used to be, that tree c ### Meta -Requires: Neutronium +Requires: qid_neutronium ## Dna Extractor +### ID: qid_dna_extractor ### Text @@ -277,9 +299,10 @@ You can put that new mutated tree core into the DNA Extractor, and repeat. After ### Meta -Requires: Colorium Trees +Requires: qid_colorium_trees ## Colorium Emitters +### ID: qid_colorium_emitters ### Text @@ -297,4 +320,4 @@ You can duplicate Colorium Emitters with 8 Phlogiston. ### Meta -Requires: Colorium Trees, Phlogiston Fuser +Requires: qid_colorium_trees, qid_phlogiston_fuser diff --git a/mods/sbz_progression/quests/en/Pipeworks_and_fluid_transport.md b/mods/sbz_progression/quests/en/Pipeworks_and_fluid_transport.md index 5864d819..eeb0eaac 100644 --- a/mods/sbz_progression/quests/en/Pipeworks_and_fluid_transport.md +++ b/mods/sbz_progression/quests/en/Pipeworks_and_fluid_transport.md @@ -4,6 +4,7 @@ If you already know about regular pipeworks, skyblock_zero's pipeworks are a very modified version of that mod, but it will be similar though. ## Tubes +### ID: qid_tubes ### Text @@ -17,9 +18,10 @@ TIP: Items in tubes will go into directions with higher tube priority. The defau ### Meta -Requires: Furnace +Requires: qid_furnace ## Automatic Filter-Injectors +### ID: qid_automatic_filter_injectors ### Text @@ -39,9 +41,10 @@ Threshold: If an item matches the filter and the stack is higher, it takes out i ### Meta -Requires: Bear Arms, Tubes +Requires: qid_bear_arms, qid_tubes ## Info: Matter Factory +### ID: qid_info_matter_factory ### Text @@ -53,9 +56,10 @@ Here is an example of one: ### Meta -Requires: Automatic Filter-Injectors, Tubes +Requires: qid_automatic_filter_injectors, qid_tubes ## Node Breakers +### ID: qid_node_breakers ### Text @@ -63,9 +67,10 @@ Node Breakers try to break the node in front of them. The drops are ejected out ### Meta -Requires: Automatic Filter-Injectors +Requires: qid_automatic_filter_injectors ## Deployers +### ID: qid_deployers ### Text @@ -73,9 +78,10 @@ Deployers try to place a node into their front-side. That's about it. ### Meta -Requires: Automatic Filter-Injectors, Bear Arms +Requires: qid_automatic_filter_injectors, qid_bear_arms ## Punchers +### ID: qid_punchers ### Text @@ -83,9 +89,10 @@ Punchers punch stuff, allowing you to automate resource generation even more. Bu ### Meta -Requires: Automatic Filter-Injectors, Bear Arms, Emittrium Circuits +Requires: qid_automatic_filter_injectors, qid_bear_arms, qid_emittrium_circuits ## Autocrafters +### ID: qid_autocrafters ### Text @@ -93,9 +100,10 @@ Autocrafters automatically craft. They require a crafting processor item to run, ### Meta -Requires: Bear Arms, Neutronium, Emittrium Circuits, Automatic Filter-Injectors +Requires: qid_bear_arms, qid_neutronium, qid_emittrium_circuits, qid_automatic_filter_injectors ## Simple Crafting Processors +### ID: qid_simple_crafting_processors ### Text @@ -109,9 +117,10 @@ Nuclear Crafting Processor: 16 items/s & 175 power ### Meta -Requires: Autocrafters +Requires: qid_autocrafters ## Item Voids +### ID: qid_item_voids ### Text @@ -119,9 +128,10 @@ Item Voids delete every item that goes in, and yes, these are Pipeworks trash ca ### Meta -Requires: Tubes +Requires: qid_tubes ## Info: Overflow Handling +### ID: qid_info_overflow_handling ### Text @@ -144,9 +154,10 @@ The default priority of nodes is 100. ### Meta -Requires: Item Voids +Requires: qid_item_voids ## Item Vacuums +### ID: qid_item_vacuums ### Text @@ -154,9 +165,10 @@ Item Vacuums vacuum up items in a 16-block radius, but they tend to cause lag. ### Meta -Requires: Neutronium, Tubes +Requires: qid_neutronium, qid_tubes ## Teleport Tubes +### ID: qid_teleport_tubes ### Text @@ -166,9 +178,10 @@ Oh wait, one thing to mention: items will fall off the receiving tube if you don ### Meta -Requires: Tubes, Crystal Grower +Requires: qid_tubes, qid_crystal_grower ## One Direction Tubes +### ID: qid_one_direction_tubes ### Text @@ -179,9 +192,10 @@ To change that direction, sneak and punch it on the side that you want the items ### Meta -Requires: Tubes +Requires: qid_tubes ## Automatic Turrets +### ID: qid_automatic_turrets ### Text @@ -189,9 +203,10 @@ Do you want to automatically shoot down meteorites or even shoot down players? T ### Meta -Requires: Node Breakers, Neutronium +Requires: qid_node_breakers, qid_neutronium ## Instatubes +### ID: qid_instatubes ### Text @@ -260,9 +275,10 @@ The high priority instatube here is redundant but useful if you aren't working w ### Meta -Requires: Blast Furnace +Requires: qid_blast_furnace ## Pattern Storinator +### ID: qid_pattern_storinator ### Text @@ -277,13 +293,14 @@ The Pattern Storinator can be used in machines like the Meteorite Maker, where y ### Meta -Requires: Automatic Filter-Injectors +Requires: qid_automatic_filter_injectors # Questline: Fluid Transport This questline is about transporting fluids. ## Fluid Pipes +### ID: qid_fluid_pipes ### Text @@ -291,9 +308,10 @@ A fluid pipe is like an (Insta)tube, but with fluids. They move fluids around ju ### Meta -Requires: Tubes +Requires: qid_tubes ## Fluid Pumps +### ID: qid_fluid_pumps ### Text @@ -301,9 +319,10 @@ Fluid Pumps are automatic filter-injectors, but for pipes. They take fluids from ### Meta -Requires: Automatic Filter-Injectors +Requires: qid_automatic_filter_injectors ## Fluid Storage Tanks +### ID: qid_fluid_storage_tanks ### Text @@ -315,9 +334,10 @@ This applies to pretty much all of fluid transport. ### Meta -Requires: Tubes, Storinators +Requires: qid_tubes, qid_storinators ## Fluid Capturers +### ID: qid_fluid_capturers ### Text @@ -325,9 +345,10 @@ Fluid Capturers capture liquid **sources** from their top and store them. You ca ### Meta -Requires: Fluid Storage Tanks +Requires: qid_fluid_storage_tanks ## Fluid Cell Fillers +### ID: qid_fluid_cell_fillers ### Text @@ -335,4 +356,4 @@ Fluid Cell Fillers fill empty fluid cells in their inventories. ### Meta -Requires: Fluid Storage Tanks +Requires: qid_fluid_storage_tanks diff --git a/mods/sbz_progression/quests/en/Reactor.md b/mods/sbz_progression/quests/en/Reactor.md index 520ebb2a..6aaa045e 100644 --- a/mods/sbz_progression/quests/en/Reactor.md +++ b/mods/sbz_progression/quests/en/Reactor.md @@ -5,6 +5,7 @@ Emittrium reactors are another way of generating energy. They are a 3x3x3 cube m If it doesn't have enough coolant (water), it heats up, and bad things happen if it heats up too much. ## Reactor Shells +### ID: qid_reactor_shells ### Text @@ -16,6 +17,7 @@ You can also use them as a nice decorative block that won't explode to meteorite Requires: Obtain Emittrium ## Reactor Glass +### ID: qid_reactor_glass ### Text @@ -24,9 +26,10 @@ You can also use it as a nice decorative block that won't explode to meteorites. ### Meta -Requires: Emittrium Glass, Reactor Shells +Requires: qid_emittrium_glass, qid_reactor_shells ## Reactor Infoscreens +### ID: qid_reactor_infoscreens ### Text @@ -34,9 +37,10 @@ A Reactor Infoscreen is needed in the construction of the emittrium reactor and ### Meta -Requires: Reactor Glass +Requires: qid_reactor_glass ## Reactor Power Ports +### ID: qid_reactor_power_ports ### Text @@ -44,9 +48,10 @@ A Reactor Power Port is needed in the construction of the emittrium reactor. It ### Meta -Requires: Reactor Shells +Requires: qid_reactor_shells ## Reactor Coolant Ports +### ID: qid_reactor_coolant_ports ### Text @@ -54,9 +59,10 @@ A Reactor Coolant Port is needed in the construction of the emittrium reactor. I ### Meta -Requires: Fluid Storage Tanks +Requires: qid_fluid_storage_tanks ## Reactor Emittrium Input +### ID: qid_reactor_emittrium_input ### Text @@ -64,9 +70,10 @@ A Reactor Emittrium Input is needed in the construction of the emittrium reactor ### Meta -Requires: Reactor Shells, Tubes +Requires: qid_reactor_shells, qid_tubes ## Reactor Core +### ID: qid_reactor_core ### Text @@ -74,9 +81,10 @@ A Reactor Core is needed in the construction of the emittrium reactor. It needs ### Meta -Requires: Neutronium, Reactor Shells +Requires: qid_neutronium, qid_reactor_shells ## Building the emittrium reactor and turning it on +### ID: qid_building_the_emittrium_reactor_and_turning_it_on ### Text @@ -91,4 +99,4 @@ In older releases, the emittrium reactor used to explode when it ran out of cool ### Meta -Requires: Reactor Shells, Reactor Infoscreens, Reactor Power Ports, Reactor Coolant Ports, Reactor Emittrium Input, Reactor Core \ No newline at end of file +Requires: qid_reactor_shells, qid_reactor_infoscreens, qid_reactor_power_ports, qid_reactor_coolant_ports, qid_reactor_emittrium_input, qid_reactor_core diff --git a/mods/sbz_progression/quests/en/Secrets.md b/mods/sbz_progression/quests/en/Secrets.md index 75fadf4b..bb275723 100644 --- a/mods/sbz_progression/quests/en/Secrets.md +++ b/mods/sbz_progression/quests/en/Secrets.md @@ -1,6 +1,7 @@ # Questline: Secrets ## Secret: Emptiness +### ID: qid_emptiness ### Text @@ -11,6 +12,7 @@ Damn. You fell off. Requires: ## Secret: Desolate +### ID: qid_secret_desolate ### Text @@ -21,6 +23,7 @@ You talked to yourself. Requires: ## Secret: Fragile +### ID: qid_secret_fragile ### Text @@ -31,6 +34,7 @@ You broke an Angel's Wing. Requires: ## Secret: AntiColorium Planets +### ID: qid_secret_anticolorium_planets ### Text @@ -45,6 +49,7 @@ Hint 2: Use a screen inverter potion to reverse the effect, at the cost of a mil Requires: ## Secret: Craftageddon +### ID: qid_craftageddon ### Text @@ -55,6 +60,7 @@ What would ever justify this investment?? Requires: ## Secret: Alive Poets Society +### ID: qid_secret_alive_poets_society ### Text diff --git a/mods/sbz_progression/quests/en/Sensors.md b/mods/sbz_progression/quests/en/Sensors.md index dbefcdb1..7ec07c1d 100644 --- a/mods/sbz_progression/quests/en/Sensors.md +++ b/mods/sbz_progression/quests/en/Sensors.md @@ -4,6 +4,7 @@ Multi-step processes just to craft some logic gates? Yes please! ## Sensor Linker +### ID: qid_sensor_linker ### Text @@ -16,9 +17,10 @@ When you **left-click** a node that is already linked, it will unlink it. ### Meta -Requires: Blast Furnace +Requires: qid_blast_furnace ## Logic Gates +### ID: qid_logic_gates ### Text @@ -53,9 +55,10 @@ You can complete this quest by crafting the buffer gate. ### Meta -Requires: Sensor Linker +Requires: qid_sensor_linker ## Machine Controller +### ID: qid_machine_controller ### Text @@ -70,9 +73,10 @@ The machine at link "A" is off, so all the machines in link "B" are turned off ### Meta -Requires: Sensor Linker +Requires: qid_sensor_linker ## Delayer +### ID: qid_delayer ### Text @@ -81,9 +85,10 @@ It uses node timers, so it may not work when you aren't near it (somewhere aroun ### Meta -Requires: Sensor Linker +Requires: qid_sensor_linker ## Light Sensor +### ID: qid_light_sensor ### Text @@ -95,9 +100,10 @@ Link "A" determines which position to test. ### Meta -Requires: Sensor Linker +Requires: qid_sensor_linker ## Node Sensor +### ID: qid_node_sensor ### Text @@ -107,9 +113,10 @@ It will turn on if the node at link "A" matches what is shown in the UI. ### Meta -Requires: Sensor Linker +Requires: qid_sensor_linker ## Item Sensor +### ID: qid_item_sensor ### Text @@ -122,9 +129,10 @@ In most machines, the item count that you put into this sensor won't matter. ### Meta -Requires: Sensor Linker +Requires: qid_sensor_linker ## Switches +### ID: qid_switches ### Text @@ -133,4 +141,4 @@ You can turn them on or off. ### Meta -Requires: Sensor Linker +Requires: qid_sensor_linker diff --git a/mods/sbz_progression/quests/en/Status_Effects.md b/mods/sbz_progression/quests/en/Status_Effects.md index 1d67afc8..4c1184ac 100644 --- a/mods/sbz_progression/quests/en/Status_Effects.md +++ b/mods/sbz_progression/quests/en/Status_Effects.md @@ -5,6 +5,7 @@ This questline tells you all about status effects, **after** you get them :> ## Secret: Attracted +### ID: qid_secret_attracted ### Text @@ -19,6 +20,7 @@ And yes, you can go into orbit around the meteorite attractor; it just takes som Requires: ## Secret: Wet +### ID: qid_secret_wet ### Text @@ -32,6 +34,7 @@ This effect, combined with certain other effects, may produce a very dangerous c Requires: ## Secret: Shocked +### ID: qid_secret_shocked ### Text @@ -45,6 +48,7 @@ This effect, combined with Wet, damages you by 8 hp, and the shocked effect will Requires: ## Secret: Poisoned +### ID: qid_secret_poisoned ### Text @@ -55,6 +59,7 @@ During this effect, you will be 0.5x as fast as you were before. You will also r Requires: ## Secret: Immune +### ID: qid_secret_immune ### Text diff --git a/mods/sbz_progression/quests/en/Storage.md b/mods/sbz_progression/quests/en/Storage.md index 2a14c020..c5661756 100644 --- a/mods/sbz_progression/quests/en/Storage.md +++ b/mods/sbz_progression/quests/en/Storage.md @@ -3,6 +3,7 @@ Mainly about drawers and Storinators. ## Storinators +### ID: qid_storinators ### Text @@ -11,9 +12,10 @@ The more red/green dots the front of a Storinator displays, the more full/empty ### Meta -Requires: Matter Plates, Charged Field, Retaining Circuits +Requires: qid_matter_plates, qid_charged_field, qid_retaining_circuits ## Better Storinators +### ID: qid_better_storinators ### Text @@ -25,9 +27,10 @@ To complete this quest, you need to craft the bronze Storinator. ### Meta -Requires: Storinators, Bronze Age +Requires: qid_storinators, qid_bronze_age ## Public Storinators +### ID: qid_public_storinators ### Text @@ -35,9 +38,10 @@ Public Storinators are like regular Storinators but are accessible to **anyone** ### Meta -Requires: Storinators +Requires: qid_storinators ## Best Storinators +### ID: qid_best_storinators ### Text @@ -46,9 +50,10 @@ You can use Neutronium Storinators. They are a little expensive, requiring 4 Neu ### Meta -Requires: Better Storinators, Neutronium +Requires: qid_better_storinators, qid_neutronium ## Drawers +### ID: qid_drawers ### Text @@ -62,9 +67,10 @@ Drawers also come with 1x2 and 4x4 variants. ### Meta -Requires: Storinators +Requires: qid_storinators ## Drawer Upgrades +### ID: qid_drawer_upgrades ### Text @@ -75,9 +81,10 @@ TIP: To insert an upgrade into a drawer, you need to right-click the edge of it ### Meta -Requires: Drawers, Bronze Age +Requires: qid_drawers, qid_bronze_age ## Drawer Controller +### ID: qid_drawer_controller ### Text @@ -88,9 +95,10 @@ For taking out items, you can use a Luacontroller, sending an itemstack (a strin ### Meta -Requires: Drawers +Requires: qid_drawers ## Room Containers +### ID: qid_room_containers ### Text Do you want to just put things in a room? This node was made for that. @@ -112,4 +120,4 @@ Warning: The power input functionality may not work correctly on servers (by def ### Meta -Requires: Warpshrooms +Requires: qid_warpshrooms From bbf24852369252c1d59dffe0f41a0f17780a82f2 Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 21:16:22 -0700 Subject: [PATCH 34/35] Update legacy_key_map --- mods/sbz_progression/quests.lua | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/mods/sbz_progression/quests.lua b/mods/sbz_progression/quests.lua index c054c978..0918ed21 100644 --- a/mods/sbz_progression/quests.lua +++ b/mods/sbz_progression/quests.lua @@ -166,6 +166,7 @@ core.log('action', 'Loading quests from markdown took: ' .. ((core.get_us_time() -- removed once all live players have been migrated. -- ============================================================ local legacy_key_map = { + ['Introduction'] = 'qid_introduction', ['A bigger platform'] = 'qid_a_bigger_platform', ['Matter Stairs'] = 'qid_matter_stairs', ['Antimatter'] = 'qid_antimatter', @@ -223,6 +224,7 @@ local legacy_key_map = { ['Emittrium Glass'] = 'qid_emittrium_glass', ['Dirt'] = 'qid_dirt', ['Sprouting Plants'] = 'qid_sprouting_plants', + ['Growing Plants'] = 'qid_growing_plants', ['Carbon Dioxide'] = 'qid_carbon_dioxide', ['Airlocks'] = 'qid_airlocks', ['Fluid Pipes'] = 'qid_fluid_pipes', @@ -281,6 +283,7 @@ local legacy_key_map = { ['Bulk Placer Tool'] = 'qid_bulk_placer_tool', ['Copy Tool'] = 'qid_copy_tool', ['Basic Neutron Emitter'] = 'qid_basic_neutron_emitter', + ['Fiberweed'] = 'qid_fiberweed', ['Electric Soil'] = 'qid_electric_soil', ['Engraver'] = 'qid_engraver', ['Blast Furnace'] = 'qid_blast_furnace', @@ -310,6 +313,7 @@ local legacy_key_map = { ['Colorium Emitters'] = 'qid_colorium_emitters', ['Radiation Shielding'] = 'qid_radiation_shielding', ['TNT'] = 'qid_tnt', + ['Colorium Trees'] = 'qid_colorium_trees', ["It's strange..."] = 'qid_its_strange', ['Cleargrass'] = 'qid_cleargrass', ['Razorgrass'] = 'qid_razorgrass', @@ -321,6 +325,17 @@ local legacy_key_map = { ['Wormhole'] = 'qid_wormhole', -- achievement_on_dig_table ['Antineutronium'] = 'qid_antineutronium', + -- secret + ['Secret: Not Chorus Fruit'] = 'qid_secret_not_chorus_fruit', + ['Secret: Desolate'] = 'qid_secret_desolate', + ['Secret: Fragile'] = 'qid_secret_fragile', + ['Secret: AntiColorium Planets'] = 'qid_secret_anticolorium_planets', + ['Secret: Alive Poets Society'] = 'qid_secret_alive_poets_society', + ['Secret: Attracted'] = 'qid_secret_attracted', + ['Secret: Wet'] = 'qid_secret_wet', + ['Secret: Shocked'] = 'qid_secret_shocked', + ['Secret: Poisoned'] = 'qid_secret_poisoned', + ['Secret: Immune'] = 'qid_secret_immune', -- special ['Emptiness'] = 'qid_emptiness', ['Credits'] = 'qid_credits', From 11803ec57d9065cfd1a81e519ff8a7b89849c57b Mon Sep 17 00:00:00 2001 From: Abigail Read Date: Sat, 28 Mar 2026 21:17:05 -0700 Subject: [PATCH 35/35] Mark things as to-do and circle back later --- mods/sbz_progression/init.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mods/sbz_progression/init.lua b/mods/sbz_progression/init.lua index 64b8a231..a016ed9f 100644 --- a/mods/sbz_progression/init.lua +++ b/mods/sbz_progression/init.lua @@ -278,6 +278,12 @@ local achievement_on_dig_table = { ['sbz_bio:shockshroom_4'] = 'qid_shockshrooms', } +-- TODO: Make quest entry for 'Clay' (ID: qid_clay) ...but only if that's an intended quest at some point. + +-- TODO: Remove requirement of Clay (ID: qid_clay) from Bricks (ID: qid_bricks) if Clay won't be a quest. + +-- TODO: Make a condition to trigger the Obtain Emittrium (ID: qid_obtain_emittrium) quest + core.register_on_player_inventory_action(function(player, action, inv, inv_info) local itemstack if action == 'move' then