merge into master

master
ademant 2019-02-08 10:59:01 +01:00
commit 1ba2e91a47
1045 changed files with 13259 additions and 14774 deletions

View File

@ -1,2 +0,0 @@
# Minerdream_mod
A mod, that makes minig way more fun, and is a replacement for Xtraores, which I abandoned.

170
api.lua
View File

@ -1,170 +0,0 @@
minerdream.register_item = function(ldef,tier_definition,ltype)
local tier=1
if ldef.tier then
tier = ldef.tier
end
local tdef=tier_definition[tier]
local stack_max=minerdream.max_stack
if ldef.max_stack then
stack_max=ldef.max_stack
end
local lump_def={
name=minetest.get_current_modname()..":"..ldef.name.."_"..ltype,
description=""..core.colorize(tdef.color,ldef.name.." "..ltype.."\n")..core.colorize("#A0A0A0","tier: "..tier.." ("..tdef.desc..")"),
inventory_image=minetest.get_current_modname().."_"..ldef.name.."_"..ltype..".png",
stack_max=stack_max,
}
-- print(dump(lump_def))
minetest.register_craftitem(lump_def.name,lump_def)
end
local local_register_armor = function(aname,adef)
adef.description=aname..core.colorize("#A0A0A0", "Defence: "..adef.armor_groups.fleshy.."\n")..
core.colorize("#A0A0A0", "heal: "..(adef.groups.armor_heal or 0).." \n")..
core.colorize("#A0A0A0", "walking speed "..(100*(adef.groups.physics_speed or 0)).."%\n")..
core.colorize("#A0A0A0", "gravity "..(100*(adef.groups.physics_gravity or 0)).."%\n")..
core.colorize("#A0A0A0", "jump force "..(100*(adef.groups.physics_jump or 0)).."%\n")
-- print(dump(adef))
armor:register_armor(adef.name,adef)
end
minerdream.register_armor = function(adef,tier_definition)
local tdef=tier_definition[adef.tier]
local agroups={armor_heal=adef.heal,armor_use=adef.use,
physics_jump=adef.jump,physics_speed=adef.speed,physics_gravity=adef.gravity}
local desc=""..core.colorize("#A0A0A0","tier "..tdef.name.." ("..tdef.desc..")\n")
local damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}
local modname=minetest.get_current_modname()
local arm_trans={helmet="armor_head",chestplate="armor_torso",leggings="armor_legs",
boots="armor_feet",shield="armor_shield"}
-- print(dump(adef))
for _,arm in ipairs({"helmet","chestplate","leggings","boots","shield"}) do
-- print(arm.."_fleshy")
if adef[arm.."_fleshy"] then
local armdef={name=modname..":"..arm.."_"..adef.name,
desc_name=adef.name.." "..arm,
inventory_image=modname.."_inv_"..arm.."_"..adef.name..".png",
groups={armor_heal=adef.heal,armor_use=adef.use,physics_jump=adef.jump,
physics_speed=adef.speed,physics_gravity=adef.gravity},
armor_groups = {fleshy = adef[arm.."_fleshy"]},
damage_groups=damage_groups,
}
armdef.groups[arm_trans[arm]] = 1
-- print(dump(armdef))
local hdesc=""..core.colorize(tdef.color,adef.name.." "..arm.."\n")..desc
-- print(hdesc)
local_register_armor(hdesc,armdef)
end
end
end
local time_scaled={[1]=1,[2]=0.4,[3]=0.16,[4]=2.4,[5]=3.2,[6]=4.8}
local tool_punch_interval={
pick = 1, sword = 0.75, shovel = 1, axe = 1}
local tool_damage_groups = {
pick = 1, sword = 1.2, shovel = 0.7, axe = 1.1}
minerdream.register_tool = function(tdef,tier_definition)
local trdef=tier_definition[tdef.tier]
local modname=tdef.modname
for _,tool in pairs({"pick","sword","shovel","axe"}) do
if tdef.groups[tool] then
print(dump(tdef))
local lpi=tdef.full_punch_intervall * tool_punch_interval[tool]
local ldg = tdef.tool_fleshy * tool_damage_groups[tool]
tool_def={name=modname..":"..tool.."_"..tdef.name,
desc_name=tdef.name.." "..tool,
description = "".. core.colorize("#00FF00", tdef.name.." "..tool.."\n")
..core.colorize("#A0A0A0", "tier: "..tdef.tier.." ("..trdef.desc..")\n")
..core.colorize("#A0A0A0", "mele damage: "..ldg.."\n")
..core.colorize("#A0A0A0", "range: "..tdef.tool_range.."\n")
..core.colorize("#A0A0A0", "attack interval: "..lpi),
inventory_image=modname.."_"..tool.."_"..tdef.name..".png",
wield_scale = {x=tdef.wield_scale,y=tdef.wield_scale,z=tdef.wield_scale},
range = tdef.tool_range,
tool_capabilities = {
full_punch_interval = lpi,
max_drop_level = 1,
groupcaps = {
},
damage_goups = {fleshy = ldg},
}
}
for tg in pairs({"cracky","crumbly","choppy","snappy"}) do
if tdef[tool.."_"..tg.."_times"] then
tool_def.tool_capabilities.groupcaps[tg]={}
for ind=1,tdef.groups[tool] do
tool_def.tool_capabilities.groupcaps[tg][ind]=tdef[tool.."_"..tg.."_times"] * time_scaled[ind]
end
end
end
-- print(dump(tool_def))
minetest.register_tool(tool_def.name,tool_def)
end
end
end
local function dust_register(element)
minetest.register_node("minerdream:"..element.."_dust", {
description = element.." dust",
tiles = {"minerdream_dust.png"},
inventory_image = {"minerdream_dust.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
end
local function block_register(element,crack)
minetest.register_node("minerdream:"..element.."_block", {
description = element.." block",
tiles = {"minerdream_"..element.."_block.png"},
groups = {cracky = crack},
sounds = default.node_sound_stone_defaults(),
})
end
function minerdream.ore_register(element,crack,bdust,bblock,desert)
local stonename = "stone"
local stone_name = "stone"
if desert then
stonename = "desertstone"
stone_name = "desert_stone"
end
minetest.register_node("minerdream:"..stonename.."_with_"..element, {
description = element.." ore",
tiles = {"default_"..stone_name..".png^minerdream_"..element.."_ore.png"},
groups = {cracky = crack},
drop = 'minerdream:'..element..'_lump',
sounds = default.node_sound_stone_defaults(),
})
if bdust then
dust_register(element)
end
if bblock then
block_register(element,crack)
end
end
function minerdream.stone_register(element,crack)
minetest.register_node("minerdream:stone_with_"..element, {
description = element.." ore",
tiles = {"default_stone.png^minerdream_"..element.."_ore.png"},
groups = {cracky = crack},
drop = 'minerdream:'..element..'_lump',
sounds = default.node_sound_stone_defaults(),
})
end
minerdream.register_barblock(element)
minetest.register_node("minerdream:"..element.."_bar_block", {
description = element.." bar stack",
drawtype = "mesh",
mesh = "bars.obj",
tiles = {"minerdream_"..element.."_bar_block.png"},
paramtype = "light",
is_ground_content = true,
groups = {snappy=3,dig_immediate=3},
})
end

View File

@ -1,36 +0,0 @@
if minetest.global_exists("armor") and armor.elements then
table.insert(armor.elements, "accessory")
local mult = armor.config.level_multiplier or 1
armor.config.level_multiplier = mult * 1.1
end
---------------------accessoaries--------------------
armor:register_armor("minerdream:accessory_speedring", {
description = "".. core.colorize("#0040FF", "Ring of speed\n")..core.colorize("#A0A0A0", "tier: 5 (extra rare)\n")..core.colorize("#A0A0A0", "walking speed + 50%\n")..core.colorize("#A0A0A0", "type: accessory "),
inventory_image = "minerdream_inv_accessory_speedring.png",
groups = {armor_accessory=1, armor_heal=0.0, armor_use=0,
physics_jump=0.0, physics_speed=0.5, physics_gravity=-0.00},
armor_groups = {fleshy=0.0},
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
})
armor:register_armor("minerdream:accessory_protectionring", {
description = "".. core.colorize("#0040FF", "Ring of protection\n")..core.colorize("#A0A0A0", "tier: 5 (extra rare)\n")..core.colorize("#A0A0A0", "heal + 7.5%\n")..core.colorize("#A0A0A0", "type: accessory "),
inventory_image = "minerdream_inv_accessory_protectionring.png",
groups = {armor_accessory=1, armor_heal=7.5, armor_use=0,
physics_jump=0.0, physics_speed=0.0, physics_gravity=-0.00},
armor_groups = {fleshy=0.0},
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
})
---------------------special grindable-------------
armor:register_armor("minerdream:accessory_slimering", {
description = "".. core.colorize("#40FF80", "Slimy ring\n")..core.colorize("#A0A0A0", "tier: 4 (rare)\n")..core.colorize("#A0A0A0", "jump force + 25%\n")..core.colorize("#A0A0A0", "gravity - 5%\n")..core.colorize("#A0A0A0", "type: accessory "),
inventory_image = "minerdream_inv_accessory_slimering.png",
groups = {armor_accessory=1, armor_heal=0.0, armor_use=0,
physics_jump=0.25, physics_speed=0.5, physics_gravity=-0.05},
armor_groups = {fleshy=0.0},
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
})

View File

@ -1,61 +0,0 @@
if minetest.get_modpath("awards") then
awards.register_achievement("minerdream_caveman", {
title = ("Caveman"),
description = ("You crafted yourself a flint spear, but what if I told you... in 21th century, there's way better weapons than that!"),
icon = "minerdream_achievement_caveman.png",
trigger = {
type = "craft",
item = "minerdream:spear_flint",
target = 1
}
})
awards.register_achievement("minerdream_armed", {
title = ("Armed!"),
description = ("Craft a handgun"),
icon = "minerdream_achievement_armed.png",
trigger = {
type = "craft",
item = "minerdream:handgun",
target = 1
}
})
awards.register_achievement("minerdream_secondminer", {
title = ("Second place miner"),
description = ("You've found some silver! Head for the gold now."),
icon = "minerdream_achievement_secondminer.png",
background = "awards_bg_mining.png",
trigger = {
type = "dig",
node = "minerdream:stone_with_silver",
target = 1
}
})
awards.register_achievement("minerdream_neatjunk", {
title = ("Neat junk!"),
description = ("Break the most common loot box. I wonder what's inside?"),
icon = "minerdream_achievement_neatjunk.png",
background = "awards_bg_mining.png",
trigger = {
type = "dig",
node = "minerdream:treasure1",
target = 1
}
})
awards.register_achievement("minerdream_health", {
title = ("Maintaining good health"),
description = ("Consume a vitamin pill for the first time"),
icon = "minerdream_achievement_health.png",
trigger = {
type = "eat",
item = "minerdream:vitamin",
target = 1
}
})
end

View File

@ -1,816 +0,0 @@
-----------slimeblocks----------------
minetest.register_node("minerdream:slimeblock_green", {
description = "Green block of slime",
tiles = {"minerdream_slimeblock_green.png"},
groups = {crumbly = 3,bouncy=75,fall_damage_add_percent=-50},
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("minerdream:slimeblock_blue", {
description = "Blue block of slime",
tiles = {"minerdream_slimeblock_blue.png"},
groups = {crumbly = 3,bouncy=80,fall_damage_add_percent=-55},
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("minerdream:slimeblock_red", {
description = "Red block of slime",
tiles = {"minerdream_slimeblock_red.png"},
groups = {crumbly = 3,bouncy=85,fall_damage_add_percent=-60},
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("minerdream:slimeblock_yellow", {
description = "Yellow block of slime",
tiles = {"minerdream_slimeblock_yellow.png"},
groups = {crumbly = 3,bouncy=90,fall_damage_add_percent=-65},
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("minerdream:slimeblock_purple", {
description = "Purple block of slime",
tiles = {"minerdream_slimeblock_purple.png"},
groups = {crumbly = 3,bouncy=95,fall_damage_add_percent=-70},
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("minerdream:slimeblock_brown", {
description = "Brown block of slime",
tiles = {"minerdream_slimeblock_brown.png"},
groups = {crumbly = 3,bouncy=100,fall_damage_add_percent=-75},
sounds = default.node_sound_sand_defaults(),
})
-------------ores--------------
minetest.register_node("minerdream:stone_with_onyx", {
description = "Onyx ore",
tiles = {"default_stone.png^minerdream_onyx_ore.png"},
groups = {cracky = 5},
drop = 'minerdream:onyx',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:stone_with_aquamarine", {
description = "Aquamarine ore",
tiles = {"minerdream_aquamarine_rock.png"},
groups = {cracky = 5},
drawtype = "mesh",
paramtype = "light",
sunlight_propagates = true,
mesh = "gemstone_cubic_pillars.obj",
drop = 'minerdream:aquamarine',
sounds = default.node_sound_stone_defaults(),
selection_box = {
type = "fixed",
fixed = {
{-0.4, -0.5, -0.4, 0.4, 0.0, 0.4},
},
},
node_box = {
type = "fixed",
fixed = {
{-0.4, -0.5, -0.4, 0.4, 0.0, 0.4},
},
},
})
minetest.register_node("minerdream:stone_with_topaz", {
description = "Topaz ore",
tiles = {"minerdream_topaz_rock.png"},
groups = {cracky = 5},
drawtype = "mesh",
paramtype = "light",
sunlight_propagates = true,
mesh = "gemstone_cubic.obj",
drop = 'minerdream:topaz',
sounds = default.node_sound_stone_defaults(),
selection_box = {
type = "fixed",
fixed = {
{-0.4, -0.5, -0.4, 0.4, 0.0, 0.4},
},
},
node_box = {
type = "fixed",
fixed = {
{-0.4, -0.5, -0.4, 0.4, 0.0, 0.4},
},
},
})
if minetest.get_modpath("moreores") then
minetest.override_item("moreores:mineral_silver", {
description = "Silver ore",
tiles = {"default_stone.png^minerdream_silver_ore.png"},
groups = {cracky = 3},
drop = 'moreores:mineral_silver_lump',
sounds = default.node_sound_stone_defaults(),
})
minetest.override_item("moreores:silver_lump", {
description = "Silver lump",
inventory_image = {"default_stone.png^minerdream_silver_lump.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
end
if minetest.get_modpath("technic") then
minetest.override_item("technic:mineral_lead", {
description = "Lead ore",
tiles = {"default_stone.png^minerdream_lead_ore.png"},
groups = {cracky = 2},
drop = 'moreores:mineral_lead_lump',
sounds = default.node_sound_stone_defaults(),
})
minetest.override_item("technic:lead_lump", {
description = "Lead lump",
inventory_image = {"default_stone.png^minerdream_lead_lump.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
end
stone_register("spinel",5)
stone_register("garnet",4)
stone_register("bituminous_coal",4)
stone_register("jade",4)
stone_register("amethyst",4)
-----------------desert ores-----------------
minetest.register_node("minerdream:desertstone_with_richiron", {
description = "Rich desert iron ore",
tiles = {"default_desert_stone.png^minerdream_richiron_ore.png"},
groups = {cracky = 2},
drop = 'default:iron_lump 2',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:desertstone_with_poorgold", {
description = "Poor desert gold ore",
tiles = {"default_desert_stone.png^minerdream_poorgold_ore.png"},
groups = {cracky = 3},
drop = 'minerdream:gold_nugget 1',
sounds = default.node_sound_stone_defaults(),
})
--------------marble---------------
local function register_marble_intern(color,crack)
minetest.register_node("minerdream:marble_"..color, {
description = color.." marble",
tiles = {"minerdream_marble_"..color..".png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
end
local function register_marble(color,crack)
register_marble_intern(color,3)
register_marble_intern(color.."_polished",3)
register_marble_intern(color.."_brick",3)
register_marble_intern(color.."_smallbrick",3)
minetest.register_node("minerdream:pillar_marble_"..color.."_middle", {
description = color.." marble pillar middle",
tiles = {"minerdream_marble_"..color..".png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, -0.1875, 0.375, 0.5, 0.1875}, -- NodeBox1
{-0.1875, -0.5, -0.375, 0.1875, 0.5, 0.375}, -- NodeBox2
{-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125}, -- NodeBox3
}
}
})
minetest.register_node("minerdream:pillar_marble_"..color.."_middle", {
description = color.." marble pillar middle",
tiles = {"minerdream_marble_"..color..".png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, -0.1875, 0.375, 0.5, 0.1875}, -- NodeBox1
{-0.1875, -0.5, -0.375, 0.1875, 0.5, 0.375}, -- NodeBox2
{-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125}, -- NodeBox3
}
}
})
minetest.register_node("minerdream:pillar_marble_"..color.."_bottom", {
description = color.." marble pillar bottom",
tiles = {"minerdream_marble_"..color..".png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, -0.1875, 0.375, 0.5, 0.1875}, -- NodeBox1
{-0.1875, -0.5, -0.375, 0.1875, 0.5, 0.375}, -- NodeBox2
{-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125}, -- NodeBox3
{-0.4375, -0.5, -0.4375, 0.4375, -0.375, 0.4375}, -- NodeBox4
{-0.3125, -0.5, -0.5, 0.3125, -0.375, 0.5}, -- NodeBox5
{-0.5, -0.5, -0.3125, 0.5, -0.375, 0.3125}, -- NodeBox6
}
}
})
minetest.register_node("minerdream:pillar_marble_"..color.."_top", {
description = color.." marble pillar top",
tiles = {"minerdream_marble_"..color..".png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, -0.1875, 0.375, 0.5, 0.1875}, -- NodeBox1
{-0.1875, -0.5, -0.375, 0.1875, 0.5, 0.375}, -- NodeBox2
{-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125}, -- NodeBox3
{-0.4375, 0.375, -0.4375, 0.4375, 0.5, 0.4375}, -- NodeBox4
{-0.3125, 0.375, -0.5, 0.3125, 0.5, 0.5}, -- NodeBox5
{-0.5, 0.375, -0.3125, 0.5, 0.5, 0.3125}, -- NodeBox6
}
}
})
minetest.register_node("minerdream:pillar_marble_"..color.."_both", {
description = color.." marble pillar both-sided",
tiles = {"minerdream_marble_"..color..".png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, -0.1875, 0.375, 0.5, 0.1875}, -- NodeBox1
{-0.1875, -0.5, -0.375, 0.1875, 0.5, 0.375}, -- NodeBox2
{-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125}, -- NodeBox3
{-0.4375, 0.375, -0.4375, 0.4375, 0.5, 0.4375}, -- NodeBox4
{-0.3125, 0.375, -0.5, 0.3125, 0.5, 0.5}, -- NodeBox5
{-0.5, 0.375, -0.3125, 0.5, 0.5, 0.3125}, -- NodeBox6
{-0.4375, -0.5, -0.4375, 0.4375, -0.375, 0.4375}, -- NodeBox9
{-0.3125, -0.5, -0.5, 0.3125, -0.375, 0.5}, -- NodeBox10
{-0.5, -0.5, -0.3125, 0.5, -0.375, 0.3125}, -- NodeBox11
}
}
})
end
register_marble("white",3)
register_marble("pink",3)
register_marble("red",3)
register_marble("blue",3)
register_marble("green",3)
register_marble("black",3)
------------lapis-------------
minetest.register_node("minerdream:lapislazuli_block", {
description = "Lapis lazuli block",
tiles = {"minerdream_lapislazuli_block.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_goldblock", {
description = "Lapis lazuli-gold block #1",
tiles = {"minerdream_lapislazuli_goldblock.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_goldblock_a", {
description = "Lapis lazuli-gold block #2",
tiles = {"minerdream_lapislazuli_goldblock_a.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_goldblock_b", {
description = "Lapis lazuli-gold block #3",
tiles = {"minerdream_lapislazuli_goldblock_b.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_goldblock_c", {
description = "Lapis lazuli-gold block #4",
tiles = {"minerdream_lapislazuli_goldblock_c.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_goldblock_d", {
description = "Lapis lazuli-gold block #5",
tiles = {"minerdream_lapislazuli_goldblock_d.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_brick", {
description = "Lapis lazuli bricks",
tiles = {"minerdream_lapislazuli_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_smallbrick", {
description = "Small lapis lazuli bricks",
tiles = {"minerdream_lapislazuli_smallbrick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuligold_brick", {
description = "lapis lazuli-gold bricks #1",
tiles = {"minerdream_lapislazuligold_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuligold_brick_a", {
description = "lapis lazuli-gold bricks #2",
tiles = {"minerdream_lapislazuligold_brick_a.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
---------------blox-----------
minetest.register_node("minerdream:onyx_block", {
description = "Onyx block",
tiles = {"minerdream_onyx_block.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:spinel_block", {
description = "Spinel block",
tiles = {"minerdream_spinel_block.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:garnet_block", {
description = "Garnet block",
tiles = {"minerdream_garnet_block.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:aquamarine_block", {
description = "Aquamarine block",
tiles = {"minerdream_aquamarine_block.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:jade_block", {
description = "Jade block",
tiles = {"minerdream_jade_block.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:amethyst_block", {
description = "Amethyst block",
tiles = {"minerdream_amethyst_block.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:topaz_block", {
description = "Topaz block",
tiles = {"minerdream_topaz_block.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:brass_block", {
description = "Brass block",
tiles = {"minerdream_brass_block.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
---------------brix----------
minetest.register_node("minerdream:onyx_brick", {
description = "Onyx bricks",
tiles = {"minerdream_onyx_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:spinel_brick", {
description = "Spinel bricks",
tiles = {"minerdream_spinel_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:aquamarine_brick", {
description = "Aquamarine bricks",
tiles = {"minerdream_aquamarine_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:garnet_brick", {
description = "Garnet bricks",
tiles = {"minerdream_garnet_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:jade_brick", {
description = "Jade bricks",
tiles = {"minerdream_jade_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:amethyst_brick", {
description = "Amethyst bricks",
tiles = {"minerdream_amethyst_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:topaz_brick", {
description = "Topaz bricks",
tiles = {"minerdream_topaz_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:rhodium_brick", {
description = "Rhodium bricks",
tiles = {"minerdream_rhodium_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:tantalum_brick", {
description = "Tantalum bricks",
tiles = {"minerdream_tantalum_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:ruthenium_brick", {
description = "Ruthenium bricks",
tiles = {"minerdream_ruthenium_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:cobalt_brick", {
description = "Cobalt bricks",
tiles = {"minerdream_cobalt_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:platinum_brick", {
description = "Platinum bricks",
tiles = {"minerdream_platinum_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
if not minetest.get_modpath("aluminium") then
minetest.register_node("minerdream:aluminum_brick", {
description = "Aluminum bricks",
tiles = {"minerdream_aluminum_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
end
minetest.register_node("minerdream:brass_brick", {
description = "Brass bricks",
tiles = {"minerdream_brass_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lead_brick", {
description = "Lead bricks",
tiles = {"minerdream_lead_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:zinc_brick", {
description = "Zinc bricks",
tiles = {"minerdream_zinc_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:copper_brick", {
description = "Copper bricks",
tiles = {"minerdream_copper_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:tin_brick", {
description = "Tin bricks",
tiles = {"minerdream_tin_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:iron_brick", {
description = "Iron bricks",
tiles = {"minerdream_iron_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:gold_brick", {
description = "Golden bricks",
tiles = {"minerdream_gold_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:potassium_brick", {
description = "Potassium bricks",
tiles = {"minerdream_potassium_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:calcium_brick", {
description = "Calcium bricks",
tiles = {"minerdream_calcium_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:nickel_brick", {
description = "Nickel bricks",
tiles = {"minerdream_nickel_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:silver_brick", {
description = "Silver bricks",
tiles = {"minerdream_silver_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
-------------gemstones---------------
minetest.register_node("minerdream:onyx", {
description = "".. core.colorize("#00FF00", "Onyx gemstone\n")..core.colorize("#A0A0A0", "tier: 6 (eepic)"),
drawtype = "mesh",
mesh = "jade.obj",
walkable = "true",
inventory_image = "minerdream_onyx_gem.png",
tiles = {"minerdream_onyx.png"},
paramtype = "light",
is_ground_content = true,
stack_max= 200,
groups = {snappy=3,dig_immediate=3},
selection_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
node_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
})
minetest.register_node("minerdream:spinel", {
description = "".. core.colorize("#00FF00", "Spinel gemstone\n")..core.colorize("#A0A0A0", "tier: 6 (epic)"),
drawtype = "mesh",
mesh = "topaz.obj",
walkable = "true",
inventory_image = "minerdream_spinel_gem.png",
tiles = {"minerdream_spinel.png"},
paramtype = "light",
stack_max= 200,
is_ground_content = true,
groups = {snappy=3,dig_immediate=3},
selection_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
node_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
})
minetest.register_node("minerdream:topaz", {
description = "".. core.colorize("#00FF00", "Topaz gemstone\n")..core.colorize("#A0A0A0", "tier: 6 (epic)"),
drawtype = "mesh",
mesh = "topaz.obj",
walkable = "true",
inventory_image = "minerdream_topaz_gem.png",
tiles = {"minerdream_topaz.png"},
paramtype = "light",
stack_max= 200,
is_ground_content = true,
groups = {snappy=3,dig_immediate=3},
selection_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
node_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
})
minetest.register_node("minerdream:aquamarine", {
description = "".. core.colorize("#00FF00", "Aquamarine gemstone\n")..core.colorize("#A0A0A0", "tier: 6 (epic)"),
drawtype = "mesh",
mesh = "aquamarine.obj",
walkable = "true",
inventory_image = "minerdream_aquamarine_gem.png",
tiles = {"minerdream_aquamarine.png"},
paramtype = "light",
is_ground_content = true,
stack_max= 200,
groups = {snappy=3,dig_immediate=3},
selection_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
node_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
})
minetest.register_node("minerdream:jade", {
description = "".. core.colorize("#0040FF", "Jade gemstone\n")..core.colorize("#A0A0A0", "tier: 5 (extra rare)"),
drawtype = "mesh",
mesh = "jade.obj",
walkable = "true",
inventory_image = "minerdream_jade_gem.png",
tiles = {"minerdream_jade.png"},
paramtype = "light",
is_ground_content = true,
stack_max= 200,
groups = {snappy=3,dig_immediate=3},
selection_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
node_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
})
minetest.register_node("minerdream:amethyst", {
description = "".. core.colorize("#0040FF", "Amethyst gemstone\n")..core.colorize("#A0A0A0", "tier: 5 (extra rare)"),
drawtype = "mesh",
mesh = "amethyst.obj",
walkable = "true",
inventory_image = "minerdream_amethyst_gem.png",
tiles = {"minerdream_amethyst.png"},
paramtype = "light",
is_ground_content = true,
stack_max= 200,
groups = {snappy=3,dig_immediate=3},
selection_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
node_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
})
minetest.register_node("minerdream:garnet", {
description = "".. core.colorize("#0040FF", "Garnet gemstone\n")..core.colorize("#A0A0A0", "tier: 5 (extra rare)"),
drawtype = "mesh",
mesh = "garnet.obj",
walkable = "true",
inventory_image = "minerdream_garnet_gem.png",
tiles = {"minerdream_garnet.png"},
paramtype = "light",
is_ground_content = true,
stack_max= 200,
groups = {snappy=3,dig_immediate=3},
selection_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
node_box = {
type = "fixed",
fixed = {
{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},
},
},
})
-------------bars---------------------
if not minetest.get_modpath("aluminium") then
minetest.register_node("minerdream:aluminum_bar_block", {
description = "Aluminum bar stack",
drawtype = "mesh",
mesh = "bars.obj",
tiles = {"minerdream_aluminum_bar_block.png"},
paramtype = "light",
is_ground_content = true,
groups = {snappy=3,dig_immediate=3},
})
end
minetest.register_node("minerdream:brass_bar_block", {
description = "Brass bar stack",
drawtype = "mesh",
mesh = "bars.obj",
tiles = {"minerdream_brass_bar_block.png"},
paramtype = "light",
is_ground_content = true,
groups = {snappy=3,dig_immediate=3},
})
minetest.register_node("minerdream:copper_bar_block", {
description = "Copper bar stack",
drawtype = "mesh",
mesh = "bars.obj",
tiles = {"minerdream_copper_bar_block.png"},
paramtype = "light",
is_ground_content = true,
groups = {snappy=3,dig_immediate=3},
})
minetest.register_node("minerdream:tin_bar_block", {
description = "Tin bar stack",
drawtype = "mesh",
mesh = "bars.obj",
tiles = {"minerdream_tin_bar_block.png"},
paramtype = "light",
is_ground_content = true,
groups = {snappy=3,dig_immediate=3},
})
minetest.register_node("minerdream:steel_bar_block", {
description = "Steel bar stack",
drawtype = "mesh",
mesh = "bars.obj",
tiles = {"minerdream_steel_bar_block.png"},
paramtype = "light",
is_ground_content = true,
groups = {snappy=3,dig_immediate=3},
})
minetest.register_node("minerdream:bronze_bar_block", {
description = "Bronze bar stack",
drawtype = "mesh",
mesh = "bars.obj",
tiles = {"minerdream_bronze_bar_block.png"},
paramtype = "light",
is_ground_content = true,
groups = {snappy=3,dig_immediate=3},
})

View File

@ -1,54 +0,0 @@
minerdream.max_stack = 999
local has_value = minerdream.has_value
local tier_cols={
col_num={"tier"},
}
local temp_tier_definition = minerdream.import_csv(minerdream.path.."/tiers.txt",tier_cols)
local tier_definition={}
for _,line in pairs(temp_tier_definition) do
-- print(dump(line))
tier_definition[tonumber(line.name)]=line
end
local ores_cols={
col_num={"clust_num_ores","clust_size","ymin","ymax","clust_scarcity",
"cooktime","tier","heal","use","jump","speed","gravity",
"helmet_fleshy","chestplate_fleshy","leggings_fleshy","boots_fleshy","shield_fleshy","tool_range",
"full_punch_intervall","wield_scale","pick_cracky_times","tool_uses","tool_maxlevel",
"pick_crumbly_times","tool_fleshy","axe_choppy_times","axe_fleshy","sword_snappy",
"sword_fleshy","shovel_crumbly_times","shovel_fleshy"},
groups_num={"crack","dust","block","desert","pick","axe","sword","shovel"}
}
local ores_definition = minerdream.import_csv(minerdream.path.."/config.txt",ores_cols)
for _,line in pairs(ores_definition) do
local modname=minetest.get_current_modname()
line.modname=minetest.get_current_modname()
if line.override then
line.modname = ":"..line.override
end
if line.check_mods then
if not minetest.get_modpath(line.check_mods) then
if line.lump then
minerdream.register_item(line,tier_definition,"lump")
end
if line.bar then
minerdream.register_item(line,tier_definition,"bar")
end
minerdream.ore_register(line.name,line.crack,line.dust,line.block)
else
modname=line.check_mods
line.modname=line.check_mods
end
end
minerdream.register_barblock(line.name)
if minetest.global_exists("armor") and armor.elements then
if line.heal then
minerdream.register_armor(line,tier_definition)
end
end
minerdream.register_tool(line,tier_definition)
end

View File

@ -1,32 +0,0 @@
name,lump,bar,barblock,pick,axe,sword,shovel,crack,dust,block,desert,check_mods,override,clust_num_ores,clust_size,ymin,ymax,clust_scarcity,cooktime,tier,heal,use,jump,speed,gravity,helmet_fleshy,chestplate_fleshy,leggings_fleshy,boots_fleshy,shield_fleshy,tool_range,full_punch_intervall,wield_scale,pick_cracky_times,tool_uses,tool_maxlevel,pick_crumbly_times,tool_fleshy,axe_choppy_times,axe_fleshy,sword_snappy,sword_fleshy,sword_full_punch_interval,shovel_crumbly_times,shovel_fleshy
rhodium,1,1,1,6,3,3,,5,1,1,,,,3,3,-31000,-1500,16 * 16 * 16,64,6,8.35,60,0.09,0.12,-0.08,15,20,20,15,15,5,0.8,1.55,1.25,105,3,0.6,12,1.2,12,1.25,14,0.6,,
calcium,1,1,,,,,,5,1,1,,,,5,2,-31000,420,12 * 12 * 12,2,,,,,,,,,,,,,,,,,,,,,,,,,,
tantalum,1,1,1,6,3,3,,5,1,1,,,,3,3,-31000,-1500,16 * 16 * 16,64,6,8.2,60,0.1,0.16,-0.09,14.5,19.5,19.5,14.5,14.5,5,0.8,1.55,1.25,105,3,0.6,12,1.2,12,1.25,14,0.6,,
ruthenium,1,1,1,6,3,3,3,4,1,1,,,,3,3,-31000,-500,15 * 15 * 15,32,5,8,80,0.08,0.08,-0.08,13.75,18.75,18.75,13.75,13.75,4.65,0.8,1.4,1.5,80,3,,10,1.5,11,1.5,11,0.65,0.8,9
cobalt,1,1,1,6,3,3,3,4,1,1,,,,3,3,-31000,-300,14 * 14 * 14,32,5,8.25,80,0.09,0.09,-0.09,13.5,18.5,18.5,13.5,13.5,4.65,0.7,1.4,1.5,80,3,,9,1.5,10,1.5,10,0.55,0.8,8
platinum,1,1,1,6,3,3,3,1,1,1,,,,4,3,-31000,-300,14 * 14 * 14,16,4,7.75,100,0.03,0.03,-0.03,13.5,18.5,18.5,13.5,13.5,4.5,0.8,1.3,1.7,60,3,,8,1.7,8,1.5,9,0.65,0.8,7
aluminum,,,,6,3,3,3,1,1,1,,aluminium,,4,3,-31000,-250,14 * 14 * 14,32,4,7.5,100,0.06,0.06,-0.06,13,18,18,13,13,4.5,0.65,1.3,1.85,60,3,,7,1.85,7,1.65,8,0.5,0.95,5
stainlesssteel,,1,,3,3,3,3,,,,,,,,,,,,,2,6,175,0.01,,0.01,10,15,15,10,10,4.25,0.95,1.1,3.6,100,2,,4.75,3.6,4.75,2.35,6.25,0.75,1.35,3.25
zinc,1,1,1,,,,,1,1,1,,,,7,3,-31000,-50,14 * 14 * 14,4,,,,,,,,,,,,,,,,,,,,,,,,,,
potassium,1,1,,,,,,3,1,1,,,,7,3,-31000,420,13 * 13 * 13,2,,,,,,,,,,,,,,,,,,,,,,,,,,
nickel,1,1,1,3,3,3,3,2,1,1,,,,7,3,-31000,-40,13 * 13 * 13,4,2,5,350,,-0.01,0.01,11,16,16,11,11,4.25,0.9,1.1,3.4,45,2,,5.25,2.2,6.75,2.2,6.75,0.7,1.3,3.75
coal,1,1,,,,,,3,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
sulfur,1,1,,,,,,3,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
lapislazuli,1,1,,,,,,3,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
saltpeter,1,1,,,,,,3,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
silver,1,1,1,3,3,3,3,3,,,,,moreores,3,2,-31000,-64,14 * 14 * 14,8,3,7.5,300,0.02,0.02,-0.02,11,16,16,11,11,4.3,0.9,1.15,2.4,45,3,,5.5,2.4,6,2.2,7,7.25,1.4,4
lead,1,1,1,3,3,3,3,2,,,,,technic,7,3,-31000,-70,13 * 13 * 13,4,3,0,600,,-0.01,0.04,11,16,16,11,11,4.3,1.6,1.15,2.4,5,3,,9,2.4,9,2,10,1.5,1.2,7
spinel,,,,,,,,5,,,,,,1,1,-31000,-1700,15 * 15 * 15,,,,,,,,,,,,,,,,,,,,,,,,,,,
garnet,,,,,,,,4,,,,,,1,1,-31000,-650,15 * 15 * 15,,,,,,,,,,,,,,,,,,,,,,,,,,,
bituminous_coal,,1,,,,,,4,,,,,,10,3,-31000,-500,13 * 13 * 13,,,,,,,,,,,,,,,,,,,,,,,,,,,
topaz,,,,,,,,4,,,,,,1,1,-31000,-1700,15 * 15 * 15,,,,,,,,,,,,,,,,,,,,,,,,,,,
jade,,,,,,,,4,,,,,,1,1,-31000,-650,15 * 15 * 15,,,,,,,,,,,,,,,,,,,,,,,,,,,
aquamarine,,,,,,,,4,,,,,,1,1,-31000,-1700,16 * 16 * 16,,,,,,,,,,,,,,,,,,,,,,,,,,,
amethyst,,,,,,,,4,,,,,,1,1,-31000,-650,15 * 15 * 15,,,,,,,,,,,,,,,,,,,,,,,,,,,
onyx,,,,,,,,4,,,,,,1,1,-31000,-1700,16 * 16 * 16,,,,,,,,,,,,,,,,,,,,,,,,,,,
defender,,,,,,,,,,,,,,,,,,,,5,8,80,0.08,0.08,-0.08,14.25,19.25,19.25,14.25,14.25,,,,,,,,,,,,,,,
scout,,,,,,,,,,,,,,,,,,,,5,8.75,80,0.1,0.13,-0.1,13.5,18.5,18.5,13.5,13.5,,,,,,,,,,,,,,,
shadow,,,,,,,,,,,,,,,,,,,,6,9,50,0.1,0.25,-0.1,14.5,19.5,19.5,14.5,14.5,,,,,,,,,,,,,,,
knight,,,,,,,,,,,,,,,,,,,,6,8.5,60,0.1,0.13,-0.09,15.25,20.25,20.25,15.25,15.25,,,,,,,,,,,,,,,
gold,,,,3,3,3,3,,,,,,,,,,,,,3,,,,,,,,,,,4.3,1.1,1.15,2.4,5,3,,5.5,2.2,6,2,7,0.975,1.2,4
flint,,,,3,3,,3,,,,,,,,,,,,,2,,,,,,,,,,,4.15,1.1,1,4.15,20,2,,4,2.65,5,,,,2.65,5

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +0,0 @@
default
3d_armor
shields
mana
mobs
awards?
hbhunger?
hunger?

View File

@ -1,60 +0,0 @@
minerdream.has_value = function(tab, val)
-- test if val is in tab
for index, value in ipairs(tab) do
if value == val then
return true
end
end
return false
end
local has_value=minerdream.has_value
-- read table "infile" where in "def" is defined, which cols are numbers and which belongs to a group
minerdream.import_csv = function(infile,def)
local file = io.open(infile, "r")
local outdata = {}
-- reading header with column names
local splitchar=","
if def.seperator then
splitchar=def.seperator
end
local header = file:read():gsub("\r",""):split(splitchar,true)
-- read each line, split in separat fields and stores in array
-- by header the value is stored as numeric, in the group environment or as text
for line in file:lines() do
local attribs = line:gsub("\r",""):split(splitchar,true)
local nrow={groups={}}
for i,d in ipairs(attribs) do
if d ~= "" then
local th=header[i]
local dsaved = false
if def.col_num then
if has_value(def.col_num,th) then
nrow[th] = tonumber(d)
dsaved = true
end
end
if def.groups_num then
if has_value(def.groups_num,th) then
nrow.groups[th]=tonumber(d)
dsaved = true
end
end
if not dsaved then
nrow[th]=d
end
end
end
if nrow.name then
outdata[nrow.name] = nrow
else
outdata[#outdata+1] = nrow
end
end
file:close()
return outdata
end

View File

@ -1,214 +0,0 @@
----rocks n stuff--------
local function mg_reg_ore(iore,ymin,ymax,clust)
minetest.register_ore({
ore_type = "blob",
ore = iore,
wherein = {"default:stone"},
clust_scarcity = 25 * 25 * 25,
clust_size = clust,
y_min = ymin,
y_max = ymax,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = {x = 5, y = 5, z = 5},
seed = 766,
octaves = 1,
persist = 0.0
},
})
end
mg_reg_ore("minerdream:marble_white",-5000,-50,5)
mg_reg_ore("minerdream:marble_pink",-5000,-125,5)
mg_reg_ore("minerdream:marble_red",-5000,-200,5)
mg_reg_ore("minerdream:marble_red",-5000,-300,5)
mg_reg_ore("minerdream:marble_blue",-5000,-425,5)
mg_reg_ore("minerdream:marble_black",-5000,-600,5)
---treasure---
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:treasure1",
wherein = "default:desert_stone",
clust_scarcity = 8 * 8 * 8,
clust_num_ores = 1,
clust_size = 1,
y_min = -200,
y_max = 50,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:treasure1",
wherein = "default:stone",
clust_scarcity = 8 * 8 * 8,
clust_num_ores = 1,
clust_size = 1,
y_min = -200,
y_max = 50,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:treasure2",
wherein = "default:desert_stone",
clust_scarcity = 10 * 10 * 10,
clust_num_ores = 1,
clust_size = 1,
y_min = -400,
y_max = -100,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:treasure2",
wherein = "default:stone",
clust_scarcity = 10 * 10 * 10,
clust_num_ores = 1,
clust_size = 1,
y_min = -400,
y_max = -100,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:treasure3",
wherein = "default:stone",
clust_scarcity = 12 * 12 * 12,
clust_num_ores = 1,
clust_size = 1,
y_min = -750,
y_max = -250,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:treasure4",
wherein = "default:stone",
clust_scarcity = 14 * 14 * 14,
clust_num_ores = 1,
clust_size = 1,
y_min = -2000,
y_max = -500,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:treasure5",
wherein = "default:stone",
clust_scarcity = 15 * 15 * 15,
clust_num_ores = 1,
clust_size = 1,
y_min = -2500,
y_max = -1500,
})
---ores---
local function mg_reg_ore_scat(iore,numores,clust,ymin,ymax,scarcity)
minetest.register_ore({
ore_type = "scatter",
ore = iore,
wherein = "default:stone",
clust_scarcity = scarcity,
clust_num_ores = numores,
clust_size = clust,
y_min = ymin,
y_max = ymax,
})
end
mg_reg_ore_scat("minerdream:stone_with_calcium",5,2,-31000,420,12 * 12 * 12)
mg_reg_ore_scat("minerdream:stone_with_potassium",7,3,-31000,420,13 * 13 * 13)
mg_reg_ore_scat("minerdream:stone_with_nickel",7,3,-31000,-40,13 * 13 * 13)
mg_reg_ore_scat("minerdream:stone_with_zinc",7,3,-31000,-50,14 * 14 * 14)
mg_reg_ore_scat("minerdream:stone_with_silver",3,2,-31000,-64,14 * 14 * 14)
mg_reg_ore_scat("minerdream:stone_with_lead",7,3,-31000,-70,13 * 13 * 13)
if not minetest.get_modpath("aluminium") then
mg_reg_ore_scat("minerdream:stone_with_aluminium",4,3,-31000,-250,14 * 14 * 14)
end
mg_reg_ore_scat("minerdream:stone_with_platinum",4,3,-31000,-300,14 * 14 * 14)
mg_reg_ore_scat("minerdream:stone_with_cobalt",3,3,-31000,-500,15 * 15 * 15)
mg_reg_ore_scat("minerdream:stone_with_ruthenium",3,3,-31000,-500,15 * 15 * 15)
mg_reg_ore_scat("minerdream:stone_with_amethyst",1,1,-31000,-650,15 * 15 * 15)
mg_reg_ore_scat("minerdream:stone_with_jade",1,1,-31000,-650,15 * 15 * 15)
mg_reg_ore_scat("minerdream:stone_with_garnet",1,1,-31000,-650,15 * 15 * 15)
mg_reg_ore_scat("minerdream:stone_with_bituminous_coal",10,3,-31000,-500,13 * 13 * 13)
mg_reg_ore_scat("minerdream:stone_with_topaz",1,1,-31000,-1700,15 * 15 * 15)
mg_reg_ore_scat("minerdream:stone_with_spinel",1,1,-31000,-1700,16 * 16 * 16)
mg_reg_ore_scat("minerdream:stone_with_aquamarine",1,1,-31000,-1700,16 * 16 * 16)
mg_reg_ore_scat("minerdream:stone_with_onyx",1,1,-31000,-1700,16 * 16 * 16)
mg_reg_ore_scat("minerdream:stone_with_tantalum",3,3,-31000,-1500,16 * 16 * 16)
mg_reg_ore_scat("minerdream:stone_with_rhodium",3,3,-31000,-1500,16 * 16 * 16)
-------desert ores--------
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:desertstone_with_richiron",
wherein = "default:desert_stone",
clust_scarcity = 10 * 10 * 10,
clust_num_ores = 5,
clust_size = 2,
y_min = -31000,
y_max = 420,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:desertstone_with_lapislazuli",
wherein = "default:desert_stone",
clust_scarcity = 10 * 10 * 10,
clust_num_ores = 5,
clust_size = 2,
y_min = -31000,
y_max = 420,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:desertstone_with_coal",
wherein = "default:desert_stone",
clust_scarcity = 12 * 12 * 12,
clust_num_ores = 5,
clust_size = 2,
y_min = -31000,
y_max = 420,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:desertstone_with_sulfur",
wherein = "default:desert_stone",
clust_scarcity = 15 * 15 * 15,
clust_num_ores = 5,
clust_size = 2,
y_min = -31000,
y_max = 420,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:desertstone_with_saltpeter",
wherein = "default:desert_stone",
clust_scarcity = 15 * 15 * 15,
clust_num_ores = 5,
clust_size = 2,
y_min = -31000,
y_max = 420,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:desertstone_with_poorgold",
wherein = "default:desert_stone",
clust_scarcity = 10 * 10 * 10,
clust_num_ores = 1,
clust_size = 1,
y_min = -31000,
y_max = 420,
})

View File

@ -1,18 +0,0 @@
minerdream = {}
minerdream.path = minetest.get_modpath("minerdream")
dofile(minerdream.path .. "/functions.lua")
dofile(minerdream.path .. "/api.lua")
dofile(minerdream.path .. "/config.lua")
dofile(minerdream.path .. "/items.lua")
--dofile(minerdream.path .. "/tools.lua")
dofile(minerdream.path .. "/overrides.lua")
dofile(minerdream.path .. "/blocks.lua")
dofile(minerdream.path .. "/generation.lua")
dofile(minerdream.path .. "/crafting.lua")
dofile(minerdream.path .. "/weapons.lua")
dofile(minerdream.path .. "/armor.lua")
dofile(minerdream.path .. "/treasure.lua")
dofile(minerdream.path .. "/experiments.lua")
--dofile(minerdream.path .. "/mobs.lua")
dofile(minerdream.path .. "/awards.lua")

121
items.lua
View File

@ -1,121 +0,0 @@
---------mob drops----------------
minetest.register_craftitem('minerdream:slimeball_green', {
description = "Green ball of slime",
inventory_image = "minerdream_slimeball_green.png",
stack_max= 1000,
})
minetest.register_craftitem('minerdream:slimeball_blue', {
description = "Blue ball of slime",
inventory_image = "minerdream_slimeball_blue.png",
stack_max= 1000,
})
minetest.register_craftitem('minerdream:slimeball_red', {
description = "Red ball of slime",
inventory_image = "minerdream_slimeball_red.png",
stack_max= 1000,
})
minetest.register_craftitem('minerdream:slimeball_yellow', {
description = "Yellow ball of slime",
inventory_image = "minerdream_slimeball_yellow.png",
stack_max= 1000,
})
minetest.register_craftitem('minerdream:slimeball_purple', {
description = "Purple ball of slime",
inventory_image = "minerdream_slimeball_purple.png",
stack_max= 1000,
})
minetest.register_craftitem('minerdream:slimeball_brown', {
description = "Brown ball of slime",
inventory_image = "minerdream_slimeball_brown.png",
stack_max= 1000,
})
---------------------materials---------------
minetest.register_craftitem('minerdream:expensivestick', {
description = "Expensive stick",
inventory_image = "minerdream_expensivestick.png",
stack_max= 1000,
})
minetest.register_craftitem('minerdream:steelstick', {
description = "Stainless steel stick",
inventory_image = "minerdream_steelstick.png",
stack_max= 1000,
})
minetest.register_craftitem('minerdream:sulfur_powder', {
description = "Sulfur powder",
inventory_image = "minerdream_sulfur_powder.png",
stack_max= 1000,
})
minetest.register_craftitem('minerdream:saltpeter_powder', {
description = "Saltpeter powder",
inventory_image = "minerdream_saltpeter_powder.png",
stack_max= 1000,
})
-----------------ores----------------
minetest.register_craftitem('minerdream:brass_nugget', {
description = "".. core.colorize("#FFFFFF", "brass nugget\n")..core.colorize("#A0A0A0", "4 of those, can be combined into a bar"),
inventory_image = "minerdream_brass_nugget.png",
stack_max= 1000,
})
minetest.register_craftitem('minerdream:gold_nugget', {
description = "".. core.colorize("#FFFFFF", "Raw gold nugget\n")..core.colorize("#A0A0A0", "4 of those, can be combined into a lump"),
inventory_image = "minerdream_gold_nugget.png",
stack_max= 1000,
})
---------------refined goods-----------------
minetest.register_craftitem('minerdream:brass_bar', {
description = "".. core.colorize("#BFFFFF", "brass bar\n")..core.colorize("#A0A0A0", "tier: 2 (uncommon)"),
inventory_image = "minerdream_brass_bar.png",
stack_max= 250,
})
------------------consumables----------------
minetest.register_craftitem("minerdream:vitamin", {
description = "".. core.colorize("#FFFFFF", "Vitamin pill\n")..core.colorize("#A0A0A0", "Consumable\n")..core.colorize("#A0A0A0", "Restores 3 hp"),
wield_scale = {x=0.25,y=0.25,z=0.5},
inventory_image = "minerdream_pill.png",
on_use = minetest.item_eat(3),
})
minetest.register_craftitem("minerdream:potion_tiny", {
description = "".. core.colorize("#FFFFFF", "Tiny healing potion\n")..core.colorize("#A0A0A0", "Consumable\n")..core.colorize("#A0A0A0", "Restores 5 hp"),
wield_scale = {x=0.75,y=0.75,z=0.75},
inventory_image = "minerdream_potion_tiny.png",
on_use = minetest.item_eat(5),
})
minetest.register_craftitem("minerdream:potion_lesser", {
description = "".. core.colorize("#FFFFFF", "Lesser healing potion\n")..core.colorize("#A0A0A0", "Consumable\n")..core.colorize("#A0A0A0", "Restores 10 hp"),
wield_scale = {x=0.75,y=0.75,z=0.75},
inventory_image = "minerdream_potion_lesser.png",
on_use = minetest.item_eat(10),
})
minetest.register_craftitem("minerdream:potion_normal", {
description = "".. core.colorize("#FFFFFF", " Healing potion\n")..core.colorize("#A0A0A0", "Consumable\n")..core.colorize("#A0A0A0", "Restores 15 hp"),
wield_scale = {x=0.75,y=0.75,z=0.75},
inventory_image = "minerdream_potion_normal.png",
on_use = minetest.item_eat(15),
})
minetest.register_craftitem("minerdream:potion_greater", {
description = "".. core.colorize("#FFFFFF", "Greater healing potion\n")..core.colorize("#A0A0A0", "Consumable\n")..core.colorize("#A0A0A0", "Restores 20 hp"),
wield_scale = {x=0.75,y=0.75,z=0.75},
inventory_image = "minerdream_potion_greater.png",
on_use = minetest.item_eat(20),
})

149
md_awards/awards.lua Normal file
View File

@ -0,0 +1,149 @@
if minetest.get_modpath("awards") then
awards.register_achievement("minerdream_caveman", {
title = ("Caveman"),
description = ("You crafted yourself a flint spear, but what if I told you... in 21th century, there's way better weapons than that!"),
icon = "minerdream_achievement_caveman.png",
trigger = {
type = "craft",
item = "minerdream:spear_flint",
target = 1
}
})
awards.register_achievement("minerdream_armed", {
title = ("Armed!"),
description = ("Craft a handgun"),
icon = "minerdream_achievement_armed.png",
trigger = {
type = "craft",
item = "minerdream:handgun",
target = 1
}
})
awards.register_achievement("minerdream_secondminer", {
title = ("Second place miner"),
description = ("You've found some silver! Head for the gold now."),
icon = "minerdream_achievement_secondminer.png",
background = "awards_bg_mining.png",
trigger = {
type = "dig",
node = "minerdream:stone_with_silver",
target = 1
}
})
awards.register_achievement("minerdream_neatjunk", {
title = ("Neat junk!"),
description = ("Break the most common loot box. I wonder what's inside?"),
icon = "minerdream_achievement_neatjunk.png",
background = "awards_bg_mining.png",
trigger = {
type = "dig",
node = "minerdream:treasure1",
target = 1
}
})
awards.register_achievement("minerdream_metall1", {
title = ("Mined common metals"),
description = ("You mined quite common metals. Keep going."),
icon = "minerdream_achievement_secondminer.png^awards_level1.png",
background = "awards_bg_mining.png",
trigger = {
type = "dig",
node = "group:metall1",
target = 1
}
})
awards.register_achievement("minerdream_metall2", {
title = ("Mined quite uncommon metals"),
description = ("You mined quite uncommon metals. Keep going."),
icon = "minerdream_achievement_secondminer.png^awards_level2.png",
background = "awards_bg_mining.png",
trigger = {
type = "dig",
node = "group:metall2",
target = 1
}
})
awards.register_achievement("minerdream_metall3", {
title = ("Mined almost rare metals"),
description = ("You mined almost rare metals. Keep going."),
icon = "minerdream_achievement_secondminer.png^awards_level3.png",
background = "awards_bg_mining.png",
trigger = {
type = "dig",
node = "group:metall3",
target = 1
}
})
awards.register_achievement("minerdream_metall4", {
title = ("Mined rare metals"),
description = ("You mined rare metals. Keep going."),
icon = "minerdream_achievement_secondminer.png^awards_level4.png",
background = "awards_bg_mining.png",
trigger = {
type = "dig",
node = "group:metall4",
target = 1
}
})
awards.register_achievement("minerdream_metall5", {
title = ("Mined extra rare metals"),
description = ("You mined extra rare metals. Keep going."),
icon = "minerdream_achievement_secondminer.png^awards_level5.png",
background = "awards_bg_mining.png",
trigger = {
type = "dig",
node = "group:metall5",
target = 1
}
})
awards.register_achievement("minerdream_metall6", {
title = ("Mined epic metals"),
description = ("You mined epic metals. Keep going."),
icon = "minerdream_achievement_secondminer.png^awards_level6.png",
background = "awards_bg_mining.png",
trigger = {
type = "dig",
node = "group:metall6",
target = 1
}
})
awards.register_achievement("minerdream_metall7", {
title = ("Mined royal metals"),
description = ("You mined royal metals. Keep going."),
icon = "minerdream_achievement_secondminer.png^awards_level7.png",
background = "awards_bg_mining.png",
trigger = {
type = "dig",
node = "group:metall7",
target = 1
}
})
awards.register_achievement("minerdream_metall8", {
title = ("Mined heroic metals"),
description = ("You mined heroic metals. Keep going."),
icon = "minerdream_achievement_secondminer.png^awards_level8.png",
background = "awards_bg_mining.png",
trigger = {
type = "dig",
node = "group:metall8",
target = 1
}
})
awards.register_achievement("minerdream_health", {
title = ("Maintaining good health"),
description = ("Consume a vitamin pill for the first time"),
icon = "minerdream_achievement_health.png",
trigger = {
type = "eat",
item = "minerdream:vitamin",
target = 1
}
})
end

13
md_awards/config.lua Normal file
View File

@ -0,0 +1,13 @@
local viscosity=1
minerdream.ingot_stack_max = minetest.settings:get("minerdream.ingot_stack_max") or 250
minerdream.lump_stack_max = minetest.settings:get("minerdream.lump_stack_max") or 999
minerdream.dust_cooking_time_reduce = minetest.settings:get("minerdream.dust_cooking_time_reduce") or 2
minerdream.steel_wire="minerdream:steel_wire"
if minetest.get_modpath("basic_materials") == nil then
dofile(minerdream.path .. "/steel_wire.lua")
else
minerdream.steel_wire="basic_materials:steel_wire"
end

3
md_awards/depends.txt Normal file
View File

@ -0,0 +1,3 @@
default
minerdream
awards

9
md_awards/init.lua Normal file
View File

@ -0,0 +1,9 @@
md_awards = {}
md_awards.path = minetest.get_modpath("md_awards")
md_awards.modname = minetest.get_current_modname()
dofile(md_awards.path .. "/awards.lua")
if treasures ~= nil then
dofile(md_awards.path .. "/treasures.lua")
end

15
md_awards/license.txt Normal file
View File

@ -0,0 +1,15 @@
License of source code
----------------------
The MIT License (MIT)
Copyright 2018 ademant
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
For more details:
https://opensource.org/licenses/mit-license.php

8
md_awards/mod.conf Normal file
View File

@ -0,0 +1,8 @@
title = Minerdream Awards
name = md_awards
author = ademant
description = Extension of mod minerdream
depends = default,minerdream,awards
optional_depends = treasures,3d_armor
license = MIT
version = 1.0.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

61
md_awards/treasures.lua Normal file
View File

@ -0,0 +1,61 @@
if armor ~= nil then
treasures.add_drop("treasures:treasure1",{items = {'3d_armor:helmet_steel 1'},rarity = 20,})
treasures.add_drop("treasures:treasure2",{items = {'shields:shield_steel 1'},rarity = 20,})
treasures.add_drop("treasures:treasure3",{items = {'3d_armor:boots_steel 1'},rarity = 20,})
treasures.add_drop("treasures:treasure3",{items = {'3d_armor:chestplate_steel 1'},rarity = 20,})
treasures.add_drop("treasures:treasure4",{items = {'3d_armor:chestplate_diamond 1'},rarity = 20,})
treasures.add_drop("treasures:treasure4",{items = {'shields:shield_diamond 1'},rarity = 20,})
treasures.add_drop("treasures:treasure5",{items = {'3d_armor:chestplate_gold 1'},rarity = 20,})
treasures.add_drop("treasures:treasure5",{items = {'shields:shield_gold 1'},rarity = 20,})
end
treasures.add_drop("treasures:treasure1",{items = {'minerdream:dagger 1'},rarity = 25,})
treasures.add_drop("treasures:treasure1",{items = {'minerdream:arrow 10'},rarity = 5,})
treasures.add_drop("treasures:treasure1",{items = {'minerdream:shuriken 15'},rarity = 5,})
treasures.add_drop("treasures:treasure1",{items = {'minerdream:potassium_lump 3'},rarity = 10,})
treasures.add_drop("treasures:treasure1",{items = {'minerdream:calcium_lump 3'},rarity = 10,})
treasures.add_drop("treasures:treasure1",{items = {'minerdream:nickel_lump 3'},rarity = 15,})
treasures.add_drop("treasures:treasure2",{items = {'minerdream:shortsword 1'},rarity = 25,})
treasures.add_drop("treasures:treasure2",{items = {'minerdream:club 1'},rarity = 25,})
treasures.add_drop("treasures:treasure2",{items = {'minerdream:grenade 1'},rarity = 5,})
treasures.add_drop("treasures:treasure2",{items = {'minerdream:shuriken 25'},rarity = 5,})
treasures.add_drop("treasures:treasure2",{items = {'minerdream:vitamin 3'},rarity = 5,})
treasures.add_drop("treasures:treasure2",{items = {'minerdream:potion_tiny 1'},rarity = 5,})
treasures.add_drop("treasures:treasure2",{items = {'minerdream:arrow 15'},rarity = 5,})
treasures.add_drop("treasures:treasure3",{items = {'minerdream:mace 1'},rarity = 25,})
treasures.add_drop("treasures:treasure3",{items = {'minerdream:grenade 2'},rarity = 5,})
treasures.add_drop("treasures:treasure3",{items = {'minerdream:throwing_knife 15'},rarity = 5,})
treasures.add_drop("treasures:treasure3",{items = {'minerdream:potion_tiny 2'},rarity = 3,})
treasures.add_drop("treasures:treasure3",{items = {'minerdream:platinum_lump 3'},rarity = 15,})
treasures.add_drop("treasures:treasure3",{items = {'minerdream:arrow 20'},rarity = 5,})
treasures.add_drop("treasures:treasure4",{items = {'minerdream:revolver'},rarity = 25,})
treasures.add_drop("treasures:treasure4",{items = {'minerdream:claymore'},rarity = 20,})
treasures.add_drop("treasures:treasure4",{items = {'minerdream:throwing_knife 25'},rarity = 5,})
treasures.add_drop("treasures:treasure4",{items = {'minerdream:grenade 3'},rarity = 5,})
treasures.add_drop("treasures:treasure4",{items = {'minerdream:potion_lesser 1'},rarity = 3,})
treasures.add_drop("treasures:treasure4",{items = {'minerdream:bituminous_coal 5'},rarity = 15,})
treasures.add_drop("treasures:treasure4",{items = {'minerdream:cobalt_lump 3'},rarity = 15,})
treasures.add_drop("treasures:treasure4",{items = {'minerdream:ruthenium_lump 3'},rarity = 15,})
treasures.add_drop("treasures:treasure4",{items = {'minerdream:amethyst 1'},rarity = 15,})
treasures.add_drop("treasures:treasure4",{items = {'minerdream:garnet 1'},rarity = 15,})
treasures.add_drop("treasures:treasure4",{items = {'minerdream:jade 1'},rarity = 15,})
treasures.add_drop("treasures:treasure4",{items = {'minerdream:arrow 25'},rarity = 5,})
treasures.add_drop("treasures:treasure4",{items = {'minerdream:bullet 25'},rarity = 7,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:shotgun'},rarity = 25,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:katana'},rarity = 20,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:throwing_knife 30'},rarity = 5,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:grenade 4'},rarity = 5,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:potion_lesser 2'},rarity = 3,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:bituminous_coal 8'},rarity = 10,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:rhodium_lump 3'},rarity = 15,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:tantalum_lump 3'},rarity = 15,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:onyx 1'},rarity = 15,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:spinel 1'},rarity = 15,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:topaz 1'},rarity = 15,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:aquamarine 1'},rarity = 15,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:arrow 30'},rarity = 5,})
treasures.add_drop("treasures:treasure5",{items = {'minerdream:bullet 30'},rarity = 7,})

11
md_technic/batteries.lua Normal file
View File

@ -0,0 +1,11 @@
minetest.register_craft({
output = "technic:battery",
recipe = {
{"group:wood", "minerdream:lithium_dust", "group:wood"},
{"basic_materials:steel_strip", "homedecor:oil_extract", "basic_materials:steel_strip"},
{"group:wood", "minerdream:cobalt_dust", "group:wood"},
}
})

4
md_technic/config.lua Normal file
View File

@ -0,0 +1,4 @@
md_technic.smelter_refractory_duration = tonumber(minetest.settings:get("md_technic.smelter_refractory_duration")) or 5000
md_technic.smelter_min_burntime= tonumber(minetest.settings:get("md_technic.smelter_min_burntime")) or 30
md_technic.smelter_speedup = tonumber(minetest.settings:get("md_technic.smelter_speedup")) or 1.5

292
md_technic/furnace.lua Normal file
View File

@ -0,0 +1,292 @@
-- copied from minetest_default game
-- and modified for usage with minerdream
--
-- Node callback functions that are the same for active and inactive furnace
--
local function can_dig(pos, player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src")
end
local function allow_metadata_inventory_put(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
if listname == "fuel" then
if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then
if inv:is_empty("src") then
meta:set_string("infotext", "Furnace is empty")
end
return stack:get_count()
else
return 0
end
elseif listname == "src" then
return stack:get_count()
elseif listname == "dst" then
return 0
end
end
local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local stack = inv:get_stack(from_list, from_index)
return allow_metadata_inventory_put(pos, to_list, to_index, stack, player)
end
local function allow_metadata_inventory_take(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
return stack:get_count()
end
local function swap_node(pos, name)
local node = minetest.get_node(pos)
if node.name == name then
return
end
node.name = name
minetest.swap_node(pos, node)
end
local function furnace_node_timer(pos, elapsed)
--
-- Inizialize metadata
--
local meta = minetest.get_meta(pos)
local fuel_time = meta:get_float("fuel_time") or 0
local src_time = meta:get_float("src_time") or 0
local fuel_totaltime = meta:get_float("fuel_totaltime") or 0
local inv = meta:get_inventory()
local srclist, fuellist
local cookable, cooked
local fuel
local update = true
while elapsed > 0 and update do
update = false
srclist = inv:get_list("src")
fuellist = inv:get_list("fuel")
--
-- Cooking
--
-- Check if we have cookable content
local aftercooked
cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
cookable = (cooked.time > 0) and (cooked.time <=32)
local el = math.min(elapsed, fuel_totaltime - fuel_time)
if cookable then -- fuel lasts long enough, adjust el to cooking duration
el = math.min(el, cooked.time - src_time)
end
-- Check if we have enough fuel to burn
if fuel_time < fuel_totaltime then
-- The furnace is currently active and has enough fuel
fuel_time = fuel_time + el
-- If there is a cookable item then check if it is ready yet
if cookable then
src_time = src_time + el
if src_time >= cooked.time then
-- Place result in dst list if possible
if inv:room_for_item("dst", cooked.item) then
inv:add_item("dst", cooked.item)
inv:set_stack("src", 1, aftercooked.items[1])
src_time = src_time - cooked.time
update = true
end
else
-- Item could not be cooked: probably missing fuel
update = true
end
end
else
-- Furnace ran out of fuel
if cookable then
-- We need to get new fuel
local afterfuel
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
if fuel.time == 0 then
-- No valid fuel in fuel list
fuel_totaltime = 0
src_time = 0
else
-- Take fuel from fuel list
inv:set_stack("fuel", 1, afterfuel.items[1])
update = true
fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time)
end
else
-- We don't need to get new fuel since there is no cookable item
fuel_totaltime = 0
src_time = 0
end
fuel_time = 0
end
elapsed = elapsed - el
end
if fuel and fuel_totaltime > fuel.time then
fuel_totaltime = fuel.time
end
if srclist[1]:is_empty() then
src_time = 0
end
--
-- Update formspec, infotext and node
--
local formspec
local item_state
local item_percent = 0
if cookable then
item_percent = math.floor(src_time / cooked.time * 100)
if item_percent > 100 then
item_state = "100% (output full)"
else
item_state = item_percent .. "%"
end
else
if srclist[1]:is_empty() then
item_state = "Empty"
else
item_state = "Not cookable"
end
end
local fuel_state = "Empty"
local active = "inactive"
local result = false
if fuel_totaltime ~= 0 then
active = "active"
local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100)
fuel_state = fuel_percent .. "%"
formspec = default.get_furnace_active_formspec(fuel_percent, item_percent)
swap_node(pos, "default:furnace_active")
-- make sure timer restarts automatically
result = true
else
if not fuellist[1]:is_empty() then
fuel_state = "0%"
end
formspec = default.get_furnace_inactive_formspec()
swap_node(pos, "default:furnace")
-- stop timer on the inactive furnace
minetest.get_node_timer(pos):stop()
end
local infotext = "Furnace " .. active .. "\n(Item: " .. item_state ..
"; Fuel: " .. fuel_state .. ")"
--
-- Set meta values
--
meta:set_float("fuel_totaltime", fuel_totaltime)
meta:set_float("fuel_time", fuel_time)
meta:set_float("src_time", src_time)
meta:set_string("formspec", formspec)
meta:set_string("infotext", infotext)
return result
end
--
-- Node definitions
--
minetest.register_node(":default:furnace", {
description = "Furnace",
tiles = {
"default_furnace_top.png", "default_furnace_bottom.png",
"default_furnace_side.png", "default_furnace_side.png",
"default_furnace_side.png", "default_furnace_front.png"
},
paramtype2 = "facedir",
groups = {cracky=2},
legacy_facedir_simple = true,
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
can_dig = can_dig,
on_timer = furnace_node_timer,
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.get_furnace_inactive_formspec())
local inv = meta:get_inventory()
inv:set_size('src', 1)
inv:set_size('fuel', 1)
inv:set_size('dst', 4)
end,
on_metadata_inventory_move = function(pos)
minetest.get_node_timer(pos):start(1.0)
end,
on_metadata_inventory_put = function(pos)
-- start timer function, it will sort out whether furnace can burn or not.
minetest.get_node_timer(pos):start(1.0)
end,
on_blast = function(pos)
local drops = {}
default.get_inventory_drops(pos, "src", drops)
default.get_inventory_drops(pos, "fuel", drops)
default.get_inventory_drops(pos, "dst", drops)
drops[#drops+1] = "default:furnace"
minetest.remove_node(pos)
return drops
end,
allow_metadata_inventory_put = allow_metadata_inventory_put,
allow_metadata_inventory_move = allow_metadata_inventory_move,
allow_metadata_inventory_take = allow_metadata_inventory_take,
})
minetest.register_node(":default:furnace_active", {
description = "Furnace",
tiles = {
"default_furnace_top.png", "default_furnace_bottom.png",
"default_furnace_side.png", "default_furnace_side.png",
"default_furnace_side.png",
{
image = "default_furnace_front_active.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 1.5
},
}
},
paramtype2 = "facedir",
light_source = 8,
drop = "default:furnace",
groups = {cracky=2, not_in_creative_inventory=1},
legacy_facedir_simple = true,
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
on_timer = furnace_node_timer,
can_dig = can_dig,
allow_metadata_inventory_put = allow_metadata_inventory_put,
allow_metadata_inventory_move = allow_metadata_inventory_move,
allow_metadata_inventory_take = allow_metadata_inventory_take,
})

18
md_technic/init.lua Normal file
View File

@ -0,0 +1,18 @@
md_technic = {}
md_technic.path = minetest.get_modpath("md_technic")
md_technic.modname = minetest.get_current_modname()
minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- start loading from "..minetest.get_modpath(minetest.get_current_modname()))
-- Load files
-- import settingtypes.txt
basic_functions.import_settingtype(md_technic.path .. "/settingtypes.txt")
dofile(md_technic.path .. "/config.lua")
dofile(md_technic.path .. "/furnace.lua")
dofile(md_technic.path .. "/smelter.lua")
if technic ~= nil then
dofile(md_technic.path .. "/batteries.lua")
end
minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- loaded ")

15
md_technic/license.txt Normal file
View File

@ -0,0 +1,15 @@
License of source code
----------------------
The MIT License (MIT)
Copyright 2018 ademant
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
For more details:
https://opensource.org/licenses/mit-license.php

7
md_technic/mod.conf Normal file
View File

@ -0,0 +1,7 @@
title = Minerdream Technics
name = md_technic
author = ademant
description = Extension of mod minerdream with some technic
depends = default,minerdream,technic
license = MIT
version = 1.0.0

View File

@ -0,0 +1,3 @@
md_technic.smelter_refractory_duration (Smelting time the refractory lasts) int 6000 600 50000
md_technic.smelter_min_burntime (Min. burntime of fuel for smelter) int 30 10 100
md_technic.smelter_speedup (Speedup of smelter) float 1.5

380
md_technic/smelter.lua Normal file
View File

@ -0,0 +1,380 @@
minetest.register_craft({
output = 'md_technic:smelter',
recipe = {
{'default:steel_ingot', 'group:stone', 'default:steel_ingot'},
{'group:stone', '', 'group:stone'},
{'default:steel_ingot', 'group:stone', 'default:steel_ingot'},
}
})
local M=md_technic
--
-- Formspecs
--
function M.get_smelter_active_formspec(fuel_percent, item_percent,refractory_percent)
return "size[8,8.5]"..
"list[context;src;2.75,0.5;1,1;]"..
"list[context;refrac;1.75,2.5;1,1;]"..
"list[context;fuel;2.75,2.5;1,1;]"..
"image[1.75,1.5;1,1;minerdream_refractory_bg.png^[lowpart:"..
(100-refractory_percent)..":default_clay_brick.png]"..
"image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:"..
(100-fuel_percent)..":default_furnace_fire_fg.png]"..
"image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:"..
(item_percent)..":gui_furnace_arrow_fg.png^[transformR270]"..
"list[context;dst;4.75,0.96;2,2;]"..
"list[current_player;main;0,4.25;8,1;]"..
"list[current_player;main;0,5.5;8,3;8]"..
"listring[context;dst]"..
"listring[current_player;main]"..
"listring[context;src]"..
"listring[current_player;main]"..
"listring[context;fuel]"..
"listring[current_player;main]"..
default.get_hotbar_bg(0, 4.25)
end
function M.get_smelter_inactive_formspec(refractory_percent)
if refractory_percent == nil then refractory_percent = 0 end
return "size[8,8.5]"..
"list[context;src;2.75,0.5;1,1;]"..
"list[context;refrac;1.75,2.5;1,1;]"..
"image[1.75,1.5;1,1;minerdream_refractory_bg.png^[lowpart:"..
(100-refractory_percent)..":default_clay_brick.png]"..
"list[context;fuel;2.75,2.5;1,1;]"..
"image[1.75,1.5;1,1;minerdream_refractory_bg.png]"..
"image[2.75,1.5;1,1;default_furnace_fire_bg.png]"..
"image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]"..
"list[context;dst;4.75,0.96;2,2;]"..
"list[current_player;main;0,4.25;8,1;]"..
"list[current_player;main;0,5.5;8,3;8]"..
"listring[context;dst]"..
"listring[current_player;main]"..
"listring[context;src]"..
"listring[current_player;main]"..
"listring[context;fuel]"..
"listring[current_player;main]"..
default.get_hotbar_bg(0, 4.25)
end
--
-- Node callback functions that are the same for active and inactive furnace
--
local function can_dig(pos, player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src") and inv:is_empty("refrac")
end
local function allow_metadata_inventory_put(pos, listname, index, stack, player)
minetest.log(dump2(stack:get_name()))
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
if listname == "fuel" then
if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then
if inv:is_empty("src") then
meta:set_string("infotext", "Furnace is empty")
end
return stack:get_count()
else
return 0
end
elseif listname == "src" then
return stack:get_count()
elseif listname == "refrac" then
if stack:get_name()=="default:clay_brick" then
return stack:get_count()
else
return 0
end
elseif listname == "dst" then
return 0
end
end
local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local stack = inv:get_stack(from_list, from_index)
return allow_metadata_inventory_put(pos, to_list, to_index, stack, player)
end
local function allow_metadata_inventory_take(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
return stack:get_count()
end
local function swap_node(pos, name)
local node = minetest.get_node(pos)
if node.name == name then
return
end
node.name = name
minetest.swap_node(pos, node)
end
local function smelter_node_timer(pos, elapsed)
--
-- Inizialize metadata
--
local meta = minetest.get_meta(pos)
local fuel_time = meta:get_float("fuel_time") or 0
local src_time = meta:get_float("src_time") or 0
local fuel_totaltime = meta:get_float("fuel_totaltime") or 0
local refrac_time = meta:get_float("refrac_time") or 0
local inv = meta:get_inventory()
local srclist, fuellist, refraclist
local cookable, cooked
local fuel, refrac
local update = true
while elapsed > 0 and update do
update = false
srclist = inv:get_list("src")
fuellist = inv:get_list("fuel")
refraclist = inv:get_list("refrac")
--
-- Cooking
--
-- Check if we have cookable content
local aftercooked
cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
cookable = cooked.time ~= 0
local cookedtime=cooked.time / M.smelter_speedup
local el = math.min(elapsed, fuel_totaltime - fuel_time)
if cookable then -- fuel lasts long enough, adjust el to cooking duration
el = math.min(el, cooked.time - src_time)
end
-- check for refractory
if cookable then
-- cooking time > durability time of refractory?
if cookedtime > refrac_time then
-- is refrac slot filled or empty?
if not inv:is_empty("refrac") and (refraclist[1]:get_name() == "default:clay_brick") then
inv:remove_item("refrac",ItemStack("default:clay_brick"))
refrac_time=refrac_time + M.smelter_refractory_duration
else
cookable = false
end
end
end
-- Check if we have enough fuel to burn
if fuel_time < fuel_totaltime then
-- The furnace is currently active and has enough fuel
fuel_time = fuel_time + el
-- If there is a cookable item then check if it is ready yet
if cookable then
src_time = src_time + el
if src_time >= cookedtime then
-- Place result in dst list if possible
if inv:room_for_item("dst", cooked.item) then
inv:add_item("dst", cooked.item)
inv:set_stack("src", 1, aftercooked.items[1])
src_time = src_time - cookedtime
refrac_time=refrac_time- cookedtime
update = true
end
else
-- Item could not be cooked: probably missing fuel
update = true
end
end
else
-- Furnace ran out of fuel
if cookable then
-- We need to get new fuel
local afterfuel
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
if fuel.time <= M.smelter_min_burntime then
-- No valid fuel in fuel list
fuel_totaltime = 0
src_time = 0
else
-- Take fuel from fuel list
inv:set_stack("fuel", 1, afterfuel.items[1])
update = true
fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time)
end
else
-- We don't need to get new fuel since there is no cookable item
fuel_totaltime = 0
src_time = 0
end
fuel_time = 0
end
elapsed = elapsed - el
end
if fuel and fuel_totaltime > fuel.time then
fuel_totaltime = fuel.time
end
if srclist[1]:is_empty() then
src_time = 0
end
--
-- Update formspec, infotext and node
--
local formspec
local item_state
local item_percent = 0
local refrac_percent = math.min(100, math.floor (refrac_time / M.smelter_refractory_duration * 100)) or 0
local refrac_state = refrac_percent.."%"
if cookable then
item_percent = math.floor(src_time / cooked.time * 100)
if item_percent > 100 then
item_state = "100% (output full)"
else
item_state = item_percent .. "%"
end
else
if srclist[1]:is_empty() then
item_state = "Empty"
else
item_state = "Not cookable"
end
end
local fuel_state = "Empty"
local active = "inactive"
local result = false
if fuel_totaltime ~= 0 then
active = "active"
local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100)
fuel_state = fuel_percent .. "%"
formspec = M.get_smelter_active_formspec(fuel_percent, item_percent, refrac_percent)
swap_node(pos, "md_technic:smelter_active")
-- make sure timer restarts automatically
result = true
else
if not fuellist[1]:is_empty() then
fuel_state = "0%"
end
formspec = M.get_smelter_inactive_formspec(refrac_percent)
swap_node(pos, "md_technic:smelter")
-- stop timer on the inactive furnace
minetest.get_node_timer(pos):stop()
end
local infotext = "Furnace " .. active .. "\n(Item: " .. item_state ..
"; Fuel: " .. fuel_state .. ")\n(Refractory: ".. refrac_state .. ")"
--
-- Set meta values
--
meta:set_float("fuel_totaltime", fuel_totaltime)
meta:set_float("fuel_time", fuel_time)
meta:set_float("src_time", src_time)
meta:set_float("refrac_time", refrac_time)
meta:set_string("formspec", formspec)
meta:set_string("infotext", infotext)
return result
end
--
-- Node definitions
--
minetest.register_node("md_technic:smelter", {
description = "Smelter",
tiles = {
"default_furnace_top.png", "default_furnace_bottom.png",
"default_furnace_side.png", "default_furnace_side.png",
"default_furnace_side.png", "default_furnace_front.png"
},
paramtype2 = "facedir",
groups = {cracky=2},
legacy_facedir_simple = true,
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
can_dig = can_dig,
on_timer = smelter_node_timer,
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", M.get_smelter_inactive_formspec(0))
local inv = meta:get_inventory()
inv:set_size('src', 1)
inv:set_size('fuel', 1)
inv:set_size('refrac', 1)
inv:set_size('dst', 4)
end,
on_metadata_inventory_move = function(pos)
minetest.get_node_timer(pos):start(1.0)
end,
on_metadata_inventory_put = function(pos)
-- start timer function, it will sort out whether furnace can burn or not.
minetest.get_node_timer(pos):start(1.0)
end,
on_blast = function(pos)
local drops = {}
default.get_inventory_drops(pos, "src", drops)
default.get_inventory_drops(pos, "refrac", drops)
default.get_inventory_drops(pos, "fuel", drops)
default.get_inventory_drops(pos, "dst", drops)
drops[#drops+1] = "md_technic:smelter"
minetest.remove_node(pos)
return drops
end,
allow_metadata_inventory_put = allow_metadata_inventory_put,
allow_metadata_inventory_move = allow_metadata_inventory_move,
allow_metadata_inventory_take = allow_metadata_inventory_take,
})
minetest.register_node("md_technic:smelter_active", {
description = "Smelter",
tiles = {
"default_furnace_top.png", "default_furnace_bottom.png",
"default_furnace_side.png", "default_furnace_side.png",
"default_furnace_side.png",
{
image = "default_furnace_front_active.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 1.5
},
}
},
paramtype2 = "facedir",
light_source = 8,
drop = "md_technic:smelter",
groups = {cracky=2, not_in_creative_inventory=1},
legacy_facedir_simple = true,
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
on_timer = smelter_node_timer,
can_dig = can_dig,
allow_metadata_inventory_put = allow_metadata_inventory_put,
allow_metadata_inventory_move = allow_metadata_inventory_move,
allow_metadata_inventory_take = allow_metadata_inventory_take,
})

9
minerdream/README.md Normal file
View File

@ -0,0 +1,9 @@
# Minerdream_mod
[davieddoesminetest] A mod, that makes minig way more fun, and is a replacement for Xtraores, which I abandoned.
[ademant]
In the first step my work was mostly invisible to provide a kind of api to configure the new cool ores by a simple text file and to make the coexistence with other mods a little bit more smooth.
Beside the ores the default furnace is modified to cook only items with a cooking time less (say) 30 seconds.
Ores with a higher cooking time are smelted in a new smelter, which use clay bricks refractories to achieve higher temperatures.
This clay bricks wear out and have to renewed.

BIN
minerdream/armor.gnumeric Normal file

Binary file not shown.

36
minerdream/armor.lua Normal file
View File

@ -0,0 +1,36 @@
if minetest.global_exists("armor") and armor.elements then
table.insert(armor.elements, "accessory")
local mult = armor.config.level_multiplier or 1
armor.config.level_multiplier = mult * 1.1
end
---------------------accessoaries--------------------
armor:register_armor("minerdream:accessory_speedring", {
description = "".. core.colorize("#0040FF", "Ring of speed\n")..core.colorize("#A0A0A0", "tier: 5 (extra rare)\n")..core.colorize("#A0A0A0", "walking speed + 50%\n")..core.colorize("#A0A0A0", "type: accessory "),
inventory_image = "minerdream_inv_accessory_speedring.png",
groups = {armor_accessory=1, armor_heal=0.0, armor_use=0,
physics_jump=0.0, physics_speed=0.5, physics_gravity=-0.00},
armor_groups = {fleshy=0.0},
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
})
armor:register_armor("minerdream:accessory_protectionring", {
description = "".. core.colorize("#0040FF", "Ring of protection\n")..core.colorize("#A0A0A0", "tier: 5 (extra rare)\n")..core.colorize("#A0A0A0", "heal + 7.5%\n")..core.colorize("#A0A0A0", "type: accessory "),
inventory_image = "minerdream_inv_accessory_protectionring.png",
groups = {armor_accessory=1, armor_heal=7.5, armor_use=0,
physics_jump=0.0, physics_speed=0.0, physics_gravity=-0.00},
armor_groups = {fleshy=0.0},
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
})
---------------------special grindable-------------
armor:register_armor("minerdream:accessory_slimering", {
description = "".. core.colorize("#40FF80", "Slimy ring\n")..core.colorize("#A0A0A0", "tier: 4 (rare)\n")..core.colorize("#A0A0A0", "jump force + 25%\n")..core.colorize("#A0A0A0", "gravity - 5%\n")..core.colorize("#A0A0A0", "type: accessory "),
inventory_image = "minerdream_inv_accessory_slimering.png",
groups = {armor_accessory=1, armor_heal=0.0, armor_use=0,
physics_jump=0.25, physics_speed=0.5, physics_gravity=-0.05},
armor_groups = {fleshy=0.0},
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
})

19
minerdream/armor.txt Normal file
View File

@ -0,0 +1,19 @@
name,tier,helmet_heal,helmet_use,helmet_jump,helmet_speed,helmet_gravity,helmet_fleshy,helmet_cracky,helmet_snappy,helmet_choppy,helmet_crumbly,helmet_level,chestplate_heal,chestplate_use,chestplate_jump,chestplate_speed,chestplate_gravity,chestplate_fleshy,chestplate_cracky,chestplate_snappy,chestplate_choppy,chestplate_crumbly,chestplate_level,leggings_heal,leggings_use,leggings_jump,leggings_speed,leggings_gravity,leggings_fleshy,leggings_cracky,leggings_snappy,leggings_choppy,leggings_crumbly,leggings_level,boots_heal,boots_use,boots_jump,boots_speed,boots_gravity,boots_fleshy,boots_cracky,boots_snappy,boots_choppy,boots_crumbly,boots_level,shields_heal,shields_use,shields_jump,shields_speed,shields_gravity,shields_fleshy,shields_cracky,shields_snappy,shields_choppy,shields_crumbly,shields_level
orichalcum,8,9,150,0.1,0.13,-0.1,17,2,3,2,1,2,9,150,0.1,0.13,-0.1,17,2,3,2,1,2,9,150,0.1,0.13,-0.1,17,2,3,2,1,2,9,150,0.1,0.13,-0.1,17,2,3,2,1,2,9,150,0.1,0.13,-0.1,17,2,3,2,1,2
rarium,7,8.55,100,0.09,0.1,-0.07,15,2,3,2,1,2,8.55,100,0.09,0.1,-0.07,15,2,3,2,1,2,8.55,100,0.09,0.1,-0.07,15,2,3,2,1,2,8.55,100,0.09,0.1,-0.07,15,2,3,2,1,2,8.55,100,0.09,0.1,-0.07,15,2,3,2,1,2
osmium,7,8.5,60,0.09,0.13,-0.09,15,2,3,2,1,2,8.5,60,0.09,0.13,-0.09,15,2,3,2,1,2,8.5,60,0.09,0.13,-0.09,15,2,3,2,1,2,8.5,60,0.09,0.13,-0.09,15,2,3,2,1,2,8.5,60,0.09,0.13,-0.09,15,2,3,2,1,2
palladium,6,8.35,80,0.09,0.12,-0.08,15,2,3,2,1,2,8.35,80,0.09,0.12,-0.08,15,2,3,2,1,2,8.35,80,0.09,0.12,-0.08,15,2,3,2,1,2,8.35,80,0.09,0.12,-0.08,15,2,3,2,1,2,8.35,80,0.09,0.12,-0.08,15,2,3,2,1,2
rhodium,6,8.35,60,0.09,0.12,-0.08,15,2,3,2,1,2,8.35,60,0.09,0.12,-0.08,20,2,3,2,1,2,8.35,60,0.09,0.12,-0.08,20,2,3,2,1,2,8.35,60,0.09,0.12,-0.08,15,2,3,2,1,2,8.35,60,0.09,0.12,-0.08,15,2,3,2,1,2
tantalum,6,8.2,60,0.1,0.16,-0.09,14.5,2,3,2,1,2,8.2,60,0.1,0.16,-0.09,19.5,2,3,2,1,2,8.2,60,0.1,0.16,-0.09,19.5,2,3,2,1,2,8.2,60,0.1,0.16,-0.09,14.5,2,3,2,1,2,8.2,60,0.1,0.16,-0.09,14.5,2,3,2,1,2
ruthenium,5,8,80,0.08,0.08,-0.08,13.75,2,3,2,1,2,8,80,0.08,0.08,-0.08,18.75,2,3,2,1,2,8,80,0.08,0.08,-0.08,18.75,2,3,2,1,2,8,80,0.075,0.075,-0.075,13.75,2,3,2,1,2,8,80,0.08,0.08,-0.08,13.75,2,3,2,1,2
cobalt,5,8.25,80,0.09,0.09,-0.09,13.5,2,3,2,1,2,8.25,80,0.09,0.09,-0.09,18.5,2,3,2,1,2,8.25,80,0.09,0.09,-0.09,18.5,2,3,2,1,2,8.25,80,0.09,0.09,-0.09,13.5,2,3,2,1,2,8.25,80,0.09,0.09,-0.09,13.5,2,3,2,1,2
platinum,4,7.75,100,0.03,0.03,-0.03,13.5,2,3,2,1,2,7.75,100,0.03,0.03,-0.03,18.5,2,3,2,1,2,7.75,100,0.03,0.03,-0.03,18.5,2,3,2,1,2,7.75,100,0.03,0.03,-0.03,13.5,2,3,2,1,2,7.75,100,0.03,0.03,-0.03,13.5,2,3,2,1,2
aluminum,4,7.5,100,0.06,0.06,-0.06,13,2,3,2,1,2,7.5,100,0.06,0.06,-0.06,18,2,3,2,1,2,7.5,100,0.06,0.06,-0.06,18,2,3,2,1,2,7.5,100,0.06,0.06,-0.06,13,2,3,2,1,2,7.5,100,0.06,0.06,-0.06,13,2,3,2,1,2
stainlesssteel,2,6,175,,0.01,0.01,10,2,3,2,1,2,6,175,,-0.04,0.04,15,2,3,2,1,2,6,175,,-0.03,0.03,15,2,3,2,1,2,6,175,,-0.01,0.01,10,2,3,2,1,2,6,175,,-0.03,0.03,10,2,3,2,1,2
lead,3,0,600,,-0.01,0.04,11,2,3,2,1,2,0,600,,-0.06,0.04,16,2,3,2,1,2,0,600,,-0.06,0.04,16,2,3,2,1,2,0,600,,-0.06,0.04,11,2,3,2,1,2,0,600,,-0.06,0.04,11,2,3,2,1,2
nickel,2,5,350,,0.01,0.01,11,2,3,2,1,2,5,350,,-0.04,0.04,16,2,3,2,1,2,5,350,,-0.03,0.03,16,2,3,2,1,2,5,350,,-0.01,0.01,11,2,3,2,1,2,5,350,,-0.03,0.03,11,2,3,2,1,2
silver,3,7.5,300,0.02,0.02,-0.02,11,2,3,2,1,2,7.5,300,0.02,0.02,-0.02,16,2,3,2,1,2,7.5,300,0.02,0.02,-0.02,16,2,3,2,1,2,7.5,300,0.02,0.02,-0.02,11,2,3,2,1,2,7.5,300,0.02,0.02,-0.02,11,2,3,2,1,2
defender,5,8,80,0.08,0.08,-0.08,14.25,2,3,2,1,2,8,80,0.08,0.08,-0.08,19.25,2,3,2,1,2,8,80,0.08,0.08,-0.08,19.25,2,3,2,1,2,8,80,0.075,0.075,-0.075,14.25,2,3,2,1,2,8,80,0.08,0.08,-0.08,14.25,2,3,2,1,2
scout,5,8.75,80,0.1,0.13,-0.1,13.5,2,3,2,1,2,8.75,80,0.1,0.13,-0.1,18.5,2,3,2,1,2,8.75,80,0.1,0.13,-0.1,18.5,2,3,2,1,2,8.75,80,0.1,0.13,-0.1,13.5,2,3,2,1,2,8.75,80,0.1,0.13,-0.1,13.5,2,3,2,1,2
shadow,6,9,50,0.1,0.25,-0.1,14.5,2,3,2,1,2,9,50,0.1,0.25,-0.1,19.5,2,3,2,1,2,9,50,0.1,0.25,-0.1,19.5,2,3,2,1,2,9,50,0.1,0.25,-0.1,14.5,2,3,2,1,2,9,50,0.1,0.25,-0.1,14.5,2,3,2,1,2
knight,6,8.5,60,0.1,0.13,-0.09,15.25,2,3,2,1,2,8.5,60,0.1,0.13,-0.09,20.25,2,3,2,1,2,8.5,60,0.1,0.13,-0.09,20.25,2,3,2,1,2,8.5,60,0.1,0.13,-0.09,15.25,2,3,2,1,2,8.5,60,0.1,0.13,-0.09,15.25,2,3,2,1,2

21
minerdream/arrows.txt Normal file
View File

@ -0,0 +1,21 @@
name,bow_wield_scale,tier,bow_velocity,bow_acceleration,arrow_damage,is_bowarrow,distance
copper,0.9,2,15,-10,2,1,
tin,0.9,2,15,-10,2,1,
bronze,0.95,2,16,-9.75,2.5,1,
steel,1,2,17,-9.5,3,1,
stainlesssteel,1,2,19,-9,3,1,
nickel,1.05,2,18,-9.25,3.5,1,
silver,1.1,3,19,-9,4,1,
gold,1.1,4,20,-8.75,4.5,1,
mese,1.1,3,20,-8.75,4.5,1,
diamond,1.15,3,21,-8.5,5,1,
aluminum,1.3,4,20,-8.75,6,1,
lead,1.1,3,22,-8.5,5,1,
platinum,1.3,4,24,-8,6,1,
cobalt,1.4,5,27,-7.5,7,1,
ruthenium,1.4,5,28,-7.25,7,1,
tantalum,1.55,6,32.5,-6.5,9,1,
rhodium,1.55,6,33,-6.5,9,1,
shuriken,,2,20,-8,4,,8
throwing_knife,,4,25,-6,6,,8
dark shuriken,,6,50,-5,8,,8

313
minerdream/blocks.lua Normal file
View File

@ -0,0 +1,313 @@
-----------slimeblocks----------------
minetest.register_node("minerdream:slimeblock_green", {
description = "Green block of slime",
tiles = {"minerdream_slimeblock_green.png"},
groups = {crumbly = 3,bouncy=75,fall_damage_add_percent=-50},
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("minerdream:slimeblock_blue", {
description = "Blue block of slime",
tiles = {"minerdream_slimeblock_blue.png"},
groups = {crumbly = 3,bouncy=80,fall_damage_add_percent=-55},
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("minerdream:slimeblock_red", {
description = "Red block of slime",
tiles = {"minerdream_slimeblock_red.png"},
groups = {crumbly = 3,bouncy=85,fall_damage_add_percent=-60},
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("minerdream:slimeblock_yellow", {
description = "Yellow block of slime",
tiles = {"minerdream_slimeblock_yellow.png"},
groups = {crumbly = 3,bouncy=90,fall_damage_add_percent=-65},
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("minerdream:slimeblock_purple", {
description = "Purple block of slime",
tiles = {"minerdream_slimeblock_purple.png"},
groups = {crumbly = 3,bouncy=95,fall_damage_add_percent=-70},
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("minerdream:slimeblock_brown", {
description = "Brown block of slime",
tiles = {"minerdream_slimeblock_brown.png"},
groups = {crumbly = 3,bouncy=100,fall_damage_add_percent=-75},
sounds = default.node_sound_sand_defaults(),
})
-------------ores--------------
minetest.register_node("minerdream:stone_with_onyx", {
description = "Onyx ore",
tiles = {"default_stone.png^minerdream_onyx_ore.png"},
groups = {cracky = 5},
drop = 'minerdream:onyx',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:stone_with_aquamarine", {
description = "Aquamarine ore",
tiles = {"minerdream_aquamarine_rock.png"},
groups = {cracky = 5},
drawtype = "mesh",
paramtype = "light",
sunlight_propagates = true,
mesh = "gemstone_cubic_pillars.obj",
drop = 'minerdream:aquamarine',
sounds = default.node_sound_stone_defaults(),
selection_box = {
type = "fixed",
fixed = {
{-0.4, -0.5, -0.4, 0.4, 0.0, 0.4},
},
},
node_box = {
type = "fixed",
fixed = {
{-0.4, -0.5, -0.4, 0.4, 0.0, 0.4},
},
},
})
minetest.register_node("minerdream:stone_with_topaz", {
description = "Topaz ore",
tiles = {"minerdream_topaz_rock.png"},
groups = {cracky = 5},
drawtype = "mesh",
paramtype = "light",
sunlight_propagates = true,
mesh = "gemstone_cubic.obj",
drop = 'minerdream:topaz',
sounds = default.node_sound_stone_defaults(),
selection_box = {
type = "fixed",
fixed = {
{-0.4, -0.5, -0.4, 0.4, 0.0, 0.4},
},
},
node_box = {
type = "fixed",
fixed = {
{-0.4, -0.5, -0.4, 0.4, 0.0, 0.4},
},
},
})
-----------------desert ores-----------------
minetest.register_node("minerdream:desertstone_with_richiron", {
description = "Rich desert iron ore",
tiles = {"default_desert_stone.png^minerdream_richiron_ore.png"},
groups = {cracky = 2},
drop = 'default:iron_lump 2',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:desertstone_with_poorgold", {
description = "Poor desert gold ore",
tiles = {"default_desert_stone.png^minerdream_poorgold_ore.png"},
groups = {cracky = 3},
drop = 'minerdream:gold_nugget 1',
sounds = default.node_sound_stone_defaults(),
})
--------------marble---------------
local function register_marble_intern(color,crack)
minetest.register_node("minerdream:marble_"..color, {
description = color.." marble",
tiles = {"minerdream_marble_"..color..".png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
end
local function register_marble(color,crack)
register_marble_intern(color,3)
register_marble_intern(color.."_polished",3)
register_marble_intern(color.."_brick",3)
register_marble_intern(color.."_smallbrick",3)
minetest.register_node("minerdream:pillar_marble_"..color.."_middle", {
description = color.." marble pillar middle",
tiles = {"minerdream_marble_"..color..".png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, -0.1875, 0.375, 0.5, 0.1875}, -- NodeBox1
{-0.1875, -0.5, -0.375, 0.1875, 0.5, 0.375}, -- NodeBox2
{-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125}, -- NodeBox3
}
}
})
minetest.register_node("minerdream:pillar_marble_"..color.."_middle", {
description = color.." marble pillar middle",
tiles = {"minerdream_marble_"..color..".png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, -0.1875, 0.375, 0.5, 0.1875}, -- NodeBox1
{-0.1875, -0.5, -0.375, 0.1875, 0.5, 0.375}, -- NodeBox2
{-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125}, -- NodeBox3
}
}
})
minetest.register_node("minerdream:pillar_marble_"..color.."_bottom", {
description = color.." marble pillar bottom",
tiles = {"minerdream_marble_"..color..".png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, -0.1875, 0.375, 0.5, 0.1875}, -- NodeBox1
{-0.1875, -0.5, -0.375, 0.1875, 0.5, 0.375}, -- NodeBox2
{-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125}, -- NodeBox3
{-0.4375, -0.5, -0.4375, 0.4375, -0.375, 0.4375}, -- NodeBox4
{-0.3125, -0.5, -0.5, 0.3125, -0.375, 0.5}, -- NodeBox5
{-0.5, -0.5, -0.3125, 0.5, -0.375, 0.3125}, -- NodeBox6
}
}
})
minetest.register_node("minerdream:pillar_marble_"..color.."_top", {
description = color.." marble pillar top",
tiles = {"minerdream_marble_"..color..".png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, -0.1875, 0.375, 0.5, 0.1875}, -- NodeBox1
{-0.1875, -0.5, -0.375, 0.1875, 0.5, 0.375}, -- NodeBox2
{-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125}, -- NodeBox3
{-0.4375, 0.375, -0.4375, 0.4375, 0.5, 0.4375}, -- NodeBox4
{-0.3125, 0.375, -0.5, 0.3125, 0.5, 0.5}, -- NodeBox5
{-0.5, 0.375, -0.3125, 0.5, 0.5, 0.3125}, -- NodeBox6
}
}
})
minetest.register_node("minerdream:pillar_marble_"..color.."_both", {
description = color.." marble pillar both-sided",
tiles = {"minerdream_marble_"..color..".png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, -0.1875, 0.375, 0.5, 0.1875}, -- NodeBox1
{-0.1875, -0.5, -0.375, 0.1875, 0.5, 0.375}, -- NodeBox2
{-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125}, -- NodeBox3
{-0.4375, 0.375, -0.4375, 0.4375, 0.5, 0.4375}, -- NodeBox4
{-0.3125, 0.375, -0.5, 0.3125, 0.5, 0.5}, -- NodeBox5
{-0.5, 0.375, -0.3125, 0.5, 0.5, 0.3125}, -- NodeBox6
{-0.4375, -0.5, -0.4375, 0.4375, -0.375, 0.4375}, -- NodeBox9
{-0.3125, -0.5, -0.5, 0.3125, -0.375, 0.5}, -- NodeBox10
{-0.5, -0.5, -0.3125, 0.5, -0.375, 0.3125}, -- NodeBox11
}
}
})
end
register_marble("white",3)
register_marble("pink",3)
register_marble("red",3)
register_marble("blue",3)
register_marble("green",3)
register_marble("black",3)
------------lapis-------------
minetest.register_node("minerdream:lapislazuli_block", {
description = "Lapis lazuli block",
tiles = {"minerdream_lapislazuli_block.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_goldblock", {
description = "Lapis lazuli-gold block #1",
tiles = {"minerdream_lapislazuli_goldblock.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_goldblock_a", {
description = "Lapis lazuli-gold block #2",
tiles = {"minerdream_lapislazuli_goldblock_a.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_goldblock_b", {
description = "Lapis lazuli-gold block #3",
tiles = {"minerdream_lapislazuli_goldblock_b.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_goldblock_c", {
description = "Lapis lazuli-gold block #4",
tiles = {"minerdream_lapislazuli_goldblock_c.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_goldblock_d", {
description = "Lapis lazuli-gold block #5",
tiles = {"minerdream_lapislazuli_goldblock_d.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_brick", {
description = "Lapis lazuli bricks",
tiles = {"minerdream_lapislazuli_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuli_smallbrick", {
description = "Small lapis lazuli bricks",
tiles = {"minerdream_lapislazuli_smallbrick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuligold_brick", {
description = "lapis lazuli-gold bricks #1",
tiles = {"minerdream_lapislazuligold_brick.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("minerdream:lapislazuligold_brick_a", {
description = "lapis lazuli-gold bricks #2",
tiles = {"minerdream_lapislazuligold_brick_a.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
-------------gemstones---------------
-- from original version by daviddoesminetest
minetest.register_node("minerdream:desertstone_with_coal", {
description = "Desert coal ore",
tiles = {"default_desert_stone.png^default_mineral_coal.png"},
groups = {cracky = 3},
drop = 'default:coal_lump 1',
sounds = default.node_sound_stone_defaults(),
})

13
minerdream/config.lua Normal file
View File

@ -0,0 +1,13 @@
local viscosity=1
minerdream.ingot_stack_max = tonumber(minetest.settings:get("minerdream.ingot_stack_max")) or 250
minerdream.lump_stack_max = tonumber(minetest.settings:get("minerdream.lump_stack_max")) or 999
minerdream.dust_cooking_time_reduce = tonumber(minetest.settings:get("minerdream.dust_cooking_time_reduce")) or 2
minerdream.steel_wire="minerdream:steel_wire"
if minetest.get_modpath("basic_materials") == nil then
dofile(minerdream.path .. "/steel_wire.lua")
else
minerdream.steel_wire="basic_materials:steel_wire"
end

635
minerdream/crafting.lua Normal file
View File

@ -0,0 +1,635 @@
local local_craft_stack=function(input,output)
minetest.register_craft({
output = output,
recipe = {
{input, input},
{input, input},
} })
end
local local_craft_pillar=function(input,output)
minetest.register_craft({
output = output,
recipe = {
{input},
{input},
{input},
} })
end
local local_craft_pillar_bottom=function(input,output)
minetest.register_craft({
output = output,
recipe = {
{'',input,''},
{'',input,''},
{input,input,input},
} })
end
local local_craft_pillar_both=function(input,output)
minetest.register_craft({
output = output,
recipe = {
{'',input,''},
{'',input,''},
{input,input,input},
} })
end
local local_craft_pillar_top=function(input,output)
minetest.register_craft({
output = output,
recipe = {
{input,input,input},
{'',input,''},
{'',input,''},
} })
end
local local_craft_block=function(input,output)
minetest.register_craft({
output = output,
recipe = {
{input, input, input},
{input, input, input},
{input, input, input},
} })
minetest.register_craft({
output = input.." 9",
recipe = {{output}} })
end
----------slimerecipies------
local slime_def={red={torches=5,burntime=50},
blue={torches=4,burntime=40},
green={torches=3,burntime=30},
yellow={torches=6,burntime=60},
purple={torches=7,burntime=70},
brown={torches=8,burntime=80},
}
for i,idef in pairs(slime_def) do
local_craft_block('minerdream:slimeball_'..i,'minerdream:slimeblock_'..i)
minetest.register_craft({
output = 'default:torch '..idef.torches,
recipe = {
{'minerdream:slimeball_'..i},
{'group:stick'},
}
})
minetest.register_craft({
type = "fuel",
recipe = "minerdream:slimeball_"..i,
burntime = idef.burntime,
})
end
-----------------alloys n stuff---------
minetest.register_craft( {
type = "shapeless",
output = "tnt:gunpowder 12",
recipe = {"default:coal_lump", "minerdream:sulfur_powder", "minerdream:saltpeter_powder"},
})
minetest.register_craft({
output = 'minerdream:brass_nugget',
recipe = {
{'minerdream:casing', 'minerdream:casing', 'minerdream:casing'},
{'minerdream:casing', 'minerdream:casing', 'minerdream:casing'},
{'minerdream:casing', 'minerdream:casing', 'minerdream:casing'},
}
})
minetest.register_craft({
output = 'minerdream:brass_bar',
recipe = {
{'minerdream:brass_nugget', 'minerdream:brass_nugget', ''},
{'minerdream:brass_nugget', 'minerdream:brass_nugget', ''},
}
})
minetest.register_craft({
output = 'default:gold_lump',
recipe = {
{'minerdream:gold_nugget', 'minerdream:gold_nugget', ''},
{'minerdream:gold_nugget', 'minerdream:gold_nugget', ''},
}
})
minetest.register_craft({
output = 'minerdream:brass_bar 3',
recipe = {
{'default:copper_ingot', 'default:copper_ingot', 'minerdream:zinc_bar'},
}
})
minetest.register_craft({
output = 'dye:blue 3',
recipe = {
{'minerdream:lapislazuli_lump'},
}
})
minetest.register_craft({
output = 'minerdream:brass_bar 3',
recipe = {
{'default:copper_ingot', 'default:copper_ingot', 'minerdream:zinc_bar'},
}
})
minetest.register_craft({
output = 'minerdream:stainlesssteel_bar 1',
recipe = {
{'default:steel_ingot', 'minerdream:zinc_ingot', 'default:coal_lump'},
}
})
local stainlessbar="minerdream:stainlesssteel_bar"
if minetest.registered_items["technic:stainless_steel_ingot"] ~= nil then
stainlessbar = "technic:stainless_steel_ingot"
end
minetest.register_craft({
output = 'minerdream:steelstick 3',
recipe = {
{'', stainlessbar, ''},
{'', stainlessbar, ''},
}
})
local silveringot=minerdream.items["silver"]
if silveringot ~= nil then
local ingot_name=silveringot.ingot_name
if ingot_name == nil and silveringot.ingot_def ~= nil then
ingot_name = silveringot.ingot_def.name
end
if ingot_name ~= nil then
minetest.register_craft({
output = 'minerdream:expensivestick 2',
recipe = {
{ingot_name},
{ 'default:gold_ingot'},
}
})
end
end
minetest.register_craft({
output = 'default:torch 8',
recipe = {
{'minerdream:bituminous_coal'},
{'group:stick'},
}
})
----------fuels-------------
minetest.register_craft({
type = "fuel",
recipe = "minerdream:bituminous_coal",
burntime = 125,
})
--------------lapis----------------
minetest.register_craft({
output = 'minerdream:lapislazuli_lump 9',
recipe = {
{'minerdream:lapislazuli_block'},
}
})
minetest.register_craft({
output = 'minerdream:lapislazuli_smallbrick 4',
recipe = {
{'minerdream:lapislazuli_brick', 'minerdream:lapislazuli_brick', ''},
{'minerdream:lapislazuli_brick', 'minerdream:lapislazuli_brick', ''},
}
})
minetest.register_craft( {
type = "shapeless",
output = "minerdream:lapislazuli_brick",
recipe = {"minerdream:lapislazuli_lump", "default:cobble"},
})
minetest.register_craft( {
type = "shapeless",
output = "minerdream:lapislazuligold_brick 2",
recipe = {"minerdream:lapislazuli_smallbrick", "minerdream:gold_brick"},
})
minetest.register_craft( {
type = "shapeless",
output = "minerdream:lapislazuligold_brick_a",
recipe = {"minerdream:lapislazuligold_brick"},
})
minetest.register_craft( {
type = "shapeless",
output = "minerdream:lapislazuligold_brick",
recipe = {"minerdream:lapislazuligold_brick_a"},
})
minetest.register_craft({
output = 'minerdream:lapislazuli_goldblock',
recipe = {
{'', 'default:gold_ingot', ''},
{'default:gold_ingot', 'minerdream:lapislazuli_block', 'default:gold_ingot'},
{'', 'default:gold_ingot', ''},
}
})
minetest.register_craft( {
type = "shapeless",
output = "minerdream:lapislazuli_goldblock_a",
recipe = {"minerdream:lapislazuli_goldblock"},
})
minetest.register_craft( {
type = "shapeless",
output = "minerdream:lapislazuli_goldblock_b",
recipe = {"minerdream:lapislazuli_goldblock_a"},
})
minetest.register_craft( {
type = "shapeless",
output = "minerdream:lapislazuli_goldblock_c",
recipe = {"minerdream:lapislazuli_goldblock_b"},
})
minetest.register_craft( {
type = "shapeless",
output = "minerdream:lapislazuli_goldblock_d",
recipe = {"minerdream:lapislazuli_goldblock_c"},
})
minetest.register_craft( {
type = "shapeless",
output = "minerdream:lapislazuli_goldblock",
recipe = {"minerdream:lapislazuli_goldblock_d"},
})
----------bar stacks---------------
minetest.register_craft({
output = 'minerdream:brass_bar_block',
recipe = {
{'minerdream:brass_bar', 'minerdream:brass_bar', ''},
{'minerdream:brass_bar', 'minerdream:brass_bar', ''},
}
})
minetest.register_craft({
output = 'minerdream:brass_bar 4',
recipe = {
{'minerdream:brass_bar_block', '', ''},
}
})
-------------------marble-------------
for _,colo in pairs({"white","pink","red","green","purple","black"}) do
local_craft_stack('minerdream:marble_'..colo,'minerdream:marble_'..colo..'_polished 4')
local_craft_stack('minerdream:marble_'..colo..'_polished','minerdream:marble_'..colo..'_brick 4')
local_craft_stack('minerdream:marble_'..colo..'_brick','minerdream:marble_'..colo..'_smallbrick 4')
local_craft_pillar('minerdream:marble_'..colo,'minerdream:pillar_marble_'..colo..'_middle 3')
local_craft_pillar_bottom('minerdream:marble_'..colo,'minerdream:pillar_marble_'..colo..'_bottom 5')
local_craft_pillar_top('minerdream:marble_'..colo,'minerdream:pillar_marble_'..colo..'_top 5')
local_craft_pillar_both('minerdream:marble_'..colo,'minerdream:pillar_marble_'..colo..'_both 7')
end
--------------misc items-------------
minetest.register_craft( {
type = "shapeless",
output = "minerdream:vitamin 6",
recipe = {"default:iron_lump", "minerdream:calcium_lump", "minerdream:potassium_lump", "minerdream:zinc_lump"},
})
--------------------bows----------------
minetest.register_craft({
output = 'minerdream:bow_copper',
recipe = {
{'', 'default:copper_ingot', 'default:copper_ingot'},
{'default:copper_ingot', '', 'farming:cotton'},
{'default:copper_ingot', 'farming:cotton', ''},
}
})
------------unusualweapons and ammo------------
minetest.register_craft({
output = 'minerdream:pink_blaster',
recipe = {
{'', 'minerdream:spinel', ''},
{'minerdream:spinel', 'minerdream:rhodium_bar', 'minerdream:rhodium_bar'},
{'', '', 'minerdream:rhodium_bar'},
}
})
minetest.register_craft({
output = 'minerdream:dark_shuriken 50',
recipe = {
{'minerdream:shuriken', 'minerdream:shuriken', 'minerdream:shuriken'},
{'minerdream:shuriken', 'minerdream:onyx', 'minerdream:shuriken'},
{'minerdream:shuriken', 'minerdream:shuriken', 'minerdream:shuriken'},
}
})
minetest.register_craft({
output = 'minerdream:amethyst_staff',
recipe = {
{'', 'minerdream:amethyst', 'minerdream:cobalt_bar'},
{'', 'minerdream:cobalt_bar', 'minerdream:cobalt_bar'},
{'minerdream:amethyst', '', ''},
}
})
minetest.register_craft({
output = 'minerdream:ocean_staff',
recipe = {
{'', 'default:gold_ingot', 'minerdream:aquamarine'},
{'', 'minerdream:tantalum_bar', 'default:gold_ingot'},
{'minerdream:tantalum_bar', '', ''},
}
})
minetest.register_craft({
output = 'minerdream:arrow 20',
recipe = {
{'', '', 'default:paper'},
{'default:steel_ingot', 'group:wood', 'group:wood'},
{'', '', 'default:paper'},
}
})
minetest.register_craft({
output = 'minerdream:arrow 20',
recipe = {
{'', '', 'mobs:chicken_feather'},
{'default:steel_ingot', 'group:wood', 'group:wood'},
{'', '', 'mobs:chicken_feather'},
}
})
minetest.register_craft({
output = 'minerdream:arrow 20',
recipe = {
{'', '', 'default:paper'},
{'default:flint', 'group:wood', 'group:wood'},
{'', '', 'default:paper'},
}
})
minetest.register_craft({
output = 'minerdream:arrow 20',
recipe = {
{'', '', 'mobs:chicken_feather'},
{'default:flint', 'group:wood', 'group:wood'},
{'', '', 'mobs:chicken_feather'},
}
})
minetest.register_craft({
output = 'minerdream:bullet 50',
recipe = {
{'', 'minerdream:lead_bar', ''},
{'minerdream:brass_bar', 'tnt:gunpowder', 'minerdream:brass_bar'},
{'minerdream:brass_bar', 'default:steel_ingot', 'minerdream:brass_bar'},
}
})
minetest.register_craft({
output = 'minerdream:handgun',
recipe = {
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
{'', 'default:mese_crystal_fragment', 'minerdream:lead_bar'},
{'', '', 'minerdream:lead_bar'},
}
})
minetest.register_craft({
output = 'minerdream:golden_crystal_trisword',
recipe = {
{'', 'minerdream:topaz', 'minerdream:topaz'},
{'minerdream:rhodium_bar', 'default:mese', 'minerdream:topaz'},
{'minerdream:rhodium_bar', 'minerdream:rhodium_bar', ''},
}
})
------special armors-----
minetest.register_craft({
output = 'minerdream:helmet_scout',
recipe = {
{'', 'minerdream:amethyst', ''},
{'default:gold_ingot', 'minerdream:helmet_cobalt', 'default:gold_ingot'},
}
})
minetest.register_craft({
output = 'minerdream:chestplate_scout',
recipe = {
{'minerdream:amethyst', '', 'minerdream:amethyst'},
{'default:gold_ingot', 'minerdream:chestplate_cobalt', 'default:gold_ingot'},
{'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'},
}
})
minetest.register_craft({
output = 'minerdream:leggings_scout',
recipe = {
{'', 'default:gold_ingot', ''},
{'minerdream:amethyst', 'minerdream:leggings_cobalt', 'minerdream:amethyst'},
{'', '', ''},
}
})
minetest.register_craft({
output = 'minerdream:boots_scout',
recipe = {
{'', '', ''},
{'minerdream:amethyst', 'minerdream:boots_cobalt', 'minerdream:amethyst'},
{'default:gold_ingot', '', 'default:gold_ingot'},
}
})
minetest.register_craft({
output = 'minerdream:shield_scout',
recipe = {
{'', 'default:gold_ingot', ''},
{'default:gold_ingot', 'minerdream:amethyst', 'default:gold_ingot'},
{'', 'minerdream:shield_cobalt', ''},
}
})
minetest.register_craft({
output = 'minerdream:helmet_defender',
recipe = {
{'', 'minerdream:garnet', ''},
{'default:bronze_ingot', 'minerdream:helmet_ruthenium', 'default:bronze_ingot'},
}
})
minetest.register_craft({
output = 'minerdream:chestplate_defender',
recipe = {
{'minerdream:garnet', '', 'minerdream:garnet'},
{'default:bronze_ingot', 'minerdream:chestplate_ruthenium', 'default:bronze_ingot'},
{'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'},
}
})
minetest.register_craft({
output = 'minerdream:leggings_defender',
recipe = {
{'', 'default:bronze_ingot', ''},
{'minerdream:garnet', 'minerdream:leggings_ruthenium', 'minerdream:garnet'},
{'', '', ''},
}
})
minetest.register_craft({
output = 'minerdream:boots_defender',
recipe = {
{'', '', ''},
{'minerdream:garnet', 'minerdream:boots_ruthenium', 'minerdream:garnet'},
{'default:bronze_ingot', '', 'default:bronze_ingot'},
}
})
minetest.register_craft({
output = 'minerdream:shield_defender',
recipe = {
{'', 'default:bronze_ingot', ''},
{'default:bronze_ingot', 'minerdream:garnet', 'default:bronze_ingot'},
{'', 'minerdream:shield_ruthenium', ''},
}
})
minetest.register_craft({
output = 'minerdream:helmet_shadow',
recipe = {
{'', 'minerdream:spinel', ''},
{'wool:black', 'minerdream:helmet_tantalum', 'wool:black'},
{'', 'minerdream:onyx', ''},
}
})
minetest.register_craft({
output = 'minerdream:chestplate_shadow',
recipe = {
{'', 'minerdream:spinel', ''},
{'wool:black', 'minerdream:chestplate_tantalum', 'wool:black'},
{'', 'minerdream:onyx', ''},
}
})
minetest.register_craft({
output = 'minerdream:leggings_shadow',
recipe = {
{'', 'minerdream:spinel', ''},
{'wool:black', 'minerdream:leggings_tantalum', 'wool:black'},
{'', 'minerdream:onyx', ''},
}
})
minetest.register_craft({
output = 'minerdream:boots_shadow',
recipe = {
{'', 'minerdream:spinel', ''},
{'wool:black', 'minerdream:boots_tantalum', 'wool:black'},
{'', 'minerdream:onyx', ''},
}
})
minetest.register_craft({
output = 'minerdream:shield_shadow',
recipe = {
{'', 'minerdream:spinel', ''},
{'minerdream:lead_bar', 'minerdream:shield_tantalum', 'minerdream:lead_bar'},
{'', 'minerdream:onyx', ''},
}
})
minetest.register_craft({
output = 'minerdream:helmet_knight',
recipe = {
{'', 'minerdream:topaz', ''},
{'minerdream:silver_bar', 'minerdream:helmet_rhodium', 'minerdream:silver_bar'},
{'', 'minerdream:topaz', ''},
}
})
minetest.register_craft({
output = 'minerdream:chestplate_knight',
recipe = {
{'', 'minerdream:topaz', ''},
{'minerdream:silver_bar', 'minerdream:chestplate_rhodium', 'minerdream:silver_bar'},
{'', 'minerdream:topaz', ''},
}
})
minetest.register_craft({
output = 'minerdream:leggings_knight',
recipe = {
{'', 'minerdream:topaz', ''},
{'minerdream:silver_bar', 'minerdream:leggings_rhodium', 'minerdream:silver_bar'},
{'', 'minerdream:topaz', ''},
}
})
minetest.register_craft({
output = 'minerdream:boots_knight',
recipe = {
{'', 'minerdream:topaz', ''},
{'minerdream:silver_bar', 'minerdream:boots_rhodium', 'minerdream:silver_bar'},
{'', 'minerdream:topaz', ''},
}
})
minetest.register_craft({
output = 'minerdream:shield_knight',
recipe = {
{'', 'minerdream:topaz', ''},
{'minerdream:silver_bar', 'minerdream:shield_rhodium', 'minerdream:silver_bar'},
{'', '', ''},
}
})
----------------------accessories---------------
minetest.register_craft({
output = 'minerdream:accessory_speedring',
recipe = {
{'', 'minerdream:jade', 'minerdream:jade'},
{'minerdream:silver_bar', '', 'minerdream:jade'},
{'minerdream:silver_bar', 'minerdream:silver_bar', ''},
}
})
minetest.register_craft({
output = 'minerdream:accessory_protectionring',
recipe = {
{'', 'minerdream:garnet', 'minerdream:garnet'},
{'default:gold_ingot', '', 'minerdream:garnet'},
{'default:gold_ingot', 'default:gold_ingot', ''},
}
})

12
minerdream/depends.txt Normal file
View File

@ -0,0 +1,12 @@
default
3d_armor
shields
mana
mobs
basic_functions
awards?
hbhunger?
hunger?
technic?
basic_materials?
technic_aluminum?

98
minerdream/generation.lua Normal file
View File

@ -0,0 +1,98 @@
----rocks n stuff--------
local function mg_reg_ore(iore,ymin,ymax,clust)
minetest.register_ore({
ore_type = "blob",
ore = iore,
wherein = {"default:stone"},
clust_scarcity = 25 * 25 * 25,
clust_size = clust,
y_min = ymin,
y_max = ymax,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = {x = 5, y = 5, z = 5},
seed = 766,
octaves = 1,
persist = 0.0
},
})
end
mg_reg_ore("minerdream:marble_white",-5000,-50,5)
mg_reg_ore("minerdream:marble_pink",-5000,-125,5)
mg_reg_ore("minerdream:marble_red",-5000,-200,5)
mg_reg_ore("minerdream:marble_red",-5000,-300,5)
mg_reg_ore("minerdream:marble_blue",-5000,-425,5)
mg_reg_ore("minerdream:marble_black",-5000,-600,5)
-------desert ores--------
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:desertstone_with_richiron",
wherein = "default:desert_stone",
clust_scarcity = 10 * 10 * 10,
clust_num_ores = 5,
clust_size = 2,
y_min = -31000,
y_max = 420,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:desertstone_with_lapislazuli",
wherein = "default:desert_stone",
clust_scarcity = 10 * 10 * 10,
clust_num_ores = 5,
clust_size = 2,
y_min = -31000,
y_max = 420,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:desertstone_with_coal",
wherein = "default:desert_stone",
clust_scarcity = 12 * 12 * 12,
clust_num_ores = 5,
clust_size = 2,
y_min = -31000,
y_max = 420,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:desertstone_with_sulfur",
wherein = "default:desert_stone",
clust_scarcity = 15 * 15 * 15,
clust_num_ores = 5,
clust_size = 2,
y_min = -31000,
y_max = 420,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:desertstone_with_saltpeter",
wherein = "default:desert_stone",
clust_scarcity = 15 * 15 * 15,
clust_num_ores = 5,
clust_size = 2,
y_min = -31000,
y_max = 420,
})
minetest.register_ore({
ore_type = "scatter",
ore = "minerdream:desertstone_with_poorgold",
wherein = "default:desert_stone",
clust_scarcity = 10 * 10 * 10,
clust_num_ores = 1,
clust_size = 1,
y_min = -31000,
y_max = 420,
})

29
minerdream/init.lua Normal file
View File

@ -0,0 +1,29 @@
minerdream = {}
minerdream.path = minetest.get_modpath("minerdream")
minerdream.modname = minetest.get_current_modname()
minerdream.items={}
minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- start loading from "..minetest.get_modpath(minetest.get_current_modname()))
-- import settingtypes.txt
basic_functions.import_settingtype(minerdream.path .. "/settingtypes.txt")
dofile(minerdream.path .. "/config.lua")
dofile(minerdream.path .. "/read_ore_config.lua")
dofile(minerdream.path .. "/read_tool_config.lua")
dofile(minerdream.path .. "/read_armor_config.lua")
dofile(minerdream.path .. "/items.lua")
dofile(minerdream.path .. "/overrides.lua")
dofile(minerdream.path .. "/blocks.lua")
dofile(minerdream.path .. "/generation.lua")
dofile(minerdream.path .. "/crafting.lua")
dofile(minerdream.path .. "/weapons.lua")
dofile(minerdream.path .. "/read_weapon_config.lua")
dofile(minerdream.path .. "/armor.lua")
--dofile(minerdream.path .. "/treasure.lua")
dofile(minerdream.path .. "/experiments.lua")
--dofile(minerdream.path .. "/mobs.lua")
dofile(minerdream.path .. "/read_mobs_config.lua")
minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- loaded ")

84
minerdream/items.lua Normal file
View File

@ -0,0 +1,84 @@
---------mob drops----------------
for _,colo in pairs({"green","blue","red","yellow","purple","brown"}) do
minetest.register_craftitem('minerdream:slimeball_'..colo, {
description = colo.." ball of slime",
inventory_image = "minerdream_slimeball_"..colo..".png",
stack_max= 1000,
})
end
---------------------materials---------------
minetest.register_craftitem('minerdream:expensivestick', {
description = "Expensive stick",
inventory_image = "minerdream_expensivestick.png",
stack_max= 1000,
})
minetest.register_craftitem('minerdream:steelstick', {
description = "Stainless steel stick",
inventory_image = "minerdream_steelstick.png",
stack_max= 1000,
})
minetest.register_craftitem('minerdream:stainlesssteel_bar', {
description = "Stainless steel bar",
inventory_image = "minerdream_stainlesssteel_bar.png",
stack_max= 1000,
})
-----------------ores----------------
minetest.register_craftitem('minerdream:brass_nugget', {
description = "".. core.colorize("#FFFFFF", "brass nugget\n")..core.colorize("#A0A0A0", "4 of those, can be combined into a bar"),
inventory_image = "minerdream_brass_nugget.png",
stack_max= 1000,
})
minetest.register_craftitem('minerdream:gold_nugget', {
description = "".. core.colorize("#FFFFFF", "Raw gold nugget\n")..core.colorize("#A0A0A0", "4 of those, can be combined into a lump"),
inventory_image = "minerdream_gold_nugget.png",
stack_max= 1000,
})
---------------refined goods-----------------
minetest.register_craftitem('minerdream:brass_bar', {
description = "".. core.colorize("#BFFFFF", "brass bar\n")..core.colorize("#A0A0A0", "tier: 2 (uncommon)"),
inventory_image = "minerdream_brass_bar.png",
stack_max= 250,
})
------------------consumables----------------
minetest.register_craftitem("minerdream:vitamin", {
description = "".. core.colorize("#FFFFFF", "Vitamin pill\n")..core.colorize("#A0A0A0", "Consumable\n")..core.colorize("#A0A0A0", "Restores 3 hp"),
wield_scale = {x=0.25,y=0.25,z=0.5},
inventory_image = "minerdream_pill.png",
on_use = minetest.item_eat(3),
})
minetest.register_craftitem("minerdream:potion_tiny", {
description = "".. core.colorize("#FFFFFF", "Tiny healing potion\n")..core.colorize("#A0A0A0", "Consumable\n")..core.colorize("#A0A0A0", "Restores 5 hp"),
wield_scale = {x=0.75,y=0.75,z=0.75},
inventory_image = "minerdream_potion_tiny.png",
on_use = minetest.item_eat(5),
})
minetest.register_craftitem("minerdream:potion_lesser", {
description = "".. core.colorize("#FFFFFF", "Lesser healing potion\n")..core.colorize("#A0A0A0", "Consumable\n")..core.colorize("#A0A0A0", "Restores 10 hp"),
wield_scale = {x=0.75,y=0.75,z=0.75},
inventory_image = "minerdream_potion_lesser.png",
on_use = minetest.item_eat(10),
})
minetest.register_craftitem("minerdream:potion_normal", {
description = "".. core.colorize("#FFFFFF", " Healing potion\n")..core.colorize("#A0A0A0", "Consumable\n")..core.colorize("#A0A0A0", "Restores 15 hp"),
wield_scale = {x=0.75,y=0.75,z=0.75},
inventory_image = "minerdream_potion_normal.png",
on_use = minetest.item_eat(15),
})
minetest.register_craftitem("minerdream:potion_greater", {
description = "".. core.colorize("#FFFFFF", "Greater healing potion\n")..core.colorize("#A0A0A0", "Consumable\n")..core.colorize("#A0A0A0", "Restores 20 hp"),
wield_scale = {x=0.75,y=0.75,z=0.75},
inventory_image = "minerdream_potion_greater.png",
on_use = minetest.item_eat(20),
})

8
minerdream/mobs.txt Normal file
View File

@ -0,0 +1,8 @@
name,attack_type,reach,damage,hp_min,hp_max,armor,collisionbox,walk_velocity,run_velocity,walk_chance,fall_speed,jump_chance,jump_height,stepheight,view_range,slimeball,egg,slimering,water_damage,lava_damage,light_damage,maxlight,chance,max_height
default,dogfight,2,,,,100,,,,0,-50,30,,1.1,16,1,100,,0,8,0,10,,
green,,,1,5,5,,0.3,2,2,,,,6,,,,,200,,,,,1000,0
blue,,,2,8,8,,0.45,2,2,,,,6,,,,,175,,,,,1250,-50
red,,,3,12,12,,0.6,3,3,,,,7,,,,,150,,,,,1500,-100
yellow,,,4,20,20,,0.75,3,3,,,,7,,,,,125,,,,,1750,-250
purple,,,6,35,35,,0.9,4,4,,,,8,,,,,100,,,,,2000,-500
brown,,3.5,8,50,50,,1.05,4,4,,,,9,1.2,,,,75,,,,,2000,-1200

8
minerdream/mod.conf Normal file
View File

@ -0,0 +1,8 @@
name = minerdream
title = Minerdream
author = davieddoesminetest,ademant
description = A mod, that makes minig way more fun, and is a replacement for Xtraores, which I abandoned.
depends = default,3d_armor,shields,mana,mobs,basic_functions
optional_depends = intllib,hbhunger,hunger,technic,basic_materials,technic_aluminum,technic_worldgen,technic
license = MIT
version = 1.0.0

View File

@ -0,0 +1,161 @@
# Blender v2.69 (sub . OBJ File: 'amethist1.blend'
# www.blender.org
mtllib amethyst.mtl
o Cube
v .0437 -.4456 -.2
v .0875 -.4456 .2
v -.0875 -.4456 .2
v -.0437 -.4456 -.2
v .0437 -.4143 -.2
v .0875 -.4143 .2
v -.0875 -.4143 .2
v -.0437 -.4143 -.2
v -.0437 -.4456 -.2
v -.0875 -.4456 .2
v -.0437 -.4143 -.2
v -.0875 -.4143 .2
v .0437 -.4456 -.2
v .0875 -.4456 .2
v .0437 -.4143 -.2
v .0875 -.4143 .2
v .175 -.4456 .12
v -.175 -.4456 .12
v .175 -.4143 .12
v -.175 -.4143 .12
v -.0875 -.4925 .12
v -.0875 -.3675 .12
v .0875 -.4925 .12
v .0875 -.3675 .12
v -.175 -.4456 -.04
v -.175 -.4143 -.04
v -.0875 -.4925 -.04
v .0875 -.4925 -.04
v .175 -.4456 -.04
v .175 -.4143 -.04
v -.0875 -.3675 -.04
v .0875 -.3675 -.04
vt .2066 .3816
vt .3377 .3816
vt .3222 .4611
vt .3099 .0134
vt .0215 .2116
vt .0599 .0134
vt .0599 .0134
vt .6782 .2843
vt .7525 .2843
vt .7674 .3609
vt .6931 .3609
vt .4221 .0148
vt .4221 .3242
vt .5323 .2843
vt .5323 .3609
vt .4098 .3609
vt .4098 .2843
vt .2066 .2227
vt .3377 .2227
vt .3093 .0646
vt .3093 .453
vt .0644 .453
vt .0644 .0646
vt .2111 .1813
vt .3629 .1813
vt .3629 .4943
vt .2111 .4943
vt .5338 .5906
vt .6104 .5906
vt .6104 .6671
vt .5338 .6671
vt .3222 .1433
vt .2781 .307
vt .6236 .5444
vt .3242 .5444
vt .2315 .1882
vt .1708 .0241
vt .2979 .0241
vt .2979 .1433
vt .1708 .1433
vt .0031 .2437
vt .0049 .0015
vt .3025 -.0011
vt .3061 .2437
vt .7719 .6566
vt .9074 .6566
vt .9074 .8735
vt .7719 .8735
vt .0642 .0023
vt .2848 .0023
vt .2407 .2296
vt .0201 .2296
vt .2254 .0001
vt .3667 -.0032
vt .3736 .2464
vt .2288 .2567
vt .5629 .1256
vt .5629 .5648
vt .189 .5648
vt .189 .1256
vt .1529 .1481
vt .1529 .2945
vt .0156 .2945
vt .0156 .1481
vt .6637 .6435
vt .9321 .6435
vt .9321 .9297
vt .6637 .9297
vt .2819 .0024
vt .2819 .1755
vt .005 .1755
vt .005 .0024
vt .0437 .1433
vt .0386 .1484
vt .3441 .1484
vt .3441 .4349
vt .7719 .4398
vt .9074 .4398
vt .0428 .0823
vt .0428 .1986
vt .6682 .7036
vt .6682 .847
vt .4387 .9187
vt .4387 .6319
vt .1529 .0017
vt .5807 .5611
vt .864 .8633
vt .5807 .8633
vt . .
vt 1. .
vt 1. 1.
vt . 1.
usemtl Material
s off
f 21/1 10/2 3/2 18/3
f 22/4 20/5 7/6 12/7
f 17/8 19/9 6/1 2/11
f 10/12 12/13 7/13 3/12
f 25/14 26/15 8/16 4/17
f 23/18 14/19 10/2 21/1
f 24/2 22/21 12/22 16/23
f 14/24 16/25 12/26 10/27
f 15/28 13/29 9/3 11/31
f 17/32 2/19 14/19 23/18
f 19/33 24/34 16/35 6/35
f 2/11 6/1 16/1 14/11
f 5/36 1/36 13/36 15/36
f 27/37 21/38 18/39 25/4
f 31/41 26/42 20/43 22/44
f 29/45 30/46 19/47 17/48
f 3/49 7/5 20/51 18/52
f 28/53 23/54 21/55 27/56
f 32/57 31/58 22/59 24/6
f 29/61 17/62 23/63 28/64
f 30/65 32/66 24/67 19/68
f 18/69 20/7 26/71 25/72
f 9/73 27/37 25/4 4/73
f 11/74 8/74 26/75 31/76
f 1/77 5/78 30/46 29/45
f 13/79 28/53 27/56 9/8
f 15/81 11/82 31/83 32/84
f 1/85 29/61 28/64 13/85
f 5/86 15/86 32/87 30/88
usemtl Material_NONE
f 11/89 9/9 4/91 8/92

View File

@ -0,0 +1,181 @@
# Blender v2.69 (sub . OBJ File: ''
# www.blender.org
mtllib aquamarine.mtl
o Cube.001
v .1441 -.4791 -.0536
v .1441 -.4791 .0563
v -.1355 -.4791 .0563
v -.1355 -.4791 -.0536
v .1441 -.4127 -.0536
v .1441 -.4127 .0563
v -.1355 -.4127 .0563
v -.1355 -.4127 -.0536
v .1441 -.5008 -.0316
v -.1355 -.5008 -.0316
v .1441 -.3908 -.0316
v -.1355 -.3908 -.0316
v .1441 -.5008 .0343
v .1441 -.3908 .0343
v -.1355 -.5008 .0343
v -.1355 -.3908 .0343
v .1441 -.4128 -.0536
v .1441 -.4128 .0563
v -.1355 -.4128 .0563
v -.1355 -.4128 -.0536
v .1794 -.4128 -.0316
v -.1705 -.4128 -.0316
v .1794 -.4128 .0343
v -.1705 -.4128 .0343
v .1794 -.4788 -.0316
v -.1705 -.4788 -.0316
v .1794 -.4788 .0343
v -.1705 -.4788 .0343
v .1441 -.4788 -.0536
v .1441 -.4788 .0563
v -.1355 -.4788 .0563
v -.1355 -.4788 -.0536
v .1444 -.4791 -.0536
v .1444 -.4791 .0563
v .1444 -.4127 -.0536
v .1444 -.4127 .0563
v .1444 -.5008 -.0316
v .1444 -.3908 -.0316
v .1444 -.5008 .0343
v .1444 -.3908 .0343
v .1444 -.4128 .0563
v .1444 -.4128 -.0536
v .1444 -.4788 -.0536
v .1444 -.4788 .0563
v -.1355 -.4791 -.0536
v -.1355 -.4791 .0563
v -.1355 -.4127 -.0536
v -.1355 -.4127 .0563
v -.1355 -.5008 -.0316
v -.1355 -.5008 .0343
v -.1355 -.4128 .0563
v -.1355 -.4128 -.0536
v -.1355 -.4788 -.0536
v -.1355 -.4788 .0563
v -.1355 -.3908 -.0316
v -.1355 -.3908 .0343
vt .1986 .7891
vt .2320 .9849
vt .0478 .7900
vt .0478 .7892
vt .2673 .7954
vt .2337 .9955
vt .0453 .7963
vt .0453 .7954
vt .9688 .7889
vt .9688 .7897
vt .7846 .9847
vt .7513 .7889
vt .8324 .7956
vt .7988 .9956
vt .9872 .7957
vt .9872 .7965
vt .1986 .2019
vt .0478 .2020
vt .2673 .1955
vt .0453 .1955
vt .9688 .2017
vt .7513 .2017
vt .8324 .1956
vt .9872 .1958
vt .2320 .0062
vt .0478 .1993
vt .2337 -.0043
vt .0453 .1927
vt .9688 .1990
vt .7846 .0061
vt .7988 -.0042
vt .9872 .1930
vt . .6444
vt . .4027
vt .0003 .4027
vt .0003 .6444
vt .7924 .0965
vt .9903 .0965
vt .9903 .8882
vt .7924 .8882
vt .1992 .0991
vt .1992 .8964
vt -.0000 .8964
vt -.0000 .0991
vt .0006 .0965
vt .1985 .0965
vt .1985 .8882
vt .0006 .8882
vt .9965 .0991
vt .9965 .8964
vt .7972 .8964
vt .7972 .0991
vt .9899 .8401
vt .4861 .8401
vt .4861 .1683
vt .9899 .1683
vt -.0010 .1881
vt .4877 .1881
vt .4877 .8399
vt -.0010 .8399
vt . .
vt 1. .
vt 1. 1.
vt . 1.
usemtl Material
s off
f 23/1 14/2 6/3 18/4
f 22/5 12/6 8/7 20/8
f 17/9 5/1 11/11 21/12
f 24/13 16/14 12/6 22/5
f 21/12 11/11 14/2 23/1
f 19/15 7/16 16/14 24/13
f 27/17 23/1 18/4 30/18
f 26/19 22/5 20/8 32/2
f 29/21 17/9 21/12 25/22
f 28/23 24/13 22/5 26/19
f 25/22 21/12 23/1 27/17
f 31/24 19/15 24/13 28/23
f 13/25 27/17 30/18 2/26
f 10/27 26/19 32/2 4/28
f 1/29 29/21 25/22 9/3
f 15/31 28/23 26/19 10/27
f 9/3 25/22 27/17 13/25
f 3/32 31/24 28/23 15/31
f 17/33 29/34 43/35 42/36
f 39/37 34/38 46/39 50/4
f 40/41 56/42 48/43 36/44
f 33/45 37/46 49/47 45/48
f 35/49 47/5 55/51 38/52
f 37/46 39/37 50/4 49/47
f 38/52 55/51 56/42 40/41
f 44/53 41/54 51/55 54/56
f 42/57 43/58 53/59 52/6
usemtl Material_NONE
f 50/61 46/62 3/63 15/64
f 56/61 16/62 7/63 48/64
f 51/61 48/62 7/63 19/64
f 53/61 45/62 4/63 32/64
f 45/61 49/62 10/63 4/64
f 47/61 8/62 12/63 55/64
f 49/61 50/62 15/63 10/64
f 55/61 12/62 16/63 56/64
f 54/61 51/62 19/63 31/64
f 47/61 52/62 20/63 8/64
f 52/61 53/62 32/63 20/64
f 46/61 54/62 31/63 3/64
f 13/61 2/62 34/63 39/64
f 14/61 40/62 36/63 6/64
f 18/61 6/62 36/63 41/64
f 29/61 1/62 33/63 43/64
f 1/61 9/62 37/63 33/64
f 5/61 35/62 38/63 11/64
f 9/61 13/62 39/63 37/64
f 11/61 38/62 40/63 14/64
f 30/61 18/62 41/63 44/64
f 5/61 17/62 42/63 35/64
f 2/61 30/62 44/63 34/64
f 41/61 36/62 48/63 51/64
f 43/61 33/62 45/63 53/64
f 35/61 42/62 52/63 47/64
f 34/61 44/62 54/63 46/64

167
minerdream/models/bars.obj Normal file
View File

@ -0,0 +1,167 @@
# Blender v2.66 (sub 1) OBJ File: ''
# www.blender.org
mtllib bars.mtl
o Cube.003
v -.5 .01 .
v .5 .01 -.
v .5 .01 .5
v -.5 .01 .5
v -.35 .51 .125
v .35 .51 .125
v .35 .51 .375
v -.35 .51 .375
vt .9989 .
vt 1. .3329
vt .6670 .3340
vt .6659 .0010
vt .6667 .3441
vt .8331 .3446
vt .8324 .5777
vt .6659 .5772
vt .6659 .
vt .6170 .3433
vt .3839 .3441
vt .3329 .0010
vt . .6815
vt .0822 .3446
vt .2487 .3441
vt .3329 .6805
vt .3329 .
vt .2840 .3433
vt .0510 .3441
vt . .0010
vt .5817 .3441
vt .6659 .6805
vt .3329 .6815
vt .4152 .3446
usemtl Material
s off
f 1/1 2/2 3/3 4/4
f 5/5 8/6 7/7 6/8
f 1/9 5/1 6/11 2/12
f 2/13 6/14 7/15 3/16
f 3/17 7/18 8/19 4/2
f 5/21 1/22 4/23 8/24
o Cube.002
v -.5 .01 -.5
v .5 .01 -.5
v .5 .01 -.
v -.5 .01 .
v -.35 .51 -.375
v .35 .51 -.375
v .35 .51 -.125
v -.35 .51 -.125
vt .9989 .
vt 1. .3329
vt .6670 .3340
vt .6659 .0010
vt .6667 .3441
vt .8331 .3446
vt .8324 .5777
vt .6659 .5772
vt .6659 .
vt .6170 .3433
vt .3839 .3441
vt .3329 .0010
vt . .6815
vt .0822 .3446
vt .2487 .3441
vt .3329 .6805
vt .3329 .
vt .2840 .3433
vt .0510 .3441
vt . .0010
vt .5817 .3441
vt .6659 .6805
vt .3329 .6815
vt .4152 .3446
usemtl Material
s off
f 9/25 10/26 11/27 12/28
f 13/29 16/3 15/31 14/32
f 9/33 13/34 14/35 10/36
f 10/37 14/38 15/39 11/4
f 11/41 15/42 16/43 12/44
f 13/45 9/46 12/47 16/48
o Cube.001
v .5 -.5 -.5
v .5 -.5 .5
v . -.5 .5
v . -.5 -.5
v .375 -. -.35
v .375 -. .35
v .125 -. .35
v .125 -. -.35
vt .9989 .
vt 1. .3329
vt .6670 .3340
vt .6659 .0010
vt .6667 .3441
vt .8331 .3446
vt .8324 .5777
vt .6659 .5772
vt .6659 .
vt .6170 .3433
vt .3839 .3441
vt .3329 .0010
vt . .6815
vt .0822 .3446
vt .2487 .3441
vt .3329 .6805
vt .3329 .
vt .2840 .3433
vt .0510 .3441
vt . .0010
vt .5817 .3441
vt .6659 .6805
vt .3329 .6815
vt .4152 .3446
usemtl Material
s off
f 17/49 18/5 19/51 20/52
f 21/53 24/54 23/55 22/56
f 17/57 21/58 22/59 18/6
f 18/61 22/62 23/63 19/64
f 19/65 23/66 24/67 20/68
f 21/69 17/7 20/71 24/72
o Cube
v -. -.5 -.5
v -. -.5 .5
v -.5 -.5 .5
v -.5 -.5 -.5
v -.125 -. -.35
v -.125 -. .35
v -.375 -. .35
v -.375 -. -.35
vt .9989 .
vt 1. .3329
vt .6670 .3340
vt .6659 .0010
vt .6667 .3441
vt .8331 .3446
vt .8324 .5777
vt .6659 .5772
vt .6659 .
vt .6170 .3433
vt .3839 .3441
vt .3329 .0010
vt . .6815
vt .0822 .3446
vt .2487 .3441
vt .3329 .6805
vt .3329 .
vt .2840 .3433
vt .0510 .3441
vt . .0010
vt .5817 .3441
vt .6659 .6805
vt .3329 .6815
vt .4152 .3446
usemtl Material
s off
f 25/73 26/74 27/75 28/76
f 29/77 32/78 31/79 30/8
f 25/81 29/82 30/83 26/84
f 26/85 30/86 31/87 27/88
f 27/89 31/9 32/91 28/92
f 29/93 25/94 28/95 32/96

1604
minerdream/models/boom.obj Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,214 @@
# Blender v2.69 (sub . OBJ File: ''
# www.blender.org
mtllib garnet.mtl
o Icosphere
v . -.5028 .
v .1521 -.4613 .1051
v -.0581 -.4613 .1701
v -.1880 -.4613 .
v -.0581 -.4613 -.1701
v .1521 -.4613 -.1051
v .0581 -.3942 .1701
v -.1521 -.3942 .1051
v -.1521 -.3942 -.1051
v .0581 -.3942 -.1701
v .1880 -.3942 .
v . -.3528 .
v -.0341 -.4916 .0999
v .0894 -.4916 .0618
v .0552 -.4672 .1618
v .1788 -.4672 .
v .0894 -.4916 -.0618
v -.1105 -.4916 .
v -.1447 -.4672 .0999
v -.0341 -.4916 -.0999
v -.1447 -.4672 -.0999
v .0552 -.4672 -.1618
v .2 -.4278 .0618
v .2 -.4278 -.0618
v . -.4278 .2
v .1236 -.4278 .1618
v -.2 -.4278 .0618
v -.1236 -.4278 .1618
v -.1236 -.4278 -.1618
v -.2 -.4278 -.0618
v .1236 -.4278 -.1618
v . -.4278 -.2
v .1447 -.3883 .0999
v -.0552 -.3883 .1618
v -.1788 -.3883 .
v -.0552 -.3883 -.1618
v .1447 -.3883 -.0999
v .0341 -.3640 .0999
v .1105 -.3640 .
v -.0894 -.3640 .0618
v -.0894 -.3640 -.0618
v .0341 -.3640 -.0999
vt .5554 .6341
vt .5650 .5049
vt .6675 .5894
vt .5554 .3861
vt .4378 .4337
vt .6036 .7163
vt .4616 .7102
vt .4378 .5795
vt .1079 .0676
vt .2066 .
vt .2229 .1193
vt .7793 .1383
vt .7282 .0579
vt .8703 .0589
vt .7882 .3861
vt .7742 .2678
vt .9039 .3343
vt .4423 .0676
vt .5574 .1193
vt .4296 .1930
vt .9986 .5208
vt .9986 .6468
vt .8974 .5836
vt .0952 .1930
vt .8987 .1887
vt .6597 .1930
vt .6688 .3124
vt .5574 .2668
vt .3344 .1193
vt .9026 .4379
vt .5316 .1748
vt .3141 .3075
vt .3165 .0642
vt .1804 .5106
vt .1719 .2704
vt .3691 .3839
vt .5933 .7527
vt .3691 .6619
vt .6117 .5262
vt .6476 .7853
vt .5074 .8768
vt .5063 .6272
vt .8418 .3952
vt .7336 .5744
vt .6204 .3979
vt .6688 .1870
vt .6675 .4437
vt .3389 .5131
vt .6740 .3326
vt .5411 .
vt .6688 .0737
vt .3344 .6391
vt .4033 .
vt .3514 .6032
vt .1395 .7228
vt .1277 .4813
vt .3344 .0737
vt .3344 .4032
vt .7610 .2511
vt .5888 .4231
vt . .2668
vt .0000 .1193
vt .7310 .9598
vt .7193 .6323
vt .9469 .7736
vt .2674 .7470
vt .5455 .7610
vt .3968 .9469
vt .8753 .7914
vt .7355 .9783
vt .8689 .7133
vt .9469 .4902
vt .6553 .3405
vt .5927 .0294
vt .6209 .9754
vt .7720 .7415
vt .1719 .7202
vt .0440 .7051
vt .1710 .9529
vt .9894 .5621
vt .4145 .1347
vt .6852 .1230
vt .5933 .2798
vt .0791 .2444
vt .8071 .3650
vt .8071 .6430
usemtl None
s off
f 1/1 14/2 13/3
f 2/4 14/2 16/5
f 1/1 13/3 18/6
f 1/1 18/6 20/7
f 1/1 20/7 17/8
f 2/9 16/1 23/11
f 3/12 15/13 25/14
f 4/15 19/16 27/17
f 5/18 21/19 29/2
f 6/21 22/22 31/23
f 2/9 23/11 26/24
f 3/12 25/14 28/25
f 4/26 27/27 30/28
f 5/18 29/2 32/29
f 6/21 31/23 24/3
f 7/31 33/32 38/33
f 8/34 34/35 40/36
f 9/37 35/38 41/39
f 10/4 36/41 42/42
f 11/43 37/44 39/45
f 13/46 15/13 3/12
f 13/3 14/2 15/47
f 14/2 2/4 15/47
f 16/5 17/8 6/48
f 16/5 14/2 17/8
f 14/2 1/1 17/8
f 18/49 19/16 4/15
f 18/49 13/46 19/16
f 13/46 3/12 19/16
f 20/5 21/19 5/18
f 20/5 18/51 21/19
f 18/51 4/26 21/19
f 17/8 22/52 6/48
f 17/8 20/7 22/52
f 20/5 5/18 22/53
f 23/54 24/55 11/56
f 23/11 16/1 24/57
f 16/5 6/48 24/58
f 25/59 26/6 7/31
f 25/61 15/62 26/24
f 15/62 2/9 26/24
f 27/63 28/64 8/65
f 27/17 19/16 28/25
f 19/16 3/12 28/25
f 29/66 30/67 9/68
f 29/2 21/19 30/28
f 21/19 4/26 30/28
f 31/69 32/7 10/4
f 31/23 22/22 32/71
f 22/53 5/18 32/29
f 26/6 33/32 7/31
f 26/6 23/54 33/32
f 23/54 11/56 33/32
f 28/64 34/72 8/65
f 28/64 25/73 34/72
f 25/59 7/31 34/74
f 30/67 35/75 9/68
f 30/67 27/76 35/75
f 27/77 8/34 35/38
f 32/7 36/41 10/4
f 32/78 29/66 36/79
f 29/66 9/68 36/79
f 24/8 37/44 11/43
f 24/8 31/69 37/44
f 31/69 10/4 37/44
f 38/81 39/82 12/83
f 38/33 33/32 39/84
f 33/32 11/56 39/84
f 40/36 38/81 12/83
f 40/36 34/35 38/81
f 34/74 7/31 38/33
f 41/39 40/36 12/83
f 41/39 35/38 40/36
f 35/38 8/34 40/36
f 42/85 41/39 12/83
f 42/85 36/86 41/39
f 36/86 9/37 41/39
f 39/82 42/85 12/83
f 39/45 37/44 42/42
f 37/44 10/4 42/42

View File

@ -0,0 +1,494 @@
# Blender v2.69 (sub . OBJ File: 'gemstonestonekvadrat.blend'
# www.blender.org
mtllib gemstone_cubic.mtl
o Icosphere
v -.1076 -.4692 -.2464
v -.1553 -.5564 -.2362
v -.4625 -.3887 -.2400
v -.4147 -.3015 -.2502
v -.1032 -.4588 -.1369
v -.1510 -.5460 -.1268
v -.4582 -.3783 -.1306
v -.4104 -.2911 -.1407
v .1291 -.3105 .4859
v .0322 -.2414 .5017
v -.0689 -.3533 .3704
v .0278 -.4224 .3546
v .1656 -.2390 .3967
v .0688 -.1699 .4126
v -.0324 -.2817 .2813
v .0643 -.3508 .2655
v .1803 -.3347 -.1927
v .2278 -.2267 -.2853
v .4712 -.3157 -.2640
v .4237 -.4236 -.1714
v .1955 -.2743 -.1144
v .2431 -.1663 -.2071
v .4864 -.2553 -.1858
v .4389 -.3632 -.0932
v -.2421 -.3901 .3024
v -.3382 -.2893 .2879
v -.4023 -.3885 .0230
v -.3062 -.4892 .0375
v -.1451 -.3055 .2472
v -.2412 -.2047 .2327
v -.3053 -.3039 -.0320
v -.2092 -.4047 -.0175
v .0419 -.1362 .1706
v -.0404 -.0498 .1582
v -.0846 -.1182 -.0243
v -.0022 -.2046 -.0119
v .1250 -.0637 .1234
v .0427 .0226 .1110
v -.0015 -.0457 -.0716
v .0808 -.1321 -.0592
v .4056 -.3687 .3113
v .3026 -.2607 .2958
v .2363 -.3633 .0218
v .3392 -.4713 .0373
v .5095 -.2781 .2522
v .4065 -.1701 .2367
v .3402 -.2727 -.0372
v .4432 -.3807 -.0217
v -.2211 -.3052 -.2606
v -.2209 -.2460 -.3412
v .0641 -.3215 -.3960
v .0640 -.3807 -.3154
v -.1900 -.2286 -.2043
v -.1898 -.1694 -.2849
v .0952 -.2449 -.3397
v .0950 -.3041 -.2591
v .0470 -.6875 -.0112
v .3513 -.5687 .1990
v -.0691 -.5687 .3290
v -.3291 -.5687 -.0112
v -.0691 -.5687 -.3515
v .3513 -.5687 -.2215
v .1632 -.3166 .3290
v -.2572 -.3166 .1990
v -.2572 -.3166 -.2215
v .1632 -.3166 -.3515
v .4232 -.3166 -.0112
v .0470 -.0875 -.0112
v -.0212 -.6257 .1887
v .2259 -.6257 .1123
v .1576 -.6012 .3123
v .4048 -.6012 -.0112
v .2259 -.6257 -.1348
v -.1740 -.6257 -.0112
v -.2423 -.6012 .1887
v -.0212 -.6257 -.2112
v -.2423 -.6012 -.2112
v .1576 -.6012 -.3348
v .4470 -.5018 .1123
v .4470 -.5018 -.1348
v .0470 -.5018 .3887
v .2942 -.5018 .3123
v -.3529 -.5018 .1123
v -.2001 -.5018 .3123
v -.2001 -.5018 -.3348
v -.3529 -.5018 -.1348
v .2942 -.5018 -.3348
v .0470 -.5018 -.4112
v .3364 -.2840 .1887
v -.0635 -.2840 .3123
v -.3107 -.2840 -.0112
v -.0635 -.2840 -.3348
v .3364 -.2840 -.2112
v .1153 -.1494 .1887
v .2681 -.1494 -.0112
v -.1318 -.1494 .1123
v -.1318 -.1494 -.1348
v .1153 -.1494 -.2112
vt .5005 .0005
vt .9992 .0017
vt 1. 1.
vt .5004 .9992
vt .5015 .0024
vt .5004 .9995
vt .9980 .9984
vt .9994 -.0003
vt .5007 .0007
vt .9994 .0049
vt .9995 .9992
vt .5005 .9998
vt .9992 .0038
vt .9996 .9991
vt .5005 .9997
vt .5009 .0010
vt .5006 .0005
vt .9997 .0026
vt .9995 .9991
vt .5006 .9995
vt .9997 .9992
vt .5008 .9995
vt .5005 .0005
vt .9991 .0022
vt .9974 .0020
vt .9974 .9888
vt .5046 .9970
vt .5070 .0004
vt .9976 .0063
vt .9976 .9927
vt .5034 .9986
vt .5059 .0022
vt .5016 1.0007
vt .5035 .0017
vt .9996 -.0004
vt .9996 .9954
vt .9981 .0079
vt .9981 .9932
vt .5045 .9976
vt .5094 .0025
vt .5043 .0035
vt .9983 .0039
vt .9983 .9965
vt .5018 .9986
vt .5053 .0029
vt .9988 .0026
vt .9988 .9929
vt .5028 .9983
vt .9951 -.0000
vt .9968 .9949
vt .5013 .9906
vt .5030 -.0043
vt .5015 .9942
vt .5015 -.0006
vt .9976 .0005
vt .9976 .9954
vt .5019 .9949
vt .5103 .0025
vt 1.0000 -.0040
vt 1.0000 .9883
vt .9904 .0028
vt 1.0005 .9902
vt .5043 .9873
vt .5110 -.0000
vt .5014 .0038
vt .9977 -.0023
vt .9977 .9926
vt .5014 .9919
vt 1.0027 .9951
vt .5100 .9925
vt .5100 .0040
vt .9893 .0066
vt .5031 .9927
vt .5104 -.0010
vt .9952 .0085
vt .9952 .9877
vt .9979 .0051
vt .9987 .9973
vt .5017 .9979
vt .5065 .0081
vt .5076 -.0005
vt .9971 .0100
vt .9947 .9897
vt .5028 .9887
vt .9962 .0108
vt .9962 .9964
vt .5053 .9904
vt .5053 .0087
vt .9958 .9920
vt .5059 .9953
vt .5014 -.0035
vt .9958 .0110
vt .5066 .0102
vt .9959 .0091
vt .9959 .9892
vt .5066 .9903
vt .9904 .0057
vt .9965 .9860
vt .5085 .9983
vt .5055 -.0001
vt .9925 .0131
vt .9955 .9933
vt .5082 .9912
vt .5022 -.0011
vt .9959 .9952
vt .5044 .9945
vt .5044 .0075
vt .9978 .0044
vt .5013 .9969
vt .5013 .0047
vt .9951 .0024
vt .9951 .9946
vt .5009 1.0001
vt .9982 .9957
vt .9980 .0037
vt .5005 .0000
vt .5004 .0002
vt .9996 .0001
vt .9997 .9998
vt .5023 .9956
vt .5051 .9995
vt .5034 -.0080
vt 1.0000 -.0013
vt 1.0000 1.0028
vt .9992 -.0042
vt .9992 1.0038
vt .5015 .9973
vt .5048 -.0068
vt .5033 -.0083
vt 1. .
vt .5067 1.
vt .5044 1.0003
vt .5044 -.0073
vt .9988 -.0068
vt .9971 1.0009
vt .9994 1.0016
vt .5072 1.0016
vt .5037 -.0063
vt .9994 -.0028
vt .9994 .9981
vt .5018 .9921
vt .5015 -.0004
vt 1.0011 -.0047
vt .5046 .0038
vt 1.0007 .0024
vt 1.0007 .9962
vt .5077 .9945
vt .5092 .9897
vt .5060 .0085
vt .9978 .0053
vt .9978 .9927
vt .5059 .0057
vt .9988 .0069
vt .9988 .9952
vt .5059 .9903
vt .5067 .9896
vt .5051 .0097
vt .9992 .0138
vt .9977 .9906
vt .9962 .9898
vt .5072 .9834
vt .5072 .0030
vt .9962 .0094
vt .9968 .9914
vt .5059 .9922
vt .5075 .0045
vt .9984 .0099
vt .1909 .4193
vt .4531 .6036
vt .1707 .7360
vt .4250 .6928
vt .2387 .6784
vt .4338 .5073
vt .1678 .7038
vt .1318 .4398
vt .3669 .6462
vt .2138 .9133
vt .0135 .5202
vt .0133 .2665
vt .2387 .3516
vt .4985 .6867
vt .2268 .1438
vt .2163 .3390
vt .2647 .2482
vt .4725 .6317
vt .4036 .3493
vt .4856 .0579
vt .3117 .9317
vt .2240 .8400
vt .3180 .4402
vt .4075 .2342
vt .1913 .0923
vt .4051 .0917
vt .4051 .9473
vt .2516 .5190
vt .1280 .4853
vt .1887 .2565
vt .2465 .6097
vt .4871 .2058
vt .4947 .8539
vt .4373 .5435
vt .4926 .3084
vt .2159 .4845
vt .1323 .6787
vt .0166 .4163
vt .1069 .4557
vt .1763 .1724
vt .2805 .2310
vt .2555 .7589
vt .1715 .6184
vt .3287 .4272
vt .2705 .5342
vt .2816 .7476
vt .0740 .6909
vt .3605 .6349
vt .1899 .8353
vt .2743 .4161
vt .0071 .7890
vt .1913 .9479
vt .4160 .3443
vt .4550 .6292
vt .2914 .9894
vt .4219 .6987
vt .0419 .4358
vt .4076 .4058
vt .3838 .9778
vt -.0037 .2633
vt .3739 .9927
vt .4926 .6120
vt .3131 .9993
vt .4907 .6929
vt .4461 .3828
vt .3978 .6580
vt .2079 .7036
vt .0633 .7061
vt .1084 .5490
vt .2274 .5652
vt .1062 .2377
vt .4968 .0304
vt .3189 .0620
vt .2316 .9901
vt .0873 .9774
vt .1231 .5302
vt .4920 .9806
vt .4882 .9859
vt .3482 .9576
vt .4823 .8140
vt .4967 .9684
vt .3602 .9856
vt .4696 .2348
vt .4699 .1192
vt .2105 .2334
vt .2563 .0360
vt .0048 .8090
vt .0047 .8008
vt .4235 .3860
vt .2235 .6184
vt .4050 .6389
vt .0255 .9797
vt .0029 .7567
vt .3731 .0162
vt .1674 .2795
vt .3531 .0022
vt .4409 .0998
vt .0403 .1527
vt .4945 .2515
vt .0355 .7122
vt .0740 .4049
usemtl None
s off
f 5/1 6/2 2/3 1/4
f 6/5 7/6 3/7 2/8
f 7/9 8/1 4/11 3/12
f 8/13 5/14 1/15 4/16
f 1/17 2/18 3/19 4/2
f 8/21 7/22 6/23 5/24
f 13/25 14/26 10/27 9/28
f 14/29 15/3 11/31 10/32
f 15/33 16/34 12/35 11/36
f 16/37 13/38 9/39 12/4
f 9/41 10/42 11/43 12/44
f 16/45 15/46 14/47 13/48
f 21/49 22/5 18/51 17/52
f 22/53 23/54 19/55 18/56
f 23/57 24/58 20/59 19/6
f 24/61 21/62 17/63 20/64
f 17/65 18/66 19/67 20/68
f 24/69 23/7 22/71 21/72
f 29/73 30/74 26/75 25/76
f 30/77 31/78 27/79 26/8
f 31/81 32/82 28/83 27/84
f 32/85 29/86 25/87 28/88
f 25/89 26/9 27/91 28/92
f 32/93 31/94 30/95 29/96
f 37/97 38/98 34/99 33/1
f 38/101 39/102 35/103 34/104
f 39/105 40/106 36/107 35/108
f 40/109 37/11 33/111 36/112
f 33/113 34/114 35/115 36/116
f 40/117 39/118 38/119 37/12
f 45/121 46/122 42/123 41/124
f 46/125 47/126 43/127 42/128
f 47/129 48/13 44/3 43/131
f 48/132 45/133 41/134 44/135
f 41/136 42/137 43/138 44/139
f 48/14 47/141 46/142 45/143
f 53/144 54/145 50/146 49/147
f 54/148 55/149 51/15 50/151
f 55/152 56/153 52/154 51/155
f 56/156 53/157 49/158 52/159
f 49/16 50/161 51/162 52/163
f 56/164 55/165 54/166 53/167
f 57/168 70/169 69/17
f 58/171 70/172 72/173
f 57/174 69/175 74/176
f 57/174 74/176 76/177
f 57/178 76/179 73/18
f 58/171 72/173 79/181
f 59/182 71/183 81/184
f 60/185 75/186 83/187
f 61/188 77/189 85/19
f 62/191 78/192 87/193
f 58/171 79/181 82/194
f 59/195 81/196 84/197
f 60/198 83/199 86/2
f 61/188 85/19 88/201
f 62/191 87/193 80/202
f 63/203 89/204 94/205
f 64/206 90/207 96/208
f 65/209 91/21 97/211
f 66/212 92/213 98/214
f 67/215 93/216 95/217
f 69/175 71/183 59/182
f 69/218 70/172 71/219
f 70/172 58/171 71/219
f 72/173 73/18 62/191
f 72/173 70/172 73/18
f 70/172 57/178 73/18
f 74/176 75/22 60/221
f 74/176 69/175 75/22
f 69/175 59/182 75/22
f 76/222 77/189 61/188
f 76/223 74/224 77/225
f 74/176 60/221 77/226
f 73/18 78/192 62/191
f 73/18 76/227 78/192
f 76/222 61/188 78/228
f 79/229 80/23 67/215
f 79/231 72/173 80/202
f 72/173 62/191 80/202
f 81/232 82/233 63/203
f 81/196 71/234 82/235
f 71/219 58/171 82/194
f 83/236 84/237 64/238
f 83/239 75/22 84/24
f 75/22 59/182 84/24
f 85/241 86/242 65/209
f 85/19 77/189 86/243
f 77/226 60/221 86/244
f 87/245 88/246 66/247
f 87/248 78/228 88/201
f 78/228 61/188 88/201
f 82/233 89/204 63/203
f 82/233 79/249 89/204
f 79/229 67/215 89/25
f 84/251 90/252 64/253
f 84/251 81/232 90/252
f 81/232 63/203 90/252
f 86/242 91/21 65/209
f 86/242 83/254 91/21
f 83/255 64/206 91/21
f 88/246 92/256 66/247
f 88/246 85/257 92/256
f 85/241 65/209 92/258
f 80/23 93/216 67/215
f 80/23 87/259 93/216
f 87/259 66/26 93/216
f 94/261 95/217 68/262
f 94/261 89/25 95/217
f 89/25 67/215 95/217
f 96/208 94/263 68/264
f 96/265 90/252 94/205
f 90/252 63/203 94/205
f 97/211 96/208 68/264
f 97/211 91/21 96/208
f 91/21 64/206 96/208
f 98/266 97/211 68/264
f 98/266 92/258 97/211
f 92/258 65/209 97/211
f 95/217 98/267 68/262
f 95/217 93/216 98/267
f 93/268 66/212 98/214

View File

@ -0,0 +1,391 @@
# Blender v2.69 (sub . OBJ File: 'untitled.blend'
# www.blender.org
mtllib untitled.mtl
o Cube.003
v -.0515 -.4364 -.2155
v -.0554 -.4321 -.1860
v -.0824 -.4452 -.1877
v -.0785 -.4495 -.2171
v -.1019 -.3298 -.2377
v -.1058 -.3255 -.2082
v -.1327 -.3386 -.2099
v -.1288 -.3429 -.2393
v .1260 -.3432 -.3038
v .1194 -.3285 -.2785
v .0921 -.3222 -.2892
v .0987 -.3369 -.3145
v .1682 -.2416 -.3517
v .1616 -.2269 -.3264
v .1343 -.2206 -.3371
v .1409 -.2353 -.3624
v .1967 -.4742 -.0952
v .2061 -.4686 -.0567
v .1724 -.4477 -.0515
v .1630 -.4533 -.0900
v .2839 -.3228 -.1384
v .2933 -.3172 -.1000
v .2596 -.2963 -.0948
v .2502 -.3019 -.1333
v .0540 -.3689 .2908
v .0807 -.3589 .3002
v .0681 -.3489 .3254
v .0414 -.3589 .3161
v .0328 -.2632 .2382
v .0595 -.2532 .2476
v .0468 -.2431 .2728
v .0201 -.2532 .2635
v -.1721 -.3174 .0985
v -.1602 -.3266 .1245
v -.1769 -.3515 .1234
v -.1888 -.3423 .0974
v -.2596 -.2613 .1584
v -.2478 -.2705 .1844
v -.2645 -.2953 .1832
v -.2764 -.2861 .1572
v .1374 -.3489 .0914
v .1396 -.3722 .1102
v .1106 -.3783 .1060
v .1083 -.3551 .0872
v .1089 -.2773 .1834
v .1112 -.3006 .2022
v .0821 -.3068 .1980
v .0799 -.2835 .1792
v .0594 -.3007 -.0841
v .0465 -.2864 .0140
v -.0433 -.3300 .0085
v -.0303 -.3443 -.0896
v -.1250 .0902 -.1655
v -.1380 .1045 -.0674
v -.2278 .0610 -.0729
v -.2149 .0467 -.1710
v .0162 -.2744 -.0444
v -.0188 -.2564 -.0355
v -.0364 -.2753 -.0666
v -.0014 -.2933 -.0755
v .0646 -.1204 -.1655
v .0295 -.1024 -.1566
v .0119 -.1213 -.1877
v .0470 -.1393 -.1966
v .0016 -.2094 -.0203
v .0061 -.2559 .0172
v -.0519 -.2683 .0088
v -.0564 -.2218 -.0287
v -.0457 -.0901 .1330
v -.0412 -.1367 .1706
v -.0994 -.1490 .1622
v -.1039 -.1025 .1246
v .0320 -.2982 -.0361
v .0436 -.2912 .0119
v .0015 -.2650 .0183
v -.0101 -.2721 -.0297
v .1288 -.1299 -.0842
v .1405 -.1229 -.0361
v .0984 -.0968 -.0297
v .0867 -.1038 -.0778
v .0329 -.2657 -.0596
v .0329 -.2657 .0203
v -.0470 -.2657 .0203
v -.0470 -.2657 -.0596
v .0329 .0342 -.0596
v .0329 .0342 .0203
v -.0470 .0342 .0203
v -.0470 .0342 -.0596
v . -.5653 -.
v .1902 -.5104 .1971
v -.0726 -.5104 .3189
v -.2351 -.5104 -.
v -.0726 -.5104 -.3189
v .1902 -.5104 -.1971
v .0726 -.3269 .3189
v -.1902 -.3100 .1971
v -.0678 -.2868 -.1480
v .1142 -.2868 -.2935
v .1726 -.3615 -.
v . -.2318 -.
v -.0427 -.5280 .1874
v .1118 -.5280 .1158
v .0690 -.5300 .3033
v .2236 -.5300 -.
v .1118 -.5280 -.1158
v -.1381 -.5280 -.
v -.1809 -.5300 .1874
v -.0427 -.5280 -.1874
v -.1809 -.5300 -.1874
v .0690 -.5300 -.3033
v .1875 -.3986 .1158
v .25 -.3986 -.1158
v . -.4387 .375
v .1545 -.3986 .3033
v -.2034 -.4172 .1158
v -.1545 -.3986 .3033
v -.0321 -.3986 -.2542
v -.2034 -.4172 -.0667
v .1960 -.3986 -.3033
v .0415 -.3986 -.3495
v .1184 -.3419 .1874
v -.0690 -.3291 .3033
v -.1770 -.3198 -.
v .0532 -.2671 -.2779
v .1809 -.2671 -.1874
v .0427 -.2910 .1874
v .1381 -.3002 -.
v -.1118 -.2856 .1158
v -.1118 -.1967 -.1158
v .0427 -.1859 -.1874
vt .5006 .0003
vt .9999 .0000
vt 1.0000 1.0000
vt .5001 .9998
vt .5000 .9999
vt .5005 .0004
vt .9998 .0002
vt .9999 1.0000
vt .5011 -.0022
vt .5001 .9998
vt 1.0000 .9999
vt .9999 .0004
vt .5000 .9998
vt .5004 .0002
vt .9998 .0003
vt 1.0000 1.0000
vt .5006 .0002
vt 1. .
vt 1.0000 .9999
vt .5001 .9998
vt .9998 .0006
vt .9998 1.0001
vt .2479 .5051
vt .1724 .4118
vt .3294 .2124
vt .1193 .3463
vt .0445 .6472
vt .3747 .4185
vt .2457 .7454
vt .1207 .7413
vt .2838 .0427
vt .4842 .0300
vt .2759 .2353
vt .2393 .1060
vt .2587 .2796
vt .1274 .1839
vt .0338 .4490
vt .2434 .3731
vt .2018 .5732
vt .3910 .4943
vt .2516 .7786
vt .3085 .3718
vt .2132 .7613
vt .0039 .5446
vt .2187 .5447
vt .1018 .2203
vt .1104 .0203
vt .0064 .6213
vt .4168 .1916
vt .4624 .7353
vt .2524 .2764
vt .3300 .2858
vt .2581 .4413
vt .0059 .8119
vt .1074 .5286
vt .1137 .7576
vt .1485 .3948
vt .0084 .7101
vt .0430 .4023
vt .3632 .0194
vt .2997 .1048
vt .1868 .1103
vt .3741 .3358
vt .4842 .5182
vt .3437 .4628
vt .2532 .1183
vt .3864 .0070
vt .0313 .9067
vt .4555 .1250
vt .4635 .3577
vt .3718 .6580
vt .2440 .9137
vt .1178 .9807
vt .3058 .8891
vt .2120 .6250
vt .3393 .7271
vt .4211 .0601
vt .4211 .4324
vt .2232 .2525
vt .4344 .9582
vt .0887 .3928
vt .0002 .2954
vt .2587 .4561
vt .4239 .5589
vt .3323 .7272
vt .4239 .3813
vt .0924 .7950
vt .0936 .9944
vt .0791 .2973
vt .3046 .2870
vt .4895 .3036
vt .3314 .1110
vt .1965 .3716
vt .0070 .6365
vt .0177 .1286
vt .1463 .3022
vt .1218 .7646
vt .3401 .4061
vt .4849 .4148
vt .4022 .4093
vt .2675 .6806
vt .1819 .9682
vt .4145 .4107
vt .2645 .1742
vt .4145 .0699
vt .0652 .9246
vt .3643 .7672
vt .4972 .4893
vt .4935 .1192
usemtl Material
s off
f 1/1 2/2 3/3 4/4
f 5/5 8/6 7/7 6/8
f 1/9 5/1 6/11 2/12
f 2/13 6/14 7/15 3/16
f 3/17 7/18 8/19 4/2
f 5/1 1/9 4/21 8/22
f 9/1 10/2 11/3 12/4
f 13/5 16/6 15/7 14/8
f 9/9 13/1 14/11 10/12
f 10/13 14/14 15/15 11/16
f 11/17 15/18 16/19 12/2
f 13/1 9/9 12/21 16/22
f 17/1 18/2 19/3 20/4
f 21/5 24/6 23/7 22/8
f 17/9 21/1 22/11 18/12
f 18/13 22/14 23/15 19/16
f 19/17 23/18 24/19 20/2
f 21/1 17/9 20/21 24/22
f 25/1 26/2 27/3 28/4
f 29/5 32/6 31/7 30/8
f 25/9 29/1 30/11 26/12
f 26/13 30/14 31/15 27/16
f 27/17 31/18 32/19 28/2
f 29/1 25/9 28/21 32/22
f 33/1 34/2 35/3 36/4
f 37/5 40/6 39/7 38/8
f 33/9 37/1 38/11 34/12
f 34/13 38/14 39/15 35/16
f 35/17 39/18 40/19 36/2
f 37/1 33/9 36/21 40/22
f 41/1 42/2 43/3 44/4
f 45/5 48/6 47/7 46/8
f 41/9 45/1 46/11 42/12
f 42/13 46/14 47/15 43/16
f 43/17 47/18 48/19 44/2
f 45/1 41/9 44/21 48/22
f 49/1 50/2 51/3 52/4
f 53/5 56/6 55/7 54/8
f 49/9 53/1 54/11 50/12
f 50/13 54/14 55/15 51/16
f 51/17 55/18 56/19 52/2
f 53/1 49/9 52/21 56/22
f 57/1 58/2 59/3 60/4
f 61/5 64/6 63/7 62/8
f 57/9 61/1 62/11 58/12
f 58/13 62/14 63/15 59/16
f 59/17 63/18 64/19 60/2
f 61/1 57/9 60/21 64/22
f 65/1 66/2 67/3 68/4
f 69/5 72/6 71/7 70/8
f 65/9 69/1 70/11 66/12
f 66/13 70/14 71/15 67/16
f 67/17 71/18 72/19 68/2
f 69/1 65/9 68/21 72/22
f 73/1 74/2 75/3 76/4
f 77/5 80/6 79/7 78/8
f 73/9 77/1 78/11 74/12
f 74/13 78/14 79/15 75/16
f 75/17 79/18 80/19 76/2
f 77/1 73/9 76/21 80/22
f 81/1 82/2 83/3 84/4
f 85/5 88/6 87/7 86/8
f 81/9 85/1 86/11 82/12
f 82/13 86/14 87/15 83/16
f 83/17 87/18 88/19 84/2
f 85/1 81/9 84/21 88/22
f 89/23 102/24 101/25
f 90/26 102/24 104/27
f 89/23 101/25 106/28
f 89/23 106/28 108/29
f 89/23 108/29 105/3
f 90/31 104/32 111/33
f 91/34 103/35 113/36
f 92/37 107/38 115/39
f 93/4 109/41 117/42
f 94/43 110/44 119/45
f 90/31 111/33 114/46
f 91/34 113/36 116/47
f 92/37 115/39 118/48
f 93/4 117/42 120/49
f 94/43 119/45 112/5
f 95/51 121/52 126/53
f 96/54 122/55 128/56
f 97/57 123/58 129/59
f 98/6 124/61 130/62
f 99/63 125/64 127/65
f 101/25 103/66 91/67
f 101/25 102/24 103/66
f 102/24 90/26 103/66
f 104/27 105/3 94/68
f 104/27 102/24 105/3
f 102/24 89/23 105/3
f 106/28 107/69 92/7
f 106/28 101/25 107/69
f 101/25 91/67 107/69
f 108/29 109/71 93/72
f 108/29 106/28 109/71
f 106/28 92/7 109/71
f 105/3 110/73 94/68
f 105/3 108/29 110/73
f 108/29 93/72 110/73
f 111/74 112/75 99/76
f 111/77 104/78 112/79
f 104/8 94/43 112/5
f 113/36 114/81 95/82
f 113/36 103/35 114/81
f 103/35 90/83 114/81
f 115/39 116/84 96/85
f 115/39 107/38 116/84
f 107/38 91/86 116/84
f 117/42 118/87 97/57
f 117/42 109/41 118/87
f 109/41 92/88 118/87
f 119/45 120/89 98/9
f 119/45 110/44 120/89
f 110/91 93/4 120/49
f 114/92 121/52 95/51
f 114/46 111/33 121/93
f 111/33 99/63 121/93
f 116/94 122/55 96/54
f 116/47 113/36 122/95
f 113/96 95/51 122/55
f 118/87 123/58 97/57
f 118/48 115/39 123/97
f 115/39 96/85 123/97
f 120/49 124/61 98/6
f 120/49 117/42 124/61
f 117/42 97/57 124/61
f 112/75 125/98 99/76
f 112/5 119/45 125/99
f 119/45 98/9 125/99
f 126/53 127/1 100/101
f 126/53 121/52 127/1
f 121/93 99/63 127/65
f 128/56 126/53 100/101
f 128/56 122/55 126/53
f 122/55 95/51 126/53
f 129/102 128/56 100/101
f 129/103 123/104 128/105
f 123/106 96/54 128/56
f 130/107 129/102 100/101
f 130/62 124/61 129/59
f 124/61 97/57 129/59
f 127/1 130/107 100/101
f 127/1 125/108 130/107
f 125/99 98/9 130/109

1627
minerdream/models/jade.obj Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

1627
minerdream/models/onyx.obj Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,161 @@
# Blender v2.69 (sub . OBJ File: 'amethist1.blend'
# www.blender.org
mtllib topaz.mtl
o Cube
v . -.4456 -.2
v .0875 -.4456 .2
v -.0875 -.4456 .2
v . -.4456 -.2
v . -.4143 -.2
v .0875 -.4143 .2
v -.0875 -.4143 .2
v -. -.4143 -.2
v . -.4456 -.2
v -.0875 -.4456 .2
v -. -.4143 -.2
v -.0875 -.4143 .2
v -. -.4456 -.2
v .0875 -.4456 .2
v . -.4143 -.2
v .0875 -.4143 .2
v .175 -.4456 .12
v -.175 -.4456 .12
v .175 -.4143 .12
v -.175 -.4143 .12
v -.0875 -.4925 .12
v -.0875 -.3675 .12
v .0875 -.4925 .12
v .0875 -.3675 .12
v -.175 -.4456 -.04
v -.175 -.4143 -.04
v -.0875 -.4925 -.04
v .0875 -.4925 -.04
v .175 -.4456 -.04
v .175 -.4143 -.04
v -.0875 -.3675 -.04
v .0875 -.3675 -.04
vt .2066 .3816
vt .3377 .3816
vt .3222 .4611
vt .3099 .0134
vt .0215 .2116
vt .0599 .0134
vt .0599 .0134
vt .6782 .2843
vt .7525 .2843
vt .7674 .3609
vt .6931 .3609
vt .4221 .0148
vt .4221 .3242
vt .5323 .2843
vt .5323 .3609
vt .4098 .3609
vt .4098 .2843
vt .2066 .2227
vt .3377 .2227
vt .3093 .0646
vt .3093 .4530
vt .0644 .4530
vt .0644 .0646
vt .2111 .1813
vt .3629 .1813
vt .3629 .4943
vt .2111 .4943
vt .5338 .5906
vt .6104 .5906
vt .6104 .6671
vt .5338 .6671
vt .3222 .1433
vt .2781 .3070
vt .6236 .5444
vt .3242 .5444
vt .2315 .1882
vt .1708 .0241
vt .2979 .0241
vt .2979 .1433
vt .1708 .1433
vt .0031 .2437
vt .0049 .0015
vt .3025 -.0011
vt .3061 .2437
vt .7719 .6566
vt .9074 .6566
vt .9074 .8735
vt .7719 .8735
vt .0642 .0023
vt .2848 .0023
vt .2407 .2296
vt .0201 .2296
vt .2254 .0001
vt .3667 -.0032
vt .3736 .2464
vt .2288 .2567
vt .5629 .1256
vt .5629 .5648
vt .1890 .5648
vt .1890 .1256
vt .1529 .1481
vt .1529 .2945
vt .0156 .2945
vt .0156 .1481
vt .6637 .6435
vt .9321 .6435
vt .9321 .9297
vt .6637 .9297
vt .2819 .0024
vt .2819 .1755
vt .0050 .1755
vt .0050 .0024
vt .0437 .1433
vt .0386 .1484
vt .3441 .1484
vt .3441 .4349
vt .7719 .4398
vt .9074 .4398
vt .0428 .0823
vt .0428 .1986
vt .6682 .7036
vt .6682 .8470
vt .4387 .9187
vt .4387 .6319
vt .1529 .0017
vt .5807 .5611
vt .8640 .8633
vt .5807 .8633
vt . .
vt 1. .
vt 1. 1.
vt . 1.
usemtl Material
s off
f 21/1 10/2 3/2 18/3
f 22/4 20/5 7/6 12/7
f 17/8 19/9 6/1 2/11
f 10/12 12/13 7/13 3/12
f 25/14 26/15 8/16 4/17
f 23/18 14/19 10/2 21/1
f 24/2 22/21 12/22 16/23
f 14/24 16/25 12/26 10/27
f 15/28 13/29 9/3 11/31
f 17/32 2/19 14/19 23/18
f 19/33 24/34 16/35 6/35
f 2/11 6/1 16/1 14/11
f 5/36 1/36 13/36 15/36
f 27/37 21/38 18/39 25/4
f 31/41 26/42 20/43 22/44
f 29/45 30/46 19/47 17/48
f 3/49 7/5 20/51 18/52
f 28/53 23/54 21/55 27/56
f 32/57 31/58 22/59 24/6
f 29/61 17/62 23/63 28/64
f 30/65 32/66 24/67 19/68
f 18/69 20/7 26/71 25/72
f 9/73 27/37 25/4 4/73
f 11/74 8/74 26/75 31/76
f 1/77 5/78 30/46 29/45
f 13/79 28/53 27/56 9/8
f 15/81 11/82 31/83 32/84
f 1/85 29/61 28/64 13/85
f 5/86 15/86 32/87 30/88
usemtl Material_NONE
f 11/89 9/9 4/91 8/92

161
minerdream/models/topaz.obj Normal file
View File

@ -0,0 +1,161 @@
# Blender v2.69 (sub . OBJ File: 'amethist1.blend'
# www.blender.org
mtllib topaz.mtl
o Cube
v . -.4456 -.2
v .0875 -.4456 .2
v -.0875 -.4456 .2
v . -.4456 -.2
v . -.4143 -.2
v .0875 -.4143 .2
v -.0875 -.4143 .2
v -. -.4143 -.2
v . -.4456 -.2
v -.0875 -.4456 .2
v -. -.4143 -.2
v -.0875 -.4143 .2
v -. -.4456 -.2
v .0875 -.4456 .2
v . -.4143 -.2
v .0875 -.4143 .2
v .175 -.4456 .12
v -.175 -.4456 .12
v .175 -.4143 .12
v -.175 -.4143 .12
v -.0875 -.4925 .12
v -.0875 -.3675 .12
v .0875 -.4925 .12
v .0875 -.3675 .12
v -.175 -.4456 -.04
v -.175 -.4143 -.04
v -.0875 -.4925 -.04
v .0875 -.4925 -.04
v .175 -.4456 -.04
v .175 -.4143 -.04
v -.0875 -.3675 -.04
v .0875 -.3675 -.04
vt .2066 .3816
vt .3377 .3816
vt .3222 .4611
vt .3099 .0134
vt .0215 .2116
vt .0599 .0134
vt .0599 .0134
vt .6782 .2843
vt .7525 .2843
vt .7674 .3609
vt .6931 .3609
vt .4221 .0148
vt .4221 .3242
vt .5323 .2843
vt .5323 .3609
vt .4098 .3609
vt .4098 .2843
vt .2066 .2227
vt .3377 .2227
vt .3093 .0646
vt .3093 .4530
vt .0644 .4530
vt .0644 .0646
vt .2111 .1813
vt .3629 .1813
vt .3629 .4943
vt .2111 .4943
vt .5338 .5906
vt .6104 .5906
vt .6104 .6671
vt .5338 .6671
vt .3222 .1433
vt .2781 .3070
vt .6236 .5444
vt .3242 .5444
vt .2315 .1882
vt .1708 .0241
vt .2979 .0241
vt .2979 .1433
vt .1708 .1433
vt .0031 .2437
vt .0049 .0015
vt .3025 -.0011
vt .3061 .2437
vt .7719 .6566
vt .9074 .6566
vt .9074 .8735
vt .7719 .8735
vt .0642 .0023
vt .2848 .0023
vt .2407 .2296
vt .0201 .2296
vt .2254 .0001
vt .3667 -.0032
vt .3736 .2464
vt .2288 .2567
vt .5629 .1256
vt .5629 .5648
vt .1890 .5648
vt .1890 .1256
vt .1529 .1481
vt .1529 .2945
vt .0156 .2945
vt .0156 .1481
vt .6637 .6435
vt .9321 .6435
vt .9321 .9297
vt .6637 .9297
vt .2819 .0024
vt .2819 .1755
vt .0050 .1755
vt .0050 .0024
vt .0437 .1433
vt .0386 .1484
vt .3441 .1484
vt .3441 .4349
vt .7719 .4398
vt .9074 .4398
vt .0428 .0823
vt .0428 .1986
vt .6682 .7036
vt .6682 .8470
vt .4387 .9187
vt .4387 .6319
vt .1529 .0017
vt .5807 .5611
vt .8640 .8633
vt .5807 .8633
vt . .
vt 1. .
vt 1. 1.
vt . 1.
usemtl Material
s off
f 21/1 10/2 3/2 18/3
f 22/4 20/5 7/6 12/7
f 17/8 19/9 6/1 2/11
f 10/12 12/13 7/13 3/12
f 25/14 26/15 8/16 4/17
f 23/18 14/19 10/2 21/1
f 24/2 22/21 12/22 16/23
f 14/24 16/25 12/26 10/27
f 15/28 13/29 9/3 11/31
f 17/32 2/19 14/19 23/18
f 19/33 24/34 16/35 6/35
f 2/11 6/1 16/1 14/11
f 5/36 1/36 13/36 15/36
f 27/37 21/38 18/39 25/4
f 31/41 26/42 20/43 22/44
f 29/45 30/46 19/47 17/48
f 3/49 7/5 20/51 18/52
f 28/53 23/54 21/55 27/56
f 32/57 31/58 22/59 24/6
f 29/61 17/62 23/63 28/64
f 30/65 32/66 24/67 19/68
f 18/69 20/7 26/71 25/72
f 9/73 27/37 25/4 4/73
f 11/74 8/74 26/75 31/76
f 1/77 5/78 30/46 29/45
f 13/79 28/53 27/56 9/8
f 15/81 11/82 31/83 32/84
f 1/85 29/61 28/64 13/85
f 5/86 15/86 32/87 30/88
usemtl Material_NONE
f 11/89 9/9 4/91 8/92

6
minerdream/obj_red.sed Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sed -f
s/\ 0./ \./g
s/-0./-./g
s/[0]* / /g
s/[0]*$//g
s/\(\.[0-9][0-9][0-9][0-9]\)[0-9]*/\1/g

44
minerdream/ores.txt Normal file
View File

@ -0,0 +1,44 @@
name,tier,color,stackmax,disabled_by_mod,overrides,orig_mod,drop_as_lump,crack,has_dust,has_block,is_metall,is_mineral,has_nugget,has_rich,is_gemstone,is_lump_gemstone,in_desert,has_brick,has_bar_block,scarcity,num_ores,clust_size,y_min,y_max,has_lump,has_bar,lump_cooking_time,has_pick,has_axe,has_sword,has_shovel,has_spear,has_bow,tool_stick,tool_cotton,has_helmet,has_chestplate,has_leggings,has_boots,has_shield
default,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
unobtanium,8,0B2108C0,,,,,1,6,1,,8,,3,,,,,,,17,3,3,-31000,-8700,1,1,96,,,,,,,,,,,,,
tungsten,5,7C9871D0,,,,,1,4,1,,5,,3,,,,,,,14,4,4,-31000,-750,1,1,42,,,,,,,,,,,,,
palladium,6,AC976FD0,,,,,1,5,1,1,6,,3,,,,,,,14,5,4,-31000,-3700,1,1,58,1,1,1,,,,minerdream:expensivestick,,1,1,1,1,1
adamantite,6,AA2435D0,,,,,1,5,1,,6,,3,,,,,,,14,4,3,-31000,-2300,1,1,58,,,,,,,,,,,,,
orichalcum,8,903F86D0,,,,,1,6,1,1,8,,3,,,,,1,,17,3,3,-31000,-6500,1,1,86,1,1,1,,1,,minerdream:expensivestick,,1,1,1,1,1
rarium,7,D95000D0,,,,,1,6,1,1,7,,3,,,,,1,,16,2,3,-31000,-5000,1,1,72,1,1,1,,1,,minerdream:expensivestick,,1,1,1,1,1
osmium,7,1D4144D0,,,,,1,6,1,1,7,,3,,,,,,,16,3,3,-31000,-2500,1,1,64,1,1,1,,1,,minerdream:expensivestick,steel_wire,1,1,1,1,1
rhodium,6,A4987DD0,,,,,1,5,1,1,6,,3,,,,,3,3,16,3,3,-31000,-1500,1,1,64,1,1,1,,1,1,minerdream:expensivestick,steel_wire,1,1,1,1,1
calcium,1,87A9AFD0,,,,,1,2,1,1,1,,3,,,,,3,3,12,5,2,-31000,420,1,1,2,,,,,,,,,,,,,
tantalum,6,594967D0,,,,,1,5,1,1,6,,3,,,,,3,3,16,3,3,-31000,-1500,1,1,64,1,1,1,,1,1,minerdream:expensivestick,steel_wire,1,1,1,1,1
ruthenium,5,835749D0,,,,,1,4,1,1,5,,3,,,,,3,3,15,3,3,-31000,-500,1,1,32,1,1,1,1,1,1,minerdream:steelstick,steel_wire,1,1,1,1,1
cobalt,5,3F7390D0,,,,,1,4,1,1,5,,3,,,,,3,3,15,3,3,-31000,-500,1,1,32,1,1,1,1,1,1,minerdream:steelstick,steel_wire,1,1,1,1,1
platinum,4,A5B49DD0,,,,,1,1,1,1,4,,3,,,,,3,3,14,4,3,-31000,-300,1,1,16,1,1,1,1,1,1,,,1,1,1,1,1
aluminum,4,B2C0C2D0,,aluminum,,,1,1,1,1,4,,5,,,,,3,3,14,4,3,-31000,-250,1,1,32,1,1,1,1,1,1,,,1,1,1,1,1
titanium,4,a82f32d0,,,,,1,1,1,1,4,,3,,,,,,,14,3,5,-31000,-225,1,1,8,,,,,,,,,,,,,
lithium,2,c4b16ed0,,,,,1,1,1,1,2,,3,,,,,,,14,5,3,-31000,-100,1,1,5,,,,,,,,,,,,,
zinc,2,ADAD8ED0,,,technic:mineral_zinc,,1,1,1,1,2,,3,,,,,3,3,14,7,3,-31000,-50,1,1,4,,,,,,1,,,,,,,
lead,3,2f3743D0,,,technic:mineral_lead,,1,2,1,1,3,,5,,,,,3,3,13,7,3,-31000,-70,1,1,4,1,1,1,1,1,1,,,1,1,1,1,1
mithril,3,33ad30d0,,,moreores:mineral_mithril,,1,2,1,,3,,3,,,,,,,14,1,5,-31000,-512,1,1,5,,,,,,,,,,,,,
silver,3,A9BEC2D0,,,moreores:mineral_silver,,1,2,1,1,3,,3,,,,,3,3,14,3,2,-31000,-64,1,1,8,,,,,1,1,,,,,,,
potassium,1,9b9b9bD0,,,,,1,3,1,1,,1,3,,,,,3,3,12,7,3,-31000,420,1,1,2,,,,,,1,,,,,,,
nickel,2,A5AA8CD0,,,,,1,2,1,1,2,,2,,,,,3,3,13,7,3,-31000,-40,1,1,4,1,1,1,1,1,1,,,1,1,1,1,1
flint,1,,,,,default,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,1,1,1,1,1
tin,2,,,,,technic,,,,,2,,,,,,,3,3,,,,,,,,,,,,,,,,,,,,,
gold,3,,,,,default,,,,,3,,,,,,,3,3,,,,,,,,,,,,,1,1,,,,,,,
copper,2,,,,,default,,,,,2,,,,,,,3,3,,,,,,,,,,,,,,1,,,,,,,
steel,2,,,,,default,,,,,2,,,,,,,,3,,,,,,,,,,,,,1,1,,,,,,,
diamond,3,,,,,,,,,,3,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,
mese,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,
stainlesssteel,2,,,,,,,,,,2,,,,,,,,,,,,,,,,,1,1,1,1,1,1,,,1,1,1,1,1
brass,,baa52c,,,,,,,,3,,,,,,,,3,3,,,,,,,,,,,,,,,,,,,,,
sulfur,2,E89700D0,,,technic:mineral_sulfur,,1,3,,,,2,3,,,,1,,,,,,,,1,,,,,,,,,,,,,,,
lapislazuli,2,,200,,,,,3,,3,,2,,,,1,1,3,,,,,,,1,,,,,,,,,,,,,,,
saltpeter,2,FFC90ED0,200,,,,1,3,1,,,2,3,,,,1,,,15,5,2,-31000,420,1,,,,,,,,,,,,,,,
spinel,6,,200,,,,,5,,1,,6,,,,1,,3,,16,1,1,-31000,-1700,,,,,,,,,,,,,,,,
garnet,5,,200,,,,,4,,1,,5,,,,1,,3,,15,1,1,-31000,-650,,,,,,,,,,,,,,,,
bituminous_coal,5,,,,,,,4,,,,,,,,,,,,13,10,3,-31000,-500,1,,,,,,,,,,,,,,,
jade,5,,200,,,,,4,,1,,5,,,,1,,3,,15,1,1,-31000,-650,,,,,,,,,,,,,,,,
amethyst,5,,200,,,,,4,,1,,5,,,,1,,3,,15,1,1,-31000,-650,,,,,,,,,,,,,,,,
onyx,6,,200,,,,,5,,1,,6,,,,1,,3,,16,1,1,-31000,-1700,,,,,,,,,,,,,,,,
aquamarine,6,,200,,,,,5,,1,,,,,1,1,,3,,16,1,1,-31000,-1700,,,,,,,,,,,,,,,,
topaz,6,,200,,,,,5,,1,,,,,1,1,,3,,15,1,1,-31000,-1700,,,,,,,,,,,,,,,,

View File

@ -0,0 +1,69 @@
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,
}
local tool_definition = basic_functions.import_csv(minerdream.path.."/armor.txt",tool_cols)
--print(dump2(tool_definition))
for i,tdef in pairs(tool_definition) do
if (i ~= "default") then
local tooldef={}
for col in pairs(tdef) do
tooldef=basic_functions.parse_tree(tooldef,col,tdef[col])
end
local tierd=tier_definition[tostring(tdef.tier)]
for _,tool in pairs({"helmet","chestplate","boots","leggings","shields"}) do
if tooldef[tool] ~= nil then
local ttv=tooldef[tool]
tdesc=core.colorize("#"..tierd.color, i.." "..tool.."\n")..
core.colorize("#A0A0A0", "tier: "..tierd.name.." ("..tierd.desc..")")
if ttv.fleshy then
tdesc=tdesc.."\n"..core.colorize("#A0A0A0","Defense: "..ttv.fleshy)
end
if ttv.heal then
tdesc=tdesc.."\n"..core.colorize("#A0A0A0","Heal: "..ttv.heal)
end
if ttv.speed then
tdesc=tdesc.."\n"..core.colorize("#A0A0A0","Walking speed: "..(ttv.speed*100).."%")
end
if ttv.gravity then
tdesc=tdesc.."\n"..core.colorize("#A0A0A0","Gravity: "..(ttv.gravity*100).."%")
end
if ttv.jump then
tdesc=tdesc.."\n"..core.colorize("#A0A0A0","Jump force: "..(ttv.jump*100).."%")
end
tt_def={description=tdesc,
-- tt_def={description=i.." "..tool,
inventory_image=minerdream.modname.."_inv_"..tool.."_"..i..".png",
damage_groups = {level = ttv.level or 2},
armor_groups={fleshy=ttv.fleshy or 10},
groups={armor_heal=ttv.heal,armor_use=ttv.use,
physics_jump=ttv.jump,physics_speed=ttv.speed,physics_gravity=ttv.gravity}
}
for _,gc in pairs({"cracky","crumbly","choppy","snappy"}) do
tt_def.damage_groups[gc]=ttv[gc]
end
if tool == "helmet" then
tt_def.groups.armor_head=1
elseif tool == "chestplate" then
tt_def.groups.armor_torso=1
elseif tool == "leggings" then
tt_def.groups.armor_legs=1
elseif tool == "boots" then
tt_def.groups.armor_feet=1
elseif tool == "shields" then
tt_def.groups.armor_shield=1
end
toolname=minerdream.modname..":"..tool.."_"..i
armor:register_armor(toolname,tt_def)
end
end
end
end

View File

@ -0,0 +1,142 @@
local has_value = basic_functions.has_value
local mob_cols={
col_num={"reach","damage","hp_min",
"hp_max","armor","walk_velocity","run_velocity","walk_chance",
"fall_speed","jump_chance","jump_height","stepheight","floats",
"view_range","water_damage","lava_damage","light_damage","slimeball",
"egg","slimering","maxlight","chance","max_height","collisionbox"},
-- as_numeric=1,
}
local mob_definition = basic_functions.import_csv(minerdream.path.."/mobs.txt",mob_cols)
local mob_default = {
type = "monster",
passive = false,
attack_type = "dogfight",
reach = 2,
damage = 1,
hp_min = 5,
hp_max = 5,
armor = 100,
collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3},
visual = "wielditem",
makes_footstep_sound = true,
walk_velocity = 2,
run_velocity = 2,
walk_chance = 0,
fall_speed = -50,
jump_chance = 30,
jump_height = 6,
stepheight = 1.1,
floats = 0,
view_range = 16,
water_damage = 0,
lava_damage = 8,
light_damage = 0,
animation = {
speed_normal = 15,
speed_run = 15,
stand_start = 0,
stand_end = 14,
walk_start = 15,
walk_end = 38,
run_start = 40,
run_end = 63,
punch_start = 40,
punch_end = 63,
},
}
if mob_definition["default"] ~= nil then
tmobd=table.copy(mob_definition["default"])
for _,column in pairs({"attack_type","reach","damage","hp_min",
"hp_max","armor","walk_velocity","run_velocity","walk_chance",
"fall_speed","jump_chance","jump_height","stepheight","floats",
"view_range","water_damage","lava_damage","light_damage","slimeball",
"egg","slimering","maxlight","chance","max_height"}) do
if tmobd[column] ~= nil then
mob_default[column]=tmobd[column]
end
end
if tmobd["collisionbox"] ~= nil then
local cb=tmobd["collisionbox"]
mob_default["collisionbox"] = {-1*cb, -1*cb, -1*cb, cb, cb, cb}
end
end
for i,tdef in pairs(mob_definition) do
if (i ~= "default") then
local mdef=table.copy(mob_default)
for _,column in pairs({"attack_type","reach","damage","hp_min",
"hp_max","armor","walk_velocity","run_velocity","walk_chance",
"fall_speed","jump_chance","jump_height","stepheight","floats",
"view_range","water_damage","lava_damage","light_damage","slimeball",
"egg","slimering","maxlight","chance","max_height"}) do
if tdef[column] ~= nil then
mdef[column]=tdef[column]
end
end
if tdef["collisionbox"] ~= nil then
local cb=tdef["collisionbox"]
mdef["collisionbox"] = {-1*cb, -1*cb, -1*cb, cb, cb, cb}
end
mdef.textures = {
{"minerdream:slime_"..i},
}
mdef.blood_texture = "minerdream_slimeball_"..i..".png"
mdef.drops = {
{name = "minerdream:slimeball_"..i, chance = mdef.slimeball, min = 1, max = 3},
{name = "minerdream:slime_"..i.."_egg", chance = mdef.egg, min = 1, max = 1},
{name = "minerdream:accessory_slimering", chance = mdef.slimering, min = 1, max = 1},
}
mobs:register_mob("minerdream:slime_"..i, mdef)
mobs:spawn({
name = "minerdream:slime_"..i,
nodes = {"default:stone"},
max_light = mdef.maxlight,
chance = mdef.chance,
max_height = mdef.max_height,
})
minetest.register_craftitem("minerdream:slime_"..i.."_egg", {
description = i.." slime spawnegg",
inventory_image = "minerdream_egg_"..i.."slime.png",
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.above then
minetest.env:add_entity(pointed_thing.above, "minerdream:slime_"..i)
itemstack:take_item()
end
return itemstack
end,
})
minetest.register_node("minerdream:slime_"..i, {
tiles = {
"minerdream_slime_"..i.."_top.png",
"minerdream_slime_"..i.."_top.png",
"minerdream_slime_"..i.."_side.png",
"minerdream_slime_"..i.."_side.png",
"minerdream_slime_"..i.."_side.png",
"minerdream_slime_"..i.."_side.png"
},
drawtype = "nodebox",
wield_scale = {x=0.4,y=0.4,z=0.4},
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.3125, -0.5, -0.3125, 0.3125, 0.3125, 0.3125}, -- NodeBox1
{-0.375, -0.5, -0.3125, 0.375, 0.25, 0.3125}, -- NodeBox2
{-0.3125, -0.5, -0.375, 0.3125, 0.25, 0.375}, -- NodeBox3
{-0.3125, -0.4375, -0.4375, 0.3125, 0.125, 0.4375}, -- NodeBox4
{-0.375, -0.4375, -0.375, 0.375, 0.125, 0.375}, -- NodeBox5
{-0.4375, -0.4375, -0.3125, 0.4375, 0.125, 0.3125}, -- NodeBox6
{-0.25, -0.375, -0.5, 0.25, 0, 0.5}, -- NodeBox7
{-0.5, -0.375, -0.25, 0.5, 0, 0.25}, -- NodeBox8
}
}
})
end
end

View File

@ -0,0 +1,513 @@
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 ore_cols={
col_num={"crack","scarcity","num_ores","clust_size","y_min","y_max","tier","lump_cooking_time"},
groups_num={"has_dust","has_block","in_desert","has_block","has_brick","is_metall","is_mineral",
"has_bar","has_lump","has_bar_block","has_dust","has_spear","has_bow","has_arrow","has_pick",
"has_axe","has_shovel","has_sword","has_helmet","has_chestplate","has_shield","has_leggings",
"has_boots","drop_as_lump","is_gemstone","is_lump_gemstone","has_no_drop","has_no_lump","has_nugget"}}
local miner_definition = basic_functions.import_csv(minerdream.path.."/ores.txt",ore_cols)
if miner_definition["default"] ~= nil then
default_ore = miner_definition["default"]
local test_values = {}
-- check, which numeric columns exist in default entry
for i,d in pairs(ore_cols.col_num) do
if default_ore[d] ~= nil then
table.insert(test_values,1,d)
end
end
-- check for each ore, if value can be copied from default entry
for i,tdef in pairs(miner_definition) do
if tdef.name ~= default_ore.name then
for j,colu in pairs(test_values) do
if tdef[colu] == nil then
miner_definition[tdef.name][colu] = default_ore[colu]
end
end
end
end
end
local local_create_def=function(name,type,cracky,tdef)
local temp_def={description=name.." "..type,
tiles={minerdream.modname.."_"..name.."_"..type..".png"},
groups={cracky=cracky},
sounds = default.node_sound_stone_defaults(),
}
if tdef.tier then
temp_def.description=core.colorize("#00FF00", temp_def.description.."\n")..tdef.tier_string
end
return temp_def
end
local local_item_insert=function(name,ttype,def)
if minerdream.items[name] == nil then
minerdream.items[name] = {}
end
minerdream.items[name][ttype]=def
end
local local_craft_block=function(input,output)
minetest.register_craft({
output = output,
recipe = {
{input, input, input},
{input, input, input},
{input, input, input},
} })
minetest.register_craft({
output = input.." 9",
recipe = {{output}} })
end
-- register craft recipes for creating stacks
local local_craft_stack=function(input,output)
minetest.register_craft({
output = output,
recipe = {
{input, input },
{input, input },
} })
minetest.register_craft({
output = input.." 4",
recipe = {{output}} })
end
-- register craft recipes for creating bricks
local local_craft_brick = function(input,output)
minetest.register_craft( {type = "shapeless",
output = output,
recipe = {input, "default:cobble"},})
end
-- return recipes for different tools
local local_get_recipe=function(tool,material,stick)
if stick == nil then
stick="group:stick"
end
local out_recipe={}
if tool == "spear" then
out_recipe={
{'', material, material},
{'', stick, material},
{stick, '', ''},}
elseif tool == "bow" then
out_recipe = {
{'', material, material},
{material, '', stick},
{material, stick, ''},}
elseif tool == "pick" then
out_recipe = {
{material, material, material},
{'', stick, ''},
{'', stick, ''},}
elseif tool == "axe" then
out_recipe = {
{material, material, ''},
{material, stick, ''},
{'', stick, ''},}
elseif tool == "shovel" then
out_recipe = {
{'', material, ''},
{'', stick, ''},
{'', stick, ''},}
elseif tool == "sword" then
out_recipe = {
{'', material, ''},
{'', material, ''},
{'', stick, ''},}
elseif tool == "helmet" then
out_recipe = {
{material, material, material},
{material, '', material},}
elseif tool == "chestplate" then
out_recipe = {
{material, '', material},
{material, material, material},
{material, material, material},}
elseif tool == "leggings" then
out_recipe = {
{material, material, material},
{material, '', material},
{material, '', material},}
elseif tool == "boots" then
out_recipe = {
{material, '', material},
{material, '', material},}
elseif tool == "shield" then
out_recipe = {
{material, material, material},
{material, material, material},
{'', material, ''},}
else
out_recipe={}
end
return out_recipe
end
for i,tdef in pairs(miner_definition) do
local is_enabled = true
if tdef.disabled_by_mod ~= nil then
if basic_functions.has_value(minetest.get_modnames(),tdef.disabled_by_mod) then
is_enabled=false
end
end
if (i ~= "default") and (is_enabled) then
local starttime=os.clock()
minerdream.items[i]={}
local ore_modname=minerdream.modname
if tdef.orig_modname then
ore_modname=tdef.orig_modname
end
local needs_mapgen=false
local mapgen_name=""
tdef.tier_string=""
tdef.tierd={}
if tdef.tier then
tdef.tierd=tier_definition[tostring(tdef.tier)]
tdef.tier_string=core.colorize("#A0A0A0", "tier: "..tdef.tier.." ("..tdef.tierd.desc..")")
minerdream.items[i].tierdef=table.copy(tier_definition[tostring(tdef.tier)])
end
-- register ores within stone
if tdef.crack ~= nil then
-- base config of ore found in normal stone
local lump_name=ore_modname..":"..i
if tdef.groups.drop_as_lump ~= nil then
lump_name=lump_name.."_lump"
end
local ore_def={description=i.." ore",
name=minerdream.modname..":stone_with_"..i,
groups={cracky=tdef.crack},
tiles={"default_stone.png^"..minerdream.modname.."_"..i.."_ore.png"},
sound=default.node_sound_stone_defaults(),
}
-- group definitions for awards
if tdef.groups.is_metall then
ore_def.groups["metall"..tdef.groups.is_metall]=tdef.groups.is_metall
end
if tdef.groups.is_mineral then
ore_def.groups["mineral"..tdef.groups.is_mineral]=tdef.groups.is_mineral
end
-- drops item
if tdef.groups.has_no_drop == nil then
ore_def.drop=lump_name
end
if tdef.stackmax then
ore_def.stack_max = tdef.stackmax
end
if tdef.groups.is_gemstone ~= nil then
-- ore_def.name=minerdream.modname..":"..i
ore_def.description=i
ore_def.paramtype="light"
ore_def.drawtype = "mesh"
ore_def.mesh = "gemstone_cubic_pillars.obj"
ore_def.walkable = "true"
ore_def.inventory_image = "minerdream_"..i.."_gem.png"
ore_def.tiles = {"minerdream_"..i.."_rock.png"}
ore_def.selection_box = {type = "fixed",
fixed = {{-0.4, -0.5, -0.4, 0.4, 0.0, 0.4},},}
ore_def.node_box = {type = "fixed",
fixed = {{-0.4, -0.5, -0.4, 0.4, 0.0, 0.4},},}
end
local lump_def={description=i.." lump",
name=lump_name,
inventory_image=lump_name:gsub(":","_")..".png",
stack_max=minerdream.lump_max_stack,
}
if tdef.groups.is_lump_gemstone ~= nil then
lump_def.drawtype="mesh"
lump_def.mesh = i..".obj"
lump_def.walkable = "true"
lump_def.inventory_image = "minerdream_"..i.."_gem.png"
lump_def.tiles = {"minerdream_"..i..".png"}
lump_def.paramtype = "light"
lump_def.is_ground_content = true
lump_def.groups={snappy=3,dig_immidiate=3}
lump_def.selection_box = {type = "fixed",
fixed = {{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},},}
lump_def.node_box = {type = "fixed",
fixed = {{-0.2, -0.5, -0.2, 0.2, -0.25, 0.2},},}
end
-- override existing ore?
local to_override = false
if tdef.overrides ~= nil then
if minetest.registered_nodes[tdef.overrides] ~= nil then
-- get drop item of defined ore
temp_def=minetest.registered_nodes[tdef.overrides]
ore_def.name=tdef.overrides
ore_def.drop=temp_def.drop
lump_def.name=temp_def.drop
local override_mod=tdef.overrides:split(":")[1]
if override_mod ~=nil then
ore_def.override_mod=override_mod
lump_def.override_mod=override_mod
end
to_override = true
end
end
if tdef.tier then
ore_def.description=core.colorize("#00FF00", ore_def.description.."\n")..tdef.tier_string
lump_def.description=core.colorize("#00FF00", lump_def.description.."\n")..tdef.tier_string
end
local ore_name=ore_def.name
local lump_name=lump_def.name
if to_override then
ore_def.name=nil
lump_def.name=nil
-- get cooking output of already defined lump
local output, decremented_input = minetest.get_craft_result({ method = "cooking", width = 1, items = { ItemStack(lump_name) }})
local override_ingot=output.item:get_name()
if override_ingot ~= nil then
lump_def.ingot_name=output.item:get_name()
tdef.ingot_name=output.item:get_name()
minerdream.items[i].ingot_name=output.item:get_name()
end
minetest.override_item(ore_name,ore_def)
if tdef.groups.has_no_lump == nil then
minetest.override_item(lump_name,lump_def)
end
lump_def.name=lump_name
ore_def.name=ore_name
else
minetest.register_node(ore_def.name,ore_def)
-- if tdef.groups.has_no_lump == nil then
minetest.register_craftitem(lump_def.name,lump_def)
-- end
-- if not already defined, then add mapgen parameter
if tdef.scarcity ~= nil then
needs_mapgen = true
mapgen_name=ore_def.name
end
end
local_item_insert(i,"ore_def",ore_def)
-- if tdef.groups.has_no_lump == nil then
local_item_insert(i,"lump_def",lump_def)
-- end
-- define desert ores
if tdef.groups.in_desert then
desertore_def=table.copy(ore_def)
desertore_def.name=minerdream.modname..":desertstone_with_"..i
desertore_def.tiles={"default_desert_stone.png^"..minerdream.modname.."_"..i.."_ore.png"}
local_item_insert(i,"desertore_def",desertore_def)
minetest.register_node(desertore_def.name,desertore_def)
end
if tdef.groups.has_nugget and tdef.groups.has_nugget>0 then
local poor_def=table.copy(ore_def)
local nugget_def=table.copy(lump_def)
poor_def.description="Poor "..i
-- poor_def.name=poor_def.name.."_poor"
poor_def.name=minerdream.modname..":stone_with_"..i.."_poor"
poor_def.tiles={"default_stone.png^"..minerdream.modname.."_"..i.."_poorore.png"}
nugget_def.description=i.." Nugget"
nugget_def.name=minerdream.modname..":"..i.."_nugget"
nugget_def.inventory_image=nugget_def.name:gsub(":","_")..".png"
poor_def.drop=nugget_def.name
minetest.register_node(poor_def.name,poor_def)
minetest.register_craftitem(nugget_def.name,nugget_def)
local_craft_stack(nugget_def.name,lump_def.name)
end
else
-- if not already defined, then add mapgen parameter
if tdef.scarcity ~= nil then
needs_mapgen = true
mapgen_name=minerdream.modname..":"..i
end
end
-- define mapgeneration for ores
if needs_mapgen then
local map_def={ore_type = "scatter",
ore = mapgen_name,
wherein = "default:stone",
clust_scarcity = tdef.scarcity * tdef.scarcity * tdef.scarcity,
clust_num_ores = tdef.num_ores or 1,
clust_size = tdef.clust_size or 1,
y_min = tdef.y_min or (-31000),
y_max = tdef.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(i,"map_def",map_def)
minetest.register_ore(map_def)
if tdef.groups.in_desert then
map_def.ore=desertore_def.name
map_def.wherein = "default:desert_stone"
minetest.register_ore(map_def)
end
end
-- define ore dust
-- only makes sense if it can be grinded
if tdef.groups.has_dust and minetest.get_modpath("technic") then
local dust_def=local_create_def(i,"dust",tdef.groups.has_dust,tdef)
dust_def.tiles={minerdream.modname.."_"..i.."_dust.png"}
dust_def.inventory_image=minerdream.modname.."_"..i.."_dust.png"
local overridden = false
-- check, if dust is already defined
if minerdream.items[i].lump_def then
local lumpdef=minerdream.items[i].lump_def
if lumpdef.override_mod ~= nil then
local override_dust=lumpdef.override_mod..":"..i.."_dust"
if minetest.registered_items[override_dust] ~= nil then
overridden = true
minetest.register_node(":"..override_dust,dust_def)
end
end
end
-- if not defined, register node and grinding recipe
if not overridden then
minetest.register_node(minerdream.modname..":"..i.."_dust",dust_def)
if minerdream.items[i].lump_def then
local lump_def=table.copy(minerdream.items[i].lump_def)
local grind_time=math.ceil((tdef.lump_cooking_time or 64)/minerdream.dust_cooking_time_reduce)
lump_def.grind_time=grind_time
local_item_insert(i,"lump_def",lump_def)
technic.register_grinder_recipe({input = {lump_def.name}, output = dust_def.name.." 2",time=grind_time})
dust_def.grind_source=lump_def.name
end
local_item_insert(i,"dust_def",dust_def)
end
end
-- define ingot
if tdef.groups.has_bar then
local ingot_def=local_create_def(i,"ingot",tdef.groups.has_bar,tdef)
ingot_def.groups["metal"]=tdef.tier or 1 -- setting metal group
ingot_def.inventory_image=minerdream.modname.."_"..i.."_ingot.png"
ingot_def.stack_max = minerdream.ingot_max_stack
if tdef.ingot_name then --already defined and overridden with new image
ingot_def.name=nil
minetest.override_item(tdef.ingot_name,ingot_def)
minetest.register_alias(tdef.ingot_name,minerdream.modname..":"..i.."_bar")
ingot_def.name=tdef.ingot_name
else
ingot_def.name=minerdream.modname..":"..i.."_ingot"
minetest.register_craftitem(ingot_def.name,ingot_def)
end
-- if lump is defined and cooking time is given then register cooking recipe
if minerdream.items[i].lump_def and tdef.lump_cooking_time then
local lump_def=table.copy(minerdream.items[i].lump_def)
lump_def.ingot_name=ingot_def.name
ingot_def.lump_name=lump_def.name
lump_def.cooking_time=tdef.lump_cooking_time
-- check, if cooking recipe already registered
local output, decremented_input = minetest.get_craft_result({ method = "cooking", width = 1, items = { ItemStack(lump_def.name) }})
if output.item:get_name() ~= ingot_def.name then
minetest.register_craft({type="cooking",
cooktime=tdef.lump_cooking_time,
output=ingot_def.name,
recipe=lump_def.name,
})
minerdream.items[i].lump_def=lump_def
end
end
-- if technic loaded and dust registered than add recipes for dust
if tdef.groups.has_dust and minetest.get_modpath("technic") then
if minerdream.items[i].dust_def then
local dust_def=table.copy(minerdream.items[i].dust_def)
local cooking_time=tdef.cooking_time or 64
cooking_time=math.ceil(cooking_time/minerdream.dust_cooking_time_reduce)
dust_def.cooking_time=cooking_time
minetest.register_craft({type="cooking",
cooktime=cooking_time,
output=ingot_def.name,
recipe=dust_def.name,
})
technic.register_grinder_recipe({input = {ingot_def.name}, output = dust_def.name,time=cooking_time})
local_item_insert(i,"dust_def",dust_def)
end
end
local_item_insert(i,"ingot_def",ingot_def)
end
-- define ore bricks (ore + cobble)
if tdef.groups.has_brick then
local brick_def=local_create_def(i,"brick",tdef.groups.has_brick,tdef)
minetest.register_node(minerdream.modname..":"..i.."_brick",brick_def)
brick_def.name=minerdream.modname..":"..i.."_brick"
local_item_insert(i,"brick_def",brick_def)
if minerdream.items[i].lump_def ~= nil then
local lump_def=table.copy(minerdream.items[i].lump_def)
local_craft_brick(lump_def.name,brick_def.name)
end
end
-- define ore blocks (9 ores)
if tdef.groups.has_block then
local block_def=local_create_def(i,"block",tdef.groups.has_block,tdef)
local_item_insert(i,"block_def",block_def)
minetest.register_node(minerdream.modname..":"..i.."_block",block_def)
local in_def=minerdream.items[i].ingot_def
if in_def == nil and minerdream.items[i].lump_def ~= nil then
local in_def=minerdream.items[i].lump_def
end
if in_def ~= nil then
local_craft_block(in_def.name,minerdream.modname..":"..i.."_block")
end
end
-- define bar stack
if tdef.groups.has_bar_block then
local bar_def=local_create_def(i,"bar_block",tdef.groups.has_bar_block,tdef)
bar_def.paramtype="light"
bar_def.is_ground_content=true
bar_def.groups={snappy=tdef.groups.has_bar,dig_immediate=3}
local_item_insert(i,"bar_block_def",bar_def)
minetest.register_node(minerdream.modname..":"..i.."_bar_block",bar_def)
local ingot_def=minerdream.items[i].ingot_def
if ingot_def ~= nil then
local_craft_stack(ingot_def.name,minerdream.modname..":"..i.."_bar_block")
end
end
if minerdream.items[i].ingot_def ~= nil then
local ingot_name=minerdream.items[i].ingot_def.name
for _,tool in ipairs({"spear","pick","axe","sword","shovel","helmet","chestplate","leggings","boots","shield"}) do
if tdef.groups["has_"..tool] ~= nil then
local stick = "group:stick"
if tdef.tool_stick ~= nil then
stick=tdef.tool_stick
end
minetest.register_craft({
output=minerdream.modname..":"..tool.."_"..i,
recipe=local_get_recipe(tool,ingot_name,stick)
})
end
end
for _,tool in ipairs({"bow"}) do
if tdef.groups["has_"..tool] ~= nil then
local stick = "farming:cotton"
if tdef.tool_cotton ~= nil then
if tdef.tool_cotton == "steel_wire" then
stick = minerdream.steel_wire
else
stick=tdef.tool_cotton
end
end
minetest.register_craft({
output=minerdream.modname..":"..tool.."_"..i,
recipe=local_get_recipe(tool,ingot_name,stick)
})
end
end
end
print("minerdream registering "..i.." in "..(math.floor(1000000*(os.clock()-starttime))/1000).." milliseconds")
else
print("minerdream: "..i.." not enabled")
end
end

View File

@ -0,0 +1,64 @@
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,
}
local tool_definition = basic_functions.import_csv(minerdream.path.."/tools.txt",tool_cols)
--print(dump2(tool_definition))
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
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, i.." "..tool.."\n")..
core.colorize("#A0A0A0", "tier: "..idef.tierdef.name.." ("..idef.tierdef.desc..")")
if tooldef.uses then
tdesc=tdesc.."\n"..core.colorize("#A0A0A0","Uses: "..tooldef.uses)
end
if ttv.maxlevel then
tdesc=tdesc.."\n"..core.colorize("#A0A0A0","Max. Level: "..ttv.maxlevel)
end
if ttv.fleshy then
tdesc=tdesc.."\n"..core.colorize("#A0A0A0","Damage: "..ttv.fleshy)
end
tt_def={description=tdesc,
-- tt_def={description=i.." "..tool,
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},},
-- damage_groups = {fleshy=6.25},
}
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

View File

@ -0,0 +1,195 @@
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={"bow_wield_scale","tier","bow_velocity","bow_acceleration","arrow_damage"},
groups_num={"is_bowarrow"},
-- as_numeric=1,
}
local tool_definition = basic_functions.import_csv(minerdream.path.."/arrows.txt",tool_cols)
--print(dump2(tool_definition))
local minerdream_arrow = {
physical = false,
timer = 0,
visual = "wielditem",
visual_size = {x=0.5, y=0.5,},
textures = {'minerdream:shotarrow'},
lastpos= {},
collisionbox = {0, 0, 0, 0, 0, 0},
}
for i,tdef in pairs(tool_definition) do
if (i ~= "default") then
if tdef.groups.is_bowarrow then
-- register bow
minetest.register_tool("minerdream:bow_"..i, {
description = "".. core.colorize("#BFFFFF", i.." bow\n")..core.colorize("#A0A0A0", "projectile speed: "..tdef.bow_velocity.."\n")..core.colorize("#A0A0A0", "projectile gravity: "..tdef.bow_acceleration.."\n")..core.colorize("#A0A0A0", "ranged damage: "..tdef.arrow_damage.."\n")..core.colorize("#A0A0A0", "ammo: arrows"),
inventory_image = "minerdream_bow_"..i..".png",
wield_scale = {x=tdef.bow_wield_scale,y=tdef.bow_wield_scale,z=tdef.bow_wield_scale},
on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory()
if not inv:contains_item("main", "minerdream:arrow 1") then
minetest.sound_play("", {object=user})
return itemstack
end
if not minetest.setting_getbool("creative_mode") then
inv:remove_item("main", "minerdream:arrow")
end
local pos = user:getpos()
local dir = user:get_look_dir()
local yaw = user:get_look_yaw()
if pos and dir and yaw then
pos.y = pos.y + 1.6
local obj = minetest.add_entity(pos, "minerdream:copperarrow")
if obj then
minetest.sound_play("", {object=obj})
obj:setvelocity({x=dir.x * tdef.bow_velocity, y=dir.y * tdef.bow_velocity, z=dir.z * tdef.bow_velocity})
obj:setacceleration({x=dir.x * tdef.bow_acceleration, y=tdef.bow_acceleration, z=dir.z * tdef.bow_acceleration})
obj:setyaw(yaw + math.pi)
local ent = obj:get_luaentity()
if ent then
ent.player = ent.player or user
end
end
end
return itemstack
end,
})
-- end register bow
local tarrow=table.copy(minerdream_arrow)
tarrow.on_step = function(self, dtime)
self.timer = self.timer + dtime
local pos = self.object:getpos()
local node = minetest.get_node(pos)
if self.timer > (3.5/tdef.bow_velocity) then
local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 1)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "minerdream:"..i.."arrow" and obj:get_luaentity().name ~= "__builtin:item" then
obj:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups= {fleshy = tdef.arrow_damage},
}, nil)
minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8})
self.object:remove()
end
else
obj:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups= {fleshy = tdef.arrow_damage},
}, nil)
minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8})
self.object:remove()
end
end
end
if self.lastpos.x ~= nil then
if minetest.registered_nodes[node.name].walkable then
if not minetest.setting_getbool("creative_mode") then
minetest.add_item(self.lastpos, "minerdream:arrow")
end
minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8})
self.object:remove()
end
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("minerdream:"..i.."arrow", tarrow )
else
minetest.register_craftitem("minerdream:"..i:gsub(" ","_"), {
description = "".. core.colorize("#BFFFFF", i.."\n")..core.colorize("#A0A0A0", "throwable speed: "..tdef.bow_velocity.."\n")..core.colorize("#A0A0A0", "throwable gravity: "..tdef.bow_acceleration.."\n")..core.colorize("#A0A0A0", "throwing damage: "..tdef.arrow_damage),
range = 0,
stack_max= 500,
inventory_image = "minerdream_"..i:gsub(" ","_")..".png",
on_use = function(itemstack, user, pointed_thing)
if not minetest.setting_getbool("creative_mode") then itemstack:take_item()
end
if pointed_thing.type ~= "nothing" then
local pointed = minetest.get_pointed_thing_position(pointed_thing)
if vector.distance(user:getpos(), pointed) < tdef.distance then
return itemstack
end
end
local pos = user:getpos()
local dir = user:get_look_dir()
local yaw = user:get_look_yaw()
if pos and dir then
pos.y = pos.y + 1.5
local obj = minetest.add_entity(pos, "minerdream:shuriken")
if obj then
obj:setvelocity({x=dir.x * tdef.bow_velocity, y=dir.y * tdef.bow_velocity, z=dir.z * tdef.bow_velocity})
obj:setacceleration({x=dir.x * tdef.bow_acceleration, y=tdef.bow_acceleration, z=dir.z * tdef.bow_acceleration})
obj:setyaw(yaw + math.pi)
local ent = obj:get_luaentity()
if ent then
ent.player = ent.player or user
end
end
end
return itemstack
end,
})
local tthrow=table.copy(minerdream_arrow)
tthrow.visual="cube"
tthrow.visual_size={x=0.5,y=0.0,}
tthrow.textures = {'minerdream_'..i:gsub(" ","_")..'.png','minerdream_'..i:gsub(" ","_")..'.png','minerdream_'..i:gsub(" ","_")..'.png','minerdream_'..i:gsub(" ","_")..'.png','minerdream_'..i:gsub(" ","_")..'.png','minerdream_'..i:gsub(" ","_")..'.png'}
tthrow.on_step = function(self, dtime)
self.timer = self.timer + dtime
local pos = self.object:getpos()
local node = minetest.get_node(pos)
if self.timer > (3.5/tdef.bow_velocity) then
local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 1)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "minerdream:"..i:gsub(" ","_") and obj:get_luaentity().name ~= "__builtin:item" then
obj:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups= {fleshy = tdef.arrow_damage},
}, nil)
minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8})
self.object:remove()
end
else
obj:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups= {fleshy = tdef.arrow_damage},
}, nil)
minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8})
self.object:remove()
end
end
end
if self.lastpos.x ~= nil then
if minetest.registered_nodes[node.name].walkable then
if not minetest.setting_getbool("creative_mode") then
minetest.add_item(self.lastpos, "minerdream:"..i:gsub(" ","_"))
end
minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8})
self.object:remove()
end
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("minerdream:"..i:gsub(" ","_"), tthrow)
end
end
end
minetest.register_craftitem("minerdream:arrow", {
description = "".. core.colorize("#FFFFFF", "arrow\n")..core.colorize("#A0A0A0", "ammunition for bows"),
stack_max= 1000,
inventory_image = "minerdream_arrow_inv.png",
})
minetest.register_craftitem("minerdream:shotarrow", {
inventory_image = "minerdream_arrow.png",
})

View File

@ -0,0 +1,3 @@
minerdream.ingot_stack_max (Max stack for ingots) int 250 99 1000
minerdream.lump_stack_max (Max stack for lumps) int 999 99 1000
minerdream.dust_cooking_time_reduce (Recucing factor for cooking dust instead of lump) float 2 1 5

Some files were not shown because too many files have changed in this diff Show More