diff --git a/Content.Shared/_CP14/Demiplane/CP14SharedDemiplanSytem.cs b/Content.Shared/_CP14/Demiplane/CP14SharedDemiplanSystem.cs similarity index 62% rename from Content.Shared/_CP14/Demiplane/CP14SharedDemiplanSytem.cs rename to Content.Shared/_CP14/Demiplane/CP14SharedDemiplanSystem.cs index 13d3fcf7ab..c3559a8951 100644 --- a/Content.Shared/_CP14/Demiplane/CP14SharedDemiplanSytem.cs +++ b/Content.Shared/_CP14/Demiplane/CP14SharedDemiplanSystem.cs @@ -2,7 +2,6 @@ using Content.Shared._CP14.Demiplane.Components; using Content.Shared._CP14.DemiplaneTraveling; using Content.Shared.DoAfter; using Content.Shared.Interaction; -using Robust.Shared.Player; using Robust.Shared.Serialization; namespace Content.Shared._CP14.Demiplane; @@ -10,11 +9,35 @@ namespace Content.Shared._CP14.Demiplane; public abstract partial class CP14SharedDemiplaneSystem : EntitySystem { [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnDemiplanePasswayInteract); + SubscribeLocalEvent(OnDemiplaneHintMapInit); + } + + private void OnDemiplaneHintMapInit(Entity ent, ref MapInitEvent args) + { + var query = EntityQueryEnumerator(); + + var xformHint = Transform(ent); + var hintPos = _transform.GetWorldPosition(xformHint); + + while (query.MoveNext(out _, out _, out var xformRift)) + { + if (xformRift.MapUid != xformHint.MapUid) + continue; + + var riftPos = _transform.GetWorldPosition(xformRift); + + //Calculate the rotation + Angle angle = new(riftPos - hintPos); + + _transform.SetWorldRotation(ent, angle + Angle.FromDegrees(90)); + break; + } } private void OnDemiplanePasswayInteract(Entity passway, ref InteractHandEvent args) diff --git a/Content.Shared/_CP14/Demiplane/Components/CP14DemiplaneHintComponent.cs b/Content.Shared/_CP14/Demiplane/Components/CP14DemiplaneHintComponent.cs new file mode 100644 index 0000000000..7f0c6be2c9 --- /dev/null +++ b/Content.Shared/_CP14/Demiplane/Components/CP14DemiplaneHintComponent.cs @@ -0,0 +1,11 @@ +namespace Content.Shared._CP14.Demiplane.Components; + +using Demiplane; + +/// +/// A very small and silly component that simply turns the entity toward the nearest demiplane rift +/// +[RegisterComponent, Access(typeof(CP14SharedDemiplaneSystem))] +public sealed partial class CP14DemiplaneHintComponent : Component +{ +} diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Flora/demiplane_hint.yml b/Resources/Prototypes/_CP14/Entities/Structures/Flora/demiplane_hint.yml new file mode 100644 index 0000000000..e4ddc47e56 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/Flora/demiplane_hint.yml @@ -0,0 +1,30 @@ +- type: entity + id: CP14DemiplaneHint + name: astral crack + description: Those cracks always lead to a way out of the damn place + categories: [ ForkFiltered ] + placement: + mode: SnapgridCenter + components: + - type: Clickable + - type: Sprite + sprite: /Textures/_CP14/Structures/Flora/demiplane_cracks.rsi + layers: + - state: crack3 + shader: unshaded + drawdepth: LowFloors + - type: SyncSprite + - type: RequiresTile + - type: CP14DemiplaneHint + - type: RandomSprite + available: + - 0: + crack: "" + crack2: "" + crack3: "" + crack4: "" + - type: PointLight + netSync: false + radius: 1.3 + color: "#c6529f" + energy: 1 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/special.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/special.yml index d9560b5f82..67c16a8d3c 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/special.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/special.yml @@ -14,9 +14,19 @@ layers: - !type:OreDunGen entity: CP14DemiplanePassway - count: 2 + count: 1 minGroupSize: 1 maxGroupSize: 1 + - !type:OreDunGen + entity: CP14DemiplaneHint + count: 20 + minGroupSize: 1 + maxGroupSize: 1 + - !type:OreDunGen + entity: CP14AstralCorrosion + count: 15 + minGroupSize: 3 + maxGroupSize: 10 - type: cp14DemiplaneModifier id: TimeLimit10 diff --git a/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/crack.png b/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/crack.png new file mode 100644 index 0000000000..08952bf7ee Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/crack.png differ diff --git a/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/crack2.png b/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/crack2.png new file mode 100644 index 0000000000..1e6cfb3624 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/crack2.png differ diff --git a/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/crack3.png b/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/crack3.png new file mode 100644 index 0000000000..626cfbc7cc Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/crack3.png differ diff --git a/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/crack4.png b/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/crack4.png new file mode 100644 index 0000000000..309566cde8 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/crack4.png differ diff --git a/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/meta.json b/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/meta.json new file mode 100644 index 0000000000..21f6f14cec --- /dev/null +++ b/Resources/Textures/_CP14/Structures/Flora/demiplane_cracks.rsi/meta.json @@ -0,0 +1,55 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Created by TheShuEd (Github) ", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "crack", + "delays": [ + [ + 2, + 2, + 2, + 2 + ] + ] + }, + { + "name": "crack2", + "delays": [ + [ + 2, + 2, + 2, + 2 + ] + ] + }, + { + "name": "crack3", + "delays": [ + [ + 2, + 2, + 2, + 2 + ] + ] + }, + { + "name": "crack4", + "delays": [ + [ + 2, + 2, + 2, + 2 + ] + ] + } + ] +} diff --git a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/full.png b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/full.png index 40cb92adba..1c2cd9aecb 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/full.png and b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/full.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water0.png b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water0.png index e33441e60e..3e550a64bc 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water0.png and b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water0.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water1.png b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water1.png index f6af895a8d..a963145520 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water1.png and b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water1.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water2.png b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water2.png index e33441e60e..78bd208749 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water2.png and b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water2.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water3.png b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water3.png index 0941c8d3c9..049898d9cc 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water3.png and b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water3.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water4.png b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water4.png index 03330c8941..9bcad9b785 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water4.png and b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water4.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water5.png b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water5.png index e0066f9177..6a511aaf61 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water5.png and b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water5.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water6.png b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water6.png index 44a08717c0..62271af368 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water6.png and b/Resources/Textures/_CP14/Tiles/Water/lava.rsi/water6.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/water.rsi/full.png b/Resources/Textures/_CP14/Tiles/Water/water.rsi/full.png index 95504cdeb1..83a06ee30e 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/water.rsi/full.png and b/Resources/Textures/_CP14/Tiles/Water/water.rsi/full.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water0.png b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water0.png index d476b270cd..4a273823f6 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water0.png and b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water0.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water1.png b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water1.png index 7f36a5553f..07bce83465 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water1.png and b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water1.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water2.png b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water2.png index d476b270cd..f4f122fc0d 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water2.png and b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water2.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water3.png b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water3.png index 91be99f023..d1237daad3 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water3.png and b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water3.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water4.png b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water4.png index 42236caf13..116870179d 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water4.png and b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water4.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water5.png b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water5.png index 6aea2c9e1f..bdb9da6353 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water5.png and b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water5.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water6.png b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water6.png index 56b1848ae0..486366428c 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water6.png and b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water6.png differ diff --git a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water7.png b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water7.png index 00928eceef..c668e9b6a2 100644 Binary files a/Resources/Textures/_CP14/Tiles/Water/water.rsi/water7.png and b/Resources/Textures/_CP14/Tiles/Water/water.rsi/water7.png differ