Example #1
0
        private bool Draw3DStretched(SpriteBatch3D spriteBatch, Vector3 drawPosition, MouseOverList mouseOverList, Map map)
        {
            // this is an isometric stretched tile and needs a specialized draw routine.
            m_vertexBufferAlternate[0].Position = drawPosition + m_vertex0_yOffset;
            m_vertexBufferAlternate[1].Position = drawPosition + m_vertex1_yOffset;
            m_vertexBufferAlternate[2].Position = drawPosition + m_vertex2_yOffset;
            m_vertexBufferAlternate[3].Position = drawPosition + m_vertex3_yOffset;

            if (!spriteBatch.Draw(DrawTexture, m_vertexBufferAlternate, s_Technique))
            {
                return(false);
            }

            if ((mouseOverList.PickType & PickType) == PickType)
            {
                if (mouseOverList.IsMouseInObjectIsometric(m_vertexBufferAlternate))
                {
                    MouseOverItem item = new MouseOverItem(DrawTexture, m_vertexBufferAlternate[0].Position, Entity);
                    item.Vertices = new Vector3[4] {
                        m_vertexBufferAlternate[0].Position, m_vertexBufferAlternate[1].Position, m_vertexBufferAlternate[2].Position, m_vertexBufferAlternate[3].Position
                    };
                    mouseOverList.Add2DItem(item);
                }
            }

            return(true);
        }
Example #2
0
        private bool Draw3DStretched(Batcher2D batcher, Vector3 position, MouseOverList objectList)
        {
            Texture.Ticks = Engine.Ticks;

            int z = Z * 4;

            if (Engine.Profile.Current.HighlightGameObjects)
            {
                if (IsSelected)
                {
                    if (_storedHue == Vector3.Zero)
                    {
                        _storedHue = HueVector;
                    }
                    HueVector = ShaderHuesTraslator.SelectedHue;
                }
                else if (_storedHue != Vector3.Zero)
                {
                    HueVector  = _storedHue;
                    _storedHue = Vector3.Zero;
                }
            }

            Vector3.Add(ref position, ref _vertex0_yOffset, out _vertex[0].Position);
            Vector3.Add(ref position, ref _vertex1_yOffset, out _vertex[1].Position);
            Vector3.Add(ref position, ref _vertex2_yOffset, out _vertex[2].Position);
            Vector3.Add(ref position, ref _vertex3_yOffset, out _vertex[3].Position);

            _vertex[0].Position.Y += z;
            _vertex[1].Position.Y += z;
            _vertex[2].Position.Y += z;
            _vertex[3].Position.Y += z;

            //HueVector.Z = 1f - (AlphaHue / 255f);

            if (HueVector != _vertex[0].Hue)
            {
                _vertex[0].Hue = HueVector;
                _vertex[1].Hue = HueVector;
                _vertex[2].Hue = HueVector;
                _vertex[3].Hue = HueVector;
            }

            if (!batcher.DrawSprite(Texture, _vertex))
            {
                return(false);
            }

            if (objectList.IsMouseInObjectIsometric(_vertex))
            {
                objectList.Add(this, _vertex[0].Position);
            }

            return(true);
        }
Example #3
0
        private unsafe bool Draw3DStretched(Batcher2D batcher, Vector3 position, MouseOverList objectList)
        {
            Texture.Ticks = Engine.Ticks;

            int z = GameObject.Position.Z * 4;

            if (IsSelected)
            {
                if (_storedHue == Vector3.Zero)
                {
                    _storedHue = HueVector;
                }
                HueVector = ShaderHuesTraslator.SelectedHue;
            }
            else if (_storedHue != Vector3.Zero)
            {
                HueVector  = _storedHue;
                _storedHue = Vector3.Zero;
            }

            fixed(SpriteVertex *ptr = _vertex)
            {
                ptr[0].Position = position + _vertex0_yOffset;
                ptr[1].Position = position + _vertex1_yOffset;
                ptr[2].Position = position + _vertex2_yOffset;
                ptr[3].Position = position + _vertex3_yOffset;

                ptr[0].Position.Y += z;
                ptr[1].Position.Y += z;
                ptr[2].Position.Y += z;
                ptr[3].Position.Y += z;

                if (HueVector != ptr[0].Hue)
                {
                    ptr[0].Hue = HueVector;
                    ptr[1].Hue = HueVector;
                    ptr[2].Hue = HueVector;
                    ptr[3].Hue = HueVector;
                }
            }

            if (!batcher.DrawSprite(Texture, _vertex))
            {
                return(false);
            }

            if (objectList.IsMouseInObjectIsometric(_vertex))
            {
                objectList.Add(GameObject, _vertex[0].Position);
            }

            return(true);
        }
Example #4
0
        private bool Draw3DStretched(SpriteBatch3D spriteBatch, Vector3 position, MouseOverList objectList)
        {
            Texture.Ticks       = CoreGame.Ticks;
            _vertex[0].Position = position + _vertex0_yOffset;
            _vertex[1].Position = position + _vertex1_yOffset;
            _vertex[2].Position = position + _vertex2_yOffset;
            _vertex[3].Position = position + _vertex3_yOffset;
            int z = GameObject.Position.Z * 4;

            for (int i = 0; i < 4; i++)
            {
                _vertex[i].Position.Y += z;
            }

            if (IsSelected)
            {
                if (_storedHue == Vector3.Zero)
                {
                    _storedHue = HueVector;
                }
                HueVector = RenderExtentions.SelectedHue;
            }
            else if (_storedHue != Vector3.Zero)
            {
                HueVector  = _storedHue;
                _storedHue = Vector3.Zero;
            }

            if (HueVector != _vertex[0].Hue)
            {
                _vertex[0].Hue = _vertex[1].Hue = _vertex[2].Hue = _vertex[3].Hue = HueVector;
            }

            if (!spriteBatch.DrawSprite(Texture, _vertex))
            {
                return(false);
            }

            if (objectList.IsMouseInObjectIsometric(_vertex))
            {
                objectList.Add(GameObject, _vertex[0].Position);
            }

            return(true);
        }
Example #5
0
 bool Draw3DStretched(SpriteBatch3D spriteBatch, Vector3 drawPosition, MouseOverList mouseOver, Map map)
 {
     // this is an isometric stretched tile and needs a specialized draw routine.
     m_vertexBufferAlternate[0].Position = drawPosition + m_vertex0_yOffset;
     m_vertexBufferAlternate[1].Position = drawPosition + m_vertex1_yOffset;
     m_vertexBufferAlternate[2].Position = drawPosition + m_vertex2_yOffset;
     m_vertexBufferAlternate[3].Position = drawPosition + m_vertex3_yOffset;
     if (!spriteBatch.DrawSprite(DrawTexture, m_vertexBufferAlternate, Technique))
     {
         return(false);
     }
     if ((mouseOver.PickType & PickType) == PickType)
     {
         if (mouseOver.IsMouseInObjectIsometric(m_vertexBufferAlternate))
         {
             mouseOver.AddItem(Entity, m_vertexBufferAlternate[0].Position);
         }
     }
     return(true);
 }
Example #6
0
        private bool Draw3DStretched(SpriteBatch3D spriteBatch, Vector3 drawPosition, MouseOverList mouseOverList, Map map)
        {
            // this is an isometric stretched tile and needs a specialized draw routine.
            m_vertexBufferAlternate[0].Position = drawPosition + m_vertex0_yOffset;
            m_vertexBufferAlternate[1].Position = drawPosition + m_vertex1_yOffset;
            m_vertexBufferAlternate[2].Position = drawPosition + m_vertex2_yOffset;
            m_vertexBufferAlternate[3].Position = drawPosition + m_vertex3_yOffset;

            if (!spriteBatch.DrawSprite(DrawTexture, m_vertexBufferAlternate, s_Technique))
                return false;

            if ((mouseOverList.PickType & PickType) == PickType)
            {
                if (mouseOverList.IsMouseInObjectIsometric(m_vertexBufferAlternate))
                {
                    MouseOverItem item = new MouseOverItem(DrawTexture, m_vertexBufferAlternate[0].Position, Entity);
                    item.Vertices = new Vector3[4] { m_vertexBufferAlternate[0].Position, m_vertexBufferAlternate[1].Position, m_vertexBufferAlternate[2].Position, m_vertexBufferAlternate[3].Position };
                    mouseOverList.Add2DItem(item);
                }
            }

            return true;
        }
        private bool Draw3DStretched(SpriteBatch3D sb, Vector3 drawPosition, MouseOverList molist, PickTypes pickType, int maxAlt)
        {
            // this is an isometric stretched tile and needs a specialized draw routine.
            _vertexBufferAlternate[0].Position = drawPosition + _vertex0_yOffset;
            _vertexBufferAlternate[1].Position = drawPosition + _vertex1_yOffset;
            _vertexBufferAlternate[2].Position = drawPosition + _vertex2_yOffset;
            _vertexBufferAlternate[3].Position = drawPosition + _vertex3_yOffset;

            if (!sb.Draw(_draw_texture, _vertexBufferAlternate))
                return false;

            if ((pickType & _pickType) == _pickType)
                if (molist.IsMouseInObjectIsometric(_vertexBufferAlternate))
                {
                    MouseOverItem item = new MouseOverItem(_draw_texture, _vertexBufferAlternate[0].Position, this);
                    item.Vertices = new Vector3[4] { _vertexBufferAlternate[0].Position, _vertexBufferAlternate[1].Position, _vertexBufferAlternate[2].Position, _vertexBufferAlternate[3].Position };
                    molist.Add2DItem(item);
                }

            return true;
        }
Example #8
0
 bool Draw3DStretched(SpriteBatch3D spriteBatch, Vector3 drawPosition, MouseOverList mouseOver, Map map)
 {
     // this is an isometric stretched tile and needs a specialized draw routine.
     m_vertexBufferAlternate[0].Position = drawPosition + m_vertex0_yOffset;
     m_vertexBufferAlternate[1].Position = drawPosition + m_vertex1_yOffset;
     m_vertexBufferAlternate[2].Position = drawPosition + m_vertex2_yOffset;
     m_vertexBufferAlternate[3].Position = drawPosition + m_vertex3_yOffset;
     if (!spriteBatch.DrawSprite(DrawTexture, m_vertexBufferAlternate, Technique))
     {
         return false;
     }
     if ((mouseOver.PickType & PickType) == PickType)
     {
         if (mouseOver.IsMouseInObjectIsometric(m_vertexBufferAlternate))
         {
             mouseOver.AddItem(Entity, m_vertexBufferAlternate[0].Position);
         }
     }
     return true;
 }