Ejemplo n.º 1
0
        public virtual void InitializeLayer(IObject2DFactory factory)
        {
            this.defaultViewSize = new Vector2f(-1, -1);

            this.mustUpdateMousePosition = false;

            //this.focusedEntity2Ds.Clear();
            this.focusedGraphicEntity2D  = null;
            this.selectedGraphicEntity2D = null;

            foreach (AEntity entity in this.parentLayer.Entities)
            {
                this.AddEntity(entity);
            }
        }
Ejemplo n.º 2
0
        protected virtual void UpdateFocusedEntity2Ds()
        {
            Vector2i mousePosition = this.MousePosition;

            AEntity2D newFocusedEntity2D = null;
            IEnumerable <AEntity2D> focusableEntities2D = this.GetEntities2DFocusable();

            int bestPriority = int.MinValue;

            foreach (AEntity2D entity2D in focusableEntities2D)
            {
                IHitRect hitRect = entity2D as IHitRect;

                if (hitRect != null &&
                    hitRect.IsFocusable(this) &&
                    hitRect.IsPointHit(this, mousePosition))
                {
                    if (newFocusedEntity2D != null)
                    {
                        if (bestPriority < entity2D.Priority)
                        {
                            newFocusedEntity2D = entity2D;
                            bestPriority       = entity2D.Priority;
                        }
                        else if (bestPriority == entity2D.Priority &&
                                 Math.Abs(mousePosition.X - entity2D.Position.X) + Math.Abs(mousePosition.Y - entity2D.Position.Y)
                                 < Math.Abs(mousePosition.X - newFocusedEntity2D.Position.X) + Math.Abs(mousePosition.Y - newFocusedEntity2D.Position.Y))
                        {
                            newFocusedEntity2D = entity2D;
                        }
                    }
                    else
                    {
                        newFocusedEntity2D = entity2D;
                        bestPriority       = entity2D.Priority;
                    }
                }
            }

            this.FocusedGraphicEntity2D = newFocusedEntity2D as IHitRect;
        }
Ejemplo n.º 3
0
        protected bool SetSelectedGraphicEntity2D(IHitRect selectedEntity, ControlEventType eventType, string details)
        {
            bool mustForwardEvent = true;

            if (this.selectedGraphicEntity2D != selectedEntity)
            {
                if (this.selectedGraphicEntity2D != null)
                {
                    mustForwardEvent &= this.selectedGraphicEntity2D.OnMouseReleased(this, eventType);
                }

                this.selectedGraphicEntity2D = selectedEntity;

                if (this.selectedGraphicEntity2D != null)
                {
                    mustForwardEvent &= this.selectedGraphicEntity2D.OnMousePressed(this, eventType);
                }
            }

            return(mustForwardEvent);
        }