From cd200db1d7ad7ac6181223b1b3d74015a006576e Mon Sep 17 00:00:00 2001 From: DerpyNewbie Date: Sun, 3 Nov 2024 19:40:28 +0900 Subject: [PATCH 1/2] Add CommonInvokerCommand --- .../Command/CommonInvokerCommand.asset | 437 ++++++++++++++++++ .../Command/CommonInvokerCommand.asset.meta | 8 + .../Runtime/Command/CommonInvokerCommand.cs | 49 ++ .../Command/CommonInvokerCommand.cs.meta | 11 + 4 files changed, 505 insertions(+) create mode 100644 Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.asset create mode 100644 Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.asset.meta create mode 100644 Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.cs create mode 100644 Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.cs.meta diff --git a/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.asset b/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.asset new file mode 100644 index 0000000..89ecb58 --- /dev/null +++ b/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.asset @@ -0,0 +1,437 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} + m_Name: CommonInvokerCommand + m_EditorClassIdentifier: + serializedUdonProgramAsset: {fileID: 11400000, guid: 657972be8ebf3f74a8ea59c36474b5e4, + type: 2} + udonAssembly: + assemblyError: + sourceCsScript: {fileID: 11500000, guid: 4c97158605f3de341bae8f6690bb74a8, type: 3} + scriptVersion: 2 + compiledVersion: 2 + behaviourSyncMode: 0 + hasInteractEvent: 0 + scriptID: 7526023265875488307 + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: + - Name: fieldDefinitions + Entry: 7 + Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition, + UdonSharp.Editor]], mscorlib + - Name: comparer + Entry: 7 + Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String, + mscorlib]], mscorlib + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 7 + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: k__BackingField + - Name: $v + Entry: 7 + Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: k__BackingField + - Name: k__BackingField + Entry: 7 + Data: 3|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.String[], mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 3 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: k__BackingField + - Name: $v + Entry: 7 + Data: 5|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: k__BackingField + - Name: k__BackingField + Entry: 7 + Data: 6|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.String, mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 7|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: k__BackingField + - Name: $v + Entry: 7 + Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: k__BackingField + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: commandLabel + - Name: $v + Entry: 7 + Data: 10|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: commandLabel + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 11|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 12|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: commandAliases + - Name: $v + Entry: 7 + Data: 13|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: commandAliases + - Name: k__BackingField + Entry: 9 + Data: 3 + - Name: k__BackingField + Entry: 9 + Data: 3 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 14|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 15|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: commandDescription + - Name: $v + Entry: 7 + Data: 16|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: commandDescription + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 9 + Data: 6 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 17|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 18|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: invokers + - Name: $v + Entry: 7 + Data: 19|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: invokers + - Name: k__BackingField + Entry: 7 + Data: 20|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: DerpyNewbie.Common.Invoker.CommonInvokerBase[], DerpyNewbie.Common + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 7 + Data: 21|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.Component[], UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 22|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 23|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: diff --git a/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.asset.meta b/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.asset.meta new file mode 100644 index 0000000..a6e16d4 --- /dev/null +++ b/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0afe6146db9491d48b402b4cea0d03b3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.cs b/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.cs new file mode 100644 index 0000000..6bf31bf --- /dev/null +++ b/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.cs @@ -0,0 +1,49 @@ +using System; +using DerpyNewbie.Common; +using DerpyNewbie.Common.Invoker; +using UnityEngine; + +namespace DerpyNewbie.Logger.Command +{ + public class CommonInvokerCommand : ActionCommandHandler + { + [SerializeField] + private string commandLabel; + + [SerializeField] + private string[] commandAliases; + + [SerializeField] + private string commandDescription; + + [SerializeField] + private CommonInvokerBase[] invokers; + + public override string Label => commandLabel; + public override string[] Aliases => commandAliases; + public override string Description => commandDescription; + public override string Usage => ""; + + private void Start() + { + if (string.IsNullOrWhiteSpace(commandLabel)) + commandLabel = gameObject.name; + if (string.IsNullOrWhiteSpace(commandDescription)) + commandDescription = "Executes pre-defined invokers"; + } + + public override void OnActionCommand(NewbieConsole console, string label, ref string[] vars, + ref string[] envVars) + { + vars = vars.RemoveItem("-s", out var suppress); + foreach (var invoker in invokers) + { + if (invoker == null) continue; + invoker.Invoke(); + } + + if (suppress) return; + console.Println($"Successfully invoked {Label}"); + } + } +} \ No newline at end of file diff --git a/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.cs.meta b/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.cs.meta new file mode 100644 index 0000000..b412405 --- /dev/null +++ b/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4c97158605f3de341bae8f6690bb74a8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 98ad6831ab4a8fe695eab29818b252c467460563 Mon Sep 17 00:00:00 2001 From: DerpyNewbie Date: Sun, 3 Nov 2024 19:58:33 +0900 Subject: [PATCH 2/2] Mark CommonInvokerCommand as SyncMode.None --- .../Runtime/Command/CommonInvokerCommand.asset | 2 +- .../Runtime/Command/CommonInvokerCommand.cs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.asset b/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.asset index 89ecb58..baee860 100644 --- a/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.asset +++ b/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.asset @@ -19,7 +19,7 @@ MonoBehaviour: sourceCsScript: {fileID: 11500000, guid: 4c97158605f3de341bae8f6690bb74a8, type: 3} scriptVersion: 2 compiledVersion: 2 - behaviourSyncMode: 0 + behaviourSyncMode: 1 hasInteractEvent: 0 scriptID: 7526023265875488307 serializationData: diff --git a/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.cs b/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.cs index 6bf31bf..d2c4b14 100644 --- a/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.cs +++ b/Packages/dev.derpynewbie.logger/Runtime/Command/CommonInvokerCommand.cs @@ -1,10 +1,11 @@ -using System; -using DerpyNewbie.Common; +using DerpyNewbie.Common; using DerpyNewbie.Common.Invoker; +using UdonSharp; using UnityEngine; namespace DerpyNewbie.Logger.Command { + [UdonBehaviourSyncMode(BehaviourSyncMode.None)] public class CommonInvokerCommand : ActionCommandHandler { [SerializeField]