コード例 #1
0
        private static void OnCopyAcs(CvsAccessoryCopy instance)
        {
            if (AccessoriesCopied == null)
            {
                return;
            }

            try
            {
                var selected = instance.GetComponentsInChildren <UnityEngine.UI.Toggle>()
                               .Where(x => x.isOn)
                               .Select(x => x.transform.parent.name)
                               .Select(n => int.Parse(n.Substring("kind".Length)))
                               .ToList();

                var dropdowns = Traverse.Create(instance).Field("ddCoordeType").GetValue <TMP_Dropdown[]>();

                var args = new AccessoryCopyEventArgs(selected, (ChaFileDefine.CoordinateType)dropdowns[1].value, (ChaFileDefine.CoordinateType)dropdowns[0].value);

                AccessoriesCopied(instance, args);
            }
            catch (Exception ex)
            {
                KoikatuAPI.Log(LogLevel.Error, "Crash in AccessoriesCopied event: " + ex);
            }
        }
コード例 #2
0
        private static void OnCopyAcs(CvsAccessoryCopy instance)
        {
            if (AccessoriesCopied == null && !KoikatuAPI.EnableDebugLogging)
            {
                return;
            }
            try
            {
                var selected = instance.GetComponentsInChildren <UnityEngine.UI.Toggle>()
                               .Where(x => x.isOn)
                               .Select(x => x.transform.parent.name)
                               .Select(n => int.Parse(n.Substring("kind".Length)))
                               .ToList();

                var dropdowns = Traverse.Create(instance).Field("ddCoordeType").GetValue <TMP_Dropdown[]>();

                var args = new AccessoryCopyEventArgs(selected, (ChaFileDefine.CoordinateType)dropdowns[1].value, (ChaFileDefine.CoordinateType)dropdowns[0].value);

                if (KoikatuAPI.EnableDebugLogging)
                {
                    KoikatuAPI.Logger.LogMessage($"AccessoriesCopied - ids: {string.Join(", ", args.CopiedSlotIndexes.Select(x => x.ToString()).ToArray())}, src:{args.CopySource}, dst:{args.CopyDestination}");
                }

                if (AccessoriesCopied != null)
                {
                    AccessoriesCopied(instance, args);
                }
            }
            catch (Exception ex)
            {
                KoikatuAPI.Logger.LogError("Crash in AccessoriesCopied event: " + ex);
            }
        }
コード例 #3
0
 private void OnAccessoriesCopied(object sender, AccessoryCopyEventArgs e)
 {
     if (CheckDisposed())
     {
         return;
     }
     AccessoriesCopied?.Invoke(sender, e);
 }
コード例 #4
0
        private static void OnCopyAcs(CvsAccessoryCopy instance)
        {
            if (AccessoriesCopied == null && !KoikatuAPI.EnableDebugLogging)
            {
                return;
            }
            try
            {
                var toggles  = instance.tglKind;
                var selected = new System.Collections.Generic.List <int>();
                for (var i = 0; i < toggles.Length; i++)
                {
                    if (toggles[i].isOn)
                    {
                        selected.Add(i);
                    }
                }

                var dropdowns = instance.ddCoordeType;

                var args = new AccessoryCopyEventArgs(selected, (ChaFileDefine.CoordinateType)dropdowns[1].value, (ChaFileDefine.CoordinateType)dropdowns[0].value);

                if (KoikatuAPI.EnableDebugLogging)
                {
                    KoikatuAPI.Logger.LogMessage($"AccessoriesCopied - ids: {string.Join(", ", args.CopiedSlotIndexes.Select(x => x.ToString()).ToArray())}, src:{args.CopySource}, dst:{args.CopyDestination}");
                }

                if (AccessoriesCopied != null)
                {
                    AccessoriesCopied(instance, args);
                }
            }
            catch (Exception ex)
            {
                KoikatuAPI.Logger.LogError("Crash in AccessoriesCopied event: " + ex);
            }
        }