io_import_rbsp
io_import_rbsp copied to clipboard
Show collidable geo from Tricoll
We can get interpret TricollTriangles now! You can filter for TextureData to find invisible collision objects (nodraw tricoll, playerclip brushes etc.)
>>> import bsp_tool
>>> bsp = bsp_tool.load_bsp("E:/Mod/Titanfall2/maps/sp_training.bsp")
>>> bsp.TRICOLL_HEADERS
<BspLump(3264 TricollHeader) at 0x000001A9157D7DC0>
>>> [i for i, h in enumerate(bsp.TRICOLL_HEADERS) if h.scale != 0][0]
1
>>> bsp.TRICOLL_HEADERS[0]
TricollHeader(flags=0, texture_flags=<MeshFlags.VERTEX_UNLIT_TS|VERTEX_UNLIT|VERTEX_LIT_BUMP|128: 1664>,
texture_data=1, num_vertices=4, num_triangles=2, num_bevel_indices=0,
first_vertex=1, first_triangle=0, first_node=0, first_bevel_index=0,
origin=vec3(0.0, 0.0, 0.0), scale=0.0)
>>> bsp.TRICOLL_HEADERS[1]
TricollHeader(flags=0, texture_flags=<MeshFlags.VERTEX_UNLIT_TS|VERTEX_UNLIT|VERTEX_LIT_BUMP|128: 1664>,
texture_data=1, num_vertices=10, num_triangles=10, num_bevel_indices=0,
first_vertex=5, first_triangle=2, first_node=0, first_bevel_index=0,
origin=vec3(91264.0, 9216.0, 22144.0), scale=16.0)
>>> bsp.TEXTURE_DATA_STRING_DATA[bsp.TEXTURE_DATA[1].name_index]
'TOOLS\\TOOLSNODRAW'