ZoFo/ZoFo/GameCore/GameObjects/Entities/Entity.cs
2024-08-18 19:27:38 +03:00

53 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using ZoFo.GameCore.GameManagers;
using ZoFo.GameCore.GameManagers.CollisionManager;
namespace ZoFo.GameCore.GameObjects.Entities
{
public abstract class Entity : GameObject
{
//public override GraphicsComponent graphicsComponent => null;
public CollisionComponent collisionComponent { get; protected set; }
public int Id { get; set; }
static int totalEntitiesCreated = 0;
protected Entity(Vector2 position) : base(position)
{
Id = totalEntitiesCreated;
totalEntitiesCreated++;
collisionComponent = new CollisionComponent(this);
}
/// <summary>
/// For initialisation on Client
/// </summary>
/// <param name="newId"></param>
public void SetIdByClient(int newId)
{
Id = newId;
}
public virtual void Update()
{
}
public override void UpdateLogic()
{
Update();
base.UpdateLogic();
}
public void StartAnimation(string animationId)
{
(graphicsComponent as Graphics.AnimatedGraphicsComponent).StartAnimation(animationId);
AppManager.Instance.server.AddData(new GameManagers.NetworkManager.Updates.ServerToClient.UpdateAnimation()
{
animationId = animationId,
IdEntity = Id
});
}
}
}