fix(codegen): Code gens base armor and fixes code genning of other armors. (#696)

* Fixes code gen of save flags
* Code gens rest of armor
* Fixes some existing code genned armors
* Code gens BaseArmor
This commit is contained in:
Kamron Batman 2021-08-17 17:52:15 -07:00 committed by GitHub
parent 803d594300
commit c8a2605c0d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
127 changed files with 1107 additions and 1959 deletions

View file

@ -338,8 +338,8 @@ namespace SerializationGenerator
Accessibility.Private
);
source.GenerateEnumValue(" ", true, "None", -1);
int index = 0;
source.GenerateEnumValue(" ", true, "None", index++);
foreach (var (_, order) in serializablePropertyFlagGetters)
{
source.GenerateEnumValue(" ", true, serializableProperties[order].Name, index++);

View file

@ -130,16 +130,24 @@ namespace SerializationGenerator
if (usesSaveFlag)
{
source.AppendLine($"\n{indent}if ((saveFlags & SaveFlag.{property.Name}) != 0)\n{indent}{{");
rule.GenerateDeserializationMethod(
source,
innerIndent,
property,
"this"
);
(rule as IPostDeserializeMethod)?.PostDeserializeMethod(source, innerIndent, property, compilation, classSymbol);
source.AppendLine($"{indent}}}");
source.AppendLine();
// Special case
if (property.Type == "bool")
{
source.AppendLine($"{indent}{property.Name} = (saveFlags & SaveFlag.{property.Name}) != 0;");
}
else
{
source.AppendLine($"{indent}if ((saveFlags & SaveFlag.{property.Name}) != 0)\n{indent}{{");
rule.GenerateDeserializationMethod(
source,
innerIndent,
property,
"this"
);
(rule as IPostDeserializeMethod)?.PostDeserializeMethod(source, innerIndent, property, compilation, classSymbol);
source.AppendLine($"{indent}}}");
}
}
else
{

View file

@ -79,13 +79,17 @@ namespace SerializationGenerator
if (usesSaveFlag)
{
source.AppendLine($"\n{indent}if ((saveFlags & SaveFlag.{property.Name}) != 0)\n{indent}{{");
SerializableMigrationRulesEngine.Rules[property.Rule].GenerateSerializationMethod(
source,
innerIndent,
property
);
source.AppendLine($"{indent}}}");
// Special case
if (property.Type != "bool")
{
source.AppendLine($"\n{indent}if ((saveFlags & SaveFlag.{property.Name}) != 0)\n{indent}{{");
SerializableMigrationRulesEngine.Rules[property.Rule].GenerateSerializationMethod(
source,
innerIndent,
property
);
source.AppendLine($"{indent}}}");
}
}
else
{

View file

@ -54,8 +54,8 @@ namespace SerializationGenerator
Accessibility.Private
);
source.GenerateEnumValue(" ", true, "None", -1);
int index = 0;
source.GenerateEnumValue(innerIndent, true, "None", index++);
foreach (var property in properties)
{
if (property.UsesSaveFlag == true)
@ -82,16 +82,26 @@ namespace SerializationGenerator
{
if (property.UsesSaveFlag == true)
{
source.AppendLine($"\n{innerIndent}if ((saveFlags & V{migration.Version}SaveFlag.{property.Name}) != 0)\n{innerIndent}{{");
SerializableMigrationRulesEngine.Rules[property.Rule].GenerateDeserializationMethod(
source,
$"{innerIndent} ",
property,
"entity"
);
source.AppendLine($"{innerIndent}}}\n{innerIndent}else\n{innerIndent}{{");
source.AppendLine($"{innerIndent} {property.Name} = default;");
source.AppendLine($"{innerIndent}}}");
source.AppendLine();
// Special case
if (property.Type == "bool")
{
source.AppendLine($"{innerIndent}{property.Name} = (saveFlags & SaveFlag.{property.Name}) != 0;");
}
else
{
source.AppendLine($"{innerIndent}if ((saveFlags & V{migration.Version}SaveFlag.{property.Name}) != 0)\n{innerIndent}{{");
SerializableMigrationRulesEngine.Rules[property.Rule].GenerateDeserializationMethod(
source,
$"{innerIndent} ",
property,
"entity"
);
source.AppendLine($"{innerIndent}}}\n{innerIndent}else\n{innerIndent}{{");
source.AppendLine($"{innerIndent} {property.Name} = default;");
source.AppendLine($"{innerIndent}}}");
}
}
else
{