Piping sprites cleanup (#3022)
* Moves piping visualizers to own folder * Pump visualizer update * Siphon and vent visualiser only set enabled visibility * PipeVisualizer cleanup * Replaces off vent/scrubber sprites * Gas filter sprite update * Revert "Gas filter sprite update" This reverts commit 676e5d55e1157a229b1445eeea53a5c8032dbbb5. * Rotates gas filter sprites to match T-junction pipe directions * Removes pipes from scruber and vent state * Makes sprite components use layers * disabled sprite netsync on piping entities * piping meta.json cleanup Co-authored-by: py01 <pyronetics01@gmail.com>
@@ -5,7 +5,6 @@ using Robust.Client.GameObjects;
|
|||||||
using Robust.Client.Interfaces.GameObjects.Components;
|
using Robust.Client.Interfaces.GameObjects.Components;
|
||||||
using Robust.Shared.Interfaces.GameObjects;
|
using Robust.Shared.Interfaces.GameObjects;
|
||||||
using Robust.Shared.Serialization;
|
using Robust.Shared.Serialization;
|
||||||
using Robust.Shared.Utility;
|
|
||||||
using YamlDotNet.RepresentationModel;
|
using YamlDotNet.RepresentationModel;
|
||||||
|
|
||||||
namespace Content.Client.GameObjects.Components.Atmos
|
namespace Content.Client.GameObjects.Components.Atmos
|
||||||
@@ -10,6 +10,7 @@ using Robust.Shared.GameObjects.Components.Renderable;
|
|||||||
using Robust.Shared.Interfaces.GameObjects;
|
using Robust.Shared.Interfaces.GameObjects;
|
||||||
using Robust.Shared.IoC;
|
using Robust.Shared.IoC;
|
||||||
using Robust.Shared.Log;
|
using Robust.Shared.Log;
|
||||||
|
using Robust.Shared.Serialization;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
using YamlDotNet.RepresentationModel;
|
using YamlDotNet.RepresentationModel;
|
||||||
|
|
||||||
@@ -18,14 +19,18 @@ namespace Content.Client.GameObjects.Components.Atmos
|
|||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public class PipeVisualizer : AppearanceVisualizer
|
public class PipeVisualizer : AppearanceVisualizer
|
||||||
{
|
{
|
||||||
|
private string _rsiString;
|
||||||
|
|
||||||
private RSI _pipeRSI;
|
private RSI _pipeRSI;
|
||||||
|
|
||||||
public override void LoadData(YamlMappingNode node)
|
public override void LoadData(YamlMappingNode node)
|
||||||
{
|
{
|
||||||
base.LoadData(node);
|
base.LoadData(node);
|
||||||
|
|
||||||
var rsiString = node.GetNode("pipeRSI").ToString();
|
var serializer = YamlObjectSerializer.NewReader(node);
|
||||||
var rsiPath = SharedSpriteComponent.TextureRoot / rsiString;
|
serializer.DataField(ref _rsiString, "rsiString", "Constructible/Atmos/pipe.rsi");
|
||||||
|
|
||||||
|
var rsiPath = SharedSpriteComponent.TextureRoot / _rsiString;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var resourceCache = IoCManager.Resolve<IResourceCache>();
|
var resourceCache = IoCManager.Resolve<IResourceCache>();
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
using Content.Shared.GameObjects.Components.Atmos;
|
using Content.Shared.GameObjects.Components.Atmos;
|
||||||
using JetBrains.Annotations;
|
using JetBrains.Annotations;
|
||||||
using Robust.Client.GameObjects;
|
using Robust.Client.GameObjects;
|
||||||
using Robust.Client.Interfaces.GameObjects.Components;
|
using Robust.Client.Interfaces.GameObjects.Components;
|
||||||
using Robust.Shared.Interfaces.GameObjects;
|
using Robust.Shared.Interfaces.GameObjects;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Serialization;
|
||||||
using YamlDotNet.RepresentationModel;
|
using YamlDotNet.RepresentationModel;
|
||||||
|
|
||||||
namespace Content.Client.GameObjects.Components.Atmos
|
namespace Content.Client.GameObjects.Components.Atmos
|
||||||
@@ -16,7 +16,9 @@ namespace Content.Client.GameObjects.Components.Atmos
|
|||||||
public override void LoadData(YamlMappingNode node)
|
public override void LoadData(YamlMappingNode node)
|
||||||
{
|
{
|
||||||
base.LoadData(node);
|
base.LoadData(node);
|
||||||
_pumpEnabledState = node.GetNode("pumpEnabledState").ToString();
|
|
||||||
|
var serializer = YamlObjectSerializer.NewReader(node);
|
||||||
|
serializer.DataField(ref _pumpEnabledState, "pumpEnabledState", "pumpPressureOn");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void InitializeEntity(IEntity entity)
|
public override void InitializeEntity(IEntity entity)
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
using JetBrains.Annotations;
|
||||||
|
using Robust.Client.GameObjects;
|
||||||
|
using Robust.Client.Interfaces.GameObjects.Components;
|
||||||
|
using Content.Shared.GameObjects.Components.Atmos;
|
||||||
|
using YamlDotNet.RepresentationModel;
|
||||||
|
using Robust.Shared.Interfaces.GameObjects;
|
||||||
|
using Robust.Shared.Serialization;
|
||||||
|
|
||||||
|
namespace Content.Client.GameObjects.Components.Atmos
|
||||||
|
{
|
||||||
|
[UsedImplicitly]
|
||||||
|
public class SiphonVisualizer : AppearanceVisualizer
|
||||||
|
{
|
||||||
|
private string _siphonOnState;
|
||||||
|
|
||||||
|
public override void LoadData(YamlMappingNode node)
|
||||||
|
{
|
||||||
|
base.LoadData(node);
|
||||||
|
|
||||||
|
var serializer = YamlObjectSerializer.NewReader(node);
|
||||||
|
serializer.DataField(ref _siphonOnState, "siphonOnState", "scrubOn");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void InitializeEntity(IEntity entity)
|
||||||
|
{
|
||||||
|
base.InitializeEntity(entity);
|
||||||
|
|
||||||
|
if (!entity.TryGetComponent(out ISpriteComponent sprite)) return;
|
||||||
|
|
||||||
|
sprite.LayerMapReserveBlank(Layer.SiphonEnabled);
|
||||||
|
var layer = sprite.LayerMapGet(Layer.SiphonEnabled);
|
||||||
|
sprite.LayerSetState(layer, _siphonOnState);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnChangeData(AppearanceComponent component)
|
||||||
|
{
|
||||||
|
base.OnChangeData(component);
|
||||||
|
|
||||||
|
if (!component.Owner.TryGetComponent(out ISpriteComponent sprite)) return;
|
||||||
|
if (!component.TryGetData(SiphonVisuals.VisualState, out SiphonVisualState siphonVisualState)) return;
|
||||||
|
|
||||||
|
var layer = sprite.LayerMapGet(Layer.SiphonEnabled);
|
||||||
|
sprite.LayerSetVisible(layer, siphonVisualState.SiphonEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
private enum Layer : byte
|
||||||
|
{
|
||||||
|
SiphonEnabled,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
using JetBrains.Annotations;
|
||||||
|
using Robust.Client.GameObjects;
|
||||||
|
using Robust.Client.Interfaces.GameObjects.Components;
|
||||||
|
using Content.Shared.GameObjects.Components.Atmos;
|
||||||
|
using YamlDotNet.RepresentationModel;
|
||||||
|
using Robust.Shared.Interfaces.GameObjects;
|
||||||
|
using Robust.Shared.Serialization;
|
||||||
|
|
||||||
|
namespace Content.Client.GameObjects.Components.Atmos
|
||||||
|
{
|
||||||
|
[UsedImplicitly]
|
||||||
|
public class VentVisualizer : AppearanceVisualizer
|
||||||
|
{
|
||||||
|
private string _ventOnstate;
|
||||||
|
|
||||||
|
public override void LoadData(YamlMappingNode node)
|
||||||
|
{
|
||||||
|
base.LoadData(node);
|
||||||
|
|
||||||
|
var serializer = YamlObjectSerializer.NewReader(node);
|
||||||
|
serializer.DataField(ref _ventOnstate, "ventOnState", "ventOn");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void InitializeEntity(IEntity entity)
|
||||||
|
{
|
||||||
|
base.InitializeEntity(entity);
|
||||||
|
|
||||||
|
if (!entity.TryGetComponent(out ISpriteComponent sprite)) return;
|
||||||
|
|
||||||
|
sprite.LayerMapReserveBlank(Layer.VentEnabled);
|
||||||
|
var layer = sprite.LayerMapGet(Layer.VentEnabled);
|
||||||
|
sprite.LayerSetState(layer, _ventOnstate);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnChangeData(AppearanceComponent component)
|
||||||
|
{
|
||||||
|
base.OnChangeData(component);
|
||||||
|
|
||||||
|
if (!component.Owner.TryGetComponent(out ISpriteComponent sprite)) return;
|
||||||
|
if (!component.TryGetData(VentVisuals.VisualState, out VentVisualState ventVisualState)) return;
|
||||||
|
|
||||||
|
var layer = sprite.LayerMapGet(Layer.VentEnabled);
|
||||||
|
sprite.LayerSetVisible(layer, ventVisualState.VentEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
private enum Layer : byte
|
||||||
|
{
|
||||||
|
VentEnabled,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
using JetBrains.Annotations;
|
|
||||||
using Robust.Client.GameObjects;
|
|
||||||
using Robust.Client.Graphics;
|
|
||||||
using Robust.Client.Interfaces.GameObjects.Components;
|
|
||||||
using Robust.Client.Interfaces.ResourceManagement;
|
|
||||||
using Robust.Client.ResourceManagement;
|
|
||||||
using Robust.Shared.GameObjects.Components.Renderable;
|
|
||||||
using Robust.Shared.IoC;
|
|
||||||
using Robust.Shared.Log;
|
|
||||||
using Robust.Shared.Utility;
|
|
||||||
using System;
|
|
||||||
using Content.Shared.GameObjects.Components.Atmos;
|
|
||||||
using YamlDotNet.RepresentationModel;
|
|
||||||
using Robust.Shared.Interfaces.GameObjects;
|
|
||||||
|
|
||||||
namespace Content.Client.GameObjects.Components.Atmos
|
|
||||||
{
|
|
||||||
[UsedImplicitly]
|
|
||||||
public class SiphonVisualizer : AppearanceVisualizer
|
|
||||||
{
|
|
||||||
private RSI _siphonRSI;
|
|
||||||
|
|
||||||
public override void LoadData(YamlMappingNode node)
|
|
||||||
{
|
|
||||||
base.LoadData(node);
|
|
||||||
|
|
||||||
var rsiString = node.GetNode("siphonRSI").ToString();
|
|
||||||
var rsiPath = SharedSpriteComponent.TextureRoot / rsiString;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var resourceCache = IoCManager.Resolve<IResourceCache>();
|
|
||||||
var resource = resourceCache.GetResource<RSIResource>(rsiPath);
|
|
||||||
_siphonRSI = resource.RSI;
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Logger.ErrorS("go.siphonvisualizer", "Unable to load RSI '{0}'. Trace:\n{1}", rsiPath, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void InitializeEntity(IEntity entity)
|
|
||||||
{
|
|
||||||
base.InitializeEntity(entity);
|
|
||||||
if (!entity.TryGetComponent(out ISpriteComponent sprite)) return;
|
|
||||||
sprite.LayerMapReserveBlank(Layer.SiphonBase);
|
|
||||||
var pipeBaseLayer = sprite.LayerMapGet(Layer.SiphonBase);
|
|
||||||
sprite.LayerSetRSI(pipeBaseLayer, _siphonRSI);
|
|
||||||
sprite.LayerSetVisible(pipeBaseLayer, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnChangeData(AppearanceComponent component)
|
|
||||||
{
|
|
||||||
base.OnChangeData(component);
|
|
||||||
|
|
||||||
if (!component.Owner.TryGetComponent(out ISpriteComponent sprite)) return;
|
|
||||||
if (!component.TryGetData(SiphonVisuals.VisualState, out SiphonVisualState siphonVisualState)) return;
|
|
||||||
|
|
||||||
var siphonBaseState = "scrub";
|
|
||||||
siphonBaseState += siphonVisualState.SiphonEnabled ? "On" : "Off";
|
|
||||||
|
|
||||||
var baseSiphonLayer = sprite.LayerMapGet(Layer.SiphonBase);
|
|
||||||
sprite.LayerSetRSI(baseSiphonLayer, _siphonRSI);
|
|
||||||
sprite.LayerSetState(baseSiphonLayer, siphonBaseState);
|
|
||||||
sprite.LayerSetVisible(baseSiphonLayer, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private enum Layer : byte
|
|
||||||
{
|
|
||||||
SiphonBase,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
using JetBrains.Annotations;
|
|
||||||
using Robust.Client.GameObjects;
|
|
||||||
using Robust.Client.Graphics;
|
|
||||||
using Robust.Client.Interfaces.GameObjects.Components;
|
|
||||||
using Robust.Client.Interfaces.ResourceManagement;
|
|
||||||
using Robust.Client.ResourceManagement;
|
|
||||||
using Robust.Shared.GameObjects.Components.Renderable;
|
|
||||||
using Robust.Shared.IoC;
|
|
||||||
using Robust.Shared.Log;
|
|
||||||
using Robust.Shared.Utility;
|
|
||||||
using System;
|
|
||||||
using Content.Shared.GameObjects.Components.Atmos;
|
|
||||||
using YamlDotNet.RepresentationModel;
|
|
||||||
using Robust.Shared.Interfaces.GameObjects;
|
|
||||||
|
|
||||||
namespace Content.Client.GameObjects.Components.Atmos
|
|
||||||
{
|
|
||||||
[UsedImplicitly]
|
|
||||||
public class VentVisualizer : AppearanceVisualizer
|
|
||||||
{
|
|
||||||
private RSI _ventRSI;
|
|
||||||
|
|
||||||
public override void LoadData(YamlMappingNode node)
|
|
||||||
{
|
|
||||||
base.LoadData(node);
|
|
||||||
|
|
||||||
var rsiString = node.GetNode("ventRSI").ToString();
|
|
||||||
var rsiPath = SharedSpriteComponent.TextureRoot / rsiString;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var resourceCache = IoCManager.Resolve<IResourceCache>();
|
|
||||||
var resource = resourceCache.GetResource<RSIResource>(rsiPath);
|
|
||||||
_ventRSI = resource.RSI;
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Logger.ErrorS("go.ventvisualizer", "Unable to load RSI '{0}'. Trace:\n{1}", rsiPath, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void InitializeEntity(IEntity entity)
|
|
||||||
{
|
|
||||||
base.InitializeEntity(entity);
|
|
||||||
if (!entity.TryGetComponent(out ISpriteComponent sprite)) return;
|
|
||||||
sprite.LayerMapReserveBlank(Layer.VentBase);
|
|
||||||
var pipeBaseLayer = sprite.LayerMapGet(Layer.VentBase);
|
|
||||||
sprite.LayerSetRSI(pipeBaseLayer, _ventRSI);
|
|
||||||
sprite.LayerSetVisible(pipeBaseLayer, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnChangeData(AppearanceComponent component)
|
|
||||||
{
|
|
||||||
base.OnChangeData(component);
|
|
||||||
|
|
||||||
if (!component.Owner.TryGetComponent(out ISpriteComponent sprite)) return;
|
|
||||||
if (!component.TryGetData(VentVisuals.VisualState, out VentVisualState ventVisualState)) return;
|
|
||||||
|
|
||||||
var ventBaseState = "vent";
|
|
||||||
ventBaseState += ventVisualState.VentEnabled ? "On" : "Off";
|
|
||||||
|
|
||||||
var baseVentLayer = sprite.LayerMapGet(Layer.VentBase);
|
|
||||||
sprite.LayerSetRSI(baseVentLayer, _ventRSI);
|
|
||||||
sprite.LayerSetState(baseVentLayer, ventBaseState);
|
|
||||||
sprite.LayerSetVisible(baseVentLayer, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private enum Layer : byte
|
|
||||||
{
|
|
||||||
VentBase,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -10,15 +10,12 @@
|
|||||||
- type: SnapGrid
|
- type: SnapGrid
|
||||||
offset: Center
|
offset: Center
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
|
netsync: false
|
||||||
sprite: Constructible/Atmos/gascanisterport.rsi
|
sprite: Constructible/Atmos/gascanisterport.rsi
|
||||||
state: gasCanisterPort
|
layers:
|
||||||
- type: Icon
|
- sprite: Constructible/Atmos/pipe.rsi
|
||||||
sprite: Constructible/Atmos/gascanisterport.rsi
|
state: pipeHalf
|
||||||
state: gasCanisterPort
|
- state: gasCanisterPort
|
||||||
- type: Appearance
|
|
||||||
visuals:
|
|
||||||
- type: PipeVisualizer
|
|
||||||
pipeRSI: Constructible/Atmos/pipe.rsi
|
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
|
|||||||
@@ -17,19 +17,23 @@
|
|||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
acts: ["Destruction"]
|
acts: ["Destruction"]
|
||||||
|
- type: Sprite
|
||||||
|
netsync: false
|
||||||
|
sprite: Constructible/Atmos/gasfilter.rsi
|
||||||
|
layers:
|
||||||
|
- sprite: Constructible/Atmos/pipe.rsi
|
||||||
|
state: pipeTJunction
|
||||||
|
- state: gasFilter
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: GasFilterVisualizer
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: GasFilterBase
|
parent: GasFilterBase
|
||||||
id: GasFilter
|
id: GasFilter
|
||||||
name: Gas Filter
|
name: Gas Filter
|
||||||
description: It filters gases.
|
description: It filters gases.
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
|
||||||
sprite: Constructible/Atmos/gasfilter.rsi
|
|
||||||
state: gasFilter
|
|
||||||
- type: Icon
|
|
||||||
sprite: Constructible/Atmos/gasfilter.rsi
|
|
||||||
state: gasFilter
|
|
||||||
- type: NodeContainer
|
- type: NodeContainer
|
||||||
nodes:
|
nodes:
|
||||||
- !type:PipeNode
|
- !type:PipeNode
|
||||||
@@ -45,7 +49,3 @@
|
|||||||
inletDirection: South
|
inletDirection: South
|
||||||
filterOutletDirection: East
|
filterOutletDirection: East
|
||||||
outletDirection: North
|
outletDirection: North
|
||||||
- type: Appearance
|
|
||||||
visuals:
|
|
||||||
- type: GasFilterVisualizer
|
|
||||||
filerEnabledState: gasFilterOn
|
|
||||||
@@ -19,10 +19,10 @@
|
|||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
acts: ["Destruction"]
|
acts: ["Destruction"]
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
|
netsync: false
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
visuals:
|
visuals:
|
||||||
- type: PipeVisualizer
|
- type: PipeVisualizer
|
||||||
pipeRSI: Constructible/Atmos/pipe.rsi
|
|
||||||
- type: Icon
|
- type: Icon
|
||||||
sprite: Constructible/Atmos/pipe.rsi
|
sprite: Constructible/Atmos/pipe.rsi
|
||||||
|
|
||||||
|
|||||||
@@ -18,9 +18,15 @@
|
|||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
acts: ["Destruction"]
|
acts: ["Destruction"]
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
|
netsync: false
|
||||||
sprite: Constructible/Atmos/pump.rsi
|
sprite: Constructible/Atmos/pump.rsi
|
||||||
- type: Icon
|
layers:
|
||||||
sprite: Constructible/Atmos/pump.rsi
|
- sprite: Constructible/Atmos/pipe.rsi
|
||||||
|
state: pipeStraight
|
||||||
|
- state: pumpPressure
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: PumpVisualizer
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: PumpBase
|
parent: PumpBase
|
||||||
@@ -38,11 +44,4 @@
|
|||||||
- type: PressurePump
|
- type: PressurePump
|
||||||
inletDirection: West
|
inletDirection: West
|
||||||
outletDirection: East
|
outletDirection: East
|
||||||
- type: Sprite
|
|
||||||
state: pumpPressure
|
|
||||||
- type: Icon
|
|
||||||
state: pumpPressure
|
|
||||||
- type: Appearance
|
|
||||||
visuals:
|
|
||||||
- type: PumpVisualizer
|
|
||||||
pumpEnabledState: pumpPressureOn
|
|
||||||
@@ -9,16 +9,6 @@
|
|||||||
- type: Physics
|
- type: Physics
|
||||||
- type: SnapGrid
|
- type: SnapGrid
|
||||||
offset: Center
|
offset: Center
|
||||||
|
|
||||||
- type: Sprite
|
|
||||||
sprite: Constructible/Atmos/pipeitems.rsi
|
|
||||||
state: scrubber
|
|
||||||
- type: Appearance
|
|
||||||
visuals:
|
|
||||||
- type: PipeVisualizer
|
|
||||||
pipeRSI: Constructible/Atmos/pipe.rsi
|
|
||||||
- type: SiphonVisualizer
|
|
||||||
siphonRSI: Constructible/Atmos/scrubber.rsi
|
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
resistances: metallicResistances
|
resistances: metallicResistances
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
@@ -27,7 +17,17 @@
|
|||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
acts: ["Destruction"]
|
acts: ["Destruction"]
|
||||||
|
- type: Sprite
|
||||||
|
netsync: false
|
||||||
|
sprite: Constructible/Atmos/scrubber.rsi
|
||||||
|
layers:
|
||||||
|
- sprite: Constructible/Atmos/pipe.rsi
|
||||||
|
state: pipeHalf
|
||||||
|
- state: scrubOff
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: SiphonVisualizer
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: ScrubberBase
|
parent: ScrubberBase
|
||||||
id: Scrubber
|
id: Scrubber
|
||||||
|
|||||||
@@ -9,16 +9,6 @@
|
|||||||
- type: Physics
|
- type: Physics
|
||||||
- type: SnapGrid
|
- type: SnapGrid
|
||||||
offset: Center
|
offset: Center
|
||||||
|
|
||||||
- type: Sprite
|
|
||||||
sprite: Constructible/Atmos/pipeitems.rsi
|
|
||||||
state: vent
|
|
||||||
- type: Appearance
|
|
||||||
visuals:
|
|
||||||
- type: PipeVisualizer
|
|
||||||
pipeRSI: Constructible/Atmos/pipe.rsi
|
|
||||||
- type: VentVisualizer
|
|
||||||
ventRSI: Constructible/Atmos/vent.rsi
|
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
resistances: metallicResistances
|
resistances: metallicResistances
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
@@ -27,7 +17,17 @@
|
|||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
acts: ["Destruction"]
|
acts: ["Destruction"]
|
||||||
|
- type: Sprite
|
||||||
|
netsync: false
|
||||||
|
sprite: Constructible/Atmos/vent.rsi
|
||||||
|
layers:
|
||||||
|
- sprite: Constructible/Atmos/pipe.rsi
|
||||||
|
state: pipeHalf
|
||||||
|
- state: ventOff
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: VentVisualizer
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: VentBase
|
parent: VentBase
|
||||||
id: Vent
|
id: Vent
|
||||||
|
|||||||
@@ -1 +1,15 @@
|
|||||||
{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "Taken from https://github.com/tgstation/tgstation at commit 57cd1d59ca019dd0e7811ac451f295f818e573da", "states": [{"name": "gasCanisterPort", "directions": 1, "delays": [[1.0]]}]}
|
{
|
||||||
|
"version":1,
|
||||||
|
"size":{
|
||||||
|
"x":32,
|
||||||
|
"y":32
|
||||||
|
},
|
||||||
|
"license":"CC-BY-SA-3.0",
|
||||||
|
"copyright":"Taken from https://github.com/tgstation/tgstation at commit 57cd1d59ca019dd0e7811ac451f295f818e573da",
|
||||||
|
"states":[
|
||||||
|
{
|
||||||
|
"name":"gasCanisterPort",
|
||||||
|
"directions":1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 825 B After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 16 KiB |
@@ -1 +1,20 @@
|
|||||||
{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "Taken from https://github.com/tgstation/tgstation at commit 57cd1d59ca019dd0e7811ac451f295f818e573da", "states": [{"name": "gasFilter", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "gasFilterOn", "directions": 4, "delays": [[0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2]]}]}
|
{
|
||||||
|
"version":1,
|
||||||
|
"size":{
|
||||||
|
"x":32,
|
||||||
|
"y":32
|
||||||
|
},
|
||||||
|
"license":"CC-BY-SA-3.0",
|
||||||
|
"copyright":"Taken from https://github.com/tgstation/tgstation at commit 57cd1d59ca019dd0e7811ac451f295f818e573da",
|
||||||
|
"states":[
|
||||||
|
{
|
||||||
|
"name":"gasFilter",
|
||||||
|
"directions":4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"gasFilterOn",
|
||||||
|
"directions":4,
|
||||||
|
"delays":[ [ 0.2, 0.2, 0.2, 0.2 ], [ 0.2, 0.2, 0.2, 0.2 ], [ 0.2, 0.2, 0.2, 0.2 ], [ 0.2, 0.2, 0.2, 0.2 ] ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -9,84 +9,23 @@
|
|||||||
"states":[
|
"states":[
|
||||||
{
|
{
|
||||||
"name":"pipeTJunction",
|
"name":"pipeTJunction",
|
||||||
"directions":4,
|
"directions":4
|
||||||
"delays":[
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"pipeHalf",
|
"name":"pipeHalf",
|
||||||
"directions":4,
|
"directions":4
|
||||||
"delays":[
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"pipeBend",
|
"name":"pipeBend",
|
||||||
"directions":4,
|
"directions":4
|
||||||
"delays":[
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"pipeFourway",
|
"name":"pipeFourway",
|
||||||
"directions":1,
|
"directions":1
|
||||||
"delays":[
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"pipeStraight",
|
"name":"pipeStraight",
|
||||||
"directions":4,
|
"directions":4
|
||||||
"delays":[
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1.0
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
{
|
|
||||||
"version":1,
|
|
||||||
"size":{
|
|
||||||
"x":32,
|
|
||||||
"y":32
|
|
||||||
},
|
|
||||||
"license":"CC-BY-SA-3.0",
|
|
||||||
"copyright":"Taken from https://github.com/tgstation/tgstation at commit 57cd1d59ca019dd0e7811ac451f295f818e573da",
|
|
||||||
"states":[
|
|
||||||
{
|
|
||||||
"name": "scrubber",
|
|
||||||
"directions": 4,
|
|
||||||
"delays": [
|
|
||||||
[
|
|
||||||
1
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "vent",
|
|
||||||
"directions": 4,
|
|
||||||
"delays": [
|
|
||||||
[
|
|
||||||
1
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1
|
|
||||||
],
|
|
||||||
[
|
|
||||||
1
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 649 B |
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1 +1,45 @@
|
|||||||
{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "Taken from https://github.com/tgstation/tgstation at commit 57cd1d59ca019dd0e7811ac451f295f818e573da", "states": [{"name": "pumpDigitalValve", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "pumpManualValve", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "pumpPassiveGate", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "pumpPassiveGateOn", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "pumpPressure", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "pumpPressureOn", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1]]}, {"name": "pumpVolume", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "pumpVolumeOn", "directions": 4, "delays": [[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]]}]}
|
{
|
||||||
|
"version":1,
|
||||||
|
"size":{
|
||||||
|
"x":32,
|
||||||
|
"y":32
|
||||||
|
},
|
||||||
|
"license":"CC-BY-SA-3.0",
|
||||||
|
"copyright":"Taken from https://github.com/tgstation/tgstation at commit 57cd1d59ca019dd0e7811ac451f295f818e573da",
|
||||||
|
"states":[
|
||||||
|
{
|
||||||
|
"name":"pumpDigitalValve",
|
||||||
|
"directions":4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"pumpManualValve",
|
||||||
|
"directions":4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"pumpPassiveGate",
|
||||||
|
"directions":4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"pumpPassiveGateOn",
|
||||||
|
"directions":4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"pumpPressure",
|
||||||
|
"directions":4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"pumpPressureOn",
|
||||||
|
"directions":4,
|
||||||
|
"delays":[ [ 0.1, 0.1, 0.1, 0.1, 0.1 ], [ 0.1, 0.1, 0.1, 0.1, 0.1 ], [ 0.1, 0.1, 0.1, 0.1, 0.1 ], [ 0.1, 0.1, 0.1, 0.1, 0.1 ] ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"pumpVolume",
|
||||||
|
"directions":4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"pumpVolumeOn",
|
||||||
|
"directions":4,
|
||||||
|
"delays":[ [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 ], [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 ], [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 ], [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 ] ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 5.1 KiB |
@@ -9,40 +9,12 @@
|
|||||||
"states":[
|
"states":[
|
||||||
{
|
{
|
||||||
"name":"scrubOff",
|
"name":"scrubOff",
|
||||||
"directions":1,
|
"directions":4
|
||||||
"delays":[ [ 1.0 ] ]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"scrubOn",
|
"name":"scrubOn",
|
||||||
"directions":1,
|
"directions":1,
|
||||||
"delays":[
|
"delays":[ [ 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08 ] ]
|
||||||
[
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 767 B After Width: | Height: | Size: 6.0 KiB |
@@ -9,20 +9,12 @@
|
|||||||
"states":[
|
"states":[
|
||||||
{
|
{
|
||||||
"name":"ventOff",
|
"name":"ventOff",
|
||||||
"directions":1,
|
"directions":4
|
||||||
"delays":[ [ 1.0 ] ]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"ventOn",
|
"name":"ventOn",
|
||||||
"directions":1,
|
"directions":1,
|
||||||
"delays":[
|
"delays":[ [ 0.08, 0.08, 0.08, 0.08 ] ]
|
||||||
[
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08,
|
|
||||||
0.08
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 612 B After Width: | Height: | Size: 6.4 KiB |