From 00cda59a16f7b60fe82a38276924042da89c4af5 Mon Sep 17 00:00:00 2001 From: Evert Prants Date: Sun, 8 Jul 2018 12:33:35 +0300 Subject: [PATCH] Lava generator, disableable pipeworks support on machines --- elepower_dynamics/crafting.lua | 2 +- elepower_dynamics/liquids.lua | 7 ++ elepower_dynamics/textures/elepower_steam.png | Bin 0 -> 572 bytes elepower_farming/nodes/init.lua | 2 +- elepower_machines/crafting.lua | 10 ++ elepower_machines/formspec.lua | 14 +++ elepower_machines/machines/grindstone.lua | 1 + elepower_machines/machines/init.lua | 1 + elepower_machines/machines/lava_cooler.lua | 5 + elepower_machines/machines/lava_generator.lua | 100 ++++++++++++++++++ .../textures/elepower_lava_generator.png | Bin 0 -> 6792 bytes .../elepower_lava_generator_active.png | Bin 0 -> 6893 bytes .../textures/elepower_turbine_side.png | Bin 0 -> 6931 bytes elepower_nuclear/fluids.lua | 43 ++++++++ elepower_nuclear/init.lua | 2 + elepower_nuclear/machines/init.lua | 0 elepower_nuclear/nodes.lua | 2 + .../textures/elenuclear_cold_coolant.png | Bin 0 -> 6067 bytes .../textures/elenuclear_helium.png | Bin 0 -> 457 bytes .../textures/elenuclear_hot_coolant.png | Bin 0 -> 5944 bytes elepower_papi/machine.lua | 16 ++- 21 files changed, 201 insertions(+), 4 deletions(-) create mode 100644 elepower_dynamics/textures/elepower_steam.png create mode 100644 elepower_machines/machines/lava_generator.lua create mode 100644 elepower_machines/textures/elepower_lava_generator.png create mode 100644 elepower_machines/textures/elepower_lava_generator_active.png create mode 100644 elepower_machines/textures/elepower_turbine_side.png create mode 100644 elepower_nuclear/fluids.lua create mode 100644 elepower_nuclear/machines/init.lua create mode 100644 elepower_nuclear/nodes.lua create mode 100644 elepower_nuclear/textures/elenuclear_cold_coolant.png create mode 100644 elepower_nuclear/textures/elenuclear_helium.png create mode 100644 elepower_nuclear/textures/elenuclear_hot_coolant.png diff --git a/elepower_dynamics/crafting.lua b/elepower_dynamics/crafting.lua index 5a37989..6c3de74 100644 --- a/elepower_dynamics/crafting.lua +++ b/elepower_dynamics/crafting.lua @@ -162,7 +162,7 @@ minetest.register_craft({ output = "elepower_dynamics:wound_silver_coil", recipe = { {"", "moreores:silver_ingot", ""}, - {"moreores:silver_ingot", "elepower_dynamics:iron_ingot", "moreores:silver_ingot"}, + {"moreores:silver_ingot", "elepower_dynamics:zinc_ingot", "moreores:silver_ingot"}, {"", "moreores:silver_ingot", ""} } }) diff --git a/elepower_dynamics/liquids.lua b/elepower_dynamics/liquids.lua index f91f2e2..8dfba33 100644 --- a/elepower_dynamics/liquids.lua +++ b/elepower_dynamics/liquids.lua @@ -89,3 +89,10 @@ minetest.register_node("elepower_dynamics:etching_acid_flowing", { bucket.register_liquid("elepower_dynamics:etching_acid_source", "elepower_dynamics:etching_acid_flowing", "elepower_dynamics:bucket_etching_acid", "#410800", "Etching Acid Bucket") + +-- Virtual "fluid" +minetest.register_node("elepower_dynamics:steam", { + description = "Steam", + groups = {not_in_creative_inventory = 1}, + tiles = {"elepower_steam.png"}, +}) diff --git a/elepower_dynamics/textures/elepower_steam.png b/elepower_dynamics/textures/elepower_steam.png new file mode 100644 index 0000000000000000000000000000000000000000..774419dc1e2e86b5659167ad04d551b1fee027d0 GIT binary patch literal 572 zcmV-C0>k}@P)l*M6nuYwueH`%DWx$6GXp@*xz;KoA~MDRfRvJ|KF@=n&j$eZeIH|l5PW)!vDOk1 zRZS^{5L#=hYGxQ?G&5B#r2qgT`ort>VrEq(qHWvUhnZPKnEARcW}b5*;+!+*+q&LM?DUz8J usage then if coolant_buffer.amount >= 1000 and hot_buffer.amount >= 1000 then @@ -62,8 +63,11 @@ local function lava_cooler_timer(pos, elapsed) refresh = true end else + active = "Idle" refresh = false end + else + active = "Idle" end local power = math.floor(100 * storage / capacity) @@ -71,6 +75,7 @@ local function lava_cooler_timer(pos, elapsed) meta:set_int("src_time", time) meta:set_int("storage", storage) + meta:set_string("infotext", ("Lava Cooler %s\n%s"):format(active, ele.capacity_text(capacity, storage))) meta:set_string("formspec", elepm.get_lava_cooler_formspec(timer, coolant_buffer, hot_buffer, power, cooler_recipes, recipe)) diff --git a/elepower_machines/machines/lava_generator.lua b/elepower_machines/machines/lava_generator.lua new file mode 100644 index 0000000..2d9c065 --- /dev/null +++ b/elepower_machines/machines/lava_generator.lua @@ -0,0 +1,100 @@ + +ele.register_machine("elepower_machines:lava_generator", { + description = "Lava Generator", + groups = { + fluid_container = 1, + ele_provider = 1, + oddly_breakable_by_hand = 1, + }, + ele_usage = 64, + tiles = { + "elepower_machine_top.png", "elepower_machine_base.png", "elepower_machine_side.png", + "elepower_machine_side.png", "elepower_machine_side.png", "elepower_lava_generator.png", + }, + ele_active_node = true, + ele_active_nodedef = { + tiles = { + "elepower_machine_top.png", "elepower_machine_base.png", "elepower_machine_side.png", + "elepower_machine_side.png", "elepower_machine_side.png", "elepower_lava_generator_active.png", + }, + }, + fluid_buffers = { + lava = { + capacity = 8000, + accepts = {"default:lava_source"}, + drainable = false + } + }, + tube = false, + on_timer = function (pos, elapsed) + local meta = minetest.get_meta(pos) + local nodename = "elepower_machines:lava_generator" + + local burn_time = meta:get_int("burn_time") + local burn_totaltime = meta:get_int("burn_totaltime") + + local capacity = ele.helpers.get_node_property(meta, pos, "capacity") + local generation = ele.helpers.get_node_property(meta, pos, "usage") + local storage = ele.helpers.get_node_property(meta, pos, "storage") + + -- Fluid buffer + local flbuffer = fluid_lib.get_buffer_data(pos, "lava") + if not flbuffer or flbuffer.fluid == "" then return false end + + -- If more to burn and the energy produced was used: produce some more + if burn_time > 0 then + if storage + generation > capacity then + return false + end + + meta:set_int("storage", storage + generation) + + burn_time = burn_time - 1 + meta:set_int("burn_time", burn_time) + end + + local pow_percent = math.floor((storage / capacity) * 100) + + -- Burn another bucket of lava + if burn_time == 0 then + local inv = meta:get_inventory() + if flbuffer.amount >= 1000 then + -- Lava burn time + local fuel = 60 + + meta:set_int("burn_time", fuel) + meta:set_int("burn_totaltime", fuel) + + -- Take lava + flbuffer.amount = flbuffer.amount - 1000 + + local active_node = nodename.."_active" + ele.helpers.swap_node(pos, active_node) + else + meta:set_string("formspec", ele.formspec.get_lava_generator_formspec(pow_percent, 0, flbuffer)) + meta:set_string("infotext", "Lava Generator Idle\n" .. ele.capacity_text(capacity, storage) .. + "\n" .. fluid_lib.buffer_to_string(flbuffer)) + ele.helpers.swap_node(pos, nodename) + return false + end + end + if burn_totaltime == 0 then burn_totaltime = 1 end + + local percent = math.floor((burn_time / burn_totaltime) * 100) + meta:set_string("formspec", ele.formspec.get_lava_generator_formspec(pow_percent, percent, flbuffer)) + meta:set_string("infotext", "Lava Generator Active\n" .. ele.capacity_text(capacity, storage) .. + "\n" .. fluid_lib.buffer_to_string(flbuffer)) + + meta:set_int("lava_fluid_storage", flbuffer.amount) + + return true + end, + on_construct = function (pos) + local meta = minetest.get_meta(pos) + + local capacity = ele.helpers.get_node_property(meta, pos, "capacity") + local storage = ele.helpers.get_node_property(meta, pos, "storage") + + meta:set_string("formspec", ele.formspec.get_lava_generator_formspec(math.floor((storage / capacity) * 100), 0)) + end +}) diff --git a/elepower_machines/textures/elepower_lava_generator.png b/elepower_machines/textures/elepower_lava_generator.png new file mode 100644 index 0000000000000000000000000000000000000000..354ee9f3bbb9592f29a488e2d3f7d3378fd28252 GIT binary patch literal 6792 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 I-!(kxU)Gny+yDRo literal 0 HcmV?d00001 diff --git a/elepower_machines/textures/elepower_lava_generator_active.png b/elepower_machines/textures/elepower_lava_generator_active.png new file mode 100644 index 0000000000000000000000000000000000000000..577737aa1419ccf528e01c7de38c666a8959d694 GIT binary patch literal 6893 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 W`q5%9qY5;vFlk5ad9ll}*h1wTLl literal 0 HcmV?d00001 diff --git a/elepower_nuclear/fluids.lua b/elepower_nuclear/fluids.lua new file mode 100644 index 0000000..f5361c3 --- /dev/null +++ b/elepower_nuclear/fluids.lua @@ -0,0 +1,43 @@ + +------------------- +-- Virtual Nodes -- +------------------- + +-- These nodes are used as "fluids" +-- They do not actually exist as nodes that should be placed. + +minetest.register_node("elepower_nuclear:coolant", { + description = "Coolant (cold)", + groups = {not_in_creative_inventory = 1}, + tiles = {"elenuclear_cold_coolant.png"}, +}) + +minetest.register_node("elepower_nuclear:coolant_hot", { + description = "Coolant (hot)", + groups = {not_in_creative_inventory = 1}, + tiles = {"elenuclear_hot_coolant.png"}, +}) + +minetest.register_node("elepower_nuclear:heavy_water", { + description = "Heavy Water", + groups = {not_in_creative_inventory = 1}, + tiles = {"default_water.png"}, +}) + +minetest.register_node("elepower_nuclear:tritium", { + description = "Tritium Gas", + groups = {not_in_creative_inventory = 1}, + tiles = {"default_water.png"}, +}) + +minetest.register_node("elepower_nuclear:deuterium", { + description = "Deuterium Gas", + groups = {not_in_creative_inventory = 1}, + tiles = {"default_water.png"}, +}) + +minetest.register_node("elepower_nuclear:helium", { + description = "Helium Gas", + groups = {not_in_creative_inventory = 1}, + tiles = {"elenuclear_helium.png"}, +}) diff --git a/elepower_nuclear/init.lua b/elepower_nuclear/init.lua index 02e76d7..352a891 100644 --- a/elepower_nuclear/init.lua +++ b/elepower_nuclear/init.lua @@ -7,3 +7,5 @@ elenuclear = rawget(_G, "elenuclear") or {} elenuclear.modpath = modpath dofile(modpath.."/craftitems.lua") +dofile(modpath.."/nodes.lua") +dofile(modpath.."/fluids.lua") diff --git a/elepower_nuclear/machines/init.lua b/elepower_nuclear/machines/init.lua new file mode 100644 index 0000000..e69de29 diff --git a/elepower_nuclear/nodes.lua b/elepower_nuclear/nodes.lua new file mode 100644 index 0000000..7eff573 --- /dev/null +++ b/elepower_nuclear/nodes.lua @@ -0,0 +1,2 @@ + +dofile(elenuclear.modpath.."/machines/init.lua") diff --git a/elepower_nuclear/textures/elenuclear_cold_coolant.png b/elepower_nuclear/textures/elenuclear_cold_coolant.png new file mode 100644 index 0000000000000000000000000000000000000000..6438afbbefafeb64ad1a7d42217af07e7d7b060d GIT binary patch literal 6067 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 literal 0 HcmV?d00001 diff --git a/elepower_nuclear/textures/elenuclear_helium.png b/elepower_nuclear/textures/elenuclear_helium.png new file mode 100644 index 0000000000000000000000000000000000000000..9bc26fe6c0e1fedf65da7467e22adb51c375f198 GIT binary patch literal 457 zcmV;)0XF`LP)0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOLrFwIR4C6)QbCdnsw-5o;BJjRsKNA=-!_fU52`0F9Il0AmEm zyAyt%1Hc6m=W3E9b0b!DNL4M;cBZP@w;F&TRLh z$=d*d$B{e13~r`G+dEkWC2AMCygvZu>`P}B0N*iOJKdl$V&mtm=QFpfOyOo2n5(<3 z_cXu1>ssG#aW7Pt353{fZQXC^CzE^YRp!N{GVhi{yZj*l=PVM^SFHbD^NnbGtxK@l zYxOar`;&*n+(%Yrz!B1jZc7Xi;`?}Q*e3ZOR<_3s5(aRO00000NkvXXu0mjfvoyGO literal 0 HcmV?d00001 diff --git a/elepower_nuclear/textures/elenuclear_hot_coolant.png b/elepower_nuclear/textures/elenuclear_hot_coolant.png new file mode 100644 index 0000000000000000000000000000000000000000..0bbfa4178546a8d3148d0c86abafd97d9181b927 GIT binary patch literal 5944 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 as$28W1<}%=S_N+>g5~PvQn6%p^1lE$((@4j literal 0 HcmV?d00001 diff --git a/elepower_papi/machine.lua b/elepower_papi/machine.lua index c5d2229..57dfe14 100644 --- a/elepower_papi/machine.lua +++ b/elepower_papi/machine.lua @@ -42,7 +42,7 @@ local pw = minetest.get_modpath("pipeworks") ~= nil ]] local function can_dig(pos, player) - local meta = minetest.get_meta(pos); + local meta = minetest.get_meta(pos) local inv = meta:get_inventory() return inv:is_empty("dst") and inv:is_empty("src") end @@ -180,7 +180,19 @@ function ele.register_base_device(nodename, nodedef) -- Pipeworks support if pw and nodedef.groups and (nodedef.groups["tubedevice"] or nodedef.groups["tube"]) then - nodedef['tube'] = tube + if nodedef['tube'] == false then + nodedef['tube'] = nil + nodedef.groups["tubedevice"] = 0 + nodedef.groups["tube"] = 0 + elseif nodedef['tube'] then + for key,val in pairs(tube) do + if not nodedef['tube'][key] then + nodedef['tube'][key] = val + end + end + else + nodedef['tube'] = tube + end end -- Finally, register the damn thing already