public Widget LoadWidget(WidgetArgs args, Widget parent, MiniYamlNode node) { var widget = NewWidget(node.Key, args); if (parent != null) parent.AddChild( widget ); if (node.Key.Contains("@")) FieldLoader.LoadField(widget, "Id", node.Key.Split('@')[1]); foreach (var child in node.Value.Nodes) if (child.Key != "Children") FieldLoader.LoadField(widget, child.Key, child.Value.Value); if (!args.ContainsKey("modRules")) args = new WidgetArgs(args) { { "modRules", modData.DefaultRules } }; widget.Initialize(args); foreach (var child in node.Value.Nodes) if (child.Key == "Children") foreach (var c in child.Value.Nodes) LoadWidget( args, widget, c); widget.PostInit(args); return widget; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); var width = world.Map.Bounds.Width; var height = world.Map.Bounds.Height; var size = Math.Max(width, height); var rb = RenderBounds; previewScale = Math.Min(rb.Width * 1f / width, rb.Height * 1f / height); previewOrigin = new int2((int)(previewScale * (size - width) / 2), (int)(previewScale * (size - height) / 2)); mapRect = new Rectangle(previewOrigin.X, previewOrigin.Y, (int)(previewScale * width), (int)(previewScale * height)); // Only needs to be done once using (var terrainBitmap = Minimap.TerrainBitmap(world.Map.Rules.TileSets[world.Map.Tileset], world.Map)) { var r = new Rectangle(0, 0, width, height); var s = new Size(terrainBitmap.Width, terrainBitmap.Height); var terrainSheet = new Sheet(s, false); terrainSheet.Texture.SetData(terrainBitmap); terrainSprite = new Sprite(terrainSheet, r, TextureChannel.Alpha); // Data is set in Tick() customTerrainSprite = new Sprite(new Sheet(s, false), r, TextureChannel.Alpha); actorSprite = new Sprite(new Sheet(s, false), r, TextureChannel.Alpha); shroudSprite = new Sprite(new Sheet(s, false), r, TextureChannel.Alpha); } }
public Widget LoadWidget(WidgetArgs args, Widget parent, MiniYamlNode node) { if (!args.ContainsKey("modData")) args = new WidgetArgs(args) { { "modData", modData } }; var widget = NewWidget(node.Key, args); if (parent != null) parent.AddChild(widget); if (node.Key.Contains("@")) FieldLoader.LoadField(widget, "Id", node.Key.Split('@')[1]); foreach (var child in node.Value.Nodes) if (child.Key != "Children") FieldLoader.LoadField(widget, child.Key, child.Value.Value); widget.Initialize(args); foreach (var child in node.Value.Nodes) if (child.Key == "Children") foreach (var c in child.Value.Nodes) LoadWidget(args, widget, c); var logicNode = node.Value.Nodes.FirstOrDefault(n => n.Key == "Logic"); var logic = logicNode == null ? null : logicNode.Value.ToDictionary(); args.Add("logicArgs", logic); widget.PostInit(args); args.Remove("logicArgs"); return widget; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); icon = new Animation(world, "icon"); clock = new Animation(world, "clock"); }
public InstallLogic(Widget widget, Dictionary<string, string> installData, Action continueLoading) { var panel = widget.Get("INSTALL_PANEL"); var args = new WidgetArgs() { { "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } }, { "installData", installData }, { "continueLoading", continueLoading } }; panel.Get<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args); if (installData.ContainsKey("FilesToCopy") && !string.IsNullOrEmpty(installData["FilesToCopy"]) && installData.ContainsKey("FilesToExtract") && !string.IsNullOrEmpty(installData["FilesToExtract"])) { args = new WidgetArgs(args) { { "filesToCopy", installData["FilesToCopy"].Split(',') }, { "filesToExtract", installData["FilesToExtract"].Split(',') }, }; } panel.Get<ButtonWidget>("INSTALL_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_FROMCD_PANEL", args); panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Game.Settings.Game.PreviousMod = Game.modData.Manifest.Mod.Id; Game.InitializeWithMod("modchooser", null); }; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); // Start in the closed position offset = ClosedOffset; }
public CncInstallLogic([ObjectCreator.Param] Widget widget, [ObjectCreator.Param] Dictionary<string,string> installData, [ObjectCreator.Param] Action continueLoading) { var panel = widget.GetWidget("INSTALL_PANEL"); var args = new WidgetArgs() { { "continueLoading", () => { Widget.CloseWindow(); continueLoading(); } }, { "installData", installData } }; panel.GetWidget<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => Widget.OpenWindow("INSTALL_DOWNLOAD_PANEL", args); panel.GetWidget<ButtonWidget>("INSTALL_BUTTON").OnClick = () => Widget.OpenWindow("INSTALL_FROMCD_PANEL", args); panel.GetWidget<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit; panel.GetWidget<ButtonWidget>("MODS_BUTTON").OnClick = () => { Widget.OpenWindow("MODS_PANEL", new WidgetArgs() { { "onExit", () => {} }, // Close this panel { "onSwitch", Widget.CloseWindow }, }); }; }
public RAInstallLogic(Widget widget, Dictionary<string,string> installData, Action continueLoading) { var panel = widget.Get("INSTALL_PANEL"); var args = new WidgetArgs() { { "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } }, { "installData", installData }, { "continueLoading", continueLoading } }; panel.Get<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args); panel.Get<ButtonWidget>("INSTALL_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_FROMCD_PANEL", args); panel.Get<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit; panel.Get<ButtonWidget>("MODS_BUTTON").OnClick = () => { Ui.OpenWindow("MODS_PANEL", new WidgetArgs() { { "onExit", () => {} }, // Close this panel { "onSwitch", Ui.CloseWindow }, }); }; }
public InstallLogic(Widget widget, Action continueLoading) { var installData = Game.ModData.Manifest.Get<ContentInstaller>(); var panel = widget.Get("INSTALL_PANEL"); var widgetArgs = new WidgetArgs() { { "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } }, { "continueLoading", continueLoading }, { "mirrorListUrl", installData.PackageMirrorList }, }; panel.Get<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", widgetArgs); panel.Get<ButtonWidget>("INSTALL_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_FROMCD_PANEL", widgetArgs); panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Game.RunAfterTick(() => { Game.Settings.Game.PreviousMod = Game.ModData.Manifest.Mod.Id; Game.InitializeMod("modchooser", null); }); }; }
public override void Initialize(WidgetArgs args) { paletteOpenOrigin = new float2(Game.Renderer.Resolution.Width - Columns*IconWidth - 23, 280); paletteClosedOrigin = new float2(Game.Renderer.Resolution.Width - 16, 280); paletteOrigin = paletteClosedOrigin; base.Initialize(args); }
public void StartGame(Arguments args) { var widgetArgs = new WidgetArgs(); Ui.LoadWidget("MODCHOOSER_BACKGROUND", Ui.Root, widgetArgs); Ui.OpenWindow("MODCHOOSER_DIALOG", widgetArgs); }
public CncInstallLogic(Widget widget, Dictionary<string, string> installData, Action continueLoading) { var panel = widget.Get("INSTALL_PANEL"); var args = new WidgetArgs() { { "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } }, { "installData", installData } }; panel.Get<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args); panel.Get<ButtonWidget>("INSTALL_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_FROMCD_PANEL", new WidgetArgs(args) { { "filesToCopy", new[] { "CONQUER.MIX", "DESERT.MIX", "SCORES.MIX", "SOUNDS.MIX", "TEMPERAT.MIX", "WINTER.MIX" } }, { "filesToExtract", new[] { "speech.mix", "tempicnh.mix", "transit.mix" } }, }); panel.Get<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit; panel.Get<ButtonWidget>("MODS_BUTTON").OnClick = () => { Ui.OpenWindow("MODS_PANEL", new WidgetArgs() { { "onExit", () => { } }, { "onSwitch", Ui.CloseWindow }, }); }; }
public Widget LoadWidget( WidgetArgs args, Widget parent, string w ) { MiniYamlNode ret; if (!widgets.TryGetValue(w, out ret)) throw new InvalidDataException("Cannot find widget with Id `{0}`".F(w)); return LoadWidget( args, parent, ret ); }
public Widget LoadWidget(WidgetArgs args, Widget parent, MiniYamlNode node) { if (!args.ContainsKey("modRules")) { args = new WidgetArgs(args) { { "modRules", modData.DefaultRules } } } ; var widget = NewWidget(node.Key, args); if (parent != null) { parent.AddChild(widget); } if (node.Key.Contains("@")) { FieldLoader.LoadField(widget, "Id", node.Key.Split('@')[1]); } foreach (var child in node.Value.Nodes) { if (child.Key != "Children") { FieldLoader.LoadField(widget, child.Key, child.Value.Value); } } widget.Initialize(args); foreach (var child in node.Value.Nodes) { if (child.Key == "Children") { foreach (var c in child.Value.Nodes) { LoadWidget(args, widget, c); } } } var logicNode = node.Value.Nodes.FirstOrDefault(n => n.Key == "Logic"); var logic = logicNode == null ? null : logicNode.Value.ToDictionary(); args.Add("logicArgs", logic); widget.PostInit(args); args.Remove("logicArgs"); return(widget); }
public Widget LoadWidget(WidgetArgs args, Widget parent, string w) { MiniYamlNode ret; if (!widgets.TryGetValue(w, out ret)) { throw new InvalidDataException("Cannot find widget with Id `{0}`".F(w)); } return(LoadWidget(args, parent, ret)); }
public override void Initialize(WidgetArgs args) { base.Initialize(args); // Bitmap data is generated in a background thread and then flipped front = new byte[4*256*256]; back = new byte[4*256*256]; var rect = new Rectangle((int)(255*SRange[0]), (int)(255*(1 - VRange[1])), (int)(255*(SRange[1] - SRange[0]))+1, (int)(255*(VRange[1] - VRange[0])) + 1); mixerSprite = new Sprite(new Sheet(new Size(256, 256)), rect, TextureChannel.Alpha); mixerSprite.sheet.Texture.SetData(front, 256, 256); }
public override void Initialize(WidgetArgs args) { base.Initialize(args); spsprites = Rules.Info.Values.SelectMany(u => u.Traits.WithInterface <SupportPowerInfo>()) .Select(u => u.Image).Distinct() .ToDictionary( u => u, u => Game.modData.SpriteLoader.LoadAllSprites(u)[0]); clock = new Animation("clock"); }
public int SetTooltip(string id, WidgetArgs args) { RemoveTooltip(); currentToken = nextToken++; tooltip = Ui.LoadWidget(id, this, new WidgetArgs(args) { { "tooltipContainer", this } }); return(currentToken); }
void PopulateContentList() { scrollPanel.RemoveChildren(); foreach (var p in content.Packages) { var container = template.Clone(); var titleWidget = container.Get <LabelWidget>("TITLE"); var title = p.Value.Title; titleWidget.GetText = () => title; var requiredWidget = container.Get <LabelWidget>("REQUIRED"); requiredWidget.IsVisible = () => p.Value.Required; var sourceWidget = container.Get <ImageWidget>("DISC"); var sources = p.Value.Sources.Select(s => content.Sources[s].Title).Distinct(); var sourceList = sources.JoinWith("\n"); var isSourceAvailable = sources.Any(); sourceWidget.GetTooltipText = () => sourceList; sourceWidget.IsVisible = () => isSourceAvailable; var installed = p.Value.IsInstalled(); var downloadButton = container.Get <ButtonWidget>("DOWNLOAD"); var downloadEnabled = !installed && p.Value.Download != null; downloadButton.IsVisible = () => downloadEnabled; if (downloadEnabled) { var download = content.Downloads[p.Value.Download]; var widgetArgs = new WidgetArgs { { "download", download }, { "onSuccess", () => { } } }; downloadButton.OnClick = () => Ui.OpenWindow("PACKAGE_DOWNLOAD_PANEL", widgetArgs); } var installedWidget = container.Get <LabelWidget>("INSTALLED"); installedWidget.IsVisible = () => installed; var requiresDiscWidget = container.Get <LabelWidget>("REQUIRES_DISC"); requiresDiscWidget.IsVisible = () => !installed && !downloadEnabled; if (!isSourceAvailable) { requiresDiscWidget.GetText = () => "Manual Install"; } scrollPanel.AddChild(container); } discAvailable = content.Packages.Values.Any(p => p.Sources.Any() && !p.IsInstalled()); }
public override void Initialize(WidgetArgs args) { base.Initialize(args); saveBookmarkHotkeys = Exts.MakeArray(BookmarkKeyCount, i => new NamedHotkey(BookmarkSaveKeyPrefix + (i + 1).ToString("D2"), Game.Settings.Keys)); restoreBookmarkHotkeys = Exts.MakeArray(BookmarkKeyCount, i => new NamedHotkey(BookmarkRestoreKeyPrefix + (i + 1).ToString("D2"), Game.Settings.Keys)); bookmarkPositions = new WPos?[BookmarkKeyCount]; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); saveBookmarkHotkeys = Exts.MakeArray(BookmarkKeyCount, i => modData.Hotkeys[BookmarkSaveKeyPrefix + (i + 1).ToString("D2")]); restoreBookmarkHotkeys = Exts.MakeArray(BookmarkKeyCount, i => modData.Hotkeys[BookmarkRestoreKeyPrefix + (i + 1).ToString("D2")]); bookmarkPositions = new WPos?[BookmarkKeyCount]; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); hotkeys = Exts.MakeArray(HotkeyCount, i => modData.Hotkeys[HotkeyPrefix + (i + 1).ToString("D2")]); overlayFont = Game.Renderer.Fonts[OverlayFont]; iconOffset = 0.5f * IconSize.ToFloat2() + IconSpriteOffset; holdOffset = iconOffset - overlayFont.Measure(HoldText) / 2; readyOffset = iconOffset - overlayFont.Measure(ReadyText) / 2; }
void HandleNewWidget(object sender, WidgetArgs args) { if (disable_events) { return; } disable_events = true; string old = args.Widget.Name; args.Widget.Name = GetFormattedName(args.Widget); //Debug.WriteLine("FANB HandleNewWidget old name {" + old + "}, new name = {" + args.Widget.Name + "}"); disable_events = false; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); // Bitmap data is generated in a background thread and then flipped front = new byte[4 * 256 * 256]; back = new byte[4 * 256 * 256]; var rect = new Rectangle((int)(255 * SRange[0]), (int)(255 * (1 - VRange[1])), (int)(255 * (SRange[1] - SRange[0])) + 1, (int)(255 * (VRange[1] - VRange[0])) + 1); mixerSprite = new Sprite(new Sheet(new Size(256, 256)), rect, TextureChannel.Alpha); mixerSprite.sheet.Texture.SetData(front, 256, 256); }
void OpenMenuPanel(MenuButtonWidget button, WidgetArgs widgetArgs = null) { disableSystemButtons = true; var cachedPause = world.PredictedPaused; if (button.HideIngameUI) { // Cancel custom input modes (guard, building placement, etc) world.CancelInputMode(); worldRoot.IsVisible = () => false; } if (button.Pause && world.LobbyInfo.NonBotClients.Count() == 1) { world.SetPauseState(true); } var cachedDisableWorldSounds = Game.Sound.DisableWorldSounds; if (button.DisableWorldSounds) { Game.Sound.DisableWorldSounds = true; } widgetArgs = widgetArgs ?? new WidgetArgs(); widgetArgs.Add("onExit", () => { if (button.HideIngameUI) { worldRoot.IsVisible = () => true; } if (button.DisableWorldSounds) { Game.Sound.DisableWorldSounds = cachedDisableWorldSounds; } if (button.Pause && world.LobbyInfo.NonBotClients.Count() == 1) { world.SetPauseState(cachedPause); } menuRoot.RemoveChild(currentWidget); disableSystemButtons = false; }); currentWidget = Game.LoadWidget(world, button.MenuContainer, menuRoot, widgetArgs); Game.RunAfterTick(Ui.ResetTooltips); }
public void StartGame(Arguments args) { var widgetArgs = new WidgetArgs(); Ui.LoadWidget("MODCHOOSER_BACKGROUND", Ui.Root, widgetArgs); if (args != null && args.Contains("installMusic")) { widgetArgs.Add("modId", args.GetValue("installMusic", "")); Ui.OpenWindow("INSTALL_MUSIC_PANEL", widgetArgs); } else Ui.OpenWindow("MODCHOOSER_DIALOG", widgetArgs); }
public override void Initialize(WidgetArgs args) { base.Initialize(args); World = (World)args["world"]; animation1 = new Animation(World, SeqGroup); if (AnimationDirection == "Forward") { animation1.Play(SeqSubGroup); } if (AnimationDirection == "Repeat") { animation1.PlayRepeating(SeqSubGroup); } pr = Game.worldRenderer.Palette(PaletteNameFromYaml); }
public void StartGame(Arguments args) { var widgetArgs = new WidgetArgs(); Ui.LoadWidget("MODCHOOSER_BACKGROUND", Ui.Root, widgetArgs); if (args != null && args.Contains("installMusic")) { widgetArgs.Add("modId", args.GetValue("installMusic", "")); Ui.OpenWindow("INSTALL_MUSIC_PANEL", widgetArgs); } else { Ui.OpenWindow("MODCHOOSER_DIALOG", widgetArgs); } }
public Widget LoadWidget(WidgetArgs args, Widget parent, MiniYamlNode node) { if (!args.ContainsKey("modRules")) { args = new WidgetArgs(args) { { "modRules", modData.DefaultRules } } } ; var widget = NewWidget(node.Key, args); if (parent != null) { parent.AddChild(widget); } if (node.Key.Contains("@")) { FieldLoader.LoadField(widget, "Id", node.Key.Split('@')[1]); } foreach (var child in node.Value.Nodes) { if (child.Key != "Children") { FieldLoader.LoadField(widget, child.Key, child.Value.Value); } } widget.Initialize(args); foreach (var child in node.Value.Nodes) { if (child.Key == "Children") { foreach (var c in child.Value.Nodes) { LoadWidget(args, widget, c); } } } widget.PostInit(args); return(widget); }
void TestAndContinue() { Ui.ResetAll(); if (!info["TestFiles"].Split(',').All(f => GlobalFileSystem.Exists(f.Trim()))) { var args = new WidgetArgs() { { "continueLoading", () => TestAndContinue() }, { "installData", info } }; Ui.OpenWindow(info["InstallerMenuWidget"], args); } else { Game.LoadShellMap(); } }
public override void Initialize(WidgetArgs args) { base.Initialize(args); var hueSheet = new Sheet(SheetType.BGRA, new Size(256, 1)); hueSprite = new Sprite(hueSheet, new Rectangle(0, 0, 256, 1), TextureChannel.RGBA); var hueData = new uint[1, 256]; for (var x = 0; x < 256; x++) { hueData[0, x] = (uint)Color.FromAhsv(x / 255f, 1, 1).ToArgb(); } hueSheet.AssignOrGetOrSetDataGLTexture().SetData(hueData); }
public RAInstallLogic(Widget widget, Dictionary<string,string> installData, Action continueLoading) { var panel = widget.GetWidget("INSTALL_PANEL"); var args = new WidgetArgs() { { "afterInstall", () => { Widget.CloseWindow(); continueLoading(); } }, { "installData", installData } }; panel.GetWidget<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => Widget.OpenWindow("INSTALL_DOWNLOAD_PANEL", args); panel.GetWidget<ButtonWidget>("INSTALL_BUTTON").OnClick = () => Widget.OpenWindow("INSTALL_FROMCD_PANEL", args); panel.GetWidget<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit; }
void TestAndContinue() { Ui.ResetAll(); if (!FileSystem.Exists(Info["TestFile"])) { var args = new WidgetArgs() { { "continueLoading", () => TestAndContinue() }, { "installData", Info } }; Ui.OpenWindow(Info["InstallerMenuWidget"], args); } else { Game.LoadShellMap(); } }
public RAInstallLogic(Widget widget, Dictionary <string, string> installData, Action continueLoading) { var panel = widget.GetWidget("INSTALL_PANEL"); var args = new WidgetArgs() { { "afterInstall", () => { Widget.CloseWindow(); continueLoading(); } }, { "installData", installData } }; panel.GetWidget <ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => Widget.OpenWindow("INSTALL_DOWNLOAD_PANEL", args); panel.GetWidget <ButtonWidget>("INSTALL_BUTTON").OnClick = () => Widget.OpenWindow("INSTALL_FROMCD_PANEL", args); panel.GetWidget <ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); if (Unit != null && Sequence != null) { var anim = new Animation(worldRenderer.world, Unit, () => Facing); anim.PlayFetchIndex(Sequence, () => Frame); GetAnimation = () => anim; } GetSprite = () => { var anim = GetAnimation(); return anim != null ? anim.Image : null; }; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); // The four layers are stored in a 2x2 grid within a single texture radarSheet = new Sheet(SheetType.BGRA, new Size(2 * previewWidth, 2 * previewHeight).NextPowerOf2()); radarSheet.CreateBuffer(); radarData = radarSheet.GetData(); MapBoundsChanged(); // Set initial terrain data foreach (var cell in world.Map.AllCells) UpdateTerrainCell(cell); world.Map.MapTiles.Value.CellEntryChanged += UpdateTerrainCell; world.Map.CustomTerrain.CellEntryChanged += UpdateTerrainCell; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); templates.Add(TextNotificationPool.Chat, Ui.LoadWidget(ChatTemplate, null, new WidgetArgs())); templates.Add(TextNotificationPool.System, Ui.LoadWidget(SystemTemplate, null, new WidgetArgs())); templates.Add(TextNotificationPool.Mission, Ui.LoadWidget(MissionTemplate, null, new WidgetArgs())); templates.Add(TextNotificationPool.Feedback, Ui.LoadWidget(FeedbackTemplate, null, new WidgetArgs())); // HACK: Assume that all templates use the same font var lineHeight = Game.Renderer.Fonts[templates[TextNotificationPool.Chat].Get <LabelWidget>("TEXT").Font].Measure("").Y; var wholeLines = (int)Math.Floor((double)((Bounds.Height - BottomSpacing) / lineHeight)); var visibleChildrenHeight = wholeLines * lineHeight; overflowDrawBounds = new Rectangle(RenderOrigin.X, RenderOrigin.Y, Bounds.Width, Bounds.Height); overflowDrawBounds.Y += Bounds.Height - visibleChildrenHeight; overflowDrawBounds.Height = visibleChildrenHeight; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); var hueSheet = new Sheet(SheetType.BGRA, new Size(256, 1)); hueSprite = new Sprite(hueSheet, new Rectangle(0, 0, 256, 1), TextureChannel.RGBA); var hueData = new uint[1, 256]; for (var x = 0; x < 256; x++) { hueData[0, x] = (uint)Color.FromAhsv(x / 255f, 1, 1).ToArgb(); } hueSheet.GetTexture().SetData(hueData); pickerSprite = ChromeProvider.GetImage("lobby-bits", "huepicker"); }
public override void Initialize(WidgetArgs args) { base.Initialize(args); hueBitmap = new Bitmap(256, 256); hueSprite = new Sprite(new Sheet(new Size(256, 256)), new Rectangle(0, 0, 256, 1), TextureChannel.Alpha); var bitmapData = hueBitmap.LockBits(hueBitmap.Bounds(), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); unsafe { int* c = (int*)bitmapData.Scan0; for (var h = 0; h < 256; h++) *(c + h) = HSLColor.FromHSV(h/255f, 1, 1).RGB.ToArgb(); } hueBitmap.UnlockBits(bitmapData); hueSprite.sheet.Texture.SetData(hueBitmap); }
public override void Initialize(WidgetArgs args) { base.Initialize(args); sRange[0] += STrim; sRange[1] -= STrim; vRange[0] += VTrim; vRange[1] -= VTrim; // Bitmap data is generated in a background thread and then flipped front = new byte[4 * 256 * 256]; back = new byte[4 * 256 * 256]; var rect = new Rectangle((int)(255 * sRange[0]), (int)(255 * (1 - vRange[1])), (int)(255 * (sRange[1] - sRange[0])) + 1, (int)(255 * (vRange[1] - vRange[0])) + 1); var mixerSheet = new Sheet(SheetType.BGRA, new Size(256, 256)); mixerSheet.GetTexture().SetData(front, 256, 256); mixerSprite = new Sprite(mixerSheet, rect, TextureChannel.Alpha); GenerateBitmap(); }
public override void Initialize(WidgetArgs args) { base.Initialize(args); selectGroupHotkeys = Exts.MakeArray(hotkeyCount, i => modData.Hotkeys[SelectGroupKeyPrefix + (i + 1).ToString("D2")]); createGroupHotkeys = Exts.MakeArray(hotkeyCount, i => modData.Hotkeys[CreateGroupKeyPrefix + (i + 1).ToString("D2")]); addToGroupHotkeys = Exts.MakeArray(hotkeyCount, i => modData.Hotkeys[AddToGroupKeyPrefix + (i + 1).ToString("D2")]); combineWithGroupHotkeys = Exts.MakeArray(hotkeyCount, i => modData.Hotkeys[CombineWithGroupKeyPrefix + (i + 1).ToString("D2")]); jumpToGroupHotkeys = Exts.MakeArray(hotkeyCount, i => modData.Hotkeys[JumpToGroupKeyPrefix + (i + 1).ToString("D2")]); }
public D2kInstallLogic(Widget widget, Dictionary<string,string> installData) { var panel = widget.Get("INSTALL_PANEL"); var args = new WidgetArgs() { { "afterInstall", () => { Ui.CloseWindow(); Game.Exit(); } }, { "installData", installData } }; panel.Get<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args); panel.Get<ButtonWidget>("COPY_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_FROMCD_PANEL", args); panel.Get<ButtonWidget>("EXTRACT_BUTTON").OnClick = () => Ui.OpenWindow("EXTRACT_GAMEFILES_PANEL", args); panel.Get<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit; }
public D2kInstallLogic(Widget widget, Dictionary <string, string> installData) { var panel = widget.Get("INSTALL_PANEL"); var args = new WidgetArgs() { { "afterInstall", () => { Ui.CloseWindow(); Game.Exit(); } }, { "installData", installData } }; panel.Get <ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args); panel.Get <ButtonWidget>("COPY_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_FROMCD_PANEL", args); panel.Get <ButtonWidget>("EXTRACT_BUTTON").OnClick = () => Ui.OpenWindow("EXTRACT_GAMEFILES_PANEL", args); panel.Get <ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); // The four layers are stored in a 2x2 grid within a single texture radarSheet = new Sheet(SheetType.BGRA, new Size(2 * previewWidth, 2 * previewHeight).NextPowerOf2()); radarSheet.CreateBuffer(); radarData = radarSheet.GetData(); MapBoundsChanged(); // Set initial terrain data foreach (var cell in world.Map.AllCells) { UpdateTerrainCell(cell); } world.Map.Tiles.CellEntryChanged += UpdateTerrainCell; world.Map.CustomTerrain.CellEntryChanged += UpdateTerrainCell; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); sRange[0] += STrim; sRange[1] -= STrim; vRange[0] += VTrim; vRange[1] -= VTrim; // Bitmap data is generated in a background thread and then flipped front = new byte[4 * 256 * 256]; back = new byte[4 * 256 * 256]; var rect = new Rectangle((int)(255 * sRange[0]), (int)(255 * (1 - vRange[1])), (int)(255 * (sRange[1] - sRange[0])) + 1, (int)(255 * (vRange[1] - vRange[0])) + 1); var mixerSheet = new Sheet(SheetType.BGRA, new Size(256, 256)); mixerSheet.GetTexture().SetData(front, 256, 256); mixerSprite = new Sprite(mixerSheet, rect, TextureChannel.RGBA); GenerateBitmap(); }
public override void Initialize(WidgetArgs args) { base.Initialize(args); radarSheet = new Sheet(SheetT.BGRA, new Size(2 * previewWidth, 2 * previewHeight).NextPowerOf2()); radarSheet.CreateBuffer(); radarData = radarSheet.GetData(); MapBoundsChanged(); //Set initial terrain data foreach (var cell in world.Map.AllCells) { UpdateTerrainCell(cell); } world.Map.Tiles.CellEntryChanged += UpdateTerrainCell; world.Map.Tiles.CellEntryChanged += UpdateTerrainCell; }
public Widget LoadWidget( WidgetArgs args, Widget parent, MiniYamlNode node) { var widget = NewWidget(node.Key, args); if (parent != null) parent.AddChild( widget ); foreach (var child in node.Value.Nodes) if (child.Key != "Children") FieldLoader.LoadField(widget, child.Key, child.Value.Value); widget.Initialize(args); foreach (var child in node.Value.Nodes) if (child.Key == "Children") foreach (var c in child.Value.Nodes) LoadWidget( args, widget, c); widget.PostInit( args ); return widget; }
public RAInstallLogic([ObjectCreator.Param] Widget widget, [ObjectCreator.Param] Dictionary<string,string> installData, [ObjectCreator.Param] Action continueLoading) { var panel = widget.GetWidget("INSTALL_PANEL"); var args = new WidgetArgs() { { "continueLoading", () => { Widget.CloseWindow(); continueLoading(); } }, { "installData", installData } }; panel.GetWidget<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => Widget.OpenWindow("INSTALL_DOWNLOAD_PANEL", args); panel.GetWidget<ButtonWidget>("INSTALL_BUTTON").OnClick = () => Widget.OpenWindow("INSTALL_FROMCD_PANEL", args); panel.GetWidget<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit; MainMenuButtonsLogic.DisplayModSelector(); }
public override void Initialize(WidgetArgs args) { base.Initialize(args); hueBitmap = new Bitmap(256, 256); hueSprite = new Sprite(new Sheet(new Size(256, 256)), new Rectangle(0, 0, 256, 1), TextureChannel.Alpha); var bitmapData = hueBitmap.LockBits(hueBitmap.Bounds(), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); unsafe { int *c = (int *)bitmapData.Scan0; for (var h = 0; h < 256; h++) { *(c + h) = HSLColor.FromHSV(h / 255f, 1, 1).RGB.ToArgb(); } } hueBitmap.UnlockBits(bitmapData); hueSprite.sheet.Texture.SetData(hueBitmap); }
public void StartGame(Arguments args) { var modId = args.GetValue("Content.Mod", null); Manifest selectedMod; if (modId == null || !Game.Mods.TryGetValue(modId, out selectedMod)) { throw new InvalidOperationException("Invalid or missing Content.Mod argument."); } var content = selectedMod.Get <ModContent>(Game.ModData.ObjectCreator); Ui.LoadWidget("MODCONTENT_BACKGROUND", Ui.Root, new WidgetArgs()); if (!IsModInstalled(content)) { var widgetArgs = new WidgetArgs { { "continueLoading", () => Game.RunAfterTick(() => Game.InitializeMod(modId, new Arguments())) }, { "mod", selectedMod }, { "content", content }, }; Ui.OpenWindow("CONTENT_PROMPT_PANEL", widgetArgs); } else { var widgetArgs = new WidgetArgs { { "mod", selectedMod }, { "content", content }, { "onCancel", () => Game.RunAfterTick(() => Game.InitializeMod(modId, new Arguments())) } }; Ui.OpenWindow("CONTENT_PANEL", widgetArgs); } }
void LoadMod(Manifest mod) { var modId = mod.Id; if (!Game.IsModInstalled(modId)) { var widgetArgs = new WidgetArgs { { "mod", selectedMod }, { "content", content[selectedMod] }, }; Ui.OpenWindow("INSTALL_MOD_PANEL", widgetArgs); return; } if (!IsModInstalled(mod)) { var widgetArgs = new WidgetArgs { { "continueLoading", () => Game.RunAfterTick(() => Game.InitializeMod(modId, new Arguments())) }, { "mod", selectedMod }, { "content", content[selectedMod] }, }; Ui.OpenWindow("CONTENT_PROMPT_PANEL", widgetArgs); return; } Game.RunAfterTick(() => { Ui.CloseWindow(); sheetBuilder.Dispose(); Game.InitializeMod(modId, null); }); }
public InstallLogic(Widget widget, string mirrorListUrl, string modId) { var panel = widget.Get("INSTALL_PANEL"); var widgetArgs = new WidgetArgs { { "afterInstall", () => { Game.InitializeMod(modId, new Arguments()); } }, { "mirrorListUrl", mirrorListUrl }, { "modId", modId } }; var mod = ModMetadata.AllMods[modId]; var text = "OpenRA requires the original {0} game content.".F(mod.Title); panel.Get<LabelWidget>("DESC1").Text = text; var downloadButton = panel.Get<ButtonWidget>("DOWNLOAD_BUTTON"); downloadButton.OnClick = () => Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", widgetArgs); downloadButton.IsDisabled = () => string.IsNullOrEmpty(mod.Content.PackageMirrorList); panel.Get<ButtonWidget>("INSTALL_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_FROMCD_PANEL", widgetArgs); panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = Ui.CloseWindow; }
public InstallLogic(Widget widget, Action continueLoading) { var mirrorListUrl = Game.modData.Manifest.ContentInstaller.PackageMirrorList; var panel = widget.Get("INSTALL_PANEL"); var widgetArgs = new WidgetArgs() { { "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } }, { "continueLoading", continueLoading }, { "mirrorListUrl", mirrorListUrl }, }; panel.Get <ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", widgetArgs); panel.Get <ButtonWidget>("INSTALL_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_FROMCD_PANEL", widgetArgs); panel.Get <ButtonWidget>("BACK_BUTTON").OnClick = () => { Game.Settings.Game.PreviousMod = Game.modData.Manifest.Mod.Id; Game.InitializeMod("modchooser", null); }; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); var size = Math.Max(world.Map.Bounds.Width, world.Map.Bounds.Height); previewScale = Math.Min(RenderBounds.Width * 1f / world.Map.Bounds.Width, RenderBounds.Height * 1f / world.Map.Bounds.Height); previewOrigin = new int2(RenderOrigin.X, RenderOrigin.Y + (int)(previewScale * (size - world.Map.Bounds.Height) / 2)); mapRect = new RectangleF(previewOrigin.X, previewOrigin.Y, (int)(world.Map.Bounds.Width * previewScale), (int)(world.Map.Bounds.Height * previewScale)); // Only needs to be done once var terrainBitmap = Minimap.TerrainBitmap(world.Map); var r = new Rectangle(0, 0, world.Map.Bounds.Width, world.Map.Bounds.Height); var s = new Size(terrainBitmap.Width, terrainBitmap.Height); terrainSprite = new Sprite(new Sheet(s), r, TextureChannel.Alpha); terrainSprite.sheet.Texture.SetData(terrainBitmap); // Data is set in Tick() customTerrainSprite = new Sprite(new Sheet(s), r, TextureChannel.Alpha); actorSprite = new Sprite(new Sheet(s), r, TextureChannel.Alpha); shroudSprite = new Sprite(new Sheet(s), r, TextureChannel.Alpha); }
public InstallLogic(Widget widget, Dictionary<string, string> installData, Action continueLoading) { var panel = widget.Get("INSTALL_PANEL"); var args = new WidgetArgs() { { "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } }, { "installData", installData }, { "continueLoading", continueLoading } }; panel.Get<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args); if (installData.ContainsKey("FilesToCopy") && !string.IsNullOrEmpty(installData["FilesToCopy"]) && installData.ContainsKey("FilesToExtract") && !string.IsNullOrEmpty(installData["FilesToExtract"])) { args = new WidgetArgs(args) { { "filesToCopy", installData["FilesToCopy"].Split(',') }, { "filesToExtract", installData["FilesToExtract"].Split(',') }, }; } panel.Get<ButtonWidget>("INSTALL_BUTTON").OnClick = () => Ui.OpenWindow("INSTALL_FROMCD_PANEL", args); panel.Get<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit; panel.Get<ButtonWidget>("MODS_BUTTON").OnClick = () => { Ui.OpenWindow("MODS_PANEL", new WidgetArgs() { { "onExit", () => { } }, { "onSwitch", Ui.CloseWindow }, }); }; }
void TestAndContinue() { Ui.ResetAll(); if (!FileSystem.Exists(Info["TestFile"])) { var args = new WidgetArgs() { { "installData", Info } }; Ui.OpenWindow(Info["InstallerMenuWidget"], args); } else { Game.LoadShellMap(); Ui.ResetAll(); Ui.OpenWindow("MAINMENU_BG"); } }
public void SetTooltip(string id, WidgetArgs args) { RemoveTooltip(); tooltip = Ui.LoadWidget(id, this, new WidgetArgs(args) { { "tooltipContainer", this } }); }
void TestAndContinue() { Ui.ResetAll(); if (!FileSystem.Exists(Info["TestFile"])) { var args = new WidgetArgs() { { "continueLoading", () => TestAndContinue() }, { "installData", Info } }; Ui.OpenWindow(Info["InstallerMenuWidget"], args); } else Game.LoadShellMap(); }
public override void Initialize(WidgetArgs args) { base.Initialize(args); spsprites = Rules.Info.Values.SelectMany( u => u.Traits.WithInterface<SupportPowerInfo>() ) .Select(u => u.Image).Distinct() .ToDictionary( u => u, u => Game.modData.SpriteLoader.LoadAllSprites(u)[0]); ready = new Animation("pips"); ready.PlayRepeating("ready"); clock = new Animation("clock"); }
public override void Initialize(WidgetArgs args) { base.Initialize(args); preview = worldRenderer.Palette(Palette).Palette; }