66 lines
1.9 KiB
Text
66 lines
1.9 KiB
Text
[gd_scene load_steps=2 format=3 uid="uid://bcxbw6wd54ksv"]
|
|
|
|
[sub_resource type="GDScript" id="GDScript_r4thc"]
|
|
script/source = "extends Control
|
|
|
|
func _ready() -> void:
|
|
$TemplateRing.hide()
|
|
|
|
func display_rings(player: Node3D, rings: Array[Ring]) -> void:
|
|
var old_rings_display := $Rings.get_children()
|
|
var difference := len(rings) - len(old_rings_display)
|
|
|
|
# Too many displayed, free them
|
|
for i in -difference:
|
|
old_rings_display[-(1 + i)].queue_free()
|
|
# Not enough displayed, create some
|
|
for i in difference:
|
|
var new_child := $TemplateRing.duplicate()
|
|
new_child.name = \"Ring\" + str(i + 1)
|
|
new_child.show()
|
|
$Rings.add_child(new_child)
|
|
|
|
var rings_display := $Rings.get_children()
|
|
var center: Vector2i = get_viewport().size / 2
|
|
for i in len(rings):
|
|
rings_display[i].color = rings[i].material.albedo_color
|
|
rings_display[i].rotation = rings[i].rotation.z
|
|
rings_display[i].position.x = center.x + rings[i].position.x - player.ball_position.x
|
|
rings_display[i].position.y = center.y - rings[i].position.y + player.ball_position.y
|
|
|
|
if rings[i].collected:
|
|
rings_display[i].scale = $TemplateRing.scale * 2 * min(4, max(1, rings[i].scale.x))
|
|
else:
|
|
rings_display[i].scale = $TemplateRing.scale * 3 * min(4, max(1, rings[i].scale.x))
|
|
"
|
|
|
|
[node name="Map" type="Control"]
|
|
layout_mode = 3
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
grow_horizontal = 2
|
|
grow_vertical = 2
|
|
script = SubResource("GDScript_r4thc")
|
|
|
|
[node name="ColorRect" type="ColorRect" parent="."]
|
|
layout_mode = 1
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
grow_horizontal = 2
|
|
grow_vertical = 2
|
|
color = Color(1, 0, 1, 0.0392157)
|
|
|
|
[node name="Rings" type="Control" parent="."]
|
|
layout_mode = 1
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
grow_horizontal = 2
|
|
grow_vertical = 2
|
|
|
|
[node name="TemplateRing" type="ColorRect" parent="."]
|
|
layout_mode = 0
|
|
offset_right = 2.0
|
|
offset_bottom = 2.0
|