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); } }
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); } }