Implement shoutout scene and terminal

This commit is contained in:
Otto 2024-10-10 22:04:47 +03:00
parent 457e9b4533
commit 563e9a971b
12 changed files with 303 additions and 89 deletions

BIN
assets/fonts/Linebeam.ttf Normal file

Binary file not shown.

View file

@ -0,0 +1,34 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://b55n3f2bh16v5"
path="res://.godot/imported/Linebeam.ttf-b1b753eeebb2522149bb72c0e253390f.fontdata"
[deps]
source_file="res://assets/fonts/Linebeam.ttf"
dest_files=["res://.godot/imported/Linebeam.ttf-b1b753eeebb2522149bb72c0e253390f.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=true
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=1
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

View file

@ -1,10 +1,10 @@
[gd_scene load_steps=5 format=3 uid="uid://cru0ihb4eh5k3"]
[ext_resource type="Shader" path="res://assets/shaders/ball.gdshader" id="1_361vo"]
[ext_resource type="Shader" path="res://assets/shaders/ball.gdshader" id="1_e7m5n"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_1mwc0"]
render_priority = 0
shader = ExtResource("1_361vo")
shader = ExtResource("1_e7m5n")
[sub_resource type="SphereMesh" id="SphereMesh_3aj7c"]
material = SubResource("ShaderMaterial_1mwc0")
@ -15,6 +15,7 @@ material = SubResource("ShaderMaterial_1mwc0")
[node name="RigidBody3D" type="RigidBody3D" parent="."]
gravity_scale = 0.279
linear_velocity = Vector3(0, -2, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D"]
mesh = SubResource("SphereMesh_3aj7c")

View file

@ -1,6 +1,7 @@
[gd_scene load_steps=5 format=3 uid="uid://cwtpmstacd7h6"]
[gd_scene load_steps=11 format=3 uid="uid://cwtpmstacd7h6"]
[ext_resource type="Script" path="res://scripts/balls.gd" id="1_phwel"]
[ext_resource type="PackedScene" uid="uid://br7cnj1spc4rk" path="res://assets/auto_scale.tscn" id="2_cvkem"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_b4b3o"]
friction = 0.5
@ -13,29 +14,132 @@ data = PackedVector3Array(0, 0.7412, -0.9659, 0, 0.5, -0.866, 0.25, 0.7412, -0.9
background_mode = 1
background_energy_multiplier = 0.0
[node name="Balls" type="Node3D"]
[sub_resource type="LabelSettings" id="LabelSettings_q7ejd"]
font_size = 256
[sub_resource type="ViewportTexture" id="ViewportTexture_lydef"]
viewport_path = NodePath("BallsViewport")
[sub_resource type="Shader" id="Shader_cytw2"]
code = "shader_type canvas_item;
uniform bool enabled;
uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, filter_nearest;
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
vec4 col = texture(TEXTURE,UV).rgba;
if (enabled) {
if (col.a != 0.0) {
col.a = 0.0;
}
else {
col.a = 1.0;
}
}
else {
col.a = 0.0;
}
COLOR = col;
}
//void light() {
// Called for every pixel for every light affecting the CanvasItem.
// Uncomment to replace the default light processing function with this one.
//}
"
[sub_resource type="ShaderMaterial" id="ShaderMaterial_2rcjr"]
shader = SubResource("Shader_cytw2")
shader_parameter/enabled = true
[sub_resource type="ViewportTexture" id="ViewportTexture_kd4bv"]
viewport_path = NodePath("TextViewPort")
[node name="Balls" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_phwel")
[node name="StaticBody3D" type="StaticBody3D" parent="."]
[node name="BallsViewport" type="SubViewport" parent="."]
size = Vector2i(1920, 1080)
[node name="Balls" type="Node3D" parent="BallsViewport"]
[node name="StaticBody3D" type="StaticBody3D" parent="BallsViewport/Balls"]
physics_material_override = SubResource("PhysicsMaterial_b4b3o")
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="BallsViewport/Balls/StaticBody3D"]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_vdks7")
disabled = true
[node name="Timer" type="Timer" parent="."]
wait_time = 0.049
[node name="Timer" type="Timer" parent="BallsViewport/Balls"]
wait_time = 0.003
autostart = true
[node name="Camera3D" type="Camera3D" parent="."]
[node name="Camera3D" type="Camera3D" parent="BallsViewport/Balls"]
transform = Transform3D(1, 0, 0, 0, 0.964732, 0.263233, 0, -0.263233, 0.964732, 0, 1.07001, 5.63238)
current = true
size = 2.802
far = 100.0
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -0.888369, 0.45913, 0, -0.45913, -0.888369, 0, -3.62865, 0)
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="BallsViewport/Balls"]
transform = Transform3D(1, 0, 0, 0, -0.106282, 0.994336, 0, -0.994336, -0.106282, 0, 0, 0)
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
[node name="WorldEnvironment" type="WorldEnvironment" parent="BallsViewport/Balls"]
environment = SubResource("Environment_a5sfg")
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
[node name="AutoScale" parent="BallsViewport" instance=ExtResource("2_cvkem")]
[node name="TextViewPort" type="SubViewport" parent="."]
transparent_bg = true
size = Vector2i(1920, 1080)
[node name="Label" type="Label" parent="TextViewPort"]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -907.5
offset_top = -174.5
offset_right = 907.5
offset_bottom = 174.5
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 4
text = "WE ❤️"
label_settings = SubResource("LabelSettings_q7ejd")
horizontal_alignment = 1
[node name="AutoScale" parent="TextViewPort" instance=ExtResource("2_cvkem")]
[node name="Out" type="TextureRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("ViewportTexture_lydef")
[node name="TextMask" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_2rcjr")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("ViewportTexture_kd4bv")
[connection signal="timeout" from="BallsViewport/Balls/Timer" to="." method="_on_timer_timeout"]

View file

@ -344,6 +344,20 @@ tracks/3/keys = {
"update": 0,
"values": [Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 1)]
}
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath(".")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(4),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"fade_audio"
}]
}
[sub_resource type="Animation" id="Animation_5f8px"]
resource_name = "xtra_wipe"
@ -608,10 +622,10 @@ layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 1387.0
offset_top = -531.0
offset_right = 1387.0
offset_bottom = -531.0
offset_left = -341.0
offset_top = -1424.0
offset_right = -341.0
offset_bottom = -1424.0
grow_horizontal = 2
grow_vertical = 2
rotation = 0.477038
@ -677,6 +691,8 @@ layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = 788.0
offset_bottom = 788.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 1)

View file

@ -288,7 +288,6 @@ stretch_mode = 6
[node name="AutoScale" parent="KaleidoViewport" instance=ExtResource("2_7v8f2")]
[node name="TextMask" type="TextureRect" parent="."]
visible = false
material = SubResource("ShaderMaterial_ahqjw")
layout_mode = 1
anchors_preset = 15

View file

@ -4,7 +4,7 @@
[sub_resource type="Animation" id="Animation_qy15n"]
resource_name = "timeline"
length = 45.0
length = 70.0
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
@ -12,7 +12,7 @@ tracks/0/path = NodePath(".")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 10.0333, 45, 60.0333),
"times": PackedFloat32Array(0, 20, 44.9667, 57.1),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"values": [{
"args": [0],
@ -21,10 +21,10 @@ tracks/0/keys = {
"args": [1],
"method": &"set_scene"
}, {
"args": [4],
"args": [2],
"method": &"set_scene"
}, {
"args": [2],
"args": [3],
"method": &"set_scene"
}]
}

View file

@ -1,64 +1,94 @@
[gd_scene load_steps=8 format=3 uid="uid://dfvl3luba7j4"]
[ext_resource type="Texture2D" uid="uid://5hxbsfm0aa0" path="res://icon.svg" id="1_3phrh"]
[ext_resource type="FontFile" uid="uid://b55n3f2bh16v5" path="res://assets/fonts/Linebeam.ttf" id="2_04cpk"]
[sub_resource type="GDScript" id="GDScript_axp0a"]
resource_name = "Test"
script/source = "extends Control
var lines: Array[String] = [
\"[code]piix4_smbus 0000:00:14.0: SMBus Host Controller at 0xb00, revision 0[/code]\\n\",
\"[code]piix4_smbus 0000:00:14.0: Using register 0x02 for SMBus port selection[/code]\\n\",
\"[code]i2c i2c-9: Successfully instantiated SPD at 0x50[/code]\\n\",
\"[code]i2c i2c-9: Successfully instantiated SPD at 0x51[/code]\\n\",
\"[code]i2c i2c-9: Successfully instantiated SPD at 0x52[/code]\\n\",
\"[code]cryptd: max_cpu_qlen set to 1000[/code]\\n\",
\"[code]i2c i2c-9: Successfully instantiated SPD at 0x53[/code]\\n\",
\"[code]piix4_smbus 0000:00:14.0: Auxiliary SMBus Host Controller at 0xb20[/code]\\n\",
\"[code]sp5100_tco: SP5100/SB800 TCO WatchDog Timer Driver[/code]\\n\",
\"[code]sp5100-tco sp5100-tco: Using 0xfeb00000 for watchdog MMIO address[/code]\\n\",
\"[code]LOADING DEMO[pulse freq=1.0 color=#ffffff40 ease=-2.0]...[/pulse][/code]\\n\"]
func _ready() -> void:
$ScramblingText.infinite = true
$ScramblingText.start()
$AnimationPlayer.play(\"blink\");
func _on_timer_timeout() -> void:
$ScramblingText.infinite = false;
$AnimationPlayer.play(\"terminal\");
func next_line() -> void:
$Terminal.append_text(lines[0]);
lines.remove_at(0);
"
[sub_resource type="LabelSettings" id="LabelSettings_w3bnc"]
font_size = 48
[sub_resource type="LabelSettings" id="LabelSettings_78g6a"]
font_size = 48
[sub_resource type="Animation" id="Animation_dirfa"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Label:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_t3ulj"]
resource_name = "blink"
length = 2.0
loop_mode = 1
tracks/0/type = "value"
[sub_resource type="Animation" id="Animation_6cb10"]
resource_name = "terminal"
length = 5.0
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Label:visible")
tracks/0/path = NodePath(".")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
"times": PackedFloat32Array(0.533333, 1.16667, 2, 2.06667, 2.1, 2.33333, 2.46667, 2.53333, 2.63333, 2.73333, 5),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"values": [{
"args": [],
"method": &"next_line"
}, {
"args": [],
"method": &"next_line"
}, {
"args": [],
"method": &"next_line"
}, {
"args": [],
"method": &"next_line"
}, {
"args": [],
"method": &"next_line"
}, {
"args": [],
"method": &"next_line"
}, {
"args": [],
"method": &"next_line"
}, {
"args": [],
"method": &"next_line"
}, {
"args": [],
"method": &"next_line"
}, {
"args": [],
"method": &"next_line"
}, {
"args": [],
"method": &"next_line"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_jgx00"]
_data = {
"RESET": SubResource("Animation_dirfa"),
"blink": SubResource("Animation_t3ulj")
"blink": SubResource("Animation_t3ulj"),
"terminal": SubResource("Animation_6cb10")
}
[node name="Test" type="Control"]
@ -80,35 +110,33 @@ grow_vertical = 2
color = Color(0, 0, 0, 1)
[node name="Icon" type="Sprite2D" parent="."]
position = Vector2(534, 309)
position = Vector2(1762, 150)
texture = ExtResource("1_3phrh")
[node name="ScramblingText" type="ScramblingText" parent="."]
speed = 5.0
duration = 0.05
infinite = false
layout_mode = 0
offset_right = 40.0
offset_bottom = 23.0
text = "LOADING DEMO..."
label_settings = SubResource("LabelSettings_w3bnc")
[node name="Timer" type="Timer" parent="."]
wait_time = 1.5
one_shot = true
autostart = true
[node name="Label" type="Label" parent="."]
layout_mode = 0
offset_top = 93.0
offset_right = 40.0
offset_bottom = 116.0
text = "PLEASE WAIT"
label_settings = SubResource("LabelSettings_78g6a")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_jgx00")
}
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
[node name="Terminal" type="RichTextLabel" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 25.0
offset_top = 25.0
offset_right = -28.0
offset_bottom = -20.0
grow_horizontal = 2
grow_vertical = 2
theme_override_fonts/mono_font = ExtResource("2_04cpk")
theme_override_font_sizes/mono_font_size = 35
theme_override_font_sizes/normal_font_size = 24
bbcode_enabled = true
text = "[code]HELLO[/code]
"

View file

@ -26,7 +26,7 @@ gdscript/warnings/untyped_declaration=2
[display]
window/size/viewport_width=2560
window/size/viewport_height=1440
window/size/viewport_width=1920
window/size/viewport_height=1080
window/stretch/mode="canvas_items"
window/stretch/aspect="ignore"

View file

@ -1,17 +1,46 @@
extends Node3D
extends Control
@onready var pallo: PackedScene = load("res://assets/ball.tscn")
@onready var groups: Array[String] = ["ASD", "Jumalauta", "Marmot", "Future Crew", "Gray Marchers", "Byterapers", "Pyrotech", "Gorbat Soft"]
var group_iter: int = 0;
@onready var pallo: PackedScene = load("res://entities/ball.tscn")
# Called when the node enters the scene tree for the first time.
@onready var grouptimer: Timer = Timer.new();
func _ready() -> void:
($TextViewPort/Label.label_settings as LabelSettings).font_size = 1;
grouptimer.autostart = false;
grouptimer.wait_time = 1.5;
grouptimer.connect("timeout", random_group);
add_child(grouptimer);
func _process(delta: float) -> void:
if ($TextViewPort/Label.label_settings as LabelSettings).font_size < 256:
($TextViewPort/Label.label_settings as LabelSettings).font_size += 1
elif grouptimer.is_stopped():
grouptimer.start();
func _on_timer_timeout() -> void:
var x: float = randf_range(-2, 2)
var z: float = randf_range(-2, 2)
var boll: Node3D = pallo.instantiate()
var spawn: Vector3 = Vector3(x, 10, z)
add_child(boll)
for i in 2:
var x: float = randf_range(-6, 6)
var z: float = randf_range(-2, 2)
var boll: Node3D = pallo.instantiate()
var ttl_timer: Timer = Timer.new();
ttl_timer.wait_time = 7;
ttl_timer.connect("timeout", func() -> void: boll.queue_free());
ttl_timer.one_shot = true;
ttl_timer.autostart = true;
boll.add_child(ttl_timer);
var spawn: Vector3 = Vector3(x, 3, z)
add_child(boll)
boll.global_position = spawn
boll.global_position = spawn
func random_group() -> void:
if group_iter <= 3:
var group: String = groups.pick_random();
$TextViewPort/Label.text = group;
groups.remove_at(groups.find(group, 0));
group_iter += 1;

View file

@ -28,8 +28,13 @@ func _ready() -> void:
$AnimationPlayer.play("xtra_wipe");
func fade_audio() -> void:
var tween: Tween = get_tree().create_tween();
tween.tween_method(_fade_audio_callback, AudioServer.get_bus_volume_db(0), -30.0, 1.5);
func _fade_audio_callback(volume: float) -> void:
AudioServer.set_bus_volume_db(0, volume);
func _on_animation_player_animation_finished(anim_name: StringName) -> void:

View file

@ -2,8 +2,7 @@ extends Manager
var scene1: PackedScene = preload("res://entities/test.tscn");
var scene2: PackedScene = preload("res://entities/kaleido_scope.tscn");
var scene3: PackedScene = preload("res://entities/ParticlesCool.tscn");
var scene4: PackedScene = preload("res://entities/test.tscn")
var scene3: PackedScene = preload("res://entities/balls.tscn");
var credits_scene: PackedScene = preload("res://entities/credits.tscn");
@ -13,7 +12,6 @@ func _ready() -> void:
register_scene(scene1);
register_scene(scene2);
register_scene(scene3);
register_scene(scene4);
register_scene(credits_scene);
start_audio();
$AnimationPlayer.play("timeline");