public void InitializeLibraryClass() { SubsystemExtensions_Asset.GetSubsystemAsset(GetLibraryName()) .IfNotNull(s => s.ModifyAsset(delegate(SerializedObject obj) { GetObjects().Process(o => obj.SetChildValue(o.name.StyleAsUnderscoredEntity(), o) ); })); }
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); }
static public string GetSubsystemAssetPath(this Subsystem item) { return(SubsystemExtensions_Asset.GetSubsystemAssetPath(item.GetType())); }