Add world default
This commit is contained in:
@@ -0,0 +1,101 @@
|
|||||||
|
module Dodge.Default.World
|
||||||
|
where
|
||||||
|
import Dodge.Data
|
||||||
|
import Dodge.Data.Menu
|
||||||
|
import Dodge.Base
|
||||||
|
import Dodge.Debug.Flag.Data
|
||||||
|
import Dodge.Config.Data
|
||||||
|
import Dodge.Config.KeyConfig
|
||||||
|
import Dodge.Item.Data
|
||||||
|
import Picture
|
||||||
|
import Geometry
|
||||||
|
|
||||||
|
import System.Random
|
||||||
|
import qualified Data.IntMap.Strict as IM
|
||||||
|
import qualified Data.Map as M
|
||||||
|
import qualified Data.Set as S
|
||||||
|
import Data.Graph.Inductive.Graph hiding ((&))
|
||||||
|
defaultWorld :: World
|
||||||
|
defaultWorld = World
|
||||||
|
{ _keys = S.empty
|
||||||
|
, _mouseButtons = S.empty
|
||||||
|
, _cameraCenter = (0,0)
|
||||||
|
, _cameraRot = 0
|
||||||
|
, _cameraZoom = 1
|
||||||
|
, _cameraViewFrom = (0,0)
|
||||||
|
, _creatures = IM.empty
|
||||||
|
, _creaturesZone = IM.empty
|
||||||
|
, _creatureGroups = IM.empty
|
||||||
|
, _clouds = IM.empty
|
||||||
|
, _cloudsZone = IM.empty
|
||||||
|
, _itemPositions = IM.empty
|
||||||
|
, _projectiles = IM.empty
|
||||||
|
, _particles = []
|
||||||
|
, _staticWalls = []
|
||||||
|
, _walls = IM.empty
|
||||||
|
, _wallsZone = IM.empty
|
||||||
|
, _forceFields = IM.empty
|
||||||
|
, _floorItems = IM.empty
|
||||||
|
, _randGen = mkStdGen 2
|
||||||
|
, _mousePos = (0,0)
|
||||||
|
, _testString = []
|
||||||
|
, _yourID = 0
|
||||||
|
, _worldEvents = id
|
||||||
|
, _pressPlates = IM.empty
|
||||||
|
, _buttons = IM.empty
|
||||||
|
, _soundQueue = []
|
||||||
|
, _sounds = M.empty
|
||||||
|
, _corpses = IM.empty
|
||||||
|
, _decorations = IM.empty
|
||||||
|
, _storedLevel = Nothing
|
||||||
|
, _menuLayers = [LevelMenu 1]
|
||||||
|
, _worldState = M.empty
|
||||||
|
, _worldTriggers = S.empty
|
||||||
|
, _clickMousePos = (0,0)
|
||||||
|
, _pathGraph = Data.Graph.Inductive.Graph.empty
|
||||||
|
, _pathGraph' = []
|
||||||
|
, _pathPoints = IM.empty
|
||||||
|
, _pathInc = M.empty
|
||||||
|
, _carteDisplay = False
|
||||||
|
, _carteCenter = (0,0)
|
||||||
|
, _carteZoom = 0.5
|
||||||
|
, _carteRot = 0
|
||||||
|
, _lightSources = IM.empty
|
||||||
|
, _tempLightSources = [youLight]
|
||||||
|
, _closeActiveObjects = []
|
||||||
|
, _seenLocations = IM.fromList
|
||||||
|
[(0, (_crPos . you, "CURRENT POSITION"))
|
||||||
|
,(1, (const (0,0) , "START POSITION"))
|
||||||
|
]
|
||||||
|
, _selLocation = 0
|
||||||
|
, _keyConfig = defaultKeyConfigSDL
|
||||||
|
, _config = defaultConfig
|
||||||
|
, _sideEffects = []
|
||||||
|
, _doneSideEffects = []
|
||||||
|
, _debugFlags = defaultDebugFlags
|
||||||
|
, _inventoryMode = TopInventory
|
||||||
|
, _lClickHammer = HammerUp
|
||||||
|
, _foregroundDecorations =
|
||||||
|
[ setDepth (-0.1) $ color orange $ pictures
|
||||||
|
[ polygon $ rectNSEW 50 40 140 (-20)
|
||||||
|
, translate 60 45 $ scale 0.5 1 $ thickArc 0 pi 75 10
|
||||||
|
, translate (-20) 300 $ polygon $ rectNSEW 10 0 40 0
|
||||||
|
]
|
||||||
|
, setDepth (-0.2) $ rotate 0.75 $ pictures
|
||||||
|
$ map f [5,25,45,65]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
where
|
||||||
|
f x = polygon $ rectNSEW (x - 20) (x-22) 500 0
|
||||||
|
defaultDebugFlags :: DebugFlags
|
||||||
|
defaultDebugFlags = DebugFlags
|
||||||
|
{ _noClip = False
|
||||||
|
, _displaySecondsPerFrame = True
|
||||||
|
}
|
||||||
|
youLight :: TempLightSource
|
||||||
|
youLight =
|
||||||
|
TLS { _tlsPos = (0,0)
|
||||||
|
,_tlsRad = 300
|
||||||
|
,_tlsIntensity = 0.1
|
||||||
|
,_tlsUpdate = \w _ -> (w, Just (youLight {_tlsPos = _crPos (you w)}))
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user