Refactor, try to limit dependencies

This commit is contained in:
2022-07-28 00:59:56 +01:00
parent 8aa5c17ab9
commit 160560af5f
418 changed files with 15104 additions and 13342 deletions
+4 -6
View File
@@ -1,12 +1,10 @@
module Dodge.Zoning.Cloud
where
import Geometry.Vector
import Dodge.Zoning.Base
import Dodge.Data
import Geometry
module Dodge.Zoning.Cloud where
--import Data.Foldable
import Control.Lens
import Dodge.Data.World
import Dodge.Zoning.Base
import Geometry
import qualified IntMapHelp as IM
clsNearPoint :: Point2 -> World -> [Cloud]
+7 -9
View File
@@ -1,15 +1,13 @@
module Dodge.Zoning.Creature where
import FoldableHelp
import Dodge.Data
import Geometry
import Dodge.Zoning.Base
--import qualified FoldlHelp as L
import qualified IntMapHelp as IM
import Data.Maybe
--import Data.Function
import qualified Data.IntSet as IS
import Control.Lens
import qualified Data.IntSet as IS
import Data.Maybe
import Dodge.Data.World
import Dodge.Zoning.Base
import FoldableHelp
import Geometry
import qualified IntMapHelp as IM
crIXsNearPoint :: Point2 -> World -> IS.IntSet
crIXsNearPoint p w = zoneExtract (zoneOfPoint' crZoneSize p) (w ^. cWorld . crZoning)
+18 -22
View File
@@ -1,56 +1,52 @@
module Dodge.Zoning.Pathing
where
import Geometry.Vector
import Dodge.Zoning.Base
import Dodge.Data
import Geometry
module Dodge.Zoning.Pathing where
import Data.Foldable
import Control.Lens
import Data.Foldable
import Dodge.Data.World
import Dodge.Zoning.Base
import Geometry
import qualified IntMapHelp as IM
pnsNearPoint :: Point2 -> World -> [(Int,Point2)]
pnsNearPoint :: Point2 -> World -> [(Int, Point2)]
pnsNearPoint p w = zoneExtract (zoneOfPoint' pnZoneSize p) (w ^. cWorld . pnZoning)
pnsNearSeg :: Point2 -> Point2 -> World -> [(Int,Point2)]
pnsNearSeg :: Point2 -> Point2 -> World -> [(Int, Point2)]
pnsNearSeg sp ep w = zonesExtract (w ^. cWorld . pnZoning) (zoneOfSeg' pnZoneSize sp ep)
pnsNearRect :: Point2 -> Point2 -> World -> [(Int,Point2)]
pnsNearRect :: Point2 -> Point2 -> World -> [(Int, Point2)]
pnsNearRect sp ep w = zonesExtract (w ^. cWorld . pnZoning) $ zoneOfRect' pnZoneSize sp ep
pnsNearCirc :: Point2 -> Float -> World -> [(Int,Point2)]
pnsNearCirc :: Point2 -> Float -> World -> [(Int, Point2)]
pnsNearCirc p r = pnsNearRect (p +.+ V2 r r) (p -.- V2 r r)
pnZoneSize :: Float
pnZoneSize = 50
zoneOfPn :: (Int,Point2) -> Int2
zoneOfPn :: (Int, Point2) -> Int2
zoneOfPn = zoneOfPoint'' pnZoneSize . snd
zonePn :: (Int,Point2) -> IM.IntMap (IM.IntMap [(Int,Point2)]) -> IM.IntMap (IM.IntMap [(Int,Point2)])
zonePn :: (Int, Point2) -> IM.IntMap (IM.IntMap [(Int, Point2)]) -> IM.IntMap (IM.IntMap [(Int, Point2)])
zonePn pn = zoneMonoid (zoneOfPn pn) [pn]
pesNearPoint :: Point2 -> World -> [(Int,Int,PathEdge)]
pesNearPoint :: Point2 -> World -> [(Int, Int, PathEdge)]
pesNearPoint p w = zoneExtract (zoneOfPoint' peZoneSize p) (w ^. cWorld . peZoning)
pesNearSeg :: Point2 -> Point2 -> World -> [(Int,Int,PathEdge)]
pesNearSeg :: Point2 -> Point2 -> World -> [(Int, Int, PathEdge)]
pesNearSeg sp ep w = zonesExtract (w ^. cWorld . peZoning) (zoneOfSeg' peZoneSize sp ep)
pesNearRect :: Point2 -> Point2 -> World -> [(Int,Int,PathEdge)]
pesNearRect :: Point2 -> Point2 -> World -> [(Int, Int, PathEdge)]
pesNearRect sp ep w = zonesExtract (w ^. cWorld . peZoning) $ zoneOfRect' peZoneSize sp ep
pesNearCirc :: Point2 -> Float -> World -> [(Int,Int,PathEdge)]
pesNearCirc :: Point2 -> Float -> World -> [(Int, Int, PathEdge)]
pesNearCirc p r = pesNearRect (p +.+ V2 r r) (p -.- V2 r r)
peZoneSize :: Float
peZoneSize = 50
zoneOfPe :: (Int,Int,PathEdge) -> [Int2]
zoneOfPe (_,_,pe) = zoneOfSeg' peZoneSize (_peStart pe) (_peEnd pe)
zoneOfPe :: (Int, Int, PathEdge) -> [Int2]
zoneOfPe (_, _, pe) = zoneOfSeg' peZoneSize (_peStart pe) (_peEnd pe)
zonePe :: (Int,Int,PathEdge) -> IM.IntMap (IM.IntMap [(Int,Int,PathEdge)]) -> IM.IntMap (IM.IntMap [(Int,Int,PathEdge)])
zonePe :: (Int, Int, PathEdge) -> IM.IntMap (IM.IntMap [(Int, Int, PathEdge)]) -> IM.IntMap (IM.IntMap [(Int, Int, PathEdge)])
zonePe pe im = foldl' f im (zoneOfPe pe)
where
f im' i2 = zoneMonoid i2 [pe] im'
+7 -7
View File
@@ -1,13 +1,13 @@
module Dodge.Zoning.Wall where
import FoldableHelp
import Dodge.Data
import Geometry
import Dodge.Zoning.Base
import qualified IntMapHelp as IM
import Data.Maybe
import qualified Data.IntSet as IS
import Control.Lens
import qualified Data.IntSet as IS
import Data.Maybe
import Dodge.Data.World
import Dodge.Zoning.Base
import FoldableHelp
import Geometry
import qualified IntMapHelp as IM
wlIXsNearPoint :: Point2 -> World -> IS.IntSet
wlIXsNearPoint p w = zoneExtract (zoneOfPoint' wlZoneSize p) (w ^. cWorld . wlZoning)
+6 -7
View File
@@ -1,17 +1,16 @@
module Dodge.Zoning.World where
import Dodge.Data
import Dodge.Data.World
import Geometry.Data
zoneOfSight' :: Float -> World -> [Int2]
zoneOfSight' s w =
[ V2 a b
zoneOfSight' s w =
[ V2 a b
| a <- [minimum xs .. maximum xs]
, b <- [minimum ys .. maximum ys]
]
where
--(xs,ys) = unzip $ map zoneOfPoint $ screenPolygon cfig w -- ++ [_cameraViewFrom w]
(xs,ys) = unzip $ map sizeZoneOfPoint $ _boundBox (_cWorld w) -- ++ [_cameraViewFrom w]
where
(xs, ys) = unzip $ map sizeZoneOfPoint $ _boundBox (_cWorld w) -- ++ [_cameraViewFrom w]
sizeZoneOfPoint (V2 x y) = (f x, f y)
where
f = floor . (/ s)