changed further to json

master
ademant 2019-07-17 22:40:53 +02:00
parent 3fbdc77e24
commit ac5dab422b
4 changed files with 289 additions and 237 deletions

View File

@ -142,47 +142,38 @@ minerdream.register_ore=function(i,tdef)
minerdream.register_ore_lump(i,tdef) minerdream.register_ore_lump(i,tdef)
end end
end end
if tdef.crack ~= nil then if tdef.ore ~= nil then
minerdream.register_ore_lump(i,tdef) if tdef.ore.crack ~= nil then
else minerdream.register_ore_lump(i,tdef)
-- if not already defined, then add mapgen parameter else
if tdef.scarcity ~= nil then -- if not already defined, then add mapgen parameter
needs_mapgen = true if tdef.ore.scarcity ~= nil then
mapgen_name=minerdream.modname..":"..i needs_mapgen = true
mapgen_name=minerdream.modname..":"..i
end
end end
end end
-- define mapgeneration for ores -- define mapgeneration for ores
if needs_mapgen then if needs_mapgen then
minerdream.register_mapgen(i,tdef,mapgen_name) minerdream.register_mapgen(i,tdef,mapgen_name,tdef.ore)
if tdef.nugget ~= nil then
minerdream.register_mapgen(i,tdef,mapgen_name.."_poor",tdef.nugget)
end
end end
if tdef.groups then -- define ore dust
-- define ore dust -- only makes sense if it can be grinded
-- only makes sense if it can be grinded if tdef.dust~= nil and minetest.get_modpath("technic") then
if tdef.groups.has_dust and minetest.get_modpath("technic") then minerdream.register_dust(i,tdef)
minerdream.register_dust(i,tdef) end
end -- register ingots
if tdef.ingot ~= nil then
-- define ingot minerdream.register_ingot(i,tdef)
if tdef.groups.has_bar then end
minerdream.register_ingot(i,tdef)
end if tdef.block ~= nil then
minerdream.register_block(i,tdef)
-- define ore bricks (ore + cobble)
if tdef.groups.has_brick then
minerdream.register_brick(i,tdef)
end
-- define ore blocks (9 ores)
if tdef.groups.has_block then
minerdream.register_block(i,tdef)
end
-- define bar stack
if tdef.groups.has_bar_block then
minerdream.register_bar_block(i,tdef)
end
end end
-- define armor and weapons -- define armor and weapons
@ -409,10 +400,11 @@ minerdream.register_ore_lump=function(ore_name,tdef)
if tdef.nugget ~= nil then if tdef.nugget ~= nil then
local poor_def=table.copy(ore_def) local poor_def=table.copy(ore_def)
local nugget_def=table.copy(lump_def) local nugget_def=table.copy(lump_def)
local poorimg=tdef.nugget.inventory_image or minerdream.modname.."_"..ore_name.."_poorore.png"
poor_def.description=S("Poor").." "..S(ore_name:gsub("^%l", string.upper)) poor_def.description=S("Poor").." "..S(ore_name:gsub("^%l", string.upper))
-- poor_def.name=poor_def.name.."_poor" -- poor_def.name=poor_def.name.."_poor"
poor_def.name=minerdream.modname..":stone_with_"..ore_name.."_poor" poor_def.name=minerdream.modname..":stone_with_"..ore_name.."_poor"
poor_def.tiles={"default_stone.png^"..minerdream.modname.."_"..ore_name.."_poorore.png"} poor_def.tiles={"default_stone.png^"..poorimg}
poor_def.groups.cracky= tdef.nugget.cracky or math.max(1,math.floor(tdef.crack/2)) -- poor ore should be easier to dig poor_def.groups.cracky= tdef.nugget.cracky or math.max(1,math.floor(tdef.crack/2)) -- poor ore should be easier to dig
nugget_def.description=ore_name:gsub("^%l", string.upper).." Nugget" nugget_def.description=ore_name:gsub("^%l", string.upper).." Nugget"
nugget_def.name=minerdream.modname..":"..ore_name.."_nugget" nugget_def.name=minerdream.modname..":"..ore_name.."_nugget"
@ -424,90 +416,84 @@ minerdream.register_ore_lump=function(ore_name,tdef)
end end
end end
minerdream.register_mapgen=function(ore_name,tdef,mapgen_name) minerdream.register_mapgen=function(ore_name,tdef,mapgen_name,odef)
local wherein={"default:stone"} local wherein={"default:stone"}
if tdef.groups.in_desert ~= nil then -- check, if ore can be found in desert stone if tdef.groups.in_desert ~= nil then -- check, if ore can be found in desert stone
if minetest.registered_items["default:desert_stone"] ~= nil then if minetest.registered_items["default:desert_stone"] ~= nil then
wherein={"default:stone","default:desert_stone"} wherein={"default:stone","default:desert_stone"}
end end
end end
local tscar=odef.scarcity or 13
local map_def={ore_type = "scatter", local map_def={ore_type = "scatter",
ore = mapgen_name, ore = mapgen_name,
wherein = wherein, wherein = wherein,
clust_scarcity = tdef.scarcity * tdef.scarcity * tdef.scarcity, clust_scarcity = tscar * tscar * tscar,
clust_num_ores = tdef.num_ores or 1, clust_num_ores = odef.num_ores or 1,
clust_size = tdef.clust_size or 1, clust_size = odef.clust_size or 1,
y_min = tdef.y_min or (-31000), y_min = odef.y_min or (-31000),
y_max = tdef.y_max or 0, y_max = odef.y_max or 0,
} }
if tdef.groups.has_nugget and tdef.groups.has_nugget>0 then
local poor_map_def=table.copy(map_def)
poor_map_def.ore=mapgen_name.."_poor"
minetest.register_ore(poor_map_def)
map_def.clust_scarcity=map_def.clust_scarcity*tdef.groups.has_nugget
map_def.clust_size=map_def.clust_size*tdef.groups.has_nugget
end
local_item_insert(ore_name,"map_def",map_def) local_item_insert(ore_name,"map_def",map_def)
minetest.register_ore(map_def) minetest.register_ore(map_def)
end end
minerdream.register_ingot=function(ore_name,tdef) minerdream.register_ingot=function(ore_name,tdef)
local ingot_def=local_create_def(ore_name,"ingot",tdef.groups.has_bar,tdef) if tdef.ingot ~= nil then
ingot_def.groups["metal"]=tdef.tier or 1 -- setting metal group local idef=tdef.ingot
ingot_def.inventory_image=minerdream.modname.."_"..ore_name.."_ingot.png" local ingot_def=local_create_def(ore_name,"ingot",idef.crack or (tdef.ore.crack+1),tdef)
ingot_def.stack_max = minerdream.ingot_max_stack ingot_def.groups["metal"]=tdef.tier or 1 -- setting metal group
if tdef.ingot_name then --already defined and overridden with new image ingot_def.inventory_image=idef.inventory_image or minerdream.modname.."_"..ore_name.."_ingot.png"
if tdef.ingot_name == "" then ingot_def.stack_max = idef.maxstack or minerdream.ingot_max_stack
if tdef.ingot_name then --already defined and overridden with new image
if tdef.ingot_name == "" then
ingot_def.name=minerdream.modname..":"..ore_name.."_ingot"
minetest.register_craftitem(ingot_def.name,ingot_def)
else
ingot_def.name=nil
minetest.override_item(tdef.ingot_name,ingot_def)
minetest.register_alias(tdef.ingot_name,minerdream.modname..":"..ore_name.."_bar")
ingot_def.name=tdef.ingot_name
end
else -- not yet defined
ingot_def.name=minerdream.modname..":"..ore_name.."_ingot" ingot_def.name=minerdream.modname..":"..ore_name.."_ingot"
minetest.register_craftitem(ingot_def.name,ingot_def) minetest.register_craftitem(ingot_def.name,ingot_def)
else
ingot_def.name=nil
minetest.override_item(tdef.ingot_name,ingot_def)
minetest.register_alias(tdef.ingot_name,minerdream.modname..":"..ore_name.."_bar")
ingot_def.name=tdef.ingot_name
end end
else -- not yet defined -- if lump is defined and cooking time is given then register cooking recipe
ingot_def.name=minerdream.modname..":"..ore_name.."_ingot" if minerdream.items[ore_name].lump_def and tdef.lump.cooking_time then
minetest.register_craftitem(ingot_def.name,ingot_def) local lump_def=table.copy(minerdream.items[ore_name].lump_def)
end lump_def.ingot_name=ingot_def.name
-- if lump is defined and cooking time is given then register cooking recipe ingot_def.lump_name=lump_def.name
if minerdream.items[ore_name].lump_def and tdef.lump_cooking_time then lump_def.cooking_time=tdef.lump.cooking_time
local lump_def=table.copy(minerdream.items[ore_name].lump_def) -- check, if cooking recipe already registered
lump_def.ingot_name=ingot_def.name local output, decremented_input = minetest.get_craft_result({ method = "cooking", width = 1, items = { ItemStack(lump_def.name) }})
ingot_def.lump_name=lump_def.name if output.item:get_name() ~= ingot_def.name then
lump_def.cooking_time=tdef.lump_cooking_time -- print(ingot_def.name)
-- check, if cooking recipe already registered -- print(lump_def.name)
local output, decremented_input = minetest.get_craft_result({ method = "cooking", width = 1, items = { ItemStack(lump_def.name) }}) minetest.register_craft({type="cooking",
if output.item:get_name() ~= ingot_def.name then cooktime=tdef.lump.cooking_time,
print(ingot_def.name) output=ingot_def.name,
print(lump_def.name) recipe=lump_def.name,
minetest.register_craft({type="cooking", })
cooktime=tdef.lump_cooking_time, minerdream.items[ore_name].lump_def=lump_def
output=ingot_def.name, end
recipe=lump_def.name,
})
minerdream.items[ore_name].lump_def=lump_def
end end
end -- if technic loaded and dust registered than add recipes for dust
-- if technic loaded and dust registered than add recipes for dust if (tdef.dust~=nil) and minetest.get_modpath("technic") then
if tdef.groups.has_dust and minetest.get_modpath("technic") then if minerdream.items[ore_name].dust_def then
if minerdream.items[ore_name].dust_def then local dust_def=table.copy(minerdream.items[ore_name].dust_def)
local dust_def=table.copy(minerdream.items[ore_name].dust_def) local cooking_time=tdef.dust.cooking_time or 64
local cooking_time=tdef.cooking_time or 64 dust_def.cooking_time=cooking_time
cooking_time=math.ceil(cooking_time/minerdream.dust_cooking_time_reduce) minetest.register_craft({type="cooking",
dust_def.cooking_time=cooking_time cooktime=cooking_time,
print(ingot_def.name) output=ingot_def.name,
print(dust_def.name) recipe=dust_def.name,
minetest.register_craft({type="cooking", })
cooktime=cooking_time, technic.register_grinder_recipe({input = {ingot_def.name}, output = dust_def.name,time=cooking_time})
output=ingot_def.name, local_item_insert(ore_name,"dust_def",dust_def)
recipe=dust_def.name, end
})
technic.register_grinder_recipe({input = {ingot_def.name}, output = dust_def.name,time=cooking_time})
local_item_insert(ore_name,"dust_def",dust_def)
end end
local_item_insert(ore_name,"ingot_def",ingot_def)
end end
local_item_insert(ore_name,"ingot_def",ingot_def)
end end
minerdream.register_brick=function(ore_name,tdef) minerdream.register_brick=function(ore_name,tdef)
@ -550,7 +536,7 @@ end
minerdream.register_weapons=function(ore_name,tdef) minerdream.register_weapons=function(ore_name,tdef)
local ingot_name=minerdream.items[ore_name].ingot_def.name local ingot_name=minerdream.items[ore_name].ingot_def.name
for _,tool in ipairs(minerdream.tools_to_register) do for _,tool in ipairs(minerdream.tools_to_register) do
if tdef.groups["has_"..tool] ~= nil then if tdef[tool] ~= nil then
local stick = "group:stick" local stick = "group:stick"
if tool == "bow" then -- for bows use stick for cotton or steel-wire if tool == "bow" then -- for bows use stick for cotton or steel-wire
stick = "farming:cotton" stick = "farming:cotton"
@ -562,7 +548,7 @@ minerdream.register_weapons=function(ore_name,tdef)
end end
end end
else else
if tdef.tool_stick ~= nil then if tdef[tool].tool_stick ~= nil then
stick=tdef.tool_stick stick=tdef.tool_stick
end end
end end
@ -575,34 +561,38 @@ minerdream.register_weapons=function(ore_name,tdef)
end end
minerdream.register_dust=function(ore_name,tdef) minerdream.register_dust=function(ore_name,tdef)
local dust_def=local_create_def(ore_name,"dust",tdef.groups.has_dust,tdef) if tdef.dust~=nil then
dust_def.tiles={minerdream.modname.."_"..ore_name.."_dust.png"} local ddef=tdef.dust
dust_def.inventory_image=minerdream.modname.."_"..ore_name.."_dust.png" local dust_def=local_create_def(ore_name,"dust",ddef.cracky or (tdef.ore.cracky-1),tdef)
local overridden = false local dustimg=ddef.inventory_image or minerdream.modname.."_"..ore_name.."_dust.png"
dust_def.tiles={dustimg}
-- check, if dust is already defined dust_def.inventory_image=dustimg
if minerdream.items[ore_name].lump_def then local overridden = false
local lumpdef=minerdream.items[ore_name].lump_def
if lumpdef.override_mod ~= nil then -- check, if dust is already defined
local override_dust=lumpdef.override_mod..":"..ore_name.."_dust" if minerdream.items[ore_name].lump_def then
if minetest.registered_items[override_dust] ~= nil then local lumpdef=minerdream.items[ore_name].lump_def
-- override existing dust items if lumpdef.override_mod ~= nil then
overridden = true local override_dust=lumpdef.override_mod..":"..ore_name.."_dust"
minetest.register_node(":"..override_dust,dust_def) if minetest.registered_items[override_dust] ~= nil then
-- override existing dust items
overridden = true
minetest.register_node(":"..override_dust,dust_def)
end
end end
end end
end -- if not defined, register node and grinding recipe
-- if not defined, register node and grinding recipe if not overridden then
if not overridden then minetest.register_node(minerdream.modname..":"..ore_name.."_dust",dust_def)
minetest.register_node(minerdream.modname..":"..ore_name.."_dust",dust_def) if minerdream.items[ore_name].lump_def then
if minerdream.items[ore_name].lump_def then local lump_def=table.copy(minerdream.items[ore_name].lump_def)
local lump_def=table.copy(minerdream.items[ore_name].lump_def) local grind_time=ddef.cooking_time or math.ceil((tdef.lump.cooking_time or 64)/minerdream.dust_cooking_time_reduce)
local grind_time=math.ceil((tdef.lump_cooking_time or 64)/minerdream.dust_cooking_time_reduce) lump_def.grind_time=grind_time
lump_def.grind_time=grind_time local_item_insert(ore_name,"lump_def",lump_def)
local_item_insert(ore_name,"lump_def",lump_def) technic.register_grinder_recipe({input = {lump_def.name}, output = dust_def.name.." 2",time=grind_time})
technic.register_grinder_recipe({input = {lump_def.name}, output = dust_def.name.." 2",time=grind_time}) dust_def.grind_source=lump_def.name
dust_def.grind_source=lump_def.name end
local_item_insert(ore_name,"dust_def",dust_def)
end end
local_item_insert(ore_name,"dust_def",dust_def)
end end
end end

View File

@ -1,22 +1,46 @@
{"clust_size":3, {"color":"AA2435D0",
"color":"AA2435D0",
"crack":5,
"groups":{"drop_as_lump":1, "groups":{"drop_as_lump":1,
"has_bar":1, "has_bar":1,
"has_dust":1,
"has_lump":1,
"has_nugget":3,
"in_desert":1, "in_desert":1,
"is_metall":6}, "is_metall":6},
"lump":{ "block":{
"inventory_image":"minerdream_adamantite_lump.png", "inventory_image":"minerdream_adamantite_block.png"
"stack_max":99 },
"ingot":{
"inventory_image":"minerdream_adamantite_ingot.png"
},
"ore":{
"crack":5,
"inventory_image":"minerdream_adamantite_ore.png"
},
"lump":{
"crack":5,
"inventory_image":"minerdream_adamantite_lump.png",
"stack_max":99,
"cooking_time":58
},
"dust":{
"cracky":3,
"grind_time":32,
"cooking_time":28,
"inventory_image":"minerdream_adamantite_dust.png"
},
"mapgen":{
"clust_size":3,
"num_ores":4,
"scarcity":15,
"y_max":-2300,
"y_min":-31000
},
"nugget":{
"inventory_image":"minerdream_adamantite_poorore.png",
"cracky":3,
"clust_size":3,
"num_ores":5,
"scarcity":13,
"y_max":-2000
}, },
"lump_cooking_time":58,
"name":"adamantite", "name":"adamantite",
"num_ores":4,
"ore_modname":"minerdream", "ore_modname":"minerdream",
"scarcity":14, "tier":6
"tier":6, }
"y_max":-2300,
"y_min":-31000}

View File

@ -1,95 +1,129 @@
{"axe":{"choppy":[1.5,0.5,0.3], {
"fleshy":10, "block":{
"maxlevel":3}, "inventory_image":"minerdream_adamantite_block.png"
"boots":{"choppy":2, },
"cracky":2, "ingot":{
"crumbly":1, "inventory_image":"minerdream_adamantite_ingot.png"
"fleshy":13.5, },
"gravity":-0.09, "ore":{
"heal":8.25, "crack":4,
"jump":0.09, "inventory_image":"minerdream_adamantite_ore.png"
"level":2, },
"snappy":3, "lump":{
"speed":0.09, "crack":4,
"use":80}, "inventory_image":"minerdream_adamantite_lump.png",
"chestplate":{"choppy":2, "stack_max":99,
"cracky":2, "cooking_time":32
"crumbly":1, },
"fleshy":18.5, "dust":{
"gravity":-0.09, "cracky":2,
"heal":8.25, "grind_time":18,
"jump":0.09, "cooking_time":20,
"level":2, "inventory_image":"minerdream_adamantite_dust.png"
"snappy":3, },
"speed":0.09, "mapgen":{
"use":80}, "clust_size":3,
"clust_size":3, "num_ores":3,
"color":"3F7390D0", "scarcity":15,
"crack":4, "y_max":-500,
"groups":{"drop_as_lump":1, "y_min":-31000
"has_bar":1, },
"has_bar_block":3, "nugget":{
"has_block":1, "inventory_image":"minerdream_adamantite_poorore.png",
"has_bow":1, "cracky":2,
"has_brick":3, "clust_size":3,
"has_dust":1, "num_ores":3,
"has_lump":1, "scarcity":13,
"has_nugget":3, "y_max":-350
"has_shovel":1, },
"in_desert":1, "color":"3F7390D0",
"is_metall":5}, "groups":{"drop_as_lump":1,
"helmet":{"choppy":2, "has_bar":1,
"cracky":2, "has_bow":1,
"crumbly":1, "has_brick":3,
"fleshy":13.5, "in_desert":1,
"gravity":-0.09, "is_metall":5},
"heal":8.25, "name":"cobalt",
"jump":0.09, "ore_modname":"minerdream",
"level":2, "tier":5,
"snappy":3, "tool_cotton":"steel_wire",
"speed":0.09, "tools":{
"use":80}, "shovel":{"crumbly":[0.8,0.3,0.15],
"leggings":{"choppy":2, "fleshy":8,
"cracky":2, "tool_stick":"minerdream:steelstick",
"crumbly":1, "maxlevel":3},
"fleshy":18.5, "spear":{"fleshy":11,
"gravity":-0.09, "range":6.9,
"heal":8.25, "tool_stick":"minerdream:steelstick",
"jump":0.09, "snappy":[1.5,0.7,0.1]},
"level":2, "sword":{"fleshy":10,
"snappy":3, "tool_stick":"minerdream:steelstick",
"speed":0.09, "maxlevel":3,
"use":80}, "snappy":[1.5,0.7,0.1]},
"lump_cooking_time":32, "pick":{"cracky":[1.5,0.7,0.25,3.5,5],
"name":"cobalt", "tool_stick":"minerdream:steelstick",
"num_ores":3, "fleshy":9,
"ore_modname":"minerdream", "maxlevel":3},
"pick":{"cracky":[1.5,0.7,0.25,3.5,5], "axe":{"choppy":[1.5,0.5,0.3],
"fleshy":9, "tool_stick":"minerdream:steelstick",
"maxlevel":3}, "fleshy":10,
"scarcity":15, "maxlevel":3}
"shields":{"choppy":2, },
"cracky":2, "3d_armor":{
"crumbly":1, "shields":{"choppy":2,
"fleshy":13.5, "cracky":2,
"gravity":-0.09, "crumbly":1,
"heal":8.25, "fleshy":13.5,
"jump":0.09, "gravity":-0.09,
"level":2, "heal":8.25,
"snappy":3, "jump":0.09,
"speed":0.09, "level":2,
"use":80}, "snappy":3,
"shovel":{"crumbly":[0.8,0.3,0.15], "speed":0.09,
"fleshy":8, "use":80},
"maxlevel":3}, "helmet":{"choppy":2,
"spear":{"fleshy":11, "cracky":2,
"range":6.9, "crumbly":1,
"snappy":[1.5,0.7,0.1]}, "fleshy":13.5,
"sword":{"fleshy":10, "gravity":-0.09,
"maxlevel":3, "heal":8.25,
"snappy":[1.5,0.7,0.1]}, "jump":0.09,
"tier":5, "level":2,
"tool_cotton":"steel_wire", "snappy":3,
"tool_stick":"minerdream:steelstick", "speed":0.09,
"y_max":-500, "use":80},
"y_min":-31000} "leggings":{"choppy":2,
"cracky":2,
"crumbly":1,
"fleshy":18.5,
"gravity":-0.09,
"heal":8.25,
"jump":0.09,
"level":2,
"snappy":3,
"speed":0.09,
"use":80},
"boots":{"choppy":2,
"cracky":2,
"crumbly":1,
"fleshy":13.5,
"gravity":-0.09,
"heal":8.25,
"jump":0.09,
"level":2,
"snappy":3,
"speed":0.09,
"use":80},
"chestplate":{"choppy":2,
"cracky":2,
"crumbly":1,
"fleshy":18.5,
"gravity":-0.09,
"heal":8.25,
"jump":0.09,
"level":2,
"snappy":3,
"speed":0.09,
"use":80}
}
}

View File

@ -10,5 +10,9 @@ for i,oc in pairs(ore_configs) do
ore=string.split(oc,'.')[1] ore=string.split(oc,'.')[1]
local inconfig=basic_functions.read_file(minerdream.path..'/config/'..oc) local inconfig=basic_functions.read_file(minerdream.path..'/config/'..oc)
local json_conf=minetest.parse_json(inconfig) local json_conf=minetest.parse_json(inconfig)
minerdream.register_ore(ore,json_conf) if json_conf==nil then
print("wrong config:"..i)
else
minerdream.register_ore(ore,json_conf)
end
end end