Generalize item destruction logic
This commit is contained in:
parent
afb186996e
commit
73cdd17a7c
1
API.md
1
API.md
|
@ -22,6 +22,7 @@ This section explains all the used groups in this subgame.
|
||||||
* `soil_sugarcane=1`: Sugar canes will grow on this near water
|
* `soil_sugarcane=1`: Sugar canes will grow on this near water
|
||||||
* `soil_nether_wart=1`: Nether wart will grow on this
|
* `soil_nether_wart=1`: Nether wart will grow on this
|
||||||
* `disable_suffocation=1`: Disables suffocation for full solid cubes (1)
|
* `disable_suffocation=1`: Disables suffocation for full solid cubes (1)
|
||||||
|
* `destroys_items=1`: If an item happens to be *inside* this node, the item will be destroyed
|
||||||
|
|
||||||
#### Footnotes
|
#### Footnotes
|
||||||
|
|
||||||
|
|
|
@ -1198,7 +1198,7 @@ minetest.register_node("mcl_core:lava_flowing", {
|
||||||
liquid_range = 4,
|
liquid_range = 4,
|
||||||
damage_per_second = 4*2,
|
damage_per_second = 4*2,
|
||||||
post_effect_color = {a=192, r=255, g=64, b=0},
|
post_effect_color = {a=192, r=255, g=64, b=0},
|
||||||
groups = {lava=3, liquid=2, igniter=3, not_in_creative_inventory=1},
|
groups = {lava=3, liquid=2, igniter=3, destroys_items=1, not_in_creative_inventory=1},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("mcl_core:lava_source", {
|
minetest.register_node("mcl_core:lava_source", {
|
||||||
|
@ -1234,7 +1234,7 @@ minetest.register_node("mcl_core:lava_source", {
|
||||||
damage_per_second = 4*2,
|
damage_per_second = 4*2,
|
||||||
post_effect_color = {a=192, r=255, g=64, b=0},
|
post_effect_color = {a=192, r=255, g=64, b=0},
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {lava=3, liquid=2, igniter=3, not_in_creative_inventory=1},
|
groups = {lava=3, liquid=2, igniter=3, destroys_items=1, not_in_creative_inventory=1},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("mcl_core:cobble", {
|
minetest.register_node("mcl_core:cobble", {
|
||||||
|
|
|
@ -361,10 +361,14 @@ core.register_entity(":__builtin:item", {
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Destroy item in lava and other igniters
|
-- Destroy item in lava or special nodes
|
||||||
local nn = node.name
|
local nn = node.name
|
||||||
if (minetest.registered_nodes[nn] and minetest.registered_nodes[nn].damage_per_second > 0) or nn == "maptools:igniter" then
|
local def = minetest.registered_nodes[nn]
|
||||||
minetest.sound_play("builtin_item_lava", {pos = self.object:getpos(), gain = 0.5})
|
if (def and def.groups and (def.groups.lava or def.groups.destroys_items == 1)) then
|
||||||
|
-- Special effect for lava
|
||||||
|
if def.groups.lava then
|
||||||
|
minetest.sound_play("builtin_item_lava", {pos = self.object:getpos(), gain = 0.5})
|
||||||
|
end
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user