Refactor, try to limit dependencies
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
{-# LANGUAGE StrictData #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
|
||||
module Dodge.Data.World (
|
||||
module Dodge.Data.World,
|
||||
module Dodge.Data.CWorld,
|
||||
module Dodge.Data.RightButtonOptions,
|
||||
module Dodge.Data.SoundOrigin,
|
||||
module Dodge.Data.Hammer,
|
||||
) where
|
||||
|
||||
import Control.Lens
|
||||
import qualified Data.Map.Strict as M
|
||||
import qualified Data.Set as S
|
||||
import Dodge.Data.CWorld
|
||||
import Dodge.Data.Hammer
|
||||
import Dodge.Data.RightButtonOptions
|
||||
import Dodge.Data.SoundOrigin
|
||||
import Geometry.Data
|
||||
import SDL (MouseButton, Scancode)
|
||||
import Sound.Data
|
||||
import StreamingHelp
|
||||
import System.Random
|
||||
|
||||
data World = World
|
||||
{ _cWorld :: CWorld
|
||||
, _randGen :: StdGen
|
||||
, _toPlaySounds :: M.Map SoundOrigin Sound
|
||||
, _playingSounds :: M.Map SoundOrigin Sound
|
||||
, _mousePos :: Point2
|
||||
, _keys :: S.Set Scancode
|
||||
, _mouseButtons :: M.Map MouseButton Bool
|
||||
, _hammers :: M.Map WorldHammer HammerPosition
|
||||
, _testFloat :: Float
|
||||
, _lLine :: (Point2, Point2)
|
||||
, _rLine :: (Point2, Point2)
|
||||
, _lSelect :: Point2
|
||||
, _rSelect :: Point2
|
||||
, _backspaceTimer :: Int
|
||||
, _timeFlow :: TimeFlowStatus
|
||||
, _rbOptions :: RightButtonOptions
|
||||
}
|
||||
|
||||
data TimeFlowStatus
|
||||
= RewindingNow
|
||||
| RewindingLastFrame
|
||||
| NormalTimeFlow
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
data WorldHammer
|
||||
= SubInvHam
|
||||
| DoubleMouseHam
|
||||
deriving (Eq, Ord, Show, Read, Enum, Bounded)
|
||||
|
||||
type HitEffect' =
|
||||
Flame ->
|
||||
StreamOf (Point2, Either Creature Wall) ->
|
||||
World ->
|
||||
(World, Maybe Flame)
|
||||
|
||||
makeLenses ''World
|
||||
Reference in New Issue
Block a user