Here's a version that will work for people who still have Fb1.15 (hope you don't mind rick?)
Cool.
I am actually not using this to produce textures, rather I am using it to create a procedural landscape map that represents the current zoomed-in overworld map tile. Rather than storing the data in an array, I am just storing the seed value for the tile, and then generating the map using the above code. The seed ensures that the same random pattern is generated each time.
Instead of using a completely random function to populate the initial pattern, I am using a semi-random pattern composed of the tile type plus type values from neighboring tiles to generate the map. So if the tile is mainly woods, but borders a plains tile, the plains will be mixed in with the woods along the plains side and then added to the noise function to produce the map.