Files
sbox-public/game/editor/MovieMaker/Code/Compiler/MovieCompiler.cs
s&box team 71f266059a Open source release
This commit imports the C# engine code and game files, excluding C++ source code.

[Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
2025-11-24 09:05:18 +00:00

30 lines
787 B
C#

using System.IO;
using System.Text.Json;
using System.Threading.Tasks;
using Sandbox.MovieMaker;
using Sandbox.Resources;
namespace Editor.MovieMaker;
#nullable enable
[ResourceIdentity( "movie" )]
public sealed class MovieCompiler : ResourceCompiler
{
protected override async Task<bool> Compile()
{
var source = await File.ReadAllTextAsync( Context.AbsolutePath );
source = Context.ScanJson( source );
var model = JsonSerializer.Deserialize<EmbeddedMovieResource>( source, EditorJsonOptions )!;
var compiled = model.EditorData?.Deserialize<MovieProject>( EditorJsonOptions )?.Compile() ?? model.Compiled;
model = new EmbeddedMovieResource { Compiled = compiled };
Context.Data.Write( JsonSerializer.Serialize( model, EditorJsonOptions ) );
return true;
}
}