public static bool Prefix(WholeMapViewer __instance, ref MapIconData iconData, ref MapIconInfo icon) { if (!enabled) { return(true); } if (iconData.CurIcon is PresetIcon && (iconData.CurIcon as PresetIcon).IsIcon(MapIcon.TRANSFERPOINT)) { iconData.iconObject.GetComponent <Image>().raycastTarget = false; UnityEngine.Object.Destroy(iconData.iconObject.GetComponent <MapIconInteractTransfer>()); UnityEngine.Object.Destroy(iconData.iconObject.GetComponent <Selectable>()); } iconData.SetCurIcon(icon, __instance.GetHashCode()); PresetIcon presetIcon = icon as PresetIcon; if (icon is PresetIcon && presetIcon.IsIcon(MapIcon.TRANSFERPOINT)) { (iconData.iconObject as MapIconPoolSprite).SetRaycastTarget(true); if (iconData.iconObject.gameObject.GetComponent <MapIconInteractTransfer>() == null) { iconData.iconObject.gameObject.AddComponent <MapIconInteractTransfer>(); iconData.iconObject.gameObject.AddComponent <Selectable>(); } iconData.iconObject.gameObject.GetComponent <MapIconInteractTransfer>().SetImap(iconData.imap); int tranId = Singleton <TransferTransIdDataBase> .Self.GetTranId((iconData.imap as SceneItemTransfer_IMap).SItem.ID); string name = (tranId <= 0) ? string.Empty : TextMgr.GetStr(tranId, -1); Dbgl($"name: {name} pos: {iconData.imap.GetPos()}"); } return(false); }
static bool Prefix(WholeMapViewer __instance, Image iconImage, Image ___NowPlayingMap) { if (KeyDown(settings.ModifierKey)) { Dbgl("Trying to teleport"); Vector3 v1 = iconImage.rectTransform.position; Vector3 v2 = ___NowPlayingMap.rectTransform.InverseTransformPoint(v1); Vector3 v3 = (Vector3)typeof(WholeMapViewer).GetMethod("ReverseConvertGamePosFromGameMap", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { new Vector3(v2.x, v2.y, 0f) }); Vector3 v4 = GetValidPos(v3); //v4 += new Vector3(0, 20f, 0); Dbgl($"Player Pos: {Module<Player>.Self.actor.gamePos}"); Dbgl($"Teleport Pos: {v3}"); Dbgl($"Safe Pos: {v3}"); UIStateMgr.Instance.PopState(false); if (Module <ScenarioModule> .Self.CurrentScenarioName != "Main") { nextMainPos = v3; SceneManager.activeSceneChanged += TeleportFromIndoors; Teleport("Main"); return(false); } Teleport("Main", v4); return(false); } return(true); }
public static void Postfix(WholeMapViewer __instance, GameObject ___layerParent) { if (!enabled) { return; } input = __instance.GetComponent <MapInput>(); }
static bool Prefix(WholeMapViewer __instance, Image iconImage, Image ___NowPlayingMap, bool ___forceWorldMap) { if (Input.GetKey(KeyCode.LeftControl)) { Vector3 vector = ___NowPlayingMap.rectTransform.InverseTransformPoint(iconImage.rectTransform.position); MethodInfo dynMethod = __instance.GetType().GetMethod("ReverseConvertGamePosFromGameMap", BindingFlags.NonPublic | BindingFlags.Instance); Vector3 v3 = (Vector3)dynMethod.Invoke(__instance, new object[] { new Vector3(vector.x, vector.y, 0f) }); v3.z = 100f; Module <Player> .Self.GamePos = v3; //Module<Player>.Self.actor.RequestForceMove(new Vector3(0,0,-1000f)); return(false); } return(true); }
public static bool Prefix(WholeMapViewer __instance, MapIconData iconData, MapIconInfo icon, float ___curLayerMin, float ___curLayerMax) { if (!enabled) { return(true); } PresetIcon presetIcon = icon as PresetIcon; if (icon.HasInfo(MapType.Transport) && presetIcon != null && presetIcon.IsIcon(MapIcon.TRANSFERPOINT)) { GameObject parent = (GameObject)typeof(MapViewer).GetMethod("GetIconLayerParent", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { icon.GetIconLayer() }); typeof(MapViewer).GetMethod("ShowIcon", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { iconData, parent, icon }); typeof(WholeMapViewer).GetMethod("SetIconRectTrans", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { iconData, icon }); return(false); } return(true); }
public static void Postfix(WholeMapViewer __instance) { if (!enabled) { return; } List <MapIconData> listIconPrefabs = AccessTools.FieldRefAccess <MapViewer, List <MapIconData> >(__instance, "listIconPrefabs"); var i = 0; foreach (MapIconData mid in listIconPrefabs) { if (mid != null && mid.imap != null && mid.imap.GetIconInfo().HasInfo(MapType.Transport) && (mid.imap.GetIconInfo() as PresetIcon) != null && (mid.imap.GetIconInfo() as PresetIcon).IsIcon(MapIcon.TRANSFERPOINT)) { //Dbgl($"scene: {mid.imap.GetScenarioName()} pos: {mid.imap.GetPos()} hover: {mid.imap.GetHoverInfo()}"); } } MessageManager.Instance.Subscribe("UIOtherMapTransfer", new Action <object[]>(JoyStickConfirm)); }
public static bool Prefix(WholeMapViewer __instance, Image image, MapHoverDetail details, bool isDrag, ref Vector2 nearestAim, List <IMap> ___imapShowInfo, List <MapIconData> ___listIconPrefabs) { if (!enabled) { return(true); } nearestAim = Vector2.zero; float num = 100f; bool flag = false; ___imapShowInfo.Clear(); if (!isDrag) { Rect rect = WholeMapViewer.RectTransformToWorldSpace(image.rectTransform); for (int i = 0; i < ___listIconPrefabs.Count; i++) { if (!(___listIconPrefabs[i].iconObject == null)) { if (___listIconPrefabs[i].iconObject.gameObject.activeSelf) { MapIconPoolObj iconObject = ___listIconPrefabs[i].iconObject; Rect other = WholeMapViewer.RectTransformToWorldSpace(iconObject.ColRect); if (Singleton <InputDeviceDetector> .Instance.CurDevice != InputDevice.MouseKeyboard) { Vector3 v = input.GetActiveIcon().rectTransform.InverseTransformPoint(___listIconPrefabs[i].iconObject.transform.position); float num2 = Vector2.Distance(Vector2.zero, v); if (num > num2) { num = num2; nearestAim = v; } } if (rect.Overlaps(other)) { ___imapShowInfo.Add(___listIconPrefabs[i].imap); MapIconInteractTransfer component = ___listIconPrefabs[i].iconObject.GetComponent <MapIconInteractTransfer>(); if (component != null && curTransfer == null && Input.GetMouseButton(0)) { flag = true; curTransfer = component; Dbgl(rect.ToString()); IMap imap = AccessTools.FieldRefAccess <MapIconInteractTransfer, IMap>(component, "curImap"); int tranId = Singleton <TransferTransIdDataBase> .Self.GetTranId((imap as SceneItemTransfer_IMap).SItem.ID); string name = (tranId <= 0) ? string.Empty : TextMgr.GetStr(tranId, -1); //Dbgl($"name: {name} pos: {imap.GetPos()}"); break; } } } } } } if (!flag) { return(true); } details.Fresh(___imapShowInfo); return(false); }