Merge pull request #79 from progtime-net/AssetsManager

Assets manager
This commit is contained in:
SergoDobro 2024-08-19 14:38:06 +03:00 committed by GitHub
commit 4a04bf7b7f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 46 additions and 3 deletions

View file

@ -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();

View file

@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace ZoFo.GameCore.GameManagers.AssetsManager;
public class AssetContainer
{
public List<string> Animations;
public string IdleAnimation;
}

View file

@ -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"
};
}

View file

@ -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);

View file

@ -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<string> { "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;

View file

@ -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<string> { "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)

View file

@ -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<string> animationsId, string neitralAnimationId)
{
Build(animationsId, neitralAnimationId);
}
private void Build(List<string> animationsId, string neitralAnimationId)
{
//this._spriteBatch = _spriteBatch;
currentFrame = 0;