Exemple #1
0
                    public CuiElement GetButtonBackground()
                    {
                        var imageComponent = new CuiRawImageComponent();

                        if (Color.IsLink)
                        {
                            imageComponent.Png = ImageLibraryGet(ButtonBackgroundName);
                        }
                        else
                        {
                            imageComponent.Color    = Color.GetColor;
                            imageComponent.Sprite   = Color.Sprite;
                            imageComponent.Material = Color.Material;
                        }

                        return(new CuiElement
                        {
                            Name = ButtonBackgroundName,
                            Parent = _config.UI.MenuName,
                            Components =
                            {
                                imageComponent,
                                new CuiRectTransformComponent
                                {
                                    AnchorMin = Position.Anchors.AnchorsMin,
                                    AnchorMax = Position.Anchors.AnchorsMax,
                                    OffsetMin = Position.Offsets.OffsetsMin,
                                    OffsetMax = Position.Offsets.OffsetsMax
                                },
                                new CuiNeedsCursorComponent()
                            }
                        });
                    }
Exemple #2
0
                public CuiElement GetMenuBackground()
                {
                    var imageComponent = new CuiRawImageComponent();

                    if (MenuBackgroundColor.IsLink)
                    {
                        imageComponent.Png = ImageLibraryGet(MenuBackgroundName);
                    }
                    else
                    {
                        imageComponent.Color    = MenuBackgroundColor.GetColor;
                        imageComponent.Sprite   = MenuBackgroundColor.Sprite;
                        imageComponent.Material = MenuBackgroundColor.Material;
                    }

                    return(new CuiElement
                    {
                        Name = MenuBackgroundName,
                        Parent = "Overlay",
                        Components =
                        {
                            imageComponent,
                            new CuiRectTransformComponent
                            {
                                AnchorMin = "0.0 0.0",
                                AnchorMax = "1.0 1.0"
                            },
                            new CuiNeedsCursorComponent()
                        }
                    });
                }
Exemple #3
0
            public UIRawImage(Vector2 min, Vector2 max, UIBaseElement parent = null, string url = "") : base(min, max, parent)
            {
                Image = new CuiRawImageComponent()
                {
                    Url    = url,
                    Sprite = "assets/content/textures/generic/fulltransparent.tga"
                };

                Element.Components.Insert(0, Image);
            }
        void RenderMode(BasePlayer player, bool repair = false)
        {
            CuiHelper.DestroyUi(player, "EnhancedHammerUI");
            if (PlayerHasFlag(player.userID, PlayerFlags.PLUGIN_DISABLED) ||
                PlayerHasFlag(player.userID, PlayerFlags.ICONS_DISABLED) ||
                (!repair && playersInfo[player.userID].upgradeInfo == BuildingGrade.Enum.Count))
            {
                return;
            }

            CuiElementContainer panel = new CuiElementContainer();
            string icon = "http://i.imgur.com/Nq6DNSX.png";

            if (!repair)
            {
                switch (playersInfo[player.userID].upgradeInfo)
                {
                case BuildingGrade.Enum.Wood:
                    icon = "http://i.imgur.com/F4XBBhY.png";
                    break;

                case BuildingGrade.Enum.Stone:
                    icon = "http://i.imgur.com/S7Sl9oh.png";
                    break;

                case BuildingGrade.Enum.Metal:
                    icon = "http://i.imgur.com/fVjzbag.png";
                    break;

                case BuildingGrade.Enum.TopTier:
                    icon = "http://i.imgur.com/f0WklR3.png";
                    break;
                }
            }
            CuiElement ehUI = new CuiElement {
                Name = "EnhancedHammerUI", Parent = "HUD/Overlay", FadeOut = 0.5f
            };
            CuiRawImageComponent ehUI_IMG = new CuiRawImageComponent {
                FadeIn = 0.5f, Url = icon
            };
            CuiRectTransformComponent ehUI_RECT = new CuiRectTransformComponent
            {
                AnchorMin = "0.32 0.09",
                AnchorMax = "0.34 0.13"
            };

            ehUI.Components.Add(ehUI_IMG);
            ehUI.Components.Add(ehUI_RECT);
            panel.Add(ehUI);
            CuiHelper.AddUi(player, panel);
        }
        void RenderMode(BasePlayer player, bool repair = false)
        {
            CuiHelper.DestroyUi(player, "EnhancedHammerUI");
            if (PlayerHasFlag(player.userID, PlayerFlags.PLUGIN_DISABLED) ||
                PlayerHasFlag(player.userID, PlayerFlags.ICONS_DISABLED) ||
                (!repair && playersInfo[player.userID].upgradeInfo == BuildingGrade.Enum.Count))
            {
                return;
            }

            CuiElementContainer panel = new CuiElementContainer();
            string icon = iconRepair;

            if (!repair)
            {
                switch (playersInfo[player.userID].upgradeInfo)
                {
                case BuildingGrade.Enum.Wood:
                    icon = iconWood;
                    break;

                case BuildingGrade.Enum.Stone:
                    icon = iconStone;
                    break;

                case BuildingGrade.Enum.Metal:
                    icon = iconMetal;
                    break;

                case BuildingGrade.Enum.TopTier:
                    icon = iconTopTier;
                    break;
                }
            }
            CuiElement ehUI = new CuiElement {
                Name = "EnhancedHammerUI", Parent = "Hud", FadeOut = 0.5f
            };
            CuiRawImageComponent ehUI_IMG = new CuiRawImageComponent {
                FadeIn = 0.5f, Url = icon
            };
            CuiRectTransformComponent ehUI_RECT = new CuiRectTransformComponent
            {
                AnchorMin = UIAnchorMin,
                AnchorMax = UIAnchorMax
            };

            ehUI.Components.Add(ehUI_IMG);
            ehUI.Components.Add(ehUI_RECT);
            panel.Add(ehUI);
            CuiHelper.AddUi(player, panel);
        }
            public UIRawImage(UIContainer container, Vector2 position, float width, float height, string png) : base(container)
            {
                var panel = new UIPanel(container, position, width, height);

                Element.Parent = panel.Element.Name;

                Image = new CuiRawImageComponent()
                {
                    Png    = png,
                    Sprite = "assets/content/textures/generic/fulltransparent.tga"
                };

                Element.Components.Insert(0, Image);
            }
Exemple #7
0
        private static CuiElementContainer CreateChestInterface(string url)
        {
            //Workaround for Button Bug
            int number = 1;

            number++;
            if (number > 3)
            {
                number = 1;
            }

            var rawImage = new CuiRawImageComponent();

            if (url.StartsWith("http"))
            {
                rawImage.Url = url;
            }
            else
            {
                rawImage.Sprite = url;
            }

            var container = new CuiElementContainer
            {
                new CuiElement
                {
                    Parent     = InterfaceName,
                    Components =
                    {
                        rawImage,
                        new CuiRectTransformComponent {
                            AnchorMin = "0.45 0.4",AnchorMax                    = "0.55 0.6"
                        }
                    },
                    Name = "Chest",
                },
                {
                    new CuiButton
                    {
                        Button        = { Command = "chest.open", Color = "0.5 0.5 0.5 0.2" },
                        RectTransform = { AnchorMin = "0.4 0.25", AnchorMax = "0.6 0.3" },
                        Text          = { Text = $"Open (Cost: {OpeningCost})", FontSize = 20, Align = TextAnchor.MiddleCenter }
                    },
                    InterfaceName, $"OpenButton{number}"
                }
            };

            return(container);
        }
            public static void CreateImage(ref CuiElementContainer container, string Parent, string Name, float opacity, string Amin, string Amax, string Image)
            {
                var ImageComp = new CuiRawImageComponent {
                    Sprite = "assets/content/textures/generic/fulltransparent.tga", Color = $"1 1 1 {opacity}"
                };

                if (Image != null)
                {
                    ImageComp.Png = Image;
                }
                container.Add(new CuiElement
                {
                    Name       = Name ?? CuiHelper.GetGuid(),
                    Parent     = Parent,
                    Components = { ImageComp, new CuiRectTransformComponent {
                                       AnchorMin = Amin,AnchorMax = Amax
                                   } }
                });
            }
        private CuiElement CreateImage(string panelName)
        {
            var element = new CuiElement();
            var url     = GetImage(Url_List[_currentlySelected].ToString());
            var color   = Config["UI", "BackgroundMainColor"].ToString();
            var image   = new CuiRawImageComponent
            {
                Png = url
            };

            var rectTransform = new CuiRectTransformComponent
            {
                AnchorMin = "0 0",
                AnchorMax = "1 1"
            };

            element.Components.Add(image);
            element.Components.Add(rectTransform);
            element.Name   = CuiHelper.GetGuid();
            element.Parent = panelName;
            return(element);
        }
        private void CreateButton(BasePlayer player)
        {
            CuiHelper.DestroyUi(player, PanelName);
            CuiElementContainer elements = new CuiElementContainer();
            var panel = elements.Add(new CuiPanel
            {
                Image =
                {
                    Color = "0.00 0.00 0.00 0.00"
                },
                RectTransform =
                {
                    AnchorMin = Amin,
                    AnchorMax = Amax
                },
                CursorEnabled = false
            }, "Overlay", PanelName);
            var comp = new CuiRawImageComponent {
                Sprite = "assets/content/textures/generic/fulltransparent.tga"
            };

            if (Image != null)
            {
                comp.Png = Image;
            }
            elements.Add(new CuiElement
            {
                Parent     = PanelName,
                Components =
                {
                    comp,
                    new CuiRectTransformComponent {
                        AnchorMin = "0 0",AnchorMax                   = "1 1"
                    }
                }
            });
            CuiHelper.AddUi(player, elements);
        }
        private static CuiElement CreateImage(string panelName, ImageSettings settings)
        {
            var element = new CuiElement();
            var image   = new CuiRawImageComponent
            {
                Url   = settings.Url,
                Color = string.Format("1 1 1 {0:F1}", (settings.TransparencyInPercent / 100.0f))
            };

            var position      = settings.Position;
            var rectTransform = new CuiRectTransformComponent
            {
                AnchorMin = position.GetRectTransformAnchorMin(),
                AnchorMax = position.GetRectTransformAnchorMax()
            };

            element.Components.Add(image);
            element.Components.Add(rectTransform);
            element.Name   = CuiHelper.GetGuid();
            element.Parent = panelName;

            return(element);
        }
Exemple #12
0
 static bool EqualComponent(CuiRawImageComponent e1, CuiRawImageComponent e2)
 {
     if (e1.Sprite != e2.Sprite)
     {
         return(false);
     }
     if (e1.Color != e2.Color)
     {
         return(false);
     }
     if (e1.Material != e2.Material)
     {
         return(false);
     }
     if (e1.Png != e2.Png)
     {
         return(false);
     }
     if (e1.Url != e2.Url)
     {
         return(false);
     }
     return(!(Math.Abs(e1.FadeIn - e2.FadeIn) > 0.01));
 }
Exemple #13
0
            void AddMapTerrainImage(CuiElementContainer container)
            {
                CuiRawImageComponent image = Instance.Hud.CreateImageComponent(Instance.Options.Map.ImageUrl);

                // If the image hasn't been loaded, just display a black box so we don't cause an RPC AddUI crash.
                if (image == null)
                {
                    image = new CuiRawImageComponent {
                        Color = "0 0 0 1"
                    }
                }
                ;

                container.Add(new CuiElement {
                    Name       = Ui.Element.MapTerrainImage,
                    Parent     = Ui.Element.MapContainer,
                    Components =
                    {
                        image,
                        new CuiRectTransformComponent {
                            AnchorMin = "0 0",AnchorMax                  = "1 1"
                        }
                    }
                });
            }

            // --- Sidebar ---

            CuiElementContainer BuildSidebar()
            {
                var container = new CuiElementContainer();

                container.Add(new CuiPanel {
                    Image         = { Color = "0 0 0 0" },
                    RectTransform = { AnchorMin = "0.786 0.014", AnchorMax = "0.988 0.951" }
                }, Ui.Element.MapDialog, Ui.Element.MapSidebar);

                AddLayerToggleButtons(container);
                AddServerLogo(container);

                return(container);
            }

            void AddLayerToggleButtons(CuiElementContainer container)
            {
                container.Add(new CuiButton {
                    Text          = { Text = "Land Claims", FontSize = 14, Align = TextAnchor.MiddleCenter },
                    Button        = { Color = GetButtonColor(UserMapLayer.Claims), Command = "imperium.map.togglelayer claims", FadeIn = 0 },
                    RectTransform = { AnchorMin = "0 0.924", AnchorMax = "1 1" }
                }, Ui.Element.MapSidebar, Ui.Element.MapButton + Guid.NewGuid().ToString());

                container.Add(new CuiButton {
                    Text          = { Text = "Faction Headquarters", FontSize = 14, Align = TextAnchor.MiddleCenter },
                    Button        = { Color = GetButtonColor(UserMapLayer.Headquarters), Command = "imperium.map.togglelayer headquarters", FadeIn = 0 },
                    RectTransform = { AnchorMin = "0 0.832", AnchorMax = "1 0.909" }
                }, Ui.Element.MapSidebar, Ui.Element.MapButton + Guid.NewGuid().ToString());

                container.Add(new CuiButton {
                    Text          = { Text = "Monuments", FontSize = 14, Align = TextAnchor.MiddleCenter },
                    Button        = { Color = GetButtonColor(UserMapLayer.Monuments), Command = "imperium.map.togglelayer monuments", FadeIn = 0 },
                    RectTransform = { AnchorMin = "0 0.741", AnchorMax = "1 0.817" }
                }, Ui.Element.MapSidebar, Ui.Element.MapButton + Guid.NewGuid().ToString());

                container.Add(new CuiButton {
                    Text          = { Text = "Pins", FontSize = 14, Align = TextAnchor.MiddleCenter },
                    Button        = { Color = GetButtonColor(UserMapLayer.Pins), Command = "imperium.map.togglelayer pins", FadeIn = 0 },
                    RectTransform = { AnchorMin = "0 0.649", AnchorMax = "1 0.726" }
                }, Ui.Element.MapSidebar, Ui.Element.MapButton + Guid.NewGuid().ToString());
            }

            void AddServerLogo(CuiElementContainer container)
            {
                CuiRawImageComponent image = Instance.Hud.CreateImageComponent(Instance.Options.Map.ServerLogoUrl);

                // If the image hasn't been loaded, just display a black box so we don't cause an RPC AddUI crash.
                if (image == null)
                {
                    image = new CuiRawImageComponent {
                        Color = "0 0 0 1"
                    }
                }
                ;

                container.Add(new CuiElement {
                    Name       = Ui.Element.MapServerLogoImage,
                    Parent     = Ui.Element.MapSidebar,
                    Components =
                    {
                        image,
                        new CuiRectTransformComponent {
                            AnchorMin = "0 0",AnchorMax                  = "1 0.133"
                        }
                    }
                });
            }

            // --- Map Layers ---

            CuiElementContainer BuildMapLayers()
            {
                var container = new CuiElementContainer();

                container.Add(new CuiPanel {
                    Image         = { Color = "0 0 0 0" },
                    RectTransform = { AnchorMin = "0 0", AnchorMax = "1 1" }
                }, Ui.Element.MapContainer, Ui.Element.MapLayers);

                if (User.Preferences.IsMapLayerVisible(UserMapLayer.Claims))
                {
                    AddClaimsLayer(container);
                }

                if (User.Preferences.IsMapLayerVisible(UserMapLayer.Monuments))
                {
                    AddMonumentsLayer(container);
                }

                if (User.Preferences.IsMapLayerVisible(UserMapLayer.Headquarters))
                {
                    AddHeadquartersLayer(container);
                }

                if (User.Preferences.IsMapLayerVisible(UserMapLayer.Pins))
                {
                    AddPinsLayer(container);
                }

                AddMarker(container, MapMarker.ForUser(User));

                return(container);
            }

            void AddClaimsLayer(CuiElementContainer container)
            {
                CuiRawImageComponent image = Instance.Hud.CreateImageComponent(Ui.MapOverlayImageUrl);

                // If the claims overlay hasn't been generated yet, just display a black box so we don't cause an RPC AddUI crash.
                if (image == null)
                {
                    image = new CuiRawImageComponent {
                        Color = "0 0 0 1"
                    }
                }
                ;

                container.Add(new CuiElement {
                    Name       = Ui.Element.MapClaimsImage,
                    Parent     = Ui.Element.MapLayers,
                    Components =
                    {
                        image,
                        new CuiRectTransformComponent {
                            AnchorMin = "0 0",AnchorMax                  = "1 1"
                        }
                    }
                });
            }

            void AddMonumentsLayer(CuiElementContainer container)
            {
                var monuments = UnityEngine.Object.FindObjectsOfType <MonumentInfo>();

                foreach (MonumentInfo monument in monuments.Where(ShowMonumentOnMap))
                {
                    AddMarker(container, MapMarker.ForMonument(monument));
                }
            }

            void AddHeadquartersLayer(CuiElementContainer container)
            {
                foreach (Area area in Instance.Areas.GetAllByType(AreaType.Headquarters))
                {
                    var faction = Instance.Factions.Get(area.FactionId);
                    AddMarker(container, MapMarker.ForHeadquarters(area, faction));
                }
            }

            void AddPinsLayer(CuiElementContainer container)
            {
                foreach (Pin pin in Instance.Pins.GetAll())
                {
                    AddMarker(container, MapMarker.ForPin(pin));
                }
            }

            void AddMarker(CuiElementContainer container, MapMarker marker, float iconSize = 0.01f)
            {
                container.Add(new CuiElement {
                    Name       = Ui.Element.MapMarkerIcon + Guid.NewGuid().ToString(),
                    Parent     = Ui.Element.MapLayers,
                    Components =
                    {
                        Instance.Hud.CreateImageComponent(marker.IconUrl),
                        new CuiRectTransformComponent {
                            AnchorMin = $"{marker.X - iconSize} {marker.Z - iconSize}",
                            AnchorMax = $"{marker.X + iconSize} {marker.Z + iconSize}"
                        }
                    }
                });

                if (!String.IsNullOrEmpty(marker.Label))
                {
                    container.Add(new CuiLabel {
                        Text          = { Text = marker.Label, FontSize = 8, Align = TextAnchor.MiddleCenter, FadeIn = 0 },
                        RectTransform =
                        {
                            AnchorMin = $"{marker.X - 0.1} {marker.Z - iconSize - 0.0175}",
                            AnchorMax = $"{marker.X + 0.1} {marker.Z - iconSize}"
                        }
                    }, Ui.Element.MapLayers, Ui.Element.MapMarkerLabel + Guid.NewGuid().ToString());
                }
            }

            bool ShowMonumentOnMap(MonumentInfo monument)
            {
                return(monument.Type != MonumentType.Cave &&
                       !monument.name.Contains("power_sub") &&
                       !monument.name.Contains("water_well"));
            }

            string GetButtonColor(UserMapLayer layer)
            {
                if (User.Preferences.IsMapLayerVisible(layer))
                {
                    return("0 0 0 1");
                }
                else
                {
                    return("0.33 0.33 0.33 1");
                }
            }
        }
    }
}
Exemple #14
0
        private static CuiElementContainer CreateChestContent(GambleItem item)
        {
            //Workaround for Button Bug
            int number = 1;

            number++;
            if (number > 3)
            {
                number = 1;
            }

            var bgImage = new CuiRawImageComponent();

            bgImage.Color = item.color;
            var rawImage = new CuiRawImageComponent();

            if (item.itemImg.StartsWith("http"))
            {
                rawImage.Url = item.itemImg;
            }
            else
            {
                rawImage.Sprite = item.itemImg;
            }

            var container = new CuiElementContainer
            {
                new CuiElement
                {
                    Parent     = InterfaceName,
                    Components =
                    {
                        bgImage,
                        new CuiRectTransformComponent {
                            AnchorMin = "0.45 0.4",AnchorMax                     = "0.55 0.6"
                        }
                    },
                    Name = "Item",
                },
                new CuiElement
                {
                    Parent     = InterfaceName,
                    Components =
                    {
                        rawImage,
                        new CuiRectTransformComponent {
                            AnchorMin = "0.45 0.4",AnchorMax                    = "0.55 0.6"
                        }
                    },
                    Name = "Item",
                },
                {
                    new CuiButton
                    {
                        Button        = { Command = $"chest.take {item.itemID} {item.skinID}", Color = "0.5 0.5 0.5 0.2" },
                        RectTransform = { AnchorMin = "0.55 0.25", AnchorMax = "0.7 0.3" },
                        Text          = { Text = "Take", FontSize = 20, Align = TextAnchor.MiddleCenter }
                    },
                    InterfaceName, $"ChestButtonTake{number}"
                },
                {
                    new CuiButton
                    {
                        Button        = { Command = "chest.toss", Color = "0.5 0.5 0.5 0.2" },
                        RectTransform = { AnchorMin = "0.3 0.25", AnchorMax = "0.45 0.3" },
                        Text          = { Text = "Toss", FontSize = 20, Align = TextAnchor.MiddleCenter }
                    },
                    InterfaceName, $"ChestButtonToss{number}"
                }
            };

            return(container);
        }
        void RenderMode(BasePlayer player, bool repair = false)
        {
            CuiHelper.DestroyUi(player, "EnhancedHammerUI");
            if (PlayerHasFlag(player.userID, PlayerFlags.PLUGIN_DISABLED) || 
                PlayerHasFlag(player.userID, PlayerFlags.ICONS_DISABLED) || 
                (!repair && playersInfo[player.userID].upgradeInfo == BuildingGrade.Enum.Count))
                return;

            CuiElementContainer panel = new CuiElementContainer();
            string icon = "http://i.imgur.com/Nq6DNSX.png";
            if (!repair)
            {
                switch (playersInfo[player.userID].upgradeInfo)
                {
                    case BuildingGrade.Enum.Wood:
                        icon = "http://i.imgur.com/F4XBBhY.png";
                        break;
                    case BuildingGrade.Enum.Stone:
                        icon = "http://i.imgur.com/S7Sl9oh.png";
                        break;
                    case BuildingGrade.Enum.Metal:
                        icon = "http://i.imgur.com/fVjzbag.png";
                        break;
                    case BuildingGrade.Enum.TopTier:
                        icon = "http://i.imgur.com/f0WklR3.png";
                        break;
                }

            }
            CuiElement ehUI = new CuiElement { Name = "EnhancedHammerUI", Parent = "HUD/Overlay", FadeOut = 0.5f };
            CuiRawImageComponent ehUI_IMG = new CuiRawImageComponent { FadeIn = 0.5f, Url = icon };
            CuiRectTransformComponent ehUI_RECT = new CuiRectTransformComponent
            {
                AnchorMin = "0.32 0.09",
                AnchorMax = "0.34 0.13"
            };
            ehUI.Components.Add(ehUI_IMG);
            ehUI.Components.Add(ehUI_RECT);
            panel.Add(ehUI);
            CuiHelper.AddUi(player, panel);
        }