private static void SetupPlayer(ref Args args) { var identity = Sync.Players.CreateNewIdentity(Sync.Clients.LocalClient.DisplayName); var player = Sync.Players.CreateNewPlayer(identity, Sync.Clients.LocalClient, Sync.MyName); var playerStarts = args.Scenario.PossiblePlayerStarts; if (playerStarts == null || playerStarts.Length == 0) { Sync.Players.RespawnComponent.SetupCharacterDefault(player, args); } else { var randomStart = playerStarts[MyUtils.GetRandomInt(playerStarts.Length)]; randomStart.SetupCharacter(args); } // Setup toolbar if (args.Scenario.DefaultToolbar != null) { // TODO: JakubD fix this MyToolbar toolbar = new MyToolbar(MyToolbarType.Character); toolbar.Init(args.Scenario.DefaultToolbar, player.Character, true); MySession.Static.Toolbars.RemovePlayerToolbar(player.Id); MySession.Static.Toolbars.AddPlayerToolbar(player.Id, toolbar); MyToolbarComponent.InitToolbar(MyToolbarType.Character, args.Scenario.DefaultToolbar); MyToolbarComponent.InitCharacterToolbar(args.Scenario.DefaultToolbar); } }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { SyncFlag = true; base.Init(objectBuilder, cubeGrid); var ob = objectBuilder as MyObjectBuilder_TimerBlock; Toolbar = new MyToolbar(MyToolbarType.ButtonPanel, 9, 10); Toolbar.Init(ob.Toolbar, this); Toolbar.ItemChanged += Toolbar_ItemChanged; if (ob.JustTriggered) { NeedsUpdate |= Common.MyEntityUpdateEnum.BEFORE_NEXT_FRAME; } m_countdownMsStart = ob.Delay; m_countdownMsCurrent = ob.CurrentTime; if (m_countdownMsCurrent > 0) { NeedsUpdate |= Common.MyEntityUpdateEnum.EACH_10TH_FRAME; } PowerReceiver = new MyPowerReceiver( MyConsumerGroupEnum.Utility, false, 0.0000001f, () => (Enabled && IsFunctional) ? PowerReceiver.MaxRequiredInput : 0f); PowerReceiver.Update(); AddDebugRenderComponent(new Components.MyDebugRenderComponentDrawPowerReciever(PowerReceiver, this)); PowerReceiver.IsPoweredChanged += Receiver_IsPoweredChanged; SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; }
void Toolbar_ItemChanged(MyToolbar self, MyToolbar.IndexArgs index) { Debug.Assert(self == Toolbar); var tItem = GetToolbarItem(self.GetItemAtIndex(index.ItemIndex)); var oldItem = m_items[index.ItemIndex]; if ((tItem.EntityID == 0 && oldItem.EntityID == 0 || (tItem.EntityID != 0 && oldItem.EntityID != 0 && tItem.Equals(oldItem)))) { return; } m_items.RemoveAt(index.ItemIndex); m_items.Insert(index.ItemIndex, tItem); (SyncObject as MySyncSensorBlock).SendToolbarItemChanged(tItem, index.ItemIndex); if (m_shouldSetOtherToolbars) { m_shouldSetOtherToolbars = false; if (!(SyncObject as MySyncSensorBlock).IsSyncing) { foreach (var toolbar in m_openedToolbars) { if (toolbar != self) { toolbar.SetItemAtIndex(index.ItemIndex, self.GetItemAtIndex(index.ItemIndex)); } } } m_shouldSetOtherToolbars = true; } }
private void CurrentToolbar_SelectedSlotChanged(MyToolbar toolbar, MyToolbar.SlotArgs args) { if (!(toolbar.SelectedItem is MyToolbarItemPrefabThrower)) { Enabled = false; } }
private void CurrentToolbar_SlotActivated(MyToolbar toolbar, MyToolbar.SlotArgs args) { if (!(toolbar.GetItemAtIndex(toolbar.SlotToIndex(args.SlotNumber.Value)) is MyToolbarItemPrefabThrower)) { Enabled = false; } }
public MyControllableSphere() { ControllerInfo.ControlAcquired += OnControlAcquired; ControllerInfo.ControlReleased += OnControlReleased; m_toolbar = new MyToolbar(ToolbarType); }
void Toolbar_ItemChanged(MyToolbar self, MyToolbar.IndexArgs index) { if (m_syncing) { return; } Debug.Assert(self == Toolbar); var tItem = ToolbarItem.FromItem(self.GetItemAtIndex(index.ItemIndex)); MyMultiplayer.RaiseEvent(this, x => x.SendToolbarItemChanged, tItem, index.ItemIndex); if (m_shouldSetOtherToolbars) { m_shouldSetOtherToolbars = false; foreach (var toolbar in m_openedToolbars) { if (toolbar != self) { toolbar.SetItemAtIndex(index.ItemIndex, self.GetItemAtIndex(index.ItemIndex)); } } m_shouldSetOtherToolbars = true; } }
void Toolbar_ItemChanged(MyToolbar self, MyToolbar.IndexArgs index) { if (m_syncing) { return; } Debug.Assert(self == Toolbar); var tItem = ToolbarItem.FromItem(self.GetItemAtIndex(index.ItemIndex)); UpdateButtonEmissivity(index.ItemIndex); MyMultiplayer.RaiseEvent(this, x => x.SendToolbarItemChanged, tItem, index.ItemIndex); if (m_shouldSetOtherToolbars) { m_shouldSetOtherToolbars = false; foreach (var toolbar in m_openedToolbars) { if (toolbar != self) { toolbar.SetItemAtIndex(index.ItemIndex, self.GetItemAtIndex(index.ItemIndex)); } } m_shouldSetOtherToolbars = true; } var slot = Toolbar.GetItemAtIndex(index.ItemIndex); if (slot != null) { string name = slot.DisplayName.ToString(); MyMultiplayer.RaiseEvent(this, x => x.SetButtonName, name, index.ItemIndex); } }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { SyncFlag = true; base.Init(objectBuilder, cubeGrid); var builder = (MyObjectBuilder_AirVent)objectBuilder; InitializeConveyorEndpoint(); NeedsUpdate = MyEntityUpdateEnum.EACH_FRAME | MyEntityUpdateEnum.EACH_10TH_FRAME | MyEntityUpdateEnum.EACH_100TH_FRAME; SourceComp.Init(BlockDefinition.ResourceSourceGroup, new MyResourceSourceInfo { ResourceTypeId = m_oxygenGasId, DefinedOutput = BlockDefinition.VentilationCapacityPerSecond, ProductionToCapacityMultiplier = 1 }); SourceComp.OutputChanged += Source_OutputChanged; var sinkDataList = new List <MyResourceSinkInfo> { new MyResourceSinkInfo { ResourceTypeId = MyResourceDistributorComponent.ElectricityId, MaxRequiredInput = BlockDefinition.OperationalPowerConsumption, RequiredInputFunc = ComputeRequiredPower }, new MyResourceSinkInfo { ResourceTypeId = m_oxygenGasId, MaxRequiredInput = BlockDefinition.VentilationCapacityPerSecond, RequiredInputFunc = () => VentingCapacity(1f) }, }; ResourceSink.Init( BlockDefinition.ResourceSinkGroup, sinkDataList); ResourceSink.IsPoweredChanged += PowerReceiver_IsPoweredChanged; ResourceSink.CurrentInputChanged += Sink_CurrentInputChanged; m_updateCounter = 0; m_lastOutputUpdateTime = m_updateCounter; m_lastInputUpdateTime = m_updateCounter; m_nextGasTransfer = 0f; m_actionToolbar = new MyToolbar(MyToolbarType.ButtonPanel, 2, 1); m_actionToolbar.DrawNumbers = false; m_actionToolbar.Init(null, this); if (builder.OnFullAction != null) { m_onFullAction = MyToolbarItemFactory.CreateToolbarItem(builder.OnFullAction); } if (builder.OnEmptyAction != null) { m_onEmptyAction = MyToolbarItemFactory.CreateToolbarItem(builder.OnEmptyAction); } UpdateEmissivity(); UdpateTexts(); AddDebugRenderComponent(new Components.MyDebugRenderComponentDrawConveyorEndpoint(m_conveyorEndpoint)); SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; IsWorkingChanged += MyAirVent_IsWorkingChanged; SetDepressurizing(builder.IsDepressurizing); }
void Toolbar_ItemChanged(MyToolbar self, MyToolbar.IndexArgs index) { Debug.Assert(self == Toolbar); var tItem = ToolbarItem.FromItem(self.GetItemAtIndex(index.ItemIndex)); UpdateButtonEmissivity(index.ItemIndex); (SyncObject as MySyncButtonPanel).SendToolbarItemChanged(tItem, index.ItemIndex); if (m_shouldSetOtherToolbars) { m_shouldSetOtherToolbars = false; if (!(SyncObject as MySyncButtonPanel).IsSyncing) { foreach (var toolbar in m_openedToolbars) { if (toolbar != self) { toolbar.SetItemAtIndex(index.ItemIndex, self.GetItemAtIndex(index.ItemIndex)); } } } m_shouldSetOtherToolbars = true; } var slot = Toolbar.GetItemAtIndex(index.ItemIndex); if (slot != null) { string name = slot.DisplayName.ToString(); SetButtonName(name, index.ItemIndex); (SyncObject as MySyncButtonPanel).SendCustonNameChanged(name, index.ItemIndex); } }
private void CurrentToolbar_SelectedSlotChanged(MyToolbar toolbar, MyToolbar.SlotArgs args) { if (!(toolbar.SelectedItem is MyToolbarItemAreaMarker)) { AreaMarkerDefinition = null; } }
private void CurrentToolbar_SlotActivated(MyToolbar toolbar, MyToolbar.SlotArgs args) { if (!(toolbar.GetItemAtIndex(toolbar.SlotToIndex(args.SlotNumber.Value)) is MyToolbarItemAreaMarker)) { AreaMarkerDefinition = null; } }
void Toolbar_ItemChanged(MyToolbar self, MyToolbar.IndexArgs index) { if (m_syncing) { return; } Debug.Assert(self == Toolbar); var tItem = ToolbarItem.FromItem(self.GetItemAtIndex(index.ItemIndex)); var oldItem = m_items[index.ItemIndex]; if ((tItem.EntityID == 0 && oldItem.EntityID == 0 || (tItem.EntityID != 0 && oldItem.EntityID != 0 && tItem.Equals(oldItem)))) { return; } m_items.RemoveAt(index.ItemIndex); m_items.Insert(index.ItemIndex, tItem); MyMultiplayer.RaiseEvent(this, x => x.SendToolbarItemChanged, tItem, index.ItemIndex); if (m_shouldSetOtherToolbars) { m_shouldSetOtherToolbars = false; foreach (var toolbar in m_openedToolbars) { if (toolbar != self) { toolbar.SetItemAtIndex(index.ItemIndex, self.GetItemAtIndex(index.ItemIndex)); } } m_shouldSetOtherToolbars = true; } }
private void Toolbar_ItemChanged(MyToolbar self, MyToolbar.IndexArgs index) { if (m_syncing) { return; } MyMultiplayer.RaiseEvent(this, x => x.SendToolbarItemChanged, ToolbarItem.FromItem(self.GetItemAtIndex(index.ItemIndex)), index.ItemIndex); }
/// <summary> /// If the page number is negative, it's ignored. /// </summary> public static void SwitchToPageOrNot(this MyToolbar toolbar, int page) { if (page < 0) { return; } toolbar.SwitchToPage(page); }
public void SetToToolbar(MyToolbar toolbar, int index) { var item = m_cachedItem; if (item != null) { toolbar.SetItemAtIndex(index, item); } }
private void CurrentToolbar_SelectedSlotChanged(MyToolbar toolbar, MyToolbar.SlotArgs args) { if (!(toolbar.SelectedItem is MyToolbarItemBot)) { BotToSpawn = null; } if (!(toolbar.SelectedItem is MyToolbarItemAiCommand)) { CommandDefinition = null; } }
public override void Init(MyObjectBuilder_CubeBlock builder, MyCubeGrid cubeGrid) { SyncFlag = true; var sinkComp = new MyResourceSinkComponent(); sinkComp.Init( BlockDefinition.ResourceSinkGroup, 0.0001f, () => IsFunctional ? 0.0001f : 0); sinkComp.IsPoweredChanged += Receiver_IsPoweredChanged; sinkComp.IsPoweredChanged += ComponentStack_IsFunctionalChanged; ResourceSink = sinkComp; base.Init(builder, cubeGrid); m_emissiveNames = new List <string>(BlockDefinition.ButtonCount); for (int i = 1; i <= BlockDefinition.ButtonCount; i++) //button dummies have 1-based index { m_emissiveNames.Add(string.Format("Emissive{0}", i)); // because of modding } var ob = builder as MyObjectBuilder_ButtonPanel; Toolbar = new MyToolbar(MyToolbarType.ButtonPanel, Math.Min(BlockDefinition.ButtonCount, MyToolbar.DEF_SLOT_COUNT), (BlockDefinition.ButtonCount / MyToolbar.DEF_SLOT_COUNT) + 1); Toolbar.DrawNumbers = false; Toolbar.GetSymbol = (slot) => { var ret = new Sandbox.Graphics.GUI.MyGuiControlGrid.ColoredIcon(); if (Toolbar.SlotToIndex(slot) < BlockDefinition.ButtonCount) { ret.Icon = BlockDefinition.ButtonSymbols[Toolbar.SlotToIndex(slot) % BlockDefinition.ButtonSymbols.Length]; var color = BlockDefinition.ButtonColors[Toolbar.SlotToIndex(slot) % BlockDefinition.ButtonColors.Length]; color.W = 1; ret.Color = color; } return(ret); }; Toolbar.Init(ob.Toolbar, this); Toolbar.ItemChanged += Toolbar_ItemChanged; AnyoneCanUse = ob.AnyoneCanUse; SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; ResourceSink.Update(); if (ob.CustomButtonNames != null) { m_customButtonNames = ob.CustomButtonNames; } NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME; UseObjectsComponent.GetInteractiveObjects <MyUseObjectPanelButton>(m_buttonsUseObjects); }
private void OnDefaultsClick(MyGuiControlButton sender) { MyToolbar.SetDefaultColors(); Color c = Color.White; for (int i = 0; i < 7; i++) { m_colorPaletteControlsList[i].ColorMask = (prev(MyToolbar.m_colorMaskHSVSlots[i])).HSVtoColor().ToVector4(); } UpdateSliders(MyToolbar.ColorMaskHSV); }
private void CurrentToolbar_SlotActivated(MyToolbar toolbar, MyToolbar.SlotArgs args) { if (!(toolbar.GetItemAtIndex(toolbar.SlotToIndex(args.SlotNumber.Value)) is MyToolbarItemBot)) { BotToSpawn = null; } if (!(toolbar.GetItemAtIndex(toolbar.SlotToIndex(args.SlotNumber.Value)) is MyToolbarItemAiCommand)) { CommandDefinition = null; } }
private void CreateDefaultToolbar(PlayerId playerId) { if (ContainsToolbar(playerId)) { return; } var toolbar = new MyToolbar(MyToolbarType.Character); toolbar.Init(MySession.Static.Scenario.DefaultToolbar, null, true); AddPlayerToolbar(playerId, toolbar); }
static void OnNewToolbarRequest(ref PlayerToolbarCreatedMsg msg, MyNetworkClient sender) { var playerId = new MyPlayer.PlayerId(sender.SteamUserId, msg.PlayerSerialId); if (MySession.Static.Toolbars.ContainsToolbar(playerId)) { return; } var toolbar = new MyToolbar(MyToolbarType.Character); MySession.Static.Toolbars.AddPlayerToolbar(playerId, toolbar); }
public void LoadToolbars(MyObjectBuilder_Checkpoint checkpoint) { if (checkpoint.AllPlayersData != null) { foreach (var item in checkpoint.AllPlayersData.Dictionary) { var playerId = new PlayerId(item.Key.ClientId, item.Key.SerialId); var toolbar = new MyToolbar(MyToolbarType.Character); toolbar.Init(item.Value.Toolbar, null, true); AddPlayerToolbar(playerId, toolbar); } } }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { SyncFlag = true; var timerBlockDefinition = BlockDefinition as MyTimerBlockDefinition; var sinkComp = new MyResourceSinkComponent(); sinkComp.Init( timerBlockDefinition.ResourceSinkGroup, 0.0000001f, () => (Enabled && IsFunctional) ? ResourceSink.MaxRequiredInput : 0f); ResourceSink = sinkComp; base.Init(objectBuilder, cubeGrid); var ob = objectBuilder as MyObjectBuilder_TimerBlock; Toolbar = new MyToolbar(MyToolbarType.ButtonPanel, 9, 10); Toolbar.Init(ob.Toolbar, this); Toolbar.ItemChanged += Toolbar_ItemChanged; if (ob.JustTriggered) { NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME; } IsCountingDown = ob.IsCountingDown; m_countdownMsStart = ob.Delay; m_countdownMsCurrent = ob.CurrentTime; Silent = ob.Silent; if (m_countdownMsCurrent > 0) { NeedsUpdate |= MyEntityUpdateEnum.EACH_10TH_FRAME; } NeedsUpdate |= MyEntityUpdateEnum.EACH_100TH_FRAME; ResourceSink.IsPoweredChanged += Receiver_IsPoweredChanged; ResourceSink.Update(); AddDebugRenderComponent(new Sandbox.Game.Components.MyDebugRenderComponentDrawPowerReciever(ResourceSink, this)); SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; m_beepStart = new MySoundPair(timerBlockDefinition.TimerSoundStart); m_beepMid = new MySoundPair(timerBlockDefinition.TimerSoundMid); m_beepEnd = new MySoundPair(timerBlockDefinition.TimerSoundEnd); m_beepEmitter = new MyEntity3DSoundEmitter(this); }
public bool AddPlayerToolbar(PlayerId pid, MyToolbar toolbar) { if (pid == null || toolbar == null) { return(false); } MyToolbar result; var success = m_playerToolbars.TryGetValue(pid, out result); if (!success) { m_playerToolbars.Add(pid, toolbar); return(true); } else { return(false); } }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { SyncFlag = true; base.Init(objectBuilder, cubeGrid); var builder = (MyObjectBuilder_AirVent)objectBuilder; m_isDepressurizing = builder.IsDepressurizing; InitializeConveyorEndpoint(); NeedsUpdate = MyEntityUpdateEnum.EACH_10TH_FRAME | MyEntityUpdateEnum.EACH_100TH_FRAME; PowerReceiver = new MyPowerReceiver( MyConsumerGroupEnum.Factory, false, BlockDefinition.OperationalPowerConsumption, ComputeRequiredPower); PowerReceiver.IsPoweredChanged += PowerReceiver_IsPoweredChanged; PowerReceiver.Update(); m_actionToolbar = new MyToolbar(MyToolbarType.ButtonPanel, 2, 1); m_actionToolbar.DrawNumbers = false; m_actionToolbar.Init(null, this); if (builder.OnFullAction != null) { m_onFullAction = MyToolbarItemFactory.CreateToolbarItem(builder.OnFullAction); } if (builder.OnEmptyAction != null) { m_onEmptyAction = MyToolbarItemFactory.CreateToolbarItem(builder.OnEmptyAction); } UpdateEmissivity(); UdpateTexts(); AddDebugRenderComponent(new Components.MyDebugRenderComponentDrawConveyorEndpoint(m_conveyorEndpoint)); SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; }
void Toolbar_ItemChanged(MyToolbar self, MyToolbar.IndexArgs index) { Debug.Assert(self == Toolbar); var tItem = GetToolbarItem(self.GetItemAtIndex(index.ItemIndex)); (SyncObject as MySyncTimerBlock).SendToolbarItemChanged(tItem, index.ItemIndex); if (m_shouldSetOtherToolbars) { m_shouldSetOtherToolbars = false; if (!(SyncObject as MySyncTimerBlock).IsSyncing) { foreach (var toolbar in m_openedToolbars) { if (toolbar != self) { toolbar.SetItemAtIndex(index.ItemIndex, self.GetItemAtIndex(index.ItemIndex)); } } } m_shouldSetOtherToolbars = true; } }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { SyncFlag = true; base.Init(objectBuilder, cubeGrid); m_items = new List <ToolbarItem>(2); for (int i = 0; i < 2; i++) { m_items.Add(new ToolbarItem() { EntityID = 0 }); } Toolbar = new MyToolbar(MyToolbarType.ButtonPanel, 2, 1); Toolbar.DrawNumbers = false; var builder = (MyObjectBuilder_SensorBlock)objectBuilder; m_fieldMin = Vector3.Clamp(builder.FieldMin, new Vector3(-MaxRange), -Vector3.One); m_fieldMax = Vector3.Clamp(builder.FieldMax, Vector3.One, new Vector3(MaxRange)); PlayProximitySound = builder.PlaySound; DetectPlayers = builder.DetectPlayers; DetectFloatingObjects = builder.DetectFloatingObjects; DetectSmallShips = builder.DetectSmallShips; DetectLargeShips = builder.DetectLargeShips; DetectStations = builder.DetectStations; DetectAsteroids = builder.DetectAsteroids; DetectOwner = builder.DetectOwner; DetectFriendly = builder.DetectFriendly; DetectNeutral = builder.DetectNeutral; DetectEnemy = builder.DetectEnemy; m_active = builder.IsActive; Toolbar.Init(builder.Toolbar, this); for (int i = 0; i < 2; i++) { var item = Toolbar.GetItemAtIndex(i); if (item == null) { continue; } m_items.RemoveAt(i); m_items.Insert(i, ToolbarItem.FromItem(item)); } Toolbar.ItemChanged += Toolbar_ItemChanged; NeedsUpdate |= MyEntityUpdateEnum.EACH_10TH_FRAME; SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; PowerReceiver = new MyPowerReceiver( MyConsumerGroupEnum.Utility, false, BlockDefinition.RequiredPowerInput, this.CalculateRequiredPowerInput); PowerReceiver.IsPoweredChanged += Receiver_IsPoweredChanged; PowerReceiver.RequiredInputChanged += Receiver_RequiredInputChanged; PowerReceiver.Update(); m_fieldShape = GetHkShape(); OnClose += delegate(MyEntity self) { m_fieldShape.RemoveReference(); }; }
private void CurrentToolbar_Unselected(MyToolbar toolbar) { Enabled = false; }
private void Toolbar_ItemChanged(MyToolbar self, MyToolbar.IndexArgs index) { SyncObject.SendToolbarItemChanged(ToolbarItem.FromItem(self.GetItemAtIndex(index.ItemIndex)), index.ItemIndex); }
public void SetToolbar( MyToolbar mt) { this.toolStripContainer.TopToolStripPanel.Controls.Add(mt.GetToolStrip()); }