material-maker/start.tscn

318 lines
11 KiB
Plaintext

[gd_scene load_steps=48 format=2]
[ext_resource path="res://start.gd" type="Script" id=1]
[ext_resource path="res://material_maker/fonts/vegur_regular.otf" type="DynamicFontData" id=2]
[ext_resource path="res://material_maker/icons/godot_logo.svg" type="Texture" id=3]
[ext_resource path="res://icon.png" type="Texture" id=4]
[ext_resource path="res://material_maker/loading_screen/tile01.png" type="Texture" id=5]
[ext_resource path="res://material_maker/loading_screen/tile04.png" type="Texture" id=6]
[ext_resource path="res://material_maker/loading_screen/tile03.png" type="Texture" id=7]
[ext_resource path="res://material_maker/loading_screen/tile02.png" type="Texture" id=8]
[ext_resource path="res://material_maker/loading_screen/tile06.png" type="Texture" id=9]
[ext_resource path="res://material_maker/loading_screen/tile05.png" type="Texture" id=10]
[ext_resource path="res://material_maker/loading_screen/tile07.png" type="Texture" id=11]
[ext_resource path="res://material_maker/loading_screen/tile08.png" type="Texture" id=12]
[ext_resource path="res://material_maker/loading_screen/tile12.png" type="Texture" id=13]
[ext_resource path="res://material_maker/loading_screen/tile14.png" type="Texture" id=14]
[ext_resource path="res://material_maker/loading_screen/tile15.png" type="Texture" id=15]
[ext_resource path="res://material_maker/loading_screen/tile11.png" type="Texture" id=16]
[ext_resource path="res://material_maker/loading_screen/tile10.png" type="Texture" id=17]
[ext_resource path="res://material_maker/loading_screen/tile09.png" type="Texture" id=18]
[ext_resource path="res://material_maker/loading_screen/tile13.png" type="Texture" id=19]
[ext_resource path="res://material_maker/loading_screen/tile16.png" type="Texture" id=20]
[ext_resource path="res://material_maker/loading_screen/tile19.png" type="Texture" id=21]
[ext_resource path="res://material_maker/loading_screen/tile18.png" type="Texture" id=22]
[ext_resource path="res://material_maker/loading_screen/tile20.png" type="Texture" id=23]
[ext_resource path="res://material_maker/loading_screen/tile17.png" type="Texture" id=24]
[ext_resource path="res://material_maker/loading_screen/tile24.png" type="Texture" id=25]
[ext_resource path="res://material_maker/loading_screen/tile22.png" type="Texture" id=26]
[ext_resource path="res://material_maker/loading_screen/tile21.png" type="Texture" id=27]
[ext_resource path="res://material_maker/loading_screen/tile23.png" type="Texture" id=28]
[ext_resource path="res://material_maker/loading_screen/tile28.png" type="Texture" id=29]
[ext_resource path="res://material_maker/loading_screen/tile29.png" type="Texture" id=30]
[ext_resource path="res://material_maker/loading_screen/tile33.png" type="Texture" id=31]
[ext_resource path="res://material_maker/loading_screen/tile34.png" type="Texture" id=32]
[ext_resource path="res://material_maker/loading_screen/tile35.png" type="Texture" id=33]
[ext_resource path="res://material_maker/loading_screen/tile36.png" type="Texture" id=34]
[ext_resource path="res://material_maker/loading_screen/tile30.png" type="Texture" id=35]
[ext_resource path="res://material_maker/loading_screen/tile31.png" type="Texture" id=36]
[ext_resource path="res://material_maker/loading_screen/tile27.png" type="Texture" id=37]
[ext_resource path="res://material_maker/loading_screen/tile32.png" type="Texture" id=38]
[ext_resource path="res://material_maker/loading_screen/tile25.png" type="Texture" id=39]
[ext_resource path="res://material_maker/loading_screen/tile26.png" type="Texture" id=40]
[sub_resource type="GDScript" id=7]
script/source = "tool
extends Control
export var textures : Array = []
export var count_x : int = 5 setget set_count_x
export var count_y : int = 5 setget set_count_y
export var step_x : int = 5 setget set_step_x
export var step_y : int = 5 setget set_step_y
export var empty_space : int = 5 setget set_empty_space
func set_count_x(v : int):
count_x = v
rebuild()
func set_count_y(v : int):
count_y = v
rebuild()
func set_step_x(v : int):
step_x = v
rebuild()
func set_step_y(v : int):
step_y = v
rebuild()
func set_empty_space(v : int):
empty_space = v
rebuild()
static func permutations(a : Array, s : int = -1):
var size : int = a.size()
if s < 0:
s = size-1
for i in s:
var pi : int = i+(randi() % (size - i))
if pi != i:
var tmp = a[pi]
a[pi] = a[i]
a[i] = tmp
return a
func rebuild():
if !is_inside_tree():
return
for c in get_children():
if c != $Tile:
remove_child(c)
c.free()
var texture_count = textures.size()
seed(OS.get_ticks_usec())
var reorder : Array = permutations(range(texture_count))
var texture_index = 0
$Tile.texture = textures[reorder[texture_index]]
for x in count_x:
for y in count_y:
if x == 0 and y == 0:
continue
var pos = $Tile.rect_position+Vector2(x*step_x, y*step_y+(x&1)*(step_y>>1))
var center = pos+0.5*$Tile.rect_size
if abs(center.x-0.5*rect_size.x) < empty_space:
continue
texture_index += 1
if texture_index >= textures.size():
texture_index = 0
var t : TextureRect = $Tile.duplicate()
t.texture = textures[reorder[texture_index]]
t.rect_position += Vector2(x*step_x, y*step_y+(x&1)*(step_y>>1))
add_child(t)
if get_child_count() > texture_count:
print(\"WARNING: More textures are needed for the loading screen\")
func _on_Background_resized():
rebuild()
"
[sub_resource type="Shader" id=8]
code = "shader_type canvas_item;
render_mode blend_mix;
void fragment() {
const vec3 k = vec3(-0.866025404, 0.5, 0.577350269);
float r = 0.4;
vec2 p = abs(UV-0.5)*vec2(1.0, 0.866025404);
p -= 2.0*min(dot(k.xy,p),0.0)*k.xy;
p -= vec2(clamp(p.x, -k.z*r, k.z*r), r);
float hex = clamp(1.0-50.0*length(p)*sign(p.y), 0.0, 1.0);
COLOR = vec4(texture(TEXTURE, UV).rgb, hex);
}
"
[sub_resource type="ShaderMaterial" id=9]
shader = SubResource( 8 )
[sub_resource type="DynamicFont" id=3]
size = 72
font_data = ExtResource( 2 )
[sub_resource type="StyleBoxFlat" id=4]
bg_color = Color( 1, 1, 1, 1 )
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color( 0.380392, 0.388235, 0.486275, 1 )
[sub_resource type="StyleBoxFlat" id=5]
bg_color = Color( 0.380392, 0.388235, 0.486275, 1 )
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color( 0.380392, 0.388235, 0.486275, 1 )
[sub_resource type="StyleBoxFlat" id=6]
bg_color = Color( 0.0235294, 0.0313726, 0.12549, 0.929412 )
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color( 1, 0, 0, 1 )
[node name="Start" type="Panel"]
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource( 1 )
[node name="Background" type="Control" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
rect_pivot_offset = Vector2( -23, 13 )
script = SubResource( 7 )
textures = [ ExtResource( 5 ), ExtResource( 8 ), ExtResource( 7 ), ExtResource( 6 ), ExtResource( 10 ), ExtResource( 9 ), ExtResource( 11 ), ExtResource( 12 ), ExtResource( 18 ), ExtResource( 17 ), ExtResource( 16 ), ExtResource( 13 ), ExtResource( 19 ), ExtResource( 14 ), ExtResource( 15 ), ExtResource( 20 ), ExtResource( 24 ), ExtResource( 22 ), ExtResource( 21 ), ExtResource( 23 ), ExtResource( 27 ), ExtResource( 26 ), ExtResource( 28 ), ExtResource( 25 ), ExtResource( 39 ), ExtResource( 40 ), ExtResource( 37 ), ExtResource( 29 ), ExtResource( 30 ), ExtResource( 35 ), ExtResource( 36 ), ExtResource( 38 ), ExtResource( 31 ), ExtResource( 32 ), ExtResource( 33 ), ExtResource( 34 ) ]
count_x = 11
count_y = 6
step_x = 122
step_y = 142
empty_space = 300
[node name="Tile" type="TextureRect" parent="Background"]
material = SubResource( 9 )
margin_left = -156.0
margin_top = -252.0
margin_right = 164.0
margin_bottom = 26.0
rect_scale = Vector2( 0.5, 0.5 )
rect_pivot_offset = Vector2( 212, 330 )
texture = ExtResource( 28 )
stretch_mode = 1
[node name="VBoxContainer" type="VBoxContainer" parent="."]
anchor_left = 0.5
anchor_right = 0.5
anchor_bottom = 1.0
margin_left = -275.0
margin_right = 275.0
alignment = 1
[node name="Space1" type="Control" parent="VBoxContainer"]
margin_bottom = 40.0
rect_min_size = Vector2( 0, 40 )
size_flags_horizontal = 0
size_flags_stretch_ratio = 2.0
[node name="Icon" type="TextureRect" parent="VBoxContainer"]
margin_left = 147.0
margin_top = 44.0
margin_right = 403.0
margin_bottom = 300.0
size_flags_horizontal = 4
texture = ExtResource( 4 )
stretch_mode = 1
[node name="Space2" type="Control" parent="VBoxContainer"]
margin_top = 304.0
margin_bottom = 344.0
rect_min_size = Vector2( 0, 40 )
size_flags_horizontal = 0
size_flags_stretch_ratio = 2.0
[node name="Title" type="Label" parent="VBoxContainer"]
margin_top = 348.0
margin_right = 550.0
margin_bottom = 435.0
custom_fonts/font = SubResource( 3 )
text = "Material Maker"
align = 1
[node name="Label" type="Label" parent="VBoxContainer"]
margin_top = 439.0
margin_right = 550.0
margin_bottom = 453.0
align = 1
[node name="ProgressBar" type="ProgressBar" parent="VBoxContainer"]
margin_left = 150.0
margin_top = 457.0
margin_right = 400.0
margin_bottom = 473.0
rect_min_size = Vector2( 250, 16 )
size_flags_horizontal = 4
custom_styles/fg = SubResource( 4 )
custom_styles/bg = SubResource( 5 )
percent_visible = false
[node name="Space3" type="Control" parent="VBoxContainer"]
margin_top = 477.0
margin_bottom = 524.0
size_flags_horizontal = 0
size_flags_vertical = 3
size_flags_stretch_ratio = 0.75
[node name="Label2" type="Label" parent="VBoxContainer"]
margin_top = 528.0
margin_right = 550.0
margin_bottom = 542.0
text = "Powered by"
align = 1
[node name="TextureRect" type="TextureRect" parent="VBoxContainer"]
margin_left = 181.0
margin_top = 546.0
margin_right = 368.0
margin_bottom = 615.0
size_flags_horizontal = 4
texture = ExtResource( 3 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Space4" type="Control" parent="VBoxContainer"]
margin_top = 619.0
margin_bottom = 666.0
size_flags_horizontal = 0
size_flags_vertical = 3
size_flags_stretch_ratio = 0.75
[node name="Patreon" type="Label" parent="VBoxContainer"]
margin_top = 670.0
margin_right = 550.0
margin_bottom = 720.0
rect_min_size = Vector2( 550, 50 )
mouse_filter = 0
size_flags_horizontal = 5
align = 1
valign = 2
autowrap = true
[node name="ErrorPanel" type="Panel" parent="."]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -268.5
margin_top = -76.0
margin_right = 268.5
margin_bottom = 76.0
rect_pivot_offset = Vector2( 267.976, 75.7381 )
custom_styles/panel = SubResource( 6 )
[node name="Label" type="Label" parent="ErrorPanel"]
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = 10.0
margin_top = 10.0
margin_right = -10.0
margin_bottom = -10.0
align = 1
valign = 1
[connection signal="resized" from="Background" to="Background" method="_on_Background_resized"]
[connection signal="gui_input" from="VBoxContainer/Patreon" to="." method="_on_Patreon_gui_input"]