Airlocks rewritten to use appearances, use less ugly sprite from Eris.

This commit is contained in:
Pieter-Jan Briers
2019-03-16 20:40:07 +01:00
parent 1b3d3debc1
commit 84aa369809
17 changed files with 86 additions and 30 deletions

View File

@@ -9,6 +9,7 @@ using SS14.Shared.Log;
using SS14.Shared.Maths;
using SS14.Shared.IoC;
using Content.Server.GameObjects.EntitySystems;
using Content.Shared.GameObjects.Components.Doors;
using SS14.Shared.Serialization;
using SS14.Shared.Interfaces.Network;
using SS14.Shared.ViewVariables;
@@ -24,31 +25,20 @@ namespace Content.Server.GameObjects
private float OpenTimeCounter;
private CollidableComponent collidableComponent;
private SpriteComponent spriteComponent;
private string OpenSprite;
private string CloseSprite;
public override void ExposeData(ObjectSerializer serializer)
{
base.ExposeData(serializer);
serializer.DataField(ref OpenSprite, "openstate", "Objects/door_ewo.png");
serializer.DataField(ref CloseSprite, "closestate", "Objects/door_ew.png");
}
private AppearanceComponent _appearance;
public override void Initialize()
{
base.Initialize();
collidableComponent = Owner.GetComponent<CollidableComponent>();
spriteComponent = Owner.GetComponent<SpriteComponent>();
_appearance = Owner.GetComponent<AppearanceComponent>();
}
public override void OnRemove()
{
collidableComponent = null;
spriteComponent = null;
_appearance = null;
base.OnRemove();
}
@@ -87,7 +77,7 @@ namespace Content.Server.GameObjects
{
Opened = true;
collidableComponent.IsHardCollidable = false;
spriteComponent.LayerSetTexture(0, OpenSprite);
_appearance.SetData(DoorVisuals.VisualState, DoorVisualState.Open);
}
public bool Close()
@@ -100,7 +90,7 @@ namespace Content.Server.GameObjects
Opened = false;
OpenTimeCounter = 0;
collidableComponent.IsHardCollidable = true;
spriteComponent.LayerSetTexture(0, CloseSprite);
_appearance.SetData(DoorVisuals.VisualState, DoorVisualState.Closed);
return true;
}