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
This commit is contained in:
Ed
2024-09-24 13:46:26 +03:00
committed by GitHub
parent f3e9209af5
commit 07637bd691
43 changed files with 446 additions and 336 deletions

View File

@@ -101,7 +101,8 @@ public sealed partial class CP14FarmingSystem : CP14SharedFarmingSystem
if (!TryComp<CP14SoilComponent>(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<CP14PlantComponent>(autoRoot, out var plantComp))

View File

@@ -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;
}

View File

@@ -17,25 +17,25 @@ public sealed partial class CP14FireSpreadComponent : Component
/// chance of spreading to neighboring properties
/// </summary>
[DataField]
public float Prob = 0.5f;
public float Prob = 0.3f;
/// <summary>
/// chance of tile spreading to neighboring properties
/// </summary>
[DataField]
public float ProbTile = 0.15f;
public float ProbTile = 0.2f;
/// <summary>
/// how often objects will try to set the neighbors on fire. In Seconds
/// </summary>
[DataField]
public float SpreadCooldownMin = 3f;
public float SpreadCooldownMin = 4f;
/// <summary>
/// how often objects will try to set the neighbors on fire. In Seconds
/// </summary>
[DataField]
public float SpreadCooldownMax = 7f;
public float SpreadCooldownMax = 14f;
/// <summary>
/// the time of the next fire spread

View File

@@ -48,9 +48,36 @@ public sealed partial class CP14FireSpreadSystem : EntitySystem
{
base.Update(frameTime);
UpdateFireSpread();
UpdateAutoIgnite();
}
private void UpdateAutoIgnite()
{
var query = EntityQueryEnumerator<CP14AutoIgniteComponent, FlammableComponent>();
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<CP14AutoIgniteComponent>(uid);
}
}
private void UpdateFireSpread()
{
List<Entity<CP14FireSpreadComponent>> spreadUids = new();
var query = EntityQueryEnumerator<CP14FireSpreadComponent, FlammableComponent>();
while (query.MoveNext(out var uid, out var spread, out var flammable))
var query = EntityQueryEnumerator<CP14FireSpreadComponent, FlammableComponent, TransformComponent>();
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<FlammableComponent>(_transform.GetMapCoordinates(uid), spread.Radius);
var targets = _lookup.GetEntitiesInRange<FlammableComponent>(_transform.GetMapCoordinates(uid), spread.Radius, LookupFlags.Uncontained);
foreach (var target in targets)
{
if (!_random.Prob(spread.Prob))

View File

@@ -92,7 +92,7 @@ public abstract partial class SharedEntityStorageComponent : Component
/// Whether or not the container is sealed and traps air inside of it
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public bool Airtight = true;
public bool Airtight = false; //CP14 false default: no atmos on MapGrid
/// <summary>
/// Whether or not the entitystorage is open or closed

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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"]

View File

@@ -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

View File

@@ -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

View File

@@ -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
locked: true

View File

@@ -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
- CP14HerbalGathering
components:
- Sharp

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -38,5 +38,3 @@
whitelist:
tags:
- CP14FireplaceFuel
- type: CP14FireSpread
radius: 0.25

View File

@@ -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

View File

@@ -3,6 +3,7 @@
abstract: true
parent:
- BaseStructure
- CP14BaseFlammableSpreadingStrong
name: curtains
description: Hides what others shouldn't see.
placement:

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -1,7 +1,7 @@
- type: entity
parent:
- BaseStructure
- CP14BaseWooden
- CP14BaseFlammable
id: CP14WoodenTableBase
abstract: true
components:

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -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
- 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1,13 +1,5 @@
# <---> 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