public void SignIn(Entity entity) { if (entity != null) { entity.OnActivStateChanged += Entity_OnActivStateChanged; if (entity.IsActiv) { entities.Add(entity); } if (entity is CollidAble) { if (entity.IsActiv) { CollidAble collidableEnt = entity as CollidAble; collidAbleEntities.Add(collidableEnt); CollisionDetection.ActivCollisionDetection.SignIn(collidableEnt); } } if (entity is DrawAble) { DrawAble drawAble = entity as DrawAble; drawAble.OnVisabillityChanged += DrawAble_OnVisabillityChanged; if (drawAble.IsVisable) { drawAbleEntities.Add(drawAble); } } } }
private void DrawAble_OnVisabillityChanged(object sender, System.EventArgs e) { Entity ent = sender as Entity; if (ent != null) { if (ent is DrawAble) { DrawAble drawAble = ent as DrawAble; if (drawAble.IsVisable && !drawAbleEntities.Contains(drawAble)) { drawAbleEntities.Add(drawAble); } else if (!drawAble.IsVisable) { drawAbleEntities.Remove(drawAble); } } } }