private static IEnumerable <SdnFileEntry> LoadAssets(Spriter spriter, string rootFolder) { for (int i = 0; i < spriter.Folders.Length; ++i) { SpriterFolder folder = spriter.Folders[i]; for (int j = 0; j < folder.Files.Length; ++j) { SpriterFile file = folder.Files[j]; string path = rootFolder; path += "/"; path += file.Name; SdnFileEntry entry = new SdnFileEntry { FolderId = folder.Id, FileId = file.Id }; if (file.Type == SpriterFileType.Sound) { entry.Sound = ContentLoader.Load <AudioClip>(path); } else { entry.Sprite = ContentLoader.Load <Sprite>(path); } yield return(entry); } } }
private static IEnumerable <SdnFileEntry> LoadAssets(Spriter spriter, string rootFolder, SpriterDotNetBehaviour spriterDotNetBehaviour, bool andAssignAudioClips) { for (int i = 0; i < spriter.Folders.Length; ++i) { SpriterFolder folder = spriter.Folders[i]; for (int j = 0; j < folder.Files.Length; ++j) { SpriterFile file = folder.Files[j]; string path = rootFolder; path += "/"; path += file.Name; SdnFileEntry entry = new SdnFileEntry { FolderId = folder.Id, FileId = file.Id }; if (file.Type == SpriterFileType.Sound) { spriterDotNetBehaviour.StartCoroutine(GetAudioClip(entry, path, spriterDotNetBehaviour, andAssignAudioClips)); } else { entry.Sprite = LoadNewSprite(path); } yield return(entry); } } }
private string FormatPath(SpriterFolder folder, SpriterFile file, string spriterName) { string fileName = Path.GetFileNameWithoutExtension(file.Name); if (String.IsNullOrEmpty(folder.Name)) { return(String.Format("{0}/{1}", spriterName, fileName)); } return(String.Format("{0}/{1}/{2}", spriterName, folder.Name, fileName)); }
private void AddAtlasFolder(SpriterFolder folder, DefaultProviderFactory <ISprite, SoundEffect> factory) { int id = folder.AtlasId; TexturePackerSheet atlas = atlases[id]; Texture2D texture = LoadContent <Texture2D>(FormatPath(atlas.Meta.Image)); Dictionary <string, ImageInfo> imageInfos = infos[atlas]; foreach (SpriterFile file in folder.Files) { ImageInfo info = imageInfos[file.Name]; // "x", "y" = location in spritesheet, "w", "h" = trimmed unrotated image size Size frame = info.Frame; // "w", "h" = original image size Size source = info.SourceSize; // "x", "y" = trimmed offset - pixels trimmed from the top and left Size spriteSource = info.SpriteSourceSize; Rectangle sourceRectangle; bool rotated = false; if (info.Rotated) { sourceRectangle = new Rectangle(frame.X, frame.Y, frame.H, frame.W); rotated = true; } else { sourceRectangle = new Rectangle(frame.X, frame.Y, frame.W, frame.H); } float trimLeft = spriteSource.X; float trimRight = source.W - frame.W - spriteSource.X; float trimTop = spriteSource.Y; float trimBottom = source.H - frame.H - spriteSource.Y; int width = source.W; int height = source.H; TexturePackerSprite sprite = new TexturePackerSprite(texture, sourceRectangle, width, height, rotated, trimLeft, trimRight, trimTop, trimBottom); factory.SetSprite(Spriter, folder, file, sprite); } }
private void AddAtlasFolder(SpriterFolder folder, DefaultProviderFactory <Sprite, SoundEffect> factory) { SpriterAtlas atlas = atlases[folder.AtlasId]; Texture2D texture = content.Load <Texture2D>(FormatPath(atlas.Meta.Image)); Dictionary <string, ImageInfo> imageInfos = infos[atlas]; foreach (SpriterFile file in folder.Files) { ImageInfo info = imageInfos[file.Name]; // "x", "y" = location in spritesheet, "w", "h" = trimmed unrotated image size Size frame = info.Frame; // "w", "h" = original image size Size source = info.SourceSize; // "x", "y" = trimmed offset - pixels trimmed from the top and left Size spriteSource = info.SpriteSourceSize; Sprite sprite = new Sprite { Texture = texture, Width = source.W, Height = source.H }; sprite.TrimLeft = spriteSource.X; sprite.TrimRight = source.W - frame.W - spriteSource.X; sprite.TrimTop = spriteSource.Y; sprite.TrimBottom = source.H - frame.H - spriteSource.Y; if (info.Rotated) { sprite.SourceRectangle = new Rectangle(frame.X, frame.Y, frame.H, frame.W); sprite.Rotated = true; } else { sprite.SourceRectangle = new Rectangle(frame.X, frame.Y, frame.W, frame.H); } factory.SetSprite(Spriter, folder, file, sprite); } }
private void AddRegularFolder(SpriterFolder folder, DefaultProviderFactory <ISprite, SoundEffect> factory) { foreach (SpriterFile file in folder.Files) { string path = FormatPath(file.Name); if (file.Type == SpriterFileType.Sound) { SoundEffect sound = LoadContent <SoundEffect>(path); factory.SetSound(Spriter, folder, file, sound); } else { Texture2D texture = LoadContent <Texture2D>(path); TextureSprite sprite = new TextureSprite(texture); factory.SetSprite(Spriter, folder, file, sprite); } } }
private string FormatPath(SpriterFolder folder, SpriterFile file, string spriterName) { string fileName = Path.GetFileNameWithoutExtension(file.Name); if (String.IsNullOrEmpty(folder.Name)) return String.Format("{0}/{1}", spriterName, fileName); return String.Format("{0}/{1}/{2}", spriterName, folder.Name, fileName); }
public virtual void SetSound(Spriter spriter, SpriterFolder folder, SpriterFile file, TSound sound) { IAssetProvider <TSound> provider = SoundProviders.GetOrCreate(spriter); provider.Set(folder.Id, file.Id, sound); }
public virtual void SetSprite(Spriter spriter, SpriterFolder folder, SpriterFile file, TSprite sprite) { IAssetProvider <TSprite> provider = SpriteProviders.GetOrCreate(spriter); provider.Set(folder.Id, file.Id, sprite); }