Files

89 lines
5.3 KiB
GDScript

# Сгенерировано Blender models/race_02/build_race.py из layout.py — не править руками
extends RefCounted
# Старт: 8 слотов в ряд поперёк трассы, лицом по трассе (-Z); центр капсулы
const START_SLOTS := [
Vector3(-9.80, 61.25, -28.00),
Vector3(-7.00, 61.25, -28.00),
Vector3(-4.20, 61.25, -28.00),
Vector3(-1.40, 61.25, -28.00),
Vector3(1.40, 61.25, -28.00),
Vector3(4.20, 61.25, -28.00),
Vector3(7.00, 61.25, -28.00),
Vector3(9.80, 61.25, -28.00),
]
# Ворота по порядку: [центр капсулы на полу ворот, полуширина поперёк трассы (м), рыскание (град; 0 = -Z, -90 = на +X, 180 = на +Z)]. Последний = ФИНИШ
# Ворота стоят там, где ветки (безопасная / рискованная / секретная) сливаются.
const CHECKPOINTS := [
[Vector3(0.00, 61.20, -70.00), 8.0, 0.0], # cp1
[Vector3(0.00, 62.20, -104.00), 17.0, 0.0], # cp2
[Vector3(107.00, 62.20, -232.00), 25.0, 0.0], # cp3
[Vector3(109.00, 53.00, -352.00), 12.0, 0.0], # cp4
[Vector3(110.00, 53.00, -384.00), 20.0, 0.0], # cp5
[Vector3(110.00, 53.00, -468.00), 50.0, 0.0], # cp6
[Vector3(110.00, 53.00, -508.00), 22.0, 0.0], # cp7
[Vector3(110.00, 53.00, -577.00), 26.0, 0.0], # cp8
[Vector3(110.00, 53.00, -634.00), 18.0, 0.0], # cp9
[Vector3(150.00, 48.00, -652.00), 28.0, -90.0], # cp10
[Vector3(200.00, 29.00, -560.00), 12.0, 180.0], # cp11
[Vector3(203.00, 25.00, -530.00), 33.0, 180.0], # cp12
[Vector3(210.00, 75.00, -488.00), 14.0, 180.0], # cp13
]
# Лазеры: центр, размер, режим (0 — всегда, 1 — пульсирует), период, время включения, сдвиг
const LASERS := [
[Vector3(108.00, 52.25, -544.25), Vector3(4.00, 0.90, 0.50), 1, 3.00, 1.00, 0.00], # mL0
[Vector3(112.00, 52.25, -544.25), Vector3(4.00, 0.90, 0.50), 1, 3.00, 1.00, 1.50], # mR0
[Vector3(108.00, 53.45, -560.25), Vector3(4.00, 0.70, 0.50), 1, 3.00, 1.00, 0.00], # mL1
[Vector3(112.00, 53.45, -560.25), Vector3(4.00, 0.70, 0.50), 1, 3.00, 1.00, 1.50], # mR1
[Vector3(108.00, 52.25, -576.25), Vector3(4.00, 0.90, 0.50), 1, 3.00, 1.00, 0.00], # mL2
[Vector3(112.00, 52.25, -576.25), Vector3(4.00, 0.90, 0.50), 1, 3.00, 1.00, 1.50], # mR2
[Vector3(108.00, 53.45, -592.25), Vector3(4.00, 0.70, 0.50), 1, 3.00, 1.00, 0.00], # mL3
[Vector3(112.00, 53.45, -592.25), Vector3(4.00, 0.70, 0.50), 1, 3.00, 1.00, 1.50], # mR3
[Vector3(108.00, 52.25, -608.25), Vector3(4.00, 0.90, 0.50), 1, 3.00, 1.00, 0.00], # mL4
[Vector3(112.00, 52.25, -608.25), Vector3(4.00, 0.90, 0.50), 1, 3.00, 1.00, 1.50], # mR4
]
# Вентиляционные потоки: центр решётки на полу, сечение (X, Z), высота столба, скрытый (без света и столба — шахта-лифт)
const VENTS := [
[Vector3(107.00, 43.80, -450.00), Vector2(6.00, 6.00), 14.00, false], # v_tn
[Vector3(230.00, 23.80, -513.00), Vector2(6.00, 6.00), 15.00, false], # v1
[Vector3(230.00, 36.30, -477.00), Vector2(6.00, 6.00), 15.00, false], # v2
[Vector3(198.00, 48.80, -465.00), Vector2(6.00, 6.00), 15.00, false], # v3
[Vector3(190.00, 61.30, -481.00), Vector2(6.00, 6.00), 15.00, false], # v4
[Vector3(210.00, 23.80, -501.75), Vector2(3.00, 3.50), 53.00, true], # v_lift
]
# Ускоряющие полосы: центр на полу, размер (ширина, длина), рыскание (направление разгона), скорость
const STRIPS := [
[Vector3(61.00, 62.00, -105.00), Vector2(6.00, 8.00), -45.0, 22.0], # s_p2a
[Vector3(0.00, 60.00, -70.00), Vector2(6.00, 14.00), 0.0, 22.0], # s_b1
[Vector3(9.00, 61.00, -105.00), Vector2(6.00, 16.00), -90.0, 22.0], # s_T2
[Vector3(79.00, 52.80, -304.00), Vector2(5.00, 8.00), 0.0, 22.0], # s_ruin
[Vector3(109.00, 51.80, -335.00), Vector2(6.00, 8.00), 0.0, 22.0], # s_LM
[Vector3(107.00, 43.80, -408.00), Vector2(5.00, 10.00), 0.0, 22.0], # s_tn
[Vector3(101.00, 48.20, -524.00), Vector2(4.00, 12.00), 0.0, 22.0], # s_cw524
[Vector3(101.00, 48.20, -548.00), Vector2(4.00, 12.00), 0.0, 22.0], # s_cw548
[Vector3(101.00, 48.20, -572.00), Vector2(4.00, 12.00), 0.0, 22.0], # s_cw572
[Vector3(101.00, 48.20, -596.00), Vector2(4.00, 12.00), 0.0, 22.0], # s_cw596
[Vector3(149.00, 46.80, -649.00), Vector2(6.00, 14.00), -90.0, 22.0], # s_d1
[Vector3(113.00, 51.80, -642.00), Vector2(6.00, 14.00), -90.0, 22.0], # s_q1
[Vector3(202.00, 41.80, -652.00), Vector2(6.00, 14.00), 180.0, 22.0], # s_d3
[Vector3(202.00, 34.80, -604.00), Vector2(6.00, 10.00), 180.0, 22.0], # s_d5
[Vector3(200.00, 23.80, -530.00), Vector2(6.00, 10.00), 180.0, 22.0], # s_f0
]
# Закрытые места без дождя (траншея, шахта): x0, x1, z0, z1 (Godot), пол, потолок
const COVERED := [
[102.0, 112.0, -408.0, -452.0, 42.8, 47.2], # траншея
[206.5, 213.5, -505.5, -500.0, 22.8, 76.8], # шахта-лифт
]
# Портал в хаб за финишем: позиция на полу площадки
const PORTAL := Vector3(210.00, 73.80, -476.00)
# Длина безопасного маршрута, м
const TRACK_LENGTH := 1228.9
# Срыв: на столько ниже последнего чекпоинта — возрождение
const KILL_DEPTH := 32.0