Add pipe coloring (#4261)

This commit is contained in:
Vera Aguilera Puerto
2021-07-12 09:59:45 +02:00
committed by GitHub
parent 6bbcf305bd
commit 077f158dda
17 changed files with 163 additions and 35 deletions

View File

@@ -4,7 +4,7 @@ using Robust.Client.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization.Manager.Attributes;
namespace Content.Client.Atmos.Piping
namespace Content.Client.Atmos.Visualizers
{
[UsedImplicitly]
public abstract class EnabledAtmosDeviceVisualizer : AppearanceVisualizer

View File

@@ -2,7 +2,7 @@ using System;
using Content.Shared.Atmos.Piping;
using JetBrains.Annotations;
namespace Content.Client.Atmos.Piping
namespace Content.Client.Atmos.Visualizers
{
[UsedImplicitly]
public class OutletInjectorVisualizer : EnabledAtmosDeviceVisualizer

View File

@@ -2,7 +2,7 @@ using System;
using Content.Shared.Atmos.Piping;
using JetBrains.Annotations;
namespace Content.Client.Atmos.Piping
namespace Content.Client.Atmos.Visualizers
{
[UsedImplicitly]
public class PassiveVentVisualizer : EnabledAtmosDeviceVisualizer

View File

@@ -0,0 +1,30 @@
using Content.Shared.Atmos.Piping;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Maths;
namespace Content.Client.Atmos.Visualizers
{
[UsedImplicitly]
public class PipeColorVisualizer : AppearanceVisualizer
{
public override void OnChangeData(AppearanceComponent component)
{
base.OnChangeData(component);
if (!component.Owner.TryGetComponent(out SpriteComponent? sprite))
return;
if (component.TryGetData(PipeColorVisuals.Color, out Color color))
{
sprite.LayerSetColor(Layers.Pipe, color);
}
}
public enum Layers : byte
{
Pipe,
}
}
}

View File

@@ -1,6 +1,7 @@
#nullable enable
using System;
using Content.Shared.Atmos;
using Content.Shared.Atmos.Piping;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
using Robust.Client.Graphics;
@@ -8,10 +9,11 @@ using Robust.Client.ResourceManagement;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Maths;
using Robust.Shared.Serialization;
using Robust.Shared.Serialization.Manager.Attributes;
namespace Content.Client.Atmos.Piping
namespace Content.Client.Atmos.Visualizers
{
[UsedImplicitly]
public class PipeConnectorVisualizer : AppearanceVisualizer, ISerializationHooks
@@ -62,6 +64,9 @@ namespace Content.Client.Atmos.Piping
if (!component.Owner.TryGetComponent<ISpriteComponent>(out var sprite))
return;
if (!component.TryGetData(PipeColorVisuals.Color, out Color color))
color = Color.White;
if (!component.TryGetData(PipeVisuals.VisualState, out PipeVisualState state))
return;
@@ -72,6 +77,7 @@ namespace Content.Client.Atmos.Piping
var layer = sprite.LayerMapGet(layerKey);
sprite.LayerSetVisible(layer, layerVisible);
sprite.LayerSetColor(layer, color);
}
}

View File

@@ -2,7 +2,7 @@ using System;
using Content.Shared.Atmos.Piping;
using JetBrains.Annotations;
namespace Content.Client.Atmos.Piping
namespace Content.Client.Atmos.Visualizers
{
[UsedImplicitly]
public class PressurePumpVisualizer : EnabledAtmosDeviceVisualizer

View File

@@ -1,9 +1,8 @@
using Content.Shared.Atmos.Piping.Unary.Visuals;
using Content.Shared.Atmos.Visuals;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
namespace Content.Client.Atmos.Piping
namespace Content.Client.Atmos.Visualizers
{
[UsedImplicitly]
public class ScrubberVisualizer : AppearanceVisualizer

View File

@@ -2,7 +2,7 @@ using System;
using Content.Shared.Atmos.Piping;
using JetBrains.Annotations;
namespace Content.Client.Atmos.Piping
namespace Content.Client.Atmos.Visualizers
{
[UsedImplicitly]
public class ThermoMachineVisualizer : EnabledAtmosDeviceVisualizer

View File

@@ -2,7 +2,7 @@ using Content.Shared.Atmos.Visuals;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
namespace Content.Client.Atmos.Piping
namespace Content.Client.Atmos.Visualizers
{
[UsedImplicitly]
public class VentPumpVisualizer : AppearanceVisualizer