Add realistic cockpit surface textures
This commit is contained in:
1 parent
5455ae7928
commit
0b79bf9b82
8 files changed
+160
-23
No files matched your search
@@ -12,7 +12,7 @@ var _pressure_needle: Node3D
|
||||
func _init(materials: CockpitMaterialPalette) -> void:
|
||||
_materials = materials
|
||||
name = "AnalogGauges"
|
||||
_battery_needle = _add_gauge("BatteryGauge", Vector3(-0.34, 0.48, -1.14), "V")
|
||||
_battery_needle = _add_gauge("BatteryGauge", Vector3(-0.34, 0.48, -1.14), "BAT")
|
||||
_pressure_needle = _add_gauge("PressureGauge", Vector3(0.34, 0.48, -1.14), "BAR")
|
||||
|
||||
|
||||
@@ -70,10 +70,13 @@ func _add_gauge(gauge_name: String, position: Vector3, caption: String) -> Node3
|
||||
face_mesh.height = 0.039
|
||||
face_mesh.radial_segments = 32
|
||||
face.mesh = face_mesh
|
||||
face.material_override = _materials.ivory
|
||||
face.material_override = _materials.gauge_face
|
||||
face.rotation_degrees.x = 90.0
|
||||
face.position.z = 0.003
|
||||
gauge.add_child(face)
|
||||
_add_scale_label(gauge, "0", Vector3(-0.052, -0.018, 0.028))
|
||||
_add_scale_label(gauge, "50", Vector3(0.0, 0.052, 0.028))
|
||||
_add_scale_label(gauge, "100", Vector3(0.052, -0.018, 0.028))
|
||||
var needle_root := Node3D.new()
|
||||
needle_root.name = "Needle"
|
||||
needle_root.position.z = 0.027
|
||||
@@ -81,9 +84,9 @@ func _add_gauge(gauge_name: String, position: Vector3, caption: String) -> Node3
|
||||
CockpitMeshFactory.add_box(
|
||||
"NeedleBlade",
|
||||
needle_root,
|
||||
Vector3(0.0, 0.033, 0.0),
|
||||
Vector3(0.012, 0.064, 0.008),
|
||||
_materials.red_emission
|
||||
Vector3(0.0, 0.034, 0.0),
|
||||
Vector3(0.008, 0.068, 0.006),
|
||||
_materials.needle_paint
|
||||
)
|
||||
CockpitMeshFactory.add_cylinder(
|
||||
"NeedleHub",
|
||||
@@ -100,11 +103,35 @@ func _add_gauge(gauge_name: String, position: Vector3, caption: String) -> Node3
|
||||
label.font_size = 12
|
||||
label.pixel_size = 0.0007
|
||||
label.modulate = Color(0.11, 0.12, 0.10)
|
||||
label.position = Vector3(0.0, -0.045, 0.032)
|
||||
label.position = Vector3(0.0, -0.044, 0.032)
|
||||
gauge.add_child(label)
|
||||
var glass := MeshInstance3D.new()
|
||||
glass.name = "GaugeGlass"
|
||||
var glass_mesh := CylinderMesh.new()
|
||||
glass_mesh.top_radius = 0.081
|
||||
glass_mesh.bottom_radius = 0.081
|
||||
glass_mesh.height = 0.004
|
||||
glass_mesh.radial_segments = 40
|
||||
glass.mesh = glass_mesh
|
||||
glass.material_override = _materials.gauge_glass
|
||||
glass.rotation_degrees.x = 90.0
|
||||
glass.position.z = 0.036
|
||||
glass.cast_shadow = GeometryInstance3D.SHADOW_CASTING_SETTING_OFF
|
||||
gauge.add_child(glass)
|
||||
return needle_root
|
||||
|
||||
|
||||
func _add_scale_label(gauge: Node3D, text: String, position: Vector3) -> void:
|
||||
var label := Label3D.new()
|
||||
label.name = "Scale%s" % text
|
||||
label.text = text
|
||||
label.font_size = 9
|
||||
label.pixel_size = 0.00048
|
||||
label.modulate = Color(0.09, 0.085, 0.065)
|
||||
label.position = position
|
||||
gauge.add_child(label)
|
||||
|
||||
|
||||
func _set_needle_ratio(needle: Node3D, ratio: float) -> void:
|
||||
if needle != null:
|
||||
needle.rotation_degrees.z = lerpf(125.0, -125.0, clampf(ratio, 0.0, 1.0))
|
||||
Reference in new issue
Block a user