本文整理汇总了C#中Sandbox.Graphics.GUI.MyGuiControlSlider类的典型用法代码示例。如果您正苦于以下问题:C# MyGuiControlSlider类的具体用法?C# MyGuiControlSlider怎么用?C# MyGuiControlSlider使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
MyGuiControlSlider类属于Sandbox.Graphics.GUI命名空间,在下文中一共展示了MyGuiControlSlider类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreatePlanetsSpawnMenu
private void CreatePlanetsSpawnMenu(float separatorSize, float usableWidth)
{
float min = MyFakes.ENABLE_EXTENDED_PLANET_OPTIONS ? 100 : 19000;
float max = /*MyFakes.ENABLE_EXTENDED_PLANET_OPTIONS ? (6378.1f * 1000 * 2) :*/ 120000f;
MyGuiControlSlider slider = null;
slider = new MyGuiControlSlider(
position: m_currentPosition,
width: 400f / MyGuiConstants.GUI_OPTIMAL_SIZE.X,
minValue: min,
maxValue: max,
labelText: String.Empty,
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
labelFont: MyFontEnum.Debug,
intValue: true);
slider.DebugScale = m_sliderDebugScale;
slider.ColorMask = Color.White.ToVector4();
Controls.Add(slider);
var label = new MyGuiControlLabel(
position: m_currentPosition + new Vector2(slider.Size.X + 0.005f, slider.Size.Y / 2),
text: String.Empty,
colorMask: Color.White.ToVector4(),
textScale: MyGuiConstants.DEFAULT_TEXT_SCALE * 0.8f * m_scale,
font: MyFontEnum.Debug);
label.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER;
Controls.Add(label);
m_currentPosition.Y += slider.Size.Y;
m_currentPosition.Y += separatorSize;
slider.ValueChanged += (MyGuiControlSlider s) =>
{
StringBuilder sb = new StringBuilder();
MyValueFormatter.AppendDistanceInBestUnit(s.Value, sb);
label.Text = sb.ToString();
m_procAsteroidSizeValue = s.Value;
};
slider.Value = 8000;
m_procAsteroidSeed = CreateSeedButton(m_procAsteroidSeedValue, usableWidth);
m_planetCombobox = AddCombo();
{
foreach (var definition in MyDefinitionManager.Static.GetPlanetsGeneratorsDefinitions())
{
m_planetCombobox.AddItem((int)definition.Id.SubtypeId, definition.Id.SubtypeId.ToString());
}
m_planetCombobox.ItemSelected += OnPlanetCombobox_ItemSelected;
m_planetCombobox.SortItemsByValueText();
m_planetCombobox.SelectItemByIndex(0);
}
CreateDebugButton(usableWidth, MySpaceTexts.ScreenDebugSpawnMenu_SpawnAsteroid, x =>
{
int seed = GetProceduralAsteroidSeed(m_procAsteroidSeed);
CreatePlanet(seed, slider.Value);
CloseScreenNow();
});
}
示例2: CreateSliderWithDescription
private MyGuiControlLabel CreateSliderWithDescription(float usableWidth, float min, float max, string description, ref MyGuiControlSlider slider)
{
var label = AddLabel(description, Vector4.One, m_scale);
CreateSlider(usableWidth, min, max, ref slider);
var labelNoise = AddLabel("", Vector4.One, m_scale);
return labelNoise;
}
示例3: CreateProceduralAsteroidsSpawnMenu
private void CreateProceduralAsteroidsSpawnMenu(float separatorSize, float usableWidth)
{
AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_ProceduralSize), Vector4.One, m_scale);
m_procAsteroidSize = new MyGuiControlSlider(
position: m_currentPosition,
width: 400f / MyGuiConstants.GUI_OPTIMAL_SIZE.X,
minValue: 5.0f,
maxValue: 500f,
labelText: String.Empty,
labelDecimalPlaces: 2,
labelScale: 0.75f * m_scale,
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
labelFont: MyFontEnum.Debug);
m_procAsteroidSize.DebugScale = m_sliderDebugScale;
m_procAsteroidSize.ColorMask = Color.White.ToVector4();
Controls.Add(m_procAsteroidSize);
MyGuiControlLabel label = new MyGuiControlLabel(
position: m_currentPosition + new Vector2(m_procAsteroidSize.Size.X + 0.005f, m_procAsteroidSize.Size.Y / 2),
text: String.Empty,
colorMask: Color.White.ToVector4(),
textScale: MyGuiConstants.DEFAULT_TEXT_SCALE * 0.8f * m_scale,
font: MyFontEnum.Debug);
label.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER;
Controls.Add(label);
m_procAsteroidSize.ValueChanged += (MyGuiControlSlider s) => { label.Text = MyValueFormatter.GetFormatedFloat(s.Value, 2) + "m"; m_procAsteroidSizeValue = s.Value; };
m_procAsteroidSize.Value = m_procAsteroidSizeValue;
m_currentPosition.Y += m_procAsteroidSize.Size.Y;
m_currentPosition.Y += separatorSize;
AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_ProceduralSeed), Color.White.ToVector4(), m_scale);
m_procAsteroidSeed = new MyGuiControlTextbox(m_currentPosition, m_procAsteroidSeedValue, 20, Color.White.ToVector4(), m_scale, MyGuiControlTextboxType.Normal);
m_procAsteroidSeed.TextChanged += (MyGuiControlTextbox t) => { m_procAsteroidSeedValue = t.Text; };
m_procAsteroidSeed.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP;
Controls.Add(m_procAsteroidSeed);
m_currentPosition.Y += m_procAsteroidSize.Size.Y + separatorSize;
CreateDebugButton(usableWidth, MySpaceTexts.ScreenDebugSpawnMenu_GenerateSeed, generateSeedButton_OnButtonClick);
AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_AsteroidGenerationCanTakeLong), Color.Red.ToVector4(), m_scale);
CreateDebugButton(usableWidth, MySpaceTexts.ScreenDebugSpawnMenu_SpawnAsteroid, OnSpawnProceduralAsteroid);
m_currentPosition.Y += separatorSize;
}
示例4: CreateSlider
private void CreateSlider(MyGuiControlList list, float usableWidth, float min,float max,ref MyGuiControlSlider slider)
{
slider = new MyGuiControlSlider(
position: m_currentPosition,
width: 400f / MyGuiConstants.GUI_OPTIMAL_SIZE.X,
minValue: min,
maxValue: max,
labelText: String.Empty,
labelDecimalPlaces: 4,
labelScale: 0.75f * m_scale,
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
labelFont: MyFontEnum.Debug);
slider.DebugScale = m_sliderDebugScale;
slider.ColorMask = Color.White.ToVector4();
list.Controls.Add(slider);
}
示例5: RecreateControls
public override void RecreateControls(bool constructor)
{
base.RecreateControls(constructor);
if (m_asteroid_showPlanet)
{
CreatePlanetMenu();
return;
}
Vector2 cbOffset = new Vector2(-0.05f, 0.0f);
Vector2 controlPadding = new Vector2(0.02f, 0.02f); // X: Left & Right, Y: Bottom & Top
float textScale = 0.8f;
float separatorSize = 0.01f;
float usableWidth = SCREEN_SIZE.X - HIDDEN_PART_RIGHT - controlPadding.X * 2;
float hiddenPartTop = (SCREEN_SIZE.Y - 1.0f) / 2.0f;
m_currentPosition = -m_size.Value / 2.0f;
m_currentPosition += controlPadding;
m_currentPosition.Y += hiddenPartTop;
m_scale = textScale;
var caption = AddCaption(MySpaceTexts.ScreenDebugSpawnMenu_Caption, Color.White.ToVector4(), controlPadding + new Vector2(-HIDDEN_PART_RIGHT, hiddenPartTop));
m_currentPosition.Y += MyGuiConstants.SCREEN_CAPTION_DELTA_Y + separatorSize;
if (MyFakes.ENABLE_SPAWN_MENU_ASTEROIDS || MyFakes.ENABLE_SPAWN_MENU_PROCEDURAL_ASTEROIDS)
{
AddSubcaption(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_Asteroids), Color.White.ToVector4(), new Vector2(-HIDDEN_PART_RIGHT, 0.0f));
}
if (MyFakes.ENABLE_SPAWN_MENU_ASTEROIDS && MyFakes.ENABLE_SPAWN_MENU_PROCEDURAL_ASTEROIDS)
{
AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_SelectAsteroidType), Vector4.One, m_scale);
var combo = AddCombo();
combo.AddItem(1, MySpaceTexts.ScreenDebugSpawnMenu_PredefinedAsteroids);
combo.AddItem(2, MySpaceTexts.ScreenDebugSpawnMenu_ProceduralAsteroids);
// DA: Remove from MySpaceTexts and just hardcode until release. Leave a todo so you don't forget about it before release of planets.
combo.AddItem(3, MySpaceTexts.ScreenDebugSpawnMenu_Planets);
combo.SelectItemByKey(m_asteroid_showPlanet ? 3 : m_asteroid_showPredefinedOrProcedural ? 1 : 2);
combo.ItemSelected += () => { m_asteroid_showPredefinedOrProcedural = combo.GetSelectedKey() == 1; m_asteroid_showPlanet = combo.GetSelectedKey() == 3; RecreateControls(false); };
}
if (MyFakes.ENABLE_SPAWN_MENU_ASTEROIDS && m_asteroid_showPredefinedOrProcedural)
{
AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_Asteroid), Vector4.One, m_scale);
m_asteroidCombobox = AddCombo();
{
foreach (var definition in MyDefinitionManager.Static.GetVoxelMapStorageDefinitions())
{
m_asteroidCombobox.AddItem((int)definition.Id.SubtypeId, definition.Id.SubtypeId.ToString());
}
m_asteroidCombobox.ItemSelected += OnAsteroidCombobox_ItemSelected;
m_asteroidCombobox.SortItemsByValueText();
m_asteroidCombobox.SelectItemByIndex(m_lastSelectedAsteroidIndex);
}
m_currentPosition.Y += separatorSize;
AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_AsteroidGenerationCanTakeLong), Color.Red.ToVector4(), m_scale);
CreateDebugButton(usableWidth, MySpaceTexts.ScreenDebugSpawnMenu_SpawnAsteroid, OnLoadAsteroid);
m_currentPosition.Y += separatorSize;
}
if (MyFakes.ENABLE_SPAWN_MENU_PROCEDURAL_ASTEROIDS && !m_asteroid_showPredefinedOrProcedural)
{
AddLabel(MyTexts.GetString(MySpaceTexts.ScreenDebugSpawnMenu_ProceduralSize), Vector4.One, m_scale);
m_procAsteroidSize = new MyGuiControlSlider(
position: m_currentPosition,
width: 400f / MyGuiConstants.GUI_OPTIMAL_SIZE.X,
minValue: 5.0f,
maxValue: 500f,
labelText: String.Empty,
labelDecimalPlaces: 2,
labelScale: 0.75f * m_scale,
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
labelFont: MyFontEnum.Debug);
m_procAsteroidSize.DebugScale = m_sliderDebugScale;
m_procAsteroidSize.ColorMask = Color.White.ToVector4();
Controls.Add(m_procAsteroidSize);
MyGuiControlLabel label = new MyGuiControlLabel(
position: m_currentPosition + new Vector2(m_procAsteroidSize.Size.X + 0.005f, m_procAsteroidSize.Size.Y / 2),
text: String.Empty,
colorMask: Color.White.ToVector4(),
textScale: MyGuiConstants.DEFAULT_TEXT_SCALE * 0.8f * m_scale,
font: MyFontEnum.Debug);
label.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER;
Controls.Add(label);
m_procAsteroidSize.ValueChanged += (MyGuiControlSlider s) => { label.Text = MyValueFormatter.GetFormatedFloat(s.Value, 2) + "m"; m_procAsteroidSizeValue = s.Value; };
m_procAsteroidSize.Value = m_procAsteroidSizeValue;
m_currentPosition.Y += m_procAsteroidSize.Size.Y;
m_currentPosition.Y += separatorSize;
//.........这里部分代码省略.........
示例6: RecreateControls
public override void RecreateControls(bool constructor)
{
if (!constructor)
return;
base.RecreateControls(constructor);
AddCaption(MyTexts.GetString(MyCommonTexts.ScreenCaptionGraphicsOptions));
const float TEXT_SCALE = Sandbox.Graphics.GUI.MyGuiConstants.DEFAULT_TEXT_SCALE * 0.85f;
var labelRenderer = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.ScreenGraphicsOptions_Renderer));
var labelHwCursor = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.HardwareCursor));
var labelFov = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.FieldOfView));
var labelFovDefault = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.DefaultFOV));
var labelRenderInterpolation = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.RenderIterpolation));
var labelAntiAliasing = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_AntiAliasing));
var labelShadowMapResolution = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.ScreenGraphicsOptions_ShadowMapResolution));
var labelMultithreadedRendering = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_MultiThreadedRendering));
//var labelTonemapping = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_Tonemapping));
var labelTextureQuality = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_TextureQuality));
var labelVoxelQuality = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.ScreenGraphicsOptions_VoxelQuality));
var labelAnisotropicFiltering = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_AnisotropicFiltering));
var labelGraphicsPresets = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset));
var labelFoliageDetails = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails));
var labelGrassDensity = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.WorldSettings_GrassDensity));
var labelEnableDamageEffects = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.EnableDamageEffects));
var labelVegetationDistance = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.WorldSettings_VegetationDistance));
m_comboRenderer = new MyGuiControlCombobox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsRenderer));
m_comboGraphicsPresets = new MyGuiControlCombobox();
m_comboAntialiasing = new MyGuiControlCombobox();
m_comboShadowMapResolution = new MyGuiControlCombobox();
m_comboTextureQuality = new MyGuiControlCombobox();
m_comboAnisotropicFiltering = new MyGuiControlCombobox();
m_checkboxHardwareCursor = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MyCommonTexts.ToolTipVideoOptionsHardwareCursor));
m_checkboxRenderInterpolation = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MyCommonTexts.ToolTipVideoOptionRenderIterpolation));
//m_checkboxMultithreadedRender = new MyGuiControlCheckbox();
//m_checkboxTonemapping = new MyGuiControlCheckbox();
m_checkboxEnableDamageEffects = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsEnableDamageEffects));
m_sliderFov = new MyGuiControlSlider(toolTip: MyTexts.GetString(MyCommonTexts.ToolTipVideoOptionsFieldOfView),
labelText: new StringBuilder("{0}").ToString(),
labelSpaceWidth: 0.035f,
labelScale: TEXT_SCALE,
labelFont: MyFontEnum.Blue,
defaultValue: MathHelper.ToDegrees(MySandboxGame.Config.FieldOfView));
m_comboVoxelQuality = new MyGuiControlCombobox();
m_comboFoliageDetails = new MyGuiControlCombobox();
m_grassDensitySlider = new MyGuiControlSlider(minValue: 0f, maxValue: 10f,
labelText: new StringBuilder("{0}").ToString(),
labelSpaceWidth: 0.035f,
labelScale: TEXT_SCALE,
labelFont: MyFontEnum.Blue,
defaultValue: MySandboxGame.Config.GrassDensityFactor);
/* Vegetation View Distance */
m_vegetationViewDistance = new MyGuiControlSliderBase(
props: new MyGuiSliderPropertiesExponential(100, 10 * 1000, 10, true),
labelSpaceWidth: 0.063f,
labelScale: TEXT_SCALE,
labelFont: MyFontEnum.Blue);
m_vegetationViewDistance.DefaultRatio = m_vegetationViewDistance.Propeties.ValueToRatio(MySandboxGame.Config.VegetationDrawDistance);
var okButton = new MyGuiControlButton(text: MyTexts.Get(MyCommonTexts.Ok), onButtonClick: OnOkClick);
var cancelButton = new MyGuiControlButton(text: MyTexts.Get(MyCommonTexts.Cancel), onButtonClick: OnCancelClick);
m_comboGraphicsPresets.AddItem((int)PresetEnum.Low, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset_Low));
m_comboGraphicsPresets.AddItem((int)PresetEnum.Medium, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset_Medium));
m_comboGraphicsPresets.AddItem((int)PresetEnum.High, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset_High));
m_comboGraphicsPresets.AddItem((int)PresetEnum.Custom, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset_Custom));
m_comboAntialiasing.AddItem((int)MyAntialiasingMode.NONE, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_AntiAliasing_None));
m_comboAntialiasing.AddItem((int)MyAntialiasingMode.FXAA, "FXAA");
//m_comboAntialiasing.AddItem((int)MyAntialiasingMode.MSAA_2, "MSAA 2x");
//m_comboAntialiasing.AddItem((int)MyAntialiasingMode.MSAA_4, "MSAA 4x");
//m_comboAntialiasing.AddItem((int)MyAntialiasingMode.MSAA_8, "MSAA 8x");
m_comboShadowMapResolution.AddItem((int)MyShadowsQuality.DISABLED, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_ShadowMapResolution_Disabled));
m_comboShadowMapResolution.AddItem((int)MyShadowsQuality.LOW, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_ShadowMapResolution_Low));
m_comboShadowMapResolution.AddItem((int)MyShadowsQuality.MEDIUM, MyTexts.GetString(MySpaceTexts.ScreenGraphicsOptions_ShadowMapResolution_Medium));
m_comboShadowMapResolution.AddItem((int)MyShadowsQuality.HIGH, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_ShadowMapResolution_High));
m_comboTextureQuality.AddItem((int)MyTextureQuality.LOW, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_TextureQuality_Low));
m_comboTextureQuality.AddItem((int)MyTextureQuality.MEDIUM, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_TextureQuality_Medium));
m_comboTextureQuality.AddItem((int)MyTextureQuality.HIGH, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_TextureQuality_High));
m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.NONE, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_AnisotropicFiltering_Off));
m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.ANISO_1, "1x");
m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.ANISO_4, "4x");
m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.ANISO_8, "8x");
m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.ANISO_16, "16x");
m_comboFoliageDetails.AddItem((int)MyFoliageDetails.DISABLED, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_Disabled));
m_comboFoliageDetails.AddItem((int)MyFoliageDetails.LOW, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_Low));
m_comboFoliageDetails.AddItem((int)MyFoliageDetails.MEDIUM, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_Medium));
m_comboFoliageDetails.AddItem((int)MyFoliageDetails.HIGH, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_High));
//.........这里部分代码省略.........
示例7: BuildControls
protected virtual void BuildControls()
{
Vector2 buttonSize = MyGuiConstants.BACK_BUTTON_SIZE;
Vector2 buttonsOrigin = m_size.Value / 2 - new Vector2(0.23f, 0.03f);
if (m_isNewGame)
AddCaption(MyCommonTexts.ScreenCaptionCustomWorld);
else
AddCaption(MyCommonTexts.ScreenCaptionEditSettings);
int numControls = 0;
var nameLabel = MakeLabel(MyCommonTexts.Name);
var descriptionLabel = MakeLabel(MyCommonTexts.Description);
var gameModeLabel = MakeLabel(MyCommonTexts.WorldSettings_GameMode);
var onlineModeLabel = MakeLabel(MyCommonTexts.WorldSettings_OnlineMode);
m_maxPlayersLabel = MakeLabel(MyCommonTexts.MaxPlayers);
var environmentLabel = MakeLabel(MySpaceTexts.WorldSettings_EnvironmentHostility);
var scenarioLabel = MakeLabel(MySpaceTexts.WorldSettings_Scenario);
var soundModeLabel = MakeLabel(MySpaceTexts.WorldSettings_SoundMode);
float width = 0.284375f + 0.025f;
m_nameTextbox = new MyGuiControlTextbox(maxLength: MySession.MAX_NAME_LENGTH);
m_descriptionTextbox = new MyGuiControlTextbox(maxLength: MySession.MAX_DESCRIPTION_LENGTH);
m_onlineMode = new MyGuiControlCombobox(size: new Vector2(width, 0.04f));
m_environment = new MyGuiControlCombobox(size: new Vector2(width, 0.04f));
m_maxPlayersSlider = new MyGuiControlSlider(
position: Vector2.Zero,
width: m_onlineMode.Size.X,
minValue: 2,
maxValue: 16,
labelText: new StringBuilder("{0}").ToString(),
labelDecimalPlaces: 0,
labelSpaceWidth: 0.05f,
intValue: true
);
m_asteroidAmountLabel = MakeLabel(MySpaceTexts.Asteroid_Amount);
m_asteroidAmountCombo = new MyGuiControlCombobox(size: new Vector2(width, 0.04f));
m_asteroidAmountCombo.ItemSelected += m_asteroidAmountCombo_ItemSelected;
m_soundModeCombo = new MyGuiControlCombobox(size: new Vector2(width, 0.04f));
m_scenarioTypesList = new MyGuiControlList();
// Ok/Cancel
m_okButton = new MyGuiControlButton(position: buttonsOrigin - new Vector2(0.01f, 0f), size: buttonSize, text: MyTexts.Get(MyCommonTexts.Ok), onButtonClick: OnOkButtonClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM);
m_cancelButton = new MyGuiControlButton(position: buttonsOrigin + new Vector2(0.01f, 0f), size: buttonSize, text: MyTexts.Get(MyCommonTexts.Cancel), onButtonClick: OnCancelButtonClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_BOTTOM);
m_creativeModeButton = new MyGuiControlButton(visualStyle: MyGuiControlButtonStyleEnum.Small, highlightType: MyGuiControlHighlightType.WHEN_ACTIVE, text: MyTexts.Get(MyCommonTexts.WorldSettings_GameModeCreative), onButtonClick: OnCreativeClick);
m_creativeModeButton.SetToolTip(MySpaceTexts.ToolTipWorldSettingsModeCreative);
m_survivalModeButton = new MyGuiControlButton(visualStyle: MyGuiControlButtonStyleEnum.Small, highlightType: MyGuiControlHighlightType.WHEN_ACTIVE, text: MyTexts.Get(MyCommonTexts.WorldSettings_GameModeSurvival), onButtonClick: OnSurvivalClick);
m_survivalModeButton.SetToolTip(MySpaceTexts.ToolTipWorldSettingsModeSurvival);
m_onlineMode.ItemSelected += OnOnlineModeSelect;
m_onlineMode.AddItem((int)MyOnlineModeEnum.OFFLINE, MyCommonTexts.WorldSettings_OnlineModeOffline);
m_onlineMode.AddItem((int)MyOnlineModeEnum.PRIVATE, MyCommonTexts.WorldSettings_OnlineModePrivate);
m_onlineMode.AddItem((int)MyOnlineModeEnum.FRIENDS, MyCommonTexts.WorldSettings_OnlineModeFriends);
m_onlineMode.AddItem((int)MyOnlineModeEnum.PUBLIC, MyCommonTexts.WorldSettings_OnlineModePublic);
m_environment.AddItem((int)MyEnvironmentHostilityEnum.SAFE, MySpaceTexts.WorldSettings_EnvironmentHostilitySafe);
m_environment.AddItem((int)MyEnvironmentHostilityEnum.NORMAL, MySpaceTexts.WorldSettings_EnvironmentHostilityNormal);
m_environment.AddItem((int)MyEnvironmentHostilityEnum.CATACLYSM, MySpaceTexts.WorldSettings_EnvironmentHostilityCataclysm);
m_environment.AddItem((int)MyEnvironmentHostilityEnum.CATACLYSM_UNREAL, MySpaceTexts.WorldSettings_EnvironmentHostilityCataclysmUnreal);
m_environment.ItemSelected += HostilityChanged;
m_soundModeCombo.AddItem((int)MySoundModeEnum.Arcade, MySpaceTexts.WorldSettings_ArcadeSound);
m_soundModeCombo.AddItem((int)MySoundModeEnum.Realistic, MySpaceTexts.WorldSettings_RealisticSound);
if (m_isNewGame)
{
m_scenarioTypesGroup = new MyGuiControlRadioButtonGroup();
m_scenarioTypesGroup.SelectedChanged += scenario_SelectedChanged;
foreach (var scenario in MyDefinitionManager.Static.GetScenarioDefinitions())
{
if (!scenario.Public && !MyFakes.ENABLE_NON_PUBLIC_SCENARIOS)
continue;
var button = new MyGuiControlScenarioButton(scenario);
m_scenarioTypesGroup.Add(button);
m_scenarioTypesList.Controls.Add(button);
}
}
m_nameTextbox.SetToolTip(string.Format(MyTexts.GetString(MyCommonTexts.ToolTipWorldSettingsName), MySession.MIN_NAME_LENGTH, MySession.MAX_NAME_LENGTH));
m_descriptionTextbox.SetToolTip(MyTexts.GetString(MyCommonTexts.ToolTipWorldSettingsDescription));
m_environment.SetToolTip(MyTexts.GetString(MySpaceTexts.ToolTipWorldSettingsEnvironment));
m_onlineMode.SetToolTip(MyTexts.GetString(MySpaceTexts.ToolTipWorldSettingsOnlineMode));
m_maxPlayersSlider.SetToolTip(MyTexts.GetString(MySpaceTexts.ToolTipWorldSettingsMaxPlayer));
m_asteroidAmountCombo.SetToolTip(MyTexts.GetString(MySpaceTexts.ToolTipWorldSettingsAsteroidAmount));
m_soundModeCombo.SetToolTip(MyTexts.GetString(MySpaceTexts.ToolTipWorldSettingsSoundMode));
m_nameTextbox.TextChanged += m_nameTextbox_TextChanged;
m_soundModeCombo.ItemSelected += m_soundModeCombo_ItemSelected;
var advanced = new MyGuiControlButton(highlightType: MyGuiControlHighlightType.WHEN_ACTIVE, text: MyTexts.Get(MySpaceTexts.WorldSettings_Advanced), onButtonClick: OnAdvancedClick);
//.........这里部分代码省略.........
示例8: Slider_ValueChanged
private void Slider_ValueChanged(MyGuiControlSlider sender)
{
var inv = 1f / ValueStep;
var val = m_sliderValue.Value * inv;
Value = MathHelper.Clamp((int)val / inv, ValueMin, ValueMax);
m_labelValue.Text = Value.ToString();
if (ValueChanged != null)
ValueChanged();
}
示例9: MyBrushGUIPropertyNumberSlider
public MyBrushGUIPropertyNumberSlider(
float value, float valueMin, float valueMax, float valueStep,
MyVoxelBrushGUIPropertyOrder order, MyStringId labelText)
{
// first is default
var labelPos = new Vector2(-0.1f, -0.15f);
var valuePos = new Vector2( 0.075f, -0.15f);
var sliderPos = new Vector2(-0.1f, -0.12f);
switch (order)
{
case MyVoxelBrushGUIPropertyOrder.Second:
labelPos.Y = -0.07f;
valuePos.Y = -0.07f;
sliderPos.Y = -0.04f;
break;
case MyVoxelBrushGUIPropertyOrder.Third:
labelPos.Y = 0.01f;
valuePos.Y = 0.01f;
sliderPos.Y = 0.04f;
break;
}
Value = value;
ValueMin = valueMin;
ValueMax = valueMax;
ValueStep = valueStep;
m_label = new MyGuiControlLabel { Position = labelPos, TextEnum = labelText, OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP };
m_labelValue = new MyGuiControlLabel { Position = valuePos, Text = Value.ToString(), OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP };
m_sliderValue = new MyGuiControlSlider { Position = sliderPos, OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP };
m_sliderValue.Size = new Vector2(0.212f, 0.1f);
m_sliderValue.MaxValue = ValueMax;
m_sliderValue.Value = Value;
m_sliderValue.MinValue = ValueMin;
m_sliderValue.ValueChanged += Slider_ValueChanged;
}
示例10: BuildControls
protected virtual void BuildControls()
{
Vector2 buttonSize = MyGuiConstants.BACK_BUTTON_SIZE;
Vector2 buttonsOrigin = m_size.Value / 2 - new Vector2(0.65f, 0.1f);
AddCaption(MySpaceTexts.ScreenCaptionScenario);
//RIGHT:
int numControls = 0;
var nameLabel = MakeLabel(MySpaceTexts.Name);
var descriptionLabel = MakeLabel(MySpaceTexts.Description);
var difficultyLabel = MakeLabel(MySpaceTexts.Difficulty);
var onlineModeLabel = MakeLabel(MySpaceTexts.WorldSettings_OnlineMode);
m_maxPlayersLabel = MakeLabel(MySpaceTexts.MaxPlayers);
float width = 0.284375f + 0.025f;
m_nameTextbox = new MyGuiControlTextbox(maxLength: MySession.MAX_NAME_LENGTH);
m_descriptionTextbox = new MyGuiControlTextbox(maxLength: MySession.MAX_DESCRIPTION_LENGTH);
m_difficultyCombo = new MyGuiControlCombobox(size: new Vector2(width, 0.04f));
m_difficultyCombo.AddItem((int)0, MySpaceTexts.DifficultyEasy);
m_difficultyCombo.AddItem((int)1, MySpaceTexts.DifficultyNormal);
m_difficultyCombo.AddItem((int)2, MySpaceTexts.DifficultyHard);
m_onlineMode = new MyGuiControlCombobox(size: new Vector2(width, 0.04f));
m_maxPlayersSlider = new MyGuiControlSlider(
position: Vector2.Zero,
width: m_onlineMode.Size.X,
minValue: 2,
maxValue: 16,
labelText: new StringBuilder("{0}").ToString(),
labelDecimalPlaces: 0,
labelSpaceWidth: 0.05f,
intValue: true
);
m_scenarioTypesList = new MyGuiControlList();
//BUTTONS
m_removeButton = new MyGuiControlButton(position: buttonsOrigin, size: buttonSize, text: MyTexts.Get(MySpaceTexts.buttonRemove),
onButtonClick: OnOkButtonClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM);
m_publishButton = new MyGuiControlButton(position: buttonsOrigin + new Vector2(0.01f + m_removeButton.Size.X, 0f), size: buttonSize, text: MyTexts.Get(MySpaceTexts.buttonPublish),
onButtonClick: OnOkButtonClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM);
m_createButton = new MyGuiControlButton(position: buttonsOrigin + new Vector2(2*(0.01f + m_removeButton.Size.X), 0f), size: buttonSize, text: MyTexts.Get(MySpaceTexts.buttonCreateNew),
onButtonClick: OnOkButtonClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM);
m_browseWorkshopButton = new MyGuiControlButton(position: buttonsOrigin + new Vector2(3*(0.01f + m_removeButton.Size.X), 0f), size: buttonSize, text: MyTexts.Get(MySpaceTexts.buttonBrowseWorkshop),
onButtonClick: OnOkButtonClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM);
m_refreshButton = new MyGuiControlButton(position: buttonsOrigin + new Vector2(0.0f, m_removeButton.Size.Y+0.01f), size: buttonSize, text: MyTexts.Get(MySpaceTexts.buttonRefresh),
onButtonClick: OnRefreshButtonClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM);
m_openInWorkshopButton = new MyGuiControlButton(position: buttonsOrigin + new Vector2((0.01f + m_removeButton.Size.X), m_removeButton.Size.Y + 0.01f), size: buttonSize, text: MyTexts.Get(MySpaceTexts.buttonOpenInWorkshop),
onButtonClick: OnOkButtonClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM);
m_okButton = new MyGuiControlButton(position: buttonsOrigin + new Vector2(2 * (0.01f + m_removeButton.Size.X), m_removeButton.Size.Y + 0.01f), size: buttonSize, text: MyTexts.Get(MySpaceTexts.Ok),
onButtonClick: OnOkButtonClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM);
m_cancelButton = new MyGuiControlButton(position: buttonsOrigin + new Vector2(3 * (0.01f + m_removeButton.Size.X), m_removeButton.Size.Y + 0.01f), size: buttonSize, text: MyTexts.Get(MySpaceTexts.Cancel),
onButtonClick: OnCancelButtonClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM);
m_onlineMode.ItemSelected += OnOnlineModeSelect;
m_onlineMode.AddItem((int)MyOnlineModeEnum.OFFLINE, MySpaceTexts.WorldSettings_OnlineModeOffline);
m_onlineMode.AddItem((int)MyOnlineModeEnum.PRIVATE, MySpaceTexts.WorldSettings_OnlineModePrivate);
m_onlineMode.AddItem((int)MyOnlineModeEnum.FRIENDS, MySpaceTexts.WorldSettings_OnlineModeFriends);
m_onlineMode.AddItem((int)MyOnlineModeEnum.PUBLIC, MySpaceTexts.WorldSettings_OnlineModePublic);
m_nameTextbox.TextChanged += m_nameTextbox_TextChanged;
// Add controls in pairs; label first, control second. They will be laid out automatically this way.
Controls.Add(nameLabel);
Controls.Add(m_nameTextbox);
//m_nameTextbox.Enabled = false;
Controls.Add(descriptionLabel);
Controls.Add(m_descriptionTextbox);
//m_descriptionTextbox.Enabled = false;
Controls.Add(difficultyLabel);
Controls.Add(m_difficultyCombo);
m_difficultyCombo.Enabled = false;
Controls.Add(onlineModeLabel);
Controls.Add(m_onlineMode);
m_onlineMode.Enabled = false;
Controls.Add(m_maxPlayersLabel);
Controls.Add(m_maxPlayersSlider);
float labelSize = 0.12f;
float MARGIN_TOP = 0.1f;
float MARGIN_LEFT = 0.42f;// m_isNewGame ? 0.315f : 0.08f;
// Automatic layout.
Vector2 originL, originC;
Vector2 controlsDelta = new Vector2(0f, 0.052f);
float rightColumnOffset;
originL = -m_size.Value / 2 + new Vector2(MARGIN_LEFT, MARGIN_TOP);
originC = originL + new Vector2(labelSize, 0f);
rightColumnOffset = originC.X + m_onlineMode.Size.X - labelSize - 0.017f;
foreach (var control in Controls)
//.........这里部分代码省略.........
示例11: RecreateControls
public override void RecreateControls(bool constructor)
{
base.RecreateControls(constructor);
CloseButtonEnabled = true;
var caption = AddCaption(MyCommonTexts.ScreenCaptionPlayers);
var captionCenter = MyUtils.GetCoordCenterFromAligned(caption.Position, caption.Size, caption.OriginAlign);
var captionBottomCenter = captionCenter + new Vector2(0f, 0.5f * caption.Size.Y);
Vector2 sizeScale = Size.Value / MyGuiConstants.TEXTURE_SCREEN_BACKGROUND.SizeGui;
Vector2 topLeft = -0.5f * Size.Value + sizeScale * MyGuiConstants.TEXTURE_SCREEN_BACKGROUND.PaddingSizeGui * 1.1f;
float verticalSpacing = 0.0045f;
m_lobbyTypeCombo = new MyGuiControlCombobox(
position: new Vector2(-topLeft.X, captionBottomCenter.Y + verticalSpacing),
openAreaItemsCount: 3);
m_lobbyTypeCombo.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_TOP;
m_lobbyTypeCombo.AddItem((int)LobbyTypeEnum.Private, MyCommonTexts.ScreenPlayersLobby_Private);
m_lobbyTypeCombo.AddItem((int)LobbyTypeEnum.FriendsOnly, MyCommonTexts.ScreenPlayersLobby_Friends);
m_lobbyTypeCombo.AddItem((int)LobbyTypeEnum.Public, MyCommonTexts.ScreenPlayersLobby_Public);
m_lobbyTypeCombo.SelectItemByKey((int)MyMultiplayer.Static.GetLobbyType());
MyGuiControlBase aboveControl;
m_inviteButton = new MyGuiControlButton(
position: new Vector2(-m_lobbyTypeCombo.Position.X, m_lobbyTypeCombo.Position.Y + m_lobbyTypeCombo.Size.Y + verticalSpacing),
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
text: MyTexts.Get(MyCommonTexts.ScreenPlayers_Invite));
aboveControl = m_inviteButton;
m_promoteButton = new MyGuiControlButton(
position: aboveControl.Position + new Vector2(0f, aboveControl.Size.Y + verticalSpacing),
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
text: MyTexts.Get(MyCommonTexts.ScreenPlayers_Promote));
aboveControl = m_promoteButton;
m_demoteButton = new MyGuiControlButton(
position: aboveControl.Position + new Vector2(0f, aboveControl.Size.Y + verticalSpacing),
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
text: MyTexts.Get(MyCommonTexts.ScreenPlayers_Demote));
aboveControl = m_demoteButton;
m_kickButton = new MyGuiControlButton(
position: aboveControl.Position + new Vector2(0f, aboveControl.Size.Y + verticalSpacing),
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
text: MyTexts.Get(MyCommonTexts.ScreenPlayers_Kick));
aboveControl = m_kickButton;
m_banButton = new MyGuiControlButton(
position: aboveControl.Position + new Vector2(0f, aboveControl.Size.Y + verticalSpacing),
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
text: MyTexts.Get(MyCommonTexts.ScreenPlayers_Ban));
aboveControl = m_banButton;
var maxPlayersLabel = new MyGuiControlLabel(
position: aboveControl.Position + new Vector2(0f, aboveControl.Size.Y + verticalSpacing),
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
text: MyTexts.GetString(MyCommonTexts.MaxPlayers));
aboveControl = maxPlayersLabel;
m_maxPlayersSlider = new MyGuiControlSlider(
position: aboveControl.Position + new Vector2(0f, aboveControl.Size.Y),
width: 0.15f,
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
minValue: 2,
maxValue: MyMultiplayer.Static != null ? MyMultiplayer.Static.MaxPlayers : 16,
labelText: new StringBuilder("{0}").ToString(),
labelDecimalPlaces: 0,
labelSpaceWidth: 0.02f,
defaultValue: Sync.IsServer ? MySession.Static.MaxPlayers : MyMultiplayer.Static.MemberLimit,
intValue: true);
m_maxPlayersSlider.ValueChanged = MaxPlayersSlider_Changed;
aboveControl = m_maxPlayersSlider;
m_playersTable = new MyGuiControlTable()
{
Position = new Vector2(-m_inviteButton.Position.X, m_inviteButton.Position.Y),
Size = new Vector2(1200f / MyGuiConstants.GUI_OPTIMAL_SIZE.X, 1f) - m_inviteButton.Size * 1.05f,
VisibleRowsCount = 21,
OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_TOP,
ColumnsCount = 5,
};
float PlayerNameWidth = 0.3f;
float FactionTagWidth = 0.1f;
float FactionNameWidth = MyPerGameSettings.EnableMutePlayer ? 0.3f : 0.34f;
float MutedWidth = MyPerGameSettings.EnableMutePlayer ? 0.13f : 0;
m_playersTable.SetCustomColumnWidths(new float[] { PlayerNameWidth, FactionTagWidth, FactionNameWidth, MutedWidth, 1 - PlayerNameWidth - FactionTagWidth - FactionNameWidth - MutedWidth });
m_playersTable.SetColumnName(PlayerNameColumn, MyTexts.Get(MyCommonTexts.ScreenPlayers_PlayerName));
m_playersTable.SetColumnName(PlayerFactionTagColumn, MyTexts.Get(MyCommonTexts.ScreenPlayers_FactionTag));
m_playersTable.SetColumnName(PlayerFactionNameColumn, MyTexts.Get(MyCommonTexts.ScreenPlayers_FactionName));
m_playersTable.SetColumnName(PlayerMutedColumn, new StringBuilder(MyTexts.GetString(MyCommonTexts.ScreenPlayers_Muted)));
m_playersTable.SetColumnName(GameAdminColumn, MyTexts.Get(MyCommonTexts.ScreenPlayers_GameAdmin));
m_playersTable.SetColumnComparison(0, (a, b) => (a.Text.CompareToIgnoreCase(b.Text)));
m_playersTable.ItemSelected += playersTable_ItemSelected;
// CH: To show the clients correctly, we would need to know, whether the game is a dedicated-server-hosted game.
// We don't know that, so I just show all clients with players
foreach (var player in Sync.Players.GetOnlinePlayers())
//.........这里部分代码省略.........
示例12: RecreateControls
public override void RecreateControls(bool constructor)
{
base.RecreateControls(constructor);
var caption = AddCaption(MySpaceTexts.PlayerCharacterModel);
var listSize = MyGuiControlListbox.GetVisualStyle(MyGuiControlListboxStyleEnum.Default).ItemSize;
//m_modelPicker = new MyGuiControlCombobox(position: new Vector2(0f, -0.18f));
float currY = -0.19f;
m_modelPicker = new MyGuiControlCombobox(position: new Vector2(0f, currY));
foreach (var entry in m_displayModels)
m_modelPicker.AddItem(entry.Value, new StringBuilder(entry.Key));
if (m_displayModels.ContainsKey(m_selectedModel))
m_modelPicker.SelectItemByKey(m_displayModels[m_selectedModel]);
else if (m_displayModels.Count > 0)
m_modelPicker.SelectItemByKey(m_displayModels.First().Value);
else
System.Diagnostics.Debug.Fail("No character models loaded.");
m_modelPicker.ItemSelected += OnItemSelected;
currY += 0.045f;
var positionOffset = listSize + caption.Size;
m_position.X -= (positionOffset.X / 2.5f);
m_position.Y += (positionOffset.Y * 3.6f);
Controls.Add(new MyGuiControlLabel(position: new Vector2(0f, currY), text: MyTexts.GetString(MySpaceTexts.PlayerCharacterColor), originAlign: MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER));
currY += 0.04f;
Controls.Add( new MyGuiControlLabel(position: new Vector2(-0.135f, currY), text: "Hue:", originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER));
m_labelHue = new MyGuiControlLabel(position: new Vector2(0.090f, currY), text: String.Empty, originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER);
currY += 0.035f;
m_sliderHue = new MyGuiControlSlider(
position: new Vector2(-0.135f, currY),
width: 0.3f,
minValue: 0,
maxValue: 360,
labelDecimalPlaces: 0,
labelSpaceWidth: 50 / 1200f,
intValue: true,
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER,
visualStyle: MyGuiControlSliderStyleEnum.Hue
);
currY += 0.045f;
Controls.Add(new MyGuiControlLabel(position: new Vector2(-0.135f, currY), text: "Saturation:", originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER));
m_labelSaturation = new MyGuiControlLabel(position: new Vector2(0.09f, currY), text: String.Empty, originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER);
currY += 0.035f;
m_sliderSaturation = new MyGuiControlSlider(
position: new Vector2(-0.135f, currY),
width: 0.3f,
minValue: -100,
maxValue: 100,
defaultValue: 0,
labelDecimalPlaces: 0,
labelSpaceWidth: 50 / 1200f,
intValue: true,
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER
);
currY += 0.045f;
Controls.Add(new MyGuiControlLabel(position: new Vector2(-0.135f, currY), text: "Value:", originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER));
m_labelValue = new MyGuiControlLabel(position: new Vector2(0.09f, currY), text: String.Empty, originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER);
currY += 0.035f;
m_sliderValue = new MyGuiControlSlider(
position: new Vector2(-0.135f, currY),
width: 0.3f,
minValue: -100,
maxValue: 100,
defaultValue: 0,
labelDecimalPlaces: 0,
labelSpaceWidth: 50 / 1200f,
intValue: true,
originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER
);
currY += 0.045f;
Controls.Add(caption);
Controls.Add(m_modelPicker);
Controls.Add(m_labelHue);
Controls.Add(m_labelSaturation);
Controls.Add(m_labelValue);
Controls.Add(m_sliderHue);
Controls.Add(m_sliderSaturation);
Controls.Add(m_sliderValue);
Controls.Add(new MyGuiControlButton(position: new Vector2(0f, 0.16f), text: new StringBuilder("OK"), onButtonClick: OnOkClick));
Controls.Add(new MyGuiControlButton(position: new Vector2(0f, 0.22f), text: new StringBuilder("Cancel"), onButtonClick: OnCancelClick));
}
示例13: OnValueChange
private void OnValueChange(MyGuiControlSlider sender)
{
UpdateLabels();
m_selectedHSV.X = m_sliderHue.Value / 360f;
m_selectedHSV.Y = m_sliderSaturation.Value / 100f;
m_selectedHSV.Z = m_sliderValue.Value / 100f;
m_selectedModel = m_models[(int)m_modelPicker.GetSelectedKey()];
ChangeCharacter(m_selectedModel, m_selectedHSV);
}
示例14: BuildControls
protected override void BuildControls()
{
base.BuildControls();
Vector2 buttonSize = MyGuiConstants.BACK_BUTTON_SIZE;
Vector2 buttonsOrigin = m_size.Value / 2 - new Vector2(0.65f, 0.1f);
var difficultyLabel = MakeLabel(MySpaceTexts.Difficulty);
var onlineModeLabel = MakeLabel(MyCommonTexts.WorldSettings_OnlineMode);
m_maxPlayersLabel = MakeLabel(MyCommonTexts.MaxPlayers);
float width = 0.284375f + 0.025f;
m_difficultyCombo = new MyGuiControlCombobox(size: new Vector2(width, 0.04f));
m_difficultyCombo.Enabled = false;
m_difficultyCombo.AddItem((int)0, MySpaceTexts.DifficultyEasy);
m_difficultyCombo.AddItem((int)1, MySpaceTexts.DifficultyNormal);
m_difficultyCombo.AddItem((int)2, MySpaceTexts.DifficultyHard);
m_onlineMode = new MyGuiControlCombobox(size: new Vector2(width, 0.04f));
m_onlineMode.Enabled = false;
m_onlineMode.ItemSelected += OnOnlineModeSelect;
m_onlineMode.AddItem((int)MyOnlineModeEnum.OFFLINE, MyCommonTexts.WorldSettings_OnlineModeOffline);
m_onlineMode.AddItem((int)MyOnlineModeEnum.PRIVATE, MyCommonTexts.WorldSettings_OnlineModePrivate);
m_onlineMode.AddItem((int)MyOnlineModeEnum.FRIENDS, MyCommonTexts.WorldSettings_OnlineModeFriends);
m_onlineMode.AddItem((int)MyOnlineModeEnum.PUBLIC, MyCommonTexts.WorldSettings_OnlineModePublic);
m_maxPlayersSlider = new MyGuiControlSlider(
position: Vector2.Zero,
width: m_onlineMode.Size.X,
minValue: 2,
maxValue: 16,
labelText: new StringBuilder("{0}").ToString(),
labelDecimalPlaces: 0,
labelSpaceWidth: 0.05f,
intValue: true
);
m_scenarioTypesList = new MyGuiControlList();
//BUTTONS
m_removeButton = new MyGuiControlButton(text: MyTexts.Get(MySpaceTexts.buttonRemove), onButtonClick: OnOkButtonClick);
#if !XB1 // XB1_NOWORKSHOP
m_publishButton = new MyGuiControlButton(text: MyTexts.Get(MySpaceTexts.buttonPublish), onButtonClick: OnPublishButtonClick);
#else // XB1
m_publishButton = new MyGuiControlButton(text: MyTexts.Get(MySpaceTexts.buttonPublish), onButtonClick: OnOkButtonClick);
#endif // XB1
m_editButton = new MyGuiControlButton(text: MyTexts.Get(MySpaceTexts.buttonEdit), onButtonClick: OnEditButtonClick);
m_browseWorkshopButton = new MyGuiControlButton(text: MyTexts.Get(MySpaceTexts.buttonBrowseWorkshop), onButtonClick: OnBrowseWorkshopClick);
m_refreshButton = new MyGuiControlButton(text: MyTexts.Get(MySpaceTexts.buttonRefresh), onButtonClick: OnRefreshButtonClick);
m_openInWorkshopButton = new MyGuiControlButton(text: MyTexts.Get(MySpaceTexts.buttonOpenInWorkshop), onButtonClick: OnOkButtonClick);
m_removeButton.Enabled = false;
m_publishButton.Enabled = false;
m_editButton.Enabled = false;
m_openInWorkshopButton.Enabled = false;
CloseButtonEnabled = true;
//m_nameTextbox.TextChanged += m_nameTextbox_TextChanged;
m_sideMenuLayout.Add(difficultyLabel, MyAlignH.Left, MyAlignV.Top, 2, 0);
m_sideMenuLayout.Add(m_difficultyCombo, MyAlignH.Left, MyAlignV.Top, 2, 1);
m_sideMenuLayout.Add(onlineModeLabel, MyAlignH.Left, MyAlignV.Top, 3, 0);
m_sideMenuLayout.Add(m_onlineMode, MyAlignH.Left, MyAlignV.Top, 3, 1);
m_sideMenuLayout.Add(m_maxPlayersLabel, MyAlignH.Left, MyAlignV.Top, 4, 0);
m_sideMenuLayout.Add(m_maxPlayersSlider, MyAlignH.Left, MyAlignV.Top, 4, 1);
m_buttonsLayout.Add(m_removeButton, MyAlignH.Left, MyAlignV.Top, 0, 0);
if (!MyFakes.XB1_PREVIEW)
{
m_buttonsLayout.Add(m_publishButton, MyAlignH.Left, MyAlignV.Top, 0, 1);
}
m_buttonsLayout.Add(m_editButton, MyAlignH.Left, MyAlignV.Top, 0, 2);
if (!MyFakes.XB1_PREVIEW)
{
m_buttonsLayout.Add(m_browseWorkshopButton, MyAlignH.Left, MyAlignV.Top, 0, 3);
}
m_buttonsLayout.Add(m_refreshButton, MyAlignH.Left, MyAlignV.Top, 1, 0);
if (!MyFakes.XB1_PREVIEW)
{
m_buttonsLayout.Add(m_openInWorkshopButton, MyAlignH.Left, MyAlignV.Top, 1, 1);
}
}
示例15: RecreateControls
public override void RecreateControls(bool constructor)
{
if (!constructor)
return;
base.RecreateControls(constructor);
AddCaption(MySpaceTexts.ScreenCaptionVideoOptions);
Vector2 controlsOriginLeft = new Vector2(-m_size.Value.X / 2.0f + 0.05f, -m_size.Value.Y / 2.0f + 0.145f) + new Vector2(0.02f, 0f);
Vector2 controlsOriginRight = new Vector2(-m_size.Value.X / 2.0f + 0.225f, -m_size.Value.Y / 2.0f + 0.145f) + new Vector2(0.043f, 0f);
const float TEXT_SCALE = MyGuiConstants.DEFAULT_TEXT_SCALE * 0.85f;
var labelVideoAdapter = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.VideoAdapter));
var labelVideoMode = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.VideoMode));
var labelWindowMode = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.ScreenOptionsVideo_WindowMode));
var labelVSync = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.VerticalSync));
var labelHwCursor = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.HardwareCursor));
var labelRenderQuality = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.RenderQuality));
var labelFoV = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.FieldOfView));
m_fieldOfViewDefaultLabel = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.DefaultFOV));
var labelRenderInterpolation = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.RenderIterpolation));
var labelEnableDamageEffects = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.EnableDamageEffects));
m_videoAdapterCombobox = new MyGuiControlCombobox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsVideoAdapter));
m_resolutionCombobox = new MyGuiControlCombobox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsVideoMode));
m_windowModeCombobox = new MyGuiControlCombobox();
m_verticalSyncCheckbox = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsVerticalSync));
m_hardwareCursorCheckbox = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsHardwareCursor));
m_enableDamageEffectsCheckbox = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsEnableDamageEffects));
m_renderQualityCombobox = new MyGuiControlCombobox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsRenderQuality));
m_fieldOfViewSlider = new MyGuiControlSlider(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsFieldOfView),
labelText: new StringBuilder("{0}").ToString(),
labelSpaceWidth: 0.035f,
labelScale: TEXT_SCALE,
labelFont: MyFontEnum.Blue,
minValue: MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_MIN),
maxValue: MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_MAX),
defaultValue: MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_DEFAULT));
m_renderInterpolationCheckbox = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionRenderIterpolation));
m_unsupportedAspectRatioLabel = new MyGuiControlLabel(colorMask: MyGuiConstants.LABEL_TEXT_COLOR * 0.9f, textScale: TEXT_SCALE * 0.85f);
m_recommendAspectRatioLabel = new MyGuiControlLabel(colorMask: MyGuiConstants.LABEL_TEXT_COLOR * 0.9f, textScale: TEXT_SCALE * 0.85f);
var hintLineOffset = new Vector2(0f, m_unsupportedAspectRatioLabel.Size.Y);
var hintOffset = new Vector2(0.01f, -0.35f * MyGuiConstants.CONTROLS_DELTA.Y);
labelVideoAdapter.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA;
m_videoAdapterCombobox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA;
labelVideoMode.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA;
m_resolutionCombobox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA;
m_unsupportedAspectRatioLabel.Position = controlsOriginRight + hintOffset;
m_recommendAspectRatioLabel.Position = controlsOriginRight + hintOffset + hintLineOffset;
controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA;
controlsOriginRight += MyGuiConstants.CONTROLS_DELTA;
labelWindowMode.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA;
m_windowModeCombobox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA;
labelVSync.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA;
m_verticalSyncCheckbox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA;
labelHwCursor.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA;
m_hardwareCursorCheckbox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA;
labelRenderQuality.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA;
m_renderQualityCombobox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA;
labelRenderInterpolation.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA;
m_renderInterpolationCheckbox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA;
labelEnableDamageEffects.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA;
m_enableDamageEffectsCheckbox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA;
labelFoV.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA;
m_fieldOfViewSlider.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA;
m_fieldOfViewDefaultLabel.Position = controlsOriginRight + hintOffset;
Controls.Add(labelVideoAdapter); Controls.Add(m_videoAdapterCombobox);
Controls.Add(labelVideoMode); Controls.Add(m_resolutionCombobox);
Controls.Add(m_unsupportedAspectRatioLabel);
Controls.Add(m_recommendAspectRatioLabel);
Controls.Add(labelWindowMode); Controls.Add(m_windowModeCombobox);
Controls.Add(labelVSync); Controls.Add(m_verticalSyncCheckbox);
Controls.Add(labelHwCursor); Controls.Add(m_hardwareCursorCheckbox);
Controls.Add(labelRenderQuality); Controls.Add(m_renderQualityCombobox);
Controls.Add(labelRenderInterpolation); Controls.Add(m_renderInterpolationCheckbox);
Controls.Add(labelEnableDamageEffects); Controls.Add(m_enableDamageEffectsCheckbox);
Controls.Add(labelFoV); Controls.Add(m_fieldOfViewSlider);
Controls.Add(m_fieldOfViewDefaultLabel);
foreach (var control in Controls)
control.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER;
m_unsupportedAspectRatioLabel.Text = string.Format("* {0}", MyTexts.Get(MySpaceTexts.UnsupportedAspectRatio));
AddAdaptersToComboBox();
AddRenderQualitiesToComboBox();
AddWindowModesToComboBox();
m_fieldOfViewDefaultLabel.UpdateFormatParams(MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_DEFAULT));
//.........这里部分代码省略.........