Merge commit '3455715b9dd974893afb59f91002e6d7c2bdc2ca' into development
|
|
@ -1,11 +1,11 @@
|
|||
# Normalize EOL for all files that Git considers text files.
|
||||
* text=auto eol=lf
|
||||
.blend 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
|
||||
*.blend filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.glb filter=lfs diff=lfs merge=lfs -text
|
||||
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.exr filter=lfs diff=lfs merge=lfs -text
|
||||
*.ogg filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
|
|
|
|||
|
|
@ -2,3 +2,4 @@
|
|||
src/.godot/
|
||||
*.blend1
|
||||
result
|
||||
src/addons/godot-jolt
|
||||
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 132 B |
|
After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 6.6 MiB After Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 132 B |
|
|
@ -36,7 +36,7 @@
|
|||
+ [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
|
||||
+ [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
|
||||
- [Foundations I by Azure Studios](https://azurestudios.bandcamp.com/album/foundations-i-24bit), CC-BY 3.0
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 553 KiB After Width: | Height: | Size: 131 B |
|
|
@ -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")
|
||||
|
After Width: | Height: | Size: 9.0 KiB |
|
|
@ -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
|
||||
|
|
@ -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);
|
||||
|
||||
|
|
@ -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"
|
||||
|
|
@ -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")]
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
After Width: | Height: | Size: 10 MiB |
|
|
@ -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
|
||||
|
After Width: | Height: | Size: 10 MiB |
|
|
@ -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
|
||||
|
|
@ -5,13 +5,14 @@ extends Area3D
|
|||
@onready var ui = $UiWrapper/UiSprite/SubViewport.get_child(0)
|
||||
|
||||
var revealed: bool = false:
|
||||
set(on_stage):
|
||||
revealed = on_stage
|
||||
if on_stage:
|
||||
set(reveal):
|
||||
revealed = reveal
|
||||
if reveal:
|
||||
wrapper.show()
|
||||
ui.show()
|
||||
else:
|
||||
ui.hide()
|
||||
await get_tree().create_timer(1).timeout
|
||||
wrapper.hide()
|
||||
|
||||
var has_mouse: bool = false
|
||||
|
|
@ -21,9 +22,10 @@ func _ready():
|
|||
connect("mouse_entered", Callable(self, "_on_mouse_entered"))
|
||||
|
||||
func _on_mouse_entered():
|
||||
input_ray_pickable = false
|
||||
ui.collapsed = false
|
||||
has_mouse = true
|
||||
if not State.focus_locked:
|
||||
input_ray_pickable = false
|
||||
ui.collapsed = false
|
||||
has_mouse = true
|
||||
|
||||
func _on_mouse_exited():
|
||||
print("mouse_exited")
|
||||
|
|
@ -33,6 +35,9 @@ func _on_mouse_exited():
|
|||
|
||||
func reveal():
|
||||
revealed = true
|
||||
await get_tree().create_timer(5).timeout
|
||||
if not has_mouse:
|
||||
revealed = false
|
||||
|
||||
func collapse():
|
||||
_on_mouse_exited()
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
@ -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
|
||||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
[resource]
|
||||
resource_name = "door"
|
||||
cull_mode = 2
|
||||
vertex_color_use_as_albedo = true
|
||||
albedo_color = Color(0.882082, 0.839278, 0.809231, 1)
|
||||
roughness = 0.5
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 6.4 MiB After Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 9.2 MiB After Width: | Height: | Size: 132 B |
BIN
src/base-environments/youth_room/import/textures/Paper003_1K_NormalGL.jpg (Stored with Git LFS)
Normal 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
|
||||
|
Before Width: | Height: | Size: 3.1 MiB After Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 4.3 MiB After Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 16 MiB After Width: | Height: | Size: 133 B |
|
Before Width: | Height: | Size: 18 MiB After Width: | Height: | Size: 133 B |
|
Before Width: | Height: | Size: 10 MiB After Width: | Height: | Size: 133 B |
|
Before Width: | Height: | Size: 298 KiB After Width: | Height: | Size: 131 B |
|
Before Width: | Height: | Size: 153 KiB After Width: | Height: | Size: 131 B |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 539 KiB After Width: | Height: | Size: 131 B |
BIN
src/base-environments/youth_room/import/textures/pattern_237_diffuse.png (Stored with Git LFS)
Normal 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
|
||||
BIN
src/base-environments/youth_room/import/textures/pattern_237_normal.png (Stored with Git LFS)
Normal 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
|
||||
|
Before Width: | Height: | Size: 12 MiB After Width: | Height: | Size: 133 B |
|
Before Width: | Height: | Size: 7.7 MiB After Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 518 KiB After Width: | Height: | Size: 131 B |
BIN
src/base-environments/youth_room/import/textures/wires_albedo.png (Stored with Git LFS)
Normal 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
|
||||
BIN
src/base-environments/youth_room/import/textures/wires_normal.png (Stored with Git LFS)
Normal 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
|
||||
|
|
@ -167,6 +167,38 @@ _subresources={
|
|||
"use_external/enabled": true,
|
||||
"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
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ var current_mode: int = Modes.FREEZE:
|
|||
current_mode = _update_scene(new_mode)
|
||||
|
||||
func start():
|
||||
$logic/PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
|
||||
emit_signal("ini_room")
|
||||
current_mode = Modes.WALKING
|
||||
|
||||
|
|
@ -45,3 +46,4 @@ func _ready():
|
|||
if get_parent() == get_tree().root:
|
||||
get_ready()
|
||||
start()
|
||||
|
||||
|
|
|
|||
|
|
@ -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="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="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="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="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"]
|
||||
size = Vector3(0.711297, 2.53136, 1.74815)
|
||||
|
|
@ -1567,8 +1570,7 @@ func start_soundtrack():
|
|||
|
||||
func play_scene(id: int, repeat = false):
|
||||
get_tree().call_group(\"interactables\", \"collapse\")
|
||||
State.pass_stage_to(self)
|
||||
State.lock_focus = true
|
||||
State.pass_stage_to(self, false, true)
|
||||
is_repeating = repeat
|
||||
Input.mouse_mode = Input.MOUSE_MODE_HIDDEN
|
||||
match id:
|
||||
|
|
@ -1584,26 +1586,21 @@ func play_scene(id: int, repeat = false):
|
|||
func _on_ini_room():
|
||||
pass
|
||||
|
||||
|
||||
func on_childhood_done():
|
||||
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_CHILDHOOD, is_repeating)
|
||||
$childhood.hide()
|
||||
State.lock_focus = is_repeating
|
||||
|
||||
func on_voice_training_done():
|
||||
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_VOICE_TRAINING, is_repeating)
|
||||
$\"Voice Training\".hide()
|
||||
State.lock_focus = is_repeating
|
||||
|
||||
func on_jui_jutsu_done():
|
||||
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_JUI_JUTSU, is_repeating)
|
||||
$jui_jutsu.hide()
|
||||
State.lock_focus = is_repeating
|
||||
|
||||
func on_draeven_done():
|
||||
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_DRAEVEN, is_repeating)
|
||||
$draeven.hide()
|
||||
State.lock_focus = is_repeating
|
||||
queue(\"intro\")
|
||||
|
||||
func scene_finished(_id):
|
||||
|
|
@ -1969,15 +1966,46 @@ func _process(delta):
|
|||
[sub_resource type="ViewportTexture" id="ViewportTexture_hwb6d"]
|
||||
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"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_et8yw")
|
||||
[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("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"]
|
||||
background_mode = 2
|
||||
background_energy_multiplier = 0.2
|
||||
sky = SubResource("Sky_188qv")
|
||||
sky = SubResource("Sky_85fpg")
|
||||
sky_rotation = Vector3(0, 0.352557, 0)
|
||||
ambient_light_source = 3
|
||||
ambient_light_color = Color(1, 1, 1, 1)
|
||||
|
|
@ -2093,12 +2121,28 @@ func _process(delta):
|
|||
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"]
|
||||
script = ExtResource("1_aitp0")
|
||||
|
||||
[node name="logic" type="Node3D" parent="."]
|
||||
|
||||
[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)
|
||||
|
||||
[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"]
|
||||
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
|
||||
|
||||
[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_vertical = 4
|
||||
mouse_filter = 0
|
||||
scroll_vertical = 150
|
||||
scroll_vertical = 30
|
||||
horizontal_scroll_mode = 0
|
||||
vertical_scroll_mode = 3
|
||||
|
||||
|
|
@ -2841,7 +2886,6 @@ texture = SubResource("ViewportTexture_3mgqk")
|
|||
|
||||
[node name="SubViewport" type="SubViewport" parent="logic/Mask-interaction/UiWrapper/UiSprite"]
|
||||
transparent_bg = true
|
||||
size = Vector2i(300, 350)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[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"]
|
||||
transparent_bg = true
|
||||
size = Vector2i(300, 350)
|
||||
size = Vector2i(400, 350)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[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"]
|
||||
transparent_bg = true
|
||||
size = Vector2i(300, 350)
|
||||
size = Vector2i(400, 350)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[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"]
|
||||
transparent_bg = true
|
||||
size = Vector2i(300, 350)
|
||||
size = Vector2i(400, 350)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[node name="Collectable_ui" parent="logic/Draeven-interaction/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")]
|
||||
visible = false
|
||||
scene = 3
|
||||
is_story = true
|
||||
collected = true
|
||||
item_name = "Starlight"
|
||||
content_notes = "Alienation"
|
||||
|
||||
|
|
@ -2997,7 +3042,7 @@ texture = SubResource("ViewportTexture_hdmps")
|
|||
|
||||
[node name="SubViewport" type="SubViewport" parent="logic/Mind Board/UiWrapper/UiSprite"]
|
||||
transparent_bg = true
|
||||
size = Vector2i(300, 350)
|
||||
size = Vector2i(400, 350)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[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
|
||||
|
||||
[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_size = 0.1
|
||||
light_size = 0.2
|
||||
light_specular = 0.1
|
||||
shadow_enabled = true
|
||||
omni_range = 2.17653
|
||||
omni_range = 2.77016
|
||||
omni_attenuation = 0.450626
|
||||
|
||||
[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_energy = 0.3
|
||||
light_size = 0.1
|
||||
|
|
@ -3085,10 +3132,12 @@ omni_range = 2.17653
|
|||
omni_attenuation = 0.450626
|
||||
|
||||
[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_energy = 0.1
|
||||
light_size = 0.05
|
||||
light_size = 0.3
|
||||
light_specular = 0.0
|
||||
shadow_enabled = true
|
||||
omni_range = 2.17653
|
||||
omni_attenuation = 1.41421
|
||||
|
|
@ -3103,10 +3152,11 @@ script = SubResource("GDScript_5ot1o")
|
|||
[node name="lighting aids" type="Node3D" parent="visuals"]
|
||||
|
||||
[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
|
||||
size = Vector3(1.55939, 2.08125, 0.431185)
|
||||
origin_offset = Vector3(0, 0.46875, 0.117676)
|
||||
size = Vector3(1.55939, 2.08125, 0.817277)
|
||||
origin_offset = Vector3(0.0200195, 0.707031, 0.205592)
|
||||
box_projection = true
|
||||
enable_shadows = true
|
||||
cull_mask = 1
|
||||
mesh_lod_threshold = 0.0
|
||||
|
|
@ -3128,10 +3178,9 @@ box_projection = true
|
|||
enable_shadows = true
|
||||
|
||||
[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
|
||||
size = Vector3(2.39921, 1.61006, 2.62172)
|
||||
origin_offset = Vector3(-0.456543, -0.353516, -0.0356445)
|
||||
size = Vector3(1.81269, 1.61006, 2.62172)
|
||||
box_projection = true
|
||||
interior = true
|
||||
enable_shadows = true
|
||||
|
|
@ -3195,6 +3244,7 @@ size = Vector2i(1920, 1080)
|
|||
|
||||
[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)
|
||||
current = true
|
||||
script = SubResource("GDScript_rfgs6")
|
||||
|
||||
[node name="outside" parent="WorldEnvironment/window_glass/SubViewport" instance=ExtResource("32_2vgep")]
|
||||
|
|
@ -3209,9 +3259,9 @@ anchor_bottom = 1.0
|
|||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 1
|
||||
script = SubResource("GDScript_icgq0")
|
||||
|
||||
[node name="Mouse" type="CenterContainer" parent="SceneUI"]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
|
|
@ -3220,7 +3270,6 @@ grow_horizontal = 2
|
|||
grow_vertical = 2
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="SceneUI/Mouse"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
texture = ExtResource("13_lqj71")
|
||||
|
||||
|
|
@ -3239,6 +3288,10 @@ light_specular = 0.0
|
|||
omni_range = 0.457129
|
||||
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/ScenePlayer" method="_on_ini_room"]
|
||||
[connection signal="ini_room" from="." to="visuals/lights/light_animation" method="_on_ini_room"]
|
||||
|
|
|
|||
|
|
@ -16,13 +16,13 @@ bus/2/name = &"sfx"
|
|||
bus/2/solo = false
|
||||
bus/2/mute = 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/3/name = &"music"
|
||||
bus/3/solo = false
|
||||
bus/3/mute = 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/4/name = &"outside-rain"
|
||||
bus/4/solo = false
|
||||
|
|
|
|||
|
|
@ -17,19 +17,20 @@ func _unhandled_input(event):
|
|||
viewport.push_input(event)
|
||||
|
||||
func _on_input_event(_camera: Camera3D, event: InputEvent, pos: Vector3, _normal: Vector3, _shape_idx: int):
|
||||
# Position of the event in Sprite3D local coordinates.
|
||||
var texture_3d_position = sprite.get_global_transform().affine_inverse() * pos
|
||||
#if !is_zero_approx(texture_3d_position.z):
|
||||
# # Discard event because event didn't happen on the side of the Sprite3D.
|
||||
# return
|
||||
# Position of the event relative to the texture.
|
||||
var texture_position: Vector2 = Vector2(texture_3d_position.x, -texture_3d_position.y) / sprite.pixel_size - sprite.get_item_rect().position
|
||||
# Send mouse event.
|
||||
var e: InputEvent = event.duplicate()
|
||||
if e is InputEventMouse:
|
||||
e.set_position(texture_position)
|
||||
e.set_global_position(texture_position)
|
||||
viewport.push_input(e)
|
||||
if not State.focus_locked:
|
||||
# Position of the event in Sprite3D local coordinates.
|
||||
var texture_3d_position = sprite.get_global_transform().affine_inverse() * pos
|
||||
#if !is_zero_approx(texture_3d_position.z):
|
||||
# # Discard event because event didn't happen on the side of the Sprite3D.
|
||||
# return
|
||||
# Position of the event relative to the texture.
|
||||
var texture_position: Vector2 = Vector2(texture_3d_position.x, -texture_3d_position.y) / sprite.pixel_size - sprite.get_item_rect().position
|
||||
# Send mouse event.
|
||||
var e: InputEvent = event.duplicate()
|
||||
if e is InputEventMouse:
|
||||
e.set_position(texture_position)
|
||||
e.set_global_position(texture_position)
|
||||
viewport.push_input(e)
|
||||
|
||||
func _on_button_pressed():
|
||||
print("Button pressed")
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
@ -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"]
|
||||
sky_top_color = Color(0, 0, 1, 1)
|
||||
sky_horizon_color = Color(0.858824, 0.541176, 0.4, 1)
|
||||
sky_curve = 0.54075
|
||||
[sub_resource type="GDScript" id="GDScript_5hy5u"]
|
||||
script/source = "extends Node3D
|
||||
|
||||
[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():
|
||||
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()
|
||||
dof_strength_tween.tween_property(camera_attributes, \"dof_blur_amount\", 0.6, 1)
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
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="."]
|
||||
environment = SubResource("Environment_f0flp")
|
||||
camera_attributes = SubResource("CameraAttributesPractical_2qx32")
|
||||
script = SubResource("GDScript_uqlwy")
|
||||
[sub_resource type="Animation" id="Animation_wjx7h"]
|
||||
resource_name = "test"
|
||||
length = 5.0
|
||||
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="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.987688, -0.156434, 0, 0.156434, 0.987688, 0, -0.058, 0.77)
|
||||
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"]
|
||||
|
|
|
|||
|
|
@ -82,7 +82,6 @@ text = "Welcome to the frame of mind alpha"
|
|||
|
||||
[node name="Label2" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
|
||||
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
|
||||
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.
|
||||
Twokinds is created by Thomas J. Fischbach, who granted us permission to use it in a Creative Commons Project."
|
||||
autowrap_mode = 3
|
||||
justification_flags = 131
|
||||
visible_characters_behavior = 1
|
||||
|
||||
[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"]
|
||||
layout_mode = 2
|
||||
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
|
||||
autowrap_mode = 3
|
||||
visible_characters_behavior = 1
|
||||
|
|
|
|||
|
|
@ -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={}
|
||||
|
|
@ -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.
|
||||
|
|
@ -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={}
|
||||
|
|
@ -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={}
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -11,23 +11,22 @@ enum {NAVIGATE, ASSIGN, DRAG}
|
|||
var focus_stickies:bool = true:
|
||||
set(stickies):
|
||||
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:
|
||||
current_sticky_note_id = current_sticky_note_id
|
||||
else:
|
||||
current_dropzone_id = current_dropzone_id
|
||||
|
||||
focus_stickies = stickies
|
||||
|
||||
var has_stage = false:
|
||||
set(focus):
|
||||
if focus:
|
||||
has_stage = true
|
||||
self.mouse_filter = Control.MOUSE_FILTER_PASS
|
||||
get_tree().call_group("interactables", "collapse")
|
||||
else:
|
||||
has_stage = false
|
||||
self.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||
if is_node_ready():
|
||||
if focus:
|
||||
process_mode = Node.PROCESS_MODE_INHERIT
|
||||
|
|
@ -45,13 +44,13 @@ var base_sticky_note_panel: Panel
|
|||
set(context):
|
||||
if current_context == ASSIGN and !context == ASSIGN:
|
||||
sticky_note_container.get_child(current_sticky_note_id).clear_if_empty()
|
||||
match context:
|
||||
NAVIGATE:
|
||||
_return_sticky_notes_to_panels()
|
||||
DRAG:
|
||||
pass
|
||||
ASSIGN:
|
||||
pass
|
||||
#match context:
|
||||
# NAVIGATE:
|
||||
# _return_sticky_notes_to_panels()
|
||||
# DRAG:
|
||||
# pass
|
||||
# ASSIGN:
|
||||
# pass
|
||||
current_context = context
|
||||
@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
|
||||
else: current_dropzone_id = new_id
|
||||
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)
|
||||
|
||||
elif not focus_stickies:
|
||||
currently_active_node = dropzone.get_child(current_dropzone_id)
|
||||
|
||||
|
|
@ -112,6 +113,7 @@ func _ready():
|
|||
if get_parent() == get_tree().root:
|
||||
populate_board(["c_void", 'c_joy', "p_wet", "p_thomas"])
|
||||
populate_board(["c_fighting", 'c_hit', "p_girly", "p_vent"])
|
||||
mementos_collected = 2
|
||||
|
||||
has_stage = has_stage
|
||||
|
||||
|
|
@ -169,6 +171,7 @@ func handle_mouse_button(to_handle: Area2D, input: InputEvent):
|
|||
if to_handle is StickyNote:
|
||||
if not to_handle.on_board:
|
||||
to_handle.reparent(dropzone)
|
||||
to_handle.on_board = true
|
||||
to_handle.owner = self
|
||||
current_context = DRAG
|
||||
|
||||
|
|
@ -184,7 +187,10 @@ func handle_mouse_button(to_handle: Area2D, input: InputEvent):
|
|||
if area.has_sticky_note_attached():
|
||||
to_handle = area.exchange_sticky_note_with(to_handle)
|
||||
to_handle.reparent(dropzone)
|
||||
to_handle.on_board = true
|
||||
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
|
||||
return
|
||||
else:
|
||||
|
|
@ -192,6 +198,7 @@ func handle_mouse_button(to_handle: Area2D, input: InputEvent):
|
|||
if not sticky_note_container.get_child_count() == 0:
|
||||
sticky_note_container.get_child(current_sticky_note_id).clear_if_empty()
|
||||
current_context = NAVIGATE
|
||||
if is_board_complete(): emit_signal("board_completed")
|
||||
return
|
||||
else:
|
||||
_return_sticky_notes_to_panels()
|
||||
|
|
@ -230,6 +237,7 @@ func is_board_lore() -> bool:
|
|||
|
||||
# Mark area that was hovered over as currently selected
|
||||
func handle_hover(to_handle: Area2D):
|
||||
if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT): return
|
||||
currently_active_node = to_handle
|
||||
|
||||
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():
|
||||
node.reparent(parent)
|
||||
if node is StickyNote:
|
||||
node.on_board = true
|
||||
node.owner = self
|
||||
|
||||
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)
|
||||
current_context = NAVIGATE
|
||||
focus_stickies = false
|
||||
if is_board_complete(): emit_signal("board_completed")
|
||||
else:
|
||||
if !focus_stickies and card.has_sticky_note_attached():
|
||||
currently_active_node = card.remove_sticky_note()
|
||||
|
|
|
|||