diff options
author | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-08-31 23:14:58 +0100 |
---|---|---|
committer | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-08-31 23:14:58 +0100 |
commit | 9a96d0bff56f1969c68bb52a2f33296095bdc67d (patch) | |
tree | 4175928e488632705692e3cccafa1a38dd854615 /Northstar.CustomServers/mod/scripts/vscripts/mp/_pickups_glow.gnut | |
parent | 27bd240871b7c0f2f49fef137718b2e3c208e3b4 (diff) | |
download | NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.tar.gz NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.zip |
move to new mod format
Diffstat (limited to 'Northstar.CustomServers/mod/scripts/vscripts/mp/_pickups_glow.gnut')
-rw-r--r-- | Northstar.CustomServers/mod/scripts/vscripts/mp/_pickups_glow.gnut | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_pickups_glow.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_pickups_glow.gnut new file mode 100644 index 000000000..f1fe4ecce --- /dev/null +++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_pickups_glow.gnut @@ -0,0 +1,53 @@ +global function CreatePickupGlow +global function PickupGlow_SetColor + +global struct PickupGlow +{ + entity cpoint + entity glowFX +} + +PickupGlow function CreatePickupGlow( entity ent, int r, int g, int b ) +{ + vector origin = ent.GetOrigin() + entity cpoint = CreateEntity( "info_placement_helper" ) + SetTargetName( cpoint, UniqueString( "pickup_controlpoint" ) ) + DispatchSpawn( cpoint ) + cpoint.SetOrigin( Vector(r,g,b) ) + entity glowFX = PlayFXWithControlPoint( COLLECTIBLE_PICKUP_EFFECT, origin, cpoint, -1, null, null, C_PLAYFX_LOOP ) + + PickupGlow pickupGlow + pickupGlow.cpoint = cpoint + pickupGlow.glowFX = glowFX + thread PickupGlowCleanup( ent, pickupGlow ) + return pickupGlow +} + +void function PickupGlowCleanup( entity ent, PickupGlow pickupGlow ) +{ + OnThreadEnd( + function() : ( pickupGlow ) + { + StopPickupGlow( pickupGlow ) + } + ) + + ent.WaitSignal( "OnDestroy" ) +} + +void function StopPickupGlow( PickupGlow pickupGlow ) +{ + if ( IsValid( pickupGlow.cpoint ) ) + pickupGlow.cpoint.Destroy() + + if ( IsValid(pickupGlow.glowFX) ) + { + EntityFire( pickupGlow.glowFX, "StopPlayEndCap" ) + pickupGlow.glowFX.Destroy() + } +} + +void function PickupGlow_SetColor( PickupGlow pickupGlow, int r, int g, int b ) +{ + pickupGlow.cpoint.SetOrigin( Vector( r, g, b ) ) +} |