don't update object properties when not changed

Avoid calling object:set_properties every second, because it
generates AO_CMD_SET_PROPERTIES network packets without actual need.
This commit is contained in:
whosit 2024-01-31 11:11:58 +03:00
parent 7c7a7345af
commit 04bc5d9dc7
1 changed files with 9 additions and 2 deletions

11
api.lua
View File

@ -655,6 +655,9 @@ function mob_class:update_tag(newname)
local prop = self.object:get_properties()
local qua = prop.hp_max / 6
local old_nametag = prop.nametag
local old_nametag_color = minetest.colorspec_to_bytes(prop.nametag_color)
-- backwards compatibility
if self.nametag and self.nametag ~= "" then
newname = self.nametag
@ -680,7 +683,9 @@ function mob_class:update_tag(newname)
col = "#00FF00"
end
self.object:set_properties({nametag = self._nametag, nametag_color = col})
if self._nametag ~= old_nametag or minetest.colorspec_to_bytes(col) ~= old_nametag_color then
self.object:set_properties({nametag = self._nametag, nametag_color = col})
end
end
local text = ""
@ -709,7 +714,9 @@ function mob_class:update_tag(newname)
.. text
-- set infotext changes
self.object:set_properties({infotext = self.infotext})
if self.infotext ~= prop.infotext then
self.object:set_properties({infotext = self.infotext})
end
end