Move towards scrapping separate GenWorld, merging into World
This commit is contained in:
@@ -139,8 +139,15 @@ data World = World
|
||||
, _worldClock :: Int
|
||||
, _doubleMouseHammer :: HammerPosition
|
||||
, _backspaceTimer :: Int
|
||||
, _genParams :: GenParams
|
||||
}
|
||||
|
||||
newtype GenParams = GenParams
|
||||
{ _sensorCoding :: M.Map DamageType (PaletteColor,DecorationShape)
|
||||
}
|
||||
data DecorationShape = PlusDecoration | SquareDecoration | CircleDecoration | ThreeLineDecoration
|
||||
deriving (Eq,Ord,Enum,Show)
|
||||
|
||||
data HUDElement
|
||||
= DisplayInventory {_subInventory :: SubInventory}
|
||||
| DisplayCarte
|
||||
@@ -1406,3 +1413,4 @@ makeLenses ''AllocateEquipment
|
||||
makeLenses ''ActivateEquipment
|
||||
makeLenses ''EquipParams
|
||||
makeLenses ''TerminalCommand
|
||||
makeLenses ''GenParams
|
||||
|
||||
@@ -98,6 +98,7 @@ defaultWorld = World
|
||||
, _timeFlow = NormalTimeFlow
|
||||
, _doubleMouseHammer = HammerUp
|
||||
, _backspaceTimer = 0
|
||||
, _genParams = GenParams M.empty
|
||||
}
|
||||
youLight :: TempLightSource
|
||||
youLight = TLS
|
||||
|
||||
@@ -9,7 +9,7 @@ import Shape.Data
|
||||
import Data.Tile
|
||||
|
||||
import qualified Data.Set as S
|
||||
import qualified Data.Map.Strict as M
|
||||
--import qualified Data.Map.Strict as M
|
||||
import Control.Lens
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
@@ -170,19 +170,11 @@ data RoomPosType
|
||||
| RoomPosExLink
|
||||
| RoomPosLab Int
|
||||
deriving (Eq,Ord,Show)
|
||||
data DecorationShape = PlusDecoration | SquareDecoration | CircleDecoration
|
||||
| ThreeLineDecoration
|
||||
deriving (Eq,Ord,Enum,Show)
|
||||
|
||||
newtype GenParams = GenParams
|
||||
{ _sensorCoding :: M.Map DamageType (PaletteColor,DecorationShape)
|
||||
}
|
||||
|
||||
data GenWorld = GenWorld
|
||||
{ _gWorld :: World
|
||||
, _gPlacements :: IM.IntMap [(Placement,Int)]
|
||||
, _gRooms :: IM.IntMap Room
|
||||
, _gParams :: GenParams
|
||||
}
|
||||
|
||||
makeLenses ''Room
|
||||
@@ -195,7 +187,6 @@ makeLenses ''RoomPos
|
||||
makeLenses ''RoomPosType
|
||||
makeLenses ''RPLinkStatus
|
||||
makeLenses ''GenWorld
|
||||
makeLenses ''GenParams
|
||||
|
||||
spNoID :: PlacementSpot -> PSType -> Placement
|
||||
spNoID ps pst = Placement ps pst Nothing Nothing (const Nothing)
|
||||
|
||||
@@ -9,6 +9,7 @@ import Dodge.LevelGen.Data
|
||||
import Dodge.Data
|
||||
import Dodge.RandomHelp
|
||||
import Color
|
||||
import LensHelp
|
||||
|
||||
--import Data.Tree
|
||||
import qualified Data.IntMap.Strict as IM
|
||||
@@ -19,11 +20,12 @@ import System.Random
|
||||
|
||||
worldToGenWorld :: IM.IntMap Room -> World -> GenWorld
|
||||
worldToGenWorld rms w = GenWorld
|
||||
{ _gWorld = w
|
||||
{ _gWorld = w & genParams .~ gparams
|
||||
, _gPlacements = IM.empty
|
||||
, _gRooms = rms
|
||||
, _gParams = evalState generateGenParams (_randGen w)
|
||||
}
|
||||
where
|
||||
gparams = evalState generateGenParams (_randGen w)
|
||||
|
||||
generateGenParams :: RandomGen g => State g GenParams
|
||||
generateGenParams = do
|
||||
|
||||
@@ -24,7 +24,7 @@ damageSensor
|
||||
damageSensor dt wdth upf ps = pContID ps (PutLS $ lsPosCol (V3 0 0 30) 0.1)
|
||||
$ \lsid -> Just $ spNoID ps $ PutUsingGenParams
|
||||
$ \gw -> (,) gw $ PutMachine yellow (reverse $ square wdth) defaultMachine
|
||||
{ _mcDraw = sensorSPic wdth $ _sensorCoding (_gParams gw) M.! dt
|
||||
{ _mcDraw = sensorSPic wdth $ _sensorCoding (_genParams $ _gWorld gw) M.! dt
|
||||
, _mcUpdate = \mc -> upf mc . sensorUpdate dt mc
|
||||
, _mcSensor = SensorToggleAmount False 0
|
||||
, _mcLSs = [lsid]
|
||||
|
||||
@@ -33,8 +33,8 @@ import Data.Bifunctor
|
||||
-- to the placement
|
||||
placeSpot :: (GenWorld,Room) -> Placement -> ( (GenWorld,Room), [Placement] )
|
||||
placeSpot (w,rm) plmnt = case plmnt of
|
||||
pl@Placement{_plGenUpdate = Just f} -> let (gp,pl') = f (_gParams w) pl
|
||||
in placeSpot (w & gParams .~ gp,rm) pl'
|
||||
pl@Placement{_plGenUpdate = Just f} -> let (gp,pl') = f (_genParams $ _gWorld w) pl
|
||||
in placeSpot (w & gWorld . genParams .~ gp,rm) pl'
|
||||
Placement{_plSpot = PSRoomRand i f} -> placeSpotRoomRand rm i f plmnt w
|
||||
Placement{_plSpot = PSPos extract eff fallback} -> placeSpotUsingLink w rm plmnt extract eff fallback
|
||||
Placement{} -> placePlainPSSpot w rm plmnt shift
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
module Dodge.Placement.TopDecoration where
|
||||
import Dodge.Data
|
||||
import Dodge.Room.Foreground
|
||||
import Dodge.LevelGen.Data
|
||||
--import Dodge.LevelGen.Data
|
||||
import Shape
|
||||
import Geometry
|
||||
import Color
|
||||
|
||||
Reference in New Issue
Block a user