コード例 #1
0
ファイル: Weather.cs プロジェクト: bitcynth/vsessentialsmod
        private void cTileLength(int groupId, CmdArgs args)
        {
            CloudRenderer renderer = this.cloudRenderer as CloudRenderer;

            if (args.Length == 0)
            {
                capi.ShowChatNotification(string.Format("Current view distance: {0}", cloudRenderer.CloudTileLength * renderer.CloudTileSize));
                return;
            }

            try
            {
                int dist = int.Parse(args[0]);


                renderer.InitCloudTiles(dist);
                renderer.UpdateCloudTiles();
                renderer.LoadCloudModel();
                capi.ShowChatNotification(string.Format("New view distance {0} set.", dist));
            }
            catch (Exception)
            {
                capi.ShowChatNotification("Exception when parsing params");
            }
        }
コード例 #2
0
        void ProcessWeatherUpdate(WeatherState msg)
        {
            WeatherSimulationRegion weatherSim = getOrCreateWeatherSimForRegion(msg.RegionX, msg.RegionZ);

            if (weatherSim == null)
            {
                Console.WriteLine("weatherSim for region {0}/{1} is null. No idea what to do here", msg.RegionX, msg.RegionZ);
                return;
            }

            if (msg.updateInstant)
            {
//                ReloadConfigs();
                weatherSim.ReloadPatterns(api.World.Seed);

                for (int i = 0; i < weatherSim.WeatherPatterns.Length; i++)
                {
                    weatherSim.WeatherPatterns[i].Initialize(i, api.World.Seed);
                }
            }

            weatherSim.NewWePattern       = weatherSim.WeatherPatterns[msg.NewPattern.Index];
            weatherSim.NewWePattern.State = msg.NewPattern;

            weatherSim.OldWePattern       = weatherSim.WeatherPatterns[msg.OldPattern.Index];
            weatherSim.OldWePattern.State = msg.OldPattern;

            weatherSim.TransitionDelay = msg.TransitionDelay;
            weatherSim.Transitioning   = msg.Transitioning;
            weatherSim.Weight          = msg.Weight;

            //bool windChanged = weatherSim.CurWindPattern.State.Index != msg.WindPattern.Index;
            weatherSim.CurWindPattern       = weatherSim.WindPatterns[msg.WindPattern.Index];
            weatherSim.CurWindPattern.State = msg.WindPattern;

            weatherSim.CurWeatherEvent       = weatherSim.WeatherEvents[msg.WeatherEvent.Index];
            weatherSim.CurWeatherEvent.State = msg.WeatherEvent;

            if (msg.updateInstant)
            {
                weatherSim.NewWePattern.OnBeginUse();
                cloudRenderer.instantTileBlend = true;
            }


            //api.World.Logger.Notification("Weather pattern update @{0}/{1}", weatherSim.regionX, weatherSim.regionZ);

            if (msg.Transitioning)
            {
                weatherSim.Weight = 0;
            }

            if (msg.updateInstant)
            {
                weatherSim.TickEvery25ms(0.025f);
                cloudRenderer.UpdateCloudTiles(short.MaxValue);
            }
        }