Example #1
0
        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);
        }
Example #2
0
 public void SendUpdate()
 {
     communicationSystems.SendMessage(ParsedMessage.CreateUpdateMessage(Me.CubeGrid.EntityId, CommandShipEntity, navigationSystems.LinearVelocity, Me.CubeGrid.GetPosition(), communicationSystems.GetMsgSntCount(), Docked,
                                                                        shipComponents.Cameras.Count(), shipComponents.Connectors.Count(), shipComponents.MiningDrills.Count(), shipComponents.Sensors.Count(), shipComponents.GatlingGuns.Count(),
                                                                        Me.CubeGrid.GridSize, storageSystem.GetPercentFull()));
 }