improve stability of mikunyan-image

This commit is contained in:
Ishotihadus
2018-05-27 17:25:01 +09:00
parent 6a0cc560f5
commit e9d27cb7cc
+4
View File
@@ -56,14 +56,17 @@ assets.each do |asset|
asset.objects.select{|o| asset.object_type(o) == 'Sprite'}.each do |o| asset.objects.select{|o| asset.object_type(o) == 'Sprite'}.each do |o|
obj = asset.parse_object(o) obj = asset.parse_object(o)
next unless obj
name = obj.m_Name.value name = obj.m_Name.value
tex_id = obj.m_RD.texture.m_PathID.value tex_id = obj.m_RD.texture.m_PathID.value
unless textures[tex_id] unless textures[tex_id]
tex_obj = asset.parse_object(tex_id) tex_obj = asset.parse_object(tex_id)
if tex_obj
textures[tex_id] = Mikunyan::ImageDecoder.decode_object(tex_obj) if tex_obj textures[tex_id] = Mikunyan::ImageDecoder.decode_object(tex_obj) if tex_obj
json[tex_id] = {:name => tex_obj.m_Name.value, :width => textures[tex_id].width, :height => textures[tex_id].height, :path_id => tex_id, :sprites => []} json[tex_id] = {:name => tex_obj.m_Name.value, :width => textures[tex_id].width, :height => textures[tex_id].height, :path_id => tex_id, :sprites => []}
end end
end
if textures[tex_id] if textures[tex_id]
x = obj.m_Rect.x.value x = obj.m_Rect.x.value
@@ -80,6 +83,7 @@ assets.each do |asset|
json = [] json = []
asset.objects.select{|o| asset.object_type(o) == 'Texture2D'}.each do |o| asset.objects.select{|o| asset.object_type(o) == 'Texture2D'}.each do |o|
obj = asset.parse_object(o) obj = asset.parse_object(o)
next unless obj
name = obj.m_Name.value name = obj.m_Name.value
image = Mikunyan::ImageDecoder.decode_object(obj) image = Mikunyan::ImageDecoder.decode_object(obj)
if image if image