public void AddSprite(string key, CluwneSprite spritetoadd) { if (spritetoadd != null && key != "") { sprites.Add(key, spritetoadd); } BuildDirectionalSprites(); }
public void Draw(Vector2 position, Vector2 windowOrigin, Sprite spriteToDrawAbove) { if ((DateTime.Now - _buildTime).TotalMilliseconds >= MillisecondsToLive) { return; } float x = position.X - windowOrigin.X - (_bubbleSprite.Width / 2.0f); float y = position.Y - windowOrigin.Y - (_bubbleSprite.Height) - (spriteToDrawAbove.Height / 2.0f) - 5.0f; _bubbleSprite.SetPosition(x, y); _bubbleSprite.Draw(); }
public SpeechBubble(string mobname) { _resourceManager = IoCManager.Resolve <IResourceManager>(); _mobName = mobname; _buildTime = DateTime.Now; _textSprite = new Text(String.Empty, _resourceManager.GetFont("CALIBRI")); _textSprite.Color = SFML.Graphics.Color.Black; // TODO Word wrap! _textSprite.Position = new Vector2(5, 3); _stringBuilder = new StringBuilder(); _bubbleRender = new RenderImage(1, 1); _bubbleSprite = new Sprite(_bubbleRender); }
public SpeechBubble(string mobname) { _resourceManager = IoCManager.Resolve<IResourceManager>(); _mobName = mobname; _buildTime = DateTime.Now; _textSprite = new Text(String.Empty, _resourceManager.GetFont("CALIBRI")); _textSprite.Color = SFML.Graphics.Color.Black; // TODO Word wrap! _textSprite.Position = new Vector2(5, 3); _stringBuilder = new StringBuilder(); _bubbleRender = new RenderImage(1, 1); _bubbleSprite = new Sprite(_bubbleRender); }
public void SetSpriteByKey(string spriteKey) { if (sprites.ContainsKey(spriteKey)) { currentBaseSprite = sprites[spriteKey]; if (Owner != null) { Owner.SendMessage(this, ComponentMessageType.SpriteChanged); } } else { throw new Exception("Whoops. That sprite isn't in the dictionary."); } }
protected virtual bool WasClicked(PointF worldPos) { if (currentBaseSprite == null || !visible) { return(false); } CluwneSprite spriteToCheck = GetActiveDirectionalSprite(); var AABB = new RectangleF( Owner.GetComponent <TransformComponent>(ComponentFamily.Transform).Position.X - (spriteToCheck.Width / 2), Owner.GetComponent <TransformComponent>(ComponentFamily.Transform).Position.Y - (spriteToCheck.Height / 2), spriteToCheck.Width, spriteToCheck.Height); if (!AABB.Contains(worldPos)) { return(false); } // Get the sprite's position within the texture var texRect = spriteToCheck.TextureRect; // Get the clicked position relative to the texture var spritePosition = new Point((int)(worldPos.X - AABB.X + texRect.Left), (int)(worldPos.Y - AABB.Y + texRect.Top)); if (spritePosition.X < 0 || spritePosition.Y < 0) { return(false); } // Copy the texture to image var img = spriteToCheck.Texture.CopyToImage(); // Check if the clicked pixel is opaque if (img.GetPixel((uint)spritePosition.X, (uint)spritePosition.Y).A == 0) { return(false); } return(true); }
private CluwneSprite GetActiveDirectionalSprite() { if (currentBaseSprite == null) { return(null); } CluwneSprite sprite = currentBaseSprite; string dirName = (currentBaseSprite.Name + "_" + Owner.GetComponent <DirectionComponent>(ComponentFamily.Direction).Direction.ToString()). ToLowerInvariant(); if (dirSprites.ContainsKey(dirName)) { sprite = dirSprites[dirName]; } return(sprite); }
public void AddSprite(string key, CluwneSprite spritetoadd) { if (spritetoadd != null && key != "") sprites.Add(key, spritetoadd); BuildDirectionalSprites(); }
public override void Render(Vector2 topLeft, Vector2 bottomRight) { if (IsCurrentlyWorn && currentSprite == baseSprite) { base.Render(topLeft, bottomRight); return; } else if (IsCurrentlyCarried && currentSprite != CarriedSprite) { SetSprite(CarriedSprite); base.Render(topLeft, bottomRight); return; } //Render slaves beneath IEnumerable <SpriteComponent> renderablesBeneath = from SpriteComponent c in slaves //FIXTHIS orderby c.DrawDepth ascending where c.DrawDepth < DrawDepth select c; foreach (SpriteComponent component in renderablesBeneath.ToList()) { component.Render(topLeft, bottomRight); } //Render this sprite if (!visible) { return; } if (NotWornSprite == null) { return; } Sprite spriteToRender = NotWornSprite; Vector2 renderPos = ClientWindowData.Singleton.WorldToScreen( Owner.GetComponent <TransformComponent>(ComponentFamily.Transform).Position); spriteToRender.SetPosition(renderPos.X - (spriteToRender.AABB.Width / 2), renderPos.Y - (spriteToRender.AABB.Height / 2)); if (Owner.GetComponent <TransformComponent>(ComponentFamily.Transform).Position.X + spriteToRender.AABB.Right < topLeft.X || Owner.GetComponent <TransformComponent>(ComponentFamily.Transform).Position.X > bottomRight.X || Owner.GetComponent <TransformComponent>(ComponentFamily.Transform).Position.Y + spriteToRender.AABB.Bottom < topLeft.Y || Owner.GetComponent <TransformComponent>(ComponentFamily.Transform).Position.Y > bottomRight.Y) { return; } spriteToRender.HorizontalFlip = flip; spriteToRender.Draw(); spriteToRender.HorizontalFlip = false; //Render slaves above IEnumerable <SpriteComponent> renderablesAbove = from SpriteComponent c in slaves //FIXTHIS orderby c.DrawDepth ascending where c.DrawDepth >= DrawDepth select c; foreach (SpriteComponent component in renderablesAbove.ToList()) { component.Render(topLeft, bottomRight); } //Draw AABB var aabb = AABB; //CluwneLib.CurrentRenderTarget.Rectangle(renderPos.X - aabb.Width / 2, renderPos.Y - aabb.Height / 2, aabb.Width, aabb.Height, Color.Lime); }
public void SetNotWornSprite(string spritename) { NotWornSprite = IoCManager.Resolve <IResourceManager>().GetSprite(spritename); }
public void SetSpriteCenter(CluwneSprite sprite, Vector2 center) { sprite.SetPosition(center.X - (GetActiveDirectionalSprite().AABB.Width / 2), center.Y - (GetActiveDirectionalSprite().AABB.Height / 2)); }
public virtual void Render(Vector2 topLeft, Vector2 bottomRight) { //Render slaves beneath IEnumerable <SpriteComponent> renderablesBeneath = from SpriteComponent c in slaves //FIXTHIS orderby c.DrawDepth ascending where c.DrawDepth < DrawDepth select c; foreach (SpriteComponent component in renderablesBeneath.ToList()) { component.Render(topLeft, bottomRight); } //Render this sprite if (!visible) { return; } if (currentBaseSprite == null) { return; } CluwneSprite spriteToRender = GetActiveDirectionalSprite(); Vector2 renderPos = ClientWindowData.Singleton.WorldToScreen( Owner.GetComponent <TransformComponent>(ComponentFamily.Transform).Position); SetSpriteCenter(spriteToRender, renderPos); if (Owner.GetComponent <TransformComponent>(ComponentFamily.Transform).Position.X + spriteToRender.AABB.Right < topLeft.X || Owner.GetComponent <TransformComponent>(ComponentFamily.Transform).Position.X > bottomRight.X || Owner.GetComponent <TransformComponent>(ComponentFamily.Transform).Position.Y + spriteToRender.AABB.Bottom < topLeft.Y || Owner.GetComponent <TransformComponent>(ComponentFamily.Transform).Position.Y > bottomRight.Y) { return; } spriteToRender.HorizontalFlip = flip; spriteToRender.Draw(); spriteToRender.HorizontalFlip = false; //Render slaves above IEnumerable <SpriteComponent> renderablesAbove = from SpriteComponent c in slaves //FIXTHIS orderby c.DrawDepth ascending where c.DrawDepth >= DrawDepth select c; foreach (SpriteComponent component in renderablesAbove.ToList()) { component.Render(topLeft, bottomRight); } //Draw AABB var aabb = AABB; //CluwneLib.CurrentRenderTarget.Rectangle(renderPos.X - aabb.Width / 2, renderPos.Y - aabb.Height / 2, aabb.Width, aabb.Height, Color.Lime); }
public void SetIcon(string name) { Icon = IoCManager.Resolve <IResourceManager>().GetSprite(name); }
public void SetNotWornSprite(string spritename) { NotWornSprite = IoCManager.Resolve<IResourceManager>().GetSprite(spritename); }
public void Draw(Vector2 position, Vector2 windowOrigin, Sprite spriteToDrawAbove) { if ((DateTime.Now - _buildTime).TotalMilliseconds >= MillisecondsToLive) return; float x = position.X - windowOrigin.X - (_bubbleSprite.Width/2.0f); float y = position.Y - windowOrigin.Y - (_bubbleSprite.Height) - (spriteToDrawAbove.Height/2.0f) - 5.0f; _bubbleSprite.SetPosition(x, y); _bubbleSprite.Draw(); }
public void SetSpriteCenter(CluwneSprite sprite, Vector2 center) { sprite.SetPosition(center.X - (GetActiveDirectionalSprite().AABB.Width/2), center.Y - (GetActiveDirectionalSprite().AABB.Height/2)); }
public void SetSpriteByKey(string spriteKey) { if (sprites.ContainsKey(spriteKey)) { currentBaseSprite = sprites[spriteKey]; if (Owner != null) Owner.SendMessage(this, ComponentMessageType.SpriteChanged); } else throw new Exception("Whoops. That sprite isn't in the dictionary."); }
public void SetIcon(string name) { Icon = IoCManager.Resolve<IResourceManager>().GetSprite(name); }