"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GRID_ENTITY_XML_MAP = void 0;
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
const ReadonlyMap_1 = require("../types/ReadonlyMap");
/**
 * This maps the GridEntityXMLType (i.e. the type contained in the room XML/STB file) to the
 * GridEntityType and the variant used by the game.
 */
exports.GRID_ENTITY_XML_MAP = new ReadonlyMap_1.ReadonlyMap([
    // 0
    [isaac_typescript_definitions_1.GridEntityXMLType.DECORATION, [isaac_typescript_definitions_1.GridEntityType.DECORATION, 0]],
    // 1000
    [isaac_typescript_definitions_1.GridEntityXMLType.ROCK, [isaac_typescript_definitions_1.GridEntityType.ROCK, isaac_typescript_definitions_1.RockVariant.NORMAL]],
    // 1001
    [isaac_typescript_definitions_1.GridEntityXMLType.ROCK_BOMB, [isaac_typescript_definitions_1.GridEntityType.ROCK_BOMB, 0]],
    // 1002
    [isaac_typescript_definitions_1.GridEntityXMLType.ROCK_ALT, [isaac_typescript_definitions_1.GridEntityType.ROCK_ALT, 0]],
    // 1003
    [isaac_typescript_definitions_1.GridEntityXMLType.ROCK_TINTED, [isaac_typescript_definitions_1.GridEntityType.ROCK_TINTED, 0]],
    // 1008
    [isaac_typescript_definitions_1.GridEntityXMLType.ROCK_ALT_2, [isaac_typescript_definitions_1.GridEntityType.ROCK_ALT_2, 0]],
    // 1009
    [
        isaac_typescript_definitions_1.GridEntityXMLType.ROCK_EVENT,
        [isaac_typescript_definitions_1.GridEntityType.ROCK_ALT_2, isaac_typescript_definitions_1.RockVariant.EVENT],
    ],
    // 1010
    [isaac_typescript_definitions_1.GridEntityXMLType.ROCK_SPIKED, [isaac_typescript_definitions_1.GridEntityType.ROCK_SPIKED, 0]],
    // 1011
    [isaac_typescript_definitions_1.GridEntityXMLType.ROCK_GOLD, [isaac_typescript_definitions_1.GridEntityType.ROCK_GOLD, 0]],
    // 1300
    [isaac_typescript_definitions_1.GridEntityXMLType.TNT, [isaac_typescript_definitions_1.GridEntityType.TNT, 0]],
    // GridEntityXMLType.FIREPLACE (1400) and GridEntityXMLType.RED_FIREPLACE (1410) are intentionally
    // not mapped; the game converts these to EntityType.FIREPLACE (33). Manually spawning the grid
    // version of the fireplace will result in a bugged entity.
    // 1490
    [
        isaac_typescript_definitions_1.GridEntityXMLType.POOP_RED,
        [isaac_typescript_definitions_1.GridEntityType.POOP, isaac_typescript_definitions_1.PoopGridEntityVariant.RED],
    ],
    // 1494
    [
        isaac_typescript_definitions_1.GridEntityXMLType.POOP_RAINBOW,
        [isaac_typescript_definitions_1.GridEntityType.POOP, isaac_typescript_definitions_1.PoopGridEntityVariant.RAINBOW],
    ],
    // 1495
    [
        isaac_typescript_definitions_1.GridEntityXMLType.POOP_CORNY,
        [isaac_typescript_definitions_1.GridEntityType.POOP, isaac_typescript_definitions_1.PoopGridEntityVariant.CORNY],
    ],
    // 1496
    [
        isaac_typescript_definitions_1.GridEntityXMLType.POOP_GOLDEN,
        [isaac_typescript_definitions_1.GridEntityType.POOP, isaac_typescript_definitions_1.PoopGridEntityVariant.GOLDEN],
    ],
    // 1497
    [
        isaac_typescript_definitions_1.GridEntityXMLType.POOP_BLACK,
        [isaac_typescript_definitions_1.GridEntityType.POOP, isaac_typescript_definitions_1.PoopGridEntityVariant.BLACK],
    ],
    // 1498
    [
        isaac_typescript_definitions_1.GridEntityXMLType.POOP_WHITE,
        [isaac_typescript_definitions_1.GridEntityType.POOP, isaac_typescript_definitions_1.PoopGridEntityVariant.WHITE],
    ],
    // GridEntityXMLType.POOP_GIGA (1499) is intentionally not mapped; the game converts this to four
    // different grid entities that are all next to each other:
    // - PoopVariant.GIGA_TOP_LEFT (7)
    // - PoopVariant.GIGA_TOP_RIGHT (8)
    // - PoopVariant.GIGA_BOTTOM_LEFT (9)
    // - PoopVariant.GIGA_BOTTOM_RIGHT (10)
    // 1500
    [isaac_typescript_definitions_1.GridEntityXMLType.POOP, [isaac_typescript_definitions_1.GridEntityType.POOP, isaac_typescript_definitions_1.PoopGridEntityVariant.NORMAL]],
    // 1501
    [
        isaac_typescript_definitions_1.GridEntityXMLType.POOP_CHARMING,
        [isaac_typescript_definitions_1.GridEntityType.POOP, isaac_typescript_definitions_1.PoopGridEntityVariant.CHARMING],
    ],
    // 1900
    [isaac_typescript_definitions_1.GridEntityXMLType.BLOCK, [isaac_typescript_definitions_1.GridEntityType.BLOCK, 0]],
    // 1901
    [isaac_typescript_definitions_1.GridEntityXMLType.PILLAR, [isaac_typescript_definitions_1.GridEntityType.PILLAR, 0]],
    // 1930
    [isaac_typescript_definitions_1.GridEntityXMLType.SPIKES, [isaac_typescript_definitions_1.GridEntityType.SPIKES, 0]],
    // 1931
    [isaac_typescript_definitions_1.GridEntityXMLType.SPIKES_ON_OFF, [isaac_typescript_definitions_1.GridEntityType.SPIKES_ON_OFF, 0]],
    // 1940
    [isaac_typescript_definitions_1.GridEntityXMLType.SPIDER_WEB, [isaac_typescript_definitions_1.GridEntityType.SPIDER_WEB, 0]],
    // 1999
    [isaac_typescript_definitions_1.GridEntityXMLType.WALL, [isaac_typescript_definitions_1.GridEntityType.WALL, 0]],
    // 3000
    [isaac_typescript_definitions_1.GridEntityXMLType.PIT, [isaac_typescript_definitions_1.GridEntityType.PIT, isaac_typescript_definitions_1.PitVariant.NORMAL]],
    // 3001
    [
        isaac_typescript_definitions_1.GridEntityXMLType.FISSURE_SPAWNER,
        [isaac_typescript_definitions_1.GridEntityType.PIT, isaac_typescript_definitions_1.PitVariant.FISSURE_SPAWNER],
    ],
    // 3009 - `GridEntityXMLType.PIT_EVENT` spawns as a normal pit with VarData equal to 1. VarData
    // must be manually handled by any code that uses this mapping.)
    [isaac_typescript_definitions_1.GridEntityXMLType.PIT_EVENT, [isaac_typescript_definitions_1.GridEntityType.PIT, isaac_typescript_definitions_1.PitVariant.NORMAL]],
    // 4000
    [isaac_typescript_definitions_1.GridEntityXMLType.LOCK, [isaac_typescript_definitions_1.GridEntityType.LOCK, 0]],
    // 4500
    [
        isaac_typescript_definitions_1.GridEntityXMLType.PRESSURE_PLATE,
        [isaac_typescript_definitions_1.GridEntityType.PRESSURE_PLATE, isaac_typescript_definitions_1.PressurePlateVariant.PRESSURE_PLATE],
    ],
    // 5000
    [
        isaac_typescript_definitions_1.GridEntityXMLType.STATUE_DEVIL,
        [isaac_typescript_definitions_1.GridEntityType.STATUE, isaac_typescript_definitions_1.StatueVariant.DEVIL],
    ],
    // 5001
    [
        isaac_typescript_definitions_1.GridEntityXMLType.STATUE_ANGEL,
        [isaac_typescript_definitions_1.GridEntityType.STATUE, isaac_typescript_definitions_1.StatueVariant.ANGEL],
    ],
    // 6100
    [isaac_typescript_definitions_1.GridEntityXMLType.TELEPORTER, [isaac_typescript_definitions_1.GridEntityType.TELEPORTER, 0]],
    // 9000
    [
        isaac_typescript_definitions_1.GridEntityXMLType.TRAPDOOR,
        [isaac_typescript_definitions_1.GridEntityType.TRAPDOOR, isaac_typescript_definitions_1.TrapdoorVariant.NORMAL],
    ],
    // 9100
    [
        isaac_typescript_definitions_1.GridEntityXMLType.CRAWL_SPACE,
        [isaac_typescript_definitions_1.GridEntityType.CRAWL_SPACE, isaac_typescript_definitions_1.CrawlSpaceVariant.NORMAL],
    ],
    // 10000
    [isaac_typescript_definitions_1.GridEntityXMLType.GRAVITY, [isaac_typescript_definitions_1.GridEntityType.GRAVITY, 0]],
]);
