diff --git a/elepower_machines/craft.lua b/elepower_machines/craft.lua index baafc06..57673dd 100644 --- a/elepower_machines/craft.lua +++ b/elepower_machines/craft.lua @@ -1,4 +1,5 @@ local have_ui = minetest.get_modpath("unified_inventory") +local have_cg = minetest.get_modpath("craftguide") and craftguide and craftguide.register_craft elepm.craft = {} elepm.craft.types = {} @@ -11,6 +12,11 @@ function elepm.register_craft_type(name, def) gui_name = def.gui_name, } + elepm.craft[name] = {} + + -- Don't register cooking or fuel types externally. + if name == "cooking" or name == "fuel" then return end + if have_ui and unified_inventory.register_craft_type then unified_inventory.register_craft_type(name, { description = def.description or name, @@ -19,7 +25,13 @@ function elepm.register_craft_type(name, def) }) end - elepm.craft[name] = {} + if have_cg then + craftguide.register_craft_type(name, { + description = def.description, + icon = def.icon or "elepower_alloy_furnace.png", + width = def.inputs or 2, + }) + end end function elepm.register_craft(craftdef) @@ -63,32 +75,65 @@ function elepm.register_craft(craftdef) time = time } - if have_ui then + if have_ui or have_cg then local spec = {} for item, count in pairs(recipe.recipe) do spec[#spec+1] = ItemStack(item .. " " .. count) end + local items = {} + for itm,q in pairs(recipe.recipe) do + local itmn = itm + if q > 1 then itmn = itmn .. " " .. q end + items[#items+1] = itmn + end + if type(recipe.output) == "table" then for _,itm in pairs(recipe.output) do local itmst = ItemStack(itm) - unified_inventory.register_craft({ - type = craftdef.type, - output = itmst, - items = spec, - width = 0, - }) + if have_ui then + unified_inventory.register_craft({ + type = craftdef.type, + output = itmst, + items = spec, + width = 0, + }) + end + + if have_cg then + local iname = itm + if type(iname) == "userdata" then iname = iname:get_name() end + + craftguide.register_craft({ + type = craftdef.type, + output = iname, + items = items, + }) + end end return end - unified_inventory.register_craft({ - type = craftdef.type, - output = recipe.output, - items = spec, - width = 0, - }) + if have_ui then + unified_inventory.register_craft({ + type = craftdef.type, + output = recipe.output, + items = spec, + width = 0, + }) + end + + if have_cg then + local iname = recipe.output + if type(iname) == "userdata" then iname = iname:get_name() end + + craftguide.register_craft({ + type = craftdef.type, + output = iname, + items = items, + }) + end end table.insert(elepm.craft[ctype], recipe) diff --git a/elepower_machines/depends.txt b/elepower_machines/depends.txt index 41c5ae6..d8a692a 100644 --- a/elepower_machines/depends.txt +++ b/elepower_machines/depends.txt @@ -1,2 +1,3 @@ elepower_dynamics unified_inventory? +craftguide? diff --git a/elepower_machines/machines/canning_machine.lua b/elepower_machines/machines/canning_machine.lua index 9fe9caa..3b0fead 100644 --- a/elepower_machines/machines/canning_machine.lua +++ b/elepower_machines/machines/canning_machine.lua @@ -1,6 +1,7 @@ elepm.register_craft_type("can", { description = "Canning", + icon = "elepower_canning_machine.png", inputs = 2, }) diff --git a/elepower_machines/machines/compressor.lua b/elepower_machines/machines/compressor.lua index 67acead..f925691 100644 --- a/elepower_machines/machines/compressor.lua +++ b/elepower_machines/machines/compressor.lua @@ -1,6 +1,7 @@ elepm.register_craft_type("compress", { description = "Compressing", + icon = "elepower_compressor.png", inputs = 1, }) diff --git a/elepower_machines/machines/init.lua b/elepower_machines/machines/init.lua index 7f90999..3a5c5c5 100644 --- a/elepower_machines/machines/init.lua +++ b/elepower_machines/machines/init.lua @@ -31,3 +31,4 @@ dofile(mp .. "electrolyzer.lua") dofile(mp .. "accumulator.lua") dofile(mp .. "lava_cooler.lua") dofile(mp .. "bucketer.lua") +dofile(mp .. "pump.lua") diff --git a/elepower_machines/machines/pulverizer.lua b/elepower_machines/machines/pulverizer.lua index f129de5..b2d7cc3 100644 --- a/elepower_machines/machines/pulverizer.lua +++ b/elepower_machines/machines/pulverizer.lua @@ -1,6 +1,7 @@ elepm.register_craft_type("grind", { description = "Grinding", + icon = "elepower_grinder.png", inputs = 1, }) diff --git a/elepower_machines/machines/pump.lua b/elepower_machines/machines/pump.lua new file mode 100644 index 0000000..6a06061 --- /dev/null +++ b/elepower_machines/machines/pump.lua @@ -0,0 +1,31 @@ + +ele.register_machine("elepower_machines:pump", { + description = "Pump", + tiles = { + "elepower_machine_top.png^elepower_power_port.png", "elepower_pump_base.png", "elepower_pump_side.png", + "elepower_pump_side.png", "elepower_pump_side.png", "elepower_pump_side.png", + }, + groups = { + ele_machine = 1, + ele_user = 1, + fluid_container = 1, + oddly_breakable_by_hand = 1, + }, + ele_no_automatic_ports = true, + fluid_buffers = { + pump = { + capacity = 16000, + drainable = true, + }, + }, +}) + +minetest.register_entity("elepower_machines:pump_tube", { + initial_properties = { + hp_max = 1, + visual = "mesh", + mesh = "elepower_pump_tube.obj", + physical = true, + textures = {"elepower_pump_tube.png"} + } +}) diff --git a/elepower_machines/machines/sawmill.lua b/elepower_machines/machines/sawmill.lua index 217e337..78a29ea 100644 --- a/elepower_machines/machines/sawmill.lua +++ b/elepower_machines/machines/sawmill.lua @@ -3,6 +3,7 @@ elepm.register_craft_type("saw", { description = "Sawmilling", inputs = 1, gui_name = "elepower_saw", + icon = "elepower_sawmill.png", }) elepm.register_crafter("elepower_machines:sawmill", { diff --git a/elepower_machines/machines/solderer.lua b/elepower_machines/machines/solderer.lua index 5986840..3530387 100644 --- a/elepower_machines/machines/solderer.lua +++ b/elepower_machines/machines/solderer.lua @@ -2,6 +2,7 @@ elepm.register_craft_type("solder", { description = "Soldering", inputs = 3, + icon = "elepower_solderer.png", }) elepm.register_crafter("elepower_machines:solderer", { diff --git a/elepower_machines/mod.conf b/elepower_machines/mod.conf index 6620a8f..012360f 100644 --- a/elepower_machines/mod.conf +++ b/elepower_machines/mod.conf @@ -1,4 +1,4 @@ name = elepower_machines description = Elepower machinery! depends = elepower_dynamics -optional_depends = unified_inventory +optional_depends = unified_inventory,craftguide diff --git a/elepower_machines/models/elepower_pump_tube.obj b/elepower_machines/models/elepower_pump_tube.obj new file mode 100644 index 0000000..1e50a1c --- /dev/null +++ b/elepower_machines/models/elepower_pump_tube.obj @@ -0,0 +1,230 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +o Cube +v 1.555200 -5.062500 1.555200 +v 1.555200 5.062500 1.555200 +v 1.555200 5.062500 2.592000 +v 1.555200 -5.062500 2.592000 +v -1.555200 -5.062500 -1.555200 +v -1.555200 5.062500 -1.555200 +v -1.555200 5.062500 -2.592000 +v -1.555200 -5.062500 -2.592000 +v -2.592000 -5.062500 -1.555200 +v -2.592000 5.062500 -1.555200 +v 2.592000 -5.062500 1.555200 +v 2.592000 5.062500 1.555200 +v -1.555200 5.062500 1.555200 +v -1.555200 5.062500 2.592000 +v -0.518400 5.062500 2.592000 +v 0.518400 5.062500 2.592000 +v 2.592000 5.062500 0.518400 +v 2.592000 5.062500 -0.518400 +v 2.592000 5.062500 -1.555200 +v 1.555200 5.062500 -1.555200 +v 1.555200 5.062500 -2.592000 +v 0.518400 5.062500 -2.592000 +v -0.518400 5.062500 -2.592000 +v -2.592000 5.062500 -0.518400 +v -2.592000 5.062500 0.518400 +v -2.592000 5.062500 1.555200 +v -2.592000 -5.062500 -0.518400 +v -2.592000 -5.062500 0.518400 +v -2.592000 -5.062500 1.555200 +v -1.555200 -5.062500 1.555200 +v -1.555200 -5.062500 2.592000 +v 2.592000 -5.062500 0.518400 +v 2.592000 -5.062500 -0.518400 +v 2.592000 -5.062500 -1.555200 +v 1.555200 -5.062500 -2.592000 +v 0.518400 -5.062500 -2.592000 +v -0.518400 -5.062500 -2.592000 +v -0.518400 -5.062500 2.592000 +v 0.518400 -5.062500 2.592000 +v 1.555200 -5.062500 -1.555200 +vt 0.937500 0.000000 +vt 1.000000 0.500000 +vt 0.937500 0.500000 +vt 0.500000 0.000000 +vt 0.562500 0.500000 +vt 0.500000 0.500000 +vt 0.687500 0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.000000 +vt 0.750000 0.500000 +vt 0.812500 0.000000 +vt 0.812500 0.500000 +vt 0.125000 0.640000 +vt 0.062500 0.640000 +vt 0.062500 0.576000 +vt 0.375000 0.000000 +vt 0.437500 0.000000 +vt 0.375000 0.500000 +vt 0.875000 0.500000 +vt 0.937500 0.000000 +vt 0.937500 0.500000 +vt 0.437500 0.500000 +vt 0.375000 0.500000 +vt 0.437500 0.000000 +vt 0.750000 0.000000 +vt 0.812500 0.000000 +vt 0.812500 0.500000 +vt 0.562500 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.500000 +vt 0.250000 0.064000 +vt 0.250000 0.256000 +vt 0.062500 0.256000 +vt 0.562500 0.000000 +vt 0.625000 0.500000 +vt 0.562500 0.500000 +vt 0.687500 0.000000 +vt 0.750000 0.500000 +vt 0.687500 0.500000 +vt 1.000000 0.000000 +vt 0.937500 0.500000 +vt 0.937500 0.000000 +vt 1.000000 0.000000 +vt 0.562500 0.000000 +vt 0.687500 0.500000 +vt 0.750000 0.000000 +vt 0.250000 0.384000 +vt 0.312500 0.384000 +vt 0.312500 0.448000 +vt 0.312500 0.512000 +vt 0.312500 0.576000 +vt 0.250000 0.576000 +vt 0.187500 0.320000 +vt 0.250000 0.320000 +vt 0.062500 0.320000 +vt 0.125000 0.320000 +vt 0.062500 0.384000 +vt 0.000000 0.448000 +vt 0.000000 0.384000 +vt 0.250000 0.640000 +vt 0.187500 0.640000 +vt 0.000000 0.512000 +vt 0.000000 0.576000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.437500 0.500000 +vt 0.312500 0.500000 +vt 0.312500 0.000000 +vt 0.875000 0.000000 +vt 0.312500 0.500000 +vt 0.312500 0.000000 +vt 0.375000 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.875000 0.000000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 0.687500 0.500000 +vt 0.687500 0.000000 +vt 0.687500 0.000000 +vt 0.687500 0.500000 +vt 0.562500 0.500000 +vt 0.500000 0.500000 +vt 0.500000 0.000000 +vt 0.125000 0.320000 +vt 0.062500 0.320000 +vt 0.000000 0.256000 +vt 0.000000 0.192000 +vt 0.000000 0.128000 +vt 0.000000 0.064000 +vt 0.062500 0.064000 +vt 0.187500 0.320000 +vt 0.250000 0.320000 +vt 0.312500 0.192000 +vt 0.312500 0.256000 +vt 0.312500 0.064000 +vt 0.312500 0.128000 +vt 0.062500 0.000000 +vt 0.125000 0.000000 +vt 0.187500 0.000000 +vt 0.250000 0.000000 +vt 0.625000 0.000000 +vt 0.750000 0.000000 +vt 1.000000 0.500000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s 1 +f 2/1/1 4/2/1 1/3/1 +f 6/4/2 8/5/2 5/6/2 +f 9/7/3 6/8/3 5/9/3 +f 11/10/4 2/11/4 1/12/4 +f 18/13/5 19/14/5 20/15/5 +f 25/16/2 24/17/2 28/18/2 +f 31/19/2 13/20/2 30/21/2 +f 18/22/1 17/23/1 33/24/1 +f 23/25/3 22/26/3 36/27/3 +f 16/28/4 15/29/4 38/30/4 +f 1/31/6 30/32/6 5/33/6 +f 20/34/3 34/35/3 40/36/3 +f 13/37/4 29/38/4 30/39/4 +f 35/40/1 20/41/1 40/42/1 +f 2/1/1 3/43/1 4/2/1 +f 6/4/2 7/44/2 8/5/2 +f 9/7/3 10/45/3 6/8/3 +f 11/10/4 12/46/4 2/11/4 +f 13/47/5 14/48/5 15/49/5 +f 16/50/5 3/51/5 2/52/5 +f 13/47/5 15/49/5 16/50/5 +f 25/53/5 26/54/5 13/47/5 +f 10/55/5 24/56/5 6/57/5 +f 24/56/5 25/53/5 6/57/5 +f 23/58/5 7/59/5 6/57/5 +f 25/53/5 13/47/5 6/57/5 +f 13/47/5 16/50/5 2/52/5 +f 2/52/5 12/60/5 17/61/5 +f 13/47/5 2/52/5 20/15/5 +f 23/58/5 6/57/5 22/62/5 +f 22/62/5 6/57/5 20/15/5 +f 20/15/5 21/63/5 22/62/5 +f 20/15/5 6/57/5 13/47/5 +f 2/52/5 17/61/5 20/15/5 +f 17/61/5 18/13/5 20/15/5 +f 24/17/2 10/64/2 9/65/2 +f 9/65/2 27/66/2 24/17/2 +f 27/66/2 28/18/2 24/17/2 +f 28/18/2 29/67/2 26/68/2 +f 26/68/2 25/16/2 28/18/2 +f 31/19/2 14/69/2 13/20/2 +f 17/23/1 12/70/1 11/71/1 +f 11/71/1 32/72/1 17/23/1 +f 32/72/1 33/24/1 17/23/1 +f 33/24/1 34/73/1 19/74/1 +f 19/74/1 18/22/1 33/24/1 +f 22/26/3 21/75/3 35/76/3 +f 36/27/3 37/77/3 23/25/3 +f 37/77/3 8/78/3 23/25/3 +f 22/26/3 35/76/3 36/27/3 +f 8/78/3 7/79/3 23/25/3 +f 15/29/4 14/80/4 31/81/4 +f 38/30/4 39/82/4 16/28/4 +f 39/82/4 4/83/4 16/28/4 +f 15/29/4 31/81/4 38/30/4 +f 4/83/4 3/84/4 16/28/4 +f 27/85/6 9/86/6 5/33/6 +f 5/33/6 8/87/6 37/88/6 +f 36/89/6 35/90/6 40/91/6 +f 5/33/6 37/88/6 40/91/6 +f 37/88/6 36/89/6 40/91/6 +f 28/92/6 27/85/6 5/33/6 +f 30/32/6 29/93/6 28/92/6 +f 38/94/6 31/95/6 30/32/6 +f 1/31/6 4/96/6 39/97/6 +f 39/97/6 38/94/6 30/32/6 +f 30/32/6 28/92/6 5/33/6 +f 40/91/6 34/98/6 33/99/6 +f 33/99/6 32/100/6 1/31/6 +f 32/100/6 11/101/6 1/31/6 +f 1/31/6 39/97/6 30/32/6 +f 5/33/6 40/91/6 1/31/6 +f 40/91/6 33/99/6 1/31/6 +f 20/34/3 19/102/3 34/35/3 +f 13/37/4 26/103/4 29/38/4 +f 35/40/1 21/104/1 20/41/1 diff --git a/elepower_machines/textures/elepower_pump_base.png b/elepower_machines/textures/elepower_pump_base.png new file mode 100644 index 0000000..d7e021a Binary files /dev/null and b/elepower_machines/textures/elepower_pump_base.png differ diff --git a/elepower_machines/textures/elepower_pump_side.png b/elepower_machines/textures/elepower_pump_side.png new file mode 100644 index 0000000..a33afe6 Binary files /dev/null and b/elepower_machines/textures/elepower_pump_side.png differ diff --git a/elepower_machines/textures/elepower_pump_tube.png b/elepower_machines/textures/elepower_pump_tube.png new file mode 100644 index 0000000..c163c5b Binary files /dev/null and b/elepower_machines/textures/elepower_pump_tube.png differ