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() } }); }
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() } }); }
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); }
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); }
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)); }
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"); } } } } }
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); }