From 11d224414f02fe094aa58bad4f12a9ba93d138c9 Mon Sep 17 00:00:00 2001 From: Mootfrost777 Date: Sun, 18 Aug 2024 23:38:49 +0300 Subject: [PATCH 1/2] Add AssetManager.cs --- .../GameManagers/AssetsManager/AssetContainer.cs | 9 +++++++++ .../GameManagers/AssetsManager/AssetManager.cs | 16 ++++++++++++++++ .../Entities/LivingEntities/Enemies/Zombie.cs | 3 ++- .../Entities/LivingEntities/Player/Player.cs | 3 ++- .../Graphics/AnimatedGraphicsComponent.cs | 11 +++++++++++ 5 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 ZoFo/GameCore/GameManagers/AssetsManager/AssetContainer.cs create mode 100644 ZoFo/GameCore/GameManagers/AssetsManager/AssetManager.cs 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; From b4c059bd126d1cc32836bb87931013fe7904ae19 Mon Sep 17 00:00:00 2001 From: Mootfrost777 Date: Mon, 19 Aug 2024 11:52:12 +0300 Subject: [PATCH 2/2] Add AssetManager --- ZoFo/GameCore/GameManagers/AppManager.cs | 3 +++ .../GameManagers/AssetsManager/AssetManager.cs | 12 +++++++----- .../NetworkManager/ClientNetworkManager.cs | 2 +- .../NetworkManager/ServerNetworkManager.cs | 4 ++-- .../Entities/LivingEntities/Enemies/Zombie.cs | 2 +- .../Entities/LivingEntities/Player/Player.cs | 2 +- 6 files changed, 15 insertions(+), 10 deletions(-) diff --git a/ZoFo/GameCore/GameManagers/AppManager.cs b/ZoFo/GameCore/GameManagers/AppManager.cs index b129359..ff3ff44 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; } @@ -63,6 +65,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/AssetManager.cs b/ZoFo/GameCore/GameManagers/AssetsManager/AssetManager.cs index 85623f9..334957f 100644 --- a/ZoFo/GameCore/GameManagers/AssetsManager/AssetManager.cs +++ b/ZoFo/GameCore/GameManagers/AssetsManager/AssetManager.cs @@ -1,16 +1,18 @@ +using System.Collections.Generic; + namespace ZoFo.GameCore.GameManagers.AssetsManager; -public static class AssetManager +public class AssetManager { - public static AssetContainer Zombie = new() + public AssetContainer Zombie = new() { - Animations = { "zombie_damaged", "zombie_walk", "zombie_idle", "zombie_attack", "zombie_death" }, + Animations = ["zombie_damaged", "zombie_walk", "zombie_idle", "zombie_attack", "zombie_death"], IdleAnimation = "zombie_walk" }; - public static AssetContainer Player = new() + public AssetContainer Player = new() { - Animations = { "player_look_down" }, + Animations = [ "player_look_down" ], IdleAnimation = "player_look_down" }; } \ No newline at end of file diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs b/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs index 6e1e6b4..35638fa 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs @@ -117,7 +117,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager while(socket.Connected) { byte[] bytes = new byte[65535]; - var countAnsw = socket.Receive(bytes, SocketFlags.Partial); //Вылетает если кто то закрыл + var countAnsw = socket.Receive(bytes); //Вылетает если кто то закрыл string update = Encoding.UTF8.GetString(bytes, 0, countAnsw); // обновление отосланные сервером GetDataSent(update); } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs b/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs index 697c61d..ba1a01a 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs @@ -86,7 +86,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); @@ -172,7 +172,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager while (client.Connected) { var buff = new byte[65535]; - var answ = client.Receive(buff, SocketFlags.Partial); + var answ = client.Receive(buff); string response = Encoding.UTF8.GetString(buff, 0, answ); GetDataSend(response); } diff --git a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs index 77b84b9..5777e8f 100644 --- a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs +++ b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Enemies/Zombie.cs @@ -12,7 +12,7 @@ namespace ZoFo.GameCore.GameObjects.Entities.LivingEntities.Enemies { class Zombie : Enemy { - public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent(AssetManager.Zombie); + 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 c7e5215..ed4502f 100644 --- a/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs +++ b/ZoFo/GameCore/GameObjects/Entities/LivingEntities/Player/Player.cs @@ -22,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(AssetManager.Player); + public override GraphicsComponent graphicsComponent { get; } = new AnimatedGraphicsComponent(AppManager.Instance.AssetManager.Player); private LootData lootData; public Player(Vector2 position) : base(position) {