mirror of
https://github.com/BlackMATov/unity-flash-tools.git
synced 2025-12-13 11:39:54 +07:00
More readable conversion warnings
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
###### Version 1.3.10
|
###### Version 1.3.10
|
||||||
* Fix (conversion error: 'Error: scaleSelection: Argument number 1 is invalid.')
|
* Fix (conversion error: 'Error: scaleSelection: Argument number 1 is invalid.')
|
||||||
|
* More readable conversion warnings
|
||||||
|
|
||||||
###### Version 1.3.9
|
###### Version 1.3.9
|
||||||
* Not save generated meshes in scene
|
* Not save generated meshes in scene
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ namespace FTEditor.Postprocessors {
|
|||||||
} catch ( Exception e ) {
|
} catch ( Exception e ) {
|
||||||
Debug.LogErrorFormat(
|
Debug.LogErrorFormat(
|
||||||
AssetDatabase.LoadMainAssetAtPath(swf_path),
|
AssetDatabase.LoadMainAssetAtPath(swf_path),
|
||||||
"<b>[FlashTools]</b> Parsing swf error: {0}\nPath: {1}",
|
"<b>[FlashTools]</b> Parsing swf error: {0}\nSwf path: {1}",
|
||||||
e.Message, swf_path);
|
e.Message, swf_path);
|
||||||
return false;
|
return false;
|
||||||
} finally {
|
} finally {
|
||||||
@@ -90,7 +90,7 @@ namespace FTEditor.Postprocessors {
|
|||||||
});
|
});
|
||||||
return new SwfAssetData{
|
return new SwfAssetData{
|
||||||
FrameRate = decoder.UncompressedHeader.FrameRate,
|
FrameRate = decoder.UncompressedHeader.FrameRate,
|
||||||
Symbols = LoadSymbols(library, decoder),
|
Symbols = LoadSymbols(swf_path, library, decoder),
|
||||||
Bitmaps = LoadBitmaps(library)};
|
Bitmaps = LoadBitmaps(library)};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,10 +101,10 @@ namespace FTEditor.Postprocessors {
|
|||||||
// ---------------------------------------------------------------------
|
// ---------------------------------------------------------------------
|
||||||
|
|
||||||
static List<SwfSymbolData> LoadSymbols(
|
static List<SwfSymbolData> LoadSymbols(
|
||||||
SwfLibrary library, SwfDecoder decoder)
|
string swf_path, SwfLibrary library, SwfDecoder decoder)
|
||||||
{
|
{
|
||||||
var symbols = new List<SwfSymbolData>();
|
var symbols = new List<SwfSymbolData>();
|
||||||
symbols.Add(LoadSymbol("_Stage_", library, decoder.Tags));
|
symbols.Add(LoadSymbol(swf_path, "_Stage_", library, decoder.Tags));
|
||||||
var sprite_defs = library.Defines.Values
|
var sprite_defs = library.Defines.Values
|
||||||
.OfType<SwfLibrarySpriteDefine>()
|
.OfType<SwfLibrarySpriteDefine>()
|
||||||
.Where(p => !string.IsNullOrEmpty(p.ExportName))
|
.Where(p => !string.IsNullOrEmpty(p.ExportName))
|
||||||
@@ -113,24 +113,33 @@ namespace FTEditor.Postprocessors {
|
|||||||
var def = sprite_defs[i];
|
var def = sprite_defs[i];
|
||||||
var name = def.ExportName;
|
var name = def.ExportName;
|
||||||
var tags = def.ControlTags.Tags;
|
var tags = def.ControlTags.Tags;
|
||||||
symbols.Add(LoadSymbol(name, library, tags));
|
symbols.Add(LoadSymbol(swf_path, name, library, tags));
|
||||||
}
|
}
|
||||||
return symbols;
|
return symbols;
|
||||||
}
|
}
|
||||||
|
|
||||||
static SwfSymbolData LoadSymbol(
|
static SwfSymbolData LoadSymbol(
|
||||||
string symbol_name, SwfLibrary library, List<SwfTagBase> tags)
|
string swf_path, string symbol_name, SwfLibrary library, List<SwfTagBase> tags)
|
||||||
{
|
{
|
||||||
|
var warnings = new HashSet<string>();
|
||||||
var disp_lst = new SwfDisplayList();
|
var disp_lst = new SwfDisplayList();
|
||||||
var executer = new SwfContextExecuter(library, 0, warning_msg => {
|
var executer = new SwfContextExecuter(library, 0, warning_msg => {
|
||||||
Debug.LogWarningFormat("<b>[FlashTools]</b> {0}", warning_msg);
|
warnings.Add(warning_msg);
|
||||||
});
|
});
|
||||||
var symbol_frames = new List<SwfFrameData>();
|
var symbol_frames = new List<SwfFrameData>();
|
||||||
while ( executer.NextFrame(tags, disp_lst) ) {
|
while ( executer.NextFrame(tags, disp_lst) ) {
|
||||||
_progressBar.UpdateProgress(
|
_progressBar.UpdateProgress(
|
||||||
string.Format("swf symbols loading ({0})", symbol_name),
|
string.Format("swf symbols loading ({0})", symbol_name),
|
||||||
(float)(executer.CurrentTag + 1) / tags.Count);
|
(float)(executer.CurrentTag + 1) / tags.Count);
|
||||||
symbol_frames.Add(LoadSymbolFrameData(library, disp_lst));
|
symbol_frames.Add(LoadSymbolFrameData(library, disp_lst, warning_msg => {
|
||||||
|
warnings.Add(warning_msg);
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
foreach ( var warning in warnings ) {
|
||||||
|
Debug.LogWarningFormat(
|
||||||
|
AssetDatabase.LoadMainAssetAtPath(swf_path),
|
||||||
|
"<b>[FlashTools]</b> {0}\nSwf path: {1}",
|
||||||
|
warning, swf_path);
|
||||||
}
|
}
|
||||||
return new SwfSymbolData{
|
return new SwfSymbolData{
|
||||||
Name = symbol_name,
|
Name = symbol_name,
|
||||||
@@ -138,7 +147,7 @@ namespace FTEditor.Postprocessors {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static SwfFrameData LoadSymbolFrameData(
|
static SwfFrameData LoadSymbolFrameData(
|
||||||
SwfLibrary library, SwfDisplayList display_list)
|
SwfLibrary library, SwfDisplayList display_list, System.Action<string> warning_log)
|
||||||
{
|
{
|
||||||
var frame = new SwfFrameData{
|
var frame = new SwfFrameData{
|
||||||
Anchor = display_list.FrameAnchors.Count > 0
|
Anchor = display_list.FrameAnchors.Count > 0
|
||||||
@@ -154,7 +163,8 @@ namespace FTEditor.Postprocessors {
|
|||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
null,
|
null,
|
||||||
frame);
|
frame,
|
||||||
|
warning_log);
|
||||||
}
|
}
|
||||||
|
|
||||||
static SwfFrameData AddDisplayListToFrame(
|
static SwfFrameData AddDisplayListToFrame(
|
||||||
@@ -166,23 +176,26 @@ namespace FTEditor.Postprocessors {
|
|||||||
ushort parent_masked,
|
ushort parent_masked,
|
||||||
ushort parent_mask,
|
ushort parent_mask,
|
||||||
List<SwfInstanceData> parent_masks,
|
List<SwfInstanceData> parent_masks,
|
||||||
SwfFrameData frame)
|
SwfFrameData frame,
|
||||||
|
System.Action<string> warning_log)
|
||||||
{
|
{
|
||||||
var inst_filter_types = display_list.Instances.Values
|
if ( warning_log != null ) {
|
||||||
.Where(p => p.Visible && p.FilterList.Filters.Count > 0)
|
var inst_filter_types = display_list.Instances.Values
|
||||||
.SelectMany(p => p.FilterList.Filters)
|
.Where(p => p.Visible && p.FilterList.Filters.Count > 0)
|
||||||
.Select(p => p.Type)
|
.SelectMany(p => p.FilterList.Filters)
|
||||||
.Distinct();
|
.Select(p => p.Type)
|
||||||
foreach ( var filter_type in inst_filter_types ) {
|
.Distinct();
|
||||||
Debug.LogWarningFormat(
|
foreach ( var filter_type in inst_filter_types ) {
|
||||||
"<b>[FlashTools]</b> SwfSurfaceFilters. Unsupported filter type '{0}'",
|
warning_log(string.Format(
|
||||||
filter_type);
|
"Unsupported filter type '{0}'",
|
||||||
|
filter_type));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var self_masks = new List<SwfInstanceData>();
|
var self_masks = new List<SwfInstanceData>();
|
||||||
foreach ( var inst in display_list.Instances.Values.Where(p => p.Visible) ) {
|
foreach ( var inst in display_list.Instances.Values.Where(p => p.Visible) ) {
|
||||||
CheckSelfMasks(self_masks, inst.Depth, frame);
|
CheckSelfMasks(self_masks, inst.Depth, frame);
|
||||||
var child_matrix = parent_matrix * inst.Matrix .ToUMatrix();
|
var child_matrix = parent_matrix * inst.Matrix .ToUMatrix();
|
||||||
var child_blend_mode = parent_blend_mode * inst.BlendMode .ToBlendModeData();
|
var child_blend_mode = parent_blend_mode * inst.BlendMode .ToBlendModeData(warning_log);
|
||||||
var child_color_transform = parent_color_transform * inst.ColorTransform.ToColorTransData();
|
var child_color_transform = parent_color_transform * inst.ColorTransform.ToColorTransData();
|
||||||
switch ( inst.Type ) {
|
switch ( inst.Type ) {
|
||||||
case SwfDisplayInstanceType.Shape:
|
case SwfDisplayInstanceType.Shape:
|
||||||
@@ -209,7 +222,8 @@ namespace FTEditor.Postprocessors {
|
|||||||
parent_mask,
|
parent_mask,
|
||||||
parent_masks,
|
parent_masks,
|
||||||
self_masks,
|
self_masks,
|
||||||
frame);
|
frame,
|
||||||
|
warning_log);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new UnityException(string.Format(
|
throw new UnityException(string.Format(
|
||||||
@@ -278,7 +292,8 @@ namespace FTEditor.Postprocessors {
|
|||||||
ushort parent_mask,
|
ushort parent_mask,
|
||||||
List<SwfInstanceData> parent_masks,
|
List<SwfInstanceData> parent_masks,
|
||||||
List<SwfInstanceData> self_masks,
|
List<SwfInstanceData> self_masks,
|
||||||
SwfFrameData frame)
|
SwfFrameData frame,
|
||||||
|
System.Action<string> warning_log)
|
||||||
{
|
{
|
||||||
var sprite_def = library.FindDefine<SwfLibrarySpriteDefine>(inst.Id);
|
var sprite_def = library.FindDefine<SwfLibrarySpriteDefine>(inst.Id);
|
||||||
if ( sprite_def != null ) {
|
if ( sprite_def != null ) {
|
||||||
@@ -299,7 +314,8 @@ namespace FTEditor.Postprocessors {
|
|||||||
: (inst.ClipDepth > 0
|
: (inst.ClipDepth > 0
|
||||||
? self_masks
|
? self_masks
|
||||||
: null),
|
: null),
|
||||||
frame);
|
frame,
|
||||||
|
warning_log);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -360,7 +376,9 @@ namespace FTEditor.Postprocessors {
|
|||||||
return mat;
|
return mat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SwfBlendModeData ToBlendModeData(this SwfBlendMode self) {
|
public static SwfBlendModeData ToBlendModeData(
|
||||||
|
this SwfBlendMode self, System.Action<string> warning_log)
|
||||||
|
{
|
||||||
switch ( self.Value ) {
|
switch ( self.Value ) {
|
||||||
case SwfBlendMode.Mode.Normal:
|
case SwfBlendMode.Mode.Normal:
|
||||||
return new SwfBlendModeData(SwfBlendModeData.Types.Normal);
|
return new SwfBlendModeData(SwfBlendModeData.Types.Normal);
|
||||||
@@ -387,9 +405,11 @@ namespace FTEditor.Postprocessors {
|
|||||||
case SwfBlendMode.Mode.Hardlight:
|
case SwfBlendMode.Mode.Hardlight:
|
||||||
return new SwfBlendModeData(SwfBlendModeData.Types.Hardlight);
|
return new SwfBlendModeData(SwfBlendModeData.Types.Hardlight);
|
||||||
default:
|
default:
|
||||||
Debug.LogWarningFormat(
|
if ( warning_log != null ) {
|
||||||
"<b>[FlashTools]</b> SwfBlendMode. Unsupported blend mode '{0}'",
|
warning_log(string.Format(
|
||||||
self.Value);
|
"Unsupported blend mode '{0}'",
|
||||||
|
self.Value));
|
||||||
|
}
|
||||||
return new SwfBlendModeData(SwfBlendModeData.Types.Normal);
|
return new SwfBlendModeData(SwfBlendModeData.Types.Normal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -305,7 +305,7 @@ namespace FTSwfTools {
|
|||||||
|
|
||||||
void TagToWarningLog(SwfTagBase tag) {
|
void TagToWarningLog(SwfTagBase tag) {
|
||||||
if ( WarningLog != null ) {
|
if ( WarningLog != null ) {
|
||||||
WarningLog(string.Format("SwfContextExecuter: {0}", tag));
|
WarningLog(string.Format("{0}", tag));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ https://gist.github.com/talecrafter/111ea3345911bd238f4998b4d5a04bf3
|
|||||||
*** Улучшения
|
*** Улучшения
|
||||||
**** TODO Сделать возможность задавать локальные настройки для папки, а не только глобальные
|
**** TODO Сделать возможность задавать локальные настройки для папки, а не только глобальные
|
||||||
**** TODO Note на ассет когда текстура сжата до максимального размера
|
**** TODO Note на ассет когда текстура сжата до максимального размера
|
||||||
**** TODO У ворнингов конверта нет контекста
|
**** DONE У ворнингов конверта нет контекста
|
||||||
**** TODO Поддержка юнити-атласов
|
**** TODO Поддержка юнити-атласов
|
||||||
**** TODO Поддержка задавать теги и сплит текстур на альфу для etc
|
**** TODO Поддержка задавать теги и сплит текстур на альфу для etc
|
||||||
*** Баги
|
*** Баги
|
||||||
|
|||||||
Reference in New Issue
Block a user