public override void LookAtSelf(IEntityManager manager) { var combinedBox = new BoundingBox(); GraphicEntity entity = null; foreach (var tag in Tags) { entity = manager.GetEntity(tag); if (entity.GetComponents <IRenderableComponent>().Any(x => x.CanRender)) { var geos = entity.GetComponents <IGeometryComponent>(); if (geos.Any()) { var geo = geos.First(); combinedBox = combinedBox.Merge(geo.Box); } } } var com = new MoveCameraToTargetComponent { Target = entity.Tag, TargetPosition = combinedBox.GetCenter() }; entity.AddComponent(com); }
protected void MoveTo(IEntityManager manager, ElementTag targetEntity) { var com = new MoveCameraToTargetComponent { Target = targetEntity }; manager.GetEntity(targetEntity).AddComponent(com); }
public override void LookAtSelf(IEntityManager manager) { var entity = manager.GetEntity(Tag); var l = entity.GetComponent <LightComponent>(); var com = new MoveCameraToTargetComponent { Target = Tag, TargetPosition = l.Position }; manager.GetEntity(Tag).AddComponent(com); }
public void Execute(MoveCameraToTargetComponent component) { //detect that camera should be moved to new position //created camera movement component var movecom = new CameraMoveToPositionComponent { TargetPosition = component.TargetPosition }; //just put com to camera entity //camera moving is job for Camera system emanager .GetEntity(snapshot.CurrentCameraTag) .AddComponent(movecom); entity.RemoveComponent(component); }
public override void LookAtSelf(IEntityManager manager) { var entity = manager.GetEntity(Tag); var geos = entity.GetComponents <IGeometryComponent>(); var hasTransformation = entity.GetComponents <TransformComponent>(); if (geos.Any()) { var geo = geos.First(); var local = geo.Box.GetCenter(); if (hasTransformation.Any()) { local = Vector3.TransformNormal(local, hasTransformation.First().MatrixWorld); } var com = new MoveCameraToTargetComponent { Target = Tag, TargetPosition = local }; entity.AddComponent(com); } }