Merge branch 'master' into xno_tree_trap
1 files added
7 files modified
1 files deleted
| | |
| | | |
| | | "protector", "isprotect", |
| | | "homedecor_expect_infinite_stacks", |
| | | |
| | | "craftguide", "i3" |
| | | } |
| | | |
| | | files["concrete/init.lua"].ignore = { "steel_ingot" } |
| | |
| | | }, |
| | | }) |
| | | |
| | | |
| | | minetest.register_craft({ |
| | | output = "default:dirt 2", |
| | | type = "shapeless", |
| | |
| | | "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", |
| | | }) |
| | |
| | | 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 |
| | |
| | | |
| | | |
| | | 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) |
| | |
| | | src_stack:take_item() |
| | | inv:set_stack("src", idx, src_stack) |
| | | end |
| | | return true |
| | | |
| | | return nil |
| | | end |
| | | |
| | | |
| | |
| | | "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 |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | (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[]".. |
| | |
| | | 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 |
| | |
| | | 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) |
| | |
| | | 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 |
| | |
| | | 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) |
| | |
| | | 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 |