Green Glowsticks are their own entity (#41712)

* Addresses and resolves Issue #41145, creates a separate entity for green glowsticks, which were previously just the base glowstick.

* Adds old+new ID for green glowsticks to migration.yml, refactors formatting in glowstick.yml
This commit is contained in:
cammusubi 2025-12-07 10:36:20 -06:00 committed by BarryNorfolk
parent c403fcf887
commit 0811cea56e
10 changed files with 258 additions and 243 deletions

View File

@ -285,7 +285,7 @@ entities:
- type: Transform
pos: 5.4233127,3.0429564
parent: 1
- proto: GlowstickBase
- proto: GlowstickGreen
entities:
- uid: 69
components:

View File

@ -693,6 +693,9 @@ ToySkeleton: ToyFigurineSkeleton
# 2025-10-28
DrinkKiraSpecial: DrinkOrangeLimeSodaGlass
# 2025-12-05
GlowstickBase: GlowstickGreen
# 2025-12-06 # DeltaV - We keep Zookeeper/Boxer
#SpawnPointZookeeper: null
#SpawnPointBoxer: null

View File

@ -428,7 +428,7 @@
containers:
entity_storage: !type:AllSelector
children:
- id: GlowstickBase
- id: GlowstickGreen
amount: 2
- id: GlowstickBlue
amount: 2

View File

@ -159,11 +159,11 @@
prob: 0.20
- id: GlowstickBlue
prob: 0.05
- id: GlowstickBase
- id: GlowstickGreen
prob: 0.50
- id: GlowstickBase
- id: GlowstickGreen
prob: 0.20
- id: GlowstickBase
- id: GlowstickGreen
prob: 0.05
- id: GlowstickPurple
prob: 0.50

View File

@ -17,7 +17,7 @@
children:
- id: FlashlightLantern
- id: Flare
- id: GlowstickBase
- id: GlowstickGreen
# Low-chance items
- id: FoodPSB # DeltaV - replaced FoodSnackChocolate
prob: 0.15

View File

@ -167,7 +167,7 @@
children:
- id: SpaceCash100
weight: 2
- id: GlowstickBase
- id: GlowstickGreen
amount: !type:RangeNumberSelector
range: 1, 5
- id: GlowstickRed

View File

@ -281,7 +281,7 @@
- id: trayScanner
- id: HandheldGPSBasic
- id: HandLabeler
- id: GlowstickBase
- id: GlowstickGreen
- id: Bucket
- id: RadioHandheld
- id: AppraisalTool

View File

@ -368,7 +368,7 @@
orGroup: GiftPool
- id: Bola
orGroup: GiftPool
- id: GlowstickBase
- id: GlowstickGreen
orGroup: GiftPool
- id: GlowstickBlue
orGroup: GiftPool

View File

@ -1,113 +1,125 @@
- type: entity
name: green glowstick
abstract: true
parent: BaseItem
id: GlowstickBase
name: glowstick
description: Useful for raves and emergencies.
components:
- type: SpaceGarbage
- type: ExpendableLight
glowDuration: 900 # time in seconds
glowColorLit: "#00FF00"
fadeOutDuration: 300
turnOnBehaviourID: turn_on
fadeOutBehaviourID: fade_out
iconStateLit: glowstick_lit
iconStateSpent: glowstick_unlit
litRadius: 5.0 # DeltaV
litEnergy: 3.0 # DeltaV
litSound:
path: /Audio/Items/Handcuffs/rope_breakout.ogg
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- map: [ enum.ExpendableLightVisualLayers.Base ]
state: glowstick_base
- map: [ enum.ExpendableLightVisualLayers.Glow ]
state: glowstick_glow
visible: false
shader: unshaded
- map: [ enum.ExpendableLightVisualLayers.Overlay ]
state: glowstick_unlit
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
storedRotation: -45
- type: Appearance
- type: PointLight
enabled: false
color: "#00FF00"
radius: 5
energy: 0
netsync: false
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour # slowly fade in once activated
id: turn_on
interpolate: Linear
maxDuration: 10.0
startValue: 0.0
endValue: 3.0
property: Energy
- !type:FadeBehaviour # fade out energy as it burns out
id: fade_out
interpolate: Linear
maxDuration: 10 # 300.0
startValue: 3.0
endValue: 0.2
property: Energy
- !type:FadeBehaviour # fade out radius as it burns out
id: fade_out
interpolate: Linear
maxDuration: 10 # 300.0
startValue: 5.0
endValue: 1.5
- type: Tag
tags:
- Trash
- type: SpaceGarbage
- type: ExpendableLight
glowDuration: 900 # time in seconds
glowColorLit: "#F6F7E9"
fadeOutDuration: 300
turnOnBehaviourID: turn_on
fadeOutBehaviourID: fade_out
iconStateLit: glowstick_lit
iconStateSpent: glowstick_unlit
litRadius: 5.0 # DeltaV
litEnergy: 3.0 # DeltaV
litSound:
path: /Audio/Items/Handcuffs/rope_breakout.ogg
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- map: [ enum.ExpendableLightVisualLayers.Base ]
state: glowstick_base
- map: [ enum.ExpendableLightVisualLayers.Glow ]
state: glowstick_glow
visible: false
shader: unshaded
- map: [ enum.ExpendableLightVisualLayers.Overlay ]
state: glowstick_unlit
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
storedRotation: -45
- type: Appearance
- type: PointLight
enabled: false
color: "#F6F7E9"
radius: 5
energy: 0
netsync: false
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour # slowly fade in once activated
id: turn_on
interpolate: Linear
maxDuration: 10.0
startValue: 0.0
endValue: 3.0
property: Energy
- !type:FadeBehaviour # fade out energy as it burns out
id: fade_out
interpolate: Linear
maxDuration: 10 # 300.0
startValue: 3.0
endValue: 0.2
property: Energy
- !type:FadeBehaviour # fade out radius as it burns out
id: fade_out
interpolate: Linear
maxDuration: 10 # 300.0
startValue: 5.0
endValue: 1.5
- type: Tag
tags:
- Trash
- type: entity
name: red glowstick
parent: GlowstickBase
id: GlowstickRed
name: red glowstick
components:
- type: ExpendableLight
spentName: expendable-light-spent-red-glowstick-name
glowColorLit: "#FF0000"
- type: PointLight
color: "#FF0000"
- type: ExpendableLight
spentName: expendable-light-spent-red-glowstick-name
glowColorLit: "#FF0000"
- type: PointLight
color: "#FF0000"
- type: entity
name: purple glowstick
parent: GlowstickBase
id: GlowstickPurple
name: purple glowstick
components:
- type: ExpendableLight
spentName: expendable-light-spent-purple-glowstick-name
glowColorLit: "#FF00FF"
- type: PointLight
color: "#FF00FF"
- type: ExpendableLight
spentName: expendable-light-spent-purple-glowstick-name
glowColorLit: "#FF00FF"
- type: PointLight
color: "#FF00FF"
- type: entity
name: yellow glowstick
parent: GlowstickBase
id: GlowstickYellow
name: yellow glowstick
components:
- type: ExpendableLight
spentName: expendable-light-spent-yellow-glowstick-name
glowColorLit: "#FFFF00"
- type: PointLight
color: "#FFFF00"
- type: ExpendableLight
spentName: expendable-light-spent-yellow-glowstick-name
glowColorLit: "#FFFF00"
- type: PointLight
color: "#FFFF00"
- type: entity
name: blue glowstick
parent: GlowstickBase
id: GlowstickBlue
name: blue glowstick
components:
- type: ExpendableLight
spentName: expendable-light-spent-blue-glowstick-name
glowColorLit: "#0000FF"
- type: PointLight
color: "#0000FF"
- type: ExpendableLight
spentName: expendable-light-spent-blue-glowstick-name
glowColorLit: "#0000FF"
- type: PointLight
color: "#0000FF"
- type: entity
parent: GlowstickBase
id: GlowstickGreen
name: green glowstick
components:
- type: ExpendableLight
spentName: expendable-light-spent-green-glowstick-name
glowColorLit: "#00FF00"
- type: PointLight
color: "#00FF00"
# ----------------------------------------------------------------------------
# THE FOLLOWING ARE ALL DUMMY ENTITIES USED TO TEST THE LIGHT BEHAVIOUR SYSTEM
@ -118,30 +130,30 @@
id: LightBehaviourTest1
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- state: glowstick_base
- state: glowstick_unlit
shader: unshaded
color: "#FF0000"
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
- type: PointLight
enabled: true
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- state: glowstick_base
- state: glowstick_unlit
shader: unshaded
color: "#FF0000"
radius: 5
- type: LightBehaviour
behaviours:
- !type:PulseBehaviour
interpolate: Cubic
maxDuration: 10.0
startValue: 1.0
endValue: 7.0
isLooped: true
property: Energy
enabled: true
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
- type: PointLight
enabled: true
color: "#FF0000"
radius: 5
- type: LightBehaviour
behaviours:
- !type:PulseBehaviour
interpolate: Cubic
maxDuration: 10.0
startValue: 1.0
endValue: 7.0
isLooped: true
property: Energy
enabled: true
- type: entity
name: color cycle test
@ -149,31 +161,31 @@
id: LightBehaviourTest2
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- state: glowstick_base
- state: glowstick_unlit
shader: unshaded
color: "#FF0000"
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
- type: PointLight
enabled: true
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- state: glowstick_base
- state: glowstick_unlit
shader: unshaded
color: "#FF0000"
radius: 5
- type: LightBehaviour
behaviours:
- !type:ColorCycleBehaviour
interpolate: Nearest
maxDuration: 0.8
isLooped: true
enabled: true
colors:
- red
- blue
- green
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
- type: PointLight
enabled: true
color: "#FF0000"
radius: 5
- type: LightBehaviour
behaviours:
- !type:ColorCycleBehaviour
interpolate: Nearest
maxDuration: 0.8
isLooped: true
enabled: true
colors:
- red
- blue
- green
- type: entity
name: multi-behaviour light test
@ -181,39 +193,39 @@
id: LightBehaviourTest3
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- state: glowstick_base
- state: glowstick_unlit
shader: unshaded
color: "#FF0000"
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
- type: PointLight
enabled: false
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- state: glowstick_base
- state: glowstick_unlit
shader: unshaded
color: "#FF0000"
radius: 5
- type: LightBehaviour
behaviours:
- !type:PulseBehaviour
interpolate: Nearest
minDuration: 0.2
maxDuration: 1.0
endValue: 0.2
property: AnimatedEnable
isLooped: true
enabled: true
- !type:ColorCycleBehaviour
interpolate: Cubic
maxDuration: 0.8
isLooped: true
enabled: true
colors:
- red
- blue
- green
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
- type: PointLight
enabled: false
color: "#FF0000"
radius: 5
- type: LightBehaviour
behaviours:
- !type:PulseBehaviour
interpolate: Nearest
minDuration: 0.2
maxDuration: 1.0
endValue: 0.2
property: AnimatedEnable
isLooped: true
enabled: true
- !type:ColorCycleBehaviour
interpolate: Cubic
maxDuration: 0.8
isLooped: true
enabled: true
colors:
- red
- blue
- green
- type: entity
name: light fade in test
@ -221,30 +233,30 @@
id: LightBehaviourTest4
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- state: glowstick_base
- state: glowstick_unlit
shader: unshaded
color: "#FF0000"
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
- type: PointLight
enabled: false
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- state: glowstick_base
- state: glowstick_unlit
shader: unshaded
color: "#FF0000"
radius: 5
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour
interpolate: Cubic
maxDuration: 5.0
startValue: 0.0
endValue: 10.0
isLooped: true
property: Energy
enabled: true
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
- type: PointLight
enabled: false
color: "#FF0000"
radius: 5
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour
interpolate: Cubic
maxDuration: 5.0
startValue: 0.0
endValue: 10.0
isLooped: true
property: Energy
enabled: true
- type: entity
name: light pulse radius test
@ -252,30 +264,30 @@
id: LightBehaviourTest5
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- state: glowstick_base
- state: glowstick_unlit
shader: unshaded
color: "#FF0000"
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
- type: PointLight
enabled: false
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- state: glowstick_base
- state: glowstick_unlit
shader: unshaded
color: "#FF0000"
radius: 5
- type: LightBehaviour
behaviours:
- !type:PulseBehaviour
interpolate: Cubic
minDuration: 1.0
maxDuration: 5.0
startValue: 2.0
endValue: 10.0
isLooped: true
enabled: true
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
- type: PointLight
enabled: false
color: "#FF0000"
radius: 5
- type: LightBehaviour
behaviours:
- !type:PulseBehaviour
interpolate: Cubic
minDuration: 1.0
maxDuration: 5.0
startValue: 2.0
endValue: 10.0
isLooped: true
enabled: true
- type: entity
name: light randomize radius test
@ -283,27 +295,27 @@
id: LightBehaviourTest6
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- state: glowstick_base
- state: glowstick_unlit
shader: unshaded
color: "#FF0000"
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
- type: PointLight
enabled: false
- type: Sprite
sprite: Objects/Misc/glowstick.rsi
layers:
- state: glowstick_base
- state: glowstick_unlit
shader: unshaded
color: "#FF0000"
radius: 5
energy: 10
- type: LightBehaviour
behaviours:
- !type:RandomizeBehaviour
interpolate: Nearest
maxDuration: 0.5
startValue: 10.0
endValue: 25.0
isLooped: true
enabled: true
- type: Item
sprite: Objects/Misc/glowstick.rsi
heldPrefix: unlit
- type: PointLight
enabled: false
color: "#FF0000"
radius: 5
energy: 10
- type: LightBehaviour
behaviours:
- !type:RandomizeBehaviour
interpolate: Nearest
maxDuration: 0.5
startValue: 10.0
endValue: 25.0
isLooped: true
enabled: true

View File

@ -88,7 +88,7 @@
- FoamBlade
- FoamCutlass
- Football
- GlowstickBase #green
- GlowstickGreen
- GlowstickBlue
- GlowstickYellow
- GlowstickPurple