private UnityEngine.Texture2D FindFrameTexture(SpriteFactory.GameMasterSprite gameMasterSprite) { SpriteFactory.Editor.EditorMasterSpriteCore emsc = FileFinder.GetEditorMasterSprite(gameMasterSprite); if (emsc == null) { throw new System.Exception("EditorMasterSprite could not be found!"); } SpriteFactory.Editor.EditorMasterSprite.Frame frame = emsc.data.GetEditorPreviewFrame(); if (frame == null) { return(null); // no frame } return(frame.GetTexture()); }
// METHODS public static SpriteFactory.Editor.EditorMasterSpriteCore GetEditorMasterSprite(SpriteFactory.GameMasterSprite gameMasterSprite) { string emsSavePath = rootPath + editorMasterSpriteSavePath; string gmsFilePath = UnityEditor.AssetDatabase.GetAssetPath(gameMasterSprite); string gmsFileName = System.IO.Path.GetFileNameWithoutExtension(gmsFilePath); // convert GMS file name to EMS file name string gmsFileNameL = gmsFileName.ToLower(); string gmsTypeCodeL = gameMasterSpriteTypeCode.ToLower(); string sgTypeCodeL = spriteGroupTypeCode.ToLower(); string emscFileName; if (gmsFileNameL.StartsWith(gmsTypeCodeL)) // this is an ungrouped master sprite { emscFileName = editorMasterSpriteTypeCode + gmsFileName.Substring(gameMasterSpriteTypeCode.Length, gmsFileName.Length - (gameMasterSpriteTypeCode.Length * 2)) + editorMasterSpriteCoreTypeCode; // strip start and end type codes replacing with ~MS~, end MSC } else if (gmsFileNameL.StartsWith(sgTypeCodeL)) // this is a grouped master sprite { emscFileName = gmsFileName.Substring(0, gmsFileName.Length - gameMasterSpriteTypeCode.Length) + editorMasterSpriteCoreTypeCode; // strip off end and replace with ems core version emscFileName.Replace(fileNameDelimiter + gameMasterSpriteTypeCode + fileNameDelimiter, fileNameDelimiter + editorMasterSpriteTypeCode + fileNameDelimiter); // replace middle ~GMS~ with ems version } else { throw new System.Exception("Error trying to parse MasterSprite file name!"); } string emscFullPath = emsSavePath + directoryDelimiter + emscFileName + assetExtension; if (!System.IO.File.Exists(emscFullPath)) { return(null); } SpriteFactory.Editor.EditorMasterSpriteCore emsc = (SpriteFactory.Editor.EditorMasterSpriteCore)UnityEditor.AssetDatabase.LoadAssetAtPath(emscFullPath, typeof(SpriteFactory.Editor.EditorMasterSpriteCore)); return(emsc); }