Separate and reify laser beams

This commit is contained in:
2022-07-23 23:26:39 +01:00
parent 262ac237cd
commit 7563441154
13 changed files with 102 additions and 72 deletions
+9
View File
@@ -4,6 +4,7 @@ Module : Dodge.Update
Description : Simulation update
-}
module Dodge.Update ( updateUniverse ) where
import Dodge.Laser.Update
import Dodge.PressPlate
import Dodge.ModificationEffect
import Dodge.CrGroupUpdate
@@ -94,6 +95,7 @@ functionalUpdate w = checkEndGame
. over uvWorld updateRadarBlips
. over uvWorld updateFlares
. over uvWorld updateBeams
. over uvWorld updateLasers
. over uvWorld (updateIMl _props _pjUpdate )
. over uvWorld (updateIMl' _projectiles updateProjectile)
. over uvWorld updateLightSources
@@ -118,6 +120,13 @@ functionalUpdate w = checkEndGame
doWorldEvents :: World -> World
doWorldEvents w = foldr doWorldEffect (w & worldEvents .~ []) (_worldEvents w)
updateLasers :: World -> World
updateLasers w = w'
& lasers .~ []
& lasersToDraw .~ ls
where
(w',ls) = mapAccumR updateLaser w (_lasers w)
zoneClouds :: World -> World
zoneClouds w = w
& clZoning .~ mempty