public static object CreateDerivedProxyIfRequiredAndPossible(this Component ui) { if (ui.IsKnownTextType()) { #if MANAGED return(ui); #else var unityType = ui.GetUnityType(); if (Settings.EnableUGUI && UnityTypes.Text != null && UnityTypes.Text.IsAssignableFrom(unityType)) { return(Il2CppUtilities.CreateProxyComponentWithDerivedType(ui.Pointer, UnityTypes.Text.ClrType)); } else if (Settings.EnableTextMesh && UnityTypes.TextMesh != null && UnityTypes.TextMesh.IsAssignableFrom(unityType)) { return(Il2CppUtilities.CreateProxyComponentWithDerivedType(ui.Pointer, UnityTypes.TextMesh.ClrType)); } else if (Settings.EnableTextMeshPro && UnityTypes.TextMeshProUGUI != null && UnityTypes.TextMeshProUGUI.IsAssignableFrom(unityType)) { return(Il2CppUtilities.CreateProxyComponentWithDerivedType(ui.Pointer, UnityTypes.TextMeshProUGUI.ClrType)); } else if (Settings.EnableTextMeshPro && UnityTypes.TextMeshPro != null && UnityTypes.TextMeshPro.IsAssignableFrom(unityType)) { return(Il2CppUtilities.CreateProxyComponentWithDerivedType(ui.Pointer, UnityTypes.TextMeshPro.ClrType)); } else if (Settings.EnableTextMeshPro && UnityTypes.TMP_Text != null && UnityTypes.TMP_Text.IsAssignableFrom(unityType)) { return(Il2CppUtilities.CreateProxyComponentWithDerivedType(ui.Pointer, UnityTypes.TMP_Text.ClrType)); } #endif } return(null); }
public static Component CreateNGUIDerivedProxy(this IntPtr ui) { if (UnityTypes.UILabel != null && ui.IsInstancePointerAssignableFrom(UnityTypes.UILabel.ClassPointer)) { return((Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(ui, UnityTypes.UILabel.ClrType)); } return(null); }
static void ML_Detour(IntPtr instance) { Il2CppUtilities.InvokeMethod(UnityTypes.TextMeshPro_Methods.IL2CPP.OnEnable, instance); var __instance = (Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(instance, UnityTypes.TextMeshPro.ClrType); _Postfix(__instance); }
static void Postfix(Component __instance) { #if IL2CPP __instance = (Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(__instance.Pointer, UnityTypes.TextArea2D.ClrType); #endif _Postfix(__instance); }
static void ML_Detour(IntPtr instance, IntPtr value) { Il2CppUtilities.InvokeMethod(UnityTypes.UILabel_Methods.IL2CPP.set_text, instance, value); var __instance = (Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(instance, UnityTypes.UILabel.ClrType); _Postfix(__instance); }
static void Postfix(Component __instance) { #if IL2CPP __instance = (Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(__instance.Pointer, UnityTypes.TMP_Text.ClrType); #endif AutoTranslationPlugin.Current.Hook_TextChanged(__instance, false); }
static void Postfix(UnhollowerBaseLib.Il2CppObjectBase __instance) #endif { #if IL2CPP __instance = Il2CppUtilities.CreateProxyComponentWithDerivedType(__instance.Pointer, UnityTypes.TextField.ClrType); #endif AutoTranslationPlugin.Current.Hook_TextChanged(__instance, false); }
static void ML_Detour(IntPtr instance) { Il2CppUtilities.InvokeMethod(UnityTypes.Text_Methods.IL2CPP.OnEnable, instance); if (instance.IsInstancePointerAssignableFrom(UnityTypes.Text.ClassPointer)) { var __instance = (Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(instance, UnityTypes.Text.ClrType); _Postfix(__instance); } }
static void Postfix(Component __instance) { if (UnityTypes.Text.IsAssignableFrom(__instance.GetUnityType())) { #if IL2CPP __instance = (Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(__instance.Pointer, UnityTypes.Text.ClrType); #endif _Postfix(__instance); } }
public static Component GetOrCreateNGUIDerivedProxy(this Component ui) { var unityType = ui.GetUnityType(); if (UnityTypes.UILabel != null && UnityTypes.UILabel.IsAssignableFrom(unityType)) { #if IL2CPP return((Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(ui.Pointer, UnityTypes.UILabel.ClrType)); #else return(ui); #endif } return(null); }
public static Component CreateTextMeshProDerivedProxy(this IntPtr ui) { if (UnityTypes.TextMeshProUGUI != null && ui.IsInstancePointerAssignableFrom(UnityTypes.TextMeshProUGUI.ClassPointer)) { return((Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(ui, UnityTypes.TextMeshProUGUI.ClrType)); } else if (UnityTypes.TextMeshPro != null && ui.IsInstancePointerAssignableFrom(UnityTypes.TextMeshPro.ClassPointer)) { return((Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(ui, UnityTypes.TextMeshPro.ClrType)); } else if (UnityTypes.TMP_Text != null && ui.IsInstancePointerAssignableFrom(UnityTypes.TMP_Text.ClassPointer)) { return((Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(ui, UnityTypes.TMP_Text.ClrType)); } return(null); }
static void _Postfix(GameObject __instance, bool value) { if (value) { var tms = __instance.GetComponentsInChildren(UnityTypes.TextMesh.UnityType); foreach (var tm in tms) { #if IL2CPP var comp = Il2CppUtilities.CreateProxyComponentWithDerivedType(tm.Pointer, UnityTypes.TextMesh.ClrType); AutoTranslationPlugin.Current.Hook_TextChanged(comp, true); #else AutoTranslationPlugin.Current.Hook_TextChanged(tm, true); #endif } } }
public static Component CreateTextMeshProDerivedProxy(this Component ui) { var unityType = ui.GetUnityType(); if (UnityTypes.TextMeshProUGUI != null && UnityTypes.TextMeshProUGUI.IsAssignableFrom(unityType)) { return((Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(ui.Pointer, UnityTypes.TextMeshProUGUI.ClrType)); } else if (UnityTypes.TextMeshPro != null && UnityTypes.TextMeshPro.IsAssignableFrom(unityType)) { return((Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(ui.Pointer, UnityTypes.TextMeshPro.ClrType)); } else if (UnityTypes.TMP_Text != null && UnityTypes.TMP_Text.IsAssignableFrom(unityType)) { return((Component)Il2CppUtilities.CreateProxyComponentWithDerivedType(ui.Pointer, UnityTypes.TMP_Text.ClrType)); } return(null); }
public static void FixLabel(ref string label) { var empty = new object[0]; if (AdvManager == null && UnityTypes.AdvDataManager != null) { try { AdvManager = GameObject.FindObjectOfType(UnityTypes.AdvDataManager.UnityType); #if IL2CPP AdvManager = Il2CppUtilities.CreateProxyComponentWithDerivedType(((UnhollowerBaseLib.Il2CppObjectBase)AdvManager).Pointer, UnityTypes.AdvDataManager.ClrType); #endif var ScenarioDataTblProperty = UnityTypes.AdvDataManager.ClrType.GetProperty("ScenarioDataTbl"); var ScenarioDataTbl = ScenarioDataTblProperty.GetValue(AdvManager, empty); #if IL2CPP var iterable1 = new ManagedDictionaryEnumerable(ScenarioDataTbl); #else ScenarioDataTbl.TryCastTo <IEnumerable>(out var iterable1); #endif foreach (object labelToAdvScenarioDataKeyValuePair in iterable1) { var labelToAdvScenarioDataKeyValuePairType = labelToAdvScenarioDataKeyValuePair.GetType(); var AdvScenarioDataKey = (string)labelToAdvScenarioDataKeyValuePairType.GetProperty("Key") .GetValue(labelToAdvScenarioDataKeyValuePair, empty); Labels.Add(AdvScenarioDataKey); var AdvScenarioData = labelToAdvScenarioDataKeyValuePairType.GetProperty("Value") .GetValue(labelToAdvScenarioDataKeyValuePair, empty); if (AdvScenarioData != null) { var ScenarioLabelsProperty = AdvScenarioData.GetType().GetProperty("ScenarioLabels"); var labelToAdvScenarioLabelData = ScenarioLabelsProperty.GetValue(AdvScenarioData, empty); #if IL2CPP var iterable2 = new ManagedDictionaryEnumerable(labelToAdvScenarioLabelData); #else labelToAdvScenarioLabelData.TryCastTo <IEnumerable>(out var iterable2); #endif foreach (object labelToAdvScenarioLabelDataKeyValuePair in iterable2) { var labelToAdvScenarioLabelDataKeyValuePairType = labelToAdvScenarioLabelDataKeyValuePair.GetType(); var AdvScenarioLabelDataKey = (string)labelToAdvScenarioLabelDataKeyValuePairType.GetProperty("Key") .GetValue(labelToAdvScenarioLabelDataKeyValuePair, empty); Labels.Add(AdvScenarioLabelDataKey); } } } } catch (Exception e) { XuaLogger.AutoTranslator.Warn(e, "An error occurred while setting up scenario set."); } } if (!Labels.Contains(label)) { var scope = TranslationScopeHelper.GetScope(null); if (AutoTranslationPlugin.Current.TextCache.TryGetReverseTranslation(label, scope, out string key)) { label = key; } } }