From 07637bd6919ef2d8394e842b21b87e871693abc0 Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Tue, 24 Sep 2024 13:46:26 +0300 Subject: [PATCH] Prototypes cleaning: destructable, flammable (#453) * damage rethinking, bush fix * flammable rethink * trying to fix fire * airtight false default * autoignite * Update fire.yml * Update fire.yml * Update fire.yml --- .../_CP14/Farming/CP14FarmingSystem.cs | 3 +- .../Temperature/CP14AutoIgniteComponent.cs | 14 ++ .../Temperature/CP14FireSpreadComponent.cs | 8 +- .../_CP14/Temperature/CP14FireSpreadSystem.cs | 36 ++++- .../SharedEntityStorageComponent.cs | 2 +- Resources/Maps/_CP14/dev_map.yml | 11 +- .../Prototypes/_CP14/Damage/modifier_sets.yml | 14 ++ Resources/Prototypes/_CP14/Damage/types.yml | 0 .../Entities/Objects/Materials/simple.yml | 31 +++- .../Structures/Decorations/statues.yml | 8 +- .../Structures/Decorations/wallmount.yml | 142 ------------------ .../_CP14/Entities/Structures/Doors/base.yml | 32 ++++ .../Structures/Doors/wooden_doors.yml | 137 +++++++---------- .../Structures/Flora/Gatherable/base.yml | 19 ++- .../Structures/Flora/grasshighbush.yml | 15 +- .../_CP14/Entities/Structures/Flora/trees.yml | 25 ++- .../Entities/Structures/Furniture/barrel.yml | 18 ++- .../Entities/Structures/Furniture/beds.yml | 4 +- .../Entities/Structures/Furniture/bonfire.yml | 2 - .../Entities/Structures/Furniture/chairs.yml | 4 +- .../Structures/Furniture/curtains.yml | 1 + .../Structures/Furniture/cutting_board.yml | 12 -- .../Structures/Furniture/dressers.yml | 14 +- .../{Decorations => Furniture}/mannequin.yml | 11 +- .../Entities/Structures/Furniture/tables.yml | 2 +- .../Structures/Furniture/wallmount.yml | 2 +- .../Structures/Furniture/workbenchs.yml | 8 +- .../Entities/Structures/GirderFrame/frame.yml | 33 +++- .../Structures/Storage/Crates/chests.yml | 8 +- .../Structures/Storage/Crates/coffin.yml | 7 +- .../Structures/Storage/Crates/crates.yml | 46 +++++- .../_CP14/Entities/Structures/Walls/walls.yml | 8 +- .../Structures/Walls/wooden_fence.yml | 2 +- .../Entities/Structures/Windows/windows.yml | 7 +- Resources/Prototypes/_CP14/Entities/base.yml | 25 ++- Resources/Prototypes/_CP14/Entities/fire.yml | 26 +++- .../_CP14/Recipes/Construction/furniture.yml | 2 +- .../Prototypes/_CP14/Tiles/woodplanks.yml | 8 +- .../mannequin.rsi/mannequin.png | Bin .../mannequin.rsi/meta.json | 0 .../Dressers/wood_dresser.rsi/icon-open.png | Bin 2797 -> 2923 bytes .../Dressers/wood_dresser.rsi/icon.png | Bin 2662 -> 2780 bytes Resources/migration.yml | 35 +++-- 43 files changed, 446 insertions(+), 336 deletions(-) create mode 100644 Content.Server/_CP14/Temperature/CP14AutoIgniteComponent.cs create mode 100644 Resources/Prototypes/_CP14/Damage/modifier_sets.yml delete mode 100644 Resources/Prototypes/_CP14/Damage/types.yml delete mode 100644 Resources/Prototypes/_CP14/Entities/Structures/Decorations/wallmount.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Structures/Doors/base.yml delete mode 100644 Resources/Prototypes/_CP14/Entities/Structures/Furniture/cutting_board.yml rename Resources/Prototypes/_CP14/Entities/Structures/{Decorations => Furniture}/mannequin.yml (93%) rename Resources/Textures/_CP14/Structures/{Decoration => Furniture}/mannequin.rsi/mannequin.png (100%) rename Resources/Textures/_CP14/Structures/{Decoration => Furniture}/mannequin.rsi/meta.json (100%) diff --git a/Content.Server/_CP14/Farming/CP14FarmingSystem.cs b/Content.Server/_CP14/Farming/CP14FarmingSystem.cs index 3557280215..47653c6828 100644 --- a/Content.Server/_CP14/Farming/CP14FarmingSystem.cs +++ b/Content.Server/_CP14/Farming/CP14FarmingSystem.cs @@ -101,7 +101,8 @@ public sealed partial class CP14FarmingSystem : CP14SharedFarmingSystem if (!TryComp(entt, out var soil)) continue; - _transform.SetParent(autoRoot, entt); + //Generally, this SHOULD change the parent, but it made the entity unanchored, which caused a bugs: hammer hits could push plants around + //_transform.SetParent(autoRoot, entt); soil.PlantUid = autoRoot; if (TryComp(autoRoot, out var plantComp)) diff --git a/Content.Server/_CP14/Temperature/CP14AutoIgniteComponent.cs b/Content.Server/_CP14/Temperature/CP14AutoIgniteComponent.cs new file mode 100644 index 0000000000..c6f7c994d1 --- /dev/null +++ b/Content.Server/_CP14/Temperature/CP14AutoIgniteComponent.cs @@ -0,0 +1,14 @@ +namespace Content.Server._CP14.Temperature; + +[RegisterComponent, AutoGenerateComponentPause, Access(typeof(CP14FireSpreadSystem))] +public sealed partial class CP14AutoIgniteComponent : Component +{ + [DataField] + public float StartStack = 1f; + + [DataField] + public TimeSpan IgniteDelay = TimeSpan.FromSeconds(1f); + + [DataField] + public TimeSpan IgniteTime = TimeSpan.Zero; +} diff --git a/Content.Server/_CP14/Temperature/CP14FireSpreadComponent.cs b/Content.Server/_CP14/Temperature/CP14FireSpreadComponent.cs index 31a7301bb2..049d4d5c51 100644 --- a/Content.Server/_CP14/Temperature/CP14FireSpreadComponent.cs +++ b/Content.Server/_CP14/Temperature/CP14FireSpreadComponent.cs @@ -17,25 +17,25 @@ public sealed partial class CP14FireSpreadComponent : Component /// chance of spreading to neighboring properties /// [DataField] - public float Prob = 0.5f; + public float Prob = 0.3f; /// /// chance of tile spreading to neighboring properties /// [DataField] - public float ProbTile = 0.15f; + public float ProbTile = 0.2f; /// /// how often objects will try to set the neighbors on fire. In Seconds /// [DataField] - public float SpreadCooldownMin = 3f; + public float SpreadCooldownMin = 4f; /// /// how often objects will try to set the neighbors on fire. In Seconds /// [DataField] - public float SpreadCooldownMax = 7f; + public float SpreadCooldownMax = 14f; /// /// the time of the next fire spread diff --git a/Content.Server/_CP14/Temperature/CP14FireSpreadSystem.cs b/Content.Server/_CP14/Temperature/CP14FireSpreadSystem.cs index 66238afd71..56d5b164c4 100644 --- a/Content.Server/_CP14/Temperature/CP14FireSpreadSystem.cs +++ b/Content.Server/_CP14/Temperature/CP14FireSpreadSystem.cs @@ -48,9 +48,36 @@ public sealed partial class CP14FireSpreadSystem : EntitySystem { base.Update(frameTime); + UpdateFireSpread(); + UpdateAutoIgnite(); + } + + private void UpdateAutoIgnite() + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var autoIgnite, out var flammable)) + { + if (!autoIgnite.Initialized || !flammable.Initialized) + continue; + + if (autoIgnite.IgniteTime == TimeSpan.Zero) + autoIgnite.IgniteTime = _gameTiming.CurTime + autoIgnite.IgniteDelay; + + if (_gameTiming.CurTime < autoIgnite.IgniteTime) + continue; + //Это такой пиздец, что-то сломалось у оффов, что поджигание сущности в момент инициализации (например MapInitEvent) нахрен все крашит. + //Поэтому я добавил 1-секундную задержку перед поджиганием. + + _flammable.AdjustFireStacks(uid, autoIgnite.StartStack, flammable, true); + RemCompDeferred(uid); + } + } + + private void UpdateFireSpread() + { List> spreadUids = new(); - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var spread, out var flammable)) + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var spread, out var flammable, out var xform)) { if (!flammable.OnFire) continue; @@ -58,6 +85,9 @@ public sealed partial class CP14FireSpreadSystem : EntitySystem if (spread.NextSpreadTime >= _gameTiming.CurTime) continue; + if (xform.ParentUid != xform.GridUid) //we can't set a fire if we're inside a chest, for example. + continue; + var cooldown = _random.NextFloat(spread.SpreadCooldownMin, spread.SpreadCooldownMax); spread.NextSpreadTime = _gameTiming.CurTime + TimeSpan.FromSeconds(cooldown); @@ -73,7 +103,7 @@ public sealed partial class CP14FireSpreadSystem : EntitySystem private void IgniteEntities(EntityUid uid, CP14FireSpreadComponent spread) { - var targets = _lookup.GetEntitiesInRange(_transform.GetMapCoordinates(uid), spread.Radius); + var targets = _lookup.GetEntitiesInRange(_transform.GetMapCoordinates(uid), spread.Radius, LookupFlags.Uncontained); foreach (var target in targets) { if (!_random.Prob(spread.Prob)) diff --git a/Content.Shared/Storage/Components/SharedEntityStorageComponent.cs b/Content.Shared/Storage/Components/SharedEntityStorageComponent.cs index b02c97db71..e47639d758 100644 --- a/Content.Shared/Storage/Components/SharedEntityStorageComponent.cs +++ b/Content.Shared/Storage/Components/SharedEntityStorageComponent.cs @@ -92,7 +92,7 @@ public abstract partial class SharedEntityStorageComponent : Component /// Whether or not the container is sealed and traps air inside of it /// [DataField, ViewVariables(VVAccess.ReadWrite)] - public bool Airtight = true; + public bool Airtight = false; //CP14 false default: no atmos on MapGrid /// /// Whether or not the entitystorage is open or closed diff --git a/Resources/Maps/_CP14/dev_map.yml b/Resources/Maps/_CP14/dev_map.yml index fdd0dc7b81..c17ac562ac 100644 --- a/Resources/Maps/_CP14/dev_map.yml +++ b/Resources/Maps/_CP14/dev_map.yml @@ -68435,13 +68435,6 @@ entities: - type: Transform pos: -4.626365,-4.538626 parent: 1 -- proto: CP14KeyTavern - entities: - - uid: 9777 - components: - - type: Transform - pos: -8.818211,-4.301879 - parent: 1 - proto: CP14LargeWoodenCrateFilled entities: - uid: 9831 @@ -70097,7 +70090,7 @@ entities: - type: Transform pos: -0.5,-3.5 parent: 1 -- proto: CP14WoodDoorOpened +- proto: CP14WoodenDoorOpened entities: - uid: 4 components: @@ -70110,7 +70103,7 @@ entities: rot: 3.141592653589793 rad pos: -0.5,2.5 parent: 1 -- proto: CP14WoodDoorTavern +- proto: CP14WoodenDoorOpened entities: - uid: 853 components: diff --git a/Resources/Prototypes/_CP14/Damage/modifier_sets.yml b/Resources/Prototypes/_CP14/Damage/modifier_sets.yml new file mode 100644 index 0000000000..7c4d152ec4 --- /dev/null +++ b/Resources/Prototypes/_CP14/Damage/modifier_sets.yml @@ -0,0 +1,14 @@ + +- type: damageModifierSet + id: CP14WoodStructural + coefficients: + Blunt: 0.4 + Slash: 1.0 + Piercing: 0.8 + Heat: 1.3 + Structural: 0.25 + flatReductions: + Blunt: 10 + Slash: 10 + Piercing: 10 + Structural: 10 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Damage/types.yml b/Resources/Prototypes/_CP14/Damage/types.yml deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Materials/simple.yml b/Resources/Prototypes/_CP14/Entities/Objects/Materials/simple.yml index d26c8fdc72..dd620c17fd 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Materials/simple.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Materials/simple.yml @@ -90,7 +90,6 @@ id: CP14WoodLog parent: - BaseItem - - CP14BaseWooden name: wooden log description: A piece of unprocessed wood. Good material for building, or starting a fire. components: @@ -125,12 +124,26 @@ - type: Log spawnedPrototype: CP14WoodenPlanks1 spawnCount: 3 + - type: Appearance + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 25 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:DoActsBehavior + acts: [ "Destruction" ] - type: entity id: CP14WoodenPlanks1 parent: - BaseItem - - CP14BaseWooden name: wooden planks description: Treated and ready-to-use wood. suffix: 1 @@ -176,6 +189,20 @@ - type: PhysicalComposition # точно ли это нужно? materialComposition: CP14WoodenPlanks: 100 + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 25 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:DoActsBehavior + acts: [ "Destruction" ] - type: entity id: CP14WoodenPlanks10 diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Decorations/statues.yml b/Resources/Prototypes/_CP14/Entities/Structures/Decorations/statues.yml index f6b6c801dc..576c5735d2 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Decorations/statues.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Decorations/statues.yml @@ -11,9 +11,6 @@ state: gob drawdepth: Mobs offset: "0.0,0.5" - - type: Damageable - damageContainer: StructuralInorganic - damageModifierSet: Rock - type: Fixtures fixtures: fix1: @@ -25,11 +22,14 @@ - MachineMask layer: - MachineLayer + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: Rock - type: Destructible thresholds: - trigger: !type:DamageTrigger - damage: 200 + damage: 125 behaviors: - !type:DoActsBehavior acts: ["Destruction"] diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Decorations/wallmount.yml b/Resources/Prototypes/_CP14/Entities/Structures/Decorations/wallmount.yml deleted file mode 100644 index 34494604d4..0000000000 --- a/Resources/Prototypes/_CP14/Entities/Structures/Decorations/wallmount.yml +++ /dev/null @@ -1,142 +0,0 @@ -- type: entity - id: CP14WallmountWoodenBoards - parent: - - BaseStructure - - CP14BaseWooden #TODO: make BaseFlammable - - CP14BaseWallmount - name: wooden boards - description: Nailed to the wall. Why? I'm not quite sure. - placement: - mode: SnapgridCenter - components: - - type: Sprite - sprite: _CP14/Structures/Wallmount/wallmount_decor.rsi - layers: - - state: boards - map: ["random"] - - type: Damageable - damageContainer: Inorganic - damageModifierSet: Wood - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 25 - behaviors: - - !type:PlaySoundBehavior - sound: - collection: WoodDestroy - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: Fixtures - fixtures: - fix1: - shape: - !type:PhysShapeAabb - bounds: "0.49,0.49,-0.49,0.36" - density: 60 - mask: - - MachineMask - layer: - - MidImpassable - - LowImpassable - - type: RandomSprite - available: - - random: - boards: "" - boards2: "" - boards3: "" - boards4: "" - -- type: entity - id: CP14WallmountWeb - parent: - - BaseStructure - - CP14BaseWooden #TODO: make BaseFlammable - - CP14BaseWallmount - name: web - description: Cobwebs clinging to dark corners with tiny spiders in them. - placement: - mode: SnapgridCenter - components: - - type: Sprite - sprite: _CP14/Structures/Wallmount/wallmount_decor.rsi - layers: - - state: web - map: ["random"] - - type: Damageable - damageContainer: Inorganic - damageModifierSet: Wood - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 25 - behaviors: - - !type:PlaySoundBehavior - sound: - collection: WoodDestroy - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: Fixtures - fixtures: - fix1: - shape: - !type:PhysShapeAabb - bounds: "0.49,0.49,-0.49,0.36" - density: 60 - mask: - - MachineMask - layer: - - MidImpassable - - LowImpassable - hard: false - - type: RandomSprite - available: - - random: - web: "" - web2: "" - web3: "" - -- type: entity - id: CP14WallmountVines - parent: - - BaseStructure - - CP14BaseWooden #TODO: make BaseFlammable - - CP14BaseWallmount - name: vines - description: The timid shoots of weeds trying to climb the wall upward toward the light - placement: - mode: SnapgridCenter - components: - - type: Sprite - sprite: _CP14/Structures/Wallmount/wallmount_decor.rsi - layers: - - state: vines - - type: Damageable - damageContainer: Inorganic - damageModifierSet: Wood - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 25 - behaviors: - - !type:PlaySoundBehavior - sound: - collection: WoodDestroy - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: Fixtures - fixtures: - fix1: - shape: - !type:PhysShapeAabb - bounds: "0.49,0.49,-0.49,0.36" - density: 60 - mask: - - MachineMask - layer: - - MidImpassable - - LowImpassable - hard: false \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Doors/base.yml b/Resources/Prototypes/_CP14/Entities/Structures/Doors/base.yml new file mode 100644 index 0000000000..c2465d2d8d --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/Doors/base.yml @@ -0,0 +1,32 @@ +- type: entity + parent: BaseMaterialDoorNavMap + id: CP14BaseDoor + abstract: true + components: + - type: Sprite + drawdepth: Mobs + - type: Door + bumpOpen: false + clickOpen: true + closeTimeOne: 0 + closeTimeTwo: 0 + openTimeOne: 0 + openTimeTwo: 0 + closedDrawDepth: Mobs + openDrawDepth: Mobs + - type: Lock + locked: true + lockSlotId: lock_slot + - type: ItemSlots + slots: + lock_slot: + name: cp-lock-slot-component-slot-name-default + disableEject: true + insertOnInteract: false + ejectOnBreak: true + whitelist: + components: + - CPLock + - type: ContainerContainer + containers: + lock_slot: !type:ContainerSlot \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Doors/wooden_doors.yml b/Resources/Prototypes/_CP14/Entities/Structures/Doors/wooden_doors.yml index 13f95211bb..e45776afc7 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Doors/wooden_doors.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Doors/wooden_doors.yml @@ -1,70 +1,41 @@ - type: entity - parent: BaseMaterialDoorNavMap - id: CP14BaseWoodDoor + parent: + - CP14BaseDoor + - CP14BaseFlammableSpreading + id: CP14WoodenDoor name: wooden door description: Not the most solid construction, but it's better than nothing. suffix: Without lock components: - type: Sprite - drawdepth: Mobs sprite: _CP14/Structures/Doors/wooden_door.rsi layers: - state: closed map: ["enum.DoorVisualLayers.Base"] - type: Door - bumpOpen: false - clickOpen: true - closeTimeOne: 0 - closeTimeTwo: 0 - openTimeOne: 0 - openTimeTwo: 0 - closedDrawDepth: Mobs - openDrawDepth: Mobs openSound: path: /Audio/Effects/door_open.ogg closeSound: path: /Audio/Effects/door_close.ogg - type: Damageable damageContainer: Inorganic - damageModifierSet: Wood + damageModifierSet: CP14WoodStructural - type: Destructible thresholds: - trigger: !type:DamageTrigger - damage: 100 + damage: 250 behaviors: - !type:DoActsBehavior acts: ["Destruction"] - - type: Lock - locked: true - lockSlotId: lock_slot - - type: ItemSlots - slots: - lock_slot: - name: cp-lock-slot-component-slot-name-default - disableEject: true - insertOnInteract: false - ejectOnBreak: true - whitelist: - components: - - CPLock - - type: ContainerContainer - containers: - lock_slot: !type:ContainerSlot - -- type: entity - parent: CP14BaseWoodDoor - id: CP14WoodDoorOpened - suffix: Opened - components: - type: Lock locked: false # Tavern - type: entity - parent: CP14BaseWoodDoor - id: CP14WoodDoorTavernHall + parent: CP14WoodenDoor + id: CP14WoodenDoorTavernHall suffix: Tavern Hall components: - type: ItemSlots @@ -80,17 +51,17 @@ - CPLock - type: entity - parent: CP14WoodDoorTavernHall - id: CP14WoodDoorTavernHallOpened - suffix: Tavern Hall, Opened + parent: CP14WoodenDoorTavernHall + id: CP14WoodenDoorTavernHallLocked + suffix: Tavern Hall, Locked components: - type: Lock - locked: false + locked: true - type: entity - parent: CP14BaseWoodDoor - id: CP14WoodDoorTavernStaff + parent: CP14WoodenDoor + id: CP14WoodenDoorTavernStaff suffix: Tavern Staff components: - type: ItemSlots @@ -106,17 +77,17 @@ - CPLock - type: entity - parent: CP14WoodDoorTavernStaff - id: CP14WoodDoorTavernStaffOpened - suffix: Tavern Staff, Opened + parent: CP14WoodenDoorTavernStaff + id: CP14WoodenDoorTavernStaffLocked + suffix: Tavern Staff, Locked components: - type: Lock - locked: false + locked: true - type: entity - parent: CP14BaseWoodDoor - id: CP14WoodDoorTavernDorms1 + parent: CP14WoodenDoor + id: CP14WoodenDoorTavernDorms1 suffix: Tavern Dorms 1 components: - type: ItemSlots @@ -132,17 +103,17 @@ - CPLock - type: entity - parent: CP14WoodDoorTavernDorms1 - id: CP14WoodDoorTavernDorms1Opened - suffix: Tavern Dorms 1, Opened + parent: CP14WoodenDoorTavernDorms1 + id: CP14WoodenDoorTavernDorms1Locked + suffix: Tavern Dorms 1, Locked components: - type: Lock - locked: false + locked: true - type: entity - parent: CP14BaseWoodDoor - id: CP14WoodDoorTavernDorms2 + parent: CP14WoodenDoor + id: CP14WoodenDoorTavernDorms2 suffix: Tavern Dorms 2 components: - type: ItemSlots @@ -158,17 +129,17 @@ - CPLock - type: entity - parent: CP14WoodDoorTavernDorms2 - id: CP14WoodDoorTavernDorms2Opened - suffix: Tavern Dorms 2, Opened + parent: CP14WoodenDoorTavernDorms2 + id: CP14WoodenDoorTavernDorms2Locked + suffix: Tavern Dorms 2, Locked components: - type: Lock - locked: false + locked: true - type: entity - parent: CP14BaseWoodDoor - id: CP14WoodDoorTavernDorms3 + parent: CP14WoodenDoor + id: CP14WoodenDoorTavernDorms3 suffix: Tavern Dorms 3 components: - type: ItemSlots @@ -184,17 +155,17 @@ - CPLock - type: entity - parent: CP14WoodDoorTavernDorms3 - id: CP14WoodDoorTavernDorms3Opened - suffix: Tavern Dorms 3, Opened + parent: CP14WoodenDoorTavernDorms3 + id: CP14WoodenDoorTavernDorms3Locked + suffix: Tavern Dorms 3, Locked components: - type: Lock - locked: false + locked: true - type: entity - parent: CP14BaseWoodDoor - id: CP14WoodDoorTavernDorms4 + parent: CP14WoodenDoor + id: CP14WoodenDoorTavernDorms4 suffix: Tavern Dorms 4 components: - type: ItemSlots @@ -210,17 +181,17 @@ - CPLock - type: entity - parent: CP14WoodDoorTavernDorms4 - id: CP14WoodDoorTavernDorms4Opened - suffix: Tavern Dorms 4, Opened + parent: CP14WoodenDoorTavernDorms4 + id: CP14WoodenDoorTavernDorms4Locked + suffix: Tavern Dorms 4, Locked components: - type: Lock - locked: false + locked: true - type: entity - parent: CP14BaseWoodDoor - id: CP14WoodDoorTavernDorms5 + parent: CP14WoodenDoor + id: CP14WoodenDoorTavernDorms5 suffix: Tavern Dorms 5 components: - type: ItemSlots @@ -236,18 +207,18 @@ - CPLock - type: entity - parent: CP14WoodDoorTavernDorms5 - id: CP14WoodDoorTavernDorms5Opened - suffix: Tavern Dorms 5, Opened + parent: CP14WoodenDoorTavernDorms5 + id: CP14WoodenDoorTavernDorms5Locked + suffix: Tavern Dorms 5, Locked components: - type: Lock - locked: false + locked: true # Alchemy - type: entity - parent: CP14BaseWoodDoor - id: CP14WoodDoorTavernAlchemy + parent: CP14WoodenDoor + id: CP14WoodenDoorTavernAlchemy suffix: Alchemy components: - type: ItemSlots @@ -263,9 +234,9 @@ - CPLock - type: entity - parent: CP14WoodDoorTavernAlchemy - id: CP14WoodDoorTavernAlchemy5Opened - suffix: Alchemy, Opened + parent: CP14WoodenDoorTavernAlchemy + id: CP14WoodenDoorTavernAlchemyLocked + suffix: Alchemy, Locked components: - type: Lock - locked: false \ No newline at end of file + locked: true \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Flora/Gatherable/base.yml b/Resources/Prototypes/_CP14/Entities/Structures/Flora/Gatherable/base.yml index 8b39043273..073aa87d7f 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Flora/Gatherable/base.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Flora/Gatherable/base.yml @@ -34,6 +34,19 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - type: Fixtures + fixtures: + fix1: + hard: false + shape: + !type:PhysShapeAabb + bounds: "-0.45,-0.45,0.45,0.45" + density: 60 + mask: + - HalfWallLayer + layer: + - MidImpassable + - LowImpassable - type: entity id: CP14GatherableWildBase @@ -47,6 +60,8 @@ toolWhitelist: tags: - CP14HerbalGathering + components: + - Sharp - type: entity id: CP14GatherablePlantBase @@ -65,4 +80,6 @@ - type: CP14PlantGatherable toolWhitelist: tags: - - CP14HerbalGathering \ No newline at end of file + - CP14HerbalGathering + components: + - Sharp \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Flora/grasshighbush.yml b/Resources/Prototypes/_CP14/Entities/Structures/Flora/grasshighbush.yml index 752b14f4d3..2c07691e1b 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Flora/grasshighbush.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Flora/grasshighbush.yml @@ -1,6 +1,7 @@ - type: entity id: CP14HighBush name: high bush + parent: CP14BaseFlammableSpreading description: Very tall and dense thickets. Perhaps someone is watching you from them components: - type: CP14WaveShader @@ -33,8 +34,20 @@ !type:PhysShapeAabb bounds: "-0.35,-0.35,0.35,0.35" density: 1000 + mask: + - TableMask layer: - - WallLayer + - TableLayer + fix2: #For melee or laser + hard: true + shape: + !type:PhysShapeAabb + bounds: "-0.35,-0.35,0.35,0.35" + mask: + - FullTileMask + layer: + - Opaque + - type: Damageable damageContainer: Inorganic damageModifierSet: Wood diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Flora/trees.yml b/Resources/Prototypes/_CP14/Entities/Structures/Flora/trees.yml index 80a7b317df..8236bbb546 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Flora/trees.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Flora/trees.yml @@ -1,6 +1,7 @@ - type: entity id: CP14BaseTree abstract: true + parent: CP14BaseFlammableSpreading name: tree description: Decades of life and growth, saturating the surrounding nature with fresh air. components: @@ -37,14 +38,21 @@ - type: Destructible thresholds: - trigger: - !type:DamageTrigger - damage: 400 + !type:DamageTypeTrigger + damageType: Heat + damage: 100 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - trigger: !type:DamageTrigger damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 75 behaviors: - !type:PlaySoundBehavior sound: @@ -85,14 +93,21 @@ - type: Destructible thresholds: - trigger: - !type:DamageTrigger - damage: 600 + !type:DamageTypeTrigger + damageType: Heat + damage: 100 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 400 + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 120 behaviors: - !type:PlaySoundBehavior sound: diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/barrel.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/barrel.yml index d582ee76ca..4ac4aabab9 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/barrel.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/barrel.yml @@ -2,7 +2,7 @@ id: CP14BaseBarrel parent: - BaseStructureDynamic - - CP14BaseWooden + - CP14BaseFlammable name: wooden barrel suffix: Empty description: The simplest design for storing liquids. @@ -51,13 +51,13 @@ solution: barrel - trigger: !type:DamageTrigger - damage: 10 + damage: 20 behaviors: - !type:SpillBehavior solution: barrel - !type:PlaySoundBehavior sound: - collection: MetalBreak + collection: WoodDestroy - !type:DoActsBehavior acts: ["Destruction"] - type: Appearance @@ -140,6 +140,18 @@ - ReagentId: CP14BloodElf Quantity: 300 +- type: entity + id: CP14BarrelBloodGoblin + parent: CP14BaseBarrel + suffix: Goblin Blood + components: + - type: SolutionContainerManager + solutions: + barrel: + reagents: + - ReagentId: CP14BloodGoblin + Quantity: 300 + - type: entity id: CP14BarrelBloodGrassSap parent: CP14BaseBarrel diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/beds.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/beds.yml index 40228f1cdf..8f6ae62e7c 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/beds.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/beds.yml @@ -1,7 +1,9 @@ - type: entity name: wooden bed id: CP14WoodenBed - parent: BaseStructure + parent: + - BaseStructure + - CP14BaseFlammableSpreading description: Wooden bed. Better than nothing. components: - type: HealOnBuckle diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml index 4fcf0f725a..abad860d8f 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/bonfire.yml @@ -38,5 +38,3 @@ whitelist: tags: - CP14FireplaceFuel - - type: CP14FireSpread - radius: 0.25 diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/chairs.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/chairs.yml index d8c53448ea..910eb115fb 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/chairs.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/chairs.yml @@ -4,7 +4,7 @@ id: CP14ChairWooden parent: - UnanchoredChairBase - - CP14BaseWooden + - CP14BaseFlammable components: - type: Damageable damageContainer: Inorganic @@ -38,6 +38,6 @@ collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: - MaterialWoodPlank: + CP14WoodenPlanks1: min: 1 max: 1 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/curtains.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/curtains.yml index fb70a2172c..16d08f8e51 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/curtains.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/curtains.yml @@ -3,6 +3,7 @@ abstract: true parent: - BaseStructure + - CP14BaseFlammableSpreadingStrong name: curtains description: Hides what others shouldn't see. placement: diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/cutting_board.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/cutting_board.yml deleted file mode 100644 index c8e1ad6418..0000000000 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/cutting_board.yml +++ /dev/null @@ -1,12 +0,0 @@ -- type: entity #TODO Добавить использование. Сейчас просто для декора существует. - parent: BaseItem - id: CP14CuttingBoard - name: Cutting board - description: Will help you prepare food. - components: - - type: Sprite - sprite: _CP14/Structures/Furniture/cutting_board.rsi - layers: - - state: board - - type: Item - size: Normal diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/dressers.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/dressers.yml index 5dd2e5ce5e..95d50ce4fe 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/dressers.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/dressers.yml @@ -81,7 +81,6 @@ isCollidableWhenOpen: true enteringOffset: 0, -0.4 enteringRange: 0.06 - airtight: false - type: ContainerContainer containers: entity_storage: !type:Container @@ -89,9 +88,6 @@ - type: PlaceableSurface placeCentered: true isPlaceable: false - - type: Damageable - damageContainer: StructuralInorganic - damageModifierSet: StructuralMetallic - type: Appearance - type: EntityStorageVisuals stateBaseClosed: base @@ -106,13 +102,16 @@ name: wooden dresser parent: - CP14DresserBase - - CP14BaseWooden + - CP14BaseFlammableSpreading id: CP14WoodenDresser description: A regular wooden dresser. components: - type: Sprite sprite: _CP14/Structures/Storage/Dressers/wood_dresser.rsi state: icons + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Wood - type: Destructible thresholds: - trigger: @@ -131,13 +130,16 @@ name: wooden cupboard parent: - CP14ClosetBase - - CP14BaseWooden + - CP14BaseFlammable id: CP14WoodenCupboard description: It's a regular wooden cabinet. components: - type: Sprite sprite: _CP14/Structures/Storage/Dressers/wood_cupboard.rsi state: icons + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Wood - type: Destructible thresholds: - trigger: diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Decorations/mannequin.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/mannequin.yml similarity index 93% rename from Resources/Prototypes/_CP14/Entities/Structures/Decorations/mannequin.yml rename to Resources/Prototypes/_CP14/Entities/Structures/Furniture/mannequin.yml index 62b4ef0d25..e830f1a32c 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Decorations/mannequin.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/mannequin.yml @@ -1,17 +1,19 @@ - type: entity id: CP14Mannequin - parent: Mannequin + parent: + - Mannequin + - CP14BaseFlammable name: mannequin description: A handy stand for clothing or armour. components: - type: Appearance - type: Sprite - sprite: _CP14/Structures/Decoration/mannequin.rsi + sprite: _CP14/Structures/Furniture/mannequin.rsi state: mannequin noRot: true layers: - map: [ "mannequin" ] - sprite: _CP14/Structures/Decoration/mannequin.rsi + sprite: _CP14/Structures/Furniture/mannequin.rsi state: mannequin - map: [ "shirt" ] - map: [ "pants" ] @@ -44,11 +46,12 @@ node: CP14mannequin - type: Damageable damageContainer: Inorganic + damageModifierSet: Wood - type: Destructible thresholds: - trigger: !type:DamageTrigger - damage: 200 + damage: 50 behaviors: - !type:PlaySoundBehavior sound: diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/tables.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/tables.yml index 86823baa30..9f6c1fdd75 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/tables.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/tables.yml @@ -1,7 +1,7 @@ - type: entity parent: - BaseStructure - - CP14BaseWooden + - CP14BaseFlammable id: CP14WoodenTableBase abstract: true components: diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount.yml index 971facc885..54edaa4fc9 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount.yml @@ -138,7 +138,7 @@ name: bar shelf suffix: 1 parent: CP14BaseWallmount - description: buba. ##TODO + description: Wall shelves to store your wine collection components: - type: Appearance - type: Sprite diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/workbenchs.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/workbenchs.yml index 24d02c8de5..e91632f0e8 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/workbenchs.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/workbenchs.yml @@ -20,7 +20,7 @@ - type: entity parent: - CP14BaseWorkbench - - CP14BaseWooden + - CP14BaseFlammable id: CP14Workbench name: workbench description: Table for the production of various basic tools. @@ -81,7 +81,7 @@ id: CP14WorkbenchMeltingMolds parent: - CP14BaseWorkbench - - CP14BaseWooden + - CP14BaseFlammable name: sawing melting molds table description: Specialized table that allows you to cut out molds for metal smelting. components: @@ -110,7 +110,7 @@ id: CP14WorkbenchCooking parent: - CP14WorkbenchMeltingMolds - - CP14BaseWooden + - CP14BaseFlammable name: cooking table description: Lets cook components: @@ -130,7 +130,7 @@ id: CP14WorkbenchSewing parent: - CP14WorkbenchMeltingMolds - - CP14BaseWooden + - CP14BaseFlammable name: sewing table description: Lets cook components: diff --git a/Resources/Prototypes/_CP14/Entities/Structures/GirderFrame/frame.yml b/Resources/Prototypes/_CP14/Entities/Structures/GirderFrame/frame.yml index 5768f0e3d5..be533d3a5f 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/GirderFrame/frame.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/GirderFrame/frame.yml @@ -1,7 +1,9 @@ - type: entity id: CP14FrameWooden name: wooden wall frame - parent: BaseStructureDynamic + parent: + - BaseStructureDynamic + - CP14BaseFlammableSpreading description: Wooden frame for any wooden wall. placement: mode: SnapgridCenter @@ -35,6 +37,35 @@ - type: Construction graph: CP14WallWood node: FrameWooden + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 40 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - trigger: + !type:DamageTrigger + damage: 60 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:SpawnEntitiesBehavior + spawn: + CP14WoodenPlanks1: + min: 1 + max: 1 - type: entity id: CP14BaseCrushed diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Storage/Crates/chests.yml b/Resources/Prototypes/_CP14/Entities/Structures/Storage/Crates/chests.yml index 072cc58887..22b5e6dcf0 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Storage/Crates/chests.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Storage/Crates/chests.yml @@ -1,7 +1,7 @@ - type: entity parent: - BaseStructureDynamic - - CP14BaseWooden + - CP14BaseFlammable id: CP14WoodenChestFrame name: wooden chest frame description: Base for any wooden chest @@ -39,7 +39,7 @@ collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: - MaterialWoodPlank: + CP14WoodenPlanks1: min: 1 max: 2 - type: Construction @@ -49,7 +49,7 @@ - type: entity parent: - CP14ChestGeneric - - CP14BaseWooden + - CP14BaseFlammable id: CP14WoodenChest name: wooden chest description: A simple wooden chest for easy storage of junk. @@ -90,7 +90,7 @@ collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: - MaterialWoodPlank: + CP14WoodenPlanks1: min: 2 max: 3 - type: EntityStorage diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Storage/Crates/coffin.yml b/Resources/Prototypes/_CP14/Entities/Structures/Storage/Crates/coffin.yml index 829d0a61ea..6643695c77 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Storage/Crates/coffin.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Storage/Crates/coffin.yml @@ -1,5 +1,7 @@ - type: entity - parent: CrateGeneric + parent: + - CP14ChestGeneric + - CP14BaseFlammable id: CP14CrateCoffin name: coffin description: A comfortable and nice looking coffin to comfortably await your resurrection. @@ -15,6 +17,9 @@ - type: Icon sprite: _CP14/Structures/Storage/Crates/coffin.rsi state: base + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Wood - type: Destructible thresholds: - trigger: diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Storage/Crates/crates.yml b/Resources/Prototypes/_CP14/Entities/Structures/Storage/Crates/crates.yml index 31b6a3a240..62ff1ede06 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Storage/Crates/crates.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Storage/Crates/crates.yml @@ -112,19 +112,61 @@ id: CP14LargeWoodenCrate name: large wooden crate description: solid wooden crate - parent: CP14BaseCrate + parent: + - CP14BaseCrate + - CP14BaseFlammable components: - type: Sprite sprite: _CP14/Structures/Storage/Crates/large_wooden_crate.rsi + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 75 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank1: + min: 1 + max: 4 + - !type:DoActsBehavior + acts: [ "Destruction" ] - type: entity id: CP14SmallWoodenCrate name: small wooden crate description: solid wooden crate - parent: CP14BaseSmallCrate + parent: + - CP14BaseSmallCrate + - CP14BaseFlammable components: - type: Sprite sprite: _CP14/Structures/Storage/Crates/small_wooden_crate.rsi + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank1: + min: 1 + max: 4 + - !type:DoActsBehavior + acts: [ "Destruction" ] - type: entity abstract: true diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/_CP14/Entities/Structures/Walls/walls.yml index d837cb3341..b4c554ac01 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Walls/walls.yml @@ -144,7 +144,7 @@ name: wooden wall parent: - CP14BaseWall - - CP14BaseWooden + - CP14BaseFlammableSpreading components: - type: Sprite sprite: _CP14/Structures/Walls/wooden_wall.rsi @@ -154,12 +154,12 @@ base: wood - type: Damageable damageContainer: Inorganic - damageModifierSet: Wood + damageModifierSet: CP14WoodStructural - type: Destructible thresholds: - trigger: !type:DamageTrigger - damage: 100 + damage: 300 behaviors: - !type:PlaySoundBehavior sound: @@ -177,7 +177,7 @@ description: A thin, flimsy wall made of paper and cardboard. Popular in warm countries. parent: - CP14WallWooden - - CP14BaseWooden + - CP14BaseFlammableSpreadingStrong components: - type: Sprite sprite: _CP14/Structures/Walls/cardboard_wall.rsi diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Walls/wooden_fence.yml b/Resources/Prototypes/_CP14/Entities/Structures/Walls/wooden_fence.yml index d878415a50..7e372923de 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Walls/wooden_fence.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Walls/wooden_fence.yml @@ -1,7 +1,7 @@ - type: entity parent: - BaseStructure - - CP14BaseWooden + - CP14BaseFlammableSpreading id: CP14BaseFenceWood name: wooden fence description: Wooden piece of fencing. I hope there is babushka's garden behind it. diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Windows/windows.yml b/Resources/Prototypes/_CP14/Entities/Structures/Windows/windows.yml index 1d718daf49..ef1b4cca30 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Windows/windows.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Windows/windows.yml @@ -28,10 +28,15 @@ - type: entity id: CP14WindowWooden - parent: CP14WindowBase + parent: + - CP14WindowBase + - CP14BaseFlammable name: wooden window description: A wooden wall with a glass window in it. components: + - type: Damageable + damageContainer: Inorganic + damageModifierSet: CP14WoodStructural - type: Sprite sprite: _CP14/Structures/Windows/wooden_window.rsi - type: Icon diff --git a/Resources/Prototypes/_CP14/Entities/base.yml b/Resources/Prototypes/_CP14/Entities/base.yml index cc2713932d..035d0b4c89 100644 --- a/Resources/Prototypes/_CP14/Entities/base.yml +++ b/Resources/Prototypes/_CP14/Entities/base.yml @@ -1,13 +1,7 @@ - type: entity - id: CP14BaseWooden + id: CP14BaseFlammable abstract: true components: - - type: Damageable - damageContainer: Inorganic - damageModifierSet: Wood - - type: Tag - tags: - - Wooden - type: CP14FlammableAmbientSound - type: AmbientSound enabled: false @@ -33,4 +27,19 @@ - type: FireVisuals sprite: _CP14/Effects/fire.rsi normalState: small - - type: CP14FireSpread \ No newline at end of file + +- type: entity + id: CP14BaseFlammableSpreading + parent: CP14BaseFlammable + abstract: true + components: + - type: CP14FireSpread + +- type: entity + id: CP14BaseFlammableSpreadingStrong + parent: CP14BaseFlammableSpreading + abstract: true + components: + - type: CP14FireSpread + spreadCooldownMin: 1 + spreadCooldownMax: 3 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/fire.yml b/Resources/Prototypes/_CP14/Entities/fire.yml index c926627dd2..dcf6ba0cca 100644 --- a/Resources/Prototypes/_CP14/Entities/fire.yml +++ b/Resources/Prototypes/_CP14/Entities/fire.yml @@ -8,6 +8,7 @@ components: - type: Sprite drawDepth: Mobs + snapCardinals: true sprite: _CP14/Effects/fire.rsi layers: - state: full @@ -21,15 +22,24 @@ - type: Fixtures fixtures: fix1: + hard: false shape: !type:PhysShapeAabb bounds: "-0.5,-0.5,0.5,0.5" - layer: - - SlipLayer + density: 1000 mask: - ItemMask - density: 1000 - hard: false + layer: + - SlipLayer + fix2: #For melee like water bucket + hard: true + shape: + !type:PhysShapeAabb + bounds: "-0.5,-0.5,0.5,0.5" + mask: + - FullTileMask + layer: + - Opaque - type: StepTrigger requiredTriggeredSpeed: 0 intersectRatio: 0.1 @@ -64,10 +74,10 @@ damage: types: Heat: 0 - - type: CP14FlammableEntityHeater - - type: CP14FlammableSolutionHeater - #- type: CP14Fireplace - # fuel: 15 + - type: CP14Fireplace + fuel: 15 #- type: CP14AutoIgnite + - type: TimedDespawn + lifetime: 60 - type: CP14FireSpread - type: CP14DespawnOnExtinguish \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml b/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml index fefd81b0ea..59cf04c981 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml @@ -118,7 +118,7 @@ targetNode: CP14mannequin category: construction-category-furniture icon: - sprite: _CP14/Structures/Decoration/mannequin.rsi + sprite: _CP14/Structures/Furniture/mannequin.rsi state: mannequin objectType: Structure placementMode: SnapgridCenter diff --git a/Resources/Prototypes/_CP14/Tiles/woodplanks.yml b/Resources/Prototypes/_CP14/Tiles/woodplanks.yml index 40e3536a92..9fc32921fb 100644 --- a/Resources/Prototypes/_CP14/Tiles/woodplanks.yml +++ b/Resources/Prototypes/_CP14/Tiles/woodplanks.yml @@ -1219,7 +1219,7 @@ footstepSounds: collection: FootstepWood heatCapacity: 10000 - weather: false + weather: true - type: tile #Big editorHidden: false @@ -1241,7 +1241,7 @@ footstepSounds: collection: FootstepWood heatCapacity: 10000 - weather: false + weather: true - type: tile #Cruci editorHidden: false @@ -1263,7 +1263,7 @@ footstepSounds: collection: FootstepWood heatCapacity: 10000 - weather: false + weather: true - type: tile #Stairways editorHidden: false @@ -1285,6 +1285,6 @@ footstepSounds: collection: FootstepWood heatCapacity: 10000 - weather: false + weather: true ### /BURNED diff --git a/Resources/Textures/_CP14/Structures/Decoration/mannequin.rsi/mannequin.png b/Resources/Textures/_CP14/Structures/Furniture/mannequin.rsi/mannequin.png similarity index 100% rename from Resources/Textures/_CP14/Structures/Decoration/mannequin.rsi/mannequin.png rename to Resources/Textures/_CP14/Structures/Furniture/mannequin.rsi/mannequin.png diff --git a/Resources/Textures/_CP14/Structures/Decoration/mannequin.rsi/meta.json b/Resources/Textures/_CP14/Structures/Furniture/mannequin.rsi/meta.json similarity index 100% rename from Resources/Textures/_CP14/Structures/Decoration/mannequin.rsi/meta.json rename to Resources/Textures/_CP14/Structures/Furniture/mannequin.rsi/meta.json diff --git a/Resources/Textures/_CP14/Structures/Storage/Dressers/wood_dresser.rsi/icon-open.png b/Resources/Textures/_CP14/Structures/Storage/Dressers/wood_dresser.rsi/icon-open.png index a20b72a680c3048a043c624119d65989458a0626..62b596f71a7365940098e7e11bf5e503ab0594c6 100644 GIT binary patch delta 2865 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 diff --git a/Resources/Textures/_CP14/Structures/Storage/Dressers/wood_dresser.rsi/icon.png b/Resources/Textures/_CP14/Structures/Storage/Dressers/wood_dresser.rsi/icon.png index 5a34209eab8a4c2bfae5eb4447e8daf46a1550c2..45ce2a74b40899b8fe67f3f166797a008bc131aa 100644 GIT binary patch delta 2730 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 delta 2581 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 CrystallPunk migration zone -# 2024-05-04 -CP14FloorWood: null -CP14FloorWoodBig: null -CP14FloorBricks: null -CP14FloorBricksCarvedSmall1: null -CP14FloorBricksCarvedSmall2: null -CP14FloorBricksCarvedSquare: null - # 2024-05-24 CP14CardboardWall: CP14WallCardboard @@ -46,10 +38,35 @@ CP14Nail110: CP14Nail10 CP14AlchemyFurnaceDebug: CP14AlchemyFurnace #2024-09-22 -CP14WoodDoorTavern: CP14WoodDoorTavernHall +CP14WoodDoorTavern: CP14WoodenDoorTavernHallLocked CP14LockTavern: CP14LockTavernHall CP14KeyTavern: CP14KeyTavernHall +#2024-09-23 +CP14WallmountVines: null +CP14WallmountWeb: null +CP14WallmountWoodenBoards: null +CP14BaseWoodDoor: CP14WoodenDoor +CP14WoodDoorOpened: CP14WoodenDoor +CP14WoodDoorTavernHall: CP14WoodenDoorTavernHallLocked +CP14WoodDoorTavernHallOpened: CP14WoodenDoorTavernHall +CP14WoodDoorTavernStaff: CP14WoodenDoorTavernStaffLocked +CP14WoodDoorTavernStaffOpened: CP14WoodenDoorTavernStaff +CP14WoodDoorTavernDorms1: CP14WoodenDoorTavernDorms1Locked +CP14WoodDoorTavernDorms2: CP14WoodenDoorTavernDorms2Locked +CP14WoodDoorTavernDorms3: CP14WoodenDoorTavernDorms3Locked +CP14WoodDoorTavernDorms4: CP14WoodenDoorTavernDorms4Locked +CP14WoodDoorTavernDorms5: CP14WoodenDoorTavernDorms5Locked +CP14WoodDoorTavernDorms1Opened: CP14WoodenDoorTavernDorms1 +CP14WoodDoorTavernDorms2Opened: CP14WoodenDoorTavernDorms2 +CP14WoodDoorTavernDorms3Opened: CP14WoodenDoorTavernDorms3 +CP14WoodDoorTavernDorms4Opened: CP14WoodenDoorTavernDorms4 +CP14WoodDoorTavernDorms5Opened: CP14WoodenDoorTavernDorms5 +CP14WoodDoorTavernAlchemy: CP14WoodenDoorTavernAlchemyLocked +CP14WoodDoorTavernAlchemy5Opened: CP14WoodenDoorTavernAlchemy +CP14WoodenDoorOpened: CP14WoodenDoor +CP14CuttingBoard: null + # <---> CrystallPunk migration zone end