# Сгенерировано 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