Merge commit '3455715b9dd974893afb59f91002e6d7c2bdc2ca' into development

This commit is contained in:
betalars 2024-02-17 23:41:00 +01:00
commit 7ee7e9fa34
133 changed files with 2448 additions and 1757 deletions

8
.gitattributes vendored
View File

@ -1,11 +1,11 @@
# Normalize EOL for all files that Git considers text files. # Normalize EOL for all files that Git considers text files.
* text=auto eol=lf * text=auto eol=lf
.blend filter=lfs diff=lfs merge=lfs -text *.blend filter=lfs diff=lfs merge=lfs -text
.png filter=lfs diff=lfs merge=lfs -text *.png filter=lfs diff=lfs merge=lfs -text
.jpg filter=lfs diff=lfs merge=lfs -text *.glb filter=lfs diff=lfs merge=lfs -text
.glb filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text *.wav filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text *.mp3 filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text *.exr filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text *.ogg filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored
View File

@ -2,3 +2,4 @@
src/.godot/ src/.godot/
*.blend1 *.blend1
result result
src/addons/godot-jolt

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 132 B

255
design/buttons.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 132 B

View File

@ -36,7 +36,7 @@
+ [MegaGlest](https://megaglest.org/), GPL + [MegaGlest](https://megaglest.org/), GPL
+ [Splash Screen Neo](https://inkscape.org/de/~MuhamadAliAkbar/%E2%98%85splash-screen-neon) by [Muhamad Ali Akbar](https://inkscape.org/de/~MuhamadAliAkbar/), CC-BY-SA + [Splash Screen Neo](https://inkscape.org/de/~MuhamadAliAkbar/%E2%98%85splash-screen-neon) by [Muhamad Ali Akbar](https://inkscape.org/de/~MuhamadAliAkbar/), CC-BY-SA
+ [Oh My Git](https://ohmygit.org/) by [bleeptrack](https://bleeptrack.de/) and [blinry](https://morr.cc/), Blue Oak Model License + [Oh My Git](https://ohmygit.org/) by [bleeptrack](https://bleeptrack.de/) and [blinry](https://morr.cc/), Blue Oak Model License
+ [Ghostwriter]() by kde**** + [Ghostwriter]() by kde
## Music ## Music
- [Foundations I by Azure Studios](https://azurestudios.bandcamp.com/album/foundations-i-24bit), CC-BY 3.0 - [Foundations I by Azure Studios](https://azurestudios.bandcamp.com/album/foundations-i-24bit), CC-BY 3.0

BIN
design/fairy_lights.blend (Stored with Git LFS) Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 50 KiB

BIN
design/landshark_plushie.blend (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 KiB

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,11 @@
@tool
extends EditorPlugin
func _enter_tree():
# Initialization of the plugin goes here.
add_custom_type("LineRenderer3D", "MeshInstance3D", preload("line_renderer.gd"), preload("line_render_icon.svg"))
func _exit_tree():
# Clean-up of the plugin goes here.
remove_custom_type("Line Renderer 3D")

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://drumkfhf8d2tn"
path="res://.godot/imported/line_render_icon.svg-9fabbd2cfeb579cc989ccd151dbe0a0b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/LineRenderer/line_render_icon.svg"
dest_files=["res://.godot/imported/line_render_icon.svg-9fabbd2cfeb579cc989ccd151dbe0a0b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@ -0,0 +1,171 @@
@tool
extends MeshInstance3D
class_name LineRenderer3D
@export var points: Array[Vector3] = [Vector3(0,0,0),Vector3(0,5,0)]:
set(new_points): points = new_points
@export var start_thickness:float = 0.1:
set(new_start_thickness): start_thickness = new_start_thickness
@export var end_thickness:float = 0.1:
set(new_end_thickness): end_thickness = new_end_thickness
@export var corner_resolution:int = 5:
set(new_corner_resolution): corner_resolution = new_corner_resolution
@export var cap_resolution:int = 5:
set(new_cap_resolution): cap_resolution = new_cap_resolution
@export var draw_caps:bool = true:
set(new_draw_caps): draw_caps = new_draw_caps
@export var draw_crners:bool = true:
set(new_draw_crners): draw_crners = new_draw_crners
@export var use_global_coords:bool = true:
set(new_use_global_coords): use_global_coords = new_use_global_coords
@export var tile_texture:bool = true:
set(new_tile_texture): tile_texture = new_tile_texture
var camera : Camera3D
var cameraOrigin : Vector3
func _enter_tree():
mesh = ImmediateMesh.new()
func _ready():
pass
func _process(_delta):
if points.size() < 2:
return
camera = get_viewport().get_camera_3d()
if camera == null:
return
cameraOrigin = to_local(camera.get_global_transform().origin)
var progressStep:float = 1.0 / points.size();
var progress:float = 0;
var thickness:float = lerp(start_thickness, end_thickness, progress);
var nextThickness:float = lerp(start_thickness, end_thickness, progress + progressStep);
var surface:SurfaceTool = SurfaceTool.new()
surface.begin(Mesh.PRIMITIVE_TRIANGLES)
for i in range(points.size() - 1):
var A:Vector3 = points[i]
var B:Vector3 = points[i+1]
if use_global_coords:
A = to_local(A)
B = to_local(B)
var AB:Vector3 = B - A;
var orthogonalABStart:Vector3 = (cameraOrigin - ((A + B) / 2)).cross(AB).normalized() * thickness;
var orthogonalABEnd:Vector3 = (cameraOrigin - ((A + B) / 2)).cross(AB).normalized() * nextThickness;
var AtoABStart:Vector3 = A + orthogonalABStart
var AfromABStart:Vector3 = A - orthogonalABStart
var BtoABEnd:Vector3 = B + orthogonalABEnd
var BfromABEnd:Vector3 = B - orthogonalABEnd
if i == 0:
if draw_caps:
cap(surface, A, B, thickness, cap_resolution)
if tile_texture:
var ABLen = AB.length()
var ABFloor = floor(ABLen)
var ABFrac = ABLen - ABFloor
surface.set_uv(Vector2(ABFloor, 0))
surface.add_vertex(AtoABStart)
surface.set_uv(Vector2(-ABFrac, 0))
surface.add_vertex(BtoABEnd)
surface.set_uv(Vector2(ABFloor, 1))
surface.add_vertex(AfromABStart)
surface.set_uv(Vector2(-ABFrac, 0))
surface.add_vertex(BtoABEnd)
surface.set_uv(Vector2(-ABFrac, 1))
surface.add_vertex(BfromABEnd)
surface.set_uv(Vector2(ABFloor, 1))
surface.add_vertex(AfromABStart)
else:
surface.set_uv(Vector2(1, 0))
surface.add_vertex(AtoABStart)
surface.set_uv(Vector2(0, 0))
surface.add_vertex(BtoABEnd)
surface.set_uv(Vector2(1, 1))
surface.add_vertex(AfromABStart)
surface.set_uv(Vector2(0, 0))
surface.add_vertex(BtoABEnd)
surface.set_uv(Vector2(0, 1))
surface.add_vertex(BfromABEnd)
surface.set_uv(Vector2(1, 1))
surface.add_vertex(AfromABStart)
if i == points.size() - 2:
if draw_caps:
cap(surface, B, A, nextThickness, cap_resolution)
else:
if draw_crners:
var C = points[i+2]
if use_global_coords:
C = to_local(C)
var BC = C - B;
var orthogonalBCStart = (cameraOrigin - ((B + C) / 2)).cross(BC).normalized() * nextThickness;
var angleDot = AB.dot(orthogonalBCStart)
if angleDot > 0 and not angleDot == 1:
corner(surface, B, BtoABEnd, B + orthogonalBCStart, corner_resolution)
elif angleDot < 0 and not angleDot == -1:
corner(surface, B, B - orthogonalBCStart, BfromABEnd, corner_resolution)
progress += progressStep;
thickness = lerp(start_thickness, end_thickness, progress);
nextThickness = lerp(start_thickness, end_thickness, progress + progressStep);
surface.generate_normals()
surface.generate_tangents()
mesh = surface.commit()
func cap(surface: SurfaceTool, center:Vector3, pivot:Vector3, thickness:float, cap_resolution:int):
var orthogonal:Vector3 = (cameraOrigin - center).cross(center - pivot).normalized() * thickness;
var axis:Vector3 = (center - cameraOrigin).normalized();
var vertex_array:Array = []
for i in range(cap_resolution + 1):
vertex_array.append(Vector3(0,0,0))
vertex_array[0] = center + orthogonal;
vertex_array[cap_resolution] = center - orthogonal;
for i in range(1, cap_resolution):
vertex_array[i] = center + (orthogonal.rotated(axis, lerp(0.0, PI, float(i) / cap_resolution)));
for i in range(1, cap_resolution + 1):
surface.set_uv(Vector2(0, (i - 1) / cap_resolution))
surface.add_vertex(vertex_array[i - 1]);
surface.set_uv(Vector2(0, (i - 1) / cap_resolution))
surface.add_vertex(vertex_array[i]);
surface.set_uv(Vector2(0.5, 0.5))
surface.add_vertex(center);
func corner(surface: SurfaceTool, center:Vector3, start:Vector3, end:Vector3, cap_resolution:int):
var vertex_array:Array = []
for i in range(cap_resolution + 1):
vertex_array.append(Vector3(0,0,0))
vertex_array[0] = start;
vertex_array[cap_resolution] = end;
var axis:Vector3 = start.cross(end).normalized()
var offset:Vector3 = start - center
var angle:float = offset.angle_to(end - center)
for i in range(1, cap_resolution):
vertex_array[i] = center + offset.rotated(axis, lerp(0.0, angle, float(i) / cap_resolution));
for i in range(1, cap_resolution + 1):
surface.set_uv(Vector2(0, (i - 1) / cap_resolution))
surface.add_vertex(vertex_array[i - 1]);
surface.set_uv(Vector2(0, (i - 1) / cap_resolution))
surface.add_vertex(vertex_array[i]);
surface.set_uv(Vector2(0.5, 0.5))
surface.add_vertex(center);

View File

@ -0,0 +1,7 @@
[plugin]
name="LineRenderer"
description="A simple line renderer for Godot 4.0, useful for rendering cylindrical volume such as lasers, trails, etc. Based on the Godot 3.0 version by @dbp8890 at https://github.com/dbp8890/line-renderer ported by @LemiSt24, which is based on the helpful C# implementation by @paulohyy at https://github.com/paulohyy/linerenderer and added some additional features such as UV tiling."
author="betalars"
version="1.0"
script="line_plugin.gd"

View File

@ -0,0 +1,5 @@
[gd_scene load_steps=2 format=3 uid="uid://dt7mtqo43aomc"]
[ext_resource type="PackedScene" uid="uid://t6opo6kuctpa" path="res://logic-scenes/luna/Luna_frame-of-mind.glb" id="1_gj414"]
[node name="Luna_frame-of-mind" instance=ExtResource("1_gj414")]

View File

@ -0,0 +1,53 @@
shader_type sky;
uniform float star_size: hint_range(50.0, 500.0) = 120.0;
uniform sampler2D star_colors: hint_default_white;
uniform sampler2D sky_gradient: hint_default_black, repeat_disable;
uniform sampler2D nebula_gradient: hint_default_black, repeat_disable;
uniform float nebula_offset;
uniform sampler2D universe_background: hint_default_black;
// https://github.com/Norrox/GodotShaders/blob/master/Shaders/Voronoi-Worley/Voronoi.shader
vec3 RNGV3(vec3 p) {
vec3 a = fract(vec3(p.x, p.y, p.z) * vec3(111.11,333.33,444.44));
a += dot(a, a+33.51);
return fract(vec3(a.x*a.y, a.y*a.z, a.z*a.x)); //outputs a random vec2 between 0 and 1
}
vec4 voronoy(vec3 loc, float scale){
loc = loc*scale;
vec4 output = vec4(0., 0., 0., 10.);
for(float y=-1.; y<=1.; y++){
for(float x=-1.; x<=1.; x++){
for(float z=-1.; z<=1.; z++){
vec3 offs = vec3(x,y,z);
vec3 n = RNGV3(floor(loc)+offs)*2.0-1.0;
vec3 p = offs+sin(n) * .5;
float d = length((fract(loc)-0.5)-p);
if(d<output.q){
vec3 rng = RNGV3(floor(loc)+offs);
output = vec4(rng.x, rng.y, rng.z, d);
}
}
}
}
return output;
}
void sky() {
vec4 star_noise = voronoy(EYEDIR, star_size);
vec3 stars = pow(max((0.25-star_noise.q)*4.0, 0), 0.3) * texture(star_colors, vec2(star_noise.x)).xyz * pow(star_noise.z, 2.2);
stars *= float(star_noise.y*4.0 < pow(texture(universe_background, SKY_COORDS).z, 2.0));
stars *= (0.7 + sin(TIME*(star_noise.z*1.5+0.2)) * 0.5);
vec2 moving_noise = (texture(universe_background, SKY_COORDS + TIME * vec2(0.001, .0)).xy - 0.5) * 0.1;
COLOR = pow(texture(sky_gradient, pow(moving_noise + EYEDIR.yy, vec2(0.8))).xyz, vec3(2.2));
vec4 nebula = texture(nebula_gradient, //selecting the correct color
pow(vec2(texture(universe_background, SKY_COORDS).z), vec2(0.8+nebula_offset)) * nebula_offset //setting the base gradient
* 1.5 * texture(universe_background, -SKY_COORDS + TIME * vec2(0.001, 0) + moving_noise).xy // adding distortion
);
//COLOR += pow(texture(nebula_gradient, vec2(texture(universe_background, SKY_COORDS).z + nebula_offset * texture(universe_background, -SKY_COORDS + TIME * vec2(0.0005, 0) + moving_noise).z + 0.1)).xyz, vec3(2.0));
COLOR = (COLOR * (1.0-nebula.q) + nebula.xyz + stars * SKY_COORDS.y)*float(SKY_COORDS.y<0.5);
//COLOR = texture(universe_background, SKY_COORDS).zzz;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cfwa5dq3flk4b"
path="res://.godot/imported/sky_textures.png-1bc387632f79299cfe768a08f95b36df.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://base-environments/intro_scene/textures/sky_textures.png"
dest_files=["res://.godot/imported/sky_textures.png-1bc387632f79299cfe768a08f95b36df.ctex"]
[params]
compress/mode=3
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=1
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=1
roughness/src_normal=""
process/fix_alpha_border=false
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dabnlcnuticww"
path="res://.godot/imported/sky_textures_2.png-a1913291aa98549785b8c12dd6aa67b9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://base-environments/intro_scene/textures/sky_textures_2.png"
dest_files=["res://.godot/imported/sky_textures_2.png-a1913291aa98549785b8c12dd6aa67b9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=1
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=false
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@ -5,13 +5,14 @@ extends Area3D
@onready var ui = $UiWrapper/UiSprite/SubViewport.get_child(0) @onready var ui = $UiWrapper/UiSprite/SubViewport.get_child(0)
var revealed: bool = false: var revealed: bool = false:
set(on_stage): set(reveal):
revealed = on_stage revealed = reveal
if on_stage: if reveal:
wrapper.show() wrapper.show()
ui.show() ui.show()
else: else:
ui.hide() ui.hide()
await get_tree().create_timer(1).timeout
wrapper.hide() wrapper.hide()
var has_mouse: bool = false var has_mouse: bool = false
@ -21,9 +22,10 @@ func _ready():
connect("mouse_entered", Callable(self, "_on_mouse_entered")) connect("mouse_entered", Callable(self, "_on_mouse_entered"))
func _on_mouse_entered(): func _on_mouse_entered():
input_ray_pickable = false if not State.focus_locked:
ui.collapsed = false input_ray_pickable = false
has_mouse = true ui.collapsed = false
has_mouse = true
func _on_mouse_exited(): func _on_mouse_exited():
print("mouse_exited") print("mouse_exited")
@ -33,6 +35,9 @@ func _on_mouse_exited():
func reveal(): func reveal():
revealed = true revealed = true
await get_tree().create_timer(5).timeout
if not has_mouse:
revealed = false
func collapse(): func collapse():
_on_mouse_exited() _on_mouse_exited()

View File

@ -0,0 +1,82 @@
[gd_scene load_steps=9 format=3 uid="uid://cg70r0102t8nl"]
[ext_resource type="Texture2D" uid="uid://i75aktvgsdwg" path="res://base-environments/youth_room/import/textures/wires_normal.png" id="1_p3lcj"]
[ext_resource type="Texture2D" uid="uid://chisldkpt6bf5" path="res://base-environments/youth_room/import/textures/wires_albedo.png" id="1_xsr58"]
[ext_resource type="Script" path="res://addons/LineRenderer/line_renderer.gd" id="2_javfj"]
[ext_resource type="ArrayMesh" uid="uid://f5fr2e5gq313" path="res://base-environments/youth_room/shaders/fairy_light_diode.res" id="4_qh8yy"]
[sub_resource type="GDScript" id="GDScript_2caij"]
script/source = "@tool
extends Node3D
@export var light_array: Array[Vector3]:
set(points):
light_array = points
if is_inside_tree():
rebuild()
@onready var wires:LineRenderer3D = $wires
@onready var diodes:MultiMeshInstance3D = $diodes
@export var seed:int = 42
var rng = RandomNumberGenerator.new()
@export var size:float = 0.1:
set(new_size):
size = new_size
rebuild()
if is_inside_tree():
wires.end_thickness = size*0.1
wires.start_thickness = size*0.1
# Called when the node enters the scene tree for the first time.
func _ready():
rebuild()
func rebuild():
rng.seed = seed
rng.state = 0
for child in wires.get_children(): child.free()
wires.points = light_array
diodes.multimesh.instance_count = light_array.size()
var meshBuffer:PackedFloat32Array
for point in light_array:
rng
var base:Basis = Basis(Vector3(rng.randf_range(-1, 1), rng.randf_range(-1, 1), rng.randf_range(-1, 1)).normalized(), rng.randf_range(0, PI*2))
base = base.scaled(Vector3(size, size, size))
meshBuffer.append_array([base.x.x, base.x.y, base.x.z, point.x, base.y.x, base.y.y, base.y.z, point.y, base.z.x, base.z.y, base.z.z, point.z])
diodes.multimesh.buffer = meshBuffer
"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5ca5e"]
transparency = 2
alpha_scissor_threshold = 0.5
alpha_antialiasing_mode = 0
cull_mode = 2
albedo_color = Color(0.368627, 0.368627, 0.368627, 1)
albedo_texture = ExtResource("1_xsr58")
normal_enabled = true
normal_texture = ExtResource("1_p3lcj")
[sub_resource type="ImmediateMesh" id="ImmediateMesh_b56ch"]
[sub_resource type="MultiMesh" id="MultiMesh_ic3h7"]
transform_format = 1
instance_count = 30
mesh = ExtResource("4_qh8yy")
buffer = PackedFloat32Array(0.0998169, 0.00482103, -0.00365424, -0.545, -0.00428558, 0.0989875, 0.0135316, 0.915, 0.0042696, -0.0133502, 0.0990128, 1.035, 0.0700075, -0.0358849, 0.0617351, -0.47, 0.0525334, 0.0844406, -0.0104897, 0.855, -0.0483653, 0.0397751, 0.0779663, 0.905, 0.0042587, 0.0920312, -0.0388859, -0.44, -0.00571533, 0.0390819, 0.0918692, 0.871, 0.0997457, -0.00168997, 0.00692427, 0.78, 0.0219999, -0.0870806, -0.0439656, -0.385, 0.0800974, 0.041851, -0.0428124, 0.91, 0.0556813, -0.0257966, 0.0789565, 0.69, 0.0923335, 0.0288341, -0.0253597, -0.38, -0.0359662, 0.088075, -0.0308096, 0.995, 0.0134518, 0.0375685, 0.0916933, 0.595, 0.0410372, 0.0236122, 0.0880819, -0.39, -0.0818364, -0.0330796, 0.0469951, 0.925, 0.0402337, -0.0913685, 0.00574842, 0.465, 0.0963897, 0.0249758, -0.00923199, -0.364, -0.025153, 0.0967818, -0.000788714, 0.86, 0.0087379, 0.00308236, 0.0995698, 0.211, 0.0905162, -0.0353528, 0.0236008, -0.295, 0.00980512, 0.0713907, 0.0693341, 0.82, -0.0413604, -0.0604445, 0.0680866, 0.06, 0.0999699, -0.000440024, 0.00241425, -0.255, 0.00037743, 0.0999657, 0.0025912, 0.805, -0.00242483, -0.00258131, 0.0999373, -0.15, 0.0666952, -0.0744692, 0.00246829, -0.175, 0.0669796, 0.0613729, 0.0417982, 0.83, -0.0326417, -0.0262242, 0.090812, -0.355, 0.00827521, 0.0528018, -0.0845191, -0.135, 0.0951837, -0.0293119, -0.00899272, 0.955, -0.0295225, -0.0797043, -0.0526844, -0.515, 0.0983988, -0.0102168, 0.0146044, -0.025, 0.00642553, 0.0967642, 0.0244007, 0.78, -0.0166249, -0.0230716, 0.0958714, -0.615, -0.0341773, -0.0716575, -0.0608039, 0.115, 0.0144934, 0.059907, -0.078747, 0.63, 0.0928539, -0.0357262, -0.010089, -0.695, -0.0232891, -0.0711249, 0.066324, 0.245, 0.0795472, -0.0531651, -0.0290812, 0.555, 0.0559451, 0.0459861, 0.0689595, -0.745, -0.0599926, -0.0254553, -0.075848, 0.37, -0.0708402, 0.0609612, 0.0355725, 0.595, 0.0371828, 0.0750717, -0.0546048, -0.805, 0.0107775, 0.0912119, 0.0395505, 0.455, 0.0273445, -0.0409675, 0.0870284, 0.745, 0.0955831, 0.00143545, -0.0293567, -0.84, 0.0745873, 0.00700857, -0.0662391, 0.505, -0.0366242, 0.0873785, -0.0319947, 0.89, 0.0556363, 0.0481236, 0.0677401, -0.87, -0.0524777, -0.0408163, -0.0747002, 0.445, -0.0771795, -0.0142038, 0.0619805, 1.175, -0.0359084, 0.0901791, -0.024048, -0.87, 0.0652616, -0.0746751, 0.0128275, 0.26, -0.071962, -0.0663868, -0.0203536, 1.28, 0.0237149, 0.00405218, -0.0970628, -0.815, 0.0477617, -0.0860534, 0.0177096, 0.125, -0.0450234, -0.00666441, 0.089042, 1.35, -0.0754435, -0.0505014, -0.0419272, -0.8, 0.0526553, -0.07791, -0.0340215, -0.037, -0.0570784, -0.00274075, -0.0820643, 1.479, 0.0630038, 0.0626301, -0.0459129, -0.834, 0.0726285, 0.053708, 0.0429017, -0.2, -0.0349996, 0.0826095, -0.0441667, 1.601, -0.0591619, 0.0170622, 0.0787956, -0.851, 0.0581542, 0.0297762, -0.0757065, -0.359, -0.0464154, 0.0885717, -0.000817926, 1.769, 0.0668109, 0.0356151, 0.0653289, -0.85, 0.0875991, -0.0425381, 0.0227357, -0.5, 0.0336438, 0.0876653, 0.0343932, 1.949, -0.0345616, -0.022479, 0.0911054, -0.85, 0.0946831, -0.0299322, -0.0117972, -0.594, 0.0199689, 0.0259233, 0.0944946, 2.126, -0.0252261, -0.0918261, 0.0305222, -0.85, 0.0626413, -0.0766232, 0.0143161, -0.634, 0.0779479, 0.0616799, -0.0109416, 2.238, -0.000446323, 0.0180131, 0.0983633, -0.85, 0.0510754, -0.0397606, 0.076226, -0.634, -0.0155809, 0.0829139, 0.0536891, 2.035, -0.084549, -0.0392986, 0.0361536, -0.85, -0.055891, -0.072196, -0.0407913, -0.614, -0.0700671, 0.0148083, 0.0697948, 1.875, -0.0443486, 0.0675903, -0.0588622, -0.85, -0.0545317, 0.0517385, -0.0659501, -0.65, 0.0389976, 0.0853039, 0.0346761, 1.655, 0.0741989, -0.00680947, -0.0666945, -0.85, 0.0858331, 0.0430527, -0.0279131, -0.65, 0.0302511, -0.0864024, -0.040243, 1.475, -0.0414433, 0.0260978, -0.0871858, -0.87)
[node name="fairylights" type="Node3D"]
script = SubResource("GDScript_2caij")
light_array = Array[Vector3]([Vector3(0, 0, 0), Vector3(0, 1, 0)])
[node name="wires" type="MeshInstance3D" parent="."]
material_override = SubResource("StandardMaterial3D_5ca5e")
mesh = SubResource("ImmediateMesh_b56ch")
script = ExtResource("2_javfj")
points = Array[Vector3]([Vector3(0, 0, 0), Vector3(0, 1, 0)])
start_thickness = 0.01
end_thickness = 0.01
use_global_coords = false
tile_texture = false
[node name="diodes" type="MultiMeshInstance3D" parent="."]
multimesh = SubResource("MultiMesh_ic3h7")

BIN
src/base-environments/youth_room/import/fairy_light.glb (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,57 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cat2o0tdxahiq"
path="res://.godot/imported/fairy_light.glb-23acffacc6593c5a8045d4a2c6c8f3f3.scn"
[deps]
source_file="res://base-environments/youth_room/import/fairy_light.glb"
dest_files=["res://.godot/imported/fairy_light.glb-23acffacc6593c5a8045d4a2c6c8f3f3.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={
"materials": {
"emit": {
"use_external/enabled": true,
"use_external/path": "res://base-environments/youth_room/shaders/fairylight.material"
},
"halo": {
"use_external/enabled": true,
"use_external/path": "res://base-environments/youth_room/shaders/fairylight_halo.material"
}
},
"meshes": {
"fairy_light_diode": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": true,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://base-environments/youth_room/shaders/fairy_light_diode.res"
}
}
}
gltf/naming_version=1
gltf/embedded_image_handling=1

View File

@ -2,7 +2,6 @@
[resource] [resource]
resource_name = "door" resource_name = "door"
cull_mode = 2
vertex_color_use_as_albedo = true vertex_color_use_as_albedo = true
albedo_color = Color(0.882082, 0.839278, 0.809231, 1) albedo_color = Color(0.882082, 0.839278, 0.809231, 1)
roughness = 0.5 roughness = 0.5

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ddo88j25qqiv4"
path.s3tc="res://.godot/imported/Paper003_1K_NormalGL.jpg-71e996bfc9d14be9a6a613688bcccb94.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://base-environments/youth_room/import/textures/Paper003_1K_NormalGL.jpg"
dest_files=["res://.godot/imported/Paper003_1K_NormalGL.jpg-71e996bfc9d14be9a6a613688bcccb94.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 MiB

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 MiB

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 MiB

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 298 KiB

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 539 KiB

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ckv2c2qr4ysb1"
path.s3tc="res://.godot/imported/pattern_237_diffuse.png-cd54f670c84bf8a07079e7eb24ba5d8a.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://base-environments/youth_room/import/textures/pattern_237_diffuse.png"
dest_files=["res://.godot/imported/pattern_237_diffuse.png-cd54f670c84bf8a07079e7eb24ba5d8a.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cyapx84i7dykm"
path.s3tc="res://.godot/imported/pattern_237_normal.png-c0b0c145cf7bd8c292de288fe33fa9eb.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://base-environments/youth_room/import/textures/pattern_237_normal.png"
dest_files=["res://.godot/imported/pattern_237_normal.png-c0b0c145cf7bd8c292de288fe33fa9eb.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=1
roughness/src_normal="res://base-environments/youth_room/import/textures/pattern_237_normal.png"
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 MiB

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 KiB

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://chisldkpt6bf5"
path.s3tc="res://.godot/imported/wires_albedo.png-e2ca1c0cfbd554203dfd9c0e487f3b1c.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://base-environments/youth_room/import/textures/wires_albedo.png"
dest_files=["res://.godot/imported/wires_albedo.png-e2ca1c0cfbd554203dfd9c0e487f3b1c.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://i75aktvgsdwg"
path.s3tc="res://.godot/imported/wires_normal.png-a1ed398b6f0bdd3bf06fa8d9f72a947e.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://base-environments/youth_room/import/textures/wires_normal.png"
dest_files=["res://.godot/imported/wires_normal.png-a1ed398b6f0bdd3bf06fa8d9f72a947e.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=1
roughness/src_normal="res://base-environments/youth_room/import/textures/wires_normal.png"
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@ -167,6 +167,38 @@ _subresources={
"use_external/enabled": true, "use_external/enabled": true,
"use_external/path": "res://base-environments/youth_room/import/materials/wooden_crate_01.tres" "use_external/path": "res://base-environments/youth_room/import/materials/wooden_crate_01.tres"
} }
},
"meshes": {
"youth_room_drawing_001": {
"generate/lightmap_uv": 0,
"generate/lods": 2,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": ""
},
"youth_room_drawing_002": {
"generate/lightmap_uv": 0,
"generate/lods": 2,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": ""
},
"youth_room_room": {
"generate/lightmap_uv": 0,
"generate/lods": 2,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/path": ""
}
} }
} }
gltf/naming_version=0 gltf/naming_version=0

View File

@ -20,6 +20,7 @@ var current_mode: int = Modes.FREEZE:
current_mode = _update_scene(new_mode) current_mode = _update_scene(new_mode)
func start(): func start():
$logic/PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
emit_signal("ini_room") emit_signal("ini_room")
current_mode = Modes.WALKING current_mode = Modes.WALKING
@ -45,3 +46,4 @@ func _ready():
if get_parent() == get_tree().root: if get_parent() == get_tree().root:
get_ready() get_ready()
start() start()

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=117 format=3 uid="uid://b3b0gyvklqn50"] [gd_scene load_steps=127 format=3 uid="uid://b3b0gyvklqn50"]
[ext_resource type="Script" path="res://base-environments/youth_room/room_handle.gd" id="1_aitp0"] [ext_resource type="Script" path="res://base-environments/youth_room/room_handle.gd" id="1_aitp0"]
[ext_resource type="PackedScene" uid="uid://c0i4ydmxtxfho" path="res://base-environments/youth_room/import/youth_room.glb" id="1_jf3oi"] [ext_resource type="PackedScene" uid="uid://c0i4ydmxtxfho" path="res://base-environments/youth_room/import/youth_room.glb" id="1_jf3oi"]
@ -33,8 +33,11 @@
[ext_resource type="PackedScene" uid="uid://bpjympn3ps3wo" path="res://logic-scenes/luna/luna_imported.tscn" id="27_pb1jl"] [ext_resource type="PackedScene" uid="uid://bpjympn3ps3wo" path="res://logic-scenes/luna/luna_imported.tscn" id="27_pb1jl"]
[ext_resource type="Material" uid="uid://ct7uc5i5yp5qf" path="res://base-environments/youth_room/import/materials/wall.tres" id="28_oiweb"] [ext_resource type="Material" uid="uid://ct7uc5i5yp5qf" path="res://base-environments/youth_room/import/materials/wall.tres" id="28_oiweb"]
[ext_resource type="PackedScene" uid="uid://bwc2wp7tckm7t" path="res://base-environments/youth_room/outside.tscn" id="32_2vgep"] [ext_resource type="PackedScene" uid="uid://bwc2wp7tckm7t" path="res://base-environments/youth_room/outside.tscn" id="32_2vgep"]
[ext_resource type="Shader" path="res://base-environments/intro_scene/shaders/stars.gdshader" id="32_k5rvd"]
[ext_resource type="Material" uid="uid://bmu72cnsr8c5e" path="res://base-environments/youth_room/shaders/window.material" id="32_pwbgf"] [ext_resource type="Material" uid="uid://bmu72cnsr8c5e" path="res://base-environments/youth_room/shaders/window.material" id="32_pwbgf"]
[ext_resource type="ArrayMesh" uid="uid://jjrvf8px2ut3" path="res://base-environments/youth_room/shaders/winfow_frames.res" id="32_w6oa5"] [ext_resource type="ArrayMesh" uid="uid://jjrvf8px2ut3" path="res://base-environments/youth_room/shaders/winfow_frames.res" id="32_w6oa5"]
[ext_resource type="Texture2D" uid="uid://dabnlcnuticww" path="res://base-environments/intro_scene/textures/sky_textures_2.png" id="33_mvrs2"]
[ext_resource type="PackedScene" uid="uid://cg70r0102t8nl" path="res://base-environments/youth_room/fairylights.tscn" id="39_q6rov"]
[sub_resource type="BoxShape3D" id="BoxShape3D_j3mqx"] [sub_resource type="BoxShape3D" id="BoxShape3D_j3mqx"]
size = Vector3(0.711297, 2.53136, 1.74815) size = Vector3(0.711297, 2.53136, 1.74815)
@ -1567,8 +1570,7 @@ func start_soundtrack():
func play_scene(id: int, repeat = false): func play_scene(id: int, repeat = false):
get_tree().call_group(\"interactables\", \"collapse\") get_tree().call_group(\"interactables\", \"collapse\")
State.pass_stage_to(self) State.pass_stage_to(self, false, true)
State.lock_focus = true
is_repeating = repeat is_repeating = repeat
Input.mouse_mode = Input.MOUSE_MODE_HIDDEN Input.mouse_mode = Input.MOUSE_MODE_HIDDEN
match id: match id:
@ -1584,26 +1586,21 @@ func play_scene(id: int, repeat = false):
func _on_ini_room(): func _on_ini_room():
pass pass
func on_childhood_done(): func on_childhood_done():
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_CHILDHOOD, is_repeating) get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_CHILDHOOD, is_repeating)
$childhood.hide() $childhood.hide()
State.lock_focus = is_repeating
func on_voice_training_done(): func on_voice_training_done():
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_VOICE_TRAINING, is_repeating) get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_VOICE_TRAINING, is_repeating)
$\"Voice Training\".hide() $\"Voice Training\".hide()
State.lock_focus = is_repeating
func on_jui_jutsu_done(): func on_jui_jutsu_done():
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_JUI_JUTSU, is_repeating) get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_JUI_JUTSU, is_repeating)
$jui_jutsu.hide() $jui_jutsu.hide()
State.lock_focus = is_repeating
func on_draeven_done(): func on_draeven_done():
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_DRAEVEN, is_repeating) get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_DRAEVEN, is_repeating)
$draeven.hide() $draeven.hide()
State.lock_focus = is_repeating
queue(\"intro\") queue(\"intro\")
func scene_finished(_id): func scene_finished(_id):
@ -1969,15 +1966,46 @@ func _process(delta):
[sub_resource type="ViewportTexture" id="ViewportTexture_hwb6d"] [sub_resource type="ViewportTexture" id="ViewportTexture_hwb6d"]
viewport_path = NodePath("MeshInstance3D/SubViewport") viewport_path = NodePath("MeshInstance3D/SubViewport")
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_et8yw"] [sub_resource type="Gradient" id="Gradient_d5lk6"]
interpolation_mode = 2
offsets = PackedFloat32Array(0, 0.175337, 0.414258, 0.593449, 0.700565, 0.770713, 0.798493, 0.809793, 0.954802)
colors = PackedColorArray(0, 0, 0, 0, 0.003, 0.0047, 0.02, 0.584314, 0.02385, 0.009, 0.09, 0, 0.06228, 0.0312, 0.12, 1, 0.22, 0.055, 0.1815, 0, 0.816757, 0.155467, 0.208686, 0.819608, 0.0136439, 0.0237636, 0.0955315, 1, 0.0120242, 0.0120251, 0.0360567, 0.356863, 0.00319355, 0.00476964, 0.0186391, 0.313726)
[sub_resource type="Sky" id="Sky_188qv"] [sub_resource type="GradientTexture1D" id="GradientTexture1D_apxml"]
sky_material = SubResource("ProceduralSkyMaterial_et8yw") gradient = SubResource("Gradient_d5lk6")
use_hdr = true
[sub_resource type="Gradient" id="Gradient_liqu7"]
interpolation_mode = 2
interpolation_color_space = 1
offsets = PackedFloat32Array(0, 0.137476, 0.46516, 0.851224)
colors = PackedColorArray(0.127188, 0.325303, 0.352533, 1, 0.0512, 0.18112, 0.32, 1, 0.0406, 0.0530699, 0.29, 1, 0.106137, 0.0034, 0.17, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_vetqo"]
gradient = SubResource("Gradient_liqu7")
use_hdr = true
[sub_resource type="Gradient" id="Gradient_87cdb"]
colors = PackedColorArray(0.85, 0.46325, 0.0765, 1, 0.825717, 0.47559, 0.983214, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_8fou6"]
gradient = SubResource("Gradient_87cdb")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_s2c5b"]
shader = ExtResource("32_k5rvd")
shader_parameter/star_size = 120.0
shader_parameter/nebula_offset = 0.5
shader_parameter/star_colors = SubResource("GradientTexture1D_8fou6")
shader_parameter/sky_gradient = SubResource("GradientTexture1D_vetqo")
shader_parameter/nebula_gradient = SubResource("GradientTexture1D_apxml")
shader_parameter/universe_background = ExtResource("33_mvrs2")
[sub_resource type="Sky" id="Sky_85fpg"]
sky_material = SubResource("ShaderMaterial_s2c5b")
[sub_resource type="Environment" id="Environment_pllnm"] [sub_resource type="Environment" id="Environment_pllnm"]
background_mode = 2 background_mode = 2
background_energy_multiplier = 0.2 sky = SubResource("Sky_85fpg")
sky = SubResource("Sky_188qv")
sky_rotation = Vector3(0, 0.352557, 0) sky_rotation = Vector3(0, 0.352557, 0)
ambient_light_source = 3 ambient_light_source = 3
ambient_light_color = Color(1, 1, 1, 1) ambient_light_color = Color(1, 1, 1, 1)
@ -2093,12 +2121,28 @@ func _process(delta):
self.global_transform = camera.global_transform self.global_transform = camera.global_transform
" "
[sub_resource type="GDScript" id="GDScript_icgq0"]
script/source = "extends Control
func show():
visible = true
var vis_tween = create_tween()
vis_tween.tween_property(self, \"modulate\", Color(1, 1, 1, 1), 0.1)
func hide():
var vis_tween = create_tween()
vis_tween.tween_property(self, \"modulate\", Color(1, 1, 1, 0), 0.1)
await vis_tween.finished
visible = false
"
[node name="youth room" type="Node3D"] [node name="youth room" type="Node3D"]
script = ExtResource("1_aitp0") script = ExtResource("1_aitp0")
[node name="logic" type="Node3D" parent="."] [node name="logic" type="Node3D" parent="."]
[node name="PlayerController" parent="logic" groups=["camera_owner"] instance=ExtResource("3_foj4y")] [node name="PlayerController" parent="logic" groups=["camera_owner"] instance=ExtResource("3_foj4y")]
process_mode = 4
transform = Transform3D(0.686123, 0, 0.727485, 0, 1, 0, -0.727485, 0, 0.686123, 0.63, 0, 0.925) transform = Transform3D(0.686123, 0, 0.727485, 0, 1, 0, -0.727485, 0, 0.686123, 0.63, 0, 0.925)
[node name="colission" type="Node3D" parent="logic"] [node name="colission" type="Node3D" parent="logic"]
@ -2384,6 +2428,7 @@ autoplay = "idle"
[node name="Camera3D" type="Camera3D" parent="logic/ScenePlayer/childhood/PanelContainer/StartFrame/TextureRect/SubViewport/Node3D"] [node name="Camera3D" type="Camera3D" parent="logic/ScenePlayer/childhood/PanelContainer/StartFrame/TextureRect/SubViewport/Node3D"]
transform = Transform3D(1, -4.88994e-09, 1.82221e-11, 4.88232e-09, 0.998636, 0.052214, -2.7352e-10, -0.052214, 0.998636, 0.0198479, 0.0554118, 0.529937) transform = Transform3D(1, -4.88994e-09, 1.82221e-11, 4.88232e-09, 0.998636, 0.052214, -2.7352e-10, -0.052214, 0.998636, 0.0198479, 0.0554118, 0.529937)
current = true
fov = 33.0 fov = 33.0
[node name="SpotLight3D" type="SpotLight3D" parent="logic/ScenePlayer/childhood/PanelContainer/StartFrame/TextureRect/SubViewport/Node3D"] [node name="SpotLight3D" type="SpotLight3D" parent="logic/ScenePlayer/childhood/PanelContainer/StartFrame/TextureRect/SubViewport/Node3D"]
@ -2726,7 +2771,7 @@ layout_mode = 2
size_flags_horizontal = 4 size_flags_horizontal = 4
size_flags_vertical = 4 size_flags_vertical = 4
mouse_filter = 0 mouse_filter = 0
scroll_vertical = 150 scroll_vertical = 30
horizontal_scroll_mode = 0 horizontal_scroll_mode = 0
vertical_scroll_mode = 3 vertical_scroll_mode = 3
@ -2841,7 +2886,6 @@ texture = SubResource("ViewportTexture_3mgqk")
[node name="SubViewport" type="SubViewport" parent="logic/Mask-interaction/UiWrapper/UiSprite"] [node name="SubViewport" type="SubViewport" parent="logic/Mask-interaction/UiWrapper/UiSprite"]
transparent_bg = true transparent_bg = true
size = Vector2i(300, 350)
render_target_update_mode = 4 render_target_update_mode = 4
[node name="Collectable_ui" parent="logic/Mask-interaction/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")] [node name="Collectable_ui" parent="logic/Mask-interaction/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")]
@ -2879,7 +2923,7 @@ texture = SubResource("ViewportTexture_7hana")
[node name="SubViewport" type="SubViewport" parent="logic/clothes_interaction/UiWrapper/UiSprite"] [node name="SubViewport" type="SubViewport" parent="logic/clothes_interaction/UiWrapper/UiSprite"]
transparent_bg = true transparent_bg = true
size = Vector2i(300, 350) size = Vector2i(400, 350)
render_target_update_mode = 4 render_target_update_mode = 4
[node name="Collectable_ui" parent="logic/clothes_interaction/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")] [node name="Collectable_ui" parent="logic/clothes_interaction/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")]
@ -2918,7 +2962,7 @@ texture = SubResource("ViewportTexture_nn6wl")
[node name="SubViewport" type="SubViewport" parent="logic/Comic-interaction/UiWrapper/UiSprite"] [node name="SubViewport" type="SubViewport" parent="logic/Comic-interaction/UiWrapper/UiSprite"]
transparent_bg = true transparent_bg = true
size = Vector2i(300, 350) size = Vector2i(400, 350)
render_target_update_mode = 4 render_target_update_mode = 4
[node name="Collectable_ui" parent="logic/Comic-interaction/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")] [node name="Collectable_ui" parent="logic/Comic-interaction/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")]
@ -2957,13 +3001,14 @@ texture = SubResource("ViewportTexture_8rywf")
[node name="SubViewport" type="SubViewport" parent="logic/Draeven-interaction/UiWrapper/UiSprite"] [node name="SubViewport" type="SubViewport" parent="logic/Draeven-interaction/UiWrapper/UiSprite"]
transparent_bg = true transparent_bg = true
size = Vector2i(300, 350) size = Vector2i(400, 350)
render_target_update_mode = 4 render_target_update_mode = 4
[node name="Collectable_ui" parent="logic/Draeven-interaction/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")] [node name="Collectable_ui" parent="logic/Draeven-interaction/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")]
visible = false visible = false
scene = 3 scene = 3
is_story = true is_story = true
collected = true
item_name = "Starlight" item_name = "Starlight"
content_notes = "Alienation" content_notes = "Alienation"
@ -2997,7 +3042,7 @@ texture = SubResource("ViewportTexture_hdmps")
[node name="SubViewport" type="SubViewport" parent="logic/Mind Board/UiWrapper/UiSprite"] [node name="SubViewport" type="SubViewport" parent="logic/Mind Board/UiWrapper/UiSprite"]
transparent_bg = true transparent_bg = true
size = Vector2i(300, 350) size = Vector2i(400, 350)
render_target_update_mode = 4 render_target_update_mode = 4
[node name="Collectable_ui" parent="logic/Mind Board/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")] [node name="Collectable_ui" parent="logic/Mind Board/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")]
@ -3068,15 +3113,17 @@ light_energy = 0.5
omni_range = 0.147682 omni_range = 0.147682
[node name="OmniLight3D2" type="OmniLight3D" parent="visuals/lights"] [node name="OmniLight3D2" type="OmniLight3D" parent="visuals/lights"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.57389, 0.689055, -0.718959) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.77406, 0.63822, -0.383553)
light_color = Color(0.894118, 0.87451, 0.686275, 1) light_color = Color(0.894118, 0.87451, 0.686275, 1)
light_size = 0.1 light_size = 0.2
light_specular = 0.1
shadow_enabled = true shadow_enabled = true
omni_range = 2.17653 omni_range = 2.77016
omni_attenuation = 0.450626 omni_attenuation = 0.450626
[node name="OmniLight3D3" type="OmniLight3D" parent="visuals/lights"] [node name="OmniLight3D3" type="OmniLight3D" parent="visuals/lights"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.71696, 0.649284, 0.541634) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.71696, 0.532118, 0.541634)
visible = false
light_color = Color(0.929412, 0.866667, 0.639216, 1) light_color = Color(0.929412, 0.866667, 0.639216, 1)
light_energy = 0.3 light_energy = 0.3
light_size = 0.1 light_size = 0.1
@ -3085,10 +3132,12 @@ omni_range = 2.17653
omni_attenuation = 0.450626 omni_attenuation = 0.450626
[node name="OmniLight3D4" type="OmniLight3D" parent="visuals/lights"] [node name="OmniLight3D4" type="OmniLight3D" parent="visuals/lights"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.55029, 1.48654, -0.513123) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.47143, 1.6968, -0.554695)
layers = 32769
light_color = Color(0.894118, 0.87451, 0.686275, 1) light_color = Color(0.894118, 0.87451, 0.686275, 1)
light_energy = 0.1 light_energy = 0.1
light_size = 0.05 light_size = 0.3
light_specular = 0.0
shadow_enabled = true shadow_enabled = true
omni_range = 2.17653 omni_range = 2.17653
omni_attenuation = 1.41421 omni_attenuation = 1.41421
@ -3103,10 +3152,11 @@ script = SubResource("GDScript_5ot1o")
[node name="lighting aids" type="Node3D" parent="visuals"] [node name="lighting aids" type="Node3D" parent="visuals"]
[node name="window_probe" type="ReflectionProbe" parent="visuals/lighting aids"] [node name="window_probe" type="ReflectionProbe" parent="visuals/lighting aids"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.01338, 0.972332, 2.73763) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.01338, 0.972332, 2.93068)
max_distance = 7.0 max_distance = 7.0
size = Vector3(1.55939, 2.08125, 0.431185) size = Vector3(1.55939, 2.08125, 0.817277)
origin_offset = Vector3(0, 0.46875, 0.117676) origin_offset = Vector3(0.0200195, 0.707031, 0.205592)
box_projection = true
enable_shadows = true enable_shadows = true
cull_mask = 1 cull_mask = 1
mesh_lod_threshold = 0.0 mesh_lod_threshold = 0.0
@ -3128,10 +3178,9 @@ box_projection = true
enable_shadows = true enable_shadows = true
[node name="upper_bunkbed_probe" type="ReflectionProbe" parent="visuals/lighting aids"] [node name="upper_bunkbed_probe" type="ReflectionProbe" parent="visuals/lighting aids"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.89428, 1.75054, -0.0384804) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.14632, 1.55788, -0.232231)
max_distance = 5.0 max_distance = 5.0
size = Vector3(2.39921, 1.61006, 2.62172) size = Vector3(1.81269, 1.61006, 2.62172)
origin_offset = Vector3(-0.456543, -0.353516, -0.0356445)
box_projection = true box_projection = true
interior = true interior = true
enable_shadows = true enable_shadows = true
@ -3195,6 +3244,7 @@ size = Vector2i(1920, 1080)
[node name="Camera3D" type="Camera3D" parent="WorldEnvironment/window_glass/SubViewport"] [node name="Camera3D" type="Camera3D" parent="WorldEnvironment/window_glass/SubViewport"]
transform = Transform3D(-1, 0, -1.50996e-07, 0, 1, 0, 1.50996e-07, 0, -1, 0.906618, 1.33684, 2.65628) transform = Transform3D(-1, 0, -1.50996e-07, 0, 1, 0, 1.50996e-07, 0, -1, 0.906618, 1.33684, 2.65628)
current = true
script = SubResource("GDScript_rfgs6") script = SubResource("GDScript_rfgs6")
[node name="outside" parent="WorldEnvironment/window_glass/SubViewport" instance=ExtResource("32_2vgep")] [node name="outside" parent="WorldEnvironment/window_glass/SubViewport" instance=ExtResource("32_2vgep")]
@ -3209,9 +3259,9 @@ anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
mouse_filter = 1 mouse_filter = 1
script = SubResource("GDScript_icgq0")
[node name="Mouse" type="CenterContainer" parent="SceneUI"] [node name="Mouse" type="CenterContainer" parent="SceneUI"]
visible = false
layout_mode = 1 layout_mode = 1
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@ -3220,7 +3270,6 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
[node name="TextureRect" type="TextureRect" parent="SceneUI/Mouse"] [node name="TextureRect" type="TextureRect" parent="SceneUI/Mouse"]
visible = false
layout_mode = 2 layout_mode = 2
texture = ExtResource("13_lqj71") texture = ExtResource("13_lqj71")
@ -3239,6 +3288,10 @@ light_specular = 0.0
omni_range = 0.457129 omni_range = 0.457129
omni_attenuation = 0.659754 omni_attenuation = 0.659754
[node name="fairylights" parent="." instance=ExtResource("39_q6rov")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.89212, 5.96046e-08, -0.143107)
light_array = Array[Vector3]([Vector3(-0.545, 0.915, 1.035), Vector3(-0.47, 0.855, 0.905), Vector3(-0.44, 0.871, 0.78), Vector3(-0.385, 0.91, 0.69), Vector3(-0.38, 0.995, 0.595), Vector3(-0.39, 0.925, 0.465), Vector3(-0.364, 0.86, 0.211), Vector3(-0.295, 0.82, 0.06), Vector3(-0.255, 0.805, -0.15), Vector3(-0.175, 0.83, -0.355), Vector3(-0.135, 0.955, -0.515), Vector3(-0.025, 0.78, -0.615), Vector3(0.115, 0.63, -0.695), Vector3(0.245, 0.555, -0.745), Vector3(0.37, 0.595, -0.805), Vector3(0.455, 0.745, -0.84), Vector3(0.505, 0.89, -0.87), Vector3(0.445, 1.175, -0.87), Vector3(0.26, 1.28, -0.815), Vector3(0.125, 1.35, -0.8), Vector3(-0.037, 1.479, -0.834), Vector3(-0.2, 1.601, -0.851), Vector3(-0.359, 1.769, -0.85), Vector3(-0.5, 1.949, -0.85), Vector3(-0.594, 2.126, -0.85), Vector3(-0.634, 2.238, -0.85), Vector3(-0.634, 2.035, -0.85), Vector3(-0.614, 1.875, -0.85), Vector3(-0.65, 1.655, -0.85), Vector3(-0.65, 1.475, -0.87)])
[connection signal="ini_room" from="." to="logic/PlayerController" method="_on_ini_room"] [connection signal="ini_room" from="." to="logic/PlayerController" method="_on_ini_room"]
[connection signal="ini_room" from="." to="logic/ScenePlayer" method="_on_ini_room"] [connection signal="ini_room" from="." to="logic/ScenePlayer" method="_on_ini_room"]
[connection signal="ini_room" from="." to="visuals/lights/light_animation" method="_on_ini_room"] [connection signal="ini_room" from="." to="visuals/lights/light_animation" method="_on_ini_room"]

View File

@ -16,13 +16,13 @@ bus/2/name = &"sfx"
bus/2/solo = false bus/2/solo = false
bus/2/mute = false bus/2/mute = false
bus/2/bypass_fx = false bus/2/bypass_fx = false
bus/2/volume_db = 0.0 bus/2/volume_db = -9.63278
bus/2/send = &"New Bus 3" bus/2/send = &"New Bus 3"
bus/3/name = &"music" bus/3/name = &"music"
bus/3/solo = false bus/3/solo = false
bus/3/mute = false bus/3/mute = false
bus/3/bypass_fx = false bus/3/bypass_fx = false
bus/3/volume_db = -0.00384331 bus/3/volume_db = -9.63278
bus/3/send = &"New Bus 3" bus/3/send = &"New Bus 3"
bus/4/name = &"outside-rain" bus/4/name = &"outside-rain"
bus/4/solo = false bus/4/solo = false

View File

@ -17,19 +17,20 @@ func _unhandled_input(event):
viewport.push_input(event) viewport.push_input(event)
func _on_input_event(_camera: Camera3D, event: InputEvent, pos: Vector3, _normal: Vector3, _shape_idx: int): func _on_input_event(_camera: Camera3D, event: InputEvent, pos: Vector3, _normal: Vector3, _shape_idx: int):
# Position of the event in Sprite3D local coordinates. if not State.focus_locked:
var texture_3d_position = sprite.get_global_transform().affine_inverse() * pos # Position of the event in Sprite3D local coordinates.
#if !is_zero_approx(texture_3d_position.z): var texture_3d_position = sprite.get_global_transform().affine_inverse() * pos
# # Discard event because event didn't happen on the side of the Sprite3D. #if !is_zero_approx(texture_3d_position.z):
# return # # Discard event because event didn't happen on the side of the Sprite3D.
# Position of the event relative to the texture. # return
var texture_position: Vector2 = Vector2(texture_3d_position.x, -texture_3d_position.y) / sprite.pixel_size - sprite.get_item_rect().position # Position of the event relative to the texture.
# Send mouse event. var texture_position: Vector2 = Vector2(texture_3d_position.x, -texture_3d_position.y) / sprite.pixel_size - sprite.get_item_rect().position
var e: InputEvent = event.duplicate() # Send mouse event.
if e is InputEventMouse: var e: InputEvent = event.duplicate()
e.set_position(texture_position) if e is InputEventMouse:
e.set_global_position(texture_position) e.set_position(texture_position)
viewport.push_input(e) e.set_global_position(texture_position)
viewport.push_input(e)
func _on_button_pressed(): func _on_button_pressed():
print("Button pressed") print("Button pressed")

View File

@ -0,0 +1,55 @@
[gd_scene load_steps=12 format=3 uid="uid://d0qqluenght6a"]
[ext_resource type="Shader" path="res://base-environments/intro_scene/shaders/stars.gdshader" id="1_8nej7"]
[ext_resource type="Texture2D" uid="uid://dabnlcnuticww" path="res://base-environments/intro_scene/textures/sky_textures_2.png" id="2_qoi7m"]
[sub_resource type="Gradient" id="Gradient_d5lk6"]
interpolation_mode = 2
offsets = PackedFloat32Array(0, 0.175337, 0.414258, 0.593449, 0.700565, 0.770713, 0.798493, 0.809793, 0.954802)
colors = PackedColorArray(0, 0, 0, 0, 0.003, 0.0047, 0.02, 0.584314, 0.02385, 0.009, 0.09, 0, 0.06228, 0.0312, 0.12, 1, 0.22, 0.055, 0.1815, 0, 0.816757, 0.155467, 0.208686, 0.819608, 0.0136439, 0.0237636, 0.0955315, 1, 0.0120242, 0.0120251, 0.0360567, 0.356863, 0.00319355, 0.00476964, 0.0186391, 0.313726)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_apxml"]
gradient = SubResource("Gradient_d5lk6")
use_hdr = true
[sub_resource type="Gradient" id="Gradient_liqu7"]
interpolation_mode = 2
interpolation_color_space = 1
offsets = PackedFloat32Array(0, 0.137476, 0.46516, 0.851224)
colors = PackedColorArray(0.127188, 0.325303, 0.352533, 1, 0.0512, 0.18112, 0.32, 1, 0.0406, 0.0530699, 0.29, 1, 0.106137, 0.0034, 0.17, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_vetqo"]
gradient = SubResource("Gradient_liqu7")
use_hdr = true
[sub_resource type="Gradient" id="Gradient_87cdb"]
colors = PackedColorArray(0.85, 0.46325, 0.0765, 1, 0.825717, 0.47559, 0.983214, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_8fou6"]
gradient = SubResource("Gradient_87cdb")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_s2c5b"]
shader = ExtResource("1_8nej7")
shader_parameter/star_size = 120.0
shader_parameter/nebula_offset = 0.5
shader_parameter/star_colors = SubResource("GradientTexture1D_8fou6")
shader_parameter/sky_gradient = SubResource("GradientTexture1D_vetqo")
shader_parameter/nebula_gradient = SubResource("GradientTexture1D_apxml")
shader_parameter/universe_background = ExtResource("2_qoi7m")
[sub_resource type="Sky" id="Sky_6q4bd"]
sky_material = SubResource("ShaderMaterial_s2c5b")
[sub_resource type="Environment" id="Environment_bebqi"]
background_mode = 2
sky = SubResource("Sky_6q4bd")
reflected_light_source = 2
tonemap_mode = 3
[node name="Node3D" type="Node3D"]
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_bebqi")
[node name="Camera3D" type="Camera3D" parent="WorldEnvironment"]
transform = Transform3D(0.864275, 0.310381, 0.395844, 0, 0.786935, -0.617036, -0.50302, 0.533288, 0.680128, 0, 0, 2.95787)

View File

@ -1,81 +1,73 @@
[gd_scene load_steps=6 format=3 uid="uid://bigr0lnen1xdh"] [gd_scene load_steps=5 format=3 uid="uid://bigr0lnen1xdh"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_3yn7w"] [sub_resource type="GDScript" id="GDScript_5hy5u"]
sky_top_color = Color(0, 0, 1, 1) script/source = "extends Node3D
sky_horizon_color = Color(0.858824, 0.541176, 0.4, 1)
sky_curve = 0.54075
[sub_resource type="Sky" id="Sky_lumfb"]
sky_material = SubResource("ProceduralSkyMaterial_3yn7w")
[sub_resource type="Environment" id="Environment_f0flp"]
background_mode = 2
background_energy_multiplier = 0.2
sky = SubResource("Sky_lumfb")
sky_rotation = Vector3(0, 0.352557, 0)
ambient_light_source = 3
ambient_light_color = Color(1, 1, 1, 1)
reflected_light_source = 1
tonemap_mode = 2
ssr_enabled = true
ssr_max_steps = 512
ssr_depth_tolerance = 0.01
ssao_enabled = true
ssao_radius = 1.24
ssao_intensity = 3.09
ssao_power = 1.91184
ssao_detail = 3.0
ssil_intensity = 0.72
ssil_normal_rejection = 0.56
sdfgi_enabled = true
sdfgi_use_occlusion = true
glow_enabled = true
glow_levels/2 = 0.3
glow_levels/7 = 2.0
glow_intensity = 0.4
glow_strength = 0.7
glow_bloom = 0.13
glow_blend_mode = 1
glow_hdr_threshold = 0.46
fog_enabled = true
fog_light_color = Color(0.141176, 0.133333, 0.301961, 1)
fog_sky_affect = 0.0
fog_height = 1.0
fog_height_density = 0.1
adjustment_enabled = true
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_2qx32"]
auto_exposure_enabled = true
auto_exposure_scale = 0.2
dof_blur_far_enabled = true
dof_blur_far_distance = 0.4
dof_blur_far_transition = 0.2
dof_blur_near_distance = 0.79
dof_blur_amount = 0.0
auto_exposure_min_sensitivity = 100.0
[sub_resource type="GDScript" id="GDScript_uqlwy"]
script/source = "extends WorldEnvironment
# Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
focus_env() await get_tree().create_timer(1).timeout
$AnimationPlayer.advance(10)
func focus_env():
var dof_strength_tween: Tween = create_tween()
dof_strength_tween.tween_property(camera_attributes, \"dof_blur_amount\", 0, 1)
func focus_object():
var dof_strength_tween: Tween = create_tween() # Called every frame. 'delta' is the elapsed time since the previous frame.
dof_strength_tween.tween_property(camera_attributes, \"dof_blur_amount\", 0.6, 1) func _process(delta):
pass
func _on_animation_player_animation_finished(anim_name):
print(\"yay\")
" "
[node name="Node3D" type="Node3D"] [sub_resource type="Animation" id="Animation_kdstq"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Camera3D:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, -0.058, 0.77)]
}
[node name="WorldEnvironment" type="WorldEnvironment" parent="."] [sub_resource type="Animation" id="Animation_wjx7h"]
environment = SubResource("Environment_f0flp") resource_name = "test"
camera_attributes = SubResource("CameraAttributesPractical_2qx32") length = 5.0
script = SubResource("GDScript_uqlwy") tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Camera3D:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, -0.058, 0.77), Vector3(0, -0.058, 10.97)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_l6qbr"]
_data = {
"RESET": SubResource("Animation_kdstq"),
"test": SubResource("Animation_wjx7h")
}
[node name="Node3D" type="Node3D"]
script = SubResource("GDScript_5hy5u")
[node name="Camera3D" type="Camera3D" parent="."] [node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.987688, -0.156434, 0, 0.156434, 0.987688, 0, -0.058, 0.77) transform = Transform3D(1, 0, 0, 0, 0.987688, -0.156434, 0, 0.156434, 0.987688, 0, -0.058, 0.77)
fov = 18.0 fov = 18.0
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_l6qbr")
}
autoplay = "test"
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"]

View File

@ -82,7 +82,6 @@ text = "Welcome to the frame of mind alpha"
[node name="Label2" type="Label" parent="childhood/PanelContainer/VBoxContainer"] [node name="Label2" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3
text = "Thank you for participating in our public alpha. The goal is to see if the core of text = "Thank you for participating in our public alpha. The goal is to see if the core of
our game works, if the mechanics are interesting and, if the game makes sense. our game works, if the mechanics are interesting and, if the game makes sense.
@ -94,6 +93,7 @@ The game also does not support save games yet.
Frame of Mind uses a Creative Commons Non Commercial Share Alike 4.0 license. You can use the game and it's assets freely, as long as you also contribute back to the creative Commons Community. Feel free to reach out if you need a commercial License. Frame of Mind uses a Creative Commons Non Commercial Share Alike 4.0 license. You can use the game and it's assets freely, as long as you also contribute back to the creative Commons Community. Feel free to reach out if you need a commercial License.
Twokinds is created by Thomas J. Fischbach, who granted us permission to use it in a Creative Commons Project." Twokinds is created by Thomas J. Fischbach, who granted us permission to use it in a Creative Commons Project."
autowrap_mode = 3 autowrap_mode = 3
justification_flags = 131
visible_characters_behavior = 1 visible_characters_behavior = 1
[node name="Start" type="Button" parent="childhood/PanelContainer/VBoxContainer"] [node name="Start" type="Button" parent="childhood/PanelContainer/VBoxContainer"]
@ -106,7 +106,7 @@ text = "I understand, please start the alpha"
[node name="Label3" type="Label" parent="childhood/PanelContainer/VBoxContainer"] [node name="Label3" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
text = "the following links will take you to gilab.com" text = "The following links will take you to gilab.com"
horizontal_alignment = 1 horizontal_alignment = 1
autowrap_mode = 3 autowrap_mode = 3
visible_characters_behavior = 1 visible_characters_behavior = 1

Binary file not shown.

View File

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

View File

@ -0,0 +1,33 @@
# ATKINSON HYPERLEGIBLE FONT LICENSE
Copyright © 2020, [Braille Institute of America, Inc.](https://www.brailleinstitute.org/freefont), with Reserved Typeface Name Atkinson Hyperlegible Font.
## GENERAL
Copyright Holder allows the Font to be used, studied, modified and redistributed freely as long as it is not sold by itself. The Font, including any derivative works, may be bundled, embedded, redistributed and/or sold with any software or other work provided that the Reserved Typeface Name is not used on, in or by any derivative work. The Font and derivatives, however, cannot be released under any other type of license. The requirement for the Font to remain under this license does not apply to any document created using the Font or any of its derivatives.
## DEFINITIONS
"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
- “Copyright Holder” refers to Braille Institute of America, Inc.
- “Font” refers to the Atkinson Hyperlegible Font developed by Copyright Holder.
- "Font Software" refers to the set of files released by Copyright Holder under this license. This may include source files, build scripts and documentation.
- "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
- "Original Version" refers to the collection of the Font Software components as distributed by Copyright Holder.
- "Reserved Typeface Name" refers to the name Atkinson Hyperlegible Font.
## PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components, in Original Version or Modified Version, may be sold by itself.
2) The Original Version or Modified Version of the Font Software may be bundled, redistributed and/or sold with any other software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Typeface Name unless explicit written permission is granted by Copyright Holder. This restriction only applies to the primary font name as presented to the users.
4) The name of Copyright Holder or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version or any related software or other product, except:
a) to acknowledge the contribution(s) of Copyright Holder and the Author(s); or
b) with the prior written permission of Copyright Holder.
5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license.
## TERMINATION
This license shall immediately terminate and become null and void if any of the above conditions are not met.
## DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK OR OTHER RIGHT. IN NO EVENT SHALL COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OF OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

Binary file not shown.

View File

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

Binary file not shown.

View File

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

File diff suppressed because one or more lines are too long

BIN
src/import/interface-elements/Button.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://btqqsrqk1b05u"
path="res://.godot/imported/Button.png-208f2c1875e22d62a34c4879c05066f6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://import/interface-elements/Button.png"
dest_files=["res://.godot/imported/Button.png-208f2c1875e22d62a34c4879c05066f6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
src/import/interface-elements/Button_disabled.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dkwo2p5okykat"
path="res://.godot/imported/Button_disabled.png-e48cab6ea2497153fb9bd98728c08d96.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://import/interface-elements/Button_disabled.png"
dest_files=["res://.godot/imported/Button_disabled.png-e48cab6ea2497153fb9bd98728c08d96.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cnersypn2kka3"
path="res://.godot/imported/Button_hover.png-e82cbdc7ff8035451a8b10ed779e5d66.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://import/interface-elements/Button_hover.png"
dest_files=["res://.godot/imported/Button_hover.png-e82cbdc7ff8035451a8b10ed779e5d66.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cawhmh2xyi103"
path="res://.godot/imported/Button_pressed.png-5037c9128edfddaaca8ba1edf2297897.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://import/interface-elements/Button_pressed.png"
dest_files=["res://.godot/imported/Button_pressed.png-5037c9128edfddaaca8ba1edf2297897.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
src/import/interface-elements/button.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://74js84yg7kd5"
path="res://.godot/imported/button.png-76d81c4176f741c9af5971d2c6d467ad.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://import/interface-elements/button.png"
dest_files=["res://.godot/imported/button.png-76d81c4176f741c9af5971d2c6d467ad.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
src/import/interface-elements/button_hover.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://505e3hum4dfw"
path="res://.godot/imported/button_hover.png-8919e05a5e0b5e1bd66b6ae1cae4788f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://import/interface-elements/button_hover.png"
dest_files=["res://.godot/imported/button_hover.png-8919e05a5e0b5e1bd66b6ae1cae4788f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
src/import/interface-elements/button_pressed.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c0nqmm73g28ms"
path="res://.godot/imported/button_pressed.png-a34fc55b3d286a73b6d6e8979809a0f7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://import/interface-elements/button_pressed.png"
dest_files=["res://.godot/imported/button_pressed.png-a34fc55b3d286a73b6d6e8979809a0f7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
src/import/interface-elements/radio.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://di0twyrjabn7s"
path="res://.godot/imported/radio.png-932fcd2ba21c50f4376509538493348b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://import/interface-elements/radio.png"
dest_files=["res://.godot/imported/radio.png-932fcd2ba21c50f4376509538493348b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
src/import/interface-elements/radio_checked.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://mekp10cy0iow"
path="res://.godot/imported/radio_checked.png-f8b19a24d3c1174bccb1dd8708637b72.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://import/interface-elements/radio_checked.png"
dest_files=["res://.godot/imported/radio_checked.png-f8b19a24d3c1174bccb1dd8708637b72.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -11,23 +11,22 @@ enum {NAVIGATE, ASSIGN, DRAG}
var focus_stickies:bool = true: var focus_stickies:bool = true:
set(stickies): set(stickies):
if stickies and sticky_note_container.get_child_count() == 0: return if stickies and sticky_note_container.get_child_count() == 0: return
if not current_context == ASSIGN and not focus_stickies == stickies:
focus_stickies = stickies
if not current_context == ASSIGN:
if stickies: if stickies:
current_sticky_note_id = current_sticky_note_id current_sticky_note_id = current_sticky_note_id
else: else:
current_dropzone_id = current_dropzone_id current_dropzone_id = current_dropzone_id
focus_stickies = stickies
var has_stage = false: var has_stage = false:
set(focus): set(focus):
if focus: if focus:
has_stage = true has_stage = true
self.mouse_filter = Control.MOUSE_FILTER_PASS
get_tree().call_group("interactables", "collapse") get_tree().call_group("interactables", "collapse")
else: else:
has_stage = false has_stage = false
self.mouse_filter = Control.MOUSE_FILTER_IGNORE
if is_node_ready(): if is_node_ready():
if focus: if focus:
process_mode = Node.PROCESS_MODE_INHERIT process_mode = Node.PROCESS_MODE_INHERIT
@ -45,13 +44,13 @@ var base_sticky_note_panel: Panel
set(context): set(context):
if current_context == ASSIGN and !context == ASSIGN: if current_context == ASSIGN and !context == ASSIGN:
sticky_note_container.get_child(current_sticky_note_id).clear_if_empty() sticky_note_container.get_child(current_sticky_note_id).clear_if_empty()
match context: #match context:
NAVIGATE: # NAVIGATE:
_return_sticky_notes_to_panels() # _return_sticky_notes_to_panels()
DRAG: # DRAG:
pass # pass
ASSIGN: # ASSIGN:
pass # pass
current_context = context current_context = context
@onready var instructions = $instructions_panel/HBoxContainer/cards_remaining @onready var instructions = $instructions_panel/HBoxContainer/cards_remaining
@ -82,7 +81,9 @@ var mementos_collected: int = 0:
elif new_id < 0: current_dropzone_id = dropzone.get_child_count() - 1 elif new_id < 0: current_dropzone_id = dropzone.get_child_count() - 1
else: current_dropzone_id = new_id else: current_dropzone_id = new_id
if current_context == ASSIGN: if current_context == ASSIGN:
while not dropzone.get_child(current_dropzone_id) is Card: current_dropzone_id = (current_dropzone_id + 1) % dropzone.get_child_count()
dropzone.get_child(current_dropzone_id).preview_sticky_note(currently_active_node) dropzone.get_child(current_dropzone_id).preview_sticky_note(currently_active_node)
elif not focus_stickies: elif not focus_stickies:
currently_active_node = dropzone.get_child(current_dropzone_id) currently_active_node = dropzone.get_child(current_dropzone_id)
@ -112,6 +113,7 @@ func _ready():
if get_parent() == get_tree().root: if get_parent() == get_tree().root:
populate_board(["c_void", 'c_joy', "p_wet", "p_thomas"]) populate_board(["c_void", 'c_joy', "p_wet", "p_thomas"])
populate_board(["c_fighting", 'c_hit', "p_girly", "p_vent"]) populate_board(["c_fighting", 'c_hit', "p_girly", "p_vent"])
mementos_collected = 2
has_stage = has_stage has_stage = has_stage
@ -169,6 +171,7 @@ func handle_mouse_button(to_handle: Area2D, input: InputEvent):
if to_handle is StickyNote: if to_handle is StickyNote:
if not to_handle.on_board: if not to_handle.on_board:
to_handle.reparent(dropzone) to_handle.reparent(dropzone)
to_handle.on_board = true
to_handle.owner = self to_handle.owner = self
current_context = DRAG current_context = DRAG
@ -184,7 +187,10 @@ func handle_mouse_button(to_handle: Area2D, input: InputEvent):
if area.has_sticky_note_attached(): if area.has_sticky_note_attached():
to_handle = area.exchange_sticky_note_with(to_handle) to_handle = area.exchange_sticky_note_with(to_handle)
to_handle.reparent(dropzone) to_handle.reparent(dropzone)
to_handle.on_board = true
sticky_note_container.get_child(current_sticky_note_id).attached_sticky_note = to_handle sticky_note_container.get_child(current_sticky_note_id).attached_sticky_note = to_handle
to_handle.attached_to = sticky_note_container.get_child(current_sticky_note_id)
to_handle.reset_drag()
current_context = NAVIGATE current_context = NAVIGATE
return return
else: else:
@ -192,6 +198,7 @@ func handle_mouse_button(to_handle: Area2D, input: InputEvent):
if not sticky_note_container.get_child_count() == 0: if not sticky_note_container.get_child_count() == 0:
sticky_note_container.get_child(current_sticky_note_id).clear_if_empty() sticky_note_container.get_child(current_sticky_note_id).clear_if_empty()
current_context = NAVIGATE current_context = NAVIGATE
if is_board_complete(): emit_signal("board_completed")
return return
else: else:
_return_sticky_notes_to_panels() _return_sticky_notes_to_panels()
@ -230,6 +237,7 @@ func is_board_lore() -> bool:
# Mark area that was hovered over as currently selected # Mark area that was hovered over as currently selected
func handle_hover(to_handle: Area2D): func handle_hover(to_handle: Area2D):
if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT): return
currently_active_node = to_handle currently_active_node = to_handle
if is_in_dropzone(to_handle) or to_handle is Card: if is_in_dropzone(to_handle) or to_handle is Card:
@ -247,6 +255,8 @@ func insert_area(parent: Control, node: Area2D):
if not node in parent.get_children(): if not node in parent.get_children():
node.reparent(parent) node.reparent(parent)
if node is StickyNote:
node.on_board = true
node.owner = self node.owner = self
if children.size() > 0: if children.size() > 0:
@ -303,6 +313,7 @@ func _input(event):
card.attach_sticky_note(sticky_note_container.get_child(current_sticky_note_id).attached_sticky_note) card.attach_sticky_note(sticky_note_container.get_child(current_sticky_note_id).attached_sticky_note)
current_context = NAVIGATE current_context = NAVIGATE
focus_stickies = false focus_stickies = false
if is_board_complete(): emit_signal("board_completed")
else: else:
if !focus_stickies and card.has_sticky_note_attached(): if !focus_stickies and card.has_sticky_note_attached():
currently_active_node = card.remove_sticky_note() currently_active_node = card.remove_sticky_note()

Some files were not shown because too many files have changed in this diff Show More