mirror of
https://github.com/Phantop/LADXHD.git
synced 2024-11-27 08:53:32 +00:00
68 lines
2.1 KiB
C#
68 lines
2.1 KiB
C#
using ProjectZ.InGame.GameObjects.Base;
|
|
using ProjectZ.InGame.GameObjects.Base.Components;
|
|
|
|
namespace ProjectZ.InGame.GameObjects.Things
|
|
{
|
|
internal class ObjPositionDialog : GameObject
|
|
{
|
|
public static Map.Map CurrentMap;
|
|
|
|
private readonly GameObject _spawnObject;
|
|
|
|
private readonly string _strKey;
|
|
private readonly string _strValue;
|
|
|
|
private bool _isSpawned;
|
|
|
|
public ObjPositionDialog() : base("editor position dialog") { }
|
|
|
|
public ObjPositionDialog(Map.Map map, int posX, int posY, string strKey, string strValue, string dialogName) : base(map)
|
|
{
|
|
_strKey = strKey;
|
|
_strValue = strValue;
|
|
|
|
CurrentMap = map;
|
|
Game1.GameManager.SaveManager.SetInt(dialogName + "posX", posX);
|
|
Game1.GameManager.SaveManager.SetInt(dialogName + "posY", posY);
|
|
|
|
_spawnObject = new ObjDialogBox(map, posX, posY, dialogName);
|
|
|
|
// spawn object deactivated
|
|
Map.Objects.SpawnObject(_spawnObject);
|
|
_spawnObject.IsActive = false;
|
|
|
|
// add key change listener
|
|
if (!string.IsNullOrEmpty(_strKey))
|
|
{
|
|
AddComponent(KeyChangeListenerComponent.Index, new KeyChangeListenerComponent(KeyChanged));
|
|
// if we spawn a door we need to use this here for objects refering to the player enter position in the init method
|
|
KeyChanged();
|
|
}
|
|
else
|
|
{
|
|
_spawnObject.IsActive = true;
|
|
IsDead = true;
|
|
}
|
|
}
|
|
|
|
//public override void Init()
|
|
//{
|
|
// KeyChanged();
|
|
//}
|
|
|
|
private void KeyChanged()
|
|
{
|
|
var value = Game1.GameManager.SaveManager.GetString(_strKey);
|
|
|
|
if (!_isSpawned && value == _strValue)
|
|
{
|
|
// activate the object
|
|
_spawnObject.IsActive = true;
|
|
|
|
_isSpawned = true;
|
|
|
|
Map.Objects.DeleteObjects.Add(this);
|
|
}
|
|
}
|
|
}
|
|
} |