Exemplo n.º 1
0
        /*__________________________________________________________________________________________________________*/

        protected static void Create(Transform parent, Picker colorGrid, int buttonCount, GameObject lockerPrefab = null)
        {
#if SUBNAUTICA
            lockerPrefab = Resources.Load <GameObject>("Submarine/Build/SmallLocker");
            var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren <Text>());
#elif BELOWZERO
            var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren <TextMeshProUGUI>());
#endif

            textPrefab.fontSize = 12;
            textPrefab.color    = ScreenContentColor;

            float padding  = 10;
            float width    = padding + colorGrid.ButtonSize + (colorGrid.ButtonsPerRow * colorGrid.Spacing);
            int   rowCount = Mathf.CeilToInt(colorGrid.ButtonsPerPage / (float)colorGrid.ButtonsPerRow);
            float height   = 20 + colorGrid.ButtonSize + ((rowCount - 0.5f) * colorGrid.Spacing);

            var rt = colorGrid.rectTransform;
            // The first Vector2 positions the colorGrid on the locker horz / vert.
            RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.6f), parent);
            RectTransformExtensions.SetSize(rt, width, height);

            colorGrid.background        = colorGrid.gameObject.AddComponent <Image>();
            colorGrid.background.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("Background.png"));
            colorGrid.background.color  = new Color(1, 1, 1);

            for (int i = 0; i < buttonCount; ++i)
            {
                var colorButton = ColorPickerButton.Create(colorGrid.transform, colorGrid.ButtonSize, colorGrid.ButtonSize * 0.7f);
                colorGrid.buttons.Add(colorButton);
            }
        }
        public static CheckboxButton CreateCheckbox(Transform parent, Color color, TextMeshProUGUI textPrefab, string label, float width = 100)
        {
#endif
            var checkboxButton = new GameObject("Checkbox", typeof(RectTransform));
            var rt             = checkboxButton.transform as RectTransform;
            RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent);
            RectTransformExtensions.SetSize(rt, width, 20);
            rt.anchoredPosition = new Vector2(0, 0);

            var iconWidth = 20;
            var checkbox  = LockerPrefabShared.CreateIcon(rt, color, 0);
            RectTransformExtensions.SetSize(checkbox.rectTransform, iconWidth, iconWidth);
            checkbox.rectTransform.anchoredPosition = new Vector2(-width / 2 + iconWidth / 2, 0);

            var spacing = 5;
            var text    = LockerPrefabShared.CreateText(rt, textPrefab, color, 0, 10, label);
            RectTransformExtensions.SetSize(text.rectTransform, width - iconWidth - spacing, iconWidth);
            text.rectTransform.anchoredPosition = new Vector2(iconWidth / 2 + spacing, 0);
#if SN1
            text.alignment = TextAnchor.MiddleLeft;
#elif BZ
            text.alignment = TextAlignmentOptions.MidlineLeft;
#endif
            checkboxButton.AddComponent <BoxCollider2D>();

            var button = checkboxButton.AddComponent <CheckboxButton>();
            button.image   = checkbox;
            button.text    = text;
            button.UpColor = color;

            return(button);
        }
        internal static TextMeshProUGUI CreateText(Transform parent, TextMeshProUGUI prefab, Color color, int y, int size, string initial, string lockerType)
        {
            var text = new GameObject("TextMeshProUGUI", typeof(RectTransform)).AddComponent <TextMeshProUGUI>();
#endif
            var rt = text.rectTransform;

            // Positions the "Locker" label on the locker
            RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent);

            // The size of the Filter rectangle for each locker type
            if (lockerType == "Locker(Clone)")
            {
                RectTransformExtensions.SetSize(rt, 138, 200);
            }
            else
            {
                RectTransformExtensions.SetSize(rt, 112, 200);
            }

            rt.anchoredPosition = new Vector2(0, y);

            text.font     = prefab.font;
            text.fontSize = size;
            text.color    = color;
            text.text     = initial;

            return(text);
        }
Exemplo n.º 4
0
        private static void PatchSmallLocker(uGUI_SignInput __instance)
        {
            __instance.inputField.lineType = InputField.LineType.MultiLineNewline;
            //__instance.inputField.lineType = TMPro.TMP_InputField.LineType.MultiLineNewline;
            //The Multiline Feature seems to be broken. It was switched to the TextMeshPro Libary and after this it worked agein.
            //For now waiting for the experimental Branch to get Stable to see if this can be fixed on SN too like BZ.
            __instance.inputField.characterLimit = Mod.Config.SmallLockerTextLimit;

            var rt = __instance.inputField.transform as RectTransform;

            RectTransformExtensions.SetSize(rt, rt.rect.width, TextFieldHeight);

            GameObject.Destroy(__instance.inputField.textComponent.GetComponent <ContentSizeFitter>());
            rt = __instance.inputField.textComponent.transform as RectTransform;
            RectTransformExtensions.SetSize(rt, rt.rect.width, TextFieldHeight);

            __instance.inputField.textComponent.alignment = TextAnchor.MiddleCenter;
            //__instance.inputField.textComponent.alignment = TMPro.TextAlignmentOptions.Center;
            //The TextAnchor Feature seems to be broken. It was switched to the TextMeshPro Libary and after this it worked agein.
            //For now waiting for the experimental Branch to get Stable to see if this can be fixed on SN too like BZ.

            if (Mod.Config.ColorPickerOnLockers)
            {
                var currentButton = __instance.transform.GetChild(1).GetComponent <Button>();
                var height        = Mod.Config.ExtraColorsOnLockers ? 1200 : 210;
                AddColorPickerSystem(__instance, currentButton, "LOCKER", -20, height);
            }
        }
Exemplo n.º 5
0
    public void ShowResultPanel(Dictionary <string, int> rewardList)
    {
        GameObject container = transform.Find("ItemPanel/Container").gameObject;

        foreach (Transform item in container.transform)
        {
            Destroy(item.gameObject);
        }

        foreach (KeyValuePair <string, int> resource in rewardList)
        {
            GameObject itemGO = new GameObject();
            itemGO.transform.SetParent(container.transform);

            if (LoadManager.Instance.allResourceData.ContainsKey(resource.Key))
            {
                itemGO.AddComponent <Image>().sprite = Resources.Load <Sprite>(LoadManager.Instance.allResourceData[resource.Key].spritePath);
            }
            else if (LoadManager.Instance.allEquipmentData.ContainsKey(resource.Key))
            {
                itemGO.AddComponent <Image>().sprite = Resources.Load <Sprite>(LoadManager.Instance.allEquipmentData[resource.Key].spritePath);
            }

            GameObject textGO = new GameObject();
            textGO.name = "Amount";
            textGO.transform.SetParent(itemGO.transform);
            Text text = textGO.AddComponent <Text>();
            text.text = resource.Value.ToString();
            text.GetComponent <Text>().font     = Resources.GetBuiltinResource(typeof(Font), "Arial.ttf") as Font;
            text.GetComponent <Text>().fontSize = 20;
            RectTransformExtensions.SetAnchor(text.GetComponent <RectTransform>(), AnchorPresets.BottonCenter);
            text.transform.position = text.transform.position + new Vector3(0, -10, 0);
        }
    }
        private void Init(TechType techType, bool first, bool last)
        {
            this.techType = techType;

            var quickSlots = GameObject.FindObjectOfType <uGUI_QuickSlots>();
            var bgSprite   = first ? quickSlots.spriteLeft : last ? quickSlots.spriteRight : quickSlots.spriteCenter;

            (transform as RectTransform).SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, bgSprite.rect.width);
            (transform as RectTransform).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, bgSprite.rect.height);

            layout           = gameObject.AddComponent <LayoutElement>();
            layout.minWidth  = bgSprite.rect.width;
            layout.minHeight = bgSprite.rect.height;

            background               = gameObject.AddComponent <Image>();
            background.color         = new Color(1, 1, 1, 0.5f);
            background.raycastTarget = false;
            background.material      = quickSlots.materialBackground;
            background.sprite        = bgSprite;

            button = new GameObject(name, typeof(RectTransform)).AddComponent <PinButton>();
            var brt = button.transform as RectTransform;

            RectTransformExtensions.SetParams(brt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), transform);
            brt.anchoredPosition = new Vector2(0, 0);
            RectTransformExtensions.SetSize(brt, 30, 30);

            button.SetMode(PinButton.Mode.Cross);
            button.onClick += OnButtonClick;
        }
Exemplo n.º 7
0
    GameObject PlayerBar(Entity playerMapEntity)
    {
        GameObject barObject = new GameObject("Player HP Bar");

        RectTransform rectTransform = barObject.AddComponent <RectTransform>();

        RectTransformExtensions.SetSize(rectTransform, new Vector2(70, 10));

        Sprite spriteBar = Resources.Load <Sprite>("simple_1_bar");
        Sprite spriteFg  = Resources.Load <Sprite>("simple_1_fg");

        EnergyBarUGUIBase.SpriteTex spriteFgTex = new EnergyBarUGUIBase.SpriteTex();
        spriteFgTex.sprite = spriteFg;

        List <EnergyBarUGUIBase.SpriteTex> foregroundSprites = new List <EnergyBarUGUIBase.SpriteTex>();

        foregroundSprites.Add(spriteFgTex);

        FilledRendererUGUI renderer = barObject.AddComponent <FilledRendererUGUI>();

        renderer.spriteBar         = spriteBar;
        renderer.spriteBarColor    = Color.green;
        renderer.spritesForeground = foregroundSprites;

        EnergyBar bar = barObject.AddComponent <EnergyBar>();

        EnergyBarFollowObject barFollow = barObject.AddComponent <EnergyBarFollowObject>();

        barFollow.followObject = playerMapEntity.gameObject.transform.Find("HP Bar Anchor").gameObject;

        return(barObject);
    }
Exemplo n.º 8
0
        public static PickerButton Create(Transform parent, Text textPrefab, Action <AutosorterFilter> action, int width = 100, int height = 18)
        {
            var button = new GameObject("PickerButton", typeof(RectTransform)).AddComponent <PickerButton>();

            button.transform.SetParent(parent, false);

            button.background = new GameObject("Background", typeof(RectTransform)).AddComponent <Image>();
            RectTransformExtensions.SetParams(button.background.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), button.transform);
            RectTransformExtensions.SetSize(button.background.rectTransform, width * 10, height * 10);
            button.background.rectTransform.localScale = new Vector3(0.1f, 0.1f, 1);
            button.background.sprite = ImageUtils.Load9SliceSprite(Mod.GetAssetPath("MainMenuStandardSprite.png"), new RectOffset(Slice, Slice, Slice, Slice));
            button.background.color  = upColor;
            button.background.type   = Image.Type.Sliced;

            button.text = new GameObject("Text", typeof(RectTransform)).AddComponent <Text>();
            RectTransformExtensions.SetParams(button.text.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), button.transform);
            RectTransformExtensions.SetSize(button.text.rectTransform, width, height);
            button.text.color     = new Color(1, 1, 1);
            button.text.font      = textPrefab.font;
            button.text.fontSize  = 10;
            button.text.alignment = TextAnchor.MiddleCenter;

            button.onClick += action;

            return(button);
        }
Exemplo n.º 9
0
        private void Awake()
        {
            GameObject resourceTracker = uGUI.main.gameObject.transform.Find("ScreenCanvas/ResourceTracker").gameObject;

            uGUI_ResourceTracker uGUI_ResourceTracker = resourceTracker.GetComponent <uGUI_ResourceTracker>();

            blip = UWE.Utils.InstantiateDeactivated(resourceTracker.transform.Find("blip").gameObject);
            blip.transform.SetParent(transform, false);
            blip.name = "blip";

            GameObject distanceText = Instantiate(blip.transform.Find("text").gameObject, blip.transform);

            distanceText.name = "distanceText";
            distanceText.SetActive(false);

            Color color = new Color(1, 0, 0, 1);

            TextMeshProUGUI tmproDist = distanceText.GetComponent <TextMeshProUGUI>();

            tmproDist.color = color;

            TextMeshProUGUI tmproText = blip.transform.Find("text").GetComponent <TextMeshProUGUI>();

            tmproText.color = color;

            RectTransformExtensions.CenterRect(distanceText.transform as RectTransform, Vector2.zero);

            Image image = blip.GetComponent <Image>();

            image.color = color;

            mainCanvas = UWE.Utils.InstantiateDeactivated(resourceTracker.transform.Find("mainCanvas").gameObject);
            mainCanvas.transform.SetParent(transform, false);
            mainCanvas.name = "mainCanvas";
        }
Exemplo n.º 10
0
        public void Initialize(Text textPrefab, GameObject batteryUI)
        {
            text = GameObject.Instantiate(textPrefab);
            text.gameObject.name = "PercentText";
            text.rectTransform.SetParent(transform, false);
            RectTransformExtensions.SetSize(text.rectTransform, 100, 100);

            float scale = 1 / 4.0f;

            var rt = batteryUI.transform as RectTransform;

            RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), transform);
            RectTransformExtensions.SetSize(rt, 136 * scale, 256 * scale);
            rt.anchoredPosition = new Vector2(0, 0);
            rt.localEulerAngles = new Vector3(0, 0, -90);
            bar          = batteryUI.transform.Find("Bar").GetComponent <Image>();
            bar.material = new Material(bar.material);
            Destroy(batteryUI.transform.Find("Text").gameObject);
            Destroy(batteryUI.transform.Find("Label").gameObject);

            bar.gameObject.SetActive(true);
            bar.transform.localScale = new Vector3(scale, scale, 1);

            text.transform.SetAsLastSibling();

            UpdateNoBattery();
        }
Exemplo n.º 11
0
        internal static Canvas CreateCanvas(Transform parent)
        {
            var canvas = new GameObject("Canvas", typeof(RectTransform)).AddComponent <Canvas>();
            var t      = canvas.transform;

            t.SetParent(parent, false);
            canvas.sortingLayerID = 1;

            var raycaster = canvas.gameObject.AddComponent <uGUI_GraphicRaycaster>();

            var rt = t as RectTransform;

            RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f));
            RectTransformExtensions.SetSize(rt, 1.7f, 3.0f);

            t.localPosition = new Vector3(0, 0, 0.345f);
            t.localRotation = new Quaternion(0, 1, 0, 0);
            t.localScale    = new Vector3(0.5f, 0.5f, 0.5f);

            canvas.scaleFactor            = 0.01f;
            canvas.renderMode             = RenderMode.WorldSpace;
            canvas.referencePixelsPerUnit = 100;

            var scaler = canvas.gameObject.AddComponent <CanvasScaler>();

            scaler.dynamicPixelsPerUnit = 20;

            return(canvas);
        }
Exemplo n.º 12
0
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public static ColoredIconButton Create(Transform parent, Color color, Text textPrefab = null, string label = "", float width = 100, float iconWidth = 20)
        {
            var checkboxButton = new GameObject("Checkbox", typeof(RectTransform));
            var rt             = checkboxButton.transform as RectTransform;

            RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent);
            RectTransformExtensions.SetSize(rt, width, 20);
            rt.anchoredPosition = new Vector2(0, 0);

            var checkbox = LockerPrefabShared.CreateIcon(rt, color, 0);

            RectTransformExtensions.SetSize(checkbox.rectTransform, iconWidth, iconWidth);
            checkbox.rectTransform.anchoredPosition = new Vector2(textPrefab != null ? -width / 2 + 10 : 0, 0);

            Text text = null;

            if (textPrefab != null)
            {
                var spacing = 5;
                text = LockerPrefabShared.CreateText(rt, textPrefab, color, 0, 10, label);
                RectTransformExtensions.SetSize(text.rectTransform, width - 20 - spacing, 20);
                text.rectTransform.anchoredPosition = new Vector2(10 + spacing, 0);
                text.alignment = TextAnchor.MiddleLeft;
            }

            checkboxButton.AddComponent <BoxCollider2D>();

            var button = checkboxButton.AddComponent <ColoredIconButton>();

            button.image   = checkbox;
            button.text    = text ?? null;
            button.UpColor = color;

            return(button);
        }
Exemplo n.º 13
0
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public static PingColorButton Create(Transform parent, Color color, float iconWidth = 60, float editIconWidth = 30)
        {
            var button = new GameObject("ColorButton", typeof(RectTransform));
            var rt     = button.transform as RectTransform;

            RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent);
            RectTransformExtensions.SetSize(rt, iconWidth, iconWidth);
            rt.anchoredPosition = new Vector2(0, 0);

            var icon = LockerPrefabShared.CreateIcon(rt, color, 0);

            icon.gameObject.name = "ColorIcon";
            RectTransformExtensions.SetSize(icon.rectTransform, iconWidth, iconWidth);
            icon.rectTransform.anchoredPosition = new Vector2(0, 0);

            var editIcon = LockerPrefabShared.CreateIcon(rt, color, 0);

            editIcon.gameObject.name = "EditIcon";
            RectTransformExtensions.SetSize(editIcon.rectTransform, editIconWidth, editIconWidth);
            editIcon.rectTransform.anchoredPosition = new Vector2(0, 0);
            editIcon.gameObject.SetActive(false);

            button.AddComponent <BoxCollider2D>();

            var pingColorButton = button.AddComponent <PingColorButton>();

            pingColorButton.image     = icon;
            pingColorButton.editImage = editIcon;

            var layout = pingColorButton.gameObject.AddComponent <LayoutElement>();

            layout.ignoreLayout = true;

            return(pingColorButton);
        }
Exemplo n.º 14
0
        ///////////////////////////////////////////////////////////////////////////////////////////////////////
        protected static void Create(Transform parent, Picker instance, int buttonCount)
        {
            var lockerPrefab = Resources.Load <GameObject>("Submarine/Build/SmallLocker");
            var textPrefab   = Instantiate(lockerPrefab.GetComponentInChildren <Text>());

            textPrefab.fontSize = 16;
            textPrefab.color    = ScreenContentColor;

            float padding  = 30;
            float width    = padding + instance.ButtonSize + ((instance.ButtonsPerRow - 1) * instance.Spacing) - 20;
            int   rowCount = Mathf.CeilToInt(instance.ButtonsPerPage / (float)instance.ButtonsPerRow);
            float height   = padding + instance.ButtonSize + ((rowCount - 0.5f) * instance.Spacing);

            var rt = instance.rectTransform;

            RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent);
            RectTransformExtensions.SetSize(rt, width, height);

            instance.background      = instance.gameObject.AddComponent <Image>();
            instance.background.type = Image.Type.Sliced;
            instance.background.rectTransform.anchoredPosition = new Vector2(0, -20);

            instance.pageText = LockerPrefabShared.CreateText(instance.transform, textPrefab, Color.white, 0, 10, "X/X");
            RectTransformExtensions.SetSize(instance.pageText.rectTransform, 30, 20);

            for (int i = 0; i < buttonCount; ++i)
            {
                var colorButton = ColorPickerButton.Create(instance.transform, instance.ButtonSize, instance.ButtonSize * 0.7f);
                instance.buttons.Add(colorButton);
            }

            instance.prevPageButton = ColorPickerPageButton.Create(instance.transform, Color.white);
            instance.nextPageButton = ColorPickerPageButton.Create(instance.transform, Color.white);
        }
Exemplo n.º 15
0
        protected static void Create(Transform parent, Picker instance, int buttonCount)
        {
            var lockerPrefab = Resources.Load <GameObject>("Submarine/Build/SmallLocker");
            var textPrefab   = Instantiate(lockerPrefab.GetComponentInChildren <Text>());

            textPrefab.fontSize = 12;
            textPrefab.color    = HabitatControlPanel.ScreenContentColor;

            var rt = instance.rectTransform;

            RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent);
            RectTransformExtensions.SetSize(rt, 1000 / 5.0f, (buttonCount <= 10 ? 400 : 900) / 5.0f);

            instance.background = instance.gameObject.AddComponent <Image>();

            for (int i = 0; i < buttonCount; ++i)
            {
                var colorButton = PickerButton.Create(instance.transform, ButtonSize, ButtonSize * 0.7f);
                instance.buttons.Add(colorButton);
            }

            instance.prevPageButton = PickerPageButton.Create(instance.transform, Color.white);
            (instance.prevPageButton.transform as RectTransform).anchoredPosition = new Vector2(-20, -70);

            instance.nextPageButton = PickerPageButton.Create(instance.transform, Color.white);
            (instance.nextPageButton.transform as RectTransform).anchoredPosition = new Vector2(20, -70);

            instance.pageText = LockerPrefabShared.CreateText(instance.transform, textPrefab, Color.white, 0, 10, "X/X");
            RectTransformExtensions.SetSize(instance.pageText.rectTransform, 20, 20);
            instance.pageText.rectTransform.anchoredPosition = new Vector2(0, -70);
        }
Exemplo n.º 16
0
    public void Configure(string message, Popup parent, float parentBottom, float duration = 5)
    {
        Parent = parent;
        Text text = transform.Find("Text").GetComponent <Text>();

        text.text = message;
        MaxLife   = duration;

        ParentBottom = parentBottom;
        Height       = text.preferredHeight + Border * 2f;
        RectTransformExtensions.SetHeight(((RectTransform)transform), Height);

        float lastPopupBottom = ParentBottom;

        if (parent.Popups.Count > 0)
        {
            GameObject    lastPopup = parent.Popups[parent.Popups.Count - 1];
            RectTransform rectTrans = (RectTransform)lastPopup.transform;
            lastPopupBottom = rectTrans.localPosition.y - rectTrans.rect.height / 2f;
        }

        BoxCollider2D collider = this.GetComponent <BoxCollider2D>();

        collider.size           = new Vector3(collider.size.x, Height + Border);
        transform.localPosition = new Vector3(0, lastPopupBottom - (Height + Border * 5f) / 2f, 0);

        //return transform.localPosition.y - Height / 2f;
    }
Exemplo n.º 17
0
    GameObject PlayerBar()
    {
        GameObject barObject = new GameObject("Player HP Bar");

        RectTransform rectTransform = barObject.AddComponent <RectTransform>();

        RectTransformExtensions.SetSize(rectTransform, new Vector2(150, 20));
        rectTransform.localPosition = new Vector3(Screen.width - 110, (Screen.height - (Screen.height - 65)), 0);

        Sprite spriteBar = Resources.Load <Sprite>("simple_1_bar");
        Sprite spriteFg  = Resources.Load <Sprite>("simple_1_fg");

        EnergyBarUGUIBase.SpriteTex spriteFgTex = new EnergyBarUGUIBase.SpriteTex();
        spriteFgTex.sprite = spriteFg;

        List <EnergyBarUGUIBase.SpriteTex> foregroundSprites = new List <EnergyBarUGUIBase.SpriteTex>();

        foregroundSprites.Add(spriteFgTex);

        FilledRendererUGUI renderer = barObject.AddComponent <FilledRendererUGUI>();

        renderer.spriteBar         = spriteBar;
        renderer.spriteBarColor    = Color.green;
        renderer.spritesForeground = foregroundSprites;

        EnergyBar bar = barObject.AddComponent <EnergyBar>();

        return(barObject);
    }
Exemplo n.º 18
0
        private GameObject CreateModuleDisplay(Vector3 position, Quaternion rotation)
        {
            const float scale = 0.215f;

            Canvas    canvas = new GameObject("Canvas", typeof(RectTransform)).AddComponent <Canvas>();
            Transform t      = canvas.transform;

            t.SetParent(this.transform, false);
            canvas.sortingLayerID = 1;

            uGUI_GraphicRaycaster raycaster = canvas.gameObject.AddComponent <uGUI_GraphicRaycaster>();

            var rt = t as RectTransform;

            RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f));
            RectTransformExtensions.SetSize(rt, 0.5f, 0.5f);

            t.localPosition = position;
            t.localRotation = rotation;
            t.localScale    = new Vector3(scale, scale, scale);

            canvas.scaleFactor            = 0.01f;
            canvas.renderMode             = RenderMode.WorldSpace;
            canvas.referencePixelsPerUnit = 100;

            CanvasScaler scaler = canvas.gameObject.AddComponent <CanvasScaler>();

            scaler.dynamicPixelsPerUnit = 20;

            uGUI_Icon icon = canvas.gameObject.AddComponent <uGUI_Icon>();

            return(canvas.gameObject);
        }
        private void Awake()
        {
            var buttonPositionCenter = new Vector2(0, 0);
            var buttonSpacing        = 104;

            var parent = GetComponentInChildren <Canvas>().transform;
            var color  = new Color32(189, 255, 255, 255);

            var text = new GameObject("label", typeof(RectTransform)).AddComponent <Text>();

            RectTransformExtensions.SetParams(text.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent);
            RectTransformExtensions.SetSize(text.rectTransform, 500, 140);
            text.rectTransform.anchoredPosition = buttonPositionCenter + new Vector2(0, 80);
            text.color         = GetComponentInChildren <Text>().color;
            text.text          = "Position";
            text.fontSize      = Mathf.FloorToInt(GetComponentInChildren <Text>().fontSize * 1.8f);
            text.font          = GetComponentInChildren <Text>().font;
            text.alignment     = TextAnchor.MiddleCenter;
            text.raycastTarget = false;

            for (int i = 0; i < 4; ++i)
            {
                var button = CheckboxButton.CreateCheckboxNoText(parent, color, 100);
                button.Initialize();
                button.toggled = false;
                button.rectTransform.anchoredPosition = buttonPositionCenter + new Vector2((-1.5f + i) * buttonSpacing, 0);
                var buttonIndex = i;
                button.onToggled = (bool toggled) => {
                    SetPosition(buttonIndex);
                };
                positionButtons.Add(button);
            }

            OnProtoDeserialize(null);
        }
Exemplo n.º 20
0
        public static GameObject CreateNewText(string name, Transform parent, TextAnchor anchor)
        {
            Text prefab = GameObject.FindObjectOfType <HandReticle>().interactPrimaryText;

            if (prefab == null)
            {
                Logger.Log("Could not find text prefab! (HandReticle.interactPrimaryText)");
                return(null);
            }

            Text text = GameObject.Instantiate(prefab);

            text.gameObject.layer = parent.gameObject.layer;
            text.gameObject.name  = name;
            text.transform.SetParent(parent, false);
            text.transform.localScale = new Vector3(1, 1, 1);
            text.gameObject.SetActive(true);
            text.enabled  = true;
            text.text     = "";
            text.fontSize = 20;
            RectTransformExtensions.SetParams(text.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent);
            text.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 700);
            text.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 30);
            text.rectTransform.anchoredPosition = new Vector3(0, 0);
            text.alignment     = anchor;
            text.raycastTarget = false;

            return(text.gameObject);
        }
Exemplo n.º 21
0
 public static void zero_margins(RectTransform rectTransform)
 {
     // anchors are set correctly, but margins are off. zero all margins to match anchor location
     RectTransformExtensions.SetLeft(rectTransform, 0);
     RectTransformExtensions.SetBottom(rectTransform, 0);
     RectTransformExtensions.SetRight(rectTransform, 0);
     RectTransformExtensions.SetTop(rectTransform, 0);
 }
Exemplo n.º 22
0
 private void Update()
 {
     if (hasFocus && (RectTransformExtensions.PressOutsideTransform(rectTransform) || RectTransformExtensions.PressOutsideTransform(rectTransform)))
     {
         //if the navigation has focus and there is a touch outside the navigation, close it
         ToggleDisplay();
     }
 }
Exemplo n.º 23
0
 private void Update()
 {
     if (isScreenVisible && (RectTransformExtensions.PressOutsideTransform(screenTransform) || RectTransformExtensions.PressOutsideTransform(screenTransform)))
     {
         //if the navigation has focus and there is a touch outside the navigation, close it
         ToggleNotificationScreen();
     }
 }
        private void Init(IIngredient ingredient, Atlas.Sprite sprite, bool first, bool last)
        {
            this.ingredient = ingredient;
            bool mainIcon = ingredient == null;

            var quickSlots = GameObject.FindObjectOfType <uGUI_QuickSlots>();
            var bgSprite   = first ? quickSlots.spriteLeft : last ? quickSlots.spriteRight : quickSlots.spriteCenter;

            (transform as RectTransform).SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, bgSprite.rect.width);
            (transform as RectTransform).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, bgSprite.rect.height);

            layout           = gameObject.AddComponent <LayoutElement>();
            layout.minWidth  = bgSprite.rect.width;
            layout.minHeight = bgSprite.rect.height;

            background               = gameObject.AddComponent <Image>();
            background.color         = new Color(1, 1, 1, Mod.config.BackgroundAlpha);
            background.raycastTarget = false;
            background.material      = quickSlots.materialBackground;
            background.sprite        = bgSprite;

            icon = new GameObject("Icon").AddComponent <uGUI_ItemIcon>();
            icon.transform.SetParent(transform, false);
            icon.SetForegroundSprite(sprite);
            if (mainIcon)
            {
                icon.SetSize(Width, Width);
            }
            else
            {
                icon.SetSize(IconWidth, IconWidth);
            }
            icon.rectTransform.anchorMin        = new Vector2(0.5f, 0.5f);
            icon.rectTransform.anchorMax        = new Vector2(0.5f, 0.5f);
            icon.rectTransform.pivot            = new Vector2(0.5f, 0.5f);
            icon.rectTransform.anchoredPosition = new Vector2(0, 0);
            icon.raycastTarget = false;

            if (!mainIcon)
            {
                text = ModUtils.InstantiateNewText("Text", transform);
                RectTransformExtensions.SetSize(text.rectTransform, Width, Width);
                text.rectTransform.anchorMin        = new Vector2(0.5f, 0);
                text.rectTransform.anchorMax        = new Vector2(0.5f, 0);
                text.rectTransform.pivot            = new Vector2(0.5f, 0);
                text.rectTransform.anchoredPosition = new Vector2(0, 0);
                text.alignment     = TextAnchor.LowerCenter;
                text.fontSize      = Mod.config.FontSize;
                text.raycastTarget = false;

                ColorUtility.TryParseHtmlString(Mod.config.ColorblindMode ? IngredientColorGoodColorblind : IngredientColorGood, out goodColor);
                ColorUtility.TryParseHtmlString(Mod.config.ColorblindMode ? IngredientColorBadColorblind : IngredientColorBad, out badColor);
            }

            UpdateText();
        }
Exemplo n.º 25
0
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public static CustomizeScreen Create(Transform parent, SaveDataEntry data, GameObject lockerPrefab = null)
        {
#if SUBNAUTICA
            lockerPrefab = Resources.Load <GameObject>("Submarine/Build/SmallLocker");
            var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren <Text>());
#elif BELOWZERO
            var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren <TextMeshProUGUI>());
#endif
            textPrefab.fontSize = 12;
            textPrefab.color    = CustomizeScreen.ScreenContentColor;

            var screen = new GameObject("CustomizeScreen", typeof(RectTransform)).AddComponent <CustomizeScreen>();
            RectTransformExtensions.SetParams(screen.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent);
            RectTransformExtensions.SetSize(screen.rectTransform, 114, 241);

            screen.background        = new GameObject("Background").AddComponent <Image>();
            screen.background.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("CustomizeScreen.png"));
            RectTransformExtensions.SetParams(screen.background.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), screen.transform);
            RectTransformExtensions.SetSize(screen.background.rectTransform, 114, 241);

            screen.labelLabel = LockerPrefabShared.CreateText(screen.background.transform, textPrefab, ScreenContentColor, 100, 9, "Label:");
            RectTransformExtensions.SetSize(screen.labelLabel.rectTransform, 90, 40);
#if SUBNAUTICA
            screen.labelLabel.alignment = TextAnchor.MiddleLeft;
#elif BELOWZERO
            screen.labelLabel.alignment = TextAlignmentOptions.MidlineLeft;
#endif

            screen.label = LabelController.Create(data, screen.background.transform, lockerPrefab);
            screen.label.rectTransform.anchoredPosition = new Vector2(0, 80);

            screen.exitButton = ConfigureButton.Create(screen.background.transform, Color.white, 40);

            var startX = 0;
            var startY = 30;
            screen.labelColorSetting = ColorSetting.Create(screen.background.transform, "Label Color", lockerPrefab);
            screen.labelColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY);

            screen.iconColorSetting = ColorSetting.Create(screen.background.transform, "Icon Color", lockerPrefab);
            screen.iconColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - 19);

            screen.textColorSetting = ColorSetting.Create(screen.background.transform, "Filters Color", lockerPrefab);
            screen.textColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - (19 * 2));

            screen.buttonsColorSetting = ColorSetting.Create(screen.background.transform, "Misc Color", lockerPrefab);
            screen.buttonsColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - (19 * 3));

            screen.lockerColorSetting = ColorSetting.Create(screen.background.transform, "Locker Color", lockerPrefab);
            screen.lockerColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - (19 * 4));

            screen.colorPicker = ColorPicker.Create(screen.background.transform, lockerPrefab);
            screen.colorPicker.gameObject.SetActive(false);
            screen.colorPicker.rectTransform.anchoredPosition = new Vector2(0, 30);

            return(screen);
        }
Exemplo n.º 26
0
        private void AddBrick(Color c, float x, float y)
        {
            var brick = new GameObject("Brick").AddComponent <Image>();

            RectTransformExtensions.SetParams(brick.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), transform);
            RectTransformExtensions.SetSize(brick.rectTransform, BrickWidth, BrickHeight);
            brick.rectTransform.anchoredPosition = new Vector2(x, y);
            brick.color = c;

            bricks.Add(brick.gameObject);
        }
Exemplo n.º 27
0
 private void Update()
 {
     if (DigiDIntro.Finished)
     {
         digidIntroActive = false;
     }
     if (hasFocus && (RectTransformExtensions.PressOutsideTransform(rectTransform) || RectTransformExtensions.PressOutsideTransform(rectTransform)) && !digidIntroActive)
     {
         ToggleCellPhone();
     }
 }
        private static Image CreateUnderline(Transform parent, int x)
        {
            var underline = new GameObject("Underline", typeof(RectTransform)).AddComponent <Image>();

            RectTransformExtensions.SetParams(underline.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent);
            RectTransformExtensions.SetSize(underline.rectTransform, 272 / 3, 78 / 3);
            underline.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("TitleUnderline.png"));
            underline.rectTransform.anchoredPosition = new Vector2(x, 90);

            return(underline);
        }
Exemplo n.º 29
0
    private void OnMouseDown()
    {
        if (EventSystem.current.IsPointerOverGameObject())
            return;

        if (RectTransformExtensions.IsPointerOverUIObject())
            return;

        UIManager.Instance.TowerToWork = this;
        UIManager.Instance.ShowUpdatePanel();
    }
Exemplo n.º 30
0
            private static bool Prefix(uGUI_SeamothHUD __instance)
            {
                var t = __instance.root.transform.parent.Find("TorpedoHud");

                if (t == null)
                {
                    var torpedoRoot = new GameObject("TorpedoHud", typeof(RectTransform)).AddComponent <TorpedoHudController>();
                    RectTransformExtensions.SetParams(torpedoRoot.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), __instance.root.transform.parent);
                }
                return(true);
            }