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); }
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); }
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); }
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); }
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); }
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; }
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; }