summaryrefslogtreecommitdiff
path: root/scripts/entities/Entity.cs
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/entities/Entity.cs')
-rw-r--r--scripts/entities/Entity.cs108
1 files changed, 0 insertions, 108 deletions
diff --git a/scripts/entities/Entity.cs b/scripts/entities/Entity.cs
deleted file mode 100644
index 85a3156..0000000
--- a/scripts/entities/Entity.cs
+++ /dev/null
@@ -1,108 +0,0 @@
-using Godot;
-
-/// <summary>
-/// Defino aqui que o jogo irá desenhar
-/// atores em cima de itens e itens acima de corpos.
-/// </summary>
-public enum EntityType
-{
- CORPSE,
- ITEM,
- ACTOR
-};
-
-/// <summary>
-/// Classe para elementos móveis que o jogador pode interagir.
-/// </summary>
-public abstract partial class Entity : Sprite2D {
- /// <summary>
- /// A definição da entidade possui caracterísitcas padrões que definem
- /// a entidade em questão.
- /// </summary>
- private EntityDefinition definition;
-
- private EntityType type;
- /// <summary>
- /// Usado para definir a camada da entidade no mapa.
- /// </summary>
- public EntityType Type {
- get => type;
- set {
- type = value;
- ZIndex = (int) type;
- }
- }
-
- /// <summary>
- /// É conveniente ter acesso ao mapa dentro da entidade. Isto porque ela existe dentro
- /// do mapa, então é necessário ter acesso à algumas informações.
- /// </summary>
- public MapData Map_Data { get; set; }
-
- private Vector2I gridPosition = Vector2I.Zero;
- /// <summary>
- /// Posição da entidade no mapa do jogo. Diferentemente de Position, GridPosition tem como formato
- /// os tiles do mapa.
- /// </summary>
- public Vector2I GridPosition {
- set {
- gridPosition = value;
- // O sistema de coordenadas do Godot é em pixels, mas faz mais sentido para o jogo utilizar coordenadas em tiles.
- // Esta propriedade converte um sistema para o outro automaticamente.
- Position = Grid.GridToWorld(value);
- }
- get => gridPosition;
- }
-
- private bool blocksMovement;
- /// <summary>
- /// Se a entidade bloqueia movimento (não pode oculpar a mesma célula de outra entidade.)
- /// </summary>
- public bool BlocksMovement {
- get => blocksMovement;
- protected set {
- blocksMovement = value;
- }
- }
-
- private string displayName;
- /// <summary>
- /// Nome da entidade.
- /// </summary>
- public string DisplayName {
- get => displayName;
- protected set {
- displayName = value;
- }
- }
-
- public override void _Ready()
- {
- base._Ready();
- // Quando a entidade for carregada completamente, atualizamos sua posição para refletir
- // sua posição real.
- GridPosition = Grid.WorldToGrid(Position);
- }
-
- public Entity(Vector2I initialPosition, MapData map, EntityDefinition definition) {
- GridPosition = initialPosition;
- Map_Data = map;
- Centered = false;
-
- SetDefinition(definition);
- }
-
- /// <summary>
- /// Aplica uma definição de NPC para o ator.
- /// Se o ator for um boneco de barro, este método é como um
- /// sopro de vida.
- /// </summary>
- /// <param name="definition">A definição do ator.</param>
- public virtual void SetDefinition(EntityDefinition definition) {
- this.definition = definition;
- BlocksMovement = definition.blocksMovement;
- DisplayName = definition.name;
- Type = definition.Type;
- Texture = definition.texture;
- }
-} \ No newline at end of file