public StaticVariables() { Separator = new MyTerminalControlSeparator <MyCockpit>(); AeroShow = new MyTerminalControlCheckbox <MyCockpit>("Arms_AeroShow", MyStringId.GetOrCompute("Draw Air Resistance"), MyStringId.GetOrCompute("Draw ARMS calculations of air resistance.")); AeroShow.Getter = Get_AeroTerminal; AeroShow.Setter = Set_AeroTerminal; DirectionSelector = MyTerminalControls.Static.CreateControl <IMyTerminalControlCombobox, IMyCockpit>("Arms_AeroDirection"); DirectionSelector.ComboBoxContent = ListDirections; DirectionSelector.Getter = DirectionGetter; DirectionSelector.Setter = DirectionSetter; DirectionSelector.Title = MyStringId.GetOrCompute("Direction of Movement"); EnableHelper = new MyTerminalControlCheckbox <MyCockpit>("Arms_FlightHelper", MyStringId.GetOrCompute("Flight Control Assist"), MyStringId.GetOrCompute("Enable ARMS Flight Control Assistance for atmospheric flight")); EnableHelper.Getter = Get_Helper; EnableHelper.Setter = Set_Helper; AileronButton = GetRotorButton("Aileron"); AileronButton.Action = RotorButtonAileron; ElevatorButton = GetRotorButton("Elevator"); ElevatorButton.Action = RotorButtonElevator; RudderButton = GetRotorButton("Rudder"); RudderButton.Action = RotorButtonRudder; }
static MyLargeConveyorTurretBase() { var separator = new MyTerminalControlSeparator<MyLargeConveyorTurretBase>(); MyTerminalControlFactory.AddControl(separator); var useConvSystem = new MyTerminalControlOnOffSwitch<MyLargeConveyorTurretBase>("UseConveyor", MySpaceTexts.Terminal_UseConveyorSystem); useConvSystem.Getter = (x) => (x as IMyInventoryOwner).UseConveyorSystem; useConvSystem.Setter = (x, v) => MySyncConveyors.SendChangeUseConveyorSystemRequest(x.EntityId, v); useConvSystem.EnableToggleAction(); MyTerminalControlFactory.AddControl(useConvSystem); }
static MyLargeConveyorTurretBase() { var separator = new MyTerminalControlSeparator <MyLargeConveyorTurretBase>(); MyTerminalControlFactory.AddControl(separator); var useConvSystem = new MyTerminalControlOnOffSwitch <MyLargeConveyorTurretBase>("UseConveyor", MySpaceTexts.Terminal_UseConveyorSystem); useConvSystem.Getter = (x) => (x as IMyInventoryOwner).UseConveyorSystem; useConvSystem.Setter = (x, v) => MySyncConveyors.SendChangeUseConveyorSystemRequest(x.EntityId, v); useConvSystem.EnableToggleAction(); MyTerminalControlFactory.AddControl(useConvSystem); }
static MyLargeConveyorTurretBase() { var separator = new MyTerminalControlSeparator <MyLargeConveyorTurretBase>(); MyTerminalControlFactory.AddControl(separator); var useConvSystem = new MyTerminalControlOnOffSwitch <MyLargeConveyorTurretBase>("UseConveyor", MySpaceTexts.Terminal_UseConveyorSystem); useConvSystem.Getter = (x) => (x).UseConveyorSystem; useConvSystem.Setter = (x, v) => x.UseConveyorSystem = v; useConvSystem.EnableToggleAction(); MyTerminalControlFactory.AddControl(useConvSystem); }
static void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated<MyLargeConveyorTurretBase>()) return; var separator = new MyTerminalControlSeparator<MyLargeConveyorTurretBase>(); MyTerminalControlFactory.AddControl(separator); var useConvSystem = new MyTerminalControlOnOffSwitch<MyLargeConveyorTurretBase>("UseConveyor", MySpaceTexts.Terminal_UseConveyorSystem); useConvSystem.Getter = (x) => (x).UseConveyorSystem; useConvSystem.Setter = (x, v) => x.UseConveyorSystem = v; useConvSystem.EnableToggleAction(); MyTerminalControlFactory.AddControl(useConvSystem); }
protected override void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated <MyLargeConveyorTurretBase>()) { return; } base.CreateTerminalControls(); var separator = new MyTerminalControlSeparator <MyLargeConveyorTurretBase>(); MyTerminalControlFactory.AddControl(separator); var useConvSystem = new MyTerminalControlOnOffSwitch <MyLargeConveyorTurretBase>("UseConveyor", MySpaceTexts.Terminal_UseConveyorSystem); useConvSystem.Getter = (x) => (x).UseConveyorSystem; useConvSystem.Setter = (x, v) => x.UseConveyorSystem = v; useConvSystem.EnableToggleAction(); MyTerminalControlFactory.AddControl(useConvSystem); }
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); }
static void CreateTerminalControls() { if (MyTerminalControlFactory.AreControlsCreated<MySensorBlock>()) return; 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<MyRemoteControl>()) return; base.CreateTerminalControls(); var controlBtn = new MyTerminalControlButton<MyRemoteControl>("Control", MySpaceTexts.ControlRemote, MySpaceTexts.Blank, (b) => b.RequestControl()); controlBtn.Enabled = r => r.CanControl(); controlBtn.SupportsMultipleBlocks = false; var action = controlBtn.EnableAction(MyTerminalActionIcons.TOGGLE); if (action != null) { action.InvalidToolbarTypes = new List<MyToolbarType> { MyToolbarType.ButtonPanel }; action.ValidForGroups = false; } MyTerminalControlFactory.AddControl(controlBtn); var autoPilotSeparator = new MyTerminalControlSeparator<MyRemoteControl>(); MyTerminalControlFactory.AddControl(autoPilotSeparator); var autoPilot = new MyTerminalControlOnOffSwitch<MyRemoteControl>("AutoPilot", MySpaceTexts.BlockPropertyTitle_AutoPilot, MySpaceTexts.Blank); autoPilot.Getter = (x) => x.m_autoPilotEnabled; autoPilot.Setter = (x, v) => x.SetAutoPilotEnabled(v); autoPilot.Enabled = r => r.CanEnableAutoPilot(); autoPilot.EnableToggleAction(); autoPilot.EnableOnOffActions(); MyTerminalControlFactory.AddControl(autoPilot); var collisionAv = new MyTerminalControlOnOffSwitch<MyRemoteControl>("CollisionAvoidance", MySpaceTexts.BlockPropertyTitle_CollisionAvoidance, MySpaceTexts.Blank); collisionAv.Getter = (x) => x.m_useCollisionAvoidance; collisionAv.Setter = (x, v) => x.SetCollisionAvoidance(v); collisionAv.Enabled = r => true; collisionAv.EnableToggleAction(); collisionAv.EnableOnOffActions(); MyTerminalControlFactory.AddControl(collisionAv); var dockignMode = new MyTerminalControlOnOffSwitch<MyRemoteControl>("DockingMode", MySpaceTexts.BlockPropertyTitle_EnableDockingMode, MySpaceTexts.Blank); dockignMode.Getter = (x) => x.m_dockingModeEnabled; dockignMode.Setter = (x, v) => x.SetDockingMode(v); dockignMode.Enabled = r => r.IsWorking; dockignMode.EnableToggleAction(); dockignMode.EnableOnOffActions(); MyTerminalControlFactory.AddControl(dockignMode); var cameraList = new MyTerminalControlCombobox<MyRemoteControl>("CameraList", MySpaceTexts.BlockPropertyTitle_AssignedCamera, MySpaceTexts.Blank); cameraList.ComboBoxContentWithBlock = (x, list) => x.FillCameraComboBoxContent(list); cameraList.Getter = (x) => (long)x.m_bindedCamera; cameraList.Setter = (x, y) => x.m_bindedCamera.Value = y; MyTerminalControlFactory.AddControl(cameraList); m_cameraList = cameraList; var flightMode = new MyTerminalControlCombobox<MyRemoteControl>("FlightMode", MySpaceTexts.BlockPropertyTitle_FlightMode, MySpaceTexts.Blank); flightMode.ComboBoxContent = (x) => FillFlightModeCombo(x); flightMode.Getter = (x) => (long)x.m_currentFlightMode.Value; flightMode.Setter = (x, v) => x.ChangeFlightMode((FlightMode)v); flightMode.SetSerializerRange((int)MyEnum<FlightMode>.Range.Min, (int)MyEnum<FlightMode>.Range.Max); MyTerminalControlFactory.AddControl(flightMode); var directionCombo = new MyTerminalControlCombobox<MyRemoteControl>("Direction", MySpaceTexts.BlockPropertyTitle_ForwardDirection, MySpaceTexts.Blank); directionCombo.ComboBoxContent = (x) => FillDirectionCombo(x); directionCombo.Getter = (x) => (long)x.m_currentDirection.Value; directionCombo.Setter = (x, v) => x.ChangeDirection((Base6Directions.Direction)v); MyTerminalControlFactory.AddControl(directionCombo); if (MyFakes.ENABLE_VR_REMOTE_BLOCK_AUTOPILOT_SPEED_LIMIT) { var sliderSpeedLimit = new MyTerminalControlSlider<MyRemoteControl>("SpeedLimit", MySpaceTexts.BlockPropertyTitle_RemoteBlockSpeedLimit, MySpaceTexts.BlockPropertyTitle_RemoteBlockSpeedLimit); sliderSpeedLimit.SetLimits(1, 200); sliderSpeedLimit.DefaultValue = MyObjectBuilder_RemoteControl.DEFAULT_AUTOPILOT_SPEED_LIMIT; sliderSpeedLimit.Getter = (x) => x.m_autopilotSpeedLimit; sliderSpeedLimit.Setter = (x, v) => x.m_autopilotSpeedLimit.Value = v; sliderSpeedLimit.Writer = (x, sb) => sb.Append(MyValueFormatter.GetFormatedFloat(x.m_autopilotSpeedLimit, 0)); sliderSpeedLimit.EnableActions(); MyTerminalControlFactory.AddControl(sliderSpeedLimit); } var waypointList = new MyTerminalControlListbox<MyRemoteControl>("WaypointList", MySpaceTexts.BlockPropertyTitle_Waypoints, MySpaceTexts.Blank, true); waypointList.ListContent = (x, list1, list2) => x.FillWaypointList(list1, list2); waypointList.ItemSelected = (x, y) => x.SelectWaypoint(y); if (!MySandboxGame.IsDedicated) { m_waypointGuiControl = (MyGuiControlListbox)((MyGuiControlBlockProperty)waypointList.GetGuiControl()).PropertyControl; } MyTerminalControlFactory.AddControl(waypointList); var toolbarButton = new MyTerminalControlButton<MyRemoteControl>("Open Toolbar", MySpaceTexts.BlockPropertyTitle_AutoPilotToolbarOpen, MySpaceTexts.BlockPropertyPopup_AutoPilotToolbarOpen, delegate(MyRemoteControl self) { var actions = self.m_selectedWaypoints[0].Actions; if (actions != null) { for (int i = 0; i < actions.Length; i++) { if (actions[i] != null) { self.m_actionToolbar.SetItemAtIndex(i, actions[i]); } } } self.m_actionToolbar.ItemChanged += self.Toolbar_ItemChanged; if (MyGuiScreenCubeBuilder.Static == null) { MyToolbarComponent.CurrentToolbar = self.m_actionToolbar; MyGuiScreenBase screen = MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.ToolbarConfigScreen, 0, self); MyToolbarComponent.AutoUpdate = false; screen.Closed += (source) => { MyToolbarComponent.AutoUpdate = true; self.m_actionToolbar.ItemChanged -= self.Toolbar_ItemChanged; self.m_actionToolbar.Clear(); }; MyGuiSandbox.AddScreen(screen); } }); toolbarButton.Enabled = r => r.m_selectedWaypoints.Count == 1; toolbarButton.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(toolbarButton); var removeBtn = new MyTerminalControlButton<MyRemoteControl>("RemoveWaypoint", MySpaceTexts.BlockActionTitle_RemoveWaypoint, MySpaceTexts.Blank, (b) => b.RemoveWaypoints()); removeBtn.Enabled = r => r.CanRemoveWaypoints(); removeBtn.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(removeBtn); var moveUp = new MyTerminalControlButton<MyRemoteControl>("MoveUp", MySpaceTexts.BlockActionTitle_MoveWaypointUp, MySpaceTexts.Blank, (b) => b.MoveWaypointsUp()); moveUp.Enabled = r => r.CanMoveWaypointsUp(); moveUp.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(moveUp); var moveDown = new MyTerminalControlButton<MyRemoteControl>("MoveDown", MySpaceTexts.BlockActionTitle_MoveWaypointDown, MySpaceTexts.Blank, (b) => b.MoveWaypointsDown()); moveDown.Enabled = r => r.CanMoveWaypointsDown(); moveDown.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(moveDown); var addButton = new MyTerminalControlButton<MyRemoteControl>("AddWaypoint", MySpaceTexts.BlockActionTitle_AddWaypoint, MySpaceTexts.Blank, (b) => b.AddWaypoints()); addButton.Enabled = r => r.CanAddWaypoints(); addButton.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(addButton); var gpsList = new MyTerminalControlListbox<MyRemoteControl>("GpsList", MySpaceTexts.BlockPropertyTitle_GpsLocations, MySpaceTexts.Blank, true); gpsList.ListContent = (x, list1, list2) => x.FillGpsList(list1, list2); gpsList.ItemSelected = (x, y) => x.SelectGps(y); if (!MySandboxGame.IsDedicated) { m_gpsGuiControl = (MyGuiControlListbox)((MyGuiControlBlockProperty)gpsList.GetGuiControl()).PropertyControl; } MyTerminalControlFactory.AddControl(gpsList); foreach (var direction in m_directionNames) { var setDirectionAction = new MyTerminalAction<MyRemoteControl>(MyTexts.Get(direction.Value).ToString(), MyTexts.Get(direction.Value), OnAction, null, MyTerminalActionIcons.TOGGLE); setDirectionAction.Enabled = (b) => b.IsWorking; setDirectionAction.ParameterDefinitions.Add(TerminalActionParameter.Get((byte)direction.Key)); MyTerminalControlFactory.AddAction(setDirectionAction); } var resetButton = new MyTerminalControlButton<MyRemoteControl>("Reset", MySpaceTexts.BlockActionTitle_WaypointReset, MySpaceTexts.BlockActionTooltip_WaypointReset, (b) => b.ResetWaypoint()); resetButton.Enabled = r => r.IsWorking; resetButton.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(resetButton); var copyButton = new MyTerminalControlButton<MyRemoteControl>("Copy", MySpaceTexts.BlockActionTitle_RemoteCopy, MySpaceTexts.Blank, (b) => b.CopyAutopilotSetup()); copyButton.Enabled = r => r.IsWorking; copyButton.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(copyButton); var pasteButton = new MyTerminalControlButton<MyRemoteControl>("Paste", MySpaceTexts.BlockActionTitle_RemotePaste, MySpaceTexts.Blank, (b) => b.PasteAutopilotSetup()); pasteButton.Enabled = r => r.IsWorking && MyRemoteControl.m_clipboard != null; pasteButton.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(pasteButton); }
static MySensorBlock() { 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.X; fieldWidthMin.Setter = (x, v) => { var fieldMin = x.FieldMin; fieldMin.X = -v; x.FieldMin = fieldMin; (x.SyncObject as MySyncSensorBlock).SendChangeSensorMinRequest(ref fieldMin); }; fieldWidthMin.Writer = (x, result) => result.AppendInt32((int)-x.m_fieldMin.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.X; fieldWidthMax.Setter = (x, v) => { var fieldMax = x.FieldMax; fieldMax.X = v; x.FieldMax = fieldMax; (x.SyncObject as MySyncSensorBlock).SendChangeSensorMaxRequest(ref fieldMax); }; fieldWidthMax.Writer = (x, result) => result.AppendInt32((int)x.m_fieldMax.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.Y; fieldHeightMin.Setter = (x, v) => { var fieldMin = x.FieldMin; fieldMin.Y = -v; x.FieldMin = fieldMin; (x.SyncObject as MySyncSensorBlock).SendChangeSensorMinRequest(ref fieldMin); }; fieldHeightMin.Writer = (x, result) => result.AppendInt32((int)-x.m_fieldMin.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.Y; fieldHeightMax.Setter = (x, v) => { var fieldMax = x.FieldMax; fieldMax.Y = v; x.FieldMax = fieldMax; (x.SyncObject as MySyncSensorBlock).SendChangeSensorMaxRequest(ref fieldMax); }; fieldHeightMax.Writer = (x, result) => result.AppendInt32((int)x.m_fieldMax.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.Z; fieldDepthMax.Setter = (x, v) => { var fieldMax = x.FieldMax; fieldMax.Z = v; x.FieldMax = fieldMax; (x.SyncObject as MySyncSensorBlock).SendChangeSensorMaxRequest(ref fieldMax); }; fieldDepthMax.Writer = (x, result) => result.AppendInt32((int)x.m_fieldMax.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.Z; fieldDepthMin.Setter = (x, v) => { var fieldMin = x.FieldMin; fieldMin.Z = -v; x.FieldMin = fieldMin; (x.SyncObject as MySyncSensorBlock).SendChangeSensorMinRequest(ref fieldMin); }; fieldDepthMin.Writer = (x, result) => result.AppendInt32((int)-x.m_fieldMin.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; (x.SyncObject as MySyncSensorBlock).SendChangeSensorPlaySoundRequest(x.PlayProximitySound); }; 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; (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters); }; 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; (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters); }; 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; (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters); }; 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; (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters); }; 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; (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters); }; 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; (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters); }; 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; (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters); }; 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; (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters); }; 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; (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters); }; 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; (x.SyncObject as MySyncSensorBlock).SendFiltersChangedRequest(x.Filters); }; detectEnemySwitch.EnableToggleAction(); detectEnemySwitch.EnableOnOffActions(); MyTerminalControlFactory.AddControl(detectEnemySwitch); }
static MyProjector() { if (!MyFakes.ENABLE_PROJECTOR_BLOCK) { return; } var blueprintBtn = new MyTerminalControlButton<MyProjector>("Blueprint", MySpaceTexts.Blueprints, MySpaceTexts.Blank, (p) => p.SelectBlueprint()); blueprintBtn.Enabled = (b) => b.CanProject(); blueprintBtn.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(blueprintBtn); var removeBtn = new MyTerminalControlButton<MyProjector>("Remove", MySpaceTexts.RemoveProjectionButton, MySpaceTexts.Blank, (p) => p.SyncObject.SendRemoveProjection()); removeBtn.Enabled = (b) => b.IsProjecting(); MyTerminalControlFactory.AddControl(removeBtn); var keepProjectionToggle = new MyTerminalControlCheckbox<MyProjector>("KeepProjection", MySpaceTexts.KeepProjectionToggle, MySpaceTexts.KeepProjectionTooltip); keepProjectionToggle.Getter = (x) => x.m_keepProjection; keepProjectionToggle.Setter = (x, v) => { x.SyncObject.SendNewKeepProjection(v); }; keepProjectionToggle.EnableAction(); keepProjectionToggle.Enabled = (b) => b.IsProjecting(); MyTerminalControlFactory.AddControl(keepProjectionToggle); //ShowOnlyBuildable var showOnlyBuildableBlockToggle = new MyTerminalControlCheckbox<MyProjector>("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); //HideArmorBlocks var hideArmorBlockToggle = new MyTerminalControlCheckbox<MyProjector>("HideArmorBlocks", MySpaceTexts.HideArmorBlockToggle, MySpaceTexts.HideArmorBlockTooltip); hideArmorBlockToggle.Getter = (x) => x.m_hideArmorBlock; hideArmorBlockToggle.Setter = (x, v) => { x.m_hideArmorBlock = v; x.OnOffsetsChanged(); }; hideArmorBlockToggle.Enabled = (b) => b.IsProjecting(); MyTerminalControlFactory.AddControl(hideArmorBlockToggle); //Position var offsetX = new MyTerminalControlSlider<MyProjector>("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<MyProjector>("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<MyProjector>("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<MyProjector>("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<MyProjector>("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<MyProjector>("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<MyProjector>(); scenarioSettingsSeparator.Visible = (p) => p.ScenarioSettingsEnabled(); MyTerminalControlFactory.AddControl(scenarioSettingsSeparator); var scenarioSettingsLabel = new MyTerminalControlLabel<MyProjector>("ScenarioLabel", MySpaceTexts.TerminalScenarioSettingsLabel); scenarioSettingsLabel.Visible = (p) => p.ScenarioSettingsEnabled(); MyTerminalControlFactory.AddControl(scenarioSettingsLabel); var spawnProjectionButton = new MyTerminalControlButton<MyProjector>("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<MyProjector>("InstantBuilding", MySpaceTexts.BlockPropertyTitle_Projector_InstantBuilding, MySpaceTexts.BlockPropertyTitle_Projector_InstantBuilding_Tooltip); instantBuildingCheckbox.Visible = (p) => p.ScenarioSettingsEnabled(); instantBuildingCheckbox.Enabled = (p) => p.CanEnableInstantBuilding(); instantBuildingCheckbox.Getter = (p) => p.m_instantBuildingEnabled; instantBuildingCheckbox.Setter = (p, v) => p.TrySetInstantBuilding(v); MyTerminalControlFactory.AddControl(instantBuildingCheckbox); var getOwnershipCheckbox = new MyTerminalControlCheckbox<MyProjector>("GetOwnership", MySpaceTexts.BlockPropertyTitle_Projector_GetOwnership, MySpaceTexts.BlockPropertiesTooltip_Projector_GetOwnership); getOwnershipCheckbox.Visible = (p) => p.ScenarioSettingsEnabled(); getOwnershipCheckbox.Enabled = (p) => p.CanEditInstantBuildingSettings(); getOwnershipCheckbox.Getter = (p) => p.m_getOwnershipFromProjector; getOwnershipCheckbox.Setter = (p, v) => p.TrySetGetOwnership(v); MyTerminalControlFactory.AddControl(getOwnershipCheckbox); var numberOfProjections = new MyTerminalControlSlider<MyProjector>("NumberOfProjections", MySpaceTexts.BlockPropertyTitle_Projector_NumberOfProjections, MySpaceTexts.BlockPropertyTitle_Projector_NumberOfProjections_Tooltip); numberOfProjections.Visible = (p) => p.ScenarioSettingsEnabled(); numberOfProjections.Enabled = (p) => p.CanEditInstantBuildingSettings(); numberOfProjections.Getter = (p) => p.m_maxNumberOfProjections; numberOfProjections.Setter = (p, v) => p.TryChangeNumberOfProjections(v); numberOfProjections.Writer = (p, s) => { if (p.m_maxNumberOfProjections == MAX_NUMBER_OF_PROJECTIONS) { s.AppendStringBuilder(MyTexts.Get(MySpaceTexts.ScreenTerminal_Infinite)); } else { s.AppendInt32(p.m_maxNumberOfProjections); } }; numberOfProjections.SetLogLimits(1, MAX_NUMBER_OF_PROJECTIONS); MyTerminalControlFactory.AddControl(numberOfProjections); var numberOfBlocks = new MyTerminalControlSlider<MyProjector>("NumberOfBlocks", MySpaceTexts.BlockPropertyTitle_Projector_BlocksPerProjection, MySpaceTexts.BlockPropertyTitle_Projector_BlocksPerProjection_Tooltip); numberOfBlocks.Visible = (p) => p.ScenarioSettingsEnabled(); numberOfBlocks.Enabled = (p) => p.CanEditInstantBuildingSettings(); numberOfBlocks.Getter = (p) => p.m_maxNumberOfBlocksPerProjection; numberOfBlocks.Setter = (p, v) => p.TryChangeMaxNumberOfBlocksPerProjection(v); numberOfBlocks.Writer = (p, s) => { if (p.m_maxNumberOfBlocksPerProjection == MAX_NUMBER_OF_BLOCKS) { s.AppendStringBuilder(MyTexts.Get(MySpaceTexts.ScreenTerminal_Infinite)); } else { s.AppendInt32(p.m_maxNumberOfBlocksPerProjection); } }; numberOfBlocks.SetLogLimits(1, MAX_NUMBER_OF_BLOCKS); MyTerminalControlFactory.AddControl(numberOfBlocks); }
static MyRemoteControl() { var controlBtn = new MyTerminalControlButton<MyRemoteControl>("Control", MySpaceTexts.ControlRemote, MySpaceTexts.Blank, (b) => b.RequestControl()); controlBtn.Enabled = r => r.CanControl(); controlBtn.SupportsMultipleBlocks = false; var action = controlBtn.EnableAction(MyTerminalActionIcons.TOGGLE); if (action != null) { action.InvalidToolbarTypes = new List<MyToolbarType> { MyToolbarType.ButtonPanel }; action.ValidForGroups = false; } MyTerminalControlFactory.AddControl(controlBtn); var autoPilotSeparator = new MyTerminalControlSeparator<MyRemoteControl>(); MyTerminalControlFactory.AddControl(autoPilotSeparator); var autoPilot = new MyTerminalControlOnOffSwitch<MyRemoteControl>("AutoPilot", MySpaceTexts.BlockPropertyTitle_AutoPilot, MySpaceTexts.Blank); autoPilot.Getter = (x) => x.m_autoPilotEnabled; autoPilot.Setter = (x, v) => x.SetAutoPilotEnabled(v); autoPilot.Enabled = r => r.CanEnableAutoPilot(); autoPilot.EnableToggleAction(); autoPilot.EnableOnOffActions(); MyTerminalControlFactory.AddControl(autoPilot); var dockignMode = new MyTerminalControlOnOffSwitch<MyRemoteControl>("DockingMode", MySpaceTexts.BlockPropertyTitle_EnableDockingMode, MySpaceTexts.Blank); dockignMode.Getter = (x) => x.m_dockingModeEnabled; dockignMode.Setter = (x, v) => x.SetDockingMode(v); dockignMode.Enabled = r => r.IsWorking; dockignMode.EnableToggleAction(); dockignMode.EnableOnOffActions(); MyTerminalControlFactory.AddControl(dockignMode); var flightMode = new MyTerminalControlCombobox<MyRemoteControl>("FlightMode", MySpaceTexts.BlockPropertyTitle_FlightMode, MySpaceTexts.Blank); flightMode.ComboBoxContent = (x) => FillFlightModeCombo(x); flightMode.Getter = (x) => (long)x.m_currentFlightMode; flightMode.Setter = (x, v) => x.ChangeFlightMode((FlightMode)v); MyTerminalControlFactory.AddControl(flightMode); var directionCombo = new MyTerminalControlCombobox<MyRemoteControl>("Direction", MySpaceTexts.BlockPropertyTitle_ForwardDirection, MySpaceTexts.Blank); directionCombo.ComboBoxContent = (x) => FillDirectionCombo(x); directionCombo.Getter = (x) => (long)x.m_currentDirection; directionCombo.Setter = (x, v) => x.ChangeDirection((Base6Directions.Direction)v); MyTerminalControlFactory.AddControl(directionCombo); var waypointList = new MyTerminalControlListbox<MyRemoteControl>("WaypointList", MySpaceTexts.BlockPropertyTitle_Waypoints, MySpaceTexts.Blank, true); waypointList.ListContent = (x, list1, list2) => x.FillWaypointList(list1, list2); waypointList.ItemSelected = (x, y) => x.SelectWaypoint(y); if (!MySandboxGame.IsDedicated) { m_waypointGuiControl = (MyGuiControlListbox)((MyGuiControlBlockProperty)waypointList.GetGuiControl()).PropertyControl; } MyTerminalControlFactory.AddControl(waypointList); var toolbarButton = new MyTerminalControlButton<MyRemoteControl>("Open Toolbar", MySpaceTexts.BlockPropertyTitle_AutoPilotToolbarOpen, MySpaceTexts.BlockPropertyPopup_AutoPilotToolbarOpen, delegate(MyRemoteControl self) { var actions = self.m_selectedWaypoints[0].Actions; if (actions != null) { for (int i = 0; i < actions.Length; i++) { if (actions[i] != null) { self.m_actionToolbar.SetItemAtIndex(i, actions[i]); } } } self.m_actionToolbar.ItemChanged += self.Toolbar_ItemChanged; if (MyGuiScreenCubeBuilder.Static == null) { MyToolbarComponent.CurrentToolbar = self.m_actionToolbar; MyGuiScreenBase screen = MyGuiSandbox.CreateScreen(MyPerGameSettings.GUI.ToolbarConfigScreen, 0, self); MyToolbarComponent.AutoUpdate = false; screen.Closed += (source) => { MyToolbarComponent.AutoUpdate = true; self.m_actionToolbar.ItemChanged -= self.Toolbar_ItemChanged; self.m_actionToolbar.Clear(); }; MyGuiSandbox.AddScreen(screen); } }); toolbarButton.Enabled = r => r.m_selectedWaypoints.Count == 1; toolbarButton.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(toolbarButton); var removeBtn = new MyTerminalControlButton<MyRemoteControl>("RemoveWaypoint", MySpaceTexts.BlockActionTitle_RemoveWaypoint, MySpaceTexts.Blank, (b) => b.RemoveWaypoints()); removeBtn.Enabled = r => r.CanRemoveWaypoints(); removeBtn.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(removeBtn); var moveUp = new MyTerminalControlButton<MyRemoteControl>("MoveUp", MySpaceTexts.BlockActionTitle_MoveWaypointUp, MySpaceTexts.Blank, (b) => b.MoveWaypointsUp()); moveUp.Enabled = r => r.CanMoveWaypointsUp(); moveUp.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(moveUp); var moveDown = new MyTerminalControlButton<MyRemoteControl>("MoveDown", MySpaceTexts.BlockActionTitle_MoveWaypointDown, MySpaceTexts.Blank, (b) => b.MoveWaypointsDown()); moveDown.Enabled = r => r.CanMoveWaypointsDown(); moveDown.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(moveDown); var addButton = new MyTerminalControlButton<MyRemoteControl>("AddWaypoint", MySpaceTexts.BlockActionTitle_AddWaypoint, MySpaceTexts.Blank, (b) => b.AddWaypoints()); addButton.Enabled = r => r.CanAddWaypoints(); addButton.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(addButton); var gpsList = new MyTerminalControlListbox<MyRemoteControl>("GpsList", MySpaceTexts.BlockPropertyTitle_GpsLocations, MySpaceTexts.Blank, true); gpsList.ListContent = (x, list1, list2) => x.FillGpsList(list1, list2); gpsList.ItemSelected = (x, y) => x.SelectGps(y); if (!MySandboxGame.IsDedicated) { m_gpsGuiControl = (MyGuiControlListbox)((MyGuiControlBlockProperty)gpsList.GetGuiControl()).PropertyControl; } MyTerminalControlFactory.AddControl(gpsList); foreach (var direction in m_directionNames) { var setDirectionAction = new MyTerminalAction<MyRemoteControl>(MyTexts.Get(direction.Value).ToString(), MyTexts.Get(direction.Value), OnAction, null, MyTerminalActionIcons.TOGGLE); setDirectionAction.Enabled = (b) => b.IsWorking; setDirectionAction.ParameterDefinitions.Add(TerminalActionParameter.Get((byte)direction.Key)); MyTerminalControlFactory.AddAction(setDirectionAction); } var resetButton = new MyTerminalControlButton<MyRemoteControl>("Reset", MySpaceTexts.BlockActionTitle_WaypointReset, MySpaceTexts.BlockActionTooltip_WaypointReset, (b) => b.ResetWaypoint()); resetButton.Enabled = r => r.IsWorking; resetButton.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(resetButton); var copyButton = new MyTerminalControlButton<MyRemoteControl>("Copy", MySpaceTexts.BlockActionTitle_RemoteCopy, MySpaceTexts.Blank, (b) => b.CopyAutopilotSetup()); copyButton.Enabled = r => r.IsWorking; copyButton.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(copyButton); var pasteButton = new MyTerminalControlButton<MyRemoteControl>("Paste", MySpaceTexts.BlockActionTitle_RemotePaste, MySpaceTexts.Blank, (b) => b.PasteAutopilotSetup()); pasteButton.Enabled = r => r.IsWorking && MyRemoteControl.m_clipboard != null; pasteButton.SupportsMultipleBlocks = false; MyTerminalControlFactory.AddControl(pasteButton); }