export enum Projection {
  EQUIRECTANGULAR = 'equirectangular',
  MERCATOR = 'mercator',
  AZIMUTHAL_EQUIDISTANT = 'azimuthalEquidistant',
  CONIC_CONFORMAL = 'conicConformal',
}

export enum MapType {
  WATER_MASK = 'water-mask',
  BATHYMETRY = 'bathymetry',
  ELEVATION = 'elevation',
  CLOUDS = 'clouds',
  BIOME = 'biomes',
  REAL_COLOR = 'real-color',
}

export type WorldData = {
  version: string,
  musicCategory: number,
  width: number,
  height: number,
  spriteWaterLayer: number[][],
  spriteBackgroundLayer: number[][],
  spriteForegroundLayer: number[][],
  connections: number[][],
  tileTypes: number[][],
  vehicleBoundaries: number[][],
  stages: number[][],
  warps: number[][],
  vehicles: number[][],
  initialItems: number[][],
};

export enum WaterType {
  DEFAULT = 4,
  LIGHT = 5,
  LAVA = 6
}

export enum LandType {
  MESA = 0,
  DESERT = 1,
  FOREST = 2,
  PLAINS = 3,
  ICE = 4,
  BEACH = 5,
  MUD = 6,
}

export type Coords = [number, number];
export type Bounds = [Coords, Coords];

export enum Biome {
  OCEAN = 0x000070,
  PLAINS = 0x8db360,
  DESERT = 0xfa9418,
  MOUNTAINS = 0x606060,
  FOREST = 0x056621,
  TAIGA = 0x0b6659,
  SWAMP = 0x07f9b2,
  RIVER = 0x0000ff,
  SNOWY_TUNDRA = 0xffffff,
  SNOWY_MOUNTAINS = 0xa0a0a0,
  BEACH = 0xfade55,
  DESERT_HILLS = 0xd25f12,
  TAIGA_HILLS = 0x163933,
  JUNGLE = 0x537b09,
  JUNGLE_HILLS = 0x2c4205,
  JUNGLE_EDGE = 0x628b17,
  SNOWY_BEACH = 0xfaf0c0,
  GIANT_TREE_TAIGA = 0x596651,
  GIANT_TREE_TAIGA_HILLS = 0x454f3e,
  WOODED_MOUNTAINS = 0x507050,
  SAVANNA = 0xbdb25f,
  SAVANNA_PLATEAU = 0xa79d64,
  BADLANDS = 0xd94515,
  BADLANDS_PLATEAU = 0xca8c65,
  WARM_OCEAN = 0x0000ac,
  LUKEWARM_OCEAN = 0x000090,
  COLD_OCEAN = 0x202070,
  DEEP_WARM_OCEAN = 0x000050,
  DEEP_LUKEWARM_OCEAN = 0x000040,
  DEEP_COLD_OCEAN = 0x202038,
  DEEP_FROZEN_OCEAN = 0x404090,
  SUNFLOWER_PLAINS = 0xb5db88,
  DESERT_LAKES = 0xffbc40,
  FLOWER_FOREST = 0x2d8e49,
  TAIGA_MOUNTAINS = 0x338e81,
  MODIFIED_JUNGLE_EDGE = 0x8ab33f,
  DARK_FOREST_HILLS = 0x687942,
  SNOWY_TAIGA_MOUNTAINS = 0x597d72,
}
