3 namespace Entitas.CodeGenerator {
7 const string CLASS_FORMAT =
@"using Entitas.Serialization.Blueprints; 9 namespace Entitas.Unity.Serialization.Blueprints {{ 11 public partial class Blueprints {{ 17 const string GETTER_FORMAT =
" public Blueprint {0} {{ get {{ return GetBlueprint(\"{1}\"); }} }}";
19 public CodeGenFile[] Generate(
string[] blueprintNames) {
20 if(blueprintNames.Length == 0) {
24 var orderedBlueprintNames = blueprintNames.OrderBy(name => name).ToArray();
25 var blueprints =
string.Format(CLASS_FORMAT, generateBlueprintGetters(orderedBlueprintNames));
27 "BlueprintsGeneratedExtension",
29 GetType().FullName) };
32 string generateBlueprintGetters(
string[] blueprintNames) {
33 return string.Join(
"\n", blueprintNames
34 .Select(name =>
string.Format(GETTER_FORMAT, validPropertyName(name), name)).ToArray());
37 static string validPropertyName(
string name) {
39 .Replace(
" ",
string.Empty)
40 .Replace(
"-",
string.Empty)
41 .Replace(
"(",
string.Empty)
42 .Replace(
")",
string.Empty);