void LoadMap(bool deleteMinimap) { dir = gameinfo.GetMap().startingDir; compass.text = directionText[(int)dir]; LoadSpriteset(); mapGrid = new List <List <Color> >(); blockGrid = new List <List <BlockType> >(); minimap = new List <List <Color> >(); frameBackground = new Color(); if (deleteMinimap) { minimapViewed = new List <List <bool> >(); } ColorUtility.TryParseHtmlString("#1d2025", out frameBackground); for (int i = gameinfo.GetMap().map.height - 1; i >= 0; --i) { mapGrid.Add(gameinfo.GetMap().map.GetPixels().OfType <Color>().ToList().GetRange(i * gameinfo.GetMap().map.width, gameinfo.GetMap().map.width)); blockGrid.Add(new List <BlockType>()); minimap.Add(new List <Color>()); minimapViewed.Add(new List <bool>()); } for (int i = 0; i < mapGrid.Count; ++i) { for (int j = 0; j < mapGrid[0].Count; ++j) { if (mapGrid[i][j] == new Color(1, 1, 1)) //white { blockGrid[i].Add(BlockType.Empty); minimap[i].Add(new Color(1, 1, 1)); minimapViewed[i].Add(false); } else if (mapGrid[i][j] == new Color(0, 0, 0)) //black { blockGrid[i].Add(BlockType.Block); minimap[i].Add(new Color(0, 0, 0)); minimapViewed[i].Add(false); } else if (gameinfo.GetEncounterColors().Contains(mapGrid[i][j])) //black { blockGrid[i].Add(BlockType.Door); minimap[i].Add(new Color(1, 1, 1)); minimapViewed[i].Add(false); } else if (gameinfo.GetSignColors().Contains(mapGrid[i][j])) //black { blockGrid[i].Add(BlockType.Sign); minimap[i].Add(new Color(1, 1, 1)); minimapViewed[i].Add(false); } else { blockGrid[i].Add(BlockType.Empty); minimap[i].Add(new Color(1, 1, 1)); minimapViewed[i].Add(false); } if (mapGrid[i][j] == playerSpawn) { minimap[i][j] = new Color(1, 0, 0); minimapViewed[i][j] = true; cameraX = j; cameraY = i; lastCameraX = cameraX; lastCameraY = cameraY; } if (mapGrid[i][j] == gameinfo.GetEndingColor()) { blockGrid[i][j] = BlockType.Exit; minimap[i][j] = new Color(0, 1, 0); minimapViewed[i][j] = true; gameinfo.SetEnding(i, j); } for (int k = 0; k < gameinfo.GetEncounters().Count; ++k) { if (gameinfo.GetEncounters()[k].GetColor().Equals(mapGrid[i][j])) { gameinfo.GetEncounters()[k].SetCoords(i, j); } } for (int k = 0; k < gameinfo.GetSigns().Count; ++k) { if (gameinfo.GetSigns()[k].GetColor().Equals(mapGrid[i][j])) { gameinfo.GetSigns()[k].SetCoords(i, j); } } } } minimapTex = new Texture2D(minimap.Count, minimap[0].Count); Color[] texColors = minimapTex.GetPixels(); for (int i = 0; i < texColors.Length; ++i) { texColors[i] = new Color(255, 255, 255); } minimapTex.SetPixels(texColors); minimapTex.filterMode = FilterMode.Point; MovementStuff(); UpdateMinimap(); minimapImage.gameObject.SetActive(false); minimapImage.gameObject.SetActive(true); DisplayWalls(); }