module FileData.Data2 where dataVersion :: Int dataVersion = 2 type Version = Int type Levels = [Level] data Data = Data Version Levels deriving (Show, Read) type Id = Int type Ids = [Id] type Entities = [Entity] type Layers = [Layer] type Gravity = Double data Level = Level Entities Layers deriving (Show, Read) data Layer = Layer Entities Gravity deriving (Show, Read) type Vector = (Double, Double, Double) type Box = (Vector, Vector) type Velocity = Double type Path = [Vector] type Bidirectional = Bool data Animation = Animation Velocity Path Bidirectional deriving (Show, Read) type Position = Vector type InitialPosition = Position type PositionOrAnimation = Either Position Animation type Bound = Box data Entity = Player Id InitialPosition | Enemy Id PositionOrAnimation | Platform Id PositionOrAnimation Bound | Star Id Position deriving (Show, Read)