Refactor, try to limit dependencies
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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
@@ -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'
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user