AltParty2024/entities/kaleido_scope.tscn

407 lines
12 KiB
Text
Raw Normal View History

2024-10-08 20:55:57 +03:00
[gd_scene load_steps=23 format=3 uid="uid://b761uk7sjprrp"]
2024-10-02 16:08:45 +03:00
[ext_resource type="Shader" path="res://assets/shaders/kaleidoscope.gdshader" id="1_nwvg1"]
[ext_resource type="PackedScene" uid="uid://qehbjfkqs5pl" path="res://entities/ParticlesCool.tscn" id="1_yc1r8"]
2024-10-08 15:50:32 +03:00
[ext_resource type="PackedScene" uid="uid://br7cnj1spc4rk" path="res://assets/auto_scale.tscn" id="2_7v8f2"]
2024-10-08 20:55:57 +03:00
[ext_resource type="Shader" path="res://assets/shaders/pixelsort.gdshader" id="4_v65hu"]
2024-10-08 15:50:32 +03:00
[ext_resource type="Shader" path="res://assets/shaders/cromatic-abberation.gdshader" id="5_w16wy"]
2024-10-02 16:08:45 +03:00
[sub_resource type="GDScript" id="GDScript_mtsk5"]
script/source = "extends Control
2024-10-08 20:55:57 +03:00
@onready var pass3: TextureRect = $RandomPasses/Pass3/TextureRect;
@onready var pass2: TextureRect = $RandomPasses/Pass2/TextureRect;
@onready var pass1: TextureRect = $RandomPasses/Pass1/TextureRect;
var materials: Array[ShaderMaterial];
var shaders: Array[Shader];
func _ready() -> void:
#TODO: FIX RNG SO IT FEELS LESS RANDOM, SO WE DON'T GET THE EXACT SAME SHOW EVERY TIME WE RUN
var shader_dir: DirAccess = DirAccess.open(\"res://assets/shaders/random-pool\");
shader_dir.list_dir_begin()
for file: String in shader_dir.get_files():
# These should probably be preloaded, but who the fuck cares, the demoparty is in 2 days I don't have time for this
var shader: Shader = load(shader_dir.get_current_dir() + \"/\" + file);
shader.set_meta(\"shader_name\", file.split(\".gdshader\", false))
shaders.push_back(shader);
for i: int in 3:
2024-10-10 18:54:42 +03:00
material = ShaderMaterial.new();
2024-10-08 20:55:57 +03:00
var shader: Shader = shaders.pick_random();
material.shader = shader.duplicate();
var shader_name: String = \"\".join(shader.get_meta(\"shader_name\"));
match shader_name:
\"pixelate\":
2024-10-11 16:31:12 +03:00
if OS.is_debug_build():
print(\"pixelate\");
2024-10-09 18:36:01 +03:00
shaders.remove_at(shaders.find(shader, 0));
2024-10-08 20:55:57 +03:00
material.set_shader_parameter(\"x_pixel_size\", randi_range(1, 5));
material.set_shader_parameter(\"y_pixel_size\", randi_range(1, 5));
\"cromatic-abberation\":
2024-10-11 16:31:12 +03:00
if OS.is_debug_build():
print(\"cromatic-abberation\") #Tiiän et täs on typo FFS, en rupee renamaa tiedostoo
2024-10-08 20:55:57 +03:00
material.set_shader_parameter(\"chaos\", randf_range(10.0, 32.0));
material.set_shader_parameter(\"radius\", randf_range(0.3, 1.0));
material.set_shader_parameter(\"attenuation\", randf_range(2.0, 5.0));
\"kaleidoscope\":
2024-10-11 16:31:12 +03:00
if OS.is_debug_build():
print(\"kaleidoscope\")
2024-10-09 18:36:01 +03:00
shaders.remove_at(shaders.find(shader, 0));
2024-10-11 16:31:12 +03:00
var segments: int = randi_range(3, 5);
while segments == 4:
print(\"Segments is 4, rerolling\")
segments = randi_range(3, 5);
2024-10-10 18:54:42 +03:00
material.set_shader_parameter(\"segments\", float(randi_range(3, 5)));
2024-10-08 20:55:57 +03:00
\"pixelsort\":
2024-10-11 16:31:12 +03:00
if OS.is_debug_build():
print(\"pixelsort\")
2024-10-09 18:36:01 +03:00
shaders.remove_at(shaders.find(shader, 0));
2024-10-11 16:31:12 +03:00
material.set_shader_parameter(\"sort\", randf_range(0.1, 1.0));
2024-10-08 20:55:57 +03:00
_:
2024-10-11 16:31:12 +03:00
if OS.is_debug_build():
print(\"something else\")
2024-10-08 20:55:57 +03:00
pass
materials.push_back(material);
pass1.material = materials[0];
pass2.material = materials[1];
pass3.material = materials[2];
2024-10-02 16:08:45 +03:00
func _on_timer_timeout() -> void:
$AnimationPlayer.play(\"kaleidoskope_1\");
"
[sub_resource type="ShaderMaterial" id="ShaderMaterial_a6cuy"]
shader = ExtResource("1_nwvg1")
shader_parameter/segments = 6.0
shader_parameter/segmentReflect = true
shader_parameter/polarOffset = Vector2(0.5, 0.5)
shader_parameter/polarAngle = 0.0
shader_parameter/sourceOffset = Vector2(0.5, 0.5)
shader_parameter/sourceScale = 2.0
shader_parameter/sourceAngle = 0.0
[sub_resource type="ViewportTexture" id="ViewportTexture_1y4ry"]
viewport_path = NodePath("SubViewport")
[sub_resource type="Shader" id="Shader_mxtek"]
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_ahqjw"]
shader = SubResource("Shader_mxtek")
shader_parameter/enabled = null
[sub_resource type="ViewportTexture" id="ViewportTexture_b44mw"]
viewport_path = NodePath("TextViewPort")
2024-10-08 15:50:32 +03:00
[sub_resource type="Animation" id="Animation_1yxhh"]
length = 0.001
2024-10-02 16:08:45 +03:00
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
2024-10-08 15:50:32 +03:00
tracks/0/path = NodePath("KaleidoViewport/Kaleido:material:shader_parameter/segments")
2024-10-02 16:08:45 +03:00
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
2024-10-08 15:50:32 +03:00
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [6.0]
2024-10-02 16:08:45 +03:00
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
2024-10-08 15:50:32 +03:00
tracks/1/path = NodePath("KaleidoViewport/Kaleido:material:shader_parameter/sourceAngle")
2024-10-02 16:08:45 +03:00
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
2024-10-08 15:50:32 +03:00
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
2024-10-02 16:08:45 +03:00
"update": 0,
2024-10-08 15:50:32 +03:00
"values": [0.0]
2024-10-02 16:08:45 +03:00
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
2024-10-08 15:50:32 +03:00
tracks/2/path = NodePath("KaleidoViewport/Kaleido:material:shader_parameter/sourceOffset")
2024-10-02 16:08:45 +03:00
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
2024-10-08 15:50:32 +03:00
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
2024-10-02 16:08:45 +03:00
"update": 0,
2024-10-08 15:50:32 +03:00
"values": [Vector2(0.5, 0.5)]
2024-10-02 16:08:45 +03:00
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("TextMask:material:shader_parameter/enabled")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
2024-10-08 15:50:32 +03:00
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
2024-10-08 15:50:32 +03:00
"values": [null]
}
2024-10-02 16:08:45 +03:00
2024-10-08 15:50:32 +03:00
[sub_resource type="Animation" id="Animation_olvxy"]
resource_name = "kaleidoskope_1"
length = 20.0
2024-10-02 16:08:45 +03:00
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
2024-10-08 15:50:32 +03:00
tracks/0/path = NodePath("KaleidoViewport/Kaleido:material:shader_parameter/segments")
2024-10-02 16:08:45 +03:00
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
2024-10-08 15:50:32 +03:00
"times": PackedFloat32Array(0.0333334, 1.06667, 2.1, 3.06667, 4.06667, 5.06667, 6.03333, 7.1, 8.13333, 9.1),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1,
"values": [4.0, 6.0, 8.0, 10.0, 12.0, 8.0, 4.0, 6.0, 8.0, 6.0]
2024-10-02 16:08:45 +03:00
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
2024-10-08 15:50:32 +03:00
tracks/1/path = NodePath("KaleidoViewport/Kaleido:material:shader_parameter/sourceAngle")
2024-10-02 16:08:45 +03:00
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
2024-10-08 15:50:32 +03:00
"times": PackedFloat32Array(0, 1.03333),
"transitions": PackedFloat32Array(1, 1),
2024-10-02 16:08:45 +03:00
"update": 0,
2024-10-08 15:50:32 +03:00
"values": [0.0, 0.0]
2024-10-02 16:08:45 +03:00
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
2024-10-08 15:50:32 +03:00
tracks/2/path = NodePath("KaleidoViewport/Kaleido:material:shader_parameter/sourceOffset")
2024-10-02 16:08:45 +03:00
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
2024-10-08 15:50:32 +03:00
"times": PackedFloat32Array(0.0333333, 9.1, 11.5333, 15.0667),
"transitions": PackedFloat32Array(1, 1, 1, 1),
2024-10-02 16:08:45 +03:00
"update": 0,
2024-10-08 15:50:32 +03:00
"values": [Vector2(0.5, 0.5), Vector2(0.5, 0.5), Vector2(0.5, 0), Vector2(1, -1)]
2024-10-02 16:08:45 +03:00
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("TextMask:material:shader_parameter/enabled")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
2024-10-08 15:50:32 +03:00
"times": PackedFloat32Array(0, 11.8),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
2024-10-08 15:50:32 +03:00
"values": [false, true]
}
2024-10-02 16:08:45 +03:00
[sub_resource type="AnimationLibrary" id="AnimationLibrary_4qo5x"]
_data = {
"RESET": SubResource("Animation_1yxhh"),
"kaleidoskope_1": SubResource("Animation_olvxy")
}
[sub_resource type="LabelSettings" id="LabelSettings_n61ct"]
font_size = 104
shadow_size = 0
2024-10-08 15:50:32 +03:00
[sub_resource type="ShaderMaterial" id="ShaderMaterial_riy6b"]
2024-10-08 20:55:57 +03:00
shader = ExtResource("4_v65hu")
shader_parameter/sort = 1.21
2024-10-08 15:50:32 +03:00
[sub_resource type="ViewportTexture" id="ViewportTexture_ff16u"]
viewport_path = NodePath("KaleidoViewport")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wyd4s"]
shader = ExtResource("5_w16wy")
shader_parameter/chaos = 32.0
shader_parameter/radius = 1.0
shader_parameter/attenuation = 1.5
[sub_resource type="ViewportTexture" id="ViewportTexture_3bfaj"]
viewport_path = NodePath("RandomPasses/Pass1")
2024-10-08 20:55:57 +03:00
[sub_resource type="ShaderMaterial" id="ShaderMaterial_j7uru"]
2024-10-08 15:50:32 +03:00
[sub_resource type="ViewportTexture" id="ViewportTexture_rmol4"]
viewport_path = NodePath("RandomPasses/Pass2")
[sub_resource type="ViewportTexture" id="ViewportTexture_wumee"]
viewport_path = NodePath("RandomPasses/Pass3")
2024-10-02 16:08:45 +03:00
[node name="KaleidoScope" 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_mtsk5")
2024-10-08 15:50:32 +03:00
[node name="KaleidoViewport" type="SubViewport" parent="."]
size = Vector2i(1152, 648)
[node name="Kaleido" type="TextureRect" parent="KaleidoViewport"]
2024-10-02 16:08:45 +03:00
material = SubResource("ShaderMaterial_a6cuy")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("ViewportTexture_1y4ry")
2024-10-08 15:50:32 +03:00
expand_mode = 2
stretch_mode = 6
[node name="AutoScale" parent="KaleidoViewport" instance=ExtResource("2_7v8f2")]
2024-10-02 16:08:45 +03:00
[node name="TextMask" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_ahqjw")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("ViewportTexture_b44mw")
2024-10-02 16:08:45 +03:00
[node name="SubViewport" type="SubViewport" parent="."]
size = Vector2i(1152, 648)
[node name="Camera3D" type="Camera3D" parent="SubViewport"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2.31619)
[node name="Node3D" parent="SubViewport" instance=ExtResource("1_yc1r8")]
2024-10-08 15:50:32 +03:00
[node name="AutoScale" parent="SubViewport" instance=ExtResource("2_7v8f2")]
2024-10-02 16:08:45 +03:00
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.910979, 0.412453, 0, -0.412453, 0.910979, 0, 0, 0)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_4qo5x")
}
[node name="Timer" type="Timer" parent="."]
wait_time = 2.0
autostart = true
[node name="TextViewPort" type="SubViewport" parent="."]
transparent_bg = true
size = Vector2i(1152, 648)
[node name="Label" type="Label" parent="TextViewPort"]
2024-10-08 15:50:32 +03:00
visible = false
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -286.0
offset_top = -44.0
offset_right = 286.0
offset_bottom = 44.0
grow_horizontal = 2
grow_vertical = 2
text = "THIS IS SOME TEXT"
label_settings = SubResource("LabelSettings_n61ct")
2024-10-08 15:50:32 +03:00
[node name="AutoScale" parent="TextViewPort" instance=ExtResource("2_7v8f2")]
[node name="RandomPasses" 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="Pass1" type="SubViewport" parent="RandomPasses"]
size = Vector2i(1152, 648)
[node name="TextureRect" type="TextureRect" parent="RandomPasses/Pass1"]
material = SubResource("ShaderMaterial_riy6b")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("ViewportTexture_ff16u")
[node name="AutoScale" parent="RandomPasses/Pass1" instance=ExtResource("2_7v8f2")]
[node name="Pass2" type="SubViewport" parent="RandomPasses"]
size = Vector2i(1152, 648)
[node name="TextureRect" type="TextureRect" parent="RandomPasses/Pass2"]
material = SubResource("ShaderMaterial_wyd4s")
offset_right = 40.0
offset_bottom = 40.0
texture = SubResource("ViewportTexture_3bfaj")
[node name="AutoScale" parent="RandomPasses/Pass2" instance=ExtResource("2_7v8f2")]
[node name="Pass3" type="SubViewport" parent="RandomPasses"]
size = Vector2i(1152, 648)
[node name="TextureRect" type="TextureRect" parent="RandomPasses/Pass3"]
2024-10-08 20:55:57 +03:00
material = SubResource("ShaderMaterial_j7uru")
2024-10-08 15:50:32 +03:00
offset_right = 40.0
offset_bottom = 40.0
texture = SubResource("ViewportTexture_rmol4")
[node name="AutoScale" parent="RandomPasses/Pass3" instance=ExtResource("2_7v8f2")]
[node name="Output" 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_wumee")
2024-10-02 16:08:45 +03:00
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]