Register casts, rework some API
This commit is contained in:
parent
0721c30f0c
commit
b3297c2fa4
@ -11,9 +11,9 @@ metal_caster.max_metal = 16000
|
||||
metal_caster.spec = metal_melter.spec
|
||||
|
||||
metal_caster.casts = {
|
||||
ingot_cast = {name = "Ingot Cast", result = "ingot", cost = metal_caster.spec.ingot, typenames = {"ingot"}},
|
||||
lump_cast = {name = "Lump Cast", result = "lump", cost = metal_caster.spec.lump, typenames = {"lump"}},
|
||||
gem_cast = {name = "Gem Cast", result = "crystal", cost = metal_caster.spec.crystal, typenames = {"crystal", "gem"}}
|
||||
ingot = {description = "Ingot", result = "ingot", cost = metal_caster.spec.ingot, typenames = {"ingot"}},
|
||||
lump = {description = "Lump", result = "lump", cost = metal_caster.spec.lump, typenames = {"lump"}},
|
||||
gem = {description = "Gem", result = "crystal", cost = metal_caster.spec.crystal, typenames = {"crystal", "gem"}}
|
||||
}
|
||||
|
||||
local metal_cache = {}
|
||||
@ -203,6 +203,8 @@ local function get_cast_for(item)
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
print(typename, cast)
|
||||
|
||||
return typename, cast
|
||||
end
|
||||
@ -228,8 +230,8 @@ end
|
||||
|
||||
local function get_cast_for_name(name)
|
||||
for index, value in pairs(metal_caster.casts) do
|
||||
local mod = value.mod or "metal_melter"
|
||||
if name == mod..":"..index then
|
||||
local mod = value.mod_name or "metal_melter"
|
||||
if name == mod..":"..index.."_cast" then
|
||||
return index
|
||||
end
|
||||
end
|
||||
@ -333,8 +335,8 @@ local function caster_node_timer(pos, elapsed)
|
||||
local coolant_cost = result_cost / 4
|
||||
if metal_count >= result_cost and coolant_count >= coolant_cost then
|
||||
local mtype, ctype = get_cast_for(caststack)
|
||||
if mtype then
|
||||
local cmod = metal_caster.casts[ctype].mod or "metal_melter"
|
||||
if mtype and ctype then
|
||||
local cmod = metal_caster.casts[ctype].mod_name or "metal_melter"
|
||||
local stack = ItemStack(cmod..":"..ctype)
|
||||
local output_stack = inv:get_stack("output", 1)
|
||||
local cast_stack = inv:get_stack("cast", 1)
|
||||
@ -404,14 +406,14 @@ end
|
||||
|
||||
-- Register a new cast
|
||||
function metal_caster.register_cast(name, data)
|
||||
local modname = data.mod or "metal_melter"
|
||||
local castname = modname..":"..name
|
||||
local mod = data.mod_name or "metal_melter"
|
||||
local castname = mod..":"..name.."_cast"
|
||||
|
||||
minetest.register_craftitem(castname, {
|
||||
description = data.name,
|
||||
inventory_image = "caster_"..name..".png",
|
||||
stack_max = 1,
|
||||
groups = {cast=1}
|
||||
description = data.description.." Cast",
|
||||
inventory_image = "caster_"..name.."_cast.png",
|
||||
stack_max = 1,
|
||||
groups = {cast=1}
|
||||
})
|
||||
|
||||
if not metal_caster.casts[name] then
|
||||
|
@ -0,0 +1,22 @@
|
||||
tinkering.pattern = {}
|
||||
|
||||
-- Register a new pattern
|
||||
function tinkering.register_pattern(name, data)
|
||||
local mod = data.mod_name or "tinkering"
|
||||
local desc = data.description
|
||||
|
||||
tinkering.pattern[name] = data
|
||||
|
||||
minetest.register_craftitem(mod..":"..name.."_pattern", {
|
||||
description = desc.." Pattern",
|
||||
inventory_image = "tinkering_"..name.."_pattern.png",
|
||||
groups = {pattern=1}
|
||||
})
|
||||
end
|
||||
|
||||
-- Create blank pattern
|
||||
minetest.register_craftitem("tinkering:blank_pattern", {
|
||||
description = "Blank Pattern",
|
||||
inventory_image = "tinkering_blank_pattern.png",
|
||||
groups = {pattern=1}
|
||||
})
|
@ -91,6 +91,24 @@ function tinkering.register_component(name, data)
|
||||
tinkering.components[name] = data
|
||||
end
|
||||
|
||||
local comp_desc = data.description:sub(4)
|
||||
|
||||
-- Register cast
|
||||
metal_melter.set_spec(name, metal_caster.spec.cast)
|
||||
metal_caster.register_cast(name, {
|
||||
description = comp_desc,
|
||||
mod_name = mod,
|
||||
result = name,
|
||||
cost = metal_caster.spec.cast,
|
||||
typenames = {name}
|
||||
})
|
||||
|
||||
-- Register pattern
|
||||
tinkering.register_pattern(name, {
|
||||
description = comp_desc,
|
||||
mod_name = mod
|
||||
})
|
||||
|
||||
-- Register components for all materials
|
||||
for m, s in pairs(tinkering.materials) do
|
||||
local component = m.."_"..name
|
||||
@ -103,7 +121,6 @@ function tinkering.register_component(name, data)
|
||||
})
|
||||
|
||||
-- Make all components meltable
|
||||
metal_melter.set_spec(name, metal_caster.spec.cast)
|
||||
metal_melter.register_melt(mod..":"..component, m, name)
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user