diff --git a/ZoFo/GameCore/GameManagers/AppManager.cs b/ZoFo/GameCore/GameManagers/AppManager.cs index 9f87b05..d56d903 100644 --- a/ZoFo/GameCore/GameManagers/AppManager.cs +++ b/ZoFo/GameCore/GameManagers/AppManager.cs @@ -12,6 +12,7 @@ using ZoFo.GameCore.GameManagers.ItemManager; using ZoFo.GameCore.GUI; using static System.Collections.Specialized.BitVector32; using MonogameLibrary.UI.Base; +using ZoFo.GameCore.GameManagers.AssetsManager; using ZoFo.GameCore.GameObjects; namespace ZoFo.GameCore.GameManagers @@ -40,6 +41,7 @@ namespace ZoFo.GameCore.GameManagers public ItemManager.ItemManager ItemManager; public SettingsManager SettingsManager; public SoundManager SoundManager; + public AssetManager AssetManager; public AnimationBuilder animationBuilder { get; set; } @@ -64,6 +66,7 @@ namespace ZoFo.GameCore.GameManagers SettingsManager = new SettingsManager(); SettingsManager.LoadSettings(); SoundManager = new SoundManager(); + AssetManager = new AssetManager(); SoundManager.LoadSounds(); 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..334957f --- /dev/null +++ b/ZoFo/GameCore/GameManagers/AssetsManager/AssetManager.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; + +namespace ZoFo.GameCore.GameManagers.AssetsManager; + +public class AssetManager +{ + public AssetContainer Zombie = new() + { + Animations = ["zombie_damaged", "zombie_walk", "zombie_idle", "zombie_attack", "zombie_death"], + IdleAnimation = "zombie_walk" + }; + + public AssetContainer Player = new() + { + Animations = [ "player_look_down" ], + IdleAnimation = "player_look_down" + }; +} \ No newline at end of file diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs b/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs index 366bafc..f5c7830 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs @@ -85,7 +85,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager var databytes = Encoding.UTF8.GetBytes(data); foreach (Socket socket in clients) { - clients[0].SendAsync(databytes, SocketFlags.Partial); + clients[0].SendAsync(databytes); } for (int i = 0; i < 200 && i< datasToSend.Count; i++) updates.RemoveAt(0); diff --git a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs index 496382f..ab008d0 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(AppManager.Instance.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 04143f1..77e30c7 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(AppManager.Instance.AssetManager.Player); private LootData lootData; //public bool isTryingToInteract { get; set; } 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;