19 lines
1.0 KiB
Lua
19 lines
1.0 KiB
Lua
--[[
|
|
Use the addon's private table as an isolated environment.
|
|
By using { __index = _G } metatable we're allowing all global lookups to transparently fallback to the game-wide
|
|
globals table, while the private table itself will act as a thin layer on top of the game-wide globals table,
|
|
allowing us to have our own global variables isolated from the rest of the game.
|
|
|
|
This accomplishes several goals:
|
|
1. Prevents addon-specific "globals" from leaking to game-wide global namespace _G
|
|
2. Optionally retains the ability to access these "globals" via the only exposed global variable "VoiceOver"
|
|
3. Allows us to make overrides for WoW API's global funtions and variables without actually touching
|
|
the real global namespace, making these overrides visible only to this addon.
|
|
This will be useful mainly for adding backwards-compatibility with older WoW clients.
|
|
|
|
setfenv(1, VoiceOver) must be added to every .lua file to allow it to work within this environment,
|
|
and this Environment file must be loaded before all others
|
|
]]
|
|
|
|
VoiceOver = setmetatable({}, { __index = _G })
|