From 1df650871d548c362576f3fcbf336398319b7950 Mon Sep 17 00:00:00 2001 From: Vordenburg <114301317+Vordenburg@users.noreply.github.com> Date: Sun, 13 Aug 2023 03:25:54 -0400 Subject: [PATCH] Support weighted tile variantize (#18940) * Support weighted tile variantize * Remove unused using * Use an array --- .../Commands/VariantizeCommand.cs | 4 +- Content.Server/Maps/TileSystem.cs | 6 +- .../Debris/BlobFloorPlanBuilderSystem.cs | 4 +- Content.Shared/Maps/ContentTileDefinition.cs | 5 +- Content.Shared/Maps/TurfHelpers.cs | 24 ++ Content.Shared/Tiles/FloorTileSystem.cs | 2 +- Resources/Prototypes/Tiles/floors.yml | 287 ++++++++++++++---- Resources/Prototypes/Tiles/planet.yml | 37 ++- 8 files changed, 302 insertions(+), 67 deletions(-) diff --git a/Content.Server/Administration/Commands/VariantizeCommand.cs b/Content.Server/Administration/Commands/VariantizeCommand.cs index 669ff637b8..11141640e9 100644 --- a/Content.Server/Administration/Commands/VariantizeCommand.cs +++ b/Content.Server/Administration/Commands/VariantizeCommand.cs @@ -1,4 +1,4 @@ -using Content.Shared.Administration; +using Content.Shared.Administration; using Content.Shared.Maps; using Robust.Shared.Console; using Robust.Shared.Map; @@ -42,7 +42,7 @@ public sealed class VariantizeCommand : IConsoleCommand foreach (var tile in gridComp.GetAllTiles()) { var def = tile.GetContentTileDefinition(); - var newTile = new Tile(tile.Tile.TypeId, tile.Tile.Flags, random.Pick(def.PlacementVariants)); + var newTile = new Tile(tile.Tile.TypeId, tile.Tile.Flags, def.PickVariant(random)); gridComp.SetTile(tile.GridIndices, newTile); } } diff --git a/Content.Server/Maps/TileSystem.cs b/Content.Server/Maps/TileSystem.cs index e4ce95eaf0..1423f76d97 100644 --- a/Content.Server/Maps/TileSystem.cs +++ b/Content.Server/Maps/TileSystem.cs @@ -1,4 +1,4 @@ -using System.Numerics; +using System.Numerics; using Content.Server.Decals; using Content.Shared.Coordinates.Helpers; using Content.Shared.Decals; @@ -26,7 +26,7 @@ public sealed class TileSystem : EntitySystem var tileRef = grid.GetTileRef(indices); return PryTile(tileRef); } - + public bool PryTile(TileRef tileRef) { return PryTile(tileRef, false); @@ -74,7 +74,7 @@ public sealed class TileSystem : EntitySystem if (!Resolve(grid, ref component)) return false; - var variant = _robustRandom.Pick(replacementTile.PlacementVariants); + var variant = replacementTile.PickVariant(); var decals = _decal.GetDecalsInRange(tileref.GridUid, _turf.GetTileCenter(tileref).Position, 0.5f); foreach (var (id, _) in decals) { diff --git a/Content.Server/Worldgen/Systems/Debris/BlobFloorPlanBuilderSystem.cs b/Content.Server/Worldgen/Systems/Debris/BlobFloorPlanBuilderSystem.cs index c69f53d3f4..a90faef995 100644 --- a/Content.Server/Worldgen/Systems/Debris/BlobFloorPlanBuilderSystem.cs +++ b/Content.Server/Worldgen/Systems/Debris/BlobFloorPlanBuilderSystem.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using Content.Server.Worldgen.Components.Debris; using Content.Shared.Maps; using Robust.Shared.Map; @@ -56,7 +56,7 @@ public sealed class BlobFloorPlanBuilderSystem : BaseWorldSystem spawnPoints.Add(west); var tileDef = _tileDefinition[_random.Pick(comp.FloorTileset)]; - taken.Add(point, new Tile(tileDef.TileId, 0, _random.Pick(((ContentTileDefinition)tileDef).PlacementVariants))); + taken.Add(point, new Tile(tileDef.TileId, 0, ((ContentTileDefinition)tileDef).PickVariant(_random))); } PlaceTile(Vector2i.Zero); diff --git a/Content.Shared/Maps/ContentTileDefinition.cs b/Content.Shared/Maps/ContentTileDefinition.cs index b672b2ec7f..e04100e9e2 100644 --- a/Content.Shared/Maps/ContentTileDefinition.cs +++ b/Content.Shared/Maps/ContentTileDefinition.cs @@ -1,5 +1,4 @@ using Content.Shared.Atmos; -using JetBrains.Annotations; using Robust.Shared.Audio; using Robust.Shared.Map; using Robust.Shared.Prototypes; @@ -37,7 +36,7 @@ namespace Content.Shared.Maps public string BaseTurf { get; } = string.Empty; [DataField("canCrowbar")] public bool CanCrowbar { get; private set; } - + /// /// Whether this tile can be pried by an advanced prying tool if not pryable otherwise. /// @@ -62,7 +61,7 @@ namespace Content.Shared.Maps /// /// This controls what variants the `variantize` command is allowed to use. /// - [DataField("placementVariants")] public byte[] PlacementVariants { get; set; } = new byte[1] { 0 }; + [DataField("placementVariants")] public float[] PlacementVariants { get; set; } = new [] { 1f }; [DataField("thermalConductivity")] public float ThermalConductivity = 0.04f; diff --git a/Content.Shared/Maps/TurfHelpers.cs b/Content.Shared/Maps/TurfHelpers.cs index ba0e625845..6b9d7dbbf9 100644 --- a/Content.Shared/Maps/TurfHelpers.cs +++ b/Content.Shared/Maps/TurfHelpers.cs @@ -89,6 +89,30 @@ namespace Content.Shared.Maps return tile.Tile.IsSpace(tileDefinitionManager); } + /// + /// Returns a weighted pick of a tile variant. + /// + public static byte PickVariant(this ContentTileDefinition tile, IRobustRandom? random = null) + { + IoCManager.Resolve(ref random); + var variants = tile.PlacementVariants; + + var sum = variants.Sum(); + var accumulated = 0f; + var rand = random.NextFloat() * sum; + + for (byte i = 0; i < variants.Length; ++i) + { + accumulated += variants[i]; + + if (accumulated >= rand) + return i; + } + + // Shouldn't happen + throw new InvalidOperationException($"Invalid weighted variantize tile pick for {tile.ID}!"); + } + /// /// Helper that returns all entities in a turf. /// diff --git a/Content.Shared/Tiles/FloorTileSystem.cs b/Content.Shared/Tiles/FloorTileSystem.cs index e121f11d87..8cd8021810 100644 --- a/Content.Shared/Tiles/FloorTileSystem.cs +++ b/Content.Shared/Tiles/FloorTileSystem.cs @@ -177,7 +177,7 @@ public sealed class FloorTileSystem : EntitySystem { _adminLogger.Add(LogType.Action, LogImpact.Low, $"{ToPrettyString(user):actor} placed tile {_tileDefinitionManager[tileId].Name} at {ToPrettyString(gridUid)} {location}"); - var variant = _random.Pick(((ContentTileDefinition) _tileDefinitionManager[tileId]).PlacementVariants); + var variant = ((ContentTileDefinition) _tileDefinitionManager[tileId]).PickVariant(); mapGrid.SetTile(location.Offset(new Vector2(offset, offset)), new Tile(tileId, 0, variant)); _audio.PlayPredicted(placeSound, location, user, AudioHelpers.WithVariation(0.125f, _random)); diff --git a/Resources/Prototypes/Tiles/floors.yml b/Resources/Prototypes/Tiles/floors.yml index f57faa772f..7e76b18599 100644 --- a/Resources/Prototypes/Tiles/floors.yml +++ b/Resources/Prototypes/Tiles/floors.yml @@ -3,7 +3,11 @@ name: tiles-steel-floor sprite: /Textures/Tiles/steel.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -17,7 +21,11 @@ name: tiles-steel-floor-checker-light sprite: /Textures/Tiles/cafeteria.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -31,7 +39,11 @@ name: tiles-steel-floor-checker-dark sprite: /Textures/Tiles/checker_dark.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -45,7 +57,11 @@ name: tiles-steel-floor-mini sprite: /Textures/Tiles/steel_mini.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -59,7 +75,11 @@ name: tiles-steel-floor-pavement sprite: /Textures/Tiles/steel_pavement.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -73,7 +93,11 @@ name: tiles-steel-floor-diagonal sprite: /Textures/Tiles/steel_diagonal.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -86,8 +110,6 @@ id: FloorSteelOffset name: tiles-steel-floor-offset sprite: /Textures/Tiles/steel_offset.png - variants: 1 - placementVariants: [0] baseTurf: Plating isSubfloor: false canCrowbar: true @@ -101,7 +123,11 @@ name: tiles-steel-floor-mono sprite: /Textures/Tiles/steel_mono.png variants: 4 - placementVariants: [0,1,2,3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -115,7 +141,11 @@ name: tiles-steel-floor-pavement-vertical sprite: /Textures/Tiles/steel_pavement_vertical.png variants: 4 - placementVariants: [0,1,2,3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -129,7 +159,11 @@ name: tiles-steel-floor-herringbone sprite: /Textures/Tiles/steel_herringbone.png variants: 4 - placementVariants: [0,1,2,3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -143,7 +177,11 @@ name: tiles-steel-floor-diagonal-mini sprite: /Textures/Tiles/steel_diagonal_mini.png variants: 4 - placementVariants: [0,1,2,3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -157,7 +195,11 @@ name: tiles-plastic-floor sprite: /Textures/Tiles/plastic.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -171,7 +213,11 @@ name: tiles-wood sprite: /Textures/Tiles/wood.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -187,7 +233,11 @@ name: tiles-white-floor sprite: /Textures/Tiles/white.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -201,7 +251,11 @@ name: tiles-white-floor-mini sprite: /Textures/Tiles/white_mini.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -215,7 +269,11 @@ name: tiles-white-floor-pavement sprite: /Textures/Tiles/white_pavement.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -229,7 +287,11 @@ name: tiles-white-floor-diagonal sprite: /Textures/Tiles/white_diagonal.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -242,8 +304,6 @@ id: FloorWhiteOffset name: tiles-white-floor-offset sprite: /Textures/Tiles/white_offset.png - variants: 1 - placementVariants: [0] baseTurf: Plating isSubfloor: false canCrowbar: true @@ -257,7 +317,11 @@ name: tiles-white-floor-mono sprite: /Textures/Tiles/white_mono.png variants: 4 - placementVariants: [0,1,2,3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -271,7 +335,11 @@ name: tiles-white-floor-pavement-vertical sprite: /Textures/Tiles/white_pavement_vertical.png variants: 4 - placementVariants: [0,1,2,3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -285,7 +353,11 @@ name: tiles-white-floor-herringbone sprite: /Textures/Tiles/white_herringbone.png variants: 4 - placementVariants: [0,1,2,3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -299,7 +371,11 @@ name: tiles-white-floor-diagonal-mini sprite: /Textures/Tiles/white_diagonal_mini.png variants: 4 - placementVariants: [0,1,2,3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -313,7 +389,11 @@ name: tiles-plastic-white-floor sprite: /Textures/Tiles/white_plastic.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -327,7 +407,11 @@ name: tiles-dark-floor sprite: /Textures/Tiles/dark.png variants: 4 - placementVariants: [ 0, 1, 2, 3 ] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -341,7 +425,11 @@ name: tiles-dark-floor-mini sprite: /Textures/Tiles/dark_mini.png variants: 4 - placementVariants: [ 0, 1, 2, 3 ] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -355,7 +443,11 @@ name: tiles-dark-floor-pavement sprite: /Textures/Tiles/dark_pavement.png variants: 4 - placementVariants: [ 0, 1, 2, 3 ] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -369,7 +461,11 @@ name: tiles-dark-floor-diagonal sprite: /Textures/Tiles/dark_diagonal.png variants: 4 - placementVariants: [ 0, 1, 2, 3 ] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -382,8 +478,6 @@ id: FloorDarkOffset name: tiles-dark-floor-offset sprite: /Textures/Tiles/dark_offset.png - variants: 1 - placementVariants: [0] baseTurf: Plating isSubfloor: false canCrowbar: true @@ -397,7 +491,11 @@ name: tiles-dark-floor-mono sprite: /Textures/Tiles/dark_mono.png variants: 4 - placementVariants: [0,1,2,3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -411,7 +509,11 @@ name: tiles-dark-floor-pavement-vertical sprite: /Textures/Tiles/dark_pavement_vertical.png variants: 4 - placementVariants: [0,1,2,3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -425,7 +527,11 @@ name: tiles-dark-floor-herringbone sprite: /Textures/Tiles/dark_herringbone.png variants: 4 - placementVariants: [0,1,2,3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -439,7 +545,11 @@ name: tiles-dark-floor-diagonal-mini sprite: /Textures/Tiles/dark_diagonal_mini.png variants: 4 - placementVariants: [0,1,2,3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -453,7 +563,11 @@ name: tiles-plastic-dark-floor sprite: /Textures/Tiles/dark_plastic.png variants: 4 - placementVariants: [ 0, 1, 2, 3 ] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -612,7 +726,11 @@ name: tiles-bar-floor sprite: /Textures/Tiles/bar.png variants: 4 - placementVariants: [ 0, 1, 2, 3 ] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -765,7 +883,11 @@ name: tiles-boxing-ring-floor sprite: /Textures/Tiles/boxing.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -780,7 +902,11 @@ name: tiles-gym-floor sprite: /Textures/Tiles/gym.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -882,7 +1008,11 @@ name: tiles-glass-floor sprite: /Textures/Tiles/glass.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -896,7 +1026,11 @@ name: tiles-reinforced-glass-floor sprite: /Textures/Tiles/rglass.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -962,7 +1096,11 @@ name: tiles-dark-grass-floor sprite: /Textures/Tiles/grassdark.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: FloorDirt isSubfloor: true canCrowbar: false @@ -976,7 +1114,11 @@ name: tiles-light-grass-floor sprite: /Textures/Tiles/grasslight.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: FloorDirt isSubfloor: true canCrowbar: false @@ -990,7 +1132,11 @@ name: tiles-dirt-floor sprite: /Textures/Tiles/dirt.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: true canCrowbar: false @@ -1074,7 +1220,10 @@ name: tiles-asteroid-coarse-sand sprite: /Textures/Tiles/Asteroid/asteroid_coarse_sand.png variants: 3 - placementVariants: [ 0, 1, 2 ] + placementVariants: + - 1.0 + - 1.0 + - 1.0 baseTurf: Space isSubfloor: true canCrowbar: false @@ -1161,7 +1310,14 @@ name: tiles-cave sprite: /Textures/Tiles/cave.png variants: 7 - placementVariants: [0, 1, 2, 3, 4, 5, 6] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Space isSubfloor: true canCrowbar: false @@ -1174,7 +1330,15 @@ name: tiles-cave-drought sprite: /Textures/Tiles/cavedrought.png variants: 8 - placementVariants: [0, 1, 2, 3, 4, 5, 6, 7] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Space isSubfloor: true canCrowbar: false @@ -1187,7 +1351,11 @@ name: tiles-flesh-floor sprite: /Textures/Tiles/meat.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -1214,7 +1382,11 @@ name: tiles-techmaint3-floor sprite: /Textures/Tiles/grating_maint.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -1228,7 +1400,11 @@ name: tiles-wood2 sprite: /Textures/Tiles/wood_tile.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -1244,7 +1420,14 @@ name: tiles-wood3 sprite: /Textures/Tiles/wood_broken.png variants: 7 - placementVariants: [0, 1, 2, 3, 4, 5, 6] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 baseTurf: Plating isSubfloor: false canCrowbar: true @@ -1292,4 +1475,4 @@ canAxe: false footstepSounds: collection: FootstepHull - itemDrop: FloorTileItemReinforced #same case as FloorHull \ No newline at end of file + itemDrop: FloorTileItemReinforced #same case as FloorHull diff --git a/Resources/Prototypes/Tiles/planet.yml b/Resources/Prototypes/Tiles/planet.yml index e82ffa57bd..e0738a779a 100644 --- a/Resources/Prototypes/Tiles/planet.yml +++ b/Resources/Prototypes/Tiles/planet.yml @@ -16,7 +16,13 @@ name: tiles-desert-floor sprite: /Textures/Tiles/Planet/Desert/desert.png variants: 6 - placementVariants: [0, 1, 2, 3, 4, 5] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 isSubfloor: true canCrowbar: false footstepSounds: @@ -30,7 +36,13 @@ name: tiles-low-desert-floor sprite: /Textures/Tiles/Planet/Desert/low_desert.png variants: 6 - placementVariants: [0, 1, 2, 3, 4, 5] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 isSubfloor: true canCrowbar: false footstepSounds: @@ -45,7 +57,11 @@ name: tiles-grass-planet-floor sprite: /Textures/Tiles/Planet/Grass/grass.png variants: 4 - placementVariants: [0, 1, 2, 3] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 edgeSprites: SouthEast: /Textures/Tiles/Planet/Grass/single_edge.png NorthEast: /Textures/Tiles/Planet/Grass/single_edge.png @@ -84,7 +100,20 @@ name: tiles-snow-floor sprite: /Textures/Tiles/Planet/Snow/snow.png variants: 13 - placementVariants: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 #cornerSprites: # - /Textures/Tiles/Planet/Snow/single_edge.png #cardinalSprites: