Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 31b7b5ea0c | |||
| 78ab2cc637 | |||
| fd16342aca | |||
| 2d3a1b0d4c | |||
| 1c7abeb0d9 | |||
| 97828ecdda | |||
| 9d8877cc67 | |||
| fd7b55452b | |||
| 1cafe6e96d | |||
| ea8821b41a | |||
| 8338ce3dd9 | |||
| 39f45d418f | |||
| 4e756da1ba | |||
| 919236a388 |
@@ -57,18 +57,23 @@ jobs:
|
||||
- name: Build Windows
|
||||
run: |
|
||||
mkdir -v -p build/windows
|
||||
godot --headless --verbose --build-solutions --import --export-release "Windows Desktop" build/windows/${{ env.GAME_NAME }}.exe
|
||||
godot --headless --verbose --build-solutions --export-release "Windows Desktop" build/windows/${{ env.GAME_NAME }}.exe
|
||||
zip -r Windows.zip build/windows
|
||||
- name: Linux Build
|
||||
- name: Build Windows ARM
|
||||
run: |
|
||||
mkdir -v -p build/linux
|
||||
godot --headless --verbose --export-release "Linux/X11" build/linux/${{ env.GAME_NAME }}.x86_64
|
||||
zip -r Linux.zip build/linux
|
||||
- name: Mac Build
|
||||
run: |
|
||||
mkdir -v -p build/mac
|
||||
godot --headless --verbose --export-release "macOS" build/mac/${{ env.GAME_NAME }}.zip
|
||||
zip -r Mac.zip build/mac
|
||||
mkdir -v -p build/windowsArm
|
||||
godot --headless --verbose --build-solutions --export-release "Windows ARM" build/windowsArm/${{ env.GAME_NAME }}.exe
|
||||
zip -r WindowsArm.zip build/windowsArm
|
||||
# - name: Linux Build
|
||||
# run: |
|
||||
# mkdir -v -p build/linux
|
||||
# godot --headless --verbose --export-release "Linux/X11" build/linux/${{ env.GAME_NAME }}.x86_64
|
||||
# zip -r Linux.zip build/linux
|
||||
# - name: Mac Build
|
||||
# run: |
|
||||
# mkdir -v -p build/mac
|
||||
# godot --headless --verbose --export-release "macOS" build/mac/${{ env.GAME_NAME }}.zip
|
||||
# zip -r Mac.zip build/mac
|
||||
|
||||
- name: Upload to Itch
|
||||
uses: KikimoraGames/itch-publish@v0.0.3
|
||||
@@ -86,14 +91,23 @@ jobs:
|
||||
itchUsername: ${{ env.ITCHIO_USERNAME }}
|
||||
itchGameId: ${{ env.ITCHIO_GAMEID }}
|
||||
buildNumber: ${{ needs.BumpTag.outputs.tag_name }}
|
||||
gameData: Linux.zip
|
||||
buildChannel: linux
|
||||
- name: Upload to Itch
|
||||
uses: KikimoraGames/itch-publish@v0.0.3
|
||||
with:
|
||||
butlerApiKey: ${{ secrets.BUTLER_TOKEN }}
|
||||
itchUsername: ${{ env.ITCHIO_USERNAME }}
|
||||
itchGameId: ${{ env.ITCHIO_GAMEID }}
|
||||
buildNumber: ${{ needs.BumpTag.outputs.tag_name }}
|
||||
gameData: Mac.zip
|
||||
buildChannel: mac
|
||||
gameData: WindowsArm.zip
|
||||
buildChannel: windows-arm
|
||||
# - name: Upload to Itch
|
||||
# uses: KikimoraGames/itch-publish@v0.0.3
|
||||
# with:
|
||||
# butlerApiKey: ${{ secrets.BUTLER_TOKEN }}
|
||||
# itchUsername: ${{ env.ITCHIO_USERNAME }}
|
||||
# itchGameId: ${{ env.ITCHIO_GAMEID }}
|
||||
# buildNumber: ${{ needs.BumpTag.outputs.tag_name }}
|
||||
# gameData: Linux.zip
|
||||
# buildChannel: linux
|
||||
# - name: Upload to Itch
|
||||
# uses: KikimoraGames/itch-publish@v0.0.3
|
||||
# with:
|
||||
# butlerApiKey: ${{ secrets.BUTLER_TOKEN }}
|
||||
# itchUsername: ${{ env.ITCHIO_USERNAME }}
|
||||
# itchGameId: ${{ env.ITCHIO_GAMEID }}
|
||||
# buildNumber: ${{ needs.BumpTag.outputs.tag_name }}
|
||||
# gameData: Mac.zip
|
||||
# buildChannel: mac
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
class_name SceneLoaderClass
|
||||
extends Node
|
||||
class_name SceneLoaderClass
|
||||
## Autoload class for loading scenes with an optional loading screen.
|
||||
|
||||
signal scene_loaded
|
||||
|
||||
@@ -4,7 +4,21 @@ extends OverlaidMenu
|
||||
@export var options_packed_scene : PackedScene
|
||||
@export_file("*.tscn") var main_menu_scene : String
|
||||
|
||||
@export var menu_context : GUIDEMappingContext
|
||||
|
||||
var popup_open : Node
|
||||
var previous_mapping_contexts : Array
|
||||
|
||||
func on_enter_tree() -> void:
|
||||
pass
|
||||
#previous_mapping_contexts = GUIDE.get_enabled_mapping_contexts()
|
||||
#GUIDE.enable_mapping_context(menu_context)
|
||||
|
||||
func on_exit_tree() -> void:
|
||||
pass
|
||||
#GUIDE.disable_mapping_context(menu_context)
|
||||
#for previous_context in previous_mapping_contexts:
|
||||
#GUIDE.enable_mapping_context(previous_context)
|
||||
|
||||
func close_popup() -> void:
|
||||
if popup_open != null:
|
||||
|
||||
@@ -10,7 +10,7 @@ extends Node
|
||||
@export var pause:GUIDEAction
|
||||
|
||||
func _ready() -> void:
|
||||
GUIDE.enable_mapping_context(base_mode)
|
||||
# GUIDE.enable_mapping_context(base_mode)
|
||||
|
||||
pause.triggered.connect(on_input_pause)
|
||||
|
||||
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
28
assets/lift/lift.gd
Normal file
28
assets/lift/lift.gd
Normal file
@@ -0,0 +1,28 @@
|
||||
extends Node3D
|
||||
|
||||
var lift_already_used : bool = false
|
||||
|
||||
@export var end_location : Vector3 = Vector3.ZERO
|
||||
@export var lift_time : float = 1.0
|
||||
|
||||
@onready var button: MeshInstance3D = $Cylinder_001
|
||||
|
||||
func start_climbing() -> void:
|
||||
var elevator_tween = get_tree().create_tween()
|
||||
elevator_tween.set_ease(Tween.EASE_IN_OUT)
|
||||
elevator_tween.set_trans(Tween.TRANS_CUBIC)
|
||||
elevator_tween.tween_property(self, "global_position", end_location, lift_time)
|
||||
|
||||
|
||||
func _on_area_3d_body_entered(body: Node3D) -> void:
|
||||
if lift_already_used:
|
||||
return
|
||||
|
||||
if is_instance_of(body, CharacterBody3D):
|
||||
lift_already_used = true
|
||||
|
||||
var button_tween = get_tree().create_tween()
|
||||
var button_final_pos = button.global_position + Vector3.DOWN * 0.35
|
||||
button_tween.tween_property(button, "global_position", button_final_pos, 0.3)
|
||||
button_tween.tween_callback(start_climbing)
|
||||
|
||||
1
assets/lift/lift.gd.uid
Normal file
1
assets/lift/lift.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://c1w84vh3bqijr
|
||||
BIN
assets/lift/lift.glb
Normal file
BIN
assets/lift/lift.glb
Normal file
Binary file not shown.
42
assets/lift/lift.glb.import
Normal file
42
assets/lift/lift.glb.import
Normal file
@@ -0,0 +1,42 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://cc2vcuaulfks3"
|
||||
path="res://.godot/imported/lift.glb-e7e66d0f097e30a0a067073f130adce8.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/lift/lift.glb"
|
||||
dest_files=["res://.godot/imported/lift.glb-e7e66d0f097e30a0a067073f130adce8.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
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=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=2
|
||||
gltf/embedded_image_handling=1
|
||||
41
assets/lift/lift.tscn
Normal file
41
assets/lift/lift.tscn
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
@@ -5,11 +5,11 @@ bus/1/name = &"Music"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = false
|
||||
bus/1/bypass_fx = false
|
||||
bus/1/volume_db = -6.5788474
|
||||
bus/1/volume_db = -26.595549
|
||||
bus/1/send = &"Master"
|
||||
bus/2/name = &"SFX"
|
||||
bus/2/solo = false
|
||||
bus/2/mute = false
|
||||
bus/2/bypass_fx = false
|
||||
bus/2/volume_db = -10.074136
|
||||
bus/2/volume_db = -8.798218
|
||||
bus/2/send = &"Master"
|
||||
|
||||
@@ -26,6 +26,7 @@ debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=false
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
shader_baker/enabled=true
|
||||
binary_format/architecture="x86_64"
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
@@ -71,10 +72,11 @@ script_export_mode=2
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
debug/export_console_wrapper=2
|
||||
binary_format/embed_pck=false
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
shader_baker/enabled=true
|
||||
binary_format/architecture="x86_64"
|
||||
codesign/enable=false
|
||||
codesign/timestamp=true
|
||||
@@ -123,53 +125,6 @@ texture_format/etc2=false
|
||||
|
||||
[preset.2]
|
||||
|
||||
name="Web"
|
||||
platform="Web"
|
||||
runnable=true
|
||||
advanced_options=false
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
seed=0
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.2.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
variant/extensions_support=false
|
||||
variant/thread_support=true
|
||||
vram_texture_compression/for_desktop=true
|
||||
vram_texture_compression/for_mobile=false
|
||||
html/export_icon=true
|
||||
html/custom_html_shell=""
|
||||
html/head_include=""
|
||||
html/canvas_resize_policy=2
|
||||
html/focus_canvas_on_start=true
|
||||
html/experimental_virtual_keyboard=false
|
||||
progressive_web_app/enabled=false
|
||||
progressive_web_app/ensure_cross_origin_isolation_headers=true
|
||||
progressive_web_app/offline_page=""
|
||||
progressive_web_app/display=1
|
||||
progressive_web_app/orientation=0
|
||||
progressive_web_app/icon_144x144=""
|
||||
progressive_web_app/icon_180x180=""
|
||||
progressive_web_app/icon_512x512=""
|
||||
progressive_web_app/background_color=Color(0, 0, 0, 1)
|
||||
dotnet/include_scripts_content=false
|
||||
dotnet/include_debug_symbols=true
|
||||
dotnet/embed_build_outputs=false
|
||||
|
||||
[preset.3]
|
||||
|
||||
name="macOS"
|
||||
platform="macOS"
|
||||
runnable=true
|
||||
@@ -188,7 +143,7 @@ encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.3.options]
|
||||
[preset.2.options]
|
||||
|
||||
export/distribution_type=1
|
||||
binary_format/architecture="universal"
|
||||
@@ -208,6 +163,7 @@ application/min_macos_version_x86_64="10.12"
|
||||
application/min_macos_version_arm64="11.00"
|
||||
application/export_angle=0
|
||||
display/high_res=true
|
||||
shader_baker/enabled=true
|
||||
application/additional_plist_content=""
|
||||
xcode/platform_build="14C18"
|
||||
xcode/sdk_version="13.1"
|
||||
@@ -425,3 +381,74 @@ dotnet/include_scripts_content=false
|
||||
dotnet/include_debug_symbols=true
|
||||
dotnet/embed_build_outputs=false
|
||||
application/min_macos_version="10.12"
|
||||
|
||||
[preset.3]
|
||||
|
||||
name="Windows ARM"
|
||||
platform="Windows Desktop"
|
||||
runnable=false
|
||||
advanced_options=false
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
seed=0
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.3.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=false
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
shader_baker/enabled=true
|
||||
binary_format/architecture="arm64"
|
||||
codesign/enable=false
|
||||
codesign/timestamp=true
|
||||
codesign/timestamp_server_url=""
|
||||
codesign/digest_algorithm=1
|
||||
codesign/description=""
|
||||
codesign/custom_options=PackedStringArray()
|
||||
application/modify_resources=true
|
||||
application/icon=""
|
||||
application/console_wrapper_icon=""
|
||||
application/icon_interpolation=4
|
||||
application/file_version=""
|
||||
application/product_version=""
|
||||
application/company_name=""
|
||||
application/product_name=""
|
||||
application/file_description=""
|
||||
application/copyright=""
|
||||
application/trademarks=""
|
||||
application/export_angle=0
|
||||
application/export_d3d12=0
|
||||
application/d3d12_agility_sdk_multiarch=true
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
||||
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
||||
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
||||
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
|
||||
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
||||
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
||||
Start-ScheduledTask -TaskName godot_remote_debug
|
||||
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
||||
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||
Remove-Item -Recurse -Force '{temp_dir}'"
|
||||
dotnet/include_scripts_content=false
|
||||
dotnet/include_debug_symbols=true
|
||||
dotnet/embed_build_outputs=false
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=16 format=3 uid="uid://dmkw8cmalm5k"]
|
||||
[gd_scene load_steps=20 format=3 uid="uid://dmkw8cmalm5k"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bei4nhkf8lwdo" path="res://player_controller/PlayerController.tscn" id="1_2vsi6"]
|
||||
[ext_resource type="Texture2D" uid="uid://ca4kkq3w8cd4n" path="res://assets/sky/sky_15_2k.png" id="2_ruo5i"]
|
||||
@@ -12,6 +12,9 @@
|
||||
[ext_resource type="AudioStream" uid="uid://f8cvr5s041ej" path="res://assets/audio/ambiance/637083__nox_sound__ambiance_nature_night_cricket_calm_loop_stereo.wav" id="10_eca4n"]
|
||||
[ext_resource type="PackedScene" uid="uid://dip6cce5gtwi8" path="res://assets/greyboxing/guard_tower.tscn" id="11_wctvs"]
|
||||
[ext_resource type="PackedScene" uid="uid://c066hc7yu36wx" path="res://assets/water/water.tscn" id="12_i2xii"]
|
||||
[ext_resource type="PackedScene" uid="uid://gir68sk3762e" path="res://assets/lift/lift.tscn" id="13_eca4n"]
|
||||
[ext_resource type="CylinderMesh" uid="uid://bhkbwvuft1bpg" path="res://systems/weapon/weapon_tuto.tres" id="14_0ari0"]
|
||||
[ext_resource type="Script" uid="uid://v4nnql2laqdn" path="res://systems/weapon/placed_tutorial_weapon.gd" id="15_165wb"]
|
||||
|
||||
[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_feb1n"]
|
||||
panorama = ExtResource("2_ruo5i")
|
||||
@@ -27,19 +30,26 @@ reflected_light_source = 2
|
||||
tonemap_mode = 4
|
||||
ssao_enabled = true
|
||||
ssil_enabled = true
|
||||
sdfgi_enabled = true
|
||||
sdfgi_use_occlusion = true
|
||||
fog_light_color = Color(1, 1, 1, 1)
|
||||
fog_density = 0.001
|
||||
fog_sky_affect = 0.121
|
||||
volumetric_fog_enabled = true
|
||||
fog_enabled = true
|
||||
fog_light_color = Color(0.9955967, 0.83634025, 0.69151855, 1)
|
||||
fog_sun_scatter = 0.5
|
||||
fog_density = 0.002
|
||||
fog_sky_affect = 0.184
|
||||
volumetric_fog_density = 0.004
|
||||
volumetric_fog_emission = Color(1, 1, 1, 1)
|
||||
volumetric_fog_anisotropy = 0.6
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_0ari0"]
|
||||
size = Vector3(11.5, 9, 4.5)
|
||||
|
||||
[node name="Main" type="Node3D"]
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("1_2vsi6")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.21207, 64.344444, -41.363285)
|
||||
[node name="Player" parent="." node_paths=PackedStringArray("TutorialWeaponTarget") instance=ExtResource("1_2vsi6")]
|
||||
transform = Transform3D(0.054514527, 0, -0.9985129, 0, 1, 0, 0.9985129, 0, 0.054514527, -1.2857323, -132.74933, 116.15933)
|
||||
collision_layer = 17
|
||||
TutorialWeaponTarget = NodePath("../PlacedTutorialWeapon/WeaponLocationTarget")
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_1bvp3")
|
||||
@@ -77,3 +87,42 @@ pause = ExtResource("10_0ari0")
|
||||
|
||||
[node name="BackgroundMusicPlayer" parent="." instance=ExtResource("9_i2xii")]
|
||||
stream = ExtResource("10_eca4n")
|
||||
|
||||
[node name="Lift" parent="." instance=ExtResource("13_eca4n")]
|
||||
transform = Transform3D(0.9961947, 0, -0.08715573, 0, 1, 0, 0.08715573, 0, 0.9961947, -4.593, 1.618, 0.583)
|
||||
end_location = Vector3(-4.593, 116.11, 0.583)
|
||||
lift_time = 15.0
|
||||
|
||||
[node name="PlacedTutorialWeapon" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-2, 3.019916e-07, 0, -3.019916e-07, -2, 0, 0, 0, 2, -17.904, -79.265, 145.317)
|
||||
mesh = ExtResource("14_0ari0")
|
||||
script = ExtResource("15_165wb")
|
||||
|
||||
[node name="SpotLight3D" type="SpotLight3D" parent="PlacedTutorialWeapon"]
|
||||
transform = Transform3D(1, -1.509958e-07, 6.600236e-15, 0, -4.371139e-08, -1, 1.509958e-07, 1, -4.371139e-08, 0, -2.3931274, 0)
|
||||
spot_range = 9.85
|
||||
spot_attenuation = 0.46
|
||||
spot_angle = 15.0
|
||||
|
||||
[node name="WeaponLocationTarget" type="Marker3D" parent="PlacedTutorialWeapon"]
|
||||
|
||||
[node name="TutorialDoneArea" type="Area3D" parent="."]
|
||||
transform = Transform3D(0.9961947, 0, -0.08715574, 0, 1, 0, 0.08715574, 0, 0.9961947, -17, -79, 125.5)
|
||||
collision_layer = 0
|
||||
collision_mask = 16
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="TutorialDoneArea"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7500105, 4, 0.7499695)
|
||||
shape = SubResource("BoxShape3D_0ari0")
|
||||
|
||||
[node name="WeaponRetrieved" type="Area3D" parent="."]
|
||||
transform = Transform3D(0.9961947, 0, -0.08715574, 0, 1, 0, 0.08715574, 0, 0.9961947, -18, -79, 145)
|
||||
collision_layer = 0
|
||||
collision_mask = 16
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="WeaponRetrieved"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7500105, 4, 0.7499695)
|
||||
shape = SubResource("BoxShape3D_0ari0")
|
||||
|
||||
[connection signal="body_entered" from="TutorialDoneArea" to="Player" method="OnTutorialDone"]
|
||||
[connection signal="body_entered" from="WeaponRetrieved" to="PlacedTutorialWeapon" method="_on_weapon_retrieved_body_entered"]
|
||||
|
||||
31
menus/scenes/menus/main_menu/new_main_menu.tscn
Normal file
31
menus/scenes/menus/main_menu/new_main_menu.tscn
Normal file
@@ -0,0 +1,31 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://br8shfwk2lne0"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://brrt2uj47cmld" path="res://systems/ui/grab_focus.gd" id="1_c6nmr"]
|
||||
[ext_resource type="Script" uid="uid://ckywnolvqy6w1" path="res://systems/ui/new_main_menu.gd" id="1_vi8ha"]
|
||||
|
||||
[node name="NewMainMenu" 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_vi8ha")
|
||||
game_scene_path = "uid://dmkw8cmalm5k"
|
||||
|
||||
[node name="Menus" type="MarginContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="StartGameButton" type="Button" parent="Menus"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
text = "Start game"
|
||||
script = ExtResource("1_c6nmr")
|
||||
|
||||
[connection signal="pressed" from="Menus/StartGameButton" to="." method="on_new_game"]
|
||||
@@ -1,10 +1,15 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://ccqajqchiw4xu"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://ccqajqchiw4xu"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://b5cd6sa8qq4vc" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/menus/pause_menu.tscn" id="1_0paax"]
|
||||
[ext_resource type="Script" uid="uid://bwvomv4eww4fg" path="res://menus/scenes/overlaid_menus/pause_menu.gd" id="2_ek1hy"]
|
||||
[ext_resource type="PackedScene" uid="uid://dim045la3mijk" path="res://menus/scenes/overlaid_menus/mini_options_overlaid_menu.tscn" id="3_e0t2r"]
|
||||
[ext_resource type="Resource" uid="uid://c2hpxkcujyc13" path="res://systems/inputs/menu_mode/menu_mode.tres" id="4_nfx08"]
|
||||
|
||||
[node name="PauseMenu" instance=ExtResource("1_0paax")]
|
||||
script = ExtResource("2_ek1hy")
|
||||
options_packed_scene = ExtResource("3_e0t2r")
|
||||
main_menu_scene = "res://menus/scenes/menus/main_menu/main_menu_with_animations.tscn"
|
||||
menu_context = ExtResource("4_nfx08")
|
||||
|
||||
[connection signal="tree_entered" from="." to="." method="on_enter_tree"]
|
||||
[connection signal="tree_exited" from="." to="." method="on_exit_tree"]
|
||||
|
||||
@@ -134,7 +134,7 @@ target_position = Vector3(0, -0.75, 0)
|
||||
|
||||
[node name="MantleSystem" parent="." instance=ExtResource("8_qu4wy")]
|
||||
MantleEndLocationDistanceFromWall = 0.3
|
||||
MantleHeightCastStart = 1.5
|
||||
MantleHeightCastStart = 2.0
|
||||
|
||||
[node name="Bobbing" type="Node3D" parent="."]
|
||||
script = ExtResource("10_7wk1w")
|
||||
@@ -212,6 +212,7 @@ one_shot = true
|
||||
ignore_time_scale = true
|
||||
|
||||
[node name="StateChartDebugger" parent="." instance=ExtResource("24_q5h8a")]
|
||||
visible = false
|
||||
offset_left = 1524.0
|
||||
offset_top = 1.0
|
||||
offset_right = -8.0
|
||||
@@ -251,15 +252,24 @@ expand_mode = 2
|
||||
|
||||
[node name="DashCooldownIndicator" type="ColorRect" parent="UI"]
|
||||
unique_name_in_owner = true
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 910.0
|
||||
offset_top = 549.0
|
||||
offset_right = 1010.0
|
||||
offset_bottom = 559.0
|
||||
offset_right = -910.0
|
||||
offset_bottom = -521.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="CenterContainer" type="CenterContainer" parent="UI"]
|
||||
custom_minimum_size = Vector2(1920, 1080)
|
||||
offset_right = 1919.0
|
||||
offset_bottom = 1080.0
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_right = -1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="CenterIcon" type="TextureRect" parent="UI/CenterContainer"]
|
||||
material = SubResource("CanvasItemMaterial_2q0ik")
|
||||
@@ -365,44 +375,6 @@ to = NodePath("../../AtLeastOneCharge")
|
||||
event = &"power_used"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="WeaponState" type="Node" parent="StateChart/Root"]
|
||||
script = ExtResource("26_infe6")
|
||||
initial_state = NodePath("InHand")
|
||||
metadata/_custom_type_script = "uid://c1vp0ojjvaby1"
|
||||
|
||||
[node name="ToPlanted" type="Node" parent="StateChart/Root/WeaponState"]
|
||||
script = ExtResource("28_n7qhm")
|
||||
to = NodePath("../Planted")
|
||||
event = &"plant_weapon"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="ToHand" type="Node" parent="StateChart/Root/WeaponState"]
|
||||
script = ExtResource("28_n7qhm")
|
||||
to = NodePath("../InHand")
|
||||
event = &"recover_weapond"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="InHand" type="Node" parent="StateChart/Root/WeaponState"]
|
||||
script = ExtResource("27_34snm")
|
||||
|
||||
[node name="ToThrown" type="Node" parent="StateChart/Root/WeaponState/InHand"]
|
||||
script = ExtResource("28_n7qhm")
|
||||
to = NodePath("../../Flying")
|
||||
event = &"throw"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="Flying" type="Node" parent="StateChart/Root/WeaponState"]
|
||||
script = ExtResource("27_34snm")
|
||||
|
||||
[node name="ToPlanted" type="Node" parent="StateChart/Root/WeaponState/Flying"]
|
||||
script = ExtResource("28_n7qhm")
|
||||
to = NodePath("../../Planted")
|
||||
event = &"plant_weapon"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="Planted" type="Node" parent="StateChart/Root/WeaponState"]
|
||||
script = ExtResource("27_34snm")
|
||||
|
||||
[node name="Movement" type="Node" parent="StateChart/Root"]
|
||||
script = ExtResource("26_infe6")
|
||||
initial_state = NodePath("Grounded")
|
||||
|
||||
@@ -50,6 +50,8 @@ public partial class PlayerController : CharacterBody3D
|
||||
private Timer _timeScaleAimInAirTimer;
|
||||
private Timer _simpleDashCooldownTimer;
|
||||
private Timer _powerCooldownTimer;
|
||||
|
||||
[Export] public Marker3D TutorialWeaponTarget;
|
||||
|
||||
[ExportCategory("Movement")]
|
||||
[ExportGroup("Ground")]
|
||||
@@ -156,26 +158,22 @@ public partial class PlayerController : CharacterBody3D
|
||||
PlayerUi.SetNumberOfDashesLeft(value);
|
||||
}
|
||||
}
|
||||
|
||||
public bool TutorialDone { get; set; } = false;
|
||||
|
||||
private bool _canDashAirborne = true;
|
||||
private bool _isWallJumpAvailable = true;
|
||||
private bool _canDash = true;
|
||||
private bool _shouldMantleOnDashEnded = false;
|
||||
|
||||
private StateChart _playerState;
|
||||
|
||||
private StateChartState _weaponInHand;
|
||||
private StateChartState _aiming;
|
||||
private StateChartState _weaponThrown;
|
||||
private StateChartState _actionHanging;
|
||||
private StateChartState _empowerOn;
|
||||
private StateChartState _empowerOff;
|
||||
private StateChartState _powerExpired;
|
||||
private StateChartState _powerRecharging;
|
||||
private StateChartState _powerFull;
|
||||
|
||||
private StateChartState _grounded;
|
||||
private StateChartState _mantling;
|
||||
private StateChartState _movHanging;
|
||||
private StateChartState _airborne;
|
||||
private StateChartState _coyoteEnabled;
|
||||
private StateChartState _simpleJump;
|
||||
@@ -184,13 +182,9 @@ public partial class PlayerController : CharacterBody3D
|
||||
private StateChartState _simpleDash;
|
||||
private StateChartState _poweredDash;
|
||||
private StateChartState _aimedDash;
|
||||
private StateChartState _doubleJumpEnabled;
|
||||
private StateChartState _onWall;
|
||||
private StateChartState _onWallHugCanceled;
|
||||
private StateChartState _onWallHugging;
|
||||
private StateChartState _onWallHanging;
|
||||
private StateChartState _falling;
|
||||
private StateChartState _to_weapon_dash;
|
||||
|
||||
private Transition _onJumpFromWall;
|
||||
private Transition _onMegajumpFromWall;
|
||||
@@ -277,31 +271,22 @@ public partial class PlayerController : CharacterBody3D
|
||||
// State management
|
||||
_playerState = StateChart.Of(GetNode("StateChart"));
|
||||
|
||||
_weaponInHand = StateChartState.Of(GetNode("StateChart/Root/WeaponState/InHand"));
|
||||
_weaponThrown = StateChartState.Of(GetNode("StateChart/Root/WeaponState/Flying"));
|
||||
_aiming = StateChartState.Of(GetNode("StateChart/Root/Aim/On"));
|
||||
_simpleDash = StateChartState.Of(GetNode("StateChart/Root/Movement/Dashing/Dash"));
|
||||
_poweredDash = StateChartState.Of(GetNode("StateChart/Root/Movement/Dashing/PoweredDash"));
|
||||
_aimedDash = StateChartState.Of(GetNode("StateChart/Root/Movement/Dashing/AimedDash"));
|
||||
// _actionHanging = StateChartState.Of(GetNode("StateChart/Root/Actions/Hanging"));
|
||||
_empowerOn = StateChartState.Of(GetNode("StateChart/Root/Empower/On"));
|
||||
_empowerOff = StateChartState.Of(GetNode("StateChart/Root/Empower/Off"));
|
||||
_powerExpired = StateChartState.Of(GetNode("StateChart/Root/PowerReserve/Expired"));
|
||||
_powerRecharging = StateChartState.Of(GetNode("StateChart/Root/PowerReserve/AtLeastOneCharge"));
|
||||
_powerFull = StateChartState.Of(GetNode("StateChart/Root/PowerReserve/Full"));
|
||||
|
||||
_grounded = StateChartState.Of(GetNode("StateChart/Root/Movement/Grounded"));
|
||||
_mantling = StateChartState.Of(GetNode("StateChart/Root/Movement/Mantling"));
|
||||
_movHanging = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall/Hanging"));
|
||||
_airborne = StateChartState.Of(GetNode("StateChart/Root/Movement/Airborne"));
|
||||
_coyoteEnabled = StateChartState.Of(GetNode("StateChart/Root/Movement/Airborne/CoyoteEnabled"));
|
||||
_simpleJump = StateChartState.Of(GetNode("StateChart/Root/Movement/Jump/SimpleJump"));
|
||||
_doubleJump = StateChartState.Of(GetNode("StateChart/Root/Movement/Jump/DoubleJump"));
|
||||
_megaJump = StateChartState.Of(GetNode("StateChart/Root/Movement/Jump/MegaJump"));
|
||||
_doubleJumpEnabled = StateChartState.Of(GetNode("StateChart/Root/Movement/Airborne/DoubleJumpEnabled"));
|
||||
_falling = StateChartState.Of(GetNode("StateChart/Root/Movement/Airborne/Falling"));
|
||||
_to_weapon_dash = StateChartState.Of(GetNode("StateChart/Root/Movement/Dashing/ToWeaponDash"));
|
||||
_onWall = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall"));
|
||||
_onJumpFromWall = Transition.Of(GetNode("StateChart/Root/Movement/OnWall/OnJump"));
|
||||
_onMegajumpFromWall = Transition.Of(GetNode("StateChart/Root/Movement/OnWall/OnMegajump"));
|
||||
_onWallHugging = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall/Hugging"));
|
||||
@@ -347,11 +332,11 @@ public partial class PlayerController : CharacterBody3D
|
||||
Stamina.SetSpeeds(WalkSpeed, WalkSpeed);
|
||||
|
||||
EmpoweredActionsLeft = MaxNumberOfEmpoweredActions;
|
||||
PlaceWeaponForTutorial();
|
||||
|
||||
///////////////////////////
|
||||
// Signal setup ///////////
|
||||
///////////////////////////
|
||||
_weaponInHand.StateProcessing += HandleWeaponInHand;
|
||||
_aiming.StatePhysicsProcessing += HandleAiming;
|
||||
_aiming.StateEntered += OnAimingEntered;
|
||||
_aiming.StateExited += ResetTimeScale;
|
||||
@@ -363,8 +348,6 @@ public partial class PlayerController : CharacterBody3D
|
||||
|
||||
_coyoteEnabled.StateEntered += StartCoyoteTime;
|
||||
_timeScaleAimInAirTimer.Timeout += ResetTimeScale;
|
||||
|
||||
// _weaponThrown.StateEntered += OnWeaponThrown;
|
||||
|
||||
_powerFull.StateEntered += StopPowerCooldown;
|
||||
_powerFull.StateExited += StartPowerCooldown;
|
||||
@@ -401,8 +384,12 @@ public partial class PlayerController : CharacterBody3D
|
||||
_onJumpFromWall.Taken += OnJumpFromWall;
|
||||
_onMegajumpFromWall.Taken += OnMegajumpFromWall;
|
||||
}
|
||||
|
||||
private bool _canDashAirborne = true;
|
||||
|
||||
public void OnTutorialDone(Node3D _)
|
||||
{
|
||||
TutorialDone = true;
|
||||
GD.Print("tutorial done");
|
||||
}
|
||||
|
||||
public void OnWallDetected()
|
||||
{
|
||||
@@ -532,7 +519,7 @@ public partial class PlayerController : CharacterBody3D
|
||||
|
||||
public Vector3 ComputeHVelocity(float delta, float accelerationFactor, float decelerationFactor, Vector3? direction = null)
|
||||
{
|
||||
var dir = direction ?? HeadSystem.Transform.Basis * _inputMove;
|
||||
var dir = direction ?? Transform.Basis * HeadSystem.Transform.Basis * _inputMove;
|
||||
|
||||
var acceleration = dir.Length() > 0 ? accelerationFactor : decelerationFactor;
|
||||
|
||||
@@ -833,6 +820,14 @@ public partial class PlayerController : CharacterBody3D
|
||||
{
|
||||
_playerState.SendEvent("dash_finished");
|
||||
}
|
||||
|
||||
public void PlaceWeaponForTutorial()
|
||||
{
|
||||
RemoveChild(WeaponRoot);
|
||||
GetTree().GetRoot().CallDeferred(Node.MethodName.AddChild, WeaponRoot);
|
||||
WeaponRoot.CallDeferred(Node3D.MethodName.SetGlobalPosition, TutorialWeaponTarget.GlobalPosition);
|
||||
WeaponSystem.CallDeferred(WeaponSystem.MethodName.PlaceWeaponForTutorial, TutorialWeaponTarget.GlobalPosition);
|
||||
}
|
||||
|
||||
public void ThrowWeapon()
|
||||
{
|
||||
@@ -875,7 +870,7 @@ public partial class PlayerController : CharacterBody3D
|
||||
|
||||
public Vector3 GetInputGlobalHDirection()
|
||||
{
|
||||
var direction = HeadSystem.Transform.Basis * _inputMove;
|
||||
var direction = Transform.Basis * HeadSystem.Transform.Basis * _inputMove;
|
||||
return new Vector3(direction.X, 0, direction.Z).Normalized();
|
||||
}
|
||||
|
||||
@@ -914,7 +909,7 @@ public partial class PlayerController : CharacterBody3D
|
||||
|
||||
public bool CanPerformEmpoweredAction()
|
||||
{
|
||||
return EmpoweredActionsLeft > 0;
|
||||
return EmpoweredActionsLeft > 0 && TutorialDone;
|
||||
}
|
||||
|
||||
public void PerformEmpoweredAction()
|
||||
@@ -949,13 +944,6 @@ public partial class PlayerController : CharacterBody3D
|
||||
_playerState.SendEvent("grounded");
|
||||
}
|
||||
|
||||
// Regular processes
|
||||
public void HandleWeaponInHand(float delta)
|
||||
{
|
||||
if (WeaponSystem.InHandState.Active)
|
||||
RotateWeaponWithPlayer();
|
||||
}
|
||||
|
||||
///////////////////////////
|
||||
// Stateless logic ////////
|
||||
///////////////////////////
|
||||
@@ -1105,12 +1093,15 @@ public partial class PlayerController : CharacterBody3D
|
||||
CameraModifications((float) delta);
|
||||
HandleStairs((float) delta);
|
||||
|
||||
if (WeaponSystem.InHandState.Active && !_aiming.Active)
|
||||
if (WeaponSystem.InHandState.Active)
|
||||
RotateWeaponWithPlayer();
|
||||
|
||||
if (WeaponSystem.InHandState.Active && !_aiming.Active && TutorialDone)
|
||||
{
|
||||
DashIndicatorMesh.Visible = false;
|
||||
}
|
||||
|
||||
if (!WeaponSystem.InHandState.Active)
|
||||
if (!WeaponSystem.InHandState.Active && TutorialDone)
|
||||
{
|
||||
DashIndicatorMesh.Visible = true;
|
||||
|
||||
|
||||
@@ -46,6 +46,32 @@ theme/custom="res://menus/resources/themes/expedition.tres"
|
||||
|
||||
[input]
|
||||
|
||||
ui_accept={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194310,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null)
|
||||
]
|
||||
}
|
||||
ui_cancel={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194305,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":6,"pressure":0.0,"pressed":true,"script":null)
|
||||
]
|
||||
}
|
||||
ui_focus_next={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194306,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":true,"script":null)
|
||||
]
|
||||
}
|
||||
ui_focus_prev={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194306,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":9,"pressure":0.0,"pressed":true,"script":null)
|
||||
]
|
||||
}
|
||||
up={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
|
||||
@@ -128,7 +154,9 @@ copy_path="res://scenes"
|
||||
|
||||
[physics]
|
||||
|
||||
common/physics_jitter_fix=0.0
|
||||
3d/physics_engine="Jolt Physics"
|
||||
common/physics_interpolation=true
|
||||
|
||||
[rendering]
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ namespace Movementtests.systems;
|
||||
public partial class HeadSystem : Node3D
|
||||
{
|
||||
private Camera3D _camera;
|
||||
private Marker3D _cameraAnchor;
|
||||
|
||||
[Export(PropertyHint.Range, "0,10,0.1,or_greater")]
|
||||
public float LookSensitivity { get; set; } = 1f;
|
||||
@@ -14,6 +15,7 @@ public partial class HeadSystem : Node3D
|
||||
{
|
||||
Input.SetMouseMode(Input.MouseModeEnum.Captured);
|
||||
_camera = GetNode<Camera3D>("CameraSmooth/Camera3D");
|
||||
_cameraAnchor = GetNode<Marker3D>("CameraAnchor");
|
||||
}
|
||||
|
||||
public void LookAround(Vector2 lookDir, float sensitivitMultiplier = 1f)
|
||||
@@ -23,11 +25,12 @@ public partial class HeadSystem : Node3D
|
||||
RotateY(angleForHorizontalRotation);
|
||||
|
||||
// Vertical movement of head
|
||||
Vector3 currentCameraRotation = _camera.Rotation;
|
||||
Vector3 currentCameraRotation = _cameraAnchor.Rotation;
|
||||
currentCameraRotation.X += Convert.ToSingle(lookDir.Y * LookSensitivity * sensitivitMultiplier);
|
||||
currentCameraRotation.X = Mathf.Clamp(currentCameraRotation.X, Mathf.DegToRad(-90f), Mathf.DegToRad(90f));
|
||||
|
||||
_camera.Rotation = currentCameraRotation;
|
||||
_cameraAnchor.Rotation = currentCameraRotation;
|
||||
|
||||
_camera.GlobalTransform = _cameraAnchor.GetGlobalTransformInterpolated();
|
||||
}
|
||||
|
||||
public Vector3 GetForwardHorizontalVector()
|
||||
|
||||
@@ -16,8 +16,8 @@ script = ExtResource("1_8abgy")
|
||||
[node name="CameraSmooth" type="Node3D" parent="."]
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="CameraSmooth"]
|
||||
transform = Transform3D(0.15, 0, 0, 0, 0.15, 0, 0, 0, 0.15, 0, 0, 0)
|
||||
current = true
|
||||
fov = 90.0
|
||||
|
||||
[node name="CLVignette(Layer_1)" type="CanvasLayer" parent="CameraSmooth/Camera3D"]
|
||||
|
||||
@@ -57,3 +57,5 @@ mouse_filter = 2
|
||||
[node name="RayCast3D" type="RayCast3D" parent="CameraSmooth/Camera3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -0.64723)
|
||||
visible = false
|
||||
|
||||
[node name="CameraAnchor" type="Marker3D" parent="."]
|
||||
|
||||
7
systems/inputs/menu_mode/back.tres
Normal file
7
systems/inputs/menu_mode/back.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://ck43v3q5ype3f"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cluhc11vixkf1" path="res://addons/guide/guide_action.gd" id="1_4pmby"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_4pmby")
|
||||
metadata/_custom_type_script = "uid://cluhc11vixkf1"
|
||||
7
systems/inputs/menu_mode/down.tres
Normal file
7
systems/inputs/menu_mode/down.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://dv6438xhua6id"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cluhc11vixkf1" path="res://addons/guide/guide_action.gd" id="1_56ywq"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_56ywq")
|
||||
metadata/_custom_type_script = "uid://cluhc11vixkf1"
|
||||
7
systems/inputs/menu_mode/left.tres
Normal file
7
systems/inputs/menu_mode/left.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://by80bubgg0dpx"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cluhc11vixkf1" path="res://addons/guide/guide_action.gd" id="1_jx5gn"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_jx5gn")
|
||||
metadata/_custom_type_script = "uid://cluhc11vixkf1"
|
||||
272
systems/inputs/menu_mode/menu_mode.tres
Normal file
272
systems/inputs/menu_mode/menu_mode.tres
Normal file
@@ -0,0 +1,272 @@
|
||||
[gd_resource type="Resource" script_class="GUIDEMappingContext" load_steps=78 format=3 uid="uid://c2hpxkcujyc13"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cpplm41b5bt6m" path="res://addons/guide/guide_action_mapping.gd" id="1_xno0b"]
|
||||
[ext_resource type="Resource" uid="uid://ck43v3q5ype3f" path="res://systems/inputs/menu_mode/back.tres" id="2_6sfub"]
|
||||
[ext_resource type="Script" uid="uid://dsa1dnifd6w32" path="res://addons/guide/guide_mapping_context.gd" id="2_w5wm7"]
|
||||
[ext_resource type="Script" uid="uid://mtx1unc2aqn7" path="res://addons/guide/guide_input_mapping.gd" id="3_scydb"]
|
||||
[ext_resource type="Script" uid="uid://rvttn472ix6v" path="res://addons/guide/inputs/guide_input_joy_button.gd" id="4_q6ncx"]
|
||||
[ext_resource type="Script" uid="uid://bl8rjl4oaldje" path="res://addons/guide/modifiers/guide_modifier.gd" id="5_vnf02"]
|
||||
[ext_resource type="Script" uid="uid://x74mnwgr08a7" path="res://addons/guide/triggers/guide_trigger.gd" id="6_c647i"]
|
||||
[ext_resource type="Script" uid="uid://b52rqq28tuqpg" path="res://addons/guide/triggers/guide_trigger_pressed.gd" id="7_m88dc"]
|
||||
[ext_resource type="Script" uid="uid://cw71o87tvdx3q" path="res://addons/guide/inputs/guide_input_key.gd" id="8_yfqfy"]
|
||||
[ext_resource type="Resource" uid="uid://ds8quw8a7uh2u" path="res://systems/inputs/menu_mode/select.tres" id="9_dsdj3"]
|
||||
[ext_resource type="Resource" uid="uid://8t1evbmg3liq" path="res://systems/inputs/menu_mode/up.tres" id="10_q44ew"]
|
||||
[ext_resource type="Resource" uid="uid://dv6438xhua6id" path="res://systems/inputs/menu_mode/down.tres" id="11_as826"]
|
||||
[ext_resource type="Resource" uid="uid://cihlxajjlh80a" path="res://systems/inputs/menu_mode/right.tres" id="12_erftc"]
|
||||
[ext_resource type="Resource" uid="uid://by80bubgg0dpx" path="res://systems/inputs/menu_mode/left.tres" id="13_sy651"]
|
||||
[ext_resource type="Resource" uid="uid://bmef0jo6o41ic" path="res://systems/inputs/menu_mode/next.tres" id="14_2sr1w"]
|
||||
[ext_resource type="Resource" uid="uid://c3n6ww58cmbbk" path="res://systems/inputs/menu_mode/previous.tres" id="15_2j2sf"]
|
||||
[ext_resource type="Resource" uid="uid://dgluj0ql5vth7" path="res://systems/inputs/base_mode/pause.tres" id="16_scydb"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_tp5dr"]
|
||||
script = ExtResource("4_q6ncx")
|
||||
button = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_lvbl0"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_2ux44"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_tp5dr")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_lvbl0")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_h2f8g"]
|
||||
script = ExtResource("8_yfqfy")
|
||||
key = 4194305
|
||||
|
||||
[sub_resource type="Resource" id="Resource_17mt7"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_23hmj"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_h2f8g")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_17mt7")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_len71"]
|
||||
script = ExtResource("1_xno0b")
|
||||
action = ExtResource("2_6sfub")
|
||||
input_mappings = Array[ExtResource("3_scydb")]([SubResource("Resource_2ux44"), SubResource("Resource_23hmj")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_wkavf"]
|
||||
script = ExtResource("4_q6ncx")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_3uc4f"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_fidv6"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_wkavf")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_3uc4f")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_y2xy1"]
|
||||
script = ExtResource("8_yfqfy")
|
||||
key = 4194309
|
||||
|
||||
[sub_resource type="Resource" id="Resource_orcaw"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_yxowx"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_y2xy1")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_orcaw")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ruq4f"]
|
||||
script = ExtResource("1_xno0b")
|
||||
action = ExtResource("9_dsdj3")
|
||||
input_mappings = Array[ExtResource("3_scydb")]([SubResource("Resource_fidv6"), SubResource("Resource_yxowx")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_3fxnk"]
|
||||
script = ExtResource("4_q6ncx")
|
||||
button = 11
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5uay1"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_0v0i1"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_3fxnk")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_5uay1")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_72t1r"]
|
||||
script = ExtResource("8_yfqfy")
|
||||
key = 4194320
|
||||
|
||||
[sub_resource type="Resource" id="Resource_4qbib"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_cccin"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_72t1r")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_4qbib")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5hp22"]
|
||||
script = ExtResource("1_xno0b")
|
||||
action = ExtResource("10_q44ew")
|
||||
input_mappings = Array[ExtResource("3_scydb")]([SubResource("Resource_0v0i1"), SubResource("Resource_cccin")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1klk7"]
|
||||
script = ExtResource("4_q6ncx")
|
||||
button = 12
|
||||
|
||||
[sub_resource type="Resource" id="Resource_h4vny"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_jmmtp"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_1klk7")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_h4vny")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_cfqv5"]
|
||||
script = ExtResource("8_yfqfy")
|
||||
key = 4194322
|
||||
|
||||
[sub_resource type="Resource" id="Resource_0i4uw"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_fka1a"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_cfqv5")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_0i4uw")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7i3b3"]
|
||||
script = ExtResource("1_xno0b")
|
||||
action = ExtResource("11_as826")
|
||||
input_mappings = Array[ExtResource("3_scydb")]([SubResource("Resource_jmmtp"), SubResource("Resource_fka1a")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_s10di"]
|
||||
script = ExtResource("4_q6ncx")
|
||||
button = 14
|
||||
|
||||
[sub_resource type="Resource" id="Resource_isne2"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_fru3p"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_s10di")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_isne2")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_hbvow"]
|
||||
script = ExtResource("8_yfqfy")
|
||||
key = 4194321
|
||||
|
||||
[sub_resource type="Resource" id="Resource_mq0hj"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_sb8uf"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_hbvow")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_mq0hj")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_6ptcp"]
|
||||
script = ExtResource("1_xno0b")
|
||||
action = ExtResource("12_erftc")
|
||||
input_mappings = Array[ExtResource("3_scydb")]([SubResource("Resource_fru3p"), SubResource("Resource_sb8uf")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ortmh"]
|
||||
script = ExtResource("4_q6ncx")
|
||||
button = 13
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1berd"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_0wrqh"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_ortmh")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_1berd")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_saokt"]
|
||||
script = ExtResource("8_yfqfy")
|
||||
key = 4194319
|
||||
|
||||
[sub_resource type="Resource" id="Resource_2b3t5"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_a5khc"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_saokt")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_2b3t5")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xked7"]
|
||||
script = ExtResource("1_xno0b")
|
||||
action = ExtResource("13_sy651")
|
||||
input_mappings = Array[ExtResource("3_scydb")]([SubResource("Resource_0wrqh"), SubResource("Resource_a5khc")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1y2qg"]
|
||||
script = ExtResource("4_q6ncx")
|
||||
button = 10
|
||||
|
||||
[sub_resource type="Resource" id="Resource_vwpv3"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7mcrw"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_1y2qg")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_vwpv3")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_qjv8h"]
|
||||
script = ExtResource("1_xno0b")
|
||||
action = ExtResource("14_2sr1w")
|
||||
input_mappings = Array[ExtResource("3_scydb")]([SubResource("Resource_7mcrw")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_s2haq"]
|
||||
script = ExtResource("4_q6ncx")
|
||||
button = 9
|
||||
|
||||
[sub_resource type="Resource" id="Resource_vankc"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_3owmx"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_s2haq")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_vankc")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_p0ahg"]
|
||||
script = ExtResource("1_xno0b")
|
||||
action = ExtResource("15_2j2sf")
|
||||
input_mappings = Array[ExtResource("3_scydb")]([SubResource("Resource_3owmx")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_q6ncx"]
|
||||
script = ExtResource("4_q6ncx")
|
||||
button = 4
|
||||
|
||||
[sub_resource type="Resource" id="Resource_vnf02"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_c647i"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_q6ncx")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_vnf02")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_m88dc"]
|
||||
script = ExtResource("4_q6ncx")
|
||||
button = 6
|
||||
|
||||
[sub_resource type="Resource" id="Resource_yfqfy"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_dsdj3"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_m88dc")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_yfqfy")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_q44ew"]
|
||||
script = ExtResource("8_yfqfy")
|
||||
key = 4194305
|
||||
|
||||
[sub_resource type="Resource" id="Resource_as826"]
|
||||
script = ExtResource("7_m88dc")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_erftc"]
|
||||
script = ExtResource("3_scydb")
|
||||
input = SubResource("Resource_q44ew")
|
||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_as826")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_sy651"]
|
||||
script = ExtResource("1_xno0b")
|
||||
action = ExtResource("16_scydb")
|
||||
input_mappings = Array[ExtResource("3_scydb")]([SubResource("Resource_c647i"), SubResource("Resource_dsdj3"), SubResource("Resource_erftc")])
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_w5wm7")
|
||||
mappings = Array[ExtResource("1_xno0b")]([SubResource("Resource_len71"), SubResource("Resource_ruq4f"), SubResource("Resource_5hp22"), SubResource("Resource_7i3b3"), SubResource("Resource_6ptcp"), SubResource("Resource_xked7"), SubResource("Resource_qjv8h"), SubResource("Resource_p0ahg"), SubResource("Resource_sy651")])
|
||||
metadata/_custom_type_script = "uid://dsa1dnifd6w32"
|
||||
7
systems/inputs/menu_mode/next.tres
Normal file
7
systems/inputs/menu_mode/next.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://bmef0jo6o41ic"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cluhc11vixkf1" path="res://addons/guide/guide_action.gd" id="1_u34uv"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_u34uv")
|
||||
metadata/_custom_type_script = "uid://cluhc11vixkf1"
|
||||
7
systems/inputs/menu_mode/previous.tres
Normal file
7
systems/inputs/menu_mode/previous.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://c3n6ww58cmbbk"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cluhc11vixkf1" path="res://addons/guide/guide_action.gd" id="1_hipw6"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_hipw6")
|
||||
metadata/_custom_type_script = "uid://cluhc11vixkf1"
|
||||
7
systems/inputs/menu_mode/right.tres
Normal file
7
systems/inputs/menu_mode/right.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://cihlxajjlh80a"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cluhc11vixkf1" path="res://addons/guide/guide_action.gd" id="1_x80dv"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_x80dv")
|
||||
metadata/_custom_type_script = "uid://cluhc11vixkf1"
|
||||
7
systems/inputs/menu_mode/select.tres
Normal file
7
systems/inputs/menu_mode/select.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://ds8quw8a7uh2u"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cluhc11vixkf1" path="res://addons/guide/guide_action.gd" id="1_gdlub"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_gdlub")
|
||||
metadata/_custom_type_script = "uid://cluhc11vixkf1"
|
||||
7
systems/inputs/menu_mode/up.tres
Normal file
7
systems/inputs/menu_mode/up.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://8t1evbmg3liq"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cluhc11vixkf1" path="res://addons/guide/guide_action.gd" id="1_t6kxf"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_t6kxf")
|
||||
metadata/_custom_type_script = "uid://cluhc11vixkf1"
|
||||
@@ -6,6 +6,7 @@
|
||||
height = 1.7
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_2oobp"]
|
||||
radius = 0.75
|
||||
|
||||
[node name="MantleSystem" type="Node3D"]
|
||||
script = ExtResource("1_2oobp")
|
||||
|
||||
4
systems/ui/grab_focus.gd
Normal file
4
systems/ui/grab_focus.gd
Normal file
@@ -0,0 +1,4 @@
|
||||
extends Control
|
||||
|
||||
func _ready() -> void:
|
||||
grab_focus()
|
||||
1
systems/ui/grab_focus.gd.uid
Normal file
1
systems/ui/grab_focus.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://brrt2uj47cmld
|
||||
6
systems/ui/new_main_menu.gd
Normal file
6
systems/ui/new_main_menu.gd
Normal file
@@ -0,0 +1,6 @@
|
||||
extends Control
|
||||
|
||||
@export_file("*.tscn") var game_scene_path : String
|
||||
|
||||
func on_new_game() -> void:
|
||||
SceneLoader.load_scene(game_scene_path)
|
||||
1
systems/ui/new_main_menu.gd.uid
Normal file
1
systems/ui/new_main_menu.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://ckywnolvqy6w1
|
||||
@@ -81,6 +81,15 @@ public partial class WeaponSystem : RigidBody3D
|
||||
EmitSignalWeaponRetrieved();
|
||||
}
|
||||
|
||||
public void PlaceWeaponForTutorial(Vector3 location)
|
||||
{
|
||||
_weaponState.SendEvent("plant");
|
||||
Freeze = true;
|
||||
GlobalPosition = location;
|
||||
PlantLocation = location;
|
||||
Visible = false;
|
||||
}
|
||||
|
||||
public void ThrowWeapon(Vector3 end, bool hasHit, Vector3 collisionLocation, Vector3 collisionNormal)
|
||||
{
|
||||
_weaponState.SendEvent("throw");
|
||||
@@ -126,6 +135,7 @@ public partial class WeaponSystem : RigidBody3D
|
||||
_weaponState.SendEvent("recover");
|
||||
Transform = _startTransform;
|
||||
Freeze = true;
|
||||
Visible = true;
|
||||
}
|
||||
|
||||
public override void _IntegrateForces(PhysicsDirectBodyState3D state)
|
||||
|
||||
5
systems/weapon/placed_tutorial_weapon.gd
Normal file
5
systems/weapon/placed_tutorial_weapon.gd
Normal file
@@ -0,0 +1,5 @@
|
||||
extends MeshInstance3D
|
||||
|
||||
|
||||
func _on_weapon_retrieved_body_entered(body: Node3D) -> void:
|
||||
visible = false
|
||||
1
systems/weapon/placed_tutorial_weapon.gd.uid
Normal file
1
systems/weapon/placed_tutorial_weapon.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://v4nnql2laqdn
|
||||
13
systems/weapon/weapon.tres
Normal file
13
systems/weapon/weapon.tres
Normal file
@@ -0,0 +1,13 @@
|
||||
[gd_resource type="CylinderMesh" load_steps=2 format=3 uid="uid://b7vt0nk2htpo4"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jv82r"]
|
||||
use_z_clip_scale = true
|
||||
z_clip_scale = 0.9
|
||||
use_fov_override = true
|
||||
fov_override = 70.0
|
||||
|
||||
[resource]
|
||||
material = SubResource("StandardMaterial3D_jv82r")
|
||||
top_radius = 0.0
|
||||
bottom_radius = 0.05
|
||||
height = 1.0
|
||||
@@ -1,8 +1,9 @@
|
||||
[gd_scene load_steps=13 format=3 uid="uid://ckm3d6k08a72u"]
|
||||
[gd_scene load_steps=12 format=3 uid="uid://ckm3d6k08a72u"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://iii3wfto4t5b" path="res://systems/weapon/WeaponSystem.cs" id="1_csqwk"]
|
||||
[ext_resource type="PackedScene" uid="uid://dbe5f0p6lvqtr" path="res://systems/tween_queue/tween_queue_system.tscn" id="2_x1nha"]
|
||||
[ext_resource type="Script" uid="uid://couw105c3bde4" path="res://addons/godot_state_charts/state_chart.gd" id="3_5owyf"]
|
||||
[ext_resource type="CylinderMesh" uid="uid://b7vt0nk2htpo4" path="res://systems/weapon/weapon.tres" id="3_svc06"]
|
||||
[ext_resource type="Script" uid="uid://jk2jm1g6q853" path="res://addons/godot_state_charts/compound_state.gd" id="4_svc06"]
|
||||
[ext_resource type="Script" uid="uid://cytafq8i1y8qm" path="res://addons/godot_state_charts/atomic_state.gd" id="5_m0v1h"]
|
||||
[ext_resource type="Script" uid="uid://cf1nsco3w0mf6" path="res://addons/godot_state_charts/transition.gd" id="6_jpdh0"]
|
||||
@@ -11,23 +12,12 @@
|
||||
height = 1.0
|
||||
radius = 0.1
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5owyf"]
|
||||
use_z_clip_scale = true
|
||||
z_clip_scale = 0.9
|
||||
use_fov_override = true
|
||||
fov_override = 70.0
|
||||
|
||||
[sub_resource type="CylinderMesh" id="CylinderMesh_x1nha"]
|
||||
material = SubResource("StandardMaterial3D_5owyf")
|
||||
top_radius = 0.0
|
||||
bottom_radius = 0.05
|
||||
height = 1.0
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_svc06"]
|
||||
render_priority = 1
|
||||
transparency = 1
|
||||
no_depth_test = true
|
||||
shading_mode = 0
|
||||
grow_amount = 0.1
|
||||
stencil_mode = 3
|
||||
stencil_flags = 1
|
||||
stencil_compare = 5
|
||||
@@ -62,7 +52,7 @@ shape = SubResource("CylinderShape3D_avini")
|
||||
|
||||
[node name="Weapon" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0)
|
||||
mesh = SubResource("CylinderMesh_x1nha")
|
||||
mesh = ExtResource("3_svc06")
|
||||
|
||||
[node name="StateChart" type="Node" parent="."]
|
||||
script = ExtResource("3_5owyf")
|
||||
@@ -72,6 +62,12 @@ metadata/_custom_type_script = "uid://couw105c3bde4"
|
||||
script = ExtResource("4_svc06")
|
||||
initial_state = NodePath("InHand")
|
||||
|
||||
[node name="ToPlanted" type="Node" parent="StateChart/Root"]
|
||||
script = ExtResource("6_jpdh0")
|
||||
to = NodePath("../Planted")
|
||||
event = &"plant"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="InHand" type="Node" parent="StateChart/Root"]
|
||||
script = ExtResource("5_m0v1h")
|
||||
|
||||
@@ -90,12 +86,6 @@ to = NodePath("../../InHand")
|
||||
event = &"recover"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="ToPlanted" type="Node" parent="StateChart/Root/Flying"]
|
||||
script = ExtResource("6_jpdh0")
|
||||
to = NodePath("../../Planted")
|
||||
event = &"plant"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="Planted" type="Node" parent="StateChart/Root"]
|
||||
script = ExtResource("5_m0v1h")
|
||||
|
||||
|
||||
11
systems/weapon/weapon_tuto.tres
Normal file
11
systems/weapon/weapon_tuto.tres
Normal file
@@ -0,0 +1,11 @@
|
||||
[gd_resource type="CylinderMesh" load_steps=2 format=3 uid="uid://bhkbwvuft1bpg"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_f5qr4"]
|
||||
z_clip_scale = 0.9
|
||||
fov_override = 70.0
|
||||
|
||||
[resource]
|
||||
material = SubResource("StandardMaterial3D_f5qr4")
|
||||
top_radius = 0.0
|
||||
bottom_radius = 0.05
|
||||
height = 1.0
|
||||
Reference in New Issue
Block a user