new void Awake() { SetResolution(1, 1); //Heatmap = (i, j) => i + j; Heatmap = (i, j) => { int id = (Emitter as World).GetTileAt(new World.Coord(i, j)).Room.Id; return(id == -1 ? 244 : 200 * id); }; palette = File.ReadAllLines(StreamingAssets.ReadFile("Colormaps", "rainbow_bgyrm_35-85_c71_n256.csv")).Select( line => { string[] lineS = line.Split(','); return(new Color(float.Parse(lineS[0]), float.Parse(lineS[1]), float.Parse(lineS[2]))); } ).ToArray(); base.Awake(); name = "Overlay"; int paletteSize = palette.Length; // Palette texture generation paletteTexture = new Texture2D(tileSizeX, tileSizeY * paletteSize); Color[] colors = paletteTexture.GetPixels(); for (int s = 0; s < paletteSize; ++s) { Color baseColor = palette[s]; for (int i = 0; i < tileSizeX; ++i) { for (int j = 0; j < tileSizeY; ++j) { colors[(s * tileSizeX + i) * tileSizeY + j] = baseColor; //+ 3 * //new Color(UnityEngine.Random.Range(0.0f, .3f), // UnityEngine.Random.Range(0.0f, .3f), // UnityEngine.Random.Range(0.0f, .3f) //); } } } paletteTexture.SetPixels(colors); paletteTexture.Apply(false); }
public void GeneratePalette(string name) { palette = File.ReadAllLines(StreamingAssets.ReadFile("Colormaps", name)).Select( line => { string[] lineS = line.Split(','); return(new Color(float.Parse(lineS[0]), float.Parse(lineS[1]), float.Parse(lineS[2]))); } ).ToArray(); int paletteSize = palette.Length; paletteTexture = new Texture2D(tileSizeX, tileSizeY * (paletteSize + 1)); Color[] colors = paletteTexture.GetPixels(); for (int s = 0; s < paletteSize; ++s) { Color baseColor = palette[s]; for (int i = 0; i < tileSizeX; ++i) { for (int j = 0; j < tileSizeY; ++j) { colors[(s * tileSizeX + i) * tileSizeY + j] = baseColor; } } } Color transparent = new Color(0f, 0f, 0f, 1.0f); for (int i = 0; i < tileSizeX; ++i) { for (int j = 0; j < tileSizeY; ++j) { colors[(paletteSize * tileSizeX + i) * tileSizeY + j] = transparent; } } paletteTexture.SetPixels(colors); paletteTexture.Apply(false); }