Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
// Copyright (c) .NET Foundation and Contributors (https://dotnetfoundation.org/ & https://stride3d.net) and Silicon Studio Corp. (https://www.siliconstudio.co.jp)
// Distributed under the MIT license. See the LICENSE.md file in the project root for more information.
using System;
using System.Collections.Generic;
using System.IO;
using Stride.Core.Assets;
using Stride.Core.Assets.Compiler;
using Stride.Core.BuildEngine;
using Stride.Core.Serialization.Contents;
using Stride.Core.Mathematics;
using Stride.Assets.Sprite;
using Stride.Editor.Thumbnails;
Expand Down Expand Up @@ -48,6 +51,22 @@ public SpriteSheetThumbnailCommand(ThumbnailCompilerContext context, AssetItem a
{
}

public override IEnumerable<ObjectUrl> GetInputFiles()
{
foreach (var input in base.GetInputFiles())
yield return input;

var spriteSheet = (SpriteSheetAsset)Parameters.Asset;
if (spriteSheet?.Sprites == null)
yield break;

foreach (var sprite in spriteSheet.Sprites)
{
if (sprite.Source != null && File.Exists(sprite.Source))
yield return new ObjectUrl(UrlType.File, sprite.Source);
}
}

protected override void RenderSprites(RenderDrawContext context)
{
if (LoadedAsset == null || LoadedAsset.Sprites == null || LoadedAsset.Sprites.Count == 0)
Expand Down
21 changes: 21 additions & 0 deletions sources/engine/Stride.Assets/Sprite/SpriteSheetAssetCompiler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,27 @@ protected override void ComputeAssemblyHash(BinarySerializationWriter writer)
writer.Write(TextureSerializationData.Version);
}

public override IEnumerable<ObjectUrl> GetInputFiles()
{
if (Parameters.SheetAsset.Packing.Enabled)
{
// When packing, source images are read directly from disk
foreach (var sprite in Parameters.SheetAsset.Sprites)
{
if (sprite.Source != null && File.Exists(sprite.Source))
yield return new ObjectUrl(UrlType.File, sprite.Source);
}
}
else
{
// When not packing, textures are compiled by TextureConvertCommands so re-run when they change
foreach (var textureUrl in Parameters.ImageToTextureUrl.Values)
{
yield return new ObjectUrl(UrlType.Content, textureUrl);
}
}
}

protected override Task<ResultStatus> DoCommandOverride(ICommandContext commandContext)
{
var assetManager = new ContentManager(MicrothreadLocalDatabases.ProviderService);
Expand Down