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"); } }
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); } }