public MinimapIcon(GameObject trackedObject, GameObject uiElement, GameObject uiPointer, Minimap.IconStyle style) { this.Rotation = true; this.Style = style; this.obj = trackedObject.transform; this.uiRect = uiElement.GetComponent <RectTransform>(); this.pointerRect = uiPointer.GetComponent <RectTransform>(); CatchDestroy component = this.obj.GetComponent <CatchDestroy>(); if (component == null) { this.obj.gameObject.AddComponent <CatchDestroy>().target = uiElement; } else { if (component.target != null && component.target != uiElement) { UnityEngine.Object.Destroy(component.target); } else { component.target = uiElement; } } }
public MinimapIcon(GameObject trackedObject, GameObject uiElement, Minimap.IconStyle style) { this.rotation = false; this.style = style; this.obj = trackedObject.transform; this.uiRect = uiElement.GetComponent <RectTransform>(); CatchDestroy component = this.obj.GetComponent <CatchDestroy>(); if (component == null) { this.obj.gameObject.AddComponent <CatchDestroy>().target = uiElement; } else if ((component.target != null) && (component.target != uiElement)) { UnityEngine.Object.Destroy(component.target); } else { component.target = uiElement; } }
public static Minimap.MinimapIcon CreateWithRotation(RectTransform parent, GameObject trackedObject, Minimap.IconStyle style, float pointerDist) { UnityEngine.Sprite spriteForStyle = Minimap.GetSpriteForStyle(style); GameObject uiElement = new GameObject("MinimapIcon"); RectTransform transform = uiElement.AddComponent <RectTransform>(); transform.anchorMin = transform.anchorMax = new Vector3(0.5f, 0.5f); transform.sizeDelta = new Vector2((float)spriteForStyle.texture.width, (float)spriteForStyle.texture.height); Image image = uiElement.AddComponent <Image>(); image.sprite = spriteForStyle; image.type = Image.Type.Simple; uiElement.transform.SetParent(parent, false); GameObject uiPointer = new GameObject("IconPointer"); RectTransform transform2 = uiPointer.AddComponent <RectTransform>(); transform2.anchorMin = transform2.anchorMax = transform.anchorMin; transform2.sizeDelta = new Vector2((float)Minimap.pointerSprite.texture.width, (float)Minimap.pointerSprite.texture.height); Image image2 = uiPointer.AddComponent <Image>(); image2.sprite = Minimap.pointerSprite; image2.type = Image.Type.Simple; uiPointer.transform.SetParent(transform, false); transform2.anchoredPosition = new Vector2(0f, pointerDist); return(new Minimap.MinimapIcon(trackedObject, uiElement, uiPointer, style)); }
public static Minimap.MinimapIcon Create(RectTransform parent, GameObject trackedObject, Minimap.IconStyle style) { UnityEngine.Sprite spriteForStyle = Minimap.GetSpriteForStyle(style); GameObject uiElement = new GameObject("MinimapIcon"); RectTransform transform = uiElement.AddComponent <RectTransform>(); transform.anchorMin = transform.anchorMax = new Vector3(0.5f, 0.5f); transform.sizeDelta = new Vector2((float)spriteForStyle.texture.width, (float)spriteForStyle.texture.height); Image image = uiElement.AddComponent <Image>(); image.sprite = spriteForStyle; image.type = Image.Type.Simple; uiElement.transform.SetParent(parent, false); return(new Minimap.MinimapIcon(trackedObject, uiElement, style)); }
private void TrackGameObject(GameObject objToTrack, Color iconColor, bool trackOrientation, bool depthAboveAll = false, Minimap.IconStyle iconStyle = Minimap.IconStyle.Circle) { if (minimap != null) { Minimap.MinimapIcon minimapIcon; if (trackOrientation) { minimapIcon = Minimap.MinimapIcon.CreateWithRotation(this.minimap, objToTrack, iconStyle, this.MINIMAP_POINTER_DIST); } else { minimapIcon = Minimap.MinimapIcon.Create(this.minimap, objToTrack, iconStyle); } minimapIcon.SetColor(iconColor); minimapIcon.SetDepth(depthAboveAll); Vector2 sizeForStyle = this.GetSizeForStyle(iconStyle); if (this.maximized) { minimapIcon.SetSize(sizeForStyle); if (minimapIcon.Rotation) { minimapIcon.SetPointerSize(this.MINIMAP_POINTER_SIZE, this.MINIMAP_POINTER_DIST); } } else { float num = 1f - ((float)this.MINIMAP_SIZE - this.MINIMAP_CORNER_SIZE) / (float)this.MINIMAP_SIZE; sizeForStyle.x = Mathf.Max(sizeForStyle.x * num, sizeForStyle.x * 0.5f); sizeForStyle.y = Mathf.Max(sizeForStyle.y * num, sizeForStyle.y * 0.5f); minimapIcon.SetSize(sizeForStyle); if (minimapIcon.Rotation) { float num2 = this.MINIMAP_POINTER_SIZE * num; num2 = Mathf.Max(num2, this.MINIMAP_POINTER_SIZE * 0.5f); float num3 = (this.MINIMAP_POINTER_SIZE - num2) / this.MINIMAP_POINTER_SIZE; num3 = this.MINIMAP_POINTER_DIST * num3; minimapIcon.SetPointerSize(num2, num3); } } if (this.minimapIcons == null) { this.minimapIcons = new MinimapIcon[] { minimapIcon }; } else { Minimap.MinimapIcon[] array = new Minimap.MinimapIcon[this.minimapIcons.Length + 1]; for (int i = 0; i < this.minimapIcons.Length; i++) { array[i] = this.minimapIcons[i]; } array[array.Length - 1] = minimapIcon; this.minimapIcons = array; } } }