Пример #1
0
        public NetOutgoingMessage CreateVesselMessage()
        {
            if (HighLogic.LoadedScene != GameScenes.FLIGHT || FlightGlobals.ActiveVessel == null || !FlightGlobals.ActiveVessel.loaded || FlightGlobals.ActiveVessel.packed)
            {
                return(null);
            }

            NetOutgoingMessage netOutgoingMessage = this.m_netClient.CreateMessage();

            ProtoVessel protoVessel = new ProtoVessel(FlightGlobals.fetch.activeVessel); // Get active vessel as a ProtoVessel.
            ConfigNode  configNode  = HighLogic.CurrentGame.config;

            protoVessel.Save(configNode); // Save ProtoVessel in empty node to get data about it and send it later.

            IGameMessage gameMessage = new VesselMessage
            {
                ID   = FlightGlobals.fetch.activeVessel.id.ToString(),
                Name = FlightGlobals.fetch.activeVessel.name,
                Data = configNode.ToString(), // Send data about vessel here.
            };

            netOutgoingMessage.Write((byte)gameMessage.MessageType);
            gameMessage.EncodeMessage(netOutgoingMessage);

            return(netOutgoingMessage);
        }