Beispiel #1
0
 protected override void RenderShadow()
 {
     if (!hidden)
     {
         GraphicsComponent?.Render(true);
     }
 }
Beispiel #2
0
        public void RenderShadow()
        {
            if (hidden)
            {
                return;
            }

            GraphicsComponent.Render(true);
        }
Beispiel #3
0
        private void RenderShadow()
        {
            if (!hasShadow)
            {
                return;
            }

            if (separateShadow)
            {
                Graphics.Render(shadow, Position + new Vector2(0, Height + shadow.Height), 0, Vector2.Zero, MathUtils.InvertY);
            }
            else
            {
                GraphicsComponent?.Render(true);
            }
        }
Beispiel #4
0
 protected virtual void RenderShadow()
 {
     GraphicsComponent.Render(true);
 }
Beispiel #5
0
        public override void Render()
        {
            if (Hidden || !TryGetComponent <InteractableComponent>(out var component))
            {
                return;
            }

            var cursed        = item != null && item.Scourged;
            var interact      = component.OutlineAlpha > 0.05f;
            var renderOutline = interact || cursed;

            if (item == null && renderOutline)
            {
                var shader = Shaders.Entity;
                Shaders.Begin(shader);

                shader.Parameters["flash"].SetValue(component.OutlineAlpha);
                shader.Parameters["flashReplace"].SetValue(1f);
                shader.Parameters["flashColor"].SetValue(ColorUtils.White);

                foreach (var d in MathUtils.Directions)
                {
                    Graphics.Render(((SliceComponent)GraphicsComponent).Sprite, Position + d);
                }

                Shaders.End();
            }

            GraphicsComponent.Render(false);

            if (item == null)
            {
                return;
            }

            Graphics.Color = Level.ShadowColor;
            Graphics.Render(itemShadow, Position + shadowOffset);
            Graphics.Color = ColorUtils.WhiteColor;

            var t = item.Animation == null?item.GetComponent <ItemGraphicsComponent>().T : 0;

            var angle = (float)Math.Cos(t * 3f) * 0.4f;

            var region   = item.Region;
            var animated = item.Animation != null;
            var pos      = item.Center + new Vector2(0, (animated ? 0 : (float)(Math.Sin(t * 3f) * 0.5f + 0.5f) * -5.5f - 3) - 5.5f);

            if (renderOutline)
            {
                var shader = Shaders.Entity;
                Shaders.Begin(shader);

                shader.Parameters["flash"].SetValue(cursed ? 1f : component.OutlineAlpha);
                shader.Parameters["flashReplace"].SetValue(1f);
                shader.Parameters["flashColor"].SetValue(!cursed ? ColorUtils.White : ColorUtils.Mix(ItemGraphicsComponent.ScourgedColor, ColorUtils.White, component.OutlineAlpha));

                foreach (var d in MathUtils.Directions)
                {
                    Graphics.Render(region, pos + d, animated ? 0 : angle, region.Center);
                }

                Shaders.End();
            }

            if (animated)
            {
                Graphics.Render(region, pos, 0, region.Center);
            }
            else
            {
                if (item.Masked)
                {
                    Graphics.Color = ItemGraphicsComponent.MaskedColor;
                    Graphics.Render(region, pos, angle, region.Center);
                    Graphics.Color = ColorUtils.WhiteColor;
                }
                else
                {
                    var shader = Shaders.Item;

                    Shaders.Begin(shader);
                    shader.Parameters["time"].SetValue(t * 0.1f);
                    shader.Parameters["size"].SetValue(ItemGraphicsComponent.FlashSize);

                    Graphics.Render(region, pos, angle, region.Center);
                    Shaders.End();
                }
            }
        }
Beispiel #6
0
 private void RenderShadow()
 {
     Graphics.Color.A = (byte)(a * 255f);
     GraphicsComponent.Render(true);
     Graphics.Color.A = 255;
 }
Beispiel #7
0
 private void RenderShadow()
 {
     GraphicsComponent.Render(true);
 }
Beispiel #8
0
 private void RenderShadow()
 {
     GraphicsComponent.Offset.Y -= 7;
     GraphicsComponent.Render(true);
     GraphicsComponent.Offset.Y += 7;
 }