public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { SyncFlag = true; var sinkComp = new MyResourceSinkComponent(); sinkComp.Init( BlockDefinition.ResourceSinkGroup, BlockDefinition.RequiredPowerInput, this.CalculateRequiredPowerInput); ResourceSink = sinkComp; 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.Value = Vector3.Clamp(builder.FieldMin, new Vector3(-MaxRange), -Vector3.One); m_fieldMax.Value = 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.Value = 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; ResourceSink.IsPoweredChanged += Receiver_IsPoweredChanged; ResourceSink.RequiredInputChanged += Receiver_RequiredInputChanged; ResourceSink.Update(); m_fieldShape = GetHkShape(); OnClose += delegate(MyEntity self) { m_fieldShape.RemoveReference(); }; m_gizmoColor = MySandboxGame.IsDirectX11 ? new Vector4(0.35f, 0, 0, 0.5f) : new Vector4(0.1f, 0, 0, 0.1f); }
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) { if (m_selectedWaypoints.Count == 1) { SendToolbarItemChanged(ToolbarItem.FromItem(self.GetItemAtIndex(index.ItemIndex)), index.ItemIndex, m_waypoints.IndexOf(m_selectedWaypoints[0])); } }
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); } }
private void CurrentToolbar_SlotActivated(MyToolbar toolbar, MyToolbar.SlotArgs args) { if (!(toolbar.GetItemAtIndex(toolbar.SlotToIndex(args.SlotNumber.Value)) is MyToolbarItemVoxelHand)) { if (Enabled) Enabled = false; } }
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)); 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)); MyMultiplayer.RaiseEvent(this, x => x.SendToolbarItemChanged, tItem, index.ItemIndex); }
void Toolbar_ItemChanged(MyToolbar self, MyToolbar.IndexArgs index) { if (m_syncing) { return; } Debug.Assert(self == Toolbar); MyToolbarItem item = self.GetItemAtIndex(index.ItemIndex); if (item != null) { MyMultiplayer.RaiseEvent(this, x => x.SendToolbarItemChanged, item.GetObjectBuilder(), index.ItemIndex); } else { MyMultiplayer.RaiseEvent(this, x => x.SendToolbarItemRemoved, index.ItemIndex); } }
private void CurrentToolbar_SlotActivated(MyToolbar toolbar, MyToolbar.SlotArgs args) { if (!(toolbar.GetItemAtIndex(toolbar.SlotToIndex(args.SlotNumber.Value)) is MyToolbarItemPrefabThrower)) Enabled = false; }
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)); (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; } }
void Toolbar_ItemChanged(MyToolbar toolbar, MyToolbar.IndexArgs index) { var item = toolbar.GetItemAtIndex(index.ItemIndex); if (item != null) { var def = item as MyToolbarItemDefinition; if (def != null) { var defId = def.Definition.Id; if (defId != null) { if (defId.TypeId != typeof(MyObjectBuilder_PhysicalGunObject)) MyToolBarCollection.RequestChangeSlotItem(MySession.Static.LocalHumanPlayer.Id, index.ItemIndex, defId); else MyToolBarCollection.RequestChangeSlotItem(MySession.Static.LocalHumanPlayer.Id, index.ItemIndex, item.GetObjectBuilder()); } } } else if (MySandboxGame.IsGameReady) { MyToolBarCollection.RequestClearSlot(MySession.Static.LocalHumanPlayer.Id, index.ItemIndex); } }
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 CurrentToolbar_SlotActivated(MyToolbar toolbar, MyToolbar.SlotArgs args) { if (!(toolbar.GetItemAtIndex(toolbar.SlotToIndex(args.SlotNumber.Value)) is MyToolbarItemAreaMarker)) AreaMarkerDefinition = null; }
private void Toolbar_ItemChanged(MyToolbar self, MyToolbar.IndexArgs index) { SyncObject.SendToolbarItemChanged(ToolbarItem.FromItem(self.GetItemAtIndex(index.ItemIndex)), index.ItemIndex); }