public void SetQuality(TerrainQuality quality)
    {
        switch (quality)
        {
        case TerrainQuality.HighPoly:
        {
            terrain.drawHeightmap       = true;
            terrain.drawTreesAndFoliage = true;

            if (lowPolyTerrain != null)
            {
                lowPolyTerrain.SetActive(false);
            }

            break;
        }

        case TerrainQuality.LowPoly:
        {
            terrain.drawHeightmap       = false;
            terrain.drawTreesAndFoliage = false;

            if (lowPolyTerrain != null)
            {
                lowPolyTerrain.SetActive(true);
            }

            break;
        }
        }
        this.quality = quality;
    }
        internal override void InternalDeserialize(NetIncomingMessage lidgrenMsg)
        {
            base.InternalDeserialize(lidgrenMsg);

            WarpMode                         = (WarpMode)lidgrenMsg.ReadInt32();
            GameMode                         = (GameMode)lidgrenMsg.ReadInt32();
            TerrainQuality                   = (TerrainQuality)lidgrenMsg.ReadInt32();
            AllowCheats                      = lidgrenMsg.ReadBoolean();
            AllowAdmin                       = lidgrenMsg.ReadBoolean();
            AllowSackKerbals                 = lidgrenMsg.ReadBoolean();
            MaxNumberOfAsteroids             = lidgrenMsg.ReadInt32();
            ConsoleIdentifier                = lidgrenMsg.ReadString();
            GameDifficulty                   = (GameDifficulty)lidgrenMsg.ReadInt32();
            SafetyBubbleDistance             = lidgrenMsg.ReadFloat();
            VesselUpdatesMsInterval          = lidgrenMsg.ReadInt32();
            SecondaryVesselUpdatesMsInterval = lidgrenMsg.ReadInt32();
            AllowOtherLaunchSites            = lidgrenMsg.ReadBoolean();
            AllowStockVessels                = lidgrenMsg.ReadBoolean();
            CanRevert                        = lidgrenMsg.ReadBoolean();
            AutoHireCrews                    = lidgrenMsg.ReadBoolean();
            BypassEntryPurchaseAfterResearch = lidgrenMsg.ReadBoolean();
            IndestructibleFacilities         = lidgrenMsg.ReadBoolean();
            MissingCrewsRespawn              = lidgrenMsg.ReadBoolean();
            ReentryHeatScale                 = lidgrenMsg.ReadFloat();
            ResourceAbundance                = lidgrenMsg.ReadFloat();
            FundsGainMultiplier              = lidgrenMsg.ReadFloat();
            FundsLossMultiplier              = lidgrenMsg.ReadFloat();
            RepGainMultiplier                = lidgrenMsg.ReadFloat();
            RepLossMultiplier                = lidgrenMsg.ReadFloat();
            RepLossDeclined                  = lidgrenMsg.ReadFloat();
            ScienceGainMultiplier            = lidgrenMsg.ReadFloat();
            StartingFunds                    = lidgrenMsg.ReadFloat();
            StartingReputation               = lidgrenMsg.ReadFloat();
            StartingScience                  = lidgrenMsg.ReadFloat();
            RespawnTimer                     = lidgrenMsg.ReadFloat();
            EnableCommNet                    = lidgrenMsg.ReadBoolean();
            EnableKerbalExperience           = lidgrenMsg.ReadBoolean();
            ImmediateLevelUp                 = lidgrenMsg.ReadBoolean();
            ResourceTransferObeyCrossfeed    = lidgrenMsg.ReadBoolean();
            BuildingImpactDamageMult         = lidgrenMsg.ReadFloat();
            PartUpgradesInCareerAndSandbox   = lidgrenMsg.ReadBoolean();
            RequireSignalForControl          = lidgrenMsg.ReadBoolean();
            DsnModifier                      = lidgrenMsg.ReadFloat();
            RangeModifier                    = lidgrenMsg.ReadFloat();
            OcclusionMultiplierVac           = lidgrenMsg.ReadFloat();
            OcclusionMultiplierAtm           = lidgrenMsg.ReadFloat();
            EnableGroundStations             = lidgrenMsg.ReadBoolean();
            PlasmaBlackout                   = lidgrenMsg.ReadBoolean();
            ActionGroupsAlways               = lidgrenMsg.ReadBoolean();
            GKerbalLimits                    = lidgrenMsg.ReadBoolean();
            GPartLimits                      = lidgrenMsg.ReadBoolean();
            PressurePartLimits               = lidgrenMsg.ReadBoolean();
            KerbalGToleranceMult             = lidgrenMsg.ReadFloat();
            AllowNegativeCurrency            = lidgrenMsg.ReadBoolean();
            MinScreenshotIntervalMs          = lidgrenMsg.ReadInt32();
            MaxScreenshotWidth               = lidgrenMsg.ReadInt32();
            MaxScreenshotHeight              = lidgrenMsg.ReadInt32();
            MinCraftLibraryRequestIntervalMs = lidgrenMsg.ReadInt32();
            PrintMotdInChat                  = lidgrenMsg.ReadBoolean();
        }