License | BSD-3-Clause |
---|---|
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Definitions of "structures" for use within a map, as well as logic for combining them.
Synopsis
- data NamedStructure c = NamedStructure {
- name :: StructureName
- structure :: PStructure c
- type InheritedStructureDefs = [NamedStructure (Maybe (PCell Entity))]
- data PStructure c = Structure {
- area :: [[c]]
- structures :: [NamedStructure c]
- placements :: [Placement]
- waypoints :: [Waypoint]
- data MergedStructure c = MergedStructure [[c]] [Originated Waypoint]
- overlaySingleStructure :: Map StructureName (PStructure (Maybe a)) -> (Placement, PStructure (Maybe a)) -> MergedStructure (Maybe a) -> MergedStructure (Maybe a)
- mergeStructures :: Map StructureName (PStructure (Maybe a)) -> Maybe Placement -> PStructure (Maybe a) -> MergedStructure (Maybe a)
- paintMap :: MonadFail m => Maybe Char -> WorldPalette e -> Text -> m ([[Maybe (PCell e)]], [Waypoint])
- readMap :: Applicative f => (Char -> f b) -> Text -> f [[b]]
Documentation
data NamedStructure c Source #
Instances
Show c => Show (NamedStructure c) Source # | |
Defined in Swarm.Game.Scenario.Topography.Structure showsPrec :: Int -> NamedStructure c -> ShowS # show :: NamedStructure c -> String # showList :: [NamedStructure c] -> ShowS # | |
Eq c => Eq (NamedStructure c) Source # | |
Defined in Swarm.Game.Scenario.Topography.Structure (==) :: NamedStructure c -> NamedStructure c -> Bool # (/=) :: NamedStructure c -> NamedStructure c -> Bool # | |
FromJSONE (EntityMap, RobotMap) (NamedStructure (Maybe (PCell Entity))) Source # | |
Defined in Swarm.Game.Scenario.Topography.Structure | |
FromJSONE (WorldMap, InheritedStructureDefs, EntityMap, RobotMap) WorldDescription Source # | |
type InheritedStructureDefs = [NamedStructure (Maybe (PCell Entity))] Source #
data PStructure c Source #
Structure | |
|
Instances
Show c => Show (PStructure c) Source # | |
Defined in Swarm.Game.Scenario.Topography.Structure showsPrec :: Int -> PStructure c -> ShowS # show :: PStructure c -> String # showList :: [PStructure c] -> ShowS # | |
Eq c => Eq (PStructure c) Source # | |
Defined in Swarm.Game.Scenario.Topography.Structure (==) :: PStructure c -> PStructure c -> Bool # (/=) :: PStructure c -> PStructure c -> Bool # | |
FromJSONE (EntityMap, RobotMap) (PStructure (Maybe (PCell Entity))) Source # | |
Defined in Swarm.Game.Scenario.Topography.Structure |
data MergedStructure c Source #
MergedStructure [[c]] [Originated Waypoint] |
overlaySingleStructure :: Map StructureName (PStructure (Maybe a)) -> (Placement, PStructure (Maybe a)) -> MergedStructure (Maybe a) -> MergedStructure (Maybe a) Source #
Destructively overlays one direct child structure upon the input structure. However, the child structure is assembled recursively.
mergeStructures :: Map StructureName (PStructure (Maybe a)) -> Maybe Placement -> PStructure (Maybe a) -> MergedStructure (Maybe a) Source #
paintMap :: MonadFail m => Maybe Char -> WorldPalette e -> Text -> m ([[Maybe (PCell e)]], [Waypoint]) Source #
"Paint" a world map using a WorldPalette
, turning it from a raw
string into a nested list of PCell
values by looking up each
character in the palette, failing if any character in the raw map
is not contained in the palette.