Remove temporary light sources as separate entity
This commit is contained in:
+44
-42
@@ -1,13 +1,13 @@
|
||||
module Dodge.LightSource (
|
||||
tlsTimeRadFunPos,
|
||||
tlsTimeRadColPos,
|
||||
-- tlsTimeRadFunPos,
|
||||
-- tlsTimeRadColPos,
|
||||
lsRadCol,
|
||||
lsColPosRad,
|
||||
lsColPos,
|
||||
lsPosCol,
|
||||
lsPosRad,
|
||||
lsColPosID,
|
||||
makeTlsTimeRadColPos,
|
||||
-- makeTlsTimeRadColPos,
|
||||
destroyLS,
|
||||
) where
|
||||
|
||||
@@ -23,18 +23,18 @@ import LensHelp
|
||||
lsPosRad :: Point3 -> Float -> LightSource
|
||||
lsPosRad = lsColPosRad 0.75
|
||||
|
||||
tlsTimeRadFunPos :: Int -> Float -> TLSIntensity -> Point3 -> TempLightSource
|
||||
tlsTimeRadFunPos t rmax intensityF p =
|
||||
TLS
|
||||
{ _tlsParam =
|
||||
LSParam
|
||||
{ _lsPos = p
|
||||
, _lsRad = rmax
|
||||
, _lsCol = 0 -- intensityF t
|
||||
}
|
||||
, _tlsUpdate = IntensityTLS intensityF
|
||||
, _tlsTime = t
|
||||
}
|
||||
--tlsTimeRadFunPos :: Int -> Float -> TLSIntensity -> Point3 -> TempLightSource
|
||||
--tlsTimeRadFunPos t rmax intensityF p =
|
||||
-- TLS
|
||||
-- { _tlsParam =
|
||||
-- LSParam
|
||||
-- { _lsPos = p
|
||||
-- , _lsRad = rmax
|
||||
-- , _lsCol = 0 -- intensityF t
|
||||
-- }
|
||||
-- , _tlsUpdate = IntensityTLS intensityF
|
||||
-- , _tlsTime = t
|
||||
-- }
|
||||
|
||||
-- where
|
||||
-- upF tls
|
||||
@@ -66,27 +66,27 @@ lsRadCol r col =
|
||||
defaultLS & lsParam . lsRad .~ r
|
||||
& lsParam . lsCol .~ col
|
||||
|
||||
tlsTimeRadColPos ::
|
||||
Int ->
|
||||
-- | maximal radius
|
||||
Float ->
|
||||
Point3 ->
|
||||
Point3 ->
|
||||
TempLightSource
|
||||
tlsTimeRadColPos t rmax col (V3 x y z) =
|
||||
TLS
|
||||
{ _tlsParam =
|
||||
LSParam
|
||||
{ _lsPos = V3 x y z
|
||||
, _lsRad = rmax
|
||||
, _lsCol = col
|
||||
}
|
||||
, _tlsUpdate = TimerTLS
|
||||
, _tlsTime = t
|
||||
}
|
||||
|
||||
makeTlsTimeRadColPos :: Int -> Float -> Point3 -> Point3 -> World -> World
|
||||
makeTlsTimeRadColPos i rad (V3 r g b) p = cWorld . lWorld . tempLightSources .:~ tlsTimeRadColPos i rad (V3 r g b) p
|
||||
--tlsTimeRadColPos ::
|
||||
-- Int ->
|
||||
-- -- | maximal radius
|
||||
-- Float ->
|
||||
-- Point3 ->
|
||||
-- Point3 ->
|
||||
-- TempLightSource
|
||||
--tlsTimeRadColPos t rmax col (V3 x y z) =
|
||||
-- TLS
|
||||
-- { _tlsParam =
|
||||
-- LSParam
|
||||
-- { _lsPos = V3 x y z
|
||||
-- , _lsRad = rmax
|
||||
-- , _lsCol = col
|
||||
-- }
|
||||
-- , _tlsUpdate = TimerTLS
|
||||
-- , _tlsTime = t
|
||||
-- }
|
||||
--
|
||||
--makeTlsTimeRadColPos :: Int -> Float -> Point3 -> Point3 -> World -> World
|
||||
--makeTlsTimeRadColPos i rad (V3 r g b) p = cWorld . lWorld . tempLightSources .:~ tlsTimeRadColPos i rad (V3 r g b) p
|
||||
|
||||
destroyLS :: Int -> World -> World
|
||||
destroyLS lsid w =
|
||||
@@ -100,11 +100,13 @@ destroyLS lsid w =
|
||||
|
||||
destroyLSFlashAt :: Point3 -> World -> World
|
||||
destroyLSFlashAt (V3 x' y' z') =
|
||||
cWorld . lWorld . tempLightSources
|
||||
.:~ tlsTimeRadFunPos
|
||||
20
|
||||
150
|
||||
(TLSFade 1 10)
|
||||
(addZ z' p)
|
||||
cWorld . lWorld . worldEvents .:~ MakeTempLight
|
||||
(LSParam (addZ z' p) 150 1) 20
|
||||
-- cWorld . lWorld . tempLightSources
|
||||
-- .:~ tlsTimeRadFunPos
|
||||
-- 20
|
||||
-- 150
|
||||
-- (TLSFade 1 10)
|
||||
-- (addZ z' p)
|
||||
where
|
||||
p = V2 x' y'
|
||||
|
||||
Reference in New Issue
Block a user