diff --git a/Bullshit/Main.gd b/Bullshit/Main.gd new file mode 100644 index 0000000..7f634cc --- /dev/null +++ b/Bullshit/Main.gd @@ -0,0 +1,16 @@ +extends Node + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + return + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Bullshit/NewTexutre.gd b/Bullshit/NewTexutre.gd new file mode 100644 index 0000000..9e22e00 --- /dev/null +++ b/Bullshit/NewTexutre.gd @@ -0,0 +1,16 @@ +extends ViewportTexture +class_name PremiumTexture + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Bullshit/OhItGetsWorse.gd b/Bullshit/OhItGetsWorse.gd new file mode 100644 index 0000000..b0ceda0 --- /dev/null +++ b/Bullshit/OhItGetsWorse.gd @@ -0,0 +1,15 @@ +extends OH +class_name VeryWorse + + +export(int) var ButItIsWhatItIs = 33 + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Bullshit/PolyTest/PolyTestEnvironment.tscn b/Bullshit/PolyTest/PolyTestEnvironment.tscn new file mode 100644 index 0000000..f9d0d89 --- /dev/null +++ b/Bullshit/PolyTest/PolyTestEnvironment.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://icon.png" type="Texture" id=1] + +[node name="PolyTest" type="Node"] + +[node name="Polygon2D" type="Polygon2D" parent="."] +scale = Vector2( 50, 50 ) +polygon = PoolVector2Array( 0.42, 0.4, 2.34, 0.04, 1.98, 2.06, 0.58, 1.96 ) + +[node name="Camera2D" type="Camera2D" parent="."] +current = true + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( -95, 98 ) +texture = ExtResource( 1 ) diff --git a/Bullshit/ScriptEditTest.gd b/Bullshit/ScriptEditTest.gd new file mode 100644 index 0000000..66dc369 --- /dev/null +++ b/Bullshit/ScriptEditTest.gd @@ -0,0 +1,17 @@ +extends ScriptEditor +class_name ScriptEditorTest + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Bullshit/TestResource.gd b/Bullshit/TestResource.gd new file mode 100644 index 0000000..d4230e0 --- /dev/null +++ b/Bullshit/TestResource.gd @@ -0,0 +1,14 @@ +extends ConvexPolygonShape +class_name ConvexYoMama + + +export(int) var YoFatMama = 23 + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Bullshit/YoArOphanHaha.gd b/Bullshit/YoArOphanHaha.gd new file mode 100644 index 0000000..836edb6 --- /dev/null +++ b/Bullshit/YoArOphanHaha.gd @@ -0,0 +1,15 @@ +extends Resource +class_name OH + + +export(int) var IDidntMeanTo = 6 + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Bullshit/aahhh.tres b/Bullshit/aahhh.tres new file mode 100644 index 0000000..05af166 --- /dev/null +++ b/Bullshit/aahhh.tres @@ -0,0 +1,8 @@ +[gd_resource type="ConvexPolygonShape" load_steps=2 format=2] + +[ext_resource path="res://Bullshit/convexDad.gd" type="Script" id=1] + +[resource] +script = ExtResource( 1 ) +YoFatMama = 23 +moan = "Ahhh >///<" diff --git a/Bullshit/convexDad.gd b/Bullshit/convexDad.gd new file mode 100644 index 0000000..7c58eb3 --- /dev/null +++ b/Bullshit/convexDad.gd @@ -0,0 +1,15 @@ +extends ConvexYoMama +class_name ConvexDaddyAahhh + + +export(String) var moan = "Ahhh >///<" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Bullshit/ieeeee.tres b/Bullshit/ieeeee.tres new file mode 100644 index 0000000..62b1b06 --- /dev/null +++ b/Bullshit/ieeeee.tres @@ -0,0 +1,7 @@ +[gd_resource type="ConvexPolygonShape" load_steps=2 format=2] + +[ext_resource path="res://Bullshit/TestResource.gd" type="Script" id=1] + +[resource] +script = ExtResource( 1 ) +YoFatMama = 23 diff --git a/Bullshit/new_convexpolygonshape.tres b/Bullshit/new_convexpolygonshape.tres new file mode 100644 index 0000000..964ef8e --- /dev/null +++ b/Bullshit/new_convexpolygonshape.tres @@ -0,0 +1,4 @@ +[gd_resource type="ConvexPolygonShape" format=2] + +[resource] +points = PoolVector3Array( 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1 ) diff --git a/Bullshit/oh.tres b/Bullshit/oh.tres new file mode 100644 index 0000000..a9af28c --- /dev/null +++ b/Bullshit/oh.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" load_steps=2 format=2] + +[ext_resource path="res://Bullshit/YoArOphanHaha.gd" type="Script" id=1] + +[resource] +script = ExtResource( 1 ) +IDidntMeanTo = 6 diff --git a/Bullshit/scene_073.tres b/Bullshit/scene_073.tres new file mode 100644 index 0000000..dd73e7a --- /dev/null +++ b/Bullshit/scene_073.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" load_steps=2 format=2] + +[ext_resource path="res://addons/summer_day/data_structure/scene/scene.gd" type="Script" id=1] + +[resource] +script = ExtResource( 1 ) +aspect_ratio = Vector2( 16, 9 ) diff --git a/CSGCylinder.gd b/CSGCylinder.gd new file mode 100644 index 0000000..71670b2 --- /dev/null +++ b/CSGCylinder.gd @@ -0,0 +1,87 @@ +extends CSGCylinder + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + var orig01 = Vector3(-1, -1, 1) + var orig02 = Vector3(1, -1, 1) + var orig03 = Vector3(-1, 1, 1) + var orig04 = Vector3(2, -5, 1) + var dest01 = Vector3(-3, -7, 1) + var dest02 = Vector3(7, -3, 1) + var dest03 = Vector3(-7, 7, 1) + var dest04 = Vector3(4, 8, 1) + print(str(dest01) + "\n" + str(dest02) + "\n" + str(dest03) + "\n" + str(dest04) + "\n") + + var a_ = Basis( Vector3(orig01.x, orig02.x, orig03.x), + Vector3(orig01.y, orig02.y, orig03.y), + Vector3.ONE ) + var a_inverse = a_.inverse() + + + var a_coeff = a_inverse.xform(orig04) + + + print(orig04) + print(a_coeff) + print(str(a_.xform(a_coeff)) + "\n") + + + var A = Basis( Vector3(orig01.x * a_coeff.x, orig02.x * a_coeff.y, orig03.x * a_coeff.z), + Vector3(orig01.y * a_coeff.x, orig02.y * a_coeff.y, orig03.y * a_coeff.z), + a_coeff ) + + print(str(A) + "\n") + + var A_inverse = A.inverse() + + print(str(A_inverse)) + + print(str(A * A_inverse) + "\n") + + var b_ = Basis( Vector3(dest01.x, dest02.x, dest03.x), + Vector3(dest01.y, dest02.y, dest03.y), + Vector3(dest01.z, dest02.z, dest03.z) ) + var b_inverse = b_.inverse() + var b_coeff = b_inverse.xform(dest04) + var B = Basis( Vector3(dest01.x * b_coeff.x, dest02.x * b_coeff.y, dest03.x * b_coeff.z), + Vector3(dest01.y * b_coeff.x, dest02.y * b_coeff.y, dest03.y * b_coeff.z), + b_coeff ) + + var C = A_inverse * B + + print(str(B)) + print(str(b_coeff) + "\n") + print(str(C) + "\n") + + var proof01 = C.xform(orig01) + var proof02 = C.xform(orig02) + var proof03 = C.xform(orig03) + var proof04 = C.xform(orig04) + + print(str(proof01) + "\n" + str(proof02) + "\n" + str(proof03) + "\n" + str(proof04)) + + +func adj(m: Basis): + return Basis( + Vector3( + m[1][1] * m[2][2] - m[1][2] * m[2][1], + m[0][2] * m[2][1] - m[0][1] * m[2][2], + m[0][1] * m[1][2] - m[0][2] * m[1][1] + ), + Vector3( + m[1][2] * m[2][0] - m[1][0] * m[2][2], + m[0][0] * m[2][2] - m[0][2] * m[2][0], + m[0][2] * m[1][0] - m[0][0] * m[1][2] + ), + Vector3( + m[1][0] * m[2][1] - m[1][1] * m[2][0], + m[0][1] * m[2][0] - m[0][0] * m[2][1], + m[0][0] * m[1][1] - m[0][1] * m[1][0] + ) + ) diff --git a/Main.tscn b/Main.tscn new file mode 100644 index 0000000..790554e --- /dev/null +++ b/Main.tscn @@ -0,0 +1,202 @@ +[gd_scene load_steps=17 format=2] + +[ext_resource path="res://TryingOutSomethingNew.gd" type="Script" id=1] +[ext_resource path="res://Node2D.gd" type="Script" id=2] +[ext_resource path="res://icon.png" type="Texture" id=3] +[ext_resource path="res://addons/summer_day/interface/display.gd" type="Script" id=4] +[ext_resource path="res://Bullshit/Main.gd" type="Script" id=5] + +[sub_resource type="Shader" id=1] +code = "shader_type spatial; +render_mode blend_mix,depth_draw_opaque,cull_disabled,skip_vertex_transform; + +uniform vec4 albedo : hint_color; +uniform sampler2D texture_albedo : hint_albedo; +uniform mat4 ha; + + +void vertex() { + vec4 row0 = vec4(0.25, 0.0, 0.0, -0.5); + vec4 row1 = vec4(0.0, 0.25, 0.0, 0.0); + vec4 row2 = vec4(0.0, 0.0, 0.25, -3.0); + vec4 row3 = vec4(0.0, 0.0, 0.00, 3.5); + mat4 crank_matrix = mat4(row0, row1, row2, row3); + vec4 pre = vec4(VERTEX, 1.0) * crank_matrix; + POSITION = pre; +} + + +void fragment() { + vec2 base_uv = UV; + vec4 albedo_tex = texture(texture_albedo,base_uv); + ALBEDO = albedo.rgb; +}" + +[sub_resource type="ShaderMaterial" id=2] +shader = SubResource( 1 ) +shader_param/albedo = Color( 0.768627, 0.231373, 0.231373, 1 ) +shader_param/ha = null + +[sub_resource type="Image" id=17] +data = { +"data": PoolByteArray( 0, 0, 128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 154, 153, 25, 62, 0, 0, 0, 0, 0, 0, 128, 62, 0, 0, 0, 0, 154, 153, 25, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 154, 153, 25, 190, 0, 0, 0, 0, 0, 0, 128, 62, 0, 0, 0, 0, 154, 153, 25, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63 ), +"format": "RGBAFloat", +"height": 1, +"mipmaps": false, +"width": 8 +} + +[sub_resource type="ImageTexture" id=16] +flags = 0 +flags = 0 +image = SubResource( 17 ) +size = Vector2( 8, 1 ) + +[sub_resource type="CapsuleMesh" id=5] +radius = 0.9 +mid_height = 2.0 +radial_segments = 16 +rings = 2 + +[sub_resource type="Shader" id=6] +code = "shader_type spatial; +render_mode blend_mix,depth_draw_opaque,cull_disabled,skip_vertex_transform; + + +uniform sampler2D table : hint_albedo; + + +vec4 indx(int i) { + //return vec4(1.0, 1.0, 0.0, 1.0); + return texture(table, vec2(float(i) * 0.125 + 0.0625), 0.5); +} + +void vertex() { + vec4 row0; + vec4 row1; + vec4 row2; + vec4 row3; + + if (VERTEX.z >= 0.0) { + row0 = vec4(indx(0).x, indx(0).y, indx(0).z, indx(0).w); + row1 = vec4(indx(1).x, indx(1).y, indx(1).z, indx(1).w); + row2 = vec4(indx(2).x, indx(2).y, indx(2).z, indx(2).w); + row3 = vec4(indx(3).x, indx(3).y, indx(3).z, indx(3).w); +// row0 = vec4(0.1, 0.0, 0.0, 0.0); +// row1 = vec4(0.0, 0.1, 0.0, 0.0); +// row2 = vec4(0.0, 0.0, 0.1, 0.0); +// row3 = vec4(0.0, 0.0, 0.0, 1.0); + } + else { + row0 = vec4(indx(4).x, indx(4).y, indx(4).z, indx(4).w); + row1 = vec4(indx(5).x, indx(5).y, indx(5).z, indx(5).w); + row2 = vec4(indx(6).x, indx(6).y, indx(6).z, indx(6).w); + row3 = vec4(indx(7).x, indx(7).y, indx(7).z, indx(7).w); +// row0 = vec4(0.1, 0.0, 0.0, 0.0); +// row1 = vec4(0.0, 0.1, 0.0, 0.0); +// row2 = vec4(0.0, 0.0, 0.1, 0.0); +// row3 = vec4(0.0, 0.0, 0.0, 1.0); + } + mat4 crank_matrix = mat4(row0, row1, row2, row3); + vec4 pre = vec4(VERTEX, 1.0) * crank_matrix; + POSITION = pre; + VERTEX = (pre / pre.w).xyz; +} + +void fragment() { + ALBEDO = texture(table, UV).rgb; +}" + +[sub_resource type="ShaderMaterial" id=7] +shader = SubResource( 6 ) +shader_param/table = SubResource( 16 ) + +[sub_resource type="QuadMesh" id=8] + +[sub_resource type="Shader" id=9] +code = "shader_type spatial; +render_mode blend_mix,depth_draw_opaque,cull_disabled,unshaded; + + +void vertex() { + vec4 row0; + vec4 row1; + vec4 row2; + vec4 row3; + + row0 = vec4(0.2, 0.2, 0.0, 0.0); + row1 = vec4(-0.2, 0.2, 0.0, 0.0); + row2 = vec4(0.0, 0.0, 1.0, 0.0); + row3 = vec4(0.0, 0.0, 0.0, 1.0); + + mat4 crank_matrix = mat4(row0, row1, row2, row3); + vec4 pre = vec4(VERTEX, 1.0) * crank_matrix; + POSITION = pre; + VERTEX = VERTEX; +} + +void fragment() { + ALBEDO = vec3(0.0, 1.0, 0.0); +}" + +[sub_resource type="ShaderMaterial" id=10] +shader = SubResource( 9 ) + +[sub_resource type="Animation" id=14] +length = 725.63 +loop = true + +[node name="Main" type="Node"] +script = ExtResource( 5 ) + +[node name="CSGCylinder" type="CSGCylinder" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.03888, -0.0140027, -0.205594 ) +height = 3.586 +material = SubResource( 2 ) +script = ExtResource( 1 ) + +[node name="CSGCylinder2" type="CSGCylinder" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -25.8122, 0, 0 ) + +[node name="Camera" type="Camera" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 32.985 ) +projection = 1 +current = true +size = 2.0 + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 619.786, 73.103 ) +texture = SubResource( 16 ) +centered = false + +[node name="Sprite3D" type="Sprite3D" parent="."] +visible = false +opacity = 0.15 +texture = ExtResource( 3 ) + +[node name="CSGBox" type="CSGMesh" parent="."] +mesh = SubResource( 5 ) +material = SubResource( 7 ) + +[node name="Node2D" type="Node2D" parent="."] +script = ExtResource( 2 ) + +[node name="CSGBox2" type="CSGBox" parent="."] +visible = false + +[node name="CSGMesh" type="CSGMesh" parent="."] +visible = false +mesh = SubResource( 8 ) +material = SubResource( 10 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 0.398693, -0.714769, -0.574586, 0.450925, 0.698355, -0.555848, 0.798568, -0.0374829, 0.600737, -4.26558, 5.43131, 5.80283 ) + +[node name="SDDisplay" type="Control" parent="."] +margin_right = 40.0 +margin_bottom = 40.0 +script = ExtResource( 4 ) +__meta__ = { +"_edit_use_anchors_": false +} +scene = SubResource( 14 ) diff --git a/Node2D.gd b/Node2D.gd new file mode 100644 index 0000000..cdfed19 --- /dev/null +++ b/Node2D.gd @@ -0,0 +1,162 @@ +tool +extends Node2D + +var image := Image.new() +var table := ImageTexture.new() + +onready var Util = preload("res://Util.gd") + +var corners = [ + Vector2(-0.4, -0.4), + Vector2(0.1, -0.4), + Vector2(0.1, 0.1), + Vector2(-0.4, 0.1), + + Vector2(-0.1, -0.1), + Vector2(0.4, -0.1), + Vector2(0.4, 0.4), + Vector2(-0.1, 0.4), + ] + + +var picked_point = -1 + +var rear_matrix := [] +var front_matrix := [] + +var canvas_inv : Transform2D +var canvas_trans : Transform2D + +# Called when the node enters the scene tree for the first time. +func _ready(): + update_canvas_inv() + + image.create(8, 1, false, Image.FORMAT_RGBAF) + table.create_from_image(image, 0) + #table.create(8, 1, Image.FORMAT_RGBAF, 0) + #image = table.get_data() + image.lock() + for i in range(8): + image.set_pixel(i, 0, + Color(1.0, 0.0, 0.0)) + image.unlock() + table.set_data(image) + $"../Sprite".texture = table + $"../CSGBox".material.set_shader_param("table", table) + _update_matrix() + + +func update_canvas_inv(): + while true: + var viewport_size = get_viewport_rect().size + canvas_inv = Transform2D( + Vector2(2.0 / viewport_size.x, 0.0), + Vector2(0.0, -2.0 / viewport_size.y), + Vector2(-1.0, 1.0) + ) + canvas_trans = canvas_inv.affine_inverse() + update() + yield(get_viewport(), "size_changed") + + +func _input(event): + #print(canvas_inv.xform(get_local_mouse_position())) + #print(event.as_text()) + var mouse_position = get_viewport().get_mouse_position() + + if event is InputEventMouseButton: + + if event.button_index == BUTTON_LEFT: + if event.pressed: + _pick_point(canvas_inv.xform(mouse_position)) + else: + picked_point = -1 + + if event is InputEventMouseMotion: + if picked_point != -1: + corners[picked_point] = canvas_inv.xform(mouse_position) + _update_matrix() + update() + + +func _draw(): + for i in range(4): + draw_line( + canvas_trans.xform(corners[i]), + canvas_trans.xform(corners[wrapi(i + 1, 0, 4)]), + Color.maroon) + for i in range(4): + draw_circle(canvas_trans.xform(corners[i]), 10.0, Color.maroon) + for i in range(4): + draw_line( + canvas_trans.xform(corners[i]), + canvas_trans.xform(corners[i + 4]), + Color.yellow) + for i in range(4): + draw_line( + canvas_trans.xform(corners[i + 4]), + canvas_trans.xform(corners[wrapi(i + 5, 4, 8)]), + Color.purple) + for i in range(4): + draw_circle(canvas_trans.xform(corners[i + 4]), 10.0, Color.purple) + + draw_texture_rect(table, Rect2( + Vector2(750.0, 50.0), Vector2(256.0, 32.0) + ), false) + + +func _pick_point(mouse_pos): + var picked_point_so_far = -1 + var nearest_distance = 20.0 + for i in corners.size(): + var distance = corners[i].distance_to(mouse_pos) + if distance < nearest_distance: + nearest_distance = distance + picked_point_so_far = i + picked_point = picked_point_so_far + + +func _update_matrix(): + rear_matrix = Util.plane_3d_to_xy( + Vector3(-1.0, -1.0, 1.0), + Vector3(1.0, -1.0, 1.0), + Vector3(1.0, 1.0, 1.0), + Vector3(-1.0, 1.0, 1.0), + + corners[0], corners[1], corners[2], corners[3] + ) + + front_matrix = Util.plane_3d_to_xy( + Vector3(-1.0, -1.0, -1.0), + Vector3(1.0, -1.0, -1.0), + Vector3(1.0, 1.0, -1.0), + Vector3(-1.0, 1.0, -1.0), + + corners[4], corners[5], corners[6], corners[7] + ) + +# rear_matrix = [ +# 0.5, 0.0, 0.0, 0.0, +# 0.0, 0.5, 0.0, 0.0, +# 0.0, 0.0, 0.5, 0.0, +# 0.0, 0.0, 0.0, 8.5, +# ] +# +# front_matrix = [ +# 0.5, 0.0, 0.0, 0.0, +# 0.0, 0.5, 0.0, 20.0, +# 0.0, 0.0, 0.5, 0.0, +# 0.0, 0.0, 0.0, 8.5, +# ] + + image.lock() + for i in range(4): + image.set_pixel(i, 0, + Color(front_matrix[i * 4], front_matrix[i * 4 + 1], + front_matrix[i * 4 + 2], front_matrix[i * 4 + 3])) + for i in range(4): + image.set_pixel(i + 4, 0, + Color(rear_matrix[i * 4], rear_matrix[i * 4 + 1], + rear_matrix[i * 4 + 2], rear_matrix[i * 4 + 3])) + image.unlock() + table.set_data(image) diff --git a/PerspectiveTransform.gd b/PerspectiveTransform.gd new file mode 100644 index 0000000..8cb4137 --- /dev/null +++ b/PerspectiveTransform.gd @@ -0,0 +1,148 @@ +extends CSGCylinder + + +# Called when the node enters the scene tree for the first time. +func _ready(): + g2dp_as_basis_test() + + +#--- UNIT TESTS --- + +func g2dp_as_basis_test(): + # Origin. + var o1 = Vector2(-1.0, -1.0) + var o2 = Vector2(1.0, -1.0) + var o3 = Vector2(-1.0, 1.0) + var o4 = Vector2(1.0, 1.0) + + # Destination. + var d1 = Vector2(-1.0, -1.0) + var d2 = Vector2(1.0, -2.0) + var d3 = Vector2(-1.0, 1.0) + var d4 = Vector2(1.0, 1.0) + + print(str(d1) + "\n" + str(d2) + "\n" + str(d3) + "\n" + str(d4) + "\n") + + var m = g2dp_as_basis(o1, o2, o3, o4, d1, d2, d3, d4) + + print(str(m) + "\n") + + var p1 = multiply_basis_vector2(m, o1) + var p2 = multiply_basis_vector2(m, o2) + var p3 = multiply_basis_vector2(m, o3) + var p4 = multiply_basis_vector2(m, o4) + + print(str(p1) + "\n" + str(p2) + "\n" + str(p3) + "\n" + str(p4) + "\n") + + + +func multmm_test(): + var m = Basis( + Vector3(5, 3, 1) , + Vector3(0, -4, -2) , + Vector3(0, 0, 1) + ) + + var mi = m.inverse() + + var ma = [ + m[0][0], m[0][1], m[0][2], + m[1][0], m[1][1], m[1][2], + m[2][0], m[2][1], m[2][2] + ] + + var mia = [ + mi[0][0], mi[0][1], mi[0][2], + mi[1][0], mi[1][1], mi[1][2], + mi[2][0], mi[2][1], mi[2][2] + ] + + var res = multmm(ma, mia) + + print(res) + + +#--- HELPER FUNCTIONS --- + + +func adj(m): + var adj = [ + m[4]*m[8]-m[5]*m[7], m[2]*m[7]-m[1]*m[8], m[1]*m[5]-m[2]*m[4], + m[5]*m[6]-m[3]*m[8], m[0]*m[8]-m[2]*m[6], m[2]*m[3]-m[0]*m[5], + m[3]*m[7]-m[4]*m[6], m[1]*m[6]-m[0]*m[7], m[0]*m[4]-m[1]*m[3] + ] + print("\n" + "adjunctive: " + str(adj) + "\n") + return adj + + +func multmm(a, b): # Multiply two matrices. + var c = range(9) + for i in range(3): + for j in range(3): + var cij = 0 + for k in range(3): + cij += a[3*i + k] * b[3*k + j] + c[3*i + j] = cij + return c + + +func multmv(m, v): # Multiply matrix and vector. + return [ + m[0]*v[0] + m[1]*v[1] + m[2]*v[2], + m[3]*v[0] + m[4]*v[1] + m[5]*v[2], + m[6]*v[0] + m[7]*v[1] + m[8]*v[2] + ] + + +func basis_to_points(x1, y1, x2, y2, x3, y3, x4, y4): + var m = [ + x1, x2, x3, + y1, y2, y3, + 1.0, 1.0, 1.0 + ] + var v = multmv(adj(m), [x4, y4, 1.0]); + print("coeffs: " + str(v)) + var b = multmm(m, [ + v[0], 0.0, 0.0, + 0.0, v[1], 0.0, + 0.0, 0.0, v[2] + ]) + print("matrix: " + str(b)) + return b + + +func general_2d_projection( + x1s, y1s, x1d, y1d, + x2s, y2s, x2d, y2d, + x3s, y3s, x3d, y3d, + x4s, y4s, x4d, y4d +): + var s = basis_to_points(x1s, y1s, x2s, y2s, x3s, y3s, x4s, y4s) + var d = basis_to_points(x1d, y1d, x2d, y2d, x3d, y3d, x4d, y4d) + var m = multmm(d, adj(s)) + for i in range(9): + m[i] /= m[8] + return m + + +func g2dp_as_basis( + s1, s2, s3, s4, + d1, d2, d3, d4 +): + var m = general_2d_projection( + s1.x, s1.y, d1.x, d1.y, + s2.x, s2.y, d2.x, d2.y, + s3.x, s3.y, d3.x, d3.y, + s4.x, s4.y, d4.x, d4.y + ) + + return Basis( + Vector3(m[0], m[1], m[2]), + Vector3(m[3], m[4], m[5]), + Vector3(m[6], m[7], m[8]) + ) + + +func multiply_basis_vector2(b, v): + var h = b.xform(Vector3(v.x, v.y, 1.0)) + return Vector2(h.x / h.z, h.y / h.z) diff --git a/Something.gd b/Something.gd new file mode 100644 index 0000000..d7a782f --- /dev/null +++ b/Something.gd @@ -0,0 +1,17 @@ +extends MeshInstance + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + #mesh.material.set_shader_param("my_matrix", Transform()) + pass + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/TryingOutSomethingNew.gd b/TryingOutSomethingNew.gd new file mode 100644 index 0000000..bec3793 --- /dev/null +++ b/TryingOutSomethingNew.gd @@ -0,0 +1,16 @@ +extends CSGCylinder + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Util.gd b/Util.gd new file mode 100644 index 0000000..6229691 --- /dev/null +++ b/Util.gd @@ -0,0 +1,219 @@ +extends Node + + +static func matrix_to_points( + p01: Vector2, p02: Vector2, p03: Vector2, p04: Vector2 +) -> Array: + var j = p01.x - p02.x - p03.x + p04.x + if j == 0.0: + j = 0.00000001 + var k = -p01.x - p02.x + p03.x + p04.x + var l = -p01.x + p02.x - p03.x + p04.x + var m = p01.y - p02.y - p03.y + p04.y + var n = -p01.y - p02.y + p03.y + p04.y + var o = -p01.y + p02.y - p03.y + p04.y + var i = 1; + + var q = m * k - j * n + if q == 0.0: + q = 0.00000001 + + var h = (j * o - m * l) * i / q + var g = (k * h + l * i) / j + var f = (p01.y * (g + h + i) + p03.y * (-g - h + i)) / 2 + var e = (p01.y * (g + h + i) - p02.y * (g - h + i)) / 2 + var d = p01.y * (g + h + i) - f - e + var c = (p01.x * (g + h + i) + p03.x * (-g - h + i)) / 2 + var b = (p01.x * (g + h + i) - p02.x * (g - h + i)) / 2 + var a = p01.x * (g + h + i) - c - b + + return [ + a, d, g, + b, e, h, + c, f, i + ] + + +static func basis_from_to_points( + s01: Vector2, s02: Vector2, s03: Vector2, s04: Vector2, + d01: Vector2, d02: Vector2, d03: Vector2, d04: Vector2 +): + var matrix_to_source = matrix_to_points(s01, s02, s03, s04) + var basis_to_source = array_to_basis(matrix_to_source) + var basis_from_source = basis_to_source.inverse() + + var matrix_to_dest = matrix_to_points(d01, d02, d03, d04) + var basis_to_dest = array_to_basis(matrix_to_dest) + + var from_source_to_dest = basis_to_dest * basis_from_source + return from_source_to_dest + + +static func array_to_basis(arr: Array) -> Basis: + return Basis( + Vector3(arr[0], arr[1], arr[2]), + Vector3(arr[3], arr[4], arr[5]), + Vector3(arr[6], arr[7], arr[8]) + ) + + +static func basis_to_array(basis: Basis) -> Array: + return [ + basis.x.x, basis.x.y, basis.x.z, + basis.y.x, basis.y.y, basis.y.z, + basis.z.x, basis.z.y, basis.z.z + ] + +static func mult_4x4_matrices(left: Array, right: Array) -> Array: + var result = [] + for y in range(4): + for x in range(4): + var sum = 0.0 + for i in range(4): + sum += left[_c2i(x, i)] * right[_c2i(i, y)] + result.append(sum) + return result + +# Coordinates on a 4x4 field to index. +static func _c2i(x: int, y: int) -> int: + return y * 4 + x + +# This just calculates a rotation-matrix that flattens the z-coordinates of +# the given Quad. You could also say that it makes the normal of the Quad +# point directly to the camera. (-z) +static func plane_to_xy_basis( + p01: Vector3, p02: Vector3, p03: Vector3, p04: Vector3 +) -> Basis: + + var sample_normal_01 = (p02 - p01).cross(p04 - p02).normalized() + var sample_normal_02 = (p03 - p02).cross(p04 - p03).normalized() + + if sample_normal_01.dot(sample_normal_02) <= 0.99999: + push_error("The given form is not a plane and can" + + "therefore not be transformed correctly") + + var normal = sample_normal_01.linear_interpolate(sample_normal_02, 0.5) + normal = normal.normalized() + + var dest_normal = Vector3.BACK + + if normal.dot(dest_normal) >= 0.99999: + return Basis() + + var rot_axis = normal.cross(dest_normal).normalized() + var rot_angle = normal.dot(dest_normal) + + var quad = Quat(-rot_axis, acos(rot_angle)) + var basis = Basis(quad) + + return basis.inverse() + +# This basically takes four Vector3 that form a Quad somewhere in the +# space and a second (this time two-dimensional) Quad to calculate +# the transformation-matrix that is required to get from the former +# to the latter. Returned is said transformation-matrix. +static func plane_3d_to_xy( + p3d_01: Vector3, p3d_02: Vector3, p3d_03: Vector3, p3d_04: Vector3, + d_01: Vector2, d_02: Vector2, d_03: Vector2, d_04: Vector2): + + var rotation_matrix = plane_to_xy_basis( + p3d_01, p3d_02, + p3d_03, p3d_04 + ) + + var to_plane_transform = Transform( + rotation_matrix, Vector3(0.0, 0.0, + -rotation_matrix.xform(p3d_01).z + ) + ) + + var plane_points = [ + to_plane_transform.xform(p3d_01), + to_plane_transform.xform(p3d_02), + to_plane_transform.xform(p3d_03), + to_plane_transform.xform(p3d_04) + ] + + + var xy_points = [ + Vector2(plane_points[0].x, plane_points[0].y), + Vector2(plane_points[1].x, plane_points[1].y), + Vector2(plane_points[2].x, plane_points[2].y), + Vector2(plane_points[3].x, plane_points[3].y), + ] + + var basis_2d = basis_from_to_points( + xy_points[0], xy_points[1], xy_points[2], xy_points[3], + d_01, d_02, d_03, d_04) + +# print(basis_2d) +# +# for i in range(4): +# var flat_coord = xy_points[i] +# var ext_coord = Vector3(flat_coord.x, flat_coord.y, 1.0) +# var trans_coord = basis_2d.xform(ext_coord) +# var cut_coord = Vector2(trans_coord.x, trans_coord.y) +# print(cut_coord) +# print("") + + var transform_2d = Transform( + Vector3(basis_2d.x.x, basis_2d.y.x, 0.0), + Vector3(basis_2d.x.y, basis_2d.y.y, 0.0), + Vector3.ZERO, + Vector3(basis_2d.x.z, basis_2d.y.z, 0.0) + ) + +# var transform_2d = Transform( +# Vector3(basis_2d.x.x, basis_2d.x.y, basis_2d.x.z), +# Vector3(basis_2d.y.x, basis_2d.y.y, basis_2d.y.z), +# Vector3.ZERO, +# Vector3(0.0, 0.0, 0.0) +# ) + + var transform = transform_2d * to_plane_transform + +# return [ +# transform.basis.x.x, transform.basis.x.y, transform.basis.x.z, +# transform.origin.x, +# transform.basis.y.x, transform.basis.y.y, transform.basis.y.z, +# transform.origin.y, +# transform.basis.z.x, transform.basis.z.y, transform.basis.z.z, +# transform.origin.z, +# basis_2d.z.x, basis_2d.z.y, 0.0, 1.0 +# ] + + var cool = mult_4x4_matrices( +# [ +# basis_2d.x.x, basis_2d.x.y, 0.0, basis_2d.x.z, +# basis_2d.y.x, basis_2d.y.y, 0.0, basis_2d.y.z, +# 0.0, 0.0, 0.0, 0.0, +# basis_2d.z.x, basis_2d.z.y, 0.0, basis_2d.z.z, +# ], + [ + basis_2d.x.x, basis_2d.y.x, 0.0, basis_2d.z.x, + basis_2d.x.y, basis_2d.y.y, 0.0, basis_2d.z.y, + 0.0, 0.0, 0.0, 0.0, + basis_2d.x.z, basis_2d.y.z, 0.0, basis_2d.z.z, + ], + [ + to_plane_transform.basis.x.x, to_plane_transform.basis.x.y, + to_plane_transform.basis.x.z, to_plane_transform.origin.x, + + to_plane_transform.basis.y.x, to_plane_transform.basis.y.y, + to_plane_transform.basis.y.z, to_plane_transform.origin.y, + + to_plane_transform.basis.z.x, to_plane_transform.basis.z.y, + to_plane_transform.basis.z.z, to_plane_transform.origin.z, + + 0.0, 0.0, 0.0, 1.0 + ] + ) + +# cool = [ +# cool[0], cool[4], cool[8], cool[12], +# cool[1], cool[5], cool[9], cool[13], +# cool[2], cool[6], cool[10], cool[14], +# cool[3], cool[7], cool[11], cool[15], +# ] + return cool + diff --git a/addons/godot-git-plugin/git_api.gdnlib b/addons/godot-git-plugin/git_api.gdnlib new file mode 100644 index 0000000..18a34ed --- /dev/null +++ b/addons/godot-git-plugin/git_api.gdnlib @@ -0,0 +1,18 @@ +[general] + +singleton=true +load_once=true +symbol_prefix="godot_" +reloadable=false + +[entry] + +OSX.64="res://addons/godot-git-plugin/osx/release/libgitapi.dylib" +Windows.64="res://addons/godot-git-plugin/win64/release/libgitapi.dll" +X11.64="res://addons/godot-git-plugin/x11/release/libgitapi.so" + +[dependencies] + +OSX.64=[ ] +Windows.64=[ ] +X11.64=[ ] diff --git a/addons/godot-git-plugin/git_api.gdns b/addons/godot-git-plugin/git_api.gdns new file mode 100644 index 0000000..eac0d86 --- /dev/null +++ b/addons/godot-git-plugin/git_api.gdns @@ -0,0 +1,9 @@ +[gd_resource type="NativeScript" load_steps=2 format=2] + +[ext_resource path="res://addons/godot-git-plugin/git_api.gdnlib" type="GDNativeLibrary" id=1] + +[resource] +resource_name = "GitAPI" +class_name = "GitAPI" +library = ExtResource( 1 ) +script_class_name = "GitAPI" diff --git a/addons/godot-git-plugin/osx/release/libgitapi.dylib b/addons/godot-git-plugin/osx/release/libgitapi.dylib new file mode 100644 index 0000000..af55445 Binary files /dev/null and b/addons/godot-git-plugin/osx/release/libgitapi.dylib differ diff --git a/addons/godot-git-plugin/plugin.cfg b/addons/godot-git-plugin/plugin.cfg new file mode 100644 index 0000000..a7bb5a7 --- /dev/null +++ b/addons/godot-git-plugin/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="Godot Git Plugin" +description="This plugin lets you interact with Git without leaving the Godot editor. More information can be found at https://github.com/godotengine/godot-git-plugin/wiki" +author="ChronicallySerious" +version="v1.2.2" +script="git_api.gdns" diff --git a/addons/godot-git-plugin/win64/release/libgitapi.dll b/addons/godot-git-plugin/win64/release/libgitapi.dll new file mode 100644 index 0000000..477b1ee Binary files /dev/null and b/addons/godot-git-plugin/win64/release/libgitapi.dll differ diff --git a/addons/godot-git-plugin/x11/release/libgitapi.so b/addons/godot-git-plugin/x11/release/libgitapi.so new file mode 100644 index 0000000..212d789 Binary files /dev/null and b/addons/godot-git-plugin/x11/release/libgitapi.so differ diff --git a/addons/summer_day/interface/ITIsWhateitIs.tres b/addons/summer_day/interface/ITIsWhateitIs.tres new file mode 100644 index 0000000..3802acf --- /dev/null +++ b/addons/summer_day/interface/ITIsWhateitIs.tres @@ -0,0 +1,3 @@ +[gd_resource type="ConvexPolygonShape" format=2] + +[resource] diff --git a/addons/summer_day/interface/display.gd b/addons/summer_day/interface/display.gd new file mode 100644 index 0000000..12bda08 --- /dev/null +++ b/addons/summer_day/interface/display.gd @@ -0,0 +1,15 @@ +extends Control +class_name SDDisplay + + +export(Animation) var scene = null + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/addons/summer_day/main_screen.gd b/addons/summer_day/main_screen.gd new file mode 100644 index 0000000..6a2d6b0 --- /dev/null +++ b/addons/summer_day/main_screen.gd @@ -0,0 +1,2 @@ +extends Control +class_name SummerDayMainScreen diff --git a/addons/summer_day/main_screen.tscn b/addons/summer_day/main_screen.tscn new file mode 100644 index 0000000..3de20ea --- /dev/null +++ b/addons/summer_day/main_screen.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/summer_day/tool/canvas/canvas.tscn" type="PackedScene" id=1] +[ext_resource path="res://addons/summer_day/main_screen.gd" type="Script" id=2] + +[node name="MainScreen" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +size_flags_vertical = 3 +script = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Canvas" parent="." instance=ExtResource( 1 )] +margin_left = 12.0 +margin_top = 12.0 +margin_right = -12.0 +margin_bottom = -12.0 + +[connection signal="resized" from="Canvas" to="Canvas" method="_on_Canvas_resized"] diff --git a/addons/summer_day/plugin.cfg b/addons/summer_day/plugin.cfg new file mode 100644 index 0000000..523f577 --- /dev/null +++ b/addons/summer_day/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="SummerDay" +description="This plugin was designed for internal animation production." +author="Leon Rauschenberg" +version="0.1.0" +script="summer_day.gd" diff --git a/addons/summer_day/summer_day.gd b/addons/summer_day/summer_day.gd new file mode 100644 index 0000000..3eb6c61 --- /dev/null +++ b/addons/summer_day/summer_day.gd @@ -0,0 +1,71 @@ +tool +extends EditorPlugin + +signal sd_scene_changed(new_scene) + +const MainScreen = preload("res://addons/summer_day/main_screen.tscn") +const Timeline = preload("res://addons/summer_day/tool/timeline/timeline.tscn") + +var main_screen_instance: SummerDayMainScreen +var timeline_instance: SummerDayTimeline + + +func _enter_tree(): + main_screen_instance = MainScreen.instance() + self.connect("sd_scene_changed", + main_screen_instance.get_node("Canvas"), "_on_SummerDay_scene_changed" + ) + # Add the main panel to the editor's main viewport. + get_editor_interface().get_editor_viewport().add_child(main_screen_instance) + # Hide the main panel. Very much required. + make_visible(false) + + timeline_instance = Timeline.instance() + add_control_to_bottom_panel(timeline_instance, "SummerDay Timeline") + + add_custom_type("SummerDayScene", "Resource", + load("res://addons/summer_day/data_structure/scene/scene.gd"), + get_editor_interface().get_base_control().get_icon("Animation", "EditorIcons")) + + add_custom_type("SummerDayDisplay", "Control", + load("res://addons/summer_day/interface/display.gd"), + get_editor_interface().get_base_control().get_icon("TextureRect", "EditorIcons")) + + +func _exit_tree(): + if main_screen_instance: + main_screen_instance.queue_free() + remove_custom_type("SummerDayScene") + remove_custom_type("SummerDayDisplay") + remove_control_from_bottom_panel(timeline_instance) + + +func has_main_screen(): + return true + + +func make_visible(visible): + if main_screen_instance: + main_screen_instance.visible = visible + +# if visible: +# make_bottom_panel_item_visible(timeline_instance) +# else: +# hide_bottom_panel() + + +func handles(object): + if object is SummerDayScene: + return true + + +func edit(scene): + emit_signal("sd_scene_changed", scene) + + +func get_plugin_name(): + return "SummerDay" + + +func get_plugin_icon(): + return get_editor_interface().get_base_control().get_icon("AnimationPlayer", "EditorIcons") diff --git a/addons/summer_day/tool/canvas/canvas.gd b/addons/summer_day/tool/canvas/canvas.gd new file mode 100644 index 0000000..8b96353 --- /dev/null +++ b/addons/summer_day/tool/canvas/canvas.gd @@ -0,0 +1,66 @@ +tool +extends Control +class_name SummerDayCanvas + + +signal fill_transform_changed(fill_transform) +signal canvas_transform_changed(canvas_transform) +signal view_transform_changed(view_transform) + + +var scene: SummerDayScene + +var fill_transform := Transform2D.IDENTITY +var canvas_transform := Transform2D.IDENTITY +var view_transform := Transform2D.IDENTITY # fill_transform * canvas_transform + + +func _ready(): + #connect("resized", self, "_size_changed") + pass + + +func _gui_input(event): + if event is InputEventMagnifyGesture: + print(event.factor) + if event is InputEventMouseButton: + print(event.pressed) + + +func _on_SummerDay_scene_changed(new_scene): + scene = new_scene + _update_fill_transform() + $Label.text = str(scene) + "\n" + str(scene.aspect_ratio) + + +func _on_Canvas_resized(): + _update_fill_transform() + range(-1, 1, 2) + + +func _update_fill_transform(): + if scene == null: + fill_transform = Transform2D.IDENTITY + else: + var aspect_ratio = scene.aspect_ratio.x / scene.aspect_ratio.y + + var size_ratio = rect_size.x / rect_size.y + + var scale + var translation = Vector2.ZERO + if aspect_ratio <= size_ratio: + scale = rect_size.y + translation.x = rect_size.x * 0.5 - aspect_ratio * scale * 0.5 + else: + scale = rect_size.x / aspect_ratio + translation.y = rect_size.y * 0.5 - scale * 0.5 + + fill_transform = Transform2D.IDENTITY.scaled(Vector2(scale, scale)) + fill_transform = fill_transform.translated(translation) + print(fill_transform) + emit_signal("fill_transform_changed", fill_transform) + + +func _update_view_transformation(transform): + view_transform = fill_transform * canvas_transform + emit_signal("view_transform_changed", view_transform) diff --git a/addons/summer_day/tool/canvas/canvas.tscn b/addons/summer_day/tool/canvas/canvas.tscn new file mode 100644 index 0000000..196966a --- /dev/null +++ b/addons/summer_day/tool/canvas/canvas.tscn @@ -0,0 +1,100 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://addons/summer_day/tool/canvas/canvas.gd" type="Script" id=1] +[ext_resource path="res://Main.tscn" type="PackedScene" id=2] + +[sub_resource type="GDScript" id=4] +script/source = "tool +extends Polygon2D + + +# Declare member variables here. Examples: +# var a = 2 +# var b = \"text\" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +" + +[sub_resource type="Environment" id=1] +ambient_light_color = Color( 1, 1, 1, 1 ) + +[sub_resource type="World" id=2] +environment = SubResource( 1 ) + +[sub_resource type="GDScript" id=3] +script/source = "tool +extends Control + + +# Declare member variables here. Examples: +# var a = 2 +# var b = \"text\" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + update() +" + +[node name="Canvas" type="ViewportContainer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +stretch = true +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="BackgroundLayer" type="Viewport" parent="."] +size = Vector2( 1024, 600 ) +size_override_stretch = true +transparent_bg = true +handle_input_locally = false +usage = 0 +render_target_update_mode = 3 + +[node name="CanvasLayer" type="Polygon2D" parent="BackgroundLayer"] +scale = Vector2( 55, 55 ) +polygon = PoolVector2Array( -0.8, -0.8, 0.8, -0.8, 0.8, 0.8, -0.8, 0.8 ) +script = SubResource( 4 ) + +[node name="RenderLayer" type="Viewport" parent="."] +size = Vector2( 1024, 600 ) +world = SubResource( 2 ) +transparent_bg = true +handle_input_locally = false +render_target_update_mode = 3 + +[node name="Main" parent="RenderLayer" instance=ExtResource( 2 )] + +[node name="ForegroundLayer" type="Viewport" parent="."] +size = Vector2( 1024, 600 ) +transparent_bg = true +handle_input_locally = false +usage = 0 +render_target_update_mode = 3 + +[node name="Control" type="Control" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 12.0 +margin_top = 12.0 +margin_right = -12.0 +margin_bottom = -12.0 +script = SubResource( 3 ) + +[node name="Label" type="Label" parent="."] +margin_right = 40.0 +margin_bottom = 14.0 + +[connection signal="canvas_transform_changed" from="." to="." method="_update_view_transformation"] +[connection signal="fill_transform_changed" from="." to="." method="_update_view_transformation"] +[connection signal="resized" from="." to="." method="_on_Canvas_resized"] diff --git a/addons/summer_day/tool/timeline/timeline.gd b/addons/summer_day/tool/timeline/timeline.gd new file mode 100644 index 0000000..94ac7ff --- /dev/null +++ b/addons/summer_day/tool/timeline/timeline.gd @@ -0,0 +1,10 @@ +tool +extends Control +class_name SummerDayTimeline + + +func _ready(): + pass + +func _gui_input(event): + pass diff --git a/addons/summer_day/tool/timeline/timeline.tscn b/addons/summer_day/tool/timeline/timeline.tscn new file mode 100644 index 0000000..ce19402 --- /dev/null +++ b/addons/summer_day/tool/timeline/timeline.tscn @@ -0,0 +1,28 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://addons/summer_day/tool/timeline/timeline.gd" type="Script" id=1] + +[node name="Timeline" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +rect_min_size = Vector2( 0, 200 ) +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Hello" type="Label" parent="."] +margin_right = 40.0 +margin_bottom = 14.0 +text = "Hello!" + +[node name="Panel" type="Panel" parent="."] +margin_right = 691.0 +margin_bottom = 167.0 + +[node name="Tree" type="Tree" parent="Panel"] +margin_left = 11.0 +margin_top = 9.0 +margin_right = 681.0 +margin_bottom = 288.0 +columns = 10 diff --git a/cylinder.dae b/cylinder.dae new file mode 100644 index 0000000..7ee20cd --- /dev/null +++ b/cylinder.dae @@ -0,0 +1,142 @@ + + + + + Blender User + Blender 2.92.0 commit date:2021-02-24, commit time:16:25, hash:02948a2cab44 + + 2021-07-22T22:33:45 + 2021-07-22T22:33:45 + + Z_UP + + + + + + + 39.59775 + 1.777778 + 0.1 + 100 + + + + + + 0 + 0 + 10 + + + + + + + + + 1000 1000 1000 + 1 + 0 + 0.00111109 + + + + + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + 1000 + 29.99998 + 75 + 0.15 + 0 + 1 + 2 + 0.04999995 + 30.002 + 1 + 3 + 2880 + 3 + 1 + 1 + 0.1 + 0.1 + 1 + + + + + + + + + + 0 1 -1 0 1 1 0.1950903 0.9807853 -1 0.1950903 0.9807853 1 0.3826835 0.9238795 -1 0.3826835 0.9238795 1 0.5555703 0.8314696 -1 0.5555703 0.8314696 1 0.7071068 0.7071068 -1 0.7071068 0.7071068 1 0.8314697 0.5555702 -1 0.8314697 0.5555702 1 0.9238795 0.3826834 -1 0.9238795 0.3826834 1 0.9807853 0.1950903 -1 0.9807853 0.1950903 1 1 0 -1 1 0 1 0.9807853 -0.1950902 -1 0.9807853 -0.1950902 1 0.9238796 -0.3826833 -1 0.9238796 -0.3826833 1 0.8314697 -0.5555702 -1 0.8314697 -0.5555702 1 0.7071068 -0.7071068 -1 0.7071068 -0.7071068 1 0.5555702 -0.8314697 -1 0.5555702 -0.8314697 1 0.3826833 -0.9238796 -1 0.3826833 -0.9238796 1 0.1950901 -0.9807853 -1 0.1950901 -0.9807853 1 -3.25841e-7 -1 -1 -3.25841e-7 -1 1 -0.1950907 -0.9807852 -1 -0.1950907 -0.9807852 1 -0.3826839 -0.9238793 -1 -0.3826839 -0.9238793 1 -0.5555707 -0.8314693 -1 -0.5555707 -0.8314693 1 -0.7071073 -0.7071064 -1 -0.7071073 -0.7071064 1 -0.83147 -0.5555697 -1 -0.83147 -0.5555697 1 -0.9238799 -0.3826827 -1 -0.9238799 -0.3826827 1 -0.9807854 -0.1950894 -1 -0.9807854 -0.1950894 1 -1 9.65599e-7 -1 -1 9.65599e-7 1 -0.9807851 0.1950913 -1 -0.9807851 0.1950913 1 -0.9238791 0.3826845 -1 -0.9238791 0.3826845 1 -0.8314689 0.5555713 -1 -0.8314689 0.5555713 1 -0.7071059 0.7071077 -1 -0.7071059 0.7071077 1 -0.5555691 0.8314704 -1 -0.5555691 0.8314704 1 -0.3826821 0.9238801 -1 -0.3826821 0.9238801 1 -0.1950888 0.9807856 -1 -0.1950888 0.9807856 1 + + + + + + + + + + 0.09801727 0.9951847 0 0.2902846 0.9569405 0 0.4713967 0.8819213 0 0.6343935 0.7730103 0 0.7730106 0.6343932 0 0.8819215 0.4713966 0 0.9569404 0.2902848 0 0.9951847 0.09801727 0 0.9951848 -0.09801667 0 0.9569404 -0.2902848 0 0.8819214 -0.4713968 0 0.7730103 -0.6343936 0 0.6343934 -0.7730104 0 0.4713968 -0.8819214 0 0.2902842 -0.9569405 0 0.09801691 -0.9951848 0 -0.09801757 -0.9951848 0 -0.2902852 -0.9569402 0 -0.4713971 -0.8819211 0 -0.6343939 -0.77301 0 -0.7730109 -0.6343929 0 -0.8819217 -0.4713961 0 -0.9569407 -0.2902834 0 -0.9951849 -0.09801602 0 -0.9951847 0.09801787 0 -0.95694 0.2902858 0 -0.8819208 0.4713979 0 -0.7730096 0.6343944 0 -0.6343926 0.7730111 0 -0.4713955 0.881922 0 0 0 1 -0.290283 0.9569408 0 -0.0980165 0.9951848 0 0 0 -1 0.2902847 0.9569404 0 0.6343932 0.7730106 0 0.7730103 0.6343936 0 0.9951847 -0.09801727 0 0.8819216 -0.4713962 0 0.7730106 -0.6343932 0 0.2902843 -0.9569405 0 -0.2902852 -0.9569402 0 -0.6343936 -0.7730103 0 -0.7730111 -0.6343926 0 -0.9569405 -0.2902839 0 -0.9951848 -0.09801661 0 -0.9951846 0.09801846 0 -0.881921 0.4713975 0 -0.6343923 0.7730113 0 0 0 1 -3.97511e-6 0 1 3.97512e-6 0 1 1.43703e-6 0 1 -7.77715e-7 0 1 -2.87796e-7 0 1 -0.2902831 0.9569409 0 -3.97511e-6 0 -1 3.97512e-6 0 -1 3.88857e-7 0 -1 0 0 -1 + + + + + + + + + + 1 1 0.96875 0.5 1 0.5 0.96875 1 0.9375 0.5 0.96875 0.5 0.9375 1 0.90625 0.5 0.9375 0.5 0.90625 1 0.875 0.5 0.90625 0.5 0.875 1 0.84375 0.5 0.875 0.5 0.84375 1 0.8125 0.5 0.84375 0.5 0.8125 1 0.78125 0.5 0.8125 0.5 0.78125 1 0.75 0.5 0.78125 0.5 0.75 1 0.71875 0.5 0.75 0.5 0.71875 1 0.6875 0.5 0.71875 0.5 0.6875 1 0.65625 0.5 0.6875 0.5 0.65625 1 0.625 0.5 0.65625 0.5 0.625 1 0.59375 0.5 0.625 0.5 0.59375 1 0.5625 0.5 0.59375 0.5 0.5625 1 0.53125 0.5 0.5625 0.5 0.53125 1 0.5 0.5 0.53125 0.5 0.5 1 0.46875 0.5 0.5 0.5 0.46875 1 0.4375 0.5 0.46875 0.5 0.4375 1 0.40625 0.5 0.4375 0.5 0.40625 1 0.375 0.5 0.40625 0.5 0.375 1 0.34375 0.5 0.375 0.5 0.34375 1 0.3125 0.5 0.34375 0.5 0.3125 1 0.28125 0.5 0.3125 0.5 0.28125 1 0.25 0.5 0.28125 0.5 0.25 1 0.21875 0.5 0.25 0.5 0.21875 1 0.1875 0.5 0.21875 0.5 0.1875 1 0.15625 0.5 0.1875 0.5 0.15625 1 0.125 0.5 0.15625 0.5 0.125 1 0.09375 0.5 0.125 0.5 0.09375 1 0.0625 0.5 0.09375 0.5 0.02826899 0.3418443 0.1581559 0.02826893 0.4717311 0.158156 0.0625 1 0.03125 0.5 0.0625 0.5 0.03125 1 0 0.5 0.03125 0.5 0.9853885 0.2968217 0.7968216 0.01461148 0.5146115 0.2031785 1 1 0.96875 1 0.96875 0.5 0.96875 1 0.9375 1 0.9375 0.5 0.9375 1 0.90625 1 0.90625 0.5 0.90625 1 0.875 1 0.875 0.5 0.875 1 0.84375 1 0.84375 0.5 0.84375 1 0.8125 1 0.8125 0.5 0.8125 1 0.78125 1 0.78125 0.5 0.78125 1 0.75 1 0.75 0.5 0.75 1 0.71875 1 0.71875 0.5 0.71875 1 0.6875 1 0.6875 0.5 0.6875 1 0.65625 1 0.65625 0.5 0.65625 1 0.625 1 0.625 0.5 0.625 1 0.59375 1 0.59375 0.5 0.59375 1 0.5625 1 0.5625 0.5 0.5625 1 0.53125 1 0.53125 0.5 0.53125 1 0.5 1 0.5 0.5 0.5 1 0.46875 1 0.46875 0.5 0.46875 1 0.4375 1 0.4375 0.5 0.4375 1 0.40625 1 0.40625 0.5 0.40625 1 0.375 1 0.375 0.5 0.375 1 0.34375 1 0.34375 0.5 0.34375 1 0.3125 1 0.3125 0.5 0.3125 1 0.28125 1 0.28125 0.5 0.28125 1 0.25 1 0.25 0.5 0.25 1 0.21875 1 0.21875 0.5 0.21875 1 0.1875 1 0.1875 0.5 0.1875 1 0.15625 1 0.15625 0.5 0.15625 1 0.125 1 0.125 0.5 0.125 1 0.09375 1 0.09375 0.5 0.09375 1 0.0625 1 0.0625 0.5 0.341844 0.4717311 0.2968217 0.4853885 0.25 0.49 0.25 0.49 0.2031787 0.4853885 0.341844 0.4717311 0.2031787 0.4853885 0.1581563 0.4717312 0.341844 0.4717311 0.1581563 0.4717312 0.1166634 0.4495529 0.08029454 0.4197058 0.08029454 0.4197058 0.05044746 0.3833371 0.02826899 0.3418443 0.02826899 0.3418443 0.01461154 0.2968219 0.00999999 0.2500002 0.00999999 0.2500002 0.01461148 0.2031785 0.02826899 0.3418443 0.01461148 0.2031785 0.02826881 0.1581561 0.02826899 0.3418443 0.02826881 0.1581561 0.05044716 0.1166633 0.1581559 0.02826893 0.05044716 0.1166633 0.08029425 0.08029443 0.1581559 0.02826893 0.08029425 0.08029443 0.116663 0.05044734 0.1581559 0.02826893 0.1581559 0.02826893 0.2031782 0.01461154 0.2499999 0.00999999 0.2499999 0.00999999 0.2968216 0.01461148 0.341844 0.02826887 0.341844 0.02826887 0.3833369 0.05044728 0.4197056 0.08029437 0.4197056 0.08029437 0.4495527 0.1166631 0.4717311 0.158156 0.4717311 0.158156 0.4853885 0.2031783 0.49 0.25 0.49 0.25 0.4853885 0.2968217 0.4717311 0.158156 0.4853885 0.2968217 0.4717311 0.341844 0.4717311 0.158156 0.4717311 0.341844 0.4495527 0.3833369 0.4197056 0.4197056 0.4197056 0.4197056 0.3833369 0.4495527 0.341844 0.4717311 0.1581563 0.4717312 0.08029454 0.4197058 0.341844 0.4717311 0.08029454 0.4197058 0.02826899 0.3418443 0.341844 0.4717311 0.1581559 0.02826893 0.2499999 0.00999999 0.4717311 0.158156 0.2499999 0.00999999 0.341844 0.02826887 0.4717311 0.158156 0.341844 0.02826887 0.4197056 0.08029437 0.4717311 0.158156 0.4717311 0.341844 0.4197056 0.4197056 0.4717311 0.158156 0.4197056 0.4197056 0.341844 0.4717311 0.4717311 0.158156 0.02826899 0.3418443 0.02826881 0.1581561 0.1581559 0.02826893 0.341844 0.4717311 0.02826899 0.3418443 0.4717311 0.158156 0.0625 1 0.03125 1 0.03125 0.5 0.03125 1 0 1 0 0.5 0.7031787 0.4853885 0.75 0.49 0.7968217 0.4853885 0.7968217 0.4853885 0.841844 0.4717311 0.8833369 0.4495527 0.8833369 0.4495527 0.9197056 0.4197056 0.9495527 0.3833369 0.9495527 0.3833369 0.9717311 0.341844 0.8833369 0.4495527 0.9717311 0.341844 0.9853885 0.2968217 0.8833369 0.4495527 0.9853885 0.2968217 0.99 0.25 0.9853885 0.2031783 0.9853885 0.2031783 0.9717311 0.158156 0.9853885 0.2968217 0.9717311 0.158156 0.9495527 0.1166631 0.9853885 0.2968217 0.9495527 0.1166631 0.9197056 0.08029437 0.7968216 0.01461148 0.9197056 0.08029437 0.8833369 0.05044728 0.7968216 0.01461148 0.8833369 0.05044728 0.841844 0.02826887 0.7968216 0.01461148 0.7968216 0.01461148 0.75 0.00999999 0.7031782 0.01461154 0.7031782 0.01461154 0.6581559 0.02826893 0.616663 0.05044734 0.616663 0.05044734 0.5802943 0.08029443 0.5504472 0.1166633 0.5504472 0.1166633 0.5282688 0.1581561 0.5146115 0.2031785 0.5146115 0.2031785 0.51 0.2500002 0.5146116 0.2968219 0.5146116 0.2968219 0.5282691 0.3418443 0.5504475 0.3833371 0.5504475 0.3833371 0.5802946 0.4197058 0.7031787 0.4853885 0.5802946 0.4197058 0.6166634 0.4495529 0.7031787 0.4853885 0.6166634 0.4495529 0.6581563 0.4717312 0.7031787 0.4853885 0.7031787 0.4853885 0.7968217 0.4853885 0.8833369 0.4495527 0.7968216 0.01461148 0.7031782 0.01461154 0.5146115 0.2031785 0.7031782 0.01461154 0.616663 0.05044734 0.5146115 0.2031785 0.616663 0.05044734 0.5504472 0.1166633 0.5146115 0.2031785 0.5146115 0.2031785 0.5146116 0.2968219 0.7031787 0.4853885 0.5146116 0.2968219 0.5504475 0.3833371 0.7031787 0.4853885 0.7031787 0.4853885 0.8833369 0.4495527 0.9853885 0.2968217 0.9853885 0.2968217 0.9495527 0.1166631 0.7968216 0.01461148 0.7031787 0.4853885 0.9853885 0.2968217 0.5146115 0.2031785 + + + + + + + + + + + + + + +

1 0 0 2 0 1 0 0 2 3 1 3 4 1 4 2 1 5 5 2 6 6 2 7 4 2 8 7 3 9 8 3 10 6 3 11 9 4 12 10 4 13 8 4 14 11 5 15 12 5 16 10 5 17 13 6 18 14 6 19 12 6 20 15 7 21 16 7 22 14 7 23 17 8 24 18 8 25 16 8 26 19 9 27 20 9 28 18 9 29 21 10 30 22 10 31 20 10 32 23 11 33 24 11 34 22 11 35 25 12 36 26 12 37 24 12 38 27 13 39 28 13 40 26 13 41 29 14 42 30 14 43 28 14 44 31 15 45 32 15 46 30 15 47 33 16 48 34 16 49 32 16 50 35 17 51 36 17 52 34 17 53 37 18 54 38 18 55 36 18 56 39 19 57 40 19 58 38 19 59 41 20 60 42 20 61 40 20 62 43 21 63 44 21 64 42 21 65 45 22 66 46 22 67 44 22 68 47 23 69 48 23 70 46 23 71 49 24 72 50 24 73 48 24 74 51 25 75 52 25 76 50 25 77 53 26 78 54 26 79 52 26 80 55 27 81 56 27 82 54 27 83 57 28 84 58 28 85 56 28 86 59 29 87 60 29 88 58 29 89 53 30 90 37 30 91 21 30 92 61 31 93 62 31 94 60 31 95 63 32 96 0 32 97 62 32 98 14 33 99 30 33 100 46 33 101 1 0 102 3 0 103 2 0 104 3 34 105 5 34 106 4 34 107 5 2 108 7 2 109 6 2 110 7 35 111 9 35 112 8 35 113 9 36 114 11 36 115 10 36 116 11 5 117 13 5 118 12 5 119 13 6 120 15 6 121 14 6 122 15 7 123 17 7 124 16 7 125 17 37 126 19 37 127 18 37 128 19 9 129 21 9 130 20 9 131 21 38 132 23 38 133 22 38 134 23 39 135 25 39 136 24 39 137 25 12 138 27 12 139 26 12 140 27 13 141 29 13 142 28 13 143 29 40 144 31 40 145 30 40 146 31 15 147 33 15 148 32 15 149 33 16 150 35 16 151 34 16 152 35 41 153 37 41 154 36 41 155 37 18 156 39 18 157 38 18 158 39 42 159 41 42 160 40 42 161 41 43 162 43 43 163 42 43 164 43 21 165 45 21 166 44 21 167 45 44 168 47 44 169 46 44 170 47 45 171 49 45 172 48 45 173 49 46 174 51 46 175 50 46 176 51 25 177 53 25 178 52 25 179 53 47 180 55 47 181 54 47 182 55 27 183 57 27 184 56 27 185 57 48 186 59 48 187 58 48 188 59 29 189 61 29 190 60 29 191 5 49 192 3 49 193 1 49 194 1 49 195 63 49 196 5 49 197 63 49 198 61 49 199 5 49 200 61 49 201 59 49 202 57 49 203 57 49 204 55 49 205 53 49 206 53 50 207 51 50 208 49 50 209 49 49 210 47 49 211 53 49 212 47 49 213 45 49 214 53 49 215 45 49 216 43 49 217 37 49 218 43 49 219 41 49 220 37 49 221 41 49 222 39 49 223 37 49 224 37 49 225 35 49 226 33 49 227 33 49 228 31 49 229 29 49 230 29 49 231 27 49 232 25 49 233 25 49 234 23 49 235 21 49 236 21 51 237 19 51 238 17 51 239 17 49 240 15 49 241 21 49 242 15 49 243 13 49 244 21 49 245 13 49 246 11 49 247 9 49 248 9 49 249 7 49 250 5 49 251 61 49 252 57 49 253 5 49 254 57 49 255 53 49 256 5 49 257 37 49 258 33 49 259 21 49 260 33 49 261 29 49 262 21 49 263 29 49 264 25 49 265 21 49 266 13 52 267 9 52 268 21 52 269 9 53 270 5 53 271 21 53 272 53 54 273 45 54 274 37 54 275 5 49 276 53 49 277 21 49 278 61 55 279 63 55 280 62 55 281 63 32 282 1 32 283 0 32 284 62 33 285 0 33 286 2 33 287 2 33 288 4 33 289 6 33 290 6 33 291 8 33 292 10 33 293 10 33 294 12 33 295 6 33 296 12 33 297 14 33 298 6 33 299 14 33 300 16 33 301 18 33 302 18 33 303 20 33 304 14 33 305 20 33 306 22 33 307 14 33 308 22 33 309 24 33 310 30 33 311 24 33 312 26 33 313 30 33 314 26 33 315 28 33 316 30 33 317 30 33 318 32 33 319 34 33 320 34 33 321 36 33 322 38 33 323 38 33 324 40 33 325 42 33 326 42 33 327 44 33 328 46 33 329 46 56 330 48 56 331 50 56 332 50 57 333 52 57 334 54 57 335 54 33 336 56 33 337 62 33 338 56 33 339 58 33 340 62 33 341 58 33 342 60 33 343 62 33 344 62 33 345 2 33 346 6 33 347 30 33 348 34 33 349 46 33 350 34 33 351 38 33 352 46 33 353 38 33 354 42 33 355 46 33 356 46 58 357 50 58 358 62 58 359 50 33 360 54 33 361 62 33 362 62 33 363 6 33 364 14 33 365 14 33 366 22 33 367 30 33 368 62 59 369 14 59 370 46 59 371

+
+
+
+
+ + + + 0.3416876 0 0 0 0 0.3416876 0 0 0 0 1 0 0 0 0 1 + + + + 0.6859207 -0.3240135 0.6515582 7.358891 0.7276763 0.3054208 -0.6141704 -6.925791 0 0.8953956 0.4452714 4.958309 0 0 0 1 + + + + -0.2908646 -0.7711008 0.5663932 4.076245 0.9551712 -0.1998834 0.2183912 1.005454 -0.05518906 0.6045247 0.7946723 5.903862 0 0 0 1 + + + + + + + +
\ No newline at end of file diff --git a/cylinder.dae.import b/cylinder.dae.import new file mode 100644 index 0000000..500e502 --- /dev/null +++ b/cylinder.dae.import @@ -0,0 +1,1064 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/cylinder.dae-bbdb83807a35d5c4777409ebc34252b7.scn" + +[deps] + +source_file="res://cylinder.dae" +dest_files=[ "res://.import/cylinder.dae-bbdb83807a35d5c4777409ebc34252b7.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=1 +materials/keep_on_reimport=true +meshes/compress=true +meshes/ensure_tangents=true +meshes/storage=0 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/default_env.tres b/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..c98fbb6 Binary files /dev/null and b/icon.png differ diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..020623f --- /dev/null +++ b/icon.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..a124fa9 --- /dev/null +++ b/project.godot @@ -0,0 +1,108 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ { +"base": "ConvexYoMama", +"class": "ConvexDaddyAahhh", +"language": "GDScript", +"path": "res://Bullshit/convexDad.gd" +}, { +"base": "ConvexPolygonShape", +"class": "ConvexYoMama", +"language": "GDScript", +"path": "res://Bullshit/TestResource.gd" +}, { +"base": "", +"class": "GitAPI", +"language": "NativeScript", +"path": "res://addons/godot-git-plugin/git_api.gdns" +}, { +"base": "Resource", +"class": "OH", +"language": "GDScript", +"path": "res://Bullshit/YoArOphanHaha.gd" +}, { +"base": "ViewportTexture", +"class": "PremiumTexture", +"language": "GDScript", +"path": "res://Bullshit/NewTexutre.gd" +}, { +"base": "Control", +"class": "SDDisplay", +"language": "GDScript", +"path": "res://addons/summer_day/interface/display.gd" +}, { +"base": "ScriptEditor", +"class": "ScriptEditorTest", +"language": "GDScript", +"path": "res://Bullshit/ScriptEditTest.gd" +}, { +"base": "Control", +"class": "SummerDayCanvas", +"language": "GDScript", +"path": "res://addons/summer_day/tool/canvas/canvas.gd" +}, { +"base": "Control", +"class": "SummerDayMainScreen", +"language": "GDScript", +"path": "res://addons/summer_day/main_screen.gd" +}, { +"base": "Resource", +"class": "SummerDayScene", +"language": "GDScript", +"path": "res://addons/summer_day/data_structure/scene/scene.gd" +}, { +"base": "Control", +"class": "SummerDayTimeline", +"language": "GDScript", +"path": "res://addons/summer_day/tool/timeline/timeline.gd" +}, { +"base": "OH", +"class": "VeryWorse", +"language": "GDScript", +"path": "res://Bullshit/OhItGetsWorse.gd" +} ] +_global_script_class_icons={ +"ConvexDaddyAahhh": "", +"ConvexYoMama": "", +"GitAPI": "", +"OH": "", +"PremiumTexture": "", +"SDDisplay": "", +"ScriptEditorTest": "", +"SummerDayCanvas": "", +"SummerDayMainScreen": "", +"SummerDayScene": "", +"SummerDayTimeline": "", +"VeryWorse": "" +} + +[application] + +config/name="CGMationSomeday" +run/main_scene="res://Main.tscn" +config/icon="res://icon.png" + +[autoload] + +Util="res://Util.gd" + +[gdnative] + +singletons=[ "res://addons/godot-git-plugin/git_api.gdnlib" ] + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +quality/driver/fallback_to_gles2=true +environment/default_environment="res://default_env.tres" diff --git a/real_cylinder.tscn b/real_cylinder.tscn new file mode 100644 index 0000000..857c9fb --- /dev/null +++ b/real_cylinder.tscn @@ -0,0 +1,55 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://cylinder.dae" type="PackedScene" id=1] + +[sub_resource type="Shader" id=1] +code = "shader_type spatial; + + + + + + + + + + + + +render_mode blend_mix,depth_draw_opaque,cull_disabled; + +uniform vec4 albedo : hint_color; +uniform sampler2D texture_albedo : hint_albedo; +uniform mat4 my_matrix; + + + +void vertex() { + //VERTEX=VERTEX * my_matrix; + vec4 row0 = vec4(1.0, 0.0, 0.0, 2.0); + vec4 row1 = vec4(0.0, 1.0, 0.0, 0.0); + vec4 row2 = vec4(0.0, 0.0, 1.0, -3.0); + vec4 row3 = vec4(0.0, 0.0, 0.0, 1.0); + mat4 crank_matrix = mat4(row0, row1, row2, row3); + //VERTEX=(vec4(VERTEX, 1.0) * crank_matrix).xyz; +} + + + + +void fragment() { + vec2 base_uv = UV; + vec4 albedo_tex = texture(texture_albedo,base_uv); + ALBEDO = albedo.rgb * albedo_tex.rgb; +} +" + +[sub_resource type="ShaderMaterial" id=2] +shader = SubResource( 1 ) +shader_param/albedo = Color( 1, 1, 1, 1 ) +shader_param/my_matrix = Transform( 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, -5 ) + +[node name="cylinder" instance=ExtResource( 1 )] + +[node name="Cylinder" parent="." index="0"] +material/0 = SubResource( 2 )