Don't destroy thistle in thistle node

This commit is contained in:
Wuzzy 2022-05-21 23:28:49 +02:00
parent d34f569ec6
commit e76a076289
3 changed files with 14 additions and 9 deletions

View File

@ -11,6 +11,7 @@ This is the list of all groups used for items. Note: If no number/rating is spec
* `not_in_creative_inventory`: Item won't show up in Creative Inventory
* `not_in_craft_guide`: Item won't show up in crafting guide
* `no_item_drop`: This item can't exist as a dropped item on the ground. When dropping it, it is deleted instantly
* `immortal_item`: In entity form, this item withstands damage and won't be destroyed by nodes that deal damage
### Tools
* `axe`: Axe

View File

@ -144,15 +144,19 @@ minetest.register_entity(
local nodename = minetest.get_node(itempos).name
local def = minetest.registered_nodes[nodename]
-- Destroy item in damaging node
-- Destroy item in damaging node (unless it has 'immortal_item' group set
if def and def.damage_per_second > 0 then
if minetest.get_item_group(nodename, "lava") ~= 0 or minetest.get_item_group(nodename, "fire") ~= 0 then
minetest.sound_play("builtin_item_lava", {pos = itempos, gain = 0.45})
end
add_item_death_particle(self)
minetest.log("action", "[rp_builtin_item] Item entity destroyed in damaging node at "..minetest.pos_to_string(itempos))
self.object:remove()
return
if minetest.get_item_group(ItemStack(self.itemstring):get_name(), "immortal_item") == 0 then
if minetest.get_item_group(nodename, "lava") ~= 0 or minetest.get_item_group(nodename, "fire") ~= 0 then
minetest.sound_play("builtin_item_lava", {pos = itempos, gain = 0.45})
end
add_item_death_particle(self)
minetest.log("action", "[rp_builtin_item] Item entity destroyed in damaging node at "..minetest.pos_to_string(itempos))
self.object:remove()
return
end
end
-- Item magnet: Attract item to closest living player

View File

@ -1037,7 +1037,7 @@ minetest.register_node(
walkable = false,
floodable = true,
damage_per_second = 1,
groups = {snappy = 3, dig_immediate = 3, falling_node = 1, plant = 1},
groups = {snappy = 3, dig_immediate = 3, falling_node = 1, plant = 1, immortal_item = 1},
sounds = rp_sounds.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger)
util.dig_up(pos, node, digger)