diff --git a/Content.Server/Procedural/DungeonSystem.Rooms.cs b/Content.Server/Procedural/DungeonSystem.Rooms.cs index a990edd715..e218c7312e 100644 --- a/Content.Server/Procedural/DungeonSystem.Rooms.cs +++ b/Content.Server/Procedural/DungeonSystem.Rooms.cs @@ -13,7 +13,6 @@ namespace Content.Server.Procedural; public sealed partial class DungeonSystem { // Temporary caches. - private readonly HashSet _entitySet = new(); private readonly List _availableRooms = new(); /// @@ -99,6 +98,20 @@ public sealed partial class DungeonSystem return roomRotation; } + private static Box2 GetRotatedBox(Vector2 point1, Vector2 point2, double angle) + { + if (angle == 0) + return new Box2(point1, point2); + if (Math.Abs(angle - Math.PI / 2) < 1E-5) + return new Box2(point2.X, point1.Y, point1.X, point2.Y); + if (Math.Abs(angle - Math.PI) < 1E-5) + return new Box2(point2, point1); + if (Math.Abs(angle + Math.PI / 2) < 1E-5) + return new Box2(point1.X, point2.Y, point2.X, point1.Y); + + throw new NotImplementedException(); + } + public void SpawnRoom( EntityUid gridUid, MapGridComponent grid, @@ -113,32 +126,37 @@ public sealed partial class DungeonSystem var templateGrid = Comp(templateMapUid); var roomDimensions = room.Size; + var entitySet = new HashSet(); + var finalRoomRotation = roomTransform.Rotation(); - //CP14 bandage it - int dont work - // go BRRNNTTT on existing stuff - //if (clearExisting) - //{ - // var gridBounds = new Box2(Vector2.Transform(-room.Size/2, roomTransform), Vector2.Transform(room.Size/2, roomTransform)); - // _entitySet.Clear(); - // // Polygon skin moment - // gridBounds = gridBounds.Enlarged(-0.05f); - // _lookup.GetLocalEntitiesIntersecting(gridUid, gridBounds, _entitySet, LookupFlags.Uncontained); -// - // foreach (var templateEnt in _entitySet) - // { - // Del(templateEnt); - // } -// - // if (TryComp(gridUid, out DecalGridComponent? decalGrid)) - // { - // foreach (var decal in _decals.GetDecalsIntersecting(gridUid, gridBounds, decalGrid)) - // { - // _decals.RemoveDecal(gridUid, decal.Index, decalGrid); - // } - // } - //} - //CP14 end + /* + if (clearExisting) + { + var point1 = Vector2.Transform(-room.Size / 2, roomTransform); + var point2 = Vector2.Transform(room.Size / 2, roomTransform); + + var gridBounds = GetRotatedBox(point1, point2, finalRoomRotation); + + entitySet.Clear(); + // Polygon skin moment + gridBounds = gridBounds.Enlarged(-0.05f); + _lookup.GetLocalEntitiesIntersecting(gridUid, gridBounds, entitySet, LookupFlags.Uncontained); + + foreach (var templateEnt in entitySet) + { + Del(templateEnt); + } + + if (TryComp(gridUid, out DecalGridComponent? decalGrid)) + { + foreach (var decal in _decals.GetDecalsIntersecting(gridUid, gridBounds, decalGrid)) + { + _decals.RemoveDecal(gridUid, decal.Index, decalGrid); + } + } + } + */ var roomCenter = (room.Offset + room.Size / 2f) * grid.TileSize; var tileOffset = -roomCenter + grid.TileSizeHalfVector; diff --git a/Content.Server/Procedural/RoomFillSystem.cs b/Content.Server/Procedural/RoomFillSystem.cs index 28ee2c74fb..4e57c3be12 100644 --- a/Content.Server/Procedural/RoomFillSystem.cs +++ b/Content.Server/Procedural/RoomFillSystem.cs @@ -32,7 +32,7 @@ public sealed class RoomFillSystem : EntitySystem _dungeon.SpawnRoom( xform.GridUid.Value, mapGrid, - _maps.LocalToTile(xform.GridUid.Value, mapGrid, xform.Coordinates), + _maps.LocalToTile(xform.GridUid.Value, mapGrid, xform.Coordinates) - new Vector2i(room.Size.X/2,room.Size.Y/2), //CP14 Offset for halfroom room, random, null, diff --git a/Content.Server/_CP14/Demiplane/Jobs/CP14SpawnRandomDemiplaneJob.cs b/Content.Server/_CP14/Demiplane/Jobs/CP14SpawnRandomDemiplaneJob.cs index 46d910bfde..74c9439184 100644 --- a/Content.Server/_CP14/Demiplane/Jobs/CP14SpawnRandomDemiplaneJob.cs +++ b/Content.Server/_CP14/Demiplane/Jobs/CP14SpawnRandomDemiplaneJob.cs @@ -6,7 +6,6 @@ using Content.Shared._CP14.Demiplane.Prototypes; using Content.Shared.Atmos; using Content.Shared.Gravity; using Content.Shared.Procedural; -using Content.Shared.Procedural.DungeonGenerators; using Robust.Shared.CPUJob.JobQueues; using Robust.Shared.Map; using Robust.Shared.Prototypes; @@ -62,14 +61,17 @@ public sealed class CP14SpawnRandomDemiplaneJob : Job _modifiers = modifiers; _seed = seed; - _sawmill = logManager.GetSawmill("cp14_expedition_job"); + _sawmill = logManager.GetSawmill("cp14_demiplane_job"); } protected override async Task Process() { - _sawmill.Debug("cp14_expedition", $"Spawning expedition mission with seed {0}"); + _sawmill.Debug($"Spawning demiplane `{_config.Id}` with seed {_seed}"); var grid = _mapManager.CreateGridEntity(DemiplaneMapUid); + _mapManager.DoMapInitialize(_demiplaneMapId); + _mapManager.SetMapPaused(_demiplaneMapId, false); + MetaDataComponent? metadata = null; DungeonConfigPrototype dungeonConfig = new(); @@ -87,7 +89,6 @@ public sealed class CP14SpawnRandomDemiplaneJob : Job //Add map components _entManager.AddComponents(DemiplaneMapUid, expeditionConfig.Components); - //Apply modifiers foreach (var modifier in _modifiers) { @@ -96,6 +97,8 @@ public sealed class CP14SpawnRandomDemiplaneJob : Job dungeonConfig.Layers.AddRange(indexedModifier.Layers); _entManager.AddComponents(DemiplaneMapUid, indexedModifier.Components); + + _sawmill.Debug($"Added modifier: {_seed} - {modifier.Id}"); } //Enter and exits @@ -104,13 +107,6 @@ public sealed class CP14SpawnRandomDemiplaneJob : Job dungeonConfig.Layers.AddRange(indexedConnections.Layers); } - //Spawn modified config - _dungeon.GenerateDungeon(dungeonConfig, - grid, - grid, - Vector2i.Zero, - _seed); - //Setup gravity var gravity = _entManager.EnsureComponent(DemiplaneMapUid); gravity.Enabled = true; @@ -123,8 +119,12 @@ public sealed class CP14SpawnRandomDemiplaneJob : Job var mixture = new GasMixture(moles, Atmospherics.T20C); _entManager.System().SetMapAtmosphere(DemiplaneMapUid, false, mixture); - _mapManager.DoMapInitialize(_demiplaneMapId); - _mapManager.SetMapPaused(_demiplaneMapId, false); + //Spawn modified config + _dungeon.GenerateDungeon(dungeonConfig, + grid, + grid, + Vector2i.Zero, + _seed); //TODO: Transform to Async return true; } diff --git a/Content.Shared/Localizations/ContentLocalizationManager.cs b/Content.Shared/Localizations/ContentLocalizationManager.cs index 24d692499e..12380d53f8 100644 --- a/Content.Shared/Localizations/ContentLocalizationManager.cs +++ b/Content.Shared/Localizations/ContentLocalizationManager.cs @@ -10,7 +10,7 @@ namespace Content.Shared.Localizations [Dependency] private readonly ILocalizationManager _loc = default!; // If you want to change your codebase's language, do it here. - public const string Culture = "en-US"; // CrystallPunk-Localization. "ru-RU" or "en-US" + public const string Culture = "ru-RU"; // CrystallPunk-Localization. "ru-RU" or "en-US" /// /// Custom format strings used for parsing and displaying minutes:seconds timespans. @@ -28,9 +28,9 @@ namespace Content.Shared.Localizations var culture = new CultureInfo(Culture); _loc.LoadCulture(culture); // Uncomment for Ru localization - //var fallbackCulture = new CultureInfo("en-US"); - //_loc.LoadCulture(fallbackCulture); - //_loc.SetFallbackCluture(fallbackCulture); + var fallbackCulture = new CultureInfo("en-US"); + _loc.LoadCulture(fallbackCulture); + _loc.SetFallbackCluture(fallbackCulture); // _loc.AddFunction(culture, "PRESSURE", FormatPressure); diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/cure_wounds.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/cure_wounds.yml index 34503016d9..265e1d2dae 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/cure_wounds.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/cure_wounds.yml @@ -4,7 +4,7 @@ description: You touch the creature, healing its body from physical damage components: - type: CP14MagicEffect - manaCost: 15 + manaCost: 20 telegraphyEffects: - !type:CP14SpellSpawnEntityOnTarget spawns: @@ -21,8 +21,16 @@ Slash: -10 Blunt: -10 Piercing: -10 + Poison: -10 + Caustic: -10 + Cold: -10 Heat: -10 + Shock: -10 + Asphyxiation: -50 + Bloodloss: -10 - !type:Jitter + - !type:ModifyBleedAmount + - !type:ModifyBloodLevel - type: CP14MagicEffectVerbalAspect startSpeech: "Et curabuntur..." endSpeech: "vulnera tua" diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml index 597f948d32..23f2f5bc3e 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml @@ -22,7 +22,6 @@ - !type:GroupSelector weight: 75 children: - - id: CP14Wallet - !type:GroupSelector children: - id: CP14SilverCoin1 @@ -33,7 +32,6 @@ weight: 0.5 - id: CP14CopperCoin1 weight: 1 - - id: CP14Wheat - !type:GroupSelector children: - id: CP14DyeRed @@ -42,23 +40,6 @@ - id: CP14DyeGreen - id: CP14DyePurple - id: CP14DyeBlack - - !type:GroupSelector - children: - - id: CP14SeedWheat - - id: CP14SeedPumpkin - - id: CP14SeedCabbage - - id: CP14SeedCucumber - - id: CP14SeedTomato - - !type:GroupSelector - children: - - id: CP14BloodFlower - - id: CP14AgaricMushroom - - id: CP14WildSage - - id: CP14QuartzShard - - id: CP14BlueAmanita - - id: CP14Dayflin - - id: CP14CopperBar1 - - id: CP14IronBar1 - id: CP14EnergyCrystalSmall - id: CP14Bucket - id: CP14OldLantern @@ -84,9 +65,45 @@ - id: CP14ChromiumSlime - id: CP14LumiMushroom - id: CP14SilverCoin5 - - id: CP14GoldBar1 - id: CP14EnergyCrystalMedium - id: CP14DemiplanKey + # remove this when players can create their own magic items + - !type:GroupSelector + children: + - id: CP14ClothingRingIceDagger + - id: CP14ClothingRingIceShards + - id: CP14ClothingRingFlameCreation + - id: CP14ClothingRingFireball + - id: CP14ClothingRingCureWounds + - id: CP14ClothingRingShadowStep + - id: CP14ClothingRingShadowGrab + - id: CP14ClothingRingEarthWall + - id: CP14ClothingRingIceFloor + - id: CP14ClothingRingSphereOfLight + - id: CP14ClothingRingFlashLight + - !type:GroupSelector + children: + - id: CP14ClothingCloakArmoredRed + - id: CP14ClothingCloakBlacksmithArpon + - id: CP14ClothingCloakMaidArpon + - id: CP14ClothingCloakBrassArmor + - id: CP14ClothingCloakCuirass + - id: CP14ClothingCloakInfantryCuirass + - id: CP14ClothingCloakCuirassLoincloth + - id: CP14ClothingCloakCuirassLeg + - id: CP14ClothingHeadCapellina + - !type:GroupSelector + children: + - id: CP14ClothingCloakFurcapeBlack + - id: CP14ClothingCloakFurcapeBlue + - id: CP14ClothingCloakSimpleWhite + - id: CP14ClothingCloakSimpleDarkBlue + - id: CP14ClothingCloakRitualAttireLeather + - id: CP14ClothingHeadBeretMercenary + - id: CP14ClothingPantsMercenaryTrousers + - id: CP14ClothingPantsSouthernMagician + - id: CP14ClothingShirtMercenary + - id: CP14ClothingShirtYellowWizard - type: entityTable id: CP14TableBureaucracy diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/generic_configs.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/generic_configs.yml new file mode 100644 index 0000000000..3d3796df0f --- /dev/null +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/generic_configs.yml @@ -0,0 +1,17 @@ +- type: dungeonConfig + id: CP14DemiplanePlatingMaskBorder + layers: + - !type:NoiseDistanceDunGen + size: 140, 140 + distanceConfig: !type:DunGenEuclideanSquaredDistance + blendWeight: 1 + layers: + - tile: Plating + threshold: 0.50 + noise: + frequency: 0.010 + noiseType: OpenSimplex2 + fractalType: FBm + octaves: 5 + lacunarity: 2 + gain: 0.5 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t1_caves.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t1_caves.yml index 1b7daa7868..fb4b6f6bda 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t1_caves.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t1_caves.yml @@ -1,27 +1,29 @@ - type: cp14DemiplaneLocation id: T1Caves - locationConfig: CP14ExpeditionCaves + locationConfig: CP14DemiplaneCaves tags: - - CP14DemiplanOre - - CP14DemiplanUnderground + - CP14DemiplaneCave + - CP14DemiplaneUnderground components: - type: CP14WeatherController entries: - visuals: CP14Mist - type: dungeonConfig - id: CP14ExpeditionCaves + id: CP14DemiplaneCaves layers: # Masks - !type:PrototypeDunGen - proto: CP14ExpeditionCavesFloorMaskBorder + proto: CP14DemiplanePlatingMaskBorder - !type:PrototypeDunGen - proto: CP14ExpeditionCavesFloorMaskStone + proto: CP14DemiplaneCavesFloorMaskStone - !type:PrototypeDunGen - proto: CP14ExpeditionCavesFloorMaskAir + proto: CP14DemiplaneCavesFloorMaskAir # Biomes - - !type:PrototypeDunGen - proto: CP14ExpeditionCavesFillBorder + - !type:BiomeDunGen + biomeTemplate: CP14CavesIndestructibleFill + tileMask: + - Plating - !type:BiomeDunGen biomeTemplate: CP14CavesGeneric tileMask: @@ -32,25 +34,7 @@ - CP14FloorGrass - type: dungeonConfig - id: CP14ExpeditionCavesFloorMaskAir - layers: - - !type:NoiseDistanceDunGen - size: 80, 80 - distanceConfig: !type:DunGenEuclideanSquaredDistance - blendWeight: 0.5 - layers: - - tile: CP14FloorGrass - threshold: 0.50 - noise: - frequency: 0.030 - noiseType: OpenSimplex2 - fractalType: FBm - octaves: 5 - lacunarity: 2 - gain: 0.5 - -- type: dungeonConfig - id: CP14ExpeditionCavesFloorMaskStone + id: CP14DemiplaneCavesFloorMaskStone layers: - !type:NoiseDistanceDunGen size: 120, 120 @@ -68,30 +52,19 @@ gain: 0.5 - type: dungeonConfig - id: CP14ExpeditionCavesFloorMaskBorder + id: CP14DemiplaneCavesFloorMaskAir layers: - !type:NoiseDistanceDunGen - size: 130, 130 + size: 80, 80 distanceConfig: !type:DunGenEuclideanSquaredDistance - blendWeight: 1 + blendWeight: 0.5 layers: - - tile: CP14FloorBase + - tile: CP14FloorGrass threshold: 0.50 noise: - frequency: 0.010 + frequency: 0.030 noiseType: OpenSimplex2 fractalType: FBm octaves: 5 lacunarity: 2 - gain: 0.5 - -- type: dungeonConfig - id: CP14ExpeditionCavesFillBorder - reserveTiles: true - data: - entities: - Fill: CP14WallStoneIndestructable - layers: - - !type:FillGridDunGen - allowedTiles: - - CP14FloorBase \ No newline at end of file + gain: 0.5 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t1_grass_geode.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t1_grass_geode.yml index 1d60442742..a17ea8871c 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t1_grass_geode.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t1_grass_geode.yml @@ -2,9 +2,9 @@ id: T1GrassGeode locationConfig: CP14DemiplaneGrassGeode tags: - - CP14DemiplanOre - - CP14DemiplanGrass - - CP14DemiplanUnderground + - CP14DemiplaneCave + - CP14DemiplaneGrass + - CP14DemiplaneUnderground components: - type: CP14WeatherController entries: @@ -17,7 +17,7 @@ layers: # Masks - !type:PrototypeDunGen - proto: CP14DemiplaneGrassGeodeFloorMaskBorder + proto: CP14DemiplanePlatingMaskBorder - !type:PrototypeDunGen proto: CP14DemiplaneGrassGeodeFloorMaskStone - !type:PrototypeDunGen @@ -25,8 +25,10 @@ - !type:PrototypeDunGen proto: CP14DemiplaneGrassGeodeFloorMaskWater # Biomes - - !type:PrototypeDunGen - proto: CP14ExpeditionCavesFillBorder + - !type:BiomeDunGen + biomeTemplate: CP14CavesIndestructibleFill + tileMask: + - Plating - !type:BiomeDunGen biomeTemplate: CP14GrasslandTestResult tileMask: diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t1_grassland_island.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t1_grassland_island.yml index 408095fd5c..6f82da5045 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t1_grassland_island.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t1_grassland_island.yml @@ -2,9 +2,9 @@ id: T1GrasslandIsland locationConfig: CP14ExpeditionGrasslandIsland tags: - - CP14DemiplanOre - - CP14DemiplanOpenSky - - CP14DemiplanGrass + - CP14DemiplaneCave + - CP14DemiplaneOpenSky + - CP14DemiplaneGrass components: - type: MapLight ambientLightColor: "#BFEEFFFF" diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/test.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/test.yml index 0bf2611246..ad32bd28ef 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/test.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/test.yml @@ -3,7 +3,7 @@ unique: false reward: 0.5 requiredTags: - - CP14DemiplanOre + - CP14DemiplaneCave layers: - !type:OreDunGen entityMask: @@ -18,7 +18,7 @@ unique: false reward: 0.4 requiredTags: - - CP14DemiplanOre + - CP14DemiplaneCave layers: - !type:OreDunGen entityMask: @@ -32,7 +32,7 @@ id: QuartzCrystal reward: 0.1 requiredTags: - - CP14DemiplanOre + - CP14DemiplaneCave layers: - !type:OreDunGen tileMask: @@ -47,8 +47,8 @@ reward: 0.2 generationWeight: 0.1 requiredTags: - - CP14DemiplanOre - - CP14DemiplanUnderground + - CP14DemiplaneCave + - CP14DemiplaneUnderground layers: - !type:OreDunGen tileMask: @@ -63,7 +63,7 @@ reward: 0.2 generationWeight: 0.1 requiredTags: - - CP14DemiplanOre + - CP14DemiplaneCave layers: - !type:OreDunGen tileMask: @@ -79,7 +79,7 @@ reward: 0.2 generationWeight: 0.1 requiredTags: - - CP14DemiplanOre + - CP14DemiplaneCave layers: - !type:OreDunGen tileMask: @@ -97,7 +97,7 @@ reward: 0.2 generationWeight: 0.1 requiredTags: - - CP14DemiplanOre + - CP14DemiplaneCave layers: - !type:OreDunGen tileMask: @@ -115,8 +115,8 @@ reward: 0.2 generationWeight: 0.1 requiredTags: - - CP14DemiplanOre - - CP14DemiplanUnderground + - CP14DemiplaneCave + - CP14DemiplaneUnderground layers: - !type:OreDunGen tileMask: @@ -131,8 +131,8 @@ reward: 0.2 generationWeight: 0.1 requiredTags: - - CP14DemiplanOre - - CP14DemiplanUnderground + - CP14DemiplaneCave + - CP14DemiplaneUnderground layers: - !type:OreDunGen tileMask: @@ -147,8 +147,8 @@ id: Dayflin reward: 0.2 requiredTags: - - CP14DemiplanGrass - - CP14DemiplanOpenSky + - CP14DemiplaneGrass + - CP14DemiplaneOpenSky layers: - !type:OreDunGen tileMask: @@ -164,7 +164,7 @@ id: BlueAmanita reward: 0.2 requiredTags: - - CP14DemiplanGrass + - CP14DemiplaneGrass layers: - !type:OreDunGen tileMask: @@ -180,7 +180,7 @@ id: BloodFlower reward: 0.2 requiredTags: - - CP14DemiplanGrass + - CP14DemiplaneGrass layers: - !type:OreDunGen tileMask: @@ -196,8 +196,8 @@ id: WildSage reward: 0.2 requiredTags: - - CP14DemiplanGrass - - CP14DemiplanOpenSky + - CP14DemiplaneGrass + - CP14DemiplaneOpenSky layers: - !type:OreDunGen tileMask: @@ -213,7 +213,7 @@ id: LumiShroom reward: 0.2 requiredTags: - - CP14DemiplanUnderground + - CP14DemiplaneUnderground layers: - !type:OreDunGen tileMask: @@ -231,7 +231,7 @@ unique: false reward: 0.3 requiredTags: - - CP14DemiplanOre + - CP14DemiplaneCave layers: - !type:OreDunGen entityMask: @@ -268,11 +268,11 @@ id: EnemyXeno difficulty: 0.5 requiredTags: - - CP14DemiplanUnderground + - CP14DemiplaneUnderground layers: - !type:MobsDunGen - minCount: 5 - maxCount: 8 + minCount: 2 + maxCount: 3 groups: - id: CP14MobXenoDrone amount: 1 @@ -294,7 +294,7 @@ id: EnemyDyno difficulty: 0.5 requiredTags: - - CP14DemiplanOpenSky + - CP14DemiplaneOpenSky layers: - !type:MobsDunGen minCount: 3 @@ -308,8 +308,8 @@ difficulty: 0.7 layers: - !type:MobsDunGen - minCount: 3 - maxCount: 6 + minCount: 1 + maxCount: 2 groups: - id: CP14MobPurpleSnake amount: 1 diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml index 93fb543997..6a5f95f81b 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml @@ -1,11 +1,11 @@ - type: Tag - id: CP14DemiplanOre + id: CP14DemiplaneCave - type: Tag - id: CP14DemiplanGrass + id: CP14DemiplaneGrass - type: Tag - id: CP14DemiplanOpenSky + id: CP14DemiplaneOpenSky - type: Tag - id: CP14DemiplanUnderground \ No newline at end of file + id: CP14DemiplaneUnderground \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Procedural/biome_template_caves.yml b/Resources/Prototypes/_CP14/Procedural/biome_template_caves.yml index 70e34add2d..fe7634d729 100644 --- a/Resources/Prototypes/_CP14/Procedural/biome_template_caves.yml +++ b/Resources/Prototypes/_CP14/Procedural/biome_template_caves.yml @@ -5,6 +5,19 @@ threshold: -1.0 tile: CP14FloorBase +- type: biomeTemplate + id: CP14CavesIndestructibleFill + layers: + - !type:BiomeTileLayer + threshold: -1.0 + tile: CP14FloorBase + - !type:BiomeEntityLayer + threshold: -1 + allowedTiles: + - CP14FloorBase + entities: + - CP14WallStoneIndestructable + - type: biomeTemplate id: CP14CavesFloor layers: