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