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
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
@ -282,6 +289,15 @@ function display_api.on_destruct(pos)
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
-- rotations and reorients entities.
function display_api.on_rotate(pos, node, user, _, new_param2)
@ -304,13 +320,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

View File

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

View File

@ -218,6 +218,7 @@ function signs_api.register_sign(mod, name, model)
display_api.on_construct(pos)
end,
on_destruct = display_api.on_destruct,
on_blast = display_api.on_blast,
on_rotate = signs_api.on_rotate,
on_receive_fields = signs_api.on_receive_fields,
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)
end,
on_destruct = display_api.on_destruct,
on_blast = display_api.on_blast,
on_rotate = display_api.on_rotate,
on_receive_fields = function(pos, formname, fields, player)
if not minetest.is_protected(pos, player:get_player_name()) then