예제 #1
0
 protected override void Entity_ComponentAdded(Entity sender, ComponentEventArgs e)
 {
     if (e.Component is ITilePositionComponent p)
     {
         this.EntityPosition = p;
     }
     base.Entity_ComponentAdded(sender, e);
 }
예제 #2
0
 protected override void Entity_ComponentRemoved(Entity sender, ComponentEventArgs e)
 {
     if (e.Component == this.entityPosition)
     {
         this.EntityPosition = null;
     }
     base.Entity_ComponentRemoved(sender, e);
 }
예제 #3
0
        private void onTilePositionChanged(ITilePositionComponent sender, TilePositionEventArgs e)
        {
            this.tilePositionComponents[e.PreviousPosition].Remove(sender);

            if (!this.tilePositionComponents.ContainsKey(e.NewPosition))
            {
                this.tilePositionComponents[e.NewPosition] = new List <ITilePositionComponent>()
                {
                    sender
                };
            }
            else
            {
                this.tilePositionComponents[e.NewPosition].Add(sender);
            }
        }
 public AttachedTilePositionComponent(ITilePositionComponent tilePositionComponent) : base(tilePositionComponent)
 {
     this.TilePositionComponent = tilePositionComponent;
 }
 private void tilePositionComponent_TilePositionChanged(ITilePositionComponent sender, TilePositionEventArgs e)
 {
     TilePositionChanged?.Invoke(sender, e);
 }