Compare commits
21 Commits
Author | SHA1 | Date | |
---|---|---|---|
0c039b996e | |||
8d1148e9b8 | |||
12bb5cdd84 | |||
81bd77e1fc | |||
5c66ac4867 | |||
5681d3f65d | |||
fd65fd5ec1 | |||
2671f01a72 | |||
7b915c4fb9 | |||
1d18668bf8 | |||
411a8fd1eb | |||
754c120c26 | |||
0045fc69c3 | |||
c60eaa562b | |||
fc15cad1b0 | |||
4a165756eb | |||
e5215356f3 | |||
207629e014 | |||
814a7c3c3c | |||
a40f4afbbb | |||
b43867b29d |
BIN
font/LilitaOne-Regular.ttf
Normal file
BIN
font/LilitaOne-Regular.ttf
Normal file
Binary file not shown.
34
font/LilitaOne-Regular.ttf.import
Normal file
34
font/LilitaOne-Regular.ttf.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://246jxnbu62q3"
|
||||||
|
path="res://.godot/imported/LilitaOne-Regular.ttf-7e2161443d37c26d9a127c9b42e001ae.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://font/LilitaOne-Regular.ttf"
|
||||||
|
dest_files=["res://.godot/imported/LilitaOne-Regular.ttf-7e2161443d37c26d9a127c9b42e001ae.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={}
|
94
font/OFL.txt
Normal file
94
font/OFL.txt
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
Copyright (c) 2011 Juan Montoreano (juan@remolacha.biz),
|
||||||
|
with Reserved Font Name Lilita
|
||||||
|
|
||||||
|
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.
|
@ -6,3 +6,4 @@
|
|||||||
albedo_texture = ExtResource("1_adacw")
|
albedo_texture = ExtResource("1_adacw")
|
||||||
metallic_specular = 0.0
|
metallic_specular = 0.0
|
||||||
texture_filter = 2
|
texture_filter = 2
|
||||||
|
disable_receive_shadows = true
|
||||||
|
@ -6,3 +6,4 @@
|
|||||||
albedo_texture = ExtResource("1_u5p53")
|
albedo_texture = ExtResource("1_u5p53")
|
||||||
metallic_specular = 0.0
|
metallic_specular = 0.0
|
||||||
texture_filter = 2
|
texture_filter = 2
|
||||||
|
disable_receive_shadows = true
|
||||||
|
@ -14,3 +14,4 @@ normal_texture = ExtResource("3_d1hb3")
|
|||||||
ao_enabled = true
|
ao_enabled = true
|
||||||
ao_texture = ExtResource("2_lytc3")
|
ao_texture = ExtResource("2_lytc3")
|
||||||
texture_filter = 2
|
texture_filter = 2
|
||||||
|
disable_receive_shadows = true
|
||||||
|
@ -6,3 +6,4 @@
|
|||||||
albedo_texture = ExtResource("1_hsryr")
|
albedo_texture = ExtResource("1_hsryr")
|
||||||
metallic_specular = 0.0
|
metallic_specular = 0.0
|
||||||
texture_filter = 2
|
texture_filter = 2
|
||||||
|
disable_receive_shadows = true
|
||||||
|
@ -14,3 +14,4 @@ normal_texture = ExtResource("4_db6g0")
|
|||||||
ao_enabled = true
|
ao_enabled = true
|
||||||
ao_texture = ExtResource("2_3732n")
|
ao_texture = ExtResource("2_3732n")
|
||||||
texture_filter = 5
|
texture_filter = 5
|
||||||
|
disable_receive_shadows = true
|
||||||
|
BIN
materials/stairs.png
Normal file
BIN
materials/stairs.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.6 MiB |
34
materials/stairs.png.import
Normal file
34
materials/stairs.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dv6fmvhxa0yyr"
|
||||||
|
path="res://.godot/imported/stairs.png-8852e0dd27c2e0c5b61937bcfdf2d9df.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://materials/stairs.png"
|
||||||
|
dest_files=["res://.godot/imported/stairs.png-8852e0dd27c2e0c5b61937bcfdf2d9df.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
@ -1,7 +1,7 @@
|
|||||||
[gd_resource type="StandardMaterial3D" load_steps=5 format=3 uid="uid://cobb5bm4y7nk7"]
|
[gd_resource type="StandardMaterial3D" load_steps=5 format=3 uid="uid://cobb5bm4y7nk7"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://tlaksepmx4fm" path="res://materials/steel/steel_albedo.jpg" id="1_y0jhp"]
|
[ext_resource type="Texture2D" uid="uid://tlaksepmx4fm" path="res://materials/steel/steel_albedo.jpg" id="1_y0jhp"]
|
||||||
[ext_resource type="Texture2D" uid="uid://tx3pf0iblqgo" path="res://materials/steel/steel_metallic.jpg" id="3_hddmm"]
|
[ext_resource type="Texture2D" uid="uid://tx3pf0iblqgo" path="res://materials/steel_fence/steel_fence_metallic.jpg" id="3_hddmm"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b76hh5upcpvrm" path="res://materials/steel_fence/steel_fence_normal.jpg" id="4_v1udo"]
|
[ext_resource type="Texture2D" uid="uid://b76hh5upcpvrm" path="res://materials/steel_fence/steel_fence_normal.jpg" id="4_v1udo"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bdqwdrblis6aw" path="res://materials/steel_fence/steel_fence_roughness.jpg" id="5_1ofxx"]
|
[ext_resource type="Texture2D" uid="uid://bdqwdrblis6aw" path="res://materials/steel_fence/steel_fence_roughness.jpg" id="5_1ofxx"]
|
||||||
|
|
||||||
@ -13,3 +13,4 @@ roughness_texture = ExtResource("5_1ofxx")
|
|||||||
normal_enabled = true
|
normal_enabled = true
|
||||||
normal_texture = ExtResource("4_v1udo")
|
normal_texture = ExtResource("4_v1udo")
|
||||||
texture_filter = 2
|
texture_filter = 2
|
||||||
|
disable_receive_shadows = true
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[gd_resource type="StandardMaterial3D" load_steps=5 format=3 uid="uid://dgf570wtqn17j"]
|
[gd_resource type="StandardMaterial3D" load_steps=5 format=3 uid="uid://dgf570wtqn17j"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://b4reodnhta7sr" path="res://materials/steel_fence/steel_fence_albedo.png" id="1_lupfc"]
|
[ext_resource type="Texture2D" uid="uid://b4reodnhta7sr" path="res://materials/steel_fence/steel_fence_albedo.png" id="1_lupfc"]
|
||||||
[ext_resource type="Texture2D" uid="uid://tx3pf0iblqgo" path="res://materials/steel/steel_metallic.jpg" id="3_rree2"]
|
[ext_resource type="Texture2D" uid="uid://tx3pf0iblqgo" path="res://materials/steel_fence/steel_fence_metallic.jpg" id="3_rree2"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b76hh5upcpvrm" path="res://materials/steel_fence/steel_fence_normal.jpg" id="4_6o2u3"]
|
[ext_resource type="Texture2D" uid="uid://b76hh5upcpvrm" path="res://materials/steel_fence/steel_fence_normal.jpg" id="4_6o2u3"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bdqwdrblis6aw" path="res://materials/steel_fence/steel_fence_roughness.jpg" id="5_7avjb"]
|
[ext_resource type="Texture2D" uid="uid://bdqwdrblis6aw" path="res://materials/steel_fence/steel_fence_roughness.jpg" id="5_7avjb"]
|
||||||
|
|
||||||
@ -14,3 +14,4 @@ roughness_texture = ExtResource("5_7avjb")
|
|||||||
normal_enabled = true
|
normal_enabled = true
|
||||||
normal_texture = ExtResource("4_6o2u3")
|
normal_texture = ExtResource("4_6o2u3")
|
||||||
texture_filter = 5
|
texture_filter = 5
|
||||||
|
disable_receive_shadows = true
|
||||||
|
@ -14,3 +14,4 @@ normal_texture = ExtResource("4_r7yms")
|
|||||||
ao_enabled = true
|
ao_enabled = true
|
||||||
ao_texture = ExtResource("2_byjax")
|
ao_texture = ExtResource("2_byjax")
|
||||||
texture_filter = 5
|
texture_filter = 5
|
||||||
|
disable_receive_shadows = true
|
||||||
|
@ -14,3 +14,4 @@ normal_texture = ExtResource("4_p2ds3")
|
|||||||
ao_enabled = true
|
ao_enabled = true
|
||||||
ao_texture = ExtResource("2_nln00")
|
ao_texture = ExtResource("2_nln00")
|
||||||
texture_filter = 5
|
texture_filter = 5
|
||||||
|
disable_receive_shadows = true
|
||||||
|
BIN
materials/tower.png
Normal file
BIN
materials/tower.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 718 KiB |
34
materials/tower.png.import
Normal file
34
materials/tower.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://d2p5wswquw0la"
|
||||||
|
path="res://.godot/imported/tower.png-af8481b47367d8ad6b6790723593a987.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://materials/tower.png"
|
||||||
|
dest_files=["res://.godot/imported/tower.png-af8481b47367d8ad6b6790723593a987.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
@ -7,3 +7,4 @@ albedo_texture = ExtResource("1_4040b")
|
|||||||
metallic_specular = 0.36
|
metallic_specular = 0.36
|
||||||
roughness = 0.63
|
roughness = 0.63
|
||||||
texture_filter = 2
|
texture_filter = 2
|
||||||
|
disable_receive_shadows = true
|
||||||
|
@ -14,3 +14,4 @@ normal_texture = ExtResource("4_pmu04")
|
|||||||
ao_enabled = true
|
ao_enabled = true
|
||||||
ao_texture = ExtResource("2_x5ntf")
|
ao_texture = ExtResource("2_x5ntf")
|
||||||
texture_filter = 5
|
texture_filter = 5
|
||||||
|
disable_receive_shadows = true
|
||||||
|
BIN
misc/cover.png
Normal file
BIN
misc/cover.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 184 KiB |
34
misc/cover.png.import
Normal file
34
misc/cover.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cfc4cc586c38e"
|
||||||
|
path="res://.godot/imported/cover.png-d93e27766f34d9ead04c7355b82975c1.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://misc/cover.png"
|
||||||
|
dest_files=["res://.godot/imported/cover.png-d93e27766f34d9ead04c7355b82975c1.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
7
misc/global_theme.tres
Normal file
7
misc/global_theme.tres
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[gd_resource type="Theme" load_steps=2 format=3 uid="uid://dpn05x2ipj8ah"]
|
||||||
|
|
||||||
|
[ext_resource type="FontFile" uid="uid://246jxnbu62q3" path="res://font/LilitaOne-Regular.ttf" id="1_7cjyy"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
Label/constants/outline_size = 2
|
||||||
|
Label/fonts/font = ExtResource("1_7cjyy")
|
BIN
misc/icon.png
Normal file
BIN
misc/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 172 KiB |
34
misc/icon.png.import
Normal file
34
misc/icon.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://mylp6a08fsjq"
|
||||||
|
path="res://.godot/imported/icon.png-9c21e69c4eccbea186fe74b71b99d6cb.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://misc/icon.png"
|
||||||
|
dest_files=["res://.godot/imported/icon.png-9c21e69c4eccbea186fe74b71b99d6cb.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
Binary file not shown.
@ -1,51 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://8nth3l65bb7r"
|
|
||||||
path="res://.godot/imported/grappling_hook.blend-2e604f48b288f3a507a2e743fac7348f.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://models/grappling_hook.blend"
|
|
||||||
dest_files=["res://.godot/imported/grappling_hook.blend-2e604f48b288f3a507a2e743fac7348f.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={}
|
|
||||||
blender/nodes/visible=0
|
|
||||||
blender/nodes/active_collection_only=false
|
|
||||||
blender/nodes/punctual_lights=true
|
|
||||||
blender/nodes/cameras=true
|
|
||||||
blender/nodes/custom_properties=true
|
|
||||||
blender/nodes/modifiers=1
|
|
||||||
blender/meshes/colors=false
|
|
||||||
blender/meshes/uvs=true
|
|
||||||
blender/meshes/normals=true
|
|
||||||
blender/meshes/tangents=true
|
|
||||||
blender/meshes/skins=2
|
|
||||||
blender/meshes/export_bones_deforming_mesh_only=false
|
|
||||||
blender/materials/unpack_enabled=true
|
|
||||||
blender/materials/export_materials=1
|
|
||||||
blender/animation/limit_playback=true
|
|
||||||
blender/animation/always_sample=true
|
|
||||||
blender/animation/group_tracks=true
|
|
@ -10,10 +10,11 @@ config_version=5
|
|||||||
|
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="gmtk24"
|
config/name="Miniature Maker"
|
||||||
run/main_scene="res://scenes/demo/demo.tscn"
|
run/main_scene="res://scenes/entrypoint_scene.tscn"
|
||||||
config/features=PackedStringArray("4.3", "C#", "Forward Plus")
|
config/features=PackedStringArray("4.3", "C#", "Forward Plus")
|
||||||
config/icon="res://misc/icon.svg"
|
boot_splash/image="res://misc/cover.png"
|
||||||
|
config/icon="res://misc/icon.png"
|
||||||
|
|
||||||
[autoload]
|
[autoload]
|
||||||
|
|
||||||
@ -21,10 +22,7 @@ UserSettings="*res://scripts/UserSettings.cs"
|
|||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/viewport_width=1920
|
|
||||||
window/size/viewport_height=1080
|
|
||||||
window/stretch/mode="canvas_items"
|
window/stretch/mode="canvas_items"
|
||||||
window/stretch/scale=2.0
|
|
||||||
|
|
||||||
[dotnet]
|
[dotnet]
|
||||||
|
|
||||||
@ -38,6 +36,10 @@ enabled=PackedStringArray("res://addons/func_godot/plugin.cfg")
|
|||||||
|
|
||||||
import/blender/enabled=false
|
import/blender/enabled=false
|
||||||
|
|
||||||
|
[gui]
|
||||||
|
|
||||||
|
theme/custom="res://misc/global_theme.tres"
|
||||||
|
|
||||||
[importer_defaults]
|
[importer_defaults]
|
||||||
|
|
||||||
texture={
|
texture={
|
||||||
|
@ -17,7 +17,7 @@ viewport_path = NodePath("BlueprintRenderingViewport")
|
|||||||
|
|
||||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_inyay"]
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_inyay"]
|
||||||
noise_type = 3
|
noise_type = 3
|
||||||
frequency = 0.0785
|
frequency = 0.009
|
||||||
|
|
||||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_fhswu"]
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_fhswu"]
|
||||||
color_ramp = SubResource("Gradient_w67xe")
|
color_ramp = SubResource("Gradient_w67xe")
|
||||||
@ -27,7 +27,7 @@ noise = SubResource("FastNoiseLite_inyay")
|
|||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
render_priority = 0
|
render_priority = 0
|
||||||
shader = ExtResource("9_v0ymc")
|
shader = ExtResource("9_v0ymc")
|
||||||
shader_parameter/FloatParameter = 0.002
|
shader_parameter/FloatParameter = 0.01
|
||||||
shader_parameter/ColorParameter2 = Color(0.176471, 0, 0.964706, 0)
|
shader_parameter/ColorParameter2 = Color(0.176471, 0, 0.964706, 0)
|
||||||
shader_parameter/ColorParameter = Color(1, 1, 1, 1)
|
shader_parameter/ColorParameter = Color(1, 1, 1, 1)
|
||||||
shader_parameter/Texture2DParameter = SubResource("ViewportTexture_cqsgk")
|
shader_parameter/Texture2DParameter = SubResource("ViewportTexture_cqsgk")
|
||||||
@ -82,11 +82,11 @@ Table = NodePath("../table")
|
|||||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 2.83695, 0, -4.36558)
|
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 2.83695, 0, -4.36558)
|
||||||
Hud = NodePath("../HUD")
|
Hud = NodePath("../HUD")
|
||||||
TrenchbroomMap = NodePath("../DemoMap")
|
TrenchbroomMap = NodePath("../DemoMap")
|
||||||
RelativeScale = 0.01
|
RelativeScale = 0.004
|
||||||
|
|
||||||
[node name="BlueprintDrawing" type="CSGBox3D" parent="table"]
|
[node name="BlueprintDrawing" type="CSGBox3D" parent="table"]
|
||||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.0030241, 1.1074, -0.000483751)
|
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.0030241, 1.1074, -0.000483751)
|
||||||
size = Vector3(0.9, 0.001, 0.9)
|
size = Vector3(0.36, 0.001, 0.36)
|
||||||
material = SubResource("ShaderMaterial_u26td")
|
material = SubResource("ShaderMaterial_u26td")
|
||||||
|
|
||||||
[node name="HUD" parent="." node_paths=PackedStringArray("Player") instance=ExtResource("7_g7tfv")]
|
[node name="HUD" parent="." node_paths=PackedStringArray("Player") instance=ExtResource("7_g7tfv")]
|
||||||
@ -97,7 +97,6 @@ Table = NodePath("../table")
|
|||||||
|
|
||||||
[node name="BlueprintRenderingViewport" type="SubViewport" parent="."]
|
[node name="BlueprintRenderingViewport" type="SubViewport" parent="."]
|
||||||
msaa_3d = 3
|
msaa_3d = 3
|
||||||
render_target_update_mode = 1
|
|
||||||
|
|
||||||
[node name="BlueprintOrthoCam" type="Camera3D" parent="BlueprintRenderingViewport"]
|
[node name="BlueprintOrthoCam" type="Camera3D" parent="BlueprintRenderingViewport"]
|
||||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, -1, 0)
|
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, -1, 0)
|
||||||
|
29
scenes/entrypoint_scene.tscn
Normal file
29
scenes/entrypoint_scene.tscn
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
[gd_scene load_steps=5 format=3 uid="uid://c5ksyousvxx7x"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dv81sy34l8ice" path="res://scenes/stairs/stairs.tscn" id="1_00r22"]
|
||||||
|
[ext_resource type="Script" path="res://scripts/SceneSwitcher.cs" id="1_ps0jf"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bqtfwxneu1eqw" path="res://scenes/main_menu.tscn" id="2_mxfpj"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://8po7ftboqq4k" path="res://scenes/demo/demo.tscn" id="2_rf0rf"]
|
||||||
|
|
||||||
|
[node name="EntrypointScene" type="Node" node_paths=PackedStringArray("LoadingScreen")]
|
||||||
|
process_mode = 3
|
||||||
|
script = ExtResource("1_ps0jf")
|
||||||
|
AddedLoadingScreenSeconds = 0.3
|
||||||
|
LoadingScreen = NodePath("LoadingScreen")
|
||||||
|
MainMenu = ExtResource("2_mxfpj")
|
||||||
|
DemoScene = ExtResource("2_rf0rf")
|
||||||
|
StairsScene = ExtResource("1_00r22")
|
||||||
|
|
||||||
|
[node name="LoadingScreen" type="CenterContainer" parent="."]
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_left = 4.0
|
||||||
|
offset_right = 4.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="LoadingScreen"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_font_sizes/font_size = 36
|
||||||
|
text = "Loading..."
|
@ -1,31 +0,0 @@
|
|||||||
[gd_scene load_steps=4 format=3 uid="uid://7povmsfyrjf4"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://8nth3l65bb7r" path="res://models/grappling_hook.blend" id="1_nljl0"]
|
|
||||||
|
|
||||||
[sub_resource type="CSharpScript" id="CSharpScript_4q8vt"]
|
|
||||||
script/source = "using Godot;
|
|
||||||
|
|
||||||
namespace Gmtk24 {
|
|
||||||
public partial class GrapplingHook : RigidBody3D {
|
|
||||||
public void OnCollisionEntered(Node node) {
|
|
||||||
Freeze = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_rp2xw"]
|
|
||||||
size = Vector3(0.872498, 0.875122, 0.902222)
|
|
||||||
|
|
||||||
[node name="GrapplingHook" type="RigidBody3D"]
|
|
||||||
contact_monitor = true
|
|
||||||
max_contacts_reported = 1
|
|
||||||
script = SubResource("CSharpScript_4q8vt")
|
|
||||||
|
|
||||||
[node name="grappling_hook" parent="." instance=ExtResource("1_nljl0")]
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
|
||||||
transform = Transform3D(0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0, 0, 1, 0.00187739, -0.0024816, -0.348884)
|
|
||||||
shape = SubResource("BoxShape3D_rp2xw")
|
|
||||||
|
|
||||||
[connection signal="body_entered" from="." to="." method="OnCollisionEntered"]
|
|
@ -15,6 +15,8 @@ sky_material = SubResource("ProceduralSkyMaterial_2n8bf")
|
|||||||
background_mode = 2
|
background_mode = 2
|
||||||
sky = SubResource("Sky_jvem5")
|
sky = SubResource("Sky_jvem5")
|
||||||
tonemap_mode = 2
|
tonemap_mode = 2
|
||||||
|
ssao_enabled = true
|
||||||
|
ssao_radius = 0.05
|
||||||
|
|
||||||
[node name="HazyEnv" type="Node3D"]
|
[node name="HazyEnv" type="Node3D"]
|
||||||
|
|
||||||
@ -22,6 +24,7 @@ tonemap_mode = 2
|
|||||||
transform = Transform3D(0.914416, 0.167281, -0.368593, 0.265225, 0.44028, 0.857793, 0.305777, -0.88214, 0.358232, 0, 2, 0)
|
transform = Transform3D(0.914416, 0.167281, -0.368593, 0.265225, 0.44028, 0.857793, 0.305777, -0.88214, 0.358232, 0, 2, 0)
|
||||||
light_angular_distance = 0.5
|
light_angular_distance = 0.5
|
||||||
light_bake_mode = 1
|
light_bake_mode = 1
|
||||||
|
shadow_enabled = true
|
||||||
|
|
||||||
[node name="Env" type="WorldEnvironment" parent="."]
|
[node name="Env" type="WorldEnvironment" parent="."]
|
||||||
environment = SubResource("Environment_exkg8")
|
environment = SubResource("Environment_exkg8")
|
||||||
|
@ -64,11 +64,11 @@ anchor_bottom = 1.0
|
|||||||
offset_top = -134.0
|
offset_top = -134.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 0
|
grow_vertical = 0
|
||||||
|
mouse_filter = 2
|
||||||
|
|
||||||
[node name="HoverText" type="Label" parent="CenterContainer2"]
|
[node name="HoverText" type="Label" parent="CenterContainer2"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_font_sizes/font_size = 24
|
theme_override_font_sizes/font_size = 24
|
||||||
text = "[Hover Text]"
|
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
|
|
||||||
[node name="TableRecallPrompt" type="Label" parent="."]
|
[node name="TableRecallPrompt" type="Label" parent="."]
|
||||||
@ -78,4 +78,3 @@ offset_top = 22.0
|
|||||||
offset_right = 314.0
|
offset_right = 314.0
|
||||||
offset_bottom = 67.0
|
offset_bottom = 67.0
|
||||||
theme_override_font_sizes/font_size = 24
|
theme_override_font_sizes/font_size = 24
|
||||||
text = "[Table Recall Text]"
|
|
||||||
|
@ -8,7 +8,7 @@ bg_color = Color(0.2, 0.2, 0.2, 0.921569)
|
|||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q40bd"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q40bd"]
|
||||||
bg_color = Color(0.25, 0.25, 0.25, 0.909804)
|
bg_color = Color(0.25, 0.25, 0.25, 0.909804)
|
||||||
|
|
||||||
[node name="PauseMenu" type="Control" node_paths=PackedStringArray("InitialFocusTarget", "VolumeSlider", "CameraSensitivityX", "CameraSensitivityY", "CameraInvertX", "CameraInvertY")]
|
[node name="PauseMenu" type="Control" node_paths=PackedStringArray("InitialFocusTarget", "VolumeSlider", "CameraSensitivityX", "CameraSensitivityY", "CameraInvertX", "CameraInvertY", "TableOrbitSpeedX", "TableOrbitSpeedY", "TableOrbitInvertX", "TableOrbitInvertY", "MsaaOptions", "RenderScaleOptions", "UpscalingOptions", "WindowModeOptions")]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
@ -18,11 +18,19 @@ grow_horizontal = 2
|
|||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
script = ExtResource("1_p5jo3")
|
script = ExtResource("1_p5jo3")
|
||||||
InitialFocusTarget = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/ContinueButton")
|
InitialFocusTarget = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/ContinueButton")
|
||||||
VolumeSlider = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options/VolumeSlider")
|
VolumeSlider = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/General settings/Grid/VolumeSlider")
|
||||||
CameraSensitivityX = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options/CameraXSlider")
|
CameraSensitivityX = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Camera/Grid/CameraXSlider")
|
||||||
CameraSensitivityY = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options/CameraYSlider")
|
CameraSensitivityY = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Camera/Grid/CameraYSlider")
|
||||||
CameraInvertX = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options/CameraXInvCheck")
|
CameraInvertX = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Camera/Grid/CameraXInvCheck")
|
||||||
CameraInvertY = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options/CameraYInvCheck")
|
CameraInvertY = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Camera/Grid/CameraYInvCheck")
|
||||||
|
TableOrbitSpeedX = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid/RotateSpeedSlider")
|
||||||
|
TableOrbitSpeedY = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid/TiltSpeedSlider")
|
||||||
|
TableOrbitInvertX = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid/InvertRotateCheck")
|
||||||
|
TableOrbitInvertY = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid/InvertTiltCheck")
|
||||||
|
MsaaOptions = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid/MsaaOptions")
|
||||||
|
RenderScaleOptions = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid/RenderScaleOptions")
|
||||||
|
UpscalingOptions = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid/UpscaleOptions")
|
||||||
|
WindowModeOptions = NodePath("CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid/FullscreenOptions")
|
||||||
|
|
||||||
[node name="CenterContainer" type="CenterContainer" parent="."]
|
[node name="CenterContainer" type="CenterContainer" parent="."]
|
||||||
process_mode = 2
|
process_mode = 2
|
||||||
@ -61,17 +69,31 @@ layout_mode = 2
|
|||||||
focus_neighbor_top = NodePath("../QuitButton")
|
focus_neighbor_top = NodePath("../QuitButton")
|
||||||
text = "Continue"
|
text = "Continue"
|
||||||
|
|
||||||
[node name="Options" type="GridContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons"]
|
[node name="TabContainer" type="TabContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons"]
|
||||||
|
custom_minimum_size = Vector2(340, 200)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_font_sizes/font_size = 11
|
||||||
|
current_tab = 0
|
||||||
|
|
||||||
|
[node name="General settings" type="MarginContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 10
|
||||||
|
theme_override_constants/margin_top = 10
|
||||||
|
theme_override_constants/margin_right = 10
|
||||||
|
theme_override_constants/margin_bottom = 10
|
||||||
|
metadata/_tab_index = 0
|
||||||
|
|
||||||
|
[node name="Grid" type="GridContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/General settings"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_constants/h_separation = 14
|
theme_override_constants/h_separation = 14
|
||||||
theme_override_constants/v_separation = 9
|
theme_override_constants/v_separation = 9
|
||||||
columns = 2
|
columns = 2
|
||||||
|
|
||||||
[node name="VolumeLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options"]
|
[node name="VolumeLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/General settings/Grid"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Volume"
|
text = "Volume"
|
||||||
|
|
||||||
[node name="VolumeSlider" type="HSlider" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options"]
|
[node name="VolumeSlider" type="HSlider" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/General settings/Grid"]
|
||||||
custom_minimum_size = Vector2(100, 0)
|
custom_minimum_size = Vector2(100, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
@ -79,46 +101,202 @@ size_flags_vertical = 1
|
|||||||
max_value = 1.0
|
max_value = 1.0
|
||||||
step = 0.05
|
step = 0.05
|
||||||
|
|
||||||
[node name="CameraXLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options"]
|
[node name="Camera" type="MarginContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 10
|
||||||
|
theme_override_constants/margin_top = 10
|
||||||
|
theme_override_constants/margin_right = 10
|
||||||
|
theme_override_constants/margin_bottom = 10
|
||||||
|
metadata/_tab_index = 1
|
||||||
|
|
||||||
|
[node name="Grid" type="GridContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Camera"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/h_separation = 14
|
||||||
|
theme_override_constants/v_separation = 9
|
||||||
|
columns = 2
|
||||||
|
|
||||||
|
[node name="CameraXLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Camera/Grid"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Camera yaw speed"
|
text = "Camera yaw speed"
|
||||||
|
|
||||||
[node name="CameraXSlider" type="HSlider" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options"]
|
[node name="CameraXSlider" type="HSlider" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Camera/Grid"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 1
|
size_flags_vertical = 1
|
||||||
max_value = 10.0
|
max_value = 10.0
|
||||||
step = 0.25
|
step = 0.25
|
||||||
|
|
||||||
[node name="CameraXInvLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options"]
|
[node name="CameraXInvLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Camera/Grid"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Camera invert yaw"
|
text = "Camera invert yaw"
|
||||||
|
|
||||||
[node name="CameraXInvCheck" type="CheckButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options"]
|
[node name="CameraXInvCheck" type="CheckButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Camera/Grid"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
action_mode = 0
|
action_mode = 0
|
||||||
|
|
||||||
[node name="CameraYLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options"]
|
[node name="CameraYLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Camera/Grid"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Camera pitch speed"
|
text = "Camera pitch speed"
|
||||||
|
|
||||||
[node name="CameraYSlider" type="HSlider" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options"]
|
[node name="CameraYSlider" type="HSlider" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Camera/Grid"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 1
|
size_flags_vertical = 1
|
||||||
max_value = 10.0
|
max_value = 10.0
|
||||||
step = 0.25
|
step = 0.25
|
||||||
|
|
||||||
[node name="CameraYInvLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options"]
|
[node name="CameraYInvLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Camera/Grid"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Camera invert pitch"
|
text = "Camera invert pitch"
|
||||||
|
|
||||||
[node name="CameraYInvCheck" type="CheckButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/Options"]
|
[node name="CameraYInvCheck" type="CheckButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Camera/Grid"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
action_mode = 0
|
action_mode = 0
|
||||||
|
|
||||||
|
[node name="Building" type="MarginContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 10
|
||||||
|
theme_override_constants/margin_top = 10
|
||||||
|
theme_override_constants/margin_right = 10
|
||||||
|
theme_override_constants/margin_bottom = 10
|
||||||
|
metadata/_tab_index = 2
|
||||||
|
|
||||||
|
[node name="Grid" type="GridContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/h_separation = 14
|
||||||
|
theme_override_constants/v_separation = 9
|
||||||
|
columns = 2
|
||||||
|
|
||||||
|
[node name="RotateSpeedLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Rotation speed"
|
||||||
|
|
||||||
|
[node name="RotateSpeedSlider" type="HSlider" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 1
|
||||||
|
max_value = 6.0
|
||||||
|
step = 0.25
|
||||||
|
|
||||||
|
[node name="InvertRotateLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Invert rotation"
|
||||||
|
|
||||||
|
[node name="InvertRotateCheck" type="CheckButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
action_mode = 0
|
||||||
|
|
||||||
|
[node name="TiltSpeedLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Tilt speed"
|
||||||
|
|
||||||
|
[node name="TiltSpeedSlider" type="HSlider" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 1
|
||||||
|
max_value = 6.0
|
||||||
|
step = 0.25
|
||||||
|
|
||||||
|
[node name="InvertTiltLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Invert tilt"
|
||||||
|
|
||||||
|
[node name="InvertTiltCheck" type="CheckButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Building/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
action_mode = 0
|
||||||
|
|
||||||
|
[node name="Graphics" type="MarginContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 10
|
||||||
|
theme_override_constants/margin_top = 10
|
||||||
|
theme_override_constants/margin_right = 10
|
||||||
|
theme_override_constants/margin_bottom = 10
|
||||||
|
metadata/_tab_index = 3
|
||||||
|
|
||||||
|
[node name="Grid" type="GridContainer" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/h_separation = 14
|
||||||
|
theme_override_constants/v_separation = 9
|
||||||
|
columns = 2
|
||||||
|
|
||||||
|
[node name="FullscreenLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Display mode"
|
||||||
|
|
||||||
|
[node name="FullscreenOptions" type="OptionButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
selected = 0
|
||||||
|
item_count = 3
|
||||||
|
popup/item_0/text = "Windowed"
|
||||||
|
popup/item_1/text = "Fullscreen"
|
||||||
|
popup/item_1/id = 1
|
||||||
|
popup/item_2/text = "Exclusive fullscreen"
|
||||||
|
popup/item_2/id = 2
|
||||||
|
|
||||||
|
[node name="MsaaLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "MSAA"
|
||||||
|
|
||||||
|
[node name="MsaaOptions" type="OptionButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
selected = 2
|
||||||
|
item_count = 4
|
||||||
|
popup/item_0/text = "Disabled"
|
||||||
|
popup/item_1/text = "2 samples"
|
||||||
|
popup/item_1/id = 1
|
||||||
|
popup/item_2/text = "4 samples"
|
||||||
|
popup/item_2/id = 2
|
||||||
|
popup/item_3/text = "8 samples"
|
||||||
|
popup/item_3/id = 3
|
||||||
|
|
||||||
|
[node name="RenderScaleLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Render scale
|
||||||
|
"
|
||||||
|
|
||||||
|
[node name="RenderScaleOptions" type="OptionButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
selected = 3
|
||||||
|
item_count = 6
|
||||||
|
popup/item_0/text = "25%"
|
||||||
|
popup/item_0/id = 25
|
||||||
|
popup/item_1/text = "50%"
|
||||||
|
popup/item_1/id = 50
|
||||||
|
popup/item_2/text = "75%"
|
||||||
|
popup/item_2/id = 75
|
||||||
|
popup/item_3/text = "100%"
|
||||||
|
popup/item_3/id = 100
|
||||||
|
popup/item_4/text = "150%"
|
||||||
|
popup/item_4/id = 150
|
||||||
|
popup/item_5/text = "200%"
|
||||||
|
popup/item_5/id = 200
|
||||||
|
|
||||||
|
[node name="UpscaleLabel" type="Label" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Upscaling"
|
||||||
|
|
||||||
|
[node name="UpscaleOptions" type="OptionButton" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons/TabContainer/Graphics/Grid"]
|
||||||
|
layout_mode = 2
|
||||||
|
disabled = true
|
||||||
|
selected = 0
|
||||||
|
item_count = 3
|
||||||
|
popup/item_0/text = "Linear"
|
||||||
|
popup/item_1/text = "FSR 1.0"
|
||||||
|
popup/item_1/id = 1
|
||||||
|
popup/item_2/text = "FSR 2.2"
|
||||||
|
popup/item_2/id = 2
|
||||||
|
|
||||||
[node name="QuitButton" type="Button" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons"]
|
[node name="QuitButton" type="Button" parent="CenterContainer/HBoxContainer/OptionsAndButtonsContainer/MarginContainer/Options and buttons"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
focus_neighbor_bottom = NodePath("../ContinueButton")
|
focus_neighbor_bottom = NodePath("../ContinueButton")
|
||||||
text = "Quit"
|
text = "Back to main menu"
|
||||||
|
|
||||||
[node name="CreditsContainer" type="PanelContainer" parent="CenterContainer/HBoxContainer"]
|
[node name="CreditsContainer" type="PanelContainer" parent="CenterContainer/HBoxContainer"]
|
||||||
custom_minimum_size = Vector2(300, 0)
|
custom_minimum_size = Vector2(300, 0)
|
||||||
|
108
scenes/main_menu.tscn
Normal file
108
scenes/main_menu.tscn
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
[gd_scene load_steps=4 format=3 uid="uid://bqtfwxneu1eqw"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/MainMenu.cs" id="1_8obly"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://d2p5wswquw0la" path="res://materials/tower.png" id="1_h16yv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dv6fmvhxa0yyr" path="res://materials/stairs.png" id="2_6auxm"]
|
||||||
|
|
||||||
|
[node name="MainMenu" 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_8obly")
|
||||||
|
|
||||||
|
[node name="Panel" type="Panel" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="GameNameLabel" type="Label" parent="Panel"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 10
|
||||||
|
anchor_right = 1.0
|
||||||
|
offset_top = 100.0
|
||||||
|
offset_bottom = 188.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
theme_override_font_sizes/font_size = 64
|
||||||
|
text = "Miniature Maker"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="Panel"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -602.0
|
||||||
|
offset_top = -300.0
|
||||||
|
offset_right = 602.0
|
||||||
|
offset_bottom = 300.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="BoxContainer2" type="BoxContainer" parent="Panel/HBoxContainer"]
|
||||||
|
custom_minimum_size = Vector2(300, 300)
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
vertical = true
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
|
[node name="TextureRect" type="TextureRect" parent="Panel/HBoxContainer/BoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
texture = ExtResource("1_h16yv")
|
||||||
|
expand_mode = 5
|
||||||
|
stretch_mode = 5
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
|
[node name="TowerButton" type="Button" parent="Panel/HBoxContainer/BoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_font_sizes/font_size = 32
|
||||||
|
text = "Tower"
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
|
[node name="BoxContainer" type="BoxContainer" parent="Panel/HBoxContainer"]
|
||||||
|
custom_minimum_size = Vector2(300, 300)
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
vertical = true
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
|
[node name="TextureRect" type="TextureRect" parent="Panel/HBoxContainer/BoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
texture = ExtResource("2_6auxm")
|
||||||
|
expand_mode = 5
|
||||||
|
stretch_mode = 5
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
|
[node name="StairsButton" type="Button" parent="Panel/HBoxContainer/BoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_font_sizes/font_size = 32
|
||||||
|
text = "Stairs"
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
|
[node name="QuitButton" type="Button" parent="Panel"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 7
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 1.0
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_left = -100.0
|
||||||
|
offset_top = -180.0
|
||||||
|
offset_right = 100.0
|
||||||
|
offset_bottom = -127.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 0
|
||||||
|
theme_override_font_sizes/font_size = 32
|
||||||
|
text = "Quit"
|
||||||
|
|
||||||
|
[connection signal="pressed" from="Panel/HBoxContainer/BoxContainer2/TowerButton" to="." method="Tower"]
|
||||||
|
[connection signal="pressed" from="Panel/HBoxContainer/BoxContainer/StairsButton" to="." method="Stairs"]
|
||||||
|
[connection signal="pressed" from="Panel/QuitButton" to="." method="Quit"]
|
Binary file not shown.
@ -23,4 +23,4 @@ compress/channel_pack=1
|
|||||||
mipmaps/generate=false
|
mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
slices/horizontal=1
|
slices/horizontal=1
|
||||||
slices/vertical=1
|
slices/vertical=2
|
||||||
|
Binary file not shown.
@ -44,12 +44,13 @@ light_data = ExtResource("2_36ysp")
|
|||||||
|
|
||||||
[node name="HazyEnv" parent="." instance=ExtResource("3_gdvn0")]
|
[node name="HazyEnv" parent="." instance=ExtResource("3_gdvn0")]
|
||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource("8_6btor")]
|
[node name="Player" parent="." node_paths=PackedStringArray("Table") instance=ExtResource("8_6btor")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -58.6119, 24, 3.65156)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -205.512, -4.76837e-07, 45.9007)
|
||||||
MaxVolumeWindHeight = 60.0
|
MaxVolumeWindHeight = 60.0
|
||||||
|
Table = NodePath("../table")
|
||||||
|
|
||||||
[node name="table" parent="." node_paths=PackedStringArray("Hud", "TrenchbroomMap") instance=ExtResource("10_hcwch")]
|
[node name="table" parent="." node_paths=PackedStringArray("Hud", "TrenchbroomMap") instance=ExtResource("10_hcwch")]
|
||||||
transform = Transform3D(-0.0123217, 0, 0.999924, 0, 1, 0, -0.999924, 0, -0.0123217, -58.2601, 24.0011, 0)
|
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -205.16, -0.00674486, 42.2491)
|
||||||
Hud = NodePath("../HUD")
|
Hud = NodePath("../HUD")
|
||||||
TrenchbroomMap = NodePath("../StairsMap")
|
TrenchbroomMap = NodePath("../StairsMap")
|
||||||
RelativeScale = 0.002
|
RelativeScale = 0.002
|
||||||
@ -64,7 +65,8 @@ material = SubResource("ShaderMaterial_ltak5")
|
|||||||
[node name="HUD" parent="." node_paths=PackedStringArray("Player") instance=ExtResource("8_i25qr")]
|
[node name="HUD" parent="." node_paths=PackedStringArray("Player") instance=ExtResource("8_i25qr")]
|
||||||
Player = NodePath("../Player")
|
Player = NodePath("../Player")
|
||||||
|
|
||||||
[node name="PauseMenu" parent="." instance=ExtResource("9_cfhxe")]
|
[node name="PauseMenu" parent="." node_paths=PackedStringArray("Table") instance=ExtResource("9_cfhxe")]
|
||||||
|
Table = NodePath("../table")
|
||||||
|
|
||||||
[node name="SubViewport" type="SubViewport" parent="."]
|
[node name="SubViewport" type="SubViewport" parent="."]
|
||||||
msaa_3d = 3
|
msaa_3d = 3
|
||||||
|
File diff suppressed because one or more lines are too long
@ -47,6 +47,8 @@ namespace Gmtk24 {
|
|||||||
|
|
||||||
HoverText.Text = $"{FormButtonNames("interact")}: {interactible.InteractName}";
|
HoverText.Text = $"{FormButtonNames("interact")}: {interactible.InteractName}";
|
||||||
} else {
|
} else {
|
||||||
|
Hovered?.SetHovered(false);
|
||||||
|
Hovered = null;
|
||||||
HoverText.Text = "";
|
HoverText.Text = "";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -66,9 +68,9 @@ namespace Gmtk24 {
|
|||||||
if (!Player.Table.Orbit.IsEnabled) {
|
if (!Player.Table.Orbit.IsEnabled) {
|
||||||
var names = FormButtonNames("toggle_table");
|
var names = FormButtonNames("toggle_table");
|
||||||
if (Player.Table.IsEnabled)
|
if (Player.Table.IsEnabled)
|
||||||
CornerPrompt.Text = $"{names}: {"Recall Table"}";
|
CornerPrompt.Text = $"{names}: {"Dismiss Table"}";
|
||||||
else
|
else
|
||||||
CornerPrompt.Text = $"{names}: {"Spawn Table"}";
|
CornerPrompt.Text = $"{names}: {"Summon Table"}";
|
||||||
} else {
|
} else {
|
||||||
if (Player.Table.Orbit.HeldBlock == null) {
|
if (Player.Table.Orbit.HeldBlock == null) {
|
||||||
var zoom_out = FormButtonNames("zoom_orbit_out");
|
var zoom_out = FormButtonNames("zoom_orbit_out");
|
||||||
|
19
scripts/MainMenu.cs
Normal file
19
scripts/MainMenu.cs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
using Gmtk24;
|
||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Gmtk24 {
|
||||||
|
public partial class MainMenu : Control {
|
||||||
|
public void Tower() {
|
||||||
|
SceneSwitcher.Singleton.SwitchToScene(SceneSwitcher.Scene.Demo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Stairs() {
|
||||||
|
SceneSwitcher.Singleton.SwitchToScene(SceneSwitcher.Scene.Stairs);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Quit() {
|
||||||
|
GetTree().Quit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -30,7 +30,7 @@ namespace Gmtk24 {
|
|||||||
[Export]
|
[Export]
|
||||||
public float RotateAmt = (float)(Math.PI / 12);
|
public float RotateAmt = (float)(Math.PI / 12);
|
||||||
[Export]
|
[Export]
|
||||||
public float DragDistanceTreshold = 500f;
|
public float DragDistanceTreshold = 150f;
|
||||||
|
|
||||||
[ExportCategory("Debug")]
|
[ExportCategory("Debug")]
|
||||||
[Export]
|
[Export]
|
||||||
@ -104,7 +104,7 @@ namespace Gmtk24 {
|
|||||||
Input.MouseMode = Input.MouseModeEnum.Visible;
|
Input.MouseMode = Input.MouseModeEnum.Visible;
|
||||||
|
|
||||||
if (Input.IsActionPressed("drag_orbit") && @event is InputEventMouseMotion mouseMotion) {
|
if (Input.IsActionPressed("drag_orbit") && @event is InputEventMouseMotion mouseMotion) {
|
||||||
var cameraSensitivity = UserSettings.Singleton.GetCameraSpeedMultipliers();
|
var cameraSensitivity = UserSettings.Singleton.GetOrbitSpeedMultipliers();
|
||||||
var mouseMultiplier = 0.0003f;
|
var mouseMultiplier = 0.0003f;
|
||||||
CurrentYaw -= mouseMotion.ScreenRelative.X * mouseMultiplier * cameraSensitivity.X;
|
CurrentYaw -= mouseMotion.ScreenRelative.X * mouseMultiplier * cameraSensitivity.X;
|
||||||
CurrentPitch -= mouseMotion.ScreenRelative.Y * mouseMultiplier * cameraSensitivity.Y;
|
CurrentPitch -= mouseMotion.ScreenRelative.Y * mouseMultiplier * cameraSensitivity.Y;
|
||||||
|
@ -4,9 +4,10 @@ namespace Gmtk24 {
|
|||||||
public partial class PauseMenu : Control {
|
public partial class PauseMenu : Control {
|
||||||
[Export]
|
[Export]
|
||||||
public Control InitialFocusTarget;
|
public Control InitialFocusTarget;
|
||||||
[ExportCategory("Setting controls")]
|
[ExportCategory("Setting controls (general)")]
|
||||||
[Export]
|
[Export]
|
||||||
public Range VolumeSlider;
|
public Range VolumeSlider;
|
||||||
|
[ExportCategory("Setting controls (camera)")]
|
||||||
[Export]
|
[Export]
|
||||||
public Range CameraSensitivityX;
|
public Range CameraSensitivityX;
|
||||||
[Export]
|
[Export]
|
||||||
@ -15,6 +16,24 @@ namespace Gmtk24 {
|
|||||||
public BaseButton CameraInvertX;
|
public BaseButton CameraInvertX;
|
||||||
[Export]
|
[Export]
|
||||||
public BaseButton CameraInvertY;
|
public BaseButton CameraInvertY;
|
||||||
|
[ExportCategory("Setting controls (building)")]
|
||||||
|
[Export]
|
||||||
|
public Range TableOrbitSpeedX;
|
||||||
|
[Export]
|
||||||
|
public Range TableOrbitSpeedY;
|
||||||
|
[Export]
|
||||||
|
public BaseButton TableOrbitInvertX;
|
||||||
|
[Export]
|
||||||
|
public BaseButton TableOrbitInvertY;
|
||||||
|
[ExportCategory("Setting controls (graphics)")]
|
||||||
|
[Export]
|
||||||
|
public OptionButton MsaaOptions;
|
||||||
|
[Export]
|
||||||
|
public OptionButton RenderScaleOptions;
|
||||||
|
[Export]
|
||||||
|
public OptionButton UpscalingOptions;
|
||||||
|
[Export]
|
||||||
|
public OptionButton WindowModeOptions;
|
||||||
|
|
||||||
[Export]
|
[Export]
|
||||||
public Table Table;
|
public Table Table;
|
||||||
@ -24,6 +43,7 @@ namespace Gmtk24 {
|
|||||||
public override void _Ready() {
|
public override void _Ready() {
|
||||||
VolumeSlider.Value = UserSettings.Singleton.Volume;
|
VolumeSlider.Value = UserSettings.Singleton.Volume;
|
||||||
VolumeSlider.ValueChanged += (value) => UserSettings.Singleton.SetVolume((float)value);
|
VolumeSlider.ValueChanged += (value) => UserSettings.Singleton.SetVolume((float)value);
|
||||||
|
|
||||||
CameraSensitivityX.Value = UserSettings.Singleton.CameraSensitivityX;
|
CameraSensitivityX.Value = UserSettings.Singleton.CameraSensitivityX;
|
||||||
CameraSensitivityX.ValueChanged += (value) => UserSettings.Singleton.CameraSensitivityX = (float)value;
|
CameraSensitivityX.ValueChanged += (value) => UserSettings.Singleton.CameraSensitivityX = (float)value;
|
||||||
CameraSensitivityY.Value = UserSettings.Singleton.CameraSensitivityY;
|
CameraSensitivityY.Value = UserSettings.Singleton.CameraSensitivityY;
|
||||||
@ -33,7 +53,67 @@ namespace Gmtk24 {
|
|||||||
CameraInvertY.ButtonPressed = UserSettings.Singleton.CameraInvertY;
|
CameraInvertY.ButtonPressed = UserSettings.Singleton.CameraInvertY;
|
||||||
CameraInvertY.Toggled += (on) => UserSettings.Singleton.CameraInvertY = on;
|
CameraInvertY.Toggled += (on) => UserSettings.Singleton.CameraInvertY = on;
|
||||||
|
|
||||||
Open();
|
TableOrbitSpeedX.Value = UserSettings.Singleton.TableOrbitSpeedX;
|
||||||
|
TableOrbitSpeedX.ValueChanged += (value) => UserSettings.Singleton.TableOrbitSpeedX = (float)value;
|
||||||
|
TableOrbitSpeedY.Value = UserSettings.Singleton.TableOrbitSpeedY;
|
||||||
|
TableOrbitSpeedY.ValueChanged += (value) => UserSettings.Singleton.TableOrbitSpeedY = (float)value;
|
||||||
|
TableOrbitInvertX.ButtonPressed = UserSettings.Singleton.TableOrbitInvertX;
|
||||||
|
TableOrbitInvertX.Toggled += (on) => UserSettings.Singleton.TableOrbitInvertX = on;
|
||||||
|
TableOrbitInvertY.ButtonPressed = UserSettings.Singleton.TableOrbitInvertY;
|
||||||
|
TableOrbitInvertY.Toggled += (on) => UserSettings.Singleton.TableOrbitInvertY = on;
|
||||||
|
|
||||||
|
Viewport vp = GetViewport();
|
||||||
|
|
||||||
|
MsaaOptions.Selected = (int)vp.Msaa3D;
|
||||||
|
MsaaOptions.ItemSelected += (index) => {
|
||||||
|
vp.Msaa3D = (Viewport.Msaa)index;
|
||||||
|
GD.Print("Set MSAA to: ", vp.Msaa3D);
|
||||||
|
};
|
||||||
|
|
||||||
|
RenderScaleOptions.Selected = -1;
|
||||||
|
for (int i = 0; i < RenderScaleOptions.ItemCount; i++) {
|
||||||
|
if ((int)(vp.Scaling3DScale * 100) == RenderScaleOptions.GetItemId(i)) {
|
||||||
|
RenderScaleOptions.Selected = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
RenderScaleOptions.ItemSelected += (index) => {
|
||||||
|
vp.Scaling3DScale = RenderScaleOptions.GetItemId((int)index) / 100f;
|
||||||
|
UpscalingOptions.Disabled = vp.Scaling3DScale > 1;
|
||||||
|
GD.Print("Set scale to: ", vp.Scaling3DScale);
|
||||||
|
};
|
||||||
|
|
||||||
|
UpscalingOptions.Selected = (int)vp.Scaling3DMode;
|
||||||
|
UpscalingOptions.ItemSelected += (index) => {
|
||||||
|
vp.Scaling3DMode = (Viewport.Scaling3DModeEnum)index;
|
||||||
|
GD.Print("Set scaling mode to: ", vp.Scaling3DMode);
|
||||||
|
};
|
||||||
|
|
||||||
|
DisplayServer.WindowMode mode = DisplayServer.WindowGetMode();
|
||||||
|
WindowModeOptions.Selected = 0;
|
||||||
|
if (mode == DisplayServer.WindowMode.Fullscreen) {
|
||||||
|
WindowModeOptions.Selected = 1;
|
||||||
|
} else if (mode == DisplayServer.WindowMode.ExclusiveFullscreen) {
|
||||||
|
WindowModeOptions.Selected = 2;
|
||||||
|
}
|
||||||
|
WindowModeOptions.ItemSelected += (index) => {
|
||||||
|
DisplayServer.WindowMode currentMode = DisplayServer.WindowGetMode();
|
||||||
|
DisplayServer.WindowMode windowedMode = DisplayServer.WindowMode.Windowed;
|
||||||
|
if (currentMode != DisplayServer.WindowMode.Fullscreen
|
||||||
|
&& currentMode != DisplayServer.WindowMode.ExclusiveFullscreen) {
|
||||||
|
// Not fullscreen: set the windowed mode to the current one to preserve maximizing status
|
||||||
|
windowedMode = currentMode;
|
||||||
|
}
|
||||||
|
if (index == 0) {
|
||||||
|
DisplayServer.WindowSetMode(windowedMode);
|
||||||
|
} else if (index == 1) {
|
||||||
|
DisplayServer.WindowSetMode(DisplayServer.WindowMode.Fullscreen);
|
||||||
|
} else if (index == 2) {
|
||||||
|
DisplayServer.WindowSetMode(DisplayServer.WindowMode.ExclusiveFullscreen);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void _Input(InputEvent @event) {
|
public override void _Input(InputEvent @event) {
|
||||||
@ -64,7 +144,7 @@ namespace Gmtk24 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void Quit() {
|
public void Quit() {
|
||||||
GetTree().Quit();
|
SceneSwitcher.Singleton.SwitchToScene(SceneSwitcher.Scene.MainMenu);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
112
scripts/SceneSwitcher.cs
Normal file
112
scripts/SceneSwitcher.cs
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
using System.Threading;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Gmtk24 {
|
||||||
|
public partial class SceneSwitcher : Node {
|
||||||
|
public enum Scene {
|
||||||
|
MainMenu,
|
||||||
|
Demo,
|
||||||
|
Stairs,
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>This is the entrypoint of the godot project, and never gets
|
||||||
|
/// unloaded. Set when the entrypoint scene is loaded.</summary>
|
||||||
|
public static SceneSwitcher Singleton { get; private set; }
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
public float AddedLoadingScreenSeconds = 0.5f;
|
||||||
|
[Export]
|
||||||
|
public Control LoadingScreen;
|
||||||
|
[Export]
|
||||||
|
public PackedScene MainMenu;
|
||||||
|
[Export]
|
||||||
|
public PackedScene DemoScene;
|
||||||
|
[Export]
|
||||||
|
public PackedScene StairsScene;
|
||||||
|
|
||||||
|
private PackedScene NextScene = null;
|
||||||
|
private Node InstantiatedScene = null;
|
||||||
|
private bool SceneLoaded = false;
|
||||||
|
/// <summary>The instantiation is deferred a bit to let the loading
|
||||||
|
/// screen actually render in case the loading takes more than a few
|
||||||
|
/// milliseconds.</summary>
|
||||||
|
private float SceneLoadCooldown = 0;
|
||||||
|
|
||||||
|
public override void _Ready() {
|
||||||
|
Singleton = this;
|
||||||
|
SwitchToScene(Scene.MainMenu);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _UnhandledInput(InputEvent @event) {
|
||||||
|
if (@event is InputEventKey keyEv && keyEv.Pressed && keyEv.CtrlPressed) {
|
||||||
|
if (keyEv.Keycode == Key.F1) {
|
||||||
|
SwitchToScene(Scene.Demo);
|
||||||
|
GetViewport().SetInputAsHandled();
|
||||||
|
}
|
||||||
|
if (keyEv.Keycode == Key.F2) {
|
||||||
|
SwitchToScene(Scene.Stairs);
|
||||||
|
GetViewport().SetInputAsHandled();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Process(double delta) {
|
||||||
|
if (!SceneLoaded) {
|
||||||
|
SceneLoadCooldown -= (float)delta;
|
||||||
|
if (SceneLoadCooldown <= 0 && NextScene != null) {
|
||||||
|
LoadNextScene();
|
||||||
|
NextScene = null;
|
||||||
|
SceneLoaded = true;
|
||||||
|
LoadingScreen.Visible = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SwitchToScene(Scene newScene) {
|
||||||
|
PackedScene sceneToInstantiate = null;
|
||||||
|
switch (newScene) {
|
||||||
|
case Scene.MainMenu:
|
||||||
|
sceneToInstantiate = MainMenu;
|
||||||
|
break;
|
||||||
|
case Scene.Demo:
|
||||||
|
sceneToInstantiate = DemoScene;
|
||||||
|
break;
|
||||||
|
case Scene.Stairs:
|
||||||
|
sceneToInstantiate = StairsScene;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (sceneToInstantiate == null) {
|
||||||
|
GD.PrintErr("Tried to switch scenes to Scene." + newScene + " but it hasn't been set up in the entrypoint scene!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
NextScene = sceneToInstantiate;
|
||||||
|
|
||||||
|
if (IsInstanceValid(InstantiatedScene)) {
|
||||||
|
RemoveChild(InstantiatedScene);
|
||||||
|
InstantiatedScene.QueueFree();
|
||||||
|
}
|
||||||
|
|
||||||
|
LoadingScreen.Visible = true;
|
||||||
|
SceneLoadCooldown = AddedLoadingScreenSeconds;
|
||||||
|
SceneLoaded = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoadNextScene() {
|
||||||
|
if (NextScene == null) {
|
||||||
|
GD.PrintErr("LoadNextScene called but NextScene is null!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
InstantiatedScene = NextScene.Instantiate();
|
||||||
|
|
||||||
|
if (InstantiatedScene.ProcessMode == ProcessModeEnum.Inherit) {
|
||||||
|
InstantiatedScene.ProcessMode = ProcessModeEnum.Pausable;
|
||||||
|
}
|
||||||
|
AddChild(InstantiatedScene);
|
||||||
|
MoveChild(InstantiatedScene, 0);
|
||||||
|
|
||||||
|
GetTree().Paused = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -82,6 +82,7 @@ namespace Gmtk24 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void Interact(InputEvent _) {
|
public void Interact(InputEvent _) {
|
||||||
|
if (IsEnabled)
|
||||||
Orbit.SetEnabled(true);
|
Orbit.SetEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +159,7 @@ namespace Gmtk24 {
|
|||||||
|
|
||||||
private void OnBlockDrag(BuildingBlock _) {
|
private void OnBlockDrag(BuildingBlock _) {
|
||||||
var offset = GhostBlock.OffsetFrom(GhostBlockNormal);
|
var offset = GhostBlock.OffsetFrom(GhostBlockNormal);
|
||||||
EnablePlane(GhostBlock.Position - offset, new Quaternion(Vector3.Up, GhostBlockNormal));
|
EnablePlane(GhostBlock.Position - offset, new Quaternion(Vector3.Up, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void EnablePlane(Vector3 pos, Quaternion rot) {
|
private void EnablePlane(Vector3 pos, Quaternion rot) {
|
||||||
@ -185,7 +186,6 @@ namespace Gmtk24 {
|
|||||||
Visible = true;
|
Visible = true;
|
||||||
ProcessMode = ProcessModeEnum.Pausable;
|
ProcessMode = ProcessModeEnum.Pausable;
|
||||||
Position = position;
|
Position = position;
|
||||||
lookAt.Y = 0;
|
|
||||||
LookAt(lookAt);
|
LookAt(lookAt);
|
||||||
Rotate(Vector3.Up, (float)Math.PI / 2);
|
Rotate(Vector3.Up, (float)Math.PI / 2);
|
||||||
}
|
}
|
||||||
|
@ -7,11 +7,17 @@ namespace Gmtk24 {
|
|||||||
public static UserSettings Singleton { get; private set; }
|
public static UserSettings Singleton { get; private set; }
|
||||||
|
|
||||||
public float Volume { get; private set; }
|
public float Volume { get; private set; }
|
||||||
|
|
||||||
public float CameraSensitivityX = 2f;
|
public float CameraSensitivityX = 2f;
|
||||||
public float CameraSensitivityY = 2f;
|
public float CameraSensitivityY = 2f;
|
||||||
public bool CameraInvertX = false;
|
public bool CameraInvertX = false;
|
||||||
public bool CameraInvertY = false;
|
public bool CameraInvertY = false;
|
||||||
|
|
||||||
|
public float TableOrbitSpeedX = 1f;
|
||||||
|
public float TableOrbitSpeedY = 1f;
|
||||||
|
public bool TableOrbitInvertX = false;
|
||||||
|
public bool TableOrbitInvertY = false;
|
||||||
|
|
||||||
public override void _Ready() {
|
public override void _Ready() {
|
||||||
SetVolume(0.2f);
|
SetVolume(0.2f);
|
||||||
Singleton = this;
|
Singleton = this;
|
||||||
@ -23,6 +29,12 @@ namespace Gmtk24 {
|
|||||||
return new Vector2(x, y);
|
return new Vector2(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Vector2 GetOrbitSpeedMultipliers() {
|
||||||
|
var x = TableOrbitSpeedX * (TableOrbitInvertX ? -1 : 1);
|
||||||
|
var y = TableOrbitSpeedY * (TableOrbitInvertY ? -1 : 1);
|
||||||
|
return new Vector2(x, y);
|
||||||
|
}
|
||||||
|
|
||||||
public void SetVolume(float volume) {
|
public void SetVolume(float volume) {
|
||||||
AudioServer.SetBusVolumeDb(0, volume == 0 ? -80 : Mathf.LinearToDb(volume));
|
AudioServer.SetBusVolumeDb(0, volume == 0 ? -80 : Mathf.LinearToDb(volume));
|
||||||
Volume = volume;
|
Volume = volume;
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user