first commit
17
.gitignore
vendored
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# my own ban
|
||||||
|
resources/fonts/*.otf
|
||||||
|
resources/fonts/*.ttf
|
||||||
|
resources/textures
|
||||||
|
|
||||||
|
# Godot-specific ignores
|
||||||
|
.import/
|
||||||
|
export.cfg
|
||||||
|
export_presets.cfg
|
||||||
|
|
||||||
|
# Imported translations (automatically generated from CSV files)
|
||||||
|
*.translation
|
||||||
|
|
||||||
|
# Mono-specific ignores
|
||||||
|
.mono/
|
||||||
|
data_*/
|
||||||
|
.vs/
|
8
BallanceStalker.csproj
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<Project Sdk="Godot.NET.Sdk/3.3.0">
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net472</TargetFramework>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Google.Protobuf" Version="3.21.1" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
19
BallanceStalker.sln
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 2012
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BallanceStalker", "BallanceStalker.csproj", "{55B5D158-D2E5-4A32-9C96-5878BD379AD3}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
ExportDebug|Any CPU = ExportDebug|Any CPU
|
||||||
|
ExportRelease|Any CPU = ExportRelease|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
|
||||||
|
{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
|
||||||
|
{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
|
||||||
|
{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
1126
project.godot
Normal file
9
resources/default_bus_layout.tres
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[gd_resource type="AudioBusLayout" format=2]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
bus/1/name = "soundeffects"
|
||||||
|
bus/1/solo = false
|
||||||
|
bus/1/mute = false
|
||||||
|
bus/1/bypass_fx = false
|
||||||
|
bus/1/volume_db = 0.0
|
||||||
|
bus/1/send = "Master"
|
11
resources/default_env.tres
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[gd_resource type="Environment" load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/skys/Sky_A.png" type="Texture" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="PanoramaSky" id=1]
|
||||||
|
panorama = ExtResource( 1 )
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
background_mode = 2
|
||||||
|
background_sky = SubResource( 1 )
|
||||||
|
background_color = Color( 1, 1, 1, 1 )
|
4
resources/fonts/font_SourceHanSansCN.tres
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
[gd_resource type="DynamicFontData" format=2]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
font_path = "res://resources/fonts/SourceHanSansCN-Regular.otf"
|
4
resources/fonts/font_SquarishSansCT.tres
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
[gd_resource type="DynamicFontData" format=2]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
font_path = "res://resources/fonts/Squarish Sans CT Regular.ttf"
|
9
resources/fonts/fontstyle_big.tres
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[gd_resource type="DynamicFont" load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/fonts/font_SquarishSansCT.tres" type="DynamicFontData" id=1]
|
||||||
|
[ext_resource path="res://resources/fonts/font_SourceHanSansCN.tres" type="DynamicFontData" id=2]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
size = 32
|
||||||
|
font_data = ExtResource( 1 )
|
||||||
|
fallback/0 = ExtResource( 2 )
|
8
resources/fonts/fontstyle_normal.tres
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
[gd_resource type="DynamicFont" load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/fonts/font_SquarishSansCT.tres" type="DynamicFontData" id=1]
|
||||||
|
[ext_resource path="res://resources/fonts/font_SourceHanSansCN.tres" type="DynamicFontData" id=2]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
font_data = ExtResource( 1 )
|
||||||
|
fallback/0 = ExtResource( 2 )
|
BIN
resources/icons/icon.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
35
resources/icons/icon.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/icon.png-7491c6c4a44932d5aa711c9abf2e3214.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/icons/icon.png"
|
||||||
|
dest_files=[ "res://.import/icon.png-7491c6c4a44932d5aa711c9abf2e3214.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
resources/skys/Sky_A.png
Normal file
After Width: | Height: | Size: 518 KiB |
35
resources/skys/Sky_A.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/Sky_A.png-0473ce47999c0778c5d1dad7940c45c3.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/skys/Sky_A.png"
|
||||||
|
dest_files=[ "res://.import/Sky_A.png-0473ce47999c0778c5d1dad7940c45c3.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
resources/skys/Sky_B.png
Normal file
After Width: | Height: | Size: 576 KiB |
35
resources/skys/Sky_B.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/Sky_B.png-3120b5aab9999c42af47b914671c51fb.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/skys/Sky_B.png"
|
||||||
|
dest_files=[ "res://.import/Sky_B.png-3120b5aab9999c42af47b914671c51fb.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
resources/skys/Sky_C.png
Normal file
After Width: | Height: | Size: 631 KiB |
35
resources/skys/Sky_C.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/Sky_C.png-c31ade1420e05ec9ada438bd25447db7.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/skys/Sky_C.png"
|
||||||
|
dest_files=[ "res://.import/Sky_C.png-c31ade1420e05ec9ada438bd25447db7.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
resources/skys/Sky_D.png
Normal file
After Width: | Height: | Size: 580 KiB |
35
resources/skys/Sky_D.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/Sky_D.png-9a9176f94292045c7978edc24caabe44.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/skys/Sky_D.png"
|
||||||
|
dest_files=[ "res://.import/Sky_D.png-9a9176f94292045c7978edc24caabe44.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
resources/skys/Sky_E.png
Normal file
After Width: | Height: | Size: 591 KiB |
35
resources/skys/Sky_E.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/Sky_E.png-fdc67abe59e5b75150a1b1b90e7c3138.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/skys/Sky_E.png"
|
||||||
|
dest_files=[ "res://.import/Sky_E.png-fdc67abe59e5b75150a1b1b90e7c3138.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
resources/skys/Sky_F.png
Normal file
After Width: | Height: | Size: 446 KiB |
35
resources/skys/Sky_F.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/Sky_F.png-42678da226693f48277be4c4cbc11851.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/skys/Sky_F.png"
|
||||||
|
dest_files=[ "res://.import/Sky_F.png-42678da226693f48277be4c4cbc11851.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
resources/skys/Sky_G.png
Normal file
After Width: | Height: | Size: 537 KiB |
35
resources/skys/Sky_G.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/Sky_G.png-a7241fdca7f361a93c4356cdd7f7195a.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/skys/Sky_G.png"
|
||||||
|
dest_files=[ "res://.import/Sky_G.png-a7241fdca7f361a93c4356cdd7f7195a.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
resources/skys/Sky_H.png
Normal file
After Width: | Height: | Size: 602 KiB |
35
resources/skys/Sky_H.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/Sky_H.png-1bb749f1942c4c558697e575f833ff36.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/skys/Sky_H.png"
|
||||||
|
dest_files=[ "res://.import/Sky_H.png-1bb749f1942c4c558697e575f833ff36.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
resources/skys/Sky_I.png
Normal file
After Width: | Height: | Size: 546 KiB |
35
resources/skys/Sky_I.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/Sky_I.png-689017b153b1965c2557c53736864f9d.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/skys/Sky_I.png"
|
||||||
|
dest_files=[ "res://.import/Sky_I.png-689017b153b1965c2557c53736864f9d.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
resources/skys/Sky_J.png
Normal file
After Width: | Height: | Size: 596 KiB |
35
resources/skys/Sky_J.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/Sky_J.png-4ef4b79e0c4ea571566f1532dc0dc9a4.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/skys/Sky_J.png"
|
||||||
|
dest_files=[ "res://.import/Sky_J.png-4ef4b79e0c4ea571566f1532dc0dc9a4.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
resources/skys/Sky_K.png
Normal file
After Width: | Height: | Size: 607 KiB |
35
resources/skys/Sky_K.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/Sky_K.png-91033cfe5a350defbf80d19ecf13fdab.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/skys/Sky_K.png"
|
||||||
|
dest_files=[ "res://.import/Sky_K.png-91033cfe5a350defbf80d19ecf13fdab.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
resources/skys/Sky_L.png
Normal file
After Width: | Height: | Size: 486 KiB |
35
resources/skys/Sky_L.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/Sky_L.png-8edda8c4722616104a7b6a7d92c6589f.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/skys/Sky_L.png"
|
||||||
|
dest_files=[ "res://.import/Sky_L.png-8edda8c4722616104a7b6a7d92c6589f.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
71
resources/user_interface/default_theme.tres
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
[gd_resource type="Theme" load_steps=15 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/user_interface/textures/vscrollbar-scroll-select.png" type="Texture" id=1]
|
||||||
|
[ext_resource path="res://resources/user_interface/textures/vscrollbar-grabber-select.png" type="Texture" id=2]
|
||||||
|
[ext_resource path="res://resources/user_interface/textures/vscrollbar-grabber-deselect.png" type="Texture" id=3]
|
||||||
|
[ext_resource path="res://resources/user_interface/textures/vscrollbar-scroll-deselect.png" type="Texture" id=4]
|
||||||
|
[ext_resource path="res://resources/user_interface/textures/hslider-grabber-deselect.png" type="Texture" id=5]
|
||||||
|
[ext_resource path="res://resources/user_interface/textures/hslider-grabber-select.png" type="Texture" id=6]
|
||||||
|
[ext_resource path="res://resources/user_interface/textures/hslider-slider.png" type="Texture" id=7]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxEmpty" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxEmpty" id=2]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxTexture" id=3]
|
||||||
|
texture = ExtResource( 7 )
|
||||||
|
region_rect = Rect2( 0, 0, 64, 32 )
|
||||||
|
margin_left = 1.0
|
||||||
|
margin_right = 1.0
|
||||||
|
margin_top = 14.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxTexture" id=4]
|
||||||
|
texture = ExtResource( 3 )
|
||||||
|
region_rect = Rect2( 0, 0, 32, 64 )
|
||||||
|
margin_left = 13.0
|
||||||
|
margin_right = 13.0
|
||||||
|
margin_top = 3.0
|
||||||
|
margin_bottom = 3.0
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxTexture" id=5]
|
||||||
|
texture = ExtResource( 2 )
|
||||||
|
region_rect = Rect2( 0, 0, 32, 64 )
|
||||||
|
margin_left = 13.0
|
||||||
|
margin_right = 13.0
|
||||||
|
margin_top = 3.0
|
||||||
|
margin_bottom = 3.0
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxTexture" id=6]
|
||||||
|
texture = ExtResource( 4 )
|
||||||
|
region_rect = Rect2( 0, 0, 32, 64 )
|
||||||
|
margin_left = 11.0
|
||||||
|
margin_right = 11.0
|
||||||
|
margin_top = 1.0
|
||||||
|
margin_bottom = 1.0
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxTexture" id=7]
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
region_rect = Rect2( 0, 0, 32, 64 )
|
||||||
|
margin_left = 11.0
|
||||||
|
margin_right = 11.0
|
||||||
|
margin_top = 1.0
|
||||||
|
margin_bottom = 1.0
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
HSlider/icons/grabber = ExtResource( 5 )
|
||||||
|
HSlider/icons/grabber_disabled = ExtResource( 5 )
|
||||||
|
HSlider/icons/grabber_highlight = ExtResource( 6 )
|
||||||
|
HSlider/icons/tick = null
|
||||||
|
HSlider/styles/grabber_area = SubResource( 1 )
|
||||||
|
HSlider/styles/grabber_area_highlight = SubResource( 2 )
|
||||||
|
HSlider/styles/slider = SubResource( 3 )
|
||||||
|
VScrollBar/icons/decrement = null
|
||||||
|
VScrollBar/icons/decrement_highlight = null
|
||||||
|
VScrollBar/icons/increment = null
|
||||||
|
VScrollBar/icons/increment_highlight = null
|
||||||
|
VScrollBar/styles/grabber = SubResource( 4 )
|
||||||
|
VScrollBar/styles/grabber_highlight = SubResource( 5 )
|
||||||
|
VScrollBar/styles/grabber_pressed = SubResource( 5 )
|
||||||
|
VScrollBar/styles/scroll = SubResource( 6 )
|
||||||
|
VScrollBar/styles/scroll_focus = SubResource( 7 )
|
BIN
resources/user_interface/player_pointer.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
35
resources/user_interface/player_pointer.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/player_pointer.png-c1da05525a5e7f0b77f429a3c80ac116.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/player_pointer.png"
|
||||||
|
dest_files=[ "res://.import/player_pointer.png-c1da05525a5e7f0b77f429a3c80ac116.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
BIN
resources/user_interface/soundeffects/btn_click.wav
Normal file
21
resources/user_interface/soundeffects/btn_click.wav.import
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/btn_click.wav-10bd4155242a075bd68a0c5c45b66a23.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/soundeffects/btn_click.wav"
|
||||||
|
dest_files=[ "res://.import/btn_click.wav-10bd4155242a075bd68a0c5c45b66a23.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop=false
|
||||||
|
compress/mode=0
|
|
@ -0,0 +1,11 @@
|
||||||
|
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/user_interface/textures/btn-small-deselect.png" type="Texture" id=1]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
region_rect = Rect2( 0, 0, 64, 32 )
|
||||||
|
margin_left = 14.1409
|
||||||
|
margin_right = 12.785
|
||||||
|
margin_top = 13.5598
|
||||||
|
margin_bottom = 13.3661
|
11
resources/user_interface/styles/btn_small_style_select.tres
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/user_interface/textures/btn-small-select.png" type="Texture" id=1]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
region_rect = Rect2( 0, 0, 64, 32 )
|
||||||
|
margin_left = 14.1409
|
||||||
|
margin_right = 12.785
|
||||||
|
margin_top = 13.5598
|
||||||
|
margin_bottom = 13.3661
|
11
resources/user_interface/styles/btn_style_deselect.tres
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/user_interface/textures/btn_deselect.png" type="Texture" id=1]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
region_rect = Rect2( 0, 0, 64, 32 )
|
||||||
|
margin_left = 14.1409
|
||||||
|
margin_right = 12.785
|
||||||
|
margin_top = 13.5598
|
||||||
|
margin_bottom = 13.3661
|
11
resources/user_interface/styles/btn_style_select.tres
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/user_interface/textures/btn_select.png" type="Texture" id=1]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
region_rect = Rect2( 0, 0, 64, 32 )
|
||||||
|
margin_left = 14.1409
|
||||||
|
margin_right = 12.785
|
||||||
|
margin_top = 13.5598
|
||||||
|
margin_bottom = 13.3661
|
|
@ -0,0 +1,3 @@
|
||||||
|
[gd_resource type="StyleBoxTexture" format=2]
|
||||||
|
|
||||||
|
[resource]
|
11
resources/user_interface/styles/lineedit_style_deselect.tres
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/user_interface/textures/lineedit_deselect.png" type="Texture" id=1]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
region_rect = Rect2( 0, 0, 64, 32 )
|
||||||
|
margin_left = 14.1409
|
||||||
|
margin_right = 12.785
|
||||||
|
margin_top = 13.5598
|
||||||
|
margin_bottom = 13.3661
|
11
resources/user_interface/styles/lineedit_style_select.tres
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/user_interface/textures/lineedit_select.png" type="Texture" id=1]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
region_rect = Rect2( 0, 0, 64, 32 )
|
||||||
|
margin_left = 14.1409
|
||||||
|
margin_right = 12.785
|
||||||
|
margin_top = 13.5598
|
||||||
|
margin_bottom = 13.3661
|
BIN
resources/user_interface/textures/btn-small-deselect.png
Normal file
After Width: | Height: | Size: 471 B |
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/btn-small-deselect.png-50de40a7a56e5cc7a3f77da3a18182dc.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/textures/btn-small-deselect.png"
|
||||||
|
dest_files=[ "res://.import/btn-small-deselect.png-50de40a7a56e5cc7a3f77da3a18182dc.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
BIN
resources/user_interface/textures/btn-small-select.png
Normal file
After Width: | Height: | Size: 466 B |
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/btn-small-select.png-1c33d3c6767029f218d4d79be7620c8f.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/textures/btn-small-select.png"
|
||||||
|
dest_files=[ "res://.import/btn-small-select.png-1c33d3c6767029f218d4d79be7620c8f.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
BIN
resources/user_interface/textures/btn_deselect.png
Normal file
After Width: | Height: | Size: 484 B |
35
resources/user_interface/textures/btn_deselect.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/btn_deselect.png-00b7f2eab9128d91c7c719e4f6685df5.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/textures/btn_deselect.png"
|
||||||
|
dest_files=[ "res://.import/btn_deselect.png-00b7f2eab9128d91c7c719e4f6685df5.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
BIN
resources/user_interface/textures/btn_select.png
Normal file
After Width: | Height: | Size: 493 B |
35
resources/user_interface/textures/btn_select.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/btn_select.png-9d750292de91408d67d9b5679d5e14ad.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/textures/btn_select.png"
|
||||||
|
dest_files=[ "res://.import/btn_select.png-9d750292de91408d67d9b5679d5e14ad.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
BIN
resources/user_interface/textures/hslider-grabber-deselect.png
Normal file
After Width: | Height: | Size: 197 B |
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/hslider-grabber-deselect.png-dbd5e229e735b61fac88b8a1fde9e3d5.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/textures/hslider-grabber-deselect.png"
|
||||||
|
dest_files=[ "res://.import/hslider-grabber-deselect.png-dbd5e229e735b61fac88b8a1fde9e3d5.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
BIN
resources/user_interface/textures/hslider-grabber-select.png
Normal file
After Width: | Height: | Size: 197 B |
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/hslider-grabber-select.png-7673e5df914571ff3de950ffc32eb49c.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/textures/hslider-grabber-select.png"
|
||||||
|
dest_files=[ "res://.import/hslider-grabber-select.png-7673e5df914571ff3de950ffc32eb49c.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
BIN
resources/user_interface/textures/hslider-slider.png
Normal file
After Width: | Height: | Size: 200 B |
35
resources/user_interface/textures/hslider-slider.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/hslider-slider.png-e3144ca0191d69c66b3b6002e961fae8.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/textures/hslider-slider.png"
|
||||||
|
dest_files=[ "res://.import/hslider-slider.png-e3144ca0191d69c66b3b6002e961fae8.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
BIN
resources/user_interface/textures/lineedit_deselect.png
Normal file
After Width: | Height: | Size: 406 B |
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/lineedit_deselect.png-45991e7209bc02828712ac76f58e16af.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/textures/lineedit_deselect.png"
|
||||||
|
dest_files=[ "res://.import/lineedit_deselect.png-45991e7209bc02828712ac76f58e16af.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
BIN
resources/user_interface/textures/lineedit_select.png
Normal file
After Width: | Height: | Size: 411 B |
35
resources/user_interface/textures/lineedit_select.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/lineedit_select.png-fb2cbbc23c8ce1b0cd78383a558858c0.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/textures/lineedit_select.png"
|
||||||
|
dest_files=[ "res://.import/lineedit_select.png-fb2cbbc23c8ce1b0cd78383a558858c0.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
After Width: | Height: | Size: 224 B |
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/vscrollbar-grabber-deselect.png-41f1392911c0d83776adf73235c234f7.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/textures/vscrollbar-grabber-deselect.png"
|
||||||
|
dest_files=[ "res://.import/vscrollbar-grabber-deselect.png-41f1392911c0d83776adf73235c234f7.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
BIN
resources/user_interface/textures/vscrollbar-grabber-select.png
Normal file
After Width: | Height: | Size: 221 B |
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/vscrollbar-grabber-select.png-72f3de637b203963d3a8fc9ea0b65abf.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/textures/vscrollbar-grabber-select.png"
|
||||||
|
dest_files=[ "res://.import/vscrollbar-grabber-select.png-72f3de637b203963d3a8fc9ea0b65abf.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
BIN
resources/user_interface/textures/vscrollbar-scroll-deselect.png
Normal file
After Width: | Height: | Size: 232 B |
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/vscrollbar-scroll-deselect.png-211048eb599996b436cb2b45ed32482b.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/textures/vscrollbar-scroll-deselect.png"
|
||||||
|
dest_files=[ "res://.import/vscrollbar-scroll-deselect.png-211048eb599996b436cb2b45ed32482b.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
BIN
resources/user_interface/textures/vscrollbar-scroll-select.png
Normal file
After Width: | Height: | Size: 232 B |
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/vscrollbar-scroll-select.png-0642361f149185c68fc0158fd364aa8b.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/user_interface/textures/vscrollbar-scroll-select.png"
|
||||||
|
dest_files=[ "res://.import/vscrollbar-scroll-select.png-0642361f149185c68fc0158fd364aa8b.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
17
scenes/GameRoot.tscn
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
[gd_scene load_steps=5 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://scenes/stages/MenuManager.tscn" type="PackedScene" id=1]
|
||||||
|
[ext_resource path="res://scenes/stages/StalkerCore.tscn" type="PackedScene" id=2]
|
||||||
|
[ext_resource path="res://scripts/GameRoot.cs" type="Script" id=3]
|
||||||
|
[ext_resource path="res://scenes/stages/ShadowBallManager.tscn" type="PackedScene" id=4]
|
||||||
|
|
||||||
|
[node name="GameRoot" type="Node"]
|
||||||
|
script = ExtResource( 3 )
|
||||||
|
|
||||||
|
[node name="UILayer" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
|
[node name="MenuManager" parent="UILayer" instance=ExtResource( 1 )]
|
||||||
|
|
||||||
|
[node name="StalkerCore" parent="." instance=ExtResource( 2 )]
|
||||||
|
|
||||||
|
[node name="ShadowBallManager" parent="." instance=ExtResource( 4 )]
|
BIN
scenes/levels/floor_top_Checkpoint.bmp
Normal file
After Width: | Height: | Size: 48 KiB |
37
scenes/levels/floor_top_Checkpoint.bmp.import
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path.s3tc="res://.import/floor_top_Checkpoint.bmp-c967cd8f49228addb75669f03255a875.s3tc.stex"
|
||||||
|
path.etc2="res://.import/floor_top_Checkpoint.bmp-c967cd8f49228addb75669f03255a875.etc2.stex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": [ "s3tc", "etc2" ],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://scenes/levels/floor_top_Checkpoint.bmp"
|
||||||
|
dest_files=[ "res://.import/floor_top_Checkpoint.bmp-c967cd8f49228addb75669f03255a875.s3tc.stex", "res://.import/floor_top_Checkpoint.bmp-c967cd8f49228addb75669f03255a875.etc2.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=true
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=true
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=1
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
2837
scenes/levels/test.escn
Normal file
1065
scenes/levels/test.escn.import
Normal file
13
scenes/stages/MenuManager.tscn
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/user_interface/default_theme.tres" type="Theme" id=1]
|
||||||
|
[ext_resource path="res://scenes/stages/menus/MenuMain.tscn" type="PackedScene" id=2]
|
||||||
|
[ext_resource path="res://scripts/stages/MenuManager.cs" type="Script" id=3]
|
||||||
|
|
||||||
|
[node name="MenuManager" type="Control"]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
theme = ExtResource( 1 )
|
||||||
|
script = ExtResource( 3 )
|
||||||
|
|
||||||
|
[node name="MenuMain" parent="." instance=ExtResource( 2 )]
|
127
scenes/stages/PlayerBall.tscn
Normal file
6
scenes/stages/ShadowBallManager.tscn
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://scripts/stages/ShadowBallManager.cs" type="Script" id=1]
|
||||||
|
|
||||||
|
[node name="ShadowBallManager" type="Spatial"]
|
||||||
|
script = ExtResource( 1 )
|
14
scenes/stages/StalkerCamera.tscn
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://scripts/stages/StalkerCamera.cs" type="Script" id=1]
|
||||||
|
|
||||||
|
[node name="StalkerCamera" type="Spatial"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="FreeCamOrigin" type="Spatial" parent="."]
|
||||||
|
|
||||||
|
[node name="FreeCam" type="Camera" parent="."]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
|
||||||
|
fov = 58.0
|
||||||
|
near = 3.0
|
||||||
|
far = 1200.0
|
15
scenes/stages/StalkerCore.tscn
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://scenes/levels/test.escn" type="PackedScene" id=1]
|
||||||
|
[ext_resource path="res://scripts/stages/StalkerCore.cs" type="Script" id=2]
|
||||||
|
[ext_resource path="res://scenes/stages/StalkerCamera.tscn" type="PackedScene" id=3]
|
||||||
|
|
||||||
|
[node name="StalkerCore" type="Spatial"]
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
|
[node name="SkyLight" type="DirectionalLight" parent="."]
|
||||||
|
transform = Transform( 0.920545, 0.275714, -0.276729, 0.0231072, 0.668731, 0.743145, 0.389953, -0.690492, 0.609226, -5.171, 15.255, -3.606 )
|
||||||
|
|
||||||
|
[node name="StalkerCamera" parent="." instance=ExtResource( 3 )]
|
||||||
|
|
||||||
|
[node name="test" parent="." instance=ExtResource( 1 )]
|
61
scenes/stages/menus/MenuMain.tscn
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://scenes/user_interface/ButtonNormal.tscn" type="PackedScene" id=1]
|
||||||
|
[ext_resource path="res://scripts/stages/menus/MenuMain.cs" type="Script" id=2]
|
||||||
|
|
||||||
|
[node name="MenuMain" type="Control"]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
|
[node name="Background" type="ColorRect" parent="."]
|
||||||
|
anchor_right = 0.3
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
color = Color( 0, 0, 0, 0.498039 )
|
||||||
|
|
||||||
|
[node name="MenuList" type="VBoxContainer" parent="."]
|
||||||
|
anchor_left = 0.05
|
||||||
|
anchor_right = 0.25
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
|
||||||
|
[node name="BtnLoadLevel" parent="MenuList" instance=ExtResource( 1 )]
|
||||||
|
margin_top = 40.0
|
||||||
|
margin_right = 204.0
|
||||||
|
margin_bottom = 83.9259
|
||||||
|
size_flags_vertical = 6
|
||||||
|
text = "Load Level"
|
||||||
|
|
||||||
|
[node name="BtnLoadSky" parent="MenuList" instance=ExtResource( 1 )]
|
||||||
|
margin_top = 168.0
|
||||||
|
margin_right = 204.0
|
||||||
|
margin_bottom = 211.926
|
||||||
|
size_flags_vertical = 6
|
||||||
|
text = "Load Sky"
|
||||||
|
|
||||||
|
[node name="BtnMultiplayer" parent="MenuList" instance=ExtResource( 1 )]
|
||||||
|
margin_top = 297.0
|
||||||
|
margin_right = 204.0
|
||||||
|
margin_bottom = 340.926
|
||||||
|
size_flags_vertical = 6
|
||||||
|
text = "Multiplayer"
|
||||||
|
|
||||||
|
[node name="BtnAbout" parent="MenuList" instance=ExtResource( 1 )]
|
||||||
|
margin_top = 425.0
|
||||||
|
margin_right = 204.0
|
||||||
|
margin_bottom = 468.926
|
||||||
|
size_flags_vertical = 6
|
||||||
|
text = "About"
|
||||||
|
|
||||||
|
[node name="BtnBack" parent="MenuList" instance=ExtResource( 1 )]
|
||||||
|
margin_top = 554.0
|
||||||
|
margin_right = 204.0
|
||||||
|
margin_bottom = 597.926
|
||||||
|
size_flags_vertical = 6
|
||||||
|
text = "Back to Stalker"
|
||||||
|
|
||||||
|
[node name="BtnExit" parent="MenuList" instance=ExtResource( 1 )]
|
||||||
|
margin_top = 683.0
|
||||||
|
margin_right = 204.0
|
||||||
|
margin_bottom = 726.926
|
||||||
|
size_flags_vertical = 6
|
||||||
|
text = "Exit Stalker"
|
21
scenes/user_interface/ButtonNormal.tscn
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
[gd_scene load_steps=6 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/user_interface/styles/btn_style_select.tres" type="StyleBox" id=1]
|
||||||
|
[ext_resource path="res://resources/user_interface/styles/btn_style_deselect.tres" type="StyleBox" id=2]
|
||||||
|
[ext_resource path="res://resources/fonts/fontstyle_normal.tres" type="DynamicFont" id=3]
|
||||||
|
[ext_resource path="res://scripts/user_interface/ButtonCommon.cs" type="Script" id=4]
|
||||||
|
[ext_resource path="res://resources/user_interface/soundeffects/btn_click.wav" type="AudioStream" id=5]
|
||||||
|
|
||||||
|
[node name="ButtonNormal" type="Button"]
|
||||||
|
margin_right = 12.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
custom_fonts/font = ExtResource( 3 )
|
||||||
|
custom_styles/hover = ExtResource( 1 )
|
||||||
|
custom_styles/pressed = ExtResource( 1 )
|
||||||
|
custom_styles/focus = ExtResource( 1 )
|
||||||
|
custom_styles/disabled = ExtResource( 2 )
|
||||||
|
custom_styles/normal = ExtResource( 2 )
|
||||||
|
script = ExtResource( 4 )
|
||||||
|
|
||||||
|
[node name="AudioClick" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource( 5 )
|
21
scenes/user_interface/ButtonSmall.tscn
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
[gd_scene load_steps=6 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/user_interface/styles/btn_small_style_select.tres" type="StyleBox" id=1]
|
||||||
|
[ext_resource path="res://resources/user_interface/styles/btn_small_style_deselect.tres" type="StyleBox" id=2]
|
||||||
|
[ext_resource path="res://resources/fonts/fontstyle_normal.tres" type="DynamicFont" id=3]
|
||||||
|
[ext_resource path="res://scripts/user_interface/ButtonCommon.cs" type="Script" id=4]
|
||||||
|
[ext_resource path="res://resources/user_interface/soundeffects/btn_click.wav" type="AudioStream" id=5]
|
||||||
|
|
||||||
|
[node name="ButtonSmall" type="Button"]
|
||||||
|
margin_right = 12.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
custom_fonts/font = ExtResource( 3 )
|
||||||
|
custom_styles/hover = ExtResource( 1 )
|
||||||
|
custom_styles/pressed = ExtResource( 1 )
|
||||||
|
custom_styles/focus = ExtResource( 1 )
|
||||||
|
custom_styles/disabled = ExtResource( 2 )
|
||||||
|
custom_styles/normal = ExtResource( 2 )
|
||||||
|
script = ExtResource( 4 )
|
||||||
|
|
||||||
|
[node name="AudioClick" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource( 5 )
|
8
scenes/user_interface/LabelBig.tscn
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/fonts/fontstyle_big.tres" type="DynamicFont" id=1]
|
||||||
|
|
||||||
|
[node name="LabelBig" type="Label"]
|
||||||
|
margin_right = 40.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
custom_fonts/font = ExtResource( 1 )
|
8
scenes/user_interface/LabelNormal.tscn
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/fonts/fontstyle_normal.tres" type="DynamicFont" id=1]
|
||||||
|
|
||||||
|
[node name="LabelNormal" type="Label"]
|
||||||
|
margin_right = 40.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
custom_fonts/font = ExtResource( 1 )
|
13
scenes/user_interface/LineEditNormal.tscn
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://resources/user_interface/styles/lineedit_style_deselect.tres" type="StyleBox" id=1]
|
||||||
|
[ext_resource path="res://resources/user_interface/styles/lineedit_style_select.tres" type="StyleBox" id=2]
|
||||||
|
[ext_resource path="res://resources/fonts/fontstyle_normal.tres" type="DynamicFont" id=3]
|
||||||
|
|
||||||
|
[node name="LineEditNormal" type="LineEdit"]
|
||||||
|
margin_right = 58.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
custom_fonts/font = ExtResource( 3 )
|
||||||
|
custom_styles/read_only = ExtResource( 1 )
|
||||||
|
custom_styles/focus = ExtResource( 2 )
|
||||||
|
custom_styles/normal = ExtResource( 1 )
|
37
scripts/GameRoot.cs
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public class GameRoot : Node {
|
||||||
|
|
||||||
|
MenuManager mMenuManager;
|
||||||
|
StalkerCore mStalkerCore;
|
||||||
|
|
||||||
|
public override void _Ready() {
|
||||||
|
mMenuManager = GetNode<MenuManager>("UILayer/MenuManager");
|
||||||
|
mStalkerCore = GetNode<StalkerCore>("StalkerCore");
|
||||||
|
|
||||||
|
mMenuManager.Connect(nameof(MenuManager.SetMouseCapture), this, nameof(Proc_MenuManager_SetMouseCapture));
|
||||||
|
mMenuManager.Connect(nameof(MenuManager.ExitGame), this, nameof(Proc_MenuManager_ExitGame));
|
||||||
|
|
||||||
|
// raw executing this func
|
||||||
|
// to set proper status
|
||||||
|
Proc_MenuManager_SetMouseCapture();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Input(InputEvent @event) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Proc_MenuManager_SetMouseCapture() {
|
||||||
|
if (mMenuManager.Visible) {
|
||||||
|
Input.SetMouseMode(Input.MouseMode.Visible);
|
||||||
|
} else {
|
||||||
|
Input.SetMouseMode(Input.MouseMode.Captured);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void Proc_MenuManager_ExitGame() {
|
||||||
|
GetTree().Notification(MainLoop.NotificationWmQuitRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
63
scripts/stages/MenuManager.cs
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
using BallanceStalker;
|
||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public class MenuManager : Control {
|
||||||
|
|
||||||
|
public enum MenuPage : int {
|
||||||
|
Main,
|
||||||
|
LoadLevel,
|
||||||
|
LoadSky,
|
||||||
|
Multiplayer,
|
||||||
|
About
|
||||||
|
}
|
||||||
|
|
||||||
|
[Signal]
|
||||||
|
public delegate void SetMouseCapture();
|
||||||
|
[Signal]
|
||||||
|
public delegate void ExitGame();
|
||||||
|
|
||||||
|
private MenuMain mMenuMain;
|
||||||
|
private MenuPage mCurrentPage;
|
||||||
|
|
||||||
|
// Called when the node enters the scene tree for the first time.
|
||||||
|
public override void _Ready() {
|
||||||
|
mCurrentPage = MenuPage.Main;
|
||||||
|
|
||||||
|
mMenuMain = GetNode<MenuMain>("MenuMain");
|
||||||
|
mMenuMain.Connect(nameof(MenuMain.MenuMain_GotoPage), this, nameof(Proc_MenuMain_GotoPage));
|
||||||
|
mMenuMain.Connect(nameof(MenuMain.MenuMain_Back), this, nameof(Proc_MenuMain_Back));
|
||||||
|
mMenuMain.Connect(nameof(MenuMain.MenuMain_Exit), this, nameof(Proc_MenuMain_Exit));
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Input(InputEvent @event) {
|
||||||
|
if (Input.IsActionJustPressed("ballance_esc")) {
|
||||||
|
if (mCurrentPage == MenuPage.Main) {
|
||||||
|
// we are in main menu, we need switch visible
|
||||||
|
this.Visible = !this.Visible;
|
||||||
|
EmitSignal(nameof(SetMouseCapture));
|
||||||
|
} else {
|
||||||
|
// otherwise, back from sub menu
|
||||||
|
RefreshMenuPage(MenuPage.Main);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshMenuPage(MenuPage page_type) {
|
||||||
|
;//todo:
|
||||||
|
//mCurrentPage = page_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Proc_MenuMain_GotoPage(MenuPage menu_type) {
|
||||||
|
RefreshMenuPage(menu_type);
|
||||||
|
}
|
||||||
|
private void Proc_MenuMain_Back() {
|
||||||
|
this.Visible = false;
|
||||||
|
EmitSignal(nameof(SetMouseCapture));
|
||||||
|
}
|
||||||
|
private void Proc_MenuMain_Exit() {
|
||||||
|
EmitSignal(nameof(ExitGame));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
195
scripts/stages/PlayerBall.cs
Normal file
|
@ -0,0 +1,195 @@
|
||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
// Reference: https://github.com/godotengine/godot-demo-projects/blob/master/3d/waypoints
|
||||||
|
|
||||||
|
public class PlayerBall : Spatial {
|
||||||
|
|
||||||
|
static readonly float MARGIN = 16f; // set it as half of arrow image
|
||||||
|
static readonly float TEXT_RADIUS = MARGIN + 16f;
|
||||||
|
|
||||||
|
public string Playername {
|
||||||
|
get { return mPlayername.Text; }
|
||||||
|
set { mPlayername.Text = value; }
|
||||||
|
}
|
||||||
|
public bool AlwaysTracking { get; set; }
|
||||||
|
|
||||||
|
Control mCtl2D;
|
||||||
|
Spatial mTextArchor;
|
||||||
|
TextureRect mPlayerArrow;
|
||||||
|
Label mPlayername;
|
||||||
|
Camera mSpectatorCamera = null;
|
||||||
|
|
||||||
|
public override void _Ready() {
|
||||||
|
mCtl2D = GetNode<Control>("TextArchor/Ctl2D");
|
||||||
|
mTextArchor = GetNode<Spatial>("TextArchor");
|
||||||
|
mPlayerArrow = GetNode<TextureRect>("TextArchor/Ctl2D/PlayerArrow");
|
||||||
|
mPlayername = GetNode<Label>("TextArchor/Ctl2D/Playername");
|
||||||
|
|
||||||
|
AlwaysTracking = true;
|
||||||
|
Playername = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Process(float delta) {
|
||||||
|
if (mSpectatorCamera is null || !mSpectatorCamera.Current) {
|
||||||
|
mSpectatorCamera = GetViewport().GetCamera();
|
||||||
|
}
|
||||||
|
if (mSpectatorCamera is null) return;
|
||||||
|
|
||||||
|
var parent_translation = mTextArchor.GlobalTransform.origin;
|
||||||
|
var camera_transform = mSpectatorCamera.GlobalTransform;
|
||||||
|
var camera_translation = camera_transform.origin;
|
||||||
|
|
||||||
|
var unprojected_position = mSpectatorCamera.UnprojectPosition(parent_translation);
|
||||||
|
// `get_size_override()` will return a valid size only if the stretch mode is `2d`.
|
||||||
|
// Otherwise, the viewport size is used directly.
|
||||||
|
var viewport_base_size = GetViewport().GetSizeOverride() > Vector2.Zero ? GetViewport().GetSizeOverride() : GetViewport().Size;
|
||||||
|
|
||||||
|
// unprojected_position will return some illegal number, such as inf or nan, so we need to check them here
|
||||||
|
// if something bad happend, we need hide all UI elements and return immediately
|
||||||
|
if (Mathf.IsInf(unprojected_position.x) || Mathf.IsInf(unprojected_position.y) ||
|
||||||
|
Mathf.IsNaN(unprojected_position.x) || Mathf.IsNaN(unprojected_position.y)) {
|
||||||
|
mCtl2D.Visible = false;
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
mCtl2D.Visible = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We would use "camera.is_position_behind(parent_translation)", except
|
||||||
|
// that it also accounts for the near clip plane, which we don't want.
|
||||||
|
var is_behind = camera_transform.basis.z.Dot(parent_translation - camera_translation) > 0f;
|
||||||
|
|
||||||
|
// Fade the waypoint when the camera gets close.
|
||||||
|
//var distance = camera_translation.DistanceTo(parent_translation);
|
||||||
|
//mCtl2D.Modulate.a = Godot.Mathf.Clamp(RangeLerp range_lerp(distance, 0, 2, 0, 1), 0, 1);
|
||||||
|
|
||||||
|
if (!AlwaysTracking) {
|
||||||
|
// For non-sticky waypoints, we don't need to clamp and calculate
|
||||||
|
// the position if the waypoint goes off screen.
|
||||||
|
mCtl2D.RectPosition = unprojected_position;
|
||||||
|
mCtl2D.Visible = !is_behind;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// calculate corner position
|
||||||
|
// We use Liang - Barsky clip to implement this function
|
||||||
|
var viewport_center = viewport_base_size / 2f;
|
||||||
|
if (is_behind) {
|
||||||
|
unprojected_position = viewport_center + (viewport_center - unprojected_position);
|
||||||
|
}
|
||||||
|
var relative_pos = unprojected_position - viewport_center;
|
||||||
|
/*
|
||||||
|
Liang-Barsky clip
|
||||||
|
|
||||||
|
wx_left <= x1+u(x2-x1) <= wx_right
|
||||||
|
wy_top <= y1+u(y2-y1) <= wy_bottom
|
||||||
|
|
||||||
|
p1 = x1-x2;
|
||||||
|
p2 = x2-x1;
|
||||||
|
p3 = y1-y2;
|
||||||
|
p4 = y2-y1;
|
||||||
|
|
||||||
|
assume x1 = y1 = 0
|
||||||
|
|
||||||
|
left: u(-x2) <= -wx_left
|
||||||
|
right: u(x2) <= wx_right
|
||||||
|
bottom: u(y2) <= wy_bottom
|
||||||
|
top: u(-y2) <= -wy_top
|
||||||
|
|
||||||
|
when <= become ==, solve u to get corner data:
|
||||||
|
|
||||||
|
left: u1 = wx_left / x2
|
||||||
|
right: u2 = wx_right / x2
|
||||||
|
bottom: u3 = wy_bottom / y2
|
||||||
|
top: u4 = wy_top / y2
|
||||||
|
|
||||||
|
u = 0 and 1 indicate the start point and end point of this line.
|
||||||
|
but we don't need it when `is_behind` is true.
|
||||||
|
so we modify LB clip method in there
|
||||||
|
|
||||||
|
we dont need check requirement: uone > utwo, because it is impossible
|
||||||
|
that line is outside of viewport entirely.
|
||||||
|
|
||||||
|
*/
|
||||||
|
float u2 = (viewport_center.x - MARGIN) / relative_pos.x,
|
||||||
|
u1 = -u2;
|
||||||
|
float u3 = (viewport_center.y - MARGIN) / relative_pos.y,
|
||||||
|
u4 = -u3;
|
||||||
|
|
||||||
|
// becasue p1 = -p2, p3 = -p4
|
||||||
|
// we need move number to let u1 become negative one and u2 become positive one.
|
||||||
|
// also the u3, u4.
|
||||||
|
float cache;
|
||||||
|
if (Mathf.Sign(relative_pos.x) < 0) {
|
||||||
|
cache = u1;
|
||||||
|
u1 = u2;
|
||||||
|
u2 = cache;
|
||||||
|
}
|
||||||
|
if (Mathf.Sign(relative_pos.y) > 0) {
|
||||||
|
cache = u3;
|
||||||
|
u3 = u4;
|
||||||
|
u4 = cache;
|
||||||
|
}
|
||||||
|
|
||||||
|
// we don't need uone, because uone is a const
|
||||||
|
float uone = 0f, utwo = 1f;
|
||||||
|
if (relative_pos.x == 0f) {
|
||||||
|
// only y is valid
|
||||||
|
if (relative_pos.y == 0f) {
|
||||||
|
// something goes wrong.
|
||||||
|
mCtl2D.Visible = false;
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
// pick
|
||||||
|
uone = u3;
|
||||||
|
utwo = u4;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
uone = Mathf.Max(u1, u3);
|
||||||
|
utwo = Mathf.Min(u2, u4);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool outside_window;
|
||||||
|
if (!is_behind) {
|
||||||
|
// if object is not behind the camera, we need to restore the real position of it.
|
||||||
|
// because previous process assume that the start point and end point of line is ignored.
|
||||||
|
uone = Mathf.Max(0f, uone);
|
||||||
|
utwo = Mathf.Min(1f, utwo);
|
||||||
|
outside_window = utwo != 1f;
|
||||||
|
} else {
|
||||||
|
outside_window = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
mCtl2D.RectPosition = (relative_pos * utwo) + viewport_center;
|
||||||
|
|
||||||
|
// if player ball is bebind us camera, we need to show a arrow and a playername with it
|
||||||
|
// otherwise, we only need display username
|
||||||
|
mPlayerArrow.Visible = outside_window;
|
||||||
|
|
||||||
|
if (outside_window) {
|
||||||
|
// Used to display a diagonal arrow when the waypoint is displayed in
|
||||||
|
// one of the screen corners.
|
||||||
|
var deg = Mathf.Rad2Deg(mCtl2D.RectPosition.AngleToPoint(viewport_center));
|
||||||
|
mPlayerArrow.RectRotation = deg;
|
||||||
|
|
||||||
|
var text_pos = mCtl2D.RectPosition.DirectionTo(viewport_center) * TEXT_RADIUS;
|
||||||
|
text_pos.x -= RangeLerp(mCtl2D.RectPosition.x, MARGIN, viewport_base_size.x - MARGIN, 0f, mPlayername.RectSize.x);
|
||||||
|
text_pos.y -= RangeLerp(mCtl2D.RectPosition.y, MARGIN, viewport_base_size.y - MARGIN, 0f, mPlayername.RectSize.y);
|
||||||
|
mPlayername.RectPosition = text_pos;
|
||||||
|
} else {
|
||||||
|
mPlayername.RectPosition = (-mPlayername.RectSize) / 2f;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//private static float AngelDiff(float from, float to) {
|
||||||
|
// var diff = (to - from) % Mathf.Tau;
|
||||||
|
// return ((2.0f * diff) % Mathf.Tau) - diff;
|
||||||
|
//}
|
||||||
|
|
||||||
|
private static float RangeLerp(float value, float istart, float istop, float ostart, float ostop) {
|
||||||
|
return ostart + (ostop - ostart) * (value - istart) / (istop - istart);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
71
scripts/stages/ShadowBallManager.cs
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
public class ShadowBall {
|
||||||
|
public UInt32 mIdentifier;
|
||||||
|
public string mName;
|
||||||
|
public PlayerBall mGodotNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ShadowBallManager : Spatial {
|
||||||
|
private Dictionary<UInt32, ShadowBall> mBallDict = new Dictionary<UInt32, ShadowBall>();
|
||||||
|
private PackedScene mTemplateShadowBall;
|
||||||
|
|
||||||
|
// Called when the node enters the scene tree for the first time.
|
||||||
|
public override void _Ready() {
|
||||||
|
mTemplateShadowBall = ResourceLoader.Load<PackedScene>("res://scenes/stages/PlayerBall.tscn");
|
||||||
|
|
||||||
|
int len = 10;
|
||||||
|
Quat quad = Quat.Identity;
|
||||||
|
Vector3 vec = new Vector3(0, 0, 0);
|
||||||
|
for (int x = 0; x < len; x++) {
|
||||||
|
for (int y = 0; y < len; y++) {
|
||||||
|
AddBall((uint)(x * len + y), $"Swung0x{x * len + y}");
|
||||||
|
vec.x = x * 50;
|
||||||
|
vec.z = y * 50;
|
||||||
|
SetBallState((uint)(x * len + y), vec, quad);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// // Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
// public override void _Process(float delta)
|
||||||
|
// {
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
public void AddBall(UInt32 ballid, string name) {
|
||||||
|
if (mBallDict.TryGetValue(ballid, out ShadowBall entity)) {
|
||||||
|
// update old entity for alternative
|
||||||
|
entity.mName = name;
|
||||||
|
entity.mGodotNode.Playername = name;
|
||||||
|
} else {
|
||||||
|
entity = new ShadowBall() {
|
||||||
|
mIdentifier = ballid,
|
||||||
|
mName = name,
|
||||||
|
mGodotNode = mTemplateShadowBall.Instance<PlayerBall>()
|
||||||
|
};
|
||||||
|
mBallDict.Add(ballid, entity);
|
||||||
|
AddChild(entity.mGodotNode);
|
||||||
|
entity.mGodotNode.Playername = entity.mName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetBallState(UInt32 ballid, Vector3 pos, Quat quad) {
|
||||||
|
if (mBallDict.TryGetValue(ballid, out ShadowBall entity)) {
|
||||||
|
entity.mGodotNode.Translation = pos;
|
||||||
|
entity.mGodotNode.Rotation = quad.GetEuler();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RemoveBall(UInt32 ballid) {
|
||||||
|
if (mBallDict.TryGetValue(ballid, out ShadowBall entity)) {
|
||||||
|
RemoveChild(entity.mGodotNode);
|
||||||
|
entity.mGodotNode.QueueFree();
|
||||||
|
mBallDict.Remove(ballid);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
70
scripts/stages/StalkerCamera.cs
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public class StalkerCamera : Spatial
|
||||||
|
{
|
||||||
|
Spatial originFreeCam;
|
||||||
|
Camera freeCam;
|
||||||
|
|
||||||
|
private static float BASIC_MOVEMENT = 0.2f;
|
||||||
|
object lockMotionMouse = new object();
|
||||||
|
Vector2 motionMouse = new Vector2(0, 0);
|
||||||
|
int movementScale = 1;
|
||||||
|
|
||||||
|
public override void _Ready() {
|
||||||
|
freeCam = GetNode<Camera>("FreeCam");
|
||||||
|
originFreeCam = GetNode<Spatial>("FreeCamOrigin");
|
||||||
|
//Input.SetMouseMode(Input.MouseMode.Captured);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Process(float delta) {
|
||||||
|
if (Input.GetMouseMode() != Input.MouseMode.Captured) return;
|
||||||
|
|
||||||
|
Vector3 motion3d = new Vector3(0, 0, 0);
|
||||||
|
if (Input.IsActionPressed("ballance_forward")) motion3d.z -= 1f;
|
||||||
|
if (Input.IsActionPressed("ballance_backward")) motion3d.z += 1f;
|
||||||
|
if (Input.IsActionPressed("ballance_left")) motion3d.x -= 1f;
|
||||||
|
if (Input.IsActionPressed("ballance_right")) motion3d.x += 1f;
|
||||||
|
if (Input.IsActionPressed("ballance_down")) motion3d.y -= 1f;
|
||||||
|
if (Input.IsActionPressed("ballance_up")) motion3d.y += 1f;
|
||||||
|
freeCam.Translate(motion3d * (BASIC_MOVEMENT * movementScale));
|
||||||
|
|
||||||
|
Vector2 copiedMotion2d;
|
||||||
|
lock (lockMotionMouse) {
|
||||||
|
copiedMotion2d = motionMouse;
|
||||||
|
motionMouse = new Vector2(0, 0);
|
||||||
|
}
|
||||||
|
float window_x = GetViewport().GetVisibleRect().Size.x;
|
||||||
|
Vector3 camRot = freeCam.Rotation;
|
||||||
|
camRot.x = Mathf.Clamp(camRot.x - copiedMotion2d.y * 2 / window_x, -90f, 90f);
|
||||||
|
camRot.y = camRot.y - copiedMotion2d.x * 2 / window_x;
|
||||||
|
camRot.z = 0;
|
||||||
|
freeCam.Rotation = camRot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Input(InputEvent @event) {
|
||||||
|
if (Input.GetMouseMode() != Input.MouseMode.Captured) return;
|
||||||
|
|
||||||
|
// mouse wheel
|
||||||
|
if (@event is InputEventMouseButton) {
|
||||||
|
InputEventMouseButton emb = (InputEventMouseButton)@event;
|
||||||
|
if (emb.IsPressed()) {
|
||||||
|
if (emb.ButtonIndex == (int)ButtonList.WheelUp) {
|
||||||
|
movementScale = Mathf.Clamp(movementScale + 1, 1, 50);
|
||||||
|
}
|
||||||
|
if (emb.ButtonIndex == (int)ButtonList.WheelDown) {
|
||||||
|
movementScale = Mathf.Clamp(movementScale - 1, 1, 50);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// mouse motion
|
||||||
|
if (@event is InputEventMouseMotion) {
|
||||||
|
var mov = (InputEventMouseMotion)@event;
|
||||||
|
lock (lockMotionMouse) {
|
||||||
|
motionMouse += mov.Relative;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
20
scripts/stages/StalkerCore.cs
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public class StalkerCore : Spatial {
|
||||||
|
|
||||||
|
// Declare member variables here. Examples:
|
||||||
|
// private int a = 2;
|
||||||
|
// private string b = "text";
|
||||||
|
|
||||||
|
// Called when the node enters the scene tree for the first time.
|
||||||
|
public override void _Ready() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// // Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
// public override void _Process(float delta)
|
||||||
|
// {
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
}
|
34
scripts/stages/menus/MenuMain.cs
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
using BallanceStalker;
|
||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public class MenuMain : Control {
|
||||||
|
|
||||||
|
[Signal]
|
||||||
|
public delegate void MenuMain_GotoPage(MenuManager.MenuPage menu_type);
|
||||||
|
[Signal]
|
||||||
|
public delegate void MenuMain_Back();
|
||||||
|
[Signal]
|
||||||
|
public delegate void MenuMain_Exit();
|
||||||
|
|
||||||
|
// Called when the node enters the scene tree for the first time.
|
||||||
|
public override void _Ready() {
|
||||||
|
GetNode<ButtonCommon>("MenuList/BtnLoadLevel").Connect("pressed", this, nameof(Proc_GotoPage), new Godot.Collections.Array() { MenuManager.MenuPage.LoadLevel });
|
||||||
|
GetNode<ButtonCommon>("MenuList/BtnLoadSky").Connect("pressed", this, nameof(Proc_GotoPage), new Godot.Collections.Array() { MenuManager.MenuPage.LoadSky });
|
||||||
|
GetNode<ButtonCommon>("MenuList/BtnMultiplayer").Connect("pressed", this, nameof(Proc_GotoPage), new Godot.Collections.Array() { MenuManager.MenuPage.Multiplayer });
|
||||||
|
GetNode<ButtonCommon>("MenuList/BtnAbout").Connect("pressed", this, nameof(Proc_GotoPage), new Godot.Collections.Array() { MenuManager.MenuPage.About });
|
||||||
|
GetNode<ButtonCommon>("MenuList/BtnBack").Connect("pressed", this, nameof(Proc_Back));
|
||||||
|
GetNode<ButtonCommon>("MenuList/BtnExit").Connect("pressed", this, nameof(Proc_Exit));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Proc_GotoPage(MenuManager.MenuPage menu_type) {
|
||||||
|
EmitSignal(nameof(MenuMain_GotoPage), menu_type);
|
||||||
|
}
|
||||||
|
private void Proc_Back() {
|
||||||
|
EmitSignal(nameof(MenuMain_Back));
|
||||||
|
}
|
||||||
|
private void Proc_Exit() {
|
||||||
|
EmitSignal(nameof(MenuMain_Exit));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
62
scripts/stalker_core/BmmoClient.cs
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BallanceStalkerCore {
|
||||||
|
|
||||||
|
public enum BmmoClientStatus : UInt32 {
|
||||||
|
Ready,
|
||||||
|
Initializing,
|
||||||
|
Running,
|
||||||
|
Stopping,
|
||||||
|
Stopped
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct VxVector {
|
||||||
|
float x, y, z;
|
||||||
|
}
|
||||||
|
public struct VxQuaternion {
|
||||||
|
float x, y, z, w;
|
||||||
|
}
|
||||||
|
public struct VxBallState {
|
||||||
|
UInt32 player_id;
|
||||||
|
VxVector pos;
|
||||||
|
VxQuaternion quad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PlayerEntity {
|
||||||
|
public string mPlayerName;
|
||||||
|
public UInt32 mPlayerGnsUid;
|
||||||
|
public bool mPlayerCheated;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BmmoClient {
|
||||||
|
public BmmoClient(LogManager logger) {
|
||||||
|
mLogger = logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
// receive message in godot, you should use call_defer functions to
|
||||||
|
// reflact data delivered by event on engine
|
||||||
|
#region event system
|
||||||
|
public event Action<VxBallState[]> EventBallState;
|
||||||
|
public event Action<string, string> EventChat;
|
||||||
|
|
||||||
|
public event Action<PlayerEntity> EventPlayerConnect;
|
||||||
|
public event Action<UInt32> EventPlayerDisconnect;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private LogManager mLogger;
|
||||||
|
private Dictionary<UInt32, PlayerEntity> mPlayersDict;
|
||||||
|
|
||||||
|
public void Start(string host, UInt16 port) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Stop() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
10
scripts/stalker_core/LogManager.cs
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BallanceStalkerCore {
|
||||||
|
public class LogManager {
|
||||||
|
}
|
||||||
|
}
|
21
scripts/stalker_core/StalkerManager.cs
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BallanceStalkerCore {
|
||||||
|
|
||||||
|
public class StalkerManager {
|
||||||
|
public static StalkerManager Singleton = new StalkerManager();
|
||||||
|
private StalkerManager() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public BmmoClient mBmmoClient;
|
||||||
|
public LogManager mLogger;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|