floorlights (#446)

This commit is contained in:
Zekins
2026-06-09 00:15:27 +03:00
committed by GitHub
parent e4bc4b15a4
commit a43f7d95ad
11 changed files with 388 additions and 0 deletions
@@ -0,0 +1,28 @@
ent-LightFloor = напольный светильник
.desc = Всегда работающий светильник.
.suffix = Всегда запитанный
ent-PoweredLightFloorEmpty = напольный светильник
.desc = Осветительный прибор. Потребляет энергию и излучает свет, если оснащён лампой накаливания.
.suffix = Пустой
ent-PoweredLEDLightFloor = { ent-PoweredLightFloorEmpty }
.desc = { ent-PoweredLightFloorEmpty.desc }
.suffix = LED, Светодиод
ent-PoweredWarmLightFloor = { ent-PoweredLightFloorEmpty }
.desc = { ent-PoweredLightFloorEmpty.desc }
.suffix = Тёплый
ent-PoweredLightFloor = { ent-PoweredLightFloorEmpty }
.desc = { ent-PoweredLightFloorEmpty.desc }
ent-LightMarker = сигнальный светильник
.desc = Всегда работающий светильник.
.suffix = Всегда запитанный
ent-PoweredLightMarkerEmpty = сигнальный светильник
.desc = Осветительный прибор. Потребляет энергию и излучает свет, если оснащён лампой накаливания.
.suffix = Пустой
ent-PoweredLEDLightMarker = { ent-PoweredLightMarkerEmpty }
.desc = { ent-PoweredLightMarkerEmpty.desc }
.suffix = LED, Светодиод
ent-PoweredWarmLightMarker = { ent-PoweredLightMarkerEmpty }
.desc = { ent-PoweredLightMarkerEmpty.desc }
.suffix = Тёплый
ent-PoweredLightMarker = { ent-PoweredLightMarkerEmpty }
.desc = { ent-PoweredLightMarkerEmpty.desc }
@@ -0,0 +1,317 @@
#Floor lights
- type: entity
id: LightFloor
name: floor light
description: "An always powered light."
suffix: Always Powered
components:
- type: Transform
anchored: true
- type: Clickable
- type: InteractionOutline
- type: Sprite
sprite: _Wega/Structures/Lighting/light_floor.rsi
snapCardinals: true
drawdepth: Objects
noRot: true
layers:
- map: ["enum.PoweredLightLayers.Base"]
state: base
- map: ["enum.PoweredLightLayers.Glow"]
state: glow
shader: unshaded
- type: Physics
bodyType: Static
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.15
density: 190
mask:
- None
layer:
- TabletopMachineLayer
- type: PointLight
energy: 0.8
radius: 10
softness: 1
color: "#FFE4CE"
- type: Damageable
damageModifierSet: Metallic
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 200
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:EmptyAllContainersBehaviour
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
min: 2
max: 2
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- type: StaticPrice
price: 75
- type: RequireProjectileTarget
placement:
mode: SnapgridCenter
- type: entity
parent: LightFloor
id: PoweredLightFloorEmpty
name: floor light
description: "A small floor light."
suffix: Empty
components:
- type: Sprite
sprite: _Wega/Structures/Lighting/light_floor.rsi
state: empty
- type: PointLight
enabled: false
- type: PoweredLight
bulb: Bulb
- type: ContainerContainer
containers:
light_bulb: !type:ContainerSlot
- type: ApcPowerReceiver
- type: ExtensionCableReceiver
- type: DeviceNetwork
deviceNetId: Wireless
receiveFrequencyId: SmartLight
- type: WirelessNetworkConnection
range: 200
- type: DeviceLinkSink
ports:
- On
- Off
- Toggle
- type: Appearance
- type: PoweredLightVisuals
blinkingSound:
path: "/Audio/Machines/light_tube_on.ogg"
spriteStateMap:
empty: empty
off: base
on: base
broken: broken
burned: burned
- type: DamageOnInteract
damage:
types:
Heat: 2
popupText: powered-light-component-burn-hand
- type: entity
parent: PoweredLightFloorEmpty
id: PoweredLEDLightFloor
suffix: LED
components:
- type: PointLight
enabled: true
color: "#EEEEFF"
- type: PoweredLight
hasLampOnSpawn: LedLightBulb
- type: DamageOnInteract
damage:
types:
Heat: 1
popupText: powered-light-component-burn-hand
- type: entity
parent: PoweredLightFloorEmpty
id: PoweredWarmLightFloor
suffix: Warm
components:
- type: PointLight
enabled: true
color: "#FF8A0C"
- type: PoweredLight
hasLampOnSpawn: WarmLightBulb
- type: entity
parent: PoweredLightFloorEmpty
id: PoweredLightFloor
suffix: ""
components:
- type: PointLight
enabled: true
color: "#FF8A0C"
- type: PoweredLight
hasLampOnSpawn: LightBulb
#Marker lights
- type: entity
id: LightMarker
name: warning light
description: "An always powered light."
suffix: Always Powered
components:
- type: Transform
anchored: true
- type: Clickable
- type: InteractionOutline
- type: Sprite
sprite: _Wega/Structures/Lighting/light_marker.rsi
snapCardinals: true
drawdepth: Objects
noRot: true
layers:
- map: ["enum.PoweredLightLayers.Base"]
state: base
- map: ["enum.PoweredLightLayers.Glow"]
state: glow
shader: unshaded
- type: Physics
bodyType: Static
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.15
density: 190
mask:
- None
layer:
- TabletopMachineLayer
- type: PointLight
energy: 0.8
radius: 10
softness: 1
color: "#FFE4CE"
- type: Damageable
damageModifierSet: Metallic
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 200
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:EmptyAllContainersBehaviour
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
min: 2
max: 2
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- type: StaticPrice
price: 75
- type: RequireProjectileTarget
placement:
mode: SnapgridCenter
- type: entity
parent: LightMarker
id: PoweredLightMarkerEmpty
name: warning light
description: "A small marker light."
suffix: Empty
components:
- type: Sprite
sprite: _Wega/Structures/Lighting/light_marker.rsi
state: base
- type: PointLight
enabled: false
- type: PoweredLight
bulb: Bulb
- type: ContainerContainer
containers:
light_bulb: !type:ContainerSlot
- type: ApcPowerReceiver
- type: ExtensionCableReceiver
- type: DeviceNetwork
deviceNetId: Wireless
receiveFrequencyId: SmartLight
- type: WirelessNetworkConnection
range: 200
- type: DeviceLinkSink
ports:
- On
- Off
- Toggle
- type: Appearance
- type: PoweredLightVisuals
blinkingSound:
path: "/Audio/Machines/light_tube_on.ogg"
spriteStateMap:
empty: base
off: base
on: base
broken: base
burned: base
- type: DamageOnInteract
damage:
types:
Heat: 2
popupText: powered-light-component-burn-hand
- type: entity
parent: PoweredLightMarkerEmpty
id: PoweredLEDLightMarker
suffix: LED
components:
- type: PointLight
enabled: true
color: "#EEEEFF"
- type: PoweredLight
hasLampOnSpawn: LedLightBulb
- type: DamageOnInteract
damage:
types:
Heat: 1
popupText: powered-light-component-burn-hand
- type: entity
parent: PoweredLightMarkerEmpty
id: PoweredWarmLightMarker
suffix: Warm
components:
- type: PointLight
enabled: true
color: "#FF8A0C"
- type: PoweredLight
hasLampOnSpawn: WarmLightBulb
- type: entity
parent: PoweredLightMarkerEmpty
id: PoweredLightMarker
suffix: ""
components:
- type: PointLight
enabled: true
color: "#FF8A0C"
- type: PoweredLight
hasLampOnSpawn: LightBulb
Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 393 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 B

@@ -0,0 +1,26 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Copyright by https://github.com/ParadiseSS13/Paradise",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "base"
},
{
"name": "broken"
},
{
"name": "burned"
},
{
"name": "empty"
},
{
"name": "glow"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

@@ -0,0 +1,17 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Copyright by https://github.com/ParadiseSS13/Paradise",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "base"
},
{
"name": "glow"
}
]
}