public static void UpdateWorld() { ParticleSystem.Update(); //ParticleSystem.Update(); Weather.Update(); if (TMBAW_Game.CurrentGameMode == GameMode.Edit) { foreach (Player player in GetPlayers()) { player.ComplexAnimation.RemoveAllFromQueue(); player.AddAnimationToQueue("editMode"); } LevelEditor.Update(); } else { if (IsTestingLevel) { if (GetPlayers()[0].IsTestLevelPressed()) { LevelEditor.GoBackToEditing(); } } UpdateVisual(); } TimesUpdated++; ProjectileSystem.Update(); for (var i = Entities.Count - 1; i >= 0; i--) { var entity = Entities[i]; if (entity.ToDelete) { entity.Destroy(); } } foreach (Player player in GetPlayers()) { player.Update(); } if (TMBAW_Game.CurrentGameMode == GameMode.Play) { foreach (Player player in GameWorld.GetPlayers()) { PlayerTrail.Add(player); } } foreach (var c in _clouds) { c.CheckOutOfRange(); c.Update(); } for (var i = 0; i < Entities.Count; i++) { var entity = Entities[i]; if (entity.IsDead) { continue; } entity.Update(); //// Check enemy collision with other enemies. //for (int j = i + 1; j < Entities.Count; j++) //{ // if (Entities[i].IsTouchingEntity(Entities[j])) // { // if (Entities[i].Position.X > Entities[j].Position.X) // { // Entities[i].SetX(Entities[j].Position.X + Entities[j].CollRectangle.Width / 2); // } // else // { // Entities[i].SetX(Entities[j].Position.X - Entities[i].CollRectangle.Width / 2); // } // Entities[i].ForceUpdateCollisionRectangle(); // } //} } foreach (var tileNumber in ChunkManager.GetVisibleIndexes()) { if (tileNumber >= 0 && tileNumber < TileArray.Length) { TileArray[tileNumber]?.Update(); } } if (Session.IsHost) { Session.SendEntityUpdates(); } }