protected override void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyOreDetector>()) { return; } base.CreateTerminalControls(); var range = new MyTerminalControlSlider <MyOreDetector>("Range", MySpaceTexts.BlockPropertyTitle_OreDetectorRange, MySpaceTexts.BlockPropertyDescription_OreDetectorRange); range.SetLimits(1, 100); range.DefaultValue = 100; range.Getter = (x) => x.Range; range.Setter = (x, v) => x.Range = v; range.Writer = (x, result) => result.AppendInt32((int)x.m_oreDetectorComponent.DetectionRadius).Append(" m"); MyTerminalControlFactory.AddControl(range); var broadcastUsingAntennas = new MyTerminalControlCheckbox <MyOreDetector>("BroadcastUsingAntennas", MySpaceTexts.BlockPropertyDescription_BroadcastUsingAntennas, MySpaceTexts.BlockPropertyDescription_BroadcastUsingAntennas); broadcastUsingAntennas.Getter = (x) => x.m_oreDetectorComponent.BroadcastUsingAntennas; broadcastUsingAntennas.Setter = (x, v) => x.m_broadcastUsingAntennas.Value = v; broadcastUsingAntennas.EnableAction(); MyTerminalControlFactory.AddControl(broadcastUsingAntennas); }
protected override void CreateTerminalControls() { if (!MyTerminalControlFactory.AreControlsCreated <MyGasGenerator>()) { base.CreateTerminalControls(); MyStringId tooltip = new MyStringId(); MyStringId?on = null; on = null; MyTerminalControlOnOffSwitch <MyGasGenerator> switch1 = new MyTerminalControlOnOffSwitch <MyGasGenerator>("UseConveyor", MySpaceTexts.Terminal_UseConveyorSystem, tooltip, on, on); MyTerminalControlOnOffSwitch <MyGasGenerator> switch2 = new MyTerminalControlOnOffSwitch <MyGasGenerator>("UseConveyor", MySpaceTexts.Terminal_UseConveyorSystem, tooltip, on, on); switch2.Getter = x => x.UseConveyorSystem; MyTerminalControlOnOffSwitch <MyGasGenerator> local11 = switch2; MyTerminalControlOnOffSwitch <MyGasGenerator> local12 = switch2; local12.Setter = (x, v) => x.UseConveyorSystem = v; MyTerminalControlOnOffSwitch <MyGasGenerator> onOff = local12; onOff.EnableToggleAction <MyGasGenerator>(); MyTerminalControlFactory.AddControl <MyGasGenerator>(onOff); MyTerminalControlButton <MyGasGenerator> button1 = new MyTerminalControlButton <MyGasGenerator>("Refill", MySpaceTexts.BlockPropertyTitle_Refill, MySpaceTexts.BlockPropertyTitle_Refill, new Action <MyGasGenerator>(MyGasGenerator.OnRefillButtonPressed)); MyTerminalControlButton <MyGasGenerator> button2 = new MyTerminalControlButton <MyGasGenerator>("Refill", MySpaceTexts.BlockPropertyTitle_Refill, MySpaceTexts.BlockPropertyTitle_Refill, new Action <MyGasGenerator>(MyGasGenerator.OnRefillButtonPressed)); button2.Enabled = x => x.CanRefill(); on = null; MyTerminalControlButton <MyGasGenerator> button = button2; button.EnableAction <MyGasGenerator>(null, on, null); MyTerminalControlFactory.AddControl <MyGasGenerator>(button); on = null; on = null; MyTerminalControlCheckbox <MyGasGenerator> checkbox1 = new MyTerminalControlCheckbox <MyGasGenerator>("Auto-Refill", MySpaceTexts.BlockPropertyTitle_AutoRefill, MySpaceTexts.BlockPropertyTitle_AutoRefill, on, on); MyTerminalControlCheckbox <MyGasGenerator> checkbox2 = new MyTerminalControlCheckbox <MyGasGenerator>("Auto-Refill", MySpaceTexts.BlockPropertyTitle_AutoRefill, MySpaceTexts.BlockPropertyTitle_AutoRefill, on, on); checkbox2.Getter = x => x.AutoRefill; MyTerminalControlCheckbox <MyGasGenerator> local9 = checkbox2; MyTerminalControlCheckbox <MyGasGenerator> local10 = checkbox2; local10.Setter = (x, v) => x.AutoRefill = v; MyTerminalControlCheckbox <MyGasGenerator> checkbox = local10; checkbox.EnableAction <MyGasGenerator>(null); MyTerminalControlFactory.AddControl <MyGasGenerator>(checkbox); } }
static void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyProgrammableBlock>()) { return; } var console = new MyTerminalControlButton <MyProgrammableBlock>("Edit", MySpaceTexts.TerminalControlPanel_EditCode, MySpaceTexts.TerminalControlPanel_EditCode_Tooltip, (b) => b.SendOpenEditorRequest()); console.Visible = (b) => MyFakes.ENABLE_PROGRAMMABLE_BLOCK && MySession.Static.EnableIngameScripts; MyTerminalControlFactory.AddControl(console); var arg = new MyTerminalControlTextbox <MyProgrammableBlock>("ConsoleCommand", MySpaceTexts.TerminalControlPanel_RunArgument, MySpaceTexts.TerminalControlPanel_RunArgument_ToolTip); arg.Visible = (e) => MyFakes.ENABLE_PROGRAMMABLE_BLOCK && MySession.Static.EnableIngameScripts; arg.Getter = (e) => new StringBuilder(e.TerminalRunArgument); arg.Setter = (e, v) => e.TerminalRunArgument = v.ToString(); MyTerminalControlFactory.AddControl(arg); var terminalRun = new MyTerminalControlButton <MyProgrammableBlock>("TerminalRun", MySpaceTexts.TerminalControlPanel_RunCode, MySpaceTexts.TerminalControlPanel_RunCode_Tooltip, (b) => b.Run()); terminalRun.Visible = (b) => MyFakes.ENABLE_PROGRAMMABLE_BLOCK && MySession.Static.EnableIngameScripts; terminalRun.Enabled = (b) => b.IsWorking == true && b.IsFunctional == true; MyTerminalControlFactory.AddControl(terminalRun); var runAction = new MyTerminalAction <MyProgrammableBlock>("Run", MyTexts.Get(MySpaceTexts.TerminalControlPanel_RunCode), OnRunApplied, null, MyTerminalActionIcons.START); runAction.Enabled = (b) => b.IsWorking == true && b.IsFunctional == true; runAction.DoUserParameterRequest = RequestRunArgument; runAction.ParameterDefinitions.Add(TerminalActionParameter.Get(string.Empty)); MyTerminalControlFactory.AddAction(runAction); var runwithDefault = new MyTerminalAction <MyProgrammableBlock>("RunWithDefaultArgument", MyTexts.Get(MySpaceTexts.TerminalControlPanel_RunCodeDefault), OnRunDefaultApplied, MyTerminalActionIcons.START); runwithDefault.Enabled = (b) => b.IsWorking == true && b.IsFunctional == true; MyTerminalControlFactory.AddAction(runwithDefault); }
protected override void CreateTerminalControls() { if (!MyTerminalControlFactory.AreControlsCreated <MyGasTank>()) { base.CreateTerminalControls(); MyStringId?on = null; on = null; MyTerminalControlOnOffSwitch <MyGasTank> switch1 = new MyTerminalControlOnOffSwitch <MyGasTank>("Stockpile", MySpaceTexts.BlockPropertyTitle_Stockpile, MySpaceTexts.BlockPropertyDescription_Stockpile, on, on); MyTerminalControlOnOffSwitch <MyGasTank> switch2 = new MyTerminalControlOnOffSwitch <MyGasTank>("Stockpile", MySpaceTexts.BlockPropertyTitle_Stockpile, MySpaceTexts.BlockPropertyDescription_Stockpile, on, on); switch2.Getter = x => x.IsStockpiling; MyTerminalControlOnOffSwitch <MyGasTank> local11 = switch2; MyTerminalControlOnOffSwitch <MyGasTank> local12 = switch2; local12.Setter = (x, v) => x.ChangeStockpileMode(v); MyTerminalControlOnOffSwitch <MyGasTank> onOff = local12; onOff.EnableToggleAction <MyGasTank>(); onOff.EnableOnOffActions <MyGasTank>(); MyTerminalControlFactory.AddControl <MyGasTank>(onOff); MyTerminalControlButton <MyGasTank> button1 = new MyTerminalControlButton <MyGasTank>("Refill", MySpaceTexts.BlockPropertyTitle_Refill, MySpaceTexts.BlockPropertyTitle_Refill, new Action <MyGasTank>(MyGasTank.OnRefillButtonPressed)); MyTerminalControlButton <MyGasTank> button2 = new MyTerminalControlButton <MyGasTank>("Refill", MySpaceTexts.BlockPropertyTitle_Refill, MySpaceTexts.BlockPropertyTitle_Refill, new Action <MyGasTank>(MyGasTank.OnRefillButtonPressed)); button2.Enabled = x => x.CanRefill(); on = null; MyTerminalControlButton <MyGasTank> button = button2; button.EnableAction <MyGasTank>(null, on, null); MyTerminalControlFactory.AddControl <MyGasTank>(button); on = null; on = null; MyTerminalControlCheckbox <MyGasTank> checkbox1 = new MyTerminalControlCheckbox <MyGasTank>("Auto-Refill", MySpaceTexts.BlockPropertyTitle_AutoRefill, MySpaceTexts.BlockPropertyTitle_AutoRefill, on, on); MyTerminalControlCheckbox <MyGasTank> checkbox2 = new MyTerminalControlCheckbox <MyGasTank>("Auto-Refill", MySpaceTexts.BlockPropertyTitle_AutoRefill, MySpaceTexts.BlockPropertyTitle_AutoRefill, on, on); checkbox2.Getter = x => (bool)x.m_autoRefill; MyTerminalControlCheckbox <MyGasTank> local9 = checkbox2; MyTerminalControlCheckbox <MyGasTank> local10 = checkbox2; local10.Setter = (x, v) => x.m_autoRefill.Value = v; MyTerminalControlCheckbox <MyGasTank> checkbox = local10; checkbox.EnableAction <MyGasTank>(null); MyTerminalControlFactory.AddControl <MyGasTank>(checkbox); } }
protected override void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyMechanicalConnectionBlockBase>()) { return; } base.CreateTerminalControls(); var weldSpeed = new MyTerminalControlSlider <MyMechanicalConnectionBlockBase>("Weld speed", MySpaceTexts.BlockPropertyTitle_WeldSpeed, MySpaceTexts.Blank); weldSpeed.SetLimits((block) => 0f, (block) => MyGridPhysics.SmallShipMaxLinearVelocity()); weldSpeed.DefaultValueGetter = (block) => MyGridPhysics.LargeShipMaxLinearVelocity() - 5f; weldSpeed.Getter = (x) => x.m_weldSpeed; weldSpeed.Setter = (x, v) => x.m_weldSpeed.Value = v; weldSpeed.Writer = (x, res) => res.AppendDecimal((float)Math.Sqrt(x.m_weldSpeedSq), 1).Append("m/s"); weldSpeed.EnableActions(); MyTerminalControlFactory.AddControl(weldSpeed); var weldForce = new MyTerminalControlCheckbox <MyMechanicalConnectionBlockBase>("Force weld", MySpaceTexts.BlockPropertyTitle_WeldForce, MySpaceTexts.Blank); weldForce.Getter = (x) => x.m_forceWeld; weldForce.Setter = (x, v) => x.m_forceWeld.Value = v; weldForce.EnableAction(); MyTerminalControlFactory.AddControl(weldForce); }
static void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyJumpDrive>()) { return; } var jumpButton = new MyTerminalControlButton <MyJumpDrive>("Jump", MySpaceTexts.BlockActionTitle_Jump, MySpaceTexts.Blank, (x) => x.RequestJump()); jumpButton.Enabled = (x) => x.CanJump; jumpButton.SupportsMultipleBlocks = false; // Can only be called from toolbar of cockpit jumpButton.Visible = (x) => false; var action = jumpButton.EnableAction(MyTerminalActionIcons.TOGGLE); if (action != null) { action.InvalidToolbarTypes = new List <MyToolbarType> { MyToolbarType.ButtonPanel, MyToolbarType.Character, MyToolbarType.Seat }; action.ValidForGroups = false; } MyTerminalControlFactory.AddControl(jumpButton); var recharging = new MyTerminalControlOnOffSwitch <MyJumpDrive>("Recharge", MySpaceTexts.BlockPropertyTitle_Recharge, MySpaceTexts.Blank); recharging.Getter = (x) => x.m_isRecharging; recharging.Setter = (x, v) => x.m_isRecharging.Value = v; recharging.EnableToggleAction(); recharging.EnableOnOffActions(); MyTerminalControlFactory.AddControl(recharging); var maxDistanceSlider = new MyTerminalControlSlider <MyJumpDrive>("JumpDistance", MySpaceTexts.BlockPropertyTitle_JumpDistance, MySpaceTexts.Blank); maxDistanceSlider.SetLimits(0f, 100f); maxDistanceSlider.DefaultValue = 100f; maxDistanceSlider.Enabled = (x) => x.m_jumpTarget == null; maxDistanceSlider.Getter = (x) => x.m_jumpDistanceRatio; maxDistanceSlider.Setter = (x, v) => { x.m_jumpDistanceRatio.Value = v; }; maxDistanceSlider.Writer = (x, v) => { v.AppendFormatedDecimal((x.m_jumpDistanceRatio / 100f).ToString("P0") + " (", (float)x.ComputeMaxDistance() / 1000f, 0, " km").Append(")"); }; maxDistanceSlider.EnableActions(0.01f); MyTerminalControlFactory.AddControl(maxDistanceSlider); var selectedTarget = new MyTerminalControlListbox <MyJumpDrive>("SelectedTarget", MySpaceTexts.BlockPropertyTitle_DestinationGPS, MySpaceTexts.Blank, false, 1); selectedTarget.ListContent = (x, list1, list2) => x.FillSelectedTarget(list1, list2); MyTerminalControlFactory.AddControl(selectedTarget); var removeBtn = new MyTerminalControlButton <MyJumpDrive>("RemoveBtn", MySpaceTexts.RemoveProjectionButton, MySpaceTexts.Blank, (x) => x.RemoveSelected()); removeBtn.Enabled = (x) => x.CanRemove(); MyTerminalControlFactory.AddControl(removeBtn); var selectBtn = new MyTerminalControlButton <MyJumpDrive>("SelectBtn", MyCommonTexts.SelectBlueprint, MySpaceTexts.Blank, (x) => x.SelectTarget()); selectBtn.Enabled = (x) => x.CanSelect(); MyTerminalControlFactory.AddControl(selectBtn); var gpsList = new MyTerminalControlListbox <MyJumpDrive>("GpsList", MySpaceTexts.BlockPropertyTitle_GpsLocations, MySpaceTexts.Blank, true); gpsList.ListContent = (x, list1, list2) => x.FillGpsList(list1, list2); gpsList.ItemSelected = (x, y) => x.SelectGps(y); MyTerminalControlFactory.AddControl(gpsList); if (!MySandboxGame.IsDedicated) { m_gpsGuiControl = (MyGuiControlListbox)((MyGuiControlBlockProperty)gpsList.GetGuiControl()).PropertyControl; } }
static void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyMotorSuspension>()) { return; } var steering = new MyTerminalControlCheckbox <MyMotorSuspension>("Steering", MySpaceTexts.BlockPropertyTitle_Motor_Steering, MySpaceTexts.BlockPropertyDescription_Motor_Steering); steering.Getter = (x) => x.Steering; steering.Setter = (x, v) => x.Steering = v; steering.EnableAction(); steering.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(steering); var maxSteerAngle = new MyTerminalControlSlider <MyMotorSuspension>("MaxSteerAngle", MySpaceTexts.BlockPropertyTitle_Motor_MaxSteerAngle, MySpaceTexts.BlockPropertyDescription_Motor_MaxSteerAngle); maxSteerAngle.SetLimits((x) => 0, (x) => x.BlockDefinition.MaxSteer); maxSteerAngle.DefaultValue = 0.45f; maxSteerAngle.Getter = (x) => x.GetMaxSteerAngleForTerminal(); maxSteerAngle.Setter = (x, v) => x.MaxSteerAngle = v; maxSteerAngle.Writer = (x, res) => MyMotorStator.WriteAngle(x.GetMaxSteerAngleForTerminal(), res); maxSteerAngle.EnableActionsWithReset(); maxSteerAngle.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(maxSteerAngle); var steerSpeed = new MyTerminalControlSlider <MyMotorSuspension>("SteerSpeed", MySpaceTexts.BlockPropertyTitle_Motor_SteerSpeed, MySpaceTexts.BlockPropertyDescription_Motor_SteerSpeed); steerSpeed.SetLimits((x) => 0, (x) => x.BlockDefinition.SteeringSpeed * 100); steerSpeed.DefaultValue = 2f; steerSpeed.Getter = (x) => x.GetSteerSpeedForTerminal(); steerSpeed.Setter = (x, v) => x.SteerSpeed = v / 100; steerSpeed.Writer = (x, res) => MyValueFormatter.AppendTorqueInBestUnit(x.GetSteerSpeedForTerminal(), res); steerSpeed.EnableActionsWithReset(); steerSpeed.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(steerSpeed); var steerReturnSpeed = new MyTerminalControlSlider <MyMotorSuspension>("SteerReturnSpeed", MySpaceTexts.BlockPropertyTitle_Motor_SteerReturnSpeed, MySpaceTexts.BlockPropertyDescription_Motor_SteerReturnSpeed); steerReturnSpeed.SetLimits((x) => 0, (x) => x.BlockDefinition.SteeringSpeed * 100); steerReturnSpeed.DefaultValue = 1f; steerReturnSpeed.Getter = (x) => x.GetSteerReturnSpeedForTerminal(); steerReturnSpeed.Setter = (x, v) => x.SteerReturnSpeed = v / 100; steerReturnSpeed.Writer = (x, res) => MyValueFormatter.AppendTorqueInBestUnit(x.GetSteerReturnSpeedForTerminal(), res); steerReturnSpeed.EnableActionsWithReset(); steerReturnSpeed.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(steerReturnSpeed); var invertSteer = new MyTerminalControlCheckbox <MyMotorSuspension>("InvertSteering", MySpaceTexts.BlockPropertyTitle_Motor_InvertSteer, MySpaceTexts.BlockPropertyDescription_Motor_InvertSteer); invertSteer.Getter = (x) => x.InvertSteer; invertSteer.Setter = (x, v) => x.InvertSteer = v; invertSteer.EnableAction(); invertSteer.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(invertSteer); var propulsion = new MyTerminalControlCheckbox <MyMotorSuspension>("Propulsion", MySpaceTexts.BlockPropertyTitle_Motor_Propulsion, MySpaceTexts.BlockPropertyDescription_Motor_Propulsion); propulsion.Getter = (x) => x.Propulsion; propulsion.Setter = (x, v) => x.Propulsion = v; propulsion.EnableAction(); propulsion.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(propulsion); var invertPropulsion = new MyTerminalControlCheckbox <MyMotorSuspension>("InvertPropulsion", MySpaceTexts.BlockPropertyTitle_Motor_InvertPropulsion, MySpaceTexts.BlockPropertyDescription_Motor_InvertPropulsion); invertPropulsion.Getter = (x) => x.InvertPropulsion; invertPropulsion.Setter = (x, v) => x.InvertPropulsion = v; invertPropulsion.EnableAction(); invertPropulsion.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(invertPropulsion); var power = new MyTerminalControlSlider <MyMotorSuspension>("Power", MySpaceTexts.BlockPropertyTitle_Motor_Power, MySpaceTexts.BlockPropertyDescription_Motor_Power); power.SetLimits(0, 100); power.DefaultValue = 100; power.Getter = (x) => x.GetPowerForTerminal(); power.Setter = (x, v) => x.Power = v / 100; power.Writer = (x, res) => res.AppendInt32((int)(x.Power * 100)).Append("%"); power.EnableActions(); power.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(power); var friction = new MyTerminalControlSlider <MyMotorSuspension>("Friction", MySpaceTexts.BlockPropertyTitle_Motor_Friction, MySpaceTexts.BlockPropertyDescription_Motor_Friction); friction.SetLimits(0, 100); friction.DefaultValue = 150f / 800; friction.Getter = (x) => x.GetFrictionForTerminal(); friction.Setter = (x, v) => x.Friction = v / 100; friction.Writer = (x, res) => res.AppendInt32((int)(x.Friction * 100)).Append("%"); friction.EnableActions(); friction.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(friction); var damping = new MyTerminalControlSlider <MyMotorSuspension>("Damping", MySpaceTexts.BlockPropertyTitle_Motor_Damping, MySpaceTexts.BlockPropertyTitle_Motor_Damping); damping.SetLimits(0, 100); damping.Getter = (x) => x.GetDampingForTerminal(); damping.Setter = (x, v) => x.Damping = v / 100; damping.Writer = (x, res) => res.AppendInt32((int)(x.GetDampingForTerminal())).Append("%"); damping.EnableActions(); damping.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(damping); var strength = new MyTerminalControlSlider <MyMotorSuspension>("Strength", MySpaceTexts.BlockPropertyTitle_Motor_Strength, MySpaceTexts.BlockPropertyTitle_Motor_Strength); strength.SetLimits(0, 100); strength.Getter = (x) => x.GetStrengthForTerminal(); strength.Setter = (x, v) => x.Strength = v / 100; strength.Writer = (x, res) => res.AppendInt32((int)(x.GetStrengthForTerminal())).Append("%"); strength.EnableActions(); strength.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(strength); var height = new MyTerminalControlSlider <MyMotorSuspension>("Height", MySpaceTexts.BlockPropertyTitle_Motor_Height, MySpaceTexts.BlockPropertyDescription_Motor_Height); height.SetLimits((x) => x.BlockDefinition.MinHeight, (x) => x.BlockDefinition.MaxHeight); height.DefaultValue = 0; height.Getter = (x) => x.GetHeightForTerminal(); height.Setter = (x, v) => x.Height = v; height.Writer = (x, res) => MyValueFormatter.AppendDistanceInBestUnit(x.Height, res); height.EnableActionsWithReset(); height.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(height); var travel = new MyTerminalControlSlider <MyMotorSuspension>("Travel", MySpaceTexts.BlockPropertyTitle_Motor_SuspensionTravel, MySpaceTexts.BlockPropertyDescription_Motor_SuspensionTravel); travel.SetLimits(0, 100); travel.DefaultValue = 100; travel.Getter = (x) => x.GetSuspensionTravelForTerminal(); travel.Setter = (x, v) => x.SuspensionTravel = v / 100.0f; travel.Writer = (x, res) => res.AppendInt32((int)x.GetSuspensionTravelForTerminal()).Append("%"); travel.EnableActionsWithReset(); travel.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(travel); var speed = new MyTerminalControlSlider <MyMotorSuspension>("Speed Limit", MySpaceTexts.BlockPropertyTitle_Motor_SuspensionSpeed, MySpaceTexts.BlockPropertyDescription_Motor_SuspensionSpeed); speed.SetLimits(0, MaxSpeedLimit); speed.DefaultValue = MaxSpeedLimit; speed.Getter = (x) => x.SpeedLimit; speed.Setter = (x, v) => x.SpeedLimit = v; speed.Writer = (x, res) => { if (x.SpeedLimit >= MyMotorSuspension.MaxSpeedLimit) { res.AppendStringBuilder(MyTexts.Get(MySpaceTexts.BlockPropertyValue_MotorAngleUnlimited)); } else { res.AppendInt32((int)x.SpeedLimit).Append("km/h"); } }; speed.EnableActionsWithReset(); speed.Enabled = (x) => x.m_constraint != null; MyTerminalControlFactory.AddControl(speed); var addWheel = new MyTerminalControlButton <MyMotorSuspension>("Add Wheel", MySpaceTexts.BlockActionTitle_AddWheel, MySpaceTexts.BlockActionTooltip_AddWheel, (b) => b.RecreateRotor()); addWheel.Enabled = (b) => (b.m_topBlock == null); addWheel.EnableAction(MyTerminalActionIcons.STATION_ON); MyTerminalControlFactory.AddControl(addWheel); }
static void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyMotorStator>()) { return; } var reverse = new MyTerminalControlButton <MyMotorStator>("Reverse", MySpaceTexts.BlockActionTitle_Reverse, MySpaceTexts.Blank, (b) => b.TargetVelocityRPM = -b.TargetVelocityRPM); reverse.EnableAction(MyTerminalActionIcons.REVERSE); MyTerminalControlFactory.AddControl(reverse); var detach = new MyTerminalControlButton <MyMotorStator>("Detach", MySpaceTexts.BlockActionTitle_Detach, MySpaceTexts.Blank, (b) => b.m_rotorBlockId.Value = new State() { OtherEntityId = null, MasterToSlave = null }); detach.Enabled = (b) => b.m_rotorBlockId.Value.OtherEntityId.HasValue && b.m_isWelding == false && b.m_welded == false; detach.Visible = (b) => b.m_canBeDetached; var actionDetach = detach.EnableAction(MyTerminalActionIcons.NONE); actionDetach.Enabled = (b) => b.m_canBeDetached; MyTerminalControlFactory.AddControl(detach); var attach = new MyTerminalControlButton <MyMotorStator>("Attach", MySpaceTexts.BlockActionTitle_Attach, MySpaceTexts.Blank, (b) => b.m_rotorBlockId.Value = new State() { OtherEntityId = 0, MasterToSlave = null }); attach.Enabled = (b) => !b.m_rotorBlockId.Value.OtherEntityId.HasValue; attach.Visible = (b) => b.m_canBeDetached; var actionAttach = attach.EnableAction(MyTerminalActionIcons.NONE); actionAttach.Enabled = (b) => b.m_canBeDetached; MyTerminalControlFactory.AddControl(attach); var torque = new MyTerminalControlSlider <MyMotorStator>("Torque", MySpaceTexts.BlockPropertyTitle_MotorTorque, MySpaceTexts.BlockPropertyDescription_MotorTorque); torque.Getter = (x) => x.Torque; torque.Setter = (x, v) => x.Torque.Value = v; torque.DefaultValueGetter = (x) => x.MotorDefinition.MaxForceMagnitude; torque.Writer = (x, result) => MyValueFormatter.AppendTorqueInBestUnit(x.Torque, result); torque.EnableActions(); torque.Denormalizer = (x, v) => x.DenormalizeTorque(v); torque.Normalizer = (x, v) => x.NormalizeTorque(v); MyTerminalControlFactory.AddControl(torque); var brakingTorque = new MyTerminalControlSlider <MyMotorStator>("BrakingTorque", MySpaceTexts.BlockPropertyTitle_MotorBrakingTorque, MySpaceTexts.BlockPropertyDescription_MotorBrakingTorque); brakingTorque.Getter = (x) => x.BrakingTorque; brakingTorque.Setter = (x, v) => x.BrakingTorque.Value = v; brakingTorque.DefaultValue = 0; brakingTorque.Writer = (x, result) => MyValueFormatter.AppendTorqueInBestUnit(x.BrakingTorque, result); brakingTorque.EnableActions(); brakingTorque.Denormalizer = (x, v) => x.DenormalizeTorque(v); brakingTorque.Normalizer = (x, v) => x.NormalizeTorque(v); MyTerminalControlFactory.AddControl(brakingTorque); var targetVelocity = new MyTerminalControlSlider <MyMotorStator>("Velocity", MySpaceTexts.BlockPropertyTitle_MotorTargetVelocity, MySpaceTexts.BlockPropertyDescription_MotorVelocity); targetVelocity.Getter = (x) => x.TargetVelocityRPM; targetVelocity.Setter = (x, v) => x.TargetVelocityRPM = v; targetVelocity.DefaultValue = 0; targetVelocity.Writer = (x, result) => result.Concat(x.TargetVelocityRPM, 2).Append(" rpm"); targetVelocity.EnableActionsWithReset(); targetVelocity.Denormalizer = (x, v) => x.DenormalizeRPM(v); targetVelocity.Normalizer = (x, v) => x.NormalizeRPM(v); MyTerminalControlFactory.AddControl(targetVelocity); var lowerLimit = new MyTerminalControlSlider <MyMotorStator>("LowerLimit", MySpaceTexts.BlockPropertyTitle_MotorMinAngle, MySpaceTexts.BlockPropertyDescription_MotorLowerLimit); lowerLimit.Getter = (x) => x.MinAngle; lowerLimit.Setter = (x, v) => x.MinAngle = v; lowerLimit.DefaultValue = -361; lowerLimit.SetLimits(-361, 360); lowerLimit.Writer = (x, result) => WriteAngle(x.m_minAngle, result); lowerLimit.EnableActions(); MyTerminalControlFactory.AddControl(lowerLimit); var upperLimit = new MyTerminalControlSlider <MyMotorStator>("UpperLimit", MySpaceTexts.BlockPropertyTitle_MotorMaxAngle, MySpaceTexts.BlockPropertyDescription_MotorUpperLimit); upperLimit.Getter = (x) => x.MaxAngle; upperLimit.Setter = (x, v) => x.MaxAngle = v; upperLimit.DefaultValue = 361; upperLimit.SetLimits(-360, 361); upperLimit.Writer = (x, result) => WriteAngle(x.m_maxAngle, result); upperLimit.EnableActions(); MyTerminalControlFactory.AddControl(upperLimit); var rotorDisplacement = new MyTerminalControlSlider <MyMotorStator>("Displacement", MySpaceTexts.BlockPropertyTitle_MotorRotorDisplacement, MySpaceTexts.BlockPropertyDescription_MotorRotorDisplacement); rotorDisplacement.Getter = (x) => x.DummyDisplacement; rotorDisplacement.Setter = (x, v) => x.DummyDisplacement = v; rotorDisplacement.DefaultValueGetter = (x) => 0.0f; rotorDisplacement.SetLimits((x) => x.MotorDefinition.RotorDisplacementMin, (x) => x.MotorDefinition.RotorDisplacementMax); rotorDisplacement.Writer = (x, result) => MyValueFormatter.AppendDistanceInBestUnit(x.DummyDisplacement, result); rotorDisplacement.Enabled = (b) => b.m_isAttached; rotorDisplacement.EnableActions(); MyTerminalControlFactory.AddControl(rotorDisplacement); var weldSpeed = new MyTerminalControlSlider <MyMotorStator>("Weld speed", MySpaceTexts.BlockPropertyTitle_WeldSpeed, MySpaceTexts.Blank); weldSpeed.SetLimits((block) => 0f, (block) => MyGridPhysics.SmallShipMaxLinearVelocity()); weldSpeed.DefaultValueGetter = (block) => MyGridPhysics.LargeShipMaxLinearVelocity() - 5f; weldSpeed.Getter = (x) => (float)Math.Sqrt(x.m_weldSpeedSq); weldSpeed.Setter = (x, v) => x.m_weldSpeedSq.Value = v * v; weldSpeed.Writer = (x, res) => res.AppendDecimal((float)Math.Sqrt(x.m_weldSpeedSq), 1).Append("m/s"); weldSpeed.EnableActions(); MyTerminalControlFactory.AddControl(weldSpeed); var weldForce = new MyTerminalControlCheckbox <MyMotorStator>("Force weld", MySpaceTexts.BlockPropertyTitle_WeldForce, MySpaceTexts.Blank); weldForce.Getter = (x) => x.m_forceWeld; weldForce.Setter = (x, v) => x.m_forceWeld.Value = v; weldForce.EnableAction(); MyTerminalControlFactory.AddControl(weldForce); }
static void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyWarhead>()) { return; } var slider = new MyTerminalControlSlider <MyWarhead>("DetonationTime", MySpaceTexts.TerminalControlPanel_Warhead_DetonationTime, MySpaceTexts.TerminalControlPanel_Warhead_DetonationTime); slider.SetLogLimits(1, 60 * 60); slider.DefaultValue = 10; slider.Enabled = (x) => !x.IsCountingDown; slider.Getter = (x) => x.DetonationTime; slider.Setter = (x, v) => x.m_countdownMs.Value = (int)(v * 1000); slider.Writer = (x, sb) => MyValueFormatter.AppendTimeExact(Math.Max(x.m_countdownMs, 1000) / 1000, sb); slider.EnableActions(); MyTerminalControlFactory.AddControl(slider); var startButton = new MyTerminalControlButton <MyWarhead>( "StartCountdown", MySpaceTexts.TerminalControlPanel_Warhead_StartCountdown, MySpaceTexts.TerminalControlPanel_Warhead_StartCountdown, (b) => MyMultiplayer.RaiseEvent(b, x => x.SetCountdown, true)); startButton.EnableAction(); MyTerminalControlFactory.AddControl(startButton); var stopButton = new MyTerminalControlButton <MyWarhead>( "StopCountdown", MySpaceTexts.TerminalControlPanel_Warhead_StopCountdown, MySpaceTexts.TerminalControlPanel_Warhead_StopCountdown, (b) => MyMultiplayer.RaiseEvent(b, x => x.SetCountdown, false)); stopButton.EnableAction(); MyTerminalControlFactory.AddControl(stopButton); MyTerminalControlFactory.AddControl(new MyTerminalControlSeparator <MyWarhead>()); var safetyCheckbox = new MyTerminalControlCheckbox <MyWarhead>( "Safety", MySpaceTexts.TerminalControlPanel_Warhead_Safety, MySpaceTexts.TerminalControlPanel_Warhead_SafetyTooltip, MySpaceTexts.TerminalControlPanel_Warhead_SwitchTextDisarmed, MySpaceTexts.TerminalControlPanel_Warhead_SwitchTextArmed); safetyCheckbox.Getter = (x) => !x.IsArmed; safetyCheckbox.Setter = (x, v) => x.IsArmed = !v; safetyCheckbox.EnableAction(); MyTerminalControlFactory.AddControl(safetyCheckbox); var detonateButton = new MyTerminalControlButton <MyWarhead>( "Detonate", MySpaceTexts.TerminalControlPanel_Warhead_Detonate, MySpaceTexts.TerminalControlPanel_Warhead_Detonate, (b) => { if (b.IsArmed) { MyMultiplayer.RaiseEvent(b, x => x.DetonateRequest); } }); detonateButton.Enabled = (x) => x.IsArmed; detonateButton.EnableAction(); MyTerminalControlFactory.AddControl(detonateButton); }
protected override void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MySpaceProjector>()) { return; } base.CreateTerminalControls(); if (!MyFakes.ENABLE_PROJECTOR_BLOCK) { return; } var blueprintBtn = new MyTerminalControlButton <MySpaceProjector>("Blueprint", MyCommonTexts.Blueprints, MySpaceTexts.Blank, (p) => p.SelectBlueprint()); blueprintBtn.Enabled = (b) => b.CanProject(); blueprintBtn.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(blueprintBtn); var removeBtn = new MyTerminalControlButton <MySpaceProjector>("Remove", MySpaceTexts.RemoveProjectionButton, MySpaceTexts.Blank, (p) => p.SendRemoveProjection()); removeBtn.Enabled = (b) => b.IsProjecting(); MyTerminalControlFactory.AddControl(removeBtn); var keepProjectionToggle = new MyTerminalControlCheckbox <MySpaceProjector>("KeepProjection", MySpaceTexts.KeepProjectionToggle, MySpaceTexts.KeepProjectionTooltip); keepProjectionToggle.Getter = (x) => x.KeepProjection; keepProjectionToggle.Setter = (x, v) => x.KeepProjection = v; keepProjectionToggle.EnableAction(); keepProjectionToggle.Enabled = (b) => b.IsProjecting(); MyTerminalControlFactory.AddControl(keepProjectionToggle); //ShowOnlyBuildable var showOnlyBuildableBlockToggle = new MyTerminalControlCheckbox <MySpaceProjector>("ShowOnlyBuildable", MySpaceTexts.ShowOnlyBuildableBlockToggle, MySpaceTexts.ShowOnlyBuildableTooltip); showOnlyBuildableBlockToggle.Getter = (x) => x.m_showOnlyBuildable; showOnlyBuildableBlockToggle.Setter = (x, v) => { x.m_showOnlyBuildable = v; x.OnOffsetsChanged(); }; showOnlyBuildableBlockToggle.Enabled = (b) => b.IsProjecting(); MyTerminalControlFactory.AddControl(showOnlyBuildableBlockToggle); //Position var offsetX = new MyTerminalControlSlider <MySpaceProjector>("X", MySpaceTexts.BlockPropertyTitle_ProjectionOffsetX, MySpaceTexts.Blank); offsetX.SetLimits(-50, 50); offsetX.DefaultValue = 0; offsetX.Getter = (x) => x.m_projectionOffset.X; offsetX.Setter = (x, v) => { x.m_projectionOffset.X = Convert.ToInt32(v); x.OnOffsetsChanged(); }; offsetX.Writer = (x, result) => result.AppendInt32((int)(x.m_projectionOffset.X)); offsetX.EnableActions(step: 0.01f); offsetX.Enabled = (x) => x.IsProjecting(); MyTerminalControlFactory.AddControl(offsetX); var offsetY = new MyTerminalControlSlider <MySpaceProjector>("Y", MySpaceTexts.BlockPropertyTitle_ProjectionOffsetY, MySpaceTexts.Blank); offsetY.SetLimits(-50, 50); offsetY.DefaultValue = 0; offsetY.Getter = (x) => x.m_projectionOffset.Y; offsetY.Setter = (x, v) => { x.m_projectionOffset.Y = Convert.ToInt32(v); x.OnOffsetsChanged(); }; offsetY.Writer = (x, result) => result.AppendInt32((int)(x.m_projectionOffset.Y)); offsetY.EnableActions(step: 0.01f); offsetY.Enabled = (x) => x.IsProjecting(); MyTerminalControlFactory.AddControl(offsetY); var offsetZ = new MyTerminalControlSlider <MySpaceProjector>("Z", MySpaceTexts.BlockPropertyTitle_ProjectionOffsetZ, MySpaceTexts.Blank); offsetZ.SetLimits(-50, 50); offsetZ.DefaultValue = 0; offsetZ.Getter = (x) => x.m_projectionOffset.Z; offsetZ.Setter = (x, v) => { x.m_projectionOffset.Z = Convert.ToInt32(v); x.OnOffsetsChanged(); }; offsetZ.Writer = (x, result) => result.AppendInt32((int)(x.m_projectionOffset.Z)); offsetZ.EnableActions(step: 0.01f); offsetZ.Enabled = (x) => x.IsProjecting(); MyTerminalControlFactory.AddControl(offsetZ); //Rotation var rotationX = new MyTerminalControlSlider <MySpaceProjector>("RotX", MySpaceTexts.BlockPropertyTitle_ProjectionRotationX, MySpaceTexts.Blank); rotationX.SetLimits(-2, 2); rotationX.DefaultValue = 0; rotationX.Getter = (x) => x.m_projectionRotation.X; rotationX.Setter = (x, v) => { x.m_projectionRotation.X = Convert.ToInt32(v); x.OnOffsetsChanged(); }; rotationX.Writer = (x, result) => result.AppendInt32((int)x.m_projectionRotation.X * 90).Append("°"); rotationX.EnableActions(step: 0.2f); rotationX.Enabled = (x) => x.IsProjecting(); MyTerminalControlFactory.AddControl(rotationX); var rotationY = new MyTerminalControlSlider <MySpaceProjector>("RotY", MySpaceTexts.BlockPropertyTitle_ProjectionRotationY, MySpaceTexts.Blank); rotationY.SetLimits(-2, 2); rotationY.DefaultValue = 0; rotationY.Getter = (x) => x.m_projectionRotation.Y; rotationY.Setter = (x, v) => { x.m_projectionRotation.Y = Convert.ToInt32(v); x.OnOffsetsChanged(); }; rotationY.Writer = (x, result) => result.AppendInt32((int)x.m_projectionRotation.Y * 90).Append("°"); rotationY.EnableActions(step: 0.2f); rotationY.Enabled = (x) => x.IsProjecting(); MyTerminalControlFactory.AddControl(rotationY); var rotationZ = new MyTerminalControlSlider <MySpaceProjector>("RotZ", MySpaceTexts.BlockPropertyTitle_ProjectionRotationZ, MySpaceTexts.Blank); rotationZ.SetLimits(-2, 2); rotationZ.DefaultValue = 0; rotationZ.Getter = (x) => x.m_projectionRotation.Z; rotationZ.Setter = (x, v) => { x.m_projectionRotation.Z = Convert.ToInt32(v); x.OnOffsetsChanged(); }; rotationZ.Writer = (x, result) => result.AppendInt32((int)x.m_projectionRotation.Z * 90).Append("°"); rotationZ.EnableActions(step: 0.2f); rotationZ.Enabled = (x) => x.IsProjecting(); MyTerminalControlFactory.AddControl(rotationZ); var scenarioSettingsSeparator = new MyTerminalControlSeparator <MySpaceProjector>(); scenarioSettingsSeparator.Visible = (p) => p.ScenarioSettingsEnabled(); MyTerminalControlFactory.AddControl(scenarioSettingsSeparator); var scenarioSettingsLabel = new MyTerminalControlLabel <MySpaceProjector>(MySpaceTexts.TerminalScenarioSettingsLabel); scenarioSettingsLabel.Visible = (p) => p.ScenarioSettingsEnabled(); MyTerminalControlFactory.AddControl(scenarioSettingsLabel); var spawnProjectionButton = new MyTerminalControlButton <MySpaceProjector>("SpawnProjection", MySpaceTexts.BlockPropertyTitle_ProjectionSpawn, MySpaceTexts.Blank, (p) => p.TrySpawnProjection()); spawnProjectionButton.Visible = (p) => p.ScenarioSettingsEnabled(); spawnProjectionButton.Enabled = (p) => p.CanSpawnProjection(); spawnProjectionButton.EnableAction(); MyTerminalControlFactory.AddControl(spawnProjectionButton); var instantBuildingCheckbox = new MyTerminalControlCheckbox <MySpaceProjector>("InstantBuilding", MySpaceTexts.BlockPropertyTitle_Projector_InstantBuilding, MySpaceTexts.BlockPropertyTitle_Projector_InstantBuilding_Tooltip); instantBuildingCheckbox.Visible = (p) => p.ScenarioSettingsEnabled(); instantBuildingCheckbox.Enabled = (p) => p.CanEnableInstantBuilding(); instantBuildingCheckbox.Getter = (p) => p.InstantBuildingEnabled; instantBuildingCheckbox.Setter = (p, v) => p.TrySetInstantBuilding(v); MyTerminalControlFactory.AddControl(instantBuildingCheckbox); var getOwnershipCheckbox = new MyTerminalControlCheckbox <MySpaceProjector>("GetOwnership", MySpaceTexts.BlockPropertyTitle_Projector_GetOwnership, MySpaceTexts.BlockPropertiesTooltip_Projector_GetOwnership); getOwnershipCheckbox.Visible = (p) => p.ScenarioSettingsEnabled(); getOwnershipCheckbox.Enabled = (p) => p.CanEditInstantBuildingSettings(); getOwnershipCheckbox.Getter = (p) => p.GetOwnershipFromProjector; getOwnershipCheckbox.Setter = (p, v) => p.TrySetGetOwnership(v); MyTerminalControlFactory.AddControl(getOwnershipCheckbox); var numberOfProjections = new MyTerminalControlSlider <MySpaceProjector>("NumberOfProjections", MySpaceTexts.BlockPropertyTitle_Projector_NumberOfProjections, MySpaceTexts.BlockPropertyTitle_Projector_NumberOfProjections_Tooltip); numberOfProjections.Visible = (p) => p.ScenarioSettingsEnabled(); numberOfProjections.Enabled = (p) => p.CanEditInstantBuildingSettings(); numberOfProjections.Getter = (p) => p.MaxNumberOfProjections; numberOfProjections.Setter = (p, v) => p.TryChangeNumberOfProjections(v); numberOfProjections.Writer = (p, s) => { if (p.MaxNumberOfProjections == MAX_NUMBER_OF_PROJECTIONS) { s.AppendStringBuilder(MyTexts.Get(MySpaceTexts.ScreenTerminal_Infinite)); } else { s.AppendInt32(p.MaxNumberOfProjections); } }; numberOfProjections.SetLogLimits(1, MAX_NUMBER_OF_PROJECTIONS); MyTerminalControlFactory.AddControl(numberOfProjections); var numberOfBlocks = new MyTerminalControlSlider <MySpaceProjector>("NumberOfBlocks", MySpaceTexts.BlockPropertyTitle_Projector_BlocksPerProjection, MySpaceTexts.BlockPropertyTitle_Projector_BlocksPerProjection_Tooltip); numberOfBlocks.Visible = (p) => p.ScenarioSettingsEnabled(); numberOfBlocks.Enabled = (p) => p.CanEditInstantBuildingSettings(); numberOfBlocks.Getter = (p) => p.MaxNumberOfBlocksPerProjection; numberOfBlocks.Setter = (p, v) => p.TryChangeMaxNumberOfBlocksPerProjection(v); numberOfBlocks.Writer = (p, s) => { if (p.MaxNumberOfBlocksPerProjection == MAX_NUMBER_OF_BLOCKS) { s.AppendStringBuilder(MyTexts.Get(MySpaceTexts.ScreenTerminal_Infinite)); } else { s.AppendInt32(p.MaxNumberOfBlocksPerProjection); } }; numberOfBlocks.SetLogLimits(1, MAX_NUMBER_OF_BLOCKS); MyTerminalControlFactory.AddControl(numberOfBlocks); }
protected override void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyMotorStator>()) { return; } base.CreateTerminalControls(); var reverse = new MyTerminalControlButton <MyMotorStator>("Reverse", MySpaceTexts.BlockActionTitle_Reverse, MySpaceTexts.Blank, (b) => b.TargetVelocityRPM = -b.TargetVelocityRPM); reverse.EnableAction(MyTerminalActionIcons.REVERSE); MyTerminalControlFactory.AddControl(reverse); var detach = new MyTerminalControlButton <MyMotorStator>("Detach", MySpaceTexts.BlockActionTitle_Detach, MySpaceTexts.Blank, (b) => b.m_connectionState.Value = new State() { TopBlockId = null, MasterToSlave = null }); detach.Enabled = (b) => b.m_connectionState.Value.TopBlockId.HasValue && b.m_isWelding == false && b.m_welded == false; detach.Visible = (b) => b.m_canBeDetached; var actionDetach = detach.EnableAction(MyTerminalActionIcons.NONE); actionDetach.Enabled = (b) => b.m_canBeDetached; MyTerminalControlFactory.AddControl(detach); var attach = new MyTerminalControlButton <MyMotorStator>("Attach", MySpaceTexts.BlockActionTitle_Attach, MySpaceTexts.Blank, (b) => b.m_connectionState.Value = new State() { TopBlockId = 0, MasterToSlave = null }); attach.Enabled = (b) => !b.m_connectionState.Value.TopBlockId.HasValue; attach.Visible = (b) => b.m_canBeDetached; var actionAttach = attach.EnableAction(MyTerminalActionIcons.NONE); actionAttach.Enabled = (b) => b.m_canBeDetached; MyTerminalControlFactory.AddControl(attach); var torque = new MyTerminalControlSlider <MyMotorStator>("Torque", MySpaceTexts.BlockPropertyTitle_MotorTorque, MySpaceTexts.BlockPropertyDescription_MotorTorque); torque.Getter = (x) => x.Torque; torque.Setter = (x, v) => x.Torque.Value = v; torque.DefaultValueGetter = (x) => x.MotorDefinition.MaxForceMagnitude; torque.Writer = (x, result) => MyValueFormatter.AppendTorqueInBestUnit(x.Torque, result); torque.EnableActions(); torque.Denormalizer = (x, v) => x.DenormalizeTorque(v); torque.Normalizer = (x, v) => x.NormalizeTorque(v); MyTerminalControlFactory.AddControl(torque); var brakingTorque = new MyTerminalControlSlider <MyMotorStator>("BrakingTorque", MySpaceTexts.BlockPropertyTitle_MotorBrakingTorque, MySpaceTexts.BlockPropertyDescription_MotorBrakingTorque); brakingTorque.Getter = (x) => x.BrakingTorque; brakingTorque.Setter = (x, v) => x.BrakingTorque.Value = v; brakingTorque.DefaultValue = 0; brakingTorque.Writer = (x, result) => MyValueFormatter.AppendTorqueInBestUnit(x.BrakingTorque, result); brakingTorque.EnableActions(); brakingTorque.Denormalizer = (x, v) => x.DenormalizeTorque(v); brakingTorque.Normalizer = (x, v) => x.NormalizeTorque(v); MyTerminalControlFactory.AddControl(brakingTorque); var targetVelocity = new MyTerminalControlSlider <MyMotorStator>("Velocity", MySpaceTexts.BlockPropertyTitle_MotorTargetVelocity, MySpaceTexts.BlockPropertyDescription_MotorVelocity); targetVelocity.Getter = (x) => x.TargetVelocityRPM; targetVelocity.Setter = (x, v) => x.TargetVelocityRPM = v; targetVelocity.DefaultValue = 0; targetVelocity.Writer = (x, result) => result.Concat(x.TargetVelocityRPM, 2).Append(" rpm"); targetVelocity.EnableActionsWithReset(); targetVelocity.Denormalizer = (x, v) => x.DenormalizeRPM(v); targetVelocity.Normalizer = (x, v) => x.NormalizeRPM(v); MyTerminalControlFactory.AddControl(targetVelocity); var lowerLimit = new MyTerminalControlSlider <MyMotorStator>("LowerLimit", MySpaceTexts.BlockPropertyTitle_MotorMinAngle, MySpaceTexts.BlockPropertyDescription_MotorLowerLimit); lowerLimit.Getter = (x) => x.MinAngle; lowerLimit.Setter = (x, v) => x.MinAngle = v; lowerLimit.DefaultValue = -361; lowerLimit.SetLimits(-361, 360); lowerLimit.Writer = (x, result) => WriteAngle(x.m_minAngle, result); lowerLimit.EnableActions(); MyTerminalControlFactory.AddControl(lowerLimit); var upperLimit = new MyTerminalControlSlider <MyMotorStator>("UpperLimit", MySpaceTexts.BlockPropertyTitle_MotorMaxAngle, MySpaceTexts.BlockPropertyDescription_MotorUpperLimit); upperLimit.Getter = (x) => x.MaxAngle; upperLimit.Setter = (x, v) => x.MaxAngle = v; upperLimit.DefaultValue = 361; upperLimit.SetLimits(-360, 361); upperLimit.Writer = (x, result) => WriteAngle(x.m_maxAngle, result); upperLimit.EnableActions(); MyTerminalControlFactory.AddControl(upperLimit); var rotorDisplacement = new MyTerminalControlSlider <MyMotorStator>("Displacement", MySpaceTexts.BlockPropertyTitle_MotorRotorDisplacement, MySpaceTexts.BlockPropertyDescription_MotorRotorDisplacement); rotorDisplacement.Getter = (x) => x.DummyDisplacement; rotorDisplacement.Setter = (x, v) => x.DummyDisplacement = v; rotorDisplacement.DefaultValueGetter = (x) => 0.0f; rotorDisplacement.SetLimits((x) => x.MotorDefinition.RotorDisplacementMin, (x) => x.MotorDefinition.RotorDisplacementMax); rotorDisplacement.Writer = (x, result) => MyValueFormatter.AppendDistanceInBestUnit(x.DummyDisplacement, result); rotorDisplacement.Enabled = (b) => b.m_isAttached; rotorDisplacement.EnableActions(); MyTerminalControlFactory.AddControl(rotorDisplacement); }
static void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyPistonBase>()) { return; } var reverse = new MyTerminalControlButton <MyPistonBase>("Reverse", MySpaceTexts.BlockActionTitle_Reverse, MySpaceTexts.Blank, (x) => x.Velocity.Value = -x.Velocity); reverse.EnableAction(MyTerminalActionIcons.REVERSE); MyTerminalControlFactory.AddControl(reverse); var extendAction = new MyTerminalAction <MyPistonBase>("Extend", MyTexts.Get(MySpaceTexts.BlockActionTitle_Extend), OnExtendApplied, null, MyTerminalActionIcons.REVERSE); extendAction.Enabled = (b) => b.IsFunctional == true; MyTerminalControlFactory.AddAction(extendAction); var retractAction = new MyTerminalAction <MyPistonBase>("Retract", MyTexts.Get(MySpaceTexts.BlockActionTitle_Retract), OnRetractApplied, null, MyTerminalActionIcons.REVERSE); retractAction.Enabled = (b) => b.IsFunctional == true; MyTerminalControlFactory.AddAction(retractAction); var velocity = new MyTerminalControlSlider <MyPistonBase>("Velocity", MySpaceTexts.BlockPropertyTitle_Velocity, MySpaceTexts.Blank); velocity.SetLimits((block) => - block.BlockDefinition.MaxVelocity, (block) => block.BlockDefinition.MaxVelocity); velocity.DefaultValue = -0.5f; velocity.Getter = (x) => x.Velocity; velocity.Setter = (x, v) => x.Velocity.Value = v; velocity.Writer = (x, res) => res.AppendDecimal(x.Velocity, 1).Append("m/s"); velocity.EnableActionsWithReset(); MyTerminalControlFactory.AddControl(velocity); var maxDist = new MyTerminalControlSlider <MyPistonBase>("UpperLimit", MySpaceTexts.BlockPropertyTitle_MaximalDistance, MySpaceTexts.Blank); maxDist.SetLimits((block) => block.BlockDefinition.Minimum, (block) => block.BlockDefinition.Maximum); maxDist.DefaultValueGetter = (block) => block.BlockDefinition.Maximum; maxDist.Getter = (x) => x.MaxLimit; maxDist.Setter = (x, v) => x.MaxLimit.Value = v; maxDist.Writer = (x, res) => res.AppendDecimal(x.MaxLimit, 1).Append("m"); maxDist.EnableActions(); MyTerminalControlFactory.AddControl(maxDist); var minDist = new MyTerminalControlSlider <MyPistonBase>("LowerLimit", MySpaceTexts.BlockPropertyTitle_MinimalDistance, MySpaceTexts.Blank); minDist.SetLimits((block) => block.BlockDefinition.Minimum, (block) => block.BlockDefinition.Maximum); minDist.DefaultValueGetter = (block) => block.BlockDefinition.Minimum; minDist.Getter = (x) => x.MinLimit; minDist.Setter = (x, v) => x.MinLimit.Value = v; minDist.Writer = (x, res) => res.AppendDecimal(x.MinLimit, 1).Append("m"); minDist.EnableActions(); MyTerminalControlFactory.AddControl(minDist); var weldSpeed = new MyTerminalControlSlider <MyPistonBase>("Weld speed", MySpaceTexts.BlockPropertyTitle_WeldSpeed, MySpaceTexts.Blank); weldSpeed.SetLimits((block) => 0f, (block) => MyGridPhysics.SmallShipMaxLinearVelocity()); weldSpeed.DefaultValueGetter = (block) => MyGridPhysics.LargeShipMaxLinearVelocity() - 5f; weldSpeed.Getter = (x) => (float)Math.Sqrt(x.m_weldSpeedSq); weldSpeed.Setter = (x, v) => x.m_weldSpeedSq.Value = v * v; weldSpeed.Writer = (x, res) => res.AppendDecimal((float)Math.Sqrt(x.m_weldSpeedSq), 1).Append("m/s"); weldSpeed.EnableActions(); MyTerminalControlFactory.AddControl(weldSpeed); var weldForce = new MyTerminalControlCheckbox <MyPistonBase>("Force weld", MySpaceTexts.BlockPropertyTitle_WeldForce, MySpaceTexts.Blank); weldForce.Getter = (x) => x.m_forceWeld; weldForce.Setter = (x, v) => x.m_forceWeld.Value = v; weldForce.EnableAction(); MyTerminalControlFactory.AddControl(weldForce); var addPistonHead = new MyTerminalControlButton <MyPistonBase>("Add Piston Head", MySpaceTexts.BlockActionTitle_AddPistonHead, MySpaceTexts.BlockActionTooltip_AddPistonHead, (b) => b.RecreateTop()); addPistonHead.Enabled = (b) => (b.m_topBlock == null); addPistonHead.EnableAction(MyTerminalActionIcons.STATION_ON); MyTerminalControlFactory.AddControl(addPistonHead); }
protected override void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyTextPanel>()) { return; } base.CreateTerminalControls(); var publicTitleField = new MyTerminalControlTextbox <MyTextPanel>("Title", MySpaceTexts.BlockPropertyTitle_TextPanelPublicTitle, MySpaceTexts.Blank); publicTitleField.Getter = (x) => x.PublicTitle; publicTitleField.Setter = (x, v) => x.SendChangeTitleMessage(v, true); publicTitleField.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(publicTitleField); var showPublicButton = new MyTerminalControlButton <MyTextPanel>("ShowTextPanel", MySpaceTexts.BlockPropertyTitle_TextPanelShowPublicTextPanel, MySpaceTexts.Blank, (x) => x.OpenWindow(true, true, true)); showPublicButton.Enabled = (x) => !x.IsOpen; showPublicButton.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(showPublicButton); MyTerminalControlFactory.AddControl(new MyTerminalControlSeparator <MyTextPanel>()); var showTextOnScreen = new MyTerminalControlOnOffSwitch <MyTextPanel>("ShowTextOnScreen", MySpaceTexts.BlockPropertyTitle_ShowTextOnScreen, MySpaceTexts.Blank); showTextOnScreen.Getter = (x) => x.ShowTextFlag != ShowTextOnScreenFlag.NONE; showTextOnScreen.Setter = (x, y) => x.ShowTextFlag = y ? ShowTextOnScreenFlag.PUBLIC : ShowTextOnScreenFlag.NONE; MyTerminalControlFactory.AddControl(showTextOnScreen); var comboFont = new MyTerminalControlCombobox <MyTextPanel>("Font", MySpaceTexts.BlockPropertyTitle_Font, MySpaceTexts.Blank); comboFont.ComboBoxContent = (x) => FillFontComboBoxContent(x); comboFont.Getter = (x) => (long)x.Font.SubtypeId; comboFont.Setter = (x, y) => x.Font = new MyDefinitionId(typeof(MyObjectBuilder_FontDefinition), MyStringHash.TryGet((int)y)); MyTerminalControlFactory.AddControl(comboFont); MyTerminalControlFactory.AddControl(new MyTerminalControlSeparator <MyTextPanel>()); var changeFontSlider = new MyTerminalControlSlider <MyTextPanel>("FontSize", MySpaceTexts.BlockPropertyTitle_LCDScreenTextSize, MySpaceTexts.Blank); changeFontSlider.SetLimits(0.1f, 10.0f); changeFontSlider.DefaultValue = 1.0f; changeFontSlider.Getter = (x) => x.FontSize; changeFontSlider.Setter = (x, v) => x.FontSize = v; changeFontSlider.Writer = (x, result) => result.Append(MyValueFormatter.GetFormatedFloat(x.FontSize, NUM_DECIMALS)); changeFontSlider.EnableActions(); MyTerminalControlFactory.AddControl(changeFontSlider); var fontColor = new MyTerminalControlColor <MyTextPanel>("FontColor", MySpaceTexts.BlockPropertyTitle_FontColor); fontColor.Getter = (x) => x.FontColor; fontColor.Setter = (x, v) => x.FontColor = v; MyTerminalControlFactory.AddControl(fontColor); var backgroundColor = new MyTerminalControlColor <MyTextPanel>("BackgroundColor", MySpaceTexts.BlockPropertyTitle_BackgroundColor); backgroundColor.Getter = (x) => x.BackgroundColor; backgroundColor.Setter = (x, v) => x.BackgroundColor = v; MyTerminalControlFactory.AddControl(backgroundColor); MyTerminalControlFactory.AddControl(new MyTerminalControlSeparator <MyTextPanel>()); var imagesList = new MyTerminalControlListbox <MyTextPanel>("ImageList", MySpaceTexts.BlockPropertyTitle_LCDScreenDefinitionsTextures, MySpaceTexts.Blank, true); imagesList.ListContent = (x, list1, list2) => x.FillListContent(list1, list2); imagesList.ItemSelected = (x, y) => x.SelectImageToDraw(y); MyTerminalControlFactory.AddControl(imagesList); var addToSelectionButton = new MyTerminalControlButton <MyTextPanel>("SelectTextures", MySpaceTexts.BlockPropertyTitle_LCDScreenSelectTextures, MySpaceTexts.Blank, (x) => x.AddImagesToSelection()); MyTerminalControlFactory.AddControl(addToSelectionButton); var changeIntervalSlider = new MyTerminalControlSlider <MyTextPanel>("ChangeIntervalSlider", MySpaceTexts.BlockPropertyTitle_LCDScreenRefreshInterval, MySpaceTexts.Blank); changeIntervalSlider.SetLimits(0, 30.0f); changeIntervalSlider.DefaultValue = 0; changeIntervalSlider.Getter = (x) => x.ChangeInterval; changeIntervalSlider.Setter = (x, v) => x.ChangeInterval = v; changeIntervalSlider.Writer = (x, result) => result.Append(MyValueFormatter.GetFormatedFloat(x.ChangeInterval, NUM_DECIMALS)).Append(" s"); changeIntervalSlider.EnableActions(); MyTerminalControlFactory.AddControl(changeIntervalSlider); var selectedImagesList = new MyTerminalControlListbox <MyTextPanel>("SelectedImageList", MySpaceTexts.BlockPropertyTitle_LCDScreenSelectedTextures, MySpaceTexts.Blank, true); selectedImagesList.ListContent = (x, list1, list2) => x.FillSelectedListContent(list1, list2); selectedImagesList.ItemSelected = (x, y) => x.SelectImage(y); MyTerminalControlFactory.AddControl(selectedImagesList); var removeSelectedButton = new MyTerminalControlButton <MyTextPanel>("RemoveSelectedTextures", MySpaceTexts.BlockPropertyTitle_LCDScreenRemoveSelectedTextures, MySpaceTexts.Blank, (x) => x.RemoveImagesFromSelection()); MyTerminalControlFactory.AddControl(removeSelectedButton); }
protected override void CreateTerminalControls() { if (!MyTerminalControlFactory.AreControlsCreated <MyRadioAntenna>()) { base.CreateTerminalControls(); MyTerminalControlFactory.RemoveBaseClass <MyRadioAntenna, MyTerminalBlock>(); MyStringId?on = null; on = null; MyTerminalControlOnOffSwitch <MyRadioAntenna> switch3 = new MyTerminalControlOnOffSwitch <MyRadioAntenna>("ShowInTerminal", MySpaceTexts.Terminal_ShowInTerminal, MySpaceTexts.Terminal_ShowInTerminalToolTip, on, on); MyTerminalControlOnOffSwitch <MyRadioAntenna> switch4 = new MyTerminalControlOnOffSwitch <MyRadioAntenna>("ShowInTerminal", MySpaceTexts.Terminal_ShowInTerminal, MySpaceTexts.Terminal_ShowInTerminalToolTip, on, on); switch4.Getter = x => x.ShowInTerminal; MyTerminalControlOnOffSwitch <MyRadioAntenna> local57 = switch4; MyTerminalControlOnOffSwitch <MyRadioAntenna> control = switch4; control.Setter = (x, v) => x.ShowInTerminal = v; MyTerminalControlFactory.AddControl <MyRadioAntenna>(control); on = null; on = null; MyTerminalControlOnOffSwitch <MyRadioAntenna> switch1 = new MyTerminalControlOnOffSwitch <MyRadioAntenna>("ShowInToolbarConfig", MySpaceTexts.Terminal_ShowInToolbarConfig, MySpaceTexts.Terminal_ShowInToolbarConfigToolTip, on, on); MyTerminalControlOnOffSwitch <MyRadioAntenna> switch2 = new MyTerminalControlOnOffSwitch <MyRadioAntenna>("ShowInToolbarConfig", MySpaceTexts.Terminal_ShowInToolbarConfig, MySpaceTexts.Terminal_ShowInToolbarConfigToolTip, on, on); switch2.Getter = x => x.ShowInToolbarConfig; MyTerminalControlOnOffSwitch <MyRadioAntenna> local55 = switch2; MyTerminalControlOnOffSwitch <MyRadioAntenna> local56 = switch2; local56.Setter = (x, v) => x.ShowInToolbarConfig = v; MyTerminalControlFactory.AddControl <MyRadioAntenna>(local56); MyTerminalControlButton <MyRadioAntenna> button1 = new MyTerminalControlButton <MyRadioAntenna>("CustomData", MySpaceTexts.Terminal_CustomData, MySpaceTexts.Terminal_CustomDataTooltip, new Action <MyRadioAntenna>(this.CustomDataClicked)); MyTerminalControlButton <MyRadioAntenna> button2 = new MyTerminalControlButton <MyRadioAntenna>("CustomData", MySpaceTexts.Terminal_CustomData, MySpaceTexts.Terminal_CustomDataTooltip, new Action <MyRadioAntenna>(this.CustomDataClicked)); button2.Enabled = x => !x.m_textboxOpen; MyTerminalControlButton <MyRadioAntenna> local6 = button2; local6.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl <MyRadioAntenna>(local6); MyTerminalControlTextbox <MyRadioAntenna> textbox3 = new MyTerminalControlTextbox <MyRadioAntenna>("CustomName", MyCommonTexts.Name, MySpaceTexts.Blank); MyTerminalControlTextbox <MyRadioAntenna> textbox4 = new MyTerminalControlTextbox <MyRadioAntenna>("CustomName", MyCommonTexts.Name, MySpaceTexts.Blank); textbox4.Getter = x => x.CustomName; MyTerminalControlTextbox <MyRadioAntenna> local53 = textbox4; MyTerminalControlTextbox <MyRadioAntenna> local54 = textbox4; local54.Setter = (x, v) => x.SetCustomName(v); MyTerminalControlTextbox <MyRadioAntenna> local9 = local54; local9.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl <MyRadioAntenna>(local9); MyTerminalControlFactory.AddControl <MyRadioAntenna>(new MyTerminalControlSeparator <MyRadioAntenna>()); MyTerminalControlTextbox <MyRadioAntenna> textbox1 = new MyTerminalControlTextbox <MyRadioAntenna>("HudText", MySpaceTexts.BlockPropertiesTitle_HudText, MySpaceTexts.BlockPropertiesTitle_HudText_Tooltip); MyTerminalControlTextbox <MyRadioAntenna> textbox2 = new MyTerminalControlTextbox <MyRadioAntenna>("HudText", MySpaceTexts.BlockPropertiesTitle_HudText, MySpaceTexts.BlockPropertiesTitle_HudText_Tooltip); textbox2.Getter = x => x.HudText; MyTerminalControlTextbox <MyRadioAntenna> local51 = textbox2; MyTerminalControlTextbox <MyRadioAntenna> local52 = textbox2; local52.Setter = (x, v) => x.SetHudText(v); MyTerminalControlTextbox <MyRadioAntenna> local12 = local52; local12.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl <MyRadioAntenna>(local12); MyTerminalControlCombobox <MyRadioAntenna> combobox1 = new MyTerminalControlCombobox <MyRadioAntenna>("PBList", MySpaceTexts.BlockPropertyTitle_AssignedPB, MySpaceTexts.Blank); MyTerminalControlCombobox <MyRadioAntenna> combobox2 = new MyTerminalControlCombobox <MyRadioAntenna>("PBList", MySpaceTexts.BlockPropertyTitle_AssignedPB, MySpaceTexts.Blank); combobox2.ComboBoxContentWithBlock = (x, list) => x.FillPBComboBoxContent(list); MyTerminalControlCombobox <MyRadioAntenna> local49 = combobox2; MyTerminalControlCombobox <MyRadioAntenna> local50 = combobox2; local50.Getter = x => (long)x.m_attachedPB; MyTerminalControlCombobox <MyRadioAntenna> local47 = local50; MyTerminalControlCombobox <MyRadioAntenna> local48 = local50; local48.Setter = delegate(MyRadioAntenna x, long y) { x.m_attachedPB.Value = y; m_ignoreAllyCheckbox.UpdateVisual(); m_ignoreOtherCheckbox.UpdateVisual(); }; MyTerminalControlFactory.AddControl <MyRadioAntenna>(local48); MyTerminalControlFactory.AddControl <MyRadioAntenna>(new MyTerminalControlSeparator <MyRadioAntenna>()); MyTerminalControlSlider <MyRadioAntenna> slider1 = new MyTerminalControlSlider <MyRadioAntenna>("Radius", MySpaceTexts.BlockPropertyTitle_BroadcastRadius, MySpaceTexts.BlockPropertyDescription_BroadcastRadius); MyTerminalControlSlider <MyRadioAntenna> slider2 = new MyTerminalControlSlider <MyRadioAntenna>("Radius", MySpaceTexts.BlockPropertyTitle_BroadcastRadius, MySpaceTexts.BlockPropertyDescription_BroadcastRadius); slider2.SetLogLimits(block => 1f, block => (block.BlockDefinition as MyRadioAntennaDefinition).MaxBroadcastRadius); MyTerminalValueControl <MyRadioAntenna, float> .GetterDelegate local45 = (MyTerminalValueControl <MyRadioAntenna, float> .GetterDelegate)slider2; MyTerminalValueControl <MyRadioAntenna, float> .GetterDelegate local46 = (MyTerminalValueControl <MyRadioAntenna, float> .GetterDelegate)slider2; local46.DefaultValueGetter = x => (x.BlockDefinition as MyRadioAntennaDefinition).MaxBroadcastRadius / 10f; MyTerminalValueControl <MyRadioAntenna, float> .GetterDelegate local43 = local46; MyTerminalValueControl <MyRadioAntenna, float> .GetterDelegate local44 = local46; local44.Getter = x => x.RadioBroadcaster.BroadcastRadius; MyTerminalValueControl <MyRadioAntenna, float> .GetterDelegate local41 = local44; MyTerminalValueControl <MyRadioAntenna, float> .GetterDelegate local42 = local44; local42.Setter = (x, v) => x.m_radius.Value = v; MyTerminalValueControl <MyRadioAntenna, float> .GetterDelegate local39 = local42; MyTerminalValueControl <MyRadioAntenna, float> .GetterDelegate local40 = local42; local40.Writer = (x, result) => result.Append(new StringBuilder().AppendDecimal(x.RadioBroadcaster.BroadcastRadius, 0).Append(" m")); MyTerminalValueControl <MyRadioAntenna, float> .GetterDelegate local22 = local40; ((MyTerminalControlSlider <MyRadioAntenna>)local22).EnableActions <MyRadioAntenna>(0.05f, null, null); MyTerminalControlFactory.AddControl <MyRadioAntenna>((MyTerminalControl <MyRadioAntenna>)local22); on = null; on = null; MyTerminalControlCheckbox <MyRadioAntenna> checkbox3 = new MyTerminalControlCheckbox <MyRadioAntenna>("EnableBroadCast", MySpaceTexts.Antenna_EnableBroadcast, MySpaceTexts.Antenna_EnableBroadcast, on, on); MyTerminalControlCheckbox <MyRadioAntenna> checkbox4 = new MyTerminalControlCheckbox <MyRadioAntenna>("EnableBroadCast", MySpaceTexts.Antenna_EnableBroadcast, MySpaceTexts.Antenna_EnableBroadcast, on, on); checkbox4.Getter = x => x.EnableBroadcasting.Value; MyTerminalControlCheckbox <MyRadioAntenna> local37 = checkbox4; MyTerminalControlCheckbox <MyRadioAntenna> local38 = checkbox4; local38.Setter = (x, v) => x.EnableBroadcasting.Value = v; MyTerminalControlCheckbox <MyRadioAntenna> checkbox = local38; checkbox.EnableAction <MyRadioAntenna>(null); MyTerminalControlFactory.AddControl <MyRadioAntenna>(checkbox); on = null; on = null; MyTerminalControlCheckbox <MyRadioAntenna> checkbox1 = new MyTerminalControlCheckbox <MyRadioAntenna>("ShowShipName", MySpaceTexts.BlockPropertyTitle_ShowShipName, MySpaceTexts.BlockPropertyDescription_ShowShipName, on, on); MyTerminalControlCheckbox <MyRadioAntenna> checkbox2 = new MyTerminalControlCheckbox <MyRadioAntenna>("ShowShipName", MySpaceTexts.BlockPropertyTitle_ShowShipName, MySpaceTexts.BlockPropertyDescription_ShowShipName, on, on); checkbox2.Getter = x => x.ShowShipName; MyTerminalControlCheckbox <MyRadioAntenna> local35 = checkbox2; MyTerminalControlCheckbox <MyRadioAntenna> local36 = checkbox2; local36.Setter = (x, v) => x.ShowShipName = v; MyTerminalControlCheckbox <MyRadioAntenna> local28 = local36; local28.EnableAction <MyRadioAntenna>(null); MyTerminalControlFactory.AddControl <MyRadioAntenna>(local28); MyTerminalControlFactory.AddControl <MyRadioAntenna>(new MyTerminalControlSeparator <MyRadioAntenna>()); on = null; on = null; m_ignoreAllyCheckbox = new MyTerminalControlCheckbox <MyRadioAntenna>("IgnoreAlliedBroadcast", MySpaceTexts.Antenna_IgnoreAlliedBroadcast, MySpaceTexts.Antenna_IgnoreAlliedBroadcastTooltip, on, on); m_ignoreAllyCheckbox.Enabled = x => x.m_attachedPB.Value != 0L; m_ignoreAllyCheckbox.Getter = x => (bool)x.m_ignoreAlliedBroadcast; m_ignoreAllyCheckbox.Setter = (x, y) => x.m_ignoreAlliedBroadcast.Value = y; m_ignoreAllyCheckbox.EnableAction <MyRadioAntenna>(null); MyTerminalControlFactory.AddControl <MyRadioAntenna>(m_ignoreAllyCheckbox); on = null; on = null; m_ignoreOtherCheckbox = new MyTerminalControlCheckbox <MyRadioAntenna>("IgnoreOtherBroadcast", MySpaceTexts.Antenna_IgnoreOtherBroadcast, MySpaceTexts.Antenna_IgnoreOtherBroadcastTooltip, on, on); m_ignoreOtherCheckbox.Enabled = x => x.m_attachedPB.Value != 0L; m_ignoreOtherCheckbox.Getter = x => (bool)x.m_ignoreOtherBroadcast; m_ignoreOtherCheckbox.Setter = (x, y) => x.m_ignoreOtherBroadcast.Value = y; m_ignoreOtherCheckbox.EnableAction <MyRadioAntenna>(null); MyTerminalControlFactory.AddControl <MyRadioAntenna>(m_ignoreOtherCheckbox); } }
static void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyLightingBlock>()) { return; } var lightColor = new MyTerminalControlColor <MyLightingBlock>("Color", MySpaceTexts.BlockPropertyTitle_LightColor); lightColor.Getter = (x) => x.Color; lightColor.Setter = (x, v) => x.m_lightColor.Value = v; MyTerminalControlFactory.AddControl(lightColor); var lightRadius = new MyTerminalControlSlider <MyLightingBlock>("Radius", MySpaceTexts.BlockPropertyTitle_LightRadius, MySpaceTexts.BlockPropertyDescription_LightRadius); lightRadius.SetLimits((x) => x.m_light.IsTypeSpot ? x.ReflectorRadiusBounds.Min : x.RadiusBounds.Min, (x) => x.m_light.IsTypeSpot ? x.ReflectorRadiusBounds.Max : x.RadiusBounds.Max); lightRadius.DefaultValueGetter = (x) => x.m_light.IsTypeSpot ? x.ReflectorRadiusBounds.Default : x.RadiusBounds.Default; lightRadius.Getter = (x) => x.m_light.IsTypeSpot ? x.ReflectorRadius : x.Radius; lightRadius.Setter = (x, v) => x.m_lightRadius.Value = v; lightRadius.Writer = (x, result) => result.Append(MyValueFormatter.GetFormatedFloat(x.m_light.IsTypeSpot ? x.m_light.ReflectorRange : x.m_light.Range, 1)).Append(" m"); lightRadius.EnableActions(); MyTerminalControlFactory.AddControl(lightRadius); var lightFalloff = new MyTerminalControlSlider <MyLightingBlock>("Falloff", MySpaceTexts.BlockPropertyTitle_LightFalloff, MySpaceTexts.BlockPropertyDescription_LightFalloff); lightFalloff.SetLimits((x) => x.FalloffBounds.Min, (x) => x.FalloffBounds.Max); lightFalloff.DefaultValueGetter = (x) => x.FalloffBounds.Default; lightFalloff.Getter = (x) => x.Falloff; lightFalloff.Setter = (x, v) => x.m_lightFalloff.Value = v; lightFalloff.Writer = (x, result) => result.Append(MyValueFormatter.GetFormatedFloat(x.Falloff, 1)); lightFalloff.EnableActions(); MyTerminalControlFactory.AddControl(lightFalloff); var lightIntensity = new MyTerminalControlSlider <MyLightingBlock>("Intensity", MySpaceTexts.BlockPropertyTitle_LightIntensity, MySpaceTexts.BlockPropertyDescription_LightIntensity); lightIntensity.SetLimits((x) => x.IntensityBounds.Min, (x) => x.IntensityBounds.Max); lightIntensity.DefaultValueGetter = (x) => x.IntensityBounds.Default; lightIntensity.Getter = (x) => x.Intensity; lightIntensity.Setter = (x, v) => x.Intensity = v; lightIntensity.Writer = (x, result) => result.Append(MyValueFormatter.GetFormatedFloat(x.Intensity, 1)); lightIntensity.EnableActions(); MyTerminalControlFactory.AddControl(lightIntensity); var lightBlinkTime = new MyTerminalControlSlider <MyLightingBlock>("Blink Interval", MySpaceTexts.BlockPropertyTitle_LightBlinkInterval, MySpaceTexts.BlockPropertyDescription_LightBlinkInterval); lightBlinkTime.SetLimits((x) => x.BlinkIntervalSecondsBounds.Min, (x) => x.BlinkIntervalSecondsBounds.Max); lightBlinkTime.DefaultValueGetter = (x) => x.BlinkIntervalSecondsBounds.Default; lightBlinkTime.Getter = (x) => x.BlinkIntervalSeconds; lightBlinkTime.Setter = (x, v) => x.BlinkIntervalSeconds = v; lightBlinkTime.Writer = (x, result) => result.Append(MyValueFormatter.GetFormatedFloat(x.BlinkIntervalSeconds, NUM_DECIMALS)).Append(" s"); lightBlinkTime.EnableActions(); MyTerminalControlFactory.AddControl(lightBlinkTime); var lightBlinkLenght = new MyTerminalControlSlider <MyLightingBlock>("Blink Lenght", MySpaceTexts.BlockPropertyTitle_LightBlinkLenght, MySpaceTexts.BlockPropertyDescription_LightBlinkLenght); lightBlinkLenght.SetLimits((x) => x.BlinkLenghtBounds.Min, (x) => x.BlinkLenghtBounds.Max); lightBlinkLenght.DefaultValueGetter = (x) => x.BlinkLenghtBounds.Default; lightBlinkLenght.Getter = (x) => x.BlinkLength; lightBlinkLenght.Setter = (x, v) => x.BlinkLength = v; lightBlinkLenght.Writer = (x, result) => result.Append(MyValueFormatter.GetFormatedFloat(x.BlinkLength, NUM_DECIMALS)).Append(" %"); lightBlinkLenght.EnableActions(); MyTerminalControlFactory.AddControl(lightBlinkLenght); var ligthBlinkOffset = new MyTerminalControlSlider <MyLightingBlock>("Blink Offset", MySpaceTexts.BlockPropertyTitle_LightBlinkOffset, MySpaceTexts.BlockPropertyDescription_LightBlinkOffset); ligthBlinkOffset.SetLimits((x) => x.BlinkOffsetBounds.Min, (x) => x.BlinkOffsetBounds.Max); ligthBlinkOffset.DefaultValueGetter = (x) => x.BlinkOffsetBounds.Default; ligthBlinkOffset.Getter = (x) => x.BlinkOffset; ligthBlinkOffset.Setter = (x, v) => x.BlinkOffset = v; ligthBlinkOffset.Writer = (x, result) => result.Append(MyValueFormatter.GetFormatedFloat(x.BlinkOffset, NUM_DECIMALS)).Append(" %"); ligthBlinkOffset.EnableActions(); MyTerminalControlFactory.AddControl(ligthBlinkOffset); }
protected override void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyTimerBlock>()) { return; } base.CreateTerminalControls(); var silent = new MyTerminalControlCheckbox <MyTimerBlock>("Silent", MySpaceTexts.BlockPropertyTitle_Silent, MySpaceTexts.ToolTipTimerBlock_Silent); silent.Getter = (x) => x.Silent; silent.Setter = (x, v) => x.Silent = v; silent.EnableAction(); MyTerminalControlFactory.AddControl(silent); var slider = new MyTerminalControlSlider <MyTimerBlock>("TriggerDelay", MySpaceTexts.TerminalControlPanel_TimerDelay, MySpaceTexts.TerminalControlPanel_TimerDelay); slider.SetLogLimits(1, 60 * 60); slider.DefaultValue = 10; slider.Enabled = (x) => !x.IsCountingDown; slider.Getter = (x) => x.TriggerDelay; slider.Setter = (x, v) => x.m_timerSync.Value = ((int)(Math.Round(v, 1) * 1000)); slider.Writer = (x, sb) => MyValueFormatter.AppendTimeExact(Math.Max(x.m_countdownMsStart, 1000) / 1000, sb); slider.EnableActions(); MyTerminalControlFactory.AddControl(slider); var toolbarButton = new MyTerminalControlButton <MyTimerBlock>("OpenToolbar", MySpaceTexts.BlockPropertyTitle_TimerToolbarOpen, MySpaceTexts.BlockPropertyTitle_TimerToolbarOpen, delegate(MyTimerBlock self) { m_openedToolbars.Add(self.Toolbar); if (MyGuiScreenCubeBuilder.Static == null) { m_shouldSetOtherToolbars = true; MyToolbarComponent.CurrentToolbar = self.Toolbar; MyGuiScreenBase screen = MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.ToolbarConfigScreen, 0, self); MyToolbarComponent.AutoUpdate = false; screen.Closed += (source) => { MyToolbarComponent.AutoUpdate = true; m_openedToolbars.Clear(); }; MyGuiSandbox.AddScreen(screen); } }); MyTerminalControlFactory.AddControl(toolbarButton); var triggerButton = new MyTerminalControlButton <MyTimerBlock>("TriggerNow", MySpaceTexts.BlockPropertyTitle_TimerTrigger, MySpaceTexts.BlockPropertyTitle_TimerTrigger, (x) => x.OnTrigger()); triggerButton.EnableAction(); MyTerminalControlFactory.AddControl(triggerButton); var startButton = new MyTerminalControlButton <MyTimerBlock>("Start", MySpaceTexts.BlockPropertyTitle_TimerStart, MySpaceTexts.BlockPropertyTitle_TimerStart, (x) => x.StartBtn()); startButton.EnableAction(); MyTerminalControlFactory.AddControl(startButton); var stopButton = new MyTerminalControlButton <MyTimerBlock>("Stop", MySpaceTexts.BlockPropertyTitle_TimerStop, MySpaceTexts.BlockPropertyTitle_TimerStop, (x) => x.StopBtn()); stopButton.EnableAction(); MyTerminalControlFactory.AddControl(stopButton); }
protected void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MySensorBlock>()) { return; } base.CreateTerminalControls(); m_openedToolbars = new List <MyToolbar>(); var toolbarButton = new MyTerminalControlButton <MySensorBlock>("Open Toolbar", MySpaceTexts.BlockPropertyTitle_SensorToolbarOpen, MySpaceTexts.BlockPropertyDescription_SensorToolbarOpen, delegate(MySensorBlock self) { m_openedToolbars.Add(self.Toolbar); if (MyGuiScreenCubeBuilder.Static == null) { m_shouldSetOtherToolbars = true; MyToolbarComponent.CurrentToolbar = self.Toolbar; MyGuiScreenBase screen = MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.ToolbarConfigScreen, 0, self); MyToolbarComponent.AutoUpdate = false; screen.Closed += (source) => { MyToolbarComponent.AutoUpdate = true; m_openedToolbars.Clear(); }; MyGuiSandbox.AddScreen(screen); } }); MyTerminalControlFactory.AddControl(toolbarButton); var fieldWidthMin = new MyTerminalControlSlider <MySensorBlock>("Left", MySpaceTexts.BlockPropertyTitle_SensorFieldWidthMin, MySpaceTexts.BlockPropertyDescription_SensorFieldLeft); fieldWidthMin.SetLimits(block => 1, block => block.MaxRange); fieldWidthMin.DefaultValue = 5; fieldWidthMin.Getter = (x) => - x.m_fieldMin.Value.X; fieldWidthMin.Setter = (x, v) => { var fieldMin = x.FieldMin; if (fieldMin.X == -v) { return; } fieldMin.X = -v; x.FieldMin = fieldMin; }; fieldWidthMin.Writer = (x, result) => result.AppendInt32((int)-x.m_fieldMin.Value.X).Append(" m"); fieldWidthMin.EnableActions(); MyTerminalControlFactory.AddControl(fieldWidthMin); var fieldWidthMax = new MyTerminalControlSlider <MySensorBlock>("Right", MySpaceTexts.BlockPropertyTitle_SensorFieldWidthMax, MySpaceTexts.BlockPropertyDescription_SensorFieldRight); fieldWidthMax.SetLimits(block => 1, block => block.MaxRange); fieldWidthMax.DefaultValue = 5; fieldWidthMax.Getter = (x) => x.m_fieldMax.Value.X; fieldWidthMax.Setter = (x, v) => { var fieldMax = x.FieldMax; if (fieldMax.X == v) { return; } fieldMax.X = v; x.FieldMax = fieldMax; }; fieldWidthMax.Writer = (x, result) => result.AppendInt32((int)x.m_fieldMax.Value.X).Append(" m"); fieldWidthMax.EnableActions(); MyTerminalControlFactory.AddControl(fieldWidthMax); var fieldHeightMin = new MyTerminalControlSlider <MySensorBlock>("Bottom", MySpaceTexts.BlockPropertyTitle_SensorFieldHeightMin, MySpaceTexts.BlockPropertyDescription_SensorFieldBottom); fieldHeightMin.SetLimits(block => 1, block => block.MaxRange); fieldHeightMin.DefaultValue = 5; fieldHeightMin.Getter = (x) => - x.m_fieldMin.Value.Y; fieldHeightMin.Setter = (x, v) => { var fieldMin = x.FieldMin; if (fieldMin.Y == -v) { return; } fieldMin.Y = -v; x.FieldMin = fieldMin; }; fieldHeightMin.Writer = (x, result) => result.AppendInt32((int)-x.m_fieldMin.Value.Y).Append(" m"); fieldHeightMin.EnableActions(); MyTerminalControlFactory.AddControl(fieldHeightMin); var fieldHeightMax = new MyTerminalControlSlider <MySensorBlock>("Top", MySpaceTexts.BlockPropertyTitle_SensorFieldHeightMax, MySpaceTexts.BlockPropertyDescription_SensorFieldTop); fieldHeightMax.SetLimits(block => 1, block => block.MaxRange); fieldHeightMax.DefaultValue = 5; fieldHeightMax.Getter = (x) => x.m_fieldMax.Value.Y; fieldHeightMax.Setter = (x, v) => { var fieldMax = x.FieldMax; if (fieldMax.Y == v) { return; } fieldMax.Y = v; x.FieldMax = fieldMax; }; fieldHeightMax.Writer = (x, result) => result.AppendInt32((int)x.m_fieldMax.Value.Y).Append(" m"); fieldHeightMax.EnableActions(); MyTerminalControlFactory.AddControl(fieldHeightMax); var fieldDepthMax = new MyTerminalControlSlider <MySensorBlock>("Back", MySpaceTexts.BlockPropertyTitle_SensorFieldDepthMax, MySpaceTexts.BlockPropertyDescription_SensorFieldBack); fieldDepthMax.SetLimits(block => 1, block => block.MaxRange); fieldDepthMax.DefaultValue = 5; fieldDepthMax.Getter = (x) => x.m_fieldMax.Value.Z; fieldDepthMax.Setter = (x, v) => { var fieldMax = x.FieldMax; if (fieldMax.Z == v) { return; } fieldMax.Z = v; x.FieldMax = fieldMax; }; fieldDepthMax.Writer = (x, result) => result.AppendInt32((int)x.m_fieldMax.Value.Z).Append(" m"); fieldDepthMax.EnableActions(); MyTerminalControlFactory.AddControl(fieldDepthMax); var fieldDepthMin = new MyTerminalControlSlider <MySensorBlock>("Front", MySpaceTexts.BlockPropertyTitle_SensorFieldDepthMin, MySpaceTexts.BlockPropertyDescription_SensorFieldFront); fieldDepthMin.SetLimits(block => 1, block => block.MaxRange); fieldDepthMin.DefaultValue = 5; fieldDepthMin.Getter = (x) => - x.m_fieldMin.Value.Z; fieldDepthMin.Setter = (x, v) => { var fieldMin = x.FieldMin; if (fieldMin.Z == -v) { return; } fieldMin.Z = -v; x.FieldMin = fieldMin; }; fieldDepthMin.Writer = (x, result) => result.AppendInt32((int)-x.m_fieldMin.Value.Z).Append(" m"); fieldDepthMin.EnableActions(); MyTerminalControlFactory.AddControl(fieldDepthMin); var separatorFilters = new MyTerminalControlSeparator <MySensorBlock>(); MyTerminalControlFactory.AddControl(separatorFilters); var detectPlayProximitySoundSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Audible Proximity Alert", MySpaceTexts.BlockPropertyTitle_SensorPlaySound, MySpaceTexts.BlockPropertyTitle_SensorPlaySound); detectPlayProximitySoundSwitch.Getter = (x) => x.PlayProximitySound; detectPlayProximitySoundSwitch.Setter = (x, v) => { x.PlayProximitySound = v; }; MyTerminalControlFactory.AddControl(detectPlayProximitySoundSwitch); var detectPlayersSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Players", MySpaceTexts.BlockPropertyTitle_SensorDetectPlayers, MySpaceTexts.BlockPropertyTitle_SensorDetectPlayers); detectPlayersSwitch.Getter = (x) => x.DetectPlayers; detectPlayersSwitch.Setter = (x, v) => { x.DetectPlayers = v; }; detectPlayersSwitch.EnableToggleAction(MyTerminalActionIcons.CHARACTER_TOGGLE); detectPlayersSwitch.EnableOnOffActions(MyTerminalActionIcons.CHARACTER_ON, MyTerminalActionIcons.CHARACTER_OFF); MyTerminalControlFactory.AddControl(detectPlayersSwitch); var detectFloatingObjectsSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Floating Objects", MySpaceTexts.BlockPropertyTitle_SensorDetectFloatingObjects, MySpaceTexts.BlockPropertyTitle_SensorDetectFloatingObjects); detectFloatingObjectsSwitch.Getter = (x) => x.DetectFloatingObjects; detectFloatingObjectsSwitch.Setter = (x, v) => { x.DetectFloatingObjects = v; }; detectFloatingObjectsSwitch.EnableToggleAction(MyTerminalActionIcons.MOVING_OBJECT_TOGGLE); detectFloatingObjectsSwitch.EnableOnOffActions(MyTerminalActionIcons.MOVING_OBJECT_ON, MyTerminalActionIcons.MOVING_OBJECT_OFF); MyTerminalControlFactory.AddControl(detectFloatingObjectsSwitch); var detectSmallShipsSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Small Ships", MySpaceTexts.BlockPropertyTitle_SensorDetectSmallShips, MySpaceTexts.BlockPropertyTitle_SensorDetectSmallShips); detectSmallShipsSwitch.Getter = (x) => x.DetectSmallShips; detectSmallShipsSwitch.Setter = (x, v) => { x.DetectSmallShips = v; }; detectSmallShipsSwitch.EnableToggleAction(MyTerminalActionIcons.SMALLSHIP_TOGGLE); detectSmallShipsSwitch.EnableOnOffActions(MyTerminalActionIcons.SMALLSHIP_ON, MyTerminalActionIcons.SMALLSHIP_OFF); MyTerminalControlFactory.AddControl(detectSmallShipsSwitch); var detectLargeShipsSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Large Ships", MySpaceTexts.BlockPropertyTitle_SensorDetectLargeShips, MySpaceTexts.BlockPropertyTitle_SensorDetectLargeShips); detectLargeShipsSwitch.Getter = (x) => x.DetectLargeShips; detectLargeShipsSwitch.Setter = (x, v) => { x.DetectLargeShips = v; }; detectLargeShipsSwitch.EnableToggleAction(MyTerminalActionIcons.LARGESHIP_TOGGLE); detectLargeShipsSwitch.EnableOnOffActions(MyTerminalActionIcons.LARGESHIP_ON, MyTerminalActionIcons.LARGESHIP_OFF); MyTerminalControlFactory.AddControl(detectLargeShipsSwitch); var detectStationsSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Stations", MySpaceTexts.BlockPropertyTitle_SensorDetectStations, MySpaceTexts.BlockPropertyTitle_SensorDetectStations); detectStationsSwitch.Getter = (x) => x.DetectStations; detectStationsSwitch.Setter = (x, v) => { x.DetectStations = v; }; detectStationsSwitch.EnableToggleAction(MyTerminalActionIcons.STATION_TOGGLE); detectStationsSwitch.EnableOnOffActions(MyTerminalActionIcons.STATION_ON, MyTerminalActionIcons.STATION_OFF); MyTerminalControlFactory.AddControl(detectStationsSwitch); var detectAsteroidsSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Asteroids", MySpaceTexts.BlockPropertyTitle_SensorDetectAsteroids, MySpaceTexts.BlockPropertyTitle_SensorDetectAsteroids); detectAsteroidsSwitch.Getter = (x) => x.DetectAsteroids; detectAsteroidsSwitch.Setter = (x, v) => { x.DetectAsteroids = v; }; detectAsteroidsSwitch.EnableToggleAction(); detectAsteroidsSwitch.EnableOnOffActions(); MyTerminalControlFactory.AddControl(detectAsteroidsSwitch); var separatorFactionFilters = new MyTerminalControlSeparator <MySensorBlock>(); MyTerminalControlFactory.AddControl(separatorFactionFilters); var detectOwnerSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Owner", MySpaceTexts.BlockPropertyTitle_SensorDetectOwner, MySpaceTexts.BlockPropertyTitle_SensorDetectOwner); detectOwnerSwitch.Getter = (x) => x.DetectOwner; detectOwnerSwitch.Setter = (x, v) => { x.DetectOwner = v; }; detectOwnerSwitch.EnableToggleAction(); detectOwnerSwitch.EnableOnOffActions(); MyTerminalControlFactory.AddControl(detectOwnerSwitch); var detectFriendlySwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Friendly", MySpaceTexts.BlockPropertyTitle_SensorDetectFriendly, MySpaceTexts.BlockPropertyTitle_SensorDetectFriendly); detectFriendlySwitch.Getter = (x) => x.DetectFriendly; detectFriendlySwitch.Setter = (x, v) => { x.DetectFriendly = v; }; detectFriendlySwitch.EnableToggleAction(); detectFriendlySwitch.EnableOnOffActions(); MyTerminalControlFactory.AddControl(detectFriendlySwitch); var detectNeutralSwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Neutral", MySpaceTexts.BlockPropertyTitle_SensorDetectNeutral, MySpaceTexts.BlockPropertyTitle_SensorDetectNeutral); detectNeutralSwitch.Getter = (x) => x.DetectNeutral; detectNeutralSwitch.Setter = (x, v) => { x.DetectNeutral = v; }; detectNeutralSwitch.EnableToggleAction(); detectNeutralSwitch.EnableOnOffActions(); MyTerminalControlFactory.AddControl(detectNeutralSwitch); var detectEnemySwitch = new MyTerminalControlOnOffSwitch <MySensorBlock>("Detect Enemy", MySpaceTexts.BlockPropertyTitle_SensorDetectEnemy, MySpaceTexts.BlockPropertyTitle_SensorDetectEnemy); detectEnemySwitch.Getter = (x) => x.DetectEnemy; detectEnemySwitch.Setter = (x, v) => { x.DetectEnemy = v; }; detectEnemySwitch.EnableToggleAction(); detectEnemySwitch.EnableOnOffActions(); MyTerminalControlFactory.AddControl(detectEnemySwitch); }
protected override void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyGravityGenerator>()) { return; } base.CreateTerminalControls(); var fieldWidth = new MyTerminalControlSlider <MyGravityGenerator>("Width", MySpaceTexts.BlockPropertyTitle_GravityFieldWidth, MySpaceTexts.BlockPropertyDescription_GravityFieldWidth); fieldWidth.SetLimits((x) => x.BlockDefinition.MinFieldSize.X, (x) => x.BlockDefinition.MaxFieldSize.X); fieldWidth.DefaultValue = 150; fieldWidth.Getter = (x) => x.m_fieldSize.Value.X; fieldWidth.Setter = (x, v) => { Vector3 fieldSize = x.m_fieldSize; fieldSize.X = v; x.m_fieldSize.Value = fieldSize; }; fieldWidth.Writer = (x, result) => result.Append(MyValueFormatter.GetFormatedFloat(x.m_fieldSize.Value.X, NUM_DECIMALS)).Append(" m"); fieldWidth.EnableActions(); MyTerminalControlFactory.AddControl(fieldWidth); var fieldHeight = new MyTerminalControlSlider <MyGravityGenerator>("Height", MySpaceTexts.BlockPropertyTitle_GravityFieldHeight, MySpaceTexts.BlockPropertyDescription_GravityFieldHeight); fieldHeight.SetLimits((x) => x.BlockDefinition.MinFieldSize.Y, (x) => x.BlockDefinition.MaxFieldSize.Y); fieldHeight.DefaultValue = 150; fieldHeight.Getter = (x) => x.m_fieldSize.Value.Y; fieldHeight.Setter = (x, v) => { Vector3 fieldSize = x.m_fieldSize; fieldSize.Y = v; x.m_fieldSize.Value = fieldSize; }; fieldHeight.Writer = (x, result) => result.Append(MyValueFormatter.GetFormatedFloat(x.m_fieldSize.Value.Y, NUM_DECIMALS)).Append(" m"); fieldHeight.EnableActions(); MyTerminalControlFactory.AddControl(fieldHeight); var fieldDepth = new MyTerminalControlSlider <MyGravityGenerator>("Depth", MySpaceTexts.BlockPropertyTitle_GravityFieldDepth, MySpaceTexts.BlockPropertyDescription_GravityFieldDepth); fieldDepth.SetLimits((x) => x.BlockDefinition.MinFieldSize.Z, (x) => x.BlockDefinition.MaxFieldSize.Z); fieldDepth.DefaultValue = 150; fieldDepth.Getter = (x) => x.m_fieldSize.Value.Z; fieldDepth.Setter = (x, v) => { Vector3 fieldSize = x.m_fieldSize; fieldSize.Z = v; x.m_fieldSize.Value = fieldSize; }; fieldDepth.Writer = (x, result) => result.Append(MyValueFormatter.GetFormatedFloat(x.m_fieldSize.Value.Z, NUM_DECIMALS)).Append(" m"); fieldDepth.EnableActions(); MyTerminalControlFactory.AddControl(fieldDepth); var gravityAcceleration = new MyTerminalControlSlider <MyGravityGenerator>("Gravity", MySpaceTexts.BlockPropertyTitle_GravityAcceleration, MySpaceTexts.BlockPropertyDescription_GravityAcceleration); gravityAcceleration.SetLimits((x) => x.BlockDefinition.MinGravityAcceleration, (x) => x.BlockDefinition.MaxGravityAcceleration); gravityAcceleration.DefaultValue = MyGravityProviderSystem.G; gravityAcceleration.Getter = (x) => x.GravityAcceleration; gravityAcceleration.Setter = (x, v) => x.GravityAcceleration = v; gravityAcceleration.Writer = (x, result) => result.AppendDecimal(x.GravityAcceleration / MyGravityProviderSystem.G, 2).Append(" G"); gravityAcceleration.EnableActions(); MyTerminalControlFactory.AddControl(gravityAcceleration); }
protected override void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyTextPanel>()) { return; } base.CreateTerminalControls(); var publicTitleField = new MyTerminalControlTextbox <MyTextPanel>("PublicTitle", MySpaceTexts.BlockPropertyTitle_TextPanelPublicTitle, MySpaceTexts.Blank); publicTitleField.Getter = (x) => x.PublicTitle; publicTitleField.Setter = (x, v) => x.SendChangeTitleMessage(v, true); publicTitleField.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(publicTitleField); var showPublicButton = new MyTerminalControlButton <MyTextPanel>("ShowPublicTextPanel", MySpaceTexts.BlockPropertyTitle_TextPanelShowPublicTextPanel, MySpaceTexts.Blank, (x) => x.OpenWindow(true, true, true)); showPublicButton.Enabled = (x) => !x.IsOpen; showPublicButton.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(showPublicButton); MyTerminalControlFactory.AddControl(new MyTerminalControlSeparator <MyTextPanel>()); var titleField = new MyTerminalControlTextbox <MyTextPanel>("Title", MySpaceTexts.BlockPropertyTitle_TextPanelTitle, MySpaceTexts.Blank); titleField.Getter = (x) => x.PrivateTitle; titleField.Setter = (x, v) => x.SendChangeTitleMessage(v, false); titleField.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(titleField); var showButton = new MyTerminalControlButton <MyTextPanel>("ShowTextPanel", MySpaceTexts.BlockPropertyTitle_TextPanelShowTextPanel, MySpaceTexts.Blank, (x) => x.OpenWindow(true, true, false)); showButton.Enabled = (x) => !x.IsOpen; showButton.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(showButton); var comboAccess = new MyTerminalControlCombobox <MyTextPanel>("Access", MySpaceTexts.BlockPropertyTitle_TextPanelAccessType, MySpaceTexts.Blank); comboAccess.ComboBoxContent = (x) => FillComboBoxContent(x); comboAccess.Getter = (x) => (long)x.AccessFlag; comboAccess.Setter = (x, y) => x.AccessFlag = (TextPanelAccessFlag)y; comboAccess.Enabled = (x) => x.OwnerId != 0; comboAccess.SetSerializerRange(0, (int)TextPanelAccessFlag.READ_AND_WRITE_ALL); MyTerminalControlFactory.AddControl(comboAccess); MyTerminalControlFactory.AddControl(new MyTerminalControlSeparator <MyTextPanel>()); var showTextOnScreen = new MyTerminalControlCombobox <MyTextPanel>("ShowTextOnScreen", MySpaceTexts.BlockPropertyTitle_ShowTextOnScreen, MySpaceTexts.Blank); showTextOnScreen.ComboBoxContent = (x) => FillShowOnScreenComboBoxContent(x); showTextOnScreen.Getter = (x) => (long)x.ShowTextFlag; showTextOnScreen.Setter = (x, y) => x.ShowTextFlag = (ShowTextOnScreenFlag)y; showTextOnScreen.Enabled = (x) => x.OwnerId != 0; MyTerminalControlFactory.AddControl(showTextOnScreen); var changeFontSlider = new MyTerminalControlSlider <MyTextPanel>("FontSize", MySpaceTexts.BlockPropertyTitle_LCDScreenTextSize, MySpaceTexts.Blank); changeFontSlider.SetLimits(0.1f, 10.0f); changeFontSlider.DefaultValue = 1.0f; changeFontSlider.Getter = (x) => x.FontSize; changeFontSlider.Setter = (x, v) => x.FontSize = v; changeFontSlider.Writer = (x, result) => result.Append(MyValueFormatter.GetFormatedFloat(x.FontSize, 1)); changeFontSlider.EnableActions(); MyTerminalControlFactory.AddControl(changeFontSlider); var fontColor = new MyTerminalControlColor <MyTextPanel>("FontColor", MySpaceTexts.BlockPropertyTitle_FontColor); fontColor.Getter = (x) => x.FontColor; fontColor.Setter = (x, v) => x.FontColor = v; MyTerminalControlFactory.AddControl(fontColor); var backgroundColor = new MyTerminalControlColor <MyTextPanel>("BackgroundColor", MySpaceTexts.BlockPropertyTitle_BackgroundColor); backgroundColor.Getter = (x) => x.BackgroundColor; backgroundColor.Setter = (x, v) => x.BackgroundColor = v; MyTerminalControlFactory.AddControl(backgroundColor); MyTerminalControlFactory.AddControl(new MyTerminalControlSeparator <MyTextPanel>()); var imagesList = new MyTerminalControlListbox <MyTextPanel>("ImageList", MySpaceTexts.BlockPropertyTitle_LCDScreenDefinitionsTextures, MySpaceTexts.Blank, true); imagesList.ListContent = (x, list1, list2) => x.FillListContent(list1, list2); imagesList.ItemSelected = (x, y) => x.SelectImageToDraw(y); MyTerminalControlFactory.AddControl(imagesList); var addToSelectionButton = new MyTerminalControlButton <MyTextPanel>("SelectTextures", MySpaceTexts.BlockPropertyTitle_LCDScreenSelectTextures, MySpaceTexts.Blank, (x) => x.AddImagesToSelection()); MyTerminalControlFactory.AddControl(addToSelectionButton); var changeIntervalSlider = new MyTerminalControlSlider <MyTextPanel>("ChangeIntervalSlider", MySpaceTexts.BlockPropertyTitle_LCDScreenRefreshInterval, MySpaceTexts.Blank); changeIntervalSlider.SetLimits(0, 30.0f); changeIntervalSlider.DefaultValue = 0; changeIntervalSlider.Getter = (x) => x.ChangeInterval; changeIntervalSlider.Setter = (x, v) => x.ChangeInterval = v; changeIntervalSlider.Writer = (x, result) => result.Append(MyValueFormatter.GetFormatedFloat(x.ChangeInterval, NUM_DECIMALS)).Append(" s"); changeIntervalSlider.EnableActions(); MyTerminalControlFactory.AddControl(changeIntervalSlider); var selectedImagesList = new MyTerminalControlListbox <MyTextPanel>("SelectedImageList", MySpaceTexts.BlockPropertyTitle_LCDScreenSelectedTextures, MySpaceTexts.Blank, true); selectedImagesList.ListContent = (x, list1, list2) => x.FillSelectedListContent(list1, list2); selectedImagesList.ItemSelected = (x, y) => x.SelectImage(y); MyTerminalControlFactory.AddControl(selectedImagesList); var removeSelectedButton = new MyTerminalControlButton <MyTextPanel>("RemoveSelectedTextures", MySpaceTexts.BlockPropertyTitle_LCDScreenRemoveSelectedTextures, MySpaceTexts.Blank, (x) => x.RemoveImagesFromSelection()); MyTerminalControlFactory.AddControl(removeSelectedButton); }