diff --git a/Content.Server/Atmos/Components/AirtightComponent.cs b/Content.Server/Atmos/Components/AirtightComponent.cs index 69488a71307..9c9f8fc9274 100644 --- a/Content.Server/Atmos/Components/AirtightComponent.cs +++ b/Content.Server/Atmos/Components/AirtightComponent.cs @@ -58,5 +58,10 @@ public sealed partial class AirtightComponent : Component /// [Access(Other = AccessPermissions.ReadWriteExecute)] public AtmosDirection AirBlockedDirection => (AtmosDirection)CurrentAirBlockedDirection; + + // ADT fan abuse fix start + [DataField] + public bool BlockExplosions { get; set; } = true; + // ADT fan abuse fix start } } diff --git a/Content.Server/Explosion/EntitySystems/ExplosionSystem.Airtight.cs b/Content.Server/Explosion/EntitySystems/ExplosionSystem.Airtight.cs index 6fa553bc8b6..7edf58279b8 100644 --- a/Content.Server/Explosion/EntitySystems/ExplosionSystem.Airtight.cs +++ b/Content.Server/Explosion/EntitySystems/ExplosionSystem.Airtight.cs @@ -75,6 +75,8 @@ public void UpdateAirtightMap(EntityUid gridId, MapGridComponent grid, Vector2i { if (!query.Value.TryGetComponent(uid, out var airtight) || !airtight.AirBlocked) continue; + if (!airtight.BlockExplosions) // ADT fan abuse fix + continue; // ADT fan abuse fix blockedDirections |= airtight.AirBlockedDirection; var entityTolerances = GetExplosionTolerance(uid.Value, damageQuery, destructibleQuery); diff --git a/Resources/Locale/ru-RU/ADT/prototypes/Entities/Structures/piping/atmospherics/special.ftl b/Resources/Locale/ru-RU/ADT/prototypes/Entities/Structures/piping/atmospherics/special.ftl new file mode 100644 index 00000000000..1ba8f6a7e57 --- /dev/null +++ b/Resources/Locale/ru-RU/ADT/prototypes/Entities/Structures/piping/atmospherics/special.ftl @@ -0,0 +1,3 @@ +ent-ADTAtmosDeviceFanRPD = маленький вентилятор + .desc = Маленький вентилятор, создающий лёгкий поток воздуха. + .suffix = РРТ, Не блокирует взрывы diff --git a/Resources/Prototypes/ADT/Entities/Structures/Piping/Atmospherics/fill.txt b/Resources/Prototypes/ADT/Entities/Structures/Piping/Atmospherics/fill.txt deleted file mode 100644 index b4954caf47d..00000000000 --- a/Resources/Prototypes/ADT/Entities/Structures/Piping/Atmospherics/fill.txt +++ /dev/null @@ -1 +0,0 @@ -# Данный файл существует по причине того что Githab плохо дружит с пустыми папками, при работе с этой папкой этот файл можно спокойно удалить \ No newline at end of file diff --git a/Resources/Prototypes/ADT/Entities/Structures/Piping/Atmospherics/special.yml b/Resources/Prototypes/ADT/Entities/Structures/Piping/Atmospherics/special.yml new file mode 100644 index 00000000000..63fba9784e2 --- /dev/null +++ b/Resources/Prototypes/ADT/Entities/Structures/Piping/Atmospherics/special.yml @@ -0,0 +1,33 @@ +- type: entity + id: ADTAtmosDeviceFanRPD + name: tiny fan + description: A tiny fan, releasing a thin gust of air. + placement: + mode: SnapgridCenter + components: + - type: Transform + anchored: true + - type: Physics + bodyType: Static + - type: Sprite + sprite: Structures/Piping/Atmospherics/tinyfan.rsi + state: icon + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.5,-0.5,0.5,0.5" + - type: Airtight + noAirWhenFullyAirBlocked: false + blockExplosions: false + - type: Clickable + - type: Tag + tags: + - SpreaderIgnore + # ADT-RPD-Start + - type: RPDDeconstructable + cost: 4 + delay: 2 + fx: EffectRCDDeconstruct2 + # ADT-RPD-End diff --git a/Resources/Prototypes/ADT/Interface/Radial/RPD.yml b/Resources/Prototypes/ADT/Interface/Radial/RPD.yml index 1dde0b4b1fd..7b7291dd95d 100644 --- a/Resources/Prototypes/ADT/Interface/Radial/RPD.yml +++ b/Resources/Prototypes/ADT/Interface/Radial/RPD.yml @@ -271,7 +271,7 @@ category: Devices sprite: /Textures/ADT/Interface/Radial/RPD/AtmosDeviceFanTiny.png mode: ConstructObject - prototype: AtmosDeviceFanTiny + prototype: ADTAtmosDeviceFanRPD cost: 6 delay: 2 collisionMask: FullTileMask @@ -622,4 +622,4 @@ collisionMask: FullTileMask collisionBounds: "-0.23,-0.49,0.23,-0.36" rotation: User - fx: EffectRCDConstruct2 \ No newline at end of file + fx: EffectRCDConstruct2