Files
LuaCsForBarotraumaEP/Libraries/MonoGame.Framework/Src/Tools/Pipeline/Common/ProjectState.cs
2019-06-25 16:00:44 +03:00

57 lines
1.9 KiB
C#

// MonoGame - Copyright (C) The MonoGame Team
// This file is subject to the terms and conditions defined in
// file 'LICENSE.txt', which is part of this source code package.
using System.Collections.Generic;
using Microsoft.Xna.Framework.Content.Pipeline;
using Microsoft.Xna.Framework.Graphics;
namespace MonoGame.Tools.Pipeline
{
/// <summary>
/// Snapshot of a PipelineProject's state, used for undo/redo.
/// </summary>
internal class ProjectState
{
public string OutputDir;
public string IntermediateDir;
public List<string> References;
public TargetPlatform Platform;
public GraphicsProfile Profile;
public string Config;
public string OriginalPath;
/// <summary>
/// Create a ProjectState storing member values of the passed PipelineProject.
/// </summary>
public static ProjectState Get(PipelineProject proj)
{
var state = new ProjectState()
{
OriginalPath = proj.OriginalPath,
OutputDir = proj.OutputDir,
IntermediateDir = proj.IntermediateDir,
References = new List<string>(proj.References),
Platform = proj.Platform,
Profile = proj.Profile,
Config = proj.Config,
};
return state;
}
/// <summary>
/// Set a PipelineProject's member values from this state object.
/// </summary>
public void Apply(PipelineProject proj)
{
proj.OutputDir = OutputDir;
proj.IntermediateDir = IntermediateDir;
proj.References = new List<string>(References);
proj.Platform = Platform;
proj.Profile = Profile;
proj.Config = Config;
}
}
}