restructure code; new ore-gen

This commit is contained in:
Casimir
2013-10-18 20:16:58 +02:00
parent 54902d2552
commit d7496dfe04
7 changed files with 419 additions and 471 deletions

140
crafting.lua Normal file
View File

@@ -0,0 +1,140 @@
minetest.register_craft({
output = 'default:stick 6',
recipe = {
{'default:leaves'},
{'default:leaves'},
{'default:leaves'},
}
})
-- Stoneage tools
minetest.register_craft({
type = 'shapeless',
output = 'stoneage:firestriker_steel',
recipe = {'stoneage:silex', 'default:steel_ingot'},
})
minetest.register_craft({
type = 'shapeless',
output = 'stoneage:firestriker_stone',
recipe = {'stoneage:silex', 'group:stone'},
})
minetest.register_craft({
output = 'stoneage:biface',
recipe = {
{'stoneage:silex'},
}
})
-- Torches
minetest.register_craft({
output = 'stoneage:torch_unlit 4',
recipe = {
{'default:coal_lump'},
{'default:stick'},
}
})
minetest.register_craft({
type = 'shapeless',
output = 'default:torch 2',
recipe = {'stoneage:torch_unlit', 'default:torch'},
})
minetest.register_craft({
type = 'shapeless',
output = 'stoneage:torch_unlit',
recipe = {'default:torch'},
})
minetest.register_craft({
type = 'cooking',
output = 'default:torch',
recipe = 'stoneage:torch_unlit',
cooktime = 1,
})
-- Furnace
minetest.register_craft({
output = 'default:furnace',
recipe = {
{'group:stone','group:stone','group:stone'},
{'group:stone','default:torch','group:stone'},
{'group:stone','group:stone','group:stone'},
}
})
minetest.register_craft({
output = 'default:cobble 8',
recipe = {
{'group:stone','group:stone','group:stone'},
{'group:stone','','group:stone'},
{'group:stone','group:stone','group:stone'},
}
})
-- Standard tools
minetest.register_craft({
output = 'default:pick_stone',
recipe = {
{'stoneage:silex', 'stoneage:silex', 'stoneage:silex'},
{'', 'default:stick', ''},
{'', 'default:stick', ''},
}
})
minetest.register_craft({
output = 'default:shovel_stone',
recipe = {
{'stoneage:silex'},
{'default:stick'},
{'default:stick'},
}
})
minetest.register_craft({
output = 'default:axe_stone',
recipe = {
{'stoneage:silex', 'stoneage:silex'},
{'stoneage:silex', 'default:stick'},
{'', 'default:stick'},
}
})
minetest.register_craft({
output = 'default:sword_stone',
recipe = {
{'stoneage:silex'},
{'stoneage:silex'},
{'default:stick'},
}
})
minetest.register_craft({
output = 'farming:hoe_stone',
recipe = {
{'stoneage:silex', 'stoneage:silex'},
{'', 'default:stick'},
{'', 'default:stick'},
}
})
minetest.register_craft({
output = 'farming:hoe_stone',
recipe = {
{'stoneage:silex', 'stoneage:silex'},
{'', 'default:stick'},
{'', 'default:stick'},
}
})
for _,tinder in ipairs(tinder) do
minetest.register_craft({
output = 'stoneage:bonfire_unlit',
recipe = {
{'', 'default:stick', ''},
{'default:stick', tinder, 'default:stick'},
}
})
end

70
functions.lua Normal file
View File

@@ -0,0 +1,70 @@
function stoneage.strike_fire(user, pointed_thing)
if pointed_thing.type == "node" then
local n_pointed_above = minetest.env:get_node(pointed_thing.above)
local n_pointed_under = minetest.env:get_node(pointed_thing.under)
for _,tinder in ipairs(tinder) do
if user:get_inventory():get_stack("main", user:get_wield_index()+1):get_name() == tinder then
user:get_inventory():remove_item("main", tinder)
if n_pointed_under.name == "stoneage:torch_unlit" then
n_pointed_under.name = "default:torch"
minetest.env:add_node(pointed_thing.under, n_pointed_under)
elseif n_pointed_under.name == "stoneage:bonfire_unlit" then
minetest.env:add_node(pointed_thing.under, {name="stoneage:bonfire"})
elseif n_pointed_above.name == "air" then
minetest.env:add_node(pointed_thing.above, {name="fire:basic_flame"})
end
end
end
else
return
end
end
-- torchdecay
-- burntime equals half a night
if torchdecay then
minetest.register_abm({
nodenames = {"default:torch"},
interval = 9,
chance = 1,
action = function(pos, node)
local meta = minetest.env:get_meta(pos)
local decay = meta:get_int("decay")
if not decay then
meta:set_int("decay", 1)
return
end
if decay >= math.random(36, 44) then
node.name = "stoneage:torch_unlit"
minetest.env:add_node(pos, node)
meta:set_int("decay", 0)
return
end
decay = decay + 1
meta:set_int("decay", decay)
end
})
minetest.register_abm({
nodenames = {"stoneage:bonfire"},
interval = 18,
chance = 1,
action = function(pos, node)
local meta = minetest.env:get_meta(pos)
local decay = meta:get_int("decay")
if not decay then
meta:set_int("decay", 1)
return
end
if decay >= math.random(36, 44) then
node.name = "stoneage:bonfire_unlit"
minetest.env:add_node(pos, node)
meta:set_int("decay", 0)
return
end
decay = decay + 1
meta:set_int("decay", decay)
end
})
end

395
init.lua
View File

@@ -1,31 +1,7 @@
dofile(minetest.get_modpath("stoneage").."/ores.lua")
dofile(minetest.get_modpath("stoneage").."/overwrite.lua")
stoneage = {}
local torchdecay = true
minetest.register_craftitem("stoneage:silex", {
description = "Silex",
inventory_image = "stoneage_silex.png",
})
minetest.register_tool("stoneage:biface", {
description = "Biface",
inventory_image = "stoneage_biface.png",
tool_capabilities = {
max_drop_level=0,
groupcaps={
choppy={times={[1]=3.20, [2]=1.20, [3]=0.60}, uses=20, maxlevel=1},
fleshy={times={[2]=1.00, [3]=0.60}, uses=30, maxlevel=1},
crumbly={times={[1]=1.70, [2]=0.70, [3]=0.50}, uses=10, maxlevel=1},
oddly_breakable_by_hand = {times={[1]=3.50,[2]=2.00,[3]=0.70}, uses=0, maxlevel=3},
},
damage_groups = {fleshy=2}
},
})
--
-- fire striker
--
tinder = {
"flowers:cotton",
"default:paper",
@@ -33,365 +9,12 @@ tinder = {
"garden:cotton",
}
dofile(minetest.get_modpath("stoneage").."/functions.lua")
dofile(minetest.get_modpath("stoneage").."/nodes.lua")
dofile(minetest.get_modpath("stoneage").."/tools.lua")
dofile(minetest.get_modpath("stoneage").."/crafting.lua")
dofile(minetest.get_modpath("stoneage").."/mapgen.lua")
dofile(minetest.get_modpath("stoneage").."/overwrite.lua")
minetest.register_alias("stoneage:fire_striker", "stoneage:firestriker_steel")
local function strike_fire(user, pointed_thing)
if pointed_thing.type == "node" then
local n_pointed_above = minetest.env:get_node(pointed_thing.above)
local n_pointed_under = minetest.env:get_node(pointed_thing.under)
for _,tinder in ipairs(tinder) do
if user:get_inventory():get_stack("main", user:get_wield_index()+1):get_name() == tinder then
user:get_inventory():remove_item("main", tinder)
if n_pointed_under.name == "stoneage:torch_unlit" then
n_pointed_under.name = "default:torch"
minetest.env:add_node(pointed_thing.under, n_pointed_under)
elseif n_pointed_under.name == "stoneage:bonfire_unlit" then
minetest.env:add_node(pointed_thing.under, {name="stoneage:bonfire"})
elseif n_pointed_above.name == "air" then
minetest.env:add_node(pointed_thing.above, {name="fire:basic_flame"})
end
end
end
else
return
end
end
minetest.register_tool("stoneage:firestriker_stone", {
description = "Fire Striker",
inventory_image = "stoneage_firestriker_stone.png",
stack_max = 1,
on_use = function(itemstack, user, pointed_thing)
strike_fire(user, pointed_thing)
itemstack:add_wear(65535/16)
return itemstack
end
})
minetest.register_tool("stoneage:firestriker_steel", {
description = "Fire Striker",
inventory_image = "stoneage_firestriker_steel.png",
stack_max = 1,
on_use = function(itemstack, user, pointed_thing)
strike_fire(user, pointed_thing)
itemstack:add_wear(65535/64)
return itemstack
end
})
--
-- torch
--
minetest.register_node("stoneage:torch_unlit", {
description = "Torch",
drawtype = "torchlike",
tiles = {"stoneage_torch_unlit_on_floor.png", "stoneage_torch_unlit_on_ceiling.png", "stoneage_torch_unlit_on_wall.png"},
inventory_image = "stoneage_torch_unlit_on_floor.png",
wield_image = "stoneage_torch_unlit_on_floor.png",
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "wallmounted",
wall_top = {-0.1, 0.5-0.6, -0.1, 0.1, 0.5, 0.1},
wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1},
wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1},
},
groups = {choppy=2,dig_immediate=3,flammable=1,attached_node=1},
-- lighting a placed torch when hit by a buring one
after_dig_node = function(pos, node, oldmetadata, puncher)
local wield = puncher:get_wielded_item():get_name()
if wield == "default:torch" then
node.name = "default:torch"
minetest.env:set_node(pos, node)
local inv = puncher:get_inventory()
inv:remove_item("main", "stoneage:torch_unlit")
end
end,
-- lighting the torch in hand when hitting a buring one
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type == "node" then
local n = minetest.env:get_node(pointed_thing.under)
if minetest.get_item_group(n.name, "igniter") ~= 0 or n.name == "default:torch" or n.name == "default:furnace_active" then
local torch_count = user:get_wielded_item():get_count()
itemstack:replace("default:torch "..torch_count.."")
return itemstack
else
minetest.env:punch_node(pointed_thing.under)
end
else
return
end
end,
sounds = default.node_sound_defaults(),
})
-- lighting the torch when a buring one is near by
minetest.register_abm({
nodenames = {"stoneage:torch_unlit"},
neighbors = {"group:igniter", "default:torch"},
interval = 1,
chance = 5,
action = function(pos, node)
node.name = "default:torch"
minetest.env:add_node(pos, node)
end
})
-- torchdecay
-- burntime equals half a night
if torchdecay then
minetest.register_abm({
nodenames = {"default:torch"},
interval = 9,
chance = 1,
action = function(pos, node)
local meta = minetest.env:get_meta(pos)
local decay = meta:get_int("decay")
if not decay then
meta:set_int("decay", 1)
return
end
if decay >= math.random(36, 44) then
node.name = "stoneage:torch_unlit"
minetest.env:add_node(pos, node)
meta:set_int("decay", 0)
return
end
decay = decay + 1
meta:set_int("decay", decay)
end
})
end
--
-- bonfire
--
-- in development
minetest.register_node("stoneage:bonfire_unlit", {
description = "Bonfire",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"stoneage_bonfire_unlit.png"},
inventory_image = "stoneage_bonfire_unlit.png",
wield_image = "stoneage_bonfire_unlit.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
groups = {snappy=3,flammable=2,attached_node=1},
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = {-1/3, -1/2, -1/3, 1/3, 1/6, 1/3},
},
})
minetest.register_node("stoneage:bonfire", {
description = "Bonfire",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {
{name="stoneage_bonfire_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}}
},
inventory_image = "stoneage_bonfire_unlit.png",
wield_image = "stoneage_bonfire_unlit.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
drop = "",
damage_per_second = 1,
light_source = LIGHT_MAX-1,
groups = {dig_immediate=3,igniter=1,attached_node=1},
after_dig_node = function(pos, node, oldmetadata, puncher)
node.name = "stoneage:bonfire_unlit"
minetest.env:set_node(pos, node)
end,
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = {-1/3, -1/2, -1/3, 1/3, 1/6, 1/3},
},
})
for _,tinder in ipairs(tinder) do
minetest.register_craft({
output = 'stoneage:bonfire_unlit',
recipe = {
{'', 'default:stick', ''},
{'default:stick', tinder, 'default:stick'},
}
})
end
if torchdecay then
minetest.register_abm({
nodenames = {"stoneage:bonfire"},
interval = 18,
chance = 1,
action = function(pos, node)
local meta = minetest.env:get_meta(pos)
local decay = meta:get_int("decay")
if not decay then
meta:set_int("decay", 1)
return
end
if decay >= math.random(36, 44) then
node.name = "stoneage:bonfire_unlit"
minetest.env:add_node(pos, node)
meta:set_int("decay", 0)
return
end
decay = decay + 1
meta:set_int("decay", decay)
end
})
end
--
-- craft
--
-- craft stoneagetools
minetest.register_craft({
type = 'shapeless',
output = 'stoneage:firestriker_steel',
recipe = {'stoneage:silex', 'default:steel_ingot'},
})
minetest.register_craft({
type = 'shapeless',
output = 'stoneage:firestriker_stone',
recipe = {'stoneage:silex', 'group:stone'},
})
minetest.register_craft({
output = 'stoneage:biface',
recipe = {
{'stoneage:silex'},
}
})
-- craft torch
minetest.register_craft({
output = 'stoneage:torch_unlit 4',
recipe = {
{'default:coal_lump'},
{'default:stick'},
}
})
minetest.register_craft({
type = 'shapeless',
output = 'default:torch 2',
recipe = {'stoneage:torch_unlit', 'default:torch'},
})
minetest.register_craft({
type = 'shapeless',
output = 'stoneage:torch_unlit',
recipe = {'default:torch'},
})
minetest.register_craft({
type = 'cooking',
output = 'default:torch',
recipe = 'stoneage:torch_unlit',
cooktime = 1,
})
-- craft furnace
minetest.register_craft({
output = 'default:furnace',
recipe = {
{'group:stone','group:stone','group:stone'},
{'group:stone','default:torch','group:stone'},
{'group:stone','group:stone','group:stone'},
}
})
minetest.register_craft({
output = 'default:cobble 8',
recipe = {
{'group:stone','group:stone','group:stone'},
{'group:stone','','group:stone'},
{'group:stone','group:stone','group:stone'},
}
})
-- craft default tools
minetest.register_craft({
output = 'default:pick_stone',
recipe = {
{'stoneage:silex', 'stoneage:silex', 'stoneage:silex'},
{'', 'default:stick', ''},
{'', 'default:stick', ''},
}
})
minetest.register_craft({
output = 'default:shovel_stone',
recipe = {
{'stoneage:silex'},
{'default:stick'},
{'default:stick'},
}
})
minetest.register_craft({
output = 'default:axe_stone',
recipe = {
{'stoneage:silex', 'stoneage:silex'},
{'stoneage:silex', 'default:stick'},
{'', 'default:stick'},
}
})
minetest.register_craft({
output = 'default:sword_stone',
recipe = {
{'stoneage:silex'},
{'stoneage:silex'},
{'default:stick'},
}
})
if (minetest.get_modpath("farming")) ~= nil then
minetest.register_craft({
output = 'farming:hoe_stone',
recipe = {
{'stoneage:silex', 'stoneage:silex'},
{'', 'default:stick'},
{'', 'default:stick'},
}
})
minetest.register_craft({
output = 'farming:hoe_stone',
recipe = {
{'stoneage:silex', 'stoneage:silex'},
{'', 'default:stick'},
{'', 'default:stick'},
}
})
end
-- craft more
minetest.register_craft({
output = 'default:stick 6',
recipe = {
{'default:leaves'},
{'default:leaves'},
{'default:leaves'},
}
})

32
mapgen.lua Normal file
View File

@@ -0,0 +1,32 @@
minetest.register_ore({
ore_type = "scatter",
ore = "stoneage:grass_with_silex",
wherein = "default:dirt_with_grass",
clust_scarcity = 19*19*19,
clust_num_ores = 5,
clust_size = 3,
height_min = -8,
height_max = 64,
})
minetest.register_ore({
ore_type = "scatter",
ore = "stoneage:dirt_with_silex",
wherein = "default:dirt",
clust_scarcity = 19*19*19,
clust_num_ores = 5,
clust_size = 3,
height_min = -8,
height_max = 64,
})
minetest.register_ore({
ore_type = "scatter",
ore = "stoneage:sand_with_silex",
wherein = "default:sand",
clust_scarcity = 17*17*17,
clust_num_ores = 8,
clust_size = 4,
height_min = -63,
height_max = -16,
})

127
nodes.lua Normal file
View File

@@ -0,0 +1,127 @@
minetest.register_node("stoneage:torch_unlit", {
description = "Torch",
drawtype = "torchlike",
tiles = {"stoneage_torch_unlit_on_floor.png", "stoneage_torch_unlit_on_ceiling.png", "stoneage_torch_unlit_on_wall.png"},
inventory_image = "stoneage_torch_unlit_on_floor.png",
wield_image = "stoneage_torch_unlit_on_floor.png",
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "wallmounted",
wall_top = {-0.1, 0.5-0.6, -0.1, 0.1, 0.5, 0.1},
wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1},
wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1},
},
groups = {choppy=2,dig_immediate=3,flammable=1,attached_node=1},
-- lighting a placed torch when hit by a buring one
after_dig_node = function(pos, node, oldmetadata, puncher)
local wield = puncher:get_wielded_item():get_name()
if wield == "default:torch" then
node.name = "default:torch"
minetest.env:set_node(pos, node)
local inv = puncher:get_inventory()
inv:remove_item("main", "stoneage:torch_unlit")
end
end,
-- lighting the torch in hand when hitting a buring one
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type == "node" then
local n = minetest.env:get_node(pointed_thing.under)
if minetest.get_item_group(n.name, "igniter") ~= 0 or n.name == "default:torch" or n.name == "default:furnace_active" then
local torch_count = user:get_wielded_item():get_count()
itemstack:replace("default:torch "..torch_count.."")
return itemstack
else
minetest.env:punch_node(pointed_thing.under)
end
else
return
end
end,
sounds = default.node_sound_defaults(),
})
minetest.register_node("stoneage:bonfire_unlit", {
description = "Bonfire",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"stoneage_bonfire_unlit.png"},
inventory_image = "stoneage_bonfire_unlit.png",
wield_image = "stoneage_bonfire_unlit.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
groups = {snappy=3,flammable=2,attached_node=1},
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = {-1/3, -1/2, -1/3, 1/3, 1/6, 1/3},
},
})
minetest.register_node("stoneage:bonfire", {
description = "Bonfire",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {
{name="stoneage_bonfire_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}}
},
inventory_image = "stoneage_bonfire_unlit.png",
wield_image = "stoneage_bonfire_unlit.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
drop = "",
damage_per_second = 1,
light_source = LIGHT_MAX-1,
groups = {dig_immediate=3,igniter=1,attached_node=1},
after_dig_node = function(pos, node, oldmetadata, puncher)
node.name = "stoneage:bonfire_unlit"
minetest.env:set_node(pos, node)
end,
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = {-1/3, -1/2, -1/3, 1/3, 1/6, 1/3},
},
})
--
-- ores
--
minetest.register_node("stoneage:grass_with_silex", {
description = "Silex",
tiles = {"default_grass.png^stoneage_silex_ore.png", "default_dirt.png^stoneage_silex_ore.png", "default_dirt.png^default_grass_side.png^stoneage_silex_ore.png"},
is_ground_content = true,
groups = {crumbly=3,soil=1},
drop = 'stoneage:silex',
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4},
}),
})
minetest.register_node("stoneage:dirt_with_silex", {
description = "Silex",
tiles = {"default_dirt.png^stoneage_silex_ore.png"},
is_ground_content = true,
groups = {crumbly=3,soil=1},
drop = 'stoneage:silex',
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4},
}),
})
minetest.register_node("stoneage:sand_with_silex", {
description = "Silex",
tiles = {"default_sand.png^stoneage_silex_ore.png"},
is_ground_content = true,
groups = {crumbly=3, falling_node=1},
drop = 'stoneage:silex',
sounds = default.node_sound_sand_defaults(),
})

View File

@@ -1,85 +0,0 @@
--
-- ores
--
minetest.register_node("stoneage:grass_with_silex", {
description = "Silex",
tiles = {"default_grass.png^stoneage_silex_ore.png", "default_dirt.png^stoneage_silex_ore.png", "default_dirt.png^default_grass_side.png^stoneage_silex_ore.png"},
-- tiles = {"default_grass.png", "default_dirt.png^stoneage_silex_ore.png", "default_dirt.png^stoneage_silex_ore.png^default_grass_side.png"},
is_ground_content = true,
groups = {crumbly=3,soil=1},
drop = 'stoneage:silex',
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4},
}),
})
minetest.register_node("stoneage:dirt_with_silex", {
description = "Silex",
tiles = {"default_dirt.png^stoneage_silex_ore.png"},
is_ground_content = true,
groups = {crumbly=3,soil=1},
drop = 'stoneage:silex',
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4},
}),
})
minetest.register_node("stoneage:sand_with_silex", {
description = "Silex",
tiles = {"default_sand.png^stoneage_silex_ore.png"},
is_ground_content = true,
groups = {crumbly=3, falling_node=1},
drop = 'stoneage:silex',
sounds = default.node_sound_sand_defaults(),
})
--
-- Generating
--
local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, ore_per_chunk, height_min, height_max)
if maxp.y < height_min or minp.y > height_max then
return
end
local y_min = math.max(minp.y, height_min)
local y_max = math.min(maxp.y, height_max)
local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1)
local pr = PseudoRandom(seed)
local num_chunks = math.floor(chunks_per_volume * volume)
local chunk_size = 3
if ore_per_chunk <= 4 then
chunk_size = 2
end
local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk)
--print("generate_ore num_chunks: "..dump(num_chunks))
for i=1,num_chunks do
local y0 = pr:next(y_min, y_max-chunk_size+1)
if y0 >= height_min and y0 <= height_max then
local x0 = pr:next(minp.x, maxp.x-chunk_size+1)
local z0 = pr:next(minp.z, maxp.z-chunk_size+1)
local p0 = {x=x0, y=y0, z=z0}
for x1=0,chunk_size-1 do
for y1=0,chunk_size-1 do
for z1=0,chunk_size-1 do
if pr:next(1,inverse_chance) == 1 then
local x2 = x0+x1
local y2 = y0+y1
local z2 = z0+z1
local p2 = {x=x2, y=y2, z=z2}
if minetest.env:get_node(p2).name == wherein then
minetest.env:set_node(p2, {name=name})
end
end
end
end
end
end
end
end
minetest.register_on_generated(function(minp, maxp, seed)
generate_ore("stoneage:grass_with_silex", "default:dirt_with_grass", minp, maxp, seed+485, 1/19/19/19, 5, -8, 64)
generate_ore("stoneage:dirt_with_silex", "default:dirt", minp, maxp, seed+485, 1/19/19/19, 5, -8, 64)
generate_ore("stoneage:sand_with_silex", "default:sand", minp, maxp, seed+485, 1/17/17/17, 11, -16, 32)
end)

41
tools.lua Normal file
View File

@@ -0,0 +1,41 @@
minetest.register_craftitem("stoneage:silex", {
description = "Silex",
inventory_image = "stoneage_silex.png",
})
minetest.register_tool("stoneage:biface", {
description = "Biface",
inventory_image = "stoneage_biface.png",
tool_capabilities = {
max_drop_level=0,
groupcaps={
choppy={times={[1]=3.20, [2]=1.20, [3]=0.60}, uses=20, maxlevel=1},
fleshy={times={[2]=1.00, [3]=0.60}, uses=30, maxlevel=1},
crumbly={times={[1]=1.70, [2]=0.70, [3]=0.50}, uses=10, maxlevel=1},
oddly_breakable_by_hand = {times={[1]=3.50,[2]=2.00,[3]=0.70}, uses=0, maxlevel=3},
},
damage_groups = {fleshy=2}
},
})
minetest.register_tool("stoneage:firestriker_stone", {
description = "Fire Striker",
inventory_image = "stoneage_firestriker_stone.png",
stack_max = 1,
on_use = function(itemstack, user, pointed_thing)
stoneage.strike_fire(user, pointed_thing)
itemstack:add_wear(65535/16)
return itemstack
end
})
minetest.register_tool("stoneage:firestriker_steel", {
description = "Fire Striker",
inventory_image = "stoneage_firestriker_steel.png",
stack_max = 1,
on_use = function(itemstack, user, pointed_thing)
stoneage.strike_fire(user, pointed_thing)
itemstack:add_wear(65535/64)
return itemstack
end
})