transformed into modpack
This commit is contained in:
parent
86594d0e18
commit
7d9f6fa05e
74
equivalent_exchange/equivalent_exchange/alchemical_chest.lua
Normal file
74
equivalent_exchange/equivalent_exchange/alchemical_chest.lua
Normal file
@ -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"}
|
||||
}
|
||||
})
|
||||
116
equivalent_exchange/equivalent_exchange/condenser.lua
Normal file
116
equivalent_exchange/equivalent_exchange/condenser.lua
Normal file
@ -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"}
|
||||
}
|
||||
})
|
||||
1
equivalent_exchange/equivalent_exchange/depends.txt
Normal file
1
equivalent_exchange/equivalent_exchange/depends.txt
Normal file
@ -0,0 +1 @@
|
||||
default
|
||||
97
equivalent_exchange/equivalent_exchange/emcs.lua
Normal file
97
equivalent_exchange/equivalent_exchange/emcs.lua
Normal file
@ -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
|
||||
7
equivalent_exchange/equivalent_exchange/init.lua
Normal file
7
equivalent_exchange/equivalent_exchange/init.lua
Normal file
@ -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!")
|
||||
63
equivalent_exchange/equivalent_exchange/normal_items.lua
Normal file
63
equivalent_exchange/equivalent_exchange/normal_items.lua
Normal file
@ -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"}
|
||||
})
|
||||
@ -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 --
|
||||
|
||||
@ -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
|
||||
@ -0,0 +1,2 @@
|
||||
default
|
||||
equivalent_exchange
|
||||
@ -0,0 +1,3 @@
|
||||
dofile(minetest.get_modpath("equivalent_exchange_alchemy_bags").."/alchemy_bag.lua")
|
||||
|
||||
print("[equivalent_exchange_alchemy_bags] Mod loaded!")
|
||||
@ -0,0 +1,2 @@
|
||||
default
|
||||
equivalent_exchange
|
||||
@ -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"}
|
||||
}
|
||||
})
|
||||
@ -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!")
|
||||
@ -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"}
|
||||
}
|
||||
})
|
||||
@ -0,0 +1,3 @@
|
||||
default
|
||||
equivalent_exchange
|
||||
equivalent_exchange_energy_collectors
|
||||
1
equivalent_exchange/equivalent_exchange_extras/init.lua
Normal file
1
equivalent_exchange/equivalent_exchange_extras/init.lua
Normal file
@ -0,0 +1 @@
|
||||
print ("[equivalent_exchange_extras] Mod loaded!")
|
||||
0
equivalent_exchange/modpack.txt
Normal file
0
equivalent_exchange/modpack.txt
Normal file
Loading…
x
Reference in New Issue
Block a user