update
This commit is contained in:
@@ -8,6 +8,7 @@ const WALL_SEGS := 20 ## Bandensegmente - Godot kennt keinen hohlen Zylin
|
||||
const WALL_H := 0.55 ## unsichtbare Begrenzung, damit nichts herausspringt
|
||||
const SEAT_ARC := ZONE_RAD * 2.0 + 0.85 ## Bogenlänge, die ein Platz am Tischrand braucht
|
||||
const MIN_ZONE_R := 1.15
|
||||
const Stoffe = preload("res://scripts/stoffe.gd") ## Holz, Filz, Messing aus Rauschen
|
||||
const RIM_RUHE := Color(0.22, 0.15, 0.09) ## Zonenrand, wenn der Platz wartet
|
||||
const RIM_ZUG := Color(0.85, 0.66, 0.22) ## Zonenrand des Platzes, der dran ist
|
||||
const TILT_DEG := 15.0 ## Neigung der Kamera gegen die Senkrechte
|
||||
@@ -32,7 +33,7 @@ var plates: Array[Sprite3D] = []
|
||||
var rims: Array[MeshInstance3D] = [] ## Rand der Zone, leuchtet beim Zug
|
||||
var topf_muenzen: Dictionary = {} ## Wurfnummer -> Münze in der Tischmitte
|
||||
static var _muenz_mesh: CylinderMesh
|
||||
static var _muenz_mat: StandardMaterial3D
|
||||
static var _muenz_mat: ShaderMaterial
|
||||
var dice: Array = [] ## seat -> Array[Die]
|
||||
|
||||
var camera: Camera3D
|
||||
@@ -117,7 +118,7 @@ func _build_room() -> void:
|
||||
tcm.height = 0.12
|
||||
tmi.mesh = tcm
|
||||
tmi.position = Vector3(0, TABLE_H - 0.06, 0)
|
||||
tmi.material_override = _mat(Color(0.10, 0.28, 0.17), 0.85)
|
||||
tmi.material_override = Stoffe.filz(Color(0.10, 0.28, 0.17), table_r, 0.35)
|
||||
table.add_child(tmi)
|
||||
add_child(table)
|
||||
|
||||
@@ -129,7 +130,7 @@ func _build_room() -> void:
|
||||
lcm.height = TABLE_H - 0.12
|
||||
leg.mesh = lcm
|
||||
leg.position = Vector3(0, (TABLE_H - 0.12) * 0.5, 0)
|
||||
leg.material_override = _mat(Color(0.16, 0.11, 0.07), 0.7)
|
||||
leg.material_override = Stoffe.holz(Color(0.30, 0.19, 0.09), Color(0.16, 0.10, 0.05), 0.5, 4.0)
|
||||
add_child(leg)
|
||||
|
||||
|
||||
@@ -166,7 +167,7 @@ func _build_seat(i: int) -> void:
|
||||
fm.radial_segments = 32
|
||||
felt.mesh = fm
|
||||
felt.position = Vector3(0, 0.006, 0)
|
||||
felt.material_override = _mat(Color(0.07, 0.20, 0.13), 0.95)
|
||||
felt.material_override = Stoffe.filz(Color(0.07, 0.20, 0.13), ZONE_RAD, 0.6)
|
||||
zone.add_child(felt)
|
||||
|
||||
# Sichtbarer Rand
|
||||
@@ -193,7 +194,9 @@ func _build_seat(i: int) -> void:
|
||||
cm.height = 0.44
|
||||
cup_mi.mesh = cm
|
||||
cup_mi.position = Vector3(0, 0.22, 0)
|
||||
cup_mi.material_override = _mat(Color(0.35, 0.12, 0.10), 0.5)
|
||||
# Enge, weiche Maserung: die Ringe laufen am Becher senkrecht, zu grob sähe
|
||||
# das nach Fassdauben aus.
|
||||
cup_mi.material_override = Stoffe.holz(Color(0.40, 0.17, 0.11), Color(0.30, 0.12, 0.08), 0.5, 5.0)
|
||||
cup.add_child(cup_mi)
|
||||
cups.append(cup)
|
||||
cup_tweens.append(null)
|
||||
@@ -547,7 +550,7 @@ func set_topf(liste: Array, ziel := -1) -> void:
|
||||
tw.tween_callback(mi.queue_free)
|
||||
|
||||
|
||||
static var _muenz_mat_wappen: StandardMaterial3D
|
||||
static var _muenz_mat_wappen: ShaderMaterial
|
||||
static var _praeg_mesh: TorusMesh
|
||||
static var _praeg_mat: StandardMaterial3D
|
||||
|
||||
@@ -564,17 +567,10 @@ static func _muenz_form() -> CylinderMesh:
|
||||
return _muenz_mesh
|
||||
|
||||
|
||||
static func _muenz_stoff(wappen: bool) -> StandardMaterial3D:
|
||||
static func _muenz_stoff(wappen: bool) -> ShaderMaterial:
|
||||
if _muenz_mat == null:
|
||||
_muenz_mat = StandardMaterial3D.new()
|
||||
_muenz_mat.albedo_color = Color(0.80, 0.62, 0.26)
|
||||
_muenz_mat.metallic = 0.85
|
||||
_muenz_mat.roughness = 0.35
|
||||
_muenz_mat.emission_enabled = true
|
||||
_muenz_mat.emission = Color(0.55, 0.40, 0.12)
|
||||
_muenz_mat.emission_energy_multiplier = 0.35
|
||||
_muenz_mat_wappen = _muenz_mat.duplicate()
|
||||
_muenz_mat_wappen.emission_energy_multiplier = 0.9
|
||||
_muenz_mat = Stoffe.messing(0.35)
|
||||
_muenz_mat_wappen = Stoffe.messing(0.9)
|
||||
return _muenz_mat_wappen if wappen else _muenz_mat
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user