From 4d483563f67cf1d45d570fe25fcc8252953804bf Mon Sep 17 00:00:00 2001 From: flux <25628292+fluxionary@users.noreply.github.com> Date: Wed, 26 Oct 2022 10:23:06 -0700 Subject: [PATCH] don't let explosions destroy sign entities --- display_api/display.lua | 24 ++++++++++++++++++------ signs/compatibility.lua | 8 +++++--- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/display_api/display.lua b/display_api/display.lua index fa7c854..ef34e60 100644 --- a/display_api/display.lua +++ b/display_api/display.lua @@ -81,9 +81,16 @@ end -- Detect rotation restriction local rotation_restricted = nil minetest.register_entity('display_api:dummy_entity', { - collisionbox = { 0, 0, 0, 0, 0, 0 }, - visual = "upright_sprite", - textures = {} }) + initial_properties = { + collisionbox = {0, 0, 0, 0, 0, 0}, + visual = "upright_sprite", + is_visible = false, + textures = {"blank.png"} + }, + on_blast = function(self, damage) + return false, false, {} + end, +}) function display_api.is_rotation_restricted() if rotation_restricted == nil then @@ -304,13 +311,18 @@ end function display_api.register_display_entity(entity_name) if not minetest.registered_entities[entity_name] then minetest.register_entity(':'..entity_name, { - collisionbox = { 0, 0, 0, 0, 0, 0 }, - visual = "upright_sprite", - textures = {}, + initial_properties = { + collisionbox = {0, 0, 0, 0, 0, 0}, + visual = "upright_sprite", + textures = {}, + }, on_activate = display_api.on_activate, get_staticdata = function(self) return minetest.serialize({ nodepos = self.nodepos }) end, + on_blast = function(self, damage) + return false, false, {} + end, }) end end diff --git a/signs/compatibility.lua b/signs/compatibility.lua index dea8750..aad6fdd 100644 --- a/signs/compatibility.lua +++ b/signs/compatibility.lua @@ -61,9 +61,11 @@ minetest.register_lbm({ name = "signs:conpatibility_1", -- We need to have this entity registered to be able to remove it. if minetest.registered_entities["signs:text"] == nil then minetest.register_entity("signs:text", { - collisionbox = { 0, 0, 0, 0, 0, 0 }, - visual = "upright_sprite", - textures = {}, + on_activate = function(self) + if self.object then + self.object:remove() + end + end }) end