diff --git a/equivalent_exchange/equivalent_exchange/alchemical_chest.lua b/equivalent_exchange/equivalent_exchange/alchemical_chest.lua new file mode 100644 index 0000000..c62bae4 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange/alchemical_chest.lua @@ -0,0 +1,74 @@ +-- chest = { +-- talisman_check = function(pos) +-- local meta = minetest.get_meta(pos) +-- local inventory = meta:get_inventory() +-- local size = inventory:get_size("container") +-- for i = 1, size do +-- local stack = inventory:get_stack("from", i) + +-- end +-- } + +-- Registering Nodes -- + +minetest.register_node("equivalent_exchange:alchemical_chest", { + description = "Alchemical Chest", + tiles = { + "equivalent_exchange_alchemical_chest_top.png", + "equivalent_exchange_alchemical_chest_bottom.png", + "equivalent_exchange_alchemical_chest_side.png", + "equivalent_exchange_alchemical_chest_side.png", + "equivalent_exchange_alchemical_chest_side.png", + "equivalent_exchange_alchemical_chest_front.png", + }, + paramtype2 = "facedir", + groups = {cracky = 2}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[13,13]".. + "label[0,0;Alchemical Chest]".. + "list[current_name;container;0,0.5;13,8;]".. + "list[current_player;main;2.5,9;8,4;]") + meta:set_string("infotext", "Alchemical Chest") + local inv = meta:get_inventory() + inv:set_size("container", 13*8) + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + -- on_metadata_inventory_put = function(pos, listname, index, stack, player) + -- chest.talisman_check(pos) + -- end, + -- on_metadata_inventory_take = function(pos, listname, index, stack, player) + -- chest.talisman_check(pos) + -- end, + -- on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + -- chest.talisman_check(pos) + -- end, + emc = 8987 +}) + +-- Registering Craft Items -- + +minetest.register_craftitem("equivalent_exchange:talisman_of_repair", { + description = "Talisman of Repair", + inventory_image = "equivalent_exchange_talisman_of_repair.png", + stack_max = 1, + emc = 10000, +}) + +-- Registering Crafts -- + +minetest.register_craft({ + output = "equivalent_exchange:alchemical_chest", + recipe = { + {"equivalent_exchange:low_covalence", "equivalent_exchange:medium_covalence", "equivalent_exchange:high_covalence"}, + {"default:stone", "default:diamond", "default:stone"}, + {"default:steel_ingot", "default:chest", "default:steel_ingot"} + } +}) \ No newline at end of file diff --git a/equivalent_exchange/equivalent_exchange/condenser.lua b/equivalent_exchange/equivalent_exchange/condenser.lua new file mode 100644 index 0000000..7b07725 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange/condenser.lua @@ -0,0 +1,116 @@ +condenser = { + convert = function(pos) + local meta = minetest.get_meta(pos) + local inventory = meta:get_inventory() + local target = inventory:get_stack("to", 1) + local emc = meta:get_int("emc") + if target:is_empty() then + meta:set_string("formspec", condenser.get_formspec(emc, 0)) + return + end + if not inventory:room_for_item("from", target:get_name()) then return end + target = target:to_table() + local target_emc = condenser.get_emc(target.name) + if not target_emc then return end + local emc = meta:get_int("emc") + local size = inventory:get_size("from") + for i=1, size do + local stack = inventory:get_stack("from", i) + if not stack:is_empty() then + stack = stack:to_table() + local local_emc = condenser.get_emc(stack.name) + if local_emc ~= nil then + emc = emc + local_emc * stack.count + inventory:set_stack("from", i, {}) + end + --print(dump(stack)) + end + end + local timesOver = math.floor(emc / target_emc) + emc = emc - timesOver * target_emc + meta:set_int("emc", emc) + inventory:add_item("from", {name=target.name, count = timesOver}) + meta:set_string("formspec", condenser.get_formspec(emc, target_emc)) + end, + + get_emc = function(name) + return minetest.registered_items[name].emc + end, + + get_formspec = function(emc, target) + return "size[13,13]".. + "label[0,0;Energy Condenser]".. + "list[current_name;to;0,0.5;1,1;]".. + "list[current_name;from;0,1.5;13,7;]".. + "list[current_player;main;2.5,9;8,4;]".. + "image[5,0;1,1;default_furnace_fire_bg.png^[lowpart:".. + (emc/target*100)..":default_furnace_fire_fg.png]".. + "label[10.5,0.5;Current EMC: ".. emc .."\nNeeded EMC: ".. (target - emc).."]" + end, +} +-- Registering ABMs -- + +minetest.register_abm({ + nodenames = {"equivalent_exchange:condenser"}, + interval = 1.5, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + condenser.convert(pos) + end, +}) +-- Registering Nodes -- + +minetest.register_node("equivalent_exchange:condenser", { + description = "Energy Condenser", + tiles = { + "equivalent_exchange_condenser_top.png", + "equivalent_exchange_condenser_bottom.png", + "equivalent_exchange_condenser_side.png", + "equivalent_exchange_condenser_side.png", + "equivalent_exchange_condenser_side.png", + "equivalent_exchange_condenser_side.png" + }, + paramtype2 = "facedir", + groups = {cracky = 2}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", condenser.get_formspec(0, 0)) + meta:set_string("infotext", "Energy Condenser") + meta:set_string("emc_storable", "true") + local inv = meta:get_inventory() + inv:set_size("to", 1) + inv:set_size("from", 13*7) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + if not inv:is_empty("to") then + return false + elseif not inv:is_empty("from") then + return false + end + return true + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + condenser.convert(pos) + return stack:get_count() + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + condenser.convert(pos) + return count + end, + emc = 42,011 +}) + +--Registering Crafts-- + +minetest.register_craft({ + output = "equivalent_exchange:condenser", + recipe = { + {"default:obsidian", "default:mese", "default:obsidian"}, + {"default:mese", "equivalent_exchange:alchemical_chest", "default:mese"}, + {"default:obsidian", "default:mese", "default:obsidian"} + } +}) \ No newline at end of file diff --git a/equivalent_exchange/equivalent_exchange/depends.txt b/equivalent_exchange/equivalent_exchange/depends.txt new file mode 100644 index 0000000..331d858 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/equivalent_exchange/equivalent_exchange/emcs.lua b/equivalent_exchange/equivalent_exchange/emcs.lua new file mode 100644 index 0000000..4a0d685 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange/emcs.lua @@ -0,0 +1,97 @@ +local emcs = { + node = { + ["default:"] = { + stone = 2, + cobble = 1, + desert_stone = 1, + stonebrick = 1, + desert_stonebrick = 1, + dirt_with_grass = 50, + dirt_with_snow = 50, + dirt = 1, + sand=1, + desert_sand = 1, + gravel = 4, + sandstone = 4, + sandstonebrick = 4, + clay = 16, + brick = 16, + tree = 32, + jungletree = 32, + junglewood = 8, + cactus = 8, + papyrus = 32, + bookshelf = 336, + glass = 1, + fence_wood = 12, + rail = 96, + ladder = 14, + wood = 8, + torch = 9, + sign_wall = 52, + chest = 64, + chest_locked = 320, + furnace = 8, + mossycobble = 1, + mese=75978, + obsidian = 64, + } + }, + craftitem = { + ["default:"] = { + stick = 2, + paper = 96, + book = 288, + + -- Old Value: 128 + -- Precise Value: 57 + coal_lump = 55, + + -- Old Value: 8442 + -- Precise Value: 420 (including blocks) + mese_crystal = 425, + + -- Old Value: 8192 + -- Precise Value: 848 + diamond = 850, + clay_lump = 16, + + -- Old Value: 256 + -- Precise Value (of lump): 61 + steel_ingot = 90, + + -- Old Value: 85 + -- Precise Value (of lump): 146 + copper_ingot = 225, + + --Old Value: 255 + bronze_ingot = 90 + 225, + + -- Old Value: 2048 + -- Precise Value (of lump): 442 + gold_ingot = 675, + + -- Old Value: 938 + -- Precise Value: 47 + mese_crystal_fragment = 25, + clay_brick = 16, + } + } +-- block = { +-- ["default:"] = { +-- } +-- } +} + +for type, emcset in pairs(emcs) do + for prefix, subs in pairs(emcset) do + for name, emc in pairs(subs) do + local ornode = minetest.registered_items[prefix..name] + local node = {emc=emc} + for tagname, tagvalue in pairs(ornode) do + node[tagname] = tagvalue + end + minetest["register_"..type](":"..prefix..name, node) + end + end +end \ No newline at end of file diff --git a/equivalent_exchange/equivalent_exchange/init.lua b/equivalent_exchange/equivalent_exchange/init.lua new file mode 100644 index 0000000..1a8a2a2 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange/init.lua @@ -0,0 +1,7 @@ +dofile(minetest.get_modpath("equivalent_exchange").."/emcs.lua") +dofile(minetest.get_modpath("equivalent_exchange").."/alchemical_chest.lua") +dofile(minetest.get_modpath("equivalent_exchange").."/condenser.lua") +dofile(minetest.get_modpath("equivalent_exchange").."/philosophers_stone.lua") +dofile(minetest.get_modpath("equivalent_exchange").."/normal_items.lua") + +print("[equivalent_exchange] Mod loaded!") \ No newline at end of file diff --git a/equivalent_exchange/equivalent_exchange/normal_items.lua b/equivalent_exchange/equivalent_exchange/normal_items.lua new file mode 100644 index 0000000..7bfbacf --- /dev/null +++ b/equivalent_exchange/equivalent_exchange/normal_items.lua @@ -0,0 +1,63 @@ +-- Registering Craft Items -- + +minetest.register_craftitem("equivalent_exchange:low_covalence", { + description = "Low Covalence Dust", + inventory_image = "equivalent_exchange_low_covalence.png", + emc = 1, +}) + +minetest.register_craftitem("equivalent_exchange:medium_covalence", { + description = "Medium Covalence Dust", + inventory_image = "equivalent_exchange_medium_covalence.png", + emc = 8, +}) + +minetest.register_craftitem("equivalent_exchange:high_covalence", { + description = "High Covalence Dust", + inventory_image = "equivalent_exchange_high_covalence.png", + emc = 208, +}) + +-- Registering Crafts -- + +minetest.register_craft({ + type = "shapeless", + output = "equivalent_exchange:low_covalence 40", + recipe = {"default:cobble", "default:cobble", "default:cobble", + "default:cobble", "default:cobble", "default:cobble", + "default:cobble", "default:cobble", "default:coal_lump"} +}) + +minetest.register_craft({ + type = "shapeless", + output = "equivalent_exchange:medium_covalence 40", + recipe = {"default:steel_ingot", "default:bronze_ingot"} +}) + +minetest.register_craft({ + type = "shapeless", + output = "equivalent_exchange:high_covalence 40", + recipe = {"default:diamond", "default:mese_crystal"} +}) + +local materials = {"wood","stone","steel","bronze","mese","diamond"} +local covalence = {"low_covalence","low_covalence","medium_covalence","medium_covalence","high_covalence","high_covalence"} +local tools = {"pick_","shovel_","axe_","sword_","hoe_"} +local type = {"default:","default:","default:","default:","farming:"} + + +for i = 1,6 do + for j = 1,5 do + minetest["register_craft"]({ + type = "shapeless", + output = type[j]..tools[j]..materials[i], + recipe = {"equivalent_exchange:"..covalence[i], "equivalent_exchange:"..covalence[i], "equivalent_exchange:"..covalence[i], type[j]..tools[j]..materials[i]} + }) + end +end + +minetest.register_craft({ + type = "shapeless", + output = "screwdriver:screwdriver", + recipe = {"equivalent_exchange:medium_covalence", "equivalent_exchange:medium_covalence", "equivalent_exchange:medium_covalence", "screwdriver:screwdriver"} +}) \ No newline at end of file diff --git a/equivalent_exchange/equivalent_exchange/philosophers_stone.lua b/equivalent_exchange/equivalent_exchange/philosophers_stone.lua new file mode 100644 index 0000000..9bbfa17 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange/philosophers_stone.lua @@ -0,0 +1,21 @@ +-- Registering Craft Items -- + +minetest.register_craftitem("equivalent_exchange:philosophers_stone", { + description = "Philosopher's Stone", + inventory_image = "equivalent_exchange_philosophers_stone.png", + emc = 8892, +}) + +-- Registering Crafts -- + +minetest.register_craft({ + output = "equivalent_exchange:philosophers_stone", + recipe = { + {"default:mese", "default:desert_stone", "default:mese"}, + {"default:desert_stone", "default:diamond", "default:mese"}, + {"default:mese", "default:desert_stone", "default:mese"} + } +}) + +--Transmutation Crafts here after default EMCs are sorted out -- + diff --git a/equivalent_exchange/equivalent_exchange_alchemy_bags/alchemy_bag.lua b/equivalent_exchange/equivalent_exchange_alchemy_bags/alchemy_bag.lua new file mode 100644 index 0000000..f000673 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange_alchemy_bags/alchemy_bag.lua @@ -0,0 +1,46 @@ +local colors = {'grey','dark_grey','black','blue','cyan','green','dark_green','yellow','orange','brown','red','pink','magenta','violet'} + +minetest.register_craftitem("equivalent_exchange_alchemy_bags:white", { + description = "White Alchemy Bag", + inventory_image = "equivalent_exchange_alchemy_bag_white.png", + emc = 9631, +}) + +minetest.register_craft({ + output = "equivalent_exchange:alchemy_bag_white", + recipe = { + {"equivalent_exchange:high_covalence", "equivalent_exchange:high_covalence", "equivalent_exchange:high_covalence"}, + {"wool:white", "equivalent_exchange:alchemical_chest", "wool:white"}, + {"wool:white", "wool:white", "wool:white"} + } +}) + +for i = 1,14 do + + -- Registering Craft Items -- + + minetest["register_craftitem"](":".."equivalent_exchange_alchemy_bags:"..colors[i], { + description = colors[i]:gsub("^%l", string.upper).." Alchemy Bag", + groups = {not_in_creative_inventory = 1}, + inventory_image = "equivalent_exchange_alchemy_bag_"..colors[i]..".png", + emc = 9631, + }) + + -- Registering Crafts -- + + minetest["register_craft"]({ + output = "equivalent_exchange_alchemy_bags:"..colors[i], + recipe = { + {"equivalent_exchange:high_covalence", "equivalent_exchange:high_covalence", "equivalent_exchange:high_covalence"}, + {"wool:"..colors[i], "equivalent_exchange:alchemical_chest", "wool:"..colors[i]}, + {"wool:"..colors[i], "wool:"..colors[i], "wool:"..colors[i]} + } + }) + + minetest["register_craft"]({ + type = "shapeless", + output = "equivalent_exchange_alchemy_bags:"..colors[i], + recipe = {"equivalent_exchange_alchemy_bags:white", "dye:"..colors[i]} + }) + +end \ No newline at end of file diff --git a/equivalent_exchange/equivalent_exchange_alchemy_bags/depends.txt b/equivalent_exchange/equivalent_exchange_alchemy_bags/depends.txt new file mode 100644 index 0000000..e472448 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange_alchemy_bags/depends.txt @@ -0,0 +1,2 @@ +default +equivalent_exchange \ No newline at end of file diff --git a/equivalent_exchange/equivalent_exchange_alchemy_bags/init.lua b/equivalent_exchange/equivalent_exchange_alchemy_bags/init.lua new file mode 100644 index 0000000..fad79c8 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange_alchemy_bags/init.lua @@ -0,0 +1,3 @@ +dofile(minetest.get_modpath("equivalent_exchange_alchemy_bags").."/alchemy_bag.lua") + +print("[equivalent_exchange_alchemy_bags] Mod loaded!") \ No newline at end of file diff --git a/equivalent_exchange/equivalent_exchange_energy_collectors/depends.txt b/equivalent_exchange/equivalent_exchange_energy_collectors/depends.txt new file mode 100644 index 0000000..e472448 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange_energy_collectors/depends.txt @@ -0,0 +1,2 @@ +default +equivalent_exchange \ No newline at end of file diff --git a/equivalent_exchange/equivalent_exchange_energy_collectors/energy_collector.lua b/equivalent_exchange/equivalent_exchange_energy_collectors/energy_collector.lua new file mode 100644 index 0000000..a12c8a1 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange_energy_collectors/energy_collector.lua @@ -0,0 +1,326 @@ +collector = { + emc_gather = function(orig_emc, mark,multiplier) + return orig_emc + (10^(mark - 1)) * multiplier + end, + emc_transfer = function(mark,pos,multiplier) + local meta = minetest.get_meta(pos) + local emc = meta:get_int("emc") + local surrounding_nodes = { + minetest.get_meta({x = pos.x + 1, y = pos.y, z = pos.z}), + minetest.get_meta({x = pos.x - 1, y = pos.y, z = pos.z}), + minetest.get_meta({x = pos.x, y = pos.y + 1, z = pos.z}), + minetest.get_meta({x = pos.x, y = pos.y - 1, z = pos.z}), + minetest.get_meta({x = pos.x, y = pos.y, z = pos.z + 1}), + minetest.get_meta({x = pos.x, y = pos.y, z = pos.z - 1}) + } + local emc_transferable_nodes = {} + local emc_transferable_nodes_length = 0 + for i = 1,6 do + if surrounding_nodes[i]:get_string("emc_storable") == "true" then + table.insert(emc_transferable_nodes,surrounding_nodes[i]) + emc_transferable_nodes_length = emc_transferable_nodes_length + 1 + end + end + local newemc = (collector.emc_gather(emc, mark, multiplier)) + local distribution = math.floor(newemc / emc_transferable_nodes_length) + for j = 1,emc_transferable_nodes_length do + meta:set_string("formspec", + "size[6,1.5]".. + "label[0,0;Energy Collector Mark"..mark.."]".. + "label[4,0;EMC Stored: "..(newemc - distribution).."]".. + "list[current_name;container;0,0.5;6,1;]") + meta:set_int("emc",(newemc - distribution)) + emc_transferable_nodes[j]:set_int("emc", (emc_transferable_nodes[j]:get_int("emc") + distribution)) + end + end, + check_multiplier = function(pos) + local multiplier = 1 + if minetest.get_meta({x = pos.x, y = pos.y + 1, z = pos.z}):get_int("multiplier") == 2 then + multiplier = 2 + end + return multiplier + end, +} + +-- Registering ABMs -- + +minetest.register_abm({ + nodenames = {"equivalent_exchange_energy_collectors:mk1"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.get_meta(pos) + local emc = meta:get_int("emc") + local multiplier = collector.check_multiplier(pos) + meta:set_string("formspec", + "size[6,1.5]".. + "label[0,0;Energy Collector Mark 1]".. + "label[4,0;EMC Stored: "..collector.emc_gather(emc,1,multiplier).."]".. + "list[current_name;container;0,0.5;6,1;]") + meta:set_int("emc",collector.emc_gather(emc,1,multiplier)) + collector.emc_transfer(1,pos,multiplier) + end, +}) + +minetest.register_abm({ + nodenames = {"equivalent_exchange_energy_collectors:mk2"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.get_meta(pos) + local emc = meta:get_int("emc") + local multiplier = collector.check_multiplier(pos) + meta:set_string("formspec", + "size[6,1.5]".. + "label[0,0;Energy Collector Mark 2]".. + "label[4,0;EMC Stored: "..collector.emc_gather(emc,2,multiplier).."]".. + "list[current_name;container;0,0.5;6,1;]") + meta:set_int("emc",collector.emc_gather(emc,2,multiplier)) + collector.emc_transfer(2,pos,multiplier) + end, +}) + +minetest.register_abm({ + nodenames = {"equivalent_exchange_energy_collectors:mk3"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.get_meta(pos) + local emc = meta:get_int("emc") + local multiplier = collector.check_multiplier(pos) + meta:set_string("formspec", + "size[6,1.5]".. + "label[0,0;Energy Collector Mark 3]".. + "label[4,0;EMC Stored: "..collector.emc_gather(emc,3,multiplier).."]".. + "list[current_name;container;0,0.5;6,1;]") + meta:set_int("emc",collector.emc_gather(emc,3,multiplier)) + collector.emc_transfer(3,pos,multiplier) + end, +}) + +minetest.register_abm({ + nodenames = {"equivalent_exchange+energy_collectors:antimatter_collector"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.get_meta(pos) + local emc = meta:get_int("emc") + local multiplier = collector.check_multiplier(pos) + meta:set_string("formspec", + "size[6,1.5]".. + "label[0,0;Antimatter Collector]".. + "label[4,0;EMC Stored: "..collector.emc_gather(emc,4,multiplier).."]".. + "list[current_name;container;0,0.5;6,1;]") + meta:set_int("emc",collector.emc_gather(emc,4,multiplier)) + collector.emc_transfer(4,pos,multiplier) + end, +}) + +-- Registering Nodes -- + +minetest.register_node("equivalent_exchange_energy_collectors:mk1", { + description = "Energy Collector Mark 1", + tiles = { + "equivalent_exchange_energy_collector_mk1_top.png", + "equivalent_exchange_energy_collector_mk1_bottom.png", + "equivalent_exchange_energy_collector_mk1_side.png", + "equivalent_exchange_energy_collector_mk1_side.png", + "equivalent_exchange_energy_collector_mk1_side.png", + "equivalent_exchange_energy_collector_mk1_side.png", + }, + paramtype2 = "facedir", + groups = {cracky = 2}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[6,1.5]".. + "label[0,0;Energy Collector Mark 1]".. + "label[4,0;EMC Stored: 0]".. + "list[current_name;container;0,0.5;6,1;]") + meta:set_string("infotext", "Energy Collector Mark 1") + meta:set_int("emc", 0) + local inv = meta:get_inventory() + inv:set_size("container", 6) + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + emc = 529605 +}) + +minetest.register_node("equivalent_exchange_energy_collectors:mk2", { + description = "Energy Collector Mark 2", + tiles = { + "equivalent_exchange_energy_collector_mk2_top.png", + "equivalent_exchange_energy_collector_mk2_bottom.png", + "equivalent_exchange_energy_collector_mk2_side.png", + "equivalent_exchange_energy_collector_mk2_side.png", + "equivalent_exchange_energy_collector_mk2_side.png", + "equivalent_exchange_energy_collector_mk2_side.png", + }, + paramtype2 = "facedir", + groups = {cracky = 2}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[6,1.5]".. + "label[0,0;Energy Collector Mark 2]".. + "label[4,0;EMC Stored: 0]".. + "list[current_name;container;0,0.5;6,1;]") + meta:set_string("infotext", "Energy Collector Mark 2") + meta:set_int("emc", 0) + local inv = meta:get_inventory() + inv:set_size("container", 6) + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + emc = 529605 +}) + +minetest.register_node("equivalent_exchange_energy_collectors:mk3", { + description = "Energy Collector Mark 3", + tiles = { + "equivalent_exchange_energy_collector_mk3_top.png", + "equivalent_exchange_energy_collector_mk3_bottom.png", + "equivalent_exchange_energy_collector_mk3_side.png", + "equivalent_exchange_energy_collector_mk3_side.png", + "equivalent_exchange_energy_collector_mk3_side.png", + "equivalent_exchange_energy_collector_mk3_side.png", + }, + paramtype2 = "facedir", + groups = {cracky = 2}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[6,1.5]".. + "label[0,0;Energy Collector Mark 3]".. + "label[4,0;EMC Stored: 0]".. + "list[current_name;container;0,0.5;6,1;]") + meta:set_string("infotext", "Energy Collector Mark 3") + meta:set_int("emc", 0) + local inv = meta:get_inventory() + inv:set_size("container", 6) + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + emc = 529605 +}) + +minetest.register_node("equivalent_exchange_energy_collectors:antimatter_collector", { + description = "Antimatter Collector", + tiles = { + "equivalent_exchange_antimatter_collector_top.png", + "equivalent_exchange_antimatter_collector_bottom.png", + "equivalent_exchange_antimatter_collector_side.png", + "equivalent_exchange_antimatter_collector_side.png", + "equivalent_exchange_antimatter_collector_side.png", + "equivalent_exchange_antimatter_collector_side.png", + }, + paramtype2 = "facedir", + groups = {cracky = 2}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[6,1.5]".. + "label[0,0;Antimatter Collector]".. + "label[4,0;EMC Stored: 0]".. + "list[current_name;container;0,0.5;6,1;]") + meta:set_string("infotext", "Antimatter Collector") + meta:set_int("emc", 0) + local inv = meta:get_inventory() + inv:set_size("container", 6) + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + emc = 269554885 +}) + +minetest.register_node("equivalent_exchange_energy_collectors:interdiction_stone", { + description = "Interdiction Stone", + tiles = { + "equivalent_exchange_interdiction_stone.png", + "equivalent_exchange_interdiction_stone.png", + "equivalent_exchange_interdiction_stone.png", + "equivalent_exchange_interdiction_stone.png", + "equivalent_exchange_interdiction_stone.png", + "equivalent_exchange_interdiction_stone.png" + }, + paramtype2 = "facedir", + groups = {cracky = 1}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + light_source = 10, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_int("multiplier", 2) + end, +}) + +-- Registering Crafts -- + +minetest.register_craft({ + output = "equivalent_exchange_energy_collectors:mk1", + recipe = { + {"default:mese", "default:glass", "default:mese"}, + {"default:mese", "default:diamondblock", "default:mese"}, + {"default:mese", "default:furnace", "default:mese"} + } +}) + +minetest.register_craft({ + output = "equivalent_exchange_energy_collectors:mk2", + recipe = { + {"default:mese", "equivalent_exchange_energy_collectors:red_matter", "default:mese"}, + {"default:mese", "equivalent_exchange_energy_collectors:mk1", "default:mese"}, + {"default:mese", "default:mese", "default:mese"} + } +}) + +minetest.register_craft({ + output = "equivalent_exchange_energy_collectors:mk3", + recipe = { + {"default:mese", "equivalent_exchange_energy_collectors:antimatter", "default:mese"}, + {"default:mese", "equivalent_exchange_energy_collectors:mk2", "default:mese"}, + {"default:mese", "default:mese", "default:mese"} + } +}) + +minetest.register_craft({ + output = "equivalent_exchange_energy_collectors:interdiction_stone", + recipe = { + {"default:torch", "equivalent_exchange_energy_collectors:aeternalis_fuel", "default:torch"}, + {"equivalent_exchange_energy_collectors:aeternalis_fuel", "equivalent_exchange:philosophers_stone", "equivalent_exchange_energy_collectors:aeternalis_fuel"}, + {"equivalent_exchange:high_covalence", "equivalent_exchange:high_covalence", "equivalent_exchange:high_covalence"} + }, + replacements = { + {"equivalent_exchange:philosophers_stone", "equivalent_exchange:philosophers_stone"} + } +}) + +minetest.register_craft({ + output = "equivalent_exchange_energy_collectors:antimatter_collector", + recipe = { + {"equivalent_exchange_energy_collectors:condensed_antimatter", "equivalent_exchange_energy_collectors:condensed_antimatter", "equivalent_exchange_energy_collectors:condensed_antimatter"}, + {"equivalent_exchange_energy_collectors:condensed_antimatter", "equivalent_exchange_energy_collectors_energy_collectors:mk3", "equivalent_exchange_energy_collectors:condensed_antimatter"}, + {"equivalent_exchange_energy_collectors:condensed_antimatter", "equivalent_exchange_energy_collectors:condensed_antimatter", "equivalent_exchange_energy_collectors:condensed_antimatter"} + } +}) diff --git a/equivalent_exchange/equivalent_exchange_energy_collectors/init.lua b/equivalent_exchange/equivalent_exchange_energy_collectors/init.lua new file mode 100644 index 0000000..8b0ac87 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange_energy_collectors/init.lua @@ -0,0 +1,4 @@ +dofile(minetest.get_modpath("equivalent_exchange_energy_collectors").."/energy_collector.lua") +dofile(minetest.get_modpath("equivalent_exchange_energy_collectors").."/normal_items.lua") + +print("[equivalent_exchange_energy_collectors] Mod loaded!") \ No newline at end of file diff --git a/equivalent_exchange/equivalent_exchange_energy_collectors/normal_items.lua b/equivalent_exchange/equivalent_exchange_energy_collectors/normal_items.lua new file mode 100644 index 0000000..fc76aeb --- /dev/null +++ b/equivalent_exchange/equivalent_exchange_energy_collectors/normal_items.lua @@ -0,0 +1,152 @@ +-- Registering Nodes -- + +minetest.register_node("equivalent_exchange_energy_collectors:red_matter_block", { + description = "Red Matter Block", + tiles = { + "equivalent_exchange_red_matter_block.png", + "equivalent_exchange_red_matter_block.png", + "equivalent_exchange_red_matter_block.png", + "equivalent_exchange_red_matter_block.png", + "equivalent_exchange_red_matter_block.png", + "equivalent_exchange_red_matter_block.png" + }, + paramtype2 = "facedir", + groups = {cracky = 3}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + emc = 1253376 +}) + +minetest.register_node("equivalent_exchange_energy_collectors:antimatter_block", { + description = "Antimatter Block", + tiles = { + "equivalent_exchange_antimatter_block.png", + "equivalent_exchange_antimatter_block.png", + "equivalent_exchange_antimatter_block.png", + "equivalent_exchange_antimatter_block.png", + "equivalent_exchange_antimatter_block.png", + "equivalent_exchange_antimatter_block.png" + }, + paramtype2 = "facedir", + groups = {cracky = 3}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + emc = 4202496 +}) + +minetest.register_node("equivalent_exchange_energy_collectors:condensed_antimatter", { + description = "Condensed Antimatter", + tiles = { + "equivalent_exchange_condensed_antimatter.png", + "equivalent_exchange_condensed_antimatter.png", + "equivalent_exchange_condensed_antimatter.png", + "equivalent_exchange_condensed_antimatter.png", + "equivalent_exchange_condensed_antimatter.png", + "equivalent_exchange_condensed_antimatter.png" + }, + paramtype2 = "facedir", + groups = {cracky = 5}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + emc = 33628160 +}) + +-- Registering Craft Items -- + +minetest.register_craftitem("equivalent_exchange_energy_collectors:alchemical_crystal", { + description = "Alchemical Crystal", + inventory_image = "equivalent_exchange_alchemical_crystal.png", + emc = 512, +}) + +minetest.register_craftitem("equivalent_exchange_energy_collectors:mobius_fuel", { + description = "Mobius Fuel", + inventory_image = "equivalent_exchange_mobius_fuel.png", + emc = 2048, +}) + +minetest.register_craftitem("equivalent_exchange_energy_collectors:aeternalis_fuel", { + description = "Aeternalis Fuel", + inventory_image = "equivalent_exchange_aeternalis_fuel.png", + emc = 8192, +}) + +minetest.register_craftitem("equivalent_exchange_energy_collectors:red_matter", { + description = "Red Matter", + inventory_image = "equivalent_exchange_red_matter.png", + emc = 139264 +}) + +minetest.register_craftitem("equivalent_exchange_energy_collectors:antimatter", { + description = "Antimatter", + inventory_image = "equivalent_exchange_antimatter.png", + emc = 466944 +}) + +-- Registering Crafts -- + +local fuels = {"default:diamond","equivalent_exchange_energy_collectors:alchemical_crystal","equivalent_exchange_energy_collectors:mobius_fuel","equivalent_exchange_energy_collectors:aeternalis_fuel"} + +for i = 2,4 do + minetest["register_craft"]({ + type = "shapeless", + output = fuels[i], + recipe = {"equivalent_exchange:philosophers_stone", fuels[i-1], fuels[i-1], fuels[i-1],fuels[i-1]}, + replacements = { + {"equivalent_exchange:philosophers_stone", "equivalent_exchange:philosophers_stone"} + } + }) + minetest["register_craft"]({ + type = "shapeless", + output = fuels[i-1].." 4", + recipe = {"equivalent_exchange:philosophers_stone", fuels[i]}, + replacements = { + {"equivalent_exchange:philosophers_stone", "equivalent_exchange:philosophers_stone"} + } + }) +end + +minetest.register_craft({ + output = "equivalent_exchange_energy_collectors:red_matter", + recipe = { + {"equivalent_exchange_energy_collectors:aeternalis_fuel", "equivalent_exchange_energy_collectors:aeternalis_fuel", "equivalent_exchange_energy_collectors:aeternalis_fuel"}, + {"equivalent_exchange_energy_collectors:aeternalis_fuel", "default:mese", "equivalent_exchange_energy_collectors:aeternalis_fuel"}, + {"equivalent_exchange_energy_collectors:aeternalis_fuel", "equivalent_exchange_energy_collectors:aeternalis_fuel", "equivalent_exchange_energy_collectors:aeternalis_fuel"} + } +}) + +minetest.register_craft({ + output = "equivalent_exchange_energy_collectors:antimatter", + recipe = { + {"equivalent_exchange_energy_collectors:aeternalis_fuel", "equivalent_exchange_energy_collectors:aeternalis_fuel", "equivalent_exchange_energy_collectors:aeternalis_fuel"}, + {"equivalent_exchange_energy_collectors:red_matter","equivalent_exchange_energy_collectors:red_matter","equivalent_exchange_energy_collectors:red_matter"}, + {"equivalent_exchange_energy_collectors:aeternalis_fuel", "equivalent_exchange_energy_collectors:aeternalis_fuel", "equivalent_exchange_energy_collectors:aeternalis_fuel"} + } +}) + +minetest.register_craft({ + output = "equivalent_exchange_energy_collectors:red_matter_block", + recipe = { + {"equivalent_exchange_energy_collectors:red_matter", "equivalent_exchange_energy_collectors:red_matter", "equivalent_exchange_energy_collectors:red_matter"}, + {"equivalent_exchange_energy_collectors:red_matter", "equivalent_exchange_energy_collectors:red_matter", "equivalent_exchange_energy_collectors:red_matter"}, + {"equivalent_exchange_energy_collectors:red_matter", "equivalent_exchange_energy_collectors:red_matter", "equivalent_exchange_energy_collectors:red_matter"} + } +}) + +minetest.register_craft({ + output = "equivalent_exchange_energy_collectors:antimatter_block", + recipe = { + {"equivalent_exchange_energy_collectors:antimatter", "equivalent_exchange_energy_collectors:antimatter", "equivalent_exchange_energy_collectors:antimatter"}, + {"equivalent_exchange_energy_collectors:antimatter", "equivalent_exchange_energy_collectors:antimatter", "equivalent_exchange_energy_collectors:antimatter"}, + {"equivalent_exchange_energy_collectors:antimatter", "equivalent_exchange_energy_collectors:antimatter", "equivalent_exchange_energy_collectors:antimatter"} + } +}) + +minetest.register_craft({ + output = "equivalent_exchange_energy_collectors:condensed_antimatter", + recipe = { + {"equivalent_exchange_energy_collectors:antimatter_block", "equivalent_exchange_energy_collectors:antimatter_block", "equivalent_exchange_energy_collectors:antimatter_block"}, + {"equivalent_exchange_energy_collectors:antimatter_block", "equivalent_exchange_energy_collectors:aeternalis_fuel", "equivalent_exchange_energy_collectors:antimatter_block"}, + {"equivalent_exchange_energy_collectors:antimatter_block", "equivalent_exchange_energy_collectors:antimatter_block", "equivalent_exchange_energy_collectors:antimatter_block"} + } +}) \ No newline at end of file diff --git a/equivalent_exchange/equivalent_exchange_extras/depends.txt b/equivalent_exchange/equivalent_exchange_extras/depends.txt new file mode 100644 index 0000000..8cd1ff4 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange_extras/depends.txt @@ -0,0 +1,3 @@ +default +equivalent_exchange +equivalent_exchange_energy_collectors \ No newline at end of file diff --git a/equivalent_exchange/equivalent_exchange_extras/init.lua b/equivalent_exchange/equivalent_exchange_extras/init.lua new file mode 100644 index 0000000..127e429 --- /dev/null +++ b/equivalent_exchange/equivalent_exchange_extras/init.lua @@ -0,0 +1 @@ +print ("[equivalent_exchange_extras] Mod loaded!") \ No newline at end of file diff --git a/equivalent_exchange/modpack.txt b/equivalent_exchange/modpack.txt new file mode 100644 index 0000000..e69de29