示例#1
0
        public static Texture ReplaceTexture(Texture original)
        {
            if (original == null)
            {
                //Debug.Log("original is null");
                return(original);
            }

            if (!(TextureReplacements.ContainsKey(original.name)))
            {
                return(original);
            }

            Debug.Log($"Replacing {original.name} with {TextureReplacements[original.name].Name}");

            return(GetTexture(TextureReplacements[original.name].Name));
        }
        public static void Load(string contentPackFile)
        {
            if (Directory.Exists(Path.Combine(GameController.GamePath, "ContentPacks")))
            {
                if (!File.Exists(contentPackFile))
                {
                    return;
                }
                foreach (var line in File.ReadAllLines(contentPackFile))
                {
                    switch (line.CountSplits("|"))
                    {
                    case 2:
                        //ResolutionChange
                        var textureName = line.GetSplit(0, "|");
                        var resolution  = Convert.ToInt32(line.GetSplit(1, "|"));

                        if (!TextureResolutions.ContainsKey(textureName))
                        {
                            TextureResolutions.Add(textureName, resolution);
                        }
                        break;

                    case 4:
                        //TextureReplacement
                        var oldTextureName = line.GetSplit(0, "|");
                        var newTextureName = line.GetSplit(2, "|");
                        var oRs            = line.GetSplit(1, "|");
                        //oRS = oldRectangleSource
                        var nRs = line.GetSplit(3, "|");
                        //nRS = newRectangleSource

                        var oldTextureSource = new TextureSource(oldTextureName, new Rectangle(Convert.ToInt32(oRs.GetSplit(0)), Convert.ToInt32(oRs.GetSplit(1)), Convert.ToInt32(oRs.GetSplit(2)), Convert.ToInt32(oRs.GetSplit(3))));
                        var newTextureSource = new TextureSource(newTextureName, new Rectangle(Convert.ToInt32(nRs.GetSplit(0)), Convert.ToInt32(nRs.GetSplit(1)), Convert.ToInt32(nRs.GetSplit(2)), Convert.ToInt32(nRs.GetSplit(3))));

                        if (!TextureReplacements.ContainsKey(oldTextureSource))
                        {
                            TextureReplacements.Add(oldTextureSource, newTextureSource);
                        }

                        break;
                    }
                }
            }
        }