Cleanup, split CWorld into separate file
This commit is contained in:
+5
-113
@@ -58,9 +58,6 @@ module Dodge.Data (
|
||||
module Dodge.Distortion.Data,
|
||||
module Dodge.Data.Damage,
|
||||
module Dodge.Data.SoundOrigin,
|
||||
module Dodge.Creature.Stance.Data,
|
||||
module Dodge.Creature.Perception.Data,
|
||||
module Dodge.Creature.Memory.Data,
|
||||
module Dodge.Config.Data,
|
||||
module MaybeHelp,
|
||||
module Dodge.Data.ItemAmount,
|
||||
@@ -83,14 +80,14 @@ module Dodge.Data (
|
||||
module Dodge.Data.GenParams,
|
||||
module Dodge.Data.Terminal,
|
||||
module Dodge.Data.FloorItem,
|
||||
module Dodge.Data.CWorld,
|
||||
) where
|
||||
|
||||
import Dodge.Data.CWorld
|
||||
import Color
|
||||
import Control.Lens
|
||||
import Control.Monad.State
|
||||
import Data.Aeson
|
||||
import Data.Graph.Inductive
|
||||
import qualified Data.IntSet as IS
|
||||
import qualified Data.Map.Strict as M
|
||||
import Data.Preload
|
||||
import qualified Data.Set as S
|
||||
@@ -99,9 +96,6 @@ import Data.Tile
|
||||
import Dodge.Combine.Data
|
||||
import Dodge.Config.Data
|
||||
import Dodge.Config.KeyConfig
|
||||
import Dodge.Creature.Memory.Data
|
||||
import Dodge.Creature.Perception.Data
|
||||
import Dodge.Creature.Stance.Data
|
||||
import Dodge.Data.ActionPlan
|
||||
import Dodge.Data.Ammo
|
||||
import Dodge.Data.ArcStep
|
||||
@@ -163,10 +157,8 @@ import Dodge.Data.Wall
|
||||
import Dodge.Data.WorldEffect
|
||||
import Dodge.Data.Zoning
|
||||
import Dodge.Distortion.Data
|
||||
import Dodge.GameRoom
|
||||
import Dodge.RoomCluster.Data
|
||||
import GHC.Generics
|
||||
import Geometry.ConvexPoly
|
||||
import Geometry.Data
|
||||
import qualified IntMapHelp as IM
|
||||
import MaybeHelp
|
||||
@@ -176,8 +168,6 @@ import Sound.Data
|
||||
import Streaming
|
||||
import System.Random
|
||||
|
||||
type CRUpdate = Creature -> World -> (World -> World, Maybe Creature)
|
||||
|
||||
type CRUpdate' = Creature -> World -> (World -> World, Creature)
|
||||
|
||||
data Universe = Universe
|
||||
@@ -206,100 +196,16 @@ data World = World
|
||||
, _keys :: S.Set Scancode
|
||||
, _mouseButtons :: M.Map MouseButton Bool
|
||||
, _hammers :: M.Map WorldHammer HammerPosition
|
||||
}
|
||||
|
||||
data CWorld = CWorld
|
||||
{ _cameraCenter :: Point2
|
||||
, _cameraRot :: Float
|
||||
, _cameraZoom :: Float -- smaller values zoom out
|
||||
, _itemZoom :: Float
|
||||
, _defaultZoom :: Float
|
||||
, _cameraViewFrom :: Point2
|
||||
, _viewDistance :: Float
|
||||
, _boundBox :: [Point2]
|
||||
, _boundDist :: (Float, Float, Float, Float) -- NSEW, S and W negative
|
||||
, _creatures :: IM.IntMap Creature
|
||||
, _crZoning :: IM.IntMap (IM.IntMap IS.IntSet) --Zoning IM.IntMap Creature
|
||||
, _creatureGroups :: IM.IntMap CrGroupParams
|
||||
, _itemPositions :: IM.IntMap ItemPos
|
||||
, _clouds :: [Cloud]
|
||||
, _clZoning :: IM.IntMap (IM.IntMap [Cloud]) --Zoning IM.IntMap Creature
|
||||
, _gusts :: IM.IntMap Gust
|
||||
, _gsZoning :: IM.IntMap (IM.IntMap IS.IntSet)
|
||||
, _props :: IM.IntMap Prop
|
||||
, _projectiles :: IM.IntMap Proj
|
||||
, _instantBullets :: [Bullet]
|
||||
, _bullets :: [Bullet]
|
||||
, _radarSweeps :: [RadarSweep]
|
||||
, _energyBalls :: [EnergyBall]
|
||||
, _posEvents :: [PosEvent]
|
||||
, _flames :: [Flame]
|
||||
, _sparks :: [Spark]
|
||||
, _radarBlips :: [RadarBlip]
|
||||
, _flares :: [Flare]
|
||||
, _newBeams :: WorldBeams
|
||||
, _beams :: WorldBeams
|
||||
, _teslaArcs :: [TeslaArc]
|
||||
, _shockwaves :: [Shockwave]
|
||||
, _lasers :: [LaserStart]
|
||||
, _lasersToDraw :: [Laser]
|
||||
, _linearShockwaves :: IM.IntMap LinearShockwave
|
||||
, _tractorBeams :: [TractorBeam]
|
||||
, _walls :: IM.IntMap Wall
|
||||
, _wallDamages :: IM.IntMap [Damage]
|
||||
, _doors :: IM.IntMap Door
|
||||
, _machines :: IM.IntMap Machine
|
||||
, _terminals :: IM.IntMap Terminal
|
||||
, _magnets :: IM.IntMap Magnet
|
||||
, _blocks :: IM.IntMap Block
|
||||
, _coordinates :: IM.IntMap Point2
|
||||
, _triggers :: IM.IntMap Bool
|
||||
, _wlZoning :: IM.IntMap (IM.IntMap IS.IntSet) -- Zoning IM.IntMap Wall
|
||||
, _floorItems :: IM.IntMap FloorItem
|
||||
, _floorTiles :: [(Point3, Point3)]
|
||||
, _modifications :: IM.IntMap Modification
|
||||
, _yourID :: Int
|
||||
, _worldEvents :: [WdWd]
|
||||
, _delayedEvents :: [(Int, WdWd)]
|
||||
, _pressPlates :: IM.IntMap PressPlate
|
||||
, _buttons :: IM.IntMap Button
|
||||
, _decorations :: IM.IntMap Picture
|
||||
, _foregroundShapes :: IM.IntMap ForegroundShape
|
||||
, _corpses :: IM.IntMap Corpse
|
||||
, _clickMousePos :: Point2
|
||||
, _pathGraph :: Gr Point2 PathEdge
|
||||
, _pnZoning :: IM.IntMap (IM.IntMap [(Int, Point2)]) --Zoning IM.IntMap Creature
|
||||
, _peZoning :: IM.IntMap (IM.IntMap [(Int, Int, PathEdge)]) --Zoning IM.IntMap Creature
|
||||
, _hud :: HUD
|
||||
, _lightSources :: IM.IntMap LightSource
|
||||
, _tempLightSources :: [TempLightSource]
|
||||
, _closeObjects :: [Either FloorItem Button]
|
||||
, _rbOptions :: RightButtonOptions
|
||||
, _seenLocations :: IM.IntMap (WdP2, String)
|
||||
, _selLocation :: Int
|
||||
, _distortions :: [Distortion]
|
||||
, _worldBounds :: Bounds
|
||||
, _gameRooms :: [GameRoom] -- consider using an IntMap
|
||||
, _roomClipping :: [ConvexPoly]
|
||||
, _maybeWorld :: Maybe' CWorld
|
||||
, _rewindWorlds :: [CWorld]
|
||||
, _timeFlow :: TimeFlowStatus
|
||||
, _worldClock :: Int
|
||||
, _backspaceTimer :: Int
|
||||
, _genParams :: GenParams
|
||||
, _deathDelay :: Maybe Int
|
||||
, _testFloat :: Float
|
||||
, _lLine :: (Point2, Point2)
|
||||
, _rLine :: (Point2, Point2)
|
||||
, _lSelect :: Point2
|
||||
, _rSelect :: Point2
|
||||
, _backspaceTimer :: Int
|
||||
, _timeFlow :: TimeFlowStatus
|
||||
, _rbOptions :: RightButtonOptions
|
||||
}
|
||||
deriving (Eq, Show, Read, Generic)
|
||||
|
||||
instance ToJSON CWorld where
|
||||
toEncoding = genericToEncoding defaultOptions
|
||||
|
||||
instance FromJSON CWorld
|
||||
|
||||
instance ToJSON MouseButton where
|
||||
toEncoding = genericToEncoding defaultOptions
|
||||
@@ -397,18 +303,6 @@ data MenuOption
|
||||
|
||||
data IntID a = IntID Int a
|
||||
|
||||
data WorldBeams = WorldBeams
|
||||
{ _blockingBeams :: [Beam]
|
||||
, _lightBeams :: [Beam]
|
||||
, _positronBeams :: [Beam]
|
||||
, _electronBeams :: [Beam]
|
||||
}
|
||||
deriving (Eq, Ord, Show, Read, Generic)
|
||||
|
||||
instance ToJSON WorldBeams where
|
||||
toEncoding = genericToEncoding defaultOptions
|
||||
|
||||
instance FromJSON WorldBeams
|
||||
|
||||
type HitEffect' =
|
||||
Flame ->
|
||||
@@ -531,9 +425,7 @@ makeLenses ''World
|
||||
--makeLenses ''Particle
|
||||
makeLenses ''Universe
|
||||
makeLenses ''ScreenLayer
|
||||
makeLenses ''WorldBeams
|
||||
makeLenses ''GenWorld
|
||||
makeLenses ''CWorld
|
||||
|
||||
----- ROOM LENSES
|
||||
|
||||
|
||||
Reference in New Issue
Block a user