Files
loop/src/Dodge/Beam.hs
T
2024-10-01 02:46:18 +01:00

64 lines
2.1 KiB
Haskell

module Dodge.Beam
() where
--import Data.Maybe
--import Dodge.Data.World
--import Dodge.Flame
--import Dodge.Item.Location
--import Dodge.Tesla.Arc
--import Geometry
--import LensHelp
--import Picture
--doBeamCombine ::
-- BeamCombineType ->
-- (Point2, (Point2, Point2, Beam), (Point2, Point2, Beam)) ->
-- World ->
-- World
--doBeamCombine bct = case bct of
-- FlameBeamCombine -> flameBeamCombine
-- LasBeamCombine -> lasBeamCombine
-- TeslaBeamCombine -> teslaBeamCombine
-- SplitBeamCombine -> splitBeamCombine
-- NoBeamCombine -> const id
--
--flameBeamCombine ::
-- (Point2, (Point2, Point2, Beam), (Point2, Point2, Beam)) ->
-- World ->
-- World
--flameBeamCombine (p, (a, b, _), (x, y, _)) =
-- makeFlame p (2 *.* normalizeV (normalizeV (b -.- a) +.+ normalizeV (y -.- x)))
--
--lasBeamCombine ::
-- (Point2, (Point2, Point2, Beam), (Point2, Point2, Beam)) ->
-- World ->
-- World
--lasBeamCombine (p, (a, b, _), (x, y, _)) =
-- cWorld . lWorld . lasers .:~ lasRayAt yellow 11 1 p (argV (normalizeV (b -.- a) +.+ normalizeV (y -.- x)))
--
--splitBeamCombine ::
-- (Point2, (Point2, Point2, Beam), (Point2, Point2, Beam)) ->
-- World ->
-- World
--splitBeamCombine (p, (a, b, _), (x, y, _)) =
-- (cWorld . lWorld . lasers .:~ lasRayAt yellow 11 1 p (dir + 0.5 * pi))
-- . (cWorld . lWorld . lasers .:~ lasRayAt yellow 11 1 p (dir -0.5 * pi))
-- where
-- dir = argV (normalizeV (b -.- a) +.+ normalizeV (y -.- x))
--
--teslaBeamCombine ::
-- (Point2, (Point2, Point2, Beam), (Point2, Point2, Beam)) ->
-- World ->
-- World
--teslaBeamCombine (p, (a, b, bm), (x, y, _)) w =
-- w' & pointerToItemLocation (w ^?! cWorld . lWorld . itemLocations . ix itid) . itParams . subParams ?~ ip
-- where
-- itid = fromJust $ _bmOrigin bm
-- dir = argV (normalizeV (b -.- a) +.+ normalizeV (y -.- x))
-- (w', ip) = makeTeslaArc (fromJust . _subParams $ _itParams it) p dir w
-- it = case getItem itid w of
-- Nothing -> error "tried to get item use teslaBeamCombine that doesn't exist"
-- Just itm -> itm