diff options
Diffstat (limited to 'ch_core/vgroups.lua')
-rw-r--r-- | ch_core/vgroups.lua | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/ch_core/vgroups.lua b/ch_core/vgroups.lua new file mode 100644 index 0000000..5b43fd8 --- /dev/null +++ b/ch_core/vgroups.lua @@ -0,0 +1,32 @@ +ch_core.open_submod("vgroups") + +local vgroups = {} +local private_vgroups = {} + +function ch_core.create_private_vgroup(vgroup, tbl) + if vgroups[vgroup] then + error("Vgroup "..vgroup.." demanded as private already exists!") + end + local result = tbl or {} + vgroups[vgroup] = result + private_vgroups[vgroup] = true + return result +end + +function ch_core.get_shared_vgroup(vgroup) + if private_vgroups[vgroup] then + error("Vgroup "..vgroup.." is private!") + end + local result = vgroups[vgroup] + if not result then + result = {} + vgroups[vgroup] = result + end + return result +end + +function ch_core.try_read_vgroup(vgroup) + return vgroups[vgroup] +end + +ch_core.close_submod("vgroups") |