/// <summary> /// Initializes a new instance of the <see cref="EditorContentLoader"/> class /// </summary> /// <param name="gameDispatcher">The dispatcher to the game thread.</param> /// <param name="logger">The logger to use to log operations.</param> /// <param name="asset">The asset associated with this instance.</param> /// <param name="game">The editor game associated with this instance.</param> public EditorContentLoader(IDispatcherService gameDispatcher, ILogger logger, AssetViewModel asset, EditorServiceGame game) { if (asset == null) { throw new ArgumentNullException(nameof(asset)); } GameDispatcher = gameDispatcher ?? throw new ArgumentNullException(nameof(gameDispatcher)); Session = asset.Session; Session.AssetPropertiesChanged += AssetPropertiesChanged; Game = game ?? throw new ArgumentNullException(nameof(game)); Asset = asset; Manager = new LoaderReferenceManager(GameDispatcher, this); this.logger = logger; database = asset.ServiceProvider.Get <GameStudioDatabase>(); settingsProvider = asset.ServiceProvider.Get <GameSettingsProviderService>(); settingsProvider.GameSettingsChanged += GameSettingsChanged; currentRenderingMode = settingsProvider.CurrentGameSettings.GetOrCreate <EditorSettings>().RenderingMode; currentColorSpace = settingsProvider.CurrentGameSettings.GetOrCreate <RenderingSettings>().ColorSpace; currentNavigationGroupsHash = settingsProvider.CurrentGameSettings.GetOrCreate <NavigationSettings>().ComputeGroupsHash(); }
public Task Clear([NotNull] LoaderReferenceManager manager, AbsoluteId referencerId, AssetId contentId) { return(manager.ClearContentReference(referencerId, contentId, contentNode, index)); }