public void SendUpdate(bool isRegistration = false) { Docked = shipComponents.Connectors.Any(x => x.Status == MyShipConnectorStatus.Connected); CurrentInvVolume = 0; MaxInvVolume = 0; foreach (var block in shipComponents.AllMyBlocks) { for (int i = 0; i < block.InventoryCount; i++) { var inv = block.GetInventory(i); CurrentInvVolume += (int)inv.CurrentVolume; MaxInvVolume += (int)inv.MaxVolume; } //CurrentMass += (int)block.Mass; //CurrentMass += block.HasInventory ? (int)block.GetInventory().CurrentMass : 0; } String updateMessage = ParsedMessage.CreateUpdateMessage( //basic details Me.CubeGrid.EntityId, CommandShipEntity, Docked, communicationSystems.GetMsgSntCount(), GetHealth(), //health // speed/vector navigationSystems.GetSpeedVector(), //grid info Me.CubeGrid.GetPosition(), Me.CubeGrid.GridSize, (int)CurrentInvVolume, (int)MaxInvVolume, //docking shipComponents.MergeBlocks.Count(), shipComponents.Connectors.Count(), //tools shipComponents.MiningDrills.Count(), //sensors shipComponents.Sensors.Count(), shipComponents.Cameras.Count(), //weapons shipComponents.GatlingGuns.Count(), shipComponents.RocketLaunchers.Count(), //reactor info shipComponents.Reactors.Count(), //battery info shipComponents.Batteries.Count(), CurPower, MaxPower, isRegistration); communicationSystems.SendMessage(updateMessage); }