44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace Encompass
|
|
{
|
|
public abstract class EntityRenderer : Renderer
|
|
{
|
|
private readonly List<Type> componentTypes = new List<Type>();
|
|
private readonly Type drawComponentType;
|
|
|
|
private EntityTracker entityTracker = new EntityTracker();
|
|
|
|
public abstract void Render(Entity entity);
|
|
|
|
public bool CheckAndTrackEntity(Guid entityID)
|
|
{
|
|
var entity = GetEntity(entityID);
|
|
var shouldTrack = CheckEntity(entity);
|
|
if (shouldTrack) { entityTracker.TrackEntity(entityID); }
|
|
return shouldTrack;
|
|
}
|
|
|
|
public bool CheckAndUntrackEntity(Guid entityID)
|
|
{
|
|
var entity = GetEntity(entityID);
|
|
var shouldUntrack = CheckEntity(entity);
|
|
if (shouldUntrack) { entityTracker.UntrackEntity(entityID); }
|
|
return shouldUntrack;
|
|
}
|
|
|
|
public bool IsTracking(Guid entityID)
|
|
{
|
|
return entityTracker.IsTracking(entityID);
|
|
}
|
|
|
|
internal bool CheckEntity(Entity entity)
|
|
{
|
|
return EntityChecker.CheckEntity(entity, componentTypes) &&
|
|
entity.HasComponent(drawComponentType);
|
|
}
|
|
}
|
|
}
|