justgook / elm-tiled / Tiled.Level


type Level
    = Orthogonal LevelData
    | Isometric LevelData
    | Staggered StaggeredLevelData
    | Hexagonal StaggeredLevelData

Tiled can export maps as JSON files. That is elm representation of that structure.

decode : Json.Decode.Decoder Level

encode : Level -> Json.Encode.Value

Level Data


type alias LevelData =
ExtensibleLevelData {}


type alias StaggeredLevelData =
ExtensibleLevelData { hexsidelength : Basics.Int
, staggeraxis : Axis
, staggerindex : OddOrEven 
}


type alias ExtensibleLevelData addition =
{ addition | backgroundcolor : String
, height : Basics.Int
, infinite : Basics.Bool
, layers : List Tiled.Layer.Layer
, nextobjectid : Basics.Int
, renderorder : RenderOrder
, tiledversion : String
, tileheight : Basics.Int
, tilesets : List Tiled.Tileset.Tileset
, tilewidth : Basics.Int
, version : Basics.Float
, width : Basics.Int
, properties : Tiled.Properties.Properties 
}

Helper Types


type Axis
    = X
    | Y

Used in staggeraxis property of Level - (staggered / hexagonal maps only)


type OddOrEven
    = Odd
    | Even

Used in staggerindex property of Level - (staggered / hexagonal maps only)


type RenderOrder
    = RightDown
    | RightUp
    | LeftDown
    | LeftUp

Used in renderorder property of Level - (orthogonal maps only)