Race 2: своя палитра и небо, чистовое запекание, вентиляторы сильнее, скрытая шахта, новая песня

- палитра целиком (индиго, пурпур, ледяная бирюза): SOLID/NEON, SURFACES/GLOWS, туман, ambient, свет запекания, ворота, полосы, надписи; новое небо
- запекание 384 сэмпла + огни у подножия башни
- вентилятор: VENT_MAX_RISE 16, VENT_ACCEL 80; шахта-лифт без знака и без столба/света (hidden)
- музыка Race 2: Poloz «On My Way to Hell» с 1:40

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-29 17:21:07 +05:00
co-authored by Claude Sonnet 5.5
parent c3e0ae40b2
commit 86a1821d27
8 changed files with 41 additions and 36 deletions
+7 -3
View File
@@ -6,7 +6,8 @@ extends Area3D
@export var size := Vector2(6.0, 6.0) # сечение столба (X, Z), м
@export var height := 14.0 # высота столба, м
@export var color := Color(0.45, 0.85, 0.35)
@export var color := Color(0.25, 0.95, 0.75)
@export var hidden := false # скрытый поток (шахта-лифт): только тёмная решётка, без столба, щелей и света
const SHADER := """
shader_type spatial;
@@ -55,7 +56,8 @@ func _build_visuals() -> void:
col.material_override = sm
col.position.y = height * 0.5
col.cast_shadow = GeometryInstance3D.SHADOW_CASTING_SETTING_OFF
add_child(col)
if not hidden:
add_child(col)
# решётка на полу: тёмная плита с светящимися щелями
var dark := StandardMaterial3D.new()
dark.albedo_color = Color(0.02, 0.025, 0.03)
@@ -67,11 +69,13 @@ func _build_visuals() -> void:
var plate := BoxMesh.new()
plate.size = Vector3(size.x - 0.3, 0.08, size.y - 0.3)
_add(plate, dark, Vector3(0, 0.04, 0))
var n := int((size.x - 0.8) / 0.7)
var n := 0 if hidden else int((size.x - 0.8) / 0.7)
for i in n:
var slit := BoxMesh.new()
slit.size = Vector3(0.22, 0.03, size.y - 1.0)
_add(slit, glow, Vector3(-(size.x - 0.8) * 0.5 + (i + 0.5) * (size.x - 0.8) / n, 0.095, 0))
if hidden:
return
# слабый свет над решёткой
var l := OmniLight3D.new()
l.light_color = color