Skip to content

Commit ea6d504

Browse files
committedMay 19, 2013
Split init.lua into several files
1 parent a65f5b1 commit ea6d504

File tree

8 files changed

+2767
-2759
lines changed

8 files changed

+2767
-2759
lines changed
 

‎mods/default/crafting.lua

+742
Large diffs are not rendered by default.

‎mods/default/craftitems.lua

+91
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
-- mods/default/craftitems.lua
2+
3+
minetest.register_craftitem("default:stick", {
4+
description = "Stick",
5+
inventory_image = "default_stick.png",
6+
})
7+
8+
minetest.register_craftitem("default:paper", {
9+
description = "Paper",
10+
inventory_image = "default_paper.png",
11+
})
12+
13+
minetest.register_craftitem("default:book", {
14+
description = "Book",
15+
inventory_image = "default_book.png",
16+
})
17+
18+
minetest.register_craftitem("default:coal_lump", {
19+
description = "Coal Lump",
20+
inventory_image = "default_coal_lump.png",
21+
})
22+
23+
minetest.register_craftitem("default:iron_lump", {
24+
description = "Iron Lump",
25+
inventory_image = "default_iron_lump.png",
26+
})
27+
28+
minetest.register_craftitem("default:copper_lump", {
29+
description = "Copper Lump",
30+
inventory_image = "default_copper_lump.png",
31+
})
32+
33+
minetest.register_craftitem("default:mese_crystal", {
34+
description = "Mese Crystal",
35+
inventory_image = "default_mese_crystal.png",
36+
})
37+
38+
minetest.register_craftitem("default:gold_lump", {
39+
description = "Gold Lump",
40+
inventory_image = "default_gold_lump.png",
41+
})
42+
43+
minetest.register_craftitem("default:diamond", {
44+
description = "Diamond",
45+
inventory_image = "default_diamond.png",
46+
})
47+
48+
minetest.register_craftitem("default:clay_lump", {
49+
description = "Clay Lump",
50+
inventory_image = "default_clay_lump.png",
51+
})
52+
53+
minetest.register_craftitem("default:steel_ingot", {
54+
description = "Steel Ingot",
55+
inventory_image = "default_steel_ingot.png",
56+
})
57+
58+
minetest.register_craftitem("default:copper_ingot", {
59+
description = "Copper Ingot",
60+
inventory_image = "default_copper_ingot.png",
61+
})
62+
63+
minetest.register_craftitem("default:bronze_ingot", {
64+
description = "Bronze Ingot",
65+
inventory_image = "default_bronze_ingot.png",
66+
})
67+
68+
minetest.register_craftitem("default:gold_ingot", {
69+
description = "Gold Ingot",
70+
inventory_image = "default_gold_ingot.png"
71+
})
72+
73+
minetest.register_craftitem("default:mese_crystal_fragment", {
74+
description = "Mese Crystal Fragment",
75+
inventory_image = "default_mese_crystal_fragment.png",
76+
})
77+
78+
minetest.register_craftitem("default:clay_brick", {
79+
description = "Clay Brick",
80+
inventory_image = "default_clay_brick.png",
81+
})
82+
83+
minetest.register_craftitem("default:scorched_stuff", {
84+
description = "Scorched Stuff",
85+
inventory_image = "default_scorched_stuff.png",
86+
})
87+
88+
minetest.register_craftitem("default:obsidian_shard", {
89+
description = "Obsidian Shard",
90+
inventory_image = "default_obsidian_shard.png",
91+
})

‎mods/default/functions.lua

+301
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,301 @@
1+
-- mods/default/functions.lua
2+
3+
--
4+
-- Sounds
5+
--
6+
7+
function default.node_sound_defaults(table)
8+
table = table or {}
9+
table.footstep = table.footstep or
10+
{name="", gain=1.0}
11+
table.dug = table.dug or
12+
{name="default_dug_node", gain=1.0}
13+
table.place = table.place or
14+
{name="default_place_node", gain=0.5}
15+
return table
16+
end
17+
18+
function default.node_sound_stone_defaults(table)
19+
table = table or {}
20+
table.footstep = table.footstep or
21+
{name="default_hard_footstep", gain=0.2}
22+
default.node_sound_defaults(table)
23+
return table
24+
end
25+
26+
function default.node_sound_dirt_defaults(table)
27+
table = table or {}
28+
table.footstep = table.footstep or
29+
{name="", gain=0.5}
30+
--table.dug = table.dug or
31+
-- {name="default_dirt_break", gain=0.5}
32+
default.node_sound_defaults(table)
33+
return table
34+
end
35+
36+
function default.node_sound_sand_defaults(table)
37+
table = table or {}
38+
table.footstep = table.footstep or
39+
{name="default_grass_footstep", gain=0.25}
40+
--table.dug = table.dug or
41+
-- {name="default_dirt_break", gain=0.25}
42+
table.dug = table.dug or
43+
{name="", gain=0.25}
44+
default.node_sound_defaults(table)
45+
return table
46+
end
47+
48+
function default.node_sound_wood_defaults(table)
49+
table = table or {}
50+
table.footstep = table.footstep or
51+
{name="default_hard_footstep", gain=0.3}
52+
default.node_sound_defaults(table)
53+
return table
54+
end
55+
56+
function default.node_sound_leaves_defaults(table)
57+
table = table or {}
58+
table.footstep = table.footstep or
59+
{name="default_grass_footstep", gain=0.25}
60+
table.dig = table.dig or
61+
{name="default_dig_crumbly", gain=0.4}
62+
table.dug = table.dug or
63+
{name="", gain=1.0}
64+
default.node_sound_defaults(table)
65+
return table
66+
end
67+
68+
function default.node_sound_glass_defaults(table)
69+
table = table or {}
70+
table.footstep = table.footstep or
71+
{name="default_hard_footstep", gain=0.25}
72+
table.dug = table.dug or
73+
{name="default_break_glass", gain=1.0}
74+
default.node_sound_defaults(table)
75+
return table
76+
end
77+
78+
--
79+
-- Legacy
80+
--
81+
82+
function default.spawn_falling_node(p, nodename)
83+
spawn_falling_node(p, nodename)
84+
end
85+
86+
-- Horrible crap to support old code
87+
-- Don't use this and never do what this does, it's completely wrong!
88+
-- (More specifically, the client and the C++ code doesn't get the group)
89+
function default.register_falling_node(nodename, texture)
90+
minetest.log("error", debug.traceback())
91+
minetest.log('error', "WARNING: default.register_falling_node is deprecated")
92+
if minetest.registered_nodes[nodename] then
93+
minetest.registered_nodes[nodename].groups.falling_node = 1
94+
end
95+
end
96+
97+
--
98+
-- Global callbacks
99+
--
100+
101+
-- Global environment step function
102+
function on_step(dtime)
103+
-- print("on_step")
104+
end
105+
minetest.register_globalstep(on_step)
106+
107+
function on_placenode(p, node)
108+
--print("on_placenode")
109+
end
110+
minetest.register_on_placenode(on_placenode)
111+
112+
function on_dignode(p, node)
113+
--print("on_dignode")
114+
end
115+
minetest.register_on_dignode(on_dignode)
116+
117+
function on_punchnode(p, node)
118+
end
119+
minetest.register_on_punchnode(on_punchnode)
120+
121+
--
122+
-- Lavacooling
123+
--
124+
125+
default.cool_lava_source = function(pos)
126+
minetest.env:set_node(pos, {name="default:obsidian"})
127+
end
128+
129+
default.cool_lava_flowing = function(pos)
130+
minetest.env:set_node(pos, {name="default:stone"})
131+
end
132+
133+
minetest.register_abm({
134+
nodenames = {"default:lava_flowing"},
135+
neighbors = {"group:water"},
136+
interval = 1,
137+
chance = 1,
138+
action = function(pos, node, active_object_count, active_object_count_wider)
139+
default.cool_lava_flowing(pos, node, active_object_count, active_object_count_wider)
140+
end,
141+
})
142+
143+
minetest.register_abm({
144+
nodenames = {"default:lava_source"},
145+
neighbors = {"group:water"},
146+
interval = 1,
147+
chance = 1,
148+
action = function(pos, node, active_object_count, active_object_count_wider)
149+
default.cool_lava_source(pos, node, active_object_count, active_object_count_wider)
150+
end,
151+
})
152+
153+
--
154+
-- Papyrus and cactus growing
155+
--
156+
157+
minetest.register_abm({
158+
nodenames = {"default:cactus"},
159+
neighbors = {"group:sand"},
160+
interval = 50,
161+
chance = 20,
162+
action = function(pos, node)
163+
pos.y = pos.y-1
164+
local name = minetest.env:get_node(pos).name
165+
if minetest.get_item_group(name, "sand") ~= 0 then
166+
pos.y = pos.y+1
167+
local height = 0
168+
while minetest.env:get_node(pos).name == "default:cactus" and height < 4 do
169+
height = height+1
170+
pos.y = pos.y+1
171+
end
172+
if height < 4 then
173+
if minetest.env:get_node(pos).name == "air" then
174+
minetest.env:set_node(pos, {name="default:cactus"})
175+
end
176+
end
177+
end
178+
end,
179+
})
180+
181+
minetest.register_abm({
182+
nodenames = {"default:papyrus"},
183+
neighbors = {"default:dirt", "default:dirt_with_grass"},
184+
interval = 50,
185+
chance = 20,
186+
action = function(pos, node)
187+
pos.y = pos.y-1
188+
local name = minetest.env:get_node(pos).name
189+
if name == "default:dirt" or name == "default:dirt_with_grass" then
190+
if minetest.env:find_node_near(pos, 3, {"group:water"}) == nil then
191+
return
192+
end
193+
pos.y = pos.y+1
194+
local height = 0
195+
while minetest.env:get_node(pos).name == "default:papyrus" and height < 4 do
196+
height = height+1
197+
pos.y = pos.y+1
198+
end
199+
if height < 4 then
200+
if minetest.env:get_node(pos).name == "air" then
201+
minetest.env:set_node(pos, {name="default:papyrus"})
202+
end
203+
end
204+
end
205+
end,
206+
})
207+
208+
--
209+
-- Leafdecay
210+
--
211+
212+
-- To enable leaf decay for a node, add it to the "leafdecay" group.
213+
--
214+
-- The rating of the group determines how far from a node in the group "tree"
215+
-- the node can be without decaying.
216+
--
217+
-- If param2 of the node is ~= 0, the node will always be preserved. Thus, if
218+
-- the player places a node of that kind, you will want to set param2=1 or so.
219+
220+
default.leafdecay_trunk_cache = {}
221+
default.leafdecay_enable_cache = true
222+
-- Spread the load of finding trunks
223+
default.leafdecay_trunk_find_allow_accumulator = 0
224+
225+
minetest.register_globalstep(function(dtime)
226+
local finds_per_second = 5000
227+
default.leafdecay_trunk_find_allow_accumulator =
228+
math.floor(dtime * finds_per_second)
229+
end)
230+
231+
minetest.register_abm({
232+
nodenames = {"group:leafdecay"},
233+
neighbors = {"air", "group:liquid"},
234+
-- A low interval and a high inverse chance spreads the load
235+
interval = 2,
236+
chance = 5,
237+
238+
action = function(p0, node, _, _)
239+
--print("leafdecay ABM at "..p0.x..", "..p0.y..", "..p0.z..")")
240+
local do_preserve = false
241+
local d = minetest.registered_nodes[node.name].groups.leafdecay
242+
if not d or d == 0 then
243+
--print("not groups.leafdecay")
244+
return
245+
end
246+
local n0 = minetest.env:get_node(p0)
247+
if n0.param2 ~= 0 then
248+
--print("param2 ~= 0")
249+
return
250+
end
251+
local p0_hash = nil
252+
if default.leafdecay_enable_cache then
253+
p0_hash = minetest.hash_node_position(p0)
254+
local trunkp = default.leafdecay_trunk_cache[p0_hash]
255+
if trunkp then
256+
local n = minetest.env:get_node(trunkp)
257+
local reg = minetest.registered_nodes[n.name]
258+
-- Assume ignore is a trunk, to make the thing work at the border of the active area
259+
if n.name == "ignore" or (reg and reg.groups.tree and reg.groups.tree ~= 0) then
260+
--print("cached trunk still exists")
261+
return
262+
end
263+
--print("cached trunk is invalid")
264+
-- Cache is invalid
265+
table.remove(default.leafdecay_trunk_cache, p0_hash)
266+
end
267+
end
268+
if default.leafdecay_trunk_find_allow_accumulator <= 0 then
269+
return
270+
end
271+
default.leafdecay_trunk_find_allow_accumulator =
272+
default.leafdecay_trunk_find_allow_accumulator - 1
273+
-- Assume ignore is a trunk, to make the thing work at the border of the active area
274+
local p1 = minetest.env:find_node_near(p0, d, {"ignore", "group:tree"})
275+
if p1 then
276+
do_preserve = true
277+
if default.leafdecay_enable_cache then
278+
--print("caching trunk")
279+
-- Cache the trunk
280+
default.leafdecay_trunk_cache[p0_hash] = p1
281+
end
282+
end
283+
if not do_preserve then
284+
-- Drop stuff other than the node itself
285+
itemstacks = minetest.get_node_drops(n0.name)
286+
for _, itemname in ipairs(itemstacks) do
287+
if itemname ~= n0.name then
288+
local p_drop = {
289+
x = p0.x - 0.5 + math.random(),
290+
y = p0.y - 0.5 + math.random(),
291+
z = p0.z - 0.5 + math.random(),
292+
}
293+
minetest.env:add_item(p_drop, itemname)
294+
end
295+
end
296+
-- Remove node
297+
minetest.env:remove_node(p0)
298+
nodeupdate(p0)
299+
end
300+
end
301+
})

‎mods/default/init.lua

+7-2,665
Large diffs are not rendered by default.

‎mods/default/leafdecay.lua

-93
This file was deleted.

‎mods/default/mapgen.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
-- minetest/default/mapgen.lua
1+
-- mods/default/mapgen.lua
22

33
--
44
-- Aliases for map generator outputs

‎mods/default/nodes.lua

+1,293
Large diffs are not rendered by default.

‎mods/default/tools.lua

+332
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,332 @@
1+
-- mods/default/tools.lua
2+
3+
-- The hand
4+
minetest.register_item(":", {
5+
type = "none",
6+
wield_image = "wieldhand.png",
7+
wield_scale = {x=1,y=1,z=2.5},
8+
tool_capabilities = {
9+
full_punch_interval = 0.9,
10+
max_drop_level = 0,
11+
groupcaps = {
12+
crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1},
13+
snappy = {times={[3]=0.40}, uses=0, maxlevel=1},
14+
oddly_breakable_by_hand = {times={[1]=7.00,[2]=4.00,[3]=1.40}, uses=0, maxlevel=3}
15+
},
16+
damage_groups = {fleshy=1},
17+
}
18+
})
19+
20+
--
21+
-- Picks
22+
--
23+
24+
minetest.register_tool("default:pick_wood", {
25+
description = "Wooden Pickaxe",
26+
inventory_image = "default_tool_woodpick.png",
27+
tool_capabilities = {
28+
full_punch_interval = 1.2,
29+
max_drop_level=0,
30+
groupcaps={
31+
cracky = {times={[3]=1.60}, uses=10, maxlevel=1},
32+
},
33+
damage_groups = {fleshy=2},
34+
},
35+
})
36+
minetest.register_tool("default:pick_stone", {
37+
description = "Stone Pickaxe",
38+
inventory_image = "default_tool_stonepick.png",
39+
tool_capabilities = {
40+
full_punch_interval = 1.3,
41+
max_drop_level=0,
42+
groupcaps={
43+
cracky = {times={[2]=2.0, [3]=1.20}, uses=20, maxlevel=1},
44+
},
45+
damage_groups = {fleshy=3},
46+
},
47+
})
48+
minetest.register_tool("default:pick_steel", {
49+
description = "Steel Pickaxe",
50+
inventory_image = "default_tool_steelpick.png",
51+
tool_capabilities = {
52+
full_punch_interval = 1.0,
53+
max_drop_level=1,
54+
groupcaps={
55+
cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=20, maxlevel=2},
56+
},
57+
damage_groups = {fleshy=4},
58+
},
59+
})
60+
minetest.register_tool("default:pick_bronze", {
61+
description = "Bronze Pickaxe",
62+
inventory_image = "default_tool_bronzepick.png",
63+
tool_capabilities = {
64+
full_punch_interval = 1.0,
65+
max_drop_level=1,
66+
groupcaps={
67+
cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=30, maxlevel=2},
68+
},
69+
damage_groups = {fleshy=4},
70+
},
71+
})
72+
minetest.register_tool("default:pick_mese", {
73+
description = "Mese Pickaxe",
74+
inventory_image = "default_tool_mesepick.png",
75+
tool_capabilities = {
76+
full_punch_interval = 0.9,
77+
max_drop_level=3,
78+
groupcaps={
79+
cracky = {times={[1]=2.4, [2]=1.2, [3]=0.60}, uses=20, maxlevel=3},
80+
},
81+
damage_groups = {fleshy=5},
82+
},
83+
})
84+
minetest.register_tool("default:pick_diamond", {
85+
description = "Diamond Pickaxe",
86+
inventory_image = "default_tool_diamondpick.png",
87+
tool_capabilities = {
88+
full_punch_interval = 0.9,
89+
max_drop_level=3,
90+
groupcaps={
91+
cracky = {times={[1]=2.0, [2]=1.0, [3]=0.50}, uses=30, maxlevel=3},
92+
},
93+
damage_groups = {fleshy=5},
94+
},
95+
})
96+
97+
--
98+
-- Shovels
99+
--
100+
101+
minetest.register_tool("default:shovel_wood", {
102+
description = "Wooden Shovel",
103+
inventory_image = "default_tool_woodshovel.png",
104+
wield_image = "default_tool_woodshovel.png^[transformR90",
105+
tool_capabilities = {
106+
full_punch_interval = 1.2,
107+
max_drop_level=0,
108+
groupcaps={
109+
crumbly = {times={[1]=3.00, [2]=1.60, [3]=0.60}, uses=10, maxlevel=1},
110+
},
111+
damage_groups = {fleshy=2},
112+
},
113+
})
114+
minetest.register_tool("default:shovel_stone", {
115+
description = "Stone Shovel",
116+
inventory_image = "default_tool_stoneshovel.png",
117+
wield_image = "default_tool_stoneshovel.png^[transformR90",
118+
tool_capabilities = {
119+
full_punch_interval = 1.4,
120+
max_drop_level=0,
121+
groupcaps={
122+
crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1},
123+
},
124+
damage_groups = {fleshy=2},
125+
},
126+
})
127+
minetest.register_tool("default:shovel_steel", {
128+
description = "Steel Shovel",
129+
inventory_image = "default_tool_steelshovel.png",
130+
wield_image = "default_tool_steelshovel.png^[transformR90",
131+
tool_capabilities = {
132+
full_punch_interval = 1.1,
133+
max_drop_level=1,
134+
groupcaps={
135+
crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=30, maxlevel=2},
136+
},
137+
damage_groups = {fleshy=3},
138+
},
139+
})
140+
minetest.register_tool("default:shovel_bronze", {
141+
description = "Bronze Shovel",
142+
inventory_image = "default_tool_bronzeshovel.png",
143+
wield_image = "default_tool_bronzeshovel.png^[transformR90",
144+
tool_capabilities = {
145+
full_punch_interval = 1.1,
146+
max_drop_level=1,
147+
groupcaps={
148+
crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=40, maxlevel=2},
149+
},
150+
damage_groups = {fleshy=3},
151+
},
152+
})
153+
minetest.register_tool("default:shovel_mese", {
154+
description = "Mese Shovel",
155+
inventory_image = "default_tool_meseshovel.png",
156+
wield_image = "default_tool_meseshovel.png^[transformR90",
157+
tool_capabilities = {
158+
full_punch_interval = 1.0,
159+
max_drop_level=3,
160+
groupcaps={
161+
crumbly = {times={[1]=1.20, [2]=0.60, [3]=0.30}, uses=20, maxlevel=3},
162+
},
163+
damage_groups = {fleshy=4},
164+
},
165+
})
166+
minetest.register_tool("default:shovel_diamond", {
167+
description = "Diamond Shovel",
168+
inventory_image = "default_tool_diamondshovel.png",
169+
wield_image = "default_tool_diamondshovel.png^[transformR90",
170+
tool_capabilities = {
171+
full_punch_interval = 1.0,
172+
max_drop_level=1,
173+
groupcaps={
174+
crumbly = {times={[1]=1.10, [2]=0.50, [3]=0.30}, uses=30, maxlevel=3},
175+
},
176+
damage_groups = {fleshy=4},
177+
},
178+
})
179+
180+
--
181+
-- Axes
182+
--
183+
184+
minetest.register_tool("default:axe_wood", {
185+
description = "Wooden Axe",
186+
inventory_image = "default_tool_woodaxe.png",
187+
tool_capabilities = {
188+
full_punch_interval = 1.0,
189+
max_drop_level=0,
190+
groupcaps={
191+
choppy = {times={[2]=3.00, [3]=2.00}, uses=10, maxlevel=1},
192+
},
193+
damage_groups = {fleshy=2},
194+
},
195+
})
196+
minetest.register_tool("default:axe_stone", {
197+
description = "Stone Axe",
198+
inventory_image = "default_tool_stoneaxe.png",
199+
tool_capabilities = {
200+
full_punch_interval = 1.2,
201+
max_drop_level=0,
202+
groupcaps={
203+
choppy={times={[1]=3.00, [2]=2.00, [3]=1.50}, uses=20, maxlevel=1},
204+
},
205+
damage_groups = {fleshy=3},
206+
},
207+
})
208+
minetest.register_tool("default:axe_steel", {
209+
description = "Steel Axe",
210+
inventory_image = "default_tool_steelaxe.png",
211+
tool_capabilities = {
212+
full_punch_interval = 1.0,
213+
max_drop_level=1,
214+
groupcaps={
215+
choppy={times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=20, maxlevel=2},
216+
},
217+
damage_groups = {fleshy=4},
218+
},
219+
})
220+
minetest.register_tool("default:axe_bronze", {
221+
description = "Bronze Axe",
222+
inventory_image = "default_tool_bronzeaxe.png",
223+
tool_capabilities = {
224+
full_punch_interval = 1.0,
225+
max_drop_level=1,
226+
groupcaps={
227+
choppy={times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=30, maxlevel=2},
228+
},
229+
damage_groups = {fleshy=4},
230+
},
231+
})
232+
minetest.register_tool("default:axe_mese", {
233+
description = "Mese Axe",
234+
inventory_image = "default_tool_meseaxe.png",
235+
tool_capabilities = {
236+
full_punch_interval = 0.9,
237+
max_drop_level=1,
238+
groupcaps={
239+
choppy={times={[1]=2.20, [2]=1.00, [3]=0.60}, uses=20, maxlevel=3},
240+
},
241+
damage_groups = {fleshy=6},
242+
},
243+
})
244+
minetest.register_tool("default:axe_diamond", {
245+
description = "Diamond Axe",
246+
inventory_image = "default_tool_diamondaxe.png",
247+
tool_capabilities = {
248+
full_punch_interval = 0.9,
249+
max_drop_level=1,
250+
groupcaps={
251+
choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=2},
252+
},
253+
damage_groups = {fleshy=7},
254+
},
255+
})
256+
257+
--
258+
-- Swords
259+
--
260+
261+
minetest.register_tool("default:sword_wood", {
262+
description = "Wooden Sword",
263+
inventory_image = "default_tool_woodsword.png",
264+
tool_capabilities = {
265+
full_punch_interval = 1,
266+
max_drop_level=0,
267+
groupcaps={
268+
snappy={times={[2]=1.6, [3]=0.40}, uses=10, maxlevel=1},
269+
},
270+
damage_groups = {fleshy=2},
271+
}
272+
})
273+
minetest.register_tool("default:sword_stone", {
274+
description = "Stone Sword",
275+
inventory_image = "default_tool_stonesword.png",
276+
tool_capabilities = {
277+
full_punch_interval = 1.2,
278+
max_drop_level=0,
279+
groupcaps={
280+
snappy={times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1},
281+
},
282+
damage_groups = {fleshy=4},
283+
}
284+
})
285+
minetest.register_tool("default:sword_steel", {
286+
description = "Steel Sword",
287+
inventory_image = "default_tool_steelsword.png",
288+
tool_capabilities = {
289+
full_punch_interval = 0.8,
290+
max_drop_level=1,
291+
groupcaps={
292+
snappy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=30, maxlevel=2},
293+
},
294+
damage_groups = {fleshy=6},
295+
}
296+
})
297+
minetest.register_tool("default:sword_bronze", {
298+
description = "Bronze Sword",
299+
inventory_image = "default_tool_bronzesword.png",
300+
tool_capabilities = {
301+
full_punch_interval = 0.8,
302+
max_drop_level=1,
303+
groupcaps={
304+
snappy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=40, maxlevel=2},
305+
},
306+
damage_groups = {fleshy=6},
307+
}
308+
})
309+
minetest.register_tool("default:sword_mese", {
310+
description = "Mese Sword",
311+
inventory_image = "default_tool_mesesword.png",
312+
tool_capabilities = {
313+
full_punch_interval = 0.7,
314+
max_drop_level=1,
315+
groupcaps={
316+
snappy={times={[1]=2.0, [2]=1.00, [3]=0.35}, uses=30, maxlevel=3},
317+
},
318+
damage_groups = {fleshy=7},
319+
}
320+
})
321+
minetest.register_tool("default:sword_diamond", {
322+
description = "Diamond Sword",
323+
inventory_image = "default_tool_diamondsword.png",
324+
tool_capabilities = {
325+
full_punch_interval = 0.7,
326+
max_drop_level=1,
327+
groupcaps={
328+
snappy={times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=40, maxlevel=3},
329+
},
330+
damage_groups = {fleshy=8},
331+
}
332+
})

0 commit comments

Comments
 (0)
Please sign in to comment.