예제 #1
0
        private TextureConfig[] LoadAllTextures()
        {
            TextureConfig[] allConfigs = new ConfigLoader <TextureConfig>(new[] { config.textureFolder }).AllConfigs();

            // Load all files in Textures folder
            Texture2D[] sourceTextures = Resources.LoadAll <Texture2D>(config.textureFolder);

            Dictionary <string, Texture2D> sourceTexturesLookup = new Dictionary <string, Texture2D>();

            foreach (var texture in sourceTextures)
            {
                sourceTexturesLookup.Add(texture.name, texture);
            }

            for (int i = 0; i < allConfigs.Length; i++)
            {
                var cfg = allConfigs[i];

                for (int n = 0; n < cfg.textures.Length; n++)
                {
                    cfg.textures[n].texture2d = Texture2DFromConfig(cfg.textures[n], sourceTexturesLookup);
                }

                if (cfg.type == TextureConfigType.Connected)
                {
                    // Create all 48 possibilities from the 5 supplied textures
                    Texture2D[]             newTextures       = ConnectedTextures.ConnectedTexturesFromBaseTextures(cfg.textures);
                    TextureConfig.Texture[] connectedTextures = new TextureConfig.Texture[48];

                    for (int x = 0; x < newTextures.Length; x++)
                    {
                        connectedTextures[x].index     = x;
                        connectedTextures[x].texture2d = newTextures[x];
                    }

                    cfg.textures = connectedTextures;
                }
            }

            return(allConfigs);
        }