コード例 #1
0
        // ==================== 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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 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);
 }
コード例 #4
0
            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);
                }
            }