This commit is contained in:
fluxionary 2022-10-26 19:40:20 +02:00 committed by GitHub
commit a7d43f2a9c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 40 additions and 9 deletions

View File

@ -81,9 +81,16 @@ end
-- Detect rotation restriction -- Detect rotation restriction
local rotation_restricted = nil local rotation_restricted = nil
minetest.register_entity('display_api:dummy_entity', { minetest.register_entity('display_api:dummy_entity', {
collisionbox = { 0, 0, 0, 0, 0, 0 }, initial_properties = {
visual = "upright_sprite", collisionbox = {0, 0, 0, 0, 0, 0},
textures = {} }) visual = "upright_sprite",
is_visible = false,
textures = {"blank.png"}
},
on_blast = function(self, damage)
return false, false, {}
end,
})
function display_api.is_rotation_restricted() function display_api.is_rotation_restricted()
if rotation_restricted == nil then if rotation_restricted == nil then
@ -282,6 +289,15 @@ function display_api.on_destruct(pos)
end end
end end
function display_api.on_blast(pos, intensity)
if not minetest.is_protected(pos, "tnt:blast") then
local node = minetest.get_node(pos)
local drops = minetest.get_node_drops(node, "tnt:blast")
minetest.remove_node(pos)
return drops
end
end
-- On_rotate (screwdriver) callback for display_api items. Prevents invalid -- On_rotate (screwdriver) callback for display_api items. Prevents invalid
-- rotations and reorients entities. -- rotations and reorients entities.
function display_api.on_rotate(pos, node, user, _, new_param2) function display_api.on_rotate(pos, node, user, _, new_param2)
@ -304,13 +320,18 @@ end
function display_api.register_display_entity(entity_name) function display_api.register_display_entity(entity_name)
if not minetest.registered_entities[entity_name] then if not minetest.registered_entities[entity_name] then
minetest.register_entity(':'..entity_name, { minetest.register_entity(':'..entity_name, {
collisionbox = { 0, 0, 0, 0, 0, 0 }, initial_properties = {
visual = "upright_sprite", collisionbox = {0, 0, 0, 0, 0, 0},
textures = {}, visual = "upright_sprite",
textures = {},
},
on_activate = display_api.on_activate, on_activate = display_api.on_activate,
get_staticdata = function(self) get_staticdata = function(self)
return minetest.serialize({ nodepos = self.nodepos }) return minetest.serialize({ nodepos = self.nodepos })
end, end,
on_blast = function(self, damage)
return false, false, {}
end,
}) })
end end
end end

View File

@ -48,6 +48,7 @@ minetest.register_node("ontime_clocks:green_digital", {
on_place = display_api.on_place, on_place = display_api.on_place,
on_construct = display_api.on_construct, on_construct = display_api.on_construct,
on_destruct = display_api.on_destruct, on_destruct = display_api.on_destruct,
on_blast = display_api.on_blast,
on_rotate = display_api.on_rotate, on_rotate = display_api.on_rotate,
}) })
@ -86,6 +87,7 @@ minetest.register_node("ontime_clocks:red_digital", {
on_place = display_api.on_place, on_place = display_api.on_place,
on_construct = display_api.on_construct, on_construct = display_api.on_construct,
on_destruct = display_api.on_destruct, on_destruct = display_api.on_destruct,
on_blast = display_api.on_blast,
on_rotate = display_api.on_rotate, on_rotate = display_api.on_rotate,
}) })
@ -124,6 +126,7 @@ minetest.register_node("ontime_clocks:white", {
on_place = display_api.on_place, on_place = display_api.on_place,
on_construct = display_api.on_construct, on_construct = display_api.on_construct,
on_destruct = display_api.on_destruct, on_destruct = display_api.on_destruct,
on_blast = display_api.on_blast,
on_rotate = display_api.on_rotate, on_rotate = display_api.on_rotate,
}) })
@ -161,6 +164,7 @@ minetest.register_node("ontime_clocks:frameless_black", {
on_place = display_api.on_place, on_place = display_api.on_place,
on_construct = display_api.on_construct, on_construct = display_api.on_construct,
on_destruct = display_api.on_destruct, on_destruct = display_api.on_destruct,
on_blast = display_api.on_blast,
on_rotate = display_api.on_rotate, on_rotate = display_api.on_rotate,
}) })
@ -198,6 +202,7 @@ minetest.register_node("ontime_clocks:frameless_gold", {
on_place = display_api.on_place, on_place = display_api.on_place,
on_construct = display_api.on_construct, on_construct = display_api.on_construct,
on_destruct = display_api.on_destruct, on_destruct = display_api.on_destruct,
on_blast = display_api.on_blast,
on_rotate = display_api.on_rotate, on_rotate = display_api.on_rotate,
}) })
@ -235,6 +240,7 @@ minetest.register_node("ontime_clocks:frameless_white", {
on_place = display_api.on_place, on_place = display_api.on_place,
on_construct = display_api.on_construct, on_construct = display_api.on_construct,
on_destruct = display_api.on_destruct, on_destruct = display_api.on_destruct,
on_blast = display_api.on_blast,
on_rotate = display_api.on_rotate, on_rotate = display_api.on_rotate,
}) })

View File

@ -61,9 +61,11 @@ minetest.register_lbm({ name = "signs:conpatibility_1",
-- We need to have this entity registered to be able to remove it. -- We need to have this entity registered to be able to remove it.
if minetest.registered_entities["signs:text"] == nil then if minetest.registered_entities["signs:text"] == nil then
minetest.register_entity("signs:text", { minetest.register_entity("signs:text", {
collisionbox = { 0, 0, 0, 0, 0, 0 }, on_activate = function(self)
visual = "upright_sprite", if self.object then
textures = {}, self.object:remove()
end
end
}) })
end end

View File

@ -218,6 +218,7 @@ function signs_api.register_sign(mod, name, model)
display_api.on_construct(pos) display_api.on_construct(pos)
end, end,
on_destruct = display_api.on_destruct, on_destruct = display_api.on_destruct,
on_blast = display_api.on_blast,
on_rotate = signs_api.on_rotate, on_rotate = signs_api.on_rotate,
on_receive_fields = signs_api.on_receive_fields, on_receive_fields = signs_api.on_receive_fields,
on_punch = function(pos, node, player, pointed_thing) on_punch = function(pos, node, player, pointed_thing)

View File

@ -74,6 +74,7 @@ for i, material in ipairs(steles.materials) do
display_api.on_construct(pos) display_api.on_construct(pos)
end, end,
on_destruct = display_api.on_destruct, on_destruct = display_api.on_destruct,
on_blast = display_api.on_blast,
on_rotate = display_api.on_rotate, on_rotate = display_api.on_rotate,
on_receive_fields = function(pos, formname, fields, player) on_receive_fields = function(pos, formname, fields, player)
if not minetest.is_protected(pos, player:get_player_name()) then if not minetest.is_protected(pos, player:get_player_name()) then