Beispiel #1
0
 public void InitializeLibraryClass()
 {
     SubsystemExtensions_Asset.GetSubsystemAsset(GetLibraryName())
     .IfNotNull(s => s.ModifyAsset(delegate(SerializedObject obj) {
         GetObjects().Process(o =>
                              obj.SetChildValue(o.name.StyleAsUnderscoredEntity(), o)
                              );
     }));
 }
Beispiel #2
0
        static private void GenerateSubsystems()
        {
            CodeGenerator.GenerateStaticClass("SubsystemMenuItems", delegate(CSTextDocumentBuilder builder) {
                foreach (Type type in Types.GetFilteredTypes(
                             Filterer_Type.CanBeTreatedAs <Subsystem>(),
                             Filterer_Type.IsConcreteClass()
                             ))
                {
                    CSTextDocumentWriter writer = builder.CreateWriterWithVariablePairs(
                        "PATH", ("Edit/Project Settings/" + type.Name).StyleAsDoubleQuoteLiteral(),
                        "FUNCTION", ("Focus" + type.Name).StyleAsFunctionName(),
                        "TYPE", type.Namespace.AppendToVisible(".") + type.Name
                        );

                    writer.Write("[MenuItem(?PATH)]");
                    writer.Write("static public void ?FUNCTION()", delegate() {
                        writer.Write("?TYPE.GetInstance().FocusAsset();");
                    });

                    SubsystemExtensions_Asset.CreateSubsystemAssetIfMissing(type);
                }
            }, GeneratedCodeType.EditorOnlyLeaf);
        }
Beispiel #3
0
 static public string GetSubsystemAssetPath(this Subsystem item)
 {
     return(SubsystemExtensions_Asset.GetSubsystemAssetPath(item.GetType()));
 }