示例#1
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="position"></param>
 /// <param name="type"></param>
 /// <param name="style"></param>
 /// <param name="color"></param>
 public BaseMapIcon(Vector3 position, MapIcon type, MapIconType style, Color color)
 {
     Position = position;
     Type     = type;
     Style    = style;
     Color    = color;
 }
示例#2
0
    public MapIcon CreateMapIcon(Sprite iconSprite, Vector2 size, Vector3 worldPosition, bool keepOnMap, float rangeSize,
                                 MapIconType iconType, bool removeAble, string textToDisplay = "")
    {
        if (!UI || !UI.gameObject || !iconSprite)
        {
            return(null);
        }
        MapIcon icon = ObjectPool.Get(UI.iconPrefab.gameObject, SelectParent(iconType)).GetComponent <MapIcon>();

        InitIcon();
        IconsWithoutHolder.Add(icon, new MapIconWithoutHolder(worldPosition, icon, keepOnMap, removeAble, textToDisplay));
        return(icon);

        void InitIcon()
        {
            icon.iconImage.rectTransform.pivot     = new Vector2(0.5f, 0.5f);
            icon.iconImage.overrideSprite          = iconSprite;
            icon.iconImage.rectTransform.sizeDelta = size;
            icon.iconType = iconType;
            if (rangeSize > 0)
            {
                icon.iconRange = ObjectPool.Get(UI.rangePrefab.gameObject, UI.rangesParent).GetComponent <MapIconRange>();
                ZetanUtility.SetActive(icon.iconRange.gameObject, true);
                icon.iconRange.rectTransform.sizeDelta = new Vector2(rangeSize, rangeSize);
            }
            icon.RemoveAble    = removeAble;
            icon.TextToDisplay = textToDisplay;
        }
    }
示例#3
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="position"></param>
 /// <param name="type"></param>
 /// <param name="style"></param>
 public BaseMapIcon(Vector3 position, MapIcon type, MapIconType style)
 {
     Position = position;
     Type     = type;
     Style    = style;
     Color    = Color.Red;
 }
示例#4
0
        public bool AddStaticItem(MapIconType type, Vector2 staticPosition, int radius = -1)
        {
            for (var i = 0; i < Entries.Length; i++)
            {
                var item = Entries[i] as RadarEntry;
                if (!item)
                {
                    continue;
                }

                if (staticPosition == (Vector2)item.StaticPosition)
                {
                    return(false);
                }
            }

            //add new entry
            RadarEntry newEntry = Add() as RadarEntry;

            if (!newEntry)
            {
                Logger.LogWarning($"Added {newEntry} is not an RadarEntry!", Category.NetUI);
                return(false);
            }

            //set its elements
            newEntry.Radius         = radius;
            newEntry.Type           = type;
            newEntry.StaticPosition = staticPosition;

            //rescan elements and notify
            NetworkTabManager.Instance.Rescan(MasterTab.NetTabDescriptor);

            return(true);
        }
示例#5
0
 public DynamicMapIcon(Vector3 position, Color color, MapIconType mapIconType = MapIconType.Local,
                       int worldid       = -1, int interiorid = -1,
                       BasePlayer player = null, float streamDistance = 100.0f, DynamicArea area = null, int priority = 0)
 {
     Id = Internal.CreateDynamicMapIcon(position.X, position.Y, position.Z, 0, color, worldid, interiorid,
                                        player?.Id ?? -1, streamDistance, (int)mapIconType, area?.Id ?? -1, priority);
 }
示例#6
0
    public MapIcon CreateMapIcon(Sprite iconSprite, Vector2 size, Vector3 worldPosition, bool keepOnMap, float rangeSize,
                                 MapIconType iconType, bool removeAble, string textToDisplay = "")
    {
        if (!UI || !UI.gameObject || !iconSprite)
        {
            return(null);
        }
        MapIcon icon = ObjectPool.Get(UI.iconPrefab.gameObject, SelectParent(iconType)).GetComponent <MapIcon>();

        icon.Init(iconSprite, size, worldPosition, keepOnMap, rangeSize, iconType, removeAble, textToDisplay);
        NormalIcons.Add(icon);
        return(icon);
    }
示例#7
0
 public void Init(Sprite iconSprite, Vector2 size, Vector3 worldPosition, bool keepOnMap,
                  MapIconType iconType, bool removeAble, string textToDisplay = "")
 {
     rectTransform.pivot      = new Vector2(0.5f, 0.5f);
     rectTransform.sizeDelta  = size;
     iconImage.overrideSprite = iconSprite;
     this.iconType            = iconType;
     ZetanUtility.SetActive(iconRange.gameObject, false);
     position           = worldPosition;
     this.keepOnMap     = keepOnMap;
     this.removeAble    = removeAble;
     this.textToDisplay = textToDisplay;
 }
示例#8
0
    public bool AddItems(MapIconType type, List <GameObject> objects)
    {
        var objectSet  = new HashSet <GameObject>(objects);
        var duplicates = new HashSet <GameObject>();

        for (var i = 0; i < Entries.Length; i++)
        {
            var item = Entries[i] as RadarEntry;
            if (!item)
            {
                continue;
            }

            if (objectSet.Contains(item.TrackedObject))
            {
                duplicates.Add(item.TrackedObject);
            }
        }

        for (var i = 0; i < objects.Count; i++)
        {
            var obj = objects[i];
            //skipping already found objects
            if (duplicates.Contains(obj))
            {
                continue;
            }

            //add new entry
            RadarEntry newEntry = Add() as RadarEntry;
            if (!newEntry)
            {
                Logger.LogWarning($"Added {newEntry} is not an RadarEntry!", Category.NetUI);
                return(false);
            }

            //set its elements
            newEntry.Type          = type;
            newEntry.TrackedObject = obj;
        }
//		Logger.Log( $"RadarList: Item add success! added {objects.Count} items" );

        //rescan elements and notify
        NetworkTabManager.Instance.Rescan(MasterTab.NetTabDescriptor);
        RefreshTrackedPos();

        return(true);
    }
示例#9
0
 public void Init(MapIconHolder holder)
 {
     rectTransform.pivot      = new Vector2(0.5f, 0.5f);
     rectTransform.sizeDelta  = holder.iconSize;
     iconImage.overrideSprite = holder.icon;
     iconType            = holder.iconType;
     holder.iconInstance = this;
     this.holder         = holder;
     if (holder.showRange)
     {
         ZetanUtility.SetActive(iconRange, true);
     }
     else
     {
         ZetanUtility.SetActive(iconRange, false);
     }
 }
示例#10
0
    private RectTransform SelectParent(MapIconType iconType)
    {
        switch (iconType)
        {
        case MapIconType.Normal:
            return(UI.iconsParent);

        case MapIconType.Main:
            return(UI.mainParent);

        case MapIconType.Mark:
            return(UI.marksParent);

        case MapIconType.Quest:
            return(UI.questsParent);

        case MapIconType.Objective:
            return(UI.objectivesParent);

        default:
            return(null);
        }
    }