From fc6efb450c53a9426771bae7a3a2b06d75b1f6ec Mon Sep 17 00:00:00 2001 From: Vanessa Dannenberg Date: Fri, 2 Apr 2021 15:48:28 -0400 Subject: [PATCH] add support for Unified Inventory categories --- autocrafter.lua | 1 + decorative_tubes.lua | 2 ++ devices.lua | 13 +++++++++++++ filter-injector.lua | 1 + init.lua | 13 +++++++++++++ lua_tube.lua | 2 ++ mod.conf | 2 +- pipes.lua | 2 +- routing_tubes.lua | 1 + trashcan.lua | 1 + tube_registration.lua | 2 ++ wielder.lua | 3 +++ 12 files changed, 41 insertions(+), 2 deletions(-) diff --git a/autocrafter.lua b/autocrafter.lua index 313e178..1d99bfe 100644 --- a/autocrafter.lua +++ b/autocrafter.lua @@ -423,6 +423,7 @@ minetest.register_node("pipeworks:autocrafter", { }, }, }) +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:autocrafter" minetest.register_craft( { output = "pipeworks:autocrafter 2", diff --git a/decorative_tubes.lua b/decorative_tubes.lua index 1a4d386..308330b 100644 --- a/decorative_tubes.lua +++ b/decorative_tubes.lua @@ -28,6 +28,7 @@ minetest.register_node("pipeworks:steel_block_embedded_tube", { after_dig_node = pipeworks.after_dig, on_rotate = pipeworks.on_rotate, }) +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:steel_block_embedded_tube" minetest.register_craft( { output = "pipeworks:steel_block_embedded_tube 1", @@ -81,6 +82,7 @@ minetest.register_node("pipeworks:steel_pane_embedded_tube", { after_dig_node = pipeworks.after_dig, on_rotate = pipeworks.on_rotate, }) +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:steel_pane_embedded_tube" minetest.register_craft( { output = "pipeworks:steel_pane_embedded_tube 1", diff --git a/devices.lua b/devices.lua index 86b38ea..49875c8 100644 --- a/devices.lua +++ b/devices.lua @@ -222,6 +222,8 @@ for s in ipairs(states) do new_flow_logic_register.directional_horizonal_rotate(nodename_valve_empty, true) end end +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:pump_off" +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:valve_off_empty" local nodename_valve_loaded = "pipeworks:valve_on_loaded" minetest.register_node(nodename_valve_loaded, { @@ -301,6 +303,7 @@ minetest.register_node("pipeworks:grating", { end, on_rotate = false }) +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:grating" -- outlet spigot @@ -378,6 +381,8 @@ minetest.register_node(nodename_spigot_loaded, { drop = "pipeworks:spigot", on_rotate = pipeworks.fix_after_rotation }) +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:spigot" + -- new flow logic does not currently distinguish between these two visual states. -- register both so existing flowing spigots continue to work (even if the visual doesn't match the spigot's behaviour). new_flow_logic_register.directional_horizonal_rotate(nodename_spigot_empty, false) @@ -441,6 +446,9 @@ minetest.register_node(nodename_panel_loaded, { drop = "pipeworks:entry_panel_empty", on_rotate = pipeworks.fix_after_rotation }) + +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:entry_panel_empty" + -- TODO: AFAIK the two panels have no visual difference, so are redundant under new flow logic - alias? new_flow_logic_register.directional_horizonal_rotate(nodename_panel_empty, true) new_flow_logic_register.directional_horizonal_rotate(nodename_panel_loaded, true) @@ -525,6 +533,8 @@ minetest.register_node(nodename_sensor_loaded, { mesecons = pipereceptor_on, on_rotate = pipeworks.fix_after_rotation }) +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:flow_sensor_empty" + new_flow_logic_register.directional_horizonal_rotate(nodename_sensor_empty, true) new_flow_logic_register.directional_horizonal_rotate(nodename_sensor_loaded, true) -- activate flow sensor at roughly half the pressure pumps drive pipes @@ -603,6 +613,7 @@ for fill = 0, 10 do on_rotate = false }) end +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:storage_tank_0" -- fountainhead @@ -639,6 +650,7 @@ minetest.register_node(nodename_fountain_empty, { }, on_rotate = false }) +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:fountainhead" local nodename_fountain_loaded = "pipeworks:fountainhead_pouring" minetest.register_node(nodename_fountain_loaded, { @@ -734,6 +746,7 @@ minetest.register_node(nodename_sp_loaded, { check_for_pole = pipeworks.check_for_vert_pipe, check_for_horiz_pole = pipeworks.check_for_horiz_pipe }) +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:straight_pipe_empty" new_flow_logic_register.directional_horizonal_rotate(nodename_sp_empty, true) new_flow_logic_register.directional_horizonal_rotate(nodename_sp_loaded, true) diff --git a/filter-injector.lua b/filter-injector.lua index a080a1f..89163d2 100644 --- a/filter-injector.lua +++ b/filter-injector.lua @@ -472,6 +472,7 @@ for _, data in ipairs({ minetest.register_node("pipeworks:"..data.name, node) + pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:"..data.name end minetest.register_craft( { diff --git a/init.lua b/init.lua index f13c2de..f14b3ba 100644 --- a/init.lua +++ b/init.lua @@ -5,6 +5,7 @@ -- pipeworks = {} +pipeworks.ui_cat_tube_list = {} pipeworks.worldpath = minetest.get_worldpath() pipeworks.modpath = minetest.get_modpath("pipeworks") @@ -148,4 +149,16 @@ end minetest.register_alias("pipeworks:pipe", "pipeworks:pipe_110000_empty") +-- Unified Inventory categories integration + +if unified_inventory and unified_inventory.registered_categories then + if not unified_inventory.registered_categories["automation"] then + unified_inventory.register_category("automation", { + symbol = "pipeworks:lua_tube000000", + label = "Automation components" + }) + end + unified_inventory.add_category_items("automation", pipeworks.ui_cat_tube_list) +end + minetest.log("info", "Pipeworks loaded!") diff --git a/lua_tube.lua b/lua_tube.lua index d5c7f8b..8800133 100644 --- a/lua_tube.lua +++ b/lua_tube.lua @@ -981,6 +981,8 @@ end end end +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = BASENAME.."000000" + ------------------------------------ -- Overheated Lua controlled Tube -- ------------------------------------ diff --git a/mod.conf b/mod.conf index fd7f74d..17fd51c 100644 --- a/mod.conf +++ b/mod.conf @@ -1,5 +1,5 @@ name = pipeworks description = This mod uses mesh nodes and nodeboxes to supply a complete set of 3D pipes and tubes, along with devices that work with them. depends = default, basic_materials, screwdriver -optional_depends = mesecons, mesecons_mvps, digilines, signs_lib +optional_depends = mesecons, mesecons_mvps, digilines, signs_lib, unified_inventory min_minetest_version = 5.2.0 diff --git a/pipes.lua b/pipes.lua index 87877cb..befbbb9 100644 --- a/pipes.lua +++ b/pipes.lua @@ -133,7 +133,7 @@ for index, connects in ipairs(cconnects) do new_flow_logic_register.simple(emptypipe) new_flow_logic_register.simple(fullpipe) end - +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:pipe_1_empty" if REGISTER_COMPATIBILITY then diff --git a/routing_tubes.lua b/routing_tubes.lua index 7a90fd4..78699b7 100644 --- a/routing_tubes.lua +++ b/routing_tubes.lua @@ -193,6 +193,7 @@ if pipeworks.enable_one_way_tube then check_for_pole = pipeworks.check_for_vert_tube, check_for_horiz_pole = pipeworks.check_for_horiz_tube }) + pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:one_way_tube" minetest.register_craft({ output = "pipeworks:one_way_tube 2", recipe = { diff --git a/trashcan.lua b/trashcan.lua index 20f3fb4..361d73e 100644 --- a/trashcan.lua +++ b/trashcan.lua @@ -40,6 +40,7 @@ minetest.register_node("pipeworks:trashcan", { minetest.get_meta(pos):get_inventory():set_stack(listname, index, ItemStack("")) end, }) +pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:trashcan" minetest.register_craft({ output = "pipeworks:trashcan", diff --git a/tube_registration.lua b/tube_registration.lua index 60d7ff8..e1859f9 100644 --- a/tube_registration.lua +++ b/tube_registration.lua @@ -200,6 +200,7 @@ local register_all_tubes = function(name, desc, plain, noctrs, ends, short, inv, end end end + pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = name.."_000000" else -- 6d tubes: uses only 10 nodes instead of 64, but the textures must be rotated local cconnects = {{}, {1}, {1, 2}, {1, 3}, {1, 3, 5}, {1, 2, 3}, {1, 2, 3, 5}, {1, 2, 3, 4}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 6}} @@ -222,6 +223,7 @@ local register_all_tubes = function(name, desc, plain, noctrs, ends, short, inv, tube = {connect_sides = {front = 1, back = 1, left = 1, right = 1, top = 1, bottom = 1}}, drop = name.."_1", }) + pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = name.."_1" table.insert(tubenodes, cname) for xm = 0, 1 do for xp = 0, 1 do diff --git a/wielder.lua b/wielder.lua index 393d91f..f0d79e3 100644 --- a/wielder.lua +++ b/wielder.lua @@ -371,6 +371,7 @@ if pipeworks.enable_node_breaker then eject_drops = true, } register_wielder(data) + pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:nodebreaker_off" minetest.register_craft({ output = "pipeworks:nodebreaker_off", recipe = { @@ -422,6 +423,7 @@ if pipeworks.enable_deployer then end, eject_drops = false, }) + pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:deployer_off" minetest.register_craft({ output = "pipeworks:deployer_off", recipe = { @@ -457,6 +459,7 @@ if pipeworks.enable_dispenser then end, eject_drops = false, }) + pipeworks.ui_cat_tube_list[#pipeworks.ui_cat_tube_list+1] = "pipeworks:dispenser_off" minetest.register_craft({ output = "pipeworks:dispenser_off", recipe = {