Improved docs: Enums are now automatically generated
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -24,6 +24,11 @@ namespace LuaDocsGenerator
|
||||
{
|
||||
DocsGenerator.GenerateDocs(clientType, serverType, $"{baseLuaDir}/{file}", $"{generatedDir}/{file}", categoryName);
|
||||
}
|
||||
private static void GenerateEnum<T>(string file, string realm = "shared")
|
||||
{
|
||||
DocsGenerator.GenerateEnum(typeof(T), $"{generatedDir}/{file}", realm);
|
||||
}
|
||||
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
@@ -82,6 +87,18 @@ namespace LuaDocsGenerator
|
||||
GenerateDocs<BarotraumaClient::Barotrauma.StructurePrefab, BarotraumaServer::Barotrauma.StructurePrefab>("StructurePrefab.lua");
|
||||
GenerateDocs<BarotraumaClient::Barotrauma.PhysicsBody, BarotraumaServer::Barotrauma.PhysicsBody>("PhysicsBody.lua");
|
||||
GenerateDocs<BarotraumaClient::Barotrauma.Limb, BarotraumaServer::Barotrauma.Limb>("Limb.lua");
|
||||
|
||||
GenerateEnum<BarotraumaClient.Barotrauma.CauseOfDeathType>("CauseOfDeathType.lua");
|
||||
GenerateEnum<BarotraumaClient.Barotrauma.CharacterTeamType>("CharacterTeamType.lua");
|
||||
GenerateEnum<BarotraumaClient.Barotrauma.Networking.ClientPermissions>("ClientPermissions.lua");
|
||||
GenerateEnum<BarotraumaClient.Barotrauma.Networking.ChatMessageType>("ChatMessageType.lua");
|
||||
GenerateEnum<BarotraumaClient.Barotrauma.InvSlotType>("InvSlotType.lua");
|
||||
GenerateEnum<BarotraumaClient.Barotrauma.LimbType>("LimbType.lua");
|
||||
GenerateEnum<BarotraumaClient.Barotrauma.Rand.RandSync>("RandSync.lua");
|
||||
GenerateEnum<BarotraumaClient.Barotrauma.Networking.ServerLog.MessageType>("ServerLogMessageType.lua");
|
||||
GenerateEnum<BarotraumaClient.Barotrauma.SpawnType>("SpawnType.lua");
|
||||
GenerateEnum<BarotraumaClient.Barotrauma.Networking.DisconnectReason>("DisconnectReason.lua");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user