MyNixOS website logo
Description

Aeson instances for the Tiled map editor.

The mighty Tiled 2D map editor is an open source app for creating tile based level maps. This package provides types and aeson instances to read Tiled json files.

aeson-tiled

Hackage

Types and instances for Tiled map editor map/.tmj and tileset/.tsj files.

aeson-tiled is the spiritual successor to htiled. htiled uses hxt which relies too heavily on Arrows and is rather hard to work with. Tiled's json export supports 100% of Tiled's features, so there doesn't seem to be much of a point to maintaining a large Arrows-based project when writing Aeson instances for Tiled types is much easier. Hence this project!

The package is geared toward minimal divergence from Tiled type specifications.

Tiled data format is taken at version 1.8.4. Should be compatible down to 1.6 (where the version field changed to string).

GHC versions are supported from 8.10 and follow Stackage LTS + Stackage Nightly + whatever is available on ghcup.

Module structure

The modules are designed for qualified imports and OverloadedRecordDot extension. Everyone has a Generic instance so you can use generic-lens or generic-optics if you wish.

  • Modules under Codec.Tiled.* are concerned with aeson representation, one type at a time. They provide JSON Value translation to concrete types, but not much beyond that. Your application most likely should use its own representation.
  • Modules under Data.Tiled.* are types specific to this package. They are more refined and may be utilized directly.
Metadata

Version

0.0.2.3

Platforms (77)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows