Draw floor item shapes
This commit is contained in:
@@ -10,6 +10,7 @@ import Dodge.Picture.SizeInvariant
|
|||||||
import Dodge.Picture.Layer
|
import Dodge.Picture.Layer
|
||||||
import Dodge.Render.HUD
|
import Dodge.Render.HUD
|
||||||
import Dodge.Render.MenuScreen
|
import Dodge.Render.MenuScreen
|
||||||
|
import Dodge.Render.ShapePicture
|
||||||
import Dodge.SoundLogic.LoadSound
|
import Dodge.SoundLogic.LoadSound
|
||||||
import Dodge.Config.Data
|
import Dodge.Config.Data
|
||||||
import Sound.Data
|
import Sound.Data
|
||||||
@@ -30,7 +31,7 @@ worldPictures w = pictures
|
|||||||
,concatMapPic (crDraw w) . IM.filter crIsClose $ _creatures w
|
,concatMapPic (crDraw w) . IM.filter crIsClose $ _creatures w
|
||||||
,concatMapPic (dbArg _ptDraw) $ _particles w
|
,concatMapPic (dbArg _ptDraw) $ _particles w
|
||||||
,testPic w
|
,testPic w
|
||||||
,concatMapPic drawItem $ _floorItems w
|
,concatMapPic (_spPicture . floorItemSPic) $ _floorItems w
|
||||||
,concatMapPic (crDraw w) $ _creatures w
|
,concatMapPic (crDraw w) $ _creatures w
|
||||||
,concatMapPic clDraw $ _clouds w
|
,concatMapPic clDraw $ _clouds w
|
||||||
,concatMapPic ppDraw $ _pressPlates w
|
,concatMapPic ppDraw $ _pressPlates w
|
||||||
@@ -42,7 +43,7 @@ worldPictures w = pictures
|
|||||||
crIsClose cr = dist (_crPos cr) camCen < winSize
|
crIsClose cr = dist (_crPos cr) camCen < winSize
|
||||||
winSize = 30 + max (getWindowX w) (getWindowY w)
|
winSize = 30 + max (getWindowX w) (getWindowY w)
|
||||||
camCen = _cameraCenter w
|
camCen = _cameraCenter w
|
||||||
|
|
||||||
fixedCoordPictures :: World -> Picture
|
fixedCoordPictures :: World -> Picture
|
||||||
fixedCoordPictures w = case _menuLayers w of
|
fixedCoordPictures w = case _menuLayers w of
|
||||||
[] -> pictures
|
[] -> pictures
|
||||||
@@ -194,10 +195,6 @@ extendConeToScreenEdge w c (x,y) = orderPolygon $ wallScreenIntersect ++ [x,y] +
|
|||||||
rectangleSolid :: Float -> Float -> Picture
|
rectangleSolid :: Float -> Float -> Picture
|
||||||
rectangleSolid x y = polygon $ map toV2 [(x,y),(x,-y),(-x,-y),(-x,y)]
|
rectangleSolid x y = polygon $ map toV2 [(x,y),(x,-y),(-x,-y),(-x,y)]
|
||||||
|
|
||||||
drawItem :: FloorItem -> Picture
|
|
||||||
drawItem flit = uncurryV translate (_flItPos flit)
|
|
||||||
$ rotate (_flItRot flit) (_spPicture $ _itFloorPict (_flIt flit))
|
|
||||||
|
|
||||||
|
|
||||||
ffToDraw :: World -> [ForceField]
|
ffToDraw :: World -> [ForceField]
|
||||||
ffToDraw _ = []
|
ffToDraw _ = []
|
||||||
|
|||||||
@@ -6,15 +6,24 @@ import Geometry
|
|||||||
--import Color
|
--import Color
|
||||||
import ShapePicture
|
import ShapePicture
|
||||||
import Dodge.Base.Window
|
import Dodge.Base.Window
|
||||||
|
import Dodge.Render.ShapePicture
|
||||||
|
|
||||||
import qualified Data.IntMap as IM
|
import qualified Data.IntMap as IM
|
||||||
worldShape :: World -> Shape
|
worldShape :: World -> Shape
|
||||||
worldShape w = _foregroundShape w
|
worldShape w = _foregroundShape w
|
||||||
<> mconcat (map (crShape w) (IM.elems $ IM.filter crIsClose (_creatures w)))
|
<> mconcat (map (crShape w) (IM.elems $ IM.filter crIsClose (_creatures w)))
|
||||||
|
<> mconcat (map (_spShape . floorItemSPic) $ IM.elems $ _floorItems w)
|
||||||
where
|
where
|
||||||
crIsClose cr = dist (_crPos cr) camCen < winSize
|
crIsClose cr = dist (_crPos cr) camCen < winSize
|
||||||
winSize = 30 + max (getWindowX w) (getWindowY w)
|
winSize = 30 + max (getWindowX w) (getWindowY w)
|
||||||
camCen = _cameraCenter w
|
camCen = _cameraCenter w
|
||||||
|
|
||||||
|
pointIsClose :: World -> Point2 -> Bool
|
||||||
|
pointIsClose w p = dist p camCen < winSize
|
||||||
|
where
|
||||||
|
winSize = 30 + max (getWindowX w) (getWindowY w)
|
||||||
|
camCen = _cameraCenter w
|
||||||
|
|
||||||
|
|
||||||
crShape :: World -> Creature -> Shape
|
crShape :: World -> Creature -> Shape
|
||||||
crShape w c = _spShape $ _crPict c c w
|
crShape w c = _spShape $ _crPict c c w
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
module Dodge.Render.ShapePicture
|
||||||
|
where
|
||||||
|
import Dodge.Data
|
||||||
|
import Geometry
|
||||||
|
import ShapePicture
|
||||||
|
|
||||||
|
floorItemSPic :: FloorItem -> SPic
|
||||||
|
floorItemSPic flit = uncurryV translateSPf (_flItPos flit)
|
||||||
|
$ rotateSP (_flItRot flit) (_itFloorPict (_flIt flit))
|
||||||
|
|
||||||
Reference in New Issue
Block a user