25 Commits

Author SHA1 Message Date
Ishotihadus c32481cc13 Bump version to v3.9.13 2026-01-11 01:41:47 +09:00
Ishotihadus a462047004 Fix format 2026-01-11 01:41:41 +09:00
Ishotihadus 13711a710a Add several typetrees 2026-01-11 01:40:31 +09:00
Ishotihadus 01701b4d86 Bump version to 3.9.12 2023-06-28 14:13:12 +09:00
Ishotihadus be0d1fc84d Add TypeTrees 2023-06-28 14:13:00 +09:00
Ishotihadus 2b07a718f7 Bump version to 3.9.11 2023-05-16 11:37:00 +09:00
Ishotihadus 59345b5d83 Fix Unity 2021 2023-05-16 11:09:15 +09:00
Ishotihadus 4db2517018 Bump version to 3.9.10 2022-11-23 21:43:48 +09:00
Ishotihadus 95573408d5 Add default TypeTrees 2022-11-23 21:43:22 +09:00
Ishotihadus d46e96b844 Fix extconf 2022-11-23 21:37:10 +09:00
Ishotihadus 4d204a9c45 Add comment to README by the suggestion #4 2022-11-23 21:20:10 +09:00
Ishotihadus 5c5ec70784 Fix Rakefile 2022-11-23 21:12:42 +09:00
Ishotihadus 5564af7ba9 Improve code format 2022-11-23 21:07:33 +09:00
Ishotihadus b0991a8bf6 Add Ruby 3.2 support 2022-11-23 21:03:21 +09:00
Ishotihadus de47d41874 bump version to 3.9.9 2021-08-10 17:40:37 +09:00
Ishotihadus 3f7a4b3c38 add default typetrees 2021-08-10 17:40:01 +09:00
Ishotihadus d0312af3d9 fix unity 2020 2021-08-10 17:39:55 +09:00
Ishotihadus 6972cefb1f improve robustness of mikunyan-image 2021-06-22 13:38:04 +09:00
Ishotihadus 0485c187ec add default typetrees 2021-06-15 14:16:41 +09:00
Ishotihadus a1c268e469 refactoring 2020-06-20 18:50:22 +09:00
Ishotihadus 387a683ff0 imporove mikunyan-image 2020-06-20 18:50:02 +09:00
Ishotihadus 9a520637e9 add Asset#path_id 2020-06-20 17:56:42 +09:00
Ishotihadus d37c72de80 improve Asset::ObjectEntry#type 2020-03-05 01:39:53 +09:00
Ishotihadus 0ab1fd27a6 bump version to 3.9.8 2020-03-01 02:32:26 +09:00
Ishotihadus 652a437d14 add support for version 21 & 22 2020-03-01 02:29:33 +09:00
96 changed files with 483 additions and 139 deletions
+42
View File
@@ -0,0 +1,42 @@
AllCops:
TargetRubyVersion: 2.6
Metrics/AbcSize:
Max: 170
Metrics/BlockLength:
Max: 250
Metrics/ClassLength:
Max: 1000
Metrics/CyclomaticComplexity:
Max: 70
Metrics/MethodLength:
Max: 100
Metrics/ModuleLength:
Max: 1000
Metrics/ParameterLists:
Max: 50
Metrics/PerceivedComplexity:
Max: 80
Layout/SpaceInsideBlockBraces:
EnforcedStyle: no_space
SpaceBeforeBlockParameters: false
Style/Documentation:
Enabled: false
Style/NumericPredicate:
EnforcedStyle: comparison
Style/MultilineBlockChain:
Enabled: false
Style/SpecialGlobalVars:
EnforcedStyle: use_perl_names
+1 -1
View File
@@ -1,2 +1,2 @@
source "https://rubygems.org"
source 'https://rubygems.org'
gemspec
+2 -1
View File
@@ -244,7 +244,8 @@ Available options:
- [json](https://rubygems.org/gems/json)
- [extlz4](https://rubygems.org/gems/extlz4)
- [extlzma](https://rubygems.org/gems/extlzma)
- [extlzma2](https://rubygems.org/gems/extlzma2)
- extlzma2 requires liblzma. You may need a `--with-liblzma-dir=` argument to install extlzma2.
- [bin_utils](https://rubygems.org/gems/bin_utils)
- [chunky_png](https://rubygems.org/gems/chunky_png)
+2 -2
View File
@@ -13,10 +13,10 @@ ext_dirs = %w[decoders/native decoders/crunch]
ext_dirs.each do |dir|
Rake::ExtensionTask.new(dir) do |ext|
ext.lib_dir = 'lib/mikunyan'
ext.lib_dir = "lib/mikunyan/#{File.dirname(dir)}"
end
end
task compile: ext_dirs.map{|e| "compile:#{e}".to_sym}
task compile: ext_dirs.map {|e| "compile:#{e}".to_sym}
task default: %i[clobber compile spec]
+38 -18
View File
@@ -44,51 +44,71 @@ unless File.file?(arg)
exit(1)
end
assets = opts[:as_asset] ? [Mikunyan::Asset.file(arg)] : Mikunyan::AssetBundle.file(arg).assets
if opts[:as_asset]
assets = [Mikunyan::Asset.file(arg)]
else
bundle = Mikunyan::AssetBundle.file(arg)
assets = bundle.assets
end
outdir = opts[:outputdir] || File.basename(arg, '.*')
FileUtils.mkpath(outdir)
assets.each do |asset|
if opts[:sprite]
if opts[:sprite]
textures = {}
textures_meta = {}
assets.each do |asset|
json = {}
textures = {}
asset.each_object do |obj|
next unless obj.type == 'Sprite'
next unless obj.klass
obj = obj.parse
next unless obj
texture_id = obj.m_RD&.texture&.m_PathID&.value
next unless texture_id
next unless obj&.m_RD&.texture
file_id = obj.m_RD.texture.m_FileID.value
texture_asset = file_id == 0 ? asset : bundle && bundle[asset.references[file_id - 1].file_path]
texture_id = obj.m_RD.texture.m_PathID.value
next unless texture_asset && texture_id
unless textures.key?(texture_id)
texture_obj = asset.parse_object(texture_id)
unless textures.dig(texture_asset, texture_id)
texture_obj = texture_asset.parse_object(texture_id)
if texture_obj.is_a?(Mikunyan::CustomTypes::Texture2D)
textures[texture_id] = texture_obj.generate_png
json[texture_id] = {
textures[texture_asset] ||= {}
textures[texture_asset][texture_id] = texture_obj.generate_png
textures_meta[texture_asset] ||= {}
textures_meta[texture_asset][texture_id] = {
name: texture_obj.m_Name&.value, width: texture_obj.m_Width&.value, height: texture_obj.m_Height&.value,
format: texture_obj.m_TextureFormat&.value, path_id: texture_id, sprites: []
format: texture_obj.m_TextureFormat&.value, asset: texture_asset.name, path_id: texture_id
}
end
end
next unless textures_meta[texture_asset][texture_id]
unless json.key?([file_id, texture_id])
json[[file_id, texture_id]] = textures_meta[texture_asset][texture_id].dup
json[[file_id, texture_id]][:sprites] = []
end
x = obj.m_Rect&.x&.value
y = obj.m_Rect&.y&.value
width = obj.m_Rect&.width&.value
height = obj.m_Rect&.height&.value
json[texture_id][:sprites] << { name: obj.object_name, x: x, y: y, width: width, height: height, path_id: obj.path_id }
json[[file_id, texture_id]][:sprites] << { name: obj.object_name, x: x, y: y, width: width, height: height, path_id: obj.path_id }
next unless textures[texture_id] && x && y && width && height
textures[texture_id].crop(
x.round, (textures[texture_id].height - height - y).round, width.round, height.round
).save("#{outdir}/#{obj.object_name}.png")
texture = textures[texture_asset][texture_id]
next unless texture && x && y && width && height
texture.crop(x.round, (texture.height - height - y).round, width.round, height.round).save("#{outdir}/#{obj.object_name}.png")
end
puts opts[:pretty] ? JSON.pretty_generate(json.values) : JSON.generate(json.values)
else
end
else
assets.each do |asset|
json = []
asset.each_object do |obj|
next unless obj.type == 'Texture2D'
next unless obj.klass
obj = obj.parse
next unless obj.is_a?(Mikunyan::CustomTypes::Texture2D)
json << {
+3
View File
@@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'mkmf'
have_library('stdc++')
@@ -6,4 +8,5 @@ append_cppflags('-O2')
append_cppflags('-Wall')
append_cppflags('-Wextra')
append_cppflags('-Wvla')
create_makefile('mikunyan/decoders/crunch')
+3
View File
@@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'mkmf'
append_cppflags('-std=c11')
@@ -5,4 +7,5 @@ append_cppflags('-O2')
append_cppflags('-Wall')
append_cppflags('-Wextra')
append_cppflags('-Wvla')
create_makefile('mikunyan/decoders/native')
+36 -10
View File
@@ -56,7 +56,7 @@ module Mikunyan
# Returns object type name string
# @return [String,nil] type name
def type
klass&.type_tree&.tree&.type || Mikunyan::Constants::CLASS_ID2NAME[class_id]
klass&.type_tree&.tree&.type || Mikunyan::Constants::CLASS_ID2NAME[class_id || klass&.class_id]
end
end
@@ -103,6 +103,12 @@ module Mikunyan
@objects.each(&block)
end
# Returns object with specified path ID
# @return [ObjectEntry,nil]
def path_id(id)
@path_id_table[id]
end
# Returns list of all path IDs
# @return [Array<Integer>] list of all path IDs
def path_ids
@@ -114,8 +120,10 @@ module Mikunyan
def containers
obj = @path_id_table[1]
return nil unless obj.klass&.type_tree&.tree&.type == 'AssetBundle'
parse_object(obj).m_Container.value.map do |e|
ContainerInfo.new(e.first.value, e.second.preloadIndex.value, e.second.preloadSize.value, e.second.asset.m_FileID.value, e.second.asset.m_PathID.value)
ContainerInfo.new(e.first.value, e.second.preloadIndex.value, e.second.preloadSize.value,
e.second.asset.m_FileID.value, e.second.asset.m_PathID.value)
end
end
@@ -123,8 +131,9 @@ module Mikunyan
# @param [Integer,ObjectEntry] obj path ID or object
# @return [Mikunyan::BaseObject,nil] parsed object
def parse_object(obj)
obj = @path_id_table[obj] if obj.class == Integer
obj = @path_id_table[obj] if obj.instance_of?(Integer)
return nil unless obj.klass&.type_tree
value_klass = Mikunyan::CustomTypes.get_custom_type(obj.klass.type_tree.tree.type, obj.class_id)
ret = parse_object_private(BinaryReader.new(obj.data, @endian), obj.klass.type_tree.tree, value_klass)
ret.object_entry = obj
@@ -142,7 +151,7 @@ module Mikunyan
# @param [Integer,ObjectEntry] obj path ID or object
# @return [String,nil] type name
def object_type(obj)
obj = @path_id_table[obj] if obj.class == Integer
obj = @path_id_table[obj] if obj.instance_of?(Integer)
obj&.type
end
@@ -175,6 +184,14 @@ module Mikunyan
br.pos = file_size - meta_size
@endian = br.bool ? :big : :little
end
if @format >= 22
_meta_size = br.i32u
_file_size = br.i64u
data_offset = br.i64u
br.adv(8)
end
br.endian = @endian
@generator_version = br.cstr if @format >= 7
@@ -198,7 +215,8 @@ module Mikunyan
br.align(4) if @format >= 14
if @format >= 16
ObjectEntry.new(
path_id: wide_path_id ? br.i64s : br.i32s, offset: br.i32u, size: br.i32u,
path_id: wide_path_id ? br.i64s : br.i32s,
offset: @format >= 22 ? br.i64u : br.i32u, size: br.i32u,
class_idx: br.i32u, stripped?: @format == 16 ? br.bool : nil,
parent_asset: self
)
@@ -211,7 +229,7 @@ module Mikunyan
end
end
@path_id_table = @objects.map{|e| [e.path_id, e]}.to_h
@path_id_table = @objects.map {|e| [e.path_id, e]}.to_h
if @format >= 11
add_id_count = br.i32u
@@ -223,15 +241,21 @@ module Mikunyan
reference_count = br.i32u
@references = Array.new(reference_count) do
Reference.new(@format >= 6 ? br.cstr : nil, @format >= 5 ? br.read(16) : nil, @format >= 5 ? br.i32s : nil, br.cstr)
Reference.new(@format >= 6 ? br.cstr : nil, @format >= 5 ? br.read(16) : nil, @format >= 5 ? br.i32s : nil,
br.cstr)
end
@comment = br.cstr if @format >= 5
# _ = br.i32 if @format >= 21
@objects.each do |e|
br.jmp(data_offset + e.offset)
e.data = br.read(e.size)
e.klass = e.class_idx ? @klasses[e.class_idx] : @klasses.find{|e2| e2.class_id == e.class_id} || @klasses.find{|e2| e2.class_id == e.type_id}
e.klass = if e.class_idx
@klasses[e.class_idx]
else
@klasses.find {|e2| e2.class_id == e.class_id} || @klasses.find {|e2| e2.class_id == e.type_id}
end
end
end
@@ -274,6 +298,7 @@ module Mikunyan
elsif node.array?
children.each do |child|
next ret[child.name] = parse_object_private(br, child) unless child.name == 'data'
size = ret['size']&.value || raise('`size` node must appear before `data` node in array node')
ret.value =
if child.children.empty? && (!child.need_align? || br.pos % 4 == 0 && child.size % 4 == 0)
@@ -284,7 +309,7 @@ module Mikunyan
br.read(size * child.size).force_encoding('utf-8')
end
end
ret.value ||= Array.new(size){parse_object_private(br, child)}
ret.value ||= Array.new(size) {parse_object_private(br, child)}
ret['data'] = ret.value
end
elsif children.size == 1 && children[0].array? && children[0].type == 'Array' && children[0].name == 'Array'
@@ -292,7 +317,7 @@ module Mikunyan
ret.name = node.name
ret.type = node.type
else
ret.attr = children.map{|c| [c.name, parse_object_private(br, c)]}.to_h
ret.attr = children.map {|c| [c.name, parse_object_private(br, c)]}.to_h
if node.type == 'StreamingInfo'
ret.value = get_stream_blob(ret['path'].value, ret['offset'].value, ret['size'].value)
else
@@ -306,6 +331,7 @@ module Mikunyan
def get_stream_blob(path, offset, size)
return nil unless path && @bundle
return nil if path.empty?
path["archive:/#{@name}/"] = '' if path.start_with?("archive:/#{@name}/")
@bundle.blobs[path]&.byteslice(offset, size)
end
+13 -6
View File
@@ -1,7 +1,7 @@
# frozen_string_literal: true
require 'extlz4'
require 'extlzma'
require 'extlzma2'
require 'mikunyan/asset'
require 'mikunyan/binary_reader'
@@ -21,7 +21,7 @@ module Mikunyan
# @param [String,Integer] index
# @return [Mikunyan::Asset,nil]
def [](index)
index.is_a?(String) ? @assets.find{|e| e.name == index} : @assets[index]
index.is_a?(String) ? @assets.find {|e| e.name == index} : @assets[index]
end
# Same as assets.each
@@ -59,7 +59,7 @@ module Mikunyan
@unity_version = br.cstr
@generator_version = br.cstr
@format < 6 ? load_unity_raw(br) : load_unity_fs(br)
@format == 6 || @signature == 'UnityFS' ? load_unity_fs(br, @signature) : load_unity_raw(br)
end
# @param [Mikunyan::BinaryReader] br
@@ -86,15 +86,22 @@ module Mikunyan
end
# @param [Mikunyan::BinaryReader] br
def load_unity_fs(br)
def load_unity_fs(br, signature)
file_size = br.i64u
ci_block_size = br.i32u
ui_block_size = br.i32u
flags = br.i32u
head = BinaryReader.new(uncompress(flags & 0x80 == 0 ? br.read(ci_block_size) : br.read_abs(ci_block_size, file_size - ci_block_size), ui_block_size, flags))
br.adv(1) unless signature == 'UnityFS'
br.align(16) if @format >= 7
head_bin = flags & 0x80 == 0 ? br.read(ci_block_size) : br.read_abs(ci_block_size, file_size - ci_block_size)
head = BinaryReader.new(uncompress(head_bin, ui_block_size, flags))
@guid = head.read(16)
br.align(16) unless flags & 0x200 == 0
block_count = head.i32u
raw_data = Array.new(block_count) do
u_size = head.i32u
@@ -114,7 +121,7 @@ module Mikunyan
end
def process_asset_entries(asset_entries)
@blobs = asset_entries.select(&:blob?).map{|e| [e.name, e.data]}.to_h
@blobs = asset_entries.select(&:blob?).map {|e| [e.name, e.data]}.to_h
@assets = asset_entries.reject(&:blob?).map do |e|
Asset.load(e.data, e.name, self)
end
+2
View File
@@ -56,6 +56,7 @@ module Mikunyan
def read(size)
ret = @io.read(size)
raise EOFError if ret.nil? || size && ret.bytesize < size
ret
end
@@ -75,6 +76,7 @@ module Mikunyan
# @return [String] string
def cstr
raise EOFError if @io.eof?
@io.each_byte.take_while(&:nonzero?).pack('C*')
end
+85 -85
View File
@@ -416,91 +416,91 @@ module Mikunyan
[1126, 'PackedAssets'],
[1127, 'VideoClipImporter'],
[2000, 'ActivationLogComponent'],
[100000, 'int'],
[100001, 'bool'],
[100002, 'float'],
[100003, 'MonoObject'],
[100004, 'Collision'],
[100005, 'Vector3f'],
[100006, 'RootMotionData'],
[100007, 'Collision2D'],
[100008, 'AudioMixerLiveUpdateFloat'],
[100009, 'AudioMixerLiveUpdateBool'],
[100010, 'Polygon2D'],
[100011, 'void'],
[19719996, 'TilemapCollider2D'],
[41386430, 'AssetImporterLog'],
[73398921, 'VFXRenderer'],
[76251197, 'SerializableManagedRefTestClass'],
[156049354, 'Grid'],
[181963792, 'Preset'],
[277625683, 'EmptyObject'],
[285090594, 'IConstraint'],
[293259124, 'TestObjectWithSpecialLayoutOne'],
[294290339, 'AssemblyDefinitionReferenceImporter'],
[334799969, 'SiblingDerived'],
[342846651, 'TestObjectWithSerializedMapStringNonAlignedStruct'],
[367388927, 'SubDerived'],
[369655926, 'AssetImportInProgressProxy'],
[382020655, 'PluginBuildInfo'],
[426301858, 'EditorProjectAccess'],
[468431735, 'PrefabImporter'],
[478637458, 'TestObjectWithSerializedArray'],
[478637459, 'TestObjectWithSerializedAnimationCurve'],
[483693784, 'TilemapRenderer'],
[638013454, 'SpriteAtlasDatabase'],
[641289076, 'AudioBuildInfo'],
[644342135, 'CachedSpriteAtlasRuntimeData'],
[646504946, 'RendererFake'],
[662584278, 'AssemblyDefinitionReferenceAsset'],
[668709126, 'BuiltAssetBundleInfoSet'],
[687078895, 'SpriteAtlas'],
[877146078, 'PlatformModuleSetup'],
[895512359, 'AimConstraint'],
[937362698, 'VFXManager'],
[994735392, 'VisualEffectSubgraph'],
[994735403, 'VisualEffectSubgraphOperator'],
[994735404, 'VisualEffectSubgraphBlock'],
[1001480554, 'Prefab'],
[1027052791, 'LocalizationImporter'],
[1091556383, 'Derived'],
[1111377672, 'PropertyModificationsTargetTestObject'],
[1114811875, 'ReferencesArtifactGenerator'],
[1152215463, 'AssemblyDefinitionAsset'],
[1154873562, 'SceneVisibilityState'],
[1183024399, 'LookAtConstraint'],
[1223240404, 'MultiArtifactTestImporter'],
[1268269756, 'GameObjectRecorder'],
[1325145578, 'LightingDataAssetParent'],
[1386491679, 'PresetManager'],
[1392443030, 'TestObjectWithSpecialLayoutTwo'],
[1403656975, 'StreamingManager'],
[1480428607, 'LowerResBlitTexture'],
[1542919678, 'StreamingController'],
[1571458007, 'RenderPassAttachment'],
[1628831178, 'TestObjectVectorPairStringBool'],
[1742807556, 'GridLayout'],
[1766753193, 'AssemblyDefinitionImporter'],
[1773428102, 'ParentConstraint'],
[1803986026, 'FakeComponent'],
[1818360608, 'PositionConstraint'],
[1818360609, 'RotationConstraint'],
[1818360610, 'ScaleConstraint'],
[1839735485, 'Tilemap'],
[1896753125, 'PackageManifest'],
[1896753126, 'PackageManifestImporter'],
[1953259897, 'TerrainLayer'],
[1971053207, 'SpriteShapeRenderer'],
[1977754360, 'NativeObjectType'],
[1981279845, 'TestObjectWithSerializedMapStringBool'],
[1995898324, 'SerializableManagedHost'],
[2058629509, 'VisualEffectAsset'],
[2058629510, 'VisualEffectImporter'],
[2058629511, 'VisualEffectResource'],
[2059678085, 'VisualEffectObject'],
[2083052967, 'VisualEffect'],
[2083778819, 'LocalizationAsset'],
[2089858483, 'ScriptedImporter']
[100_000, 'int'],
[100_001, 'bool'],
[100_002, 'float'],
[100_003, 'MonoObject'],
[100_004, 'Collision'],
[100_005, 'Vector3f'],
[100_006, 'RootMotionData'],
[100_007, 'Collision2D'],
[100_008, 'AudioMixerLiveUpdateFloat'],
[100_009, 'AudioMixerLiveUpdateBool'],
[100_010, 'Polygon2D'],
[100_011, 'void'],
[19_719_996, 'TilemapCollider2D'],
[41_386_430, 'AssetImporterLog'],
[73_398_921, 'VFXRenderer'],
[76_251_197, 'SerializableManagedRefTestClass'],
[156_049_354, 'Grid'],
[181_963_792, 'Preset'],
[277_625_683, 'EmptyObject'],
[285_090_594, 'IConstraint'],
[293_259_124, 'TestObjectWithSpecialLayoutOne'],
[294_290_339, 'AssemblyDefinitionReferenceImporter'],
[334_799_969, 'SiblingDerived'],
[342_846_651, 'TestObjectWithSerializedMapStringNonAlignedStruct'],
[367_388_927, 'SubDerived'],
[369_655_926, 'AssetImportInProgressProxy'],
[382_020_655, 'PluginBuildInfo'],
[426_301_858, 'EditorProjectAccess'],
[468_431_735, 'PrefabImporter'],
[478_637_458, 'TestObjectWithSerializedArray'],
[478_637_459, 'TestObjectWithSerializedAnimationCurve'],
[483_693_784, 'TilemapRenderer'],
[638_013_454, 'SpriteAtlasDatabase'],
[641_289_076, 'AudioBuildInfo'],
[644_342_135, 'CachedSpriteAtlasRuntimeData'],
[646_504_946, 'RendererFake'],
[662_584_278, 'AssemblyDefinitionReferenceAsset'],
[668_709_126, 'BuiltAssetBundleInfoSet'],
[687_078_895, 'SpriteAtlas'],
[877_146_078, 'PlatformModuleSetup'],
[895_512_359, 'AimConstraint'],
[937_362_698, 'VFXManager'],
[994_735_392, 'VisualEffectSubgraph'],
[994_735_403, 'VisualEffectSubgraphOperator'],
[994_735_404, 'VisualEffectSubgraphBlock'],
[1_001_480_554, 'Prefab'],
[1_027_052_791, 'LocalizationImporter'],
[1_091_556_383, 'Derived'],
[1_111_377_672, 'PropertyModificationsTargetTestObject'],
[1_114_811_875, 'ReferencesArtifactGenerator'],
[1_152_215_463, 'AssemblyDefinitionAsset'],
[1_154_873_562, 'SceneVisibilityState'],
[1_183_024_399, 'LookAtConstraint'],
[1_223_240_404, 'MultiArtifactTestImporter'],
[1_268_269_756, 'GameObjectRecorder'],
[1_325_145_578, 'LightingDataAssetParent'],
[1_386_491_679, 'PresetManager'],
[1_392_443_030, 'TestObjectWithSpecialLayoutTwo'],
[1_403_656_975, 'StreamingManager'],
[1_480_428_607, 'LowerResBlitTexture'],
[1_542_919_678, 'StreamingController'],
[1_571_458_007, 'RenderPassAttachment'],
[1_628_831_178, 'TestObjectVectorPairStringBool'],
[1_742_807_556, 'GridLayout'],
[1_766_753_193, 'AssemblyDefinitionImporter'],
[1_773_428_102, 'ParentConstraint'],
[1_803_986_026, 'FakeComponent'],
[1_818_360_608, 'PositionConstraint'],
[1_818_360_609, 'RotationConstraint'],
[1_818_360_610, 'ScaleConstraint'],
[1_839_735_485, 'Tilemap'],
[1_896_753_125, 'PackageManifest'],
[1_896_753_126, 'PackageManifestImporter'],
[1_953_259_897, 'TerrainLayer'],
[1_971_053_207, 'SpriteShapeRenderer'],
[1_977_754_360, 'NativeObjectType'],
[1_981_279_845, 'TestObjectWithSerializedMapStringBool'],
[1_995_898_324, 'SerializableManagedHost'],
[2_058_629_509, 'VisualEffectAsset'],
[2_058_629_510, 'VisualEffectImporter'],
[2_058_629_511, 'VisualEffectResource'],
[2_059_678_085, 'VisualEffectObject'],
[2_083_052_967, 'VisualEffect'],
[2_083_778_819, 'LocalizationAsset'],
[2_089_858_483, 'ScriptedImporter']
]
CLASS_ID2NAME = CLASS_ID_TABLE.to_h.freeze
+17 -7
View File
@@ -187,7 +187,8 @@ module Mikunyan
# @param [Symbol] endian endianness of binary
# @return [ChunkyPNG::Image] decoded image
def self.decode_rgb565(width, height, bin, endian = :big)
ChunkyPNG::Image.from_rgb_stream(width, height, DecodeHelper.decode_rgb565(bin, width * height, endian == :big)).flip
ChunkyPNG::Image.from_rgb_stream(width, height,
DecodeHelper.decode_rgb565(bin, width * height, endian == :big)).flip
end
# Decode image from R16 binary
@@ -197,7 +198,8 @@ module Mikunyan
# @param [Symbol] endian endianness of binary
# @return [ChunkyPNG::Image] decoded image
def self.decode_r16(width, height, bin, endian = :big)
ChunkyPNG::Image.from_rgb_stream(width, height, DecodeHelper.decode_r16(bin, width * height, endian == :big)).flip
ChunkyPNG::Image.from_rgb_stream(width, height,
DecodeHelper.decode_r16(bin, width * height, endian == :big)).flip
end
# Decode image from RGBA4444 binary
@@ -270,7 +272,8 @@ module Mikunyan
# @param [Symbol] endian endianness of binary
# @return [ChunkyPNG::Image] decoded image
def self.decode_rhalf(width, height, bin, endian = :big)
ChunkyPNG::Image.from_rgb_stream(width, height, DecodeHelper.decode_rhalf(bin, width * height, endian == :big)).flip
ChunkyPNG::Image.from_rgb_stream(width, height,
DecodeHelper.decode_rhalf(bin, width * height, endian == :big)).flip
end
# Decode image from RG Half-float binary
@@ -280,7 +283,8 @@ module Mikunyan
# @param [Symbol] endian endianness of binary
# @return [ChunkyPNG::Image] decoded image
def self.decode_rghalf(width, height, bin, endian = :big)
ChunkyPNG::Image.from_rgb_stream(width, height, DecodeHelper.decode_rghalf(bin, width * height, endian == :big)).flip
ChunkyPNG::Image.from_rgb_stream(width, height,
DecodeHelper.decode_rghalf(bin, width * height, endian == :big)).flip
end
# Decode image from RGBA Half-float binary
@@ -290,7 +294,8 @@ module Mikunyan
# @param [Symbol] endian endianness of binary
# @return [ChunkyPNG::Image] decoded image
def self.decode_rgbahalf(width, height, bin, endian = :big)
ChunkyPNG::Image.from_rgba_stream(width, height, DecodeHelper.decode_rgbahalf(bin, width * height, endian == :big)).flip
ChunkyPNG::Image.from_rgba_stream(width, height,
DecodeHelper.decode_rgbahalf(bin, width * height, endian == :big)).flip
end
# Decode image from R float binary
@@ -366,7 +371,8 @@ module Mikunyan
# @param [Integer] bpp bit per pixel (2 or 4)
# @return [ChunkyPNG::Image] decoded image
def self.decode_pvrtc1(width, height, bin, bpp)
raise 'bpp of PVRTC1 must be 2 or 4' unless bpp == 2 || bpp == 4
raise 'bpp of PVRTC1 must be 2 or 4' unless [2, 4].include?(bpp)
ChunkyPNG::Image.from_rgba_stream(width, height, DecodeHelper.decode_pvrtc1(bin, width, height, bpp == 2))
end
@@ -449,7 +455,8 @@ module Mikunyan
# @param [String] bin binary to decode
# @return [ChunkyPNG::Image] decoded image
def self.decode_astc(width, height, blocksize, bin)
ChunkyPNG::Image.from_rgba_stream(width, height, DecodeHelper.decode_astc(bin, width, height, blocksize, blocksize))
ChunkyPNG::Image.from_rgba_stream(width, height,
DecodeHelper.decode_astc(bin, width, height, blocksize, blocksize))
end
# Decode image from crunched texture binary
@@ -488,8 +495,10 @@ module Mikunyan
fmt = object['m_TextureFormat']&.value
bin = object['image data']&.value
return unless width && height && fmt && bin && astc_list[fmt]
bin = object['m_StreamData']&.value if bin.empty?
return unless bin
header = [0x13, 0xab, 0xa1, 0x5c, astc_list[fmt], astc_list[fmt], 1].pack('C*')
header << [width].pack('V').byteslice(0, 3)
header << [height].pack('V').byteslice(0, 3)
@@ -500,6 +509,7 @@ module Mikunyan
# [0.0,1.0] -> [0,255]
def self.f2i(val)
return 0 unless val.finite?
(val * 255).round.clamp(0, 255)
end
end
+3 -3
View File
@@ -95,11 +95,11 @@ module Mikunyan
if @type == 'pair'
[@attr['first'].simplify, @attr['second'].simplify]
elsif @type == 'map' && @value.is_a?(Array)
@value.map{|e| [e['first'].simplify, e['second'].simplify]}.to_h
@value.map {|e| [e['first'].simplify, e['second'].simplify]}.to_h
elsif is_struct
@attr.map{|key, val| [key, val.simplify]}.to_h
@attr.transform_values(&:simplify)
elsif @value.is_a?(Array)
@value.map{|e| e.is_a?(ObjectValue) ? e.simplify : e}
@value.map {|e| e.is_a?(ObjectValue) ? e.simplify : e}
elsif @value.is_a?(ObjectValue)
@value.simplify
else
+4 -1
View File
@@ -20,7 +20,8 @@ module Mikunyan
# @attr [Integer,nil] v18meta
# @attr [Mikunyan::TypeTree::Node,nil] parent ̑
# @attr [Array<Mikunyan::TypeTree::Node>] children
Node = Struct.new(:version, :level, :array?, :type, :name, :size, :index, :flags, :v18meta, :parent, :children, keyword_init: true) do
Node = Struct.new(:version, :level, :array?, :type, :name, :size, :index, :flags, :v18meta, :parent, :children,
keyword_init: true) do
def need_align?
flags & 0x4000 != 0
end
@@ -84,6 +85,7 @@ module Mikunyan
end
stack[n.level] = n
end
br.adv(4) if version >= 21
else
nodes = []
stack = []
@@ -118,6 +120,7 @@ module Mikunyan
def self.load_default(class_id, hash)
file = File.expand_path("../typetrees/#{class_id}/#{hash.unpack1('H*')}.json", __FILE__)
return nil unless File.file?(file)
TypeTree.deserialize(JSON.parse(File.read(file)))
end
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes":[{"version":7,"level":0,"is_array":false,"type":"MonoScript","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_Name","size":-1,"flags":557057,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":540673,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":524289,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":524289,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_ExecutionOrder","size":4,"flags":16,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":null,"name":"m_PropertiesHash","size":16,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[0]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[1]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[2]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[3]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[4]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[5]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[6]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[7]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[8]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[9]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[10]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[11]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[12]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[13]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[14]","size":1,"flags":16,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"bytes[15]","size":1,"flags":16,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_ClassName","size":-1,"flags":32784,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16401,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":17,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":17,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_Namespace","size":-1,"flags":32784,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16401,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":17,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":17,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_AssemblyName","size":-1,"flags":32784,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16401,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":17,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":17,"v18meta":0}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes":[{"version":2,"level":0,"is_array":false,"type":"NavMeshSettings","name":"Base","size":12,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<NavMeshData>","name":"m_NavMeshData","size":12,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes":[{"version":3,"level":0,"is_array":false,"type":"Canvas","name":"Base","size":53,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<GameObject>","name":"m_GameObject","size":12,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"UInt8","name":"m_Enabled","size":1,"flags":16641,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_RenderMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<Camera>","name":"m_Camera","size":12,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_PlaneDistance","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_PixelPerfect","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_ReceivesEvents","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_OverrideSorting","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_OverridePixelPerfect","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_SortingBucketNormalizedSize","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_VertexColorAlwaysGammaSpace","size":1,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_AdditionalShaderChannelsFlag","size":4,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_SortingLayerID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"SInt16","name":"m_SortingOrder","size":2,"flags":1,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"SInt8","name":"m_TargetDisplay","size":1,"flags":1,"v18meta":0}]}
@@ -0,0 +1 @@
{"nodes":[{"version":3,"level":0,"is_array":false,"type":"Canvas","name":"Base","size":57,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<GameObject>","name":"m_GameObject","size":12,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"UInt8","name":"m_Enabled","size":1,"flags":16641,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_RenderMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<Camera>","name":"m_Camera","size":12,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_PlaneDistance","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_PixelPerfect","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_ReceivesEvents","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_OverrideSorting","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_OverridePixelPerfect","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_SortingBucketNormalizedSize","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_VertexColorAlwaysGammaSpace","size":1,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_AdditionalShaderChannelsFlag","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_UpdateRectTransformForStandalone","size":4,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_SortingLayerID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"SInt16","name":"m_SortingOrder","size":2,"flags":1,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"SInt8","name":"m_TargetDisplay","size":1,"flags":1,"v18meta":0}]}
@@ -0,0 +1 @@
{"nodes":[{"version":1,"level":0,"is_array":false,"type":"RectTransform","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<GameObject>","name":"m_GameObject","size":12,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Quaternionf","name":"m_LocalRotation","size":16,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"z","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"w","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector3f","name":"m_LocalPosition","size":12,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"z","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector3f","name":"m_LocalScale","size":12,"flags":2113536,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"z","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"vector","name":"m_Children","size":-1,"flags":32833,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16449,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":65,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"PPtr<Transform>","name":"data","size":12,"flags":65,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<Transform>","name":"m_Father","size":12,"flags":1,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":1,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":1,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector2f","name":"m_AnchorMin","size":8,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector2f","name":"m_AnchorMax","size":8,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector2f","name":"m_AnchoredPosition","size":8,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector2f","name":"m_SizeDelta","size":8,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector2f","name":"m_Pivot","size":8,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0}]}
@@ -0,0 +1 @@
{"nodes":[{"version":2,"level":0,"is_array":false,"type":"RectTransform","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<GameObject>","name":"m_GameObject","size":12,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Quaternionf","name":"m_LocalRotation","size":16,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"z","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"w","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector3f","name":"m_LocalPosition","size":12,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"z","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector3f","name":"m_LocalScale","size":12,"flags":2113536,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"z","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"vector","name":"m_Children","size":-1,"flags":32833,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16449,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":65,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"PPtr<Transform>","name":"data","size":12,"flags":65,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<Transform>","name":"m_Father","size":12,"flags":1,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":1,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":1,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector2f","name":"m_AnchorMin","size":8,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector2f","name":"m_AnchorMax","size":8,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector2f","name":"m_AnchoredPosition","size":8,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector2f","name":"m_SizeDelta","size":8,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector2f","name":"m_Pivot","size":8,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes":[{"version":2,"level":0,"is_array":false,"type":"Texture2D","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_Name","size":-1,"flags":557057,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":540673,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":524289,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":524289,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_ForcedFallbackFormat","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_DownscaleFallback","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_IsAlphaChannelOptional","size":1,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Width","size":4,"flags":16,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Height","size":4,"flags":16,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"unsigned int","name":"m_CompleteImageSize","size":4,"flags":16,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_MipsStripped","size":4,"flags":16,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_TextureFormat","size":4,"flags":1,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_MipCount","size":4,"flags":16,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_IsReadable","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_IsPreProcessed","size":1,"flags":1,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_IgnoreMasterTextureLimit","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_StreamingMipmaps","size":1,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_StreamingMipmapsPriority","size":4,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_ImageCount","size":4,"flags":16,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_TextureDimension","size":4,"flags":1,"v18meta":0},{"version":2,"level":1,"is_array":false,"type":"GLTextureSettings","name":"m_TextureSettings","size":24,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FilterMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_Aniso","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"m_MipBias","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapU","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapV","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapW","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_LightmapFormat","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_ColorSpace","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"vector","name":"m_PlatformBlob","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16384,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":0,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"UInt8","name":"data","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":true,"type":"TypelessData","name":"image data","size":-1,"flags":16385,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"size","size":4,"flags":1,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt8","name":"data","size":1,"flags":1,"v18meta":0},{"version":2,"level":1,"is_array":false,"type":"StreamingInfo","name":"m_StreamData","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt64","name":"offset","size":8,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"unsigned int","name":"size","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"string","name":"path","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":3,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16385,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"int","name":"size","size":4,"flags":1,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"char","name":"data","size":1,"flags":1,"v18meta":0}]}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes":[{"version":3,"level":0,"is_array":false,"type":"PlayableDirector","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<GameObject>","name":"m_GameObject","size":12,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"UInt8","name":"m_Enabled","size":1,"flags":16641,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<Object>","name":"m_PlayableAsset","size":12,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_InitialState","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_WrapMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_DirectorUpdateMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"double","name":"m_InitialTime","size":8,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"vector","name":"m_SceneBindings","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16384,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":0,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"DirectorGenericBinding","name":"data","size":24,"flags":0,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"PPtr<Object>","name":"key","size":12,"flags":0,"v18meta":0},{"version":1,"level":5,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":5,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"PPtr<Object>","name":"value","size":12,"flags":0,"v18meta":0},{"version":1,"level":5,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":5,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"ExposedReferenceTable","name":"m_ExposedReferences","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"map","name":"m_References","size":-1,"flags":49152,"v18meta":0},{"version":1,"level":3,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"int","name":"size","size":4,"flags":0,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"pair","name":"data","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":5,"is_array":false,"type":"string","name":"first","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":6,"is_array":false,"type":"string","name":"id","size":-1,"flags":49152,"v18meta":0},{"version":1,"level":7,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16385,"v18meta":0},{"version":1,"level":8,"is_array":false,"type":"int","name":"size","size":4,"flags":1,"v18meta":0},{"version":1,"level":8,"is_array":false,"type":"char","name":"data","size":1,"flags":1,"v18meta":0},{"version":1,"level":5,"is_array":false,"type":"PPtr<Object>","name":"second","size":12,"flags":0,"v18meta":0},{"version":1,"level":6,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":6,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes":[{"version":1,"level":0,"is_array":false,"type":"VideoClip","name":"Base","size":-1,"flags":32768,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_Name","size":-1,"flags":557057,"v18meta":null},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":540673,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":524289,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":524289,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_OriginalPath","size":-1,"flags":49153,"v18meta":null},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16385,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":1,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"unsigned int","name":"m_ProxyWidth","size":4,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"unsigned int","name":"m_ProxyHeight","size":4,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"unsigned int","name":"Width","size":4,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"unsigned int","name":"Height","size":4,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"unsigned int","name":"m_PixelAspecRatioNum","size":4,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"unsigned int","name":"m_PixelAspecRatioDen","size":4,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"double","name":"m_FrameRate","size":8,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"UInt64","name":"m_FrameCount","size":8,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Format","size":4,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"vector","name":"m_AudioChannelCount","size":-1,"flags":49153,"v18meta":null},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16385,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":1,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"UInt16","name":"data","size":2,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"vector","name":"m_AudioSampleRate","size":-1,"flags":49153,"v18meta":null},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16385,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":1,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"unsigned int","name":"data","size":4,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"vector","name":"m_AudioLanguage","size":-1,"flags":49153,"v18meta":null},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":49153,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":1,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"string","name":"data","size":-1,"flags":32769,"v18meta":null},{"version":1,"level":4,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16385,"v18meta":null},{"version":1,"level":5,"is_array":false,"type":"int","name":"size","size":4,"flags":1,"v18meta":null},{"version":1,"level":5,"is_array":false,"type":"char","name":"data","size":1,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"StreamedResource","name":"m_ExternalResources","size":-1,"flags":32768,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"string","name":"m_Source","size":-1,"flags":32769,"v18meta":null},{"version":1,"level":3,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16385,"v18meta":null},{"version":1,"level":4,"is_array":false,"type":"int","name":"size","size":4,"flags":1,"v18meta":null},{"version":1,"level":4,"is_array":false,"type":"char","name":"data","size":1,"flags":1,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"UInt64","name":"m_Offset","size":8,"flags":1,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"UInt64","name":"m_Size","size":8,"flags":1,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_HasSplitAlpha","size":1,"flags":0,"v18meta":null}]}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes":[{"version":1,"level":0,"is_array":false,"type":"Transform","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<GameObject>","name":"m_GameObject","size":12,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Quaternionf","name":"m_LocalRotation","size":16,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"z","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"w","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector3f","name":"m_LocalPosition","size":12,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"z","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector3f","name":"m_LocalScale","size":12,"flags":2113536,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"z","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"vector","name":"m_Children","size":-1,"flags":32833,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16449,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":65,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"PPtr<Transform>","name":"data","size":12,"flags":65,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<Transform>","name":"m_Father","size":12,"flags":1,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":1,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":1,"v18meta":0}]}
@@ -0,0 +1 @@
{"nodes":[{"version":2,"level":0,"is_array":false,"type":"Transform","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<GameObject>","name":"m_GameObject","size":12,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Quaternionf","name":"m_LocalRotation","size":16,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"z","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"w","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector3f","name":"m_LocalPosition","size":12,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"z","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector3f","name":"m_LocalScale","size":12,"flags":2113536,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"z","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"vector","name":"m_Children","size":-1,"flags":32833,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16449,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":65,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"PPtr<Transform>","name":"data","size":12,"flags":65,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<Transform>","name":"m_Father","size":12,"flags":1,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":1,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":1,"v18meta":0}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes":[{"version":4,"level":0,"is_array":false,"type":"Rigidbody2D","name":"Base","size":63,"flags":32768,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"PPtr<GameObject>","name":"m_GameObject","size":12,"flags":65,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_BodyType","size":4,"flags":8388608,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_Simulated","size":1,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UseFullKinematicContacts","size":1,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UseAutoMass","size":1,"flags":16384,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_Mass","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_LinearDrag","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_AngularDrag","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_GravityScale","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"PPtr<PhysicsMaterial2D>","name":"m_Material","size":12,"flags":0,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Interpolate","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_SleepingMode","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_CollisionDetection","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Constraints","size":4,"flags":12582912,"v18meta":null}]}
@@ -0,0 +1 @@
{"nodes":[{"version":2,"level":0,"is_array":false,"type":"CircleCollider2D","name":"Base","size":44,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<GameObject>","name":"m_GameObject","size":12,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"UInt8","name":"m_Enabled","size":1,"flags":16641,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_Density","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<PhysicsMaterial2D>","name":"m_Material","size":12,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_IsTrigger","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UsedByEffector","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UsedByComposite","size":1,"flags":8404992,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"Vector2f","name":"m_Offset","size":8,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_Radius","size":4,"flags":0,"v18meta":0}]}
@@ -0,0 +1 @@
{"nodes":[{"version":2,"level":0,"is_array":false,"type":"BoxCollider2D","name":"Base","size":102,"flags":32768,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"PPtr<GameObject>","name":"m_GameObject","size":12,"flags":65,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"UInt8","name":"m_Enabled","size":1,"flags":16641,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_Density","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"PPtr<PhysicsMaterial2D>","name":"m_Material","size":12,"flags":0,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_IsTrigger","size":1,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UsedByEffector","size":1,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UsedByComposite","size":1,"flags":8404992,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"Vector2f","name":"m_Offset","size":8,"flags":2097152,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"SpriteTilingProperty","name":"m_SpriteTilingProperty","size":49,"flags":8421393,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"Vector4f","name":"border","size":16,"flags":10485777,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"float","name":"x","size":4,"flags":10485777,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"float","name":"y","size":4,"flags":10485777,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"float","name":"z","size":4,"flags":10485777,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"float","name":"w","size":4,"flags":10485777,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"Vector2f","name":"pivot","size":8,"flags":10485777,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"float","name":"x","size":4,"flags":10485777,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"float","name":"y","size":4,"flags":10485777,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"Vector2f","name":"oldSize","size":8,"flags":10485777,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"float","name":"x","size":4,"flags":10485777,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"float","name":"y","size":4,"flags":10485777,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"Vector2f","name":"newSize","size":8,"flags":10485777,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"float","name":"x","size":4,"flags":10485777,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"float","name":"y","size":4,"flags":10485777,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"float","name":"adaptiveTilingThreshold","size":4,"flags":8388625,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"int","name":"drawMode","size":4,"flags":8388625,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"bool","name":"adaptiveTiling","size":1,"flags":8405009,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_AutoTiling","size":1,"flags":8404992,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"Vector2f","name":"m_Size","size":8,"flags":2097152,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"float","name":"x","size":4,"flags":2097152,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"float","name":"y","size":4,"flags":2097152,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_EdgeRadius","size":4,"flags":0,"v18meta":null}]}
@@ -0,0 +1 @@
{"nodes":[{"version":4,"level":0,"is_array":false,"type":"MeshCollider","name":"Base","size":43,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<GameObject>","name":"m_GameObject","size":12,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<PhysicMaterial>","name":"m_Material","size":12,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_IsTrigger","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_Enabled","size":1,"flags":16641,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_Convex","size":1,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_CookingOptions","size":4,"flags":8404992,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<Mesh>","name":"m_Mesh","size":12,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes":[{"version":1,"level":0,"is_array":false,"type":"AudioClip","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_Name","size":-1,"flags":557057,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":540673,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":524289,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":524289,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_LoadType","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Channels","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Frequency","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_BitsPerSample","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_Length","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_IsTrackerFormat","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_Ambisonic","size":1,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_SubsoundIndex","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_PreloadAudioData","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_LoadInBackground","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_Legacy3D","size":1,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"StreamedResource","name":"m_Resource","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"string","name":"m_Source","size":-1,"flags":32769,"v18meta":0},{"version":1,"level":3,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":16385,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"int","name":"size","size":4,"flags":1,"v18meta":0},{"version":1,"level":4,"is_array":false,"type":"char","name":"data","size":1,"flags":1,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":null,"name":"m_Offset","size":8,"flags":1,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"UInt64","name":"m_Size","size":8,"flags":1,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_CompressionFormat","size":4,"flags":16384,"v18meta":0}]}
@@ -0,0 +1 @@
{"nodes":[{"version":3,"level":0,"is_array":false,"type":"RenderTexture","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_Name","size":-1,"flags":557057,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":540673,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":524289,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":524289,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_ForcedFallbackFormat","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_DownscaleFallback","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_IsAlphaChannelOptional","size":1,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Width","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Height","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_AntiAliasing","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_MipCount","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_DepthFormat","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_ColorFormat","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_MipMap","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_GenerateMips","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_SRGB","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UseDynamicScale","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_BindMS","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_EnableCompatibleFormat","size":1,"flags":16384,"v18meta":0},{"version":2,"level":1,"is_array":false,"type":"GLTextureSettings","name":"m_TextureSettings","size":24,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FilterMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_Aniso","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"m_MipBias","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapU","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapV","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapW","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Dimension","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_VolumeDepth","size":4,"flags":0,"v18meta":0}]}
@@ -0,0 +1 @@
{"nodes":[{"version":6,"level":0,"is_array":false,"type":"RenderTexture","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_Name","size":-1,"flags":557057,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":540673,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":524289,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":524289,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_IsAlphaChannelOptional","size":1,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Width","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Height","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_AntiAliasing","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_MipCount","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_DepthStencilFormat","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_ColorFormat","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_MipMap","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_GenerateMips","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_SRGB","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UseDynamicScale","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UseDynamicScaleExplicit","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_BindMS","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_EnableCompatibleFormat","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_EnableRandomWrite","size":1,"flags":16384,"v18meta":0},{"version":2,"level":1,"is_array":false,"type":"GLTextureSettings","name":"m_TextureSettings","size":24,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FilterMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_Aniso","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"m_MipBias","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapU","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapV","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapW","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Dimension","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_VolumeDepth","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_ShadowSamplingMode","size":4,"flags":0,"v18meta":0}]}
@@ -0,0 +1 @@
{"nodes":[{"version":1,"level":0,"is_array":false,"type":"RenderTexture","name":"Base","size":-1,"flags":32768,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_Name","size":-1,"flags":557057,"v18meta":null},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":540673,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":524289,"v18meta":null},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":524289,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_ForcedFallbackFormat","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_DownscaleFallback","size":1,"flags":16384,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Width","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Height","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_AntiAliasing","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_DepthFormat","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_ColorFormat","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_MipMap","size":1,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_GenerateMips","size":1,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_SRGB","size":1,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UseDynamicScale","size":1,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_BindMS","size":1,"flags":16384,"v18meta":null},{"version":2,"level":1,"is_array":false,"type":"GLTextureSettings","name":"m_TextureSettings","size":24,"flags":0,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FilterMode","size":4,"flags":0,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_Aniso","size":4,"flags":0,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"float","name":"m_MipBias","size":4,"flags":0,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapU","size":4,"flags":0,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapV","size":4,"flags":0,"v18meta":null},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapW","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Dimension","size":4,"flags":0,"v18meta":null},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_VolumeDepth","size":4,"flags":0,"v18meta":null}]}
@@ -0,0 +1 @@
{"nodes":[{"version":5,"level":0,"is_array":false,"type":"RenderTexture","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_Name","size":-1,"flags":557057,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":540673,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":524289,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":524289,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_ForcedFallbackFormat","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_DownscaleFallback","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_IsAlphaChannelOptional","size":1,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Width","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Height","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_AntiAliasing","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_MipCount","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_DepthStencilFormat","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_ColorFormat","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_MipMap","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_GenerateMips","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_SRGB","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UseDynamicScale","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_BindMS","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_EnableCompatibleFormat","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_EnableRandomWrite","size":1,"flags":16384,"v18meta":0},{"version":2,"level":1,"is_array":false,"type":"GLTextureSettings","name":"m_TextureSettings","size":24,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FilterMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_Aniso","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"float","name":"m_MipBias","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapU","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapV","size":4,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_WrapW","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_Dimension","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_VolumeDepth","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_ShadowSamplingMode","size":4,"flags":0,"v18meta":0}]}
@@ -0,0 +1 @@
{"nodes":[{"version":4,"level":0,"is_array":false,"type":"LightingSettings","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_Name","size":-1,"flags":557057,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":540673,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":524289,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":524289,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_GIWorkflowMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_EnableBakedLightmaps","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_EnableRealtimeLightmaps","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_RealtimeEnvironmentLighting","size":1,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_BounceScale","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_AlbedoBoost","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_IndirectOutputScale","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UsingShadowmask","size":1,"flags":16384,"v18meta":0}]}
@@ -0,0 +1 @@
{"nodes":[{"version":3,"level":0,"is_array":false,"type":"LightingSettings","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_Name","size":-1,"flags":557057,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":540673,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":524289,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":524289,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_GIWorkflowMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_EnableBakedLightmaps","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_EnableRealtimeLightmaps","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_RealtimeEnvironmentLighting","size":1,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_BounceScale","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_AlbedoBoost","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_IndirectOutputScale","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UsingShadowmask","size":1,"flags":16384,"v18meta":0}]}
@@ -0,0 +1 @@
{"nodes":[{"version":9,"level":0,"is_array":false,"type":"LightingSettings","name":"Base","size":-1,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"string","name":"m_Name","size":-1,"flags":557057,"v18meta":0},{"version":1,"level":2,"is_array":true,"type":"Array","name":"Array","size":-1,"flags":540673,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"int","name":"size","size":4,"flags":524289,"v18meta":0},{"version":1,"level":3,"is_array":false,"type":"char","name":"data","size":1,"flags":524289,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_EnableBakedLightmaps","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_EnableRealtimeLightmaps","size":1,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_RealtimeEnvironmentLighting","size":1,"flags":16384,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_BounceScale","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_AlbedoBoost","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"float","name":"m_IndirectOutputScale","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_UsingShadowmask","size":1,"flags":16384,"v18meta":0}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes":[{"version":5,"level":0,"is_array":false,"type":"Animator","name":"Base","size":52,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<GameObject>","name":"m_GameObject","size":12,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"UInt8","name":"m_Enabled","size":1,"flags":16641,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<Avatar>","name":"m_Avatar","size":12,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<RuntimeAnimatorController>","name":"m_Controller","size":12,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_CullingMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_UpdateMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_ApplyRootMotion","size":1,"flags":8388608,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_LinearVelocityBlending","size":1,"flags":8388608,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_StabilizeFeet","size":1,"flags":8404992,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_HasTransformHierarchy","size":1,"flags":8388608,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_AllowConstantClipSamplingOptimization","size":1,"flags":8388608,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_KeepAnimatorStateOnDisable","size":1,"flags":8388608,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_WriteDefaultValuesOnDisable","size":1,"flags":8404992,"v18meta":0}]}
@@ -0,0 +1 @@
{"nodes":[{"version":7,"level":0,"is_array":false,"type":"Animator","name":"Base","size":53,"flags":32768,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<GameObject>","name":"m_GameObject","size":12,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":65,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":65,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"UInt8","name":"m_Enabled","size":1,"flags":16641,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<Avatar>","name":"m_Avatar","size":12,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"PPtr<RuntimeAnimatorController>","name":"m_Controller","size":12,"flags":0,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"int","name":"m_FileID","size":4,"flags":8388609,"v18meta":0},{"version":1,"level":2,"is_array":false,"type":"SInt64","name":"m_PathID","size":8,"flags":8388609,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_CullingMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"int","name":"m_UpdateMode","size":4,"flags":0,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_ApplyRootMotion","size":1,"flags":8388608,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_LinearVelocityBlending","size":1,"flags":8388608,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_StabilizeFeet","size":1,"flags":8388608,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_AnimatePhysics","size":1,"flags":8404992,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_HasTransformHierarchy","size":1,"flags":8388608,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_AllowConstantClipSamplingOptimization","size":1,"flags":8388608,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_KeepAnimatorStateOnDisable","size":1,"flags":8388608,"v18meta":0},{"version":1,"level":1,"is_array":false,"type":"bool","name":"m_WriteDefaultValuesOnDisable","size":1,"flags":8404992,"v18meta":0}]}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -2,5 +2,5 @@
module Mikunyan
# version string
VERSION = '3.9.7'
VERSION = '3.9.13'
end
+4 -4
View File
@@ -14,20 +14,20 @@ Gem::Specification.new do |spec|
spec.description = 'Library to deserialize Unity assetbundles and assets.'
spec.homepage = 'https://github.com/Ishotihadus/mikunyan'
spec.license = 'MIT'
spec.required_ruby_version = '>= 2.6.0'
spec.files = `git ls-files -z`.split("\x0").reject do |f|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
f.match(%r{^(test|spec|features)/})
end
spec.bindir = 'exe'
spec.executables = spec.files.grep(%r{^exe/}){|f| File.basename(f)}
spec.executables = spec.files.grep(%r{^exe/}) {|f| File.basename(f)}
spec.require_paths = ['lib']
spec.extensions = ['ext/decoders/native/extconf.rb', 'ext/decoders/crunch/extconf.rb']
spec.add_dependency 'bin_utils', '~> 0'
spec.add_dependency 'chunky_png', '~> 1'
spec.add_dependency 'extlz4', '~> 0'
spec.add_dependency 'extlzma', '~> 0'
spec.add_dependency 'json', '~> 2'
spec.add_dependency 'extlzma2', '~> 2'
spec.add_development_dependency 'bundler', '~> 2'
spec.add_development_dependency 'oily_png', '~> 1'
+89
View File
@@ -0,0 +1,89 @@
# frozen_string_literal: true
require 'extlz4'
require 'mikunyan'
def unlz4(bin)
header = bin.unpack('V4')
LZ4.raw_decode(bin.byteslice(16, header[2]))
end
exit(1) if ARGV.empty?
files = []
opts = { recursive: false }
ARGV.each do |arg|
if ['--recursive', '-r'].include?(arg)
opts[:recursive] = true
else
files << arg
end
end
files = files.flat_map do |f|
if File.directory?(f)
Dir.glob(opts[:recursive] ? "#{f}/**/*" : "#{f}/*")
else
f
end
end
files.select! {|e| File.file?(e)}
count = files.size
files.shuffle.each_with_index do |file, idx|
type =
File.open(file, 'rb') do |io|
sig = io.read(5)
next :raw if sig == 'Unity'
sig = (sig + io.read(11)).unpack('V4')
:cgss_lz4 if sig[0] == 100 && sig[3] == 1
end
next unless type
file_output = false
print "\r\e[0K[#{idx + 1}/#{count}] #{file}"
bundle =
case type
when :raw
Mikunyan::AssetBundle.file(file)
when :cgss_lz4
Mikunyan::AssetBundle.load(unlz4(File.binread(file)))
end
bundle.each_asset do |asset|
print "\r\e[0K[#{idx + 1}/#{count}] #{file}: #{asset.name}"
asset_output = false
asset.each_object do |obj|
result = obj.parse
unless result
print "\r\e[0K"
unless asset_output
unless file_output
puts file
file_output = true
end
puts " asset `#{asset.name}`"
asset_output = true
end
puts " \e[34m#{format('% 17x', obj.path_id)}: Skipped (#{obj.type})\e[0m"
end
# if obj.parse
# puts " \e[32m#{format('% 17x', obj.path_id)}: Success\e[0m"
# else
# puts " \e[34m#{format('% 17x', obj.path_id)}: Skip (#{obj.type})\e[0m"
# end
rescue StandardError
print "\r\e[0K"
unless asset_output
unless file_output
puts file
file_output = true
end
puts " asset `#{asset.name}`"
asset_output = true
end
puts " \e[1m\e[31m#{format('% 17x', obj.path_id)}: Failed (#{$!})\e[0m"
puts $!
end
end
end
puts
+60
View File
@@ -0,0 +1,60 @@
# frozen_string_literal: true
require 'extlz4'
require 'mikunyan'
def unlz4(bin)
header = bin.unpack('V4')
LZ4.raw_decode(bin.byteslice(16, header[2]))
end
exit(1) if ARGV.empty?
files = []
ARGV.each do |arg|
if File.directory?(arg)
files += Dir.glob("#{arg}/**/*")
else
files << arg
end
end
files.select! {|e| File.file?(e)}
count = files.size
files.shuffle.each_with_index do |file, idx|
type =
File.open(file, 'rb') do |io|
sig = io.read(5)
next :raw if sig == 'Unity'
sig = (sig + io.read(11)).unpack('V4')
:cgss_lz4 if sig[0] == 100 && sig[3] == 1
end
next unless type
print "\r\e[0K[#{idx + 1}/#{count}] #{file}"
bundle =
case type
when :raw
Mikunyan::AssetBundle.file(file)
when :cgss_lz4
Mikunyan::AssetBundle.load(unlz4(File.binread(file)))
end
bundle.each_asset do |asset|
print "\r\e[0K[#{idx + 1}/#{count}] #{file}: #{asset.name}"
asset.klasses.each do |klass|
hash = klass.hash.unpack1('H*')
next unless hash.size == 32 && klass.type_tree
dir = "lib/mikunyan/typetrees/#{klass.class_id}"
json_file = "#{dir}/#{hash}.json"
next if File.exist?(json_file)
puts "\r\e[0K[#{idx + 1}/#{count}] #{file}: #{asset.name}"
puts " #{klass.type_tree.tree.type} (#{klass.class_id}) -> #{hash}"
Dir.mkdir(dir) unless File.directory?(dir)
File.binwrite(json_file, JSON.generate(klass.type_tree.serialize))
end
end
end
puts