Make procgen use weighted variants (#24669)

This commit is contained in:
Nemanja
2024-01-28 21:41:59 -05:00
committed by GitHub
parent bd100344a2
commit 2a6705818b
11 changed files with 68 additions and 64 deletions

View File

@@ -35,6 +35,7 @@ public sealed class FloorTileSystem : EntitySystem
[Dependency] private readonly SharedPopupSystem _popup = default!;
[Dependency] private readonly SharedStackSystem _stackSystem = default!;
[Dependency] private readonly SharedTransformSystem _transform = default!;
[Dependency] private readonly TileSystem _tile = default!;
[Dependency] private readonly SharedPhysicsSystem _physics = default!;
private static readonly Vector2 CheckRange = new(1f, 1f);
@@ -175,8 +176,8 @@ public sealed class FloorTileSystem : EntitySystem
{
_adminLogger.Add(LogType.Tile, LogImpact.Low, $"{ToPrettyString(user):actor} placed tile {_tileDefinitionManager[tileId].Name} at {ToPrettyString(gridUid)} {location}");
// TODO: Proper predicted RNG.
var variant = (byte) (_timing.CurTick.Value % ((ContentTileDefinition) _tileDefinitionManager[tileId]).Variants);
var random = new System.Random((int) _timing.CurTick.Value);
var variant = _tile.PickVariant((ContentTileDefinition) _tileDefinitionManager[tileId], random);
mapGrid.SetTile(location.Offset(new Vector2(offset, offset)), new Tile(tileId, 0, variant));
_audio.PlayPredicted(placeSound, location, user);