diff --git a/elepower_dynamics/fluids.lua b/elepower_dynamics/fluids.lua index a5e010a..752d70c 100644 --- a/elepower_dynamics/fluids.lua +++ b/elepower_dynamics/fluids.lua @@ -87,9 +87,62 @@ minetest.register_node("elepower_dynamics:etching_acid_flowing", { sounds = default.node_sound_water_defaults(), }) +-- Liquid Lithium + +minetest.register_node("elepower_dynamics:lithium_source", { + description = "Liquid Lithium Source", + drawtype = "liquid", + tiles = {"elepower_lithium.png"}, + alpha = 200, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_source = "elepower_dynamics:lithium_source", + liquid_alternative_flowing = "elepower_dynamics:lithium_flowing", + liquid_viscosity = 4, + damage_per_second = 4, + post_effect_color = {a = 103, r = 229, g = 227, b = 196}, + groups = {lithium = 1, liquid = 3}, + sounds = default.node_sound_water_defaults(), +}) + +minetest.register_node("elepower_dynamics:lithium_flowing", { + description = "Flowing Liquid Lithium", + drawtype = "flowingliquid", + tiles = {"elepower_lithium.png"}, + special_tiles = {"elepower_lithium.png", "elepower_lithium.png"}, + alpha = 200, + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "elepower_dynamics:lithium_flowing", + liquid_alternative_source = "elepower_dynamics:lithium_source", + liquid_viscosity = 4, + damage_per_second = 4, + post_effect_color = {a = 103, r = 229, g = 227, b = 196}, + groups = {lithium = 1, liquid = 3, not_in_creative_inventory = 1}, + sounds = default.node_sound_water_defaults(), +}) + bucket.register_liquid("elepower_dynamics:etching_acid_source", "elepower_dynamics:etching_acid_flowing", "elepower_dynamics:bucket_etching_acid", "#410800", "Etching Acid Bucket") +bucket.register_liquid("elepower_dynamics:lithium_source", "elepower_dynamics:lithium_flowing", + "elepower_dynamics:bucket_lithium", "#e5e3c4", "Liquid Lithium Bucket") + ----------- -- Gases -- ----------- @@ -117,3 +170,15 @@ minetest.register_node("elepower_dynamics:nitrogen", { groups = {not_in_creative_inventory = 1, gas = 1}, tiles = {"elepower_steam.png"}, }) + +minetest.register_node("elepower_dynamics:lithium_gas", { + description = "Lithium Gas", + groups = {not_in_creative_inventory = 1, gas = 1, lithium = 1}, + tiles = {"elepower_lithium.png"}, +}) + +minetest.register_node("elepower_dynamics:chlorine_gas", { + description = "Chlorine Gas", + groups = {not_in_creative_inventory = 1, gas = 1, chlorine = 1}, + tiles = {"elepower_chlorine.png"}, +}) diff --git a/elepower_dynamics/gas_container.lua b/elepower_dynamics/gas_container.lua index 2fb9fa4..0369f66 100644 --- a/elepower_dynamics/gas_container.lua +++ b/elepower_dynamics/gas_container.lua @@ -43,3 +43,8 @@ ele.register_gas("elepower_dynamics:oxygen_container", "Oxygen", ele.register_gas("elepower_dynamics:nitrogen_container", "Nitrogen", "elepower_dynamics:nitrogen", "elepower_gas_nitrogen.png") +ele.register_gas("elepower_dynamics:lithium_container", "Lithium", + "elepower_dynamics:lithium_gas", "elepower_gas_lithium.png") + +ele.register_gas("elepower_dynamics:chlorine_container", "Chlorine", + "elepower_dynamics:chlorine_gas", "elepower_gas_chlorine.png") diff --git a/elepower_dynamics/textures/elepower_chlorine.png b/elepower_dynamics/textures/elepower_chlorine.png new file mode 100644 index 0000000..dac8b36 Binary files /dev/null and b/elepower_dynamics/textures/elepower_chlorine.png differ diff --git a/elepower_dynamics/textures/elepower_gas_chlorine.png b/elepower_dynamics/textures/elepower_gas_chlorine.png new file mode 100644 index 0000000..10d8839 Binary files /dev/null and b/elepower_dynamics/textures/elepower_gas_chlorine.png differ diff --git a/elepower_dynamics/textures/elepower_gas_helium.png b/elepower_dynamics/textures/elepower_gas_helium.png new file mode 100644 index 0000000..e88f306 Binary files /dev/null and b/elepower_dynamics/textures/elepower_gas_helium.png differ diff --git a/elepower_dynamics/textures/elepower_gas_hydrogen.png b/elepower_dynamics/textures/elepower_gas_hydrogen.png index e33426c..cca8a16 100644 Binary files a/elepower_dynamics/textures/elepower_gas_hydrogen.png and b/elepower_dynamics/textures/elepower_gas_hydrogen.png differ diff --git a/elepower_dynamics/textures/elepower_gas_lithium.png b/elepower_dynamics/textures/elepower_gas_lithium.png new file mode 100644 index 0000000..cdbf37b Binary files /dev/null and b/elepower_dynamics/textures/elepower_gas_lithium.png differ diff --git a/elepower_dynamics/textures/elepower_lithium.png b/elepower_dynamics/textures/elepower_lithium.png new file mode 100644 index 0000000..10bc3ec Binary files /dev/null and b/elepower_dynamics/textures/elepower_lithium.png differ diff --git a/elepower_machines/machines/bucketer.lua b/elepower_machines/machines/bucketer.lua index 0fea838..0d5cde8 100644 --- a/elepower_machines/machines/bucketer.lua +++ b/elepower_machines/machines/bucketer.lua @@ -111,7 +111,7 @@ local function on_timer(pos, elapsed) meta:set_int("input_fluid_storage", buffer.amount) meta:set_string("input_fluid", buffer.fluid) - meta:set_string("formspec", get_formspec(mode, buffer)) + meta:set_string("formspec", get_formspec(mode, buffer, state)) return refresh end diff --git a/elepower_nuclear/fluids.lua b/elepower_nuclear/fluids.lua index c4dc680..d5d9b7e 100644 --- a/elepower_nuclear/fluids.lua +++ b/elepower_nuclear/fluids.lua @@ -32,7 +32,8 @@ minetest.register_node("elepower_nuclear:helium_plasma", { ele.register_gas(nil, "Tritium", "elepower_nuclear:tritium") ele.register_gas(nil, "Deuterium", "elepower_nuclear:deuterium") -ele.register_gas(nil, "Helium", "elepower_nuclear:helium") +ele.register_gas("elepower_nuclear:helium_container", "Helium", + "elepower_nuclear:helium", "elepower_gas_helium.png") ele.register_gas(nil, "Helium Plasma", "elepower_nuclear:helium_plasma") ------------- @@ -130,7 +131,6 @@ minetest.register_node("elepower_nuclear:heavy_water_flowing", { sounds = default.node_sound_water_defaults(), }) - -- Cold coolant minetest.register_node("elepower_nuclear:coolant_source", { @@ -229,6 +229,56 @@ minetest.register_node("elepower_nuclear:hot_coolant_flowing", { sounds = default.node_sound_water_defaults(), }) +-- Brine + +minetest.register_node("elepower_nuclear:brine_source", { + description = "Brine Source", + drawtype = "liquid", + tiles = {"elenuclear_brine.png"}, + special_tiles = {"elenuclear_brine.png"}, + alpha = 240, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "elepower_nuclear:brine_flowing", + liquid_alternative_source = "elepower_nuclear:brine_source", + liquid_viscosity = 7, + post_effect_color = {a = 200, r = 215, g = 221, b = 187}, + groups = {brine = 3, saline = 1, liquid = 3, puts_out_fire = 1, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + +minetest.register_node("elepower_nuclear:brine_flowing", { + description = "Flowing Brine", + drawtype = "flowingliquid", + tiles = {"elenuclear_brine.png"}, + special_tiles = {"elenuclear_brine.png", "elenuclear_brine.png"}, + alpha = 240, + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "elepower_nuclear:brine_flowing", + liquid_alternative_source = "elepower_nuclear:brine_source", + liquid_viscosity = 7, + post_effect_color = {a = 200, r = 215, g = 221, b = 187}, + groups = {brine = 3, saline = 1, liquid = 3, puts_out_fire = 1, + not_in_creative_inventory = 1, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + if minetest.get_modpath("bucket") ~= nil then bucket.register_liquid("elepower_nuclear:coolant_source", "elepower_nuclear:hot_coolant_flowing", "elepower_nuclear:bucket_coolant", "#2497ff", "Coolant (Cold)") @@ -238,4 +288,16 @@ if minetest.get_modpath("bucket") ~= nil then bucket.register_liquid("elepower_nuclear:heavy_water_source", "elepower_nuclear:heavy_water_flowing", "elepower_nuclear:bucket_heavy_water", "#0d4579", "Heavy Water Bucket") + + bucket.register_liquid("elepower_nuclear:brine_source", "elepower_nuclear:brine_flowing", + "elepower_nuclear:bucket_heavy_water", "#d7ddbb", "Brine Bucket") + + fluid_tanks.register_tank(":elepower_dynamics:portable_tank", { + description = "Portable Tank", + capacity = 8000, + accepts = true, + tiles = { + "elepower_tank_base.png", "elepower_tank_side.png", "elepower_tank_base.png^elepower_power_port.png", + } + }) end diff --git a/elepower_nuclear/machines/fission_reactor.lua b/elepower_nuclear/machines/fission_reactor.lua index 5e81d4c..2752294 100644 --- a/elepower_nuclear/machines/fission_reactor.lua +++ b/elepower_nuclear/machines/fission_reactor.lua @@ -301,7 +301,6 @@ local function reactor_core_timer(pos) if heat >= 100 then -- TODO: Melt - print("It ded.") minetest.set_node(pos, {name = "air"}) return false end diff --git a/elepower_nuclear/machines/fusion_reactor.lua b/elepower_nuclear/machines/fusion_reactor.lua index 2e4301f..8f757f5 100644 --- a/elepower_nuclear/machines/fusion_reactor.lua +++ b/elepower_nuclear/machines/fusion_reactor.lua @@ -90,6 +90,10 @@ local function determine_structure(pos, player) if success and player then minetest.chat_send_player(player, "Multi-node structure complete!") + local t = minetest.get_node_timer(pos) + if not t:is_started() then + t:start(1.0) + end end return success, inputs, outputs, power @@ -301,7 +305,7 @@ local function power_timer(pos) local ctrl, ctrl_meta = get_port_controller(pos) if not ctrl then - meta:set_string("No controller found.") + meta:set_string("infotext", "No controller found.") return false end diff --git a/elepower_nuclear/machines/heat_exchanger.lua b/elepower_nuclear/machines/heat_exchanger.lua index 0ffbff4..77ed3c4 100644 --- a/elepower_nuclear/machines/heat_exchanger.lua +++ b/elepower_nuclear/machines/heat_exchanger.lua @@ -45,7 +45,7 @@ local function heat_exchanger_timer(pos) local damnt = heat_recipes[heat.fluid] local water_convert = math.min(water.amount, 1000 * damnt.factor) - if cold.fluid ~= damnt.fluid and cold.fluid ~= "" then + if cold.fluid ~= damnt.out and cold.fluid ~= "" then break end @@ -110,7 +110,6 @@ ele.register_machine("elepower_nuclear:heat_exchanger", { }, steam = { capacity = 16000, - accepts = {"elepower_dynamics:steam"}, drainable = true, }, }, diff --git a/elepower_nuclear/machines/init.lua b/elepower_nuclear/machines/init.lua index 4e599dd..9657d0b 100644 --- a/elepower_nuclear/machines/init.lua +++ b/elepower_nuclear/machines/init.lua @@ -5,4 +5,5 @@ dofile(mp.."enrichment_plant.lua") dofile(mp.."fission_reactor.lua") dofile(mp.."fusion_reactor.lua") dofile(mp.."heat_exchanger.lua") +dofile(mp.."solar_neutron_activator.lua") diff --git a/elepower_nuclear/machines/solar_neutron_activator.lua b/elepower_nuclear/machines/solar_neutron_activator.lua new file mode 100644 index 0000000..d8d3d90 --- /dev/null +++ b/elepower_nuclear/machines/solar_neutron_activator.lua @@ -0,0 +1,166 @@ + +local recipes = { + { + input = "elepower_dynamics:lithium_gas 100", + output = "elepower_nuclear:tritium 20", + time = 5, + } +} + +local function get_recipe(input) + local recipe = {time = 0} + for _,r in pairs(recipes) do + local istack = ItemStack(r.input) + if input.amount >= istack:get_count() and input.fluid == istack:get_name() then + recipe = { + input = istack, + output = ItemStack(r.output), + time = r.time, + } + break + end + end + return recipe +end + +local function get_formspec(inp, outp, solar, percent) + local bar = "image[3.5,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]" + + if percent ~= nil then + bar = "image[3.5,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. + (percent)..":gui_furnace_arrow_fg.png^[transformR270]" + end + + return "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + ele.formspec.fluid_bar(0, 0, inp).. + bar.. + "label[3.4,0.5;Light: "..solar.."%]".. + ele.formspec.fluid_bar(7, 0, outp).. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) +end + +local function on_timer (pos, elapsed) + local meta = minetest.get_meta(pos) + local refresh = true + + local inp = fluid_lib.get_buffer_data(pos, "input") + local outp = fluid_lib.get_buffer_data(pos, "output") + + local recipe = get_recipe(inp) + local status = "Idle" + + local time = meta:get_int("src_time") + local time_res = meta:get_int("src_time_max") + local solarp = 0 + + while true do + if recipe.time == 0 then + refresh = false + break + end + + time_res = recipe.time + local result_t = recipe.output:get_count() + local input_t = recipe.input:get_count() + + if result_t + outp.amount > outp.capacity or (outp.fluid ~= recipe.output:get_name() and outp.fluid ~= "") then + status = "Output full!" + refresh = false + break + end + + local pos1 = vector.add(pos, {x=0,y=1,z=0}) + local light = minetest.get_node_light(pos1, nil) or 0 + local time_of_day = minetest.get_timeofday() + + solarp = light / (minetest.LIGHT_MAX + 1) + + if light >= 12 and time_of_day >= 0.24 and time_of_day <= 0.76 then + status = "Active" + + time = time + 1 + outp.amount = outp.amount + result_t * solarp + inp.amount = inp.amount - input_t * solarp + outp.fluid = recipe.output:get_name() + else + status = "Not enough light!" + end + + if time >= time_res then + time = 0 + end + + break + end + + if inp.amount == 0 then + inp.fluid = "" + end + + meta:set_string("input_fluid", inp.fluid) + meta:set_int("input_fluid_storage", inp.amount) + + meta:set_string("output_fluid", outp.fluid) + meta:set_int("output_fluid_storage", outp.amount) + + meta:set_int("src_time", time) + meta:set_int("src_time_max", time_res) + + local pcrt = 0 + if time_res > 0 then + pcrt = math.floor(100 * time / time_res) + end + + meta:set_string("infotext", ("Solar Neutron Activator %s"):format(status)) + meta:set_string("formspec", get_formspec(inp, outp, solarp * 100, pcrt)) + return refresh +end + +ele.register_base_device("elepower_nuclear:solar_neutron_activator", { + description = "Solar Neutron Activator", + drawtype = "mesh", + mesh = "elenuclear_solar_activator.obj", + tiles = {"elenuclear_solar_activator.png"}, + paramtype2 = "facedir", + fluid_buffers = { + input = { + capacity = 8000, + accepts = {"elepower_dynamics:lithium_gas"}, + drainable = false, + }, + output = { + capacity = 8000, + drainable = true, + }, + }, + groups = {fluid_container = 1, oddly_breakable_by_hand = 1}, + collision_box = { + type = "fixed", + fixed = { + {-0.3750, 0.5000, -0.3750, 0.3750, 1.188, 0.3750}, + {-0.5000, -0.5000, -0.5000, 0.5000, 0.5000, 0.5000} + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.3750, 0.5000, -0.3750, 0.3750, 1.188, 0.3750}, + {-0.5000, -0.5000, -0.5000, 0.5000, 0.5000, 0.5000} + } + }, + on_timer = on_timer, + on_punch = function (pos, node, puncher, pointed_thing) + minetest.get_node_timer(pos):start(1.0) + minetest.node_punch(pos, node, puncher, pointed_thing) + end, + on_construct = function (pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", get_formspec(nil, nil, 0)) + end +}) diff --git a/elepower_nuclear/models/elenuclear_solar_activator.obj b/elepower_nuclear/models/elenuclear_solar_activator.obj new file mode 100644 index 0000000..1d86db8 --- /dev/null +++ b/elepower_nuclear/models/elenuclear_solar_activator.obj @@ -0,0 +1,409 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +o Cube_Cube.001 +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +v -0.396182 0.500000 0.396182 +v -0.396182 0.500000 -0.396182 +v 0.396182 0.500000 -0.396182 +v 0.396182 0.500000 0.396182 +v -0.396182 0.447856 0.396182 +v -0.396182 0.447856 -0.396182 +v 0.396182 0.447856 -0.396182 +v 0.396182 0.447856 0.396182 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.119517 0.500000 0.500000 +v -0.119517 0.500000 0.500000 +v 0.094701 0.500000 0.396182 +v -0.094701 0.500000 0.396182 +v 0.136858 1.073909 0.462949 +v -0.136858 1.073909 0.462949 +v 0.094701 1.048212 0.396182 +v -0.094701 1.048212 0.396182 +v 0.136858 1.108070 0.462949 +v -0.136858 1.108070 0.462949 +v 0.094701 1.078044 0.396182 +v -0.094701 1.078044 0.396182 +v 0.094701 1.048212 -0.395736 +v -0.094701 1.048212 -0.395736 +v 0.094701 1.078044 -0.395736 +v -0.094701 1.078044 -0.395736 +v 0.494701 1.130281 0.396182 +v 0.494701 1.100448 0.396182 +v 0.494701 1.130281 -0.395736 +v 0.494701 1.100448 -0.395736 +v -0.494701 1.130281 0.396182 +v -0.494701 1.100448 0.396182 +v -0.494701 1.130281 -0.395736 +v -0.494701 1.100448 -0.395736 +v 0.094701 1.048212 0.136754 +v 0.094701 1.048212 -0.122674 +v 0.094701 1.078044 -0.122674 +v 0.094701 1.078044 0.136754 +v -0.094701 1.048212 0.136754 +v -0.094701 1.048212 -0.122674 +v -0.094701 1.078044 0.136754 +v -0.094701 1.078044 -0.122674 +v 0.494701 1.100448 0.136754 +v 0.494701 1.100448 -0.122674 +v 0.494701 1.130281 -0.122674 +v 0.494701 1.130281 0.136754 +v -0.494701 1.100448 0.136754 +v -0.494701 1.100448 -0.122674 +v -0.494701 1.130281 0.136754 +v -0.494701 1.130281 -0.122674 +v 0.294701 1.067915 0.396182 +v 0.294701 1.097747 0.396182 +v 0.294701 1.097747 -0.395736 +v 0.294701 1.067915 -0.395736 +v 0.294701 1.067915 0.136754 +v 0.294701 1.067915 -0.122674 +v 0.294701 1.097747 -0.122674 +v 0.294701 1.097747 0.136754 +v -0.294701 1.067915 -0.395736 +v -0.294701 1.097747 -0.395736 +v -0.294701 1.097747 0.396182 +v -0.294701 1.067915 0.396182 +v -0.294701 1.067915 -0.122674 +v -0.294701 1.067915 0.136754 +v -0.294701 1.097747 0.136754 +v -0.294701 1.097747 -0.122674 +vt 0.941349 0.666554 +vt 0.629356 0.333447 +vt 0.941349 0.333278 +vt 0.000000 0.333278 +vt 0.314706 0.000000 +vt 0.314706 0.333278 +vt 0.311993 1.000000 +vt 0.000000 0.666556 +vt 0.311993 0.666725 +vt 0.314696 0.333278 +vt 0.000000 0.666556 +vt 0.000000 0.333278 +vt 0.314706 0.333278 +vt 0.629412 0.000000 +vt 0.629412 0.333278 +vt 0.991120 0.595088 +vt 0.974710 0.333278 +vt 0.991120 0.333287 +vt 0.314706 0.333278 +vt 0.347372 0.631956 +vt 0.314706 0.666556 +vt 0.596690 0.631956 +vt 0.629356 0.666556 +vt 0.629356 0.333278 +vt 0.347372 0.367878 +vt 0.878674 0.930799 +vt 0.629356 0.666722 +vt 0.878673 0.666722 +vt 0.991783 0.261801 +vt 0.975373 0.000009 +vt 0.991783 0.000000 +vt 0.958963 0.000000 +vt 0.975373 0.264077 +vt 0.958963 0.264077 +vt 0.964814 0.666722 +vt 0.981223 0.930799 +vt 0.964814 0.930799 +vt 0.314696 0.333278 +vt 0.314696 0.354724 +vt 0.314696 0.346449 +vt 0.974710 0.536286 +vt 0.951109 0.351886 +vt 0.974102 0.344645 +vt 0.629356 0.539750 +vt 0.314706 0.376966 +vt 0.314706 0.349901 +vt 0.314706 0.360344 +vt 0.596690 0.367878 +vt 0.629356 0.460085 +vt 0.596690 0.468355 +vt 0.958355 0.191642 +vt 0.935894 0.194327 +vt 0.935362 0.184401 +vt 0.884131 0.869471 +vt 0.964814 0.678107 +vt 0.959356 0.869471 +vt 0.958963 0.000000 +vt 0.925602 0.001988 +vt 0.563917 0.849263 +vt 0.623523 0.666556 +vt 0.623523 0.849263 +vt 0.899775 0.210485 +vt 0.878589 0.133311 +vt 0.899775 0.119261 +vt 0.586587 0.916762 +vt 0.579280 0.850551 +vt 0.588589 0.849263 +vt 0.951640 0.341959 +vt 0.974710 0.333278 +vt 0.878674 0.678107 +vt 0.964814 0.666722 +vt 0.899775 0.133311 +vt 0.909163 0.196435 +vt 0.899775 0.196435 +vt 0.400630 0.862991 +vt 0.314696 0.799868 +vt 0.400630 0.799867 +vt 0.915364 0.066656 +vt 0.916214 0.000000 +vt 0.925602 0.000000 +vt 0.715331 0.196435 +vt 0.629412 0.133311 +vt 0.715331 0.133311 +vt 0.990611 0.838155 +vt 0.981223 0.928380 +vt 0.981223 0.838160 +vt 0.878705 0.263090 +vt 0.797269 0.329746 +vt 0.797076 0.263090 +vt 0.915364 0.263090 +vt 0.916214 0.329746 +vt 0.905975 0.263090 +vt 0.314696 0.733212 +vt 0.400630 0.666556 +vt 0.400630 0.733212 +vt 0.990611 0.756943 +vt 1.000000 0.666727 +vt 1.000000 0.756948 +vt 0.629528 0.066656 +vt 0.715640 0.000000 +vt 0.715447 0.066656 +vt 0.567935 0.916661 +vt 0.573260 0.850238 +vt 0.577278 0.917635 +vt 0.563917 0.929647 +vt 0.482273 0.996302 +vt 0.482273 0.929647 +vt 0.400630 0.929647 +vt 0.314696 0.996302 +vt 0.314696 0.929647 +vt 0.400630 0.996302 +vt 0.797076 0.066656 +vt 0.878898 0.000000 +vt 0.878705 0.066656 +vt 0.797269 0.000000 +vt 0.990612 0.928375 +vt 1.000000 0.842664 +vt 1.000000 0.928380 +vt 0.990611 0.842659 +vt 0.482273 0.733212 +vt 0.563917 0.666556 +vt 0.563917 0.733212 +vt 0.482273 0.666556 +vt 0.715447 0.263090 +vt 0.629721 0.329746 +vt 0.629528 0.263090 +vt 0.715640 0.329746 +vt 0.990611 0.666722 +vt 0.981223 0.752443 +vt 0.981223 0.666727 +vt 0.990611 0.752438 +vt 0.878589 0.196435 +vt 0.796960 0.133311 +vt 0.796960 0.196435 +vt 0.563917 0.862991 +vt 0.482273 0.799867 +vt 0.563917 0.799867 +vt 0.482273 0.862991 +vt 0.629412 0.196435 +vt 0.588589 0.983706 +vt 0.577278 0.918049 +vt 0.314696 0.862991 +vt 0.567935 0.983639 +vt 0.577278 0.984614 +vt 0.909163 0.133311 +vt 0.905975 0.066656 +vt 0.629356 0.666722 +vt 0.000000 0.000000 +vt 0.000000 0.999832 +vt 0.314696 0.666556 +vt 0.314706 0.000000 +vt 0.974710 0.595079 +vt 0.629356 0.930800 +vt 0.975373 0.261809 +vt 0.975373 0.000000 +vt 0.981223 0.666722 +vt 0.314696 0.367895 +vt 0.941349 0.534299 +vt 0.596690 0.531479 +vt 0.958963 0.203008 +vt 0.563917 0.666556 +vt 0.878674 0.666722 +vt 0.990611 0.928375 +vt 0.878898 0.329746 +vt 0.925602 0.329746 +vt 0.314696 0.666556 +vt 0.990611 0.666722 +vt 0.629721 0.000000 +vt 0.563917 0.849263 +vt 0.563917 0.996302 +vt 0.579280 0.984994 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.8542 -0.0592 -0.5166 +vn -0.8456 0.0000 -0.5339 +vn 0.0000 0.0644 0.9979 +vn -0.9726 0.0000 -0.2325 +vn 0.0000 0.9120 -0.4101 +vn 0.8456 0.0000 -0.5339 +vn -0.1606 0.9870 0.0000 +vn 0.1606 -0.9870 0.0000 +vn 0.1606 0.9870 0.0000 +vn -0.1606 -0.9870 0.0000 +vn -0.0980 0.9952 0.0000 +vn 0.0980 -0.9952 0.0000 +vn 0.0980 0.9952 0.0000 +vn -0.0980 -0.9952 0.0000 +vn 0.9726 0.0000 -0.2325 +vn -0.8542 -0.0592 -0.5166 +s off +f 16/1/1 2/2/1 1/3/1 +f 3/4/2 5/5/2 2/6/2 +f 6/7/3 4/8/3 5/9/3 +f 15/10/4 1/11/4 4/12/4 +f 5/13/5 1/14/5 2/15/5 +f 9/16/1 14/17/1 10/18/1 +f 3/19/6 9/20/6 6/21/6 +f 6/21/6 10/22/6 15/23/6 +f 16/24/6 8/25/6 3/19/6 +f 12/26/6 14/27/6 13/28/6 +f 7/29/3 12/30/3 8/31/3 +f 10/32/2 11/33/2 7/34/2 +f 8/35/4 13/36/4 9/37/4 +f 10/38/4 20/39/4 19/40/4 +f 17/41/7 23/42/7 21/43/7 +f 10/22/6 17/44/6 15/23/6 +f 16/45/2 17/46/2 18/47/2 +f 7/48/6 18/49/6 20/50/6 +f 22/51/8 28/52/8 24/53/8 +f 17/54/9 22/55/9 18/56/9 +f 18/57/10 24/53/10 20/58/10 +f 20/59/2 23/60/2 19/61/2 +f 25/62/11 28/63/11 26/64/11 +f 58/65/4 34/66/4 33/67/4 +f 21/43/12 27/68/12 25/69/12 +f 21/70/4 26/71/4 22/55/4 +f 30/72/2 31/73/2 29/74/2 +f 46/75/5 29/76/5 42/77/5 +f 66/78/2 40/79/2 39/80/2 +f 43/81/6 32/82/6 48/83/6 +f 50/84/3 35/85/3 51/86/3 +f 58/87/13 52/88/13 64/89/13 +f 59/90/2 36/91/2 60/92/2 +f 60/93/14 50/94/14 62/95/14 +f 56/96/1 40/97/1 54/98/1 +f 66/99/15 56/100/15 72/101/15 +f 67/102/4 38/103/4 68/104/4 +f 68/105/16 53/106/16 70/107/16 +f 69/108/16 40/109/16 65/110/16 +f 70/107/16 54/111/16 69/108/16 +f 71/112/15 37/113/15 67/114/15 +f 72/101/15 55/115/15 71/112/15 +f 37/116/1 53/117/1 38/118/1 +f 55/119/1 54/98/1 53/117/1 +f 61/120/14 34/121/14 57/122/14 +f 62/95/14 49/123/14 61/120/14 +f 63/124/13 35/125/13 59/126/13 +f 64/89/13 51/127/13 63/124/13 +f 34/128/3 52/129/3 33/130/3 +f 49/131/3 51/86/3 52/129/3 +f 27/132/6 47/133/6 28/63/6 +f 44/134/6 48/83/6 47/133/6 +f 24/135/5 41/136/5 23/137/5 +f 45/138/5 42/77/5 41/136/5 +f 44/134/17 63/124/17 43/81/17 +f 43/81/17 59/126/17 31/139/17 +f 42/77/18 61/120/18 41/136/18 +f 41/136/18 57/122/18 23/137/18 +f 29/76/18 62/95/18 42/77/18 +f 31/73/2 60/92/2 29/74/2 +f 27/132/17 64/89/17 44/134/17 +f 27/140/4 57/141/4 58/65/4 +f 48/83/19 71/112/19 47/133/19 +f 47/133/19 67/114/19 28/63/19 +f 45/138/20 69/108/20 46/75/20 +f 46/75/20 65/110/20 30/142/20 +f 24/135/20 70/107/20 45/138/20 +f 28/143/4 68/104/4 24/144/4 +f 32/82/19 72/101/19 48/83/19 +f 32/145/2 65/146/2 66/78/2 +f 16/1/1 3/147/1 2/2/1 +f 3/4/2 6/148/2 5/5/2 +f 6/7/3 15/149/3 4/8/3 +f 15/10/4 16/150/4 1/11/4 +f 5/13/5 4/151/5 1/14/5 +f 9/16/1 13/152/1 14/17/1 +f 3/19/6 8/25/6 9/20/6 +f 6/21/6 9/20/6 10/22/6 +f 16/24/6 7/48/6 8/25/6 +f 12/26/6 11/153/6 14/27/6 +f 7/29/3 11/154/3 12/30/3 +f 10/32/2 14/155/2 11/33/2 +f 8/35/4 12/156/4 13/36/4 +f 10/38/4 7/157/4 20/39/4 +f 17/41/21 19/158/21 23/42/21 +f 10/22/6 19/159/6 17/44/6 +f 16/45/4 15/10/4 17/46/4 +f 7/48/6 16/24/6 18/49/6 +f 22/51/8 26/160/8 28/52/8 +f 17/54/9 21/70/9 22/55/9 +f 18/57/22 22/51/22 24/53/22 +f 20/59/2 24/161/2 23/60/2 +f 25/62/11 27/132/11 28/63/11 +f 58/65/4 57/141/4 34/66/4 +f 21/43/12 23/42/12 27/68/12 +f 21/70/4 25/162/4 26/71/4 +f 30/72/2 32/145/2 31/73/2 +f 46/75/5 30/142/5 29/76/5 +f 66/78/2 65/146/2 40/79/2 +f 43/81/6 31/139/6 32/82/6 +f 50/84/3 36/163/3 35/85/3 +f 58/87/13 33/164/13 52/88/13 +f 59/90/2 35/165/2 36/91/2 +f 60/93/14 36/166/14 50/94/14 +f 56/96/1 39/167/1 40/97/1 +f 66/99/15 39/168/15 56/100/15 +f 67/102/4 37/169/4 38/103/4 +f 68/105/16 38/170/16 53/106/16 +f 69/108/16 54/111/16 40/109/16 +f 70/107/16 53/106/16 54/111/16 +f 71/112/15 55/115/15 37/113/15 +f 72/101/15 56/100/15 55/115/15 +f 37/116/1 55/119/1 53/117/1 +f 55/119/1 56/96/1 54/98/1 +f 61/120/14 49/123/14 34/121/14 +f 62/95/14 50/94/14 49/123/14 +f 63/124/13 51/127/13 35/125/13 +f 64/89/13 52/88/13 51/127/13 +f 34/128/3 49/131/3 52/129/3 +f 49/131/3 50/84/3 51/86/3 +f 27/132/6 44/134/6 47/133/6 +f 44/134/6 43/81/6 48/83/6 +f 24/135/5 45/138/5 41/136/5 +f 45/138/5 46/75/5 42/77/5 +f 44/134/17 64/89/17 63/124/17 +f 43/81/17 63/124/17 59/126/17 +f 42/77/18 62/95/18 61/120/18 +f 41/136/18 61/120/18 57/122/18 +f 29/76/18 60/93/18 62/95/18 +f 31/73/2 59/90/2 60/92/2 +f 27/132/17 58/87/17 64/89/17 +f 27/140/4 23/171/4 57/141/4 +f 48/83/19 72/101/19 71/112/19 +f 47/133/19 71/112/19 67/114/19 +f 45/138/20 70/107/20 69/108/20 +f 46/75/20 69/108/20 65/110/20 +f 24/135/20 68/105/20 70/107/20 +f 28/143/4 67/102/4 68/104/4 +f 32/82/19 66/99/19 72/101/19 +f 32/145/2 30/72/2 65/146/2 diff --git a/elepower_nuclear/textures/elenuclear_brine.png b/elepower_nuclear/textures/elenuclear_brine.png new file mode 100644 index 0000000..5c6b89e Binary files /dev/null and b/elepower_nuclear/textures/elenuclear_brine.png differ diff --git a/elepower_nuclear/textures/elenuclear_solar_activator.png b/elepower_nuclear/textures/elenuclear_solar_activator.png new file mode 100644 index 0000000..2d0df2d Binary files /dev/null and b/elepower_nuclear/textures/elenuclear_solar_activator.png differ diff --git a/elepower_papi/machine.lua b/elepower_papi/machine.lua index 26ff5a9..f495e38 100644 --- a/elepower_papi/machine.lua +++ b/elepower_papi/machine.lua @@ -395,7 +395,7 @@ function ele.register_base_device(nodename, nodedef) -- Mesecons support if mc then nodedef["mesecons"] = mesecons_def - if nodedef.groups["state_machine"] ~= 1 then + if nodedef.groups["state_machine"] ~= 0 then nodedef.states["mesecons"] = true end end @@ -409,6 +409,7 @@ function ele.register_base_device(nodename, nodedef) if nodedef.states then if fields["cyclestate"] then + print("hmm") switch_state(pos, nodedef.states) end end diff --git a/elepower_solar/depends.txt b/elepower_solar/depends.txt index 327f62b..fd2c5ae 100644 --- a/elepower_solar/depends.txt +++ b/elepower_solar/depends.txt @@ -1,2 +1,3 @@ elepower_papi elepower_dynamics +3d_armor? diff --git a/elepower_solar/helmet.lua b/elepower_solar/helmet.lua new file mode 100644 index 0000000..aa46c56 --- /dev/null +++ b/elepower_solar/helmet.lua @@ -0,0 +1,12 @@ + +-- Solar helmet +armor:register_armor("elepower_solar:helmet", { + description = "Solar Helmet", + inventory_image = "elepower_armor_inv_helmet_solar.png", + texture = "elepower_armor_helmet_solar.png", + preview = "elepower_armor_helmet_solar_preview.png", + groups = {armor_head=1, armor_heal=0, armor_use=2000, + physics_speed=0.01, physics_gravity=0.01}, + armor_groups = {fleshy=9}, + damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1}, +}) diff --git a/elepower_solar/init.lua b/elepower_solar/init.lua index bf01b21..13a69b5 100644 --- a/elepower_solar/init.lua +++ b/elepower_solar/init.lua @@ -9,3 +9,7 @@ elesolar.modpath = modpath dofile(modpath.."/generator.lua") dofile(modpath.."/register.lua") dofile(modpath.."/crafting.lua") + +if minetest.get_modpath("3d_armor") ~= nil then + dofile(modpath.."/helmet.lua") +end diff --git a/elepower_solar/mod.conf b/elepower_solar/mod.conf index b94e21b..a445327 100644 --- a/elepower_solar/mod.conf +++ b/elepower_solar/mod.conf @@ -1,3 +1,4 @@ name = elepower_solar description = Harvest the sun! depends = elepower_papi,elepower_dynamics +optional_depends = 3d_armor diff --git a/elepower_solar/textures/elepower_armor_helmet_solar.png b/elepower_solar/textures/elepower_armor_helmet_solar.png new file mode 100644 index 0000000..4f562f8 Binary files /dev/null and b/elepower_solar/textures/elepower_armor_helmet_solar.png differ diff --git a/elepower_solar/textures/elepower_armor_helmet_solar_preview.png b/elepower_solar/textures/elepower_armor_helmet_solar_preview.png new file mode 100644 index 0000000..9228e18 Binary files /dev/null and b/elepower_solar/textures/elepower_armor_helmet_solar_preview.png differ diff --git a/elepower_solar/textures/elepower_armor_inv_helmet_solar.png b/elepower_solar/textures/elepower_armor_inv_helmet_solar.png new file mode 100644 index 0000000..66ab91e Binary files /dev/null and b/elepower_solar/textures/elepower_armor_inv_helmet_solar.png differ diff --git a/elepower_tools/armor.lua b/elepower_tools/armor.lua index a9fe021..027ca6a 100644 --- a/elepower_tools/armor.lua +++ b/elepower_tools/armor.lua @@ -124,3 +124,4 @@ for k, v in pairs(materials) do }, }) end +