public List <IThread> GetTopThreads() { List <IThread> list = new List <IThread>(); DataRow[] rows = table.Select("IsTop = true"); foreach (DataRow row in rows) { Thread t = new Thread(); t.Content = row["Content"].ToString(); t.IsTop = true; DataRow[] cs = table.Select("ParentID =" + Convert.ToInt32(row["ID"])); foreach (DataRow r in cs) { if (Convert.ToBoolean(r["IsMessage"])) { Message m = new Message(); m.Content = r["Content"].ToString(); m.IsTop = false; t.Add(m); } else { Thread tt = new Thread(); tt.Content = r["Content"].ToString(); tt.IsTop = false; t.Add(tt); } } list.Add(t); } return(list); }
private void UpdateWorld() { Thread.Add(() => { Stopwatch sw = new Stopwatch(); sw.Start(); do { if (sw.Elapsed.TotalSeconds >= 1) { sw.Restart(); if (CanUpdateWorld) { CanUpdateWorld = false; if (Core.Settings.Features.PlayerInfo) { if (PlayerInfo.Season == SeasonType.Nothing) { Season = Core.World.Season; } else { Season = Core.World.GenerateSeason((int)PlayerInfo.Season); } if (PlayerInfo.Weather == WeatherType.Nothing) { Weather = Core.World.Weather; } else { Weather = Core.World.GenerateWeather(Season, (int)PlayerInfo.Weather); } if (PlayerInfo.DefaultTimeOffset) { TimeOffset = Core.World.TimeOffset; } else { TimeOffset = PlayerInfo.TimeOffset; } if (PlayerInfo.DefaultDoDayCycle) { DoDayCycle = Core.World.DoDayCycle; } else { DoDayCycle = PlayerInfo.DoDayCycle; } } } Network.SentToPlayer(new Package.Package(Core, PackageTypes.WorldData, GenerateWorld(), Network)); } if (sw.ElapsedMilliseconds < 1000) { Thread.Sleep(1000 - sw.ElapsedMilliseconds.ToInt()); } } while (Network.IsActive); }); }