generated from krampus/template-godot4
Compare commits
9 Commits
5b0305df96
...
feb0d3eb48
Author | SHA1 | Date |
---|---|---|
Rob Kelly | feb0d3eb48 | |
Rob Kelly | 05f259405b | |
Rob Kelly | 6fad9af2a2 | |
Rob Kelly | 2583f39252 | |
Rob Kelly | 5cce252627 | |
Rob Kelly | af5cd75603 | |
Rob Kelly | af73475c26 | |
Rob Kelly | 384992e935 | |
Rob Kelly | 70c199acd2 |
|
@ -45,6 +45,14 @@ Asset credits
|
||||||
|
|
||||||
*** License: OFL 1.1
|
*** License: OFL 1.1
|
||||||
|
|
||||||
|
** Orbitron
|
||||||
|
|
||||||
|
*** Retrieved from https://fonts.google.com/specimen/Orbitron
|
||||||
|
|
||||||
|
*** Author: Matt McInerney
|
||||||
|
|
||||||
|
*** License: OFL 1.1
|
||||||
|
|
||||||
* Sound
|
* Sound
|
||||||
|
|
||||||
** drive1.wav
|
** drive1.wav
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,7 @@
|
||||||
|
[gd_resource type="FontVariation" load_steps=2 format=3 uid="uid://ehkfcv7lram0"]
|
||||||
|
|
||||||
|
[ext_resource type="FontFile" uid="uid://s4c1kf0rk2mb" path="res://assets/fonts/Geo/Geo-Regular.ttf" id="1_6hjgi"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
base_font = ExtResource("1_6hjgi")
|
||||||
|
variation_embolden = 0.5
|
|
@ -0,0 +1,7 @@
|
||||||
|
[gd_resource type="FontVariation" load_steps=2 format=3 uid="uid://c2olk85hfh4ln"]
|
||||||
|
|
||||||
|
[ext_resource type="FontFile" uid="uid://b6gxwgomstkgu" path="res://assets/fonts/Geo/Geo-Italic.ttf" id="1_l0o26"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
base_font = ExtResource("1_l0o26")
|
||||||
|
variation_embolden = 0.5
|
|
@ -0,0 +1,93 @@
|
||||||
|
Copyright 2018 The Orbitron Project Authors (https://github.com/theleagueof/orbitron), with Reserved Font Name: "Orbitron"
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
https://openfontlicense.org
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"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.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
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 or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any 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 Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
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. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes 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 THE
|
||||||
|
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 OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
Binary file not shown.
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://cbaqlaqdobnux"
|
||||||
|
path="res://.godot/imported/Orbitron-VariableFont_wght.ttf-19ead88ef6e90de37fa6547cf6fb513b.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/fonts/Orbitron/Orbitron-VariableFont_wght.ttf"
|
||||||
|
dest_files=["res://.godot/imported/Orbitron-VariableFont_wght.ttf-19ead88ef6e90de37fa6547cf6fb513b.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
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,7 @@
|
||||||
|
[gd_resource type="FontVariation" load_steps=2 format=3 uid="uid://y3lcfr4ys8d3"]
|
||||||
|
|
||||||
|
[ext_resource type="FontFile" uid="uid://dyx4wcq8wlpbh" path="res://assets/fonts/Orbitron/static/Orbitron-Black.ttf" id="1_sdwod"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
base_font = ExtResource("1_sdwod")
|
||||||
|
variation_transform = Transform2D(1, 0.2, 0, 1, 0, 0)
|
|
@ -0,0 +1,7 @@
|
||||||
|
[gd_resource type="FontVariation" load_steps=2 format=3 uid="uid://cjisjunqauv68"]
|
||||||
|
|
||||||
|
[ext_resource type="FontFile" uid="uid://bmv0pofrw1wh0" path="res://assets/fonts/Orbitron/static/Orbitron-Regular.ttf" id="1_1cs6e"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
base_font = ExtResource("1_1cs6e")
|
||||||
|
variation_transform = Transform2D(1, 0.2, 0, 1, 0, 0)
|
|
@ -0,0 +1,68 @@
|
||||||
|
Orbitron Variable Font
|
||||||
|
======================
|
||||||
|
|
||||||
|
This download contains Orbitron as both a variable font and static fonts.
|
||||||
|
|
||||||
|
Orbitron is a variable font with this axis:
|
||||||
|
wght
|
||||||
|
|
||||||
|
This means all the styles are contained in a single file:
|
||||||
|
Orbitron-VariableFont_wght.ttf
|
||||||
|
|
||||||
|
If your app fully supports variable fonts, you can now pick intermediate styles
|
||||||
|
that aren’t available as static fonts. Not all apps support variable fonts, and
|
||||||
|
in those cases you can use the static font files for Orbitron:
|
||||||
|
static/Orbitron-Regular.ttf
|
||||||
|
static/Orbitron-Medium.ttf
|
||||||
|
static/Orbitron-SemiBold.ttf
|
||||||
|
static/Orbitron-Bold.ttf
|
||||||
|
static/Orbitron-ExtraBold.ttf
|
||||||
|
static/Orbitron-Black.ttf
|
||||||
|
|
||||||
|
Get started
|
||||||
|
-----------
|
||||||
|
|
||||||
|
1. Install the font files you want to use
|
||||||
|
|
||||||
|
2. Use your app's font picker to view the font family and all the
|
||||||
|
available styles
|
||||||
|
|
||||||
|
Learn more about variable fonts
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts
|
||||||
|
https://variablefonts.typenetwork.com
|
||||||
|
https://medium.com/variable-fonts
|
||||||
|
|
||||||
|
In desktop apps
|
||||||
|
|
||||||
|
https://theblog.adobe.com/can-variable-fonts-illustrator-cc
|
||||||
|
https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts
|
||||||
|
|
||||||
|
Online
|
||||||
|
|
||||||
|
https://developers.google.com/fonts/docs/getting_started
|
||||||
|
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
|
||||||
|
https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts
|
||||||
|
|
||||||
|
Installing fonts
|
||||||
|
|
||||||
|
MacOS: https://support.apple.com/en-us/HT201749
|
||||||
|
Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux
|
||||||
|
Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
|
||||||
|
|
||||||
|
Android Apps
|
||||||
|
|
||||||
|
https://developers.google.com/fonts/docs/android
|
||||||
|
https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
Please read the full license text (OFL.txt) to understand the permissions,
|
||||||
|
restrictions and requirements for usage, redistribution, and modification.
|
||||||
|
|
||||||
|
You can use them in your products & projects – print or digital,
|
||||||
|
commercial or otherwise.
|
||||||
|
|
||||||
|
This isn't legal advice, please consider consulting a lawyer and see the full
|
||||||
|
license for all details.
|
Binary file not shown.
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://dyx4wcq8wlpbh"
|
||||||
|
path="res://.godot/imported/Orbitron-Black.ttf-4f56be6116e641811a86edeabcd2d703.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/fonts/Orbitron/static/Orbitron-Black.ttf"
|
||||||
|
dest_files=["res://.godot/imported/Orbitron-Black.ttf-4f56be6116e641811a86edeabcd2d703.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
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.
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://djk8vf63wdnsx"
|
||||||
|
path="res://.godot/imported/Orbitron-Bold.ttf-8b89fbe3c12c453b18cf8303d33da7bc.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/fonts/Orbitron/static/Orbitron-Bold.ttf"
|
||||||
|
dest_files=["res://.godot/imported/Orbitron-Bold.ttf-8b89fbe3c12c453b18cf8303d33da7bc.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
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.
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://dbeni2o18lk3a"
|
||||||
|
path="res://.godot/imported/Orbitron-ExtraBold.ttf-89bec0e872cbcfe16e37e73e9e75d81b.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/fonts/Orbitron/static/Orbitron-ExtraBold.ttf"
|
||||||
|
dest_files=["res://.godot/imported/Orbitron-ExtraBold.ttf-89bec0e872cbcfe16e37e73e9e75d81b.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
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.
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://b4f2gbckqpae4"
|
||||||
|
path="res://.godot/imported/Orbitron-Medium.ttf-d8d4495b34cc31a0e3d103c2a99dad64.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/fonts/Orbitron/static/Orbitron-Medium.ttf"
|
||||||
|
dest_files=["res://.godot/imported/Orbitron-Medium.ttf-d8d4495b34cc31a0e3d103c2a99dad64.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
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.
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://bmv0pofrw1wh0"
|
||||||
|
path="res://.godot/imported/Orbitron-Regular.ttf-2f53598a38b7cf8511acdd2231e8bfe4.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/fonts/Orbitron/static/Orbitron-Regular.ttf"
|
||||||
|
dest_files=["res://.godot/imported/Orbitron-Regular.ttf-2f53598a38b7cf8511acdd2231e8bfe4.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
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.
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://dxegxmpnkyna4"
|
||||||
|
path="res://.godot/imported/Orbitron-SemiBold.ttf-48a2c690838e0199310d9d72e5469267.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/fonts/Orbitron/static/Orbitron-SemiBold.ttf"
|
||||||
|
dest_files=["res://.godot/imported/Orbitron-SemiBold.ttf-48a2c690838e0199310d9d72e5469267.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
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,16 @@
|
||||||
|
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://dpsmjlhjpc7vs"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ckhiq6rfjv63u" path="res://assets/textures/gfolfball/gfolfball.png" id="1_vmujt"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://btntjs7mbdigu" path="res://assets/textures/gfolfball/gfolfball_normal.png" id="2_i1w1d"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
albedo_texture = ExtResource("1_vmujt")
|
||||||
|
albedo_texture_force_srgb = true
|
||||||
|
metallic = 0.27
|
||||||
|
roughness = 0.67
|
||||||
|
normal_enabled = true
|
||||||
|
normal_scale = 0.2
|
||||||
|
normal_texture = ExtResource("2_i1w1d")
|
||||||
|
clearcoat_roughness = 0.0
|
||||||
|
uv1_scale = Vector3(3, 1.5, 3)
|
||||||
|
texture_filter = 4
|
|
@ -0,0 +1,31 @@
|
||||||
|
[gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://drxnue0xsen13"]
|
||||||
|
|
||||||
|
[ext_resource type="Shader" path="res://src/shaders/psx_water.gdshader" id="1_sat73"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://con5a36t6n6sq" path="res://assets/textures/clear_sea_water_2048x2048.png" id="2_iub32"]
|
||||||
|
|
||||||
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_mgjj0"]
|
||||||
|
fractal_type = 2
|
||||||
|
|
||||||
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_0xqld"]
|
||||||
|
in_3d_space = true
|
||||||
|
seamless = true
|
||||||
|
noise = SubResource("FastNoiseLite_mgjj0")
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
render_priority = 0
|
||||||
|
shader = ExtResource("1_sat73")
|
||||||
|
shader_parameter/albedo = Color(0.427451, 0.917647, 1, 1)
|
||||||
|
shader_parameter/scroll_speed1 = Vector2(0.04, 0)
|
||||||
|
shader_parameter/scroll_speed2 = Vector2(-0.02, 0)
|
||||||
|
shader_parameter/blend_factor = 0.5
|
||||||
|
shader_parameter/scale1 = Vector2(128, 128)
|
||||||
|
shader_parameter/scale2 = Vector2(256, 256)
|
||||||
|
shader_parameter/wave_strength = 0.4
|
||||||
|
shader_parameter/wave_scale = 0.02
|
||||||
|
shader_parameter/pixelation_level = 128
|
||||||
|
shader_parameter/FoamSize = 3.0
|
||||||
|
shader_parameter/WaterOpacity = 0.9
|
||||||
|
shader_parameter/FoamGlowIntensity = 0.6
|
||||||
|
shader_parameter/water_texture1 = ExtResource("2_iub32")
|
||||||
|
shader_parameter/water_texture2 = ExtResource("2_iub32")
|
||||||
|
shader_parameter/noise_texture = SubResource("NoiseTexture2D_0xqld")
|
|
@ -135,3 +135,13 @@ BALL_BEACH,"Beach Ball"
|
||||||
BALL_POWER,Powerball
|
BALL_POWER,Powerball
|
||||||
,
|
,
|
||||||
MAP_DEBUG,"Debug Island"
|
MAP_DEBUG,"Debug Island"
|
||||||
|
MAP_ONEILL,"O'Neill Ring"
|
||||||
|
,
|
||||||
|
CHARACTER_DEBUG,"Debug Girl"
|
||||||
|
,
|
||||||
|
,
|
||||||
|
MSG_ABOUT_SINGLE_PLAYER,"Go GFOLF yourself!"
|
||||||
|
MSG_ABOUT_MULTI_PLAYER,"Go GFOLF your friends, too!"
|
||||||
|
MSG_ABOUT_SETTINGS,"View and change gameplay, accessibility, graphics, sound, and input options."
|
||||||
|
MSG_ABOUT_CREDITS,"Meet the people who made the game!"
|
||||||
|
MSG_ABOUT_QUIT,"Exit the game. See you next mission!"
|
||||||
|
|
|
|
@ -21,7 +21,7 @@ compress/lossy_quality=0.7
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=true
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
@ -31,4 +31,4 @@ process/normal_map_invert_y=false
|
||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=0
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
[gd_scene load_steps=68 format=3 uid="uid://bm2o3mex10v11"]
|
[gd_scene load_steps=64 format=3 uid="uid://bm2o3mex10v11"]
|
||||||
|
|
||||||
[ext_resource type="Terrain3DAssets" uid="uid://cwl34gstabgrx" path="res://levels/debug_level/terrain_assets.res" id="1_5smdk"]
|
[ext_resource type="Terrain3DAssets" uid="uid://cwl34gstabgrx" path="res://levels/debug_level/terrain_assets.res" id="1_5smdk"]
|
||||||
[ext_resource type="Shader" path="res://src/shaders/psx_water.gdshader" id="6_0efu4"]
|
[ext_resource type="Material" uid="uid://drxnue0xsen13" path="res://assets/materials/tropical_water.tres" id="4_bwkbv"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c47ern0l2d50r" path="res://assets/vista_2.png" id="6_ectru"]
|
[ext_resource type="Texture2D" uid="uid://c47ern0l2d50r" path="res://assets/vista_2.png" id="6_ectru"]
|
||||||
[ext_resource type="Texture2D" uid="uid://con5a36t6n6sq" path="res://assets/textures/clear_sea_water_2048x2048.png" id="7_t86h2"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://cupmlp44bsfrj" path="res://src/items/extra_ball/beach_ball_item.tscn" id="8_3jmdx"]
|
[ext_resource type="PackedScene" uid="uid://cupmlp44bsfrj" path="res://src/items/extra_ball/beach_ball_item.tscn" id="8_3jmdx"]
|
||||||
[ext_resource type="Script" path="res://src/items/item_spawner.gd" id="8_5kaye"]
|
[ext_resource type="Script" path="res://src/items/item_spawner.gd" id="8_5kaye"]
|
||||||
[ext_resource type="Script" path="res://src/world/ball_zone/ball_zone.gd" id="9_jwlau"]
|
[ext_resource type="Script" path="res://src/world/ball_zone/ball_zone.gd" id="9_jwlau"]
|
||||||
|
@ -68,12 +67,12 @@ auto_shader = true
|
||||||
[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_h8tes"]
|
[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_h8tes"]
|
||||||
panorama = ExtResource("6_ectru")
|
panorama = ExtResource("6_ectru")
|
||||||
|
|
||||||
[sub_resource type="Sky" id="Sky_2xshh"]
|
[sub_resource type="Sky" id="Sky_3yoab"]
|
||||||
sky_material = SubResource("PanoramaSkyMaterial_h8tes")
|
sky_material = SubResource("PanoramaSkyMaterial_h8tes")
|
||||||
|
|
||||||
[sub_resource type="Environment" id="Environment_k6wwx"]
|
[sub_resource type="Environment" id="Environment_k6wwx"]
|
||||||
background_mode = 2
|
background_mode = 2
|
||||||
sky = SubResource("Sky_2xshh")
|
sky = SubResource("Sky_3yoab")
|
||||||
ambient_light_source = 2
|
ambient_light_source = 2
|
||||||
ambient_light_color = Color(0.78, 0.78, 0.78, 1)
|
ambient_light_color = Color(0.78, 0.78, 0.78, 1)
|
||||||
ssao_enabled = true
|
ssao_enabled = true
|
||||||
|
@ -93,35 +92,8 @@ dof_blur_near_enabled = true
|
||||||
dof_blur_near_distance = 1.0
|
dof_blur_near_distance = 1.0
|
||||||
dof_blur_near_transition = 0.5
|
dof_blur_near_transition = 0.5
|
||||||
|
|
||||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_mgjj0"]
|
|
||||||
fractal_type = 2
|
|
||||||
|
|
||||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_0xqld"]
|
|
||||||
in_3d_space = true
|
|
||||||
seamless = true
|
|
||||||
noise = SubResource("FastNoiseLite_mgjj0")
|
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_dkdxa"]
|
|
||||||
render_priority = 0
|
|
||||||
shader = ExtResource("6_0efu4")
|
|
||||||
shader_parameter/albedo = Color(0.427451, 0.917647, 1, 1)
|
|
||||||
shader_parameter/scroll_speed1 = Vector2(0.04, 0)
|
|
||||||
shader_parameter/scroll_speed2 = Vector2(-0.02, 0)
|
|
||||||
shader_parameter/blend_factor = 0.5
|
|
||||||
shader_parameter/scale1 = Vector2(128, 128)
|
|
||||||
shader_parameter/scale2 = Vector2(256, 256)
|
|
||||||
shader_parameter/wave_strength = 0.4
|
|
||||||
shader_parameter/wave_scale = 0.02
|
|
||||||
shader_parameter/pixelation_level = 128
|
|
||||||
shader_parameter/FoamSize = 3.0
|
|
||||||
shader_parameter/WaterOpacity = 0.9
|
|
||||||
shader_parameter/FoamGlowIntensity = 0.6
|
|
||||||
shader_parameter/water_texture1 = ExtResource("7_t86h2")
|
|
||||||
shader_parameter/water_texture2 = ExtResource("7_t86h2")
|
|
||||||
shader_parameter/noise_texture = SubResource("NoiseTexture2D_0xqld")
|
|
||||||
|
|
||||||
[sub_resource type="PlaneMesh" id="PlaneMesh_2ywhk"]
|
[sub_resource type="PlaneMesh" id="PlaneMesh_2ywhk"]
|
||||||
material = SubResource("ShaderMaterial_dkdxa")
|
material = ExtResource("4_bwkbv")
|
||||||
size = Vector2(16384, 16384)
|
size = Vector2(16384, 16384)
|
||||||
subdivide_width = 1024
|
subdivide_width = 1024
|
||||||
subdivide_depth = 1024
|
subdivide_depth = 1024
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,450 @@
|
||||||
|
{
|
||||||
|
"asset":{
|
||||||
|
"generator":"Khronos glTF Blender I/O v4.2.60",
|
||||||
|
"version":"2.0"
|
||||||
|
},
|
||||||
|
"scene":0,
|
||||||
|
"scenes":[
|
||||||
|
{
|
||||||
|
"name":"Scene",
|
||||||
|
"nodes":[
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nodes":[
|
||||||
|
{
|
||||||
|
"mesh":0,
|
||||||
|
"name":"Toroid"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mesh":1,
|
||||||
|
"name":"Water"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mesh":2,
|
||||||
|
"name":"GravityField"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"materials":[
|
||||||
|
{
|
||||||
|
"doubleSided":true,
|
||||||
|
"name":"Grass",
|
||||||
|
"pbrMetallicRoughness":{
|
||||||
|
"baseColorFactor":[
|
||||||
|
0.3161464333534241,
|
||||||
|
0.8002588152885437,
|
||||||
|
0.2223183959722519,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"metallicFactor":0,
|
||||||
|
"roughnessFactor":0.5
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"doubleSided":true,
|
||||||
|
"name":"Sand",
|
||||||
|
"pbrMetallicRoughness":{
|
||||||
|
"baseColorFactor":[
|
||||||
|
0.8006381988525391,
|
||||||
|
0.7524848580360413,
|
||||||
|
0.36821886897087097,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"metallicFactor":0,
|
||||||
|
"roughnessFactor":0.5
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"doubleSided":true,
|
||||||
|
"name":"Water",
|
||||||
|
"pbrMetallicRoughness":{
|
||||||
|
"baseColorFactor":[
|
||||||
|
0.028725162148475647,
|
||||||
|
0.3729885220527649,
|
||||||
|
0.8004578351974487,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"metallicFactor":0,
|
||||||
|
"roughnessFactor":0.5
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"doubleSided":true,
|
||||||
|
"name":"Unused",
|
||||||
|
"pbrMetallicRoughness":{
|
||||||
|
"baseColorFactor":[
|
||||||
|
0.7795374393463135,
|
||||||
|
0,
|
||||||
|
0.8001965880393982,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"metallicFactor":0,
|
||||||
|
"roughnessFactor":0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meshes":[
|
||||||
|
{
|
||||||
|
"name":"Sphere",
|
||||||
|
"primitives":[
|
||||||
|
{
|
||||||
|
"attributes":{
|
||||||
|
"POSITION":0,
|
||||||
|
"NORMAL":1,
|
||||||
|
"TEXCOORD_0":2
|
||||||
|
},
|
||||||
|
"indices":3,
|
||||||
|
"material":0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"attributes":{
|
||||||
|
"POSITION":4,
|
||||||
|
"NORMAL":5,
|
||||||
|
"TEXCOORD_0":6
|
||||||
|
},
|
||||||
|
"indices":7,
|
||||||
|
"material":1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"Sphere.001",
|
||||||
|
"primitives":[
|
||||||
|
{
|
||||||
|
"attributes":{
|
||||||
|
"POSITION":8,
|
||||||
|
"NORMAL":9,
|
||||||
|
"TEXCOORD_0":10
|
||||||
|
},
|
||||||
|
"indices":11,
|
||||||
|
"material":2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"attributes":{
|
||||||
|
"POSITION":12,
|
||||||
|
"NORMAL":13,
|
||||||
|
"TEXCOORD_0":14
|
||||||
|
},
|
||||||
|
"indices":15,
|
||||||
|
"material":3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"GravityField",
|
||||||
|
"primitives":[
|
||||||
|
{
|
||||||
|
"attributes":{
|
||||||
|
"POSITION":16,
|
||||||
|
"NORMAL":17,
|
||||||
|
"TEXCOORD_0":18
|
||||||
|
},
|
||||||
|
"indices":19
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accessors":[
|
||||||
|
{
|
||||||
|
"bufferView":0,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":10240,
|
||||||
|
"max":[
|
||||||
|
79.99998474121094,
|
||||||
|
37.71173858642578,
|
||||||
|
79.99996948242188
|
||||||
|
],
|
||||||
|
"min":[
|
||||||
|
-79.99996185302734,
|
||||||
|
-37.71173858642578,
|
||||||
|
-80
|
||||||
|
],
|
||||||
|
"type":"VEC3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":1,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":10240,
|
||||||
|
"type":"VEC3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":2,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":10240,
|
||||||
|
"type":"VEC2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":3,
|
||||||
|
"componentType":5123,
|
||||||
|
"count":15360,
|
||||||
|
"type":"SCALAR"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":4,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":1677,
|
||||||
|
"max":[
|
||||||
|
82.53833770751953,
|
||||||
|
37.79914474487305,
|
||||||
|
82.53833770751953
|
||||||
|
],
|
||||||
|
"min":[
|
||||||
|
-82.53833770751953,
|
||||||
|
-37.79914474487305,
|
||||||
|
-82.53833770751953
|
||||||
|
],
|
||||||
|
"type":"VEC3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":5,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":1677,
|
||||||
|
"type":"VEC3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":6,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":1677,
|
||||||
|
"type":"VEC2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":7,
|
||||||
|
"componentType":5123,
|
||||||
|
"count":7680,
|
||||||
|
"type":"SCALAR"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":8,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":2064,
|
||||||
|
"max":[
|
||||||
|
87.81309509277344,
|
||||||
|
32.626365661621094,
|
||||||
|
87.81385040283203
|
||||||
|
],
|
||||||
|
"min":[
|
||||||
|
-87.81309509277344,
|
||||||
|
-32.626373291015625,
|
||||||
|
-87.81383514404297
|
||||||
|
],
|
||||||
|
"type":"VEC3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":9,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":2064,
|
||||||
|
"type":"VEC3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":10,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":2064,
|
||||||
|
"type":"VEC2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":11,
|
||||||
|
"componentType":5123,
|
||||||
|
"count":11520,
|
||||||
|
"type":"SCALAR"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":12,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":774,
|
||||||
|
"max":[
|
||||||
|
82.04900360107422,
|
||||||
|
32.626365661621094,
|
||||||
|
82.04967498779297
|
||||||
|
],
|
||||||
|
"min":[
|
||||||
|
-82.04901885986328,
|
||||||
|
-32.626373291015625,
|
||||||
|
-82.0496597290039
|
||||||
|
],
|
||||||
|
"type":"VEC3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":13,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":774,
|
||||||
|
"type":"VEC3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":14,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":774,
|
||||||
|
"type":"VEC2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":15,
|
||||||
|
"componentType":5123,
|
||||||
|
"count":3072,
|
||||||
|
"type":"SCALAR"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":16,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":10496,
|
||||||
|
"max":[
|
||||||
|
79.99998474121094,
|
||||||
|
37.71173858642578,
|
||||||
|
79.99996948242188
|
||||||
|
],
|
||||||
|
"min":[
|
||||||
|
-79.99996185302734,
|
||||||
|
-37.71173858642578,
|
||||||
|
-80
|
||||||
|
],
|
||||||
|
"type":"VEC3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":17,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":10496,
|
||||||
|
"type":"VEC3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":18,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":10496,
|
||||||
|
"type":"VEC2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":19,
|
||||||
|
"componentType":5123,
|
||||||
|
"count":16116,
|
||||||
|
"type":"SCALAR"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"bufferViews":[
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":122880,
|
||||||
|
"byteOffset":0,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":122880,
|
||||||
|
"byteOffset":122880,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":81920,
|
||||||
|
"byteOffset":245760,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":30720,
|
||||||
|
"byteOffset":327680,
|
||||||
|
"target":34963
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":20124,
|
||||||
|
"byteOffset":358400,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":20124,
|
||||||
|
"byteOffset":378524,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":13416,
|
||||||
|
"byteOffset":398648,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":15360,
|
||||||
|
"byteOffset":412064,
|
||||||
|
"target":34963
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":24768,
|
||||||
|
"byteOffset":427424,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":24768,
|
||||||
|
"byteOffset":452192,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":16512,
|
||||||
|
"byteOffset":476960,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":23040,
|
||||||
|
"byteOffset":493472,
|
||||||
|
"target":34963
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":9288,
|
||||||
|
"byteOffset":516512,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":9288,
|
||||||
|
"byteOffset":525800,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":6192,
|
||||||
|
"byteOffset":535088,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":6144,
|
||||||
|
"byteOffset":541280,
|
||||||
|
"target":34963
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":125952,
|
||||||
|
"byteOffset":547424,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":125952,
|
||||||
|
"byteOffset":673376,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":83968,
|
||||||
|
"byteOffset":799328,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":32232,
|
||||||
|
"byteOffset":883296,
|
||||||
|
"target":34963
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"buffers":[
|
||||||
|
{
|
||||||
|
"byteLength":915528,
|
||||||
|
"uri":"geometry.bin"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://df0kdle8ntguo"
|
||||||
|
path="res://.godot/imported/geometry.gltf-874d08c9d8ed47bf6c3fe03bb6cbd333.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://levels/oneill/geometry.gltf"
|
||||||
|
dest_files=["res://.godot/imported/geometry.gltf-874d08c9d8ed47bf6c3fe03bb6cbd333.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
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
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
_subresources={
|
||||||
|
"materials": {
|
||||||
|
"Grass": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/path": "res://levels/oneill/materials/grass_green.tres"
|
||||||
|
},
|
||||||
|
"Sand": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/path": "res://levels/oneill/materials/sand.tres"
|
||||||
|
},
|
||||||
|
"Water": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/path": "res://levels/oneill/materials/water.tres"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gltf/naming_version=1
|
||||||
|
gltf/embedded_image_handling=1
|
|
@ -0,0 +1,8 @@
|
||||||
|
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://d3lgbjycfpbuj"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" path="res://assets/textures/grass_green/grass_green_albedo.dds" id="1_fcjn2"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
albedo_texture = ExtResource("1_fcjn2")
|
||||||
|
uv1_scale = Vector3(8, 4, 8)
|
||||||
|
texture_filter = 4
|
|
@ -0,0 +1,8 @@
|
||||||
|
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://d16vojvxfn2c5"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" path="res://assets/textures/sand_trap/sand_trap_albedo.dds" id="1_gp4sx"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
albedo_texture = ExtResource("1_gp4sx")
|
||||||
|
uv1_scale = Vector3(16, 8, 8)
|
||||||
|
texture_filter = 4
|
|
@ -0,0 +1,31 @@
|
||||||
|
[gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://dcfr31mu17yat"]
|
||||||
|
|
||||||
|
[ext_resource type="Shader" path="res://src/shaders/psx_water.gdshader" id="1_sxfaq"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://con5a36t6n6sq" path="res://assets/textures/clear_sea_water_2048x2048.png" id="2_3g5s1"]
|
||||||
|
|
||||||
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_mgjj0"]
|
||||||
|
fractal_type = 2
|
||||||
|
|
||||||
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_0xqld"]
|
||||||
|
in_3d_space = true
|
||||||
|
seamless = true
|
||||||
|
noise = SubResource("FastNoiseLite_mgjj0")
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
render_priority = 0
|
||||||
|
shader = ExtResource("1_sxfaq")
|
||||||
|
shader_parameter/albedo = Color(0.427451, 0.917647, 1, 1)
|
||||||
|
shader_parameter/scroll_speed1 = Vector2(0.04, 0)
|
||||||
|
shader_parameter/scroll_speed2 = Vector2(-0.02, 0)
|
||||||
|
shader_parameter/blend_factor = 0.5
|
||||||
|
shader_parameter/scale1 = Vector2(10, 10)
|
||||||
|
shader_parameter/scale2 = Vector2(30, 30)
|
||||||
|
shader_parameter/wave_strength = 0.4
|
||||||
|
shader_parameter/wave_scale = 0.02
|
||||||
|
shader_parameter/pixelation_level = 128
|
||||||
|
shader_parameter/FoamSize = 1.0
|
||||||
|
shader_parameter/WaterOpacity = 0.9
|
||||||
|
shader_parameter/FoamGlowIntensity = 0.6
|
||||||
|
shader_parameter/water_texture1 = ExtResource("2_3g5s1")
|
||||||
|
shader_parameter/water_texture2 = ExtResource("2_3g5s1")
|
||||||
|
shader_parameter/noise_texture = SubResource("NoiseTexture2D_0xqld")
|
|
@ -0,0 +1,9 @@
|
||||||
|
[gd_resource type="Resource" script_class="Level" load_steps=3 format=3 uid="uid://cfsy1nlfo4inx"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://x2bqqlrnno28" path="res://levels/oneill/oneill.tscn" id="1_431yv"]
|
||||||
|
[ext_resource type="Script" path="res://src/world/level/level.gd" id="2_fnj1e"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("2_fnj1e")
|
||||||
|
scene = ExtResource("1_431yv")
|
||||||
|
level_name = "MAP_ONEILL"
|
File diff suppressed because one or more lines are too long
|
@ -12,6 +12,7 @@ config_version=5
|
||||||
|
|
||||||
config/name="GFOLF 2"
|
config/name="GFOLF 2"
|
||||||
config/description="GFOLF: Combat Golf Action"
|
config/description="GFOLF: Combat Golf Action"
|
||||||
|
config/version="0.0.0"
|
||||||
run/main_scene="res://src/game/game.tscn"
|
run/main_scene="res://src/game/game.tscn"
|
||||||
config/project_settings_override="user://settings.godot"
|
config/project_settings_override="user://settings.godot"
|
||||||
config/features=PackedStringArray("4.3", "Forward Plus")
|
config/features=PackedStringArray("4.3", "Forward Plus")
|
||||||
|
|
|
@ -6,4 +6,4 @@
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_rx8x8")
|
script = ExtResource("2_rx8x8")
|
||||||
controller_scene = ExtResource("1_m8n4f")
|
controller_scene = ExtResource("1_m8n4f")
|
||||||
name = "Debug Girl"
|
name = "CHARACTER_DEBUG"
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
[gd_scene load_steps=24 format=3 uid="uid://dfttci386ohip"]
|
[gd_scene load_steps=22 format=3 uid="uid://dfttci386ohip"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/equipment/balls/physics_ball/game_ball.gd" id="1_iwh2u"]
|
[ext_resource type="Script" path="res://src/equipment/balls/physics_ball/game_ball.gd" id="1_iwh2u"]
|
||||||
[ext_resource type="PhysicsMaterial" uid="uid://3bih72l068ic" path="res://src/equipment/balls/physics_ball/normal_physics.tres" id="1_l23pw"]
|
[ext_resource type="PhysicsMaterial" uid="uid://3bih72l068ic" path="res://src/equipment/balls/physics_ball/normal_physics.tres" id="1_l23pw"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ckhiq6rfjv63u" path="res://assets/textures/gfolfball/gfolfball.png" id="1_y3q5j"]
|
[ext_resource type="Material" uid="uid://dpsmjlhjpc7vs" path="res://assets/materials/basic_ball_material.tres" id="3_rc7m1"]
|
||||||
[ext_resource type="Texture2D" uid="uid://btntjs7mbdigu" path="res://assets/textures/gfolfball/gfolfball_normal.png" id="2_mx7l6"]
|
|
||||||
[ext_resource type="Script" path="res://src/equipment/balls/physics_ball/ball_sfx.gd" id="5_bhshl"]
|
[ext_resource type="Script" path="res://src/equipment/balls/physics_ball/ball_sfx.gd" id="5_bhshl"]
|
||||||
[ext_resource type="AudioStream" uid="uid://cayyndwmxua5x" path="res://assets/sound/sfx/ball/grass2.wav" id="7_l22cv"]
|
[ext_resource type="AudioStream" uid="uid://cayyndwmxua5x" path="res://assets/sound/sfx/ball/grass2.wav" id="7_l22cv"]
|
||||||
[ext_resource type="AudioStream" uid="uid://orisjdcj3mes" path="res://assets/sound/sfx/ball/concrete3.wav" id="7_t2ak2"]
|
[ext_resource type="AudioStream" uid="uid://orisjdcj3mes" path="res://assets/sound/sfx/ball/concrete3.wav" id="7_t2ak2"]
|
||||||
|
@ -14,20 +13,8 @@
|
||||||
[ext_resource type="Script" path="res://src/equipment/balls/physics_ball/ball_particle_effects.gd" id="12_7krl6"]
|
[ext_resource type="Script" path="res://src/equipment/balls/physics_ball/ball_particle_effects.gd" id="12_7krl6"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c47bkx508biqr" path="res://assets/sprites/particles/plasma.png" id="12_guipt"]
|
[ext_resource type="Texture2D" uid="uid://c47bkx508biqr" path="res://assets/sprites/particles/plasma.png" id="12_guipt"]
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_s3hrj"]
|
|
||||||
albedo_texture = ExtResource("1_y3q5j")
|
|
||||||
albedo_texture_force_srgb = true
|
|
||||||
metallic = 0.27
|
|
||||||
roughness = 0.67
|
|
||||||
normal_enabled = true
|
|
||||||
normal_scale = 0.2
|
|
||||||
normal_texture = ExtResource("2_mx7l6")
|
|
||||||
clearcoat_roughness = 0.0
|
|
||||||
uv1_scale = Vector3(3, 1.5, 3)
|
|
||||||
texture_filter = 4
|
|
||||||
|
|
||||||
[sub_resource type="SphereMesh" id="SphereMesh_y0d13"]
|
[sub_resource type="SphereMesh" id="SphereMesh_y0d13"]
|
||||||
material = SubResource("StandardMaterial3D_s3hrj")
|
material = ExtResource("3_rc7m1")
|
||||||
radius = 0.05
|
radius = 0.05
|
||||||
height = 0.1
|
height = 0.1
|
||||||
radial_segments = 6
|
radial_segments = 6
|
||||||
|
@ -155,7 +142,6 @@ shape = SubResource("SphereShape3D_0hvq6")
|
||||||
|
|
||||||
[node name="DebugDraw" type="Control" parent="."]
|
[node name="DebugDraw" type="Control" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
|
|
@ -6,6 +6,7 @@ class_name Game extends Node
|
||||||
var _loading_resources := {}
|
var _loading_resources := {}
|
||||||
|
|
||||||
@onready var viewport: GameViewportContainer = %ViewportContainer
|
@onready var viewport: GameViewportContainer = %ViewportContainer
|
||||||
|
@onready var sfx: GameSFX = %SFX
|
||||||
|
|
||||||
@onready var content: Node = %Content
|
@onready var content: Node = %Content
|
||||||
@onready var loader_transition: AnimationPlayer = %LoaderTransition
|
@onready var loader_transition: AnimationPlayer = %LoaderTransition
|
||||||
|
@ -57,28 +58,26 @@ func _ready() -> void:
|
||||||
##
|
##
|
||||||
## The loading screen will be shown until the scene is loaded.
|
## The loading screen will be shown until the scene is loaded.
|
||||||
func queue_scene(path: String) -> Promise:
|
func queue_scene(path: String) -> Promise:
|
||||||
if not loading_screen.visible:
|
return queue_load(path, ScenePromise.new(), "PackedScene").finally(_finish_scene_load)
|
||||||
loading_screen.show()
|
|
||||||
loading_screen.modulate = Color.WHITE
|
|
||||||
|
|
||||||
for child: Node in content.get_children():
|
|
||||||
child.queue_free()
|
|
||||||
|
|
||||||
return queue_load(path, ScenePromise.new()).finally(_finish_scene_load)
|
|
||||||
|
|
||||||
|
|
||||||
## Queue a resource to be loaded in the background.
|
## Queue a resource to be loaded in the background.
|
||||||
##
|
##
|
||||||
## Returns a `Promise` which can be used to attach callbacks
|
## Returns a `Promise` which can be used to attach callbacks
|
||||||
## which will be called with the resource after it is loaded.
|
## which will be called with the resource after it is loaded.
|
||||||
func queue_load(path: String, promise: Promise = null) -> Promise:
|
func queue_load(path: String, promise: Promise = null, type_hint: String = "") -> Promise:
|
||||||
if not promise:
|
if not promise:
|
||||||
promise = Promise.new()
|
promise = Promise.new()
|
||||||
_loading_resources[path] = promise
|
_loading_resources[path] = promise
|
||||||
ResourceLoader.load_threaded_request(path)
|
ResourceLoader.load_threaded_request(path, type_hint)
|
||||||
return promise
|
return promise
|
||||||
|
|
||||||
|
|
||||||
|
func _unload_content() -> void:
|
||||||
|
for child: Node in content.get_children():
|
||||||
|
child.queue_free()
|
||||||
|
|
||||||
|
|
||||||
func _finish_scene_load(instance: Node) -> void:
|
func _finish_scene_load(instance: Node) -> void:
|
||||||
content.add_child(instance)
|
content.add_child(instance)
|
||||||
instance.reparent(content)
|
instance.reparent(content)
|
||||||
|
@ -88,6 +87,9 @@ func _process(_delta: float) -> void:
|
||||||
if _loading_resources and not loading_screen.visible:
|
if _loading_resources and not loading_screen.visible:
|
||||||
loader_transition.play("fade_in")
|
loader_transition.play("fade_in")
|
||||||
|
|
||||||
|
if loader_transition.is_playing():
|
||||||
|
return
|
||||||
|
|
||||||
for key: String in _loading_resources.keys():
|
for key: String in _loading_resources.keys():
|
||||||
match ResourceLoader.load_threaded_get_status(key):
|
match ResourceLoader.load_threaded_get_status(key):
|
||||||
ResourceLoader.THREAD_LOAD_LOADED:
|
ResourceLoader.THREAD_LOAD_LOADED:
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
[gd_scene load_steps=10 format=3 uid="uid://cefit4bc8akbb"]
|
[gd_scene load_steps=13 format=3 uid="uid://cefit4bc8akbb"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/game/game.gd" id="1_4qa87"]
|
[ext_resource type="Script" path="res://src/game/game.gd" id="1_4qa87"]
|
||||||
[ext_resource type="FontFile" uid="uid://dsa0oh7c0h4pu" path="res://assets/fonts/Racing_Sans_One/RacingSansOne-Regular.ttf" id="2_y3adf"]
|
[ext_resource type="FontFile" uid="uid://dsa0oh7c0h4pu" path="res://assets/fonts/Racing_Sans_One/RacingSansOne-Regular.ttf" id="2_y3adf"]
|
||||||
[ext_resource type="Script" path="res://src/ui/decorations/rumbler.gd" id="3_3vfdb"]
|
[ext_resource type="Script" path="res://src/ui/decorations/rumbler.gd" id="3_3vfdb"]
|
||||||
[ext_resource type="Script" path="res://src/ui/game_viewport_container.gd" id="3_rmm5i"]
|
[ext_resource type="Script" path="res://src/ui/game_viewport_container.gd" id="3_rmm5i"]
|
||||||
[ext_resource type="Script" path="res://src/game/game_viewport.gd" id="5_v2qv5"]
|
[ext_resource type="Script" path="res://src/game/game_viewport.gd" id="5_v2qv5"]
|
||||||
|
[ext_resource type="Script" path="res://src/util/debug_version_info.gd" id="6_42bd1"]
|
||||||
|
[ext_resource type="Script" path="res://src/game/sfx.gd" id="7_xpf8p"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://8uynlpios7u1" path="res://assets/sound/sfx/ui/ecofuture2.wav" id="8_ab8py"]
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_c3dlb"]
|
[sub_resource type="Animation" id="Animation_c3dlb"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
|
@ -35,7 +38,7 @@ tracks/1/keys = {
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_2c1ud"]
|
[sub_resource type="Animation" id="Animation_2c1ud"]
|
||||||
resource_name = "fade_in"
|
resource_name = "fade_in"
|
||||||
length = 0.4
|
length = 0.2
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
|
@ -55,11 +58,25 @@ tracks/1/path = NodePath(".:modulate")
|
||||||
tracks/1/interp = 2
|
tracks/1/interp = 2
|
||||||
tracks/1/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
"times": PackedFloat32Array(0, 0.4),
|
"times": PackedFloat32Array(0, 0.2),
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||||
}
|
}
|
||||||
|
tracks/2/type = "method"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("%RootControl/..")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0.2),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"_unload_content"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_xbqy2"]
|
[sub_resource type="Animation" id="Animation_xbqy2"]
|
||||||
resource_name = "fade_out"
|
resource_name = "fade_out"
|
||||||
|
@ -99,6 +116,7 @@ _data = {
|
||||||
[node name="Game" type="Node" groups=["GameGroup"]]
|
[node name="Game" type="Node" groups=["GameGroup"]]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
script = ExtResource("1_4qa87")
|
script = ExtResource("1_4qa87")
|
||||||
|
start_scene = "res://src/world/world.tscn"
|
||||||
|
|
||||||
[node name="RootControl" type="Control" parent="."]
|
[node name="RootControl" type="Control" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
@ -111,6 +129,7 @@ grow_vertical = 2
|
||||||
|
|
||||||
[node name="LoadingScreen" type="Control" parent="RootControl"]
|
[node name="LoadingScreen" type="Control" parent="RootControl"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
process_mode = 3
|
||||||
z_index = 128
|
z_index = 128
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
|
@ -161,6 +180,47 @@ libraries = {
|
||||||
"": SubResource("AnimationLibrary_1s0w0")
|
"": SubResource("AnimationLibrary_1s0w0")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[node name="DebugOverlay" type="Control" parent="RootControl"]
|
||||||
|
z_index = 129
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="RootControl/DebugOverlay"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
theme_override_constants/margin_left = 16
|
||||||
|
theme_override_constants/margin_top = 16
|
||||||
|
theme_override_constants/margin_right = 16
|
||||||
|
theme_override_constants/margin_bottom = 16
|
||||||
|
|
||||||
|
[node name="BuildInfo" type="HBoxContainer" parent="RootControl/DebugOverlay/MarginContainer"]
|
||||||
|
modulate = Color(1, 1, 1, 0.392157)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 0
|
||||||
|
size_flags_vertical = 0
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="RootControl/DebugOverlay/MarginContainer/BuildInfo"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_type_variation = &"DebugText"
|
||||||
|
text = "PREVIEW BUILD -"
|
||||||
|
|
||||||
|
[node name="DebugVersionInfo" type="Label" parent="RootControl/DebugOverlay/MarginContainer/BuildInfo"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
theme_type_variation = &"DebugText"
|
||||||
|
text = "0.0.0"
|
||||||
|
script = ExtResource("6_42bd1")
|
||||||
|
|
||||||
[node name="Rumbler" type="Control" parent="RootControl"]
|
[node name="Rumbler" type="Control" parent="RootControl"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
@ -196,3 +256,12 @@ script = ExtResource("5_v2qv5")
|
||||||
[node name="Content" type="Node" parent="RootControl/Rumbler/ViewportContainer/Viewport"]
|
[node name="Content" type="Node" parent="RootControl/Rumbler/ViewportContainer/Viewport"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
process_mode = 1
|
process_mode = 1
|
||||||
|
|
||||||
|
[node name="SFX" type="Node" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
script = ExtResource("7_xpf8p")
|
||||||
|
|
||||||
|
[node name="Chime" type="AudioStreamPlayer" parent="SFX"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
stream = ExtResource("8_ab8py")
|
||||||
|
bus = &"SFX"
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
class_name GameSettingsType extends Node
|
class_name GameSettingsType extends Node
|
||||||
## Container for project settings, for quick runtime access.
|
## Container for project settings, for quick runtime access.
|
||||||
|
|
||||||
|
var version: String
|
||||||
|
|
||||||
var settings_file: String
|
var settings_file: String
|
||||||
var audio_bus_file: String
|
var audio_bus_file: String
|
||||||
|
|
||||||
|
@ -27,6 +29,8 @@ func _init() -> void:
|
||||||
|
|
||||||
|
|
||||||
func _read_settings() -> void:
|
func _read_settings() -> void:
|
||||||
|
version = ProjectSettings.get_setting("application/config/version")
|
||||||
|
|
||||||
settings_file = ProjectSettings.get_setting("application/config/project_settings_override")
|
settings_file = ProjectSettings.get_setting("application/config/project_settings_override")
|
||||||
audio_bus_file = ProjectSettings.get_setting("game/audio/buses/override_bus_layout")
|
audio_bus_file = ProjectSettings.get_setting("game/audio/buses/override_bus_layout")
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
class_name GameSFX extends Node
|
||||||
|
## Container & accessor for game-global SFX
|
||||||
|
|
||||||
|
@onready var chime: AudioStreamPlayer = %Chime
|
|
@ -9,6 +9,8 @@ extends RichTextEffect
|
||||||
|
|
||||||
signal typing
|
signal typing
|
||||||
|
|
||||||
|
const EDITOR_DEFAULT_SPEED = 20.0
|
||||||
|
|
||||||
@export var scale_curve: Curve
|
@export var scale_curve: Curve
|
||||||
@export var translation_curve: CurveXYZTexture
|
@export var translation_curve: CurveXYZTexture
|
||||||
|
|
||||||
|
@ -24,25 +26,34 @@ var bbcode: String = "type"
|
||||||
var _force_visible := false
|
var _force_visible := false
|
||||||
|
|
||||||
|
|
||||||
func _init(force_visible_signal: Signal) -> void:
|
func _init(force_visible_signal: Variant = null) -> void:
|
||||||
if force_visible_signal:
|
if force_visible_signal is Signal:
|
||||||
force_visible_signal.connect(_set_force_visible)
|
(force_visible_signal as Signal).connect(_set_force_visible)
|
||||||
|
|
||||||
|
|
||||||
|
func _get_default_speed() -> float:
|
||||||
|
if Engine.is_editor_hint():
|
||||||
|
return EDITOR_DEFAULT_SPEED
|
||||||
|
return Game.settings.default_text_speed
|
||||||
|
|
||||||
|
|
||||||
func _process_custom_fx(char_fx: CharFXTransform) -> bool:
|
func _process_custom_fx(char_fx: CharFXTransform) -> bool:
|
||||||
if not _force_visible:
|
if not _force_visible:
|
||||||
var speed: float = char_fx.env.get("speed", Game.settings.default_text_speed)
|
var speed: float = char_fx.env.get("speed", _get_default_speed())
|
||||||
var delay: float = char_fx.env.get("delay", 0.0)
|
var delay: float = char_fx.env.get("delay", 0.0)
|
||||||
var factor: float = char_fx.env.get("factor", 1.0)
|
var factor: float = char_fx.env.get("factor", 1.0)
|
||||||
|
|
||||||
|
var rel_time := (speed * (char_fx.elapsed_time - delay) - char_fx.relative_index) / factor
|
||||||
|
|
||||||
|
char_fx.visible = rel_time > 0
|
||||||
|
|
||||||
|
if scale_curve or translation_curve:
|
||||||
var server := TextServerManager.get_primary_interface()
|
var server := TextServerManager.get_primary_interface()
|
||||||
var glyph_size := server.font_get_glyph_size(
|
var glyph_size := server.font_get_glyph_size(
|
||||||
char_fx.font, 0.5 * glyph_size_factor * Vector2i.ONE, char_fx.glyph_index
|
char_fx.font, 0.5 * glyph_size_factor * Vector2i.ONE, char_fx.glyph_index
|
||||||
)
|
)
|
||||||
var pivot := glyph_size * Vector2(-1, 1)
|
var pivot := glyph_size * Vector2(-1, 1)
|
||||||
|
|
||||||
var rel_time := (speed * (char_fx.elapsed_time - delay) - char_fx.relative_index) / factor
|
|
||||||
|
|
||||||
var scale := Vector2.ONE
|
var scale := Vector2.ONE
|
||||||
if scale_curve:
|
if scale_curve:
|
||||||
scale *= scale_curve.sample_baked(rel_time)
|
scale *= scale_curve.sample_baked(rel_time)
|
||||||
|
@ -63,8 +74,6 @@ func _process_custom_fx(char_fx: CharFXTransform) -> bool:
|
||||||
. translated_local(translation)
|
. translated_local(translation)
|
||||||
)
|
)
|
||||||
|
|
||||||
char_fx.visible = rel_time > 0
|
|
||||||
|
|
||||||
if rel_time < 1:
|
if rel_time < 1:
|
||||||
typing.emit()
|
typing.emit()
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,8 @@ func _ready() -> void:
|
||||||
if text:
|
if text:
|
||||||
_finished = false
|
_finished = false
|
||||||
|
|
||||||
|
visibility_changed.connect(restart)
|
||||||
|
|
||||||
|
|
||||||
## Is the typewriter effect finished?
|
## Is the typewriter effect finished?
|
||||||
func is_finished() -> bool:
|
func is_finished() -> bool:
|
||||||
|
|
|
@ -1,10 +1,14 @@
|
||||||
[gd_resource type="Theme" load_steps=10 format=3 uid="uid://diodjft5u2cck"]
|
[gd_resource type="Theme" load_steps=15 format=3 uid="uid://diodjft5u2cck"]
|
||||||
|
|
||||||
[ext_resource type="FontFile" uid="uid://dsa0oh7c0h4pu" path="res://assets/fonts/Racing_Sans_One/RacingSansOne-Regular.ttf" id="1_3rv2b"]
|
[ext_resource type="FontFile" uid="uid://dsa0oh7c0h4pu" path="res://assets/fonts/Racing_Sans_One/RacingSansOne-Regular.ttf" id="1_3rv2b"]
|
||||||
[ext_resource type="FontFile" uid="uid://comihs66wounx" path="res://assets/fonts/Dokdo/Dokdo-Regular.ttf" id="1_eha6a"]
|
[ext_resource type="FontFile" uid="uid://comihs66wounx" path="res://assets/fonts/Dokdo/Dokdo-Regular.ttf" id="1_eha6a"]
|
||||||
[ext_resource type="FontFile" uid="uid://b6gxwgomstkgu" path="res://assets/fonts/Geo/Geo-Italic.ttf" id="2_5ty6u"]
|
[ext_resource type="FontFile" uid="uid://b6gxwgomstkgu" path="res://assets/fonts/Geo/Geo-Italic.ttf" id="2_5ty6u"]
|
||||||
[ext_resource type="FontFile" uid="uid://dyog4ex5nqfat" path="res://assets/fonts/promptfont/promptfont.otf" id="2_8kux8"]
|
[ext_resource type="FontFile" uid="uid://dyog4ex5nqfat" path="res://assets/fonts/promptfont/promptfont.otf" id="2_8kux8"]
|
||||||
[ext_resource type="FontFile" uid="uid://s4c1kf0rk2mb" path="res://assets/fonts/Geo/Geo-Regular.ttf" id="3_cee6l"]
|
[ext_resource type="FontFile" uid="uid://s4c1kf0rk2mb" path="res://assets/fonts/Geo/Geo-Regular.ttf" id="3_cee6l"]
|
||||||
|
[ext_resource type="FontFile" uid="uid://dyx4wcq8wlpbh" path="res://assets/fonts/Orbitron/static/Orbitron-Black.ttf" id="5_7lyjk"]
|
||||||
|
[ext_resource type="FontVariation" uid="uid://y3lcfr4ys8d3" path="res://assets/fonts/Orbitron/Orbitron_Bold_Italics.tres" id="6_r7l37"]
|
||||||
|
[ext_resource type="FontVariation" uid="uid://cjisjunqauv68" path="res://assets/fonts/Orbitron/Orbitron_Italics.tres" id="7_0c31n"]
|
||||||
|
[ext_resource type="FontFile" uid="uid://bmv0pofrw1wh0" path="res://assets/fonts/Orbitron/static/Orbitron-Regular.ttf" id="8_njdo1"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5pkn5"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5pkn5"]
|
||||||
content_margin_left = 16.0
|
content_margin_left = 16.0
|
||||||
|
@ -41,6 +45,10 @@ corner_radius_bottom_right = 3
|
||||||
corner_radius_bottom_left = 3
|
corner_radius_bottom_left = 3
|
||||||
corner_detail = 5
|
corner_detail = 5
|
||||||
|
|
||||||
|
[sub_resource type="SystemFont" id="SystemFont_3ttu2"]
|
||||||
|
font_names = PackedStringArray("Monospace")
|
||||||
|
generate_mipmaps = true
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ynsl8"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ynsl8"]
|
||||||
content_margin_left = 36.0
|
content_margin_left = 36.0
|
||||||
content_margin_top = 8.0
|
content_margin_top = 8.0
|
||||||
|
@ -103,6 +111,12 @@ DeathScreenLabel/base_type = &"RichTextLabel"
|
||||||
DeathScreenLabel/colors/default_color = Color(0.611765, 0.133333, 0.133333, 1)
|
DeathScreenLabel/colors/default_color = Color(0.611765, 0.133333, 0.133333, 1)
|
||||||
DeathScreenLabel/colors/font_outline_color = Color(0, 0, 0, 1)
|
DeathScreenLabel/colors/font_outline_color = Color(0, 0, 0, 1)
|
||||||
DeathScreenLabel/fonts/normal_font = ExtResource("1_eha6a")
|
DeathScreenLabel/fonts/normal_font = ExtResource("1_eha6a")
|
||||||
|
DebugText/base_type = &"Label"
|
||||||
|
DebugText/colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
DebugText/colors/font_outline_color = Color(0, 0, 0, 1)
|
||||||
|
DebugText/constants/outline_size = 4
|
||||||
|
DebugText/font_sizes/font_size = 12
|
||||||
|
DebugText/fonts/font = SubResource("SystemFont_3ttu2")
|
||||||
HeaderLarge/constants/outline_size = 8
|
HeaderLarge/constants/outline_size = 8
|
||||||
HeaderLarge/font_sizes/font_size = 28
|
HeaderLarge/font_sizes/font_size = 28
|
||||||
HeaderMedium/constants/outline_size = 6
|
HeaderMedium/constants/outline_size = 6
|
||||||
|
@ -169,6 +183,16 @@ ShotFeedback/constants/shadow_offset_x = 6
|
||||||
ShotFeedback/constants/shadow_offset_y = 4
|
ShotFeedback/constants/shadow_offset_y = 4
|
||||||
ShotFeedback/font_sizes/normal_font_size = 272
|
ShotFeedback/font_sizes/normal_font_size = 272
|
||||||
ShotFeedback/fonts/normal_font = ExtResource("1_eha6a")
|
ShotFeedback/fonts/normal_font = ExtResource("1_eha6a")
|
||||||
|
TitleCrawlText/base_type = &"RichTextLabel"
|
||||||
|
TitleCrawlText/font_sizes/bold_font_size = 32
|
||||||
|
TitleCrawlText/font_sizes/bold_italics_font_size = 32
|
||||||
|
TitleCrawlText/font_sizes/italics_font_size = 32
|
||||||
|
TitleCrawlText/font_sizes/mono_font_size = 32
|
||||||
|
TitleCrawlText/font_sizes/normal_font_size = 32
|
||||||
|
TitleCrawlText/fonts/bold_font = ExtResource("5_7lyjk")
|
||||||
|
TitleCrawlText/fonts/bold_italics_font = ExtResource("6_r7l37")
|
||||||
|
TitleCrawlText/fonts/italics_font = ExtResource("7_0c31n")
|
||||||
|
TitleCrawlText/fonts/normal_font = ExtResource("8_njdo1")
|
||||||
TitleScreenMenuLabel/base_type = &"Label"
|
TitleScreenMenuLabel/base_type = &"Label"
|
||||||
TitleScreenMenuLabel/colors/font_outline_color = Color(0, 0, 0, 1)
|
TitleScreenMenuLabel/colors/font_outline_color = Color(0, 0, 0, 1)
|
||||||
TitleScreenMenuLabel/constants/outline_size = 6
|
TitleScreenMenuLabel/constants/outline_size = 6
|
||||||
|
|
|
@ -24,6 +24,10 @@ const MIN_PLAYERS := 2
|
||||||
@onready var game: Game = get_tree().get_first_node_in_group(Game.group)
|
@onready var game: Game = get_tree().get_first_node_in_group(Game.group)
|
||||||
|
|
||||||
|
|
||||||
|
func play_chime() -> void:
|
||||||
|
game.sfx.chime.play()
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
# Populate map selection
|
# Populate map selection
|
||||||
for level: Level in Level.catalog.levels:
|
for level: Level in Level.catalog.levels:
|
||||||
|
@ -45,9 +49,11 @@ func cancel() -> void:
|
||||||
## Start with the current game configuration.
|
## Start with the current game configuration.
|
||||||
func start() -> void:
|
func start() -> void:
|
||||||
var player_list := players()
|
var player_list := players()
|
||||||
|
var level := selected_level()
|
||||||
var init_world := func(world: World) -> void:
|
var init_world := func(world: World) -> void:
|
||||||
world.manager = RoundRobinManager.new()
|
world.manager = RoundRobinManager.new()
|
||||||
world.manager.players = player_list
|
world.manager.players = player_list
|
||||||
|
world.initial_level = level.scene
|
||||||
game.queue_scene(WORLD_SCENE_PATH).then(init_world)
|
game.queue_scene(WORLD_SCENE_PATH).then(init_world)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=7 format=3 uid="uid://ccx2u5oli6men"]
|
[gd_scene load_steps=10 format=3 uid="uid://ccx2u5oli6men"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/ui/menus/title_screen/deathmatch_setup/deathmatch_setup.gd" id="1_bchix"]
|
[ext_resource type="Script" path="res://src/ui/menus/title_screen/deathmatch_setup/deathmatch_setup.gd" id="1_bchix"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cr13d4p235b5y" path="res://src/ui/menus/title_screen/deathmatch_setup/player_setup/player_setup.tscn" id="2_on4ab"]
|
[ext_resource type="PackedScene" uid="uid://cr13d4p235b5y" path="res://src/ui/menus/title_screen/deathmatch_setup/player_setup/player_setup.tscn" id="2_on4ab"]
|
||||||
|
@ -66,6 +66,84 @@ _data = {
|
||||||
"rotate": SubResource("Animation_c3p73")
|
"rotate": SubResource("Animation_c3p73")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_560ro"]
|
||||||
|
resource_name = "fade_out"
|
||||||
|
length = 0.6
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:modulate")
|
||||||
|
tracks/0/interp = 2
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667, 0.333333, 0.4, 0.466667, 0.533333, 0.6),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0), Color(1, 1, 1, 0.5), Color(1, 1, 1, 0), Color(1, 1, 1, 0.25), Color(1, 1, 1, 0), Color(1, 1, 1, 0.125), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("../../..")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.6),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"play_chime"
|
||||||
|
}, {
|
||||||
|
"args": [],
|
||||||
|
"method": &"start"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath(".:disabled")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_x4wqc"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:disabled")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".:modulate")
|
||||||
|
tracks/1/interp = 2
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 1)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_s1eyj"]
|
||||||
|
_data = {
|
||||||
|
"RESET": SubResource("Animation_x4wqc"),
|
||||||
|
"fade_out": SubResource("Animation_560ro")
|
||||||
|
}
|
||||||
|
|
||||||
[node name="DeathmatchSetup" type="PanelContainer"]
|
[node name="DeathmatchSetup" type="PanelContainer"]
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
@ -258,7 +336,12 @@ layout_mode = 2
|
||||||
theme_type_variation = &"AlertButton"
|
theme_type_variation = &"AlertButton"
|
||||||
text = "UI_START"
|
text = "UI_START"
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="SouthEast/HBoxContainer/Start"]
|
||||||
|
libraries = {
|
||||||
|
"": SubResource("AnimationLibrary_s1eyj")
|
||||||
|
}
|
||||||
|
|
||||||
[connection signal="item_selected" from="MarginContainer/VBoxContainer/MapSelectContainer/MarginContainer/VBoxContainer/MapSelect" to="." method="check_start_conditions" unbinds=1]
|
[connection signal="item_selected" from="MarginContainer/VBoxContainer/MapSelectContainer/MarginContainer/VBoxContainer/MapSelect" to="." method="check_start_conditions" unbinds=1]
|
||||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/PlayersContainer/MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/HBoxContainer/AddPlayerButton" to="." method="_on_add_player_button_pressed"]
|
[connection signal="pressed" from="MarginContainer/VBoxContainer/PlayersContainer/MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/HBoxContainer/AddPlayerButton" to="." method="_on_add_player_button_pressed"]
|
||||||
[connection signal="pressed" from="SouthEast/HBoxContainer/Cancel" to="." method="cancel"]
|
[connection signal="pressed" from="SouthEast/HBoxContainer/Cancel" to="." method="cancel"]
|
||||||
[connection signal="pressed" from="SouthEast/HBoxContainer/Start" to="." method="start"]
|
[connection signal="pressed" from="SouthEast/HBoxContainer/Start" to="SouthEast/HBoxContainer/Start/AnimationPlayer" method="play" binds= ["fade_out"]]
|
||||||
|
|
|
@ -82,6 +82,7 @@ func _set_selected_character_index(value: int) -> void:
|
||||||
|
|
||||||
character_container.add_child(character_controller)
|
character_container.add_child(character_controller)
|
||||||
character_controller.set_color(player_color)
|
character_controller.set_color(player_color)
|
||||||
|
char_name.text = get_selected_character().name
|
||||||
|
|
||||||
|
|
||||||
func get_selected_character() -> Character:
|
func get_selected_character() -> Character:
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
extends Control
|
||||||
|
|
||||||
|
@onready var animation_player: AnimationPlayer = $AnimationPlayer
|
||||||
|
|
||||||
|
|
||||||
|
func _input(event: InputEvent) -> void:
|
||||||
|
if (
|
||||||
|
event is InputEventKey
|
||||||
|
or event is InputEventMouseButton
|
||||||
|
or event is InputEventJoypadButton
|
||||||
|
or event is InputEventScreenTouch
|
||||||
|
):
|
||||||
|
get_viewport().set_input_as_handled()
|
||||||
|
fade_out()
|
||||||
|
|
||||||
|
|
||||||
|
func fade_out() -> void:
|
||||||
|
animation_player.play("fade_out")
|
|
@ -0,0 +1,416 @@
|
||||||
|
[gd_scene load_steps=7 format=3 uid="uid://cqu315hviu72n"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://src/ui/decorations/text_effects/typewriter/typewriter_label.gd" id="1_i0kuc"]
|
||||||
|
[ext_resource type="Script" path="res://src/ui/menus/title_screen/title_crawl.gd" id="1_wsvjl"]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_dmc3y"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:modulate")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 1)]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("TitleQuote:visible")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("TitleQuote:modulate")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 1)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("VBoxContainer/TitleCrawl1:visible")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false]
|
||||||
|
}
|
||||||
|
tracks/4/type = "value"
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/path = NodePath("VBoxContainer/TitleCrawl2:visible")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false]
|
||||||
|
}
|
||||||
|
tracks/5/type = "value"
|
||||||
|
tracks/5/imported = false
|
||||||
|
tracks/5/enabled = true
|
||||||
|
tracks/5/path = NodePath("VBoxContainer/TitleCrawl3:visible")
|
||||||
|
tracks/5/interp = 1
|
||||||
|
tracks/5/loop_wrap = true
|
||||||
|
tracks/5/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false]
|
||||||
|
}
|
||||||
|
tracks/6/type = "value"
|
||||||
|
tracks/6/imported = false
|
||||||
|
tracks/6/enabled = true
|
||||||
|
tracks/6/path = NodePath("VBoxContainer/TitleCrawl4:visible")
|
||||||
|
tracks/6/interp = 1
|
||||||
|
tracks/6/loop_wrap = true
|
||||||
|
tracks/6/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false]
|
||||||
|
}
|
||||||
|
tracks/7/type = "value"
|
||||||
|
tracks/7/imported = false
|
||||||
|
tracks/7/enabled = true
|
||||||
|
tracks/7/path = NodePath("VBoxContainer/TitleCrawl5:visible")
|
||||||
|
tracks/7/interp = 1
|
||||||
|
tracks/7/loop_wrap = true
|
||||||
|
tracks/7/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false]
|
||||||
|
}
|
||||||
|
tracks/8/type = "value"
|
||||||
|
tracks/8/imported = false
|
||||||
|
tracks/8/enabled = true
|
||||||
|
tracks/8/path = NodePath("Blackout:color")
|
||||||
|
tracks/8/interp = 1
|
||||||
|
tracks/8/loop_wrap = true
|
||||||
|
tracks/8/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(0, 0, 0, 0)]
|
||||||
|
}
|
||||||
|
tracks/9/type = "value"
|
||||||
|
tracks/9/imported = false
|
||||||
|
tracks/9/enabled = true
|
||||||
|
tracks/9/path = NodePath("VBoxContainer:offset_top")
|
||||||
|
tracks/9/interp = 1
|
||||||
|
tracks/9/loop_wrap = true
|
||||||
|
tracks/9/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0.0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_hkogt"]
|
||||||
|
resource_name = "fade_out"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:modulate")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 1),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(1),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"queue_free"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_hrox7"]
|
||||||
|
resource_name = "play"
|
||||||
|
length = 55.0
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:modulate")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("TitleQuote:visible")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 3),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false, true]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("TitleQuote:modulate")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 11, 13),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("VBoxContainer/TitleCrawl1:visible")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 14, 55),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false, true, false]
|
||||||
|
}
|
||||||
|
tracks/4/type = "value"
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/path = NodePath("VBoxContainer/TitleCrawl2:visible")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 16.4, 55),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false, true, false]
|
||||||
|
}
|
||||||
|
tracks/5/type = "value"
|
||||||
|
tracks/5/imported = false
|
||||||
|
tracks/5/enabled = true
|
||||||
|
tracks/5/path = NodePath("VBoxContainer/TitleCrawl3:visible")
|
||||||
|
tracks/5/interp = 1
|
||||||
|
tracks/5/loop_wrap = true
|
||||||
|
tracks/5/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 31, 55),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false, true, false]
|
||||||
|
}
|
||||||
|
tracks/6/type = "value"
|
||||||
|
tracks/6/imported = false
|
||||||
|
tracks/6/enabled = true
|
||||||
|
tracks/6/path = NodePath("VBoxContainer/TitleCrawl4:visible")
|
||||||
|
tracks/6/interp = 1
|
||||||
|
tracks/6/loop_wrap = true
|
||||||
|
tracks/6/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 39, 55),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false, true, false]
|
||||||
|
}
|
||||||
|
tracks/7/type = "value"
|
||||||
|
tracks/7/imported = false
|
||||||
|
tracks/7/enabled = true
|
||||||
|
tracks/7/path = NodePath("VBoxContainer/TitleCrawl5:visible")
|
||||||
|
tracks/7/interp = 1
|
||||||
|
tracks/7/loop_wrap = true
|
||||||
|
tracks/7/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 45, 55),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false, true, false]
|
||||||
|
}
|
||||||
|
tracks/8/type = "value"
|
||||||
|
tracks/8/imported = false
|
||||||
|
tracks/8/enabled = true
|
||||||
|
tracks/8/path = NodePath("Blackout:color")
|
||||||
|
tracks/8/interp = 1
|
||||||
|
tracks/8/loop_wrap = true
|
||||||
|
tracks/8/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 52, 55),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 1)]
|
||||||
|
}
|
||||||
|
tracks/9/type = "value"
|
||||||
|
tracks/9/imported = false
|
||||||
|
tracks/9/enabled = true
|
||||||
|
tracks/9/path = NodePath("VBoxContainer:offset_top")
|
||||||
|
tracks/9/interp = 1
|
||||||
|
tracks/9/loop_wrap = true
|
||||||
|
tracks/9/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 16, 55),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [0.0, 0.0, -700]
|
||||||
|
}
|
||||||
|
tracks/10/type = "method"
|
||||||
|
tracks/10/imported = false
|
||||||
|
tracks/10/enabled = true
|
||||||
|
tracks/10/path = NodePath(".")
|
||||||
|
tracks/10/interp = 1
|
||||||
|
tracks/10/loop_wrap = true
|
||||||
|
tracks/10/keys = {
|
||||||
|
"times": PackedFloat32Array(55),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"fade_out"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_1o035"]
|
||||||
|
_data = {
|
||||||
|
"RESET": SubResource("Animation_dmc3y"),
|
||||||
|
"fade_out": SubResource("Animation_hkogt"),
|
||||||
|
"play": SubResource("Animation_hrox7")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="TitleCrawl" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_wsvjl")
|
||||||
|
|
||||||
|
[node name="BackgroundColor" type="ColorRect" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
color = Color(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="TitleQuote" type="RichTextLabel" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -555.5
|
||||||
|
offset_top = -45.0
|
||||||
|
offset_right = 555.5
|
||||||
|
offset_bottom = 45.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_type_variation = &"TitleCrawlText"
|
||||||
|
bbcode_enabled = true
|
||||||
|
text = "[center][i][type speed=20]\"If [b]GFOLF[/b] did not exist,[/type] [type speed=20 delay=2]it would be necessary to create it.\"[/type][/i][/center]
|
||||||
|
[right][type speed=40 delay=6]— Voltaire[/type][/right]"
|
||||||
|
script = ExtResource("1_i0kuc")
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||||
|
custom_minimum_size = Vector2(1111, 0)
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -400.0
|
||||||
|
offset_right = 400.0
|
||||||
|
offset_bottom = 70.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
theme_override_constants/separation = 32
|
||||||
|
|
||||||
|
[node name="TitleCrawl1" type="RichTextLabel" parent="VBoxContainer"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
theme_type_variation = &"TitleCrawlText"
|
||||||
|
bbcode_enabled = true
|
||||||
|
text = "[center][type speed=16]The year is 1999[/type][type speed=20 delay=1.3]024 CE.[/type][/center]"
|
||||||
|
fit_content = true
|
||||||
|
script = ExtResource("1_i0kuc")
|
||||||
|
|
||||||
|
[node name="TitleCrawl2" type="RichTextLabel" parent="VBoxContainer"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
theme_type_variation = &"TitleCrawlText"
|
||||||
|
bbcode_enabled = true
|
||||||
|
text = "[center][type speed=20]The avarice of [b]MAN[/b] in an age long past caused the seas to consume the earth.[/type] [type speed=20 delay=4.3]Now, the [b]INFORMATION SOCIETY[/b] controls the full wealth of the entire world, ruling from their secret compound on [b]GFOLFZONE EVEREST-ONE[/b], the only habitable land left on the planet's surface.[/type][/center]"
|
||||||
|
fit_content = true
|
||||||
|
script = ExtResource("1_i0kuc")
|
||||||
|
|
||||||
|
[node name="TitleCrawl3" type="RichTextLabel" parent="VBoxContainer"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
theme_type_variation = &"TitleCrawlText"
|
||||||
|
bbcode_enabled = true
|
||||||
|
text = "[center][type speed=20]In the future,[/type] [type speed=20 delay=1.1] there is no [b]LAW[/b] but the [b]LAW of the BALL[/b], and the warrior-poets known as [b]GFOLFers[/b] enforce their [b]LAW[/b] with a [b]FIVE-IRON FIST.[/b][/type][/center]"
|
||||||
|
fit_content = true
|
||||||
|
script = ExtResource("1_i0kuc")
|
||||||
|
|
||||||
|
[node name="TitleCrawl4" type="RichTextLabel" parent="VBoxContainer"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
theme_type_variation = &"TitleCrawlText"
|
||||||
|
bbcode_enabled = true
|
||||||
|
text = "[center][type speed=20]It is a future you feared,[/type] [type speed=20, delay=1.7]but a future you've chosen.[/type][/center]"
|
||||||
|
fit_content = true
|
||||||
|
script = ExtResource("1_i0kuc")
|
||||||
|
|
||||||
|
[node name="Spacer" type="Control" parent="VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="TitleCrawl5" type="RichTextLabel" parent="VBoxContainer"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 10
|
||||||
|
theme_type_variation = &"TitleCrawlText"
|
||||||
|
bbcode_enabled = true
|
||||||
|
text = "[center][i][type speed=16]IN THE FUTURE[/type][type speed=16 delay=1.0].[/type][type speed=16 delay=1.2].[/type][type speed=16 delay=1.4].[/type] [type speed=16 delay=2.4]THERE IS ONLY[/type] [b][type speed=16 delay=3.6]GFOLF.[/type][/b][/i][/center]"
|
||||||
|
fit_content = true
|
||||||
|
script = ExtResource("1_i0kuc")
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
"": SubResource("AnimationLibrary_1o035")
|
||||||
|
}
|
||||||
|
autoplay = "play"
|
||||||
|
|
||||||
|
[node name="Blackout" type="ColorRect" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
color = Color(0, 0, 0, 0)
|
|
@ -2,21 +2,31 @@ class_name TitleScreen extends Control
|
||||||
|
|
||||||
const SCENE := "res://src/ui/menus/title_screen/title_screen.tscn"
|
const SCENE := "res://src/ui/menus/title_screen/title_screen.tscn"
|
||||||
|
|
||||||
|
@export var title_crawl_scene: PackedScene
|
||||||
@export var settings_scene: PackedScene
|
@export var settings_scene: PackedScene
|
||||||
@export var local_deathmatch_setup_scene: PackedScene
|
@export var local_deathmatch_setup_scene: PackedScene
|
||||||
|
|
||||||
@onready var menu: Control = %Menu
|
@onready var menu: Control = %Menu
|
||||||
@onready var settings_container: MarginContainer = %SettingsContainer
|
@onready var settings_container: MarginContainer = %SettingsContainer
|
||||||
@onready var deathmatch_setup_container: MarginContainer = %DeathmatchSetupContainer
|
@onready var deathmatch_setup_container: MarginContainer = %DeathmatchSetupContainer
|
||||||
|
@onready var title_crawl_container: MarginContainer = %TitleCrawlContainer
|
||||||
|
|
||||||
@onready var state_machine: AnimationTree = $Menu/MenuStateMachine
|
@onready var state_machine: AnimationTree = $Menu/MenuStateMachine
|
||||||
@onready var menu_state: AnimationNodeStateMachinePlayback = state_machine["parameters/playback"]
|
@onready var menu_state: AnimationNodeStateMachinePlayback = state_machine["parameters/playback"]
|
||||||
|
|
||||||
@onready var confirm_sfx: AudioStreamPlayer = %ConfirmSFX
|
@onready var idle_timer: Timer = %IdleTimer
|
||||||
|
|
||||||
|
@onready var game: Game = get_tree().get_first_node_in_group(Game.group)
|
||||||
|
|
||||||
|
|
||||||
func play_chime() -> void:
|
func play_chime() -> void:
|
||||||
confirm_sfx.play()
|
game.sfx.chime.play()
|
||||||
|
|
||||||
|
|
||||||
|
func start_title_crawl() -> void:
|
||||||
|
var instance: Node = title_crawl_scene.instantiate()
|
||||||
|
instance.tree_exiting.connect(idle_timer.start)
|
||||||
|
title_crawl_container.add_child(instance)
|
||||||
|
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
|
@ -34,6 +44,7 @@ func _hide() -> void:
|
||||||
|
|
||||||
|
|
||||||
func _to_main_menu() -> void:
|
func _to_main_menu() -> void:
|
||||||
|
idle_timer.stop()
|
||||||
menu_state.travel("main_idle")
|
menu_state.travel("main_idle")
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,203 @@
|
||||||
[gd_scene load_steps=64 format=3 uid="uid://7fsgocmdas7i"]
|
[gd_scene load_steps=86 format=3 uid="uid://7fsgocmdas7i"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/ui/menus/title_screen/title_screen.gd" id="1_2qtlb"]
|
[ext_resource type="Script" path="res://src/ui/menus/title_screen/title_screen.gd" id="1_2qtlb"]
|
||||||
[ext_resource type="Texture2D" uid="uid://880x5n8j3b5l" path="res://assets/logo/title.png" id="1_pm82i"]
|
[ext_resource type="Texture2D" uid="uid://880x5n8j3b5l" path="res://assets/logo/title.png" id="1_pm82i"]
|
||||||
[ext_resource type="PackedScene" uid="uid://d3eaqw2rdurct" path="res://src/ui/menus/settings_menu/settings_menu.tscn" id="2_g5q2v"]
|
[ext_resource type="PackedScene" uid="uid://d3eaqw2rdurct" path="res://src/ui/menus/settings_menu/settings_menu.tscn" id="2_g5q2v"]
|
||||||
[ext_resource type="Texture2D" uid="uid://clesl8lljs6of" path="res://assets/logo/subtitle.png" id="2_y0ulk"]
|
[ext_resource type="Texture2D" uid="uid://clesl8lljs6of" path="res://assets/logo/subtitle.png" id="2_y0ulk"]
|
||||||
[ext_resource type="PackedScene" uid="uid://ccx2u5oli6men" path="res://src/ui/menus/title_screen/deathmatch_setup/deathmatch_setup.tscn" id="3_bo4ty"]
|
[ext_resource type="PackedScene" uid="uid://ccx2u5oli6men" path="res://src/ui/menus/title_screen/deathmatch_setup/deathmatch_setup.tscn" id="3_bo4ty"]
|
||||||
[ext_resource type="AudioStream" uid="uid://8uynlpios7u1" path="res://assets/sound/sfx/ui/ecofuture2.wav" id="5_fg1a4"]
|
[ext_resource type="Material" uid="uid://dpsmjlhjpc7vs" path="res://assets/materials/basic_ball_material.tres" id="5_5q83g"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cqu315hviu72n" path="res://src/ui/menus/title_screen/title_crawl.tscn" id="7_r26eu"]
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_ardux"]
|
||||||
|
background_mode = 1
|
||||||
|
ambient_light_source = 2
|
||||||
|
ambient_light_color = Color(0.0156863, 0.0156863, 0.0156863, 1)
|
||||||
|
tonemap_mode = 2
|
||||||
|
ssil_enabled = true
|
||||||
|
ssil_intensity = 0.4
|
||||||
|
glow_enabled = true
|
||||||
|
glow_intensity = 2.0
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_bby3k"]
|
||||||
|
resource_name = "rotate"
|
||||||
|
length = 180.0
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:rotation")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 180),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(-0.785398, 0, 0), Vector3(-0.785398, 6.28319, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_vci0b"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:rotation")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(-0.785398, -3.14159, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_g0lq7"]
|
||||||
|
_data = {
|
||||||
|
"RESET": SubResource("Animation_vci0b"),
|
||||||
|
"rotate": SubResource("Animation_bby3k")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="SphereMesh" id="SphereMesh_korig"]
|
||||||
|
material = ExtResource("5_5q83g")
|
||||||
|
radial_segments = 6
|
||||||
|
rings = 4
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_mfs4k"]
|
||||||
|
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 1
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_4a340"]
|
||||||
|
min_value = -2.0
|
||||||
|
max_value = 2.0
|
||||||
|
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 1
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_jugu4"]
|
||||||
|
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 1
|
||||||
|
|
||||||
|
[sub_resource type="CurveXYZTexture" id="CurveXYZTexture_6ny4o"]
|
||||||
|
curve_x = SubResource("Curve_mfs4k")
|
||||||
|
curve_y = SubResource("Curve_4a340")
|
||||||
|
curve_z = SubResource("Curve_jugu4")
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_dlr4d"]
|
||||||
|
_data = [Vector2(0, 0.001), 0.0, 0.0, 0, 0, Vector2(0.0315789, 1), 0.0, 0.0, 0, 0, Vector2(0.355789, 1), 0.0, 0.0, 0, 0, Vector2(0.633684, 0), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 4
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_ynn40"]
|
||||||
|
curve = SubResource("Curve_dlr4d")
|
||||||
|
|
||||||
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_v2b30"]
|
||||||
|
emission_shape = 6
|
||||||
|
emission_ring_axis = Vector3(0, 1, 0)
|
||||||
|
emission_ring_height = 0.1
|
||||||
|
emission_ring_radius = 4.0
|
||||||
|
emission_ring_inner_radius = 4.0
|
||||||
|
spread = 0.0
|
||||||
|
orbit_velocity_min = 0.25
|
||||||
|
orbit_velocity_max = 0.25
|
||||||
|
orbit_velocity_curve = SubResource("CurveXYZTexture_6ny4o")
|
||||||
|
radial_velocity_min = -1.00002
|
||||||
|
radial_velocity_max = -1.00002
|
||||||
|
gravity = Vector3(0, 0, 0)
|
||||||
|
scale_curve = SubResource("CurveTexture_ynn40")
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_o7r8j"]
|
||||||
|
_data = [Vector2(0, 0), 0.0, 33.9978, 0, 0, Vector2(0.0335306, 0.824067), 2.50004, 2.50004, 0, 0, Vector2(0.315582, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 4
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_f43mj"]
|
||||||
|
transparency = 1
|
||||||
|
cull_mode = 2
|
||||||
|
shading_mode = 0
|
||||||
|
vertex_color_use_as_albedo = true
|
||||||
|
albedo_color = Color(1, 1, 1, 0.156863)
|
||||||
|
texture_filter = 0
|
||||||
|
use_particle_trails = true
|
||||||
|
|
||||||
|
[sub_resource type="RibbonTrailMesh" id="RibbonTrailMesh_brdwn"]
|
||||||
|
material = SubResource("StandardMaterial3D_f43mj")
|
||||||
|
shape = 0
|
||||||
|
size = 0.1
|
||||||
|
sections = 16
|
||||||
|
section_length = 0.1
|
||||||
|
section_segments = 8
|
||||||
|
curve = SubResource("Curve_o7r8j")
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_baak2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("CameraPivot:rotation")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(0, 0, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_0w1b5"]
|
||||||
|
resource_name = "idle"
|
||||||
|
length = 120.0
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("CameraPivot:rotation")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 120),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(0, 0, 0), Vector3(0, 6.28319, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_om72j"]
|
||||||
|
_data = {
|
||||||
|
"RESET": SubResource("Animation_baak2"),
|
||||||
|
"idle": SubResource("Animation_0w1b5")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_a1sa7"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:color")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(0, 0, 0, 1)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_f0ohc"]
|
||||||
|
resource_name = "fade_in"
|
||||||
|
length = 8.0
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:color")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = false
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 8),
|
||||||
|
"transitions": PackedFloat32Array(0.618, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(0, 0, 0, 1), Color(0, 0, 0, 0.5)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_kjacl"]
|
||||||
|
_data = {
|
||||||
|
"RESET": SubResource("Animation_a1sa7"),
|
||||||
|
"fade_in": SubResource("Animation_f0ohc")
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_fths4"]
|
[sub_resource type="Animation" id="Animation_fths4"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
|
@ -57,25 +249,16 @@ tracks/1/path = NodePath("../../..")
|
||||||
tracks/1/interp = 1
|
tracks/1/interp = 1
|
||||||
tracks/1/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
"times": PackedFloat32Array(0.6),
|
"times": PackedFloat32Array(0, 0.6),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
"values": [{
|
"values": [{
|
||||||
"args": [],
|
"args": [],
|
||||||
|
"method": &"play_chime"
|
||||||
|
}, {
|
||||||
|
"args": [],
|
||||||
"method": &"_on_quit"
|
"method": &"_on_quit"
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
tracks/2/type = "value"
|
|
||||||
tracks/2/imported = false
|
|
||||||
tracks/2/enabled = true
|
|
||||||
tracks/2/path = NodePath("%ConfirmSFX:playing")
|
|
||||||
tracks/2/interp = 1
|
|
||||||
tracks/2/loop_wrap = true
|
|
||||||
tracks/2/keys = {
|
|
||||||
"times": PackedFloat32Array(0),
|
|
||||||
"transitions": PackedFloat32Array(1),
|
|
||||||
"update": 1,
|
|
||||||
"values": [true]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_cgw58"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_cgw58"]
|
||||||
_data = {
|
_data = {
|
||||||
|
@ -1176,9 +1359,71 @@ anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
script = ExtResource("1_2qtlb")
|
script = ExtResource("1_2qtlb")
|
||||||
|
title_crawl_scene = ExtResource("7_r26eu")
|
||||||
settings_scene = ExtResource("2_g5q2v")
|
settings_scene = ExtResource("2_g5q2v")
|
||||||
local_deathmatch_setup_scene = ExtResource("3_bo4ty")
|
local_deathmatch_setup_scene = ExtResource("3_bo4ty")
|
||||||
|
|
||||||
|
[node name="SceneRoot" type="Node3D" parent="."]
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="SceneRoot"]
|
||||||
|
environment = SubResource("Environment_ardux")
|
||||||
|
|
||||||
|
[node name="LightRotationRoot" type="Node3D" parent="SceneRoot"]
|
||||||
|
transform = Transform3D(-0.5, 0, 0.866025, 0, 1, 0, -0.866025, 0, -0.5, 0, 0, 0)
|
||||||
|
|
||||||
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="SceneRoot/LightRotationRoot"]
|
||||||
|
transform = Transform3D(-1, -6.18172e-08, 6.18172e-08, 0, 0.707107, 0.707107, -8.74228e-08, 0.707107, -0.707107, 0, 0, 0)
|
||||||
|
light_color = Color(0.95, 1, 0.989167, 1)
|
||||||
|
light_energy = 1.2
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="SceneRoot/LightRotationRoot/DirectionalLight3D"]
|
||||||
|
libraries = {
|
||||||
|
"": SubResource("AnimationLibrary_g0lq7")
|
||||||
|
}
|
||||||
|
autoplay = "rotate"
|
||||||
|
|
||||||
|
[node name="Ball" type="MeshInstance3D" parent="SceneRoot"]
|
||||||
|
mesh = SubResource("SphereMesh_korig")
|
||||||
|
|
||||||
|
[node name="GPUParticles3D" type="GPUParticles3D" parent="SceneRoot/Ball"]
|
||||||
|
amount = 256
|
||||||
|
lifetime = 6.0
|
||||||
|
speed_scale = 0.1
|
||||||
|
fixed_fps = 60
|
||||||
|
trail_enabled = true
|
||||||
|
trail_lifetime = 4.0
|
||||||
|
process_material = SubResource("ParticleProcessMaterial_v2b30")
|
||||||
|
draw_pass_1 = SubResource("RibbonTrailMesh_brdwn")
|
||||||
|
|
||||||
|
[node name="CameraPivot" type="Node3D" parent="SceneRoot"]
|
||||||
|
|
||||||
|
[node name="Pitch" type="Node3D" parent="SceneRoot/CameraPivot"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, 0, 0, 0)
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D" parent="SceneRoot/CameraPivot/Pitch"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="SceneRoot"]
|
||||||
|
libraries = {
|
||||||
|
"": SubResource("AnimationLibrary_om72j")
|
||||||
|
}
|
||||||
|
autoplay = "idle"
|
||||||
|
|
||||||
|
[node name="Shade" type="ColorRect" parent="."]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
color = Color(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="Shade"]
|
||||||
|
libraries = {
|
||||||
|
"": SubResource("AnimationLibrary_kjacl")
|
||||||
|
}
|
||||||
|
autoplay = "fade_in"
|
||||||
|
|
||||||
[node name="Title" type="Control" parent="."]
|
[node name="Title" type="Control" parent="."]
|
||||||
clip_contents = true
|
clip_contents = true
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
@ -1235,7 +1480,7 @@ grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
|
||||||
[node name="PressStart" type="Label" parent="Menu"]
|
[node name="PressStart" type="Label" parent="Menu"]
|
||||||
visible = false
|
modulate = Color(1, 1, 1, 0.0282702)
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 8
|
anchors_preset = 8
|
||||||
anchor_left = 0.5
|
anchor_left = 0.5
|
||||||
|
@ -1253,12 +1498,11 @@ text = "TITLE_START"
|
||||||
|
|
||||||
[node name="MainMenu" type="VBoxContainer" parent="Menu"]
|
[node name="MainMenu" type="VBoxContainer" parent="Menu"]
|
||||||
visible = false
|
visible = false
|
||||||
modulate = Color(1, 1, 1, 0)
|
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
anchor_left = -0.5
|
anchor_left = 0.5
|
||||||
anchor_top = 0.5
|
anchor_top = 0.5
|
||||||
anchor_right = -0.5
|
anchor_right = 0.5
|
||||||
anchor_bottom = 0.5
|
anchor_bottom = 0.5
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
@ -1266,27 +1510,32 @@ metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
[node name="SinglePlayer" type="Button" parent="Menu/MainMenu"]
|
[node name="SinglePlayer" type="Button" parent="Menu/MainMenu"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
tooltip_text = "MSG_ABOUT_SINGLE_PLAYER"
|
||||||
theme_type_variation = &"PauseMenuButton"
|
theme_type_variation = &"PauseMenuButton"
|
||||||
text = "TITLE_SINGLE_PLAYER"
|
text = "TITLE_SINGLE_PLAYER"
|
||||||
|
|
||||||
[node name="MultiPlayer" type="Button" parent="Menu/MainMenu"]
|
[node name="MultiPlayer" type="Button" parent="Menu/MainMenu"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
tooltip_text = "MSG_ABOUT_MULTI_PLAYER"
|
||||||
theme_type_variation = &"PauseMenuButton"
|
theme_type_variation = &"PauseMenuButton"
|
||||||
text = "TITLE_MULTI_PLAYER"
|
text = "TITLE_MULTI_PLAYER"
|
||||||
|
|
||||||
[node name="Settings" type="Button" parent="Menu/MainMenu"]
|
[node name="Settings" type="Button" parent="Menu/MainMenu"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
tooltip_text = "MSG_ABOUT_SETTINGS"
|
||||||
theme_type_variation = &"PauseMenuButton"
|
theme_type_variation = &"PauseMenuButton"
|
||||||
text = "PAUSE_SETTINGS"
|
text = "PAUSE_SETTINGS"
|
||||||
|
|
||||||
[node name="Credits" type="Button" parent="Menu/MainMenu"]
|
[node name="Credits" type="Button" parent="Menu/MainMenu"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
tooltip_text = "MSG_ABOUT_CREDITS"
|
||||||
theme_type_variation = &"PauseMenuButton"
|
theme_type_variation = &"PauseMenuButton"
|
||||||
disabled = true
|
disabled = true
|
||||||
text = "TITLE_CREDITS"
|
text = "TITLE_CREDITS"
|
||||||
|
|
||||||
[node name="Quit" type="Button" parent="Menu/MainMenu"]
|
[node name="Quit" type="Button" parent="Menu/MainMenu"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
tooltip_text = "MSG_ABOUT_QUIT"
|
||||||
theme_type_variation = &"PauseMenuButton"
|
theme_type_variation = &"PauseMenuButton"
|
||||||
theme_override_colors/font_color = Color(0.819608, 0.196078, 0.196078, 1)
|
theme_override_colors/font_color = Color(0.819608, 0.196078, 0.196078, 1)
|
||||||
text = "PAUSE_QUIT"
|
text = "PAUSE_QUIT"
|
||||||
|
@ -1338,9 +1587,9 @@ text = "UI_BACK"
|
||||||
[node name="MultiplayerMenu" type="VBoxContainer" parent="Menu"]
|
[node name="MultiplayerMenu" type="VBoxContainer" parent="Menu"]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
anchor_left = -0.5
|
anchor_left = 1.5
|
||||||
anchor_top = 0.5
|
anchor_top = 0.5
|
||||||
anchor_right = -0.5
|
anchor_right = 1.5
|
||||||
anchor_bottom = 0.5
|
anchor_bottom = 0.5
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
@ -1363,9 +1612,9 @@ text = "UI_BACK"
|
||||||
[node name="LocalMultiplayerMenu" type="VBoxContainer" parent="Menu"]
|
[node name="LocalMultiplayerMenu" type="VBoxContainer" parent="Menu"]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
anchor_left = 0.5
|
anchor_left = 1.5
|
||||||
anchor_top = 0.5
|
anchor_top = 0.5
|
||||||
anchor_right = 0.5
|
anchor_right = 1.5
|
||||||
anchor_bottom = 0.5
|
anchor_bottom = 0.5
|
||||||
offset_left = -157.5
|
offset_left = -157.5
|
||||||
offset_top = -52.0
|
offset_top = -52.0
|
||||||
|
@ -1444,11 +1693,6 @@ libraries = {
|
||||||
}
|
}
|
||||||
autoplay = "press_start_fade_in"
|
autoplay = "press_start_fade_in"
|
||||||
|
|
||||||
[node name="ConfirmSFX" type="AudioStreamPlayer" parent="."]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
stream = ExtResource("5_fg1a4")
|
|
||||||
bus = &"SFX"
|
|
||||||
|
|
||||||
[node name="SettingsContainer" type="MarginContainer" parent="."]
|
[node name="SettingsContainer" type="MarginContainer" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
@ -1479,6 +1723,22 @@ theme_override_constants/margin_top = 64
|
||||||
theme_override_constants/margin_right = 64
|
theme_override_constants/margin_right = 64
|
||||||
theme_override_constants/margin_bottom = 64
|
theme_override_constants/margin_bottom = 64
|
||||||
|
|
||||||
|
[node name="TitleCrawlContainer" type="MarginContainer" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
|
||||||
|
[node name="IdleTimer" type="Timer" parent="TitleCrawlContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
wait_time = 20.0
|
||||||
|
one_shot = true
|
||||||
|
autostart = true
|
||||||
|
|
||||||
[connection signal="pressed" from="Menu/MainMenu/SinglePlayer" to="." method="_to_single_player"]
|
[connection signal="pressed" from="Menu/MainMenu/SinglePlayer" to="." method="_to_single_player"]
|
||||||
[connection signal="pressed" from="Menu/MainMenu/MultiPlayer" to="." method="_to_multi_player"]
|
[connection signal="pressed" from="Menu/MainMenu/MultiPlayer" to="." method="_to_multi_player"]
|
||||||
[connection signal="pressed" from="Menu/MainMenu/Settings" to="." method="_open_settings"]
|
[connection signal="pressed" from="Menu/MainMenu/Settings" to="." method="_open_settings"]
|
||||||
|
@ -1490,3 +1750,4 @@ theme_override_constants/margin_bottom = 64
|
||||||
[connection signal="pressed" from="Menu/LocalMultiplayerMenu/Deathmatch" to="." method="_open_local_deathmatch_setup"]
|
[connection signal="pressed" from="Menu/LocalMultiplayerMenu/Deathmatch" to="." method="_open_local_deathmatch_setup"]
|
||||||
[connection signal="pressed" from="Menu/LocalMultiplayerMenu/Back" to="." method="_to_multi_player"]
|
[connection signal="pressed" from="Menu/LocalMultiplayerMenu/Back" to="." method="_to_multi_player"]
|
||||||
[connection signal="pressed" from="Menu/NetMultiplayerMenu/Back" to="." method="_to_multi_player"]
|
[connection signal="pressed" from="Menu/NetMultiplayerMenu/Back" to="." method="_to_multi_player"]
|
||||||
|
[connection signal="timeout" from="TitleCrawlContainer/IdleTimer" to="." method="start_title_crawl"]
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
[gd_resource type="World3D" load_steps=2 format=3 uid="uid://ctfbo13yjwt6n"]
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_4jfqc"]
|
||||||
|
background_mode = 1
|
||||||
|
ambient_light_source = 2
|
||||||
|
ambient_light_color = Color(1, 1, 1, 1)
|
||||||
|
tonemap_mode = 3
|
||||||
|
ssr_enabled = true
|
||||||
|
ssao_enabled = true
|
||||||
|
ssil_enabled = true
|
||||||
|
glow_enabled = true
|
||||||
|
glow_strength = 1.4
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
environment = SubResource("Environment_4jfqc")
|
|
@ -0,0 +1,22 @@
|
||||||
|
extends Label
|
||||||
|
## Label showing debug info about the game version.
|
||||||
|
|
||||||
|
## Branch info will not be printed on any of these branches.
|
||||||
|
const IGNORED_BRANCHES := ["main"]
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
# Fall back on baked version info
|
||||||
|
text = Game.settings.version
|
||||||
|
|
||||||
|
var output: Array[String] = []
|
||||||
|
var status := OS.execute("git", ["describe", "--always", "HEAD"], output)
|
||||||
|
if status == 0:
|
||||||
|
text = output[0].strip_edges()
|
||||||
|
|
||||||
|
output = []
|
||||||
|
status = OS.execute("git", ["branch", "--show-current"], output)
|
||||||
|
if status == 0:
|
||||||
|
var branch_name := output[0].strip_edges()
|
||||||
|
if branch_name and not branch_name in IGNORED_BRANCHES:
|
||||||
|
text += " (%s)" % branch_name
|
|
@ -1,9 +1,10 @@
|
||||||
[gd_scene load_steps=4 format=3 uid="uid://cdtdvka0bssgy"]
|
[gd_scene load_steps=5 format=3 uid="uid://cdtdvka0bssgy"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/world/level/level_catalog.gd" id="1_wjjeu"]
|
[ext_resource type="Script" path="res://src/world/level/level_catalog.gd" id="1_wjjeu"]
|
||||||
[ext_resource type="Resource" uid="uid://chewry1b1a28j" path="res://levels/debug_level/debug_island.tres" id="3_3eqbc"]
|
[ext_resource type="Resource" uid="uid://chewry1b1a28j" path="res://levels/debug_level/debug_island.tres" id="3_3eqbc"]
|
||||||
[ext_resource type="Script" path="res://src/world/level/level.gd" id="3_8lfqu"]
|
[ext_resource type="Script" path="res://src/world/level/level.gd" id="3_8lfqu"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cfsy1nlfo4inx" path="res://levels/oneill/oneill.tres" id="4_8547s"]
|
||||||
|
|
||||||
[node name="LevelCatalog" type="Node"]
|
[node name="LevelCatalog" type="Node"]
|
||||||
script = ExtResource("1_wjjeu")
|
script = ExtResource("1_wjjeu")
|
||||||
levels = Array[ExtResource("3_8lfqu")]([ExtResource("3_3eqbc")])
|
levels = Array[ExtResource("3_8lfqu")]([ExtResource("3_3eqbc"), ExtResource("4_8547s")])
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
[gd_scene load_steps=8 format=3 uid="uid://cwnwcd8kushl3"]
|
[gd_scene load_steps=8 format=3 uid="uid://cwnwcd8kushl3"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/world/world.gd" id="1_ybjyx"]
|
[ext_resource type="Script" path="res://src/world/world.gd" id="1_ybjyx"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bm2o3mex10v11" path="res://levels/debug_level/debug_level.tscn" id="2_0xu5a"]
|
|
||||||
[ext_resource type="Script" path="res://src/player/world_player.gd" id="2_e743i"]
|
[ext_resource type="Script" path="res://src/player/world_player.gd" id="2_e743i"]
|
||||||
[ext_resource type="Script" path="res://src/ui/world_ui.gd" id="2_imewa"]
|
[ext_resource type="Script" path="res://src/ui/world_ui.gd" id="2_imewa"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://x2bqqlrnno28" path="res://levels/oneill/oneill.tscn" id="2_w576d"]
|
||||||
[ext_resource type="Resource" uid="uid://crock3revdn73" path="res://src/player/debug_player.tres" id="3_pyw81"]
|
[ext_resource type="Resource" uid="uid://crock3revdn73" path="res://src/player/debug_player.tres" id="3_pyw81"]
|
||||||
[ext_resource type="Script" path="res://src/world/play_manager/round_robin_manager.gd" id="5_h6mje"]
|
[ext_resource type="Script" path="res://src/world/play_manager/round_robin_manager.gd" id="5_h6mje"]
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ players = Array[ExtResource("2_e743i")]([ExtResource("3_pyw81")])
|
||||||
|
|
||||||
[node name="World" type="Node" groups=["WorldGroup"]]
|
[node name="World" type="Node" groups=["WorldGroup"]]
|
||||||
script = ExtResource("1_ybjyx")
|
script = ExtResource("1_ybjyx")
|
||||||
initial_level = ExtResource("2_0xu5a")
|
initial_level = ExtResource("2_w576d")
|
||||||
manager = SubResource("Resource_rdjhi")
|
manager = SubResource("Resource_rdjhi")
|
||||||
|
|
||||||
[node name="Level" type="Node3D" parent="."]
|
[node name="Level" type="Node3D" parent="."]
|
||||||
|
|
Loading…
Reference in New Issue