diff --git a/ZoFo/GameCore/GameManagers/AssetsManager/AssetContainer.cs b/ZoFo/GameCore/GameManagers/AssetsManager/AssetContainer.cs new file mode 100644 index 0000000..45a83ee --- /dev/null +++ b/ZoFo/GameCore/GameManagers/AssetsManager/AssetContainer.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace ZoFo.GameCore.GameManagers.AssetsManager; + +public class AssetContainer +{ + public List Animations; + public string IdleAnimation; +} \ No newline at end of file diff --git a/ZoFo/GameCore/GameManagers/AssetsManager/AssetManager.cs b/ZoFo/GameCore/GameManagers/AssetsManager/AssetManager.cs new file mode 100644 index 0000000..85623f9 --- /dev/null +++ b/ZoFo/GameCore/GameManagers/AssetsManager/AssetManager.cs @@ -0,0 +1,16 @@ +namespace ZoFo.GameCore.GameManagers.AssetsManager; + +public static class AssetManager +{ + public static AssetContainer Zombie = new() + { + Animations = { "zombie_damaged", "zombie_walk", "zombie_idle", "zombie_attack", "zombie_death" }, + IdleAnimation = "zombie_walk" + }; + + public static AssetContainer Player = new() + { + Animations = { "player_look_down" }, + IdleAnimation = "player_look_down" + }; +} \ No newline at end of file diff --git a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs index 4e2ce66..77b84b9 100644 --- a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs +++ b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs @@ -5,13 +5,14 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using ZoFo.GameCore.GameManagers; +using ZoFo.GameCore.GameManagers.AssetsManager; using ZoFo.GameCore.Graphics; namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies { class Zombie : Enemy { - public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent(new List { "zombie_damaged","zombie_walk","zombie_idle","zombie_attack","zombie_death" }, "zombie_walk"); + public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent(AssetManager.Zombie); public Zombie(Vector2 position) : base(position) { health = 5; diff --git a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs index 84d3e74..c7e5215 100644 --- a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs +++ b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using Microsoft.Xna.Framework.Input; using ZoFo.GameCore.GameManagers; +using ZoFo.GameCore.GameManagers.AssetsManager; using ZoFo.GameCore.GameManagers.CollisionManager; using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ClientToServer; using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; @@ -21,7 +22,7 @@ public class Player : LivingEntity public bool IsTryingToShoot { get; set; } private float speed; private int health; - public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent(new List { "player_look_down" }, "player_look_down"); + public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent(AssetManager.Player); private LootData lootData; public Player(Vector2 position) : base(position) { diff --git a/ZoFo/GameCore/Graphics/AnimatedGraphicsComponent.cs b/ZoFo/GameCore/Graphics/AnimatedGraphicsComponent.cs index b6b7d45..f93e9f8 100644 --- a/ZoFo/GameCore/Graphics/AnimatedGraphicsComponent.cs +++ b/ZoFo/GameCore/Graphics/AnimatedGraphicsComponent.cs @@ -4,6 +4,7 @@ using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using ZoFo.GameCore.GameManagers; +using ZoFo.GameCore.GameManagers.AssetsManager; using ZoFo.GameCore.GUI; namespace ZoFo.GameCore.Graphics @@ -60,7 +61,17 @@ namespace ZoFo.GameCore.Graphics private int interval; private int lastInterval; private Rectangle sourceRectangle; + public AnimatedGraphicsComponent(AssetContainer asset) + { + Build(asset.Animations, asset.IdleAnimation); + } + public AnimatedGraphicsComponent(List animationsId, string neitralAnimationId) + { + Build(animationsId, neitralAnimationId); + } + + private void Build(List animationsId, string neitralAnimationId) { //this._spriteBatch = _spriteBatch; currentFrame = 0;