mirror of
https://github.com/Phantop/LADXHD.git
synced 2024-11-01 04:14:22 +00:00
55 lines
2 KiB
C#
55 lines
2 KiB
C#
using Microsoft.Xna.Framework;
|
|
using ProjectZ.InGame.GameObjects.Base;
|
|
using ProjectZ.InGame.GameObjects.Base.CObjects;
|
|
using ProjectZ.InGame.GameObjects.Base.Components;
|
|
using ProjectZ.InGame.Things;
|
|
|
|
namespace ProjectZ.InGame.GameObjects.Things
|
|
{
|
|
public class ObjFinalBackgroundStairs : GameObject
|
|
{
|
|
private readonly string _despawnKey;
|
|
|
|
private const int DespawnTime = 500;
|
|
private double _despawnCounter;
|
|
private bool _despawning;
|
|
|
|
public ObjFinalBackgroundStairs() : base("editor_final_platform") { }
|
|
|
|
public ObjFinalBackgroundStairs(Map.Map map, int posX, int posY, string despawnKey) : base(map)
|
|
{
|
|
_despawnKey = despawnKey;
|
|
|
|
var sprite = new CSprite("final_background_stairs", new CPosition(posX, posY + 1, 0), new Vector2(0, -1)) { SpriteShader = Resources.ThanosSpriteShader0 };
|
|
Resources.ThanosSpriteShader0.FloatParameter["Percentage"] = 0;
|
|
|
|
if (!string.IsNullOrEmpty(_despawnKey))
|
|
AddComponent(KeyChangeListenerComponent.Index, new KeyChangeListenerComponent(OnKeyChange));
|
|
AddComponent(UpdateComponent.Index, new UpdateComponent(Update));
|
|
AddComponent(DrawComponent.Index, new DrawCSpriteComponent(sprite, Values.LayerBackground));
|
|
}
|
|
|
|
private void OnKeyChange()
|
|
{
|
|
if (!_despawning && Game1.GameManager.SaveManager.GetString(_despawnKey) == "1")
|
|
_despawning = true;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (!_despawning)
|
|
return;
|
|
|
|
_despawnCounter += Game1.DeltaTime;
|
|
if (_despawnCounter > DespawnTime)
|
|
{
|
|
Map.Objects.DeleteObjects.Add(this);
|
|
return;
|
|
}
|
|
|
|
var percentage = (float)_despawnCounter / DespawnTime;
|
|
Resources.ThanosSpriteShader0.FloatParameter["Percentage"] = percentage;
|
|
}
|
|
}
|
|
}
|