From 6194cf7610bbdc63ec635522ed81f0b1d798785e Mon Sep 17 00:00:00 2001 From: Cristiano Magro <cristiano.magro@vola.it> Date: Fri, 03 Sep 2021 15:27:47 +0200 Subject: [PATCH] Merge branch 'master' into xno_tree_trap --- technic/machines/HV/nuclear_reactor.lua | 40 ++++++++----- technic/textures/technic_rubber_goo.png | 0 /dev/null | 14 ---- .luacheckrc | 2 technic/items.lua | 5 + technic/machines/other/injector.lua | 6 ++ technic/machines/register/recipes.lua | 47 +++++++++++++-- technic/crafts.lua | 23 +++++++ technic/mod.conf | 2 9 files changed, 102 insertions(+), 37 deletions(-) diff --git a/.luacheckrc b/.luacheckrc index 96a7aac..37f4970 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -28,6 +28,8 @@ "protector", "isprotect", "homedecor_expect_infinite_stacks", + + "craftguide", "i3" } files["concrete/init.lua"].ignore = { "steel_ingot" } diff --git a/technic/crafts.lua b/technic/crafts.lua index d43ab34..978bae8 100644 --- a/technic/crafts.lua +++ b/technic/crafts.lua @@ -174,7 +174,6 @@ }, }) - minetest.register_craft({ output = "default:dirt 2", type = "shapeless", @@ -186,3 +185,25 @@ "group:sand", }, }) + +minetest.register_craft({ + output = "technic:rubber_goo", + type = "shapeless", + recipe = { + "technic:raw_latex", + "default:coal_lump", + "default:coal_lump", + "default:coal_lump", + "default:coal_lump", + "default:coal_lump", + "default:coal_lump", + "default:coal_lump", + "default:coal_lump", + }, +}) + +minetest.register_craft({ + output = "technic:rubber", + type = "cooking", + recipe = "technic:rubber_goo", +}) diff --git a/technic/depends.txt b/technic/depends.txt deleted file mode 100644 index 1b76ab3..0000000 --- a/technic/depends.txt +++ /dev/null @@ -1,14 +0,0 @@ -default -pipeworks -technic_worldgen -basic_materials -bucket? -screwdriver? -mesecons? -mesecons_mvps? -digilines? -digiline_remote? -intllib? -unified_inventory? -vector_extras? -dye? diff --git a/technic/items.lua b/technic/items.lua index cf57229..d1565d7 100644 --- a/technic/items.lua +++ b/technic/items.lua @@ -134,6 +134,11 @@ sounds = default.node_sound_stone_defaults(), }) +minetest.register_craftitem("technic:rubber_goo", { + description = S("Rubber Goo"), + inventory_image = "technic_rubber_goo.png", +}) + for p = 0, 35 do local nici = (p ~= 0 and p ~= 7 and p ~= 35) and 1 or nil local psuffix = p == 7 and "" or p diff --git a/technic/machines/HV/nuclear_reactor.lua b/technic/machines/HV/nuclear_reactor.lua index c6ed4df..abaeb74 100644 --- a/technic/machines/HV/nuclear_reactor.lua +++ b/technic/machines/HV/nuclear_reactor.lua @@ -217,24 +217,33 @@ local function start_reactor(pos, meta) + local correct_fuel_count = 6 + local msg_fuel_missing = "Error: You need to insert " .. correct_fuel_count .. " pieces of Uranium Fuel." + if minetest.get_node(pos).name ~= "technic:hv_nuclear_reactor_core" then - return false + return msg_fuel_missing end local inv = meta:get_inventory() if inv:is_empty("src") then - return false + return msg_fuel_missing end local src_list = inv:get_list("src") - local correct_fuel_count = 0 + local fuel_count = 0 for _, src_stack in pairs(src_list) do if src_stack and src_stack:get_name() == fuel_type then - correct_fuel_count = correct_fuel_count + 1 + fuel_count = fuel_count + 1 end end - -- Check that the reactor is complete and has the correct fuel - if correct_fuel_count ~= 6 or reactor_structure_badness(pos) ~= 0 then - return false + -- Check that the has the correct fuel + if fuel_count ~= correct_fuel_count then + return msg_fuel_missing end + + -- Check that the reactor is complete + if reactor_structure_badness(pos) ~= 0 then + return "Error: The power plant seems to be built incorrectly." + end + meta:set_int("burn_time", 1) technic.swap_node(pos, "technic:hv_nuclear_reactor_core_active") meta:set_int("HV_EU_supply", power_supply) @@ -242,7 +251,8 @@ src_stack:take_item() inv:set_stack("src", idx, src_stack) end - return true + + return nil end @@ -281,7 +291,7 @@ "fuel used", 6, true) end if meta:get_string("autostart") == "true" then - if start_reactor(pos, meta) then + if not start_reactor(pos, meta) then return end end @@ -313,11 +323,11 @@ meta:set_string("remote_channel", fields.remote_channel) end if fields.start then - local b = start_reactor(pos, meta) - if b then + local start_error_msg = start_reactor(pos, meta) + if not start_error_msg then minetest.chat_send_player(player_name, "Start successful") else - minetest.chat_send_player(player_name, "Error") + minetest.chat_send_player(player_name, start_error_msg) end end if fields.autostart then @@ -385,11 +395,11 @@ melt_down_reactor(pos) end elseif msg.command == "start" then - local b = start_reactor(pos, meta) - if b then + local start_error_msg = start_reactor(pos, meta) + if not start_error_msg then digiline_remote.send_to_node(pos, channel, "Start successful", 6, true) else - digiline_remote.send_to_node(pos, channel, "Error", 6, true) + digiline_remote.send_to_node(pos, channel, start_error_msg, 6, true) end end end diff --git a/technic/machines/other/injector.lua b/technic/machines/other/injector.lua index fc3e3cd..6bd5a83 100644 --- a/technic/machines/other/injector.lua +++ b/technic/machines/other/injector.lua @@ -61,6 +61,9 @@ (is_stack and "button[0,1;2,1;mode_item;"..S("Stackwise").."]" or "button[0,1;2,1;mode_stack;"..S("Itemwise").."]").. + (meta:get_int("public") == 1 and + "button[2,1;2,1;mode_private;"..S("Public").."]" or + "button[2,1;2,1;mode_public;"..S("Private").."]").. "list[current_name;main;0,2;8,2;]".. "list[current_player;main;0,5;8,4;]".. "listring[]".. @@ -123,6 +126,9 @@ if fields.mode_item then meta:set_string("mode", "single items") end if fields.mode_stack then meta:set_string("mode", "whole stacks") end + if fields.mode_private then meta:set_int("public", 0) end + if fields.mode_public then meta:set_int("public", 1) end + if fields["fs_helpers_cycling:0:splitstacks"] or fields["fs_helpers_cycling:1:splitstacks"] then if not pipeworks.may_configure(pos, sender) then return end diff --git a/technic/machines/register/recipes.lua b/technic/machines/register/recipes.lua index 921d1c8..ba4a5e1 100644 --- a/technic/machines/register/recipes.lua +++ b/technic/machines/register/recipes.lua @@ -1,4 +1,6 @@ local have_ui = minetest.get_modpath("unified_inventory") +local have_cg = minetest.get_modpath("craftguide") +local have_i3 = minetest.get_modpath("i3") technic.recipes = { cooking = { input_size = 1, output_size = 1 } } function technic.register_recipe_type(typename, origdata) @@ -6,12 +8,24 @@ for k, v in pairs(origdata) do data[k] = v end data.input_size = data.input_size or 1 data.output_size = data.output_size or 1 - if have_ui and unified_inventory.register_craft_type and data.output_size == 1 then - unified_inventory.register_craft_type(typename, { - description = data.description, - width = data.input_size, - height = 1, - }) + if data.output_size == 1 then + if have_ui and unified_inventory.register_craft_type then + unified_inventory.register_craft_type(typename, { + description = data.description, + width = data.input_size, + height = 1, + }) + end + if have_cg and craftguide.register_craft_type then + craftguide.register_craft_type(typename, { + description = data.description, + }) + end + if have_i3 then + i3.register_craft_type(typename, { + description = data.description, + }) + end end data.recipes = {} technic.recipes[typename] = data @@ -59,6 +73,27 @@ width = 0, }) end + if (have_cg or have_i3) and technic.recipes[typename].output_size == 1 then + local result = data.output + if (type(result)=="table") then + result = result[1] + end + local items = table.concat(data.input, ", ") + if have_cg and craftguide.register_craft then + craftguide.register_craft({ + type = typename, + result = result, + items = {items}, + }) + end + if have_i3 then + i3.register_craft({ + type = typename, + result = result, + items = {items}, + }) + end + end end function technic.register_recipe(typename, data) diff --git a/technic/mod.conf b/technic/mod.conf index f2cefaa..7b8d08c 100644 --- a/technic/mod.conf +++ b/technic/mod.conf @@ -1,3 +1,3 @@ name = technic depends = default, pipeworks, technic_worldgen, basic_materials -optional_depends = bucket, screwdriver, mesecons, mesecons_mvps, digilines, digiline_remote, intllib, unified_inventory, vector_extras, dye +optional_depends = bucket, screwdriver, mesecons, mesecons_mvps, digilines, digiline_remote, intllib, unified_inventory, vector_extras, dye, craftguide,i3 diff --git a/technic/textures/technic_rubber_goo.png b/technic/textures/technic_rubber_goo.png new file mode 100644 index 0000000..d25cae6 --- /dev/null +++ b/technic/textures/technic_rubber_goo.png Binary files differ -- Gitblit v1.8.0