From dd4a5c7fb2da15ff2e6c1bea4ea5235abb84b585 Mon Sep 17 00:00:00 2001 From: Ivan Filipenkov Date: Thu, 17 Aug 2023 22:40:30 +0300 Subject: [PATCH] GameManager.Remove(GameObject) --- DangerousD/GameCore/Managers/GameManager.cs | 32 +++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/DangerousD/GameCore/Managers/GameManager.cs b/DangerousD/GameCore/Managers/GameManager.cs index 342813b..7f19fd3 100644 --- a/DangerousD/GameCore/Managers/GameManager.cs +++ b/DangerousD/GameCore/Managers/GameManager.cs @@ -25,7 +25,7 @@ namespace DangerousD.GameCore public List players; public List otherObjects = new(); - public Player GetPlayer1 { get; private set; } + public Player GetPlayer1 => players[0]; public GameManager() { others = new List(); @@ -49,7 +49,6 @@ namespace DangerousD.GameCore { livingEntities.Add(gameObject as LivingEntity); players.Add(objPl); - GetPlayer1 = players[0]; } else if (gameObject is LivingEntity objLE) { @@ -72,6 +71,35 @@ namespace DangerousD.GameCore } } + public void Remove(GameObject gameObject) + { + GetAllGameObjects.Remove(gameObject); + if (gameObject is Player objPl) + { + livingEntities.Remove(gameObject as LivingEntity); + players.Remove(objPl); + } + else if (gameObject is LivingEntity objLE) + { + livingEntities.Remove(objLE); + } + else if (gameObject is Entity objE) + { + entities.Remove(objE); + } + else if (gameObject is MapObject obj) + { + if (obj.IsColliderOn) + mapObjects.Remove(obj); + else + BackgroundObjects.Remove(obj); + } + else + { + otherObjects.Remove(gameObject); + } + } + public void Draw(SpriteBatch _spriteBatch) { foreach (var item in BackgroundObjects)