From b00ddce531cd46716101d53637a6a32393207c08 Mon Sep 17 00:00:00 2001 From: Evert Prants Date: Sat, 21 Jul 2018 23:03:17 +0000 Subject: [PATCH] Redo formspec locations, Add graphite ingot, Lead block texture change, Add casing for Nuclear Processing Machines, Start progress on Enrichment Plant --- elepower_dynamics/craftitems.lua | 6 + .../textures/elepower_graphite_ingot.png | Bin 0 -> 5730 bytes .../textures/elepower_lead_block.png | Bin 1387 -> 1765 bytes elepower_farming/formspec.lua | 75 ------- elepower_farming/init.lua | 1 - elepower_farming/nodes/harvester.lua | 20 +- elepower_farming/nodes/planter.lua | 21 +- elepower_farming/nodes/spawner.lua | 21 +- elepower_farming/nodes/tree_processor.lua | 22 ++- elepower_machines/crafting.lua | 4 + elepower_machines/formspec.lua | 183 ------------------ elepower_machines/init.lua | 1 - elepower_machines/machines/bases/crafter.lua | 57 ++++++ .../machines/bases/fluidgenerator.lua | 20 +- .../machines/bases/generator.lua | 23 ++- elepower_machines/machines/bases/storage.lua | 24 ++- .../machines/coal_alloy_furnace.lua | 29 ++- elepower_machines/machines/grindstone.lua | 24 ++- elepower_machines/machines/init.lua | 42 ++-- elepower_machines/machines/lava_cooler.lua | 39 +++- .../textures/elepower_gui_bar.png | Bin 10793 -> 0 bytes elepower_nuclear/crafting.lua | 27 +++ elepower_nuclear/fluids.lua | 18 +- elepower_nuclear/init.lua | 1 + .../machines/enrichment_plant.lua | 60 ++++++ elepower_nuclear/machines/init.lua | 13 ++ .../textures/elenuclear_enrichment_plant.png | Bin 0 -> 2053 bytes elepower_nuclear/textures/elenuclear_gas.png | Bin 0 -> 669 bytes .../textures/elenuclear_heavy_water.png | Bin 0 -> 522 bytes .../textures/elenuclear_machine_block.png | Bin 0 -> 1873 bytes .../textures/elenuclear_machine_side.png | Bin 0 -> 1886 bytes .../textures/elenuclear_machine_top.png | Bin 0 -> 376 bytes .../textures/elenuclear_radioactive.png | Bin 0 -> 2345 bytes elepower_papi/formspec.lua | 25 ++- elepower_papi/textures/elepower_gui_bar.png | Bin 0 -> 8597 bytes .../textures/elepower_gui_barbg.png | Bin .../textures/elepower_gui_gauge.png | Bin .../textures/elepower_power_port.png | Bin 38 files changed, 443 insertions(+), 313 deletions(-) create mode 100644 elepower_dynamics/textures/elepower_graphite_ingot.png delete mode 100644 elepower_farming/formspec.lua delete mode 100644 elepower_machines/formspec.lua delete mode 100644 elepower_machines/textures/elepower_gui_bar.png create mode 100644 elepower_nuclear/crafting.lua create mode 100644 elepower_nuclear/machines/enrichment_plant.lua create mode 100644 elepower_nuclear/textures/elenuclear_enrichment_plant.png create mode 100644 elepower_nuclear/textures/elenuclear_gas.png create mode 100644 elepower_nuclear/textures/elenuclear_heavy_water.png create mode 100644 elepower_nuclear/textures/elenuclear_machine_block.png create mode 100644 elepower_nuclear/textures/elenuclear_machine_side.png create mode 100644 elepower_nuclear/textures/elenuclear_machine_top.png create mode 100644 elepower_nuclear/textures/elenuclear_radioactive.png create mode 100644 elepower_papi/textures/elepower_gui_bar.png rename {elepower_machines => elepower_papi}/textures/elepower_gui_barbg.png (100%) rename {elepower_machines => elepower_papi}/textures/elepower_gui_gauge.png (100%) rename {elepower_machines => elepower_papi}/textures/elepower_power_port.png (100%) diff --git a/elepower_dynamics/craftitems.lua b/elepower_dynamics/craftitems.lua index 56a48af..45df210 100644 --- a/elepower_dynamics/craftitems.lua +++ b/elepower_dynamics/craftitems.lua @@ -47,6 +47,12 @@ minetest.register_craftitem("elepower_dynamics:zinc_ingot", { groups = {zinc = 1, ingot = 1} }) +minetest.register_craftitem("elepower_dynamics:graphite_ingot", { + description = "Graphite Ingot", + inventory_image = "elepower_graphite_ingot.png", + groups = {graphite = 1, ingot = 1} +}) + -- Lumps minetest.register_craftitem("elepower_dynamics:lead_lump", { diff --git a/elepower_dynamics/textures/elepower_graphite_ingot.png b/elepower_dynamics/textures/elepower_graphite_ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..9b321cc4c00e74b7af4d198cafde0bc1eef6ee7d GIT binary patch literal 5730 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 3 then - y = 0.5 - end - - if in_width >= 2 then - x = 1 - end - - return "size[8,8.5]".. - default.gui_bg.. - default.gui_bg_img.. - default.gui_slots.. - ele.formspec.power_meter(power).. - "list[context;src;"..x..","..y..";"..in_width..","..in_height..";]".. - bar.. - "list[context;dst;5,1;2,2;]".. - "list[current_player;main;0,4.25;8,1;]".. - "list[current_player;main;0,5.5;8,3;8]".. - "listring[current_player;main]".. - "listring[context;src]".. - "listring[current_player;main]".. - "listring[context;dst]".. - "listring[current_player;main]".. - default.get_hotbar_bg(0, 4.25) -end - -function ele.formspec.get_fluid_generator_formspec(power, percent, buffer) - return "size[8,8.5]".. - default.gui_bg.. - default.gui_bg_img.. - default.gui_slots.. - ele.formspec.power_meter(power).. - ele.formspec.fluid_bar(7, 0, buffer).. - "image[3.5,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. - (percent)..":default_furnace_fire_fg.png]".. - "list[current_player;main;0,4.25;8,1;]".. - "list[current_player;main;0,5.5;8,3;8]".. - default.get_hotbar_bg(0, 4.25) -end - -function ele.formspec.get_generator_formspec(power, percent) - return "size[8,8.5]".. - default.gui_bg.. - default.gui_bg_img.. - default.gui_slots.. - ele.formspec.power_meter(power).. - "list[context;src;3,1.5;1,1;]".. - "image[4,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. - percent..":default_furnace_fire_fg.png]".. - "list[current_player;main;0,4.25;8,1;]".. - "list[current_player;main;0,5.5;8,3;8]".. - "listring[current_player;main]".. - "listring[context;src]".. - "listring[current_player;main]".. - default.get_hotbar_bg(0, 4.25) -end - -function ele.formspec.get_storage_formspec(power) - return "size[8,8.5]".. - default.gui_bg.. - default.gui_bg_img.. - default.gui_slots.. - ele.formspec.power_meter(power).. - "image[2,0.5;1,1;gui_furnace_arrow_bg.png^[transformR180]".. - "list[context;out;2,1.5;1,1;]".. - "image[5,0.5;1,1;gui_furnace_arrow_bg.png]".. - "list[context;in;5,1.5;1,1;]".. - "list[current_player;main;0,4.25;8,1;]".. - "list[current_player;main;0,5.5;8,3;8]".. - "listring[current_player;main]".. - "listring[context;out]".. - "listring[current_player;main]".. - "listring[context;in]".. - "listring[current_player;main]".. - default.get_hotbar_bg(0, 4.25) -end - -function elepm.get_coal_alloy_furnace_formspec(fuel_percent, item_percent) - return "size[8,8.5]".. - default.gui_bg.. - default.gui_bg_img.. - default.gui_slots.. - "list[context;src;2,0.5;2,1;]".. - "list[context;fuel;2.5,2.5;1,1;]".. - "image[2.5,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. - (100-fuel_percent)..":default_furnace_fire_fg.png]".. - "image[4,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. - (item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. - "list[context;dst;5,0.96;2,2;]".. - "list[current_player;main;0,4.25;8,1;]".. - "list[current_player;main;0,5.5;8,3;8]".. - "listring[context;dst]".. - "listring[current_player;main]".. - "listring[context;src]".. - "listring[current_player;main]".. - "listring[context;fuel]".. - "listring[current_player;main]".. - default.get_hotbar_bg(0, 4.25) -end - -function elepm.get_grindstone_formspec(item_percent) - return "size[8,8.5]".. - default.gui_bg.. - default.gui_bg_img.. - default.gui_slots.. - "list[context;src;1.6,1;1,1;]".. - "image[3.5,1;1,1;gui_furnace_arrow_bg.png^[lowpart:".. - (item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. - "list[context;dst;4.5,1;2,1;]".. - "list[current_player;main;0,4.25;8,1;]".. - "list[current_player;main;0,5.5;8,3;8]".. - "listring[context;dst]".. - "listring[current_player;main]".. - "listring[context;src]".. - "listring[current_player;main]".. - default.get_hotbar_bg(0, 4.25) -end - -function elepm.get_lava_cooler_formspec(item_percent, coolant_buffer, hot_buffer, power, recipes, recipe) - local rclist = {} - - local x = 2.5 - for j in pairs(recipes) do - if j == recipe then - rclist[#rclist + 1] = "item_image["..x..",0;1,1;"..j.."]" - else - rclist[#rclist + 1] = "item_image_button[".. x ..",0;1,1;"..j..";"..j..";]" - end - x = x + 1 - end - - return "size[8,8.5]".. - default.gui_bg.. - default.gui_bg_img.. - default.gui_slots.. - ele.formspec.power_meter(power).. - ele.formspec.fluid_bar(1, 0, coolant_buffer).. - ele.formspec.fluid_bar(7, 0, hot_buffer).. - "list[context;dst;3.5,1.5;1,1;]".. - "image[2.5,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. - (item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. - "image[4.5,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. - (item_percent)..":gui_furnace_arrow_fg.png^[transformFXR90]".. - table.concat(rclist, "").. - "list[current_player;main;0,4.25;8,1;]".. - "list[current_player;main;0,5.5;8,3;8]".. - "listring[current_player;main]".. - "listring[context;dst]".. - "listring[current_player;main]".. - default.get_hotbar_bg(0, 4.25) -end diff --git a/elepower_machines/init.lua b/elepower_machines/init.lua index 8bb03c9..b23d0df 100644 --- a/elepower_machines/init.lua +++ b/elepower_machines/init.lua @@ -8,7 +8,6 @@ elepm.modpath = modpath -- Utility dofile(modpath.."/craft.lua") -dofile(modpath.."/formspec.lua") -- Machines dofile(modpath.."/machines/init.lua") diff --git a/elepower_machines/machines/bases/crafter.lua b/elepower_machines/machines/bases/crafter.lua index a444e30..92ed3fa 100644 --- a/elepower_machines/machines/bases/crafter.lua +++ b/elepower_machines/machines/bases/crafter.lua @@ -1,6 +1,63 @@ -- This is a crafter type machine base. -- It accepts a recipe type registered beforehand. +-- Specialized formspec for crafters +function ele.formspec.get_crafter_formspec(craft_type, power, percent) + local craftstats = elepm.craft.types[craft_type] + local input_size = craftstats.inputs + + local gui_name = "gui_furnace_arrow" + if craftstats.gui_name then + gui_name = craftstats.gui_name + end + + local bar = "image[4,1.5;1,1;"..gui_name.."_bg.png^[transformR270]" + + if percent ~= nil then + bar = "image[4,1.5;1,1;"..gui_name.."_bg.png^[lowpart:".. + (percent)..":"..gui_name.."_fg.png^[transformR270]" + end + + local in_width = input_size + local in_height = 1 + + for n = 2, 4 do + if input_size % n == 0 and input_size ~= n then + in_width = input_size / n + in_height = input_size / n + end + end + + local y = 1.5 + local x = 1.5 + if in_height == 2 then + y = 1 + elseif in_height >= 3 then + y = 0.5 + end + + if in_width >= 2 then + x = 1 + end + + return "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + ele.formspec.power_meter(power).. + "list[context;src;"..x..","..y..";"..in_width..","..in_height..";]".. + bar.. + "list[context;dst;5,1;2,2;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]".. + "listring[context;dst]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) +end + function elepm.register_crafter(nodename, nodedef) local craft_type = nodedef.craft_type if not craft_type or not elepm.craft.types[craft_type] then diff --git a/elepower_machines/machines/bases/fluidgenerator.lua b/elepower_machines/machines/bases/fluidgenerator.lua index 579f1ee..2401841 100644 --- a/elepower_machines/machines/bases/fluidgenerator.lua +++ b/elepower_machines/machines/bases/fluidgenerator.lua @@ -1,4 +1,18 @@ +local function get_formspec(power, percent, buffer) + return "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + ele.formspec.power_meter(power).. + ele.formspec.fluid_bar(7, 0, buffer).. + "image[3.5,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. + (percent)..":default_furnace_fire_fg.png]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + default.get_hotbar_bg(0, 4.25) +end + -- A generator that creates power using a fuel function ele.register_fluid_generator(nodename, nodedef) local fuel = nodedef.fuel @@ -67,7 +81,7 @@ function ele.register_fluid_generator(nodename, nodedef) local active_node = nodename.."_active" ele.helpers.swap_node(pos, active_node) else - meta:set_string("formspec", ele.formspec.get_fluid_generator_formspec(pow_percent, 0, flbuffer)) + meta:set_string("formspec", get_formspec(pow_percent, 0, flbuffer)) meta:set_string("infotext", ("%s Idle\n%s\n%s"):format(nodedef.description, ele.capacity_text(capacity, storage), fluid_lib.buffer_to_string(flbuffer))) @@ -78,7 +92,7 @@ function ele.register_fluid_generator(nodename, nodedef) 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_fluid_generator_formspec(pow_percent, percent, flbuffer)) + meta:set_string("formspec", get_formspec(pow_percent, percent, flbuffer)) meta:set_string("infotext", ("%s Active\n%s\n%s"):format(nodedef.description, ele.capacity_text(capacity, storage), fluid_lib.buffer_to_string(flbuffer))) @@ -92,7 +106,7 @@ function ele.register_fluid_generator(nodename, nodedef) 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_fluid_generator_formspec(math.floor((storage / capacity) * 100), 0)) + meta:set_string("formspec", get_formspec(math.floor((storage / capacity) * 100), 0)) end } diff --git a/elepower_machines/machines/bases/generator.lua b/elepower_machines/machines/bases/generator.lua index 47804d9..9ba3e6e 100644 --- a/elepower_machines/machines/bases/generator.lua +++ b/elepower_machines/machines/bases/generator.lua @@ -1,4 +1,21 @@ +local function get_formspec(power, percent) + return "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + ele.formspec.power_meter(power).. + "list[context;src;3,1.5;1,1;]".. + "image[4,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. + percent..":default_furnace_fire_fg.png]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) +end + function elepm.register_fuel_generator(nodename, nodedef) if not nodedef.groups then nodedef.groups = {} @@ -58,7 +75,7 @@ function elepm.register_fuel_generator(nodename, nodedef) ele.helpers.swap_node(pos, active_node) end else - meta:set_string("formspec", ele.formspec.get_generator_formspec(pow_percent, 0)) + meta:set_string("formspec", get_formspec(pow_percent, 0)) meta:set_string("infotext", ("%s Idle"):format(nodedef.description) .. "\n" .. ele.capacity_text(capacity, storage)) ele.helpers.swap_node(pos, nodename) @@ -68,7 +85,7 @@ function elepm.register_fuel_generator(nodename, nodedef) 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_generator_formspec(pow_percent, percent)) + meta:set_string("formspec", get_formspec(pow_percent, percent)) meta:set_string("infotext", ("%s Active"):format(nodedef.description) .. "\n" .. ele.capacity_text(capacity, storage)) @@ -83,7 +100,7 @@ function elepm.register_fuel_generator(nodename, nodedef) 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_generator_formspec(math.floor((storage / capacity) * 100), 0)) + meta:set_string("formspec", get_formspec(math.floor((storage / capacity) * 100), 0)) end ele.register_machine(nodename, nodedef) diff --git a/elepower_machines/machines/bases/storage.lua b/elepower_machines/machines/bases/storage.lua index 4a11735..acbe178 100644 --- a/elepower_machines/machines/bases/storage.lua +++ b/elepower_machines/machines/bases/storage.lua @@ -1,4 +1,24 @@ +local function get_formspec(power) + return "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + ele.formspec.power_meter(power).. + "image[2,0.5;1,1;gui_furnace_arrow_bg.png^[transformR180]".. + "list[context;out;2,1.5;1,1;]".. + "image[5,0.5;1,1;gui_furnace_arrow_bg.png]".. + "list[context;in;5,1.5;1,1;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "listring[current_player;main]".. + "listring[context;out]".. + "listring[current_player;main]".. + "listring[context;in]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) +end + local function can_dig(pos, player) local meta = minetest.get_meta(pos); local inv = meta:get_inventory() @@ -34,7 +54,7 @@ function elepm.register_storage(nodename, nodedef) local rounded = math.floor(percent * 100) ele.helpers.swap_node(pos, nodename .. "_" .. level) - meta:set_string("formspec", ele.formspec.get_storage_formspec(rounded)) + meta:set_string("formspec", get_formspec(rounded)) meta:set_string("infotext", ("%s Active"):format(nodedef.description) .. "\n" .. ele.capacity_text(capacity, storage)) @@ -112,7 +132,7 @@ function elepm.register_storage(nodename, nodedef) local inv = meta:get_inventory() inv:set_size("out", 1) inv:set_size("in", 1) - meta:set_string("formspec", ele.formspec.get_storage_formspec(0)) + meta:set_string("formspec", get_formspec(0)) end for i = 0, levels do diff --git a/elepower_machines/machines/coal_alloy_furnace.lua b/elepower_machines/machines/coal_alloy_furnace.lua index e82ae31..c0cea65 100644 --- a/elepower_machines/machines/coal_alloy_furnace.lua +++ b/elepower_machines/machines/coal_alloy_furnace.lua @@ -1,4 +1,27 @@ +local function get_formspec(fuel_percent, item_percent) + return "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[context;src;2,0.5;2,1;]".. + "list[context;fuel;2.5,2.5;1,1;]".. + "image[2.5,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. + (100-fuel_percent)..":default_furnace_fire_fg.png]".. + "image[4,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. + (item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. + "list[context;dst;5,0.96;2,2;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "listring[context;dst]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]".. + "listring[context;fuel]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) +end + local function can_dig(pos, player) local meta = minetest.get_meta(pos); local inv = meta:get_inventory() @@ -144,11 +167,11 @@ local function alloy_furnace_timer(pos, elapsed) if fuel_totaltime ~= 0 then active = "Active" local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100) - formspec = elepm.get_coal_alloy_furnace_formspec(fuel_percent, item_percent) + formspec = get_formspec(fuel_percent, item_percent) ele.helpers.swap_node(pos, "elepower_machines:coal_alloy_furnace_active") result = true else - formspec = elepm.get_coal_alloy_furnace_formspec(100, 0) + formspec = get_formspec(100, 0) ele.helpers.swap_node(pos, "elepower_machines:coal_alloy_furnace") minetest.get_node_timer(pos):stop() end @@ -205,7 +228,7 @@ ele.register_base_device("elepower_machines:coal_alloy_furnace", { inv:set_size("dst", 4) inv:set_size("fuel", 1) - meta:set_string("formspec", elepm.get_coal_alloy_furnace_formspec(100, 0)) + meta:set_string("formspec", get_formspec(100, 0)) end, allow_metadata_inventory_put = allow_metadata_inventory_put, allow_metadata_inventory_take = allow_metadata_inventory_take, diff --git a/elepower_machines/machines/grindstone.lua b/elepower_machines/machines/grindstone.lua index 1de28f8..ad1c27b 100644 --- a/elepower_machines/machines/grindstone.lua +++ b/elepower_machines/machines/grindstone.lua @@ -1,4 +1,22 @@ +local function get_formspec(item_percent) + return "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[context;src;1.6,1;1,1;]".. + "image[3.5,1;1,1;gui_furnace_arrow_bg.png^[lowpart:".. + (item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. + "list[context;dst;4.5,1;2,1;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "listring[context;dst]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) +end + local function can_dig(pos, player) local meta = minetest.get_meta(pos); local inv = meta:get_inventory() @@ -46,7 +64,7 @@ local function grindstone_timer(pos, elapsed) if not recipe or recipe.time == 0 then meta:set_int("src_time", 0) meta:set_int("src_time_max", 0) - meta:set_string("formspec", elepm.get_grindstone_formspec(0)) + meta:set_string("formspec", get_formspec(0)) meta:set_string("infotext", "No recipe") return end @@ -86,7 +104,7 @@ local function grindstone_timer(pos, elapsed) end local percentile = math.floor(100 * time / target_time) - meta:set_string("formspec", elepm.get_grindstone_formspec(percentile)) + meta:set_string("formspec", get_formspec(percentile)) meta:set_int("src_time", time) meta:set_int("src_time_max", target_time) meta:set_string("infotext", "Grindstone: ".. percentile .. "%\nPunch me to progress!") @@ -107,7 +125,7 @@ ele.register_base_device("elepower_machines:grindstone", { inv:set_size("src", 1) inv:set_size("dst", 2) - meta:set_string("formspec", elepm.get_grindstone_formspec(0)) + meta:set_string("formspec", get_formspec(0)) end, tube = false, allow_metadata_inventory_put = allow_metadata_inventory_put, diff --git a/elepower_machines/machines/init.lua b/elepower_machines/machines/init.lua index 5e71400..9babbd4 100644 --- a/elepower_machines/machines/init.lua +++ b/elepower_machines/machines/init.lua @@ -1,16 +1,28 @@ --- Basic -dofile(elepm.modpath.."/machines/bases/init.lua") -dofile(elepm.modpath.."/machines/accumulator.lua") -dofile(elepm.modpath.."/machines/furnace.lua") -dofile(elepm.modpath.."/machines/alloy_furnace.lua") -dofile(elepm.modpath.."/machines/coal_alloy_furnace.lua") -dofile(elepm.modpath.."/machines/pulverizer.lua") -dofile(elepm.modpath.."/machines/grindstone.lua") -dofile(elepm.modpath.."/machines/sawmill.lua") -dofile(elepm.modpath.."/machines/generator.lua") -dofile(elepm.modpath.."/machines/storage.lua") -dofile(elepm.modpath.."/machines/lava_cooler.lua") -dofile(elepm.modpath.."/machines/solderer.lua") -dofile(elepm.modpath.."/machines/lava_generator.lua") -dofile(elepm.modpath.."/machines/steam_turbine.lua") +local mp = elepm.modpath .. "/machines/" + +-- Bases +dofile(mp .. "bases/init.lua") + +-- Generation +dofile(mp .. "generator.lua") +dofile(mp .. "lava_generator.lua") +dofile(mp .. "steam_turbine.lua") + +-- Storage +dofile(mp .. "storage.lua") + +-- Processing +dofile(mp .. "furnace.lua") +dofile(mp .. "sawmill.lua") +dofile(mp .. "pulverizer.lua") +dofile(mp .. "grindstone.lua") + +-- Crafter +dofile(mp .. "alloy_furnace.lua") +dofile(mp .. "coal_alloy_furnace.lua") +dofile(mp .. "solderer.lua") + +-- Other +dofile(mp .. "accumulator.lua") +dofile(mp .. "lava_cooler.lua") diff --git a/elepower_machines/machines/lava_cooler.lua b/elepower_machines/machines/lava_cooler.lua index 369d52b..daa7c74 100644 --- a/elepower_machines/machines/lava_cooler.lua +++ b/elepower_machines/machines/lava_cooler.lua @@ -16,6 +16,41 @@ local cooler_recipes = { }, } +local function get_formspec(item_percent, coolant_buffer, hot_buffer, power, recipes, recipe) + local rclist = {} + + local x = 2.5 + for j in pairs(recipes) do + if j == recipe then + rclist[#rclist + 1] = "item_image["..x..",0;1,1;"..j.."]" + else + rclist[#rclist + 1] = "item_image_button[".. x ..",0;1,1;"..j..";"..j..";]" + end + x = x + 1 + end + + return "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + ele.formspec.power_meter(power).. + ele.formspec.fluid_bar(1, 0, coolant_buffer).. + ele.formspec.fluid_bar(7, 0, hot_buffer).. + "list[context;dst;3.5,1.5;1,1;]".. + "image[2.5,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. + (item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. + "image[4.5,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. + (item_percent)..":gui_furnace_arrow_fg.png^[transformFXR90]".. + table.concat(rclist, "").. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "listring[current_player;main]".. + "listring[context;dst]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) +end + + local function lava_cooler_timer(pos, elapsed) local refresh = false @@ -77,7 +112,7 @@ local function lava_cooler_timer(pos, elapsed) 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, + meta:set_string("formspec", get_formspec(timer, coolant_buffer, hot_buffer, power, cooler_recipes, recipe)) return refresh @@ -107,7 +142,7 @@ ele.register_machine("elepower_machines:lava_cooler", { inv:set_size("dst", 1) meta:set_string("recipe", "default:cobble") - meta:set_string("formspec", elepm.get_lava_cooler_formspec(0,nil,nil,0,cooler_recipes, "default:cobble")) + meta:set_string("formspec", get_formspec(0,nil,nil,0,cooler_recipes, "default:cobble")) end, on_timer = lava_cooler_timer, on_receive_fields = function (pos, formname, fields, sender) diff --git a/elepower_machines/textures/elepower_gui_bar.png b/elepower_machines/textures/elepower_gui_bar.png deleted file mode 100644 index 45343f013b6557da71be4c1bf4fa87227cdc3ff5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10793 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 U0cNGT_zRJml9pn*ymiR`0yq#&JOBUy diff --git a/elepower_nuclear/crafting.lua b/elepower_nuclear/crafting.lua new file mode 100644 index 0000000..b2ec281 --- /dev/null +++ b/elepower_nuclear/crafting.lua @@ -0,0 +1,27 @@ + +-- Radiation-shielded Lead Machine Chassis +minetest.register_craft({ + output = "elepower_nuclear:machine_block", + recipe = { + {"elepower_dynamics:induction_coil_advanced", "elepower_dynamics:graphite_ingot", "elepower_dynamics:induction_coil_advanced"}, + {"elepower_dynamics:graphite_ingot", "elepower_dynamics:lead_block", "elepower_dynamics:graphite_ingot"}, + {"elepower_dynamics:lead_block", "elepower_dynamics:graphite_ingot", "elepower_dynamics:lead_block"}, + } +}) + +-- Enrichment Plant +minetest.register_craft({ + output = "elepower_nuclear:enrichment_plant", + recipe = { + {"elepower_dynamics:induction_coil_advanced", "elepower_dynamics:soc", "elepower_dynamics:induction_coil_advanced"}, + {"elepower_nuclear:graphite_rod", "elepower_nuclear:machine_block", "elepower_nuclear:graphite_rod"}, + {"elepower_dynamics:wound_silver_coil", "elepower_dynamics:viridisium_gear", "elepower_dynamics:wound_silver_coil"}, + } +}) + +elepm.register_craft({ + type = "grind", + recipe = { "elepower_dynamics:graphite_ingot" }, + output = "elepower_nuclear:graphite_rod 3", + time = 6, +}) diff --git a/elepower_nuclear/fluids.lua b/elepower_nuclear/fluids.lua index f5361c3..dba797b 100644 --- a/elepower_nuclear/fluids.lua +++ b/elepower_nuclear/fluids.lua @@ -8,36 +8,36 @@ minetest.register_node("elepower_nuclear:coolant", { description = "Coolant (cold)", - groups = {not_in_creative_inventory = 1}, + groups = {not_in_creative_inventory = 1, oddly_breakable_by_hand = 1, coolant = 1}, tiles = {"elenuclear_cold_coolant.png"}, }) minetest.register_node("elepower_nuclear:coolant_hot", { description = "Coolant (hot)", - groups = {not_in_creative_inventory = 1}, + groups = {not_in_creative_inventory = 1, oddly_breakable_by_hand = 1, coolant = 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"}, + groups = {not_in_creative_inventory = 1, oddly_breakable_by_hand = 1, water = 1}, + tiles = {"elenuclear_heavy_water.png"}, }) minetest.register_node("elepower_nuclear:tritium", { description = "Tritium Gas", - groups = {not_in_creative_inventory = 1}, - tiles = {"default_water.png"}, + groups = {not_in_creative_inventory = 1, oddly_breakable_by_hand = 1, gas = 1}, + tiles = {"elenuclear_gas.png"}, }) minetest.register_node("elepower_nuclear:deuterium", { description = "Deuterium Gas", - groups = {not_in_creative_inventory = 1}, - tiles = {"default_water.png"}, + groups = {not_in_creative_inventory = 1, oddly_breakable_by_hand = 1, gas = 1}, + tiles = {"elenuclear_gas.png"}, }) minetest.register_node("elepower_nuclear:helium", { description = "Helium Gas", - groups = {not_in_creative_inventory = 1}, + groups = {not_in_creative_inventory = 1, oddly_breakable_by_hand = 1, gas = 1}, tiles = {"elenuclear_helium.png"}, }) diff --git a/elepower_nuclear/init.lua b/elepower_nuclear/init.lua index 352a891..4584e55 100644 --- a/elepower_nuclear/init.lua +++ b/elepower_nuclear/init.lua @@ -9,3 +9,4 @@ elenuclear.modpath = modpath dofile(modpath.."/craftitems.lua") dofile(modpath.."/nodes.lua") dofile(modpath.."/fluids.lua") +dofile(modpath.."/crafting.lua") diff --git a/elepower_nuclear/machines/enrichment_plant.lua b/elepower_nuclear/machines/enrichment_plant.lua new file mode 100644 index 0000000..7177658 --- /dev/null +++ b/elepower_nuclear/machines/enrichment_plant.lua @@ -0,0 +1,60 @@ +-- Nuclear fuel enrichment plant + +local function get_formspec(power, heat, progress, water) + return "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + ele.formspec.power_meter(power).. + ele.formspec.create_bar(1, 0, heat, "#ffbb11", true).. + "list[context;src;2,0.75;1,1;]".. + "image[3.5,0.75;1,1;gui_furnace_arrow_bg.png^[lowpart:".. + (progress)..":gui_furnace_arrow_fg.png^[transformR270]".. + "list[context;dst;5,0.25;2,2;]".. + ele.formspec.fluid_bar(7, 0, water).. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "image[7,3;1,1;elenuclear_radioactive.png]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]".. + "listring[context;dst]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) +end + +local function enrichment_plant_timer (pos) + local meta = minetest.get_meta(pos) + local refresh = false + + return refresh +end + +ele.register_machine("elepower_nuclear:enrichment_plant", { + description = "Enrichment Plant", + tiles = { + "elenuclear_machine_top.png", "elenuclear_machine_top.png", "elenuclear_machine_side.png", + "elenuclear_machine_side.png", "elenuclear_machine_side.png", "elenuclear_enrichment_plant.png", + }, + groups = {ele_user = 1, cracky = 3, fluid_container = 1}, + ele_capacity = 16000, + ele_usage = 288, + ele_inrush = 288, + fluid_buffers = { + water = { + accepts = {"default:water_source"}, + capacity = 8000, + drainable = false, + } + }, + on_construct = function (pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + + inv:set_size("src", 1) + inv:set_size("dst", 4) + + meta:set_string("formspec", get_formspec(0, 25, 0, nil)) + end, + on_timer = enrichment_plant_timer, +}) diff --git a/elepower_nuclear/machines/init.lua b/elepower_nuclear/machines/init.lua index e69de29..85685b2 100644 --- a/elepower_nuclear/machines/init.lua +++ b/elepower_nuclear/machines/init.lua @@ -0,0 +1,13 @@ + +local mp = elenuclear.modpath .. "/machines/" + +minetest.register_node("elepower_nuclear:machine_block", { + description = "Radiation-shielded Lead Machine Chassis", + tiles = { + "elenuclear_machine_top.png", "elepower_lead_block.png", "elenuclear_machine_block.png", + "elenuclear_machine_block.png", "elenuclear_machine_block.png", "elenuclear_machine_block.png", + }, + groups = {cracky = 3}, +}) + +dofile(mp.."enrichment_plant.lua") diff --git a/elepower_nuclear/textures/elenuclear_enrichment_plant.png b/elepower_nuclear/textures/elenuclear_enrichment_plant.png new file mode 100644 index 0000000000000000000000000000000000000000..4ee4e97f06144dffc31e935dc28c1f1f7f641404 GIT binary patch literal 2053 zcmV+g2>SPlP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bvvLh)B{O1&N1SGK@hc#kuFvp*ySZtT=7v0hA zif6C@Et!(2r`mu2cJ&WF%)u#ReQ?n^jgN^Ya>69&`AOF|X>)zAA9_z-5d9JqWi}Dvr&y2pvpO{t`pnE}X47oFY zl#_kP)ib3RZ%>w;JCs>LYLWinJW}vxKdEa9)dE$kw1FWuWagl6cmvT2P^o+qtf8TV2(&>!Zt8M zeSvB(fcJC%3|<8c+6(4@0F%x`1L)6|9?2ya(SnT@<1AqEbtwQu@W8?u5-^}0i6uwc zGb>L7AOi?WaGk|)1}$VQS2)Q=#DN@S4s7F$r)w))o?glkyXnlKrgEd;L@x|2G=nrdleM<6$5TF(XbB(ZC(`)u83?8})CN3v13 zt+$a}8#>dty65Qc=JXuVM)GH0Kia*S&5v-^HL>PZJ#>87`#DVOt~2U!SbtUa=F!bn zGA*bXx&7)1(sNn%Ukr*(mq$-(a1q>~-DCE*2={3BS#_|sd9%JxZ{RquP$-M}#xAZBK%v?u*x}cbeoZk1V7eTAjmu^j$QdeeCIN?rI#`{aTWVYGZ!U$8{ zn!|=&?nd2lXUE-ATUIr!syd^MVW$wqFp=O#j@R(D{Bb6Vm>tm0g<)JFxH-O22| zV(fF;T+Y#+puMXZX`<%i$_v?;6kX=wWQ?qUoJ;F;*>K>#7#(s1b8@GoX9#`zR1059 zLFu$}1DD-Q!G!y+?LOgFAb5+KK|5T{(}Lj#h*~YE%QtomOPu94!Q{5xUmo~ie00d{ zW!SBt#^pybA20ipm+pXPU%L)dRA#wicCRWM^HV8%DY)Ga>5k^<*>6qJobG$_FF)ts z=}yZ?QEpuc`2XSFmlwJZXWu$R3CAzh!V&Y^gzjw;nfFM%@T^xo6`1VHo~6ZEFuBKO zdJ@5l_CX>@2HM@dakSAh-}0005t zNklvNI{W;XGl#@-XgD-cS$6mBq$OTh|2|b z_x3z?in|#FrdiqJ_4oPvJaTk&6gg)AM1+VyL;!GiRF#N$k}q`tDd$Yvwg9Lq?p}X> z-tc++`1nWyYSP^++As|KfA;tHYh7sokV-;CFf+z+te5lo91-F6_Ljcy0chK{(iag@ zK`qn)x~{850E@)}cjxBj26v}vn#xoQortLDWmY}AK+i77IoF26FpzVuV`!PH6m(sO znXx{(q`!jx3f3o=hzMQRRaVu7qGmbE<&xQKhV@T0L_~Oac&IFD{^RFw@n-Rw0Iq*u zv-?uv_V^`n!>d jpjs&+G!2yJud4h5u+C6TwoSI{00000NkvXXu0mjfuOjGQ literal 0 HcmV?d00001 diff --git a/elepower_nuclear/textures/elenuclear_gas.png b/elepower_nuclear/textures/elenuclear_gas.png new file mode 100644 index 0000000000000000000000000000000000000000..b942997052976fd75c537c9068938f37074759a5 GIT binary patch literal 669 zcmV;O0%HA%P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00IR`L_t(I%UzROf}1c5MGvw} zfV?xAC3X|tLl@9Jb`nBDAhs~`0mHP_r)^31ynfb>OFa$^Hue&;jmtD+E!Q$coj7F zN@N5e4FlpFP8ERTe#_(8V}2SELf}sbGtxbx9xZd_)%VNB<9-W(de7t8Gu_KX$Ko`| zB5mssU!YEv!)~*{{J7MJbL`e7U9bg>h#=}o77_K+8411K?pTbZai%dpXl4r6+Z`JQ z)H&2SWY%Q2E^(^p|IGlBWmt@STxwEENR}<`c<(85U7S+*b|7WhWZP_=s7JC4^?nf* z;Cj0gLYTC&7*L;6RuwT$2rNd@j3@zRRnY~5V3fHodL@gfs3(mhZQD*9oujNOprU&| zN#n???-A#)80nsHI_zLwa;Y2ieB1-jwB0hf%#|(}@8=VP8BN<^F=8<+VH4+gKcCRA z#^Zj=VYlJqQgf*rL}U@mVnjri1>x0`uL{hDZx^n&JA)ZrFhr){{Jl9}6;snN0I(_w znzs8E(PE@-2Hs8wHdVpn*>k_ub1L&CTub2UJHc!caZ)}Y>KV+an+GYSDHG}`tLh&* z07bPSv^_GCEkTkjo9vmJzv|WZ%P$46G2_v_uwmd6u_Q_?KzkkW00000NkvXXu0mjf D4`UvS literal 0 HcmV?d00001 diff --git a/elepower_nuclear/textures/elenuclear_heavy_water.png b/elepower_nuclear/textures/elenuclear_heavy_water.png new file mode 100644 index 0000000000000000000000000000000000000000..692913403d48bc2aad6fc2b881f6593ee6399763 GIT binary patch literal 522 zcmV+l0`>igP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00DAIL_t(I%Vm>W4&5*aL=TUo z*+&=Bb#|lGm1CeE*vYMm6h(dj!^~KI{QUKs9V(ozj9EZI6%12R0lhdV>MM3qc|Cz<<-6XO=1veEU_oV`ay}Deu6Qb5mCS$xv6+ul`VkID4-bfJT zPA~;z?N#;{!I;IJ;0m1n4YLcKE=2O6L8M2j?Eeb?%+)@mPx# M07*qoM6N<$f?>(rEC2ui literal 0 HcmV?d00001 diff --git a/elepower_nuclear/textures/elenuclear_machine_block.png b/elepower_nuclear/textures/elenuclear_machine_block.png new file mode 100644 index 0000000000000000000000000000000000000000..41901f81dc77e16890acfbb3d93a873343a92264 GIT binary patch literal 1873 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 Y7Y@)LS}^%ig#Z8m07*qoM6N<$g1dQc5&!@I literal 0 HcmV?d00001 diff --git a/elepower_nuclear/textures/elenuclear_machine_top.png b/elepower_nuclear/textures/elenuclear_machine_top.png new file mode 100644 index 0000000000000000000000000000000000000000..96719beb2cb64a90c94c9f569be503a33cfcb39f GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=De8Ak0{?)V>TT$X?><>&pI!U06)m(BE&B5>QC8#5JPCIX^cyHLrxhxhOTUBsE2$ zJhLQ2!QIn0AiR-J9H{7lr;B5V#p&G12iLVaa5(cHnd|-kzjm*8+xCi=ONvwtwGz2> z=k8dydNo%=$AaCR91Pc@Qq=DLJ++$e!3wQ&pIH=)BeNObFxOr9%y9nm1g}+#tu%~; z`#Wy%JDh7_eif~7%6e%`_Qks%?4ob^+)k_Ccn~Kc_aB9E|Q~ QfqrH1boFyt=akR{0L!$InE(I) literal 0 HcmV?d00001 diff --git a/elepower_nuclear/textures/elenuclear_radioactive.png b/elepower_nuclear/textures/elenuclear_radioactive.png new file mode 100644 index 0000000000000000000000000000000000000000..9ac3a0f61e0c105be8439710100235a5c42b2a5f GIT binary patch literal 2345 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 literal 0 HcmV?d00001 diff --git a/elepower_machines/textures/elepower_gui_barbg.png b/elepower_papi/textures/elepower_gui_barbg.png similarity index 100% rename from elepower_machines/textures/elepower_gui_barbg.png rename to elepower_papi/textures/elepower_gui_barbg.png diff --git a/elepower_machines/textures/elepower_gui_gauge.png b/elepower_papi/textures/elepower_gui_gauge.png similarity index 100% rename from elepower_machines/textures/elepower_gui_gauge.png rename to elepower_papi/textures/elepower_gui_gauge.png diff --git a/elepower_machines/textures/elepower_power_port.png b/elepower_papi/textures/elepower_power_port.png similarity index 100% rename from elepower_machines/textures/elepower_power_port.png rename to elepower_papi/textures/elepower_power_port.png