FrameworkZ 4.4.2
Provides a framework for Project Zomboid with various systems.
Loading...
Searching...
No Matches
Utility.lua
Go to the documentation of this file.
1--! \brief Utility module for FrameworkZ. Contains utility functions and classes.
2--! \class FrameworkZ.Utility
3FrameworkZ.Utilities = {}
4FrameworkZ.Utilities.__index = FrameworkZ.Utilities
5FrameworkZ.Utilities = FrameworkZ.Foundation:NewModule(FrameworkZ.Utilities, "Utilities")
6
7--! \brief Copies a table.
8--! \param \table originalTable The table to copy.
9--! \param \table tableCopies (Internal) The table of copies used internally by the function.
10--! \return \table The copied table.
11function FrameworkZ.Utilities:CopyTable(originalTable, tableCopies)
12 tableCopies = tableCopies or {}
13
14 local originalType = type(originalTable)
15 local copy
16
17 if originalType == "table" then
18 if tableCopies[originalTable] then
19 copy = tableCopies[originalTable]
20 else
21 copy = {}
22 tableCopies[originalTable] = copy
23
24 for originalKey, originalValue in pairs(originalTable) do
25 copy[self:CopyTable(originalKey, tableCopies)] = self:CopyTable(originalValue, tableCopies)
26 end
27
28 setmetatable(copy, self:CopyTable(getmetatable(originalTable), tableCopies))
29 end
30 else -- number, string, boolean, etc
31 copy = originalTable
32 end
33
34 return copy
35end
void copy()
table CopyTable(originalTable, tableCopies)
Copies a table.
FrameworkZ global table.