Update SharedBiomeSystem methods to use Entity<T> (#37698)
* Fix warning in TryGetBiomeTile * Overload TryGetBiomeTile * Overload more methods, fix internal warnings * Update TryGetEntity uses * Update TryGetTile uses * Cleanup TryGetDecals use * Formatting * Two more warnings while we're here
This commit is contained in:
@@ -58,13 +58,13 @@ public sealed class BiomeDebugOverlay : Overlay
|
|||||||
var sb = new StringBuilder();
|
var sb = new StringBuilder();
|
||||||
var nodePos = _maps.WorldToTile(mapUid, grid, mousePos.Position);
|
var nodePos = _maps.WorldToTile(mapUid, grid, mousePos.Position);
|
||||||
|
|
||||||
if (_biomes.TryGetEntity(nodePos, biomeComp, grid, out var ent))
|
if (_biomes.TryGetEntity(nodePos, biomeComp, (mapUid, grid), out var ent))
|
||||||
{
|
{
|
||||||
var text = $"Entity: {ent}";
|
var text = $"Entity: {ent}";
|
||||||
sb.AppendLine(text);
|
sb.AppendLine(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_biomes.TryGetDecals(nodePos, biomeComp.Layers, biomeComp.Seed, grid, out var decals))
|
if (_biomes.TryGetDecals(nodePos, biomeComp.Layers, biomeComp.Seed, (mapUid, grid), out var decals))
|
||||||
{
|
{
|
||||||
var text = $"Decals: {decals.Count}";
|
var text = $"Decals: {decals.Count}";
|
||||||
sb.AppendLine(text);
|
sb.AppendLine(text);
|
||||||
@@ -76,7 +76,7 @@ public sealed class BiomeDebugOverlay : Overlay
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_biomes.TryGetBiomeTile(nodePos, biomeComp.Layers, biomeComp.Seed, grid, out var tile))
|
if (_biomes.TryGetBiomeTile(nodePos, biomeComp.Layers, biomeComp.Seed, (mapUid, grid), out var tile))
|
||||||
{
|
{
|
||||||
var tileText = $"Tile: {_tileDefManager[tile.Value.TypeId].ID}";
|
var tileText = $"Tile: {_tileDefManager[tile.Value.TypeId].ID}";
|
||||||
sb.AppendLine(tileText);
|
sb.AppendLine(tileText);
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
|
|||||||
if (biome.Template == null || !reloads.Modified.TryGetValue(biome.Template, out var proto))
|
if (biome.Template == null || !reloads.Modified.TryGetValue(biome.Template, out var proto))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
SetTemplate(uid, biome, (BiomeTemplatePrototype) proto);
|
SetTemplate(uid, biome, (BiomeTemplatePrototype)proto);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -257,7 +257,7 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
|
|||||||
private void OnFTLStarted(ref FTLStartedEvent ev)
|
private void OnFTLStarted(ref FTLStartedEvent ev)
|
||||||
{
|
{
|
||||||
var targetMap = _transform.ToMapCoordinates(ev.TargetCoordinates);
|
var targetMap = _transform.ToMapCoordinates(ev.TargetCoordinates);
|
||||||
var targetMapUid = _mapManager.GetMapEntityId(targetMap.MapId);
|
var targetMapUid = _mapSystem.GetMapOrInvalid(targetMap.MapId);
|
||||||
|
|
||||||
if (!TryComp<BiomeComponent>(targetMapUid, out var biome))
|
if (!TryComp<BiomeComponent>(targetMapUid, out var biome))
|
||||||
return;
|
return;
|
||||||
@@ -283,12 +283,12 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
|
|||||||
{
|
{
|
||||||
for (var y = Math.Floor(aabb.Bottom); y <= Math.Ceiling(aabb.Top); y++)
|
for (var y = Math.Floor(aabb.Bottom); y <= Math.Ceiling(aabb.Top); y++)
|
||||||
{
|
{
|
||||||
var index = new Vector2i((int) x, (int) y);
|
var index = new Vector2i((int)x, (int)y);
|
||||||
var chunk = SharedMapSystem.GetChunkIndices(index, ChunkSize);
|
var chunk = SharedMapSystem.GetChunkIndices(index, ChunkSize);
|
||||||
|
|
||||||
var mod = biome.ModifiedTiles.GetOrNew(chunk * ChunkSize);
|
var mod = biome.ModifiedTiles.GetOrNew(chunk * ChunkSize);
|
||||||
|
|
||||||
if (!mod.Add(index) || !TryGetBiomeTile(index, biome.Layers, biome.Seed, grid, out var tile))
|
if (!mod.Add(index) || !TryGetBiomeTile(index, biome.Layers, biome.Seed, (ev.MapUid, grid), out var tile))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// If we flag it as modified then the tile is never set so need to do it ourselves.
|
// If we flag it as modified then the tile is never set so need to do it ourselves.
|
||||||
@@ -493,9 +493,9 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
|
|||||||
var layerProto = ProtoManager.Index<BiomeMarkerLayerPrototype>(layer);
|
var layerProto = ProtoManager.Index<BiomeMarkerLayerPrototype>(layer);
|
||||||
var markerSeed = seed + chunk.X * ChunkSize + chunk.Y + localIdx;
|
var markerSeed = seed + chunk.X * ChunkSize + chunk.Y + localIdx;
|
||||||
var rand = new Random(markerSeed);
|
var rand = new Random(markerSeed);
|
||||||
var buffer = (int) (layerProto.Radius / 2f);
|
var buffer = (int)(layerProto.Radius / 2f);
|
||||||
var bounds = new Box2i(chunk + buffer, chunk + layerProto.Size - buffer);
|
var bounds = new Box2i(chunk + buffer, chunk + layerProto.Size - buffer);
|
||||||
var count = (int) (bounds.Area / (layerProto.Radius * layerProto.Radius));
|
var count = (int)(bounds.Area / (layerProto.Radius * layerProto.Radius));
|
||||||
count = Math.Min(count, layerProto.MaxCount);
|
count = Math.Min(count, layerProto.MaxCount);
|
||||||
|
|
||||||
GetMarkerNodes(gridUid, component, grid, layerProto, forced, bounds, count, rand,
|
GetMarkerNodes(gridUid, component, grid, layerProto, forced, bounds, count, rand,
|
||||||
@@ -607,7 +607,7 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Check if mask matches // anything blocking.
|
// Check if mask matches // anything blocking.
|
||||||
TryGetEntity(node, biome, grid, out var proto);
|
TryGetEntity(node, biome, (gridUid, grid), out var proto);
|
||||||
|
|
||||||
// If there's an existing entity and it doesn't match the mask then skip.
|
// If there's an existing entity and it doesn't match the mask then skip.
|
||||||
if (layerProto.EntityMask.Count > 0 &&
|
if (layerProto.EntityMask.Count > 0 &&
|
||||||
@@ -727,14 +727,14 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Need to ensure the tile under it has loaded for anchoring.
|
// Need to ensure the tile under it has loaded for anchoring.
|
||||||
if (TryGetBiomeTile(node, component.Layers, seed, grid, out var tile))
|
if (TryGetBiomeTile(node, component.Layers, seed, (gridUid, grid), out var tile))
|
||||||
{
|
{
|
||||||
_mapSystem.SetTile(gridUid, grid, node, tile.Value);
|
_mapSystem.SetTile(gridUid, grid, node, tile.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
string? prototype;
|
string? prototype;
|
||||||
|
|
||||||
if (TryGetEntity(node, component, grid, out var proto) &&
|
if (TryGetEntity(node, component, (gridUid, grid), out var proto) &&
|
||||||
layerProto.EntityMask.TryGetValue(proto, out var maskedProto))
|
layerProto.EntityMask.TryGetValue(proto, out var maskedProto))
|
||||||
{
|
{
|
||||||
prototype = maskedProto;
|
prototype = maskedProto;
|
||||||
@@ -793,7 +793,7 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
|
|||||||
if (_mapSystem.TryGetTileRef(gridUid, grid, indices, out var tileRef) && !tileRef.Tile.IsEmpty)
|
if (_mapSystem.TryGetTileRef(gridUid, grid, indices, out var tileRef) && !tileRef.Tile.IsEmpty)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!TryGetBiomeTile(indices, component.Layers, seed, grid, out var biomeTile))
|
if (!TryGetBiomeTile(indices, component.Layers, seed, (gridUid, grid), out var biomeTile))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
_tiles.Add((indices, biomeTile.Value));
|
_tiles.Add((indices, biomeTile.Value));
|
||||||
@@ -819,7 +819,7 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
|
|||||||
// Don't mess with anything that's potentially anchored.
|
// Don't mess with anything that's potentially anchored.
|
||||||
var anchored = _mapSystem.GetAnchoredEntitiesEnumerator(gridUid, grid, indices);
|
var anchored = _mapSystem.GetAnchoredEntitiesEnumerator(gridUid, grid, indices);
|
||||||
|
|
||||||
if (anchored.MoveNext(out _) || !TryGetEntity(indices, component, grid, out var entPrototype))
|
if (anchored.MoveNext(out _) || !TryGetEntity(indices, component, (gridUid, grid), out var entPrototype))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// TODO: Fix non-anchored ents spawning.
|
// TODO: Fix non-anchored ents spawning.
|
||||||
@@ -852,7 +852,7 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
|
|||||||
// Don't mess with anything that's potentially anchored.
|
// Don't mess with anything that's potentially anchored.
|
||||||
var anchored = _mapSystem.GetAnchoredEntitiesEnumerator(gridUid, grid, indices);
|
var anchored = _mapSystem.GetAnchoredEntitiesEnumerator(gridUid, grid, indices);
|
||||||
|
|
||||||
if (anchored.MoveNext(out _) || !TryGetDecals(indices, component.Layers, seed, grid, out var decals))
|
if (anchored.MoveNext(out _) || !TryGetDecals(indices, component.Layers, seed, (gridUid, grid), out var decals))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
foreach (var decal in decals)
|
foreach (var decal in decals)
|
||||||
@@ -966,7 +966,7 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Don't mess with anything that's potentially anchored.
|
// Don't mess with anything that's potentially anchored.
|
||||||
var anchored = grid.GetAnchoredEntitiesEnumerator(indices);
|
var anchored = _mapSystem.GetAnchoredEntitiesEnumerator(gridUid, grid, indices);
|
||||||
|
|
||||||
if (anchored.MoveNext(out _))
|
if (anchored.MoveNext(out _))
|
||||||
{
|
{
|
||||||
@@ -1040,8 +1040,8 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
|
|||||||
EnsureComp<SunShadowCycleComponent>(mapUid);
|
EnsureComp<SunShadowCycleComponent>(mapUid);
|
||||||
|
|
||||||
var moles = new float[Atmospherics.AdjustedNumberOfGases];
|
var moles = new float[Atmospherics.AdjustedNumberOfGases];
|
||||||
moles[(int) Gas.Oxygen] = 21.824779f;
|
moles[(int)Gas.Oxygen] = 21.824779f;
|
||||||
moles[(int) Gas.Nitrogen] = 82.10312f;
|
moles[(int)Gas.Nitrogen] = 82.10312f;
|
||||||
|
|
||||||
var mixture = new GasMixture(moles, Atmospherics.T20C);
|
var mixture = new GasMixture(moles, Atmospherics.T20C);
|
||||||
|
|
||||||
@@ -1070,7 +1070,7 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TryGetBiomeTile(tileSet.GridIndices, biome.Layers, biome.Seed, mapGrid, out var tile))
|
if (!TryGetBiomeTile(tileSet.GridIndices, biome.Layers, biome.Seed, (mapUid, mapGrid), out var tile))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,17 +34,17 @@ public sealed partial class DungeonJob
|
|||||||
|
|
||||||
if (dunGen.TileMask is not null)
|
if (dunGen.TileMask is not null)
|
||||||
{
|
{
|
||||||
if (!dunGen.TileMask.Contains(((ContentTileDefinition) _tileDefManager[tileRef.Value.Tile.TypeId]).ID))
|
if (!dunGen.TileMask.Contains(((ContentTileDefinition)_tileDefManager[tileRef.Value.Tile.TypeId]).ID))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Need to set per-tile to override data.
|
// Need to set per-tile to override data.
|
||||||
if (biomeSystem.TryGetTile(node, indexedBiome.Layers, seed, _grid, out var tile))
|
if (biomeSystem.TryGetTile(node, indexedBiome.Layers, seed, (_gridUid, _grid), out var tile))
|
||||||
{
|
{
|
||||||
_maps.SetTile(_gridUid, _grid, node, tile.Value);
|
_maps.SetTile(_gridUid, _grid, node, tile.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (biomeSystem.TryGetDecals(node, indexedBiome.Layers, seed, _grid, out var decals))
|
if (biomeSystem.TryGetDecals(node, indexedBiome.Layers, seed, (_gridUid, _grid), out var decals))
|
||||||
{
|
{
|
||||||
foreach (var decal in decals)
|
foreach (var decal in decals)
|
||||||
{
|
{
|
||||||
@@ -52,7 +52,7 @@ public sealed partial class DungeonJob
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (biomeSystem.TryGetEntity(node, indexedBiome.Layers, tile ?? tileRef.Value.Tile, seed, _grid, out var entityProto))
|
if (biomeSystem.TryGetEntity(node, indexedBiome.Layers, tile ?? tileRef.Value.Tile, seed, (_gridUid, _grid), out var entityProto))
|
||||||
{
|
{
|
||||||
var ent = _entManager.SpawnEntity(entityProto, new EntityCoordinates(_gridUid, node + _grid.TileSizeHalfVector));
|
var ent = _entManager.SpawnEntity(entityProto, new EntityCoordinates(_gridUid, node + _grid.TileSizeHalfVector));
|
||||||
var xform = xformQuery.Get(ent);
|
var xform = xformQuery.Get(ent);
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ public abstract class SharedBiomeSystem : EntitySystem
|
|||||||
[Dependency] private readonly ISerializationManager _serManager = default!;
|
[Dependency] private readonly ISerializationManager _serManager = default!;
|
||||||
[Dependency] protected readonly ITileDefinitionManager TileDefManager = default!;
|
[Dependency] protected readonly ITileDefinitionManager TileDefManager = default!;
|
||||||
[Dependency] private readonly TileSystem _tile = default!;
|
[Dependency] private readonly TileSystem _tile = default!;
|
||||||
|
[Dependency] private readonly SharedMapSystem _map = default!;
|
||||||
|
|
||||||
protected const byte ChunkSize = 8;
|
protected const byte ChunkSize = 8;
|
||||||
|
|
||||||
@@ -69,7 +70,7 @@ public abstract class SharedBiomeSystem : EntitySystem
|
|||||||
|
|
||||||
public bool TryGetBiomeTile(EntityUid uid, MapGridComponent grid, Vector2i indices, [NotNullWhen(true)] out Tile? tile)
|
public bool TryGetBiomeTile(EntityUid uid, MapGridComponent grid, Vector2i indices, [NotNullWhen(true)] out Tile? tile)
|
||||||
{
|
{
|
||||||
if (grid.TryGetTileRef(indices, out var tileRef) && !tileRef.Tile.IsEmpty)
|
if (_map.TryGetTileRef(uid, grid, indices, out var tileRef) && !tileRef.Tile.IsEmpty)
|
||||||
{
|
{
|
||||||
tile = tileRef.Tile;
|
tile = tileRef.Tile;
|
||||||
return true;
|
return true;
|
||||||
@@ -81,15 +82,15 @@ public abstract class SharedBiomeSystem : EntitySystem
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TryGetBiomeTile(indices, biome.Layers, biome.Seed, grid, out tile);
|
return TryGetBiomeTile(indices, biome.Layers, biome.Seed, (uid, grid), out tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Tries to get the tile, real or otherwise, for the specified indices.
|
/// Tries to get the tile, real or otherwise, for the specified indices.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool TryGetBiomeTile(Vector2i indices, List<IBiomeLayer> layers, int seed, MapGridComponent? grid, [NotNullWhen(true)] out Tile? tile)
|
public bool TryGetBiomeTile(Vector2i indices, List<IBiomeLayer> layers, int seed, Entity<MapGridComponent>? grid, [NotNullWhen(true)] out Tile? tile)
|
||||||
{
|
{
|
||||||
if (grid?.TryGetTileRef(indices, out var tileRef) == true && !tileRef.Tile.IsEmpty)
|
if (grid is { } gridEnt && _map.TryGetTileRef(gridEnt, gridEnt.Comp, indices, out var tileRef) && !tileRef.Tile.IsEmpty)
|
||||||
{
|
{
|
||||||
tile = tileRef.Tile;
|
tile = tileRef.Tile;
|
||||||
return true;
|
return true;
|
||||||
@@ -98,10 +99,19 @@ public abstract class SharedBiomeSystem : EntitySystem
|
|||||||
return TryGetTile(indices, layers, seed, grid, out tile);
|
return TryGetTile(indices, layers, seed, grid, out tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tries to get the tile, real or otherwise, for the specified indices.
|
||||||
|
/// </summary>
|
||||||
|
[Obsolete("Use the Entity<MapGridComponent>? overload")]
|
||||||
|
public bool TryGetBiomeTile(Vector2i indices, List<IBiomeLayer> layers, int seed, MapGridComponent? grid, [NotNullWhen(true)] out Tile? tile)
|
||||||
|
{
|
||||||
|
return TryGetBiomeTile(indices, layers, seed, grid == null ? null : (grid.Owner, grid), out tile);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the underlying biome tile, ignoring any existing tile that may be there.
|
/// Gets the underlying biome tile, ignoring any existing tile that may be there.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool TryGetTile(Vector2i indices, List<IBiomeLayer> layers, int seed, MapGridComponent? grid, [NotNullWhen(true)] out Tile? tile)
|
public bool TryGetTile(Vector2i indices, List<IBiomeLayer> layers, int seed, Entity<MapGridComponent>? grid, [NotNullWhen(true)] out Tile? tile)
|
||||||
{
|
{
|
||||||
for (var i = layers.Count - 1; i >= 0; i--)
|
for (var i = layers.Count - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
@@ -139,6 +149,15 @@ public abstract class SharedBiomeSystem : EntitySystem
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the underlying biome tile, ignoring any existing tile that may be there.
|
||||||
|
/// </summary>
|
||||||
|
[Obsolete("Use the Entity<MapGridComponent>? overload")]
|
||||||
|
public bool TryGetTile(Vector2i indices, List<IBiomeLayer> layers, int seed, MapGridComponent? grid, [NotNullWhen(true)] out Tile? tile)
|
||||||
|
{
|
||||||
|
return TryGetTile(indices, layers, seed, grid == null ? null : (grid.Owner, grid), out tile);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the underlying biome tile, ignoring any existing tile that may be there.
|
/// Gets the underlying biome tile, ignoring any existing tile that may be there.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -160,7 +179,7 @@ public abstract class SharedBiomeSystem : EntitySystem
|
|||||||
if (variantCount > 1)
|
if (variantCount > 1)
|
||||||
{
|
{
|
||||||
var variantValue = (noise.GetNoise(indices.X * 8, indices.Y * 8, variantCount) + 1f) * 100;
|
var variantValue = (noise.GetNoise(indices.X * 8, indices.Y * 8, variantCount) + 1f) * 100;
|
||||||
variant = _tile.PickVariant(tileDef, (int) variantValue);
|
variant = _tile.PickVariant(tileDef, (int)variantValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
tile = new Tile(tileDef.TileId, variant);
|
tile = new Tile(tileDef.TileId, variant);
|
||||||
@@ -170,7 +189,7 @@ public abstract class SharedBiomeSystem : EntitySystem
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Tries to get the relevant entity for this tile.
|
/// Tries to get the relevant entity for this tile.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool TryGetEntity(Vector2i indices, BiomeComponent component, MapGridComponent grid,
|
public bool TryGetEntity(Vector2i indices, BiomeComponent component, Entity<MapGridComponent>? grid,
|
||||||
[NotNullWhen(true)] out string? entity)
|
[NotNullWhen(true)] out string? entity)
|
||||||
{
|
{
|
||||||
if (!TryGetBiomeTile(indices, component.Layers, component.Seed, grid, out var tile))
|
if (!TryGetBiomeTile(indices, component.Layers, component.Seed, grid, out var tile))
|
||||||
@@ -182,8 +201,17 @@ public abstract class SharedBiomeSystem : EntitySystem
|
|||||||
return TryGetEntity(indices, component.Layers, tile.Value, component.Seed, grid, out entity);
|
return TryGetEntity(indices, component.Layers, tile.Value, component.Seed, grid, out entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tries to get the relevant entity for this tile.
|
||||||
|
/// </summary>
|
||||||
|
[Obsolete("Use the Entity<MapGridComponent>? overload")]
|
||||||
|
public bool TryGetEntity(Vector2i indices, BiomeComponent component, MapGridComponent grid,
|
||||||
|
[NotNullWhen(true)] out string? entity)
|
||||||
|
{
|
||||||
|
return TryGetEntity(indices, component, grid == null ? null : (grid.Owner, grid), out entity);
|
||||||
|
}
|
||||||
|
|
||||||
public bool TryGetEntity(Vector2i indices, List<IBiomeLayer> layers, Tile tileRef, int seed, MapGridComponent grid,
|
public bool TryGetEntity(Vector2i indices, List<IBiomeLayer> layers, Tile tileRef, int seed, Entity<MapGridComponent>? grid,
|
||||||
[NotNullWhen(true)] out string? entity)
|
[NotNullWhen(true)] out string? entity)
|
||||||
{
|
{
|
||||||
var tileId = TileDefManager[tileRef.TypeId].ID;
|
var tileId = TileDefManager[tileRef.TypeId].ID;
|
||||||
@@ -242,10 +270,17 @@ public abstract class SharedBiomeSystem : EntitySystem
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Obsolete("Use the Entity<MapGridComponent>? overload")]
|
||||||
|
public bool TryGetEntity(Vector2i indices, List<IBiomeLayer> layers, Tile tileRef, int seed, MapGridComponent grid,
|
||||||
|
[NotNullWhen(true)] out string? entity)
|
||||||
|
{
|
||||||
|
return TryGetEntity(indices, layers, tileRef, seed, grid == null ? null : (grid.Owner, grid), out entity);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Tries to get the relevant decals for this tile.
|
/// Tries to get the relevant decals for this tile.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool TryGetDecals(Vector2i indices, List<IBiomeLayer> layers, int seed, MapGridComponent grid,
|
public bool TryGetDecals(Vector2i indices, List<IBiomeLayer> layers, int seed, Entity<MapGridComponent>? grid,
|
||||||
[NotNullWhen(true)] out List<(string ID, Vector2 Position)>? decals)
|
[NotNullWhen(true)] out List<(string ID, Vector2 Position)>? decals)
|
||||||
{
|
{
|
||||||
if (!TryGetBiomeTile(indices, layers, seed, grid, out var tileRef))
|
if (!TryGetBiomeTile(indices, layers, seed, grid, out var tileRef))
|
||||||
@@ -329,6 +364,16 @@ public abstract class SharedBiomeSystem : EntitySystem
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tries to get the relevant decals for this tile.
|
||||||
|
/// </summary>
|
||||||
|
[Obsolete("Use the Entity<MapGridComponent>? overload")]
|
||||||
|
public bool TryGetDecals(Vector2i indices, List<IBiomeLayer> layers, int seed, MapGridComponent grid,
|
||||||
|
[NotNullWhen(true)] out List<(string ID, Vector2 Position)>? decals)
|
||||||
|
{
|
||||||
|
return TryGetDecals(indices, layers, seed, grid == null ? null : (grid.Owner, grid), out decals);
|
||||||
|
}
|
||||||
|
|
||||||
private FastNoiseLite GetNoise(FastNoiseLite seedNoise, int seed)
|
private FastNoiseLite GetNoise(FastNoiseLite seedNoise, int seed)
|
||||||
{
|
{
|
||||||
var noiseCopy = new FastNoiseLite();
|
var noiseCopy = new FastNoiseLite();
|
||||||
|
|||||||
Reference in New Issue
Block a user