diff --git a/Content.Client/_CP14/Overlays/StencilOverlay.CloudShadows.cs b/Content.Client/_CP14/Overlays/StencilOverlay.CloudShadows.cs index a6bc8bf36b..13950801d3 100644 --- a/Content.Client/_CP14/Overlays/StencilOverlay.CloudShadows.cs +++ b/Content.Client/_CP14/Overlays/StencilOverlay.CloudShadows.cs @@ -53,11 +53,11 @@ public sealed partial class StencilOverlay worldHandle.UseShader(_protoManager.Index("StencilMask").Instance()); worldHandle.DrawTextureRect(_blep!.Texture, worldBounds); var curTime = _timing.RealTime; - var sprite = _sprite.GetFrame(new SpriteSpecifier.Texture(new ResPath("/Textures/Parallaxes/AspidParallaxNeb.png")), curTime); + var sprite = _sprite.GetFrame(new SpriteSpecifier.Texture(new ResPath(cloudComp.ParallaxPath)), curTime); // Draw the rain worldHandle.UseShader(_protoManager.Index("StencilDraw").Instance()); - _parallax.DrawParallax(worldHandle, worldAABB, sprite, curTime, position, cloudComp.CloudSpeed, modulate: Color.White.WithAlpha(cloudComp.Alpha)); + _parallax.DrawParallax(worldHandle, worldAABB, sprite, curTime, position, cloudComp.CloudSpeed, modulate: Color.White.WithAlpha(cloudComp.Alpha), scale: cloudComp.Scale); worldHandle.SetTransform(Matrix3x2.Identity); worldHandle.UseShader(null); diff --git a/Content.Server/_CP14/DayCycle/CP14CloudShadowsSystem.cs b/Content.Server/_CP14/DayCycle/CP14CloudShadowsSystem.cs new file mode 100644 index 0000000000..2de54120ec --- /dev/null +++ b/Content.Server/_CP14/DayCycle/CP14CloudShadowsSystem.cs @@ -0,0 +1,24 @@ +using System.Numerics; +using Content.Shared._CP14.DayCycle; +using Robust.Shared.Random; + +namespace Content.Server._CP14.DayCycle; + +public sealed partial class CP14CloudShadowsSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMapInit); + } + + private void OnMapInit(Entity ent, ref MapInitEvent args) + { + ent.Comp.CloudSpeed = new Vector2( + _random.NextFloat(-ent.Comp.MaxSpeed, ent.Comp.MaxSpeed), + _random.NextFloat(-ent.Comp.MaxSpeed, ent.Comp.MaxSpeed)); + } +} diff --git a/Content.Shared/_CP14/DayCycle/CP14CloudShadowsComponent.cs b/Content.Shared/_CP14/DayCycle/CP14CloudShadowsComponent.cs index 790a8828b2..2ebfd7f568 100644 --- a/Content.Shared/_CP14/DayCycle/CP14CloudShadowsComponent.cs +++ b/Content.Shared/_CP14/DayCycle/CP14CloudShadowsComponent.cs @@ -12,6 +12,15 @@ public sealed partial class CP14CloudShadowsComponent : Component [DataField, AutoNetworkedField] public Vector2 CloudSpeed = new Vector2(0.5f, 0f); + [DataField] + public float MaxSpeed = 1.5f; + [DataField, AutoNetworkedField] public float Alpha = 1f; + + [DataField] + public float Scale = 2.5f; + + [DataField] + public string ParallaxPath = "/Textures/_CP14/Parallaxes/Shadows.png"; } diff --git a/Resources/Textures/_CP14/Parallaxes/Shadows.png b/Resources/Textures/_CP14/Parallaxes/Shadows.png new file mode 100644 index 0000000000..9181dbc540 Binary files /dev/null and b/Resources/Textures/_CP14/Parallaxes/Shadows.png differ diff --git a/Resources/Textures/_CP14/Parallaxes/attributions.yml b/Resources/Textures/_CP14/Parallaxes/attributions.yml new file mode 100644 index 0000000000..885ce412b8 --- /dev/null +++ b/Resources/Textures/_CP14/Parallaxes/attributions.yml @@ -0,0 +1,4 @@ +- files: ["Shadows.png"] + license: "CC-BY-SA-3.0" + copyright: "Created by TheShuEd for CrystallPunk14" + source: "https://github.com/crystallpunk-14/crystall-punk-14" \ No newline at end of file