* Doors WiP * Kinda seem to work now? * Finished * Oh yeah maybe enable that. * It works except it doesn't * Undo formatting changes * BuildChecker too
72 lines
1.7 KiB
C#
72 lines
1.7 KiB
C#
using Content.Shared.GameObjects;
|
|
using Lidgren.Network;
|
|
using SS14.Client.GameObjects;
|
|
using SS14.Shared.GameObjects;
|
|
using SS14.Shared.Utility;
|
|
using YamlDotNet.RepresentationModel;
|
|
|
|
namespace Content.Client.GameObjects
|
|
{
|
|
public class ClientDoorComponent : SharedDoorComponent
|
|
{
|
|
public bool Opened { get; private set; }
|
|
private SpriteComponent spriteComponent;
|
|
|
|
private string OpenSprite = "door_ewo";
|
|
private string CloseSprite = "door_ew";
|
|
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
spriteComponent = Owner.GetComponent<SpriteComponent>();
|
|
}
|
|
|
|
private void Open()
|
|
{
|
|
Opened = true;
|
|
spriteComponent.SetSpriteByKey(OpenSprite);
|
|
}
|
|
|
|
private void Close()
|
|
{
|
|
Opened = false;
|
|
spriteComponent.SetSpriteByKey(CloseSprite);
|
|
}
|
|
|
|
public override void HandleComponentState(ComponentState state)
|
|
{
|
|
var castState = (DoorComponentState)state;
|
|
if (castState.Opened == Opened)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (castState.Opened)
|
|
{
|
|
Open();
|
|
}
|
|
else
|
|
{
|
|
Close();
|
|
}
|
|
}
|
|
|
|
public override void LoadParameters(YamlMappingNode mapping)
|
|
{
|
|
base.LoadParameters(mapping);
|
|
|
|
YamlNode node;
|
|
if (mapping.TryGetNode("openstate", out node))
|
|
{
|
|
OpenSprite = node.AsString();
|
|
}
|
|
|
|
if (mapping.TryGetNode("closestate", out node))
|
|
{
|
|
CloseSprite = node.AsString();
|
|
}
|
|
}
|
|
}
|
|
}
|