Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions Content.Server/Atmos/EntitySystems/FlammableSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -426,9 +426,17 @@ public override void Update(float frameTime)
_timer -= UpdateTime;

// TODO: This needs cleanup to take off the crust from TemperatureComponent and shit.
var q = new Queue<(EntityUid, FlammableComponent)>();
var query = EntityQueryEnumerator<FlammableComponent, TransformComponent>();
while (query.MoveNext(out var uid, out var flammable, out _))
{
q.Enqueue((uid, flammable));
}

while (q.TryDequeue(out var d))
{
var (uid, flammable) = d;
Comment on lines +429 to +438
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# Examine the full Update method context around lines 429-438
sed -n '400,470p' Content.Server/Atmos/EntitySystems/FlammableSystem.cs | cat -n

Repository: Rxup/space-station-14

Length of output: 3274


🏁 Script executed:

# Search for FlammableComponent additions/removals within the file
rg -n "AddComp.*Flammable|RemComp.*Flammable|EnsureComp.*Flammable" Content.Server/Atmos/EntitySystems/FlammableSystem.cs

Repository: Rxup/space-station-14

Length of output: 47


🏁 Script executed:

# Check the entire Update method to understand what operations happen in the processing loop
rg -A 150 "public void Update\(" Content.Server/Atmos/EntitySystems/FlammableSystem.cs | head -200

Repository: Rxup/space-station-14

Length of output: 47


🏁 Script executed:

# Look for uses of TransformComponent in FlammableSystem.cs
rg -n "TransformComponent" Content.Server/Atmos/EntitySystems/FlammableSystem.cs

Repository: Rxup/space-station-14

Length of output: 157


Ненужная аллокация Queue и неиспользуемый запрос TransformComponent

Метод Update() выполняется каждый UpdateTime интервал, и на каждой итерации создается новая Queue. Это вызывает давление на сборщик мусора. Очередь следует переиспользовать как поле класса через Clear().

Также TransformComponent запрашивается в query (строка 431), но никогда не используется (out _).

Анализ показывает, что двухфазная обработка, похоже, не требуется, так как операции внутри цикла не добавляют/удаляют FlammableComponent — они лишь изменяют состояние компонента и добавляют другие типы компонентов (IgnitionSourceComponent).

🔧 Предлагаемое исправление

Добавьте поле класса:

 private readonly Dictionary<Entity<FlammableComponent>, float> _fireEvents = new();
+private readonly Queue<(EntityUid, FlammableComponent)> _flammableQueue = new();

Затем обновите метод Update:

-var q = new Queue<(EntityUid, FlammableComponent)>();
-var query = EntityQueryEnumerator<FlammableComponent, TransformComponent>();
+_flammableQueue.Clear();
+var query = EntityQueryEnumerator<FlammableComponent>();
 while (query.MoveNext(out var uid, out var flammable, out _))
 {
-    q.Enqueue((uid, flammable));
+    _flammableQueue.Enqueue((uid, flammable));
 }

-while (q.TryDequeue(out var d))
+while (_flammableQueue.TryDequeue(out var d))
 {
     var (uid, flammable) = d;
🤖 Prompt for AI Agents
In `@Content.Server/Atmos/EntitySystems/FlammableSystem.cs` around lines 429 -
438, The Update() loop currently allocates a new Queue and requests an unused
TransformComponent; make a class-level Queue<(EntityUid, FlammableComponent)>
(e.g. _flammableQueue) and reuse it by calling _flammableQueue.Clear() at the
start of Update(), and change the query from
EntityQueryEnumerator<FlammableComponent, TransformComponent>() to
EntityQueryEnumerator<FlammableComponent>() (remove the unused
TransformComponent out _), then either enqueue items into the reused
_flammableQueue or—since components aren’t added/removed—process the flammable
entries inline in Update() to eliminate the two-phase allocation entirely;
update references to the local q variable to use the field name (e.g.
_flammableQueue) and keep all logic that modifies
FlammableComponent/IgnitionSourceComponent the same.


// Slowly dry ourselves off if wet.
if (flammable.FireStacks < 0)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -803,7 +803,7 @@ private async Task UpdateGigaToken()

private async Task<(GptResponseApi? responseApi, string? err)> SendGptApiRequest(NPCGptHistory history, EntityUid uid)
{
if (!_gptEnabled || string.IsNullOrEmpty(_gptApiUrl) || string.IsNullOrEmpty(_gptApiToken) || string.IsNullOrEmpty(_gptApiModel))
if (!_gptEnabled || string.IsNullOrEmpty(_gptApiUrl) || string.IsNullOrEmpty(_gptApiModel))
{
return (null, "GPT не настроен или отключен");
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,31 @@
using System;
using System;
using System.Linq;
using System.Numerics;
using Content.Server._Lavaland.Procedural.Components;
using Content.Server.Atmos;
using Content.Server.Atmos.Components;
using Content.Server.Atmos.EntitySystems;
using Content.Server.Light.Components;
using Content.Shared._Lavaland.Procedural.Components;
using Content.Shared._Lavaland.Procedural.Prototypes;
using Content.Shared.Atmos;
using Content.Shared.Atmos.Components;
using Content.Shared.Light.Components;
using Content.Shared.Light.EntitySystems;
using Content.Shared.Maps;
using Robust.Server.Physics;
using Robust.Shared.Map;
using Robust.Shared.Map.Components;
using Robust.Shared.Random;
using Robust.Shared.Utility;

namespace Content.Server._Lavaland.Procedural.Systems;

public sealed partial class LavalandPlanetSystem
{
[Dependency] private readonly GridFixtureSystem _gridFixture = default!;
[Dependency] private readonly ITileDefinitionManager _tileDef = default!;
[Dependency] private readonly SharedRoofSystem _roofSystem = default!;

private bool LoadGridRuin(
LavalandGridRuinPrototype ruin,
Expand Down Expand Up @@ -130,27 +140,41 @@ private bool LoadGridRuin(
// Get the rotation of the target grid
var rotation = Transform(spawned.Value).LocalRotation;

// Replace empty tiles in spawned grid with tiles from the same position in lavaland grid
foreach (var tile in _map.GetAllTiles(spawned.Value, spawnedGrid, false))
var tilesToRoof = new HashSet<Vector2i>();
Entity<MapGridComponent, RoofComponent> spawnedRoof = (spawned.Value, spawnedGrid, EnsureComp<RoofComponent>(spawned.Value));
Entity<MapGridComponent?, RoofComponent?> roofMap = (sourceGridUid, sourceGrid, EnsureComp<RoofComponent>(sourceGridUid));

var matrix = Matrix3Helpers.CreateTransform(offset, rotation);

{
if (tile.Tile == Tile.Empty)
var enumerator = _map.GetAllTilesEnumerator(spawned.Value, spawnedGrid);
while (enumerator.MoveNext(out var tileRef))
{
// Get world position of this tile
var tileWorldPos = _map.GridTileToWorldPos(spawned.Value, spawnedGrid, tile.GridIndices);
var offsetTile = Vector2.Transform(new Vector2(tileRef.Value.GridIndices.X, tileRef.Value.GridIndices.Y) + sourceGrid.TileSizeHalfVector, matrix)
.Floored();
if (_roofSystem.IsRooved(spawnedRoof, tileRef.Value.GridIndices))
{
_roofSystem.SetRoof(roofMap, offsetTile, true);
tilesToRoof.Add(offsetTile);
}

// Convert to local coordinates in lavaland grid
var lavalandTileIndices = _map.WorldToTile(sourceGridUid, sourceGrid, tileWorldPos);
if(tileRef.Value.Tile != Tile.Empty)
continue;

// Get tile from lavaland grid at this position
if (_map.TryGetTileRef(sourceGridUid, sourceGrid, lavalandTileIndices, out var lavalandTile) &&
if (_map.TryGetTileRef(sourceGridUid, sourceGrid, offsetTile, out var lavalandTile) &&
!lavalandTile.Tile.IsEmpty)
{
_map.SetTile(spawned.Value, spawnedGrid, tile.GridIndices, lavalandTile.Tile);
_map.SetTile(spawned.Value, spawnedGrid, offsetTile, lavalandTile.Tile);
}
Comment on lines +164 to 168
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# Find the file and examine the full context around the flagged lines
fd "LavalandPlanetSystem" --type f -x head -n 200 {} \; 2>/dev/null | head -50

Repository: Rxup/space-station-14

Length of output: 1823


🏁 Script executed:

# Search for SetTile usage patterns with spawned
rg -n -B2 -A3 "\.SetTile\(" --type=cs -g "*LavalandPlanetSystem*"

Repository: Rxup/space-station-14

Length of output: 799


🏁 Script executed:

# Check Grid.Merge patterns to understand coordinate conventions
rg -n -B2 -A2 "Grid\.Merge|_gridFixture\.Merge" --type=cs | head -40

Repository: Rxup/space-station-14

Length of output: 1150


🏁 Script executed:

# Find the matrix transformation context to understand source→spawned mapping
rg -n -B5 "Matrix3x2.*transform|offsetTile.*=" --type=cs -g "*LavalandPlanetSystem*" | head -60

Repository: Rxup/space-station-14

Length of output: 915


🏁 Script executed:

# Get the full context of the loop around lines 145-175
sed -n '130,180p' "Content.Server/_Lavaland/Procedural/Systems/LavalandPlanetSystem.Grid.cs"

Repository: Rxup/space-station-14

Length of output: 2734


🏁 Script executed:

# Also check what the matrix represents - look for where it's created
rg -n -B10 "var matrix" --type=cs -g "*LavalandPlanetSystem.Grid.cs*"

Repository: Rxup/space-station-14

Length of output: 1634


🏁 Script executed:

# Double-check by looking at SetTile signature and how Merge uses the matrix
rg -n "public.*SetTile" --type=cs | head -5

Repository: Rxup/space-station-14

Length of output: 47


🏁 Script executed:

# Verify the matrix direction - check if it's meant to be spawned->source or source->spawned
rg -n "CreateTransform" --type=cs | head -10

Repository: Rxup/space-station-14

Length of output: 1666


🏁 Script executed:

# Get the actual implementation of SetTile to confirm it takes Vector2i as coordinates
rg -n -A3 "void SetTile.*Vector2i" --type=cs | head -20

Repository: Rxup/space-station-14

Length of output: 47


🏁 Script executed:

# Check if there are similar patterns elsewhere in the codebase that might validate the coordinate handling
rg -n -B5 -A5 "GetAllTilesEnumerator.*while.*tileRef" --type=cs | head -60

Repository: Rxup/space-station-14

Length of output: 47


🏁 Script executed:

# Search for SetTile method signature
rg -n "SetTile" --type=cs -A2 | grep -E "(public|void|SetTile)" | head -20

Repository: Rxup/space-station-14

Length of output: 2864


🏁 Script executed:

# Look at the actual SharedMapSystem to understand SetTile
fd "SharedMapSystem" --type=f -x cat {} \; | grep -A5 "SetTile" | head -30

Repository: Rxup/space-station-14

Length of output: 47


🏁 Script executed:

# Let me check the loop logic more carefully - maybe offsetTile should actually be inverted before SetTile
rg -n -B20 "SetTile.*spawned" --type=cs -g "*LavalandPlanetSystem*" | tail -40

Repository: Rxup/space-station-14

Length of output: 2911


Использованы неправильные координаты для SetTile на spawned grid.

В строке 167 _map.SetTile вызывается на spawned.Value с координатами offsetTile, которые представляют позицию в системе координат source grid (результат матричного преобразования). Однако SetTile должен получать координаты в системе координат целевого grid — spawned.Value.

Следует использовать tileRef.Value.GridIndices (оригинальные координаты spawned grid) вместо offsetTile:

_map.SetTile(spawned.Value, spawnedGrid, tileRef.Value.GridIndices, lavalandTile.Tile);

Текущая реализация приведёт к тому, что плитки будут установлены на неправильные координаты. Примечание: SetRoof на строке 157 корректно использует offsetTile, так как он устанавливает крышу на source grid.

🤖 Prompt for AI Agents
In `@Content.Server/_Lavaland/Procedural/Systems/LavalandPlanetSystem.Grid.cs`
around lines 164 - 168, The call to _map.SetTile(spawned.Value, spawnedGrid,
offsetTile, ...) is using source-grid coordinates (offsetTile) instead of the
spawned target grid coordinates; update the SetTile invocation in the block that
checks _map.TryGetTileRef(...) / lavalandTile.Tile to pass
tileRef.Value.GridIndices (the original spawned-grid indices) instead of
offsetTile so tiles are placed on the correct grid (note SetRoof correctly uses
offsetTile for the source grid and should remain unchanged).

}
}

_gridFixture.Merge(sourceGridUid, spawned.Value, offset, rotation);
_gridFixture.Merge(sourceGridUid, spawned.Value, matrix);

foreach (var vector2I in tilesToRoof)
{
_roofSystem.SetRoof(roofMap, vector2I, true);
}
}
catch (Exception ex)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
using Content.Shared._Lavaland.Procedural.Components;
using Content.Shared._Lavaland.Procedural.Prototypes;
using Content.Shared.Atmos;
using Content.Shared.Atmos.Components;
using Content.Shared.CCVar;
using Content.Shared.GameTicking;
using Content.Shared.Gravity;
Expand Down Expand Up @@ -157,6 +158,17 @@ public bool SetupLavalandPlanet(
return false;
}

{
var moles = new float[Atmospherics.AdjustedNumberOfGases];
moles[(int)Gas.Oxygen] = 21.824779f;
moles[(int)Gas.Nitrogen] = 82.10312f;

var mixture = new GasMixture(moles, Atmospherics.T20C);
_atmos.SetMapAtmosphere(preloader.Value, false, mixture);
}



// Basic setup.
var lavalandMap = _map.CreateMap(out var lavalandMapId, runMapInit: false);
var mapComp = EnsureComp<LavalandMapComponent>(lavalandMap);
Expand Down Expand Up @@ -199,12 +211,16 @@ public bool SetupLavalandPlanet(
_shuttle.AddIFFFlag(grid, flag);
}

QueueDel(preloader.Value);

// Start!!1!!!
_map.InitializeMap(lavalandMapId);

// also preload the planet itself
_biome.Preload(lavalandMap, Comp<BiomeComponent>(lavalandMap), loadBox);

//_atmos.RebuildGridTiles((lavalandMap, gridAtmos, Comp<GasTileOverlayComponent>(lavalandMap), Comp<MapGridComponent>(lavalandMap), Transform(lavalandMap)));

// Finally add destination
var dest = AddComp<FTLDestinationComponent>(lavalandMap);
dest.Whitelist = prototype.ShuttleWhitelist;
Expand Down Expand Up @@ -239,8 +255,7 @@ private void PlanetBasicSetup(EntityUid lavalandMap, LavalandMapPrototype protot
var moles = new float[Atmospherics.AdjustedNumberOfGases];
air.CopyTo(moles, 0);

var atmos = EnsureComp<MapAtmosphereComponent>(lavalandMap);
_atmos.SetMapGasMixture(lavalandMap, new GasMixture(moles, prototype.Temperature), atmos);
_atmos.SetMapAtmosphere(lavalandMap, false, new GasMixture(moles, prototype.Temperature));

// Restricted Range
var restricted = new RestrictedRangeComponent
Expand Down
18 changes: 18 additions & 0 deletions Content.Server/_Lavaland/Weather/LavalandWeatherSystem.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Threading;
using System.Threading.Tasks;
using Content.Server._Lavaland.Procedural.Components;
using Content.Server.Light.EntitySystems;
using Content.Server.Temperature.Systems;
using Content.Server.Weather;
using Content.Shared._Lavaland.Procedural.Components;
Expand All @@ -9,9 +10,12 @@
using Content.Shared.Damage.Components;
using Content.Shared.Damage.Systems;
using Content.Shared.Humanoid;
using Content.Shared.Light.Components;
using Content.Shared.Popups;
using Robust.Shared.CPUJob.JobQueues;
using Robust.Shared.CPUJob.JobQueues.Queues;
using Robust.Shared.Map;
using Robust.Shared.Map.Components;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;

Expand All @@ -25,6 +29,10 @@ public sealed class LavalandWeatherSystem : EntitySystem
[Dependency] private readonly IPrototypeManager _proto = default!;
[Dependency] private readonly TemperatureSystem _temperature = default!;
[Dependency] private readonly DamageableSystem _damage = default!;
[Dependency] private readonly RoofSystem _roof = default!;
[Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly SharedTransformSystem _transform = default!;
[Dependency] private readonly SharedMapSystem _mapSystem = default!;

private const double LavalandWeatherJobTime = 0.005;
private readonly JobQueue _lavalandWeatherJobQueue = new(LavalandWeatherJobTime);
Expand Down Expand Up @@ -52,6 +60,16 @@ private void ProcessLavalandDamage(Entity<DamageableComponent> entity, Entity<La
if (xform.GridUid != lavaland.Owner)
return;


if (
_mapSystem.TryGetTileRef(lavaland.Owner, Comp<MapGridComponent>(lavaland.Owner), xform.Coordinates, out var tile) &&
_roof.IsRooved(
(lavaland.Owner, Comp<MapGridComponent>(lavaland.Owner), Comp<RoofComponent>(lavaland.Owner)),
tile.GridIndices))
{
return;
}
Comment on lines +64 to +71
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Дублирующийся вызов Comp и потенциальный NullReferenceException.

  1. Comp<MapGridComponent>(lavaland.Owner) вызывается дважды — следует закэшировать результат.
  2. Comp<RoofComponent>(lavaland.Owner) выбросит исключение, если компонент отсутствует. Используйте TryComp для безопасной проверки.
🐛 Предлагаемое исправление
-        if (
-            _mapSystem.TryGetTileRef(lavaland.Owner, Comp<MapGridComponent>(lavaland.Owner), xform.Coordinates, out var tile) &&
-            _roof.IsRooved(
-                (lavaland.Owner, Comp<MapGridComponent>(lavaland.Owner), Comp<RoofComponent>(lavaland.Owner)),
-                tile.GridIndices))
-        {
-            return;
-        }
+        if (!TryComp<MapGridComponent>(lavaland.Owner, out var gridComp) ||
+            !TryComp<RoofComponent>(lavaland.Owner, out var roofComp))
+            return;
+
+        if (_mapSystem.TryGetTileRef(lavaland.Owner, gridComp, xform.Coordinates, out var tile) &&
+            _roof.IsRooved((lavaland.Owner, gridComp, roofComp), tile.GridIndices))
+        {
+            return;
+        }
🤖 Prompt for AI Agents
In `@Content.Server/_Lavaland/Weather/LavalandWeatherSystem.cs` around lines 64 -
71, The code calls Comp<MapGridComponent>(lavaland.Owner) twice and uses
Comp<RoofComponent>(lavaland.Owner) which can throw; cache the MapGridComponent
result in a local variable and replace the second Comp call with that variable,
and change the roof lookup to TryComp<RoofComponent>(lavaland.Owner, out var
roofComp) and only call _roof.IsRooved when TryComp returns true (pass roofComp
instead of Comp<RoofComponent>(lavaland.Owner)); keep the existing
_mapSystem.TryGetTileRef(lavaland.Owner, ...) and use tile.GridIndices as
before.


var proto = _proto.Index(lavaland.Comp.CurrentWeather);
_temperature.ChangeHeat(entity, proto.TemperatureChange, ignoreHeatResistance: true);
_damage.ChangeDamage(entity.AsNullable(), proto.Damage);
Expand Down
4 changes: 2 additions & 2 deletions Resources/Maps/Backmen/Lavaland/InteQ_Sizo.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
meta:
format: 7
category: Grid
engineVersion: 270.1.0
engineVersion: 271.1.0
forkId: ""
forkVersion: ""
time: 01/05/2026 13:54:44
time: 01/22/2026 16:13:54
entityCount: 4368
maps: []
grids:
Expand Down
4 changes: 2 additions & 2 deletions Resources/Maps/Backmen/Lavaland/ZENoblomMet2.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
meta:
format: 7
category: Grid
engineVersion: 270.1.0
engineVersion: 271.1.0
forkId: ""
forkVersion: ""
time: 01/05/2026 13:54:46
time: 01/22/2026 16:19:51
entityCount: 584
maps: []
grids:
Expand Down
4 changes: 2 additions & 2 deletions Resources/Maps/Backmen/Lavaland/ZENrndOblom.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
meta:
format: 7
category: Grid
engineVersion: 270.1.0
engineVersion: 271.1.0
forkId: ""
forkVersion: ""
time: 01/05/2026 13:54:47
time: 01/22/2026 16:21:33
entityCount: 630
maps: []
grids:
Expand Down
12 changes: 6 additions & 6 deletions Resources/Maps/Backmen/Lavaland/ZENshuttle1.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
meta:
format: 7
category: Grid
engineVersion: 270.1.0
engineVersion: 271.1.0
forkId: ""
forkVersion: ""
time: 01/05/2026 13:54:47
time: 01/22/2026 16:22:22
entityCount: 171
maps: []
grids:
Expand Down Expand Up @@ -123,10 +123,10 @@ entities:
- type: RadiationGridResistance
- type: Roof
data:
-1,0: 552448594160
-1,-1: 11583469899732746240
0,0: 64678215551
0,-1: 8102028708582719488
-1,0: 9259612768512831728
-1,-1: 16204198715190181888
0,0: 1085120253746167679
0,-1: 9187131305196719872
- type: ExplosionAirtightGrid
- proto: ADTHyperNobliumCanisterBroken
entities:
Expand Down
4 changes: 2 additions & 2 deletions Resources/Maps/Backmen/Lavaland/ZENtelega2.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
meta:
format: 7
category: Grid
engineVersion: 270.1.0
engineVersion: 271.1.0
forkId: ""
forkVersion: ""
time: 01/05/2026 13:54:47
time: 01/22/2026 16:23:04
entityCount: 60
maps: []
grids:
Expand Down
24 changes: 12 additions & 12 deletions Resources/Maps/Backmen/Lavaland/researchfacility.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
meta:
format: 7
category: Grid
engineVersion: 270.1.0
engineVersion: 271.1.0
forkId: ""
forkVersion: ""
time: 01/05/2026 13:54:45
time: 01/22/2026 16:17:01
entityCount: 1303
maps: []
grids:
Expand Down Expand Up @@ -540,24 +540,24 @@ entities:
- type: Roof
data:
-3,-1: 18446743802065502208
-2,-1: 18446744073709551360
-1,-1: 9169117185304295920
-2,0: 18446744073709518655
-2,-1: 18446744073709551615
-1,-1: 18446744073709551615
-2,0: 18446744073709551615
-3,0: 18446744073709551615
-4,-1: 9259541571362095104
-4,0: 9259542123273814144
-3,1: 16316664
-2,1: 16777215
-1,1: 13889313184906543103
-1,0: 18446604302336720124
-1,1: 13889313184914866175
-1,0: 18446744073709551615
0,1: 2242545361212669951
0,0: 18446681535756107772
0,-1: 17938102267936735039
0,0: 18446681535756107775
0,-1: 18444483477802811199
0,-2: 2235763470010664959
-1,-2: 16181363092398014399
-1,2: 192
0,2: 31
1,0: 18446743103564865246
1,0: 18446743107876675551
1,1: 18446744073709551615
1,2: 255
2,2: 15
Expand All @@ -575,8 +575,8 @@ entities:
1,-5: 2233785415175766016
0,-4: 18446744073709551552
0,-5: 13835058055282163712
-1,-4: 18446744060774120448
-2,-4: 16204197749883666432
-1,-4: 18446744073659022336
-2,-4: 16204198711956340736
- type: ExplosionAirtightGrid
- proto: AirlockHatchBasik
entities:
Expand Down
4 changes: 2 additions & 2 deletions Resources/Maps/Backmen/Lavaland/researchspot2.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
meta:
format: 7
category: Grid
engineVersion: 270.1.0
engineVersion: 271.1.0
forkId: ""
forkVersion: ""
time: 01/05/2026 13:54:46
time: 01/22/2026 16:18:59
entityCount: 110
maps: []
grids:
Expand Down
4 changes: 2 additions & 2 deletions Resources/Maps/Backmen/Lavaland/uriilArena.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
meta:
format: 7
category: Grid
engineVersion: 270.1.0
engineVersion: 271.1.0
forkId: ""
forkVersion: ""
time: 01/05/2026 13:54:46
time: 01/22/2026 16:14:57
entityCount: 251
maps: []
grids:
Expand Down
4 changes: 2 additions & 2 deletions Resources/Maps/Backmen/Lavaland/xenoutpost.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
meta:
format: 7
category: Grid
engineVersion: 270.1.0
engineVersion: 271.1.0
forkId: ""
forkVersion: ""
time: 01/05/2026 13:54:46
time: 01/22/2026 16:17:56
entityCount: 443
maps: []
grids:
Expand Down
Loading
Loading