void SetupPlayerColor(Player player, ScrollItemWidget template, ColorBlockWidget colorBlockWidget, GradientColorBlockWidget gradientColorBlockWidget)
        {
            var color      = Color.FromArgb(128, player.Color.R, player.Color.G, player.Color.B);
            var hoverColor = Color.FromArgb(192, player.Color.R, player.Color.G, player.Color.B);

            var isMouseOver = new CachedTransform <Widget, bool>(w => w == template || template.Children.Contains(w));

            colorBlockWidget.GetColor = () => isMouseOver.Update(Ui.MouseOverWidget) ? hoverColor : color;

            gradientColorBlockWidget.GetTopLeftColor     = () => isMouseOver.Update(Ui.MouseOverWidget) ? hoverColor : color;
            gradientColorBlockWidget.GetBottomLeftColor  = () => isMouseOver.Update(Ui.MouseOverWidget) ? hoverColor : color;
            gradientColorBlockWidget.GetTopRightColor    = () => isMouseOver.Update(Ui.MouseOverWidget) ? hoverColor : Color.Transparent;
            gradientColorBlockWidget.GetBottomRightColor = () => isMouseOver.Update(Ui.MouseOverWidget) ? hoverColor : Color.Transparent;
        }
    public void ColorActivated(object o, EventArgs ev)
    {
        if (!(o is ImageMenuItem))
        {
            return;
        }

        ImageMenuItem item = o as ImageMenuItem;

        if (!(item.Image is ColorBlockWidget))
        {
            return;
        }

        ColorBlockWidget block = item.Image as ColorBlockWidget;

        ColorSelectedEventArgs args = new ColorSelectedEventArgs(
            block.Color, item);

        OnColorSelected(args);
    }
Exemple #3
0
 protected ColorBlockWidget(ColorBlockWidget widget)
     : base(widget)
 {
     GetColor = widget.GetColor;
 }
Exemple #4
0
        public VxlBrowserLogic(Widget widget, Action onExit, ModData modData, World world, Dictionary <string, MiniYaml> logicArgs)
        {
            this.world   = world;
            this.modData = modData;
            panel        = widget;

            var voxelWidget = panel.GetOrNull <VoxelWidget>("VOXEL");

            if (voxelWidget != null)
            {
                voxelWidget.GetVoxel             = () => currentVoxel != null ? currentVoxel : null;
                currentPalette                   = voxelWidget.Palette;
                voxelWidget.GetPalette           = () => currentPalette;
                voxelWidget.GetPlayerPalette     = () => currentPlayerPalette;
                voxelWidget.GetNormalsPalette    = () => currentNormalsPalette;
                voxelWidget.GetShadowPalette     = () => currentShadowPalette;
                voxelWidget.GetLightAmbientColor = () => lightAmbientColor;
                voxelWidget.GetLightDiffuseColor = () => lightDiffuseColor;
                voxelWidget.GetLightPitch        = () => lightPitch;
                voxelWidget.GetLightYaw          = () => lightYaw;
                voxelWidget.IsVisible            = () => !isVideoLoaded && !isLoadError;
            }

            var playerWidget = panel.GetOrNull <VqaPlayerWidget>("PLAYER");

            if (playerWidget != null)
            {
                playerWidget.IsVisible = () => isVideoLoaded && !isLoadError;
            }

            var paletteDropDown = panel.GetOrNull <DropDownButtonWidget>("PALETTE_SELECTOR");

            if (paletteDropDown != null)
            {
                paletteDropDown.OnMouseDown = _ => ShowPaletteDropdown(paletteDropDown, world);
                paletteDropDown.GetText     = () => currentPalette;
            }

            var lightAmbientColorPreview = panel.GetOrNull <ColorPreviewManagerWidget>("LIGHT_AMBIENT_COLOR_MANAGER");

            if (lightAmbientColorPreview != null)
            {
                lightAmbientColorPreview.Color = Color.FromArgb(
                    Convert.ToInt32(lightAmbientColor[0] * 255),
                    Convert.ToInt32(lightAmbientColor[1] * 255),
                    Convert.ToInt32(lightAmbientColor[2] * 255)
                    );
            }

            var lightDiffuseColorPreview = panel.GetOrNull <ColorPreviewManagerWidget>("LIGHT_DIFFUSE_COLOR_MANAGER");

            if (lightDiffuseColorPreview != null)
            {
                lightDiffuseColorPreview.Color = Color.FromArgb(
                    Convert.ToInt32(lightDiffuseColor[0] * 255),
                    Convert.ToInt32(lightDiffuseColor[1] * 255),
                    Convert.ToInt32(lightDiffuseColor[2] * 255)
                    );
            }

            var playerPaletteDropDown = panel.GetOrNull <DropDownButtonWidget>("PLAYER_PALETTE_SELECTOR");

            if (playerPaletteDropDown != null)
            {
                playerPaletteDropDown.OnMouseDown = _ => ShowPlayerPaletteDropdown(playerPaletteDropDown, world);
                playerPaletteDropDown.GetText     = () => currentPlayerPalette;
            }

            var normalsPlaletteDropDown = panel.GetOrNull <DropDownButtonWidget>("NORMALS_PALETTE_SELECTOR");

            if (normalsPlaletteDropDown != null)
            {
                normalsPlaletteDropDown.OnMouseDown = _ => ShowNormalsPaletteDropdown(normalsPlaletteDropDown, world);
                normalsPlaletteDropDown.GetText     = () => currentNormalsPalette;
            }

            var shadowPlaletteDropDown = panel.GetOrNull <DropDownButtonWidget>("SHADOW_PALETTE_SELECTOR");

            if (shadowPlaletteDropDown != null)
            {
                shadowPlaletteDropDown.OnMouseDown = _ => ShowShadowPaletteDropdown(normalsPlaletteDropDown, world);
                shadowPlaletteDropDown.GetText     = () => currentShadowPalette;
            }

            scaleInput = panel.GetOrNull <TextFieldWidget>("SCALE_TEXT");
            scaleInput.OnTextEdited = () => OnScaleEdit();
            scaleInput.OnEscKey     = scaleInput.YieldKeyboardFocus;

            lightPitchInput = panel.GetOrNull <TextFieldWidget>("LIGHTPITCH_TEXT");
            lightPitchInput.OnTextEdited = () => OnLightPitchEdit();
            lightPitchInput.OnEscKey     = lightPitchInput.YieldKeyboardFocus;

            lightYawInput = panel.GetOrNull <TextFieldWidget>("LIGHTYAW_TEXT");
            lightYawInput.OnTextEdited = () => OnLightYawEdit();
            lightYawInput.OnEscKey     = lightYawInput.YieldKeyboardFocus;


            var lightAmbientColorDropDown = panel.GetOrNull <DropDownButtonWidget>("LIGHT_AMBIENT_COLOR");

            if (lightAmbientColorDropDown != null)
            {
                lightAmbientColorDropDown.OnMouseDown = _ => ShowLightAmbientColorDropDown(lightAmbientColorDropDown, lightAmbientColorPreview, world);
                lightAmbientColorBlock          = panel.Get <ColorBlockWidget>("AMBIENT_COLORBLOCK");
                lightAmbientColorBlock.GetColor = () => OpenRA.Primitives.Color.FromArgb(
                    Convert.ToInt32(lightAmbientColor[0] * 255),
                    Convert.ToInt32(lightAmbientColor[1] * 255),
                    Convert.ToInt32(lightAmbientColor[2] * 255)
                    );
            }

            lightAmbientColorValue = panel.GetOrNull <LabelWidget>("LIGHTAMBIENTCOLOR_VALUE");
            lightDiffuseColorValue = panel.GetOrNull <LabelWidget>("LIGHTDIFFUSECOLOR_VALUE");

            var lightDiffuseColorDropDown = panel.GetOrNull <DropDownButtonWidget>("LIGHT_DIFFUSE_COLOR");

            if (lightDiffuseColorDropDown != null)
            {
                lightDiffuseColorDropDown.OnMouseDown = _ => ShowLightDiffuseColorDropDown(lightDiffuseColorDropDown, lightDiffuseColorPreview, world);
                lightDiffuseColorBlock          = panel.Get <ColorBlockWidget>("DIFFUSE_COLORBLOCK");
                lightDiffuseColorBlock.GetColor = () => Color.FromArgb(
                    Convert.ToInt32(lightDiffuseColor[0] * 255),
                    Convert.ToInt32(lightDiffuseColor[1] * 255),
                    Convert.ToInt32(lightDiffuseColor[2] * 255)
                    );
            }

            unitnameInput = panel.Get <TextFieldWidget>("FILENAME_INPUT");
            unitnameInput.OnTextEdited = () => ApplyFilter();
            unitnameInput.OnEscKey     = unitnameInput.YieldKeyboardFocus;

            if (logicArgs.ContainsKey("SupportedFormats"))
            {
                allowedExtensions = FieldLoader.GetValue <string[]>("SupportedFormats", logicArgs["SupportedFormats"].Value);
            }
            else
            {
                allowedExtensions = new string[0];
            }

            acceptablePackages = modData.ModFiles.MountedPackages.Where(p =>
                                                                        p.Contents.Any(c => allowedExtensions.Contains(Path.GetExtension(c).ToLowerInvariant())));

            unitList = panel.Get <ScrollPanelWidget>("ASSET_LIST");
            template = panel.Get <ScrollItemWidget>("ASSET_TEMPLATE");
            PopulateAssetList();

            var closeButton = panel.GetOrNull <ButtonWidget>("CLOSE_BUTTON");

            if (closeButton != null)
            {
                closeButton.OnClick = () =>
                {
                    if (isVideoLoaded)
                    {
                        player.Stop();
                    }
                    Ui.CloseWindow();
                    onExit();
                }
            }
            ;
        }
 public void SetMainColor(Color color, string name)
 {
     IconWidget = new ColorBlockWidget(color);
     Label      = name;
 }
 public void SetMainColor(Color color, string name)
 {
     IconWidget = new ColorBlockWidget(color);
     Label = name;
 }
Exemple #7
0
        public D2IngameActorLogic(Widget widget, World world, WorldRenderer worldRenderer)
        {
            this.world         = world;
            this.worldRenderer = worldRenderer;

            var textColor = Color.FromArgb(71, 71, 55);

            panel = widget.GetOrNull <D2PanelWidget>("PANEL");

            label = widget.GetOrNull <LabelWidget>("NAME");
            if (label != null)
            {
                label.Align     = TextAlign.Center;
                label.TextColor = textColor;
                label.Font      = "MediumBold";
            }

            preview = widget.GetOrNull <D2SpriteWidget>("ICON");

            health = widget.GetOrNull <D2ProgressBarWidget>("HEALTH");

            dmgLabel = widget.GetOrNull <LabelWidget>("DMG");
            if (dmgLabel != null)
            {
                dmgLabel.Text      = "DMG";
                dmgLabel.Align     = TextAlign.Center;
                dmgLabel.TextColor = textColor;
                dmgLabel.Font      = "MediumBold";
            }

            title = widget.GetOrNull <LabelWidget>("TITLE");
            if (title != null)
            {
                title.Align     = TextAlign.Center;
                title.TextColor = textColor;
                title.Font      = "MediumBold";
            }

            separator = widget.GetOrNull <D2LineWidget>("SEPARATOR");

            line1a = widget.GetOrNull <LabelWidget>("LINE1A");
            if (line1a != null)
            {
                line1a.TextColor = textColor;
                line1a.Font      = "MediumBold";
            }

            line1b = widget.GetOrNull <LabelWidget>("LINE1B");
            if (line1b != null)
            {
                line1b.Align     = TextAlign.Right;
                line1b.TextColor = textColor;
                line1b.Font      = "MediumBold";
            }

            line2a = widget.GetOrNull <LabelWidget>("LINE2A");
            if (line2a != null)
            {
                line2a.TextColor = textColor;
                line2a.Font      = "MediumBold";
            }

            line2b = widget.GetOrNull <LabelWidget>("LINE2B");
            if (line2b != null)
            {
                line2b.Align     = TextAlign.Right;
                line2b.TextColor = textColor;
                line2b.Font      = "MediumBold";
            }

            buttonsBackground = widget.GetOrNull <ColorBlockWidget>("BUTTONS_BACKGROUND");
            if (buttonsBackground != null)
            {
                buttonsBackground.Visible = false;
            }

            attackButton = widget.GetOrNull <D2ButtonWidget>("ATTACK");
            if (attackButton != null)
            {
                attackButton.Visible       = false;
                attackButton.IsHighlighted = () => IsForceModifiersActive(Modifiers.Ctrl) &&
                                             !(world.OrderGenerator is AttackMoveOrderGenerator);

                Action <bool> toggle = allowCancel =>
                {
                    if (attackButton.IsHighlighted())
                    {
                        world.CancelInputMode();
                    }
                    else
                    {
                        world.OrderGenerator = new ForceModifiersOrderGenerator(Modifiers.Ctrl, true);
                    }
                };

                attackButton.OnClick    = () => toggle(true);
                attackButton.OnKeyPress = _ => toggle(false);
            }

            moveButton = widget.GetOrNull <D2ButtonWidget>("MOVE");
            if (moveButton != null)
            {
                moveButton.Visible       = false;
                moveButton.IsHighlighted = () => !moveButton.IsDisabled() && IsForceModifiersActive(Modifiers.Alt);
                Action <bool> toggle = allowCancel =>
                {
                    if (moveButton.IsHighlighted())
                    {
                        world.CancelInputMode();
                    }
                    else
                    {
                        world.OrderGenerator = new ForceModifiersOrderGenerator(Modifiers.Alt, true);
                    }
                };

                moveButton.OnClick    = () => toggle(true);
                moveButton.OnKeyPress = _ => toggle(false);
            }

            retreatButton = widget.GetOrNull <D2ButtonWidget>("RETREAT");
            if (retreatButton != null)
            {
                retreatButton.Visible = false;

                retreatButton.OnClick = () =>
                {
                    PerformKeyboardOrderOnSelection(a => new Order("Stop", a, false));
                };

                retreatButton.OnKeyPress = ki => { retreatButton.OnClick(); };
            }

            guardButton = widget.GetOrNull <D2ButtonWidget>("GUARD");
            if (guardButton != null)
            {
                guardButton.Visible       = false;
                guardButton.IsHighlighted = () => world.OrderGenerator is GuardOrderGenerator;

                Action <bool> toggle = allowCancel =>
                {
                    if (guardButton.IsHighlighted())
                    {
                        if (allowCancel)
                        {
                            world.CancelInputMode();
                        }
                    }
                    else
                    {
                        world.OrderGenerator = new GuardOrderGenerator(selectedActors,
                                                                       "Guard", "guard", Game.Settings.Game.MouseButtonPreference.Action);
                    }
                };

                guardButton.OnClick    = () => toggle(true);
                guardButton.OnKeyPress = _ => toggle(false);
            }
        }