Arcade prop.
This commit is contained in:
@@ -11,6 +11,9 @@ namespace Content.Client.GameObjects.Components
|
|||||||
{
|
{
|
||||||
private string KeyboardState = "generic_key";
|
private string KeyboardState = "generic_key";
|
||||||
private string ScreenState = "generic";
|
private string ScreenState = "generic";
|
||||||
|
private string BodyState = "computer";
|
||||||
|
private string BodyBrokenState = "broken";
|
||||||
|
private string ScreenBroken = "computer_broken";
|
||||||
|
|
||||||
public override void LoadData(YamlMappingNode node)
|
public override void LoadData(YamlMappingNode node)
|
||||||
{
|
{
|
||||||
@@ -25,6 +28,16 @@ namespace Content.Client.GameObjects.Components
|
|||||||
{
|
{
|
||||||
ScreenState = scalar.AsString();
|
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)
|
public override void InitializeEntity(IEntity entity)
|
||||||
@@ -33,9 +46,13 @@ namespace Content.Client.GameObjects.Components
|
|||||||
|
|
||||||
var sprite = entity.GetComponent<ISpriteComponent>();
|
var sprite = entity.GetComponent<ISpriteComponent>();
|
||||||
sprite.LayerSetState(Layers.Screen, ScreenState);
|
sprite.LayerSetState(Layers.Screen, ScreenState);
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(KeyboardState))
|
||||||
|
{
|
||||||
sprite.LayerSetState(Layers.Keyboard, $"{KeyboardState}_off");
|
sprite.LayerSetState(Layers.Keyboard, $"{KeyboardState}_off");
|
||||||
sprite.LayerSetState(Layers.KeyboardOn, KeyboardState);
|
sprite.LayerSetState(Layers.KeyboardOn, KeyboardState);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override void OnChangeData(AppearanceComponent component)
|
public override void OnChangeData(AppearanceComponent component)
|
||||||
{
|
{
|
||||||
@@ -52,18 +69,21 @@ namespace Content.Client.GameObjects.Components
|
|||||||
|
|
||||||
if (broken)
|
if (broken)
|
||||||
{
|
{
|
||||||
sprite.LayerSetState(Layers.Body, "broken");
|
sprite.LayerSetState(Layers.Body, BodyBrokenState);
|
||||||
sprite.LayerSetState(Layers.Screen, "computer_broken");
|
sprite.LayerSetState(Layers.Screen, ScreenBroken);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sprite.LayerSetState(Layers.Body, "computer");
|
sprite.LayerSetState(Layers.Body, BodyState);
|
||||||
sprite.LayerSetState(Layers.Screen, ScreenState);
|
sprite.LayerSetState(Layers.Screen, ScreenState);
|
||||||
}
|
}
|
||||||
|
|
||||||
sprite.LayerSetVisible(Layers.Screen, powered);
|
sprite.LayerSetVisible(Layers.Screen, powered);
|
||||||
|
if (sprite.LayerMapTryGet(Layers.KeyboardOn, out _))
|
||||||
|
{
|
||||||
sprite.LayerSetVisible(Layers.KeyboardOn, powered);
|
sprite.LayerSetVisible(Layers.KeyboardOn, powered);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public enum Layers
|
public enum Layers
|
||||||
{
|
{
|
||||||
|
|||||||
24
Resources/Prototypes/Entities/Buildings/computers/arcade.yml
Normal file
24
Resources/Prototypes/Entities/Buildings/computers/arcade.yml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
- type: entity
|
||||||
|
id: Arcade
|
||||||
|
name: arcade
|
||||||
|
parent: ComputerBase
|
||||||
|
components:
|
||||||
|
- type: Icon
|
||||||
|
state: arcade
|
||||||
|
- type: PowerDevice
|
||||||
|
priority: Low
|
||||||
|
- type: Sprite
|
||||||
|
layers:
|
||||||
|
- state: arcade
|
||||||
|
map: ["enum.ComputerVisualizer2D+Layers.Body"]
|
||||||
|
- state: invaders
|
||||||
|
shader: unshaded
|
||||||
|
map: ["enum.ComputerVisualizer2D+Layers.Screen"]
|
||||||
|
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: ComputerVisualizer2D
|
||||||
|
screen: invaders
|
||||||
|
key: ""
|
||||||
|
body: arcade
|
||||||
|
bodyBroken: arcade
|
||||||
BIN
Resources/Textures/Buildings/computer.rsi/arcade.png
Normal file
BIN
Resources/Textures/Buildings/computer.rsi/arcade.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 610 B |
BIN
Resources/Textures/Buildings/computer.rsi/arcade_broken.png
Normal file
BIN
Resources/Textures/Buildings/computer.rsi/arcade_broken.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 225 B |
BIN
Resources/Textures/Buildings/computer.rsi/invaders.png
Normal file
BIN
Resources/Textures/Buildings/computer.rsi/invaders.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 393 B |
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user