/// /// /// /// /// /// module Elements.RememberedHandler { //var target = document.getElementById("rememberedRoomsTarget"); var mapTarget = document.getElementById("mapTarget"); var lastMap : RoomRandomMap; var elements : { [xy : string] : RoomNode}; export function empty () { // while (target.firstChild) { // target.removeChild(target.firstChild); // } elements = {}; lastMap = undefined; while (mapTarget.firstChild) { mapTarget.removeChild(mapTarget.firstChild); } } export async function updateMap () { console.debug(Rulebook.getIndentation() + "[MAP] Creating Map"); let regions = Region.InRelation.getAllLeftType(WorldState.player.getRoom(), RegionRandom); let biggestRegion = regions[regions.length - 1]; if (biggestRegion == undefined) { empty(); return; } if (biggestRegion.map != lastMap) { empty(); } else { await updateOldMap(); return; } let map = biggestRegion.map; lastMap = map; map.updateAllLimits(); for (let y = map.highestY; y >= map.lowestY; y--) { let row = document.createElement("div"); row.classList.add("mapRow"); for (let x = map.lowestX; x <= map.highestX; x++) { let room = map.getRoom(x, y); let roomNode = new RoomNode(room); await roomNode.createRoomNameFloater(); let roomDiv = roomNode.getElement(); row.appendChild(roomDiv); elements[x.toString() + ";" + y.toString()] = roomNode; } mapTarget.appendChild(row); } await updateOldMap(); } export async function updateOldMap () { let map = lastMap; for (let y = map.highestY; y >= map.lowestY; y--) { for (let x = map.lowestX; x <= map.highestX; x++) { await elements[x.toString() + ";" + y.toString()].update(); } } } }