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) { 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); (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; } }
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); } }
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); } }
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); }
void Toolbar_ItemChanged(MyToolbar self, MyToolbar.IndexArgs index) { Debug.Assert(self == Toolbar); var tItem = ToolbarItem.FromItem(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 Toolbar_ItemChanged(MyToolbar self, MyToolbar.IndexArgs index) { SyncObject.SendToolbarItemChanged(ToolbarItem.FromItem(self.GetItemAtIndex(index.ItemIndex)), index.ItemIndex); }