diff --git a/DeleteEarly.meta b/DeleteEarly.meta new file mode 100644 index 0000000..cd7fc11 --- /dev/null +++ b/DeleteEarly.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a290a75a421721342a35382c42c6657b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/DeleteEarly/Editor.meta b/DeleteEarly/Editor.meta new file mode 100644 index 0000000..4c686f2 --- /dev/null +++ b/DeleteEarly/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 786831c11b386ac4c8a28efb7841e952 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/DeleteEarly/Editor/DeleteEarlyEditorAsmdef.asmdef b/DeleteEarly/Editor/DeleteEarlyEditorAsmdef.asmdef new file mode 100644 index 0000000..ba37003 --- /dev/null +++ b/DeleteEarly/Editor/DeleteEarlyEditorAsmdef.asmdef @@ -0,0 +1,22 @@ +{ + "name": "DeleteEarlyEditorAsmdef", + "rootNamespace": "", + "references": [ + "GUID:62ced99b048af7f4d8dfe4bed8373d76", + "GUID:5718fb738711cd34ea54e9553040911d", + "GUID:901e56b065a857d4483a77f8cae73588", + "GUID:209cbd2a789c4f72963fdbf1f8a01909", + "GUID:752d62de48ec60a4e8dd8e92e186f02a" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/DeleteEarly/Editor/DeleteEarlyEditorAsmdef.asmdef.meta b/DeleteEarly/Editor/DeleteEarlyEditorAsmdef.asmdef.meta new file mode 100644 index 0000000..4f3954e --- /dev/null +++ b/DeleteEarly/Editor/DeleteEarlyEditorAsmdef.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0d3bcc760027e9d45b83c17d2a356844 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/DeleteEarly/Editor/DeleteEarlyPlugin.cs b/DeleteEarly/Editor/DeleteEarlyPlugin.cs new file mode 100644 index 0000000..0db7633 --- /dev/null +++ b/DeleteEarly/Editor/DeleteEarlyPlugin.cs @@ -0,0 +1,38 @@ +using gay.lilyy.DeleteEarly; +using nadena.dev.ndmf; +using UnityEngine; + +[assembly: ExportsPlugin(typeof(DeleteEarlyPlugin))] + +namespace gay.lilyy.DeleteEarly +{ + public class DeleteEarlyPlugin : Plugin + { + public override string DisplayName => "Delete Early"; + public override string QualifiedName => "gay.lilyy.DeleteEarly"; + + protected override void Configure() + { + InPhase(BuildPhase.FirstChance).Run("DeleteEarly", ctx => + { + var configs = ctx.AvatarRootObject.GetComponentsInChildren(true); + if (configs == null || configs.Length == 0) + return; + + foreach (var config in configs) + { + if (config == null) + continue; + + GameObject targetToDelete = config.targetObject != null ? config.targetObject : config.gameObject; + + if (targetToDelete != null) + { + Object.DestroyImmediate(targetToDelete); + } + } + }); + } + } +} + diff --git a/DeleteEarly/Editor/DeleteEarlyPlugin.cs.meta b/DeleteEarly/Editor/DeleteEarlyPlugin.cs.meta new file mode 100644 index 0000000..7a4d62b --- /dev/null +++ b/DeleteEarly/Editor/DeleteEarlyPlugin.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 247a9fb377d57814d894f3ce90f4d78b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/DeleteEarly/Runtime.meta b/DeleteEarly/Runtime.meta new file mode 100644 index 0000000..79090eb --- /dev/null +++ b/DeleteEarly/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d420e6b7d0039b6449bacbbe3ed423ad +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/DeleteEarly/Runtime/DeleteEarlyConfig.cs b/DeleteEarly/Runtime/DeleteEarlyConfig.cs new file mode 100644 index 0000000..79356e2 --- /dev/null +++ b/DeleteEarly/Runtime/DeleteEarlyConfig.cs @@ -0,0 +1,11 @@ +using UnityEngine; + +namespace gay.lilyy.DeleteEarly +{ + [AddComponentMenu("LillithRosePup/Delete Early")] + public class DeleteEarlyConfig : MonoBehaviour, VRC.SDKBase.IEditorOnly + { + public GameObject targetObject; + } +} + diff --git a/DeleteEarly/Runtime/DeleteEarlyConfig.cs.meta b/DeleteEarly/Runtime/DeleteEarlyConfig.cs.meta new file mode 100644 index 0000000..77f2066 --- /dev/null +++ b/DeleteEarly/Runtime/DeleteEarlyConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 27f4b0369be38aa4eb93c04844611ebd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/DeleteEarly/Runtime/DeleteEarlyRuntimeAsmdef.asmdef b/DeleteEarly/Runtime/DeleteEarlyRuntimeAsmdef.asmdef new file mode 100644 index 0000000..c3886f2 --- /dev/null +++ b/DeleteEarly/Runtime/DeleteEarlyRuntimeAsmdef.asmdef @@ -0,0 +1,4 @@ +{ + "name": "DeleteEarlyRuntimeAsmdef" +} + diff --git a/DeleteEarly/Runtime/DeleteEarlyRuntimeAsmdef.asmdef.meta b/DeleteEarly/Runtime/DeleteEarlyRuntimeAsmdef.asmdef.meta new file mode 100644 index 0000000..0423bbd --- /dev/null +++ b/DeleteEarly/Runtime/DeleteEarlyRuntimeAsmdef.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 752d62de48ec60a4e8dd8e92e186f02a +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: