-
Notifications
You must be signed in to change notification settings - Fork 1
/
itemreg.lua
109 lines (95 loc) · 2.66 KB
/
itemreg.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
local thismod = minetest.get_current_modname()
local wac = _G[thismod]
function wac.register_smasher(name, def)
def.wac_smasher = true
def.stack_max = 1
def.inventory_image = def.inventory_image or ("wac_tool_" .. name .. ".png")
def.wac_smash_targets = def.wac_smash_targets
or function(func, lua, obj) return func(lua, obj) end
def.on_use = def.on_use or function(_, user, pointed_thing)
if pointed_thing.type == "node" then
return minetest.node_punch(pointed_thing.under,
minetest.get_node(pointed_thing.under),
user, pointed_thing)
elseif pointed_thing.type == "object" then
def.wac_smash_targets(function(obj)
local opos = obj:get_pos()
local function helper(...)
if def.wac_smash_quirk then
def.wac_smash_quirk(opos)
end
return ...
end
return helper(wac.jump_whack(user, obj))
end, pointed_thing.ref)
end
end
return minetest.register_craftitem(thismod .. ":" .. name, def)
end
--
--
--
wac.register_smasher("warrhammer", {
description = "Warr Hammer",
groups = {metal = 1, thwacky = 2},
wac_smash_quirk = function(pos)
wac.tumbleparticles(pos,"wac_fx_warrcode.png")
end,
wac_tool_rarity = 2
})
wac.register_smasher("codex_dimond", {
description = "Codex Dimond",
groups = {metal = 1, thwacky = 2},
wac_smash_targets = function(func, obj)
if not func(obj) then return end
local delrad = {}
wac.find_corns(obj:get_pos(), 6, function(_, xobj)
delrad[#delrad + 1] = xobj
end)
if #delrad < 1 then return end
local pick = delrad[math.random(1, #delrad)]
func(pick)
end,
wac_smash_quirk = function(pos)
wac.dimond_focused_lazer(pos,"wac_fx_banzer.png")
end,
wac_tool_rarity = 5
})
wac.register_smasher("bec_de_corbin", {
description = "Bec_de_Corbin",
groups = {metal = 1, event = 2, thwacky = 2},
wac_tool_rarity = 1
})
wac.register_smasher("baseball_bat",{
description = "Ol' Reliable",
groups = {metal = 1, event = 2, thwacky = 3},
wac_tool_rarity = 1
})
wac.register_smasher("vampirewhip",{
description = "Far Rach",
groups = {metal = 1, event = 2, thwacky = 4},
range = 8,
wac_tool_rarity = 3
})
wac.register_smasher("paws",{
description = "Paws of the Kittypet",
groups = {metal = 1, event = 2, thwacky = 3},
wac_tool_rarity = 2
})
wac.register_smasher("suchion_cup",{
description = "Suchion Cup",
groups = {metal = 1, event = 2, thwacky = 3},
wac_tool_rarity = 4,
wac_smash_quirk = function(pos)
wac.find_corns(pos, 10, function(_, obj)
local rel = vector.subtract(pos, obj:get_pos())
local len = vector.length(rel)
if len > 0 then
rel = vector.multiply(rel, 250
* math.random() * math.random()
/ len / len / len)
obj:add_velocity(rel)
end
end)
end,
})