diff options
author | ShadowNinja <shadowninja@minetest.net> | 2013-11-18 17:57:32 -0500 |
---|---|---|
committer | ShadowNinja <shadowninja@minetest.net> | 2013-11-18 17:57:32 -0500 |
commit | f98312fe10b168eb4ba40c567075661e2f0060bf (patch) | |
tree | ee8c11d95fe366d19d1dfd6008195cef907df368 | |
parent | 810a706e5fb54b43f3349504c33b26e672f9a8af (diff) |
Optimize area and index finding
-rw-r--r-- | internal.lua | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/internal.lua b/internal.lua index 3c4212b..e57cfd8 100644 --- a/internal.lua +++ b/internal.lua @@ -158,16 +158,20 @@ end -- Returns a area given it's identifier function areas:getAreaById(id) - for _, area in pairs(self.areas) do - if area.id == id then return area end + if not self.areas[id] then + return nil end + assert(self.areas[id].id == id) + return self.areas[id] end -- Returns a table index for an area given it's identifier function areas:getIndexById(id) - for i, area in pairs(self.areas) do - if area.id == id then return i end + if not self.areas[id] then + return nil end + assert(self.areas[id].id == id) + return id end -- Re-order areas in table by their identifiers |