本文整理汇总了C#中MyTerminalControlCheckbox.EnableAction方法的典型用法代码示例。如果您正苦于以下问题:C# MyTerminalControlCheckbox.EnableAction方法的具体用法?C# MyTerminalControlCheckbox.EnableAction怎么用?C# MyTerminalControlCheckbox.EnableAction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MyTerminalControlCheckbox
的用法示例。
在下文中一共展示了MyTerminalControlCheckbox.EnableAction方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MyShipWelder
static MyShipWelder()
{
if (MyFakes.ENABLE_WELDER_HELP_OTHERS)
{
var helpOthersCheck = new MyTerminalControlCheckbox<MyShipWelder>("helpOthers", MySpaceTexts.ShipWelder_HelpOthers, MySpaceTexts.ShipWelder_HelpOthers);
helpOthersCheck.Getter = (x) => x.HelpOthers;
helpOthersCheck.Setter = (x, v) => x.SyncObject.ChangeHelpOthersMode(v);
helpOthersCheck.EnableAction();
MyTerminalControlFactory.AddControl(helpOthersCheck);
}
}
示例2: MyShipWelder
static MyShipWelder()
{
if (MyFakes.ENABLE_WELDER_HELP_OTHERS)
{
var helpOthersCheck = new MyTerminalControlCheckbox<MyShipWelder>("helpOthers", MyCommonTexts.ShipWelder_HelpOthers, MyCommonTexts.ShipWelder_HelpOthers);
helpOthersCheck.Getter = (x) => x.HelpOthers;
helpOthersCheck.Setter = (x, v) => x.m_helpOthers.Value = v;
helpOthersCheck.EnableAction();
MyTerminalControlFactory.AddControl(helpOthersCheck);
}
}
示例3: CreateTerminalControls
protected override void CreateTerminalControls()
{
if (MyTerminalControlFactory.AreControlsCreated<MyShipWelder>())
return;
base.CreateTerminalControls();
if (MyFakes.ENABLE_WELDER_HELP_OTHERS)
{
var helpOthersCheck = new MyTerminalControlCheckbox<MyShipWelder>("helpOthers", MyCommonTexts.ShipWelder_HelpOthers, MyCommonTexts.ShipWelder_HelpOthers);
helpOthersCheck.Getter = (x) => x.HelpOthers;
helpOthersCheck.Setter = (x, v) => x.m_helpOthers.Value = v;
helpOthersCheck.EnableAction();
MyTerminalControlFactory.AddControl(helpOthersCheck);
}
}
示例4: MyBatteryBlock
static MyBatteryBlock()
{
var recharge = new MyTerminalControlCheckbox<MyBatteryBlock>("Recharge", MySpaceTexts.BlockPropertyTitle_Recharge, MySpaceTexts.ToolTipBatteryBlock);
recharge.Getter = (x) => !x.ProducerEnabled;
recharge.Setter = (x, v) => x.SyncObject.SendProducerEnableChange(!v);
recharge.Enabled = (x) => !x.SemiautoEnabled;
recharge.EnableAction();
var semiAuto = new MyTerminalControlCheckbox<MyBatteryBlock>("SemiAuto", MySpaceTexts.BlockPropertyTitle_Semiauto, MySpaceTexts.ToolTipBatteryBlock_Semiauto);
semiAuto.Getter = (x) => x.SemiautoEnabled;
semiAuto.Setter = (x, v) => x.SyncObject.SendSemiautoEnableChange(v);
MyTerminalControlFactory.AddControl(recharge);
MyTerminalControlFactory.AddControl(semiAuto);
}
示例5: MyOxygenGenerator
static MyOxygenGenerator()
{
var useConveyorSystem = new MyTerminalControlOnOffSwitch<MyOxygenGenerator>("UseConveyor", MySpaceTexts.Terminal_UseConveyorSystem);
useConveyorSystem.Getter = (x) => (x as IMyInventoryOwner).UseConveyorSystem;
useConveyorSystem.Setter = (x, v) => MySyncConveyors.SendChangeUseConveyorSystemRequest(x.EntityId, v);
useConveyorSystem.EnableToggleAction();
MyTerminalControlFactory.AddControl(useConveyorSystem);
var refillButton = new MyTerminalControlButton<MyOxygenGenerator>("Refill", MySpaceTexts.BlockPropertyTitle_Refill, MySpaceTexts.BlockPropertyTitle_Refill, OnRefillButtonPressed);
refillButton.Enabled = (x) => x.CanRefill();
refillButton.EnableAction();
MyTerminalControlFactory.AddControl(refillButton);
var autoRefill = new MyTerminalControlCheckbox<MyOxygenGenerator>("Auto-Refill", MySpaceTexts.BlockPropertyTitle_AutoRefill, MySpaceTexts.BlockPropertyTitle_AutoRefill);
autoRefill.Getter = (x) => x.m_autoRefill;
autoRefill.Setter = (x, v) => x.m_autoRefill = v;
autoRefill.EnableAction();
MyTerminalControlFactory.AddControl(autoRefill);
}
示例6: CreateTerminalControls
static void CreateTerminalControls()
{
if (MyTerminalControlFactory.AreControlsCreated<MyButtonPanel>())
return;
var checkAccess = new MyTerminalControlCheckbox<MyButtonPanel>("AnyoneCanUse", MySpaceTexts.BlockPropertyText_AnyoneCanUse, MySpaceTexts.BlockPropertyDescription_AnyoneCanUse);
checkAccess.Getter = (x) => x.AnyoneCanUse;
checkAccess.Setter = (x, v) => x.AnyoneCanUse = v;
checkAccess.EnableAction();
MyTerminalControlFactory.AddControl(checkAccess);
var toolbarButton = new MyTerminalControlButton<MyButtonPanel>("Open Toolbar", MySpaceTexts.BlockPropertyTitle_SensorToolbarOpen, MySpaceTexts.BlockPropertyDescription_SensorToolbarOpen,
delegate(MyButtonPanel 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 buttonsList = new MyTerminalControlListbox<MyButtonPanel>("ButtonText", MySpaceTexts.BlockPropertyText_ButtonList, MySpaceTexts.Blank);
buttonsList.ListContent = (x, list1, list2) => x.FillListContent(list1, list2);
buttonsList.ItemSelected = (x, y) => x.SelectButtonToName(y);
MyTerminalControlFactory.AddControl(buttonsList);
var customButtonName = new MyTerminalControlTextbox<MyButtonPanel>("ButtonName", MySpaceTexts.BlockPropertyText_ButtonName, MySpaceTexts.Blank);
customButtonName.Getter = (x) => x.GetButtonName();
customButtonName.Setter = (x, v) => x.SetCustomButtonName(v);
customButtonName.SupportsMultipleBlocks = false;
MyTerminalControlFactory.AddControl(customButtonName);
}
示例7: MyLandingGear
static MyLandingGear()
{
var stateWriter = new MyTerminalControl<MyLandingGear>.WriterDelegate((b, sb) => b.WriteLockStateValue(sb));
var lockBtn = new MyTerminalControlButton<MyLandingGear>("Lock", MySpaceTexts.BlockActionTitle_Lock, MySpaceTexts.Blank, (b) => b.RequestLandingGearLock());
lockBtn.Enabled = (b) => b.IsWorking;
lockBtn.EnableAction(MyTerminalActionIcons.TOGGLE, (MyStringId?)null, stateWriter);
MyTerminalControlFactory.AddControl(lockBtn);
var unlockBtn = new MyTerminalControlButton<MyLandingGear>("Unlock", MySpaceTexts.BlockActionTitle_Unlock, MySpaceTexts.Blank, (b) => b.RequestLandingGearUnlock());
unlockBtn.Enabled = (b) => b.IsWorking;
unlockBtn.EnableAction(MyTerminalActionIcons.TOGGLE, (MyStringId?)null, stateWriter);
MyTerminalControlFactory.AddControl(unlockBtn);
var title = MyTexts.Get(MySpaceTexts.BlockActionTitle_SwitchLock);
MyTerminalAction<MyLandingGear> switchLockAction = new MyTerminalAction<MyLandingGear>("SwitchLock", title, MyTerminalActionIcons.TOGGLE);
switchLockAction.Action = (b) => b.RequestLandingGearSwitch();
switchLockAction.Writer = stateWriter;
MyTerminalControlFactory.AddAction(switchLockAction);
var autoLock = new MyTerminalControlCheckbox<MyLandingGear>("Autolock", MySpaceTexts.BlockPropertyTitle_LandGearAutoLock, MySpaceTexts.Blank);
autoLock.Getter = (b) => b.m_autoLock;
autoLock.Setter = (b, v) => b.SyncObject.SendAutoLockChange(v);
autoLock.EnableAction();
MyTerminalControlFactory.AddControl(autoLock);
if (MyFakes.LANDING_GEAR_BREAKABLE)
{
var brakeForce = new MyTerminalControlSlider<MyLandingGear>("BreakForce", MySpaceTexts.BlockPropertyTitle_BreakForce, MySpaceTexts.BlockPropertyDescription_BreakForce);
brakeForce.Getter = (x) => x.BreakForce;
brakeForce.Setter = (x, v) => x.SyncObject.SendBrakeForceChange(v);
brakeForce.DefaultValue = 1;
brakeForce.Writer = (x, result) =>
{
if (x.BreakForce >= MaxSolverImpulse) result.AppendStringBuilder(MyTexts.Get(MySpaceTexts.BlockPropertyValue_MotorAngleUnlimited));
else MyValueFormatter.AppendForceInBestUnit(x.BreakForce, result);
};
brakeForce.Normalizer = (b, v) => ThresholdToRatio(v);
brakeForce.Denormalizer = (b, v) => RatioToThreshold(v);
brakeForce.EnableActions();
MyTerminalControlFactory.AddControl(brakeForce);
}
}
示例8: CreateTerminalControls
static void CreateTerminalControls()
{
if (MyTerminalControlFactory.AreControlsCreated<MyBatteryBlock>())
return;
var recharge = new MyTerminalControlCheckbox<MyBatteryBlock>("Recharge", MySpaceTexts.BlockPropertyTitle_Recharge, MySpaceTexts.ToolTipBatteryBlock);
recharge.Getter = (x) => x.OnlyRecharge;
recharge.Setter = (x, v) => x.OnlyRecharge = v;
recharge.Enabled = (x) => !x.SemiautoEnabled && !x.OnlyDischarge;
recharge.EnableAction();
var discharge = new MyTerminalControlCheckbox<MyBatteryBlock>("Discharge", MySpaceTexts.BlockPropertyTitle_Discharge, MySpaceTexts.ToolTipBatteryBlock_Discharge);
discharge.Getter = (x) => x.OnlyDischarge;
discharge.Setter = (x, v) => x.OnlyDischarge = v;
discharge.Enabled = (x) => !x.SemiautoEnabled && !x.OnlyRecharge;
discharge.EnableAction();
var semiAuto = new MyTerminalControlCheckbox<MyBatteryBlock>("SemiAuto", MySpaceTexts.BlockPropertyTitle_Semiauto, MySpaceTexts.ToolTipBatteryBlock_Semiauto);
semiAuto.Getter = (x) => x.SemiautoEnabled;
semiAuto.Setter = (x, v) => x.SemiautoEnabled = v;
semiAuto.EnableAction();
MyTerminalControlFactory.AddControl(recharge);
MyTerminalControlFactory.AddControl(discharge);
MyTerminalControlFactory.AddControl(semiAuto);
}
示例9: MySpaceBall
static MySpaceBall()
{
MyTerminalControlFactory.RemoveBaseClass<MySpaceBall, MyTerminalBlock>();
var mass = new MyTerminalControlSlider<MySpaceBall>("VirtualMass", MySpaceTexts.BlockPropertyDescription_SpaceBallVirtualMass, MySpaceTexts.BlockPropertyDescription_SpaceBallVirtualMass);
mass.Getter = (x) => x.VirtualMass;
mass.Setter = (x, v) => x.VirtualMass = v;
mass.DefaultValueGetter = (x) => DEFAULT_MASS;
mass.SetLimits(x => 0, x => x.BlockDefinition.MaxVirtualMass);
mass.Writer = (x, result) => MyValueFormatter.AppendWeightInBestUnit(x.VirtualMass, result);
mass.EnableActions();
MyTerminalControlFactory.AddControl(mass);
if (MyPerGameSettings.BallFriendlyPhysics)
{
var friction = new MyTerminalControlSlider<MySpaceBall>("Friction", MySpaceTexts.BlockPropertyDescription_SpaceBallFriction, MySpaceTexts.BlockPropertyDescription_SpaceBallFriction);
friction.Getter = (x) => x.Friction;
friction.Setter = (x, v) => x.Friction = v;
friction.DefaultValueGetter = (x) => DEFAULT_FRICTION;
friction.SetLimits(0, 1.0f);
friction.Writer = (x, result) => result.AppendInt32((int)(x.Friction * 100)).Append("%");
friction.EnableActions();
MyTerminalControlFactory.AddControl(friction);
var restitution = new MyTerminalControlSlider<MySpaceBall>("Restitution", MySpaceTexts.BlockPropertyDescription_SpaceBallRestitution, MySpaceTexts.BlockPropertyDescription_SpaceBallRestitution);
restitution.Getter = (x) => x.Restitution;
restitution.Setter = (x, v) => x.Restitution = v;
restitution.DefaultValueGetter = (x) => DEFAULT_RESTITUTION;
restitution.SetLimits(0, 1.0f);
restitution.Writer = (x, result) => result.AppendInt32((int)(x.Restitution * 100)).Append("%");
restitution.EnableActions();
MyTerminalControlFactory.AddControl(restitution);
}
var enableBroadcast = new MyTerminalControlCheckbox<MySpaceBall>("EnableBroadCast", MySpaceTexts.Antenna_EnableBroadcast, MySpaceTexts.Antenna_EnableBroadcast);
enableBroadcast.Getter = (x) => x.RadioBroadcaster.Enabled;
enableBroadcast.Setter = (x, v) => x.m_broadcastSync.Value = v;
enableBroadcast.EnableAction();
MyTerminalControlFactory.AddControl(enableBroadcast);
}
示例10: MyProjector
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) =>
{
//.........这里部分代码省略.........
示例11: CreateTerminalControls
protected override void CreateTerminalControls()
{
if (MyTerminalControlFactory.AreControlsCreated<MyRadioAntenna>())
return;
base.CreateTerminalControls();
MyTerminalControlFactory.RemoveBaseClass<MyRadioAntenna, MyTerminalBlock>();
var show = new MyTerminalControlOnOffSwitch<MyRadioAntenna>("ShowInTerminal", MySpaceTexts.Terminal_ShowInTerminal, MySpaceTexts.Terminal_ShowInTerminalToolTip);
show.Getter = (x) => x.ShowInTerminal;
show.Setter = (x, v) => x.ShowInTerminal = v;
MyTerminalControlFactory.AddControl(show);
var showConfig = new MyTerminalControlOnOffSwitch<MyRadioAntenna>("ShowInToolbarConfig", MySpaceTexts.Terminal_ShowInToolbarConfig, MySpaceTexts.Terminal_ShowInToolbarConfigToolTip);
showConfig.Getter = (x) => x.ShowInToolbarConfig;
showConfig.Setter = (x, v) => x.ShowInToolbarConfig = v;
MyTerminalControlFactory.AddControl(showConfig);
var customName = new MyTerminalControlTextbox<MyRadioAntenna>("CustomName", MyCommonTexts.Name, MySpaceTexts.Blank);
customName.Getter = (x) => x.CustomName;
customName.Setter = (x, v) => x.SetCustomName(v);
customName.SupportsMultipleBlocks = false;
MyTerminalControlFactory.AddControl(customName);
MyTerminalControlFactory.AddControl(new MyTerminalControlSeparator<MyRadioAntenna>());
var broadcastRadius = new MyTerminalControlSlider<MyRadioAntenna>("Radius", MySpaceTexts.BlockPropertyTitle_BroadcastRadius, MySpaceTexts.BlockPropertyDescription_BroadcastRadius);
broadcastRadius.SetLogLimits((block) => 1, (block) => block.CubeGrid.GridSizeEnum == MyCubeSize.Large ? MyEnergyConstants.MAX_RADIO_POWER_RANGE : MyEnergyConstants.MAX_SMALL_RADIO_POWER_RANGE);
broadcastRadius.DefaultValueGetter = (block) => block.CubeGrid.GridSizeEnum == MyCubeSize.Large ? 10000 : 500;
broadcastRadius.Getter = (x) => x.RadioBroadcaster.BroadcastRadius;
broadcastRadius.Setter = (x, v) => x.m_radius.Value = v;
//broadcastRadius.Writer = (x, result) => result.Append(x.RadioBroadcaster.BroadcastRadius < MyEnergyConstants.MAX_RADIO_POWER_RANGE ? new StringBuilder().AppendDecimal(x.RadioBroadcaster.BroadcastRadius, 0).Append(" m") : MyTexts.Get(MySpaceTexts.ScreenTerminal_Infinite));
broadcastRadius.Writer = (x, result) =>
{
result.Append(new StringBuilder().AppendDecimal(x.RadioBroadcaster.BroadcastRadius, 0).Append(" m"));
};
broadcastRadius.EnableActions();
MyTerminalControlFactory.AddControl(broadcastRadius);
var enableBroadcast = new MyTerminalControlCheckbox<MyRadioAntenna>("EnableBroadCast", MySpaceTexts.Antenna_EnableBroadcast, MySpaceTexts.Antenna_EnableBroadcast);
enableBroadcast.Getter = (x) => x.RadioBroadcaster.Enabled;
enableBroadcast.Setter = (x, v) => x.m_enableBroadcasting.Value = v;
enableBroadcast.EnableAction();
MyTerminalControlFactory.AddControl(enableBroadcast);
var showShipName = new MyTerminalControlCheckbox<MyRadioAntenna>("ShowShipName", MySpaceTexts.BlockPropertyTitle_ShowShipName, MySpaceTexts.BlockPropertyDescription_ShowShipName);
showShipName.Getter = (x) => x.ShowShipName;
showShipName.Setter = (x, v) => x.ShowShipName = v;
showShipName.EnableAction();
MyTerminalControlFactory.AddControl(showShipName);
}
示例12: CreateTerminalControls
protected override void CreateTerminalControls()
{
/*MyTerminalControlFactory.RemoveBaseClass<MyLaserAntenna, MyTerminalBlock>();
var customName = new MyTerminalControlTextbox<MyLaserAntenna>("CustomName", MySpaceTexts.Name, MySpaceTexts.Blank);
customName.Getter = (x) => x.CustomName;
customName.Setter = (x, v) => MySyncBlockHelpers.SendChangeNameRequest(x, v);
customName.SupportsMultipleBlocks = false;
MyTerminalControlFactory.AddControl(customName);*/
if (MyTerminalControlFactory.AreControlsCreated<MyLaserAntenna>())
return;
base.CreateTerminalControls();
idleButton = new MyTerminalControlButton<MyLaserAntenna>("Idle", MySpaceTexts.LaserAntennaIdleButton, MySpaceTexts.Blank,
delegate (MyLaserAntenna self)
{
self.SetIdle();
idleButton.UpdateVisual();
});
idleButton.Enabled = (x) => x.m_state != StateEnum.idle;
idleButton.EnableAction();
MyTerminalControlFactory.AddControl(idleButton);
//--------------------------------------------------------------------------------------
MyTerminalControlFactory.AddControl(new MyTerminalControlSeparator<MyLaserAntenna>());
var copyCoordsButton = new MyTerminalControlButton<MyLaserAntenna>("CopyCoords", MySpaceTexts.LaserAntennaCopyCoords, MySpaceTexts.LaserAntennaCopyCoordsHelp,
delegate (MyLaserAntenna self)
{
StringBuilder sanitizedName = new StringBuilder(self.DisplayNameText);
sanitizedName.Replace(':', ' ');
StringBuilder sb = new StringBuilder("GPS:", 256);
sb.Append(sanitizedName); sb.Append(":");
sb.Append(Math.Round(self.HeadPos.X, 2).ToString(System.Globalization.CultureInfo.InvariantCulture)); sb.Append(":");
sb.Append(Math.Round(self.HeadPos.Y, 2).ToString(System.Globalization.CultureInfo.InvariantCulture)); sb.Append(":");
sb.Append(Math.Round(self.HeadPos.Z, 2).ToString(System.Globalization.CultureInfo.InvariantCulture)); sb.Append(":");
#if !XB1
Thread thread = new Thread(() => System.Windows.Forms.Clipboard.SetText(sb.ToString()));
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
#else
Debug.Assert(false, "Not Clipboard support on XB1!");
#endif
});
MyTerminalControlFactory.AddControl(copyCoordsButton);
var copyTargetCoordsButton = new MyTerminalControlButton<MyLaserAntenna>("CopyTargetCoords", MySpaceTexts.LaserAntennaCopyTargetCoords, MySpaceTexts.LaserAntennaCopyTargetCoordsHelp,
delegate (MyLaserAntenna self)
{
if (self.m_targetId == null)
return;
StringBuilder sanitizedName = new StringBuilder(self.m_lastKnownTargetName.ToString());
sanitizedName.Replace(':', ' ');
StringBuilder sb = new StringBuilder("GPS:", 256);
sb.Append(sanitizedName); sb.Append(":");
sb.Append(Math.Round(self.m_targetCoords.X, 2).ToString(System.Globalization.CultureInfo.InvariantCulture)); sb.Append(":");
sb.Append(Math.Round(self.m_targetCoords.Y, 2).ToString(System.Globalization.CultureInfo.InvariantCulture)); sb.Append(":");
sb.Append(Math.Round(self.m_targetCoords.Z, 2).ToString(System.Globalization.CultureInfo.InvariantCulture)); sb.Append(":");
#if !XB1
Thread thread = new Thread(() => System.Windows.Forms.Clipboard.SetText(sb.ToString()));
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
#else
Debug.Assert(false, "Not Clipboard support on XB1!");
#endif
});
copyTargetCoordsButton.Enabled = (x) => x.m_targetId != null;
MyTerminalControlFactory.AddControl(copyTargetCoordsButton);
PasteGpsCoords = new MyTerminalControlButton<MyLaserAntenna>("PasteGpsCoords", MySpaceTexts.LaserAntennaPasteGPS, MySpaceTexts.Blank,
delegate (MyLaserAntenna self)
{
Thread thread = new Thread(() => PasteFromClipboard());
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
self.PasteCoordinates(m_clipboardText);
});
//PasteGpsCoords.Enabled = (x) => x.P2PTargetCoords;
PasteGpsCoords.EnableAction();
MyTerminalControlFactory.AddControl(PasteGpsCoords);
gpsCoords = new MyTerminalControlTextbox<MyLaserAntenna>("gpsCoords", MySpaceTexts.LaserAntennaSelectedCoords, MySpaceTexts.Blank);
gpsCoords.Getter = (x) => x.m_termGpsName;
gpsCoords.Enabled = (x) => false;
MyTerminalControlFactory.AddControl(gpsCoords);
connectGPS = new MyTerminalControlButton<MyLaserAntenna>("ConnectGPS", MySpaceTexts.LaserAntennaConnectGPS, MySpaceTexts.Blank,
delegate (MyLaserAntenna self)
{
if (self.m_termGpsCoords == null)
return;//should not get here anyway
self.ConnectToGps();
});
connectGPS.Enabled = (x) => x.CanConnectToGPS();
connectGPS.EnableAction();
MyTerminalControlFactory.AddControl(connectGPS);
//.........这里部分代码省略.........
示例13: MyProjector
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);
//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);
//.........这里部分代码省略.........
示例14: MyMotorSuspension
static MyMotorSuspension()
{
var steering = new MyTerminalControlCheckbox<MyMotorSuspension>("Steering", MySpaceTexts.BlockPropertyTitle_Motor_Steering, MySpaceTexts.BlockPropertyDescription_Motor_Steering);
steering.Getter = (x) => x.Steering;
steering.Setter = (x, v) => x.SyncObject.ChangeSteering(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.SyncObject.ChangeSlider(MySyncMotorSuspension.SliderEnum.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.SyncObject.ChangeSlider(MySyncMotorSuspension.SliderEnum.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.SyncObject.ChangeSlider(MySyncMotorSuspension.SliderEnum.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.SyncObject.ChangeSlider(MySyncMotorSuspension.SliderEnum.InvertSteer, (v ? 1 : 0));
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.SyncObject.ChangePropulsion(v);
propulsion.EnableAction();
propulsion.Enabled = (x) => x.m_constraint != null;
MyTerminalControlFactory.AddControl(propulsion);
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.SyncObject.ChangePower(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.SyncObject.ChangeFriction(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.SyncObject.ChangeDamping(v * 0.002f);
damping.Writer = (x, res) => res.AppendInt32((int)(x.Damping / 0.002f)).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.SyncObject.ChangeStrength(v * 0.002f);
strength.Writer = (x, res) => res.AppendInt32((int)(x.Strength / 0.002f)).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.SyncObject.ChangeSlider(MySyncMotorSuspension.SliderEnum.Height, v);
height.Writer = (x, res) => MyValueFormatter.AppendDistanceInBestUnit(x.Height, res);
height.EnableActionsWithReset();
height.Enabled = (x) => x.m_constraint != null;
MyTerminalControlFactory.AddControl(height);
//.........这里部分代码省略.........
示例15: CreateTerminalControls
protected override void CreateTerminalControls()
{
if (MyTerminalControlFactory.AreControlsCreated<MyGasTank>())
return;
base.CreateTerminalControls();
var isStockpiling = new MyTerminalControlOnOffSwitch<MyGasTank>("Stockpile", MySpaceTexts.BlockPropertyTitle_Stockpile, MySpaceTexts.BlockPropertyDescription_Stockpile)
{
Getter = (x) => x.IsStockpiling,
Setter = (x, v) => x.ChangeStockpileMode(v)
};
isStockpiling.EnableToggleAction();
isStockpiling.EnableOnOffActions();
MyTerminalControlFactory.AddControl(isStockpiling);
var refillButton = new MyTerminalControlButton<MyGasTank>("Refill", MySpaceTexts.BlockPropertyTitle_Refill, MySpaceTexts.BlockPropertyTitle_Refill, OnRefillButtonPressed)
{
Enabled = (x) => x.CanRefill()
};
refillButton.EnableAction();
MyTerminalControlFactory.AddControl(refillButton);
var autoRefill = new MyTerminalControlCheckbox<MyGasTank>("Auto-Refill", MySpaceTexts.BlockPropertyTitle_AutoRefill, MySpaceTexts.BlockPropertyTitle_AutoRefill)
{
Getter = (x) => x.m_autoRefill,
Setter = (x, v) => x.ChangeAutoRefill(v)
};
autoRefill.EnableAction();
MyTerminalControlFactory.AddControl(autoRefill);
}