internal static void CreateShootActionSet <T>() where T : IMyTerminalBlock { var action0 = MyAPIGateway.TerminalControls.CreateAction <T>($"Shoot"); action0.Icon = @"Textures\GUI\Icons\Actions\Toggle.dds"; action0.Name = new StringBuilder($"Shoot On/Off"); action0.Action = delegate(IMyTerminalBlock blk) { var comp = blk?.Components?.Get <WeaponComponent>(); if (comp == null || comp.Platform.State != MyWeaponPlatform.PlatformState.Ready) { return; } TerminalHelpers.WCShootToggleAction(comp); }; action0.Writer = (blk, sb) => { var comp = blk.Components.Get <WeaponComponent>(); if (comp == null || comp.Platform.State != MyWeaponPlatform.PlatformState.Ready) { return; } if (comp.State.Value.ShootOn) { sb.Append("On"); } else { sb.Append("Off"); } }; action0.Enabled = (b) => { return(b.Components.Has <WeaponComponent>()); }; action0.ValidForGroups = true; MyAPIGateway.TerminalControls.AddAction <T>(action0); var action1 = MyAPIGateway.TerminalControls.CreateAction <T>($"Shoot_On"); action1.Icon = @"Textures\GUI\Icons\Actions\SwitchOn.dds"; action1.Name = new StringBuilder($"Shoot On"); action1.Action = delegate(IMyTerminalBlock blk) { var comp = blk?.Components?.Get <WeaponComponent>(); if (comp == null || comp.Platform.State != MyWeaponPlatform.PlatformState.Ready) { return; } TerminalHelpers.WCShootOnAction(comp); }; action1.Writer = (blk, sb) => { var comp = blk.Components.Get <WeaponComponent>(); if (comp == null || comp.Platform.State != MyWeaponPlatform.PlatformState.Ready) { return; } if (comp.State.Value.ShootOn) { sb.Append("On"); } else { sb.Append("Off"); } }; action1.Enabled = (b) => { return(b.Components.Has <WeaponComponent>()); }; action1.ValidForGroups = true; MyAPIGateway.TerminalControls.AddAction <T>(action1); var action2 = MyAPIGateway.TerminalControls.CreateAction <T>($"Shoot_Off"); action2.Icon = @"Textures\GUI\Icons\Actions\SwitchOff.dds"; action2.Name = new StringBuilder($"Shoot Off"); action2.Action = delegate(IMyTerminalBlock blk) { var comp = blk?.Components?.Get <WeaponComponent>(); if (comp == null || comp.Platform.State != MyWeaponPlatform.PlatformState.Ready) { return; } TerminalHelpers.WCShootOffAction(comp); }; action2.Writer = (blk, sb) => { var comp = blk.Components.Get <WeaponComponent>(); if (comp == null || comp.Platform.State != MyWeaponPlatform.PlatformState.Ready) { return; } if (comp.State.Value.ShootOn) { sb.Append("On"); } else { sb.Append("Off"); } }; action2.Enabled = (b) => { return(b.Components.Has <WeaponComponent>()); }; action2.ValidForGroups = true; MyAPIGateway.TerminalControls.AddAction <T>(action2); var action3 = MyAPIGateway.TerminalControls.CreateAction <T>($"ShootOnce"); action3.Icon = @"Textures\GUI\Icons\Actions\SwitchOn.dds"; action3.Name = new StringBuilder($"Shoot Once"); action3.Action = delegate(IMyTerminalBlock blk) { var comp = blk?.Components?.Get <WeaponComponent>(); if (comp == null || comp.Platform.State != MyWeaponPlatform.PlatformState.Ready) { return; } TerminalHelpers.WCShootOnceAction(comp); }; action3.Writer = (b, t) => t.Append(""); action3.Enabled = (b) => { return(b.Components.Has <WeaponComponent>()); }; action3.ValidForGroups = false; MyAPIGateway.TerminalControls.AddAction <T>(action3); }
public static void CreateDecoyTerminalUi <T>(Session session) where T : IMyTerminalBlock { CreateCustomDecoyActions <T>(session); TerminalHelpers.AddDecoyControls <T>(session); }
public static void CreateCameraTerminalUi <T>(Session session) where T : IMyTerminalBlock { CreateCustomCameraActions <T>(session); TerminalHelpers.AddCameraControls <T>(session); }
public void CreateControllerElements(IMyTerminalBlock block) { try { if (DsControl) return; var comp = block?.GameLogic?.GetAs<DefenseShields>(); TerminalHelpers.Separator(comp?.Shield, "DS-C_sep0"); ToggleShield = TerminalHelpers.AddOnOff(comp?.Shield, "DS-C_ToggleShield", "Shield Status", "Raise or Lower Shields", "Up", "Down", DsUi.GetRaiseShield, DsUi.SetRaiseShield); TerminalHelpers.Separator(comp?.Shield, "DS-C_sep1"); ChargeSlider = TerminalHelpers.AddSlider(comp?.Shield, "DS-C_ChargeRate", "Shield Charge Rate", "Percentage Of Power The Shield May Consume", DsUi.GetRate, DsUi.SetRate); ChargeSlider.SetLimits(20, 95); PowerScaleSelect = TerminalHelpers.AddCombobox(comp?.Shield, "DS-C_PowerScale", "Select Power Scale", "Select the power scale to use", DsUi.GetPowerScale, DsUi.SetPowerScale, DsUi.ListPowerScale); PowerWatts = TerminalHelpers.AddSlider(comp?.Shield, "DS-C_PowerWatts", "Power To Use", "Select the maximum scaled power the shield can use", DsUi.GetPowerWatts, DsUi.SetPowerWatts, DsUi.EnablePowerWatts); PowerWatts.SetLimits(1, 999); if (comp != null && comp.GridIsMobile) { TerminalHelpers.Separator(comp.Shield, "DS-C_sep2"); } ExtendFit = TerminalHelpers.AddCheckbox(comp?.Shield, "DS-C_ExtendFit", "Extend Shield", "Extend Shield", DsUi.GetExtend, DsUi.SetExtend); SphereFit = TerminalHelpers.AddCheckbox(comp?.Shield, "DS-C_SphereFit", "Sphere Shield", "Sphere Shield", DsUi.GetSphereFit, DsUi.SetSphereFit); FortifyShield = TerminalHelpers.AddCheckbox(comp?.Shield, "DS-C_ShieldFortify", "Fortify Shield ", "Fortify Shield ", DsUi.GetFortify, DsUi.SetFortify); TerminalHelpers.Separator(comp?.Shield, "DS-C_sep3"); WidthSlider = TerminalHelpers.AddSlider(comp?.Shield, "DS-C_WidthSlider", "Shield Size Width", "Shield Size Width", DsUi.GetWidth, DsUi.SetWidth); WidthSlider.SetLimits(30, 1000); HeightSlider = TerminalHelpers.AddSlider(comp?.Shield, "DS-C_HeightSlider", "Shield Size Height", "Shield Size Height", DsUi.GetHeight, DsUi.SetHeight); HeightSlider.SetLimits(30, 1000); DepthSlider = TerminalHelpers.AddSlider(comp?.Shield, "DS-C_DepthSlider", "Shield Size Depth", "Shield Size Depth", DsUi.GetDepth, DsUi.SetDepth); DepthSlider.SetLimits(30, 1000); OffsetWidthSlider = TerminalHelpers.AddSlider(comp?.Shield, "DS-C_OffsetWidthSlider", "Width Offset", "Width Offset", DsUi.GetOffsetWidth, DsUi.SetOffsetWidth); OffsetWidthSlider.SetLimits(-69, 69); OffsetHeightSlider = TerminalHelpers.AddSlider(comp?.Shield, "DS-C_OffsetHeightSlider", "Height Offset", "Height Offset", DsUi.GetOffsetHeight, DsUi.SetOffsetHeight); OffsetHeightSlider.SetLimits(-69, 69); OffsetDepthSlider = TerminalHelpers.AddSlider(comp?.Shield, "DS-C_OffsetDepthSlider", "Depth Offset", "Depth Offset", DsUi.GetOffsetDepth, DsUi.SetOffsetDepth); OffsetDepthSlider.SetLimits(-69, 69); TerminalHelpers.Separator(comp?.Shield, "DS-C_sep4"); BatteryBoostCheckBox = TerminalHelpers.AddCheckbox(comp?.Shield, "DS-C_UseBatteries", "Ignore battery input power ", "Allow shields to fight with batteries for power", DsUi.GetBatteries, DsUi.SetBatteries); SendToHudCheckBox = TerminalHelpers.AddCheckbox(comp?.Shield, "DS-C_HideIcon", "Broadcast Shield Status To Hud", "Broadcast Shield Status To Nearby Friendly Huds", DsUi.GetSendToHud, DsUi.SetSendToHud); TerminalHelpers.Separator(comp?.Shield, "DS-C_sep5"); ShellSelect = TerminalHelpers.AddCombobox(comp?.Shield, "DS-C_ShellSelect", "Select Shield Look", "Select shield's shell texture", DsUi.GetShell, DsUi.SetShell, DsUi.ListShell); ShellVisibility = TerminalHelpers.AddCombobox(comp?.Shield, "DS-C_ShellSelect", "Select Shield Visibility", "Determines when the shield is visible", DsUi.GetVisible, DsUi.SetVisible, DsUi.ListVisible); HideActiveCheckBox = TerminalHelpers.AddCheckbox(comp?.Shield, "DS-C_HideActive", "Hide Shield Health On Hit ", "Hide Shield Health Grid On Hit", DsUi.GetHideActive, DsUi.SetHideActive); RefreshAnimationCheckBox = TerminalHelpers.AddCheckbox(comp?.Shield, "DS-C_RefreshAnimation", "Show Refresh Animation ", "Show Random Refresh Animation", DsUi.GetRefreshAnimation, DsUi.SetRefreshAnimation); HitWaveAnimationCheckBox = TerminalHelpers.AddCheckbox(comp?.Shield, "DS-C_HitWaveAnimation", "Show Hit Wave Animation", "Show Wave Effect On Shield Damage", DsUi.GetHitWaveAnimation, DsUi.SetHitWaveAnimation); NoWarningSoundsCheckBox = TerminalHelpers.AddCheckbox(comp?.Shield, "DS-C_NoWarningSounds", "Disable audio warnings ", "Supress shield audio warnings", DsUi.GetNoWarningSounds, DsUi.SetNoWarningSounds); DimShieldHitsCheckBox = TerminalHelpers.AddCheckbox(comp?.Shield, "DS-C_DimShieldHits", "Dim Incoming Hit Effects ", "Supress brightness of incoming hit effects", DsUi.GetDimShieldHits, DsUi.SetDimShieldHits); CreateAction<IMyUpgradeModule>(ToggleShield); CreateActionChargeRate<IMyUpgradeModule>(ChargeSlider); CreateAction<IMyUpgradeModule>(ExtendFit); CreateAction<IMyUpgradeModule>(SphereFit); CreateAction<IMyUpgradeModule>(FortifyShield); CreateAction<IMyUpgradeModule>(HideActiveCheckBox); CreateAction<IMyUpgradeModule>(RefreshAnimationCheckBox); CreateAction<IMyUpgradeModule>(HitWaveAnimationCheckBox); CreateAction<IMyUpgradeModule>(SendToHudCheckBox); CreateAction<IMyUpgradeModule>(BatteryBoostCheckBox); DsControl = true; } catch (Exception ex) { Log.Line($"Exception in CreateControlerUi: {ex}"); } }