Fix enrichment plant, add speed and efficiency upgrades

This commit is contained in:
Evert Prants 2019-01-22 23:14:38 +02:00
parent 1b4453fae3
commit 7de297dace
Signed by: evert
GPG Key ID: 1688DA83D222D0B5
9 changed files with 124 additions and 24 deletions

View File

@ -80,6 +80,8 @@ function elepm.register_craft(craftdef)
time = time time = time
} }
table.insert(elepm.craft[ctype], recipe)
if have_ui or have_cg then if have_ui or have_cg then
local spec = {} local spec = {}
local items = {} local items = {}
@ -133,8 +135,6 @@ function elepm.register_craft(craftdef)
}) })
end end
end end
table.insert(elepm.craft[ctype], recipe)
end end
local no_recipe = { local no_recipe = {

View File

@ -330,6 +330,21 @@ local soldering_recipes = {
recipe = { "elepower_machines:resonant_power_cell_0", "elepower_machines:super_capacitor 2", "elepower_dynamics:xycrone_lump" }, recipe = { "elepower_machines:resonant_power_cell_0", "elepower_machines:super_capacitor 2", "elepower_dynamics:xycrone_lump" },
output = "elepower_machines:super_power_cell_0", output = "elepower_machines:super_power_cell_0",
time = 24, time = 24,
},
{
recipe = { "elepower_dynamics:integrated_circuit", "elepower_dynamics:induction_coil 2", "elepower_dynamics:soc" },
output = "elepower_machines:upgrade_speed",
time = 16,
},
{
recipe = { "elepower_dynamics:integrated_circuit", "elepower_machines:hardened_capacitor 2", "elepower_dynamics:soc" },
output = "elepower_machines:upgrade_efficiency",
time = 16,
},
{
recipe = { "elepower_machines:upgrade_efficiency", "elepower_machines:resonant_capacitor 2", "elepower_dynamics:soc" },
output = "elepower_machines:upgrade_efficiency_2",
time = 16,
} }
} }

View File

@ -9,33 +9,101 @@ minetest.register_craftitem("elepower_machines:turbine_blades", {
inventory_image = "elepower_turbine.png" inventory_image = "elepower_turbine.png"
}) })
-- Pump Tube Roll
minetest.register_craftitem("elepower_machines:opaque_duct_roll", {
description = "Retractable Opaque Fluid Duct\nA Pump uses this to reach fluids.",
inventory_image = "elepower_opaque_duct.png",
})
--------------- ---------------
-- Upgrading -- -- Upgrading --
--------------- ---------------
-- Capacitors -- Capacitors
minetest.register_craftitem("elepower_machines:hardened_capacitor", { minetest.register_craftitem("elepower_machines:hardened_capacitor", {
description = "Hardened Capacitor\nTier 2 Capacitor", description = "Hardened Capacitor\nTier 2 Capacitor",
groups = {capacitor = 2, ele_upgrade_component = 1}, groups = {capacitor = 2, ele_upgrade_component = 1},
inventory_image = "elepower_upgrade_hardened_capacitor.png" inventory_image = "elepower_upgrade_hardened_capacitor.png",
ele_upgrade = {
capacity = {
multiplier = 1,
},
},
}) })
minetest.register_craftitem("elepower_machines:reinforced_capacitor", { minetest.register_craftitem("elepower_machines:reinforced_capacitor", {
description = "Reinforced Capacitor\nIt will probably obliterate you if you touched it while charged\nTier 3 Capacitor", description = "Reinforced Capacitor\nIt will probably obliterate you if you touched it while charged\nTier 3 Capacitor",
groups = {capacitor = 3, ele_upgrade_component = 1}, groups = {capacitor = 3, ele_upgrade_component = 1},
inventory_image = "elepower_upgrade_reinforced_capacitor.png" inventory_image = "elepower_upgrade_reinforced_capacitor.png",
ele_upgrade = {
capacity = {
multiplier = 10,
},
},
}) })
minetest.register_craftitem("elepower_machines:resonant_capacitor", { minetest.register_craftitem("elepower_machines:resonant_capacitor", {
description = "Resonant Capacitor\nTier 4 Capacitor", description = "Resonant Capacitor\nTier 4 Capacitor",
groups = {capacitor = 4, ele_upgrade_component = 1}, groups = {capacitor = 4, ele_upgrade_component = 1},
inventory_image = "elepower_upgrade_resonant_capacitor.png" inventory_image = "elepower_upgrade_resonant_capacitor.png",
ele_upgrade = {
capacity = {
multiplier = 100,
},
},
}) })
minetest.register_craftitem("elepower_machines:super_capacitor", { minetest.register_craftitem("elepower_machines:super_capacitor", {
description = "Supercapacitor\nAmazing energy density in a small container! Wow!\nTier 5 Capacitor", description = "Supercapacitor\nAmazing energy density in a small container! Wow!\nTier 5 Capacitor",
groups = {capacitor = 5, ele_upgrade_component = 1}, groups = {capacitor = 5, ele_upgrade_component = 1},
inventory_image = "elepower_upgrade_supercapacitor.png" inventory_image = "elepower_upgrade_supercapacitor.png",
ele_upgrade = {
capacity = {
multiplier = 1000,
},
},
})
-- Machine chips
minetest.register_craftitem("elepower_machines:upgrade_speed", {
description = "Speed Upgrade\nCrafting Speed +1\nPower Usage +50%",
groups = {machine_chip = 2, ele_upgrade_component = 1},
inventory_image = "elepower_upgrade_speed.png",
ele_upgrade = {
craft_speed = {
add = 1
},
usage = {
multiplier = 0.5
},
inrush = {
multiplier = 0.5
}
}
})
minetest.register_craftitem("elepower_machines:upgrade_efficiency", {
description = "Efficiency Upgrade\nReduces power usage by 25%",
groups = {machine_chip = 2, ele_upgrade_component = 1},
inventory_image = "elepower_upgrade_efficiency.png",
ele_upgrade = {
usage = {
divider = 0.25
}
}
})
minetest.register_craftitem("elepower_machines:upgrade_efficiency_2", {
description = "Efficiency Upgrade\nReduces power usage by 50%",
groups = {machine_chip = 2, ele_upgrade_component = 1},
inventory_image = "elepower_upgrade_efficiency_2.png",
ele_upgrade = {
usage = {
divider = 0.50
}
}
}) })
-- Accumulator filter -- Accumulator filter
@ -62,9 +130,3 @@ minetest.register_craftitem("elepower_machines:heavy_filter", {
return itemstack return itemstack
end end
}) })
-- Pump Tube Roll
minetest.register_craftitem("elepower_machines:opaque_duct_roll", {
description = "Retractable Opaque Fluid Duct\nA Pump uses this to reach fluids.",
inventory_image = "elepower_opaque_duct.png",
})

View File

@ -7,6 +7,7 @@ elepm.register_storage("elepower_machines:power_cell", {
description = "Power Cell", description = "Power Cell",
ele_capacity = 16000, ele_capacity = 16000,
ele_inrush = 128, ele_inrush = 128,
ele_output = 128,
tiles = { tiles = {
"elepower_machine_top.png", "elepower_machine_base.png", "elepower_machine_side.png", "elepower_machine_top.png", "elepower_machine_base.png", "elepower_machine_side.png",
"elepower_machine_side.png", "elepower_machine_side.png", "elepower_power_cell.png", "elepower_machine_side.png", "elepower_machine_side.png", "elepower_power_cell.png",
@ -18,6 +19,7 @@ elepm.register_storage("elepower_machines:hardened_power_cell", {
description = "Hardened Power Cell", description = "Hardened Power Cell",
ele_capacity = 64000, ele_capacity = 64000,
ele_inrush = 640, ele_inrush = 640,
ele_output = 640,
tiles = { tiles = {
"elepower_machine_top.png^elepower_overlay_hardened.png", "elepower_machine_top.png^elepower_overlay_hardened.png",
"elepower_machine_base.png^elepower_overlay_hardened.png", "elepower_machine_base.png^elepower_overlay_hardened.png",
@ -33,6 +35,7 @@ elepm.register_storage("elepower_machines:reinforced_power_cell", {
description = "Reinforced Power Cell", description = "Reinforced Power Cell",
ele_capacity = 128000, ele_capacity = 128000,
ele_inrush = 1024, ele_inrush = 1024,
ele_output = 1024,
tiles = { tiles = {
"elepower_machine_top.png^elepower_overlay_reinforced.png", "elepower_machine_top.png^elepower_overlay_reinforced.png",
"elepower_machine_base.png^elepower_overlay_reinforced.png", "elepower_machine_base.png^elepower_overlay_reinforced.png",
@ -48,6 +51,7 @@ elepm.register_storage("elepower_machines:resonant_power_cell", {
description = "Resonant Power Cell", description = "Resonant Power Cell",
ele_capacity = 640000, ele_capacity = 640000,
ele_inrush = 2048, ele_inrush = 2048,
ele_output = 2048,
tiles = { tiles = {
"elepower_machine_top.png^elepower_overlay_resonant.png", "elepower_machine_top.png^elepower_overlay_resonant.png",
"elepower_machine_base.png^elepower_overlay_resonant.png", "elepower_machine_base.png^elepower_overlay_resonant.png",
@ -63,6 +67,7 @@ elepm.register_storage("elepower_machines:super_power_cell", {
description = "Supercapacitor Cell", description = "Supercapacitor Cell",
ele_capacity = 1280000, ele_capacity = 1280000,
ele_inrush = 4096, ele_inrush = 4096,
ele_output = 4096,
tiles = { tiles = {
"elepower_machine_top.png^elepower_overlay_super.png", "elepower_machine_top.png^elepower_overlay_super.png",
"elepower_machine_base.png^elepower_overlay_super.png", "elepower_machine_base.png^elepower_overlay_super.png",

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 B

View File

@ -18,7 +18,7 @@ function elepm.handle_machine_upgrades (pos)
end end
if nodedef.ele_upgrades then if nodedef.ele_upgrades then
for comp, vars in pairs(nodedef.ele_upgrades) do for comp,vars in pairs(nodedef.ele_upgrades) do
for _,c in pairs(vars) do for _,c in pairs(vars) do
if not comps[comp] then if not comps[comp] then
-- If we're resetting capacity, set storage to max initial capacity -- If we're resetting capacity, set storage to max initial capacity
@ -35,18 +35,36 @@ function elepm.handle_machine_upgrades (pos)
if meta:get_int(c) ~= 0 then if meta:get_int(c) ~= 0 then
meta:set_int(c, 0) meta:set_int(c, 0)
end end
elseif nodedef["ele_" .. c] ~= nil then else
-- Set updated value in metadata local compdef = minetest.registered_items[comps[comp]]
local default = nodedef["ele_" .. c] local default = nodedef["ele_" .. c] or 1
local ulevel = minetest.get_item_group(comps[comp], comp) - 1 local ulevel = minetest.get_item_group(comps[comp], comp) - 1
local multiplier = 1
-- Capacitor value is multiplied -- Only upgrade if present
if comp == "capacitor" then if compdef and compdef.ele_upgrade and compdef.ele_upgrade[c] then
multiplier = math.pow(10, ulevel) local task = compdef.ele_upgrade[c]
local final = default
if task.multiplier then
final = final + (default * task.multiplier * ulevel)
end end
meta:set_int(c, math.abs(default + (default * ulevel * multiplier))) if task.add then
final = final + (task.add * ulevel)
end
if task.subtract then
final = final - (task.subtract * ulevel)
end
if task.divider then
final = final - (default * task.divider * ulevel)
end
if final <= 0 then final = 1 end
meta:set_int(c, math.abs(math.floor(final)))
end
end end
end end
end end

View File

@ -36,7 +36,7 @@ elepm.register_crafter("elepower_nuclear:enrichment_plant", {
"elenuclear_machine_side.png", "elenuclear_machine_side.png", "elenuclear_enrichment_plant.png", "elenuclear_machine_side.png", "elenuclear_machine_side.png", "elenuclear_enrichment_plant.png",
}, },
groups = {ele_user = 1, cracky = 3}, groups = {ele_user = 1, cracky = 3},
ele_capacity = 64000, ele_capacity = 8000,
ele_usage = 1000, ele_usage = 1000,
ele_inrush = 8000, ele_inrush = 8000,
get_formspec = get_formspec, get_formspec = get_formspec,