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 Picture.Texture 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 , _floorTiles = [] , _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 = [] , _radDistortion = [] } defaultDebugFlags :: DebugFlags defaultDebugFlags = DebugFlags { _noClip = False , _displaySecondsPerFrame = True } youLight :: TempLightSource youLight = TLS { _tlsPos = (0,0,0) ,_tlsRad = 300 ,_tlsIntensity = 0.1 ,_tlsUpdate = \w _ -> (w, Just (youLight {_tlsPos = f $ _crPos (you w)})) } where f (x,y) = (x,y,0)