/// <summary> /// Attaches a control to an <see cref="Entity"/> instance, using the specified offset. /// </summary> /// <param name="control">Control instance being attached to the entity.</param> /// <param name="entity">Entity instance to which the control is being attached.</param> /// <param name="offset">Offset from the entity's position to display the control.</param> public static void AttachToEntity(this Control control, Entity entity, Vector2 offset) { ControlComponent controlComponent = new ControlComponent() { Control = control, Offset = offset }; entity.AddComponent <ControlComponent>(controlComponent); entity.Refresh(); }
/// <summary> /// Attaches a control to an <see cref="Entity"/> instance, using the specified offset. /// </summary> /// <param name="control">Control instance being attached to the entity.</param> /// <param name="entity">Entity instance to which the control is being attached.</param> /// <param name="offset">Offset from the entity's position to display the control.</param> public static void AttachToEntity(this Control control, Entity entity, Vector2 offset) { ControlComponent controlComponent = new ControlComponent() { Control = control, Offset = offset }; entity.AddComponent<ControlComponent>(controlComponent); entity.Refresh(); }
/// <summary> /// Processes the provided <see cref="Entity"/> instance. /// </summary> /// <param name="entity"><see cref="Entity"/> instance to process.</param> public override void Process(Entity entity) { PositionComponent positionComponent = _positionMapper.Get(entity); ControlComponent controlComponent = _controlMapper.Get(entity); if ((positionComponent == null) || (controlComponent == null)) { return; } controlComponent.Control.Bounds.Location = new UniVector( new UniScalar(0.0f, positionComponent.PreviousPosition.X + controlComponent.Offset.X + Director.SharedDirector.TransformationMatrix.Translation.X), new UniScalar(0.0f, positionComponent.PreviousPosition.Y + controlComponent.Offset.Y + Director.SharedDirector.TransformationMatrix.Translation.Y)); }