Beispiel #1
0
        void Write(BaseMapData existing, AssetInfo info, ISerializer s)
        {
            (byte[] bytes, string script) = existing switch
            {
                MapData2D map2d => Write2D(map2d, info),
                MapData3D map3d => Write3D(map3d, info),
                _ => (null, null)
            };

            if (bytes != null)
            {
                s.Bytes(null, bytes, bytes.Length);
            }

            var disk          = Resolve <IFileSystem>();
            var scriptPattern = info.Get(AssetProperty.ScriptPattern, "");

            if (script == null || string.IsNullOrEmpty(scriptPattern))
            {
                return;
            }

            // TODO: Find a less hacky way of doing this
            var scriptPath = info.BuildFilename(scriptPattern, 0);
            var assetDir   = GetAssetDir(info);

            if (!disk.DirectoryExists(assetDir))
            {
                disk.CreateDirectory(assetDir);
            }
            disk.WriteAllText(Path.Combine(assetDir, scriptPath), script);
        }
Beispiel #2
0
    static string GetScriptFilename(AssetInfo info)
    {
        var scriptPattern = info.Get(AssetProperty.ScriptPattern, "");

        return(string.IsNullOrEmpty(scriptPattern) ? null : info.BuildFilename(scriptPattern, 0));
    }