Compare commits

..

97 Commits

Author SHA1 Message Date
Vladislav Khorev
efc696de09 Final adjustments 2026-04-22 11:08:25 +03:00
Vladislav Khorev
074c586edf Final version 2026-04-20 01:11:24 +03:00
Vladislav Khorev
d64659c8d6 Now we can win or loose, also restart 2026-04-20 00:36:32 +03:00
Vladislav Khorev
d557c4b530 Working on fog, dialogs, etc 2026-04-20 00:21:51 +03:00
Vladislav Khorev
fd098e8346 working on the game 2026-04-19 23:25:18 +03:00
Vladislav Khorev
3622f2b888 Merge branch 'escape001' of gitea.fishrungames.com:salmon-engine-projects/space-game001 into escape001 2026-04-19 22:04:26 +03:00
Vladislav Khorev
ce8bc2d142 Added bandit chase, change dialogs 2026-04-19 22:03:56 +03:00
Vlad
e293f58413 Merge branch 'escape001' of gitea.fishrungames.com:salmon-engine-projects/space-game001 into escape001 2026-04-20 01:03:15 +06:00
Vlad
0495c3946c path forest loc 2026-04-20 01:02:49 +06:00
Vladislav Khorev
28a3ace187 Add more dialogs logic 2026-04-19 20:28:22 +03:00
Vladislav Khorev
61d806a7a1 Added more dialogs, some minor tweaks 2026-04-19 20:00:15 +03:00
Vladislav Khorev
e4bcf62afa Merge branch 'escape001' of gitea.fishrungames.com:salmon-engine-projects/space-game001 into escape001 2026-04-19 18:46:23 +03:00
Vladislav Khorev
709327b3af Adapt for web 2026-04-19 18:46:06 +03:00
Vladislav Khorev
920376d686 Working on web version 2026-04-19 17:13:48 +03:00
Vlad
a6d9716ddf Merge branch 'escape001' of gitea.fishrungames.com:salmon-engine-projects/space-game001 into escape001 2026-04-19 20:11:20 +06:00
Vlad
1a6410dc12 camera in barn 2026-04-19 20:10:28 +06:00
Vladislav Khorev
360d6999c2 merge 2026-04-19 15:41:49 +03:00
Vladislav Khorev
7fe425bf07 Adjustments 2026-04-19 15:33:54 +03:00
Vlad
c9324bd30b fix menu 2026-04-19 17:24:37 +06:00
Vlad
777ee30a24 loca 3 2026-04-19 15:39:44 +06:00
Vlad
c9e9755e28 added music 2026-04-19 14:13:27 +06:00
Vlad
f8b4174eea Merge branch 'escape001' of gitea.fishrungames.com:salmon-engine-projects/space-game001 into escape001 2026-04-19 13:47:11 +06:00
Vlad
9d4da63e36 added menu 2026-04-19 13:46:44 +06:00
Vladislav Khorev
a0b0db6f6a Working on village 2026-04-19 10:38:40 +03:00
Vladislav Khorev
60a1422232 Adding quests 2026-04-19 09:28:28 +03:00
Vladislav Khorev
25bb79fb42 police chase 2026-04-19 08:22:03 +03:00
Vladislav Khorev
8e0936836e Some quests 2026-04-19 07:56:42 +03:00
Vladislav Khorev
542939207f Change girlfriend behavior, set some dialogs 2026-04-19 06:37:35 +03:00
Vladislav Khorev
2195542974 Bug fixing 2026-04-18 22:27:23 +03:00
Vladislav Khorev
c6bd5385e3 Merge branch 'escape001' of gitea.fishrungames.com:salmon-engine-projects/space-game001 into escape001 2026-04-18 22:15:41 +03:00
Vladislav Khorev
abd3da30e2 Car logic, dialog logic 2026-04-18 22:15:34 +03:00
Vlad
bc62c34cf7 fix some / loca 1 2026-04-19 00:57:22 +06:00
Vladislav Khorev
0d7d430909 Added 3rd person view 2026-04-18 19:58:44 +03:00
Vladislav Khorev
57789eed24 working 2026-04-18 17:30:41 +03:00
Vladislav Khorev
8efe063749 Working on chars and anim 2026-04-18 17:26:14 +03:00
Vlad
e6f332244c Merge branch 'escape001' of gitea.fishrungames.com:salmon-engine-projects/space-game001 into escape001 2026-04-18 20:18:20 +06:00
Vlad
77827af150 added forbidden zones 2026-04-18 20:17:09 +06:00
Vladislav Khorev
66da012d5a Merge branch 'escape001' of gitea.fishrungames.com:salmon-engine-projects/space-game001 into escape001 2026-04-18 16:41:24 +03:00
Vladislav Khorev
b3a5e36e1b New type of anim 2026-04-18 16:41:17 +03:00
Vlad
b633aa01f5 Merge branch 'escape001' of gitea.fishrungames.com:salmon-engine-projects/space-game001 into escape001 2026-04-18 19:23:38 +06:00
Vlad
8191db025f added loca 2 2026-04-18 19:21:17 +06:00
Vladislav Khorev
c198f39515 Working on car physics 2026-04-18 14:14:04 +03:00
Vlad
01be8852c6 added loca2 2026-04-18 17:02:20 +06:00
Vlad
1bf54b5367 added locations 2026-04-18 14:45:50 +06:00
Vladislav Khorev
fe01a5d1b2 Working on audio in web part 2 2026-04-17 17:14:44 +03:00
Vladislav Khorev
b6e0422d71 Working on audio in web part 1 2026-04-17 17:13:55 +03:00
Vladislav Khorev
3778a603f2 merge 2026-04-17 16:30:09 +03:00
Vladislav Khorev
e310822462 Working on web version 2026-04-17 16:13:56 +03:00
Vladislav Khorev
3d3c3b2a36 merge 2026-04-17 13:42:45 +03:00
Vlad
b5bcd3a812 added music 2026-04-17 14:23:56 +06:00
16e7580418 Merge branch 'witcher001-cutscene' of gitea.fishrungames.com:salmon-engine-projects/space-game001 into witcher001-cutscene 2026-04-17 02:33:56 +06:00
be4dcd4cf9 fix: make choice options the only clickable area in dialogue choices 2026-04-17 02:04:36 +06:00
Vladislav Khorev
a1dda3fd50 Major refactoring 2026-04-16 20:24:27 +03:00
Vladislav Khorev
92ba3f2b60 Some refactoring 2026-04-16 20:06:03 +03:00
Vladislav Khorev
f2f56125f0 Refactoring 2026-04-16 18:07:22 +03:00
Vladislav Khorev
2ef2e456f7 GPU skinning refactoring 2026-04-16 17:48:23 +03:00
Vladislav Khorev
83cceecccd Refactoring 2026-04-16 15:37:48 +03:00
Vladislav Khorev
24851a89e8 Merge 2026-04-16 15:16:45 +03:00
Vladislav Khorev
d47cfd1b6b Minor refactoring 2026-04-16 15:07:59 +03:00
Vladislav Khorev
71346b4227 Remove unused files 2026-04-16 14:03:52 +03:00
Vladislav Khorev
08e1174eaf Fixing minor bugs 2026-04-16 13:44:40 +03:00
Vladislav Khorev
cc2eba1352 merge 2026-04-16 13:24:04 +03:00
Vladislav Khorev
cfee60d71a merge 2026-04-16 13:11:01 +03:00
Vladislav Khorev
dc76986cd3 Added path showing 2026-04-16 11:39:14 +03:00
Vladislav Khorev
61665434ab Fixing minor bugs 2026-04-16 09:37:36 +03:00
2494a44e4a refactor: switch cutscene camera to viewport/UV-based system 2026-04-16 01:29:01 +06:00
Vladislav Khorev
d8795ec076 Added shadow maps 2026-04-15 19:54:21 +03:00
ceebb13719 improve dialogue advance and add flexible cutscene camera system 2026-04-15 20:42:41 +06:00
Vladislav Khorev
a47306533e Working on stuff 2026-04-15 16:51:55 +03:00
Vladislav Khorev
f708843747 Working on optimization: GPU skinning and binary animations 2026-04-15 16:39:33 +03:00
Vladislav Khorev
a589765b7e prepare to add anims 2026-04-15 16:38:30 +03:00
4eaefd25d4 added finding path with A* and json file to know where character can walk 2026-04-15 18:36:27 +06:00
Vladislav Khorev
eff7322140 Working on dialog portraits 2026-04-15 11:56:38 +03:00
Vlad
44dd09fcb5 fix inventory 2026-04-15 14:50:46 +06:00
Vladislav Khorev
de2e18e38f Fixing rotation issues in battle mode 2026-04-15 10:34:55 +03:00
Vladislav Khorev
984d7489d5 Working on enemies and attack 2026-04-15 10:00:16 +03:00
Vlad
f7e6f063d1 added dialog start radius and background by time in cutscenes 2026-04-14 18:07:46 +06:00
Vlad
db8b9b7a18 fix timetyper and dialog start by click on npc 2026-04-14 17:41:28 +06:00
Vladislav Khorev
493eb5a5d7 Working on battle animation 2026-04-13 23:19:03 +03:00
Vlad
422ff1fbe3 merge 2026-04-13 15:08:38 +06:00
6465549c3b fix: dialogue text now displays correctly 2026-04-13 02:16:25 +06:00
Vlad
34759326b9 added npc's gift 2026-04-12 14:52:37 +06:00
7125674308 add dialogue and cutscene system 2026-04-12 01:46:33 +06:00
Vlad
bc2997d86f added activeFunc for active obj 2026-04-11 16:18:59 +06:00
Vlad
943b6b4d21 added load npcs from json 2026-04-11 15:30:29 +06:00
Vlad
b3fda88784 added inventory & active object 2026-04-09 15:33:55 +06:00
Vlad
e1b491be73 added load from json game objects 2026-04-07 20:17:04 +06:00
Vladislav Khorev
178f69967b Working on web, change python to lua 2026-04-04 14:29:20 +03:00
Vladislav Khorev
90e2a369f4 Added attack animation for ghots 2026-04-03 21:54:40 +03:00
Vladislav Khorev
403b93e7f5 Added more scripts 2026-04-03 20:06:33 +03:00
Vladislav Khorev
63c9d7b35b Adding scripts 2026-04-03 19:46:43 +03:00
Vladislav Khorev
995e2c8e5b NPC code 2026-04-02 21:03:55 +03:00
Vladislav Khorev
2e4a7ab467 Some cleanup 2026-04-02 19:24:15 +03:00
Vladislav Khorev
a96d0b207a Added ai generated animation 2026-04-01 19:07:21 +03:00
Vladislav Khorev
7840bfdb4e Added viola 2026-04-01 13:02:39 +03:00
Vladislav Khorev
56ce826205 Remove unused references 2026-04-01 12:03:35 +03:00
Vladislav Khorev
5364b97235 Working on new scene 2026-04-01 12:03:16 +03:00
397 changed files with 68285 additions and 39333 deletions

4
.gitattributes vendored
View File

@ -1,3 +1,7 @@
*.bmp filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.anim filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text

BIN
audio/ETM_Titles_track.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
audio/naprtyag_loop.ogg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,65 @@
import bpy
def append_layered_action_5_0(source_obj_name, target_obj_name):
source_obj = bpy.data.objects.get(source_obj_name)
target_obj = bpy.data.objects.get(target_obj_name)
if not (source_obj and target_obj):
print("Ошибка: Объекты не найдены")
return
src_action = source_obj.animation_data.action
tgt_action = target_obj.animation_data.action
# 1. Получаем слои (обычно первый)
src_layer = src_action.layers[0]
tgt_layer = tgt_action.layers[0]
# 2. Получаем стрипы
src_strip = src_layer.strips[0]
tgt_strip = tgt_layer.strips[0]
# Смещение (опираемся на конец диапазона целевого экшена)
offset = tgt_action.frame_range[1]
# 3. Итерируемся по channelbags в исходном стрипе
for src_bag in src_strip.channelbags:
# Ищем или создаем соответствующий bag в целевом стрипе
# Обычно они сопоставляются по имени или типу (например, 'Keyframe Channel Bag')
# В простейшем случае берем первый или сопоставляем по индексу
dst_bag = None
if len(tgt_strip.channelbags) > 0:
# Пытаемся найти по названию (если оно есть) или берем тот же индекс
dst_bag = tgt_strip.channelbags[0]
if not dst_bag:
# Если в целевом стрипе нет сумок, это странно, но можно создать
# (Метод создания может зависеть от конкретного подтипа стрипа в 5.0)
continue
#print(f"Обработка channelbag: {src_bag.name}, кривых: {len(src_bag.fcurves)}")
# 4. Итерируемся по fcurves внутри сумки
for src_fcurve in src_bag.fcurves:
dst_fcurve = dst_bag.fcurves.find(src_fcurve.data_path, index=src_fcurve.array_index)
if not dst_fcurve:
dst_fcurve = dst_bag.fcurves.new(data_path=src_fcurve.data_path, index=src_fcurve.array_index)
# 5. Копируем ключи с офсетом
for keyframe in src_fcurve.keyframe_points:
new_frame = keyframe.co[0] + offset
new_value = keyframe.co[1]
new_kp = dst_fcurve.keyframe_points.insert(new_frame, new_value, options={'FAST'})
new_kp.interpolation = keyframe.interpolation
# Обновляем интерполяцию
for fc in dst_bag.fcurves:
fc.update()
print(f"Анимация успешно дозаписана. Новый конец: {tgt_action.frame_range[1]}")
append_layered_action_5_0('Armature.001', 'Armature')

View File

@ -0,0 +1,192 @@
import bpy
import bmesh
# Имена mesh и арматуры
mesh_name = "arm"
armature_name = "Reference"
# Находим объект mesh по имени
mesh_obj = bpy.data.objects.get(mesh_name)
# Находим объект арматуры по имени
armature_obj = bpy.data.objects.get(armature_name)
# Устанавливаем текущий кадр на 0
bpy.context.scene.frame_set(0)
# Принудительно обновляем сцену, чтобы применить анимацию
bpy.context.view_layer.update()
# Открываем файл для записи
with open("C:\\Work\\Projects\\witcher001\\resources\\w\\zombie002.txt", "w") as file:
# Обработка арматуры и анимации
if armature_obj and armature_obj.type == 'ARMATURE':
file.write("=== Armature Matrix ===\n")
for row in armature_obj.matrix_world:
file.write(f"{row}\n")
file.write(f"=== Armature Bones: {len(armature_obj.data.bones)}\n")
for bone in armature_obj.data.bones:
# Записываем имя кости, длину и связи
file.write(f"Bone: {bone.name}\n")
file.write(f" HEAD_LOCAL: {bone.head_local}\n")
file.write(f" TAIL_LOCAL: {bone.tail_local}\n")
file.write(f" Length: {(bone.tail_local - bone.head_local).length}\n")
for row in bone.matrix:
file.write(f" {row}\n")
file.write(f" Parent: {bone.parent.name if bone.parent else 'None'}\n")
file.write(f" Children: {[child.name for child in bone.children]}\n")
# Обработка mesh
if mesh_obj and mesh_obj.type == 'MESH':
# Создаем копию mesh, чтобы не изменять оригинал
mesh_copy = mesh_obj.copy()
mesh_copy.data = mesh_obj.data.copy()
bpy.context.collection.objects.link(mesh_copy)
# Убедимся, что объект активен
bpy.context.view_layer.objects.active = mesh_copy
mesh_copy.select_set(True)
# Применяем модификатор Armature (если он есть)
for modifier in mesh_copy.modifiers:
if modifier.type == 'ARMATURE':
# Включаем модификатор, если он отключен
if not modifier.show_viewport:
modifier.show_viewport = True
if not modifier.show_render:
modifier.show_render = True
# Проверяем, что модификатор связан с арматурой
if modifier.object is None:
print(f"Модификатор Armature на объекте {mesh_copy.name} не связан с арматурой. Пропускаем.")
continue
# Временно применяем модификатор, чтобы получить правильные координаты вершин
try:
bpy.ops.object.modifier_apply(modifier=modifier.name)
except RuntimeError as e:
print(f"Ошибка при применении модификатора Armature: {e}")
continue
# Переходим в режим редактирования
bpy.ops.object.mode_set(mode='EDIT')
# Получаем BMesh представление mesh
bm = bmesh.from_edit_mesh(mesh_copy.data)
# Записываем список вершин
file.write(f"===Vertices: {len(bm.verts)}\n")
for vertex in bm.verts:
file.write(f"Vertex {vertex.index}: {vertex.co}\n")
# Убедимся, что у меша есть UV слой
uv_layer = bm.loops.layers.uv.active
if not uv_layer:
file.write("UV слой не найден.\n")
if uv_layer:
file.write(f"===UV Coordinates:\n")
file.write(f"Face count: {len(bm.faces)}\n")
for face in bm.faces:
file.write(f"Face {face.index}\n")
file.write(f"UV Count: {len(face.loops)}\n")
for loop in face.loops:
uv_coords = loop[uv_layer].uv
file.write(f" UV {uv_coords}\n")
# Записываем нормали
file.write(f"===Normals:\n")
for vertex in bm.verts:
file.write(f"Vertex {vertex.index}: Normal {vertex.normal}\n")
# Записываем треугольники (индексы вершин)
file.write(f"===Triangles: {len(bm.faces)}\n")
for face in bm.faces:
if len(face.verts) == 3: # Проверяем, что это треугольник
verts_indices = [vert.index for vert in face.verts]
file.write(f"Triangle: {verts_indices}\n")
# Возвращаемся в объектный режим
bpy.ops.object.mode_set(mode='OBJECT')
# Записываем веса вершин
file.write("=== Vertex Weights ===\n")
for vertex in mesh_copy.data.vertices:
file.write(f"Vertex {vertex.index}:\n")
file.write(f"Vertex groups: {len(vertex.groups)}\n")
for group in vertex.groups:
group_name = mesh_copy.vertex_groups[group.group].name
file.write(f" Group: '{group_name}', Weight: {group.weight}\n")
# Удаляем временную копию mesh
bpy.data.objects.remove(mesh_copy)
else:
file.write(f"Объект с именем '{mesh_name}' не найден или не является mesh.\n")
# Обработка арматуры и анимации
if armature_obj and armature_obj.type == 'ARMATURE':
# Получаем все ключевые кадры для арматуры
file.write("=== Animation Keyframes ===\n")
if armature_obj.animation_data and armature_obj.animation_data.action:
action = armature_obj.animation_data.action
# Собираем все уникальные ключевые кадры
keyframes = set()
# Логика для Blender 5.0 (Strip-based / ChannelBag structure)
if hasattr(action, "layers"):
for layer in action.layers:
if hasattr(layer, "strips"):
for strip in layer.strips:
# Проверяем наличие channelbags (согласно вашему dir(strip))
if hasattr(strip, "channelbags"):
for bag in strip.channelbags:
for fcurve in bag.fcurves:
for keyframe in fcurve.keyframe_points:
keyframes.add(int(keyframe.co[0]))
# На случай, если в этой версии используется единственное число
elif hasattr(strip, "channelbag") and strip.channelbag:
for fcurve in strip.channelbag.fcurves:
for keyframe in fcurve.keyframe_points:
keyframes.add(int(keyframe.co[0]))
# Фоллбек для Legacy экшенов
if not keyframes and hasattr(action, "fcurves"):
for fcurve in action.fcurves:
for keyframe in fcurve.keyframe_points:
keyframes.add(int(keyframe.co[0]))
keyframes = sorted(keyframes)
# Сортируем ключевые кадры
keyframes = sorted(keyframes)
# Сохраняем координаты и матрицы поворота для каждой кости на каждом ключевом кадре
file.write("=== Bone Transforms per Keyframe ===\n")
file.write(f"Keyframes: {len(keyframes)}\n")
for frame in keyframes:
# Устанавливаем текущий кадр
bpy.context.scene.frame_set(frame)
bpy.context.view_layer.update() # Обновляем сцену
file.write(f"Frame: {frame}\n")
for bone in armature_obj.pose.bones:
# Получаем координаты и матрицу поворота кости в мировом пространстве
matrix = bone.matrix
location = matrix.translation
rotation = matrix.to_euler()
# Записываем данные
file.write(f" Bone: {bone.name}\n")
file.write(f" Location: {location}\n")
file.write(f" Rotation: {rotation}\n")
file.write(f" Matrix:\n")
for row in matrix:
file.write(f" {row}\n")
else:
file.write(f"Объект с именем '{armature_name}' не найден или не является арматурой.\n")
print("Данные сохранены в файл 'mesh_armature_and_animation_data.txt'")

View File

@ -0,0 +1,228 @@
import bpy
import bmesh
#!
# Имена mesh и арматуры
mesh_name = "Joined"
armature_name = "Armature"
# Находим объект mesh по имени
mesh_obj = bpy.data.objects.get(mesh_name)
# Находим объект арматуры по имени
armature_obj = bpy.data.objects.get(armature_name)
# Устанавливаем текущий кадр на 0
bpy.context.scene.frame_set(0)
# Принудительно обновляем сцену, чтобы применить анимацию
bpy.context.view_layer.update()
# Открываем файл для записи
with open("C:\\Work\\Media\\witcher\\2026-04-13\\output\\gg_stand_idle001.txt", "w") as file:
# Обработка арматуры и анимации
if armature_obj and armature_obj.type == 'ARMATURE':
file.write("=== Armature Matrix ===\n")
for row in armature_obj.matrix_world:
file.write(f"{row}\n")
file.write(f"=== Armature Bones: {len(armature_obj.data.bones)}\n")
for bone in armature_obj.data.bones:
# Записываем имя кости, длину и связи
file.write(f"Bone: {bone.name}\n")
file.write(f" HEAD_LOCAL: {bone.head_local}\n")
file.write(f" TAIL_LOCAL: {bone.tail_local}\n")
file.write(f" Length: {(bone.tail_local - bone.head_local).length}\n")
for row in bone.matrix:
file.write(f" {row}\n")
file.write(f" Parent: {bone.parent.name if bone.parent else 'None'}\n")
file.write(f" Children: {[child.name for child in bone.children]}\n")
# Обработка mesh
if mesh_obj and mesh_obj.type == 'MESH':
# Создаем копию mesh, чтобы не изменять оригинал
mesh_copy = mesh_obj.copy()
mesh_copy.data = mesh_obj.data.copy()
bpy.context.collection.objects.link(mesh_copy)
# Убедимся, что объект активен
bpy.context.view_layer.objects.active = mesh_copy
mesh_copy.select_set(True)
# Применяем модификатор Armature (если он есть)
for modifier in mesh_copy.modifiers:
if modifier.type == 'ARMATURE':
# Включаем модификатор, если он отключен
if not modifier.show_viewport:
modifier.show_viewport = True
if not modifier.show_render:
modifier.show_render = True
# Проверяем, что модификатор связан с арматурой
if modifier.object is None:
print(f"Модификатор Armature на объекте {mesh_copy.name} не связан с арматурой. Пропускаем.")
continue
# Временно применяем модификатор, чтобы получить правильные координаты вершин
try:
bpy.ops.object.modifier_apply(modifier=modifier.name)
except RuntimeError as e:
print(f"Ошибка при применении модификатора Armature: {e}")
continue
# Переходим в режим редактирования
bpy.ops.object.mode_set(mode='EDIT')
# Получаем BMesh представление mesh
bm = bmesh.from_edit_mesh(mesh_copy.data)
# Записываем список вершин
file.write(f"===Vertices: {len(bm.verts)}\n")
for vertex in bm.verts:
file.write(f"Vertex {vertex.index}: {vertex.co}\n")
# Убедимся, что у меша есть UV слой
uv_layer = bm.loops.layers.uv.active
if not uv_layer:
file.write("UV слой не найден.\n")
if uv_layer:
file.write(f"===UV Coordinates:\n")
file.write(f"Face count: {len(bm.faces)}\n")
for face in bm.faces:
file.write(f"Face {face.index}\n")
file.write(f"UV Count: {len(face.loops)}\n")
for loop in face.loops:
uv_coords = loop[uv_layer].uv
file.write(f" UV {uv_coords}\n")
# Записываем нормали
file.write(f"===Normals:\n")
for vertex in bm.verts:
file.write(f"Vertex {vertex.index}: Normal {vertex.normal}\n")
# Записываем треугольники (индексы вершин)
file.write(f"===Triangles: {len(bm.faces)}\n")
for face in bm.faces:
if len(face.verts) == 3: # Проверяем, что это треугольник
verts_indices = [vert.index for vert in face.verts]
file.write(f"Triangle: {verts_indices}\n")
# Возвращаемся в объектный режим
bpy.ops.object.mode_set(mode='OBJECT')
# Записываем веса вершин
file.write("=== Vertex Weights (Max 5 bones per vertex) ===\n")
MAX_BONES = 5
for vertex in mesh_copy.data.vertices:
# Извлекаем все группы и веса для текущей вершины
all_weights = []
for group_element in vertex.groups:
all_weights.append({
'index': group_element.group,
'weight': group_element.weight
})
# Если костей больше лимита, фильтруем и перераспределяем
if len(all_weights) > MAX_BONES:
# Сортируем по весу (от большего к меньшему)
all_weights.sort(key=lambda x: x['weight'], reverse=True)
# Берем только топ-5
kept_weights = all_weights[:MAX_BONES]
# Считаем сумму весов оставшихся костей для нормализации
total_weight = sum(gw['weight'] for gw in kept_weights)
if total_weight > 0:
for gw in kept_weights:
gw['weight'] /= total_weight
else:
# На случай, если у всех веса были по 0.0 (редкий баг меша)
kept_weights[0]['weight'] = 1.0
final_weights = kept_weights
else:
final_weights = all_weights
file.write(f"Vertex {vertex.index}:\n")
file.write(f"Vertex groups: {len(final_weights)}\n")
for gw in final_weights:
group_name = mesh_copy.vertex_groups[gw['index']].name
file.write(f" Group: '{group_name}', Weight: {gw['weight']:.6f}\n")
# Удаляем временную копию mesh
bpy.data.objects.remove(mesh_copy)
else:
file.write(f"Объект с именем '{mesh_name}' не найден или не является mesh.\n")
# Обработка арматуры и анимации
if armature_obj and armature_obj.type == 'ARMATURE':
# Получаем все ключевые кадры для арматуры
file.write("=== Animation Keyframes ===\n")
if armature_obj.animation_data and armature_obj.animation_data.action:
action = armature_obj.animation_data.action
# Собираем все уникальные ключевые кадры
keyframes = set()
# Логика для Blender 5.0 (Strip-based / ChannelBag structure)
if hasattr(action, "layers"):
for layer in action.layers:
if hasattr(layer, "strips"):
for strip in layer.strips:
# Проверяем наличие channelbags (согласно вашему dir(strip))
if hasattr(strip, "channelbags"):
for bag in strip.channelbags:
for fcurve in bag.fcurves:
for keyframe in fcurve.keyframe_points:
keyframes.add(int(keyframe.co[0]))
# На случай, если в этой версии используется единственное число
elif hasattr(strip, "channelbag") and strip.channelbag:
for fcurve in strip.channelbag.fcurves:
for keyframe in fcurve.keyframe_points:
keyframes.add(int(keyframe.co[0]))
# Фоллбек для Legacy экшенов
if not keyframes and hasattr(action, "fcurves"):
for fcurve in action.fcurves:
for keyframe in fcurve.keyframe_points:
keyframes.add(int(keyframe.co[0]))
keyframes = sorted(keyframes)
# Сортируем ключевые кадры
keyframes = sorted(keyframes)
# Сохраняем координаты и матрицы поворота для каждой кости на каждом ключевом кадре
file.write("=== Bone Transforms per Keyframe ===\n")
file.write(f"Keyframes: {len(keyframes)}\n")
for frame in keyframes:
# Устанавливаем текущий кадр
bpy.context.scene.frame_set(frame)
bpy.context.view_layer.update() # Обновляем сцену
file.write(f"Frame: {frame}\n")
for bone in armature_obj.pose.bones:
# Получаем координаты и матрицу поворота кости в мировом пространстве
matrix = bone.matrix
location = matrix.translation
rotation = matrix.to_euler()
# Записываем данные
file.write(f" Bone: {bone.name}\n")
file.write(f" Location: {location}\n")
file.write(f" Rotation: {rotation}\n")
file.write(f" Matrix:\n")
for row in matrix:
file.write(f" {row}\n")
else:
file.write(f"Объект с именем '{armature_name}' не найден или не является арматурой.\n")
print("Данные сохранены в файл 'mesh_armature_and_animation_data.txt'")

View File

@ -0,0 +1,111 @@
import bpy
import bmesh
import mathutils
import random
import math
class SolidTreeGenerator:
def __init__(self, levels=5, length=3.0, radius=0.3):
self.levels = levels
self.base_length = length
self.base_radius = radius
# Хранилище для данных: (start_pos, end_pos, radius_start, radius_end)
self.branches_data = []
def calculate_tree(self, start_pos, direction, length, radius, level):
if level <= 0 or length < 0.1:
return
end_pos = start_pos + direction * length
# Сохраняем данные сегмента
self.branches_data.append({
'start': start_pos.copy(),
'end': end_pos.copy(),
'r_start': radius,
'r_end': radius * 0.7
})
# 1. Основной ствол (продолжение)
trunk_dir = (direction + self.get_random_vector(0.1)).normalized()
self.calculate_tree(end_pos, trunk_dir, length * 0.8, radius * 0.7, level - 1)
# 2. Боковые ветки (ветвление)
if level > 1:
num_sides = random.randint(2, 3) # Минимум 2 ветки для видимости
for _ in range(num_sides):
# Создаем вектор, сильно отклоненный от ствола (30-60 градусов)
axis = self.get_random_vector(1.0).normalized()
angle = math.radians(random.uniform(30, 60))
side_dir = direction.copy()
side_dir.rotate(mathutils.Quaternion(axis, angle))
# Боковые ветки короче
self.calculate_tree(end_pos, side_dir, length * 0.6, radius * 0.5, level - 1)
def get_random_vector(self, intensity):
return mathutils.Vector((
random.uniform(-intensity, intensity),
random.uniform(-intensity, intensity),
random.uniform(-intensity, intensity)
))
def build_mesh(self):
mesh = bpy.data.meshes.new("TreeMesh")
obj = bpy.data.objects.new("Tree", mesh)
bpy.context.collection.objects.link(obj)
bm = bmesh.new()
skin_layer = bm.verts.layers.skin.verify()
# Словарь для предотвращения дублирования вершин в одной точке
# Ключ - кортеж координат, Значение - объект вершины BMesh
vert_map = {}
for b in self.branches_data:
# Превращаем координаты в кортежи для словаря
s_key = tuple(round(v, 4) for v in b['start'])
e_key = tuple(round(v, 4) for v in b['end'])
# Получаем или создаем начальную вершину
if s_key not in vert_map:
v_start = bm.verts.new(b['start'])
v_start[skin_layer].radius = (b['r_start'], b['r_start'])
vert_map[s_key] = v_start
else:
v_start = vert_map[s_key]
# Получаем или создаем конечную вершину
if e_key not in vert_map:
v_end = bm.verts.new(b['end'])
v_end[skin_layer].radius = (b['r_end'], b['r_end'])
vert_map[e_key] = v_end
else:
v_end = vert_map[e_key]
# Создаем ребро, если его еще нет
if not bm.edges.get((v_start, v_end)):
bm.edges.new((v_start, v_end))
# Находим корень (самую нижнюю точку) и помечаем его
root_v = min(bm.verts, key=lambda v: v.co.z)
root_v[skin_layer].use_root = True
bm.to_mesh(mesh)
bm.free()
# Модификаторы
obj.modifiers.new(name="Skin", type='SKIN')
sub = obj.modifiers.new(name="Subdiv", type='SUBSURF')
sub.levels = 1 # Для начала 1, чтобы не тормозило
# Очистка сцены
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
# Запуск
generator = SolidTreeGenerator(levels=5, length=3.0, radius=0.4)
generator.calculate_tree(mathutils.Vector((0,0,0)), mathutils.Vector((0,0,1)), 3.0, 0.4, 5)
generator.build_mesh()

View File

@ -25,7 +25,7 @@ macro(check_and_download URL ARCHIVE_NAME EXTRACTED_DIR_NAME CHECK_FILE)
endmacro()
# 1) ZLIB (Нужна только для инклудов, если не используете emscripten порты)
check_and_download("https://www.zlib.net/zlib131.zip" "zlib131.zip" "zlib-1.3.1" "CMakeLists.txt")
check_and_download("https://www.zlib.net/zlib132.zip" "zlib132.zip" "zlib-1.3.2" "CMakeLists.txt")
# 2) SDL2
check_and_download("https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.32.10.zip" "release-2.32.10.zip" "SDL-release-2.32.10" "CMakeLists.txt")
@ -47,3 +47,12 @@ check_and_download("https://download.savannah.gnu.org/releases/freetype/freetype
# 8) SDL_ttf
check_and_download("https://github.com/libsdl-org/SDL_ttf/archive/refs/tags/release-2.24.0.zip" "release-2.24.0.zip" "SDL_ttf-release-2.24.0" "CMakeLists.txt")
# 9) Lua
check_and_download("https://github.com/lua/lua/archive/refs/tags/v5.4.8.zip" "lua-v5.4.8.zip" "lua-5.4.8" "lapi.c")
# 10) sol2 (header-only C++ bindings for Lua)
check_and_download("https://github.com/ThePhD/sol2/archive/refs/tags/v3.3.0.zip" "sol2-v3.3.0.zip" "sol2-3.3.0" "include/sol/sol.hpp")
# 11) SDL2_mixer
check_and_download("https://github.com/libsdl-org/SDL_mixer/archive/refs/tags/release-2.8.0.zip" "SDL_mixer-release-2.8.0.zip" "SDL_mixer-release-2.8.0" "CMakeLists.txt")

View File

@ -8,11 +8,16 @@ endmacro()
set(BUILD_CONFIGS Debug Release)
# Map MinSizeRel and RelWithDebInfo to Release libs for all imported targets.
# Without this CMake warns that IMPORTED_LOCATION is missing for those configs.
set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release)
set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release)
# ===========================================
# 1) ZLIB (zlib131.zip zlib-1.3.1) - без изменений
# 1) ZLIB (zlib131.zip zlib-1.3.2) - без изменений
# ===========================================
set(ZLIB_SRC_DIR "${THIRDPARTY_DIR}/zlib-1.3.1")
set(ZLIB_SRC_DIR "${THIRDPARTY_DIR}/zlib-1.3.2")
set(ZLIB_BUILD_DIR "${ZLIB_SRC_DIR}/build")
set(ZLIB_INSTALL_DIR "${ZLIB_SRC_DIR}/install")
@ -76,8 +81,8 @@ set_target_properties(zlib_external_lib PROPERTIES
#IMPORTED_LOCATION_RELEASE "${ZLIB_INSTALL_DIR}/lib/zlib.lib"
# Можно также указать статические библиотеки, если вы хотите их использовать
IMPORTED_LOCATION_DEBUG "${ZLIB_INSTALL_DIR}/lib/zlibstaticd.lib"
IMPORTED_LOCATION_RELEASE "${ZLIB_INSTALL_DIR}/lib/zlibstatic.lib"
IMPORTED_LOCATION_DEBUG "${ZLIB_INSTALL_DIR}/lib/zsd.lib"
IMPORTED_LOCATION_RELEASE "${ZLIB_INSTALL_DIR}/lib/zs.lib"
INTERFACE_INCLUDE_DIRECTORIES "${ZLIB_INSTALL_DIR}/include"
)
@ -547,3 +552,177 @@ if(NOT TARGET boost_external_lib)
# Boost заголовки находятся непосредственно в корне распакованной папки
target_include_directories(boost_external_lib INTERFACE "${BOOST_SRC_DIR}")
endif()
# ===========================================
# 9) Lua (5.5.0) - embedded scripting language
# ===========================================
set(LUA_SRC_DIR "${THIRDPARTY_DIR}/lua-5.4.8")
if(NOT TARGET lua_static)
file(GLOB LUA_SOURCES "${LUA_SRC_DIR}/*.c")
# Exclude the standalone interpreter, compiler, and unity-build wrapper.
# onelua.c #includes all other .c files compiling it alongside them
# causes every symbol to be defined twice.
list(REMOVE_ITEM LUA_SOURCES
"${LUA_SRC_DIR}/lua.c"
"${LUA_SRC_DIR}/luac.c"
"${LUA_SRC_DIR}/onelua.c"
)
add_library(lua_static STATIC ${LUA_SOURCES})
target_include_directories(lua_static PUBLIC "${LUA_SRC_DIR}")
target_compile_definitions(lua_static PRIVATE _CRT_SECURE_NO_WARNINGS)
endif()
# ===========================================
# 10) sol2 (3.3.0) - header-only C++ bindings for Lua
# ===========================================
set(SOL2_SRC_DIR "${THIRDPARTY_DIR}/sol2-3.3.0")
# Apply patch for Clang/Emscripten compatibility in optional<T&>::emplace().
# The sentinel file prevents re-applying on subsequent cmake runs.
set(_sol2_sentinel "${SOL2_SRC_DIR}/.patched")
if(NOT EXISTS "${_sol2_sentinel}")
find_package(Git QUIET)
if(GIT_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} apply --ignore-whitespace
"${CMAKE_CURRENT_LIST_DIR}/patches/sol2-3.3.0-clang-optional.patch"
WORKING_DIRECTORY "${SOL2_SRC_DIR}"
RESULT_VARIABLE _sol2_patch_res
)
if(_sol2_patch_res EQUAL 0)
file(WRITE "${_sol2_sentinel}" "patched\n")
message(STATUS "Applied sol2 Clang optional patch")
else()
message(WARNING "sol2 patch failed (exit ${_sol2_patch_res}) — Clang/Emscripten builds may not compile")
endif()
else()
message(WARNING "Git not found — cannot apply sol2 patch automatically. "
"Apply cmake/patches/sol2-3.3.0-clang-optional.patch manually.")
endif()
endif()
if(NOT TARGET sol2_external_lib)
add_library(sol2_external_lib INTERFACE)
target_include_directories(sol2_external_lib INTERFACE "${SOL2_SRC_DIR}/include")
target_link_libraries(sol2_external_lib INTERFACE lua_static)
endif()
# ===========================================
# 11) SDL2_mixer (2.8.0) сборка из исходников
# ===========================================
set(SDL2MIXER_SRC_DIR "${THIRDPARTY_DIR}/SDL_mixer-release-2.8.0")
set(SDL2MIXER_BASE_DIR "${SDL2MIXER_SRC_DIR}/install")
set(SDL2MIXER_BASE_DIR "${SDL2MIXER_BASE_DIR}" CACHE PATH "SDL2_mixer install base directory" FORCE)
set(_have_sdl2mixer TRUE)
foreach(cfg IN LISTS BUILD_CONFIGS)
if(NOT EXISTS "${SDL2MIXER_BASE_DIR}-${cfg}/lib/SDL2_mixer.lib" AND
NOT EXISTS "${SDL2MIXER_BASE_DIR}-${cfg}/lib/SDL2_mixerd.lib")
set(_have_sdl2mixer FALSE)
endif()
endforeach()
if(NOT _have_sdl2mixer)
foreach(cfg IN LISTS BUILD_CONFIGS)
if(cfg STREQUAL "Debug")
set(_SDL2_LIB "${SDL2_INSTALL_DIR}/lib/SDL2d.lib")
else()
set(_SDL2_LIB "${SDL2_INSTALL_DIR}/lib/SDL2.lib")
endif()
log("Configuring SDL2_mixer (${cfg}) ...")
execute_process(
COMMAND ${CMAKE_COMMAND}
-G "${CMAKE_GENERATOR}"
-S "${SDL2MIXER_SRC_DIR}"
-B "${SDL2MIXER_SRC_DIR}/build-${cfg}"
-DCMAKE_INSTALL_PREFIX=${SDL2MIXER_BASE_DIR}-${cfg}
-DCMAKE_PREFIX_PATH=${SDL2_INSTALL_DIR}
-DSDL2_LIBRARY=${_SDL2_LIB}
-DSDL2_INCLUDE_DIR=${SDL2_INSTALL_DIR}/include/SDL2
-DSDL2MIXER_DEPS_SHARED=OFF
-DSDL2MIXER_VENDORED=ON
-DSDL2MIXER_SAMPLES=OFF
-DSDL2MIXER_MUSIC_CMD=OFF
-DSDL2MIXER_MOD=OFF
-DSDL2MIXER_MIDI=OFF
-DSDL2MIXER_OPUS=OFF
-DSDL2MIXER_WAVPACK=OFF
-DSDL2MIXER_MP3_MPG123=OFF
-DSDL2MIXER_MP3_DRMP3=ON
-DSDL2MIXER_FLAC_DRFLAC=ON
-DSDL2MIXER_OGG_STB=ON
-DCMAKE_DISABLE_FIND_PACKAGE_OGG=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_Vorbis=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_FLAC=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_MPG123=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_LibModPlug=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_FluidLite=TRUE
RESULT_VARIABLE _mixer_cfg_res
OUTPUT_VARIABLE _mixer_cfg_out
ERROR_VARIABLE _mixer_cfg_err
)
if(NOT _mixer_cfg_res EQUAL 0)
message(STATUS "SDL2_mixer configure stdout: ${_mixer_cfg_out}")
message(STATUS "SDL2_mixer configure stderr: ${_mixer_cfg_err}")
message(FATAL_ERROR "SDL2_mixer configure failed for ${cfg}")
endif()
log("Building SDL2_mixer (${cfg}) ...")
execute_process(
COMMAND ${CMAKE_COMMAND}
--build "${SDL2MIXER_SRC_DIR}/build-${cfg}" --config ${cfg}
RESULT_VARIABLE _mixer_build_res
)
if(NOT _mixer_build_res EQUAL 0)
message(FATAL_ERROR "SDL2_mixer build failed for ${cfg}")
endif()
log("Installing SDL2_mixer (${cfg}) ...")
execute_process(
COMMAND ${CMAKE_COMMAND}
--install "${SDL2MIXER_SRC_DIR}/build-${cfg}" --config ${cfg}
RESULT_VARIABLE _mixer_inst_res
)
if(NOT _mixer_inst_res EQUAL 0)
message(FATAL_ERROR "SDL2_mixer install failed for ${cfg}")
endif()
endforeach()
endif()
set(_mixer_debug_lib "")
foreach(cand
"${SDL2MIXER_BASE_DIR}-Debug/lib/SDL2_mixerd.lib"
"${SDL2MIXER_BASE_DIR}-Debug/lib/SDL2_mixer.lib"
)
if(EXISTS "${cand}")
set(_mixer_debug_lib "${cand}")
break()
endif()
endforeach()
set(_mixer_release_lib "")
foreach(cand
"${SDL2MIXER_BASE_DIR}-Release/lib/SDL2_mixer.lib"
)
if(EXISTS "${cand}")
set(_mixer_release_lib "${cand}")
break()
endif()
endforeach()
if(_mixer_debug_lib STREQUAL "" OR _mixer_release_lib STREQUAL "")
message(FATAL_ERROR "SDL2_mixer libs not found in ${SDL2MIXER_BASE_DIR}-Debug/Release")
endif()
add_library(SDL2_mixer_external_lib UNKNOWN IMPORTED GLOBAL)
set_target_properties(SDL2_mixer_external_lib PROPERTIES
IMPORTED_LOCATION_DEBUG "${_mixer_debug_lib}"
IMPORTED_LOCATION_RELEASE "${_mixer_release_lib}"
INTERFACE_INCLUDE_DIRECTORIES
"$<IF:$<CONFIG:Debug>,${SDL2MIXER_BASE_DIR}-Debug/include,${SDL2MIXER_BASE_DIR}-Release/include>"
INTERFACE_LINK_LIBRARIES
"SDL2_external_lib"
)

View File

@ -0,0 +1,14 @@
--- a/include/sol/optional_implementation.hpp
+++ b/include/sol/optional_implementation.hpp
@@ -2189,7 +2189,10 @@
template <class... Args>
T& emplace(Args&&... args) noexcept {
static_assert(std::is_constructible<T, Args&&...>::value, "T must be constructible with Args");
*this = nullopt;
- this->construct(std::forward<Args>(args)...);
+ // Reference specialization stores a pointer; set it directly.
+ // construct() only exists in the non-reference specialization.
+ m_value = std::addressof(std::forward<Args>(args)...);
+ return *m_value;
}

View File

@ -1,156 +0,0 @@
{
"root": {
"type": "FrameLayout",
"x": 0,
"y": 0,
"width": 1280,
"height": 720,
"children": [
{
"type": "FrameLayout",
"name": "leftPanel",
"x": 100,
"y": 100,
"width": 320,
"height": 400,
"children": [
{
"type": "LinearLayout",
"name": "mainButtons",
"orientation": "vertical",
"spacing": 10,
"x": 0,
"y": 0,
"width": 300,
"height": 300,
"children": [
{
"type": "Button",
"name": "playButton",
"x": 100,
"y": 300,
"width": 200,
"height": 50,
"animations": {
"buttonsExit": {
"repeat": false,
"steps": [
{
"type": "move",
"to": [
-400,
0
],
"duration": 1.0,
"easing": "easein"
}
]
}
},
"textures": {
"normal": "./resources/button.png",
"hover": "./resources/sand.png",
"pressed": "./resources/button.png"
}
},
{
"type": "Button",
"name": "settingsButton",
"x": 100,
"y": 200,
"width": 200,
"height": 50,
"animations": {
"buttonsExit": {
"repeat": false,
"steps": [
{
"type": "wait",
"duration": 0.5
},
{
"type": "move",
"to": [
-400,
0
],
"duration": 1.0,
"easing": "easein"
}
]
}
},
"textures": {
"normal": "./resources/sand.png",
"hover": "./resources/button.png",
"pressed": "./resources/sand.png"
}
},
{
"type": "Button",
"name": "exitButton",
"x": 100,
"y": 100,
"width": 200,
"height": 50,
"animations": {
"buttonsExit": {
"repeat": false,
"steps": [
{
"type": "wait",
"duration": 1.0
},
{
"type": "move",
"to": [
-400,
0
],
"duration": 1.0,
"easing": "easein"
}
]
},
"bgScroll": {
"repeat": true,
"steps": [
{
"type": "move",
"to": [
1280,
0
],
"duration": 5.0,
"easing": "linear"
}
]
}
},
"textures": {
"normal": "./resources/rock.png",
"hover": "./resources/button.png",
"pressed": "./resources/rock.png"
}
}
]
}
]
},
{
"type": "Slider",
"name": "musicVolumeSlider",
"x": 1140,
"y": 100,
"width": 10,
"height": 500,
"value": 0.5,
"orientation": "vertical",
"textures": {
"track": "./resources/musicVolumeBarTexture.png",
"knob": "./resources/musicVolumeBarButton.png"
}
}
]
}
}

312
convert_anim_to_binary.py Normal file
View File

@ -0,0 +1,312 @@
#!/usr/bin/env python3
"""
Convert a text-based bone animation file to the BSAF binary format.
Usage:
python convert_anim_to_binary.py <input.txt> <output.bin>
Binary format (BSAF v1) -- all values little-endian:
HEADER
4 bytes magic "BSAF"
uint32 version (1)
BONES
uint32 numBones
per bone:
3 x float boneStartWorld (from HEAD_LOCAL)
float boneLength
9 x float 3x3 rotation matrix (row-major)
int32 parentIndex (-1 if none)
uint32 numChildren
numChildren x int32 childIndices
VERTICES
uint32 numVertices
numVertices x 3 x float positions
UV COORDINATES
uint32 numFaces
numFaces x 6 x float 3 UV pairs per face (u0,v0,u1,v1,u2,v2)
NORMALS
numVertices x 3 x float normals
TRIANGLES
uint32 numTriangles
numTriangles x 3 x int32 vertex indices
VERTEX WEIGHTS
per vertex (numVertices):
uint32 numGroups
numGroups x (int32 boneIndex, float weight)
ANIMATION KEYFRAMES
uint32 numKeyframes
per keyframe:
int32 frameNumber
per bone (numBones, in index order 0..N-1):
3 x float location
16 x float 4x4 matrix (row-major)
"""
import struct
import re
import sys
def parse_floats(line):
return [float(x) for x in re.findall(r'[-]?\d+\.\d+', line)]
def parse_first_int(line):
m = re.search(r'\d+', line)
if m:
return int(m.group())
raise ValueError(f"No integer found in: {line}")
def parse_children(line):
return re.findall(r"'([^']+)'", line)
def convert(input_path, output_path):
with open(input_path, 'r', encoding='utf-8', errors='replace') as f:
lines = f.readlines()
idx = 0
def next_line():
nonlocal idx
line = lines[idx].rstrip()
idx += 1
return line
# --- Skip armature matrix (5 lines) ---
for _ in range(5):
next_line()
# --- Bone count ---
line = next_line() # "=== Armature Bones: 65"
num_bones = parse_first_int(line)
bone_names = []
bones = []
bone_parent_names = []
bone_children_names = []
for _ in range(num_bones):
bone = {}
# "Bone: mixamorig:Hips"
line = next_line()
bone_name = line[6:]
bone_names.append(bone_name)
# " HEAD_LOCAL: <Vector (x, y, z)>"
line = next_line()
bone['head'] = parse_floats(line)[:3]
# " TAIL_LOCAL: ..." -- skip
next_line()
# " Length: 0.123"
line = next_line()
bone['length'] = parse_floats(line)[0]
# 3x3 matrix (3 rows)
mat = []
for _ in range(3):
mat.extend(parse_floats(next_line()))
bone['matrix_3x3'] = mat
# " Parent: None" or " Parent: boneName"
line = next_line()
if line == " Parent: None":
bone_parent_names.append(None)
else:
bone_parent_names.append(line[10:])
# " Children: ['a', 'b'] or []"
line = next_line()
bone_children_names.append(parse_children(line))
bones.append(bone)
# Build name -> index map
name_to_idx = {name: i for i, name in enumerate(bone_names)}
# Resolve parent / child indices
for i in range(num_bones):
if bone_parent_names[i] is None:
bones[i]['parent'] = -1
else:
bones[i]['parent'] = name_to_idx[bone_parent_names[i]]
bones[i]['children'] = [name_to_idx[c] for c in bone_children_names[i]]
# --- Vertices ---
line = next_line() # "===Vertices: 5140"
num_vertices = parse_first_int(line)
vertices = []
for _ in range(num_vertices):
vertices.append(parse_floats(next_line())[:3])
# --- UV Coordinates ---
next_line() # "===UV Coordinates:"
line = next_line() # "Face count: 8602"
num_faces = parse_first_int(line)
uvs = []
for _ in range(num_faces):
next_line() # "Face N"
next_line() # "UV Count: 3"
face_uvs = []
for _ in range(3):
face_uvs.extend(parse_floats(next_line())[:2])
uvs.append(face_uvs) # 6 floats
# --- Normals ---
next_line() # "===Normals:"
normals = []
for _ in range(num_vertices):
normals.append(parse_floats(next_line())[:3])
# --- Triangles ---
line = next_line() # "===Triangles: 8602"
num_triangles = parse_first_int(line)
triangles = []
for _ in range(num_triangles):
line = next_line()
ints = [int(x) for x in re.findall(r'[-]?\d+', line)]
triangles.append(ints[:3])
# --- Vertex Weights ---
next_line() # "=== Vertex Weights ..."
vertex_weights = []
for _ in range(num_vertices):
next_line() # "Vertex N:"
line = next_line() # "Vertex groups: 2"
num_groups = parse_first_int(line)
groups = []
for _ in range(num_groups):
line = next_line()
m = re.search(r"'([^']+)'.*?([-]?\d+\.\d+)", line)
bone_name = m.group(1)
weight = float(m.group(2))
groups.append((name_to_idx[bone_name], weight))
vertex_weights.append(groups)
# --- Animation Keyframes ---
next_line() # "=== Animation Keyframes ==="
next_line() # "=== Bone Transforms per Keyframe ==="
line = next_line() # "Keyframes: 32"
num_keyframes = parse_first_int(line)
keyframes = []
for _ in range(num_keyframes):
line = next_line() # "Frame: 0"
frame_number = parse_first_int(line)
bone_data = {}
for _ in range(num_bones):
line = next_line() # " Bone: mixamorig:Hips"
bone_name = line.strip()
if bone_name.startswith("Bone: "):
bone_name = bone_name[6:]
bone_idx = name_to_idx[bone_name]
# Location
location = parse_floats(next_line())[:3]
# Rotation (skip)
next_line()
# " Matrix:" (skip header)
next_line()
# 4 rows of 4 floats
matrix = []
for _ in range(4):
matrix.extend(parse_floats(next_line()))
bone_data[bone_idx] = {
'location': location,
'matrix': matrix,
}
keyframes.append((frame_number, bone_data))
# ================================================================
# Write binary file
# ================================================================
with open(output_path, 'wb') as out:
# Header
out.write(b'BSAF')
out.write(struct.pack('<I', 1))
# Bones
out.write(struct.pack('<I', num_bones))
for i in range(num_bones):
b = bones[i]
out.write(struct.pack('<3f', *b['head']))
out.write(struct.pack('<f', b['length']))
out.write(struct.pack('<9f', *b['matrix_3x3']))
out.write(struct.pack('<i', b['parent']))
out.write(struct.pack('<I', len(b['children'])))
for c in b['children']:
out.write(struct.pack('<i', c))
# Vertices
out.write(struct.pack('<I', num_vertices))
for v in vertices:
out.write(struct.pack('<3f', *v))
# UV Coordinates
out.write(struct.pack('<I', num_faces))
for uv in uvs:
out.write(struct.pack('<6f', *uv))
# Normals
for n in normals:
out.write(struct.pack('<3f', *n))
# Triangles
out.write(struct.pack('<I', num_triangles))
for t in triangles:
out.write(struct.pack('<3i', *t))
# Vertex Weights
for vw in vertex_weights:
out.write(struct.pack('<I', len(vw)))
for bone_idx, weight in vw:
out.write(struct.pack('<if', bone_idx, weight))
# Animation Keyframes
out.write(struct.pack('<I', num_keyframes))
for frame_num, bone_data in keyframes:
out.write(struct.pack('<i', frame_num))
for i in range(num_bones):
bd = bone_data[i]
out.write(struct.pack('<3f', *bd['location']))
out.write(struct.pack('<16f', *bd['matrix']))
input_size = sum(len(l) for l in lines)
import os
output_size = os.path.getsize(output_path)
print(f"Converted: {input_path} ({input_size:,} bytes text) -> {output_path} ({output_size:,} bytes binary)")
print(f" Bones: {num_bones}, Vertices: {num_vertices}, Faces: {num_faces}, "
f"Triangles: {num_triangles}, Keyframes: {num_keyframes}")
if __name__ == '__main__':
if len(sys.argv) != 3:
print(f"Usage: {sys.argv[0]} <input.txt> <output.bin>")
sys.exit(1)
convert(sys.argv[1], sys.argv[2])

View File

@ -0,0 +1,359 @@
#!/usr/bin/env python3
"""
Convert a text-based multi-mesh bone animation file to the BSMF binary format.
Usage:
python convert_anim_to_binary_new.py <input.txt> <output.bin>
Binary format (BSMF v1) -- all values little-endian:
HEADER
4 bytes magic "BSMF"
uint32 version (1)
ARMATURE MATRIX
16 x float 4x4 matrix (row-major)
BONES
uint32 numBones
per bone:
3 x float boneStartWorld (from HEAD_LOCAL)
float boneLength
9 x float 3x3 rotation matrix (row-major)
int32 parentIndex (-1 if none)
uint32 numChildren
numChildren x int32 childIndices
MESHES
uint32 numMeshes
per mesh:
uint32 nameLength
nameLength x char meshName (UTF-8, no null terminator)
VERTICES
uint32 numVertices
numVertices x 3 x float positions
UV COORDINATES
uint32 numFaces
numFaces x 6 x float 3 UV pairs per face (u0,v0,u1,v1,u2,v2)
NORMALS
numVertices x 3 x float normals
TRIANGLES
uint32 numTriangles
numTriangles x 3 x int32 vertex indices
VERTEX WEIGHTS
per vertex (numVertices):
uint32 numGroups
numGroups x (int32 boneIndex, float weight)
ANIMATION KEYFRAMES
uint32 numKeyframes
per keyframe:
int32 frameNumber
per bone (numBones, in index order 0..N-1):
3 x float location
16 x float 4x4 matrix (row-major)
"""
import struct
import re
import sys
def parse_floats(line):
return [float(x) for x in re.findall(r'[-]?\d+\.\d+', line)]
def parse_first_int(line):
m = re.search(r'\d+', line)
if m:
return int(m.group())
raise ValueError(f"No integer found in: {line}")
def parse_children(line):
return re.findall(r"'([^']+)'", line)
def convert(input_path, output_path):
with open(input_path, 'r', encoding='utf-8', errors='replace') as f:
lines = f.readlines()
idx = 0
def next_line():
nonlocal idx
line = lines[idx].rstrip()
idx += 1
return line
# --- Armature matrix header + 4 rows ---
next_line() # "=== Armature Matrix ==="
armature_matrix = []
for _ in range(4):
armature_matrix.extend(parse_floats(next_line())[:4])
# --- Bone count ---
line = next_line() # "=== Armature Bones: 65"
num_bones = parse_first_int(line)
bone_names = []
bones = []
bone_parent_names = []
bone_children_names = []
for _ in range(num_bones):
bone = {}
# "Bone: mixamorig:Hips"
line = next_line()
bone_name = line[6:]
bone_names.append(bone_name)
# " HEAD_LOCAL: <Vector (x, y, z)>"
line = next_line()
bone['head'] = parse_floats(line)[:3]
# " TAIL_LOCAL: ..." -- skip
next_line()
# " Length: 0.123"
line = next_line()
bone['length'] = parse_floats(line)[0]
# 3x3 matrix (3 rows)
mat = []
for _ in range(3):
mat.extend(parse_floats(next_line()))
bone['matrix_3x3'] = mat
# " Parent: None" or " Parent: boneName"
line = next_line()
if line == " Parent: None":
bone_parent_names.append(None)
else:
bone_parent_names.append(line[10:])
# " Children: ['a', 'b'] or []"
line = next_line()
bone_children_names.append(parse_children(line))
bones.append(bone)
# Build name -> index map
name_to_idx = {name: i for i, name in enumerate(bone_names)}
# Resolve parent / child indices
for i in range(num_bones):
if bone_parent_names[i] is None:
bones[i]['parent'] = -1
else:
bones[i]['parent'] = name_to_idx[bone_parent_names[i]]
bones[i]['children'] = [name_to_idx[c] for c in bone_children_names[i]]
# --- Multi-mesh header ---
line = next_line() # "=== TOTAL MESHES TO EXPORT: 7 ==="
num_meshes = parse_first_int(line)
meshes = []
for _ in range(num_meshes):
# "=== Mesh Object: Name ==="
line = next_line()
m = re.match(r"===\s*Mesh Object:\s*(.+?)\s*===$", line)
if not m:
raise ValueError(f"Invalid mesh header: {line}")
mesh_name = m.group(1)
# --- Vertices ---
line = next_line() # "===Vertices: N"
num_vertices = parse_first_int(line)
vertices = []
for _ in range(num_vertices):
vertices.append(parse_floats(next_line())[:3])
# --- UV Coordinates ---
next_line() # "===UV Coordinates:"
line = next_line() # "Face count: M"
num_faces = parse_first_int(line)
uvs = []
for _ in range(num_faces):
next_line() # "Face N"
next_line() # "UV Count: 3"
face_uvs = []
for _ in range(3):
face_uvs.extend(parse_floats(next_line())[:2])
uvs.append(face_uvs)
# --- Normals ---
next_line() # "===Normals:"
normals = []
for _ in range(num_vertices):
normals.append(parse_floats(next_line())[:3])
# --- Triangles ---
line = next_line() # "===Triangles: M"
num_triangles = parse_first_int(line)
triangles = []
for _ in range(num_triangles):
line = next_line()
ints = [int(x) for x in re.findall(r'[-]?\d+', line)]
triangles.append(ints[:3])
# --- Vertex Weights ---
next_line() # "=== Vertex Weights (Max 5 bones per vertex) ==="
vertex_weights = []
for _ in range(num_vertices):
next_line() # "Vertex N:"
line = next_line() # "Vertex groups: K"
num_groups = parse_first_int(line)
groups = []
for _ in range(num_groups):
line = next_line()
m = re.search(r"'([^']+)'.*?([-]?\d+\.\d+)", line)
bone_name = m.group(1)
weight = float(m.group(2))
groups.append((name_to_idx[bone_name], weight))
vertex_weights.append(groups)
meshes.append({
'name': mesh_name,
'num_vertices': num_vertices,
'vertices': vertices,
'num_faces': num_faces,
'uvs': uvs,
'normals': normals,
'num_triangles': num_triangles,
'triangles': triangles,
'vertex_weights': vertex_weights,
})
# --- Animation Keyframes ---
next_line() # "=== Animation Keyframes ==="
next_line() # "=== Bone Transforms per Keyframe ==="
line = next_line() # "Keyframes: N"
num_keyframes = parse_first_int(line)
keyframes = []
for _ in range(num_keyframes):
line = next_line() # "Frame: N"
frame_number = parse_first_int(line)
bone_data = {}
for _ in range(num_bones):
line = next_line() # " Bone: mixamorig:Hips"
bone_name = line.strip()
if bone_name.startswith("Bone: "):
bone_name = bone_name[6:]
bone_idx = name_to_idx[bone_name]
# Location
location = parse_floats(next_line())[:3]
# Rotation (skip)
next_line()
# " Matrix:" (skip header)
next_line()
# 4 rows of 4 floats
matrix = []
for _ in range(4):
matrix.extend(parse_floats(next_line()))
bone_data[bone_idx] = {
'location': location,
'matrix': matrix,
}
keyframes.append((frame_number, bone_data))
# ================================================================
# Write binary file
# ================================================================
with open(output_path, 'wb') as out:
# Header
out.write(b'BSMF')
out.write(struct.pack('<I', 1))
# Armature matrix (16 floats, row-major)
out.write(struct.pack('<16f', *armature_matrix))
# Bones
out.write(struct.pack('<I', num_bones))
for i in range(num_bones):
b = bones[i]
out.write(struct.pack('<3f', *b['head']))
out.write(struct.pack('<f', b['length']))
out.write(struct.pack('<9f', *b['matrix_3x3']))
out.write(struct.pack('<i', b['parent']))
out.write(struct.pack('<I', len(b['children'])))
for c in b['children']:
out.write(struct.pack('<i', c))
# Meshes
out.write(struct.pack('<I', num_meshes))
for md in meshes:
name_bytes = md['name'].encode('utf-8')
out.write(struct.pack('<I', len(name_bytes)))
out.write(name_bytes)
# Vertices
out.write(struct.pack('<I', md['num_vertices']))
for v in md['vertices']:
out.write(struct.pack('<3f', *v))
# UV Coordinates
out.write(struct.pack('<I', md['num_faces']))
for uv in md['uvs']:
out.write(struct.pack('<6f', *uv))
# Normals
for n in md['normals']:
out.write(struct.pack('<3f', *n))
# Triangles
out.write(struct.pack('<I', md['num_triangles']))
for t in md['triangles']:
out.write(struct.pack('<3i', *t))
# Vertex weights
for vw in md['vertex_weights']:
out.write(struct.pack('<I', len(vw)))
for bone_idx, weight in vw:
out.write(struct.pack('<if', bone_idx, weight))
# Animation Keyframes
out.write(struct.pack('<I', num_keyframes))
for frame_num, bone_data in keyframes:
out.write(struct.pack('<i', frame_num))
for i in range(num_bones):
bd = bone_data[i]
out.write(struct.pack('<3f', *bd['location']))
out.write(struct.pack('<16f', *bd['matrix']))
input_size = sum(len(l) for l in lines)
import os
output_size = os.path.getsize(output_path)
print(f"Converted: {input_path} ({input_size:,} bytes text) -> {output_path} ({output_size:,} bytes binary)")
print(f" Bones: {num_bones}, Meshes: {num_meshes}, Keyframes: {num_keyframes}")
for md in meshes:
print(f" - {md['name']}: {md['num_vertices']} verts, "
f"{md['num_faces']} faces, {md['num_triangles']} tris")
if __name__ == '__main__':
if len(sys.argv) != 3:
print(f"Usage: {sys.argv[0]} <input.txt> <output.bin>")
sys.exit(1)
convert(sys.argv[1], sys.argv[2])

View File

@ -47,6 +47,7 @@ add_library(main SHARED
../../../../src/utils/Perlin.cpp
../../../../src/utils/TaskManager.cpp
../../../../src/utils/Utils.cpp
../../../../src/navigation/PathFinder.cpp
../../../../src/planet/PlanetData.cpp
../../../../src/planet/PlanetObject.cpp
../../../../src/planet/StoneObject.cpp

View File

@ -8,7 +8,7 @@ if(NOT CMAKE_MAKE_PROGRAM AND WIN32)
endif()
endif()
project(space-game001 CXX)
project(bishkek-witcher LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@ -17,11 +17,52 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
include("${CMAKE_CURRENT_SOURCE_DIR}/../cmake/FetchDependencies.cmake")
# Теперь гарантированно есть папка ../thirdparty со всеми исходниками
# Список исходных файлов (без изменений)
# ===========================================
# Lua (5.5.0) - embedded scripting, pure C, compiles with Emscripten
# ===========================================
set(LUA_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../thirdparty/lua-5.4.8")
file(GLOB LUA_SOURCES "${LUA_SRC_DIR}/*.c")
list(REMOVE_ITEM LUA_SOURCES
"${LUA_SRC_DIR}/lua.c"
"${LUA_SRC_DIR}/luac.c"
"${LUA_SRC_DIR}/onelua.c"
)
add_library(lua_static STATIC ${LUA_SOURCES})
target_include_directories(lua_static PUBLIC "${LUA_SRC_DIR}")
# sol2 (header-only)
set(SOL2_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../thirdparty/sol2-3.3.0")
# Apply patch for Clang/Emscripten compatibility in optional<T&>::emplace().
set(_sol2_sentinel "${SOL2_SRC_DIR}/.patched")
if(NOT EXISTS "${_sol2_sentinel}")
find_package(Git QUIET)
if(GIT_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} apply --ignore-whitespace
"${CMAKE_CURRENT_SOURCE_DIR}/../cmake/patches/sol2-3.3.0-clang-optional.patch"
WORKING_DIRECTORY "${SOL2_SRC_DIR}"
RESULT_VARIABLE _sol2_patch_res
)
if(_sol2_patch_res EQUAL 0)
file(WRITE "${_sol2_sentinel}" "patched\n")
message(STATUS "Applied sol2 Clang optional patch")
else()
message(WARNING "sol2 patch failed (exit ${_sol2_patch_res}) — Clang/Emscripten builds may not compile")
endif()
else()
message(WARNING "Git not found — cannot apply sol2 patch automatically. "
"Apply cmake/patches/sol2-3.3.0-clang-optional.patch manually.")
endif()
endif()
# Список исходных файлов (синхронизирован с proj-windows/CMakeLists.txt)
set(SOURCES
../src/main.cpp
../src/Game.cpp
../src/Game.h
../src/Character.cpp
../src/Character.h
../src/Environment.cpp
../src/Environment.h
../src/render/Renderer.cpp
@ -36,58 +77,64 @@ set(SOURCES
../src/AudioPlayerAsync.h
../src/BoneAnimatedModel.cpp
../src/BoneAnimatedModel.h
../src/BoneAnimatedModelNew.cpp
../src/BoneAnimatedModelNew.h
../src/render/OpenGlExtensions.cpp
../src/render/OpenGlExtensions.h
../src/utils/Utils.cpp
../src/utils/Utils.h
../src/SparkEmitter.cpp
../src/SparkEmitter.h
../src/planet/PlanetObject.cpp
../src/planet/PlanetObject.h
../src/planet/PlanetData.cpp
../src/planet/PlanetData.h
../src/utils/Perlin.cpp
../src/utils/Perlin.h
../src/utils/TaskManager.cpp
../src/utils/TaskManager.h
../src/planet/StoneObject.cpp
../src/planet/StoneObject.h
../src/render/FrameBuffer.cpp
../src/render/FrameBuffer.h
../src/render/ShadowMap.cpp
../src/render/ShadowMap.h
../src/UiManager.cpp
../src/UiManager.h
../src/Projectile.h
../src/Projectile.cpp
../src/network/NetworkInterface.h
../src/network/LocalClient.h
../src/network/LocalClient.cpp
../src/network/ClientState.h
../src/network/ClientState.cpp
../src/network/WebSocketClientBase.h
../src/network/WebSocketClientBase.cpp
../src/network/WebSocketClientEmscripten.h
../src/network/WebSocketClientEmscripten.cpp
../src/render/TextRenderer.h
../src/render/TextRenderer.cpp
../src/MenuManager.h
../src/MenuManager.cpp
../src/Space.h
../src/Space.cpp
../src/Location.h
../src/Location.cpp
../src/GameConstants.h
../src/GameConstants.cpp
../src/ScriptEngine.h
../src/ScriptEngine.cpp
../src/navigation/PathFinder.h
../src/navigation/PathFinder.cpp
../src/items/GameObjectLoader.h
../src/items/GameObjectLoader.cpp
../src/items/Item.h
../src/items/Item.cpp
../src/items/InteractiveObject.h
../src/items/InteractiveObject.cpp
../src/dialogue/DialogueTypes.h
../src/dialogue/DialogueDatabase.h
../src/dialogue/DialogueDatabase.cpp
../src/dialogue/DialogueRuntime.h
../src/dialogue/DialogueRuntime.cpp
../src/dialogue/DialogueOverlay.h
../src/dialogue/DialogueOverlay.cpp
../src/dialogue/DialogueSystem.h
../src/dialogue/DialogueSystem.cpp
)
add_executable(space-game001 ${SOURCES})
add_executable(bishkek-witcher ${SOURCES})
# Настройка путей к инклудам (используем скачанные исходники)
target_include_directories(space-game001 PRIVATE
target_include_directories(bishkek-witcher PRIVATE
../src
../thirdparty/eigen-5.0.0
../thirdparty/boost_1_90_0
"${SOL2_SRC_DIR}/include"
)
# Сборка libzip через add_subdirectory (Emscripten соберет её из исходников)
# Опции для либзипа, чтобы он не искал лишнего в системе
set(ENABLE_GNUTLS OFF CACHE BOOL "" FORCE)
set(ENABLE_OPENSSL OFF CACHE BOOL "" FORCE)
set(ENABLE_WINDOWS_CRYPTO OFF CACHE BOOL "" FORCE)
@ -95,7 +142,7 @@ set(ENABLE_COMMONCRYPTO OFF CACHE BOOL "" FORCE)
add_subdirectory("../thirdparty/libzip-1.11.4" libzip-build)
target_link_libraries(space-game001 PRIVATE zip z websocket.js)
target_link_libraries(bishkek-witcher PRIVATE zip z lua_static websocket.js)
# Эмскриптен-флаги
set(EMSCRIPTEN_FLAGS
@ -104,13 +151,15 @@ set(EMSCRIPTEN_FLAGS
"-sUSE_LIBPNG=1"
"-sUSE_ZLIB=1"
"-sUSE_SDL_TTF=2"
"-sUSE_SDL_MIXER=2"
"-sSDL2_MIXER_FORMATS=[ogg,mp3]"
#"-pthread"
#"-sUSE_PTHREADS=1"
"-fexceptions"
"-DNETWORK"
)
target_compile_options(space-game001 PRIVATE ${EMSCRIPTEN_FLAGS} "-O2")
target_compile_options(bishkek-witcher PRIVATE ${EMSCRIPTEN_FLAGS} "-O2")
# Only loading.png and the shaders used before resources.zip is ready are preloaded.
# resources.zip is downloaded asynchronously at runtime and served as a separate file.
@ -122,14 +171,16 @@ set(EMSCRIPTEN_LINK_FLAGS
"-sFULL_ES3=1"
"--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/../resources/loading.png@resources/loading.png"
"--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/../resources/shaders@resources/shaders"
"--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/../resources/start.lua@resources/start.lua"
"--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/../audio@audio"
)
# Применяем настройки линковки
target_link_options(space-game001 PRIVATE ${EMSCRIPTEN_LINK_FLAGS})
target_link_options(bishkek-witcher PRIVATE ${EMSCRIPTEN_LINK_FLAGS})
# Для совместимости со старыми версиями CMake, если target_link_options недостаточно
string(REPLACE ";" " " EMSCRIPTEN_LINK_FLAGS_STR "${EMSCRIPTEN_LINK_FLAGS}")
set_target_properties(space-game001 PROPERTIES
set_target_properties(bishkek-witcher PROPERTIES
LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS_STR}"
SUFFIX ".html"
)
@ -147,34 +198,33 @@ add_custom_command(
)
add_custom_target(pack_resources DEPENDS "${RESOURCES_ZIP}")
add_dependencies(space-game001 pack_resources)
add_dependencies(bishkek-witcher pack_resources)
# Определяем путь к директории установки (относительно папки билда)
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/public")
# 1. Устанавливаем основной HTML файл
install(TARGETS space-game001
install(TARGETS bishkek-witcher
RUNTIME DESTINATION .
)
# 2. Устанавливаем сопутствующие файлы (JS, WASM и сгенерированный архив данных)
# Emscripten создает их в той же папке, что и таргет
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/space-game001.js"
"${CMAKE_CURRENT_BINARY_DIR}/space-game001.wasm"
"${CMAKE_CURRENT_BINARY_DIR}/space-game001.data"
"${CMAKE_CURRENT_BINARY_DIR}/bishkek-witcher.js"
"${CMAKE_CURRENT_BINARY_DIR}/bishkek-witcher.wasm"
"${CMAKE_CURRENT_BINARY_DIR}/bishkek-witcher.data"
DESTINATION .
)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/space-game001plain.html"
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/index.html"
DESTINATION .
)
# resources.zip is served separately and downloaded asynchronously at runtime
install(FILES "${RESOURCES_ZIP}" DESTINATION .)
add_custom_command(TARGET space-game001 POST_BUILD
add_custom_command(TARGET bishkek-witcher POST_BUILD
COMMAND ${CMAKE_COMMAND} --install .
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
COMMENT "Automatically deploying to public directory..."

82
proj-web/index.html Normal file
View File

@ -0,0 +1,82 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<title>Bishkek Witcher</title>
<style>
body, html {
margin: 0; padding: 0; width: 100%; height: 100%;
overflow: hidden; background-color: #000;
position: fixed;
}
#canvas {
display: block;
position: absolute;
top: 0; left: 0;
width: 100vw; height: 100vh;
border: none;
}
#fs-button {
position: absolute;
top: 10px; right: 10px;
padding: 10px;
z-index: 10;
background: rgba(255,255,255,0.3);
color: white; border: 1px solid white;
cursor: pointer;
font-family: sans-serif;
border-radius: 5px;
}
#status { color: white; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
</style>
</head>
<body>
<button id="fs-button">Fullscreen</button>
<div id="status">Downloading...</div>
<canvas id="canvas" oncontextmenu="event.preventDefault()" tabindex="-1"></canvas>
<script>
function prepareModuleEnvironment() {
window.Module = window.Module || {};
var canvasEl = document.getElementById('canvas');
window.Module.canvas = canvasEl;
window.Module.setStatus = window.Module.setStatus || function (text) {
var statusElement = document.getElementById("status");
statusElement.innerHTML = text;
statusElement.style.display = text ? 'block' : 'none';
};
}
function loadGameScript() {
var s = document.createElement('script');
s.src = 'bishkek-witcher.js';
s.async = true;
document.body.appendChild(s);
}
document.getElementById('fs-button').addEventListener('click', function() {
if (!document.fullscreenElement) {
document.documentElement.requestFullscreen().catch(function(e) {
console.error('Fullscreen error: ' + e.message);
});
} else {
document.exitFullscreen();
}
});
document.addEventListener('DOMContentLoaded', function() {
prepareModuleEnvironment();
loadGameScript();
});
window.addEventListener("orientationchange", function() {
setTimeout(() => {
window.dispatchEvent(new Event('resize'));
}, 200);
});
</script>
</body>
</html>

View File

@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.16)
project(space-game001 LANGUAGES CXX)
project(space-game001 LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@ -14,6 +14,8 @@ add_executable(space-game001
../src/main.cpp
../src/Game.cpp
../src/Game.h
../src/Character.cpp
../src/Character.h
../src/Environment.cpp
../src/Environment.h
../src/render/Renderer.cpp
@ -28,47 +30,51 @@ add_executable(space-game001
../src/AudioPlayerAsync.h
../src/BoneAnimatedModel.cpp
../src/BoneAnimatedModel.h
../src/BoneAnimatedModelNew.cpp
../src/BoneAnimatedModelNew.h
../src/render/OpenGlExtensions.cpp
../src/render/OpenGlExtensions.h
../src/utils/Utils.cpp
../src/utils/Utils.h
../src/SparkEmitter.cpp
../src/SparkEmitter.h
../src/planet/PlanetObject.cpp
../src/planet/PlanetObject.h
../src/planet/PlanetData.cpp
../src/planet/PlanetData.h
../src/utils/Perlin.cpp
../src/utils/Perlin.h
../src/utils/TaskManager.cpp
../src/utils/TaskManager.h
../src/planet/StoneObject.cpp
../src/planet/StoneObject.h
../src/render/FrameBuffer.cpp
../src/render/FrameBuffer.h
../src/render/ShadowMap.cpp
../src/render/ShadowMap.h
../src/UiManager.cpp
../src/UiManager.h
../src/Projectile.h
../src/Projectile.cpp
../src/network/NetworkInterface.h
../src/network/LocalClient.h
../src/network/LocalClient.cpp
../src/network/ClientState.h
../src/network/ClientState.cpp
../src/network/WebSocketClient.h
../src/network/WebSocketClient.cpp
../src/network/WebSocketClientBase.h
../src/network/WebSocketClientBase.cpp
../src/network/WebSocketClientEmscripten.h
../src/network/WebSocketClientEmscripten.cpp
../src/render/TextRenderer.h
../src/render/TextRenderer.cpp
../src/MenuManager.h
../src/MenuManager.cpp
../src/Space.h
../src/Space.cpp
../src/Location.h
../src/Location.cpp
../src/GameConstants.h
../src/GameConstants.cpp
../src/ScriptEngine.h
../src/ScriptEngine.cpp
../src/navigation/PathFinder.h
../src/navigation/PathFinder.cpp
../src/items/GameObjectLoader.h
../src/items/GameObjectLoader.cpp
../src/items/Item.h
../src/items/Item.cpp
../src/items/InteractiveObject.h
../src/items/InteractiveObject.cpp
../src/dialogue/DialogueTypes.h
../src/dialogue/DialogueDatabase.h
../src/dialogue/DialogueDatabase.cpp
../src/dialogue/DialogueRuntime.h
../src/dialogue/DialogueRuntime.cpp
../src/dialogue/DialogueOverlay.h
../src/dialogue/DialogueOverlay.cpp
../src/dialogue/DialogueSystem.h
../src/dialogue/DialogueSystem.cpp
)
# Установка проекта по умолчанию для Visual Studio
@ -90,8 +96,8 @@ target_compile_definitions(space-game001 PRIVATE
WIN32_LEAN_AND_MEAN
PNG_ENABLED
SDL_MAIN_HANDLED
NETWORK
# SIMPLIFIED
# DEBUG_LIGHT
# SHOW_PATH
)
# Линкуем с SDL2main, если он вообще установлен
@ -107,6 +113,8 @@ target_link_libraries(space-game001 PRIVATE
SDL2_ttf_external_lib
eigen_external_lib
boost_external_lib
sol2_external_lib
SDL2_mixer_external_lib
)
# Линкуем OpenGL (Windows)
@ -126,11 +134,12 @@ if (WIN32)
set(LIBZIP_DLL_SRC "$<IF:$<CONFIG:Debug>,${LIBZIP_BASE_DIR}-Debug/bin/zip.dll,${LIBZIP_BASE_DIR}-Release/bin/zip.dll>")
set(ZLIB_DLL_SRC "$<IF:$<CONFIG:Debug>,${ZLIB_INSTALL_DIR}/bin/zlibd.dll,${ZLIB_INSTALL_DIR}/bin/zlib.dll>")
set(ZLIB_DLL_DST "$<IF:$<CONFIG:Debug>,$<TARGET_FILE_DIR:space-game001>/zlibd.dll,$<TARGET_FILE_DIR:space-game001>/zlib.dll>")
set(ZLIB_DLL_SRC "$<IF:$<CONFIG:Debug>,${ZLIB_INSTALL_DIR}/bin/zd.dll,${ZLIB_INSTALL_DIR}/bin/z.dll>")
set(ZLIB_DLL_DST "$<IF:$<CONFIG:Debug>,$<TARGET_FILE_DIR:space-game001>/zd.dll,$<TARGET_FILE_DIR:space-game001>/z.dll>")
set(SDL2TTF_DLL_SRC "$<IF:$<CONFIG:Debug>,${SDL2TTF_BASE_DIR}-Debug/bin/SDL2_ttfd.dll,${SDL2TTF_BASE_DIR}-Release/bin/SDL2_ttf.dll>")
set(SDL2MIXER_DLL_SRC "$<IF:$<CONFIG:Debug>,${SDL2MIXER_BASE_DIR}-Debug/bin/SDL2_mixerd.dll,${SDL2MIXER_BASE_DIR}-Release/bin/SDL2_mixer.dll>")
add_custom_command(TARGET space-game001 POST_BUILD
COMMAND ${CMAKE_COMMAND} -E echo "Copying DLLs to output folder..."
@ -152,6 +161,10 @@ if (WIN32)
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${SDL2TTF_DLL_SRC}"
"$<TARGET_FILE_DIR:space-game001>"
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${CMAKE_CURRENT_SOURCE_DIR}/../thirdparty/SDL_mixer-release-2.8.0/install-$<CONFIG>/bin/SDL2_mixer$<$<CONFIG:Debug>:d>.dll"
"$<TARGET_FILE_DIR:space-game001>/SDL2_mixer$<$<CONFIG:Debug>:d>.dll"
)
endif()
@ -162,6 +175,7 @@ endif()
# Какие папки с ресурсами нужно копировать
set(RUNTIME_RESOURCE_DIRS
"resources"
"audio"
)
# Копируем ресурсы и шейдеры в папку exe и в корень build/

BIN
resources/Cargo_Base_color_sRGB.png (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

BIN
resources/bandit.png (Stored with Git LFS) Normal file

Binary file not shown.

33
resources/barn/board.txt Normal file
View File

@ -0,0 +1,33 @@
===Vertices (Split by UV/Normal): 20
V 0: Pos(2.172386, 0.169635, 0.221728) Norm(-0.577351, -0.57735, -0.57735) UV(0.014711, 0.022579)
V 1: Pos(2.172386, 0.169635, 0.558757) Norm(-0.578984, -0.585366, 0.56756) UV(0.547197, 0.022579)
V 2: Pos(2.172386, 0.7737, 0.577419) Norm(-0.573104, 0.585688, 0.573167) UV(0.576682, 0.976966)
V 3: Pos(2.172386, 0.755012, 0.221728) Norm(-0.580152, 0.560631, -0.590861) UV(0.014711, 0.94744)
V 4: Pos(2.172386, 0.755012, 0.221728) Norm(-0.580152, 0.560631, -0.590861) UV(0.591716, 0.022579)
V 5: Pos(2.181902, 0.755012, 0.221728) Norm(-1e-06, 0.688307, -0.72542) UV(0.606751, 0.022579)
V 6: Pos(2.181902, 0.169635, 0.221728) Norm(-0.0, -0.707106, -0.707107) UV(0.606751, 0.94744)
V 7: Pos(2.172386, 0.169635, 0.221728) Norm(-0.577351, -0.57735, -0.57735) UV(0.591716, 0.94744)
V 8: Pos(2.172386, 0.169635, 0.221728) Norm(-0.577351, -0.57735, -0.57735) UV(0.63682, 0.555065)
V 9: Pos(2.181902, 0.169635, 0.221728) Norm(-0.0, -0.707106, -0.707107) UV(0.621785, 0.555065)
V 10: Pos(2.181902, 0.169635, 0.558757) Norm(1e-06, -0.717941, 0.696104) UV(0.621785, 0.022579)
V 11: Pos(2.172386, 0.169635, 0.558757) Norm(-0.578984, -0.585366, 0.56756) UV(0.63682, 0.022579)
V 12: Pos(2.172386, 0.7737, 0.577419) Norm(-0.573104, 0.585688, 0.573167) UV(0.606751, 0.022579)
V 13: Pos(2.181902, 0.7737, 0.577419) Norm(0.0, 0.714705, 0.699426) UV(0.621785, 0.022579)
V 14: Pos(2.181902, 0.755012, 0.221728) Norm(-1e-06, 0.688307, -0.72542) UV(0.621785, 0.585325)
V 15: Pos(2.172386, 0.755012, 0.221728) Norm(-0.580152, 0.560631, -0.590861) UV(0.606751, 0.585325)
V 16: Pos(2.172386, 0.169635, 0.558757) Norm(-0.578984, -0.585366, 0.56756) UV(0.591716, 0.977422)
V 17: Pos(2.181902, 0.169635, 0.558757) Norm(1e-06, -0.717941, 0.696104) UV(0.576682, 0.977422)
V 18: Pos(2.181902, 0.7737, 0.577419) Norm(0.0, 0.714705, 0.699426) UV(0.576682, 0.022579)
V 19: Pos(2.172386, 0.7737, 0.577419) Norm(-0.573104, 0.585688, 0.573167) UV(0.591716, 0.022579)
===Triangles (Indices): 10
Tri: 0 1 2
Tri: 0 2 3
Tri: 4 5 6
Tri: 4 6 7
Tri: 8 9 10
Tri: 8 10 11
Tri: 12 13 14
Tri: 12 14 15
Tri: 16 17 18
Tri: 16 18 19

63
resources/barn/books1.txt Normal file
View File

@ -0,0 +1,63 @@
===Vertices (Split by UV/Normal): 40
V 0: Pos(1.996428, 0.338833, 0.198714) Norm(-0.551234, -0.834351, 0.0) UV(0.971407, 0.5)
V 1: Pos(1.996428, 0.338833, 0.202329) Norm(-0.450081, -0.681244, 0.57735) UV(0.944505, 0.5)
V 2: Pos(1.983381, 0.402683, 0.202329) Norm(-0.681244, 0.450081, 0.57735) UV(0.944505, 0.023447)
V 3: Pos(1.983381, 0.402683, 0.198714) Norm(-0.83435, 0.551234, 0.0) UV(0.971408, 0.023447)
V 4: Pos(1.983381, 0.402683, 0.198714) Norm(-0.83435, 0.551234, 0.0) UV(0.863798, 0.700024)
V 5: Pos(1.983381, 0.402683, 0.202329) Norm(-0.681244, 0.450081, 0.57735) UV(0.836895, 0.700024)
V 6: Pos(2.073946, 0.421188, 0.202329) Norm(0.450082, 0.681244, 0.57735) UV(0.836895, 0.023447)
V 7: Pos(2.073946, 0.421188, 0.198714) Norm(0.551236, 0.834349, 0.0) UV(0.863798, 0.023447)
V 8: Pos(2.073946, 0.421188, 0.198714) Norm(0.551236, 0.834349, 0.0) UV(0.971408, 0.976553)
V 9: Pos(2.073946, 0.421188, 0.202329) Norm(0.450082, 0.681244, 0.57735) UV(0.944505, 0.976553)
V 10: Pos(2.086992, 0.357338, 0.202329) Norm(0.681243, -0.450082, 0.57735) UV(0.944505, 0.5)
V 11: Pos(2.086992, 0.357338, 0.198714) Norm(0.83435, -0.551236, 0.0) UV(0.971408, 0.5)
V 12: Pos(2.086992, 0.357338, 0.198714) Norm(0.83435, -0.551236, 0.0) UV(0.8907, 0.700024)
V 13: Pos(2.086992, 0.357338, 0.202329) Norm(0.681243, -0.450082, 0.57735) UV(0.863798, 0.700024)
V 14: Pos(1.996428, 0.338833, 0.202329) Norm(-0.450081, -0.681244, 0.57735) UV(0.863798, 0.023447)
V 15: Pos(1.996428, 0.338833, 0.198714) Norm(-0.551234, -0.834351, 0.0) UV(0.8907, 0.023447)
V 16: Pos(2.016325, 0.3535, 0.202405) Norm(-0.212218, -0.977222, 0.0) UV(0.917603, 0.911909)
V 17: Pos(2.016325, 0.3535, 0.206019) Norm(-0.173196, -0.797534, 0.577877) UV(0.8907, 0.911909)
V 18: Pos(1.992261, 0.390504, 0.206019) Norm(-0.79826, 0.173353, 0.576827) UV(0.8907, 0.589135)
V 19: Pos(1.992261, 0.390504, 0.202405) Norm(-0.977223, 0.212217, 0.0) UV(0.917603, 0.589135)
V 20: Pos(2.073946, 0.421188, 0.202329) Norm(0.450082, 0.681244, 0.57735) UV(0.508379, 0.023447)
V 21: Pos(1.983381, 0.402683, 0.202329) Norm(-0.681244, 0.450081, 0.57735) UV(0.508379, 0.711448)
V 22: Pos(1.996428, 0.338833, 0.202329) Norm(-0.450081, -0.681244, 0.57735) UV(0.023323, 0.711448)
V 23: Pos(2.086992, 0.357338, 0.202329) Norm(0.681243, -0.450082, 0.57735) UV(0.023323, 0.023447)
V 24: Pos(1.992261, 0.390504, 0.202405) Norm(-0.977223, 0.212217, 0.0) UV(0.917603, 0.023447)
V 25: Pos(1.992261, 0.390504, 0.206019) Norm(-0.79826, 0.173353, 0.576827) UV(0.944505, 0.023447)
V 26: Pos(2.057473, 0.431984, 0.206019) Norm(0.173196, 0.797534, 0.577878) UV(0.944505, 0.589134)
V 27: Pos(2.057473, 0.431984, 0.202405) Norm(0.212218, 0.977222, 0.0) UV(0.917603, 0.589134)
V 28: Pos(2.057473, 0.431984, 0.202405) Norm(0.212218, 0.977222, 0.0) UV(0.508379, 0.601986)
V 29: Pos(2.057473, 0.431984, 0.206019) Norm(0.173196, 0.797534, 0.577878) UV(0.535281, 0.601986)
V 30: Pos(2.081536, 0.39498, 0.206019) Norm(0.79826, -0.173354, 0.576827) UV(0.535281, 0.92476)
V 31: Pos(2.081536, 0.39498, 0.202405) Norm(0.977222, -0.212219, 0.0) UV(0.508379, 0.92476)
V 32: Pos(2.081536, 0.39498, 0.202405) Norm(0.977222, -0.212219, 0.0) UV(0.917603, 0.589135)
V 33: Pos(2.081536, 0.39498, 0.206019) Norm(0.79826, -0.173354, 0.576827) UV(0.8907, 0.589135)
V 34: Pos(2.016325, 0.3535, 0.206019) Norm(-0.173196, -0.797534, 0.577877) UV(0.8907, 0.023447)
V 35: Pos(2.016325, 0.3535, 0.202405) Norm(-0.212218, -0.977222, 0.0) UV(0.917603, 0.023447)
V 36: Pos(2.057473, 0.431984, 0.206019) Norm(0.173196, 0.797534, 0.577878) UV(0.508379, 0.598686)
V 37: Pos(1.992261, 0.390504, 0.206019) Norm(-0.79826, 0.173353, 0.576827) UV(0.508379, 0.023447)
V 38: Pos(2.016325, 0.3535, 0.206019) Norm(-0.173196, -0.797534, 0.577877) UV(0.836895, 0.026746)
V 39: Pos(2.081536, 0.39498, 0.206019) Norm(0.79826, -0.173354, 0.576827) UV(0.836895, 0.601986)
===Triangles (Indices): 20
Tri: 0 1 2
Tri: 0 2 3
Tri: 4 5 6
Tri: 4 6 7
Tri: 8 9 10
Tri: 8 10 11
Tri: 12 13 14
Tri: 12 14 15
Tri: 16 17 18
Tri: 16 18 19
Tri: 20 21 22
Tri: 20 22 23
Tri: 24 25 26
Tri: 24 26 27
Tri: 28 29 30
Tri: 28 30 31
Tri: 32 33 34
Tri: 32 34 35
Tri: 36 37 38
Tri: 36 38 39

63
resources/barn/books2.txt Normal file
View File

@ -0,0 +1,63 @@
===Vertices (Split by UV/Normal): 40
V 0: Pos(1.884571, 0.582254, 0.198714) Norm(-0.993741, -0.111707, 0.0) UV(0.971407, 0.5)
V 1: Pos(1.884571, 0.582254, 0.202329) Norm(-0.811386, -0.091209, 0.577351) UV(0.944505, 0.5)
V 2: Pos(1.925217, 0.633195, 0.202329) Norm(-0.091209, 0.811387, 0.57735) UV(0.944505, 0.023447)
V 3: Pos(1.925217, 0.633195, 0.198714) Norm(-0.111707, 0.993741, 0.0) UV(0.971408, 0.023447)
V 4: Pos(1.925217, 0.633195, 0.198714) Norm(-0.111707, 0.993741, 0.0) UV(0.863798, 0.700024)
V 5: Pos(1.925217, 0.633195, 0.202329) Norm(-0.091209, 0.811387, 0.57735) UV(0.836895, 0.700024)
V 6: Pos(1.997471, 0.575543, 0.202329) Norm(0.811386, 0.091209, 0.57735) UV(0.836895, 0.023447)
V 7: Pos(1.997471, 0.575543, 0.198714) Norm(0.993741, 0.111708, 0.0) UV(0.863798, 0.023447)
V 8: Pos(1.997471, 0.575543, 0.198714) Norm(0.993741, 0.111708, 0.0) UV(0.971408, 0.976553)
V 9: Pos(1.997471, 0.575543, 0.202329) Norm(0.811386, 0.091209, 0.57735) UV(0.944505, 0.976553)
V 10: Pos(1.956826, 0.524602, 0.202329) Norm(0.091209, -0.811386, 0.57735) UV(0.944505, 0.5)
V 11: Pos(1.956826, 0.524602, 0.198714) Norm(0.111708, -0.993741, 0.0) UV(0.971408, 0.5)
V 12: Pos(1.956826, 0.524602, 0.198714) Norm(0.111708, -0.993741, 0.0) UV(0.8907, 0.700024)
V 13: Pos(1.956826, 0.524602, 0.202329) Norm(0.091209, -0.811386, 0.57735) UV(0.863798, 0.700024)
V 14: Pos(1.884571, 0.582254, 0.202329) Norm(-0.811386, -0.091209, 0.577351) UV(0.863798, 0.023447)
V 15: Pos(1.884571, 0.582254, 0.198714) Norm(-0.993741, -0.111707, 0.0) UV(0.8907, 0.023447)
V 16: Pos(1.908582, 0.576383, 0.202405) Norm(-0.886097, -0.4635, 0.0) UV(0.917603, 0.911909)
V 17: Pos(1.908582, 0.576383, 0.206019) Norm(-0.723165, -0.378274, 0.577877) UV(0.8907, 0.911909)
V 18: Pos(1.921561, 0.618572, 0.206019) Norm(-0.378618, 0.723823, 0.576827) UV(0.8907, 0.589135)
V 19: Pos(1.921561, 0.618572, 0.202405) Norm(-0.4635, 0.886097, 0.0) UV(0.917603, 0.589135)
V 20: Pos(1.997471, 0.575543, 0.202329) Norm(0.811386, 0.091209, 0.57735) UV(0.508379, 0.023447)
V 21: Pos(1.925217, 0.633195, 0.202329) Norm(-0.091209, 0.811387, 0.57735) UV(0.508379, 0.711448)
V 22: Pos(1.884571, 0.582254, 0.202329) Norm(-0.811386, -0.091209, 0.577351) UV(0.023323, 0.711448)
V 23: Pos(1.956826, 0.524602, 0.202329) Norm(0.091209, -0.811386, 0.57735) UV(0.023323, 0.023447)
V 24: Pos(1.921561, 0.618572, 0.202405) Norm(-0.4635, 0.886097, 0.0) UV(0.917603, 0.023447)
V 25: Pos(1.921561, 0.618572, 0.206019) Norm(-0.378618, 0.723823, 0.576827) UV(0.944505, 0.023447)
V 26: Pos(1.995198, 0.595107, 0.206019) Norm(0.723164, 0.378273, 0.577878) UV(0.944505, 0.589134)
V 27: Pos(1.995198, 0.595107, 0.202405) Norm(0.886097, 0.4635, 0.0) UV(0.917603, 0.589134)
V 28: Pos(1.995198, 0.595107, 0.202405) Norm(0.886097, 0.4635, 0.0) UV(0.508379, 0.601986)
V 29: Pos(1.995198, 0.595107, 0.206019) Norm(0.723164, 0.378273, 0.577878) UV(0.535281, 0.601986)
V 30: Pos(1.98222, 0.552918, 0.206019) Norm(0.378618, -0.723823, 0.576827) UV(0.535281, 0.92476)
V 31: Pos(1.98222, 0.552918, 0.202405) Norm(0.4635, -0.886097, 0.0) UV(0.508379, 0.92476)
V 32: Pos(1.98222, 0.552918, 0.202405) Norm(0.4635, -0.886097, 0.0) UV(0.917603, 0.589135)
V 33: Pos(1.98222, 0.552918, 0.206019) Norm(0.378618, -0.723823, 0.576827) UV(0.8907, 0.589135)
V 34: Pos(1.908582, 0.576383, 0.206019) Norm(-0.723165, -0.378274, 0.577877) UV(0.8907, 0.023447)
V 35: Pos(1.908582, 0.576383, 0.202405) Norm(-0.886097, -0.4635, 0.0) UV(0.917603, 0.023447)
V 36: Pos(1.995198, 0.595107, 0.206019) Norm(0.723164, 0.378273, 0.577878) UV(0.508379, 0.598686)
V 37: Pos(1.921561, 0.618572, 0.206019) Norm(-0.378618, 0.723823, 0.576827) UV(0.508379, 0.023447)
V 38: Pos(1.908582, 0.576383, 0.206019) Norm(-0.723165, -0.378274, 0.577877) UV(0.836895, 0.026746)
V 39: Pos(1.98222, 0.552918, 0.206019) Norm(0.378618, -0.723823, 0.576827) UV(0.836895, 0.601986)
===Triangles (Indices): 20
Tri: 0 1 2
Tri: 0 2 3
Tri: 4 5 6
Tri: 4 6 7
Tri: 8 9 10
Tri: 8 10 11
Tri: 12 13 14
Tri: 12 14 15
Tri: 16 17 18
Tri: 16 18 19
Tri: 20 21 22
Tri: 20 22 23
Tri: 24 25 26
Tri: 24 26 27
Tri: 28 29 30
Tri: 28 30 31
Tri: 32 33 34
Tri: 32 34 35
Tri: 36 37 38
Tri: 36 38 39

View File

@ -0,0 +1,29 @@
===Vertices (Split by UV/Normal): 14
V 0: Pos(1.928162, 0.364475, 0.015009) Norm(-0.690923, -0.414235, -0.592482) UV(0.380616, 0.022463)
V 1: Pos(1.924941, 0.362544, 0.107039) Norm(-0.709291, -0.425247, 0.562202) UV(0.619384, 0.022463)
V 2: Pos(1.948582, 0.45697, 0.107039) Norm(-0.425247, 0.709291, 0.562202) UV(0.619384, 0.261232)
V 3: Pos(1.950513, 0.453749, 0.015009) Norm(-0.414235, 0.690923, -0.592482) UV(0.380616, 0.261232)
V 4: Pos(2.043009, 0.433329, 0.107039) Norm(0.709291, 0.425246, 0.562202) UV(0.619384, 0.5)
V 5: Pos(2.039788, 0.431398, 0.015009) Norm(0.690923, 0.414234, -0.592482) UV(0.380616, 0.5)
V 6: Pos(2.019368, 0.338903, 0.107039) Norm(0.425246, -0.709292, 0.562202) UV(0.619384, 0.738768)
V 7: Pos(2.017437, 0.342124, 0.015009) Norm(0.414235, -0.690924, -0.592481) UV(0.380616, 0.738768)
V 8: Pos(1.924941, 0.362544, 0.107039) Norm(-0.709291, -0.425247, 0.562202) UV(0.619384, 0.977537)
V 9: Pos(1.928162, 0.364475, 0.015009) Norm(-0.690923, -0.414235, -0.592482) UV(0.380616, 0.977537)
V 10: Pos(1.950513, 0.453749, 0.015009) Norm(-0.414235, 0.690923, -0.592482) UV(0.141847, 0.5)
V 11: Pos(1.928162, 0.364475, 0.015009) Norm(-0.690923, -0.414235, -0.592482) UV(0.141847, 0.738768)
V 12: Pos(1.948582, 0.45697, 0.107039) Norm(-0.425247, 0.709291, 0.562202) UV(0.858153, 0.5)
V 13: Pos(1.924941, 0.362544, 0.107039) Norm(-0.709291, -0.425247, 0.562202) UV(0.858153, 0.738768)
===Triangles (Indices): 12
Tri: 0 1 2
Tri: 0 2 3
Tri: 3 2 4
Tri: 3 4 5
Tri: 5 4 6
Tri: 5 6 7
Tri: 7 6 8
Tri: 7 8 9
Tri: 10 5 7
Tri: 10 7 11
Tri: 4 12 13
Tri: 4 13 6

View File

@ -0,0 +1,29 @@
===Vertices (Split by UV/Normal): 14
V 0: Pos(1.941315, 0.20689, 0.015108) Norm(-0.46303, -0.659218, -0.592482) UV(0.380616, 0.022463)
V 1: Pos(1.938853, 0.203385, 0.120071) Norm(-0.475339, -0.676743, 0.562202) UV(0.619384, 0.022463)
V 2: Pos(1.919735, 0.312747, 0.120071) Norm(-0.676743, 0.475339, 0.562202) UV(0.619384, 0.261232)
V 3: Pos(1.92324, 0.310285, 0.015108) Norm(-0.659218, 0.463029, -0.592482) UV(0.380616, 0.261232)
V 4: Pos(2.029097, 0.331865, 0.120071) Norm(0.475339, 0.676744, 0.562202) UV(0.619384, 0.5)
V 5: Pos(2.026635, 0.32836, 0.015108) Norm(0.46303, 0.659218, -0.592482) UV(0.380616, 0.5)
V 6: Pos(2.048215, 0.222503, 0.120071) Norm(0.676743, -0.475339, 0.562202) UV(0.619384, 0.738768)
V 7: Pos(2.04471, 0.224965, 0.015108) Norm(0.659218, -0.46303, -0.592482) UV(0.380616, 0.738768)
V 8: Pos(1.938853, 0.203385, 0.120071) Norm(-0.475339, -0.676743, 0.562202) UV(0.619384, 0.977537)
V 9: Pos(1.941315, 0.20689, 0.015108) Norm(-0.46303, -0.659218, -0.592482) UV(0.380616, 0.977537)
V 10: Pos(1.92324, 0.310285, 0.015108) Norm(-0.659218, 0.463029, -0.592482) UV(0.141847, 0.5)
V 11: Pos(1.941315, 0.20689, 0.015108) Norm(-0.46303, -0.659218, -0.592482) UV(0.141847, 0.738768)
V 12: Pos(1.919735, 0.312747, 0.120071) Norm(-0.676743, 0.475339, 0.562202) UV(0.858153, 0.5)
V 13: Pos(1.938853, 0.203385, 0.120071) Norm(-0.475339, -0.676743, 0.562202) UV(0.858153, 0.738768)
===Triangles (Indices): 12
Tri: 0 1 2
Tri: 0 2 3
Tri: 3 2 4
Tri: 3 4 5
Tri: 5 4 6
Tri: 5 6 7
Tri: 7 6 8
Tri: 7 8 9
Tri: 10 5 7
Tri: 10 7 11
Tri: 4 12 13
Tri: 4 13 6

52
resources/barn/cube.txt Normal file
View File

@ -0,0 +1,52 @@
===Vertices (Split by UV/Normal): 29
V 0: Pos(2.144698, 1.006366, 0.014196) Norm(0.403294, 0.189282, -0.89528) UV(0.038866, 0.499333)
V 1: Pos(2.153896, 1.009608, 0.025287) Norm(0.876115, 0.355937, -0.325162) UV(0.0229, 0.474324)
V 2: Pos(2.179514, 0.863888, 0.224368) Norm(0.938676, -0.127483, 0.320367) UV(0.232621, 0.022338)
V 3: Pos(2.16982, 0.849805, 0.224272) Norm(0.452238, -0.834195, 0.315593) UV(0.266966, 0.022338)
V 4: Pos(2.025819, 0.823535, 0.02403) Norm(-0.017565, -0.942434, -0.333931) UV(0.476687, 0.474324)
V 5: Pos(2.025633, 0.833386, 0.013027) Norm(-0.02715, -0.436065, -0.899505) UV(0.460721, 0.499333)
V 6: Pos(2.145396, 1.015422, 0.030637) Norm(-0.022224, 0.970458, 0.240245) UV(0.930474, 0.535066)
V 7: Pos(2.171014, 0.869703, 0.229717) Norm(0.054319, 0.477468, 0.876969) UV(0.930474, 0.036794)
V 8: Pos(2.179514, 0.863888, 0.224368) Norm(0.938676, -0.127483, 0.320367) UV(0.953787, 0.036794)
V 9: Pos(2.153896, 1.009608, 0.025287) Norm(0.876115, 0.355937, -0.325162) UV(0.953787, 0.535066)
V 10: Pos(2.017133, 0.839201, 0.018377) Norm(-0.925489, 0.178454, -0.334101) UV(0.492653, 0.499333)
V 11: Pos(2.017319, 0.829349, 0.02938) Norm(-0.915912, -0.327912, 0.231473) UV(0.476687, 0.474324)
V 12: Pos(2.16132, 0.855619, 0.229622) Norm(-0.432118, -0.229245, 0.872193) UV(0.686408, 0.022338)
V 13: Pos(2.171014, 0.869703, 0.229717) Norm(0.054319, 0.477468, 0.876969) UV(0.720754, 0.022338)
V 14: Pos(2.145396, 1.015422, 0.030637) Norm(-0.022224, 0.970458, 0.240245) UV(0.930474, 0.474324)
V 15: Pos(2.136198, 1.01218, 0.019545) Norm(-0.495043, 0.803811, -0.329878) UV(0.914509, 0.499333)
V 16: Pos(2.025819, 0.823535, 0.02403) Norm(-0.017565, -0.942434, -0.333931) UV(0.953787, 0.520609)
V 17: Pos(2.16982, 0.849805, 0.224272) Norm(0.452238, -0.834195, 0.315593) UV(0.953787, 0.022338)
V 18: Pos(2.16132, 0.855619, 0.229622) Norm(-0.432118, -0.229245, 0.872193) UV(0.9771, 0.022338)
V 19: Pos(2.017319, 0.829349, 0.02938) Norm(-0.915912, -0.327912, 0.231473) UV(0.9771, 0.520609)
V 20: Pos(2.16132, 0.855619, 0.229622) Norm(-0.432118, -0.229245, 0.872193) UV(0.930474, 0.022338)
V 21: Pos(2.017133, 0.839201, 0.018377) Norm(-0.925489, 0.178454, -0.334101) UV(0.046213, 0.515299)
V 22: Pos(2.025633, 0.833386, 0.013027) Norm(-0.02715, -0.436065, -0.899505) UV(0.0229, 0.515299)
V 23: Pos(2.025819, 0.823535, 0.02403) Norm(-0.017565, -0.942434, -0.333931) UV(0.0229, 0.499333)
V 24: Pos(2.017319, 0.829349, 0.02938) Norm(-0.915912, -0.327912, 0.231473) UV(0.046213, 0.499333)
V 25: Pos(2.144698, 1.006366, 0.014196) Norm(0.403294, 0.189282, -0.89528) UV(0.0229, 0.937155)
V 26: Pos(2.136198, 1.01218, 0.019545) Norm(-0.495043, 0.803811, -0.329878) UV(0.046213, 0.937155)
V 27: Pos(2.145396, 1.015422, 0.030637) Norm(-0.022224, 0.970458, 0.240245) UV(0.046213, 0.95312)
V 28: Pos(2.153896, 1.009608, 0.025287) Norm(0.876115, 0.355937, -0.325162) UV(0.0229, 0.95312)
===Triangles (Indices): 20
Tri: 0 1 2
Tri: 0 2 3
Tri: 0 3 4
Tri: 0 4 5
Tri: 6 7 8
Tri: 6 8 9
Tri: 10 11 12
Tri: 10 12 13
Tri: 10 13 14
Tri: 10 14 15
Tri: 16 17 18
Tri: 16 18 19
Tri: 7 20 17
Tri: 7 17 8
Tri: 21 22 23
Tri: 21 23 24
Tri: 25 26 27
Tri: 25 27 28
Tri: 21 26 25
Tri: 21 25 22

423
resources/barn/house.txt Normal file
View File

@ -0,0 +1,423 @@
===Vertices (Split by UV/Normal): 226
V 0: Pos(-2.162589, -1.0, 0.753136) Norm(-0.707107, -0.707107, 0.0) UV(0.531013, 0.882126)
V 1: Pos(-2.162589, -1.0, 1.296742) Norm(0.026636, -0.402662, -0.914961) UV(0.491477, 0.882126)
V 2: Pos(-2.162589, 1.963949, 1.296742) Norm(0.026637, 0.402662, -0.914961) UV(0.491477, 0.666563)
V 3: Pos(-2.162589, 1.963949, 0.753136) Norm(-0.707107, 0.707107, 0.0) UV(0.531013, 0.666563)
V 4: Pos(2.283504, 1.963949, 0.753136) Norm(0.707107, 0.707107, 0.0) UV(0.624115, 0.882126)
V 5: Pos(2.283504, 1.963949, 1.296742) Norm(-0.005023, 0.39988, -0.916554) UV(0.584579, 0.882126)
V 6: Pos(2.283504, -1.0, 1.296742) Norm(-0.005023, -0.39988, -0.916554) UV(0.584579, 0.666563)
V 7: Pos(2.283504, -1.0, 0.753136) Norm(0.707107, -0.707107, 0.0) UV(0.624115, 0.666563)
V 8: Pos(-0.787029, -0.902648, 0.016616) Norm(0.408248, 0.408248, 0.816497) UV(0.254904, 0.57906)
V 9: Pos(0.907943, -0.902648, 0.016616) Norm(-0.408248, 0.408248, 0.816497) UV(0.254904, 0.455791)
V 10: Pos(0.907943, 1.866597, 0.016616) Norm(-0.408248, -0.408247, 0.816497) UV(0.456307, 0.455791)
V 11: Pos(-0.787029, 1.866597, 0.016616) Norm(0.408248, -0.408249, 0.816496) UV(0.456307, 0.57906)
V 12: Pos(-0.787029, 1.866597, 0.753136) Norm(0.301511, -0.904534, -0.301511) UV(0.737052, 0.235723)
V 13: Pos(-0.787029, 1.866597, 1.820116) Norm(0.353009, -0.756776, -0.550158) UV(0.814652, 0.235723)
V 14: Pos(-2.060281, 1.866597, 1.337887) Norm(0.65901, -0.598824, -0.4551) UV(0.77958, 0.328324)
V 15: Pos(-2.060281, 1.866597, 0.753136) Norm(0.707107, -0.707107, 0.0) UV(0.737052, 0.328324)
V 16: Pos(-0.787029, -0.902648, 0.753136) Norm(0.301511, 0.904534, -0.301511) UV(0.737052, 0.420926)
V 17: Pos(-0.787029, -0.902648, 0.016616) Norm(0.408248, 0.408248, 0.816497) UV(0.683486, 0.420926)
V 18: Pos(-2.060281, -0.902648, 0.016616) Norm(0.57735, 0.57735, 0.57735) UV(0.683486, 0.328324)
V 19: Pos(-2.060281, -0.902648, 0.753136) Norm(0.707107, 0.707107, 0.0) UV(0.737052, 0.328324)
V 20: Pos(2.181196, 1.866597, 0.016616) Norm(-0.57735, -0.57735, 0.57735) UV(0.456307, 0.363191)
V 21: Pos(2.181196, -0.902648, 0.016616) Norm(-0.57735, 0.57735, 0.57735) UV(0.254904, 0.363191)
V 22: Pos(0.907943, 1.866597, 0.016616) Norm(-0.408248, -0.408247, 0.816497) UV(0.243391, 0.416758)
V 23: Pos(0.907943, 1.866597, 0.753136) Norm(-0.301512, -0.904534, -0.301512) UV(0.243391, 0.363192)
V 24: Pos(0.907944, 1.963949, 0.753136) Norm(-0.301511, 0.904534, -0.301511) UV(0.250471, 0.363192)
V 25: Pos(0.907944, 1.963949, 0.016616) Norm(-0.707106, 0.707108, -0.0) UV(0.250471, 0.416758)
V 26: Pos(0.907944, 1.963949, 0.753136) Norm(-0.301511, 0.904534, -0.301511) UV(0.456307, 0.363191)
V 27: Pos(0.907943, 1.866597, 0.753136) Norm(-0.301512, -0.904534, -0.301512) UV(0.463388, 0.363191)
V 28: Pos(0.060457, 1.866597, 0.753136) Norm(0.0, -0.707107, -0.707107) UV(0.463388, 0.424826)
V 29: Pos(0.060458, 1.963949, 0.753136) Norm(0.0, 0.707107, -0.707107) UV(0.456307, 0.424826)
V 30: Pos(-2.060281, 1.866597, 0.753136) Norm(0.707107, -0.707107, 0.0) UV(0.06086, 0.873065)
V 31: Pos(-2.060281, 1.866597, 1.337887) Norm(0.65901, -0.598824, -0.4551) UV(0.018331, 0.873065)
V 32: Pos(-2.060281, -0.902648, 1.337887) Norm(0.65901, 0.598824, -0.4551) UV(0.018331, 0.671662)
V 33: Pos(-2.060281, -0.902648, 0.753136) Norm(0.707107, 0.707107, 0.0) UV(0.06086, 0.671662)
V 34: Pos(2.181196, 1.866597, 0.753136) Norm(-0.707107, -0.707107, 0.0) UV(0.737052, 0.019848)
V 35: Pos(2.181196, 1.866597, 1.337887) Norm(-0.65901, -0.598824, -0.4551) UV(0.77958, 0.019848)
V 36: Pos(0.907943, 1.866597, 1.820116) Norm(-0.353009, -0.756776, -0.550158) UV(0.814652, 0.11245)
V 37: Pos(0.907943, 1.866597, 0.753136) Norm(-0.301512, -0.904534, -0.301512) UV(0.737052, 0.11245)
V 38: Pos(2.181196, 1.866597, 0.753136) Norm(-0.707107, -0.707107, 0.0) UV(0.297432, 0.67166)
V 39: Pos(2.181196, 1.866597, 0.016616) Norm(-0.57735, -0.57735, 0.57735) UV(0.350998, 0.67166)
V 40: Pos(2.181196, -0.902648, 0.016616) Norm(-0.57735, 0.57735, 0.57735) UV(0.350998, 0.873063)
V 41: Pos(2.181196, -0.902648, 0.753136) Norm(-0.707107, 0.707107, 0.0) UV(0.297432, 0.873063)
V 42: Pos(2.181196, -0.902648, 0.753136) Norm(-0.707107, 0.707107, 0.0) UV(0.737052, 0.6368)
V 43: Pos(2.181196, -0.902648, 0.016616) Norm(-0.57735, 0.57735, 0.57735) UV(0.683486, 0.6368)
V 44: Pos(0.907943, -0.902648, 0.016616) Norm(-0.408248, 0.408248, 0.816497) UV(0.683486, 0.544199)
V 45: Pos(0.907943, -0.902648, 0.753136) Norm(-0.301511, 0.904534, -0.301512) UV(0.737052, 0.544199)
V 46: Pos(-2.162589, 1.963949, 0.753136) Norm(-0.707107, 0.707107, 0.0) UV(0.545043, 0.019848)
V 47: Pos(-2.162589, 1.963949, 1.296742) Norm(0.026637, 0.402662, -0.914961) UV(0.584579, 0.019848)
V 48: Pos(-0.787029, 1.963949, 1.820116) Norm(0.353547, 0.756586, -0.550075) UV(0.622643, 0.119891)
V 49: Pos(-0.787028, 1.963949, 0.753136) Norm(0.301511, 0.904534, -0.301512) UV(0.545043, 0.119891)
V 50: Pos(2.283504, -1.0, 0.753136) Norm(0.707107, -0.707107, 0.0) UV(0.545043, 0.343206)
V 51: Pos(2.283504, -1.0, 1.296742) Norm(-0.005023, -0.39988, -0.916554) UV(0.584579, 0.343206)
V 52: Pos(0.907944, -1.0, 1.820116) Norm(-0.353547, -0.756586, -0.550075) UV(0.622643, 0.443248)
V 53: Pos(0.907944, -1.0, 0.753136) Norm(-0.301511, -0.904534, -0.301511) UV(0.545043, 0.443248)
V 54: Pos(-0.787029, 1.866597, 0.753136) Norm(0.301511, -0.904534, -0.301511) UV(0.463388, 0.486461)
V 55: Pos(-0.787028, 1.963949, 0.753136) Norm(0.301511, 0.904534, -0.301512) UV(0.456307, 0.486461)
V 56: Pos(-0.787028, -1.0, 0.753136) Norm(0.301511, -0.904534, -0.301512) UV(0.545043, 0.566521)
V 57: Pos(-0.787028, -1.0, 1.820116) Norm(0.353547, -0.756586, -0.550075) UV(0.622643, 0.566521)
V 58: Pos(-2.162589, -1.0, 1.296742) Norm(0.026636, -0.402662, -0.914961) UV(0.584579, 0.666563)
V 59: Pos(-2.162589, -1.0, 0.753136) Norm(-0.707107, -0.707107, 0.0) UV(0.545043, 0.666563)
V 60: Pos(0.907944, 1.963949, 0.753136) Norm(-0.301511, 0.904534, -0.301511) UV(0.545043, 0.243163)
V 61: Pos(0.907943, 1.963949, 1.820116) Norm(-0.353548, 0.756586, -0.550075) UV(0.622643, 0.243163)
V 62: Pos(2.283504, 1.963949, 1.296742) Norm(-0.005023, 0.39988, -0.916554) UV(0.584579, 0.343206)
V 63: Pos(2.283504, 1.963949, 0.753136) Norm(0.707107, 0.707107, 0.0) UV(0.545043, 0.343206)
V 64: Pos(-0.787029, 1.866597, 0.753136) Norm(0.301511, -0.904534, -0.301511) UV(0.250471, 0.416758)
V 65: Pos(-0.787029, 1.866597, 0.016616) Norm(0.408248, -0.408249, 0.816496) UV(0.250471, 0.470324)
V 66: Pos(-0.787028, 1.963949, 0.016616) Norm(0.707107, 0.707106, 0.0) UV(0.243391, 0.470324)
V 67: Pos(-0.787028, 1.963949, 0.753136) Norm(0.301511, 0.904534, -0.301512) UV(0.243391, 0.416758)
V 68: Pos(0.060457, 1.866597, 0.753136) Norm(0.0, -0.707107, -0.707107) UV(0.737052, 0.174086)
V 69: Pos(0.060457, 1.866597, 2.656697) Norm(0.0, -0.578056, -0.815997) UV(0.875495, 0.174086)
V 70: Pos(0.907943, -0.902648, 0.753136) Norm(-0.301511, 0.904534, -0.301512) UV(0.470468, 0.363191)
V 71: Pos(0.907943, -0.902648, 0.016616) Norm(-0.408248, 0.408248, 0.816497) UV(0.470468, 0.416757)
V 72: Pos(0.907943, -1.0, 0.016616) Norm(-0.707107, -0.707107, 0.0) UV(0.463388, 0.416757)
V 73: Pos(0.907944, -1.0, 0.753136) Norm(-0.301511, -0.904534, -0.301511) UV(0.463388, 0.363191)
V 74: Pos(2.283504, -1.146237, 1.410701) Norm(0.241334, -0.710196, 0.661346) UV(0.782394, 0.969614)
V 75: Pos(2.283504, -1.146237, 1.296742) Norm(-0.243443, -0.704043, -0.667127) UV(0.790682, 0.969614)
V 76: Pos(2.428398, -1.146237, 1.246102) Norm(0.478888, -0.561687, -0.674666) UV(0.794365, 0.980152)
V 77: Pos(2.428398, -1.146237, 1.36006) Norm(0.654111, -0.597131, 0.464299) UV(0.786077, 0.980152)
V 78: Pos(-2.162589, -1.0, 1.296742) Norm(0.026636, -0.402662, -0.914961) UV(0.244269, 0.353713)
V 79: Pos(-0.787028, -1.0, 1.820116) Norm(0.353547, -0.756586, -0.550075) UV(0.244269, 0.253425)
V 80: Pos(-0.787028, -1.146237, 1.820116) Norm(0.404514, -0.663521, -0.629372) UV(0.254904, 0.253425)
V 81: Pos(-2.162589, -1.146237, 1.296742) Norm(0.253725, -0.70799, -0.65907) UV(0.254904, 0.353713)
V 82: Pos(2.283504, -1.0, 1.410701) Norm(0.342802, 0.0, 0.939408) UV(0.26554, 0.03036)
V 83: Pos(0.907944, -1.0, 1.934074) Norm(0.54068, 0.0, 0.841229) UV(0.26554, 0.130136)
V 84: Pos(0.907944, -1.146237, 1.934074) Norm(0.353547, -0.756586, 0.550075) UV(0.254904, 0.130136)
V 85: Pos(2.283504, -1.146237, 1.410701) Norm(0.241334, -0.710196, 0.661346) UV(0.254904, 0.03036)
V 86: Pos(-0.787029, -0.902648, 0.016616) Norm(0.408248, 0.408248, 0.816497) UV(0.463388, 0.470323)
V 87: Pos(-0.787029, -0.902648, 0.753136) Norm(0.301511, 0.904534, -0.301511) UV(0.463388, 0.416757)
V 88: Pos(-0.787028, -1.0, 0.753136) Norm(0.301511, -0.904534, -0.301512) UV(0.470468, 0.416757)
V 89: Pos(-0.787029, -1.0, 0.016616) Norm(0.707107, -0.707107, -0.0) UV(0.470468, 0.470323)
V 90: Pos(0.060458, -0.902648, 2.656697) Norm(-0.0, 0.578056, -0.815997) UV(0.875495, 0.482562)
V 91: Pos(0.060458, -0.902648, 0.753136) Norm(0.0, 0.707107, -0.707107) UV(0.737052, 0.482562)
V 92: Pos(-0.787029, -0.902648, 1.820116) Norm(0.353009, 0.756776, -0.550158) UV(0.814652, 0.420926)
V 93: Pos(0.907944, -1.0, 0.753136) Norm(-0.301511, -0.904534, -0.301511) UV(0.243391, 0.363192)
V 94: Pos(0.060458, -1.0, 0.753136) Norm(0.0, -0.707107, -0.707107) UV(0.243391, 0.424828)
V 95: Pos(0.060458, -0.902648, 0.753136) Norm(0.0, 0.707107, -0.707107) UV(0.23631, 0.424828)
V 96: Pos(0.907943, -0.902648, 0.753136) Norm(-0.301511, 0.904534, -0.301512) UV(0.23631, 0.363192)
V 97: Pos(0.907944, -1.0, 1.820116) Norm(-0.353547, -0.756586, -0.550075) UV(0.244269, 0.130155)
V 98: Pos(2.283504, -1.0, 1.296742) Norm(-0.005023, -0.39988, -0.916554) UV(0.244269, 0.030362)
V 99: Pos(2.283504, -1.146237, 1.296742) Norm(-0.243443, -0.704043, -0.667127) UV(0.254904, 0.030362)
V 100: Pos(0.907944, -1.146237, 1.820116) Norm(-0.404514, -0.663521, -0.629372) UV(0.254904, 0.130155)
V 101: Pos(-2.292608, -1.146237, 1.246102) Norm(-0.467487, -0.560279, -0.683772) UV(0.254904, 0.363192)
V 102: Pos(-2.292608, -1.0, 1.246102) Norm(-0.564391, 0.0, -0.825508) UV(0.244269, 0.363192)
V 103: Pos(0.060458, -1.0, 2.770656) Norm(0.0, 0.0, 1.0) UV(0.26554, 0.191347)
V 104: Pos(0.060458, -1.146237, 2.770656) Norm(0.0, -0.578056, 0.815997) UV(0.254904, 0.191347)
V 105: Pos(-0.787028, -1.0, 1.934074) Norm(-0.54068, -0.0, 0.841229) UV(0.26554, 0.253405)
V 106: Pos(-0.787028, -1.146237, 1.934074) Norm(-0.353547, -0.756586, 0.550075) UV(0.254904, 0.253405)
V 107: Pos(-2.162589, 1.963949, 1.410701) Norm(-0.359271, -0.0, 0.933233) UV(0.481103, 0.35371)
V 108: Pos(-0.787029, 1.963949, 1.934074) Norm(-0.54068, -0.0, 0.841228) UV(0.481103, 0.253405)
V 109: Pos(-0.787029, 2.10659, 1.934074) Norm(-0.353547, 0.756586, 0.550075) UV(0.491477, 0.253405)
V 110: Pos(-2.162589, 2.10659, 1.410701) Norm(-0.254359, 0.706225, 0.660717) UV(0.491477, 0.35371)
V 111: Pos(-2.162589, -1.0, 1.410701) Norm(-0.359271, -0.0, 0.933233) UV(0.26554, 0.35371)
V 112: Pos(-2.162589, -1.146237, 1.410701) Norm(-0.254359, -0.706225, 0.660717) UV(0.254904, 0.35371)
V 113: Pos(2.283504, 1.963949, 1.410701) Norm(0.342802, 0.0, 0.939408) UV(0.481103, 0.03036)
V 114: Pos(2.428398, -1.0, 1.36006) Norm(0.815454, 0.0, 0.578822) UV(0.26554, 0.019848)
V 115: Pos(2.428398, 1.963949, 1.36006) Norm(0.815454, 0.0, 0.578822) UV(0.481103, 0.019848)
V 116: Pos(-2.162589, 1.963949, 1.296742) Norm(0.026637, 0.402662, -0.914961) UV(0.028706, 0.353713)
V 117: Pos(-2.292608, 1.963949, 1.246102) Norm(-0.56439, 0.0, -0.825508) UV(0.028706, 0.363192)
V 118: Pos(0.060458, -1.0, 2.656697) Norm(0.0, -0.578056, -0.815997) UV(0.244269, 0.191395)
V 119: Pos(0.060458, -1.146237, 2.656697) Norm(0.0, -0.90301, -0.429619) UV(0.254904, 0.191395)
V 120: Pos(0.060457, 1.963949, 2.656697) Norm(0.0, 0.578056, -0.815997) UV(0.028706, 0.191395)
V 121: Pos(-0.787029, 1.963949, 1.820116) Norm(0.353547, 0.756586, -0.550075) UV(0.028706, 0.253425)
V 122: Pos(-0.787029, 2.10659, 1.820116) Norm(0.404514, 0.663521, -0.629372) UV(0.018331, 0.253425)
V 123: Pos(0.060457, 2.10659, 2.656697) Norm(0.0, 0.90301, -0.429619) UV(0.018331, 0.191395)
V 124: Pos(0.907943, 1.963949, 1.820116) Norm(-0.353548, 0.756586, -0.550075) UV(0.028706, 0.130155)
V 125: Pos(0.907943, 2.10659, 1.820116) Norm(-0.404514, 0.663521, -0.629372) UV(0.018331, 0.130155)
V 126: Pos(0.907944, -1.146237, 1.820116) Norm(-0.404514, -0.663521, -0.629372) UV(0.752617, 0.869571)
V 127: Pos(0.907944, -1.146237, 1.934074) Norm(0.353547, -0.756586, 0.550075) UV(0.74433, 0.869571)
V 128: Pos(0.060457, 1.963949, 2.770656) Norm(-0.0, -0.0, 1.0) UV(0.481103, 0.191347)
V 129: Pos(0.907943, 1.963949, 1.934074) Norm(0.54068, 0.0, 0.841228) UV(0.481103, 0.130136)
V 130: Pos(-2.162589, -1.146237, 1.296742) Norm(0.253725, -0.70799, -0.65907) UV(0.790682, 0.646256)
V 131: Pos(-0.787028, -1.146237, 1.820116) Norm(0.404514, -0.663521, -0.629372) UV(0.752618, 0.746299)
V 132: Pos(-0.787028, -1.146237, 1.934074) Norm(-0.353547, -0.756586, 0.550075) UV(0.74433, 0.746299)
V 133: Pos(-2.162589, -1.146237, 1.410701) Norm(-0.254359, -0.706225, 0.660717) UV(0.782394, 0.646256)
V 134: Pos(2.181196, 1.866597, 1.337887) Norm(-0.65901, -0.598824, -0.4551) UV(0.018331, 0.363192)
V 135: Pos(2.181196, -0.902648, 1.337887) Norm(-0.65901, 0.598824, -0.4551) UV(0.219734, 0.363192)
V 136: Pos(0.907943, -0.902648, 1.820116) Norm(-0.353009, 0.756776, -0.550158) UV(0.219734, 0.455564)
V 137: Pos(0.907943, 1.866597, 1.820116) Norm(-0.353009, -0.756776, -0.550158) UV(0.018331, 0.455564)
V 138: Pos(-2.292608, 2.10659, 1.36006) Norm(-0.66075, 0.599445, 0.451747) UV(0.491477, 0.363191)
V 139: Pos(-2.292608, 1.963949, 1.36006) Norm(-0.825508, 0.0, 0.56439) UV(0.481103, 0.363191)
V 140: Pos(0.060458, -1.146237, 2.656697) Norm(0.0, -0.90301, -0.429619) UV(0.691774, 0.807935)
V 141: Pos(0.060458, -1.146237, 2.770656) Norm(0.0, -0.578056, 0.815997) UV(0.683486, 0.807935)
V 142: Pos(0.060458, -0.902648, 2.656697) Norm(-0.0, 0.578056, -0.815997) UV(0.219734, 0.516804)
V 143: Pos(0.060457, 1.866597, 2.656697) Norm(0.0, -0.578056, -0.815997) UV(0.018331, 0.516804)
V 144: Pos(-0.787029, -0.902648, 1.820116) Norm(0.353009, 0.756776, -0.550158) UV(0.219734, 0.578834)
V 145: Pos(-0.787029, 1.866597, 1.820116) Norm(0.353009, -0.756776, -0.550158) UV(0.018331, 0.578834)
V 146: Pos(-2.060281, 1.866597, 1.337887) Norm(0.65901, -0.598824, -0.4551) UV(0.018331, 0.671662)
V 147: Pos(-2.060281, -0.902648, 1.337887) Norm(0.65901, 0.598824, -0.4551) UV(0.219734, 0.671662)
V 148: Pos(2.283504, 2.10659, 1.296742) Norm(-0.243443, 0.704043, -0.667127) UV(0.90156, 0.647338)
V 149: Pos(0.907943, 2.10659, 1.820116) Norm(-0.404514, 0.663521, -0.629372) UV(0.863496, 0.74738)
V 150: Pos(0.907943, 2.10659, 1.934074) Norm(0.353547, 0.756586, 0.550075) UV(0.855208, 0.74738)
V 151: Pos(2.283504, 2.10659, 1.410701) Norm(0.241334, 0.710196, 0.661346) UV(0.893272, 0.647338)
V 152: Pos(-0.787029, 2.10659, 1.820116) Norm(0.404514, 0.663521, -0.629372) UV(0.863496, 0.870653)
V 153: Pos(-2.162589, 2.10659, 1.296742) Norm(0.253725, 0.70799, -0.65907) UV(0.90156, 0.970695)
V 154: Pos(-2.162589, 2.10659, 1.410701) Norm(-0.254359, 0.706225, 0.660717) UV(0.893272, 0.970695)
V 155: Pos(-0.787029, 2.10659, 1.934074) Norm(-0.353547, 0.756586, 0.550075) UV(0.855208, 0.870653)
V 156: Pos(0.060457, 2.10659, 2.656697) Norm(0.0, 0.90301, -0.429619) UV(0.802653, 0.809017)
V 157: Pos(0.060457, 2.10659, 2.770656) Norm(0.0, 0.578056, 0.815997) UV(0.794365, 0.809017)
V 158: Pos(-2.162589, 2.10659, 1.296742) Norm(0.253725, 0.70799, -0.65907) UV(0.018331, 0.353713)
V 159: Pos(0.907943, 2.10659, 1.934074) Norm(0.353547, 0.756586, 0.550075) UV(0.491477, 0.130136)
V 160: Pos(0.060457, 2.10659, 2.770656) Norm(0.0, 0.578056, 0.815997) UV(0.491477, 0.191347)
V 161: Pos(2.283504, 1.963949, 1.296742) Norm(-0.005023, 0.39988, -0.916554) UV(0.028706, 0.030362)
V 162: Pos(2.283504, 2.10659, 1.296742) Norm(-0.243443, 0.704043, -0.667127) UV(0.018331, 0.030362)
V 163: Pos(2.283504, 2.10659, 1.410701) Norm(0.241334, 0.710196, 0.661346) UV(0.491477, 0.03036)
V 164: Pos(2.428398, 2.10659, 1.36006) Norm(0.654111, 0.597131, 0.464299) UV(0.896955, 0.6368)
V 165: Pos(2.428398, 2.10659, 1.246102) Norm(0.478889, 0.561687, -0.674666) UV(0.905243, 0.6368)
V 166: Pos(2.428398, -1.0, 1.246102) Norm(0.578822, 0.0, -0.815454) UV(0.23631, 0.373828)
V 167: Pos(2.428398, -1.0, 1.36006) Norm(0.815454, 0.0, 0.578822) UV(0.228022, 0.373828)
V 168: Pos(2.428398, -1.146237, 1.36006) Norm(0.654111, -0.597131, 0.464299) UV(0.228022, 0.363192)
V 169: Pos(2.428398, -1.146237, 1.246102) Norm(0.478888, -0.561687, -0.674666) UV(0.23631, 0.363192)
V 170: Pos(2.428398, 1.963949, 1.246102) Norm(0.578822, 0.0, -0.815454) UV(0.23631, 0.589391)
V 171: Pos(2.428398, 1.963949, 1.36006) Norm(0.815454, 0.0, 0.578822) UV(0.228022, 0.589391)
V 172: Pos(2.428398, 2.10659, 1.246102) Norm(0.478889, 0.561687, -0.674666) UV(0.23631, 0.599765)
V 173: Pos(2.428398, 2.10659, 1.36006) Norm(0.654111, 0.597131, 0.464299) UV(0.228022, 0.599765)
V 174: Pos(2.428398, -1.0, 1.246102) Norm(0.578822, 0.0, -0.815454) UV(0.244269, 0.019848)
V 175: Pos(2.428398, -1.146237, 1.246102) Norm(0.478888, -0.561687, -0.674666) UV(0.254904, 0.019848)
V 176: Pos(2.428398, 2.10659, 1.246102) Norm(0.478889, 0.561687, -0.674666) UV(0.018331, 0.019848)
V 177: Pos(2.428398, 1.963949, 1.246102) Norm(0.578822, 0.0, -0.815454) UV(0.028706, 0.019848)
V 178: Pos(2.428398, 2.10659, 1.36006) Norm(0.654111, 0.597131, 0.464299) UV(0.491477, 0.019848)
V 179: Pos(2.428398, -1.146237, 1.36006) Norm(0.654111, -0.597131, 0.464299) UV(0.254904, 0.019848)
V 180: Pos(-2.292608, 1.963949, 1.246102) Norm(-0.56439, 0.0, -0.825508) UV(0.228022, 0.373567)
V 181: Pos(-2.292608, -1.0, 1.246102) Norm(-0.564391, 0.0, -0.825508) UV(0.228022, 0.58913)
V 182: Pos(-2.292608, -1.0, 1.36006) Norm(-0.825508, 0.0, 0.56439) UV(0.219734, 0.58913)
V 183: Pos(-2.292608, 1.963949, 1.36006) Norm(-0.825508, 0.0, 0.56439) UV(0.219734, 0.373567)
V 184: Pos(-2.292608, 2.10659, 1.36006) Norm(-0.66075, 0.599445, 0.451747) UV(0.219734, 0.363192)
V 185: Pos(-2.292608, 2.10659, 1.246102) Norm(-0.467487, 0.560279, -0.683772) UV(0.228022, 0.363192)
V 186: Pos(-2.292608, -1.146237, 1.246102) Norm(-0.467487, -0.560279, -0.683772) UV(0.228022, 0.599765)
V 187: Pos(-2.292608, -1.146237, 1.36006) Norm(-0.66075, -0.599445, 0.451747) UV(0.219734, 0.599765)
V 188: Pos(-2.292608, 2.10659, 1.246102) Norm(-0.467487, 0.560279, -0.683772) UV(0.905243, 0.980152)
V 189: Pos(-2.292608, 2.10659, 1.36006) Norm(-0.66075, 0.599445, 0.451747) UV(0.896955, 0.980152)
V 190: Pos(-2.292608, -1.146237, 1.36006) Norm(-0.66075, -0.599445, 0.451747) UV(0.786077, 0.6368)
V 191: Pos(-2.292608, -1.146237, 1.246102) Norm(-0.467487, -0.560279, -0.683772) UV(0.794365, 0.6368)
V 192: Pos(-2.292608, 2.10659, 1.246102) Norm(-0.467487, 0.560279, -0.683772) UV(0.018331, 0.363192)
V 193: Pos(-2.292608, -1.0, 1.36006) Norm(-0.825508, 0.0, 0.56439) UV(0.26554, 0.363191)
V 194: Pos(-2.292608, -1.146237, 1.36006) Norm(-0.66075, -0.599445, 0.451747) UV(0.254904, 0.363191)
V 195: Pos(2.181196, -0.902648, 1.337887) Norm(-0.65901, 0.598824, -0.4551) UV(0.77958, 0.6368)
V 196: Pos(0.907943, -0.902648, 1.820116) Norm(-0.353009, 0.756776, -0.550158) UV(0.814652, 0.544199)
V 197: Pos(2.181196, 1.866597, 1.337887) Norm(-0.65901, -0.598824, -0.4551) UV(0.254904, 0.67166)
V 198: Pos(2.181196, -0.902648, 1.337887) Norm(-0.65901, 0.598824, -0.4551) UV(0.254904, 0.873063)
V 199: Pos(2.181196, 1.866597, 0.016616) Norm(-0.57735, -0.57735, 0.57735) UV(0.683486, 0.019848)
V 200: Pos(0.907943, 1.866597, 0.016616) Norm(-0.408248, -0.408247, 0.816497) UV(0.683486, 0.11245)
V 201: Pos(0.060458, 1.963949, 0.753136) Norm(0.0, 0.707107, -0.707107) UV(0.545043, 0.181527)
V 202: Pos(0.060457, 1.963949, 2.656697) Norm(0.0, 0.578056, -0.815997) UV(0.683486, 0.181527)
V 203: Pos(0.060458, -1.0, 0.753136) Norm(0.0, -0.707107, -0.707107) UV(0.545043, 0.504884)
V 204: Pos(0.060458, -1.0, 2.656697) Norm(0.0, -0.578056, -0.815997) UV(0.683486, 0.504884)
V 205: Pos(0.907944, 1.963949, 0.016616) Norm(-0.707106, 0.707108, -0.0) UV(0.491477, 0.243163)
V 206: Pos(2.283504, 1.963949, 0.016616) Norm(0.707107, 0.707107, 0.0) UV(0.491477, 0.343206)
V 207: Pos(-0.787029, -1.0, 0.016616) Norm(0.707107, -0.707107, -0.0) UV(0.491477, 0.566521)
V 208: Pos(-2.162589, -1.0, 0.016616) Norm(-0.707107, -0.707107, 0.0) UV(0.491477, 0.666563)
V 209: Pos(2.283504, -1.0, 0.016616) Norm(0.707107, -0.707107, 0.0) UV(0.491477, 0.343206)
V 210: Pos(0.907943, -1.0, 0.016616) Norm(-0.707107, -0.707107, 0.0) UV(0.491477, 0.443248)
V 211: Pos(-2.162589, 1.963949, 0.016616) Norm(-0.707107, 0.707107, 0.0) UV(0.491477, 0.019848)
V 212: Pos(-0.787028, 1.963949, 0.016616) Norm(0.707107, 0.707106, 0.0) UV(0.491477, 0.119891)
V 213: Pos(2.283504, 1.963949, 0.016616) Norm(0.707107, 0.707107, 0.0) UV(0.677681, 0.882126)
V 214: Pos(2.283504, -1.0, 0.016616) Norm(0.707107, -0.707107, 0.0) UV(0.677681, 0.666563)
V 215: Pos(-2.162589, -1.0, 0.016616) Norm(-0.707107, -0.707107, 0.0) UV(0.584579, 0.882126)
V 216: Pos(-2.162589, 1.963949, 0.016616) Norm(-0.707107, 0.707107, 0.0) UV(0.584579, 0.666563)
V 217: Pos(-2.060281, 1.866597, 0.016616) Norm(0.57735, -0.57735, 0.57735) UV(0.114425, 0.873065)
V 218: Pos(-2.060281, -0.902648, 0.016616) Norm(0.57735, 0.57735, 0.57735) UV(0.114426, 0.671662)
V 219: Pos(-2.060281, -0.902648, 1.337887) Norm(0.65901, 0.598824, -0.4551) UV(0.77958, 0.328324)
V 220: Pos(-0.787029, 1.866597, 0.016616) Norm(0.408248, -0.408249, 0.816496) UV(0.683486, 0.235723)
V 221: Pos(-2.060281, 1.866597, 0.016616) Norm(0.57735, -0.57735, 0.57735) UV(0.683486, 0.328324)
V 222: Pos(-0.787028, -1.0, 0.753136) Norm(0.301511, -0.904534, -0.301512) UV(0.243391, 0.486463)
V 223: Pos(-0.787029, -0.902648, 0.753136) Norm(0.301511, 0.904534, -0.301511) UV(0.23631, 0.486463)
V 224: Pos(-2.060281, -0.902648, 0.016616) Norm(0.57735, 0.57735, 0.57735) UV(0.254904, 0.67166)
V 225: Pos(-2.060281, 1.866597, 0.016616) Norm(0.57735, -0.57735, 0.57735) UV(0.456307, 0.67166)
===Triangles (Indices): 194
Tri: 0 1 2
Tri: 0 2 3
Tri: 4 5 6
Tri: 4 6 7
Tri: 8 9 10
Tri: 8 10 11
Tri: 12 13 14
Tri: 12 14 15
Tri: 16 17 18
Tri: 16 18 19
Tri: 20 10 9
Tri: 20 9 21
Tri: 22 23 24
Tri: 22 24 25
Tri: 26 27 28
Tri: 26 28 29
Tri: 30 31 32
Tri: 30 32 33
Tri: 34 35 36
Tri: 34 36 37
Tri: 38 39 40
Tri: 38 40 41
Tri: 42 43 44
Tri: 42 44 45
Tri: 46 47 48
Tri: 46 48 49
Tri: 50 51 52
Tri: 50 52 53
Tri: 29 28 54
Tri: 29 54 55
Tri: 56 57 58
Tri: 56 58 59
Tri: 60 61 62
Tri: 60 62 63
Tri: 64 65 66
Tri: 64 66 67
Tri: 13 12 68
Tri: 13 68 69
Tri: 69 68 37
Tri: 69 37 36
Tri: 70 71 72
Tri: 70 72 73
Tri: 74 75 76
Tri: 74 76 77
Tri: 78 79 80
Tri: 78 80 81
Tri: 82 83 84
Tri: 82 84 85
Tri: 86 87 88
Tri: 86 88 89
Tri: 90 91 16
Tri: 90 16 92
Tri: 93 94 95
Tri: 93 95 96
Tri: 97 98 99
Tri: 97 99 100
Tri: 78 81 101
Tri: 78 101 102
Tri: 83 103 104
Tri: 83 104 84
Tri: 103 105 106
Tri: 103 106 104
Tri: 107 108 109
Tri: 107 109 110
Tri: 105 111 112
Tri: 105 112 106
Tri: 113 82 114
Tri: 113 114 115
Tri: 116 78 102
Tri: 116 102 117
Tri: 118 97 100
Tri: 118 100 119
Tri: 120 121 122
Tri: 120 122 123
Tri: 124 120 123
Tri: 124 123 125
Tri: 126 75 74
Tri: 126 74 127
Tri: 103 128 108
Tri: 103 108 105
Tri: 128 103 83
Tri: 128 83 129
Tri: 130 131 132
Tri: 130 132 133
Tri: 111 105 108
Tri: 111 108 107
Tri: 134 135 136
Tri: 134 136 137
Tri: 79 118 119
Tri: 79 119 80
Tri: 107 110 138
Tri: 107 138 139
Tri: 140 126 127
Tri: 140 127 141
Tri: 131 140 141
Tri: 131 141 132
Tri: 142 143 137
Tri: 142 137 136
Tri: 143 142 144
Tri: 143 144 145
Tri: 146 145 144
Tri: 146 144 147
Tri: 113 129 83
Tri: 113 83 82
Tri: 148 149 150
Tri: 148 150 151
Tri: 152 153 154
Tri: 152 154 155
Tri: 156 152 155
Tri: 156 155 157
Tri: 149 156 157
Tri: 149 157 150
Tri: 121 116 158
Tri: 121 158 122
Tri: 128 129 159
Tri: 128 159 160
Tri: 161 124 125
Tri: 161 125 162
Tri: 129 113 163
Tri: 129 163 159
Tri: 148 151 164
Tri: 148 164 165
Tri: 108 128 160
Tri: 108 160 109
Tri: 166 167 168
Tri: 166 168 169
Tri: 166 170 171
Tri: 166 171 167
Tri: 171 170 172
Tri: 171 172 173
Tri: 99 98 174
Tri: 99 174 175
Tri: 161 162 176
Tri: 161 176 177
Tri: 98 161 177
Tri: 98 177 174
Tri: 163 113 115
Tri: 163 115 178
Tri: 82 85 179
Tri: 82 179 114
Tri: 180 181 182
Tri: 180 182 183
Tri: 180 183 184
Tri: 180 184 185
Tri: 182 181 186
Tri: 182 186 187
Tri: 154 153 188
Tri: 154 188 189
Tri: 130 133 190
Tri: 130 190 191
Tri: 158 116 117
Tri: 158 117 192
Tri: 112 111 193
Tri: 112 193 194
Tri: 111 107 139
Tri: 111 139 193
Tri: 195 42 45
Tri: 195 45 196
Tri: 197 38 41
Tri: 197 41 198
Tri: 199 34 37
Tri: 199 37 200
Tri: 61 60 201
Tri: 61 201 202
Tri: 57 56 203
Tri: 57 203 204
Tri: 202 201 49
Tri: 202 49 48
Tri: 204 203 53
Tri: 204 53 52
Tri: 205 60 63
Tri: 205 63 206
Tri: 207 56 59
Tri: 207 59 208
Tri: 209 50 53
Tri: 209 53 210
Tri: 211 46 49
Tri: 211 49 212
Tri: 213 4 7
Tri: 213 7 214
Tri: 215 0 3
Tri: 215 3 216
Tri: 217 30 33
Tri: 217 33 218
Tri: 92 16 19
Tri: 92 19 219
Tri: 220 12 15
Tri: 220 15 221
Tri: 45 91 90
Tri: 45 90 196
Tri: 222 223 95
Tri: 222 95 94
Tri: 224 8 11
Tri: 224 11 225

587
resources/barn/lamp.txt Normal file
View File

@ -0,0 +1,587 @@
===Vertices (Split by UV/Normal): 308
V 0: Pos(1.869281, 0.711913, 0.20808) Norm(-0.761914, -0.471586, 0.443953) UV(0.940254, 0.275626)
V 1: Pos(1.909114, 0.661025, 0.20808) Norm(-0.635819, -0.635639, 0.437832) UV(0.941821, 0.050079)
V 2: Pos(1.911422, 0.662832, 0.209918) Norm(-0.411643, 0.156254, 0.89785) UV(0.952296, 0.050152)
V 3: Pos(1.87159, 0.71372, 0.209918) Norm(0.05145, -0.345966, 0.936835) UV(0.950729, 0.275699)
V 4: Pos(1.913993, 0.664845, 0.208771) Norm(0.18131, 0.807914, 0.560716) UV(0.963526, 0.05023)
V 5: Pos(1.874161, 0.715733, 0.208771) Norm(0.765568, 0.102584, 0.635124) UV(0.961959, 0.275777)
V 6: Pos(1.874161, 0.715733, 0.208771) Norm(0.765568, 0.102584, 0.635124) UV(0.570192, 0.276899)
V 7: Pos(1.913993, 0.664845, 0.208771) Norm(0.18131, 0.807914, 0.560716) UV(0.570192, 0.054444)
V 8: Pos(1.914891, 0.665547, 0.205504) Norm(0.67715, 0.693757, -0.245293) UV(0.582143, 0.054731)
V 9: Pos(1.875058, 0.716435, 0.205504) Norm(0.834547, 0.507059, -0.21546) UV(0.582143, 0.277186)
V 10: Pos(1.913438, 0.66441, 0.202576) Norm(0.516638, 0.080688, -0.852393) UV(0.590955, 0.053367)
V 11: Pos(1.873606, 0.715298, 0.202576) Norm(0.21114, 0.469699, -0.857206) UV(0.590955, 0.275822)
V 12: Pos(1.873606, 0.715298, 0.202576) Norm(0.21114, 0.469699, -0.857206) UV(0.534956, 0.846336)
V 13: Pos(1.913438, 0.66441, 0.202576) Norm(0.516638, 0.080688, -0.852393) UV(0.534956, 0.620784)
V 14: Pos(1.91073, 0.662291, 0.202192) Norm(-0.030373, -0.478808, -0.877394) UV(0.546978, 0.620784)
V 15: Pos(1.870898, 0.713179, 0.202192) Norm(-0.465715, 0.071095, -0.882074) UV(0.546978, 0.846336)
V 16: Pos(1.872261, 0.722571, 0.208011) Norm(0.161414, 0.736744, -0.656623) UV(0.574598, 0.300921)
V 17: Pos(1.874394, 0.719846, 0.208011) Norm(0.875251, 0.274505, -0.398224) UV(0.574598, 0.28901)
V 18: Pos(1.908806, 0.660784, 0.204642) Norm(-0.491082, -0.800738, -0.343011) UV(0.555378, 0.620784)
V 19: Pos(1.868973, 0.711672, 0.204642) Norm(-0.888391, -0.298097, -0.349142) UV(0.555378, 0.846336)
V 20: Pos(1.868973, 0.711672, 0.204642) Norm(-0.888391, -0.298097, -0.349142) UV(0.064087, 0.044995)
V 21: Pos(1.908806, 0.660784, 0.204642) Norm(-0.491082, -0.800738, -0.343011) UV(0.288741, 0.035517)
V 22: Pos(1.909114, 0.661025, 0.20808) Norm(-0.635819, -0.635639, 0.437832) UV(0.289208, 0.047573)
V 23: Pos(1.869281, 0.711913, 0.20808) Norm(-0.761914, -0.471586, 0.443953) UV(0.064555, 0.057052)
V 24: Pos(1.869128, 0.722859, 0.209453) Norm(-0.579803, 0.709466, -0.400608) UV(0.530635, 0.876748)
V 25: Pos(1.872261, 0.722571, 0.208011) Norm(0.161414, 0.736744, -0.656623) UV(0.522723, 0.869218)
V 26: Pos(1.869128, 0.722859, 0.209453) Norm(-0.579803, 0.709466, -0.400608) UV(0.881676, 0.224478)
V 27: Pos(1.867355, 0.720493, 0.211251) Norm(-0.978626, 0.203528, 0.029447) UV(0.893616, 0.224476)
V 28: Pos(1.905059, 0.750005, 0.287268) Norm(-0.726396, 0.413925, 0.548648) UV(0.893569, 0.538039)
V 29: Pos(1.906832, 0.752371, 0.28547) Norm(-0.303191, 0.93752, 0.17068) UV(0.88163, 0.538041)
V 30: Pos(1.912745, 0.662505, 0.211251) Norm(-0.768111, 0.333689, 0.546496) UV(0.292472, 0.059404)
V 31: Pos(1.913666, 0.659267, 0.212051) Norm(-0.641122, -0.621838, 0.449755) UV(0.303777, 0.061406)
V 32: Pos(1.95137, 0.688779, 0.288069) Norm(-0.567274, -0.561274, 0.602638) UV(0.303777, 0.337972)
V 33: Pos(1.950449, 0.692017, 0.287268) Norm(-0.977416, 0.171509, 0.123465) UV(0.292472, 0.33597)
V 34: Pos(1.871199, 0.715583, 0.211251) Norm(0.121887, -0.767984, 0.628763) UV(0.953797, 0.281682)
V 35: Pos(1.873921, 0.716736, 0.209453) Norm(0.873273, -0.419594, 0.247661) UV(0.963526, 0.279062)
V 36: Pos(1.873921, 0.716736, 0.209453) Norm(0.873273, -0.419594, 0.247661) UV(0.568141, 0.280446)
V 37: Pos(1.870898, 0.713179, 0.202192) Norm(-0.465715, 0.071095, -0.882074) UV(0.883904, 0.194467)
V 38: Pos(1.868973, 0.711672, 0.204642) Norm(-0.888391, -0.298097, -0.349142) UV(0.895647, 0.197158)
V 39: Pos(1.868277, 0.717255, 0.212051) Norm(-0.764855, -0.469795, 0.440783) UV(0.047779, 0.072207)
V 40: Pos(1.867355, 0.720493, 0.211251) Norm(-0.978626, 0.203528, 0.029447) UV(0.036474, 0.070205)
V 41: Pos(1.868277, 0.717255, 0.212051) Norm(-0.764855, -0.469795, 0.440783) UV(0.9494, 0.292533)
V 42: Pos(1.913993, 0.664845, 0.208771) Norm(0.18131, 0.807914, 0.560716) UV(0.928243, 0.043066)
V 43: Pos(1.914518, 0.66487, 0.209453) Norm(-0.305786, 0.941985, 0.138418) UV(0.928315, 0.045875)
V 44: Pos(1.917651, 0.664582, 0.208011) Norm(0.44499, 0.797325, -0.407746) UV(0.919448, 0.045841)
V 45: Pos(1.914891, 0.665547, 0.205504) Norm(0.67715, 0.693757, -0.245293) UV(0.91884, 0.035517)
V 46: Pos(1.917651, 0.664582, 0.208011) Norm(0.44499, 0.797325, -0.407746) UV(0.574598, 0.047428)
V 47: Pos(1.919784, 0.661858, 0.208011) Norm(0.764109, -0.017582, -0.644848) UV(0.574598, 0.035517)
V 48: Pos(1.919784, 0.661858, 0.208011) Norm(0.764109, -0.017582, -0.644848) UV(0.522723, 0.600118)
V 49: Pos(1.919311, 0.658748, 0.209453) Norm(0.559032, -0.73323, -0.387114) UV(0.530635, 0.592588)
V 50: Pos(1.91073, 0.662291, 0.202192) Norm(-0.030373, -0.478808, -0.877394) UV(0.907113, 0.412291)
V 51: Pos(1.919311, 0.658748, 0.209453) Norm(0.559032, -0.73323, -0.387114) UV(0.90461, 0.38031)
V 52: Pos(1.916588, 0.657595, 0.211251) Norm(-0.026527, -0.998769, 0.041913) UV(0.916575, 0.380425)
V 53: Pos(1.908806, 0.660784, 0.204642) Norm(-0.491082, -0.800738, -0.343011) UV(0.91884, 0.409524)
V 54: Pos(1.916588, 0.657595, 0.211251) Norm(-0.026527, -0.998769, 0.041913) UV(0.314148, 0.058489)
V 55: Pos(1.913666, 0.659267, 0.212051) Norm(-0.641122, -0.621838, 0.449755) UV(0.951185, 0.035517)
V 56: Pos(1.912745, 0.662505, 0.211251) Norm(-0.768111, 0.333689, 0.546496) UV(0.955431, 0.046428)
V 57: Pos(1.911422, 0.662832, 0.209918) Norm(-0.411643, 0.156254, 0.89785) UV(0.939991, 0.040403)
V 58: Pos(1.912745, 0.662505, 0.211251) Norm(-0.768111, 0.333689, 0.546496) UV(0.940254, 0.045895)
V 59: Pos(1.950787, 0.694725, 0.293158) Norm(-0.542765, -0.570773, 0.616137) UV(0.286249, 0.35723)
V 60: Pos(1.950479, 0.694484, 0.28972) Norm(-0.94827, -0.260746, -0.181095) UV(0.285781, 0.345173)
V 61: Pos(1.950449, 0.692017, 0.287268) Norm(-0.977416, 0.171509, 0.123465) UV(0.939646, 0.359457)
V 62: Pos(1.950479, 0.694484, 0.28972) Norm(-0.94827, -0.260746, -0.181095) UV(0.939135, 0.369584)
V 63: Pos(1.952403, 0.695991, 0.287271) Norm(-0.504568, 0.268536, -0.820548) UV(0.927398, 0.366872)
V 64: Pos(1.952222, 0.694382, 0.28547) Norm(-0.556023, 0.743669, -0.371209) UV(0.927707, 0.359437)
V 65: Pos(1.872261, 0.722571, 0.208011) Norm(0.161414, 0.736744, -0.656623) UV(0.87281, 0.22446)
V 66: Pos(1.909964, 0.752083, 0.284029) Norm(0.355973, 0.897102, -0.261709) UV(0.872763, 0.538023)
V 67: Pos(1.955354, 0.694095, 0.284029) Norm(0.353521, 0.733298, -0.580772) UV(0.91884, 0.359403)
V 68: Pos(1.909964, 0.752083, 0.284029) Norm(0.355973, 0.897102, -0.261709) UV(0.345823, 0.336334)
V 69: Pos(1.912097, 0.749358, 0.284029) Norm(0.796741, 0.167077, -0.580765) UV(0.345823, 0.324423)
V 70: Pos(1.955354, 0.694095, 0.284029) Norm(0.353521, 0.733298, -0.580772) UV(0.345823, 0.082841)
V 71: Pos(1.957487, 0.69137, 0.284029) Norm(0.956337, 0.1301, -0.261713) UV(0.345823, 0.070929)
V 72: Pos(1.873921, 0.716736, 0.209453) Norm(0.873273, -0.419594, 0.247661) UV(0.948579, 0.920279)
V 73: Pos(1.874394, 0.719846, 0.208011) Norm(0.875251, 0.274505, -0.398224) UV(0.939834, 0.920881)
V 74: Pos(1.912097, 0.749358, 0.284029) Norm(0.796741, 0.167077, -0.580765) UV(0.940802, 0.608213)
V 75: Pos(1.911624, 0.746248, 0.28547) Norm(0.588348, -0.71835, -0.37124) UV(0.949547, 0.607611)
V 76: Pos(1.919784, 0.661858, 0.208011) Norm(0.764109, -0.017582, -0.644848) UV(0.895867, 0.380945)
V 77: Pos(1.957487, 0.69137, 0.284029) Norm(0.956337, 0.1301, -0.261713) UV(0.895647, 0.068276)
V 78: Pos(1.957014, 0.68826, 0.28547) Norm(0.83726, -0.519484, 0.170681) UV(0.90439, 0.067641)
V 79: Pos(1.871199, 0.715583, 0.211251) Norm(0.121887, -0.767984, 0.628763) UV(0.960544, 0.92044)
V 80: Pos(1.908902, 0.745095, 0.287268) Norm(-0.068272, -0.989999, 0.12345) UV(0.961512, 0.607772)
V 81: Pos(1.954292, 0.687107, 0.287268) Norm(0.22735, -0.804542, 0.548657) UV(0.916355, 0.067756)
V 82: Pos(1.871199, 0.715583, 0.211251) Norm(0.121887, -0.767984, 0.628763) UV(0.058149, 0.069291)
V 83: Pos(1.908902, 0.745095, 0.287268) Norm(-0.068272, -0.989999, 0.12345) UV(0.058149, 0.345857)
V 84: Pos(1.90598, 0.746767, 0.288069) Norm(-0.681101, -0.415856, 0.602632) UV(0.047779, 0.348773)
V 85: Pos(1.954292, 0.687107, 0.287268) Norm(0.22735, -0.804542, 0.548657) UV(0.314148, 0.335055)
V 86: Pos(1.905059, 0.750005, 0.287268) Norm(-0.726396, 0.413925, 0.548648) UV(0.036474, 0.346771)
V 87: Pos(1.953095, 0.696532, 0.294996) Norm(0.149457, -0.309654, 0.93903) UV(0.298425, 0.453344)
V 88: Pos(1.955666, 0.698545, 0.29385) Norm(0.73947, 0.113211, 0.663602) UV(0.309097, 0.456842)
V 89: Pos(1.952377, 0.702748, 0.29385) Norm(0.053881, 0.831106, 0.553499) UV(0.303295, 0.474544)
V 90: Pos(1.949806, 0.700735, 0.294996) Norm(-0.451341, 0.435647, 0.778783) UV(0.292623, 0.471046)
V 91: Pos(1.913921, 0.74658, 0.294996) Norm(-0.264714, 0.219449, 0.939025) UV(0.298479, 0.388008)
V 92: Pos(1.911613, 0.744773, 0.293158) Norm(-0.684428, -0.389788, 0.616136) UV(0.288518, 0.391248)
V 93: Pos(1.914952, 0.740506, 0.293159) Norm(-0.139196, -0.897892, 0.41763) UV(0.282669, 0.373265)
V 94: Pos(1.917261, 0.742313, 0.294996) Norm(0.314498, -0.542755, 0.778787) UV(0.292631, 0.370025)
V 95: Pos(1.954292, 0.687107, 0.287268) Norm(0.22735, -0.804542, 0.548657) UV(0.290165, 0.420667)
V 96: Pos(1.950787, 0.694725, 0.293158) Norm(-0.542765, -0.570773, 0.616137) UV(0.288471, 0.450082)
V 97: Pos(1.95137, 0.688779, 0.288069) Norm(-0.567274, -0.561274, 0.602638) UV(0.282669, 0.429661)
V 98: Pos(1.955666, 0.698545, 0.29385) Norm(0.73947, 0.113211, 0.663602) UV(0.90711, 0.035517)
V 99: Pos(1.953095, 0.696532, 0.294996) Norm(0.149457, -0.309654, 0.93903) UV(0.91884, 0.03811)
V 100: Pos(1.956563, 0.699247, 0.290583) Norm(0.921035, 0.386812, -0.045518) UV(0.326099, 0.097295)
V 101: Pos(1.955666, 0.698545, 0.29385) Norm(0.73947, 0.113211, 0.663602) UV(0.314148, 0.097008)
V 102: Pos(1.957014, 0.68826, 0.28547) Norm(0.83726, -0.519484, 0.170681) UV(0.339366, 0.062365)
V 103: Pos(1.955111, 0.69811, 0.287655) Norm(0.424828, 0.496372, -0.757057) UV(0.334911, 0.095931)
V 104: Pos(1.952222, 0.694382, 0.28547) Norm(-0.556023, 0.743669, -0.371209) UV(0.298744, 0.536259)
V 105: Pos(1.952403, 0.695991, 0.287271) Norm(-0.504568, 0.268536, -0.820548) UV(0.294691, 0.540289)
V 106: Pos(1.955111, 0.69811, 0.287655) Norm(0.424828, 0.496372, -0.757057) UV(0.282669, 0.540289)
V 107: Pos(1.955354, 0.694095, 0.284029) Norm(0.353521, 0.733298, -0.580772) UV(0.290831, 0.528729)
V 108: Pos(1.913229, 0.746038, 0.287271) Norm(0.13947, -0.554268, -0.82057) UV(0.949217, 0.599902)
V 109: Pos(1.911304, 0.744532, 0.28972) Norm(-0.480863, -0.857888, -0.181104) UV(0.960954, 0.59718)
V 110: Pos(1.911304, 0.744532, 0.28972) Norm(-0.480863, -0.857888, -0.181104) UV(0.06484, 0.354495)
V 111: Pos(1.911613, 0.744773, 0.293158) Norm(-0.684428, -0.389788, 0.616136) UV(0.065307, 0.366552)
V 112: Pos(1.905059, 0.750005, 0.287268) Norm(-0.726396, 0.413925, 0.548648) UV(0.290144, 0.420667)
V 113: Pos(1.90598, 0.746767, 0.288069) Norm(-0.681101, -0.415856, 0.602632) UV(0.282669, 0.411656)
V 114: Pos(1.913921, 0.74658, 0.294996) Norm(-0.264714, 0.219449, 0.939025) UV(0.895647, 0.569857)
V 115: Pos(1.916492, 0.748592, 0.29385) Norm(0.287488, 0.690641, 0.6636) UV(0.883904, 0.572541)
V 116: Pos(1.906832, 0.752371, 0.28547) Norm(-0.303191, 0.93752, 0.17068) UV(0.339366, 0.342623)
V 117: Pos(1.916492, 0.748592, 0.29385) Norm(0.287488, 0.690641, 0.6636) UV(0.314148, 0.315787)
V 118: Pos(1.917389, 0.749294, 0.290583) Norm(0.596697, 0.801175, -0.04552) UV(0.326099, 0.316075)
V 119: Pos(1.915937, 0.748158, 0.287655) Norm(0.583885, 0.293186, -0.757047) UV(0.33491, 0.314711)
V 120: Pos(1.915937, 0.748158, 0.287655) Norm(0.583885, 0.293186, -0.757047) UV(0.939834, 0.592427)
V 121: Pos(1.947189, 0.698687, 0.28972) Norm(-0.965573, 0.033132, -0.258014) UV(0.282669, 0.494161)
V 122: Pos(1.947497, 0.698928, 0.293158) Norm(-0.905044, 0.080519, 0.417626) UV(0.282669, 0.482089)
V 123: Pos(1.949806, 0.700735, 0.294996) Norm(-0.451341, 0.435647, 0.778783) UV(0.29209, 0.474544)
V 124: Pos(1.952377, 0.702748, 0.29385) Norm(0.053881, 0.831106, 0.553499) UV(0.303839, 0.477207)
V 125: Pos(1.953274, 0.70345, 0.290583) Norm(0.23019, 0.969106, -0.088577) UV(0.309067, 0.488073)
V 126: Pos(1.951822, 0.702313, 0.287655) Norm(-0.055188, 0.74573, -0.663958) UV(0.303839, 0.498959)
V 127: Pos(1.949113, 0.700194, 0.287271) Norm(-0.587358, 0.329173, -0.739362) UV(0.29209, 0.501669)
V 128: Pos(1.951822, 0.702313, 0.287655) Norm(-0.055188, 0.74573, -0.663958) UV(0.334911, 0.114304)
V 129: Pos(1.953274, 0.70345, 0.290583) Norm(0.23019, 0.969106, -0.088577) UV(0.326099, 0.115668)
V 130: Pos(1.950479, 0.694484, 0.28972) Norm(-0.94827, -0.260746, -0.181095) UV(0.303091, 0.540289)
V 131: Pos(1.947189, 0.698687, 0.28972) Norm(-0.965573, 0.033132, -0.258014) UV(0.303091, 0.558917)
V 132: Pos(1.949113, 0.700194, 0.287271) Norm(-0.587358, 0.329173, -0.739362) UV(0.294691, 0.558917)
V 133: Pos(1.947497, 0.698928, 0.293158) Norm(-0.905044, 0.080519, 0.417626) UV(0.282669, 0.467784)
V 134: Pos(1.952377, 0.702748, 0.29385) Norm(0.053881, 0.831106, 0.553499) UV(0.314148, 0.11538)
V 135: Pos(1.951822, 0.702313, 0.287655) Norm(-0.055188, 0.74573, -0.663958) UV(0.282669, 0.558917)
V 136: Pos(1.947497, 0.698928, 0.293158) Norm(-0.905044, 0.080519, 0.417626) UV(0.267695, 0.358013)
V 137: Pos(1.947189, 0.698687, 0.28972) Norm(-0.965573, 0.033132, -0.258014) UV(0.267227, 0.345956)
V 138: Pos(1.914952, 0.740506, 0.293159) Norm(-0.139196, -0.897892, 0.41763) UV(0.309023, 0.515086)
V 139: Pos(1.914644, 0.740265, 0.28972) Norm(-0.199734, -0.94527, -0.258013) UV(0.303804, 0.525971)
V 140: Pos(1.916569, 0.741772, 0.287271) Norm(0.178483, -0.649214, -0.739368) UV(0.292075, 0.528729)
V 141: Pos(1.919277, 0.743891, 0.287655) Norm(0.710654, -0.232666, -0.663956) UV(0.282669, 0.521283)
V 142: Pos(1.920729, 0.745028, 0.290583) Norm(0.996025, -0.009297, -0.088583) UV(0.282669, 0.50924)
V 143: Pos(1.919832, 0.744326, 0.29385) Norm(0.819725, -0.147289, 0.553496) UV(0.292075, 0.501669)
V 144: Pos(1.917261, 0.742313, 0.294996) Norm(0.314498, -0.542755, 0.778787) UV(0.303804, 0.504271)
V 145: Pos(1.911304, 0.744532, 0.28972) Norm(-0.480863, -0.857888, -0.181104) UV(0.301579, 0.558917)
V 146: Pos(1.913229, 0.746038, 0.287271) Norm(0.13947, -0.554268, -0.82057) UV(0.301579, 0.567317)
V 147: Pos(1.916569, 0.741772, 0.287271) Norm(0.178483, -0.649214, -0.739368) UV(0.282669, 0.567317)
V 148: Pos(1.914644, 0.740265, 0.28972) Norm(-0.199734, -0.94527, -0.258013) UV(0.282669, 0.558917)
V 149: Pos(1.920729, 0.745028, 0.290583) Norm(0.996025, -0.009297, -0.088583) UV(0.326099, 0.297425)
V 150: Pos(1.919277, 0.743891, 0.287655) Norm(0.710654, -0.232666, -0.663956) UV(0.33491, 0.296061)
V 151: Pos(1.916492, 0.748592, 0.29385) Norm(0.287488, 0.690641, 0.6636) UV(0.309159, 0.384535)
V 152: Pos(1.919832, 0.744326, 0.29385) Norm(0.819725, -0.147289, 0.553496) UV(0.303311, 0.366552)
V 153: Pos(1.914644, 0.740265, 0.28972) Norm(-0.199734, -0.94527, -0.258013) UV(0.083674, 0.353701)
V 154: Pos(1.914952, 0.740506, 0.293159) Norm(-0.139196, -0.897892, 0.41763) UV(0.084142, 0.365757)
V 155: Pos(1.915937, 0.748158, 0.287655) Norm(0.583885, 0.293186, -0.757047) UV(0.301579, 0.579339)
V 156: Pos(1.919277, 0.743891, 0.287655) Norm(0.710654, -0.232666, -0.663956) UV(0.282669, 0.579339)
V 157: Pos(1.919832, 0.744326, 0.29385) Norm(0.819725, -0.147289, 0.553496) UV(0.314148, 0.297137)
V 158: Pos(1.913563, 0.745878, 0.214141) Norm(-0.375685, 0.479958, 0.792781) UV(0.108868, 0.838116)
V 159: Pos(1.913563, 0.745878, 0.277353) Norm(-0.375683, 0.479959, -0.792781) UV(0.108868, 0.617641)
V 160: Pos(1.934118, 0.752578, 0.277353) Norm(0.02072, 0.609155, -0.792781) UV(0.178008, 0.616517)
V 161: Pos(1.934118, 0.752578, 0.214141) Norm(0.02072, 0.609155, 0.792781) UV(0.178008, 0.836992)
V 162: Pos(1.934118, 0.752578, 0.214141) Norm(0.02072, 0.609155, 0.792781) UV(0.751409, 0.601446)
V 163: Pos(1.934118, 0.752578, 0.277353) Norm(0.02072, 0.609155, -0.792781) UV(0.751409, 0.818173)
V 164: Pos(1.954171, 0.744497, 0.277353) Norm(0.40743, 0.453321, -0.792781) UV(0.693332, 0.809153)
V 165: Pos(1.954171, 0.744497, 0.214141) Norm(0.40743, 0.453321, 0.792781) UV(0.693332, 0.592427)
V 166: Pos(1.964339, 0.725417, 0.277353) Norm(0.603497, 0.085372, -0.792782) UV(0.617875, 0.809233)
V 167: Pos(1.964339, 0.725417, 0.214141) Norm(0.603497, 0.085372, 0.792782) UV(0.617875, 0.592506)
V 168: Pos(1.959863, 0.704265, 0.277353) Norm(0.517182, -0.322522, -0.792781) UV(0.560343, 0.818374)
V 169: Pos(1.959863, 0.704265, 0.214141) Norm(0.517182, -0.322522, 0.792781) UV(0.560343, 0.601647)
V 170: Pos(1.959863, 0.704265, 0.214141) Norm(0.517182, -0.322522, 0.792781) UV(0.751409, 0.81317)
V 171: Pos(1.959863, 0.704265, 0.277353) Norm(0.517182, -0.322522, -0.792781) UV(0.751409, 0.592575)
V 172: Pos(1.942838, 0.690939, 0.277353) Norm(0.188873, -0.579505, -0.79278) UV(0.826372, 0.592427)
V 173: Pos(1.942838, 0.690939, 0.214141) Norm(0.188872, -0.579505, 0.792781) UV(0.826372, 0.813022)
V 174: Pos(1.92123, 0.691674, 0.277353) Norm(-0.227816, -0.56533, -0.792781) UV(0.88935, 0.593138)
V 175: Pos(1.92123, 0.691674, 0.214141) Norm(-0.227815, -0.56533, 0.792781) UV(0.88935, 0.813733)
V 176: Pos(1.92123, 0.691674, 0.214141) Norm(-0.227815, -0.56533, 0.792781) UV(0.314148, 0.813623)
V 177: Pos(1.92123, 0.691674, 0.277353) Norm(-0.227816, -0.56533, -0.792781) UV(0.314148, 0.593528)
V 178: Pos(1.905151, 0.706126, 0.277353) Norm(-0.537905, -0.286631, -0.79278) UV(0.387196, 0.594843)
V 179: Pos(1.905151, 0.706126, 0.214141) Norm(-0.537906, -0.286631, 0.79278) UV(0.387196, 0.814937)
V 180: Pos(1.905151, 0.706126, 0.214141) Norm(-0.537906, -0.286631, 0.79278) UV(0.668112, 0.35897)
V 181: Pos(1.902122, 0.727533, 0.214141) Norm(-0.596304, 0.126185, 0.79278) UV(0.602763, 0.396671)
V 182: Pos(1.897466, 0.728518, 0.214141) Norm(-0.753676, 0.159485, 0.637603) UV(0.590038, 0.386001)
V 183: Pos(1.90095, 0.703888, 0.214141) Norm(-0.679865, -0.362278, 0.637603) UV(0.665228, 0.342623)
V 184: Pos(1.902122, 0.727533, 0.277353) Norm(-0.5963, 0.126186, -0.792782) UV(0.455316, 0.592588)
V 185: Pos(1.902122, 0.727533, 0.214141) Norm(-0.596304, 0.126185, 0.79278) UV(0.455316, 0.812682)
V 186: Pos(1.902122, 0.727533, 0.214141) Norm(-0.596304, 0.126185, 0.79278) UV(0.036474, 0.837324)
V 187: Pos(1.902122, 0.727533, 0.277353) Norm(-0.5963, 0.126186, -0.792782) UV(0.036474, 0.616849)
V 188: Pos(1.902122, 0.727533, 0.297259) Norm(-0.348018, 0.073645, 0.934591) UV(0.794731, 0.230825)
V 189: Pos(1.913563, 0.745878, 0.297259) Norm(-0.219259, 0.280117, 0.934591) UV(0.820539, 0.159971)
V 190: Pos(1.910629, 0.749626, 0.293966) Norm(-0.557345, 0.712036, 0.42705) UV(0.83715, 0.160418)
V 191: Pos(1.897466, 0.728518, 0.293966) Norm(-0.884639, 0.187199, 0.427049) UV(0.807456, 0.241942)
V 192: Pos(1.934118, 0.752578, 0.297259) Norm(0.012094, 0.35552, 0.934591) UV(0.794731, 0.089116)
V 193: Pos(1.905151, 0.706126, 0.297259) Norm(-0.313937, -0.167288, 0.93459) UV(0.729381, 0.268526)
V 194: Pos(1.92123, 0.691674, 0.297259) Norm(-0.132961, -0.329945, 0.934589) UV(0.655069, 0.255433)
V 195: Pos(1.942838, 0.690939, 0.297259) Norm(0.110232, -0.338218, 0.934589) UV(0.606564, 0.197672)
V 196: Pos(1.959863, 0.704265, 0.297259) Norm(0.301846, -0.188236, 0.934589) UV(0.606565, 0.12227)
V 197: Pos(1.964339, 0.725417, 0.297259) Norm(0.352223, 0.049827, 0.934589) UV(0.655069, 0.064509)
V 198: Pos(1.954171, 0.744497, 0.297259) Norm(0.23779, 0.264574, 0.934589) UV(0.729381, 0.051416)
V 199: Pos(1.964339, 0.725417, 0.277353) Norm(0.603497, 0.085372, -0.792782) UV(0.218556, 0.396011)
V 200: Pos(1.954171, 0.744497, 0.277353) Norm(0.40743, 0.453321, -0.792781) UV(0.144243, 0.382909)
V 201: Pos(1.957353, 0.748037, 0.277353) Norm(0.514956, 0.572959, -0.637603) UV(0.141358, 0.366552)
V 202: Pos(1.969051, 0.726083, 0.277353) Norm(0.76277, 0.107906, -0.637604) UV(0.226861, 0.381627)
V 203: Pos(1.959863, 0.704265, 0.200236) Norm(1e-06, -0.0, -1.0) UV(0.544734, 0.42988)
V 204: Pos(1.964339, 0.725417, 0.200236) Norm(1e-06, -0.0, -1.0) UV(0.496229, 0.372082)
V 205: Pos(1.969051, 0.726083, 0.200236) Norm(0.762771, 0.107903, -0.637603) UV(0.504535, 0.357698)
V 206: Pos(1.963901, 0.701747, 0.200236) Norm(0.653676, -0.40764, -0.637603) UV(0.560343, 0.4242)
V 207: Pos(1.90095, 0.703888, 0.293966) Norm(-0.798003, -0.425231, 0.427047) UV(0.732266, 0.28532)
V 208: Pos(1.954171, 0.744497, 0.214141) Norm(0.40743, 0.453321, 0.792781) UV(0.668112, 0.57608)
V 209: Pos(1.964339, 0.725417, 0.214141) Norm(0.603497, 0.085372, 0.792782) UV(0.742425, 0.562987)
V 210: Pos(1.969051, 0.726083, 0.214141) Norm(0.76277, 0.107904, 0.637604) UV(0.750731, 0.577362)
V 211: Pos(1.957353, 0.748037, 0.214141) Norm(0.514956, 0.572959, 0.637604) UV(0.665228, 0.592427)
V 212: Pos(1.954171, 0.744497, 0.200236) Norm(0.0, 0.0, -1.0) UV(0.421917, 0.35898)
V 213: Pos(1.957353, 0.748037, 0.200236) Norm(0.514957, 0.572959, -0.637603) UV(0.419032, 0.342623)
V 214: Pos(1.905151, 0.706126, 0.277353) Norm(-0.537905, -0.286631, -0.79278) UV(0.144243, 0.60016)
V 215: Pos(1.92123, 0.691674, 0.277353) Norm(-0.227816, -0.56533, -0.792781) UV(0.218556, 0.587058)
V 216: Pos(1.919451, 0.68726, 0.277353) Norm(-0.287939, -0.71453, -0.637603) UV(0.226861, 0.601442)
V 217: Pos(1.90095, 0.703888, 0.277353) Norm(-0.679865, -0.362279, -0.637603) UV(0.141358, 0.616517)
V 218: Pos(1.919451, 0.68726, 0.293966) Norm(-0.337972, -0.838693, 0.427047) UV(0.646763, 0.270255)
V 219: Pos(1.934118, 0.752578, 0.200236) Norm(1e-06, 1e-06, -1.0) UV(0.356567, 0.396705)
V 220: Pos(1.93428, 0.757334, 0.200236) Norm(0.02619, 0.76992, -0.637603) UV(0.343842, 0.386029)
V 221: Pos(1.913563, 0.745878, 0.200236) Norm(2e-06, 1e-06, -1.0) UV(0.330759, 0.467606)
V 222: Pos(1.942838, 0.690939, 0.200236) Norm(0.0, -0.0, -1.0) UV(0.544734, 0.505331)
V 223: Pos(1.92123, 0.691674, 0.200236) Norm(0.0, 0.0, -1.0) UV(0.496229, 0.563129)
V 224: Pos(1.905151, 0.706126, 0.200236) Norm(-1e-06, 0.0, -1.0) UV(0.421917, 0.576231)
V 225: Pos(1.902122, 0.727533, 0.200236) Norm(-0.0, 0.0, -1.0) UV(0.356567, 0.538506)
V 226: Pos(1.92123, 0.691674, 0.214141) Norm(-0.227815, -0.56533, 0.792781) UV(0.742425, 0.372063)
V 227: Pos(1.919451, 0.68726, 0.214141) Norm(-0.287939, -0.714529, 0.637605) UV(0.750731, 0.357688)
V 228: Pos(1.944313, 0.686414, 0.293966) Norm(0.2802, -0.85972, 0.427047) UV(0.590955, 0.203796)
V 229: Pos(1.934118, 0.752578, 0.277353) Norm(0.02072, 0.609155, -0.792781) UV(0.078894, 0.420634)
V 230: Pos(1.93428, 0.757334, 0.277353) Norm(0.026189, 0.769919, -0.637603) UV(0.066169, 0.409958)
V 231: Pos(1.910629, 0.749626, 0.200236) Norm(-0.474832, 0.606627, -0.637604) UV(0.314148, 0.467606)
V 232: Pos(1.963901, 0.701747, 0.293966) Norm(0.767264, -0.478475, 0.427046) UV(0.590955, 0.117041)
V 233: Pos(1.934118, 0.752578, 0.214141) Norm(0.02072, 0.609155, 0.792781) UV(0.602763, 0.538379)
V 234: Pos(1.93428, 0.757334, 0.214141) Norm(0.026188, 0.76992, 0.637603) UV(0.590038, 0.549049)
V 235: Pos(1.942838, 0.690939, 0.277353) Norm(0.188873, -0.579505, -0.79278) UV(0.26706, 0.52926)
V 236: Pos(1.944313, 0.686414, 0.277353) Norm(0.238719, -0.732445, -0.637603) UV(0.282669, 0.53494)
V 237: Pos(1.969051, 0.726083, 0.293966) Norm(0.895316, 0.126655, 0.427045) UV(0.646763, 0.050582)
V 238: Pos(1.957353, 0.748037, 0.277353) Norm(0.514956, 0.572959, -0.637603) UV(0.522723, 0.745674)
V 239: Pos(1.93428, 0.757334, 0.277353) Norm(0.026189, 0.769919, -0.637603) UV(0.512275, 0.812485)
V 240: Pos(1.93428, 0.757334, 0.293966) Norm(0.030741, 0.903706, 0.427049) UV(0.455316, 0.812425)
V 241: Pos(1.957353, 0.748037, 0.293966) Norm(0.604439, 0.672522, 0.427046) UV(0.465765, 0.745615)
V 242: Pos(1.90095, 0.703888, 0.214141) Norm(-0.679865, -0.362278, 0.637603) UV(0.937762, 0.676785)
V 243: Pos(1.897466, 0.728518, 0.214141) Norm(-0.753676, 0.159485, 0.637603) UV(0.939834, 0.75518)
V 244: Pos(1.897466, 0.728518, 0.200236) Norm(-0.753675, 0.159486, -0.637603) UV(0.891422, 0.754857)
V 245: Pos(1.90095, 0.703888, 0.200236) Norm(-0.679866, -0.362278, -0.637602) UV(0.88935, 0.676463)
V 246: Pos(1.910629, 0.749626, 0.277353) Norm(-0.474833, 0.606626, -0.637604) UV(0.806539, 0.425916)
V 247: Pos(1.897466, 0.728518, 0.277353) Norm(-0.753674, 0.159486, -0.637604) UV(0.807646, 0.342623)
V 248: Pos(1.897466, 0.728518, 0.293966) Norm(-0.884639, 0.187199, 0.427049) UV(0.865589, 0.342759)
V 249: Pos(1.910629, 0.749626, 0.293966) Norm(-0.557345, 0.712036, 0.42705) UV(0.864482, 0.426052)
V 250: Pos(1.897466, 0.728518, 0.277353) Norm(-0.753674, 0.159486, -0.637604) UV(0.238201, 0.778947)
V 251: Pos(1.90095, 0.703888, 0.277353) Norm(-0.679865, -0.362279, -0.637603) UV(0.236128, 0.700553)
V 252: Pos(1.90095, 0.703888, 0.293966) Norm(-0.798003, -0.425231, 0.427047) UV(0.293971, 0.700938)
V 253: Pos(1.897466, 0.728518, 0.293966) Norm(-0.884639, 0.187199, 0.427049) UV(0.296043, 0.779333)
V 254: Pos(1.919451, 0.68726, 0.277353) Norm(-0.287939, -0.71453, -0.637603) UV(0.238201, 0.616517)
V 255: Pos(1.919451, 0.68726, 0.293966) Norm(-0.337972, -0.838693, 0.427047) UV(0.296043, 0.616902)
V 256: Pos(1.919451, 0.68726, 0.277353) Norm(-0.287939, -0.71453, -0.637603) UV(0.83715, 0.194467)
V 257: Pos(1.944313, 0.686414, 0.277353) Norm(0.238719, -0.732445, -0.637603) UV(0.837672, 0.122003)
V 258: Pos(1.944313, 0.686414, 0.293966) Norm(0.2802, -0.85972, 0.427047) UV(0.895647, 0.121766)
V 259: Pos(1.919451, 0.68726, 0.293966) Norm(-0.337972, -0.838693, 0.427047) UV(0.895125, 0.194231)
V 260: Pos(1.963901, 0.701747, 0.277353) Norm(0.653675, -0.407639, -0.637605) UV(0.83715, 0.035753)
V 261: Pos(1.963901, 0.701747, 0.293966) Norm(0.767264, -0.478475, 0.427046) UV(0.895125, 0.035517)
V 262: Pos(1.963901, 0.701747, 0.277353) Norm(0.653675, -0.407639, -0.637605) UV(0.512275, 0.592648)
V 263: Pos(1.969051, 0.726083, 0.277353) Norm(0.76277, 0.107906, -0.637604) UV(0.522723, 0.658854)
V 264: Pos(1.969051, 0.726083, 0.293966) Norm(0.895316, 0.126655, 0.427045) UV(0.465765, 0.658794)
V 265: Pos(1.963901, 0.701747, 0.293966) Norm(0.767264, -0.478475, 0.427046) UV(0.455316, 0.592588)
V 266: Pos(1.93428, 0.757334, 0.277353) Norm(0.026189, 0.769919, -0.637603) UV(0.807646, 0.505471)
V 267: Pos(1.93428, 0.757334, 0.293966) Norm(0.030741, 0.903706, 0.427049) UV(0.865589, 0.505607)
V 268: Pos(1.919451, 0.68726, 0.214141) Norm(-0.287939, -0.714529, 0.637605) UV(0.939834, 0.592749)
V 269: Pos(1.919451, 0.68726, 0.200236) Norm(-0.287938, -0.71453, -0.637604) UV(0.891422, 0.592427)
V 270: Pos(1.944313, 0.686414, 0.214141) Norm(0.238718, -0.732445, 0.637603) UV(0.285173, 0.865582)
V 271: Pos(1.919451, 0.68726, 0.214141) Norm(-0.287939, -0.714529, 0.637605) UV(0.284651, 0.938046)
V 272: Pos(1.919451, 0.68726, 0.200236) Norm(-0.287938, -0.71453, -0.637604) UV(0.236128, 0.938244)
V 273: Pos(1.944313, 0.686414, 0.200236) Norm(0.238718, -0.732445, -0.637603) UV(0.23665, 0.86578)
V 274: Pos(1.963901, 0.701747, 0.214141) Norm(0.653674, -0.407641, 0.637604) UV(0.284651, 0.779332)
V 275: Pos(1.963901, 0.701747, 0.200236) Norm(0.653676, -0.40764, -0.637603) UV(0.236128, 0.779531)
V 276: Pos(1.969051, 0.726083, 0.214141) Norm(0.76277, 0.107904, 0.637604) UV(0.188456, 0.682723)
V 277: Pos(1.963901, 0.701747, 0.214141) Norm(0.653674, -0.407641, 0.637604) UV(0.178008, 0.616517)
V 278: Pos(1.963901, 0.701747, 0.200236) Norm(0.653676, -0.40764, -0.637603) UV(0.22568, 0.616567)
V 279: Pos(1.969051, 0.726083, 0.200236) Norm(0.762771, 0.107903, -0.637603) UV(0.236128, 0.682773)
V 280: Pos(1.910629, 0.749626, 0.214141) Norm(-0.474834, 0.606625, 0.637604) UV(0.937846, 0.838586)
V 281: Pos(1.93428, 0.757334, 0.214141) Norm(0.026188, 0.76992, 0.637603) UV(0.938953, 0.918141)
V 282: Pos(1.93428, 0.757334, 0.200236) Norm(0.02619, 0.76992, -0.637603) UV(0.890457, 0.918027)
V 283: Pos(1.910629, 0.749626, 0.200236) Norm(-0.474832, 0.606627, -0.637604) UV(0.88935, 0.838472)
V 284: Pos(1.957353, 0.748037, 0.214141) Norm(0.514956, 0.572959, 0.637604) UV(0.188456, 0.769543)
V 285: Pos(1.957353, 0.748037, 0.200236) Norm(0.514957, 0.572959, -0.637603) UV(0.236128, 0.769594)
V 286: Pos(1.93428, 0.757334, 0.214141) Norm(0.026188, 0.76992, 0.637603) UV(0.178008, 0.836354)
V 287: Pos(1.93428, 0.757334, 0.200236) Norm(0.02619, 0.76992, -0.637603) UV(0.22568, 0.836404)
V 288: Pos(1.897466, 0.728518, 0.214141) Norm(-0.753676, 0.159485, 0.637603) UV(0.938953, 0.755293)
V 289: Pos(1.897466, 0.728518, 0.200236) Norm(-0.753675, 0.159486, -0.637603) UV(0.890457, 0.75518)
V 290: Pos(1.944313, 0.686414, 0.200236) Norm(0.238718, -0.732445, -0.637603) UV(0.560343, 0.511012)
V 291: Pos(1.902122, 0.727533, 0.277353) Norm(-0.5963, 0.126186, -0.792782) UV(0.078894, 0.562435)
V 292: Pos(1.897466, 0.728518, 0.277353) Norm(-0.753674, 0.159486, -0.637604) UV(0.066169, 0.573111)
V 293: Pos(1.919451, 0.68726, 0.200236) Norm(-0.287938, -0.71453, -0.637604) UV(0.504535, 0.577513)
V 294: Pos(1.959863, 0.704265, 0.214141) Norm(0.517182, -0.322522, 0.792781) UV(0.790929, 0.505226)
V 295: Pos(1.963901, 0.701747, 0.214141) Norm(0.653674, -0.407641, 0.637604) UV(0.806539, 0.510903)
V 296: Pos(1.90095, 0.703888, 0.200236) Norm(-0.679866, -0.362278, -0.637602) UV(0.419032, 0.592588)
V 297: Pos(1.959863, 0.704265, 0.277353) Norm(0.517182, -0.322522, -0.792781) UV(0.26706, 0.453809)
V 298: Pos(1.963901, 0.701747, 0.277353) Norm(0.653675, -0.407639, -0.637605) UV(0.282669, 0.448129)
V 299: Pos(1.913563, 0.745878, 0.214141) Norm(-0.375685, 0.479958, 0.792781) UV(0.576954, 0.467525)
V 300: Pos(1.910629, 0.749626, 0.214141) Norm(-0.474834, 0.606625, 0.637604) UV(0.560343, 0.467525)
V 301: Pos(1.897466, 0.728518, 0.200236) Norm(-0.753675, 0.159486, -0.637603) UV(0.343842, 0.549182)
V 302: Pos(1.913563, 0.745878, 0.277353) Norm(-0.375683, 0.479959, -0.792781) UV(0.053085, 0.491535)
V 303: Pos(1.910629, 0.749626, 0.277353) Norm(-0.474833, 0.606626, -0.637604) UV(0.036474, 0.491535)
V 304: Pos(1.942838, 0.690939, 0.214141) Norm(0.188872, -0.579505, 0.792781) UV(0.790929, 0.429824)
V 305: Pos(1.944313, 0.686414, 0.214141) Norm(0.238718, -0.732445, 0.637603) UV(0.806539, 0.424147)
V 306: Pos(1.93428, 0.757334, 0.293966) Norm(0.030741, 0.903706, 0.427049) UV(0.807456, 0.078895)
V 307: Pos(1.957353, 0.748037, 0.293966) Norm(0.604439, 0.672522, 0.427046) UV(0.732266, 0.035517)
===Triangles (Indices): 276
Tri: 0 1 2
Tri: 0 2 3
Tri: 3 2 4
Tri: 3 4 5
Tri: 6 7 8
Tri: 6 8 9
Tri: 9 8 10
Tri: 9 10 11
Tri: 12 13 14
Tri: 12 14 15
Tri: 9 11 16
Tri: 9 16 17
Tri: 15 14 18
Tri: 15 18 19
Tri: 20 21 22
Tri: 20 22 23
Tri: 12 15 24
Tri: 12 24 25
Tri: 26 27 28
Tri: 26 28 29
Tri: 30 31 32
Tri: 30 32 33
Tri: 34 3 5
Tri: 34 5 35
Tri: 9 17 36
Tri: 9 36 6
Tri: 37 38 27
Tri: 37 27 26
Tri: 20 23 39
Tri: 20 39 40
Tri: 0 3 34
Tri: 0 34 41
Tri: 42 43 44
Tri: 42 44 45
Tri: 8 46 47
Tri: 8 47 10
Tri: 13 48 49
Tri: 13 49 14
Tri: 50 51 52
Tri: 50 52 53
Tri: 21 54 31
Tri: 21 31 22
Tri: 1 55 56
Tri: 1 56 2
Tri: 57 58 43
Tri: 57 43 42
Tri: 32 59 60
Tri: 32 60 33
Tri: 61 62 63
Tri: 61 63 64
Tri: 43 58 61
Tri: 43 61 64
Tri: 65 26 29
Tri: 65 29 66
Tri: 44 43 64
Tri: 44 64 67
Tri: 17 16 68
Tri: 17 68 69
Tri: 47 46 70
Tri: 47 70 71
Tri: 72 73 74
Tri: 72 74 75
Tri: 51 76 77
Tri: 51 77 78
Tri: 79 72 75
Tri: 79 75 80
Tri: 52 51 78
Tri: 52 78 81
Tri: 39 82 83
Tri: 39 83 84
Tri: 31 54 85
Tri: 31 85 32
Tri: 40 39 84
Tri: 40 84 86
Tri: 87 88 89
Tri: 87 89 90
Tri: 91 92 93
Tri: 91 93 94
Tri: 95 87 96
Tri: 95 96 97
Tri: 78 98 99
Tri: 78 99 81
Tri: 71 100 101
Tri: 71 101 102
Tri: 70 103 100
Tri: 70 100 71
Tri: 104 105 106
Tri: 104 106 107
Tri: 80 75 108
Tri: 80 108 109
Tri: 84 83 110
Tri: 84 110 111
Tri: 112 113 92
Tri: 112 92 91
Tri: 29 28 114
Tri: 29 114 115
Tri: 68 116 117
Tri: 68 117 118
Tri: 69 68 118
Tri: 69 118 119
Tri: 75 74 120
Tri: 75 120 108
Tri: 121 122 123
Tri: 121 123 124
Tri: 121 124 125
Tri: 121 125 126
Tri: 121 126 127
Tri: 100 103 128
Tri: 100 128 129
Tri: 105 130 131
Tri: 105 131 132
Tri: 96 87 90
Tri: 96 90 133
Tri: 101 100 129
Tri: 101 129 134
Tri: 106 105 132
Tri: 106 132 135
Tri: 60 59 136
Tri: 60 136 137
Tri: 138 139 140
Tri: 138 140 141
Tri: 138 141 142
Tri: 138 142 143
Tri: 138 143 144
Tri: 145 146 147
Tri: 145 147 148
Tri: 119 118 149
Tri: 119 149 150
Tri: 151 91 94
Tri: 151 94 152
Tri: 111 110 153
Tri: 111 153 154
Tri: 146 155 156
Tri: 146 156 147
Tri: 118 117 157
Tri: 118 157 149
Tri: 158 159 160
Tri: 158 160 161
Tri: 162 163 164
Tri: 162 164 165
Tri: 165 164 166
Tri: 165 166 167
Tri: 167 166 168
Tri: 167 168 169
Tri: 170 171 172
Tri: 170 172 173
Tri: 173 172 174
Tri: 173 174 175
Tri: 176 177 178
Tri: 176 178 179
Tri: 180 181 182
Tri: 180 182 183
Tri: 179 178 184
Tri: 179 184 185
Tri: 186 187 159
Tri: 186 159 158
Tri: 188 189 190
Tri: 188 190 191
Tri: 192 189 188
Tri: 192 188 193
Tri: 192 193 194
Tri: 192 194 195
Tri: 192 195 196
Tri: 192 196 197
Tri: 192 197 198
Tri: 199 200 201
Tri: 199 201 202
Tri: 203 204 205
Tri: 203 205 206
Tri: 193 188 191
Tri: 193 191 207
Tri: 208 209 210
Tri: 208 210 211
Tri: 204 212 213
Tri: 204 213 205
Tri: 214 215 216
Tri: 214 216 217
Tri: 194 193 207
Tri: 194 207 218
Tri: 212 219 220
Tri: 212 220 213
Tri: 221 219 212
Tri: 221 212 204
Tri: 221 204 203
Tri: 221 203 222
Tri: 221 222 223
Tri: 221 223 224
Tri: 221 224 225
Tri: 226 180 183
Tri: 226 183 227
Tri: 195 194 218
Tri: 195 218 228
Tri: 200 229 230
Tri: 200 230 201
Tri: 219 221 231
Tri: 219 231 220
Tri: 196 195 228
Tri: 196 228 232
Tri: 233 208 211
Tri: 233 211 234
Tri: 215 235 236
Tri: 215 236 216
Tri: 197 196 232
Tri: 197 232 237
Tri: 238 239 240
Tri: 238 240 241
Tri: 242 243 244
Tri: 242 244 245
Tri: 246 247 248
Tri: 246 248 249
Tri: 250 251 252
Tri: 250 252 253
Tri: 251 254 255
Tri: 251 255 252
Tri: 256 257 258
Tri: 256 258 259
Tri: 257 260 261
Tri: 257 261 258
Tri: 262 263 264
Tri: 262 264 265
Tri: 266 246 249
Tri: 266 249 267
Tri: 263 238 241
Tri: 263 241 264
Tri: 268 242 245
Tri: 268 245 269
Tri: 270 271 272
Tri: 270 272 273
Tri: 274 270 273
Tri: 274 273 275
Tri: 276 277 278
Tri: 276 278 279
Tri: 280 281 282
Tri: 280 282 283
Tri: 284 276 279
Tri: 284 279 285
Tri: 286 284 285
Tri: 286 285 287
Tri: 288 280 283
Tri: 288 283 289
Tri: 222 203 206
Tri: 222 206 290
Tri: 291 214 217
Tri: 291 217 292
Tri: 223 222 290
Tri: 223 290 293
Tri: 209 294 295
Tri: 209 295 210
Tri: 224 223 293
Tri: 224 293 296
Tri: 297 199 202
Tri: 297 202 298
Tri: 181 299 300
Tri: 181 300 182
Tri: 225 224 296
Tri: 225 296 301
Tri: 302 291 292
Tri: 302 292 303
Tri: 221 225 301
Tri: 221 301 231
Tri: 294 304 305
Tri: 294 305 295
Tri: 299 233 234
Tri: 299 234 300
Tri: 189 192 306
Tri: 189 306 190
Tri: 235 297 298
Tri: 235 298 236
Tri: 229 302 303
Tri: 229 303 230
Tri: 192 198 307
Tri: 192 307 306
Tri: 198 197 237
Tri: 198 237 307
Tri: 304 226 227
Tri: 304 227 305

21
resources/barn/pin1.txt Normal file
View File

@ -0,0 +1,21 @@
===Vertices (Split by UV/Normal): 10
V 0: Pos(2.170956, 0.587034, 0.365303) Norm(-0.995813, -0.029843, 0.0864) UV(0.015946, 0.257699)
V 1: Pos(2.170184, 0.584088, 0.389394) Norm(-0.99931, -0.015281, -0.033867) UV(0.016101, 0.023489)
V 2: Pos(2.168909, 0.649793, 0.397387) Norm(-0.99931, -0.015281, -0.033867) UV(0.65722, 0.023489)
V 3: Pos(2.16968, 0.652739, 0.373296) Norm(-0.995813, -0.029843, 0.0864) UV(0.657065, 0.257699)
V 4: Pos(2.169977, 0.592927, 0.316697) Norm(-0.99906, -0.037007, 0.022573) UV(0.015812, 0.731623)
V 5: Pos(2.165724, 0.589887, 0.341009) Norm(-0.999626, -0.02147, 0.016955) UV(0.016215, 0.497147)
V 6: Pos(2.164448, 0.655593, 0.349002) Norm(-0.999626, -0.02147, 0.016955) UV(0.657334, 0.497147)
V 7: Pos(2.168701, 0.658633, 0.32469) Norm(-0.99906, -0.037007, 0.022573) UV(0.656931, 0.731623)
V 8: Pos(2.166257, 0.595846, 0.292114) Norm(-0.973478, -0.074359, 0.216359) UV(0.015973, 0.973057)
V 9: Pos(2.161023, 0.66149, 0.299973) Norm(-0.973478, -0.074359, 0.216359) UV(0.657373, 0.976511)
===Triangles (Indices): 8
Tri: 0 1 2
Tri: 0 2 3
Tri: 4 5 6
Tri: 4 6 7
Tri: 5 0 3
Tri: 5 3 6
Tri: 8 4 7
Tri: 8 7 9

21
resources/barn/pin2.txt Normal file
View File

@ -0,0 +1,21 @@
===Vertices (Split by UV/Normal): 10
V 0: Pos(2.169542, 0.215532, 0.473265) Norm(-0.991319, 0.000923, 0.131472) UV(0.015946, 0.257699)
V 1: Pos(2.169844, 0.213758, 0.502617) Norm(-0.999907, 0.008286, 0.010808) UV(0.016101, 0.023489)
V 2: Pos(2.170559, 0.293782, 0.507448) Norm(-0.999907, 0.008286, 0.010808) UV(0.65722, 0.023489)
V 3: Pos(2.170257, 0.295557, 0.478097) Norm(-0.99132, 0.000923, 0.131472) UV(0.657065, 0.257699)
V 4: Pos(2.165864, 0.219133, 0.414181) Norm(-0.997607, -0.009991, 0.068407) UV(0.015812, 0.731623)
V 5: Pos(2.161964, 0.217368, 0.443992) Norm(-0.99807, 0.005185, 0.061876) UV(0.016215, 0.497147)
V 6: Pos(2.16268, 0.297392, 0.448823) Norm(-0.99807, 0.005185, 0.061877) UV(0.657334, 0.497147)
V 7: Pos(2.166579, 0.299157, 0.419013) Norm(-0.997607, -0.009991, 0.068407) UV(0.656931, 0.731623)
V 8: Pos(2.160102, 0.220978, 0.384476) Norm(-0.964166, -0.036223, 0.262816) UV(0.015973, 0.973057)
V 9: Pos(2.15602, 0.301042, 0.389359) Norm(-0.964166, -0.036223, 0.262816) UV(0.657373, 0.976511)
===Triangles (Indices): 8
Tri: 0 1 2
Tri: 0 2 3
Tri: 4 5 6
Tri: 4 6 7
Tri: 5 0 3
Tri: 5 3 6
Tri: 8 4 7
Tri: 8 7 9

21
resources/barn/pin3.txt Normal file
View File

@ -0,0 +1,21 @@
===Vertices (Split by UV/Normal): 10
V 0: Pos(2.16925, 0.237091, 0.341346) Norm(-0.995813, -0.002278, 0.09138) UV(0.015946, 0.257699)
V 1: Pos(2.168413, 0.241963, 0.367235) Norm(-0.99931, -0.024824, -0.027645) UV(0.016101, 0.023489)
V 2: Pos(2.167028, 0.312561, 0.353905) Norm(-0.99931, -0.024824, -0.027645) UV(0.65722, 0.023489)
V 3: Pos(2.167865, 0.307689, 0.328015) Norm(-0.995813, -0.002278, 0.09138) UV(0.657065, 0.257699)
V 4: Pos(2.168187, 0.22721, 0.289126) Norm(-0.99906, -0.028434, 0.03272) UV(0.015812, 0.731623)
V 5: Pos(2.163571, 0.232057, 0.315276) Norm(-0.999626, -0.015326, 0.02266) UV(0.016215, 0.497147)
V 6: Pos(2.162186, 0.302655, 0.301945) Norm(-0.999626, -0.015326, 0.022659) UV(0.657334, 0.497147)
V 7: Pos(2.166803, 0.297808, 0.275796) Norm(-0.99906, -0.028434, 0.032721) UV(0.656931, 0.731623)
V 8: Pos(2.16415, 0.222148, 0.262737) Norm(-0.973479, -0.005347, 0.228716) UV(0.015973, 0.973057)
V 9: Pos(2.158468, 0.292639, 0.249288) Norm(-0.973479, -0.005347, 0.228716) UV(0.657373, 0.976511)
===Triangles (Indices): 8
Tri: 0 1 2
Tri: 0 2 3
Tri: 4 5 6
Tri: 4 6 7
Tri: 5 0 3
Tri: 5 3 6
Tri: 8 4 7
Tri: 8 7 9

21
resources/barn/pin4.txt Normal file
View File

@ -0,0 +1,21 @@
===Vertices (Split by UV/Normal): 10
V 0: Pos(2.015285, 0.219518, 0.200815) Norm(0.082364, -0.039648, 0.995813) UV(0.015946, 0.257699)
V 1: Pos(2.040888, 0.213314, 0.201652) Norm(-0.035405, -0.011257, 0.99931) UV(0.016101, 0.023489)
V 2: Pos(2.057765, 0.283149, 0.203037) Norm(-0.035405, -0.011257, 0.99931) UV(0.65722, 0.023489)
V 3: Pos(2.032162, 0.289353, 0.2022) Norm(0.082364, -0.039648, 0.995813) UV(0.657065, 0.257699)
V 4: Pos(1.963621, 0.231982, 0.201878) Norm(0.018136, -0.039371, 0.99906) UV(0.015812, 0.731623)
V 5: Pos(1.989451, 0.225649, 0.206494) Norm(0.014356, -0.023288, 0.999626) UV(0.016215, 0.497147)
V 6: Pos(2.006328, 0.295484, 0.207879) Norm(0.014355, -0.023288, 0.999626) UV(0.657334, 0.497147)
V 7: Pos(1.980498, 0.301817, 0.203262) Norm(0.018136, -0.039371, 0.99906) UV(0.656931, 0.731623)
V 8: Pos(1.937485, 0.238219, 0.205915) Norm(0.20629, -0.098914, 0.973479) UV(0.015973, 0.973057)
V 9: Pos(1.954209, 0.308005, 0.211597) Norm(0.20629, -0.098914, 0.973479) UV(0.657373, 0.976511)
===Triangles (Indices): 8
Tri: 0 1 2
Tri: 0 2 3
Tri: 4 5 6
Tri: 4 6 7
Tri: 5 0 3
Tri: 5 3 6
Tri: 8 4 7
Tri: 8 7 9

103
resources/barn/radio.txt Normal file
View File

@ -0,0 +1,103 @@
===Vertices (Split by UV/Normal): 60
V 0: Pos(2.04882, 0.593961, 0.247254) Norm(0.15799, -0.805469, -0.571191) UV(0.953767, 0.893055)
V 1: Pos(2.048557, 0.595304, 0.329654) Norm(0.15631, -0.796892, 0.58355) UV(0.960925, 0.457499)
V 2: Pos(2.047151, 0.596248, 0.329654) Norm(-0.796943, -0.156316, 0.583478) UV(0.968094, 0.457499)
V 3: Pos(2.045809, 0.595985, 0.247254) Norm(-0.805479, -0.157991, -0.571177) UV(0.969128, 0.893055)
V 4: Pos(2.045809, 0.595985, 0.247254) Norm(-0.805479, -0.157991, -0.571177) UV(0.953767, 0.457499)
V 5: Pos(2.047151, 0.596248, 0.329654) Norm(-0.796943, -0.156316, 0.583478) UV(0.960925, 0.021942)
V 6: Pos(2.048096, 0.597654, 0.329654) Norm(-0.156311, 0.796894, 0.583547) UV(0.968094, 0.021942)
V 7: Pos(2.047833, 0.598996, 0.247254) Norm(-0.157991, 0.805467, -0.571193) UV(0.969128, 0.457499)
V 8: Pos(2.047833, 0.598996, 0.247254) Norm(-0.157991, 0.805467, -0.571193) UV(0.228451, 0.978058)
V 9: Pos(2.048096, 0.597654, 0.329654) Norm(-0.156311, 0.796894, 0.583547) UV(0.235609, 0.542501)
V 10: Pos(2.049502, 0.596709, 0.329654) Norm(0.796941, 0.156322, 0.583479) UV(0.242779, 0.542501)
V 11: Pos(2.050844, 0.596972, 0.247254) Norm(0.805478, 0.157997, -0.571176) UV(0.243812, 0.978058)
V 12: Pos(2.048557, 0.595304, 0.329654) Norm(0.15631, -0.796892, 0.58355) UV(0.248138, 0.542501)
V 13: Pos(2.04882, 0.593961, 0.247254) Norm(0.15799, -0.805469, -0.571191) UV(0.255297, 0.978058)
V 14: Pos(2.045809, 0.595985, 0.247254) Norm(-0.805479, -0.157991, -0.571177) UV(0.274477, 0.542501)
V 15: Pos(2.047833, 0.598996, 0.247254) Norm(-0.157991, 0.805467, -0.571193) UV(0.274477, 0.561681)
V 16: Pos(2.050844, 0.596972, 0.247254) Norm(0.805478, 0.157997, -0.571176) UV(0.255297, 0.561681)
V 17: Pos(2.04882, 0.593961, 0.247254) Norm(0.15799, -0.805469, -0.571191) UV(0.255297, 0.542501)
V 18: Pos(2.048096, 0.597654, 0.329654) Norm(-0.156311, 0.796894, 0.583547) UV(0.281463, 0.54487)
V 19: Pos(2.047151, 0.596248, 0.329654) Norm(-0.796943, -0.156316, 0.583478) UV(0.281463, 0.55298)
V 20: Pos(2.048557, 0.595304, 0.329654) Norm(0.15631, -0.796892, 0.58355) UV(0.274477, 0.550611)
V 21: Pos(2.049502, 0.596709, 0.329654) Norm(0.796941, 0.156322, 0.583479) UV(0.274477, 0.542501)
V 22: Pos(2.059372, 0.591441, 0.201308) Norm(0.832044, -0.468435, -0.297105) UV(0.540349, 0.551801)
V 23: Pos(2.059372, 0.591441, 0.244588) Norm(0.832044, -0.468435, 0.297105) UV(0.540349, 0.390033)
V 24: Pos(2.022467, 0.578506, 0.244588) Norm(-0.357515, -0.885388, 0.297105) UV(0.747057, 0.390033)
V 25: Pos(2.022467, 0.578506, 0.201308) Norm(-0.357515, -0.885388, -0.297105) UV(0.747057, 0.551801)
V 26: Pos(2.027751, 0.681654, 0.19842) Norm(0.496495, 0.488863, -0.717291) UV(0.540349, 0.527237)
V 27: Pos(2.026796, 0.684379, 0.201308) Norm(0.357517, 0.885386, -0.297108) UV(0.525084, 0.542501)
V 28: Pos(2.026796, 0.684379, 0.244588) Norm(0.357517, 0.885386, 0.297108) UV(0.296309, 0.542501)
V 29: Pos(2.027751, 0.681654, 0.247476) Norm(0.496495, 0.488863, 0.717291) UV(0.281045, 0.527237)
V 30: Pos(2.058416, 0.594166, 0.247476) Norm(0.693054, -0.071917, 0.717289) UV(0.281045, 0.037206)
V 31: Pos(2.059372, 0.591441, 0.244588) Norm(0.832044, -0.468435, 0.297105) UV(0.29631, 0.021942)
V 32: Pos(2.059372, 0.591441, 0.201308) Norm(0.832044, -0.468435, -0.297105) UV(0.525084, 0.021942)
V 33: Pos(2.058416, 0.594166, 0.19842) Norm(0.693054, -0.071917, -0.71729) UV(0.540349, 0.037206)
V 34: Pos(2.027751, 0.681654, 0.247476) Norm(0.496495, 0.488863, 0.717291) UV(0.540349, 0.021942)
V 35: Pos(1.990847, 0.668718, 0.247476) Norm(-0.693054, 0.07191, 0.717291) UV(0.747057, 0.021942)
V 36: Pos(2.021512, 0.581231, 0.247476) Norm(-0.496494, -0.488866, 0.717289) UV(0.747057, 0.368446)
V 37: Pos(2.058416, 0.594166, 0.247476) Norm(0.693054, -0.071917, 0.717289) UV(0.540349, 0.368446)
V 38: Pos(2.021512, 0.581231, 0.19842) Norm(-0.496494, -0.488866, -0.717289) UV(0.281045, 0.527237)
V 39: Pos(2.022467, 0.578506, 0.201308) Norm(-0.357515, -0.885388, -0.297105) UV(0.265781, 0.542501)
V 40: Pos(2.022467, 0.578506, 0.244588) Norm(-0.357515, -0.885388, 0.297105) UV(0.037006, 0.542501)
V 41: Pos(2.021512, 0.581231, 0.247476) Norm(-0.496494, -0.488866, 0.717289) UV(0.021742, 0.527237)
V 42: Pos(1.990847, 0.668718, 0.247476) Norm(-0.693054, 0.07191, 0.717291) UV(0.021742, 0.037206)
V 43: Pos(1.989891, 0.671443, 0.244588) Norm(-0.832042, 0.468434, 0.297111) UV(0.037006, 0.021942)
V 44: Pos(1.989891, 0.671443, 0.201308) Norm(-0.832042, 0.468434, -0.297111) UV(0.265781, 0.021942)
V 45: Pos(1.990847, 0.668718, 0.19842) Norm(-0.693054, 0.07191, -0.71729) UV(0.281045, 0.037206)
V 46: Pos(1.989891, 0.671443, 0.201308) Norm(-0.832042, 0.468434, -0.297111) UV(0.021742, 0.78654)
V 47: Pos(1.989891, 0.671443, 0.244588) Norm(-0.832042, 0.468434, 0.297111) UV(0.021742, 0.557766)
V 48: Pos(2.026796, 0.684379, 0.244588) Norm(0.357517, 0.885386, 0.297108) UV(0.228451, 0.557766)
V 49: Pos(2.026796, 0.684379, 0.201308) Norm(0.357517, 0.885386, -0.297108) UV(0.228451, 0.78654)
V 50: Pos(2.027751, 0.681654, 0.19842) Norm(0.496495, 0.488863, -0.717291) UV(0.747058, 0.527237)
V 51: Pos(1.990847, 0.668718, 0.19842) Norm(-0.693054, 0.07191, -0.71729) UV(0.953767, 0.527237)
V 52: Pos(1.989891, 0.671443, 0.201308) Norm(-0.832042, 0.468434, -0.297111) UV(0.953767, 0.542501)
V 53: Pos(2.026796, 0.684379, 0.201308) Norm(0.357517, 0.885386, -0.297108) UV(0.747058, 0.542501)
V 54: Pos(1.990847, 0.668718, 0.247476) Norm(-0.693054, 0.07191, 0.717291) UV(0.021742, 0.542501)
V 55: Pos(2.027751, 0.681654, 0.247476) Norm(0.496495, 0.488863, 0.717291) UV(0.228451, 0.542501)
V 56: Pos(2.021512, 0.581231, 0.19842) Norm(-0.496494, -0.488866, -0.717289) UV(0.953767, 0.037206)
V 57: Pos(2.058416, 0.594166, 0.19842) Norm(0.693054, -0.071917, -0.71729) UV(0.747058, 0.037206)
V 58: Pos(2.059372, 0.591441, 0.201308) Norm(0.832044, -0.468435, -0.297105) UV(0.747058, 0.021942)
V 59: Pos(2.022467, 0.578506, 0.201308) Norm(-0.357515, -0.885388, -0.297105) UV(0.953767, 0.021942)
===Triangles (Indices): 40
Tri: 0 1 2
Tri: 0 2 3
Tri: 4 5 6
Tri: 4 6 7
Tri: 8 9 10
Tri: 8 10 11
Tri: 11 10 12
Tri: 11 12 13
Tri: 14 15 16
Tri: 14 16 17
Tri: 18 19 20
Tri: 18 20 21
Tri: 22 23 24
Tri: 22 24 25
Tri: 26 27 28
Tri: 26 28 29
Tri: 26 29 30
Tri: 26 30 31
Tri: 26 31 32
Tri: 26 32 33
Tri: 34 35 36
Tri: 34 36 37
Tri: 38 39 40
Tri: 38 40 41
Tri: 38 41 42
Tri: 38 42 43
Tri: 38 43 44
Tri: 38 44 45
Tri: 46 47 48
Tri: 46 48 49
Tri: 50 51 52
Tri: 50 52 53
Tri: 54 55 48
Tri: 54 48 47
Tri: 56 57 58
Tri: 56 58 59
Tri: 37 36 24
Tri: 37 24 23
Tri: 51 50 57
Tri: 51 57 56

223
resources/barn/table.txt Normal file
View File

@ -0,0 +1,223 @@
===Vertices (Split by UV/Normal): 120
V 0: Pos(1.857603, 0.794636, 0.177222) Norm(-0.904534, -0.301511, -0.301511) UV(0.628715, 0.045661)
V 1: Pos(1.857603, 0.794636, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.045661)
V 2: Pos(1.857603, 0.816721, 0.200019) Norm(-0.57735, 0.57735, 0.57735) UV(0.60656, 0.024198)
V 3: Pos(1.857603, 0.816721, 0.177222) Norm(-0.707107, 0.707107, 0.0) UV(0.628715, 0.024198)
V 4: Pos(1.857603, 0.816721, 0.177222) Norm(-0.707107, 0.707107, 0.0) UV(0.046149, 0.975802)
V 5: Pos(1.857603, 0.816721, 0.200019) Norm(-0.57735, 0.57735, 0.57735) UV(0.023994, 0.975802)
V 6: Pos(2.157339, 0.816721, 0.200019) Norm(0.57735, 0.57735, 0.57735) UV(0.023994, 0.684519)
V 7: Pos(2.157339, 0.816721, 0.177222) Norm(0.707107, 0.707107, 0.0) UV(0.046149, 0.684519)
V 8: Pos(2.157339, 0.159323, 0.177222) Norm(0.904534, 0.301511, -0.301511) UV(0.809229, 0.045661)
V 9: Pos(2.157339, 0.159323, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.045661)
V 10: Pos(2.157339, 0.137237, 0.200019) Norm(0.57735, -0.57735, 0.57735) UV(0.787075, 0.024198)
V 11: Pos(2.157339, 0.137237, 0.177222) Norm(0.707107, -0.707107, 0.0) UV(0.809229, 0.024198)
V 12: Pos(2.157339, 0.137237, 0.177222) Norm(0.707107, -0.707107, 0.0) UV(0.337432, 0.932876)
V 13: Pos(2.157339, 0.137237, 0.200019) Norm(0.57735, -0.57735, 0.57735) UV(0.315277, 0.932876)
V 14: Pos(1.857603, 0.137237, 0.200019) Norm(-0.57735, -0.57735, 0.57735) UV(0.315277, 0.641593)
V 15: Pos(1.857603, 0.137237, 0.177222) Norm(-0.707107, -0.707107, 0.0) UV(0.337432, 0.641593)
V 16: Pos(1.857603, 0.159323, 0.014266) Norm(-0.57735, 0.57735, -0.57735) UV(0.538718, 0.641593)
V 17: Pos(2.157339, 0.159323, 0.014266) Norm(0.57735, 0.57735, -0.57735) UV(0.538718, 0.932876)
V 18: Pos(2.157339, 0.137237, 0.014266) Norm(0.57735, -0.57735, -0.57735) UV(0.517255, 0.932876)
V 19: Pos(1.857603, 0.137237, 0.014266) Norm(-0.57735, -0.57735, -0.57735) UV(0.517255, 0.641593)
V 20: Pos(2.157339, 0.159323, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.045661)
V 21: Pos(1.857603, 0.159323, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.045661)
V 22: Pos(1.857603, 0.137237, 0.200019) Norm(-0.57735, -0.57735, 0.57735) UV(0.023994, 0.024198)
V 23: Pos(2.157339, 0.137237, 0.200019) Norm(0.57735, -0.57735, 0.57735) UV(0.315277, 0.024198)
V 24: Pos(2.157339, 0.137237, 0.014266) Norm(0.57735, -0.57735, -0.57735) UV(0.495792, 0.932876)
V 25: Pos(2.157339, 0.137237, 0.107142) Norm(0.707107, -0.707107, 0.0) UV(0.405535, 0.932876)
V 26: Pos(1.857603, 0.137237, 0.107142) Norm(-0.707107, -0.707107, 0.0) UV(0.405535, 0.641593)
V 27: Pos(1.857603, 0.137237, 0.014266) Norm(-0.57735, -0.57735, -0.57735) UV(0.495792, 0.641593)
V 28: Pos(2.157339, 0.159323, 0.014266) Norm(0.57735, 0.57735, -0.57735) UV(0.96759, 0.045661)
V 29: Pos(2.157339, 0.159323, 0.107142) Norm(0.707107, 0.707107, 0.0) UV(0.877332, 0.045661)
V 30: Pos(2.157339, 0.137237, 0.107142) Norm(0.707107, -0.707107, 0.0) UV(0.877332, 0.024198)
V 31: Pos(2.157339, 0.137237, 0.014266) Norm(0.57735, -0.57735, -0.57735) UV(0.96759, 0.024198)
V 32: Pos(1.857603, 0.816721, 0.014266) Norm(-0.57735, 0.57735, -0.57735) UV(0.204509, 0.975802)
V 33: Pos(1.857603, 0.816721, 0.107142) Norm(-0.707107, 0.707107, 0.0) UV(0.114252, 0.975802)
V 34: Pos(2.157339, 0.816721, 0.107142) Norm(0.707107, 0.707107, 0.0) UV(0.114252, 0.684519)
V 35: Pos(2.157339, 0.816721, 0.014266) Norm(0.57735, 0.57735, -0.57735) UV(0.204509, 0.684519)
V 36: Pos(1.857603, 0.794636, 0.014266) Norm(-0.57735, -0.57735, -0.57735) UV(0.787075, 0.045661)
V 37: Pos(1.857603, 0.794636, 0.107142) Norm(-0.707107, -0.707107, 0.0) UV(0.696818, 0.045661)
V 38: Pos(1.857603, 0.816721, 0.107142) Norm(-0.707107, 0.707107, 0.0) UV(0.696818, 0.024198)
V 39: Pos(1.857603, 0.816721, 0.014266) Norm(-0.57735, 0.57735, -0.57735) UV(0.787075, 0.024198)
V 40: Pos(2.157339, 0.64685, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.519439)
V 41: Pos(1.857603, 0.64685, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.519439)
V 42: Pos(1.857603, 0.476979, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.354358)
V 43: Pos(2.157339, 0.476979, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.354358)
V 44: Pos(2.157339, 0.64685, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.809229, 0.519439)
V 45: Pos(2.157339, 0.64685, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.519439)
V 46: Pos(2.157339, 0.476979, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.354358)
V 47: Pos(2.157339, 0.476979, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.809229, 0.354358)
V 48: Pos(1.857603, 0.307108, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.628715, 0.519439)
V 49: Pos(1.857603, 0.307108, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.519439)
V 50: Pos(1.857603, 0.476979, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.354358)
V 51: Pos(1.857603, 0.476979, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.628715, 0.354358)
V 52: Pos(2.157339, 0.731786, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.809229, 0.601979)
V 53: Pos(2.157339, 0.731786, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.601979)
V 54: Pos(2.157339, 0.731786, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.601979)
V 55: Pos(1.857603, 0.731786, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.601979)
V 56: Pos(1.857603, 0.64685, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.189278)
V 57: Pos(1.857603, 0.64685, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.628715, 0.189278)
V 58: Pos(2.157339, 0.794636, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.663056)
V 59: Pos(1.857603, 0.794636, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.663056)
V 60: Pos(2.157339, 0.794636, 0.177222) Norm(0.904534, -0.301511, -0.301511) UV(0.809229, 0.663056)
V 61: Pos(2.157339, 0.794636, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.663056)
V 62: Pos(1.857603, 0.731786, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.106738)
V 63: Pos(1.857603, 0.731786, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.628715, 0.106738)
V 64: Pos(2.157339, 0.816721, 0.177222) Norm(0.707107, 0.707107, 0.0) UV(0.809229, 0.684519)
V 65: Pos(2.157339, 0.816721, 0.200019) Norm(0.57735, 0.57735, 0.57735) UV(0.787075, 0.684519)
V 66: Pos(1.857603, 0.816721, 0.014266) Norm(-0.57735, 0.57735, -0.57735) UV(0.517255, 0.641593)
V 67: Pos(2.157339, 0.816721, 0.014266) Norm(0.57735, 0.57735, -0.57735) UV(0.517255, 0.932876)
V 68: Pos(2.157339, 0.794636, 0.014266) Norm(0.57735, -0.57735, -0.57735) UV(0.495792, 0.932876)
V 69: Pos(1.857603, 0.794636, 0.014266) Norm(-0.57735, -0.57735, -0.57735) UV(0.495792, 0.641593)
V 70: Pos(2.157339, 0.816721, 0.200019) Norm(0.57735, 0.57735, 0.57735) UV(0.315277, 0.684519)
V 71: Pos(1.857603, 0.816721, 0.200019) Norm(-0.57735, 0.57735, 0.57735) UV(0.023994, 0.684519)
V 72: Pos(2.157339, 0.816721, 0.014266) Norm(0.57735, 0.57735, -0.57735) UV(0.96759, 0.684519)
V 73: Pos(2.157339, 0.816721, 0.107142) Norm(0.707107, 0.707107, 0.0) UV(0.877332, 0.684519)
V 74: Pos(2.157339, 0.794636, 0.107142) Norm(0.707107, -0.707107, 0.0) UV(0.877332, 0.663056)
V 75: Pos(2.157339, 0.794636, 0.014266) Norm(0.57735, -0.57735, -0.57735) UV(0.96759, 0.663056)
V 76: Pos(1.857603, 0.222172, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.628715, 0.601979)
V 77: Pos(1.857603, 0.222172, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.601979)
V 78: Pos(1.857603, 0.307108, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.189278)
V 79: Pos(2.157339, 0.307108, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.189278)
V 80: Pos(2.157339, 0.307108, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.189278)
V 81: Pos(2.157339, 0.307108, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.809229, 0.189278)
V 82: Pos(1.857603, 0.159323, 0.177222) Norm(-0.904534, 0.301511, -0.301511) UV(0.628715, 0.663056)
V 83: Pos(1.857603, 0.159323, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.663056)
V 84: Pos(1.857603, 0.222172, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.106738)
V 85: Pos(2.157339, 0.222172, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.106738)
V 86: Pos(2.157339, 0.222172, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.106738)
V 87: Pos(2.157339, 0.222172, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.809229, 0.106738)
V 88: Pos(1.857603, 0.137237, 0.177222) Norm(-0.707107, -0.707107, 0.0) UV(0.628715, 0.684519)
V 89: Pos(1.857603, 0.137237, 0.200019) Norm(-0.57735, -0.57735, 0.57735) UV(0.60656, 0.684519)
V 90: Pos(1.857603, 0.137237, 0.014266) Norm(-0.57735, -0.57735, -0.57735) UV(0.787075, 0.684519)
V 91: Pos(1.857603, 0.137237, 0.107142) Norm(-0.707107, -0.707107, 0.0) UV(0.696818, 0.684519)
V 92: Pos(1.857603, 0.159323, 0.107142) Norm(-0.707107, 0.707107, 0.0) UV(0.696818, 0.663056)
V 93: Pos(1.857603, 0.159323, 0.014266) Norm(-0.57735, 0.57735, -0.57735) UV(0.787075, 0.663056)
V 94: Pos(1.857603, 0.794636, 0.014266) Norm(-0.57735, -0.57735, -0.57735) UV(0.923281, 0.684519)
V 95: Pos(2.157339, 0.794636, 0.014266) Norm(0.57735, -0.57735, -0.57735) UV(0.923281, 0.975802)
V 96: Pos(2.157339, 0.794636, 0.107142) Norm(0.707107, -0.707107, 0.0) UV(0.833023, 0.975802)
V 97: Pos(1.857603, 0.794636, 0.107142) Norm(-0.707107, -0.707107, 0.0) UV(0.833023, 0.684519)
V 98: Pos(2.157339, 0.794636, 0.177222) Norm(0.904534, -0.301511, -0.301511) UV(0.76492, 0.975802)
V 99: Pos(1.857603, 0.794636, 0.177222) Norm(-0.904534, -0.301511, -0.301511) UV(0.76492, 0.684519)
V 100: Pos(2.157339, 0.794636, 0.177222) Norm(0.904534, -0.301511, -0.301511) UV(0.315277, 0.641593)
V 101: Pos(2.157339, 0.731786, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.315277, 0.580516)
V 102: Pos(1.857603, 0.731786, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.60656, 0.580516)
V 103: Pos(1.857603, 0.794636, 0.177222) Norm(-0.904534, -0.301511, -0.301511) UV(0.60656, 0.641593)
V 104: Pos(2.157339, 0.64685, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.315277, 0.497976)
V 105: Pos(1.857603, 0.64685, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.60656, 0.497976)
V 106: Pos(2.157339, 0.476979, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.315277, 0.332896)
V 107: Pos(1.857603, 0.476979, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.60656, 0.332896)
V 108: Pos(1.857603, 0.307108, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.60656, 0.167815)
V 109: Pos(2.157339, 0.307108, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.315277, 0.167815)
V 110: Pos(1.857603, 0.222172, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.60656, 0.085275)
V 111: Pos(2.157339, 0.222172, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.315277, 0.085275)
V 112: Pos(1.857603, 0.159323, 0.177222) Norm(-0.904534, 0.301511, -0.301511) UV(0.60656, 0.024198)
V 113: Pos(2.157339, 0.159323, 0.177222) Norm(0.904534, 0.301511, -0.301511) UV(0.315277, 0.024198)
V 114: Pos(1.857603, 0.159323, 0.107142) Norm(-0.707107, 0.707107, 0.0) UV(0.674663, 0.975802)
V 115: Pos(1.857603, 0.159323, 0.177222) Norm(-0.904534, 0.301511, -0.301511) UV(0.60656, 0.975802)
V 116: Pos(2.157339, 0.159323, 0.177222) Norm(0.904534, 0.301511, -0.301511) UV(0.60656, 0.684519)
V 117: Pos(2.157339, 0.159323, 0.107142) Norm(0.707107, 0.707107, 0.0) UV(0.674663, 0.684519)
V 118: Pos(1.857603, 0.159323, 0.014266) Norm(-0.57735, 0.57735, -0.57735) UV(0.76492, 0.975802)
V 119: Pos(2.157339, 0.159323, 0.014266) Norm(0.57735, 0.57735, -0.57735) UV(0.76492, 0.684519)
===Triangles (Indices): 100
Tri: 0 1 2
Tri: 0 2 3
Tri: 4 5 6
Tri: 4 6 7
Tri: 8 9 10
Tri: 8 10 11
Tri: 12 13 14
Tri: 12 14 15
Tri: 16 17 18
Tri: 16 18 19
Tri: 20 21 22
Tri: 20 22 23
Tri: 24 25 26
Tri: 24 26 27
Tri: 28 29 30
Tri: 28 30 31
Tri: 32 33 34
Tri: 32 34 35
Tri: 36 37 38
Tri: 36 38 39
Tri: 25 12 15
Tri: 25 15 26
Tri: 29 8 11
Tri: 29 11 30
Tri: 33 4 7
Tri: 33 7 34
Tri: 37 0 3
Tri: 37 3 38
Tri: 40 41 42
Tri: 40 42 43
Tri: 44 45 46
Tri: 44 46 47
Tri: 48 49 50
Tri: 48 50 51
Tri: 52 53 45
Tri: 52 45 44
Tri: 54 55 41
Tri: 54 41 40
Tri: 51 50 56
Tri: 51 56 57
Tri: 58 59 55
Tri: 58 55 54
Tri: 60 61 53
Tri: 60 53 52
Tri: 57 56 62
Tri: 57 62 63
Tri: 64 65 61
Tri: 64 61 60
Tri: 66 67 68
Tri: 66 68 69
Tri: 70 71 59
Tri: 70 59 58
Tri: 72 73 74
Tri: 72 74 75
Tri: 73 64 60
Tri: 73 60 74
Tri: 63 62 1
Tri: 63 1 0
Tri: 76 77 49
Tri: 76 49 48
Tri: 43 42 78
Tri: 43 78 79
Tri: 47 46 80
Tri: 47 80 81
Tri: 82 83 77
Tri: 82 77 76
Tri: 79 78 84
Tri: 79 84 85
Tri: 81 80 86
Tri: 81 86 87
Tri: 88 89 83
Tri: 88 83 82
Tri: 90 91 92
Tri: 90 92 93
Tri: 91 88 82
Tri: 91 82 92
Tri: 85 84 21
Tri: 85 21 20
Tri: 87 86 9
Tri: 87 9 8
Tri: 94 95 96
Tri: 94 96 97
Tri: 96 98 99
Tri: 96 99 97
Tri: 100 101 102
Tri: 100 102 103
Tri: 101 104 105
Tri: 101 105 102
Tri: 104 106 107
Tri: 104 107 105
Tri: 108 107 106
Tri: 108 106 109
Tri: 110 108 109
Tri: 110 109 111
Tri: 112 110 111
Tri: 112 111 113
Tri: 114 115 116
Tri: 114 116 117
Tri: 118 114 117
Tri: 118 117 119

BIN
resources/blue_transparent.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/box/box.png (Stored with Git LFS)

Binary file not shown.

View File

@ -1,29 +0,0 @@
===Vertices (Split by UV/Normal): 14
V 0: Pos(1.0, 1.0, 1.0) Norm(0.57735, 0.57735, 0.57735) UV(0.5, 0.5)
V 1: Pos(-1.0, 1.0, 1.0) Norm(-0.57735, 0.57735, 0.57735) UV(0.75, 0.5)
V 2: Pos(-1.0, -1.0, 1.0) Norm(-0.57735, -0.57735, 0.57735) UV(0.75, 0.75)
V 3: Pos(1.0, -1.0, 1.0) Norm(0.57735, -0.57735, 0.57735) UV(0.5, 0.75)
V 4: Pos(1.0, -1.0, -1.0) Norm(0.57735, -0.57735, -0.57735) UV(0.25, 0.75)
V 5: Pos(-1.0, -1.0, 1.0) Norm(-0.57735, -0.57735, 0.57735) UV(0.5, 1.0)
V 6: Pos(-1.0, -1.0, -1.0) Norm(-0.57735, -0.57735, -0.57735) UV(0.25, 1.0)
V 7: Pos(-1.0, -1.0, -1.0) Norm(-0.57735, -0.57735, -0.57735) UV(0.25, 0.0)
V 8: Pos(-1.0, -1.0, 1.0) Norm(-0.57735, -0.57735, 0.57735) UV(0.5, 0.0)
V 9: Pos(-1.0, 1.0, 1.0) Norm(-0.57735, 0.57735, 0.57735) UV(0.5, 0.25)
V 10: Pos(-1.0, 1.0, -1.0) Norm(-0.57735, 0.57735, -0.57735) UV(0.25, 0.25)
V 11: Pos(-1.0, 1.0, -1.0) Norm(-0.57735, 0.57735, -0.57735) UV(0.0, 0.5)
V 12: Pos(1.0, 1.0, -1.0) Norm(0.57735, 0.57735, -0.57735) UV(0.25, 0.5)
V 13: Pos(-1.0, -1.0, -1.0) Norm(-0.57735, -0.57735, -0.57735) UV(0.0, 0.75)
===Triangles (Indices): 12
Tri: 0 1 2
Tri: 0 2 3
Tri: 4 3 5
Tri: 4 5 6
Tri: 7 8 9
Tri: 7 9 10
Tri: 11 12 4
Tri: 11 4 13
Tri: 12 0 3
Tri: 12 3 4
Tri: 10 9 0
Tri: 10 0 12

BIN
resources/button_info.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_info_pressed.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_invmouse.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_invmouse_pressed.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_minus.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_minus_disabled.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_minus_pressed.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_players.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_players_disabled.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_plus.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_plus_disabled.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_plus_pressed.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_take.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_take_disabled.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/button_take_pressed.png (Stored with Git LFS)

Binary file not shown.

File diff suppressed because it is too large Load Diff

BIN
resources/cashier.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,256 +0,0 @@
{
"root": {
"type": "LinearLayout",
"orientation": "vertical",
"vertical_align": "center",
"horizontal_align": "center",
"spacing": 10,
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "StaticImage",
"name": "titleBtn",
"width": 434,
"height": 35,
"texture": "resources/main_menu/title.png"
},
{
"type": "StaticImage",
"name": "aboutSpace1",
"width": 434,
"height": 10
},
{
"type": "FrameLayout",
"spacing": 10,
"width": 434,
"height": 460,
"children": [
{
"type": "TextView",
"name": "aboutText1",
"width": 434,
"height": 30,
"x": -300,
"y": 0,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"text": "Producer: Vladislav Khorev",
"fontSize": 24,
"color": [
255,
255,
255,
1
],
"centered": false
},
{
"type": "TextView",
"name": "aboutText2",
"width": 434,
"height": 30,
"x": -300,
"y": 40,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"text": "Lead Developer: Vladislav Khorev",
"fontSize": 24,
"color": [
255,
255,
255,
1
],
"centered": false
},
{
"type": "TextView",
"name": "aboutText2",
"width": 434,
"height": 2,
"x": -300,
"y": 80,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"text": "Game Designer: Leila Bobrova",
"fontSize": 24,
"color": [
255,
255,
255,
1
],
"centered": false
},
{
"type": "TextView",
"name": "aboutText2",
"width": 434,
"height": 30,
"x": -300,
"y": 120,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"text": "Developers: ",
"fontSize": 24,
"color": [
255,
255,
255,
1
],
"centered": false
},
{
"type": "TextView",
"name": "aboutText2",
"width": 434,
"height": 40,
"x": -300,
"y": 150,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"text": "Vladislav Kan",
"fontSize": 24,
"color": [
255,
255,
255,
1
],
"centered": false
},
{
"type": "TextView",
"name": "aboutText2",
"width": 434,
"height": 40,
"x": -300,
"y": 180,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"text": "Beksultan Almazbekov",
"fontSize": 24,
"color": [
255,
255,
255,
1
],
"centered": false
},
{
"type": "TextView",
"name": "aboutText2",
"width": 434,
"height": 40,
"x": -300,
"y": 210,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"text": "Sergei Zotov",
"fontSize": 24,
"color": [
255,
255,
255,
1
],
"centered": false
},
{
"type": "TextView",
"name": "aboutText2",
"width": 434,
"height": 40,
"x": -300,
"y": 250,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"text": "3D Artist: David \"nokken\" Im",
"fontSize": 24,
"color": [
255,
255,
255,
1
],
"centered": false
},
{
"type": "TextView",
"name": "aboutText2",
"width": 434,
"height": 40,
"x": -300,
"y": 290,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"text": "UI/UX Design: Kenje Kazmatova",
"fontSize": 24,
"color": [
255,
255,
255,
1
],
"centered": false
},
{
"type": "TextView",
"name": "aboutText2",
"width": 434,
"height": 40,
"x": -300,
"y": 330,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"text": "Sky Trek Tales v. 0.1",
"fontSize": 24,
"color": [
255,
255,
255,
1
],
"centered": false
},
{
"type": "TextView",
"name": "aboutText2",
"width": 434,
"height": 40,
"x": -300,
"y": 370,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"text": "https://fishrungames.com",
"fontSize": 24,
"color": [
255,
255,
255,
1
],
"centered": false
}
]
},
{
"type": "Button",
"name": "aboutBackButton",
"width": 382,
"height": 56,
"textures": {
"normal": "resources/game_over/Secondarybutton.png",
"hover": "resources/game_over/Secondarybutton.png",
"pressed": "resources/game_over/Secondarybutton.png"
}
}
]
}
}

View File

@ -1,22 +0,0 @@
{
"root": {
"type": "FrameLayout",
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "StaticImage",
"name": "connecting",
"x" : 0,
"y" : 0,
"width": 488,
"height": 154,
"horizontal_gravity": "center",
"vertical_gravity": "center",
"texture": "resources/connecting.png"
}
]
}
}

View File

@ -1,52 +0,0 @@
{
"root": {
"type": "FrameLayout",
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "StaticImage",
"name": "connectionFailed",
"x" : 0,
"y" : 0,
"width": 488,
"height": 308,
"horizontal_gravity": "center",
"vertical_gravity": "center",
"texture": "resources/connection_failed.png"
},
{
"type": "Button",
"name": "connectionFailedReconnectButton",
"width": 382,
"height": 56,
"x" : 0,
"y" : -20,
"horizontal_gravity": "center",
"vertical_gravity": "center",
"textures": {
"normal": "resources/game_over/reconnect1.png",
"hover": "resources/game_over/reconnect2.png",
"pressed": "resources/game_over/reconnect3.png"
}
},
{
"type": "Button",
"name": "connectionFailedGoBack",
"width": 382,
"height": 56,
"x" : 0,
"y" : -86,
"horizontal_gravity": "center",
"vertical_gravity": "center",
"textures": {
"normal": "resources/game_over/Secondarybutton.png",
"hover": "resources/game_over/Secondarybutton.png",
"pressed": "resources/game_over/Secondarybutton.png"
}
}
]
}
}

View File

@ -1,52 +0,0 @@
{
"root": {
"type": "FrameLayout",
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "StaticImage",
"name": "connectionLost",
"x" : 0,
"y" : 0,
"width": 488,
"height": 308,
"horizontal_gravity": "center",
"vertical_gravity": "center",
"texture": "resources/connection_lost.png"
},
{
"type": "Button",
"name": "reconnectButton",
"width": 382,
"height": 56,
"x" : 0,
"y" : -20,
"horizontal_gravity": "center",
"vertical_gravity": "center",
"textures": {
"normal": "resources/game_over/reconnect1.png",
"hover": "resources/game_over/reconnect2.png",
"pressed": "resources/game_over/reconnect3.png"
}
},
{
"type": "Button",
"name": "exitServerButton",
"width": 382,
"height": 56,
"x" : 0,
"y" : -86,
"horizontal_gravity": "center",
"vertical_gravity": "center",
"textures": {
"normal": "resources/game_over/Secondarybutton.png",
"hover": "resources/game_over/Secondarybutton.png",
"pressed": "resources/game_over/Secondarybutton.png"
}
}
]
}
}

View File

@ -1,21 +0,0 @@
{
"enabled": true,
"referenceResolution": [1280, 720],
"color": [1.0, 1.0, 1.0],
"cl_crosshairalpha": 1.0,
"cl_crosshairthickness": 2.0,
"centerGapPx": 10.0,
"top": {
"lengthPx": 14.0,
"angleDeg": 90.0
},
"arms": [
{ "lengthPx": 20.0, "angleDeg": 210.0 },
{ "lengthPx": 20.0, "angleDeg": 330.0 }
]
}

View File

@ -1,15 +0,0 @@
{
"emissionPoints": [
{ "position": [0.0, 0.0, 0.0] }
],
"texture": "resources/spark_white.png",
"speedRange": [10.0, 30.0],
"zSpeedRange": [-1.0, 1.0],
"scaleRange": [5.0, 10.0],
"lifeTimeRange": [200.0, 800.0],
"emissionRate": 50.0,
"maxParticles": 5,
"particleSize": 2,
"biasX": 0.1,
"shaderProgramName": "default"
}

View File

@ -1,85 +0,0 @@
{
"root": {
"type": "LinearLayout",
"orientation": "vertical",
"vertical_align": "center",
"horizontal_align": "center",
"spacing": 10,
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "Button",
"name": "gameOverText",
"width": 327,
"height": 26,
"textures": {
"normal": "resources/game_over/MissionFailed.png",
"hover": "resources/game_over/MissionFailed.png",
"pressed": "resources/game_over/MissionFailed.png"
}
},
{
"type": "Button",
"name": "underlineBtn",
"width": 168,
"height": 44,
"textures": {
"normal": "resources/game_over/Container.png",
"hover": "resources/game_over/Container.png",
"pressed": "resources/game_over/Container.png"
}
},
{
"type": "Button",
"name": "finalscore",
"width": 87,
"height": 9,
"textures": {
"normal": "resources/game_over/FinalScore.png",
"hover": "resources/game_over/FinalScore.png",
"pressed": "resources/game_over/FinalScore.png"
}
},
{
"type": "TextView",
"name": "scoreText",
"width": 600,
"height": 80,
"text": "0",
"fontSize": 36,
"color": [
0,
217,
255,
1
],
"align": "center"
},
{
"type": "Button",
"name": "restartButton",
"width": 382,
"height": 56,
"textures": {
"normal": "resources/game_over/Filledbuttons.png",
"hover": "resources/game_over/Variant5.png",
"pressed": "resources/game_over/Variant6.png"
}
},
{
"type": "Button",
"name": "gameOverExitButton",
"width": 382,
"height": 56,
"textures": {
"normal": "resources/game_over/Secondarybutton.png",
"hover": "resources/game_over/Secondarybutton.png",
"pressed": "resources/game_over/Secondarybutton.png"
}
}
]
}
}

View File

@ -1,93 +0,0 @@
{
"root": {
"type": "LinearLayout",
"orientation": "vertical",
"align": "center",
"x": 0,
"y": 0,
"width": 1920,
"height": 1080,
"background": {
"color": [0, 0, 0, 0.7]
},
"children": [
{
"type": "Button",
"name": "gameOverText",
"x": 476.5,
"y": 500,
"width": 327,
"height": 26,
"textures": {
"normal": "resources/game_over/MissionFailed.png",
"hover": "resources/game_over/MissionFailed.png",
"pressed": "resources/game_over/MissionFailed.png"
}
},
{
"type": "Button",
"name": "underlineBtn",
"x": 556,
"y": 465,
"width": 168,
"height": 44,
"textures": {
"normal": "resources/game_over/Container.png",
"hover": "resources/game_over/Container.png",
"pressed": "resources/game_over/Container.png"
}
},
{
"type": "Button",
"name": "finalscore",
"x": 596.5,
"y": 436,
"width": 87,
"height": 9,
"textures": {
"normal": "resources/game_over/FinalScore.png",
"hover": "resources/game_over/FinalScore.png",
"pressed": "resources/game_over/FinalScore.png"
}
},
{
"type": "TextView",
"name": "scoreText",
"x": 350,
"y": 356,
"width": 600,
"height": 80,
"text": "0",
"fontSize": 36,
"color": [0, 217, 255, 1],
"align": "center"
},
{
"type": "Button",
"name": "restartButton",
"x": 449,
"y": 308,
"width": 382,
"height": 56,
"textures": {
"normal": "resources/game_over/Filledbuttons.png",
"hover": "resources/game_over/Filledbuttons.png",
"pressed": "resources/game_over/Filledbuttons.png"
}
},
{
"type": "Button",
"name": "gameOverExitButton",
"x": 449,
"y": 240,
"width": 382,
"height": 56,
"textures": {
"normal": "resources/game_over/Secondarybutton.png",
"hover": "resources/game_over/Secondarybutton.png",
"pressed": "resources/game_over/Secondarybutton.png"
}
}
]
}
}

View File

@ -1,76 +0,0 @@
{
"root": {
"type": "LinearLayout",
"orientation": "vertical",
"vertical_align": "center",
"horizontal_align": "center",
"spacing": 10,
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "StaticImage",
"name": "titleBtn",
"width": 434,
"height": 35,
"texture": "resources/main_menu/title.png"
},
{
"type": "StaticImage",
"name": "underlineBtn",
"width": 168,
"height": 44,
"texture": "resources/main_menu/line.png"
},
{
"type": "StaticImage",
"name": "subtitleBtn",
"width": 144,
"height": 11,
"texture": "resources/main_menu/subtitle.png"
},
{
"type": "Button",
"name": "singleButton",
"width": 382,
"height": 56,
"textures": {
"normal": "resources/main_menu/single.png",
"hover": "resources/main_menu/Variant5.png",
"pressed": "resources/main_menu/Variant6.png"
}
},
{
"type": "Button",
"name": "multiplayerButton",
"width": 382,
"height": 56,
"textures": {
"normal": "resources/main_menu/multi.png",
"hover": "resources/main_menu/Variant7.png",
"pressed": "resources/main_menu/Variant8.png"
}
},
{
"type": "Button",
"name": "aboutButton",
"width": 382,
"height": 56,
"textures": {
"normal": "resources/main_menu/about.png",
"hover": "resources/main_menu/about_hover.png",
"pressed": "resources/main_menu/about_pressed.png"
}
},
{
"type": "StaticImage",
"name": "versionLabel",
"width": 81,
"height": 9,
"texture": "resources/main_menu/version.png"
}
]
}
}

View File

@ -1,158 +0,0 @@
{
"root": {
"type": "LinearLayout",
"x": 0,
"y": 0,
"width": 1280,
"height": 720,
"children": [
{
"type": "Button",
"name": "langButton",
"x": 1100,
"y": 580,
"width": 142,
"height": 96,
"textures": {
"normal": "resources/main_menu/lang.png",
"hover": "resources/main_menu/lang.png",
"pressed": "resources/main_menu/lang.png"
}
},
{
"type": "Button",
"name": "titleBtn",
"x": 512,
"y": 500,
"width": 254,
"height": 35,
"textures": {
"normal": "resources/multiplayer_menu/title.png",
"hover": "resources/multiplayer_menu/title.png",
"pressed": "resources/multiplayer_menu/title.png"
}
},
{
"type": "Button",
"name": "subtitle",
"x": 596.5,
"y": 470,
"width": 87,
"height": 11,
"textures": {
"normal": "resources/multiplayer_menu/JoinServer.png",
"hover": "resources/multiplayer_menu/JoinServer.png",
"pressed": "resources/multiplayer_menu/JoinServer.png"
}
},
{
"type": "Button",
"name": "subtitleBtn",
"x": 450,
"y": 445,
"width": 94,
"height": 9,
"textures": {
"normal": "resources/multiplayer_menu/ServerName.png",
"hover": "resources/multiplayer_menu/ServerName.png",
"pressed": "resources/multiplayer_menu/ServerName.png"
}
},
{
"type": "TextField",
"name": "serverInputField",
"x": 449,
"y": 390,
"width": 382,
"height": 56,
"placeholder": "Enter server name or IP",
"fontPath": "resources/fonts/DroidSans.ttf",
"fontSize": 16,
"maxLength": 256,
"color": [122, 156, 198, 1],
"placeholderColor": [122, 156, 198, 1],
"backgroundColor": [15, 29, 51, 1],
"borderColor": [15, 29, 51, 1]
},
{
"type": "Button",
"name": "connectButton",
"x": 449,
"y": 350,
"width": 382,
"height": 56,
"textures": {
"normal": "resources/multiplayer_menu/Filledbuttons.png",
"hover": "resources/multiplayer_menu/Filledbuttons.png",
"pressed": "resources/multiplayer_menu/Filledbuttons.png"
}
},
{
"type": "Button",
"name": "backButton",
"x": 449,
"y": 280,
"width": 382,
"height": 56,
"textures": {
"normal": "resources/multiplayer_menu/Backbutton.png",
"hover": "resources/multiplayer_menu/Backbutton.png",
"pressed": "resources/multiplayer_menu/Backbutton.png"
}
},
{
"type": "Button",
"name": "AvailableServers",
"x": 450,
"y": 240,
"width": 139,
"height": 9,
"textures": {
"normal": "resources/multiplayer_menu/AvailableServers.png",
"hover": "resources/multiplayer_menu/AvailableServers.png",
"pressed": "resources/multiplayer_menu/AvailableServers.png"
}
},
{
"type": "Button",
"name": "SerButton",
"x": 436.5,
"y": 170,
"width": 407,
"height": 62,
"textures": {
"normal": "resources/multiplayer_menu/Button.png",
"hover": "resources/multiplayer_menu/Button.png",
"pressed": "resources/multiplayer_menu/Button.png"
}
},
{
"type": "Button",
"name": "SerButton2",
"x": 436.5,
"y": 88,
"width": 407,
"height": 62,
"textures": {
"normal": "resources/multiplayer_menu/Button2.png",
"hover": "resources/multiplayer_menu/Button2.png",
"pressed": "resources/multiplayer_menu/Button2.png"
}
},
{
"type": "Button",
"name": "SerButton3",
"x": 436.5,
"y": 6,
"width": 407,
"height": 62,
"textures": {
"normal": "resources/multiplayer_menu/Button3.png",
"hover": "resources/multiplayer_menu/Button3.png",
"pressed": "resources/multiplayer_menu/Button3.png"
}
}
]
}
}

View File

@ -1,72 +0,0 @@
{
"root": {
"type": "FrameLayout",
"x": 0,
"y": 0,
"width": 1280,
"height": 720,
"children": [
{
"type": "FrameLayout",
"name": "centerPanel",
"x": 480,
"y": 160,
"width": 320,
"height": 400,
"children": [
{
"type": "LinearLayout",
"name": "settingsButtons",
"orientation": "vertical",
"spacing": 10,
"x": 0,
"y": 0,
"width": 300,
"height": 300,
"children": [
{
"type": "Button",
"name": "Opt1",
"x": 100,
"y": 300,
"width": 200,
"height": 50,
"textures": {
"normal": "resources/sand2.png",
"hover": "resources/sand2.png",
"pressed": "resources/sand2.png"
}
},
{
"type": "Button",
"name": "Opt2",
"x": 100,
"y": 200,
"width": 200,
"height": 50,
"textures": {
"normal": "resources/sand2.png",
"hover": "resources/sand2.png",
"pressed": "resources/sand2.png"
}
},
{
"type": "Button",
"name": "backButton",
"x": 100,
"y": 100,
"width": 200,
"height": 50,
"textures": {
"normal": "resources/sand2.png",
"hover": "resources/sand2.png",
"pressed": "resources/sand2.png"
}
}
]
}
]
}
]
}
}

View File

@ -1,66 +0,0 @@
{
"root": {
"type": "LinearLayout",
"orientation": "vertical",
"vertical_align": "center",
"horizontal_align": "center",
"spacing": 10,
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "StaticImage",
"name": "titleBtn",
"width": 266,
"height": 66,
"texture": "resources/select_your_ship.png"
},
{
"type": "LinearLayout",
"orientation": "horizontal",
"vertical_align": "center",
"horizontal_align": "center",
"spacing": 10,
"width": "match_parent",
"height": 260,
"children": [
{
"type": "Button",
"name": "spaceshipButton",
"width": 256,
"height": 256,
"textures": {
"normal": "resources/multiplayer_menu/ship_fighter.png",
"hover": "resources/multiplayer_menu/ship_fighter_pressed.png",
"pressed": "resources/multiplayer_menu/ship_fighter_pressed.png"
}
},
{
"type": "Button",
"name": "cargoshipButton",
"width": 256,
"height": 256,
"textures": {
"normal": "resources/multiplayer_menu/ship_cargo.png",
"hover": "resources/multiplayer_menu/ship_cargo_pressed.png",
"pressed": "resources/multiplayer_menu/ship_cargo_pressed.png"
}
}
]
},
{
"type": "Button",
"name": "backButton",
"width": 382,
"height": 56,
"textures": {
"normal": "resources/multiplayer_menu/Backbutton.png",
"hover": "resources/multiplayer_menu/Backbutton.png",
"pressed": "resources/multiplayer_menu/Backbutton.png"
}
}
]
}
}

View File

@ -1,14 +0,0 @@
{
"emissionRate": 1.2,
"maxParticles": 400,
"particleSize": 0.3,
"biasX": 0.3,
"emissionPoints": [
],
"speedRange": [0.5, 2.0],
"zSpeedRange": [1.0, 3.0],
"scaleRange": [0.8, 1.2],
"lifeTimeRange": [300.0, 500.0],
"texture": "resources/spark.png",
"shaderProgramName": "spark"
}

View File

@ -1,20 +0,0 @@
{
"emissionRate": 1.2,
"maxParticles": 400,
"particleSize": 0.3,
"biasX": 0.3,
"emissionPoints": [
{
"position": [0.0, 2.8, -3.5]
},
{
"position": [0.0, 1.5, -3.5]
}
],
"speedRange": [0.5, 2.0],
"zSpeedRange": [1.0, 3.0],
"scaleRange": [0.8, 1.2],
"lifeTimeRange": [600.0, 1400.0],
"texture": "resources/spark.png",
"shaderProgramName": "spark"
}

View File

@ -1,15 +0,0 @@
{
"emissionPoints": [
{ "position": [0.0, 0.0, 0.0] }
],
"texture": "resources/spark2.png",
"speedRange": [5.0, 10.0],
"zSpeedRange": [-1.0, 1.0],
"scaleRange": [0.5, 2.0],
"lifeTimeRange": [200.0, 800.0],
"emissionRate": 30.0,
"maxParticles": 150,
"particleSize": 1.0,
"biasX": 0.1,
"shaderProgramName": "default"
}

View File

@ -1,163 +0,0 @@
{
"root": {
"type": "FrameLayout",
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "TextView",
"name": "gameScoreText",
"x": 0,
"y": 30,
"width": 200,
"height": 60,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"text": "Score: 0",
"fontSize": 36,
"color": [
0,
217,
255,
1
],
"centered": false
},
{
"type": "Button",
"name": "showPlayersButton",
"x": 0,
"y": 100,
"width": 150,
"height": 150,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"textures": {
"normal": "resources/button_players.png",
"hover": "resources/button_players.png",
"pressed": "resources/button_players.png",
"disabled": "resources/button_players_disabled.png"
}
},
{
"type": "Button",
"name": "inverseMouseButton",
"x": 0,
"y": 100,
"width": 150,
"height": 150,
"border" : 20,
"horizontal_gravity": "right",
"vertical_gravity": "top",
"textures": {
"normal": "resources/button_invmouse.png",
"hover": "resources/button_invmouse.png",
"pressed": "resources/button_invmouse_pressed.png",
"disabled": "resources/button_invmouse.png"
}
},
{
"type": "Button",
"name": "infoButton",
"x": 0,
"y": 250,
"width": 150,
"height": 150,
"border" : 20,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"textures": {
"normal": "resources/button_info.png",
"hover": "resources/button_info.png",
"pressed": "resources/button_info_pressed.png",
"disabled": "resources/button_info.png"
}
},
{
"type": "Button",
"name": "shootButton",
"x": 0,
"y": 0,
"width": 150,
"height": 150,
"horizontal_gravity": "right",
"vertical_gravity": "bottom",
"textures": {
"normal": "resources/fire.png",
"hover": "resources/fire.png",
"pressed": "resources/fire2.png",
"disabled": "resources/fire_disabled.png"
}
},
{
"type": "Button",
"name": "shootButton2",
"x": 0,
"y": 0,
"width": 150,
"height": 150,
"horizontal_gravity": "left",
"vertical_gravity": "bottom",
"textures": {
"normal": "resources/fire.png",
"hover": "resources/fire.png",
"pressed": "resources/fire2.png",
"disabled": "resources/fire_disabled.png"
}
},
{
"type": "Button",
"name": "minusButton",
"x": -20,
"y": 110,
"width": 150,
"height": 150,
"border" : 20,
"horizontal_gravity": "right",
"vertical_gravity": "bottom",
"textures": {
"normal": "resources/button_minus.png",
"hover": "resources/button_minus.png",
"pressed": "resources/button_minus_pressed.png",
"disabled" : "resources/button_minus_disabled.png"
}
},
{
"type": "Button",
"name": "plusButton",
"x": -20,
"y": 220,
"width": 150,
"height": 150,
"border" : 20,
"horizontal_gravity": "right",
"vertical_gravity": "bottom",
"textures": {
"normal": "resources/button_plus.png",
"hover": "resources/button_plus.png",
"pressed": "resources/button_plus_pressed.png",
"disabled" : "resources/button_plus_disabled.png"
}
},
{
"type": "Button",
"name": "takeButton",
"x": -20,
"y": 320,
"width": 150,
"height": 150,
"border" : 20,
"horizontal_gravity": "right",
"vertical_gravity": "bottom",
"textures": {
"normal": "resources/button_take.png",
"hover": "resources/button_take.png",
"pressed": "resources/button_take_pressed.png",
"disabled" : "resources/button_take_disabled.png"
}
}
]
}
}

View File

@ -1,194 +0,0 @@
{
"root": {
"type": "FrameLayout",
"x": 0,
"y": 0,
"width": 1280,
"height": 720,
"children": [
{
"type": "FrameLayout",
"name": "leftPanel",
"x": 100,
"y": 100,
"width": 320,
"height": 400,
"children": [
{
"type": "LinearLayout",
"name": "mainButtons",
"orientation": "vertical",
"spacing": 10,
"x": 0,
"y": 0,
"width": 300,
"height": 300,
"children": [
{
"type": "Button",
"name": "playButton",
"x": -1000,
"y": 500,
"width": 200,
"height": 50,
"animations": {
"buttonsExit": {
"repeat": false,
"steps": [
{
"type": "move",
"to": [
-400,
0
],
"duration": 1.0,
"easing": "easein"
}
]
}
},
"textures": {
"normal": "./resources/sand2.png",
"hover": "./resources/sand2.png",
"pressed": "./resources/sand2.png"
}
},
{
"type": "Button",
"name": "settingsButton",
"x": -1000,
"y": 400,
"width": 200,
"height": 50,
"animations": {
"buttonsExit": {
"repeat": false,
"steps": [
{
"type": "wait",
"duration": 0.5
},
{
"type": "move",
"to": [
-400,
0
],
"duration": 1.0,
"easing": "easein"
}
]
}
},
"textures": {
"normal": "./resources/sand2.png",
"hover": "./resources/sand2.png",
"pressed": "./resources/sand2.png"
}
},
{
"type": "Button",
"name": "exitButton",
"x": -1000,
"y": 300,
"width": 200,
"height": 50,
"animations": {
"buttonsExit": {
"repeat": false,
"steps": [
{
"type": "wait",
"duration": 1.0
},
{
"type": "move",
"to": [
-400,
0
],
"duration": 1.0,
"easing": "easein"
}
]
},
"bgScroll": {
"repeat": true,
"steps": [
{
"type": "move",
"to": [
1280,
0
],
"duration": 5.0,
"easing": "linear"
}
]
}
},
"textures": {
"normal": "./resources/sand2.png",
"hover": "./resources/sand2.png",
"pressed": "./resources/sand2.png"
}
}
]
}
]
},
{
"type": "Slider",
"name": "velocitySlider",
"x": 1140,
"y": 300,
"width": 50,
"height": 300,
"value": 0.0,
"orientation": "vertical",
"textures": {
"track": "resources/velocitySliderTexture.png",
"knob": "resources/velocitySliderButton.png"
}
},
{
"type": "Button",
"name": "shootButton",
"x": 100,
"y": 100,
"width": 100,
"height": 100,
"textures": {
"normal": "resources/shoot_normal.png",
"hover": "resources/shoot_hover.png",
"pressed": "resources/shoot_pressed.png"
}
},
{
"type": "Button",
"name": "shootButton2",
"x": 1000,
"y": 100,
"width": 100,
"height": 100,
"textures": {
"normal": "resources/shoot_normal.png",
"hover": "resources/shoot_hover.png",
"pressed": "resources/shoot_pressed.png"
}
},
{
"type": "TextView",
"name": "velocityText",
"x": 10,
"y": 10,
"width": 200,
"height": 40,
"text": "Velocity: 0",
"fontSize": 24,
"color": [1.0, 1.0, 1.0, 1.0],
"centered": false
}
]
}
}

View File

@ -1,163 +0,0 @@
{
"root": {
"type": "FrameLayout",
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "StaticImage",
"name": "showPlayersButton_help",
"x": 0,
"y": 100,
"width": 150,
"height": 150,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"texture": "resources/button_players.png"
},
{
"type": "StaticImage",
"name": "infoButton_help",
"x": 0,
"y": 250,
"width": 150,
"height": 150,
"border" : 20,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"texture":"resources/button_info.png"
},
{
"type": "StaticImage",
"name": "infoButtonTopLeft_help",
"x": 0,
"y": 0,
"width": 300,
"height": 400,
"border" : 0,
"horizontal_gravity": "left",
"vertical_gravity": "top",
"texture": "resources/help_top_left.png"
},
{
"type": "StaticImage",
"name": "inverseMouseButton_help",
"x": 0,
"y": 100,
"width": 150,
"height": 150,
"border" : 20,
"horizontal_gravity": "right",
"vertical_gravity": "top",
"texture": "resources/button_invmouse.png"
},
{
"type": "StaticImage",
"name": "infoButtonTopRight_help",
"x": 0,
"y": 0,
"width": 300,
"height": 230,
"border" : 0,
"horizontal_gravity": "right",
"vertical_gravity": "top",
"texture": "resources/help_top_right.png"
},
{
"type": "StaticImage",
"name": "infoButtonBottomLeft_help",
"x": 0,
"y": 0,
"width": 300,
"height": 200,
"border" : 0,
"horizontal_gravity": "left",
"vertical_gravity": "bottom",
"texture": "resources/help_bottom_left.png"
},
{
"type": "StaticImage",
"name": "shootButton_help",
"x": 0,
"y": 0,
"width": 150,
"height": 150,
"horizontal_gravity": "right",
"vertical_gravity": "bottom",
"texture": "resources/fire.png"
},
{
"type": "StaticImage",
"name": "shootButton2_help",
"x": 0,
"y": 0,
"width": 150,
"height": 150,
"horizontal_gravity": "left",
"vertical_gravity": "bottom",
"texture": "resources/fire.png"
},
{
"type": "StaticImage",
"name": "minusButton_help",
"x": -20,
"y": 110,
"width": 150,
"height": 150,
"border" : 20,
"horizontal_gravity": "right",
"vertical_gravity": "bottom",
"texture": "resources/button_minus.png"
},
{
"type": "StaticImage",
"name": "plusButton_help",
"x": -20,
"y": 220,
"width": 150,
"height": 150,
"border" : 20,
"horizontal_gravity": "right",
"vertical_gravity": "bottom",
"texture": "resources/button_plus.png"
},
{
"type": "StaticImage",
"name": "takeButton_help",
"x": -20,
"y": 320,
"width": 150,
"height": 150,
"border" : 20,
"horizontal_gravity": "right",
"vertical_gravity": "bottom",
"texture": "resources/button_take.png"
},
{
"type": "StaticImage",
"name": "infoButtonBottomRight_help",
"x": 0,
"y": 0,
"width": 300,
"height": 450,
"border" : 0,
"horizontal_gravity": "right",
"vertical_gravity": "bottom",
"texture": "resources/help_bottom_right.png"
},
{
"type": "Button",
"name": "infoButtonUnderlying_help",
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"border" : 0,
"textures": {
}
}
]
}
}

View File

@ -0,0 +1,33 @@
{
"root": {
"type": "LinearLayout",
"orientation": "vertical",
"horizontal_align": "center",
"vertical_align": "center",
"spacing": 30,
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "StaticImage",
"name": "aboutImage",
"width": 512,
"height": 512,
"texture": "resources/e/menu/about.png"
},
{
"type": "Button",
"name": "backButton",
"width": 512,
"height": 128,
"textures": {
"normal": "resources/e/menu/button_back.png",
"hover": "resources/e/menu/button_back.png",
"pressed": "resources/e/menu/button_back.png"
}
}
]
}
}

View File

@ -0,0 +1,64 @@
{
"objects": [
{
"name": "firebox",
"texturePath": "resources/w/Cube001.png",
"meshPath": "resources/w/firebox.txt",
"rotationX": 0.0,
"rotationY": -1.5707963267948966,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": 0.0,
"positionZ": 0.0,
"scale": 1.0,
"interactive": false
},
{
"name": "inai",
"texturePath": "resources/w/inai001.png",
"meshPath": "resources/w/inai001.txt",
"rotationX": 0.0,
"rotationY": -1.5707963267948966,
"rotationZ": 0.0,
"positionX": 2.5,
"positionY": 1.4,
"positionZ": -9.9,
"scale": 1.0,
"interactive": false
},
{
"name": "bench",
"texturePath": "resources/w/bench001opt.png",
"meshPath": "resources/w/bench002opt.txt",
"rotationX": 0.0,
"rotationY": 3.141592653589793,
"rotationZ": 0.0,
"positionX": -2.1,
"positionY": 0.5,
"positionZ": -7.9,
"scale": 3.0,
"interactive": false
},
{
"name": "medik",
"texturePath": "resources/w/red.png",
"meshPath": "resources/w/firebox.txt",
"rotationX": 0.0,
"rotationY": -1.5707963267948966,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": 0.0,
"positionZ": 4.0,
"scale": 1.0,
"interactive": true,
"item": {
"id": "health_potion",
"name": "Health Potion",
"description": "Restores 50 HP",
"icon": "resources/w/red.png",
"radius": 2.0
},
"activateFunction" : "on_health_pickup"
}
]
}

View File

@ -0,0 +1,38 @@
{
"objects": [
{
"name": "firebox",
"texturePath": "resources/w/Cube001.png",
"meshPath": "resources/w/firebox.txt",
"rotationX": 0.0,
"rotationY": -1.5707963267948966,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": 0.0,
"positionZ": 0.0,
"scale": 1.0,
"interactive": false
},
{
"name": "medik",
"texturePath": "resources/w/red.png",
"meshPath": "resources/w/firebox.txt",
"rotationX": 0.0,
"rotationY": -1.5707963267948966,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": 0.0,
"positionZ": 4.0,
"scale": 1.0,
"interactive": true,
"item": {
"id": "health_potion",
"name": "Health Potion",
"description": "Restores 50 HP",
"icon": "resources/w/red.png",
"radius": 2.0
},
"activateFunction" : "on_health_pickup"
}
]
}

View File

@ -0,0 +1,33 @@
{
"root": {
"type": "LinearLayout",
"orientation": "vertical",
"horizontal_align": "center",
"vertical_align": "center",
"spacing": 30,
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "StaticImage",
"name": "helpImage",
"width": 512,
"height": 512,
"texture": "resources/e/menu/help.png"
},
{
"type": "Button",
"name": "backButton",
"width": 512,
"height": 128,
"textures": {
"normal": "resources/e/menu/button_back.png",
"hover": "resources/e/menu/button_back.png",
"pressed": "resources/e/menu/button_back.png"
}
}
]
}
}

View File

@ -0,0 +1,55 @@
{
"root": {
"type": "LinearLayout",
"orientation": "vertical",
"horizontal_align": "center",
"vertical_align": "center",
"spacing": 20,
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "StaticImage",
"name": "title",
"width": 512,
"height": 128,
"texture": "resources/e/menu/title.png"
},
{
"type": "Button",
"name": "startButton",
"width": 512,
"height": 128,
"textures": {
"normal": "resources/e/menu/button_start.png",
"hover": "resources/e/menu/button_start.png",
"pressed": "resources/e/menu/button_start.png"
}
},
{
"type": "Button",
"name": "helpButton",
"width": 512,
"height": 128,
"textures": {
"normal": "resources/e/menu/button_help.png",
"hover": "resources/e/menu/button_help.png",
"pressed": "resources/e/menu/button_help.png"
}
},
{
"type": "Button",
"name": "aboutButton",
"width": 512,
"height": 128,
"textures": {
"normal": "resources/e/menu/button_about.png",
"hover": "resources/e/menu/button_about.png",
"pressed": "resources/e/menu/button_about.png"
}
}
]
}
}

View File

@ -0,0 +1,26 @@
{
"root": {
"type": "LinearLayout",
"orientation": "vertical",
"horizontal_align": "center",
"vertical_align": "center",
"spacing": 20,
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "Button",
"name": "backButton",
"width": 512,
"height": 256,
"textures": {
"normal": "resources/e/menu/hint1.png",
"hover": "resources/e/menu/hint1.png",
"pressed": "resources/e/menu/hint1.png"
}
}
]
}
}

View File

@ -0,0 +1,33 @@
{
"root": {
"type": "LinearLayout",
"orientation": "vertical",
"horizontal_align": "center",
"vertical_align": "center",
"spacing": 20,
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "StaticImage",
"name": "title",
"width": 512,
"height": 512,
"texture": "resources/e/menu/final_loose.png"
},
{
"type": "Button",
"name": "backButton",
"width": 512,
"height": 128,
"textures": {
"normal": "resources/e/menu/restart_button.png",
"hover": "resources/e/menu/restart_button.png",
"pressed": "resources/e/menu/restart_button.png"
}
}
]
}
}

View File

@ -0,0 +1,22 @@
{
"root": {
"type": "LinearLayout",
"orientation": "vertical",
"horizontal_align": "center",
"vertical_align": "center",
"spacing": 20,
"x": 0,
"y": 0,
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "StaticImage",
"name": "title",
"width": 512,
"height": 512,
"texture": "resources/e/menu/final_win.png"
}
]
}
}

View File

@ -0,0 +1,178 @@
{
"cellSize": 0.4,
"agentRadius": 0.45,
"floorY": 0.0,
"objectPadding": 0.25,
"areas": [
{
"name": "main_corridor",
"available": true,
"polygon": [
[-2.2, 0.8],
[2.2, 0.8],
[2.2, -40.8],
[-2.2, -40.8]
]
},
{
"name": "left_door_05",
"available": true,
"polygon": [
[-3.4, -4.2],
[-2.0, -4.2],
[-2.0, -5.8],
[-3.4, -5.8]
]
},
{
"name": "right_door_05",
"available": true,
"polygon": [
[2.0, -4.2],
[3.4, -4.2],
[3.4, -5.8],
[2.0, -5.8]
]
},
{
"name": "left_room_05",
"available": true,
"polygon": [
[-8.8, -1.0],
[-3.0, -1.0],
[-3.0, -9.0],
[-8.8, -9.0]
]
},
{
"name": "right_room_05",
"available": true,
"polygon": [
[3.0, -1.0],
[8.8, -1.0],
[8.8, -9.0],
[3.0, -9.0]
]
},
{
"name": "left_door_15",
"available": true,
"polygon": [
[-3.4, -14.2],
[-2.0, -14.2],
[-2.0, -15.8],
[-3.4, -15.8]
]
},
{
"name": "right_door_15",
"available": true,
"polygon": [
[2.0, -14.2],
[3.4, -14.2],
[3.4, -15.8],
[2.0, -15.8]
]
},
{
"name": "left_room_15",
"available": true,
"polygon": [
[-8.8, -11.0],
[-3.0, -11.0],
[-3.0, -19.0],
[-8.8, -19.0]
]
},
{
"name": "right_room_15",
"available": true,
"polygon": [
[3.0, -11.0],
[8.8, -11.0],
[8.8, -19.0],
[3.0, -19.0]
]
},
{
"name": "left_door_25",
"available": true,
"polygon": [
[-3.4, -24.2],
[-2.0, -24.2],
[-2.0, -25.8],
[-3.4, -25.8]
]
},
{
"name": "right_door_25",
"available": true,
"polygon": [
[2.0, -24.2],
[3.4, -24.2],
[3.4, -25.8],
[2.0, -25.8]
]
},
{
"name": "left_room_25",
"available": true,
"polygon": [
[-8.8, -21.0],
[-3.0, -21.0],
[-3.0, -29.0],
[-8.8, -29.0]
]
},
{
"name": "right_room_25",
"available": true,
"polygon": [
[3.0, -21.0],
[8.8, -21.0],
[8.8, -29.0],
[3.0, -29.0]
]
},
{
"name": "left_door_35",
"available": true,
"polygon": [
[-3.4, -34.2],
[-2.0, -34.2],
[-2.0, -35.8],
[-3.4, -35.8]
]
},
{
"name": "right_door_35",
"available": true,
"polygon": [
[2.0, -34.2],
[3.4, -34.2],
[3.4, -35.8],
[2.0, -35.8]
]
},
{
"name": "left_room_35",
"available": true,
"polygon": [
[-8.8, -31.0],
[-3.0, -31.0],
[-3.0, -39.0],
[-8.8, -39.0]
]
},
{
"name": "right_room_35",
"available": true,
"polygon": [
[3.0, -31.0],
[8.8, -31.0],
[8.8, -39.0],
[3.0, -39.0]
]
}
]
}

View File

@ -0,0 +1,202 @@
{
"cellSize": 0.4,
"agentRadius": 0.45,
"floorY": 0.0,
"objectPadding": 0.25,
"areas": [
{
"name": "main_corridor",
"available": true,
"polygon": [
[-32, 15],
[-2, 15],
[-2, 2.35],
[-32, 2.35]
]
},
{
"name": "main_corridor1",
"available": true,
"polygon": [
[-2, 3.2],
[-14.1, 3.2],
[-14.1, -25],
[-2, -25]
]
},
{
"name": "main_corridor2",
"available": true,
"polygon": [
[-32, 5],
[-26.9, 5],
[-26.9, -25],
[-32, -25]
]
},
{
"name": "main_corridor3",
"available": true,
"polygon": [
[-32, -5.5],
[-7.3, -5.5],
[-7.3, -8.6],
[-32, -8.6]
]
},
{
"name": "main_corridor4",
"available": true,
"polygon": [
[-32, -25],
[-25.7, -25],
[-25.7, -8.6],
[-32, -8.6]
]
},
{
"name": "main_corridor5",
"available": true,
"polygon": [
[-2, -25],
[-14.89, -25],
[-14.89, -8.6],
[-2, -8.6]
]
},
{
"name": "main_corridor6",
"available": true,
"polygon": [
[-2, -25],
[-32, -25],
[-32, -13.5],
[-2, -13.5]
]
},
{
"name": "main_corridor7",
"available": true,
"polygon": [
[-16.9, -25],
[-24, -25],
[-24, -8.5],
[-16.9, -8.5]
]
},
{
"name": "main_corridor8",
"available": true,
"polygon": [
[-26.1, 1.5],
[-14.9, 1.5],
[-14.9, -4.8],
[-26.1, -4.8]
]
},
{
"name": "main_corridor9",
"available": true,
"polygon": [
[-14, -1.2],
[-16, -1.2],
[-16, 0],
[-14, 0]
]
},
{
"name": "main_corridor10",
"available": true,
"polygon": [
[-17.2, -3],
[-16, -3],
[-16, -5.5],
[-17.2, -5.5]
]
},
{
"name": "extension_left",
"available": true,
"polygon": [
[-400, -400],
[-32, -400],
[-32, 400],
[-400, 400]
]
},
{
"name": "extension_right",
"available": true,
"polygon": [
[-2, -400],
[400, -400],
[400, 400],
[-2, 400]
]
},
{
"name": "extension_bottom",
"available": true,
"polygon": [
[-32, -400],
[-2, -400],
[-2, -25],
[-32, -25]
]
},
{
"name": "extension_top",
"available": true,
"polygon": [
[-32, 15],
[-2, 15],
[-2, 400],
[-32, 400]
]
},
{
"name": "cor",
"available": true,
"forbidden": true,
"polygon": [
[-26.1, 1.5],
[-17.2, 1.5],
[-17.2, 0.5],
[-26.1, 0.5]
]
},
{
"name": "main_cor2",
"available": true,
"forbidden": true,
"polygon": [
[-22.18, -1.2],
[-17.2, -1.2],
[-17.2, -2.8],
[-22.18, -2.8]
]
},
{
"name": "main_cor3",
"available": true,
"forbidden": true,
"polygon": [
[-25.69, -2.6],
[-22.5, -2.6],
[-22.5, -3.8],
[-25.69, -3.8]
]
},
{
"name": "main_cor4",
"available": true,
"forbidden": true,
"polygon": [
[-23.6, -2.9],
[-22.2, -2.9],
[-22.2, -4.8],
[-23.6, -4.8]
]
}
]
}

View File

@ -0,0 +1,19 @@
{
"cellSize": 0.4,
"agentRadius": 0.45,
"floorY": 0.0,
"objectPadding": 0.25,
"areas": [
{
"name": "main_corridor",
"available": true,
"polygon": [
[26, 9.5],
[14, 9.5],
[14, -8.7],
[26, -8.7]
]
}
]
}

View File

@ -0,0 +1,50 @@
{
"npcs": [
{
"id": "npc_01_default",
"name": "NPC Default Guard",
"texturePath": "resources/w/default_skin001.png",
"animationIdlePath": "resources/w/default_idle002.anim",
"animationWalkPath": "resources/w/default_walk001.anim",
"positionX": 0.0,
"positionY": 0.0,
"positionZ": -10.0,
"walkSpeed": 1.5,
"rotationSpeed": 8.0,
"modelScale": 0.01,
"modelCorrectionRotX": 0.0,
"modelCorrectionRotY": 180.0,
"modelCorrectionRotZ": 0.0,
"interactionRadius": 2.0,
"gift": {
"id": "guard_token",
"name": "Guard's Token",
"description": "A token from the Guard - sign of respect",
"icon": "resources/w/red.png"
}
},
{
"id": "npc_03_ghost",
"name": "NPC Floating Ghost",
"texturePath": "resources/w/ghost_skin001.png",
"animationIdlePath": "resources/w/default_float001.anim",
"animationWalkPath": "resources/w/default_float001.anim",
"positionX": 0.0,
"positionY": 0.0,
"positionZ": -5.0,
"walkSpeed": 1.5,
"rotationSpeed": 8.0,
"modelScale": 0.01,
"modelCorrectionRotX": 0.0,
"modelCorrectionRotY": 0.0,
"modelCorrectionRotZ": 0.0,
"interactionRadius": 1.0,
"gift": {
"id": "ghost_essence",
"name": "Ghost's Essence",
"description": "A mysterious essence from the Ghost realm",
"icon": "resources/w/red.png"
}
}
]
}

View File

@ -0,0 +1,27 @@
{
"npcs": [
{
"id": "npc_03_ghost",
"name": "NPC Floating Ghost",
"texturePath": "resources/w/ghost_skin001.png",
"animationIdlePath": "resources/w/default_float001.anim",
"animationWalkPath": "resources/w/default_float001.anim",
"positionX": 0.0,
"positionY": 0.0,
"positionZ": -5.0,
"walkSpeed": 1.5,
"rotationSpeed": 8.0,
"modelScale": 0.01,
"modelCorrectionRotX": 0.0,
"modelCorrectionRotY": 0.0,
"modelCorrectionRotZ": 0.0,
"interactionRadius": 1.0,
"gift": {
"id": "ghost_essence",
"name": "Ghost's Essence",
"description": "A mysterious essence from the Ghost realm",
"icon": "resources/w/red.png"
}
}
]
}

View File

@ -0,0 +1,74 @@
{
"root": {
"type": "FrameLayout",
"name": "inventory_root",
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "TextButton",
"name": "inventory_button",
"x": 50.0,
"y": 50.0,
"width": 150.0,
"height": 60.0,
"text": "Inventory",
"fontSize": 24,
"fontPath": "resources/fonts/DroidSans.ttf",
"textCentered": true,
"color": [1.0, 1.0, 1.0, 1.0],
"textures": {
"normal": "resources/w/red.png",
"hover": "resources/w/red.png",
"pressed": "resources/w/red.png"
}
},
{
"type": "FrameLayout",
"name": "inventory_items_panel",
"x": 50.0,
"y": 150.0,
"width": 250.0,
"height": 300.0,
"children": [
{
"type": "StaticImage",
"name": "panel_background",
"width": 200,
"height": 400,
"texture": "resources/w/red.png"
},
{
"type": "TextView",
"name": "inventory_items_text",
"x": -100.0,
"y": -100.0,
"width": 250.0,
"height": 300.0,
"text": "Inventory (Empty)",
"fontSize": 18,
"fontPath": "resources/fonts/DroidSans.ttf",
"centered": false,
"color": [1.0, 1.0, 1.0, 1.0]
},
{
"type": "TextButton",
"name": "close_inventory_button",
"x": 165.0,
"y": 0.0,
"width": 40.0,
"height": 40.0,
"text": "X",
"fontSize": 20,
"fontPath": "resources/fonts/DroidSans.ttf",
"textCentered": true,
"color": [1.0, 1.0, 1.0, 1.0],
"textures": {
"normal": "resources/w/blue.png"
}
}
]
}
]
}
}

BIN
resources/connecting.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/connection_failed.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/connection_lost.png (Stored with Git LFS)

Binary file not shown.

BIN
resources/dialogue/choice_main.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resources/dialogue/choice_optional.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resources/dialogue/choice_selected.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resources/dialogue/cutscene_subtitle_bg.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resources/dialogue/portrait_frame.png (Stored with Git LFS) Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

BIN
resources/dialogue/textbox_bg.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resources/e/Salesperson_packed0_diffuse.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resources/e/Salesperson_packed1_diffuse.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resources/e/Salesperson_packed2_diffuse.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resources/e/Wheel_base002.png (Stored with Git LFS) Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More