@@ -121,6 +121,7 @@
|
||||
<Compile Include="SpriteLoaders\TmpRALoader.cs" />
|
||||
<Compile Include="SpriteLoaders\TmpTDLoader.cs" />
|
||||
<Compile Include="SpriteLoaders\ShpD2Loader.cs" />
|
||||
<Compile Include="Widgets\Logic\SettingsLogic.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
|
||||
@@ -103,7 +103,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
if (colorDropdown != null)
|
||||
{
|
||||
colorDropdown.IsDisabled = () => currentPalette != colorPreview.PaletteName;
|
||||
colorDropdown.OnMouseDown = _ => ShowColorDropDown(colorDropdown, colorPreview, world);
|
||||
colorDropdown.OnMouseDown = _ => ColorPickerLogic.ShowColorDropDown(colorDropdown, colorPreview, world);
|
||||
panel.Get<ColorBlockWidget>("COLORBLOCK").GetColor = () => Game.Settings.Player.Color.RGB;
|
||||
}
|
||||
|
||||
@@ -376,26 +376,5 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 280, palettes, setupItem);
|
||||
return true;
|
||||
}
|
||||
|
||||
static void ShowColorDropDown(DropDownButtonWidget color, ColorPreviewManagerWidget preview, World world)
|
||||
{
|
||||
Action onExit = () =>
|
||||
{
|
||||
Game.Settings.Player.Color = preview.Color;
|
||||
Game.Settings.Save();
|
||||
};
|
||||
|
||||
color.RemovePanel();
|
||||
|
||||
Action<HSLColor> onChange = c => preview.Color = c;
|
||||
|
||||
var colorChooser = Game.LoadWidget(world, "COLOR_CHOOSER", null, new WidgetArgs()
|
||||
{
|
||||
{ "onChange", onChange },
|
||||
{ "initialColor", Game.Settings.Player.Color }
|
||||
});
|
||||
|
||||
color.AttachPanel(colorChooser, onExit);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,27 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
hueSlider.Value = initialColor.H / 255f;
|
||||
onChange(mixer.Color);
|
||||
}
|
||||
|
||||
public static void ShowColorDropDown(DropDownButtonWidget color, ColorPreviewManagerWidget preview, World world)
|
||||
{
|
||||
Action onExit = () =>
|
||||
{
|
||||
Game.Settings.Player.Color = preview.Color;
|
||||
Game.Settings.Save();
|
||||
};
|
||||
|
||||
color.RemovePanel();
|
||||
|
||||
Action<HSLColor> onChange = c => preview.Color = c;
|
||||
|
||||
var colorChooser = Game.LoadWidget(world, "COLOR_CHOOSER", null, new WidgetArgs()
|
||||
{
|
||||
{ "onChange", onChange },
|
||||
{ "initialColor", Game.Settings.Player.Color }
|
||||
});
|
||||
|
||||
color.AttachPanel(colorChooser, onExit);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,10 +13,9 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Mods.Common.Widgets;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
{
|
||||
public class SettingsLogic
|
||||
{
|
||||
@@ -196,6 +195,21 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
frameLimitTextfield.OnEnterKey = () => { frameLimitTextfield.YieldKeyboardFocus(); return true; };
|
||||
frameLimitTextfield.IsDisabled = () => !ds.CapFramerate;
|
||||
|
||||
// Player profile
|
||||
var ps = Game.Settings.Player;
|
||||
|
||||
var nameTextfield = panel.Get<TextFieldWidget>("PLAYERNAME");
|
||||
nameTextfield.Text = ps.Name;
|
||||
nameTextfield.OnEnterKey = () => { nameTextfield.YieldKeyboardFocus(); return true; };
|
||||
nameTextfield.OnLoseFocus = () => { ps.Name = nameTextfield.Text; };
|
||||
|
||||
var colorPreview = panel.Get<ColorPreviewManagerWidget>("COLOR_MANAGER");
|
||||
colorPreview.Color = ps.Color;
|
||||
|
||||
var colorDropdown = panel.Get<DropDownButtonWidget>("PLAYERCOLOR");
|
||||
colorDropdown.OnMouseDown = _ => ColorPickerLogic.ShowColorDropDown(colorDropdown, colorPreview, worldRenderer.world);
|
||||
colorDropdown.Get<ColorBlockWidget>("COLORBLOCK").GetColor = () => ps.Color.RGB;
|
||||
|
||||
return () =>
|
||||
{
|
||||
int x, y;
|
||||
@@ -203,6 +217,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
Exts.TryParseIntegerInvariant(windowHeight.Text, out y);
|
||||
ds.WindowedSize = new int2(x, y);
|
||||
frameLimitTextfield.YieldKeyboardFocus();
|
||||
nameTextfield.YieldKeyboardFocus();
|
||||
};
|
||||
}
|
||||
|
||||
@@ -210,8 +225,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
{
|
||||
var ds = Game.Settings.Graphics;
|
||||
var gs = Game.Settings.Game;
|
||||
var ps = Game.Settings.Player;
|
||||
var dds = new GraphicSettings();
|
||||
var dgs = new GameSettings();
|
||||
var dps = new PlayerSettings();
|
||||
return () =>
|
||||
{
|
||||
gs.ShowShellmap = dgs.ShowShellmap;
|
||||
@@ -225,6 +242,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
ds.PixelDouble = dds.PixelDouble;
|
||||
ds.CursorDouble = dds.CursorDouble;
|
||||
worldRenderer.Viewport.Zoom = ds.PixelDouble ? 2 : 1;
|
||||
|
||||
ps.Color = dps.Color;
|
||||
ps.Name = dps.Name;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -420,7 +420,6 @@
|
||||
<Compile Include="Widgets\Logic\InstallLogic.cs" />
|
||||
<Compile Include="CombatDebugOverlay.cs" />
|
||||
<Compile Include="World\PathfinderDebugOverlay.cs" />
|
||||
<Compile Include="Widgets\Logic\SettingsLogic.cs" />
|
||||
<Compile Include="AttackBomber.cs" />
|
||||
<Compile Include="ShroudRenderer.cs" />
|
||||
<Compile Include="Render\WithCrateBody.cs" />
|
||||
|
||||
@@ -152,6 +152,29 @@ Container@SETTINGS_PANEL:
|
||||
Height: 20
|
||||
Font: Regular
|
||||
Text: Show Shellmap
|
||||
Label@PLAYER:
|
||||
Text: Player:
|
||||
X: 15
|
||||
Y: 215
|
||||
TextField@PLAYERNAME:
|
||||
Text: Name
|
||||
X: 65
|
||||
Y: 205
|
||||
Width: 145
|
||||
Height: 25
|
||||
MaxLength: 16
|
||||
ColorPreviewManager@COLOR_MANAGER:
|
||||
DropDownButton@PLAYERCOLOR:
|
||||
X: 215
|
||||
Y: 205
|
||||
Width: 70
|
||||
Height: 25
|
||||
Children:
|
||||
ColorBlock@COLORBLOCK:
|
||||
X: 5
|
||||
Y: 6
|
||||
Width: PARENT_RIGHT-35
|
||||
Height: PARENT_BOTTOM-12
|
||||
Checkbox@ALWAYS_SHOW_STATUS_BARS_CHECKBOX:
|
||||
X: 310
|
||||
Y: 205
|
||||
|
||||
@@ -165,6 +165,29 @@ Background@SETTINGS_PANEL:
|
||||
Height: 20
|
||||
Font: Regular
|
||||
Text: Show Shellmap
|
||||
Label@PLAYER:
|
||||
Text: Player:
|
||||
X: 15
|
||||
Y: 215
|
||||
TextField@PLAYERNAME:
|
||||
Text: Name
|
||||
X: 65
|
||||
Y: 205
|
||||
Width: 145
|
||||
Height: 25
|
||||
MaxLength: 16
|
||||
ColorPreviewManager@COLOR_MANAGER:
|
||||
DropDownButton@PLAYERCOLOR:
|
||||
X: 215
|
||||
Y: 205
|
||||
Width: 70
|
||||
Height: 25
|
||||
Children:
|
||||
ColorBlock@COLORBLOCK:
|
||||
X: 5
|
||||
Y: 6
|
||||
Width: PARENT_RIGHT-35
|
||||
Height: PARENT_BOTTOM-12
|
||||
Checkbox@ALWAYS_SHOW_STATUS_BARS_CHECKBOX:
|
||||
X: 310
|
||||
Y: 205
|
||||
|
||||
Reference in New Issue
Block a user