/// <summary>
        /// Updates the proto vessel with the values we received about a part module change
        /// </summary>
        private static void UpdateProtoVesselFileWithNewPartSyncUiFieldData(Classes.Vessel vessel, VesselPartSyncUiFieldMsgData msgData)
        {
            var part = vessel.GetPart(msgData.PartFlightId);

            if (part != null)
            {
                var module = part.GetSingleModule(msgData.ModuleName);
                if (module != null)
                {
                    switch (msgData.FieldType)
                    {
                    case PartSyncFieldType.Boolean:
                        module.UpdateValue(msgData.FieldName, msgData.BoolValue.ToString(CultureInfo.InvariantCulture));
                        break;

                    case PartSyncFieldType.Integer:
                        module.UpdateValue(msgData.FieldName, msgData.IntValue.ToString(CultureInfo.InvariantCulture));
                        break;

                    case PartSyncFieldType.Float:
                        module.UpdateValue(msgData.FieldName, msgData.FloatValue.ToString(CultureInfo.InvariantCulture));
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Updates the proto vessel with the values we received about a part module change
        /// </summary>
        private static void UpdateProtoVesselFileWithNewPartSyncFieldData(Classes.Vessel vessel, VesselPartSyncFieldMsgData msgData)
        {
            var part = vessel.GetPart(msgData.PartFlightId);

            if (part != null)
            {
                var module = part.GetSingleModule(msgData.ModuleName);
                if (module != null)
                {
                    switch (msgData.FieldType)
                    {
                    case PartSyncFieldType.Boolean:
                        module.UpdateValue(msgData.FieldName, msgData.BoolValue.ToString(CultureInfo.InvariantCulture));
                        break;

                    case PartSyncFieldType.Integer:
                        module.UpdateValue(msgData.FieldName, msgData.IntValue.ToString(CultureInfo.InvariantCulture));
                        break;

                    case PartSyncFieldType.Float:
                        module.UpdateValue(msgData.FieldName, msgData.FloatValue.ToString(CultureInfo.InvariantCulture));
                        break;

                    case PartSyncFieldType.Double:
                        module.UpdateValue(msgData.FieldName, msgData.DoubleValue.ToString(CultureInfo.InvariantCulture));
                        break;

                    case PartSyncFieldType.Vector3:
                        module.UpdateValue(msgData.FieldName, $"{msgData.VectorValue[0].ToString(CultureInfo.InvariantCulture)}," +
                                           $"{msgData.VectorValue[1].ToString(CultureInfo.InvariantCulture)}," +
                                           $"{msgData.VectorValue[2].ToString(CultureInfo.InvariantCulture)}");
                        break;

                    case PartSyncFieldType.Quaternion:
                        module.UpdateValue(msgData.FieldName, $"{msgData.QuaternionValue[0].ToString(CultureInfo.InvariantCulture)}," +
                                           $"{msgData.QuaternionValue[1].ToString(CultureInfo.InvariantCulture)}," +
                                           $"{msgData.QuaternionValue[2].ToString(CultureInfo.InvariantCulture)}," +
                                           $"{msgData.QuaternionValue[3].ToString(CultureInfo.InvariantCulture)}");
                        break;

                    case PartSyncFieldType.Object:
                    case PartSyncFieldType.String:
                    case PartSyncFieldType.Enum:
                        module.UpdateValue(msgData.FieldName, msgData.StrValue);
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
            }
        }