From 339043bbac63be484c4e943b93f1997f2d0f0ed0 Mon Sep 17 00:00:00 2001 From: Evert Prants Date: Mon, 17 Dec 2018 12:46:13 +0200 Subject: [PATCH] support new craftguide api --- elepower_machines/craft.lua | 73 ++++-- elepower_machines/depends.txt | 1 + .../machines/canning_machine.lua | 1 + elepower_machines/machines/compressor.lua | 1 + elepower_machines/machines/init.lua | 1 + elepower_machines/machines/pulverizer.lua | 1 + elepower_machines/machines/pump.lua | 31 +++ elepower_machines/machines/sawmill.lua | 1 + elepower_machines/machines/solderer.lua | 1 + elepower_machines/mod.conf | 2 +- .../models/elepower_pump_tube.obj | 230 ++++++++++++++++++ .../textures/elepower_pump_base.png | Bin 0 -> 5991 bytes .../textures/elepower_pump_side.png | Bin 0 -> 6436 bytes .../textures/elepower_pump_tube.png | Bin 0 -> 3583 bytes 14 files changed, 328 insertions(+), 15 deletions(-) create mode 100644 elepower_machines/machines/pump.lua create mode 100644 elepower_machines/models/elepower_pump_tube.obj create mode 100644 elepower_machines/textures/elepower_pump_base.png create mode 100644 elepower_machines/textures/elepower_pump_side.png create mode 100644 elepower_machines/textures/elepower_pump_tube.png 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 0000000000000000000000000000000000000000..d7e021ad191fed86c5f7f0fe1367c015cf2123de GIT binary patch literal 5991 zcmeHLc~leU77vRGhzba{h-i!oik)P#49P^|!Xm`7$>NH@WM%>>NhT%(0SXqhD7LcH zVxA97AezVG|p-@V`O zyZ6qrGC0t8h}B3d27@s~>gOFoecR97e>z){gQuFaPIX9w5hnFrp{0xrP*tJOY_0FLt^DU%peyzn% zuHM_W5#9yxL@kcb{m=J=f;-sG%x#xW8xpX8mQ@ zw#+&^{~*5cE@q@y=?0pO06>9^C)^seAp&n5q3YDx;Br@%Z~{&QKDJf$DTeu#c9ykG@EOAzf}#)u-LoP;d)NF z37mH#)4|p?a;dkpt|AhtOS%x$cs;8;vhu-CgT|zW95Z(sU(xDi!QFD|T1kukmg8~Tk#mz^IS8T z(lYI7HpB7cW$r)Iciza3_}<@lX1GPQ^meO#d#1^Zg)6t7OTS_U&#vilx@@1;`bm00 zdqb+(!O3cU@frbJ%(rRBFD@$y=(u2VN9Wh{b=re%U-r~hIyN0%S(II5?<2HaKXCA) z?y0K}?+z|^yR*Wfe4PD}2fu7T)bwa>go|hL>frKY-3w|nzNt%ZjLNumGG~QTQSi6> zCx1I&eouJC8vkL|_rD8WXwl@X2KG%jnW8PYu49Tlf}ZfzAcJLB$tWqa4zq8s|6ji*K>aV-mY z^0^s5RNh}u5%$ZO@R|E}-%eg;wq)WZWtOtuF|lOA z#+&R(A)Whs1{XD6aqMb#O`THWTiD`Im2&Y=M(31U=W^=O=bmhzom(dJvYmTr^X0k; zi=z_ScXaOFPppY>blYIH;-}lI>u>DYz3E<0valw+EUNSR-AP?G;a$R;#E9bZ$?V9K z(M|dRFFb9ZhnCqjjR}seE?PhF@c^m=$zI!f6dDqxTaRSrz9DJTt<9eLAG44atav6K zKg4;!)4?4R_Tsg_*Tzqq&=OL?tVU%E06AQ z64t%L zM_Eh-CSlEm0>A)`7aptdOV;9{$$?>LavTa{tZ7rNJQBqefeI%PW}-@|)`=4(ECa8Y z`b|%BSWE+ijFYhD1q3s_2rbSOumx-o@JUo8@K{r=m>yb8E)MaY*+)T*B&=AH)QCA8 zy@SJRU$H09}%rL=pkDZX8X~%i)ddP%WjMf>1MQPDDn;lM)t- zT4(l=)5`iJQj>iS=&^xbM`9c)H4sqyp#U5n2#NrZ2k>Byu|2gK5YTU}*7d1K>B&h% zG#oA)*X+Utl4J~7gLZvZS&}d^MhW6t$@mi$;gP|N;iL0nUbQCl96+C6%Z}8gf z7|0DmiM3xZs^TmS)bQ~&}3oQndmP{svhAS}l)#2pg2 z^NpyaY8{EFQJkit$k_^thtEZYC=Y=F5yTY%0+~n-Abdy&fIi(i6JIWbDO7kUiO`~PA%OrE@q|K%3qi0u{1P+=*XpROr8&7ETVzW@t%0p^XdD2FX6cQS!|^uLJipg-|_8 zM{1L#f3m56!+G>(r5|NWXp@ZmhvJKSN4zWEzTBjG(lN5|$20z%j!SP&)Q5 zp|OZM2B*4YUy1xNuXs(i3Lz0!#77Z;D+j5B7jY3l#)WtQj3e$m7>6MU;l0YPBjltW z(c&{=s2ZZqnW`YeIWs33l5EneXnibB1vweyi$Rdpd%S(e{rBt#M%`s74j}-F$+>{Q z9TWm0kq83>a){?H5+O1O#b1r^|9d||SRjx=A{4+NoDT>DAPUG}>QckygFFmDAROkp z{}ub;8J&*@hrUq#k$xU@D-Q?|8z-m--Ri|sx&ws9Ycxs)u6;Fe|0v}Df-|!3YZ`xM zZVcgY@b*x_=F@m%(3w;%Xi7rqGQcy|Nfx Pu=cxMx>b8T^f8Wtp zwsdFv8~^&+!QbeCqJHP(t@M2-*E_l1N`bcmzss(7a=n!TZv}prU4NNeRxjUN;A-kd zTu;51xbzTnrQT@_lzr&y%?P4jZ;WdtZ&6>C8o&8E24nDW`eVXaSMWYHIf#@7_ze2R z+QwEO9CaMBpr#y2pLwJgp`xE%8GVmWOud4PWzx@DbJK^uM}Zzmy=R1pekcr`5n?{p z`p)>)b4gX5u4M(Ebay^<>PVFgcNv{;Yta_=^@mK-Q!MDZ|NJ8nWHvo(&prl&Yd$Kx zEr%qe4k^macITf`Di^)52X)aU)9`Bw$E=0=;*8Mlbyr D3<$Fw literal 0 HcmV?d00001 diff --git a/elepower_machines/textures/elepower_pump_side.png b/elepower_machines/textures/elepower_pump_side.png new file mode 100644 index 0000000000000000000000000000000000000000..a33afe6684aab367bb536f2e64d47d8abbdd6b0a GIT binary patch literal 6436 zcmeHL3se(V8XiO*@)CTZs5Hj5DDIHSWb!mYAVG+NAa5&bCo>ZWl84Da0u}0`;v0O_ zR{<48sfxOY3WBIeSFGr&tn~%0h*-6?Sn-8|wKIWY+;#1Gc6-kD962W>_ulXS?tj1g z|Nq>%i^C@cIXieb007`D50*tx->&q>-j@3R-h&q?0Q62ukBTEBP$NU9*D6)X1cOY| z5e&klQUZYK>h9R7Yj2EldY&+_wDWsvH8{d&6C~X z{!!jgj&@@&kjGQxKR%q9>6@lWz2wyrw!(8v#q~`qcq0osvMLz^T%N5BYir8o6k3<9 zzUk^x7uNZ~@DE*DPP<&Ih?#cjVBoq8zmur#frW6)imB-bPwbfEcHeE6@I+vc?THXj;^$+(e^W73x)T_|m(>`y6UGHRu*MO7bmHij5 z2)6MXvZwUHVPH_d>keL5#_o^9Nvq@=A%!DO9UnT>eZ(AB_hn0u*)F&L>tXi`VGoyh zoNE4RY4D0s-g3RJz!+!GemImH@`h>R<+p1KM{mnR z5vk$C9jCc@?$aBa-KQMy=RU1|m1A!65>`aO;=qaChx91}GvcMoqi60sG+8>Dd#!N6 zpxlEO+LlC2{q~30DK#Fk(^gM;F!$l{uafTm{=W2aXQwtn#E}U~kQ2kSJTl1oL>xY+s%Foj7-=E!* zedPA|rSVe^G;V9mEd0JDD1T*TW$}^QseP}VX$`JA{$xbS(2-Zq=))hfHBKdzI>spZD-govy0bwF3T$U=;xSHoARif7)d~bi;qqIm%G(JOqh~=x7h2( z4L@<`maTzTHx{+;@oVkuGcuvxd(F9lRiQN(mX|GzX2LS%}tS zJOK2YucAs^Txf_0)2e+?T&o~_OllqF1ptW0nRF;NlOP!iB0;5*Fz;0!WinK_gc-{X zg+g^wB2g8bt|ubXCq-fDGch5~9OvsGHi;+#H9?{blR8;r5Sb)QGp~sHO?R`H3^RnB zDPhKihBKsEJ;6YH5FZE(G^tWyrmq7-tjCq22-)~<3aTYxCX%F1#9|qZMjs=`N2^a@ zv4uh*3xZiN3{nWtkftF~6R0taq$#>MWP}0JQ_`ul8V1dYDzqu2gvq4F8QtWxuz@D3 zvwH%%ZKgMnI7?175NbUXfCWR40EA!=7P2husnO8T9&3%ETSZDwmI>9d*ggh5Uv8}Dl90%^eQT}(PT@nXeykd zBDfHNW0(*mU{nDj925oxun-3oIHC|Jgj_@k@y%4Uup<9(xr7P(Kreg3lTlKs)vG1U z5S1py^l~6dr6wXtlopN6MG&C?7H~L12;y?!m!KFzZ=j-<=43-Y0`mZliN;feC>1;^ zHJU)MbeaV70OhhsswYrVtB=xZlO;^rB?fJ2P6dXzJIF;LS`4L=!3-vFI#0SYB>+ue znVVwPo526V6q%?sYW_2xm(U&-e?4i`>Su=O!xTvbM!uQnb>JSR2&zUINPU|8cNX^_outZdoKu}e( zJ4Jr$SG^`$`CI{8z`;7@K(2!~gH~uoXOxl84ec&!hH7!4ZH$4jTb+C63^Pg2P7tWb0AFm=eO2 zAdK@+D&8h;TRrjQy$NO~^)h7>~~bg$kGrB3!CiQ+1RNVhExXz%asw ziLPq@U*->Nkw0PZD^>-vVe%`N3lpwSLnzToi15L=wB@?zZKelgR`*j zF6zH$ZVBtMmTGlr)Uz#-3^QupIQ?sYT?`>AjL;agZ*tud(j|+tWsO@NB(t}>pyY|2IJi%Z>8@$x!%e3Rtmfo_+50plk2S%cq{O`==z_@nh>yhIRG*AOx=j+AQE^xXo`{d&tVs>nnJ{Vp6k*To$GtUTm0|0qFS{wlWN zIOMco+zzy$|LMD@_fK8-_s&)_*y|aqJicIP;{wMByPzY2;pGp(wdy-hm4@BWx-V&Z#-=(95kr=ByM`QUdb8NwPfwAJ6+0rl&Ha literal 0 HcmV?d00001 diff --git a/elepower_machines/textures/elepower_pump_tube.png b/elepower_machines/textures/elepower_pump_tube.png new file mode 100644 index 0000000000000000000000000000000000000000..c163c5bec03ac83a999fffbd3e4e852edf89ecd0 GIT binary patch literal 3583 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 FV1gZ>z9#?x literal 0 HcmV?d00001