summaryrefslogtreecommitdiff
path: root/src/02-enum/enum.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/02-enum/enum.lua')
-rw-r--r--src/02-enum/enum.lua26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/02-enum/enum.lua b/src/02-enum/enum.lua
new file mode 100644
index 0000000..9c64c1f
--- /dev/null
+++ b/src/02-enum/enum.lua
@@ -0,0 +1,26 @@
+local function makeEnum(enumtable)
+ if enumtable == nil or type(enumtable) ~= "table" then
+ return nil
+ end
+ enumtable.__index = enumtable
+ enumtable.__newindex = function()
+ print("can not modify enum")
+ end
+ local e = {}
+ setmetatable(e, enumtable)
+ return e
+end
+
+local function main()
+ local mode = makeEnum({
+ SinglePlayer = 1,
+ TwoPlayers= 2,
+ ThreePlayers= 3,
+ FourPlayers= 4,
+ PVCom= 5,
+ })
+ mode.SinglePlayer = 2
+ print(mode.SinglePlayer)
+end
+
+main() \ No newline at end of file