Fix build (#26258)
* Fix build - Fixes a couple paint things that were broken. * wat
This commit is contained in:
@@ -7,8 +7,8 @@ using Content.Shared.Paint;
|
|||||||
using Robust.Client.Graphics;
|
using Robust.Client.Graphics;
|
||||||
using Robust.Shared.Prototypes;
|
using Robust.Shared.Prototypes;
|
||||||
|
|
||||||
namespace Content.Client.Paint
|
namespace Content.Client.Paint;
|
||||||
{
|
|
||||||
public sealed class PaintedVisualizerSystem : VisualizerSystem<PaintedComponent>
|
public sealed class PaintedVisualizerSystem : VisualizerSystem<PaintedComponent>
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -18,8 +18,6 @@ namespace Content.Client.Paint
|
|||||||
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
||||||
[Dependency] private readonly IPrototypeManager _protoMan = default!;
|
[Dependency] private readonly IPrototypeManager _protoMan = default!;
|
||||||
|
|
||||||
public ShaderInstance? Shader; // in Robust.Client.Graphics so cannot move to shared component.
|
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
@@ -31,18 +29,17 @@ namespace Content.Client.Paint
|
|||||||
|
|
||||||
protected override void OnAppearanceChange(EntityUid uid, PaintedComponent component, ref AppearanceChangeEvent args)
|
protected override void OnAppearanceChange(EntityUid uid, PaintedComponent component, ref AppearanceChangeEvent args)
|
||||||
{
|
{
|
||||||
// ShaderPrototype sadly in Robust.Client, cannot move to shared component.
|
var shader = _protoMan.Index<ShaderPrototype>(component.ShaderName).Instance();
|
||||||
Shader = _protoMan.Index<ShaderPrototype>(component.ShaderName).Instance();
|
|
||||||
|
|
||||||
if (args.Sprite == null)
|
if (args.Sprite == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!_appearance.TryGetData<bool>(uid, PaintVisuals.Painted, out bool isPainted))
|
// What is this even doing? It's not even checking what the value is.
|
||||||
|
if (!_appearance.TryGetData(uid, PaintVisuals.Painted, out bool isPainted))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var sprite = args.Sprite;
|
var sprite = args.Sprite;
|
||||||
|
|
||||||
|
|
||||||
foreach (var spriteLayer in sprite.AllLayers)
|
foreach (var spriteLayer in sprite.AllLayers)
|
||||||
{
|
{
|
||||||
if (spriteLayer is not Layer layer)
|
if (spriteLayer is not Layer layer)
|
||||||
@@ -50,7 +47,7 @@ namespace Content.Client.Paint
|
|||||||
|
|
||||||
if (layer.Shader == null) // If shader isn't null we dont want to replace the original shader.
|
if (layer.Shader == null) // If shader isn't null we dont want to replace the original shader.
|
||||||
{
|
{
|
||||||
layer.Shader = Shader;
|
layer.Shader = shader;
|
||||||
layer.Color = component.Color;
|
layer.Color = component.Color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -66,7 +63,7 @@ namespace Content.Client.Paint
|
|||||||
|
|
||||||
foreach (var revealed in args.RevealedLayers)
|
foreach (var revealed in args.RevealedLayers)
|
||||||
{
|
{
|
||||||
if (!sprite.LayerMapTryGet(revealed, out var layer) || sprite[layer] is not Layer notlayer)
|
if (!sprite.LayerMapTryGet(revealed, out var layer))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
sprite.LayerSetShader(layer, component.ShaderName);
|
sprite.LayerSetShader(layer, component.ShaderName);
|
||||||
@@ -84,7 +81,7 @@ namespace Content.Client.Paint
|
|||||||
|
|
||||||
foreach (var revealed in args.RevealedLayers)
|
foreach (var revealed in args.RevealedLayers)
|
||||||
{
|
{
|
||||||
if (!sprite.LayerMapTryGet(revealed, out var layer) || sprite[layer] is not Layer notlayer)
|
if (!sprite.LayerMapTryGet(revealed, out var layer))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
sprite.LayerSetShader(layer, component.ShaderName);
|
sprite.LayerSetShader(layer, component.ShaderName);
|
||||||
@@ -98,7 +95,7 @@ namespace Content.Client.Paint
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
component.BeforeColor = sprite.Color;
|
component.BeforeColor = sprite.Color;
|
||||||
Shader = _protoMan.Index<ShaderPrototype>(component.ShaderName).Instance();
|
var shader = _protoMan.Index<ShaderPrototype>(component.ShaderName).Instance();
|
||||||
|
|
||||||
if (!Terminating(uid))
|
if (!Terminating(uid))
|
||||||
{
|
{
|
||||||
@@ -107,7 +104,7 @@ namespace Content.Client.Paint
|
|||||||
if (spriteLayer is not Layer layer)
|
if (spriteLayer is not Layer layer)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (layer.Shader == Shader) // If shader isn't same as one in component we need to ignore it.
|
if (layer.Shader == shader) // If shader isn't same as one in component we need to ignore it.
|
||||||
{
|
{
|
||||||
layer.Shader = null;
|
layer.Shader = null;
|
||||||
if (layer.Color == component.Color) // If color isn't the same as one in component we don't want to change it.
|
if (layer.Color == component.Color) // If color isn't the same as one in component we don't want to change it.
|
||||||
@@ -117,4 +114,3 @@ namespace Content.Client.Paint
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -72,15 +72,12 @@ public sealed class PaintSystem : SharedPaintSystem
|
|||||||
|
|
||||||
var doAfterEventArgs = new DoAfterArgs(EntityManager, user, component.Delay, new PaintDoAfterEvent(), uid, target: target, used: uid)
|
var doAfterEventArgs = new DoAfterArgs(EntityManager, user, component.Delay, new PaintDoAfterEvent(), uid, target: target, used: uid)
|
||||||
{
|
{
|
||||||
BreakOnTargetMove = true,
|
BreakOnMove = true,
|
||||||
BreakOnUserMove = true,
|
|
||||||
BreakOnDamage = true,
|
|
||||||
NeedHand = true,
|
NeedHand = true,
|
||||||
BreakOnHandChange = true
|
BreakOnHandChange = true
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!_doAfterSystem.TryStartDoAfter(doAfterEventArgs))
|
_doAfterSystem.TryStartDoAfter(doAfterEventArgs);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnPaint(Entity<PaintComponent> entity, ref PaintDoAfterEvent args)
|
private void OnPaint(Entity<PaintComponent> entity, ref PaintDoAfterEvent args)
|
||||||
@@ -112,7 +109,6 @@ public sealed class PaintSystem : SharedPaintSystem
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (TryPaint(entity, target))
|
if (TryPaint(entity, target))
|
||||||
{
|
{
|
||||||
EnsureComp<PaintedComponent>(target, out PaintedComponent? paint);
|
EnsureComp<PaintedComponent>(target, out PaintedComponent? paint);
|
||||||
@@ -131,12 +127,14 @@ public sealed class PaintSystem : SharedPaintSystem
|
|||||||
if (!_inventory.TryGetSlotEntity(target, slot.Name, out var slotEnt))
|
if (!_inventory.TryGetSlotEntity(target, slot.Name, out var slotEnt))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (slotEnt == null)
|
if (HasComp<PaintedComponent>(slotEnt.Value) || !entity.Comp.Blacklist?.IsValid(slotEnt.Value,
|
||||||
return;
|
EntityManager) != true
|
||||||
|
|| HasComp<RandomSpriteComponent>(slotEnt.Value) ||
|
||||||
if (HasComp<PaintedComponent>(slotEnt.Value) || !entity.Comp.Blacklist?.IsValid(slotEnt.Value, EntityManager) != true
|
HasComp<HumanoidAppearanceComponent>(
|
||||||
|| HasComp<RandomSpriteComponent>(slotEnt.Value) || HasComp<HumanoidAppearanceComponent>(slotEnt.Value))
|
slotEnt.Value))
|
||||||
return;
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
EnsureComp<PaintedComponent>(slotEnt.Value, out PaintedComponent? slotpaint);
|
EnsureComp<PaintedComponent>(slotEnt.Value, out PaintedComponent? slotpaint);
|
||||||
EnsureComp<AppearanceComponent>(slotEnt.Value);
|
EnsureComp<AppearanceComponent>(slotEnt.Value);
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ public sealed class PaintRemoverSystem : SharedPaintSystem
|
|||||||
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
||||||
[Dependency] private readonly SharedDoAfterSystem _doAfter = default!;
|
[Dependency] private readonly SharedDoAfterSystem _doAfter = default!;
|
||||||
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
||||||
[Dependency] private readonly IGameTiming _timing = default!;
|
|
||||||
[Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!;
|
[Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!;
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
@@ -39,9 +38,8 @@ public sealed class PaintRemoverSystem : SharedPaintSystem
|
|||||||
|
|
||||||
_doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, component.CleanDelay, new PaintRemoverDoAfterEvent(), uid, args.Target, uid)
|
_doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, component.CleanDelay, new PaintRemoverDoAfterEvent(), uid, args.Target, uid)
|
||||||
{
|
{
|
||||||
BreakOnUserMove = true,
|
BreakOnMove = true,
|
||||||
BreakOnDamage = true,
|
BreakOnDamage = true,
|
||||||
BreakOnTargetMove = true,
|
|
||||||
MovementThreshold = 1.0f,
|
MovementThreshold = 1.0f,
|
||||||
});
|
});
|
||||||
args.Handled = true;
|
args.Handled = true;
|
||||||
@@ -77,13 +75,13 @@ public sealed class PaintRemoverSystem : SharedPaintSystem
|
|||||||
|
|
||||||
var verb = new UtilityVerb()
|
var verb = new UtilityVerb()
|
||||||
{
|
{
|
||||||
Act = () => {
|
Act = () =>
|
||||||
|
{
|
||||||
|
|
||||||
_doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, component.CleanDelay, new PaintRemoverDoAfterEvent(), uid, args.Target, uid)
|
_doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, component.CleanDelay, new PaintRemoverDoAfterEvent(), uid, args.Target, uid)
|
||||||
{
|
{
|
||||||
BreakOnUserMove = true,
|
BreakOnMove = true,
|
||||||
BreakOnDamage = true,
|
BreakOnDamage = true,
|
||||||
BreakOnTargetMove = true,
|
|
||||||
MovementThreshold = 1.0f,
|
MovementThreshold = 1.0f,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user