; EFMI ALPHA-7 INI

; Mod Info -------------------------

[ResourceModName]
type = Buffer
data = "Unnamed Mod"

[ResourceModAuthor]
type = Buffer
data = "mingchen"

[ResourceModDesc]
; type = Buffer
; data = "Empty Mod Description"

[ResourceModLink]
; type = Buffer
; data = "Empty Mod Link"

[ResourceModLogo]
; filename = Textures/Logo.dds

; Mod State -------------------------

[Constants]
global $required_efmi_version = 1.23
global $object_guid = 235107
global $mesh_vertex_count = 116730
global $mod_id = -1000
global $mod_enabled = 0
global $object_detected = 0
global $lod_level = 0
global $active
global persist $up = 0
global persist $down = 0
global persist $right = 0
global persist $left = 0

[KeyUp]
condition = $active == 1
key = vk_up
type = cycle
$up = 0,1,2,3,4

[KeyDown]
condition = $active == 1
key = vk_down
type = cycle
$down = 0,1,2,3

[KeyRight]
condition = $active == 1
key = vk_right
type = cycle
$right = 0,1,2,3

[KeyLeft]
condition = $active == 1
key = vk_left
type = cycle
$left = 0,1,2,3

[Present]
post $active =0
if $object_detected
    if $mod_enabled
        post $object_detected = 0
    else
        if $mod_id == -1000
            run = CommandListRegisterMod
        endif
    endif
endif

[CommandListRegisterMod]
$\EFMIv1\required_version = $required_efmi_version
$\EFMIv1\object_guid = $object_guid
Resource\EFMIv1\ModName = ref ResourceModName
Resource\EFMIv1\ModAuthor = ref ResourceModAuthor
Resource\EFMIv1\ModDesc = ref ResourceModDesc
Resource\EFMIv1\ModLink = ref ResourceModLink
Resource\EFMIv1\ModLogo = ref ResourceModLogo
run = CommandList\EFMIv1\RegisterMod
$mod_id = $\EFMIv1\mod_id
if $mod_id >= 0
    $mod_enabled = 1
endif

; 跨IB起手式1 不需要更改-------------------------
[ResourceDumpedCB1_UAV]
type = RWStructuredBuffer
stride = 16
array = 4096

[ResourceDumpedCB1_SRV]
type = Buffer
stride = 16
array = 4096

; 【修复1：增加 CS 专用的中转站，解决硬件冲突】
[ResourceFakeCB1_UAV]
type = RWStructuredBuffer
stride = 16
array = 4096

[ResourceFakeCB1]
type = Buffer
stride = 16
format = R32G32B32A32_UINT
array = 4096

[ResourceFakeT0_UAV]
type = RWStructuredBuffer
stride = 16
array = 200000

; 【修复2：改为 StructuredBuffer 解决 0x80070057 报错】
[ResourceFakeT0_SRV]
type = StructuredBuffer
stride = 16
array = 200000

; 跨IB起手式2 需要更改 -------------------------
; 部位身份卡，参与跨IB的部位都需要有对应的编号
[ResourceID_Body]
type = Buffer
format = R32_FLOAT
data = 0.0

[ResourceID_Body2]
type = Buffer
format = R32_FLOAT
data = 1000.0

; 跨IB起手式3 不需要更改-------------------------
[CustomShader_ExtractCB1]
vs = hlsl/extract_cb1_vs.hlsl
ps = hlsl/extract_cb1_ps.hlsl
ps-u7 = ResourceDumpedCB1_UAV
depth_enable = false  
blend = ADD SRC_ALPHA INV_SRC_ALPHA
cull = none  
topology = point_list
draw = 4096, 0 
ps-u7 = null
ResourceDumpedCB1_SRV = copy ResourceDumpedCB1_UAV

[CustomShader_RecordBones]
cs = hlsl/record_bones_cs.hlsl
cs-t0 = vs-t0
cs-t1 = ResourceDumpedCB1_SRV
; cs-t2 由外部动态指定
cs-u1 = ResourceFakeT0_UAV
dispatch = 12, 1, 1
cs-u1 = null
cs-t0 = null
cs-t1 = null
ResourceFakeT0_SRV = copy ResourceFakeT0_UAV

; 动作B：负责修改 CB1 指针
[CustomShader_RedirectCB1]
cs = hlsl/redirect_cb1_cs.hlsl
cs-t0 = ResourceDumpedCB1_SRV
; cs-t2 由外部动态指定
; 【修复4：写入到中转站】
cs-u0 = ResourceFakeCB1_UAV
dispatch = 4, 1, 1
cs-u0 = null
cs-t0 = null
; 【修复5：把写好的中转站数据硬拷贝给引擎用的常量区】
ResourceFakeCB1 = copy ResourceFakeCB1_UAV

[ShaderOverridevs1000]
hash = f11c7e1dbf876a69
filter_index = 200
allow_duplicate_hash = overrule

[ShaderOverridevs1001]
hash = 303f45d5266d0369
filter_index = 201
allow_duplicate_hash = overrule

[ShaderOverridevs1002]
hash = 7b3a141f99cd9b39
filter_index = 201
allow_duplicate_hash = overrule

[ShaderOverridevs1003]
hash = 1479b2b594b9c91a
filter_index = 202
allow_duplicate_hash = overrule

[ShaderOverridevs1004]
hash = c6e55aaa8f4b3218
filter_index = 202
allow_duplicate_hash = overrule

[ShaderOverridevs1005]
hash = 784f11ae11c97112
filter_index = 203
allow_duplicate_hash = overrule

[ShaderOverridevs1006]
hash = f1b10202c73c72c3
filter_index = 204
allow_duplicate_hash = overrule

[ShaderOverridevs1007]
hash = 12ad3cc5f56f853c
filter_index = 204
allow_duplicate_hash = overrule

[ShaderOverridevs1008]
hash = 86cb3bc0a3e2e013
filter_index = 204
allow_duplicate_hash = overrule

[ShaderOverridevs1009]
hash = 906a3976f3e33cfb
filter_index = 204
allow_duplicate_hash = overrule

[ShaderOverridevs1010]
hash = 0ba16985f9f74f8d
filter_index = 204
allow_duplicate_hash = overrule

[ShaderOverridevs1011]
hash = 06c94dd56f447210
filter_index = 204
allow_duplicate_hash = overrule

[ShaderOverridevs1012]
hash = f47b1f797f5831d0
filter_index = 204
allow_duplicate_hash = overrule
[ShaderOverridevs1007_13]
hash = 1eaaa259e9a4285b
filter_index = 202
allow_duplicate_hash = overrule

; Shading: Custom Mesh Draw CommandLists -------------------------

[CommandList_Draw_Component0]
run = CommandList\EFMIv1\OverrideTextures
ib = ref Resource_Component0_IB
if $lod_level == 0
    vb0 = ref Resource_Component0_VB0
    vb3 = ref Resource_Component0_VB0
    vb1 = ref Resource_Component0_VB1
    vb2 = ref Resource_Component0_VB2
elif $lod_level == 1
    vb0 = ref Resource_Component0_VB0
    vb3 = ref Resource_Component0_VB0
    vb1 = ref Resource_Component0_VB1_LOD1
    vb2 = ref Resource_Component0_VB2_LOD1
endif
ps-t17 = Resource_Texture1
ps-t18 = Resource_Texture2
ps-t19 = Resource_Texture0
; Draw Component 0 d1d451ba
drawindexedinstanced = 14934, INSTANCE_COUNT, 0, 0, FIRST_INSTANCE
; Draw Component 0 d1d451ba.腿
drawindexedinstanced = 6375, INSTANCE_COUNT, 29457, 0, FIRST_INSTANCE
; Draw Component 0 d1d451ba.腿环
drawindexedinstanced = 2400, INSTANCE_COUNT, 35832, 0, FIRST_INSTANCE

if $down==0||$down==1
; Draw Component 0 d1d451ba.内裤
drawindexedinstanced = 2424, INSTANCE_COUNT, 14934, 0, FIRST_INSTANCE
endif
if $down==0||$down==2
; Draw Component 0 d1d451ba.尾巴
drawindexedinstanced = 1656, INSTANCE_COUNT, 17358, 0, FIRST_INSTANCE
endif

if $up==0||$up==2
; Draw Component 0 d1d451ba.衣服
drawindexedinstanced = 9738, INSTANCE_COUNT, 38232, 0, FIRST_INSTANCE
endif
if $up==0||$up==1||$up==2||$up==3
; Draw Component 0 d1d451ba.腰带
drawindexedinstanced = 10443, INSTANCE_COUNT, 19014, 0, FIRST_INSTANCE
endif
if $up==0||$up==1
; Draw Component 0 d1d451ba.裙子
drawindexedinstanced = 7686, INSTANCE_COUNT, 89184, 0, FIRST_INSTANCE
endif

if $left==0||$left==1
if $up==0||$up==2
; Draw Component 0 d1d451ba.袖子上衣
drawindexedinstanced = 18105, INSTANCE_COUNT, 47970, 0, FIRST_INSTANCE
endif
if $up==1||$up==3||$up==4
; Draw Component 0 d1d451ba.袖子上衣裸
drawindexedinstanced = 18105, INSTANCE_COUNT, 66075, 0, FIRST_INSTANCE
endif
endif
if $left==0||$left==2
; Draw Component 0 d1d451ba.袖子手臂
drawindexedinstanced = 4458, INSTANCE_COUNT, 84180, 0, FIRST_INSTANCE
endif
if $left==0
; Draw Component 0 d1d451ba.袖子链接
drawindexedinstanced = 546, INSTANCE_COUNT, 88638, 0, FIRST_INSTANCE
endif

if vs == 200 || vs == 201 || VS == 204
; 1. 存入身体的骨骼
    run = CustomShader_ExtractCB1
    if $lod_level == 0
        cs-t2 = ResourceID_Body
    elif $lod_level == 1
        cs-t2 = ResourceID_Body2
    endif
    run = CustomShader_RecordBones
    run = CustomShader_RedirectCB1
    vs-t0 = ResourceFakeT0_SRV
    vs-cb2 = ResourceFakeCB1
    if $up==0||$up==2
    ; Draw Component 0 d1d451ba.身体
    drawindexedinstanced = 102708, INSTANCE_COUNT, 96870, 0, FIRST_INSTANCE
    endif
    if $up==1||$up==3||$up==4
    ; Draw Component 0 d1d451ba.身体裸
    drawindexedinstanced = 102708, INSTANCE_COUNT, 199578, 0, FIRST_INSTANCE
    endif
endif

[CommandList_Draw_Component1]
run = CommandList\EFMIv1\OverrideTextures
ib = ref Resource_Component1_IB
if $lod_level == 0
    vb0 = ref Resource_Component1_VB0
    vb3 = ref Resource_Component1_VB0
    vb1 = ref Resource_Component1_VB1
    vb2 = ref Resource_Component1_VB2
elif $lod_level == 1
    vb0 = ref Resource_Component1_VB0
    vb3 = ref Resource_Component1_VB0
    vb1 = ref Resource_Component1_VB1_LOD1
    vb2 = ref Resource_Component1_VB2_LOD1
endif
; Draw Component 1 53c66b38
drawindexedinstanced = 35904, INSTANCE_COUNT, 0, 0, FIRST_INSTANCE
if $down==0||$down==2
; Draw Component 1 53c66b38.尾巴
drawindexedinstanced = 660, INSTANCE_COUNT, 35904, 0, FIRST_INSTANCE
endif

[CommandList_Draw_Component2]
run = CommandList\EFMIv1\OverrideTextures
ib = ref Resource_Component2_IB
if $lod_level == 0
    vb0 = ref Resource_Component2_VB0
    vb3 = ref Resource_Component2_VB0
    vb1 = ref Resource_Component2_VB1
    vb2 = ref Resource_Component2_VB2
elif $lod_level == 1
    vb0 = ref Resource_Component2_VB0
    vb3 = ref Resource_Component2_VB0
    vb1 = ref Resource_Component2_VB1_LOD1
    vb2 = ref Resource_Component2_VB2
endif
ps-t18 = Resource_Texture3
; Draw Component 2 aa239135
drawindexedinstanced = 10473, INSTANCE_COUNT, 0, 0, FIRST_INSTANCE

[CommandList_Draw_Component3]
run = CommandList\EFMIv1\OverrideTextures
ib = ref Resource_Component3_IB
if $lod_level == 0
    vb0 = ref Resource_Component3_VB0
    vb3 = ref Resource_Component3_VB0
    vb1 = ref Resource_Component3_VB1
    vb2 = ref Resource_Component3_VB2
elif $lod_level == 1
    vb0 = ref Resource_Component3_VB0
    vb3 = ref Resource_Component3_VB0
    vb1 = ref Resource_Component3_VB1_LOD1
    vb2 = ref Resource_Component3_VB2_LOD1
endif
ps-t14 = Resource_Texture5
ps-t15 = Resource_Texture4
; Draw Component 3 9911bdec
drawindexedinstanced = 12102, INSTANCE_COUNT, 0, 0, FIRST_INSTANCE

vs-t0 = ResourceFakeT0_SRV
vs-cb2 = ResourceFakeCB1

if vs == 202 || vs == 203
    if $lod_level == 0
        cs-t2 = ResourceID_Body
    elif $lod_level == 1
        cs-t2 = ResourceID_Body2
    endif
run = CustomShader_RedirectCB1

ib = ref Resource_Component0_IB
if $lod_level == 0
    vb0 = ref Resource_Component0_VB0
    vb3 = ref Resource_Component0_VB0
    vb1 = ref Resource_Component0_VB1
    vb2 = ref Resource_Component0_VB2
elif $lod_level == 1
    vb0 = ref Resource_Component0_VB0
    vb3 = ref Resource_Component0_VB0
    vb1 = ref Resource_Component0_VB1_LOD1
    vb2 = ref Resource_Component0_VB2_LOD1
endif
if $up==0||$up==2
; Draw Component 0 d1d451ba.身体
drawindexedinstanced = 102708, INSTANCE_COUNT, 96870, 0, FIRST_INSTANCE
endif
if $up==1||$up==3||$up==4
; Draw Component 0 d1d451ba.身体裸
drawindexedinstanced = 102708, INSTANCE_COUNT, 199578, 0, FIRST_INSTANCE
endif
endif

[CommandList_Draw_Component4]
run = CommandList\EFMIv1\OverrideTextures
ib = ref Resource_Component4_IB
if $lod_level == 0
    vb0 = ref Resource_Component4_VB0
    vb3 = ref Resource_Component4_VB0
    vb1 = ref Resource_Component4_VB1
    vb2 = ref Resource_Component4_VB2
elif $lod_level == 1
    vb0 = ref Resource_Component4_VB0
    vb3 = ref Resource_Component4_VB0
    vb1 = ref Resource_Component4_VB1
    vb2 = ref Resource_Component4_VB2
endif
; Draw Component 4 28656371
drawindexedinstanced = 465, INSTANCE_COUNT, 0, 0, FIRST_INSTANCE

[CommandList_Draw_Component5]
run = CommandList\EFMIv1\OverrideTextures
ib = ref Resource_Component5_IB
if $lod_level == 0
    vb0 = ref Resource_Component5_VB0
    vb3 = ref Resource_Component5_VB0
    vb1 = ref Resource_Component5_VB1
    vb2 = ref Resource_Component5_VB2
elif $lod_level == 1
    vb0 = ref Resource_Component5_VB0
    vb3 = ref Resource_Component5_VB0
    vb1 = ref Resource_Component5_VB1
    vb2 = ref Resource_Component5_VB2
endif
; Draw Component 5 b5e7260d
drawindexedinstanced = 864, INSTANCE_COUNT, 0, 0, FIRST_INSTANCE

[CommandList_Draw_Component6]
run = CommandList\EFMIv1\OverrideTextures
ib = ref Resource_Component6_IB
if $lod_level == 0
    vb0 = ref Resource_Component6_VB0
    vb3 = ref Resource_Component6_VB0
    vb1 = ref Resource_Component6_VB1
    vb2 = ref Resource_Component6_VB2
elif $lod_level == 1
    vb0 = ref Resource_Component6_VB0
    vb3 = ref Resource_Component6_VB0
    vb1 = ref Resource_Component6_VB1
    vb2 = ref Resource_Component6_VB2
endif
; Draw Component 6 edc93b5e
drawindexedinstanced = 102, INSTANCE_COUNT, 0, 0, FIRST_INSTANCE

[CommandList_Draw_Component7]
run = CommandList\EFMIv1\OverrideTextures
ib = ref Resource_Component7_IB
if $lod_level == 0
    vb0 = ref Resource_Component7_VB0
    vb3 = ref Resource_Component7_VB0
    vb1 = ref Resource_Component7_VB1
    vb2 = ref Resource_Component7_VB2
elif $lod_level == 1
    vb0 = ref Resource_Component7_VB0
    vb3 = ref Resource_Component7_VB0
    vb1 = ref Resource_Component7_VB1_LOD1
    vb2 = ref Resource_Component7_VB2_LOD1
endif
; Draw Component 7 ef3d9b63
drawindexedinstanced = 23688, INSTANCE_COUNT, 0, 0, FIRST_INSTANCE
if $up==0||$up==1||$up==2||$up==3
if $right==0||$right==1
; Draw Component 7 ef3d9b63.配件
drawindexedinstanced = 25332, INSTANCE_COUNT, 23688, 0, FIRST_INSTANCE
endif
if $right==0||$right==2
; Draw Component 7 ef3d9b63.配件.001
drawindexedinstanced = 31824, INSTANCE_COUNT, 49020, 0, FIRST_INSTANCE
endif
endif

[CommandList_Draw_Component8]
run = CommandList\EFMIv1\OverrideTextures
ib = ref Resource_Component8_IB
if $lod_level == 0
    vb0 = ref Resource_Component8_VB0
    vb3 = ref Resource_Component8_VB0
    vb1 = ref Resource_Component8_VB1
    vb2 = ref Resource_Component8_VB2
elif $lod_level == 1
    vb0 = ref Resource_Component8_VB0
    vb3 = ref Resource_Component8_VB0
    vb1 = ref Resource_Component8_VB1_LOD1
    vb2 = ref Resource_Component8_VB2_LOD1
endif
; Draw Component 8 18eb6cdb
drawindexedinstanced = 0, INSTANCE_COUNT, 0, 0, FIRST_INSTANCE
if $down==0||$down==2
; Draw Component 8 18eb6cdb.001
drawindexedinstanced = 10758, INSTANCE_COUNT, 0, 0, FIRST_INSTANCE
endif

[CommandList_Draw_Component9]
run = CommandList\EFMIv1\OverrideTextures
ib = ref Resource_Component9_IB
if $lod_level == 0
    vb0 = ref Resource_Component9_VB0
    vb3 = ref Resource_Component9_VB0
    vb1 = ref Resource_Component9_VB1
    vb2 = ref Resource_Component9_VB2
elif $lod_level == 1
    vb0 = ref Resource_Component9_VB0
    vb3 = ref Resource_Component9_VB0
    vb1 = ref Resource_Component9_VB1_LOD1
    vb2 = ref Resource_Component9_VB2_LOD1
endif
; Draw Component 9 2d496da0
;drawindexedinstanced = 639, INSTANCE_COUNT, 0, 0, FIRST_INSTANCE

[CommandList_Draw_Component10]
run = CommandList\EFMIv1\OverrideTextures
; Component is posed on CPU, vertex buffers modding not supported
; Draw Component 10 d996045a CPU-posed (only textures modding supported).001
draw = from_caller

; Shading: Full Models Draw Call Stacks Processing -------------------------

[TextureOverride_Component0]
$active = 1
hash = d1d451ba
match_index_count = 74298
$object_detected = 1
$lod_level = 0
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component0
endif

[TextureOverride_Component1]
$active = 1
hash = 53c66b38
match_index_count = 36564
$object_detected = 1
$lod_level = 0
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component1
endif

[TextureOverride_Component2]
$active = 1
hash = aa239135
match_index_count = 10485
$object_detected = 1
$lod_level = 0
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component2
endif

[TextureOverride_Component3]
$active = 1
hash = 9911bdec
match_index_count = 18336
$object_detected = 1
$lod_level = 0
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component3
endif

[TextureOverride_Component4]
$active = 1
hash = 28656371
match_index_count = 465
$object_detected = 1
$lod_level = 0
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component4
endif

[TextureOverride_Component5]
$active = 1
hash = b5e7260d
match_index_count = 864
$object_detected = 1
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component5
endif

[TextureOverride_Component6]
$active = 1
hash = edc93b5e
match_index_count = 102
$object_detected = 1
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component6
endif

[TextureOverride_Component7]
$active = 1
hash = ef3d9b63
match_index_count = 80856
$object_detected = 1
$lod_level = 0
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component7
endif

[TextureOverride_Component8]
$active = 1
hash = 18eb6cdb
match_index_count = 10758
$object_detected = 1
$lod_level = 0
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component8
endif

[TextureOverride_Component9]
$active = 1
hash = 2d496da0
match_index_count = 639
$object_detected = 1
$lod_level = 0
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component9
endif

[TextureOverride_Component10]
$active = 1
hash = d996045a
match_index_count = 1740
$object_detected = 1
$lod_level = 0
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component10
endif

; Shading: LoD Models Draw Call Stacks Processing -------------------------

[TextureOverride_Component0_LOD1]
$active = 1
hash = 121b1ddd
match_index_count = 34380
$object_detected = 1
$lod_level = 1
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component0
endif

[TextureOverride_Component1_LOD1]
$active = 1
hash = 284eee3d
match_index_count = 16446
$object_detected = 1
$lod_level = 1
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component1
endif

[TextureOverride_Component2_LOD1]
$active = 1
hash = 1775ab94
match_index_count = 10485
$object_detected = 1
$lod_level = 1
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component2
endif

[TextureOverride_Component3_LOD1]
$active = 1
hash = 8dd0d7fe
match_index_count = 8058
$object_detected = 1
$lod_level = 1
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component3
endif

[TextureOverride_Component4_LOD1]
$active = 1
hash = c9863d34
match_index_count = 249
$object_detected = 1
$lod_level = 1
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component4
endif

[TextureOverride_Component7_LOD1]
$active = 1
hash = 19abe433
match_index_count = 41484
$object_detected = 1
$lod_level = 1
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component7
endif

[TextureOverride_Component8_LOD1]
$active = 1
hash = 4863d9e9
match_index_count = 5100
$object_detected = 1
$lod_level = 1
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component8
endif

[TextureOverride_Component9_LOD1]
$active = 1
hash = 639f7302
match_index_count = 345
$object_detected = 1
$lod_level = 1
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component9
endif

[TextureOverride_Component10_LOD1]
$active = 1
hash = 93c84289
match_index_count = 1740
$object_detected = 1
$lod_level = 1
if $mod_enabled && DRAW_TYPE == 4
    handling = skip
    run = CommandList_Draw_Component10
endif

; Shading: Textures -------------------------

[Resource_Texture0]
filename = Textures/Components-0-9 t=0c7bdc90 BC5-Linear.dds

[TextureOverride_Texture0]
hash = 0c7bdc90
match_priority = 0
if $object_detected
    this = Resource_Texture0
endif

[Resource_Texture1]
filename = Textures/Components-0-9 t=3156b9c5 BC7-sRGB.dds

[TextureOverride_Texture1]
hash = 3156b9c5
match_priority = 0
if $object_detected
    this = Resource_Texture1
endif

[Resource_Texture2]
filename = Textures/Components-0-9 t=8619dce2 BC7-Linear.dds

[TextureOverride_Texture2]
hash = 8619dce2
match_priority = 0
if $object_detected
    this = Resource_Texture2
endif

[Resource_Texture3]
filename = Textures/Components-2-10 t=710b63ca BC7-sRGB.dds

[TextureOverride_Texture3]
hash = 710b63ca
match_priority = 0
if $object_detected
    this = Resource_Texture3
endif

[Resource_Texture4]
filename = Textures/Components-3 t=b227a4c8 BC5-Linear.dds

[TextureOverride_Texture4]
hash = b227a4c8
match_priority = 0
if $object_detected
    this = Resource_Texture4
endif

[Resource_Texture5]
filename = Textures/Components-3 t=b66e3d51 BC7-sRGB.dds

[TextureOverride_Texture5]
hash = b66e3d51
match_priority = 0
if $object_detected
    this = Resource_Texture5
endif

; Resources: Buffers -------------------------

[Resource_Component0_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
stride = 6
filename = Meshes/Component0_IB.buf

[Resource_Component0_VB0]
type = Buffer
stride = 16
filename = Meshes/Component0_VB0.buf

[Resource_Component0_VB1]
type = Buffer
stride = 12
filename = Meshes/Component0_VB1.buf

[Resource_Component0_VB2]
type = Buffer
stride = 12
filename = Meshes/Component0_VB2.buf

[Resource_Component0_VB1_LOD1]
type = Buffer
stride = 8
filename = Meshes/Component0_VB1_LOD1.buf

[Resource_Component0_VB2_LOD1]
type = Buffer
stride = 12
filename = Meshes/Component0_VB2_LOD1.buf

[Resource_Component1_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
stride = 6
filename = Meshes/Component1_IB.buf

[Resource_Component1_VB0]
type = Buffer
stride = 16
filename = Meshes/Component1_VB0.buf

[Resource_Component1_VB1]
type = Buffer
stride = 12
filename = Meshes/Component1_VB1.buf

[Resource_Component1_VB2]
type = Buffer
stride = 12
filename = Meshes/Component1_VB2.buf

[Resource_Component1_VB1_LOD1]
type = Buffer
stride = 8
filename = Meshes/Component1_VB1_LOD1.buf

[Resource_Component1_VB2_LOD1]
type = Buffer
stride = 12
filename = Meshes/Component1_VB2_LOD1.buf

[Resource_Component2_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
stride = 6
filename = Meshes/Component2_IB.buf

[Resource_Component2_VB0]
type = Buffer
stride = 16
filename = Meshes/Component2_VB0.buf

[Resource_Component2_VB1]
type = Buffer
stride = 12
filename = Meshes/Component2_VB1.buf

[Resource_Component2_VB2]
type = Buffer
stride = 12
filename = Meshes/Component2_VB2.buf

[Resource_Component2_VB1_LOD1]
type = Buffer
stride = 8
filename = Meshes/Component2_VB1_LOD1.buf

[Resource_Component3_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
stride = 6
filename = Meshes/Component3_IB.buf

[Resource_Component3_VB0]
type = Buffer
stride = 16
filename = Meshes/Component3_VB0.buf

[Resource_Component3_VB1]
type = Buffer
stride = 12
filename = Meshes/Component3_VB1.buf

[Resource_Component3_VB2]
type = Buffer
stride = 12
filename = Meshes/Component3_VB2.buf

[Resource_Component3_VB1_LOD1]
type = Buffer
stride = 8
filename = Meshes/Component3_VB1_LOD1.buf

[Resource_Component3_VB2_LOD1]
type = Buffer
stride = 12
filename = Meshes/Component3_VB2_LOD1.buf

[Resource_Component4_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
stride = 6
filename = Meshes/Component4_IB.buf

[Resource_Component4_VB0]
type = Buffer
stride = 16
filename = Meshes/Component4_VB0.buf

[Resource_Component4_VB1]
type = Buffer
stride = 8
filename = Meshes/Component4_VB1.buf

[Resource_Component4_VB2]
type = Buffer
stride = 12
filename = Meshes/Component4_VB2.buf

[Resource_Component5_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
stride = 6
filename = Meshes/Component5_IB.buf

[Resource_Component5_VB0]
type = Buffer
stride = 16
filename = Meshes/Component5_VB0.buf

[Resource_Component5_VB1]
type = Buffer
stride = 8
filename = Meshes/Component5_VB1.buf

[Resource_Component5_VB2]
type = Buffer
stride = 4
filename = Meshes/Component5_VB2.buf

[Resource_Component6_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
stride = 6
filename = Meshes/Component6_IB.buf

[Resource_Component6_VB0]
type = Buffer
stride = 16
filename = Meshes/Component6_VB0.buf

[Resource_Component6_VB1]
type = Buffer
stride = 8
filename = Meshes/Component6_VB1.buf

[Resource_Component6_VB2]
type = Buffer
stride = 12
filename = Meshes/Component6_VB2.buf

[Resource_Component7_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
stride = 6
filename = Meshes/Component7_IB.buf

[Resource_Component7_VB0]
type = Buffer
stride = 16
filename = Meshes/Component7_VB0.buf

[Resource_Component7_VB1]
type = Buffer
stride = 12
filename = Meshes/Component7_VB1.buf

[Resource_Component7_VB2]
type = Buffer
stride = 4
filename = Meshes/Component7_VB2.buf

[Resource_Component7_VB1_LOD1]
type = Buffer
stride = 8
filename = Meshes/Component7_VB1_LOD1.buf

[Resource_Component7_VB2_LOD1]
type = Buffer
stride = 4
filename = Meshes/Component7_VB2_LOD1.buf

[Resource_Component8_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
stride = 6
filename = Meshes/Component8_IB.buf

[Resource_Component8_VB0]
type = Buffer
stride = 16
filename = Meshes/Component8_VB0.buf

[Resource_Component8_VB1]
type = Buffer
stride = 12
filename = Meshes/Component8_VB1.buf

[Resource_Component8_VB2]
type = Buffer
stride = 12
filename = Meshes/Component8_VB2.buf

[Resource_Component8_VB1_LOD1]
type = Buffer
stride = 8
filename = Meshes/Component8_VB1_LOD1.buf

[Resource_Component8_VB2_LOD1]
type = Buffer
stride = 12
filename = Meshes/Component8_VB2_LOD1.buf

[Resource_Component9_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
stride = 6
filename = Meshes/Component9_IB.buf

[Resource_Component9_VB0]
type = Buffer
stride = 16
filename = Meshes/Component9_VB0.buf

[Resource_Component9_VB1]
type = Buffer
stride = 12
filename = Meshes/Component9_VB1.buf

[Resource_Component9_VB2]
type = Buffer
stride = 12
filename = Meshes/Component9_VB2.buf

[Resource_Component9_VB1_LOD1]
type = Buffer
stride = 8
filename = Meshes/Component9_VB1_LOD1.buf

[Resource_Component9_VB2_LOD1]
type = Buffer
stride = 12
filename = Meshes/Component9_VB2_LOD1.buf

[Resource_Component10_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
stride = 6
filename = Meshes/Component10_IB.buf

[Resource_Component10_VB0]
type = Buffer
stride = 24
filename = Meshes/Component10_VB0.buf

[Resource_Component10_VB1]
type = Buffer
stride = 8
filename = Meshes/Component10_VB1.buf

[Resource_Component10_VB2]
type = Buffer
stride = 32
filename = Meshes/Component10_VB2.buf

[Resource_Component10_VB2_LOD1]
type = Buffer
stride = 32
filename = Meshes/Component10_VB2_LOD1.buf

; Autogenerated -------------------------

; This mod.ini was automatically generated by EFMI Tools Blender addon v0.4.3 and requires EFMI v1.2.3+ to function

; EFMI Tools GitHub: https://github.com/SpectrumQT/EFMI-Tools
; EFMI Package GitHub: https://github.com/SpectrumQT/EFMI-Package
; XXMI Launcher GitHub: https://github.com/SpectrumQT/XXMI-Launcher
; EFMI Mods Website: https://gamebanana.com/games/21842
; EFMI GameBanana: https://gamebanana.com/tools/21846
; EFMI Tools GameBanana: https://gamebanana.com/tools/21847
; AGMF Modding Community Discord: https://discord.com/invite/agmf
; SHA256 CHECKSUM: 0ee2a13cb1b82da393ae78897cb33ddc131e23aa93003c0d7de0d8aeab844290
