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:
ThereDrD
2024-08-23 01:55:24 +03:00
committed by GitHub
parent aedaf4fc25
commit 5b3d6248d0
7 changed files with 40 additions and 36 deletions

View File

@@ -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);

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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;
} }
} }

View File

@@ -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 { }
} }
/* /*

View File

@@ -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"));

View File

@@ -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);
} }