// ==================== CUSTOM FUNCTIONS ==================== // /* * AddWorldMarker * Adds a simple MapWorldMarker on a new gameobject as a child for the specified GameObject. * Returns the MapWorldMarker component. */ public MapWorldMarker AddWorldMarker(GameObject go, string name) { var markerHolder = new GameObject("MarkerHolder"); markerHolder.transform.parent = go.transform; markerHolder.transform.position = go.transform.position; // setup the marker MapWorldMarker marker = markerHolder.AddComponent <MapWorldMarker>(); marker.ShowCircle = true; marker.AlignLeft = false; marker.Text = name; // check if we need to add another text holder var markerTexts = At.GetValue(typeof(MapDisplay), MapDisplay.Instance, "m_markerTexts") as MapWorldMarkerDisplay[]; var mapMarkers = At.GetValue(typeof(MapDisplay), MapDisplay.Instance, "m_mapWorldMarkers") as List <MapWorldMarker>; if (markerTexts.Length < mapMarkers.Count) { AddTextHolder(markerTexts); } return(marker); }
private MapWorldMarker AddWorldMarker(GameObject go, string name) { var playerMarker = new GameObject("CustomPlayerMarker"); playerMarker.transform.parent = go.transform; playerMarker.transform.position = go.transform.position; MapWorldMarker marker = playerMarker.AddComponent <MapWorldMarker>(); marker.ShowCircle = true; marker.AlignLeft = false; marker.Text = name; return(marker); }
public new static int Sort(MapWorldMarker _m1, MapWorldMarker _m2) { if (_m1.Anchored) { return(-1); } if (_m2.Anchored) { return(1); } if (_m1.MapPosition.y > _m2.MapPosition.y) { return(-1); } return(1); }
public static void Postfix(MapWorldMarkerDisplay __instance, MapWorldMarker _marker) { Debug.Log("Instance Player ID: " + __instance.PlayerID); Debug.Log("Instance name: " + __instance.name); Debug.Log("Instance toString: " + __instance.ToString()); Debug.Log("Marker text: " + _marker.Text); Debug.Log("\n"); if (String.Equals(_marker.gameObject.name, "CustomPlayerMarker")) { _customPlayerMarker = LoadPNG(@"Mods\MapPlayerMarker\custom_player_marker.png"); __instance.Circle.GetComponent <UnityEngine.UI.Image>().sprite = Sprite.Create(_customPlayerMarker, new Rect(0, 0, _customPlayerMarker.width, _customPlayerMarker.height), new Vector2(0.0f, 0.0f)); var characters = CharacterManager.Instance.Characters.Values .Where(x => !x.IsDead && x.gameObject.activeSelf); // TODO fix this shit __instance.Circle.transform.rotation = Quaternion.Euler(0, 0, -characters.ElementAt(0).gameObject.transform.localRotation.eulerAngles.y); } }