Files
loop/src/Dodge/Initialisation.hs
T

78 lines
2.3 KiB
Haskell

module Dodge.Initialisation where
import Dodge.Default.World
import Dodge.Save
import Dodge.Data
import Dodge.Data.SoundOrigin
import Dodge.Creature
--import Dodge.Zone
import Dodge.Floor
import Dodge.Layout
import Dodge.Story
import Dodge.WorldEvent.Cloud
import Dodge.SoundLogic
import Dodge.SoundLogic.LoadSound
--import Dodge.Creature.Perception
import Geometry.Data
--import Shape.Data
--import Dodge.Render.Shape
--import Picture
--import Dodge.GameRoom
--import Geometry
import System.Random
import qualified Data.Set as S
import qualified Data.IntMap.Strict as IM
import qualified Data.Map as M
--import Data.Maybe
--import Control.Lens
--import Data.List (partition)
--import Data.List (sortOn)
firstWorld :: IO World
firstWorld = do
-- i <- randomRIO (0,5000)
let i = 2
putStrLn $ "Seed for level generation: " ++ show ( i :: Int)
return $ generateLevelFromRoomList levx $ initialWorld {_randGen = mkStdGen i}
initialWorld :: World
initialWorld = defaultWorld
{ _keys = S.empty
, _cameraCenter = V2 0 0
, _cameraRot = 0
, _cameraZoom = 10
, _creatures = IM.fromList [(0,startCr)]
, _props = IM.empty
, _walls = IM.empty
, _forceFields = IM.empty
, _floorItems = IM.empty
, _randGen = mkStdGen 2
, _mousePos = V2 0 0
, _testString = testStringInit
, _yourID = 0
, _worldEvents = storeLevel . soundStart BackgroundSound (V2 0 0) foamSprayFadeOutS Nothing
. foldr ((.) . makeStartCloudAt) id [V3 x y 5 | x <- [-5,-3..5] , y <- [-5,-3..5]]
, _pressPlates = IM.empty
, _buttons = IM.empty
, _toPlaySounds = M.empty
, _decorations = IM.empty
, _storedLevel = Nothing
, _menuLayers = [TerminalScreen 300 rezText']
, _worldState = M.empty
}
testStringInit :: World -> [String]
testStringInit _ = []
--testStringInit = mapMaybe f . IM.elems . flattenIMIMIM . _znObjects . _wallsZone
-- where
-- f dr | _wlColor dr == V4 0 1 0 1 = Just . show $ _wlLine dr
-- | otherwise = Nothing
--testStringInit _ = []
--testStringInit w = [show . length $ newSounds w]
--testStringInit w = (show . _crPos $ _creatures w IM.! 0)
-- : (map show . _grBound . last $ sortOn _grName grs)
-- ++ closeRooms
-- where
-- closeRooms = map _grName $ filter (pointInOrOnPolygon p . _grBound) grs
-- grs = _gameRooms w
-- p = _cameraViewFrom w