forked from VoxeLibre/VoxeLibre
Leverage recursive-merge to reduce nodebox overrides.
Replace member() with table_find().
This commit is contained in:
parent
b3797ce5de
commit
47ca9e76b7
|
@ -119,25 +119,15 @@ function mcl_cauldrons.empty_cauldron_on_drain(node, change_levels, substance)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- test for membership in list (styled after R7RS)
|
-- test for membership in list
|
||||||
local function member(obj, lis)
|
-- may be replaced with find(table, obj) -> any or nil
|
||||||
for i, v in ipairs(lis) do
|
local function table_find(tbl, obj)
|
||||||
if v == obj then return true end
|
for k, v in pairs(lis) do
|
||||||
|
if v == obj then return k end
|
||||||
end
|
end
|
||||||
return false
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- helper function to imply class-inheritance relation.
|
|
||||||
local function extends(parent_class, child_class)
|
|
||||||
if child_class == nil then child_class = {} end
|
|
||||||
child_class.__index = parent_class
|
|
||||||
setmetatable(child_class, child_class)
|
|
||||||
return child_class
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- Items that may interact with cauldron (right-click on cauldron).
|
-- Items that may interact with cauldron (right-click on cauldron).
|
||||||
-- * May change cauldron state (substance+fill_level; fill/drain)
|
-- * May change cauldron state (substance+fill_level; fill/drain)
|
||||||
-- * May change itemstack in hand (exchanging items for cauldron change).
|
-- * May change itemstack in hand (exchanging items for cauldron change).
|
||||||
|
@ -152,7 +142,7 @@ mcl_cauldrons.InteractableItem = {
|
||||||
return child
|
return child
|
||||||
end,
|
end,
|
||||||
add_item_proxy = function(self, item_proxy)
|
add_item_proxy = function(self, item_proxy)
|
||||||
if not member(item_proxy, self.handlers) then
|
if not table_find(self.handler, item_proxy) then
|
||||||
-- instantiate prototype for sake of .parent
|
-- instantiate prototype for sake of .parent
|
||||||
instantiated = {
|
instantiated = {
|
||||||
__index = item_proxy,
|
__index = item_proxy,
|
||||||
|
@ -424,7 +414,7 @@ function mcl_cauldrons.BannerProxy:_accepts_itemstack(itemstack)
|
||||||
if string.sub(itemstack:get_name(), 1, 12) == "mcl_banners:" then
|
if string.sub(itemstack:get_name(), 1, 12) == "mcl_banners:" then
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
return member(itemstack:get_name(), {"mcl_banners:placeholder_banner"})
|
return table_find({"mcl_banners:placeholder_banner"}, itemstack:get_name())
|
||||||
end
|
end
|
||||||
|
|
||||||
function mcl_cauldrons.BannerProxy:do_apply(pos, node, user, itemstack)
|
function mcl_cauldrons.BannerProxy:do_apply(pos, node, user, itemstack)
|
||||||
|
@ -448,7 +438,7 @@ mcl_cauldrons.Cauldron = {
|
||||||
}
|
}
|
||||||
|
|
||||||
function mcl_cauldrons.Cauldron:add_item_proxy(proxy)
|
function mcl_cauldrons.Cauldron:add_item_proxy(proxy)
|
||||||
if not member(proxy, self.registered_proxies) then
|
if not table_find(self.registered_proxies, proxy) then
|
||||||
-- insert at front so newer proxies override older ones.
|
-- insert at front so newer proxies override older ones.
|
||||||
table.insert(self.registered_proxies, 1, proxy)
|
table.insert(self.registered_proxies, 1, proxy)
|
||||||
end
|
end
|
||||||
|
@ -575,9 +565,7 @@ mcl_cauldrons.register_cauldron_node("mcl_cauldrons:cauldron_water_1",
|
||||||
node_box = mcl_cauldrons.cauldron_nodeboxes[1],
|
node_box = mcl_cauldrons.cauldron_nodeboxes[1],
|
||||||
collision_box = mcl_cauldrons.cauldron_nodeboxes[0],
|
collision_box = mcl_cauldrons.cauldron_nodeboxes[0],
|
||||||
tiles = {
|
tiles = {
|
||||||
"(default_water_source_animated.png^[verticalframe:16:0"..")^mcl_cauldrons_cauldron_top.png",
|
[1]="(default_water_source_animated.png^[verticalframe:16:0)^mcl_cauldrons_cauldron_top.png",
|
||||||
"mcl_cauldrons_cauldron_inner.png^mcl_cauldrons_cauldron_bottom.png",
|
|
||||||
"mcl_cauldrons_cauldron_side.png"
|
|
||||||
},
|
},
|
||||||
drop = "mcl_cauldrons:cauldron",
|
drop = "mcl_cauldrons:cauldron",
|
||||||
_mcl_cauldron_substance = "water",
|
_mcl_cauldron_substance = "water",
|
||||||
|
@ -617,9 +605,7 @@ if minetest.get_modpath("mclx_core") then
|
||||||
node_box = mcl_cauldrons.cauldron_nodeboxes[1],
|
node_box = mcl_cauldrons.cauldron_nodeboxes[1],
|
||||||
collision_box = mcl_cauldrons.cauldron_nodeboxes[0],
|
collision_box = mcl_cauldrons.cauldron_nodeboxes[0],
|
||||||
tiles = {
|
tiles = {
|
||||||
"(default_river_water_source_animated.png^[verticalframe:16:0"..")^mcl_cauldrons_cauldron_top.png",
|
[1]="(default_river_water_source_animated.png^[verticalframe:16:0)^mcl_cauldrons_cauldron_top.png",
|
||||||
"mcl_cauldrons_cauldron_inner.png^mcl_cauldrons_cauldron_bottom.png",
|
|
||||||
"mcl_cauldrons_cauldron_side.png"
|
|
||||||
},
|
},
|
||||||
drop = "mcl_cauldrons:cauldron",
|
drop = "mcl_cauldrons:cauldron",
|
||||||
_mcl_cauldron_substance = "river_water",
|
_mcl_cauldron_substance = "river_water",
|
||||||
|
|
Loading…
Reference in New Issue