From 7c3afd699cda81b464731395824d8dc010a0c9f9 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Wed, 1 Jan 2020 18:06:03 +0100 Subject: [PATCH] Localize the `vector.distance` function for performance --- CHANGELOG.md | 4 ++++ init.lua | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 855f54d..5c75c48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +### Changed + +- Improve performance by localizing the `vector.distance()` function. + ## 1.0.0 - 2020-01-01 - Initial versioned release. diff --git a/init.lua b/init.lua index f8be2c1..98c76d6 100644 --- a/init.lua +++ b/init.lua @@ -7,6 +7,10 @@ if minetest.settings:get_bool("health_bars") == false or not minetest.settings:get_bool("enable_damage") then return end +-- Localize the vector distance function for better performance, as it's called +-- on every step +local vector_distance = vector.distance + minetest.register_entity("gauges:hp_bar", { visual = "sprite", visual_size = {x=1, y=1/16, z=1}, @@ -20,7 +24,7 @@ minetest.register_entity("gauges:hp_bar", { if not player or not minetest.is_player(player) or - vector.distance(player:get_pos(), self.object:get_pos()) > 3 + vector_distance(player:get_pos(), self.object:get_pos()) > 3 then self.object:remove() return