diff --git a/digibord_tools/godot/Tools/Calculator.tscn b/digibord_tools/godot/Tools/Calculator.tscn new file mode 100644 index 0000000..9bcd9f5 --- /dev/null +++ b/digibord_tools/godot/Tools/Calculator.tscn @@ -0,0 +1,212 @@ +[gd_scene format=2] + +[node name="Calculator" type="CanvasLayer"] + +[node name="NumPad" type="GridContainer" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -200.0 +margin_top = -150.0 +margin_right = 200.0 +margin_bottom = 250.0 +rect_min_size = Vector2( 400, 0 ) +custom_constants/vseparation = 10 +custom_constants/hseparation = 10 +columns = 4 + +[node name="ButtonGhost" type="Button" parent="NumPad"] +margin_right = 93.0 +margin_bottom = 72.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "X" + +[node name="ButtonPlusMin" type="Button" parent="NumPad"] +margin_left = 103.0 +margin_right = 196.0 +margin_bottom = 72.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "+/-" + +[node name="ButtonPerc" type="Button" parent="NumPad"] +margin_left = 206.0 +margin_right = 298.0 +margin_bottom = 72.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "%" + +[node name="ButtonDivide" type="Button" parent="NumPad"] +margin_left = 308.0 +margin_right = 400.0 +margin_bottom = 72.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = ":" + +[node name="Button7" type="Button" parent="NumPad"] +margin_top = 82.0 +margin_right = 93.0 +margin_bottom = 154.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "7" + +[node name="Button8" type="Button" parent="NumPad"] +margin_left = 103.0 +margin_top = 82.0 +margin_right = 196.0 +margin_bottom = 154.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "8" + +[node name="Button9" type="Button" parent="NumPad"] +margin_left = 206.0 +margin_top = 82.0 +margin_right = 298.0 +margin_bottom = 154.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "9" + +[node name="ButtonMultiply" type="Button" parent="NumPad"] +margin_left = 308.0 +margin_top = 82.0 +margin_right = 400.0 +margin_bottom = 154.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "x" + +[node name="Button4" type="Button" parent="NumPad"] +margin_top = 164.0 +margin_right = 93.0 +margin_bottom = 236.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "4" + +[node name="Button5" type="Button" parent="NumPad"] +margin_left = 103.0 +margin_top = 164.0 +margin_right = 196.0 +margin_bottom = 236.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "5" + +[node name="Button6" type="Button" parent="NumPad"] +margin_left = 206.0 +margin_top = 164.0 +margin_right = 298.0 +margin_bottom = 236.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "6" + +[node name="ButtonMinus" type="Button" parent="NumPad"] +margin_left = 308.0 +margin_top = 164.0 +margin_right = 400.0 +margin_bottom = 236.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "-" + +[node name="Button1" type="Button" parent="NumPad"] +margin_top = 246.0 +margin_right = 93.0 +margin_bottom = 318.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "1" + +[node name="Button2" type="Button" parent="NumPad"] +margin_left = 103.0 +margin_top = 246.0 +margin_right = 196.0 +margin_bottom = 318.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "2" + +[node name="Button3" type="Button" parent="NumPad"] +margin_left = 206.0 +margin_top = 246.0 +margin_right = 298.0 +margin_bottom = 318.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "3" + +[node name="ButtonPlus" type="Button" parent="NumPad"] +margin_left = 308.0 +margin_top = 246.0 +margin_right = 400.0 +margin_bottom = 318.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "+" + +[node name="ButtonAC" type="Button" parent="NumPad"] +margin_top = 328.0 +margin_right = 93.0 +margin_bottom = 400.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "AC" + +[node name="Button0" type="Button" parent="NumPad"] +margin_left = 103.0 +margin_top = 328.0 +margin_right = 196.0 +margin_bottom = 400.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "0" + +[node name="ButtonDot" type="Button" parent="NumPad"] +margin_left = 206.0 +margin_top = 328.0 +margin_right = 298.0 +margin_bottom = 400.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "." + +[node name="ButtonEquals" type="Button" parent="NumPad"] +margin_left = 308.0 +margin_top = 328.0 +margin_right = 400.0 +margin_bottom = 400.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "=" + +[node name="PrintoutArea" type="Control" parent="."] +anchor_left = 0.5 +anchor_right = 0.5 +margin_left = -200.0 +margin_top = 55.0 +margin_right = 200.0 +margin_bottom = 135.0 + +[node name="ColorRect" type="ColorRect" parent="PrintoutArea"] +anchor_right = 1.0 +anchor_bottom = 1.0 +color = Color( 0.0509804, 0.0313726, 0.286275, 1 ) + +[node name="NumberLine" type="Label" parent="PrintoutArea"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 5.0 +margin_top = 5.0 +margin_right = -5.0 +margin_bottom = -5.0 +text = "1234" +align = 2 +uppercase = true diff --git a/digibord_tools/godot/Tools/Dice.gd b/digibord_tools/godot/Tools/Dice.gd new file mode 100644 index 0000000..76cb2ce --- /dev/null +++ b/digibord_tools/godot/Tools/Dice.gd @@ -0,0 +1,21 @@ +extends Button + + +onready var dice_label_one = get_node("../DiceLabelOne") +var dice_print_value = 0 +var rng = RandomNumberGenerator.new() + + +func _ready(): + pass # Replace with function body. + + +func roll_die(dice, sides): + while dice >= 1: + dice_print_value = rng.randi_range(1, sides) + dice -= 1 + + +func _on_ButtonRoll_pressed(): + roll_die(1, 6) + dice_label_one.text = str(dice_print_value) diff --git a/digibord_tools/godot/Tools/Dice.tscn b/digibord_tools/godot/Tools/Dice.tscn new file mode 100644 index 0000000..468d80f --- /dev/null +++ b/digibord_tools/godot/Tools/Dice.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Tools/Dice.gd" type="Script" id=1] + +[node name="DiceScreen" type="CanvasLayer"] + +[node name="ButtonRoll" type="Button" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -18.0 +margin_top = -10.0 +margin_right = 18.0 +margin_bottom = 10.0 +text = "Roll" +script = ExtResource( 1 ) + +[node name="DiceLabelOne" type="Label" parent="."] +margin_left = 507.0 +margin_top = 260.0 +margin_right = 547.0 +margin_bottom = 274.0 +text = "6" + +[connection signal="pressed" from="ButtonRoll" to="ButtonRoll" method="_on_ButtonRoll_pressed"] diff --git a/digibord_tools/godot/default_env.tres b/digibord_tools/godot/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/digibord_tools/godot/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/digibord_tools/godot/icon.png b/digibord_tools/godot/icon.png new file mode 100644 index 0000000..c98fbb6 Binary files /dev/null and b/digibord_tools/godot/icon.png differ diff --git a/digibord_tools/godot/icon.png.import b/digibord_tools/godot/icon.png.import new file mode 100644 index 0000000..a4c02e6 --- /dev/null +++ b/digibord_tools/godot/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=true +svg/scale=1.0 diff --git a/digibord_tools/godot/main_buttons.gd b/digibord_tools/godot/main_buttons.gd new file mode 100644 index 0000000..4ce1329 --- /dev/null +++ b/digibord_tools/godot/main_buttons.gd @@ -0,0 +1,26 @@ +extends Button + + +onready var start_screen = get_node("../..") +onready var calculator_screen = get_node("../../CalculatorScreen") +onready var dice_screen = get_node("../../DiceScreen") + + +# 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 + + +func _on_ButtonCalculator_pressed(): + start_screen.visible = false + calculator_screen.visible = true + + +func _on_ButtonDice_pressed(): + start_screen.visible = false + dice_screen.visible = true diff --git a/digibord_tools/godot/project.godot b/digibord_tools/godot/project.godot new file mode 100644 index 0000000..8cdc982 --- /dev/null +++ b/digibord_tools/godot/project.godot @@ -0,0 +1,32 @@ +; 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 + +[application] + +config/name="Digibord Tools" +run/main_scene="res://startup.tscn" +config/icon="res://icon.png" + +[display] + +window/stretch/mode="2d" +window/stretch/aspect="expand" + +[gui] + +common/drop_mouse_on_gui_input_disabled=true + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +environment/default_environment="res://default_env.tres" diff --git a/digibord_tools/godot/startup.gd b/digibord_tools/godot/startup.gd new file mode 100644 index 0000000..4dc10bd --- /dev/null +++ b/digibord_tools/godot/startup.gd @@ -0,0 +1,11 @@ +extends CanvasLayer + + +# 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/digibord_tools/godot/startup.tscn b/digibord_tools/godot/startup.tscn new file mode 100644 index 0000000..73b27c2 --- /dev/null +++ b/digibord_tools/godot/startup.tscn @@ -0,0 +1,111 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://Tools/Calculator.tscn" type="PackedScene" id=1] +[ext_resource path="res://startup.gd" type="Script" id=2] +[ext_resource path="res://main_buttons.gd" type="Script" id=3] +[ext_resource path="res://Tools/Dice.tscn" type="PackedScene" id=4] + +[sub_resource type="Theme" id=1] + +[node name="StartupScreen" type="CanvasLayer"] +script = ExtResource( 2 ) + +[node name="GridContainer" type="GridContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = 60.0 +theme = SubResource( 1 ) +custom_constants/vseparation = 10 +custom_constants/hseparation = 10 +columns = 2 + +[node name="ButtonHangman" type="Button" parent="GridContainer"] +margin_right = 507.0 +margin_bottom = 100.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "Hangman" + +[node name="ButtonCalculator" type="Button" parent="GridContainer"] +margin_left = 517.0 +margin_right = 1024.0 +margin_bottom = 100.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "Calculator" +script = ExtResource( 3 ) + +[node name="ButtonClock" type="Button" parent="GridContainer"] +margin_top = 110.0 +margin_right = 507.0 +margin_bottom = 210.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "Clock" + +[node name="ButtonTimer" type="Button" parent="GridContainer"] +margin_left = 517.0 +margin_top = 110.0 +margin_right = 1024.0 +margin_bottom = 210.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "Timer" + +[node name="ButtonFractions" type="Button" parent="GridContainer"] +margin_top = 220.0 +margin_right = 507.0 +margin_bottom = 320.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "Fractions" + +[node name="ButtonMultiplications" type="Button" parent="GridContainer"] +margin_left = 517.0 +margin_top = 220.0 +margin_right = 1024.0 +margin_bottom = 320.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "Multiplications" + +[node name="ButtonBirthday" type="Button" parent="GridContainer"] +margin_top = 330.0 +margin_right = 507.0 +margin_bottom = 430.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "Birthday" + +[node name="ButtonDice" type="Button" parent="GridContainer"] +margin_left = 517.0 +margin_top = 330.0 +margin_right = 1024.0 +margin_bottom = 430.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "Dice" + +[node name="ButtonTimeOuts" type="Button" parent="GridContainer"] +margin_top = 440.0 +margin_right = 507.0 +margin_bottom = 540.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "TimeOuts!" + +[node name="ButtonDaily" type="Button" parent="GridContainer"] +margin_left = 517.0 +margin_top = 440.0 +margin_right = 1024.0 +margin_bottom = 540.0 +text = "Daily Inspiration" + +[node name="CalculatorScreen" parent="." instance=ExtResource( 1 )] +visible = false + +[node name="DiceScreen" parent="." instance=ExtResource( 4 )] +visible = false + +[connection signal="pressed" from="GridContainer/ButtonCalculator" to="GridContainer/ButtonCalculator" method="_on_ButtonCalculator_pressed"] +[connection signal="pressed" from="GridContainer/ButtonDice" to="GridContainer/ButtonCalculator" method="_on_ButtonDice_pressed"] diff --git a/kellett_screen_starter/AvenirLTStd-Medium.otf b/kellett_screen_starter/AvenirLTStd-Medium.otf new file mode 100644 index 0000000..7d92720 Binary files /dev/null and b/kellett_screen_starter/AvenirLTStd-Medium.otf differ diff --git a/kellett_screen_starter/KellettDragon_Red_On_Blue.png b/kellett_screen_starter/KellettDragon_Red_On_Blue.png new file mode 100644 index 0000000..2345002 Binary files /dev/null and b/kellett_screen_starter/KellettDragon_Red_On_Blue.png differ diff --git a/kellett_screen_starter/KellettDragon_Red_On_Blue.png.import b/kellett_screen_starter/KellettDragon_Red_On_Blue.png.import new file mode 100644 index 0000000..567aef4 --- /dev/null +++ b/kellett_screen_starter/KellettDragon_Red_On_Blue.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/KellettDragon_Red_On_Blue.png-51426dc98c823608e52a2f67dd39df02.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://KellettDragon_Red_On_Blue.png" +dest_files=[ "res://.import/KellettDragon_Red_On_Blue.png-51426dc98c823608e52a2f67dd39df02.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=true +svg/scale=1.0 diff --git a/kellett_screen_starter/LineEdit.gd b/kellett_screen_starter/LineEdit.gd new file mode 100644 index 0000000..5d22993 --- /dev/null +++ b/kellett_screen_starter/LineEdit.gd @@ -0,0 +1,16 @@ +extends "res://Settings.gd" + + +# Declare member variables here. Examples: +# var a: int = 2 +# var b: String = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta: float) -> void: +# pass diff --git a/kellett_screen_starter/Settings.gd b/kellett_screen_starter/Settings.gd new file mode 100644 index 0000000..8e31207 --- /dev/null +++ b/kellett_screen_starter/Settings.gd @@ -0,0 +1,60 @@ +extends Control + +onready var mist_shader = get_node("%Mist") +onready var mood_light = get_node("%MoodLight") + +onready var line_text = get_node("%LineEdit") +onready var settings_menu = get_node("%Settings") +onready var center_text = get_node("%CenterText") +onready var settings_button = get_node("%SettingsButton") + +var dynamic_font = DynamicFont.new() + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + line_text.text = "This presentation will begin shortly" + dynamic_font.font_data = load("res://futura_font/FutuBk.ttf") + dynamic_font.size = 64 + center_text.set("custom_fonts/font", dynamic_font) + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta: float) -> void: +# pass + + +func _on_OKButton_pressed() -> void: + center_text.text = line_text.text + settings_menu.visible = false + settings_button.visible = true + + +func _on_SettingsButton_pressed() -> void: + settings_menu.visible = true + settings_button.visible = false + + +func _on_CloseButton_pressed() -> void: + get_tree().quit() + + +func _on_FontSizePlus_pressed() -> void: + dynamic_font.size += 2 + + +func _on_FontSizeMin_pressed() -> void: + dynamic_font.size -= 2 + + +func _on_MistBox_toggled(button_pressed: bool) -> void: + if button_pressed == true: + mist_shader.visible = true + else: + mist_shader.visible = false + + +func _on_LightBox_toggled(button_pressed: bool) -> void: + if button_pressed == true: + mood_light.visible = true + else: + mood_light.visible = false diff --git a/kellett_screen_starter/cog_dark.png b/kellett_screen_starter/cog_dark.png new file mode 100644 index 0000000..7413597 Binary files /dev/null and b/kellett_screen_starter/cog_dark.png differ diff --git a/kellett_screen_starter/cog_dark.png.import b/kellett_screen_starter/cog_dark.png.import new file mode 100644 index 0000000..11806cd --- /dev/null +++ b/kellett_screen_starter/cog_dark.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/cog_dark.png-2d4b396663fbc1c8c3e214d7ab6ccf09.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cog_dark.png" +dest_files=[ "res://.import/cog_dark.png-2d4b396663fbc1c8c3e214d7ab6ccf09.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=true +svg/scale=1.0 diff --git a/kellett_screen_starter/cross_white.png b/kellett_screen_starter/cross_white.png new file mode 100644 index 0000000..8bbfb6d Binary files /dev/null and b/kellett_screen_starter/cross_white.png differ diff --git a/kellett_screen_starter/cross_white.png.import b/kellett_screen_starter/cross_white.png.import new file mode 100644 index 0000000..ae0e59b --- /dev/null +++ b/kellett_screen_starter/cross_white.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/cross_white.png-5664ce5691ea16a47e00bbed0786d053.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cross_white.png" +dest_files=[ "res://.import/cross_white.png-5664ce5691ea16a47e00bbed0786d053.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=true +svg/scale=1.0 diff --git a/kellett_screen_starter/default_env.tres b/kellett_screen_starter/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/kellett_screen_starter/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/kellett_screen_starter/fog.gdshader b/kellett_screen_starter/fog.gdshader new file mode 100644 index 0000000..0283772 --- /dev/null +++ b/kellett_screen_starter/fog.gdshader @@ -0,0 +1,45 @@ +shader_type canvas_item; + +uniform vec3 color = vec3(0.65, 0.86, 0.95); +uniform int OCTAVES = 8; + +float rand(vec2 coord){ + return fract(sin(dot(coord, vec2(56, 78)) * 4000.0) * 1000.0); +} + +float noise(vec2 coord){ + vec2 i = floor(coord); + vec2 f = fract(coord); + + // 4 corners of a rectangle surrounding our point + float a = rand(i); + float b = rand(i + vec2(1.0, 0.0)); + float c = rand(i + vec2(0.0, 1.0)); + float d = rand(i + vec2(1.0, 1.0)); + + vec2 cubic = f * f * (3.0 - 2.0 * f); + + return mix(a, b, cubic.x) + (c - a) * cubic.y * (1.0 - cubic.x) + (d - b) * cubic.x * cubic.y; +} + +float fbm(vec2 coord){ + float value = 0.0; + float scale = 0.5; + + for(int i = 0; i < OCTAVES; i++){ + value += noise(coord) * scale; + coord *= 2.0; + scale *= 0.5; + } + return value; +} + +void fragment() { + vec2 coord = UV * 2.0; + + vec2 motion = vec2( fbm(coord + vec2(TIME * -0.3, TIME * 0.2)) ); + + float final = fbm(coord + motion); + + COLOR = vec4(color, final * 0.8); +} \ No newline at end of file diff --git a/kellett_screen_starter/futura_font/FUTURAB.TTF b/kellett_screen_starter/futura_font/FUTURAB.TTF new file mode 100755 index 0000000..576fc07 Binary files /dev/null and b/kellett_screen_starter/futura_font/FUTURAB.TTF differ diff --git a/kellett_screen_starter/futura_font/FUTURAN.TTF b/kellett_screen_starter/futura_font/FUTURAN.TTF new file mode 100644 index 0000000..4d7bdbb Binary files /dev/null and b/kellett_screen_starter/futura_font/FUTURAN.TTF differ diff --git a/kellett_screen_starter/futura_font/FutuBk.ttf b/kellett_screen_starter/futura_font/FutuBk.ttf new file mode 100755 index 0000000..a6c7b3a Binary files /dev/null and b/kellett_screen_starter/futura_font/FutuBk.ttf differ diff --git a/kellett_screen_starter/futura_font/FutuBkIt.ttf b/kellett_screen_starter/futura_font/FutuBkIt.ttf new file mode 100755 index 0000000..1e7212a Binary files /dev/null and b/kellett_screen_starter/futura_font/FutuBkIt.ttf differ diff --git a/kellett_screen_starter/futura_font/FutuMdIt.ttf b/kellett_screen_starter/futura_font/FutuMdIt.ttf new file mode 100755 index 0000000..7ab2e63 Binary files /dev/null and b/kellett_screen_starter/futura_font/FutuMdIt.ttf differ diff --git a/kellett_screen_starter/futura_font/FuturaBoldBT.ttf b/kellett_screen_starter/futura_font/FuturaBoldBT.ttf new file mode 100755 index 0000000..576fc07 Binary files /dev/null and b/kellett_screen_starter/futura_font/FuturaBoldBT.ttf differ diff --git a/kellett_screen_starter/futura_font/FuturaBoldItalicBT.ttf b/kellett_screen_starter/futura_font/FuturaBoldItalicBT.ttf new file mode 100755 index 0000000..1e13b5e Binary files /dev/null and b/kellett_screen_starter/futura_font/FuturaBoldItalicBT.ttf differ diff --git a/kellett_screen_starter/futura_font/FuturaBookBT.ttf b/kellett_screen_starter/futura_font/FuturaBookBT.ttf new file mode 100755 index 0000000..4ace519 Binary files /dev/null and b/kellett_screen_starter/futura_font/FuturaBookBT.ttf differ diff --git a/kellett_screen_starter/futura_font/FuturaBookItalicBT.ttf b/kellett_screen_starter/futura_font/FuturaBookItalicBT.ttf new file mode 100755 index 0000000..2a772ee Binary files /dev/null and b/kellett_screen_starter/futura_font/FuturaBookItalicBT.ttf differ diff --git a/kellett_screen_starter/futura_font/Futura_20Medium_20BT.ttf b/kellett_screen_starter/futura_font/Futura_20Medium_20BT.ttf new file mode 100755 index 0000000..a0743cf Binary files /dev/null and b/kellett_screen_starter/futura_font/Futura_20Medium_20BT.ttf differ diff --git a/kellett_screen_starter/icon.png b/kellett_screen_starter/icon.png new file mode 100644 index 0000000..c98fbb6 Binary files /dev/null and b/kellett_screen_starter/icon.png differ diff --git a/kellett_screen_starter/icon.png.import b/kellett_screen_starter/icon.png.import new file mode 100644 index 0000000..a4c02e6 --- /dev/null +++ b/kellett_screen_starter/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=true +svg/scale=1.0 diff --git a/kellett_screen_starter/kellett_app.tres b/kellett_screen_starter/kellett_app.tres new file mode 100644 index 0000000..51d90b1 --- /dev/null +++ b/kellett_screen_starter/kellett_app.tres @@ -0,0 +1,65 @@ +[gd_resource type="Theme" load_steps=5 format=2] + +[ext_resource path="res://AvenirLTStd-Medium.otf" type="DynamicFontData" id=1] + +[sub_resource type="DynamicFont" id=1] +size = 25 +font_data = ExtResource( 1 ) + +[sub_resource type="DynamicFont" id=3] +size = 25 +font_data = ExtResource( 1 ) + +[sub_resource type="DynamicFont" id=2] +size = 25 +font_data = ExtResource( 1 ) + +[resource] +Button/colors/font_color = Color( 0.88, 0.88, 0.88, 1 ) +Button/colors/font_color_disabled = Color( 0.9, 0.9, 0.9, 0.2 ) +Button/colors/font_color_focus = Color( 0.94, 0.94, 0.94, 1 ) +Button/colors/font_color_hover = Color( 0.94, 0.94, 0.94, 1 ) +Button/colors/font_color_pressed = Color( 1, 1, 1, 1 ) +Button/constants/hseparation = 2 +Button/fonts/font = SubResource( 1 ) +Button/styles/disabled = null +Button/styles/focus = null +Button/styles/hover = null +Button/styles/normal = null +Button/styles/pressed = null +CheckBox/colors/font_color = Color( 0.88, 0.88, 0.88, 1 ) +CheckBox/colors/font_color_disabled = Color( 0.9, 0.9, 0.9, 0.2 ) +CheckBox/colors/font_color_focus = Color( 0.94, 0.94, 0.94, 1 ) +CheckBox/colors/font_color_hover = Color( 0.94, 0.94, 0.94, 1 ) +CheckBox/colors/font_color_hover_pressed = Color( 1, 1, 1, 1 ) +CheckBox/colors/font_color_pressed = Color( 1, 1, 1, 1 ) +CheckBox/constants/check_vadjust = 0 +CheckBox/constants/hseparation = 4 +CheckBox/fonts/font = SubResource( 3 ) +CheckBox/icons/checked = null +CheckBox/icons/checked_disabled = null +CheckBox/icons/radio_checked = null +CheckBox/icons/radio_checked_disabled = null +CheckBox/icons/radio_unchecked = null +CheckBox/icons/radio_unchecked_disabled = null +CheckBox/icons/unchecked = null +CheckBox/icons/unchecked_disabled = null +CheckBox/styles/disabled = null +CheckBox/styles/focus = null +CheckBox/styles/hover = null +CheckBox/styles/hover_pressed = null +CheckBox/styles/normal = null +CheckBox/styles/pressed = null +LineEdit/colors/clear_button_color = Color( 0.88, 0.88, 0.88, 1 ) +LineEdit/colors/clear_button_color_pressed = Color( 1, 1, 1, 1 ) +LineEdit/colors/cursor_color = Color( 0.94, 0.94, 0.94, 1 ) +LineEdit/colors/font_color = Color( 0.88, 0.88, 0.88, 1 ) +LineEdit/colors/font_color_selected = Color( 0, 0, 0, 1 ) +LineEdit/colors/font_color_uneditable = Color( 0.88, 0.88, 0.88, 0.5 ) +LineEdit/colors/selection_color = Color( 0.49, 0.49, 0.49, 1 ) +LineEdit/constants/minimum_spaces = 12 +LineEdit/fonts/font = SubResource( 2 ) +LineEdit/icons/clear = null +LineEdit/styles/focus = null +LineEdit/styles/normal = null +LineEdit/styles/read_only = null diff --git a/kellett_screen_starter/light.png b/kellett_screen_starter/light.png new file mode 100644 index 0000000..c87d3be Binary files /dev/null and b/kellett_screen_starter/light.png differ diff --git a/kellett_screen_starter/light.png.import b/kellett_screen_starter/light.png.import new file mode 100644 index 0000000..c21fa21 --- /dev/null +++ b/kellett_screen_starter/light.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/light.png-06e94102f0cce323cff7daad56cf3030.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://light.png" +dest_files=[ "res://.import/light.png-06e94102f0cce323cff7daad56cf3030.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=true +svg/scale=1.0 diff --git a/kellett_screen_starter/logo.icns b/kellett_screen_starter/logo.icns new file mode 100644 index 0000000..4f63d3e Binary files /dev/null and b/kellett_screen_starter/logo.icns differ diff --git a/kellett_screen_starter/logo.png b/kellett_screen_starter/logo.png new file mode 100644 index 0000000..3fce2f8 Binary files /dev/null and b/kellett_screen_starter/logo.png differ diff --git a/kellett_screen_starter/logo.png.import b/kellett_screen_starter/logo.png.import new file mode 100644 index 0000000..43df7a6 --- /dev/null +++ b/kellett_screen_starter/logo.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/logo.png-cca8726399059c8d4f806e28e356b14d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://logo.png" +dest_files=[ "res://.import/logo.png-cca8726399059c8d4f806e28e356b14d.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=true +svg/scale=1.0 diff --git a/kellett_screen_starter/main_scene.tscn b/kellett_screen_starter/main_scene.tscn new file mode 100644 index 0000000..4308fa0 --- /dev/null +++ b/kellett_screen_starter/main_scene.tscn @@ -0,0 +1,182 @@ +[gd_scene load_steps=9 format=2] + +[ext_resource path="res://KellettDragon_Red_On_Blue.png" type="Texture" id=1] +[ext_resource path="res://fog.gdshader" type="Shader" id=3] +[ext_resource path="res://noun-cog-1471544.png" type="Texture" id=4] +[ext_resource path="res://kellett_app.tres" type="Theme" id=5] +[ext_resource path="res://noun-cross-1707162.png" type="Texture" id=6] +[ext_resource path="res://Settings.gd" type="Script" id=7] +[ext_resource path="res://light.png" type="Texture" id=8] + +[sub_resource type="ShaderMaterial" id=3] +shader = ExtResource( 3 ) +shader_param/color = Vector3( 0.35, 0.48, 0.95 ) +shader_param/OCTAVES = 4 + +[node name="KellettPresentation" type="Node2D"] + +[node name="KellettDragonRedOnBlue" type="Sprite" parent="."] +position = Vector2( 639.8, 434.3 ) +scale = Vector2( 0.631055, 0.628613 ) +texture = ExtResource( 1 ) + +[node name="MoodLight" type="Light2D" parent="."] +unique_name_in_owner = true +visible = false +show_behind_parent = true +position = Vector2( 634, 360 ) +scale = Vector2( 637.969, 95.4781 ) +texture = ExtResource( 8 ) +texture_scale = 0.01 +energy = 0.95 +shadow_enabled = true +shadow_color = Color( 1, 1, 1, 0 ) + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="Mist" type="ColorRect" parent="CanvasLayer"] +unique_name_in_owner = true +material = SubResource( 3 ) +anchor_right = 1.0 +anchor_bottom = 1.0 + +[node name="CenterText" type="Label" parent="CanvasLayer"] +unique_name_in_owner = true +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = -29.0 +margin_bottom = 29.0 +text = "This presentation will begin shortly" +align = 1 + +[node name="SettingsButton" type="TextureButton" parent="CanvasLayer"] +unique_name_in_owner = true +anchor_left = 1.0 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = -26.0 +margin_top = -26.0 +margin_right = 1174.0 +margin_bottom = 1174.0 +rect_scale = Vector2( 0.02, 0.02 ) +texture_normal = ExtResource( 4 ) + +[node name="Settings" type="Control" parent="CanvasLayer"] +unique_name_in_owner = true +visible = false +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -20.0 +margin_top = -20.0 +margin_right = 20.0 +margin_bottom = 20.0 +script = ExtResource( 7 ) + +[node name="MainPanel" type="Panel" parent="CanvasLayer/Settings"] +anchor_left = 0.5 +anchor_right = 0.5 +margin_left = -432.0 +margin_top = -319.0 +margin_right = 432.0 +margin_bottom = -48.0 + +[node name="LineEdit" type="LineEdit" parent="CanvasLayer/Settings/MainPanel"] +unique_name_in_owner = true +anchor_left = 0.5 +anchor_right = 0.5 +margin_left = -418.5 +margin_top = 52.0 +margin_right = 418.5 +margin_bottom = 88.0 +theme = ExtResource( 5 ) +caret_blink = true +caret_blink_speed = 0.5 + +[node name="OKButton" type="Button" parent="CanvasLayer/Settings/MainPanel"] +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +margin_left = -15.5 +margin_top = -44.0 +margin_right = 33.5 +margin_bottom = -12.0 +theme = ExtResource( 5 ) +text = "OK" + +[node name="ChangeText" type="Label" parent="CanvasLayer/Settings/MainPanel"] +margin_left = 17.0 +margin_top = 35.0 +margin_right = 222.0 +margin_bottom = 49.0 +text = "Change presentation line below:" + +[node name="ChooseEffect" type="Label" parent="CanvasLayer/Settings/MainPanel"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -102.5 +margin_top = 11.0 +margin_right = 102.5 +margin_bottom = 25.0 +text = "Change effects below:" +align = 1 + +[node name="FontSizeMin" type="Button" parent="CanvasLayer/Settings/MainPanel"] +margin_left = 807.0 +margin_top = 92.0 +margin_right = 824.0 +margin_bottom = 112.0 +text = "-" + +[node name="FontSizePlus" type="Button" parent="CanvasLayer/Settings/MainPanel"] +margin_left = 830.0 +margin_top = 92.0 +margin_right = 850.0 +margin_bottom = 112.0 +text = "+" + +[node name="EffectsBox" type="HBoxContainer" parent="CanvasLayer/Settings/MainPanel"] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = 38.5 +margin_bottom = 72.5 + +[node name="LightBox" type="CheckBox" parent="CanvasLayer/Settings/MainPanel/EffectsBox"] +margin_right = 160.0 +margin_bottom = 34.0 +theme = ExtResource( 5 ) +text = "Mood Light" + +[node name="MistBox" type="CheckBox" parent="CanvasLayer/Settings/MainPanel/EffectsBox"] +margin_left = 164.0 +margin_right = 241.0 +margin_bottom = 34.0 +theme = ExtResource( 5 ) +text = "Mist" +script = ExtResource( 7 ) + +[node name="CloseButton" type="TextureButton" parent="CanvasLayer"] +visible = false +anchor_left = 1.0 +anchor_right = 1.0 +margin_left = -60.0 +margin_top = 1.0 +margin_right = 1140.0 +margin_bottom = 1201.0 +rect_scale = Vector2( 0.05, 0.05 ) +texture_normal = ExtResource( 6 ) + +[connection signal="pressed" from="CanvasLayer/SettingsButton" to="CanvasLayer/Settings" method="_on_SettingsButton_pressed"] +[connection signal="pressed" from="CanvasLayer/Settings/MainPanel/OKButton" to="CanvasLayer/Settings" method="_on_OKButton_pressed"] +[connection signal="pressed" from="CanvasLayer/Settings/MainPanel/FontSizeMin" to="CanvasLayer/Settings" method="_on_FontSizeMin_pressed"] +[connection signal="pressed" from="CanvasLayer/Settings/MainPanel/FontSizePlus" to="CanvasLayer/Settings" method="_on_FontSizePlus_pressed"] +[connection signal="toggled" from="CanvasLayer/Settings/MainPanel/EffectsBox/LightBox" to="CanvasLayer/Settings" method="_on_LightBox_toggled"] +[connection signal="toggled" from="CanvasLayer/Settings/MainPanel/EffectsBox/MistBox" to="CanvasLayer/Settings" method="_on_MistBox_toggled"] +[connection signal="pressed" from="CanvasLayer/CloseButton" to="CanvasLayer/Settings" method="_on_TextureButton_pressed"] diff --git a/kellett_screen_starter/noun-cog-1471544.png b/kellett_screen_starter/noun-cog-1471544.png new file mode 100644 index 0000000..a126bd1 Binary files /dev/null and b/kellett_screen_starter/noun-cog-1471544.png differ diff --git a/kellett_screen_starter/noun-cog-1471544.png.import b/kellett_screen_starter/noun-cog-1471544.png.import new file mode 100644 index 0000000..5421e14 --- /dev/null +++ b/kellett_screen_starter/noun-cog-1471544.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/noun-cog-1471544.png-19f215aa4cddca4546d68fb303403e83.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://noun-cog-1471544.png" +dest_files=[ "res://.import/noun-cog-1471544.png-19f215aa4cddca4546d68fb303403e83.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=true +svg/scale=1.0 diff --git a/kellett_screen_starter/noun-cog-1471544.svg b/kellett_screen_starter/noun-cog-1471544.svg new file mode 100644 index 0000000..6ce863d --- /dev/null +++ b/kellett_screen_starter/noun-cog-1471544.svg @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/kellett_screen_starter/noun-cog-1471544.svg.import b/kellett_screen_starter/noun-cog-1471544.svg.import new file mode 100644 index 0000000..2125cb7 --- /dev/null +++ b/kellett_screen_starter/noun-cog-1471544.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/noun-cog-1471544.svg-a71a8fcd31337a0fd4e4dd332b78231a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://noun-cog-1471544.svg" +dest_files=[ "res://.import/noun-cog-1471544.svg-a71a8fcd31337a0fd4e4dd332b78231a.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=true +svg/scale=1.0 diff --git a/kellett_screen_starter/noun-cross-1707162.png b/kellett_screen_starter/noun-cross-1707162.png new file mode 100644 index 0000000..c0984c9 Binary files /dev/null and b/kellett_screen_starter/noun-cross-1707162.png differ diff --git a/kellett_screen_starter/noun-cross-1707162.png.import b/kellett_screen_starter/noun-cross-1707162.png.import new file mode 100644 index 0000000..5179c7f --- /dev/null +++ b/kellett_screen_starter/noun-cross-1707162.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/noun-cross-1707162.png-b11ccab37e308fa7a0623930b6603534.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://noun-cross-1707162.png" +dest_files=[ "res://.import/noun-cross-1707162.png-b11ccab37e308fa7a0623930b6603534.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=true +svg/scale=1.0 diff --git a/kellett_screen_starter/project.godot b/kellett_screen_starter/project.godot new file mode 100644 index 0000000..1084424 --- /dev/null +++ b/kellett_screen_starter/project.godot @@ -0,0 +1,40 @@ +; 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 + +[application] + +config/name="Kellett Screen Starter" +config/description="This Screen Starter can be used on any computer before you are about to run a presentation and you're waiting for people to come into the room. + +The screen effects are designed to be soothing yet provide some visual interest." +run/main_scene="res://main_scene.tscn" +config/icon="res://logo.png" +config/macos_native_icon="res://logo.icns" + +[display] + +window/size/width=1280 +window/size/height=720 +window/size/test_width=2560 +window/size/test_height=1440 +window/stretch/mode="2d" +window/stretch/aspect="keep" + +[gui] + +common/drop_mouse_on_gui_input_disabled=true + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +environment/default_environment="res://default_env.tres" diff --git a/kellett_screen_starter/wind_sprite.gdshader b/kellett_screen_starter/wind_sprite.gdshader new file mode 100644 index 0000000..5cf43a1 --- /dev/null +++ b/kellett_screen_starter/wind_sprite.gdshader @@ -0,0 +1,43 @@ +// original wind shader from https://github.com/Maujoe/godot-simple-wind-shader-2d/tree/master/assets/maujoe.simple_wind_shader_2d +// original script modified by HungryProton so that the assets are moving differently : https://pastebin.com/VL3AfV8D +// +// speed - The speed of the wind movement. +// minStrength - The minimal strength of the wind movement. +// maxStrength - The maximal strength of the wind movement. +// strengthScale - Scalefactor for the wind strength. +// interval - The time between minimal and maximal strength changes. +// detail - The detail (number of waves) of the wind movement. +// distortion - The strength of geometry distortion. +// heightOffset - The height where the wind begins to move. By default 0.0. + +shader_type canvas_item; +render_mode blend_mix; + +// Wind settings. +uniform float speed = 1.0; +uniform float minStrength : hint_range(0.0, 1.0) = 0.05; +uniform float maxStrength : hint_range(0.0, 1.0) = 0.01; +uniform float strengthScale = 100.0; +uniform float interval = 3.5; +uniform float detail = 1.0; +uniform float distortion : hint_range(0.0, 1.0); +uniform float heightOffset : hint_range(0.0, 1.0); + +// With the offset value, you can if you want different moves for each asset. Just put a random value (1, 2, 3) in the editor. Don't forget to mark the material as unique if you use this +uniform float offset = 0; + + +float getWind(vec2 vertex, vec2 uv, float time){ + float diff = pow(maxStrength - minStrength, 2.0); + float strength = clamp(minStrength + diff + sin(time / interval) * diff, minStrength, maxStrength) * strengthScale; + float wind = (sin(time) + cos(time * detail)) * strength * max(0.0, (1.0-uv.y) - heightOffset); + + return wind; +} + +void vertex() { + vec4 pos = WORLD_MATRIX * vec4(0.0, 0.0, 0.0, 1.0); + float time = TIME * speed + offset; + //float time = TIME * speed + pos.x * pos.y ; not working when moving... + VERTEX.x += getWind(VERTEX.xy, UV, time); +} \ No newline at end of file