Fixy fixes (#656)
* fix shaders * fix organs-artifacts * cleanup using * reduce artifacts count * fix artifacts on nukie station + reduce artifacts count * remove backwards accent from random accent aspect * new accents for RandomAccentAspect
This commit is contained in:
@@ -55,13 +55,13 @@ public sealed class LightingOverlay : Overlay
|
|||||||
|
|
||||||
_shader.SetParameter("SCREEN_TEXTURE", ScreenTexture);
|
_shader.SetParameter("SCREEN_TEXTURE", ScreenTexture);
|
||||||
|
|
||||||
var query = _entityManager.AllEntityQueryEnumerator<LightingOverlayComponent, TransformComponent>();
|
var query = _entityManager.AllEntityQueryEnumerator<LightingOverlayComponent, PointLightComponent, TransformComponent>();
|
||||||
while (query.MoveNext(out var uid, out var component, out var xform))
|
while (query.MoveNext(out _, out var component, out var pointLight, out var xform))
|
||||||
{
|
{
|
||||||
if (xform.MapID != args.MapId)
|
if (xform.MapID != args.MapId)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!component.Enabled)
|
if (!component.Enabled ?? !pointLight.Enabled)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var worldPos = _transformSystem.GetWorldPosition(xform, xformCompQuery);
|
var worldPos = _transformSystem.GetWorldPosition(xform, xformCompQuery);
|
||||||
@@ -69,10 +69,7 @@ public sealed class LightingOverlay : Overlay
|
|||||||
if (!bounds.Contains(worldPos))
|
if (!bounds.Contains(worldPos))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var color = component.Color;
|
var color = component.Color ?? pointLight.Color;
|
||||||
|
|
||||||
if (color == null && _entityManager.TryGetComponent<PointLightComponent>(uid, out var pointLight))
|
|
||||||
color = pointLight.Color;
|
|
||||||
|
|
||||||
var (_, _, worldMatrix) = xform.GetWorldPositionRotationMatrix(xformCompQuery);
|
var (_, _, worldMatrix) = xform.GetWorldPositionRotationMatrix(xformCompQuery);
|
||||||
handle.SetTransform(worldMatrix);
|
handle.SetTransform(worldMatrix);
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
using Content.Shared._White.Lighting.Shaders;
|
|
||||||
using Content.Shared.Power;
|
|
||||||
using Robust.Client.GameObjects;
|
|
||||||
|
|
||||||
namespace Content.Client._White.Lighting.Shaders;
|
|
||||||
|
|
||||||
public sealed class TogglingLightOverlaySystem : EntitySystem
|
|
||||||
{
|
|
||||||
public override void Initialize()
|
|
||||||
{
|
|
||||||
SubscribeLocalEvent<LightingOverlayComponent, AppearanceChangeEvent>(OnAppearanceChange);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnAppearanceChange(EntityUid uid, LightingOverlayComponent component, AppearanceChangeEvent args)
|
|
||||||
{
|
|
||||||
if (!args.AppearanceData.TryGetValue(PowerDeviceVisuals.Powered, out var state))
|
|
||||||
return;
|
|
||||||
|
|
||||||
component.Enabled = (bool) state;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -23,6 +23,7 @@ using Robust.Shared.Player;
|
|||||||
using Robust.Shared.Random;
|
using Robust.Shared.Random;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
using Content.Server._White.PandaSocket.Main;
|
using Content.Server._White.PandaSocket.Main;
|
||||||
|
using Content.Server._White.RandomArtifacts;
|
||||||
using Content.Server._White.RealRoundEnded;
|
using Content.Server._White.RealRoundEnded;
|
||||||
using Content.Server._White.Reputation;
|
using Content.Server._White.Reputation;
|
||||||
using Content.Server._White.Stalin;
|
using Content.Server._White.Stalin;
|
||||||
@@ -288,6 +289,8 @@ namespace Content.Server.GameTicking
|
|||||||
// MapInitialize *before* spawning players, our codebase is too shit to do it afterwards...
|
// MapInitialize *before* spawning players, our codebase is too shit to do it afterwards...
|
||||||
_mapManager.DoMapInitialize(DefaultMap);
|
_mapManager.DoMapInitialize(DefaultMap);
|
||||||
|
|
||||||
|
RaiseLocalEvent(new RandomArtifactsSystem.MainMapInitEvent()); // Please no more organs-artifacts in players
|
||||||
|
|
||||||
SpawnPlayers(readyPlayers, readyPlayerProfiles, force);
|
SpawnPlayers(readyPlayers, readyPlayerProfiles, force);
|
||||||
|
|
||||||
_roundStartDateTime = DateTime.UtcNow;
|
_roundStartDateTime = DateTime.UtcNow;
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ public sealed class RandomAccentAspect : AspectSystem<RandomAccentAspectComponen
|
|||||||
{
|
{
|
||||||
base.Started(uid, component, gameRule, args);
|
base.Started(uid, component, gameRule, args);
|
||||||
var query = EntityQueryEnumerator<MindContainerComponent>();
|
var query = EntityQueryEnumerator<MindContainerComponent>();
|
||||||
|
|
||||||
while (query.MoveNext(out var ent, out _))
|
while (query.MoveNext(out var ent, out _))
|
||||||
{
|
{
|
||||||
ApplyRandomAccent(ent);
|
ApplyRandomAccent(ent);
|
||||||
@@ -48,6 +49,8 @@ public sealed class RandomAccentAspect : AspectSystem<RandomAccentAspectComponen
|
|||||||
|
|
||||||
#region Helpers
|
#region Helpers
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: Move this to prototypes.
|
||||||
private enum AccentType
|
private enum AccentType
|
||||||
{
|
{
|
||||||
Stuttering,
|
Stuttering,
|
||||||
@@ -56,19 +59,23 @@ public sealed class RandomAccentAspect : AspectSystem<RandomAccentAspectComponen
|
|||||||
Scrambled,
|
Scrambled,
|
||||||
Pirate,
|
Pirate,
|
||||||
Russian,
|
Russian,
|
||||||
Anime,
|
OwO,
|
||||||
Lizard,
|
Lizard,
|
||||||
Backwards,
|
Backwards,
|
||||||
Bark,
|
Bark,
|
||||||
Anxiety,
|
Anxiety,
|
||||||
Moth
|
Moth,
|
||||||
|
French,
|
||||||
|
Gnome,
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ApplyRandomAccent(EntityUid uid)
|
private void ApplyRandomAccent(EntityUid uid)
|
||||||
{
|
{
|
||||||
var allAccents = Enum.GetValues(typeof(AccentType)).Cast<AccentType>().ToList();
|
var allAccents = Enum.GetValues(typeof(AccentType)).Cast<AccentType>().ToList();
|
||||||
|
|
||||||
var randomIndex = _random.Next(allAccents.Count);
|
var randomIndex = _random.Next(allAccents.Count);
|
||||||
var selectedAccent = allAccents[randomIndex];
|
var selectedAccent = allAccents[randomIndex];
|
||||||
|
|
||||||
ApplyAccent(uid, selectedAccent);
|
ApplyAccent(uid, selectedAccent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,15 +101,17 @@ public sealed class RandomAccentAspect : AspectSystem<RandomAccentAspectComponen
|
|||||||
case AccentType.Russian:
|
case AccentType.Russian:
|
||||||
EntityManager.EnsureComponent<RussianAccentComponent>(uid);
|
EntityManager.EnsureComponent<RussianAccentComponent>(uid);
|
||||||
break;
|
break;
|
||||||
case AccentType.Anime:
|
case AccentType.OwO:
|
||||||
EntityManager.EnsureComponent<OwOAccentComponent>(uid);
|
EntityManager.EnsureComponent<OwOAccentComponent>(uid);
|
||||||
break;
|
break;
|
||||||
case AccentType.Lizard:
|
case AccentType.Lizard:
|
||||||
EntityManager.EnsureComponent<LizardAccentComponent>(uid);
|
EntityManager.EnsureComponent<LizardAccentComponent>(uid);
|
||||||
break;
|
break;
|
||||||
|
/* Not funny
|
||||||
case AccentType.Backwards:
|
case AccentType.Backwards:
|
||||||
EntityManager.EnsureComponent<BackwardsAccentComponent>(uid);
|
EntityManager.EnsureComponent<BackwardsAccentComponent>(uid);
|
||||||
break;
|
break;
|
||||||
|
*/
|
||||||
case AccentType.Bark:
|
case AccentType.Bark:
|
||||||
EntityManager.EnsureComponent<BarkAccentComponent>(uid);
|
EntityManager.EnsureComponent<BarkAccentComponent>(uid);
|
||||||
break;
|
break;
|
||||||
@@ -116,6 +125,12 @@ public sealed class RandomAccentAspect : AspectSystem<RandomAccentAspectComponen
|
|||||||
case AccentType.Moth:
|
case AccentType.Moth:
|
||||||
EntityManager.EnsureComponent<MothAccentComponent>(uid);
|
EntityManager.EnsureComponent<MothAccentComponent>(uid);
|
||||||
break;
|
break;
|
||||||
|
case AccentType.French:
|
||||||
|
EntityManager.EnsureComponent<FrenchAccentComponent>(uid);
|
||||||
|
break;
|
||||||
|
case AccentType.Gnome:
|
||||||
|
EntityManager.EnsureComponent<GnomeAccentComponent>(uid);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Content.Server.Station.Components;
|
||||||
|
using Content.Server.Station.Systems;
|
||||||
using Content.Server.Xenoarchaeology.XenoArtifacts;
|
using Content.Server.Xenoarchaeology.XenoArtifacts;
|
||||||
using Content.Shared._White;
|
using Content.Shared._White;
|
||||||
using Content.Shared.GameTicking;
|
|
||||||
using Content.Shared.Item;
|
using Content.Shared.Item;
|
||||||
using Robust.Shared.Configuration;
|
using Robust.Shared.Configuration;
|
||||||
using Robust.Shared.Random;
|
using Robust.Shared.Random;
|
||||||
@@ -13,6 +14,7 @@ public sealed class RandomArtifactsSystem : EntitySystem
|
|||||||
[Dependency] private readonly ArtifactSystem _artifactsSystem = default!;
|
[Dependency] private readonly ArtifactSystem _artifactsSystem = default!;
|
||||||
[Dependency] private readonly IRobustRandom _random = default!;
|
[Dependency] private readonly IRobustRandom _random = default!;
|
||||||
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
|
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
|
||||||
|
[Dependency] private readonly StationSystem _station = default!;
|
||||||
|
|
||||||
private float _itemToArtifactRatio; // from 0 to 100. In % percents. Default is 0.7%
|
private float _itemToArtifactRatio; // from 0 to 100. In % percents. Default is 0.7%
|
||||||
private bool _artifactsEnabled;
|
private bool _artifactsEnabled;
|
||||||
@@ -24,10 +26,10 @@ public sealed class RandomArtifactsSystem : EntitySystem
|
|||||||
_configurationManager.OnValueChanged(WhiteCVars.EnableRandomArtifacts, b => OnCvarChanged(b), true);
|
_configurationManager.OnValueChanged(WhiteCVars.EnableRandomArtifacts, b => OnCvarChanged(b), true);
|
||||||
_configurationManager.OnValueChanged(WhiteCVars.ItemToArtifactRatio, r => _itemToArtifactRatio = r, true);
|
_configurationManager.OnValueChanged(WhiteCVars.ItemToArtifactRatio, r => _itemToArtifactRatio = r, true);
|
||||||
|
|
||||||
SubscribeLocalEvent<RoundStartedEvent>(OnRoundStart);
|
SubscribeLocalEvent<MainMapInitEvent>(OnRoundStart);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnRoundStart(RoundStartedEvent ev)
|
private void OnRoundStart(MainMapInitEvent ev)
|
||||||
{
|
{
|
||||||
if (!_artifactsEnabled)
|
if (!_artifactsEnabled)
|
||||||
return;
|
return;
|
||||||
@@ -46,6 +48,12 @@ public sealed class RandomArtifactsSystem : EntitySystem
|
|||||||
foreach (var item in selectedItems)
|
foreach (var item in selectedItems)
|
||||||
{
|
{
|
||||||
var entity = item.Owner;
|
var entity = item.Owner;
|
||||||
|
var xform = Transform(entity);
|
||||||
|
|
||||||
|
var station = _station.GetStationInMap(xform.MapID);
|
||||||
|
|
||||||
|
if (!HasComp<StationDataComponent>(station))
|
||||||
|
continue;
|
||||||
|
|
||||||
var artifactComponent = EnsureComp<ArtifactComponent>(entity);
|
var artifactComponent = EnsureComp<ArtifactComponent>(entity);
|
||||||
_artifactsSystem.RandomizeArtifact(entity, artifactComponent);
|
_artifactsSystem.RandomizeArtifact(entity, artifactComponent);
|
||||||
@@ -74,6 +82,8 @@ public sealed class RandomArtifactsSystem : EntitySystem
|
|||||||
_artifactsEnabled = enabled;
|
_artifactsEnabled = enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public sealed class MainMapInitEvent : EntityEventArgs { }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ namespace Content.Shared._White.Lighting.Shaders;
|
|||||||
public sealed partial class LightingOverlayComponent : Component
|
public sealed partial class LightingOverlayComponent : Component
|
||||||
{
|
{
|
||||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||||
public bool Enabled = true;
|
public bool? Enabled;
|
||||||
|
|
||||||
[DataField]
|
[DataField]
|
||||||
public SpriteSpecifier Sprite = new Texture(new ResPath("Effects/LightMasks/lightmask_lamp.png"));
|
public SpriteSpecifier Sprite = new Texture(new ResPath("Effects/LightMasks/lightmask_lamp.png"));
|
||||||
|
|||||||
@@ -418,5 +418,5 @@ public sealed class WhiteCVars
|
|||||||
CVarDef.Create("white.random_artifacts_enabled", true, CVar.SERVERONLY);
|
CVarDef.Create("white.random_artifacts_enabled", true, CVar.SERVERONLY);
|
||||||
|
|
||||||
public static readonly CVarDef<float> ItemToArtifactRatio =
|
public static readonly CVarDef<float> ItemToArtifactRatio =
|
||||||
CVarDef.Create("white.random_artifacts_ratio", 0.7f, CVar.SERVERONLY);
|
CVarDef.Create("white.random_artifacts_ratio", 0.4f, CVar.SERVERONLY);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user