generated from krampus/template-godot4
	Compare commits
	
		
			9 Commits
		
	
	
		
			5b0305df96
			...
			feb0d3eb48
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| feb0d3eb48 | |||
| 05f259405b | |||
| 6fad9af2a2 | |||
| 2583f39252 | |||
| 5cce252627 | |||
| af5cd75603 | |||
| af73475c26 | |||
| 384992e935 | |||
| 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 | ||||||
|  | |||||||
							
								
								
									
										
											BIN
										
									
								
								asset_dev/levels/oneill.blend
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								asset_dev/levels/oneill.blend
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								asset_dev/levels/oneill.blend1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								asset_dev/levels/oneill.blend1
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										7
									
								
								assets/fonts/Geo/Geo_Bold.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								assets/fonts/Geo/Geo_Bold.tres
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||||
							
								
								
									
										7
									
								
								assets/fonts/Geo/Geo_Bold_Italics.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								assets/fonts/Geo/Geo_Bold_Italics.tres
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||||
							
								
								
									
										93
									
								
								assets/fonts/Orbitron/OFL.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								assets/fonts/Orbitron/OFL.txt
									
									
									
									
									
										Normal file
									
								
							| @ -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. | ||||||
							
								
								
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/Orbitron-VariableFont_wght.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/Orbitron-VariableFont_wght.ttf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										34
									
								
								assets/fonts/Orbitron/Orbitron-VariableFont_wght.ttf.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								assets/fonts/Orbitron/Orbitron-VariableFont_wght.ttf.import
									
									
									
									
									
										Normal file
									
								
							| @ -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={} | ||||||
							
								
								
									
										7
									
								
								assets/fonts/Orbitron/Orbitron_Bold_Italics.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								assets/fonts/Orbitron/Orbitron_Bold_Italics.tres
									
									
									
									
									
										Normal file
									
								
							| @ -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) | ||||||
							
								
								
									
										7
									
								
								assets/fonts/Orbitron/Orbitron_Italics.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								assets/fonts/Orbitron/Orbitron_Italics.tres
									
									
									
									
									
										Normal file
									
								
							| @ -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) | ||||||
							
								
								
									
										68
									
								
								assets/fonts/Orbitron/README.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								assets/fonts/Orbitron/README.txt
									
									
									
									
									
										Normal file
									
								
							| @ -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. | ||||||
							
								
								
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/static/Orbitron-Black.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/static/Orbitron-Black.ttf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										34
									
								
								assets/fonts/Orbitron/static/Orbitron-Black.ttf.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								assets/fonts/Orbitron/static/Orbitron-Black.ttf.import
									
									
									
									
									
										Normal file
									
								
							| @ -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={} | ||||||
							
								
								
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/static/Orbitron-Bold.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/static/Orbitron-Bold.ttf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										34
									
								
								assets/fonts/Orbitron/static/Orbitron-Bold.ttf.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								assets/fonts/Orbitron/static/Orbitron-Bold.ttf.import
									
									
									
									
									
										Normal file
									
								
							| @ -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={} | ||||||
							
								
								
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/static/Orbitron-ExtraBold.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/static/Orbitron-ExtraBold.ttf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										34
									
								
								assets/fonts/Orbitron/static/Orbitron-ExtraBold.ttf.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								assets/fonts/Orbitron/static/Orbitron-ExtraBold.ttf.import
									
									
									
									
									
										Normal file
									
								
							| @ -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={} | ||||||
							
								
								
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/static/Orbitron-Medium.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/static/Orbitron-Medium.ttf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										34
									
								
								assets/fonts/Orbitron/static/Orbitron-Medium.ttf.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								assets/fonts/Orbitron/static/Orbitron-Medium.ttf.import
									
									
									
									
									
										Normal file
									
								
							| @ -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={} | ||||||
							
								
								
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/static/Orbitron-Regular.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/static/Orbitron-Regular.ttf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										34
									
								
								assets/fonts/Orbitron/static/Orbitron-Regular.ttf.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								assets/fonts/Orbitron/static/Orbitron-Regular.ttf.import
									
									
									
									
									
										Normal file
									
								
							| @ -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={} | ||||||
							
								
								
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/static/Orbitron-SemiBold.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/fonts/Orbitron/static/Orbitron-SemiBold.ttf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										34
									
								
								assets/fonts/Orbitron/static/Orbitron-SemiBold.ttf.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								assets/fonts/Orbitron/static/Orbitron-SemiBold.ttf.import
									
									
									
									
									
										Normal file
									
								
							| @ -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={} | ||||||
							
								
								
									
										16
									
								
								assets/materials/basic_ball_material.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								assets/materials/basic_ball_material.tres
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||||
							
								
								
									
										31
									
								
								assets/materials/tropical_water.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								assets/materials/tropical_water.tres
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||||
|  | |||||||
							
								
								
									
										
											BIN
										
									
								
								levels/oneill/geometry.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								levels/oneill/geometry.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										450
									
								
								levels/oneill/geometry.gltf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										450
									
								
								levels/oneill/geometry.gltf
									
									
									
									
									
										Normal file
									
								
							| @ -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" | ||||||
|  | 		} | ||||||
|  | 	] | ||||||
|  | } | ||||||
							
								
								
									
										51
									
								
								levels/oneill/geometry.gltf.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								levels/oneill/geometry.gltf.import
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||||
							
								
								
									
										8
									
								
								levels/oneill/materials/grass_green.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								levels/oneill/materials/grass_green.tres
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||||
							
								
								
									
										8
									
								
								levels/oneill/materials/sand.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								levels/oneill/materials/sand.tres
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||||
							
								
								
									
										31
									
								
								levels/oneill/materials/water.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								levels/oneill/materials/water.tres
									
									
									
									
									
										Normal file
									
								
							| @ -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") | ||||||
							
								
								
									
										9
									
								
								levels/oneill/oneill.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								levels/oneill/oneill.tres
									
									
									
									
									
										Normal file
									
								
							| @ -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" | ||||||
							
								
								
									
										696
									
								
								levels/oneill/oneill.tscn
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										696
									
								
								levels/oneill/oneill.tscn
									
									
									
									
									
										Normal file
									
								
							
										
											
												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") | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								src/game/sfx.gd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/game/sfx.gd
									
									
									
									
									
										Normal file
									
								
							| @ -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,47 +26,54 @@ 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 server := TextServerManager.get_primary_interface() |  | ||||||
| 		var glyph_size := server.font_get_glyph_size( |  | ||||||
| 			char_fx.font, 0.5 * glyph_size_factor * Vector2i.ONE, char_fx.glyph_index |  | ||||||
| 		) |  | ||||||
| 		var pivot := glyph_size * Vector2(-1, 1) |  | ||||||
| 
 |  | ||||||
| 		var rel_time := (speed * (char_fx.elapsed_time - delay) - char_fx.relative_index) / factor | 		var rel_time := (speed * (char_fx.elapsed_time - delay) - char_fx.relative_index) / factor | ||||||
| 
 | 
 | ||||||
| 		var scale := Vector2.ONE |  | ||||||
| 		if scale_curve: |  | ||||||
| 			scale *= scale_curve.sample_baked(rel_time) |  | ||||||
| 
 |  | ||||||
| 		var translation := Vector2.ZERO |  | ||||||
| 		if translation_curve: |  | ||||||
| 			if translation_curve.curve_x: |  | ||||||
| 				translation.x = translation_curve.curve_x.sample_baked(rel_time) |  | ||||||
| 			if translation_curve.curve_y: |  | ||||||
| 				translation.y = translation_curve.curve_y.sample_baked(rel_time) |  | ||||||
| 
 |  | ||||||
| 		char_fx.transform = ( |  | ||||||
| 			char_fx |  | ||||||
| 			. transform |  | ||||||
| 			. translated_local(-pivot) |  | ||||||
| 			. scaled_local(scale) |  | ||||||
| 			. translated_local(pivot) |  | ||||||
| 			. translated_local(translation) |  | ||||||
| 		) |  | ||||||
| 
 |  | ||||||
| 		char_fx.visible = rel_time > 0 | 		char_fx.visible = rel_time > 0 | ||||||
| 
 | 
 | ||||||
|  | 		if scale_curve or translation_curve: | ||||||
|  | 			var server := TextServerManager.get_primary_interface() | ||||||
|  | 			var glyph_size := server.font_get_glyph_size( | ||||||
|  | 				char_fx.font, 0.5 * glyph_size_factor * Vector2i.ONE, char_fx.glyph_index | ||||||
|  | 			) | ||||||
|  | 			var pivot := glyph_size * Vector2(-1, 1) | ||||||
|  | 
 | ||||||
|  | 			var scale := Vector2.ONE | ||||||
|  | 			if scale_curve: | ||||||
|  | 				scale *= scale_curve.sample_baked(rel_time) | ||||||
|  | 
 | ||||||
|  | 			var translation := Vector2.ZERO | ||||||
|  | 			if translation_curve: | ||||||
|  | 				if translation_curve.curve_x: | ||||||
|  | 					translation.x = translation_curve.curve_x.sample_baked(rel_time) | ||||||
|  | 				if translation_curve.curve_y: | ||||||
|  | 					translation.y = translation_curve.curve_y.sample_baked(rel_time) | ||||||
|  | 
 | ||||||
|  | 			char_fx.transform = ( | ||||||
|  | 				char_fx | ||||||
|  | 				. transform | ||||||
|  | 				. translated_local(-pivot) | ||||||
|  | 				. scaled_local(scale) | ||||||
|  | 				. translated_local(pivot) | ||||||
|  | 				. translated_local(translation) | ||||||
|  | 			) | ||||||
|  | 
 | ||||||
| 		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: | ||||||
|  | |||||||
							
								
								
									
										18
									
								
								src/ui/menus/title_screen/title_crawl.gd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/ui/menus/title_screen/title_crawl.gd
									
									
									
									
									
										Normal file
									
								
							| @ -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") | ||||||
							
								
								
									
										416
									
								
								src/ui/menus/title_screen/title_crawl.tscn
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										416
									
								
								src/ui/menus/title_screen/title_crawl.tscn
									
									
									
									
									
										Normal file
									
								
							| @ -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"] | ||||||
|  | |||||||
							
								
								
									
										15
									
								
								src/ui/menus/title_screen/title_world.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/ui/menus/title_screen/title_world.tres
									
									
									
									
									
										Normal file
									
								
							| @ -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") | ||||||
							
								
								
									
										22
									
								
								src/util/debug_version_info.gd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/util/debug_version_info.gd
									
									
									
									
									
										Normal file
									
								
							| @ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user