70 lines
2.3 KiB
Lua
70 lines
2.3 KiB
Lua
local S=minerdream.intllib
|
|
|
|
local has_value = basic_functions.has_value
|
|
local tier_cols={
|
|
col_num={"name"},}
|
|
local tier_definition = basic_functions.import_csv(minerdream.path.."/tiers.txt",tier_cols)
|
|
local tool_cols={
|
|
col_num={"range","uses"},
|
|
as_numeric=1,
|
|
}
|
|
|
|
-- reading config table
|
|
local tool_definition = basic_functions.import_csv(minerdream.path.."/tools.txt",tool_cols)
|
|
|
|
for i,tdef in pairs(tool_definition) do
|
|
if (i ~= "default") and (minerdream.items[i] ~= nil) then
|
|
idef=table.copy(minerdream.items[i])
|
|
local tooldef={}
|
|
for col in pairs(tdef) do
|
|
tooldef=basic_functions.parse_tree(tooldef,col,tdef[col])
|
|
end
|
|
if minerdream.itemdef[i]==nil then
|
|
minerdream.itemdef[i]={}
|
|
end
|
|
-- check specific tools/weapons
|
|
for _,tool in pairs({"pick","axe","sword","shovel","spear"}) do
|
|
if tooldef[tool] ~= nil then
|
|
local ttv=tooldef[tool]
|
|
tdesc=core.colorize("#"..idef.tierdef.color, S(i:gsub("^%l", string.upper)).." "..S(tool:gsub("^%l", string.upper)).."\n")..
|
|
core.colorize("#A0A0A0", "tier: "..idef.tierdef.name.." ("..idef.tierdef.desc..")")
|
|
-- check special attributes of tool definition and use fallback definitions
|
|
if tooldef.uses then
|
|
tdesc=tdesc.."\n"..core.colorize("#A0A0A0",S("Uses")..": "..tooldef.uses)
|
|
end
|
|
if ttv.maxlevel then
|
|
tdesc=tdesc.."\n"..core.colorize("#A0A0A0",S("Max. Level")..": "..ttv.maxlevel)
|
|
end
|
|
if ttv.fleshy then
|
|
tdesc=tdesc.."\n"..core.colorize("#A0A0A0",S("Damage")..": "..ttv.fleshy)
|
|
end
|
|
tt_def={description=tdesc,
|
|
inventory_image=minerdream.modname.."_"..tool.."_"..i..".png",
|
|
range=tooldef.range or 2,
|
|
groups={weapon=1},
|
|
tool_capabilities={max_drop_level = 1,groupcaps={},
|
|
damage_groups = {fleshy = ttv.fleshy or 4},},
|
|
}
|
|
-- check if values for capabitlites exist
|
|
for _,gc in pairs({"cracky","crumbly","choppy","snappy"}) do
|
|
if ttv[gc] ~= nil then
|
|
local ml = 1
|
|
if tooldef.maxlevel ~=nil then
|
|
ml=tooldef.maxlevel
|
|
end
|
|
if ttv.maxlevel ~= nil then
|
|
ml = ttv.maxlevel
|
|
end
|
|
tt_def.tool_capabilities.groupcaps[gc]={times=table.copy(ttv[gc]),
|
|
uses=tooldef.uses,maxlevel=ml}
|
|
end
|
|
end
|
|
toolname=minerdream.modname..":"..tool.."_"..i
|
|
minetest.register_tool(toolname,tt_def)
|
|
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|