From 8d745e3e6ba676515bc851df1e402ed267451d9e Mon Sep 17 00:00:00 2001 From: EvilFactory Date: Thu, 16 Feb 2023 13:51:35 -0300 Subject: [PATCH] Improved docs: Enums are now automatically generated --- luacs-docs/lua/lua/enums/CauseOfDeathType.lua | 39 ------- luacs-docs/lua/lua/enums/ChatMessageType.lua | 64 ---------- .../lua/lua/enums/ClientPermissions.lua | 105 ----------------- luacs-docs/lua/lua/enums/DisconnectReason.lua | 109 ------------------ luacs-docs/lua/lua/enums/InvSlotType.lua | 59 ---------- luacs-docs/lua/lua/enums/LimbType.lua | 100 ---------------- luacs-docs/lua/lua/enums/RandSync.lua | 19 --- .../lua/lua/enums/ServerLogMessageType.lua | 64 ---------- luacs-docs/lua/lua/enums/SpawnType.lua | 29 ----- .../scripts/LuaDocsGenerator/DocsGenerator.cs | 28 +++++ .../lua/scripts/LuaDocsGenerator/Program.cs | 17 +++ 11 files changed, 45 insertions(+), 588 deletions(-) delete mode 100644 luacs-docs/lua/lua/enums/CauseOfDeathType.lua delete mode 100644 luacs-docs/lua/lua/enums/ChatMessageType.lua delete mode 100644 luacs-docs/lua/lua/enums/ClientPermissions.lua delete mode 100644 luacs-docs/lua/lua/enums/DisconnectReason.lua delete mode 100644 luacs-docs/lua/lua/enums/InvSlotType.lua delete mode 100644 luacs-docs/lua/lua/enums/LimbType.lua delete mode 100644 luacs-docs/lua/lua/enums/RandSync.lua delete mode 100644 luacs-docs/lua/lua/enums/ServerLogMessageType.lua delete mode 100644 luacs-docs/lua/lua/enums/SpawnType.lua diff --git a/luacs-docs/lua/lua/enums/CauseOfDeathType.lua b/luacs-docs/lua/lua/enums/CauseOfDeathType.lua deleted file mode 100644 index a564a6513..000000000 --- a/luacs-docs/lua/lua/enums/CauseOfDeathType.lua +++ /dev/null @@ -1,39 +0,0 @@ ---[[-- -CauseOfDeathType enum. -]] --- @enum CauseOfDeathType - ---- --- CauseOfDeathType.Unknown = 0 --- @realm shared --- @number CauseOfDeathType.Unknown - ---- --- CauseOfDeathType.Pressure = 1 --- @realm shared --- @number CauseOfDeathType.Pressure - ---- --- CauseOfDeathType.Suffocation = 2 --- @realm shared --- @number CauseOfDeathType.Suffocation - ---- --- CauseOfDeathType.Drowning = 3 --- @realm shared --- @number CauseOfDeathType.Drowning - ---- --- CauseOfDeathType.Drowning = 3 --- @realm shared --- @number CauseOfDeathType.Drowning - ---- --- CauseOfDeathType.Affliction = 4 --- @realm shared --- @number CauseOfDeathType.Affliction - ---- --- CauseOfDeathType.Disconnected = 5 --- @realm shared --- @number CauseOfDeathType.Disconnected \ No newline at end of file diff --git a/luacs-docs/lua/lua/enums/ChatMessageType.lua b/luacs-docs/lua/lua/enums/ChatMessageType.lua deleted file mode 100644 index d3ecf307a..000000000 --- a/luacs-docs/lua/lua/enums/ChatMessageType.lua +++ /dev/null @@ -1,64 +0,0 @@ ---[[-- -ChatMessageType enum. -]] --- @enum ChatMessageType - ---- --- ChatMessageType.Default = 0 --- @realm shared --- @number ChatMessageType.Default - ---- --- ChatMessageType.Error = 1 --- @realm shared --- @number ChatMessageType.Error - ---- --- ChatMessageType.Dead = 2 --- @realm shared --- @number ChatMessageType.Dead - ---- --- ChatMessageType.Server = 3 --- @realm shared --- @number ChatMessageType.Server - ---- --- ChatMessageType.Radio = 4 --- @realm shared --- @number ChatMessageType.Radio - ---- --- ChatMessageType.Private = 5 --- @realm shared --- @number ChatMessageType.Private - ---- --- ChatMessageType.Console = 6 --- @realm shared --- @number ChatMessageType.Console - ---- --- ChatMessageType.MessageBox = 7 --- @realm shared --- @number ChatMessageType.MessageBox - ---- --- ChatMessageType.Order = 8 --- @realm shared --- @number ChatMessageType.Order - ---- --- ChatMessageType.ServerLog = 9 --- @realm shared --- @number ChatMessageType.ServerLog - ---- --- ChatMessageType.ServerMessageBox = 10 --- @realm shared --- @number ChatMessageType.ServerMessageBox - ---- --- ChatMessageType.ServerMessageBoxInGame = 11 --- @realm shared --- @number ChatMessageType.ServerMessageBoxInGame diff --git a/luacs-docs/lua/lua/enums/ClientPermissions.lua b/luacs-docs/lua/lua/enums/ClientPermissions.lua deleted file mode 100644 index 2726e137b..000000000 --- a/luacs-docs/lua/lua/enums/ClientPermissions.lua +++ /dev/null @@ -1,105 +0,0 @@ ---[[-- -ClientPermissions enum. -]] --- @enum ClientPermissions - ---- --- ClientPermissions.None = 0x0 --- @realm shared --- @number ClientPermissions.None - - ---- --- ClientPermissions.None = 0x0 --- @realm shared --- @number ClientPermissions.None - ---- --- ClientPermissions.ManageRound = 0x1 --- @realm shared --- @number ClientPermissions.ManageRound - ---- --- ClientPermissions.Kick = 0x2 --- @realm shared --- @number ClientPermissions.Kick - ---- --- ClientPermissions.Ban = 0x4 --- @realm shared --- @number ClientPermissions.Ban - ---- --- ClientPermissions.Unban = 0x8 --- @realm shared --- @number ClientPermissions.Unban - ---- --- ClientPermissions.SelectSub = 0x10 --- @realm shared --- @number ClientPermissions.SelectSub - ---- --- ClientPermissions.SelectMode = 0x20 --- @realm shared --- @number ClientPermissions.SelectMode - ---- --- ClientPermissions.ManageCampaign = 0x40 --- @realm shared --- @number ClientPermissions.ManageCampaign - ---- --- ClientPermissions.ConsoleCommands = 0x80 --- @realm shared --- @number ClientPermissions.ConsoleCommands - ---- --- ClientPermissions.ServerLog = 0x100 --- @realm shared --- @number ClientPermissions.ServerLog - ---- --- ClientPermissions.ManageSettings = 0x200 --- @realm shared --- @number ClientPermissions.ManageSettings - ---- --- ClientPermissions.ManagePermissions = 0x400 --- @realm shared --- @number ClientPermissions.ManagePermissions - ---- --- ClientPermissions.KarmaImmunity = 0x800 --- @realm shared --- @number ClientPermissions.KarmaImmunity - ---- --- ClientPermissions.ManageMoney = 0x1000 --- @realm shared --- @number ClientPermissions.ManageMoney - ---- --- ClientPermissions.SellInventoryItems = 0x2000 --- @realm shared --- @number ClientPermissions.SellInventoryItems - ---- --- ClientPermissions.SellSubItems = 0x4000 --- @realm shared --- @number ClientPermissions.SellSubItems - ---- --- ClientPermissions.ManageMap = 0x8000 --- @realm shared --- @number ClientPermissions.ManageMap - ---- --- ClientPermissions.ManageHires = 0x10000 --- @realm shared --- @number ClientPermissions.ManageHires - ---- --- ClientPermissions.All = 0x1FFF --- @realm shared --- @number ClientPermissions.All \ No newline at end of file diff --git a/luacs-docs/lua/lua/enums/DisconnectReason.lua b/luacs-docs/lua/lua/enums/DisconnectReason.lua deleted file mode 100644 index a1f8a7071..000000000 --- a/luacs-docs/lua/lua/enums/DisconnectReason.lua +++ /dev/null @@ -1,109 +0,0 @@ ---[[-- -DisconnectReason enum. -]] --- @enum DisconnectReason - ---- --- DisconnectReason.Unknown = 0 --- @realm shared --- @number DisconnectReason.Unknown - ---- --- DisconnectReason.Banned = 1 --- @realm shared --- @number DisconnectReason.Banned - ---- --- DisconnectReason.Kicked = 2 --- @realm shared --- @number DisconnectReason.Kicked - ---- --- DisconnectReason.ServerShutdown = 3 --- @realm shared --- @number DisconnectReason.ServerShutdown - ---- --- DisconnectReason.ServerCrashed = 4 --- @realm shared --- @number DisconnectReason.ServerCrashed - ---- --- DisconnectReason.ServerFull = 5 --- @realm shared --- @number DisconnectReason.ServerFull - ---- --- DisconnectReason.AuthenticationRequired = 6 --- @realm shared --- @number DisconnectReason.AuthenticationRequired - ---- --- DisconnectReason.SteamAuthenticationRequired = 7 --- @realm shared --- @number DisconnectReason.SteamAuthenticationRequired - ---- --- DisconnectReason.SteamAuthenticationFailed = 8 --- @realm shared --- @number DisconnectReason.SteamAuthenticationFailed - ---- --- DisconnectReason.SessionTaken = 9 --- @realm shared --- @number DisconnectReason.SessionTaken - ---- --- DisconnectReason.TooManyFailedLogins = 10 --- @realm shared --- @number DisconnectReason.TooManyFailedLogins - ---- --- DisconnectReason.NoName = 11 --- @realm shared --- @number DisconnectReason.NoName - ---- --- DisconnectReason.InvalidName = 12 --- @realm shared --- @number DisconnectReason.InvalidName - ---- --- DisconnectReason.NameTaken = 13 --- @realm shared --- @number DisconnectReason.NameTaken - ---- --- DisconnectReason.InvalidVersion = 14 --- @realm shared --- @number DisconnectReason.InvalidVersion - ---- --- DisconnectReason.MissingContentPackage = 15 --- @realm shared --- @number DisconnectReason.MissingContentPackage - ---- --- DisconnectReason.IncompatibleContentPackage = 16 --- @realm shared --- @number DisconnectReason.IncompatibleContentPackage - ---- --- DisconnectReason.NotOnWhitelist = 17 --- @realm shared --- @number DisconnectReason.NotOnWhitelist - ---- --- DisconnectReason.ExcessiveDesyncOldEvent = 18 --- @realm shared --- @number DisconnectReason.ExcessiveDesyncOldEvent - ---- --- DisconnectReason.ExcessiveDesyncRemovedEvent = 19 --- @realm shared --- @number DisconnectReason.ExcessiveDesyncRemovedEvent - ---- --- DisconnectReason.SyncTimeout = 20 --- @realm shared --- @number DisconnectReason.SyncTimeout \ No newline at end of file diff --git a/luacs-docs/lua/lua/enums/InvSlotType.lua b/luacs-docs/lua/lua/enums/InvSlotType.lua deleted file mode 100644 index ad600c888..000000000 --- a/luacs-docs/lua/lua/enums/InvSlotType.lua +++ /dev/null @@ -1,59 +0,0 @@ ---[[-- -InvSlotType enum. -]] --- @enum InvSlotType - ---- --- InvSlotType.None = 0 --- @realm shared --- @number InvSlotType.None - ---- --- InvSlotType.Any = 1 --- @realm shared --- @number InvSlotType.Any - ---- --- InvSlotType.RightHand = 2 --- @realm shared --- @number InvSlotType.RightHand - ---- --- InvSlotType.LeftHand = 4 --- @realm shared --- @number InvSlotType.LeftHand - ---- --- InvSlotType.Head = 8 --- @realm shared --- @number InvSlotType.Head - ---- --- InvSlotType.InnerClothes = 16 --- @realm shared --- @number InvSlotType.InnerClothes - ---- --- InvSlotType.OuterClothes = 32 --- @realm shared --- @number InvSlotType.OuterClothes - ---- --- InvSlotType.Headset = 64 --- @realm shared --- @number InvSlotType.Headset - ---- --- InvSlotType.Card = 128 --- @realm shared --- @number InvSlotType.Card - ---- --- InvSlotType.Bag = 256 --- @realm shared --- @number InvSlotType.Bag - ---- --- InvSlotType.HealthInterface = 512 --- @realm shared --- @number InvSlotType.HealthInterface \ No newline at end of file diff --git a/luacs-docs/lua/lua/enums/LimbType.lua b/luacs-docs/lua/lua/enums/LimbType.lua deleted file mode 100644 index ec1f5a238..000000000 --- a/luacs-docs/lua/lua/enums/LimbType.lua +++ /dev/null @@ -1,100 +0,0 @@ ---[[-- -LimbType enum. -]] --- @enum LimbType - - ---- --- LimbType.None = 0 --- @realm shared --- @number LimbType.None - ---- --- LimbType.LeftHand = 1 --- @realm shared --- @number LimbType.LeftHand - ---- --- LimbType.RightHand = 2 --- @realm shared --- @number LimbType.RightHand - ---- --- LimbType.LeftArm = 3 --- @realm shared --- @number LimbType.LeftArm - ---- --- LimbType.RightArm = 4 --- @realm shared --- @number LimbType.RightArm - ---- --- LimbType.LeftForearm = 5 --- @realm shared --- @number LimbType.LeftForearm - ---- --- LimbType.RightForearm = 6 --- @realm shared --- @number LimbType.RightForearm - ---- --- LimbType.LeftLeg = 7 --- @realm shared --- @number LimbType.LeftLeg - ---- --- LimbType.RightLeg = 8 --- @realm shared --- @number LimbType.RightLeg - ---- --- LimbType.LeftFoot = 9 --- @realm shared --- @number LimbType.LeftFoot - ---- --- LimbType.RightFoot = 10 --- @realm shared --- @number LimbType.RightFoot - ---- --- LimbType.Head = 11 --- @realm shared --- @number LimbType.Head - ---- --- LimbType.Torso = 12 --- @realm shared --- @number LimbType.Torso - ---- --- LimbType.Tail = 13 --- @realm shared --- @number LimbType.Tail - ---- --- LimbType.Legs = 14 --- @realm shared --- @number LimbType.Legs - ---- --- LimbType.RightThigh = 15 --- @realm shared --- @number LimbType.RightThigh - ---- --- LimbType.LeftThigh = 16 --- @realm shared --- @number LimbType.LeftThigh - ---- --- LimbType.Waist = 17 --- @realm shared --- @number LimbType.Waist - ---- --- LimbType.Jaw = 18 --- @realm shared --- @number LimbType.Jaw diff --git a/luacs-docs/lua/lua/enums/RandSync.lua b/luacs-docs/lua/lua/enums/RandSync.lua deleted file mode 100644 index 4857b09a7..000000000 --- a/luacs-docs/lua/lua/enums/RandSync.lua +++ /dev/null @@ -1,19 +0,0 @@ ---[[-- -RandSync enum. -]] --- @enum RandSync - ---- --- RandSync.Unsynced = -1 --- @realm shared --- @number RandSync.Unsynced - ---- --- RandSync.Server = 0 --- @realm shared --- @number RandSync.Server - ---- --- RandSync.ClientOnly = 1 --- @realm shared --- @number RandSync.ClientOnly \ No newline at end of file diff --git a/luacs-docs/lua/lua/enums/ServerLogMessageType.lua b/luacs-docs/lua/lua/enums/ServerLogMessageType.lua deleted file mode 100644 index 49d7eb1f1..000000000 --- a/luacs-docs/lua/lua/enums/ServerLogMessageType.lua +++ /dev/null @@ -1,64 +0,0 @@ ---[[-- -ServerLogMessageType enum. -]] --- @enum ServerLogMessageType - ---- --- ServerLogMessageType.Chat = 0 --- @realm shared --- @number ServerLogMessageType.Chat - ---- --- ServerLogMessageType.ItemInteraction = 1 --- @realm shared --- @number ServerLogMessageType.ItemInteraction - ---- --- ServerLogMessageType.Inventory = 2 --- @realm shared --- @number ServerLogMessageType.Inventory - ---- --- ServerLogMessageType.Attack = 3 --- @realm shared --- @number ServerLogMessageType.Attack - ---- --- ServerLogMessageType.Spawning = 4 --- @realm shared --- @number ServerLogMessageType.Spawning - ---- --- ServerLogMessageType.Wiring = 5 --- @realm shared --- @number ServerLogMessageType.Wiring - ---- --- ServerLogMessageType.ServerMessage = 6 --- @realm shared --- @number ServerLogMessageType.ServerMessage - ---- --- ServerLogMessageType.ConsoleUsage = 7 --- @realm shared --- @number ServerLogMessageType.ConsoleUsage - ---- --- ServerLogMessageType.Money = 8 --- @realm shared --- @number ServerLogMessageType.Money - ---- --- ServerLogMessageType.Karma = 9 --- @realm shared --- @number ServerLogMessageType.Karma - ---- --- ServerLogMessageType.Talent = 10 --- @realm shared --- @number ServerLogMessageType.Talent - ---- --- ServerLogMessageType.Error = 11 --- @realm shared --- @number ServerLogMessageType.Error \ No newline at end of file diff --git a/luacs-docs/lua/lua/enums/SpawnType.lua b/luacs-docs/lua/lua/enums/SpawnType.lua deleted file mode 100644 index 9722054ee..000000000 --- a/luacs-docs/lua/lua/enums/SpawnType.lua +++ /dev/null @@ -1,29 +0,0 @@ ---[[-- -SpawnType enum. -]] --- @enum SpawnType - ---- --- SpawnType.Path = 0 --- @realm shared --- @number SpawnType.Path - ---- --- SpawnType.Human = 1 --- @realm shared --- @number SpawnType.Human - ---- --- SpawnType.Enemy = 2 --- @realm shared --- @number SpawnType.Enemy - ---- --- SpawnType.Cargo = 4 --- @realm shared --- @number SpawnType.Cargo - ---- --- SpawnType.Corpse = 8 --- @realm shared --- @number SpawnType.Corpse \ No newline at end of file diff --git a/luacs-docs/lua/scripts/LuaDocsGenerator/DocsGenerator.cs b/luacs-docs/lua/scripts/LuaDocsGenerator/DocsGenerator.cs index 3f7993988..0ac2d61ad 100644 --- a/luacs-docs/lua/scripts/LuaDocsGenerator/DocsGenerator.cs +++ b/luacs-docs/lua/scripts/LuaDocsGenerator/DocsGenerator.cs @@ -528,6 +528,34 @@ local {type.Name} = {{}}".ReplaceLineEndings("\n"); File.WriteAllText(outFile, sb.ToString()); } + public static void GenerateEnum(Type enumType, string outFile, string realm = "shared") + { + StringBuilder sb = new StringBuilder(); + + sb.AppendLine($@"--[[-- +{enumType.Name} enum. +]] +-- @enum {enumType.Name}"); + + sb.AppendLine(); + + FieldInfo[] fields = enumType.GetFields(); + + for (int i = 0; i < fields.Length; i++) + { + if (fields[i].Name.Equals("value__")) { continue; } + + sb.AppendLine("---"); + sb.AppendLine($"-- {enumType.Name}.{fields[i].Name} = {fields[i].GetRawConstantValue()}"); + sb.AppendLine($"-- @realm {realm}"); + sb.AppendLine($"-- @number {enumType.Name}.{fields[i].Name}"); + sb.AppendLine(); + } + + new FileInfo(outFile).Directory.Create(); + File.WriteAllText(outFile, sb.ToString()); + } + public static void GenerateDocs(Type clientType, Type serverType, string baseFile, string outFile, string? categoryName = null) { categoryName ??= clientType.Name; diff --git a/luacs-docs/lua/scripts/LuaDocsGenerator/Program.cs b/luacs-docs/lua/scripts/LuaDocsGenerator/Program.cs index 4a1bb92ce..1f65faa5a 100644 --- a/luacs-docs/lua/scripts/LuaDocsGenerator/Program.cs +++ b/luacs-docs/lua/scripts/LuaDocsGenerator/Program.cs @@ -24,6 +24,11 @@ namespace LuaDocsGenerator { DocsGenerator.GenerateDocs(clientType, serverType, $"{baseLuaDir}/{file}", $"{generatedDir}/{file}", categoryName); } + private static void GenerateEnum(string file, string realm = "shared") + { + DocsGenerator.GenerateEnum(typeof(T), $"{generatedDir}/{file}", realm); + } + static void Main(string[] args) { @@ -82,6 +87,18 @@ namespace LuaDocsGenerator GenerateDocs("StructurePrefab.lua"); GenerateDocs("PhysicsBody.lua"); GenerateDocs("Limb.lua"); + + GenerateEnum("CauseOfDeathType.lua"); + GenerateEnum("CharacterTeamType.lua"); + GenerateEnum("ClientPermissions.lua"); + GenerateEnum("ChatMessageType.lua"); + GenerateEnum("InvSlotType.lua"); + GenerateEnum("LimbType.lua"); + GenerateEnum("RandSync.lua"); + GenerateEnum("ServerLogMessageType.lua"); + GenerateEnum("SpawnType.lua"); + GenerateEnum("DisconnectReason.lua"); + } } }