From a43f7d95addd6fdd9c66b3ae8c2d8c0a78272bbc Mon Sep 17 00:00:00 2001 From: Zekins <136648667+Zekins3366@users.noreply.github.com> Date: Tue, 9 Jun 2026 00:15:27 +0300 Subject: [PATCH] floorlights (#446) --- .../structures/lighting/ground_lighting.ftl | 28 ++ .../Structures/Lighting/ground_lighting.yml | 317 ++++++++++++++++++ .../Lighting/light_floor.rsi/base.png | Bin 0 -> 330 bytes .../Lighting/light_floor.rsi/broken.png | Bin 0 -> 393 bytes .../Lighting/light_floor.rsi/burned.png | Bin 0 -> 378 bytes .../Lighting/light_floor.rsi/empty.png | Bin 0 -> 361 bytes .../Lighting/light_floor.rsi/glow.png | Bin 0 -> 389 bytes .../Lighting/light_floor.rsi/meta.json | 26 ++ .../Lighting/light_marker.rsi/base.png | Bin 0 -> 495 bytes .../Lighting/light_marker.rsi/glow.png | Bin 0 -> 412 bytes .../Lighting/light_marker.rsi/meta.json | 17 + 11 files changed, 388 insertions(+) create mode 100644 Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/structures/lighting/ground_lighting.ftl create mode 100644 Resources/Prototypes/_Wega/Entities/Structures/Lighting/ground_lighting.yml create mode 100644 Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/base.png create mode 100644 Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/broken.png create mode 100644 Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/burned.png create mode 100644 Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/empty.png create mode 100644 Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/glow.png create mode 100644 Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/meta.json create mode 100644 Resources/Textures/_Wega/Structures/Lighting/light_marker.rsi/base.png create mode 100644 Resources/Textures/_Wega/Structures/Lighting/light_marker.rsi/glow.png create mode 100644 Resources/Textures/_Wega/Structures/Lighting/light_marker.rsi/meta.json diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/structures/lighting/ground_lighting.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/structures/lighting/ground_lighting.ftl new file mode 100644 index 0000000000..a340416d10 --- /dev/null +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/structures/lighting/ground_lighting.ftl @@ -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 } diff --git a/Resources/Prototypes/_Wega/Entities/Structures/Lighting/ground_lighting.yml b/Resources/Prototypes/_Wega/Entities/Structures/Lighting/ground_lighting.yml new file mode 100644 index 0000000000..acfc5f8db4 --- /dev/null +++ b/Resources/Prototypes/_Wega/Entities/Structures/Lighting/ground_lighting.yml @@ -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 diff --git a/Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/base.png b/Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..a2d1c22b0ff98c8a0e6288c7c121842ca9507875 GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5DEP9qa*?CZaYGnknDX3i*W+gTyPee|ab zn8kCtmI(3d8I#Y ziaeN;JUw~y-ls~%i|91s4zi$MF1B0ilpUXO@geCw2*?vX< literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/broken.png b/Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..346cc5d0399180b195b1c23e0cd709b177c553b4 GIT binary patch literal 393 zcmV;40e1e0P)VQ!Pj5=V{0YldT`iA!Zk@*+TA7rG913(rl zs;V)_%4?vA1I7N|zkQ2jhmhm|nB^d_e))U`CgxuZ|NgRp`6gDD3{biMq&R{k2f!>p zbL=>Su&6Mc5Ar!k4CV-+1Bf=0Xa|6N4+{1Zhqo|T*_ksOJ9Lua?d#)Ux#;+ChNTNv zf*lbUnFv-(Y$%YO2w{!@0g&Y&{{4IRNH&LL2Pi5jfh~IemOg9gK0?_QLyD8IdN$%+Bg6dr=YCH#?HjBW7{5hyn}#~vlCbhB=`8? z4F;O!0#IrPrShkb?tm=>VQ!Pj5=V{0YldT`iA!Zk@*+TA7rG913(rl zs;V)_%4?vA1I7N|zkQ2jhmhm|nB^d_bZ!>|4=+E%m(L%;d^;CE2B_SBQXD~&17MaP z+Ovs4P(TpO2GQ?7ya$WH907Cy(Pk3u0FduN!G7ZK76um&ABM9hj>6?&jsZC$I=Kw2 zme^1rI}w6>4YL>oj4iAg?%%sdvN=@Ah9Jwy1tdG**Ux_pii!$gHgYI{#BN@{Lpuk6 z;uMtC*w~pEc5K_jprNYH@bdL5260g_u;m~zklf>kHyCJ^3qbiCl**qzy2J1l7!o}E z;tXGZF~BXCmQw+%Aq9}+0I1Kf7DOPQ)4U*pIRcc=2dpTj)IzE`fLdVG0izBWb-<_t Y0N1U1WMAc0VE_OC07*qoM6N<$f)BozSO5S3 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/empty.png b/Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..93f8b14ead06ebc58bb1a96832611ce51902c029 GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv(mfq_xl z)5S5QV$Rzswp@oC1X|rcK4(Z04Pnx{rQyUSdW8GNjm(#xHeF@6I?XQ}Ghw{wwMAg- z27!JB!~B!SmYf#y75L_;u-Q0e-}aj~SzL8E6&O_-SboGeR4vZl_4sa?EH^7d@7180 zMXg=wccYBYFJElXA;6H&r<*41@0Y#(#JQPD0!|Ejc5b|=Ir*%G;hf}N=Lm*<`(H{k zyxaKp&d<*ux5(WMX72b`a3t&RyQUA44aFwUr82^2Nmr_?uR4$%5gKQ*fZrv9p`h>C zfdqV1;}>&#d!-kv*Y|0Z*nS5$tv*y^cLnm?6R3r-Yh zc-wQA^{n6d$<3eV$GgZd70cZWmD%#}I>SCyh&L*jFYV4d$L?rs2@E?1Pgg&ebxsLQ E0M_@9KmY&$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/glow.png b/Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/glow.png new file mode 100644 index 0000000000000000000000000000000000000000..dd7b50823713b8a51acc8ae6411ae8670d7e1106 GIT binary patch literal 389 zcmV;00eb$4P)Vo^K=Zv_SGq)CWNFo}is&;&&H zk)3gN6UO3-3Pc6|U4i6`0PDKmZ2OWVdD{F(zVs+aV+Qb*#$a!8;SM3oq#QU}*#gTR0h(o* z4&`~yrfIUJI(@+kaLyS3x8CaF_=fMya-IS*gklc5uH$LC7jIb>R#lZc3Hna>cnDP;T?>eFdvcUM-+V29aIJ jr{}a*w4(x1fvCU>QkjU7RjUrS00000NkvXXu0mjf!`Geh literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/meta.json b/Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/meta.json new file mode 100644 index 0000000000..40b8fefc70 --- /dev/null +++ b/Resources/Textures/_Wega/Structures/Lighting/light_floor.rsi/meta.json @@ -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" + } + ] +} diff --git a/Resources/Textures/_Wega/Structures/Lighting/light_marker.rsi/base.png b/Resources/Textures/_Wega/Structures/Lighting/light_marker.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..e8e35d7c806f74811b020f791c1300de56b1cd34 GIT binary patch literal 495 zcmV}Es z5+>`{oWc!v$yjJl$28)!;&LFOg52vcc~N62BiP7ivJ3Z#g4;1f?zNEgca@QRB+ULV zNUbRYY6cr(AC5;}<10hl_-F}gV`_FZXP160!fpKZmY*(g*#G%_>ihk!=Xutz{2URPD6r)knGG&+|2`ZCic2-E>hD>$91&X$%nkdjP`HG*##G*;)?6psv@e>blPQQF*X2{#qsl z6wx)L&g~1Q3fYKx#Td= zRH7MQ*FPvLh(sh~9exH0HM3R#N^M0kDip(&TM?UjH(@kZhc|WkG0kJRFP*RuKTCxq luB2m+;xqK&tT6&ypFaT3ElWWRv0?xK002ovPDHLkV1gdP*De46 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Wega/Structures/Lighting/light_marker.rsi/glow.png b/Resources/Textures/_Wega/Structures/Lighting/light_marker.rsi/glow.png new file mode 100644 index 0000000000000000000000000000000000000000..012385e28677074d40d35f4a0c9e1d30b393d52c GIT binary patch literal 412 zcmV;N0b~A&P)0XYIbPBQ8P1e7y9rfCW_ zO@n!!LDzNIwhe6C{y9@i6-`>#HDru|q9|aRChYru+z-PLiq@idAp&^PkWPyY<7HWn z#pv#l?NJfYRw*bU_V8_$Pcv?UbiR-$Dh`#S1bhRw&NilfOErNRlR2Xr`s;UBd zAaNWgYMLfOA`$JeIgH~N6CshM^9EC4G99kO^Sr34DnJoHf=Eo;wnXQFX5=k-#Bq;+ zg30|wQRKewAC1WeLpGU_ITI=HH&%$iE0J;- z8t?w{1$_hVX9dW->j}s|lj~>jO$wwRzGfP76rUOek^TkP0GDLqG{+AB0000