From 7c0c8c5b3348a880f378e1eb24c0fb9ba137d052 Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Wed, 17 Jul 2024 17:38:00 +0300 Subject: [PATCH] polishing, bugfixing --- .../Procedural/DungeonSystem.Rooms.cs | 2 +- .../RoomSpawner/CP14RoomSpawnerSystem.cs | 7 +++- .../Markers/Spawners/Random/Rooms/test.yml | 39 +++++++++++------- .../Markers/RoomBorders/5x5.rsi/frame.png | Bin 0 -> 571 bytes .../Markers/RoomBorders/5x5.rsi/meta.json | 14 +++++++ .../Markers/RoomBorders/7x7.rsi/frame.png | Bin 0 -> 787 bytes .../Markers/RoomBorders/7x7.rsi/meta.json | 14 +++++++ .../_CP14/Markers/biome.rsi/meta.json | 3 ++ .../Textures/_CP14/Markers/biome.rsi/room.png | Bin 0 -> 445 bytes 9 files changed, 62 insertions(+), 17 deletions(-) create mode 100644 Resources/Textures/_CP14/Markers/RoomBorders/5x5.rsi/frame.png create mode 100644 Resources/Textures/_CP14/Markers/RoomBorders/5x5.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Markers/RoomBorders/7x7.rsi/frame.png create mode 100644 Resources/Textures/_CP14/Markers/RoomBorders/7x7.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Markers/biome.rsi/room.png diff --git a/Content.Server/Procedural/DungeonSystem.Rooms.cs b/Content.Server/Procedural/DungeonSystem.Rooms.cs index 8a1606c488..9765a7722d 100644 --- a/Content.Server/Procedural/DungeonSystem.Rooms.cs +++ b/Content.Server/Procedural/DungeonSystem.Rooms.cs @@ -118,7 +118,7 @@ public sealed partial class DungeonSystem // go BRRNNTTT on existing stuff if (clearExisting) { - var gridBounds = new Box2(Vector2.Transform(Vector2.Zero, roomTransform), Vector2.Transform(room.Size, roomTransform)); + var gridBounds = new Box2(Vector2.Transform(-room.Size/2, roomTransform), Vector2.Transform(room.Size/2, roomTransform)); //CP14 bugfix _entitySet.Clear(); // Polygon skin moment gridBounds = gridBounds.Enlarged(-0.05f); diff --git a/Content.Server/_CP14/Procedural/RoomSpawner/CP14RoomSpawnerSystem.cs b/Content.Server/_CP14/Procedural/RoomSpawner/CP14RoomSpawnerSystem.cs index ecf272a641..1355dfb1c0 100644 --- a/Content.Server/_CP14/Procedural/RoomSpawner/CP14RoomSpawnerSystem.cs +++ b/Content.Server/_CP14/Procedural/RoomSpawner/CP14RoomSpawnerSystem.cs @@ -13,7 +13,6 @@ public sealed class CP14RoomSpawnerSystem : EntitySystem [Dependency] private readonly IPrototypeManager _proto = default!; [Dependency] private readonly DungeonSystem _dungeon = default!; [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly TransformSystem _transform = default!; [Dependency] private readonly SharedMapSystem _maps = default!; public override void Initialize() @@ -31,19 +30,23 @@ public sealed class CP14RoomSpawnerSystem : EntitySystem var roomProto = rooms.Pick(_random); if (!_proto.TryIndex(roomProto, out var room)) + { + Log.Error($"Unable to find matching room prototype ({room}) for {ToPrettyString(spawner)}"); return; + } var gridUid = Transform(spawner).GridUid; if (!TryComp(gridUid, out var gridComp)) return; + var xform = Transform(spawner).Coordinates.Offset(- room.Size / 2); var random = new Random(); _dungeon.SpawnRoom( gridUid.Value, gridComp, - _maps.LocalToTile(gridUid.Value, gridComp, Transform(spawner).Coordinates), + _maps.LocalToTile(gridUid.Value, gridComp, xform), room, random, null, diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Rooms/test.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Rooms/test.yml index 3f571ff1a7..2535ef05f3 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Rooms/test.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Rooms/test.yml @@ -1,17 +1,8 @@ -- type: weightedRandom - id: CP14RoomSpawnerCaelid - weights: - LavaBrig17x5a: 1 - LavaBrig17x5b: 1 - LavaBrig7x7a: 1 - LavaBrig7x7b: 1 - LavaBrig7x7c: 1 - LavaBrig7x7d: 1 - LavaBrig11x5a: 1 - - type: entity id: CP14BaseRoomSpawner name: room spawner + abstract: true + description: A marker that creates a random building at the specified location. Warning! Wipes out everything in that location, including agosts! parent: MarkerBase placement: mode: SnapgridCenter @@ -21,7 +12,27 @@ - type: Clickable - type: InteractionOutline - type: Sprite - layers: - - state: green + sprite: _CP14/Markers/biome.rsi + snapCardinals: true + + +- type: entity + id: CP14RoomSpawnerCaelid7x7 + suffix: Caelid Test + parent: CP14BaseRoomSpawner + components: - type: CP14RoomSpawner - roomsRandom: CP14RoomSpawnerCaelid \ No newline at end of file + roomsRandom: CP14RoomSpawnerCaelid + - type: Sprite + layers: + - state: room + - sprite: _CP14/Markers/RoomBorders/7x7.rsi + state: frame + +- type: weightedRandom + id: CP14RoomSpawnerCaelid + weights: + LavaBrig7x7a: 1 + LavaBrig7x7b: 1 + LavaBrig7x7c: 1 + LavaBrig7x7d: 1 diff --git a/Resources/Textures/_CP14/Markers/RoomBorders/5x5.rsi/frame.png b/Resources/Textures/_CP14/Markers/RoomBorders/5x5.rsi/frame.png new file mode 100644 index 0000000000000000000000000000000000000000..257a22a88a06113f343818b0a7fedab1137da787 GIT binary patch literal 571 zcmeAS@N?(olHy`uVBq!ia0vp^3qY8I4M=vMPuB%fjKx9jP7LeL$-D%zzk0ejhE&XX zdt)Q7W1vVw;uGG5MlFINRn`%Q)YvXWKI~24n5z4trRCcEiu>VrXWyRl=zQhL+49?# z|K?HZu3}i`+pwhV`su2zYn~-I>0Q75Ifr?YkiyD`w-3MDG4p?sz`xs-_H}=5CxJvY z8Ak~^g@M#Q+d1DK|DE1!;A;j7_p0A4@$0r{@u{6+Q&DvY;=d9nAQ5BJ5e!TX44$rj JF6*2UngBC&my-Yh literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Markers/RoomBorders/5x5.rsi/meta.json b/Resources/Textures/_CP14/Markers/RoomBorders/5x5.rsi/meta.json new file mode 100644 index 0000000000..c312dbeabd --- /dev/null +++ b/Resources/Textures/_CP14/Markers/RoomBorders/5x5.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by TheShuEd (Github) for CrystallPunk", + "size": { + "x": 160, + "y": 160 + }, + "states": [ + { + "name": "frame" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CP14/Markers/RoomBorders/7x7.rsi/frame.png b/Resources/Textures/_CP14/Markers/RoomBorders/7x7.rsi/frame.png new file mode 100644 index 0000000000000000000000000000000000000000..83e6f09612dcbd444878ef694322fa685a3be5c9 GIT binary patch literal 787 zcmeAS@N?(olHy`uVBq!ia0vp^4?viM4MU^?sR;uumf z=k3jnypDk)4T(>97aFw)hE!Qc98zPu5c#k-fn%!fiPx$cS%G+R9J=8moZMmFcgMAM`h^=A|d4fOjRb9c3=UiBO3=m%Er#j&K8LSurWp| z3q!jwRh>9MC8VC9ONTJfmnO!p(>8I-KUvRlzCTa)i=X;_e$N5UAFdT1CESh#-tIqg zfa!bzz|-hX4F^e{jZ+0M93=TJfbzO*oT|s0*Bl^@!u1m?0F=OQU#_ef7!H!W*X{4Z zXSSRaCQK4$;Cj(MaDZO7Un^??Y|`Eoyp9QBS~GAcyp9Q2?}4`9W!d&bAiy@^@HZ1O zt~hE7UY4GTV&DUAGEo!@UvS+-rySf=sb7_kXL-&QmzaLMO>yHf)L*18bj3~P^tr7D zn$mQ>AdW)fD6|&4Rt?nAX&SI?B5ww4o64I3pZXsLYz4+uc{Mm|mGzvIe< zBpat{ww!o@8!sdx?^iNu8bnQJ!UPwl^%yo~!quPzU@y6cn%D*xrn3<3Yr^&AA|+kw n=hqqFuQ|QESXB)it3Ce#KWYjt*rH`i00000NkvXXu0mjf=B~XY literal 0 HcmV?d00001