public static MyToolbarItem ToItem(ToolbarItem msgItem) { MyToolbarItem item = null; if (string.IsNullOrEmpty(msgItem.GroupName)) { MyTerminalBlock block; if (MyEntities.TryGetEntityById(msgItem.EntityID, out block)) { var builder = MyToolbarItemFactory.TerminalBlockObjectBuilderFromBlock(block); builder.Action = msgItem.Action; builder.Parameters = msgItem.Parameters; item = MyToolbarItemFactory.CreateToolbarItem(builder); } } else { MyCubeBlock parent; if (MyEntities.TryGetEntityById(msgItem.EntityID, out parent)) { var grid = parent.CubeGrid; var groupName = msgItem.GroupName; var group = grid.GridSystems.TerminalSystem.BlockGroups.Find(x => x.Name.ToString() == groupName); if (group != null) { var builder = MyToolbarItemFactory.TerminalGroupObjectBuilderFromGroup(@group); builder.Action = msgItem.Action; builder.Parameters = msgItem.Parameters; builder.BlockEntityId = msgItem.EntityID; item = MyToolbarItemFactory.CreateToolbarItem(builder); } } } return(item); }
private static void OnToolbarItemChanged(MySyncAirVent sync, ref ChangeToolbarItemMsg msg, MyNetworkClient sender) { MyToolbarItem item = null; if (msg.Item.EntityID != 0) { if (string.IsNullOrEmpty(msg.Item.GroupName)) { MyTerminalBlock block; if (MyEntities.TryGetEntityById <MyTerminalBlock>(msg.Item.EntityID, out block)) { var builder = MyToolbarItemFactory.TerminalBlockObjectBuilderFromBlock(block); builder.Action = msg.Item.Action; builder.Parameters = msg.Item.Parameters; item = MyToolbarItemFactory.CreateToolbarItem(builder); } } else { MyAirVent parent; if (MyEntities.TryGetEntityById <MyAirVent>(msg.Item.EntityID, out parent)) { var grid = parent.CubeGrid; var groupName = msg.Item.GroupName; var group = grid.GridSystems.TerminalSystem.BlockGroups.Find((x) => x.Name.ToString() == groupName); if (group != null) { var builder = MyToolbarItemFactory.TerminalGroupObjectBuilderFromGroup(group); builder.Action = msg.Item.Action; builder.BlockEntityId = msg.Item.EntityID; builder.Parameters = msg.Item.Parameters; item = MyToolbarItemFactory.CreateToolbarItem(builder); } } } } if (msg.Index == 0) { sync.m_airVent.m_onFullAction = item; } else { sync.m_airVent.m_onEmptyAction = item; } sync.m_airVent.RaisePropertiesChanged(); if (Sync.IsServer) { Sync.Layer.SendMessageToAllButOne(ref msg, sender.SteamUserId); } }
void SendToolbarItemChanged(ToolbarItem sentItem, int index) { m_syncing = true; MyToolbarItem item = null; if (sentItem.EntityID != 0) { if (string.IsNullOrEmpty(sentItem.GroupName)) { MyTerminalBlock block; if (MyEntities.TryGetEntityById <MyTerminalBlock>(sentItem.EntityID, out block)) { var builder = MyToolbarItemFactory.TerminalBlockObjectBuilderFromBlock(block); builder._Action = sentItem.Action; builder.Parameters = sentItem.Parameters; item = MyToolbarItemFactory.CreateToolbarItem(builder); } } else { var grid = CubeGrid; var groupName = sentItem.GroupName; var group = grid.GridSystems.TerminalSystem.BlockGroups.Find((x) => x.Name.ToString() == groupName); if (group != null) { var builder = MyToolbarItemFactory.TerminalGroupObjectBuilderFromGroup(group); builder._Action = sentItem.Action; builder.BlockEntityId = sentItem.EntityID; builder.Parameters = sentItem.Parameters; item = MyToolbarItemFactory.CreateToolbarItem(builder); } } } if (index == 0) { m_onFullAction = item; } else { m_onEmptyAction = item; } RaisePropertiesChanged(); m_syncing = false; }
private static void OnToolbarItemChanged(MySyncTimerBlock sync, ref ChangeToolbarItemMsg msg, MyNetworkClient sender) { sync.m_syncing = true; MyToolbarItem item = null; if (msg.Item.EntityID != 0) { if (string.IsNullOrEmpty(msg.Item.GroupName)) { MyTerminalBlock block; if (MyEntities.TryGetEntityById <MyTerminalBlock>(msg.Item.EntityID, out block)) { var builder = MyToolbarItemFactory.TerminalBlockObjectBuilderFromBlock(block); builder.Action = msg.Item.Action; item = MyToolbarItemFactory.CreateToolbarItem(builder); } } else { MyTimerBlock parent; if (MyEntities.TryGetEntityById <MyTimerBlock>(msg.Item.EntityID, out parent)) { var grid = parent.CubeGrid; var groupName = msg.Item.GroupName; var group = grid.GridSystems.TerminalSystem.BlockGroups.Find((x) => x.Name.ToString() == groupName);; if (group != null) { var builder = MyToolbarItemFactory.TerminalGroupObjectBuilderFromGroup(group); builder.Action = msg.Item.Action; builder.BlockEntityId = msg.Item.EntityID; item = MyToolbarItemFactory.CreateToolbarItem(builder); } } } } sync.m_timer.Toolbar.SetItemAtIndex(msg.Index, item); sync.m_syncing = false; if (Sync.IsServer) { Sync.Layer.SendMessageToAll(ref msg); } }
public static MyToolbarItem ToItem(ToolbarItem msgItem) { MyToolbarItem item = null; if (msgItem.GunId != null) { MyObjectBuilder_ToolbarItemWeapon data = MyToolbarItemFactory.WeaponObjectBuilder(); data.defId = msgItem.GunId.Value; item = MyToolbarItemFactory.CreateToolbarItem(data); } else if (string.IsNullOrEmpty(msgItem.GroupName)) { MyTerminalBlock block; if (Sandbox.Game.Entities.MyEntities.TryGetEntityById <MyTerminalBlock>(msgItem.EntityID, out block, false)) { MyObjectBuilder_ToolbarItemTerminalBlock data = MyToolbarItemFactory.TerminalBlockObjectBuilderFromBlock(block); data._Action = msgItem.Action; data.Parameters = msgItem.Parameters; item = MyToolbarItemFactory.CreateToolbarItem(data); } } else { MyCubeBlock block2; if (Sandbox.Game.Entities.MyEntities.TryGetEntityById <MyCubeBlock>(msgItem.EntityID, out block2, false)) { string groupName = msgItem.GroupName; MyBlockGroup group = block2.CubeGrid.GridSystems.TerminalSystem.BlockGroups.Find(x => x.Name.ToString() == groupName); if (group != null) { MyObjectBuilder_ToolbarItemTerminalGroup data = MyToolbarItemFactory.TerminalGroupObjectBuilderFromGroup(group); data._Action = msgItem.Action; data.Parameters = msgItem.Parameters; data.BlockEntityId = msgItem.EntityID; item = MyToolbarItemFactory.CreateToolbarItem(data); } } } return(item); }