Exemplo n.º 1
0
		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;
		}
Exemplo n.º 2
0
		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);
			}
		}
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
		public override void Initialize(WidgetArgs args)
		{
			base.Initialize(args);

			icon = new Animation(world, "icon");
			clock = new Animation(world, "clock");
		}
Exemplo n.º 5
0
        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);
            };
        }
Exemplo n.º 6
0
        public override void Initialize(WidgetArgs args)
        {
            base.Initialize(args);

            // Start in the closed position
            offset = ClosedOffset;
        }
Exemplo n.º 7
0
        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 },
                });
            };
        }
Exemplo n.º 8
0
        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 },
                });
            };
        }
Exemplo n.º 9
0
        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);
                });
            };
        }
Exemplo n.º 10
0
		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);
		}
Exemplo n.º 11
0
        public void StartGame(Arguments args)
        {
            var widgetArgs = new WidgetArgs();

            Ui.LoadWidget("MODCHOOSER_BACKGROUND", Ui.Root, widgetArgs);
            Ui.OpenWindow("MODCHOOSER_DIALOG", widgetArgs);
        }
Exemplo n.º 12
0
        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 },
                });
            };
        }
Exemplo n.º 13
0
        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 );
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        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));
        }
Exemplo n.º 16
0
		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);
		}
Exemplo n.º 17
0
        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");
        }
Exemplo n.º 18
0
        public int SetTooltip(string id, WidgetArgs args)
        {
            RemoveTooltip();
            currentToken = nextToken++;

            tooltip = Ui.LoadWidget(id, this, new WidgetArgs(args)
            {
                { "tooltipContainer", this }
            });

            return(currentToken);
        }
Exemplo n.º 19
0
        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());
        }
Exemplo n.º 20
0
        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];
        }
Exemplo n.º 21
0
        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];
        }
Exemplo n.º 22
0
        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;
        }
Exemplo n.º 23
0
        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;
        }
Exemplo n.º 24
0
        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);
        }
Exemplo n.º 25
0
        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);
        }
Exemplo n.º 26
0
		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);
		}
Exemplo n.º 27
0
 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);
 }
Exemplo n.º 28
0
        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);
            }
        }
Exemplo n.º 29
0
        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);
        }
Exemplo n.º 30
0
 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();
     }
 }
Exemplo n.º 31
0
        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);
        }
Exemplo n.º 32
0
        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;
        }
Exemplo n.º 33
0
 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();
     }
 }
Exemplo n.º 34
0
        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;
        }
Exemplo n.º 35
0
		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;
			};
		}
Exemplo n.º 36
0
		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;
		}
Exemplo n.º 37
0
        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;
        }
Exemplo n.º 38
0
        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");
        }
Exemplo n.º 39
0
        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);
        }
Exemplo n.º 40
0
		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();
		}
Exemplo n.º 41
0
        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")]);
        }
Exemplo n.º 42
0
        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;
        }
Exemplo n.º 43
0
        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;
        }
Exemplo n.º 44
0
        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;
        }
Exemplo n.º 45
0
        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();
        }
Exemplo n.º 46
0
        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;
        }
Exemplo n.º 47
0
        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;
        }
Exemplo n.º 48
0
        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();
        }
Exemplo n.º 49
0
        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);
        }
Exemplo n.º 50
0
        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);
            }
        }
Exemplo n.º 51
0
        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);
            });
        }
Exemplo n.º 52
0
        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;
        }
Exemplo n.º 53
0
        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);
            };
        }
Exemplo n.º 54
0
        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);
        }
Exemplo n.º 55
0
        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 },
                });
            };
        }
Exemplo n.º 56
0
 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");
     }
 }
Exemplo n.º 57
0
 public void SetTooltip(string id, WidgetArgs args)
 {
     RemoveTooltip();
     tooltip = Ui.LoadWidget(id, this, new WidgetArgs(args) { { "tooltipContainer", this } });
 }
Exemplo n.º 58
0
 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();
 }
Exemplo n.º 59
0
        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");
        }
Exemplo n.º 60
0
 public override void Initialize(WidgetArgs args)
 {
     base.Initialize(args);
     preview = worldRenderer.Palette(Palette).Palette;
 }