Arcade prop.

This commit is contained in:
Pieter-Jan Briers
2020-04-23 23:51:15 +02:00
parent c07c0c0032
commit 5a09e91ca3
6 changed files with 51 additions and 7 deletions

View File

@@ -11,6 +11,9 @@ namespace Content.Client.GameObjects.Components
{
private string KeyboardState = "generic_key";
private string ScreenState = "generic";
private string BodyState = "computer";
private string BodyBrokenState = "broken";
private string ScreenBroken = "computer_broken";
public override void LoadData(YamlMappingNode node)
{
@@ -25,6 +28,16 @@ namespace Content.Client.GameObjects.Components
{
ScreenState = scalar.AsString();
}
if (node.TryGetNode("body", out scalar))
{
BodyState = scalar.AsString();
}
if (node.TryGetNode("bodyBroken", out scalar))
{
BodyBrokenState = scalar.AsString();
}
}
public override void InitializeEntity(IEntity entity)
@@ -33,8 +46,12 @@ namespace Content.Client.GameObjects.Components
var sprite = entity.GetComponent<ISpriteComponent>();
sprite.LayerSetState(Layers.Screen, ScreenState);
sprite.LayerSetState(Layers.Keyboard, $"{KeyboardState}_off");
sprite.LayerSetState(Layers.KeyboardOn, KeyboardState);
if (!string.IsNullOrEmpty(KeyboardState))
{
sprite.LayerSetState(Layers.Keyboard, $"{KeyboardState}_off");
sprite.LayerSetState(Layers.KeyboardOn, KeyboardState);
}
}
public override void OnChangeData(AppearanceComponent component)
@@ -52,17 +69,20 @@ namespace Content.Client.GameObjects.Components
if (broken)
{
sprite.LayerSetState(Layers.Body, "broken");
sprite.LayerSetState(Layers.Screen, "computer_broken");
sprite.LayerSetState(Layers.Body, BodyBrokenState);
sprite.LayerSetState(Layers.Screen, ScreenBroken);
}
else
{
sprite.LayerSetState(Layers.Body, "computer");
sprite.LayerSetState(Layers.Body, BodyState);
sprite.LayerSetState(Layers.Screen, ScreenState);
}
sprite.LayerSetVisible(Layers.Screen, powered);
sprite.LayerSetVisible(Layers.KeyboardOn, powered);
if (sprite.LayerMapTryGet(Layers.KeyboardOn, out _))
{
sprite.LayerSetVisible(Layers.KeyboardOn, powered);
}
}
public enum Layers