protected override void BeforeLiveGeneration() { if (!(string.IsNullOrEmpty(decorated.@namespace) || string.IsNullOrWhiteSpace(decorated.@namespace))) { @namespace = NamespaceGenerator.Namespace([email protected]().LegalMemberName()); } @class = ClassGenerator.Class( RootAccessModifier.Public, ClassModifier.None, decorated.title.LegalMemberName(), decorated.inheritance.type); @class.AddAttribute(AttributeGenerator.Attribute <IncludeInSettingsAttribute>().AddParameter(true)); @class.AddAttribute(AttributeGenerator.Attribute <InspectableAttribute>()); @class.AddInterface(typeof(IUAClass)); guid = decorated.GetGUID(); }
protected override void AfterLiveGeneration() { var uaClass = FieldGenerator.Field(AccessModifier.Private, FieldModifier.None, typeof(UAClass), "data").CustomDefault("new UAClass(" + guid.As().Code(false) + ");"); uaClass.AddAttribute(AttributeGenerator.Attribute <SerializeField>()); uaClass.AddAttribute(AttributeGenerator.Attribute <InspectableAttribute>()); var interfaceUAClass = PropertyGenerator.Property(AccessModifier.Public, PropertyModifier.None, typeof(UAClass), "Class", false).SingleStatementGetter(AccessModifier.Public, "data"); @class.AddField(uaClass); @class.AddProperty(interfaceUAClass); @namespace?.AddClass(@class); var usings = CodeBuilder.Using(@class.Usings()) + "\n\n"; output = (string.IsNullOrEmpty(decorated.@namespace) || string.IsNullOrWhiteSpace(decorated.@namespace)) ? usings + @class.Generate(0) : usings + @namespace.Generate(0); }
public FieldGenerator AddAttribute(AttributeGenerator attributeGenerator) { attributes.Add(attributeGenerator); return(this); }
public StructGenerator AddAttribute(AttributeGenerator generator) { attributes.Add(generator); return(this); }
public MethodGenerator AddAttribute(AttributeGenerator generator) { attributes.Add(generator); return(this); }
public InterfaceGenerator AddAttribute(AttributeGenerator generator) { attributes.Add(generator); return(this); }
/// <summary> /// Add an attribute above this class. /// </summary> public ClassGenerator AddAttribute(AttributeGenerator generator) { attributes.Add(generator); return(this); }
public PropertyGenerator AddAttribute(AttributeGenerator attributeGenerator) { attributes.Add(attributeGenerator); return(this); }