Add exclusive use for infused rake
Recalculate rake function based on update tool capabilities so rakes can work on pumice now, and theoretically even a future snappy=3 material.
This commit is contained in:
parent
6e9865487c
commit
3915426d7b
@ -11,14 +11,15 @@ local loosetest = nodecore.rake_index(function(def)
|
|||||||
and def.groups.snappy == 1
|
and def.groups.snappy == 1
|
||||||
end)
|
end)
|
||||||
local snapvol = nodecore.rake_volume(1, 1)
|
local snapvol = nodecore.rake_volume(1, 1)
|
||||||
local snaptest = nodecore.rake_index(function(def)
|
|
||||||
return def.groups and def.groups.snappy == 1
|
|
||||||
end)
|
|
||||||
local crumbvol = nodecore.rake_volume(1, 0)
|
local crumbvol = nodecore.rake_volume(1, 0)
|
||||||
local function mkonrake(crumblv)
|
local function mkonrake(toolcaps)
|
||||||
|
local snaptest = nodecore.rake_index(function(def)
|
||||||
|
return def.groups and def.groups.snappy
|
||||||
|
and def.groups.snappy <= toolcaps.opts.snappy
|
||||||
|
end)
|
||||||
local crumbtest = nodecore.rake_index(function(def)
|
local crumbtest = nodecore.rake_index(function(def)
|
||||||
return def.groups and def.groups.crumbly
|
return def.groups and def.groups.crumbly
|
||||||
and def.groups.crumbly <= crumblv
|
and def.groups.crumbly <= toolcaps.opts.crumbly
|
||||||
end)
|
end)
|
||||||
return function(pos, node)
|
return function(pos, node)
|
||||||
if loosetest(pos, node) then return loosevol, loosetest end
|
if loosetest(pos, node) then return loosevol, loosetest end
|
||||||
@ -26,6 +27,7 @@ local function mkonrake(crumblv)
|
|||||||
if crumbtest(pos, node) then return crumbvol, crumbtest end
|
if crumbtest(pos, node) then return crumbvol, crumbtest end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
nodecore.lode_rake_function = mkonrake
|
||||||
|
|
||||||
nodecore.register_lode("rake", {
|
nodecore.register_lode("rake", {
|
||||||
type = "tool",
|
type = "tool",
|
||||||
@ -45,7 +47,7 @@ nodecore.register_lode("rake", {
|
|||||||
crumbly = 1 + dlv,
|
crumbly = 1 + dlv,
|
||||||
uses = 20 + 5 * dlv
|
uses = 20 + 5 * dlv
|
||||||
})
|
})
|
||||||
d.on_rake = mkonrake(1 + dlv)
|
d.on_rake = mkonrake(d.tool_capabilities)
|
||||||
end,
|
end,
|
||||||
tool_wears_to = modname .. ":prill_# 12"
|
tool_wears_to = modname .. ":prill_# 12"
|
||||||
})
|
})
|
||||||
|
@ -29,25 +29,29 @@ local function mktool(tshape, buffs)
|
|||||||
def.after_use = nil
|
def.after_use = nil
|
||||||
|
|
||||||
def.groups = nodecore.underride({lux_tool = 1, lux_emit = 1}, orig.groups or {})
|
def.groups = nodecore.underride({lux_tool = 1, lux_emit = 1}, orig.groups or {})
|
||||||
|
|
||||||
local tc = {}
|
local tc = {}
|
||||||
for k, v in pairs(orig.tool_capabilities.opts) do
|
for k, v in pairs(orig.tool_capabilities.opts) do
|
||||||
tc[k] = v + 1 + (buffs[k] or 0)
|
tc[k] = v + 1 + (buffs[k] or 0)
|
||||||
end
|
end
|
||||||
tc.uses = 0.125
|
tc.uses = 0.125
|
||||||
def.tool_capabilities = nodecore.toolcaps(tc)
|
def.tool_capabilities = nodecore.toolcaps(tc)
|
||||||
|
if def.on_rake then
|
||||||
|
def.on_rake = nodecore.lode_rake_function(def.tool_capabilities)
|
||||||
|
end
|
||||||
|
|
||||||
for k, v in pairs(orig.tool_capabilities.opts) do
|
for k, v in pairs(orig.tool_capabilities.opts) do
|
||||||
tc[k] = v + 2 + (buffs[k] or 0)
|
tc[k] = v + 2 + (buffs[k] or 0)
|
||||||
end
|
end
|
||||||
|
local boosttc = nodecore.toolcaps(tc)
|
||||||
local boost = nodecore.underride({
|
local boost = nodecore.underride({
|
||||||
inventory_image = orig.inventory_image .. "^(" .. modname
|
inventory_image = orig.inventory_image .. "^(" .. modname
|
||||||
.. "_base.png^[mask:" .. modname
|
.. "_base.png^[mask:" .. modname
|
||||||
.. "_infuse_mask.png^[mask:nc_lode_" .. tshape
|
.. "_infuse_mask.png^[mask:nc_lode_" .. tshape
|
||||||
.. ".png^[opacity:120])",
|
.. ".png^[opacity:120])",
|
||||||
tool_capabilities = nodecore.toolcaps(tc),
|
tool_capabilities = boosttc,
|
||||||
glow = 2,
|
glow = 2,
|
||||||
light_source = 1
|
light_source = 1,
|
||||||
|
on_rake = def.on_rake and nodecore.lode_rake_function(boosttc)
|
||||||
}, def)
|
}, def)
|
||||||
|
|
||||||
boost.groups = nodecore.underride({lux_tool = 1, lux_emit = 2}, def.groups)
|
boost.groups = nodecore.underride({lux_tool = 1, lux_emit = 2}, def.groups)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user