mirror of
https://github.com/Phantop/LADXHD.git
synced 2024-11-25 16:03:02 +00:00
53 lines
1.9 KiB
C#
53 lines
1.9 KiB
C#
using System;
|
|
using Microsoft.Xna.Framework;
|
|
using Microsoft.Xna.Framework.Graphics;
|
|
using ProjectZ.InGame.GameObjects.Base;
|
|
using ProjectZ.InGame.GameObjects.Base.CObjects;
|
|
using ProjectZ.InGame.GameObjects.Base.Components;
|
|
using ProjectZ.InGame.SaveLoad;
|
|
using ProjectZ.InGame.Things;
|
|
|
|
namespace ProjectZ.InGame.GameObjects.Things
|
|
{
|
|
internal class ObjLightSprite : GameObject
|
|
{
|
|
private readonly DictAtlasEntry _sprite;
|
|
private readonly Color _lightColor;
|
|
|
|
private readonly Vector2 _position;
|
|
|
|
private readonly float _rotation;
|
|
|
|
public ObjLightSprite() : base("editor light") { }
|
|
|
|
public ObjLightSprite(Map.Map map, int posX, int posY, string spriteId, int colorR, int colorG, int colorB, int colorA, int layer, int rotation) : base(map)
|
|
{
|
|
EntityPosition = new CPosition(posX, posY, 0);
|
|
|
|
if (!string.IsNullOrEmpty(spriteId))
|
|
_sprite = Resources.GetSprite(spriteId);
|
|
|
|
if (_sprite == null)
|
|
{
|
|
Console.WriteLine("Could not find spriteId: " + spriteId);
|
|
IsDead = true;
|
|
return;
|
|
}
|
|
|
|
EntitySize = new Rectangle(0, 0, _sprite.SourceRectangle.Width, _sprite.SourceRectangle.Height);
|
|
|
|
_position = new Vector2(EntityPosition.X + _sprite.Origin.X, EntityPosition.Y + _sprite.Origin.Y);
|
|
|
|
_lightColor = new Color(colorR, colorG, colorB) * (colorA / 255f);
|
|
_rotation = rotation * MathF.PI / 2;
|
|
|
|
AddComponent(LightDrawComponent.Index, new LightDrawComponent(DrawLight) { Layer = layer });
|
|
}
|
|
|
|
public void DrawLight(SpriteBatch spriteBatch)
|
|
{
|
|
spriteBatch.Draw(_sprite.Texture, _position, _sprite.ScaledRectangle,
|
|
_lightColor, _rotation, _sprite.ScaledOrigin, _sprite.Scale, SpriteEffects.None, 0);
|
|
}
|
|
}
|
|
} |