add vr template project

This commit is contained in:
Guillaume Vern
2025-10-08 11:10:13 +02:00
parent 2cda32f24c
commit 97f183e59f
613 changed files with 37826 additions and 1499 deletions
+151
View File
@@ -0,0 +1,151 @@
extends PersistentWorld
## Game State Singleton
##
## This auto-load class can be used to hold game state information between
## levels. This class can be accessed from any script using its global
## GameState name.
##
## The [GameStaging] script populates the staging and current_zone fields
## of this script in response to scene switching.
## Game difficulty options
enum GameDifficulty {
GAME_EASY,
GAME_NORMAL,
GAME_HARD,
GAME_MAX
}
@export_group("Game Settings")
## This property sets the starting zone for the game
@export var starting_zone : PersistentZoneInfo
## This property sets the difficulty of the game.
@export var game_difficulty : GameDifficulty = GameDifficulty.GAME_NORMAL:
set = _set_game_difficulty
## Current zone (when playing game)
var current_zone : PersistentZone
func _ready():
# Use this game state as the global world state
instance = self
## This method starts a new game.
func new_game(difficulty := GameDifficulty.GAME_NORMAL) -> bool:
# Clear game data and start with requested difficulty level
clear_all()
game_difficulty = difficulty
# Load the initial world state (starting zone)
return load_world_state()
## This method loads a game from the specified save-game.
func load_game(p_name : String) -> bool:
# Read data from the save-game file
if not load_file(p_name):
return false
# Load the world state from the data
return load_world_state()
## This method saves the current game-state to memory then quits to the main
## menu. It's possible to restore the previous game state by calling
## [method load_world_state].
func quit_game() -> bool:
# Save the world state to memory in case we want to resume
if not save_world_state():
return false
# Exit to the main menu
current_zone.exit_to_main_menu()
return true
## This method auto-saves the current game state to disk.
func auto_save_game() -> bool:
# Save the world state
if not save_world_state():
return false
# Get auto save name
var auto_save_name = get_value("auto_save_name")
if !auto_save_name:
# First time saving? Determine this name
var date = Time.get_datetime_dict_from_system()
auto_save_name = "auto_save_%d-%d-%d" % [ date["year"], date["month"], date["day"] ]
set_value("auto_save_name", auto_save_name)
# Should give our auto save a nice summary...
var summary : String = auto_save_name
return save_file(auto_save_name, summary)
## This method saves the world-state to the [PersistentWorld] system.
func save_world_state() -> bool:
# Fail if not in a zone
if not PersistentStaging.instance or not current_zone:
return false
# Fail if no player body
var body := XRToolsPlayerBody.find_instance(current_zone)
if not body:
return false
# Save the current zone-state, difficulty, and spawn-info
current_zone.save_world_state()
set_value("game_difficulty", game_difficulty)
set_value("current_zone_id", current_zone.zone_info.zone_id)
set_value("current_location", body.global_transform)
return true
## This method restores the world-state from the [PersistentWorld] system.
func load_world_state() -> bool:
# Fail if no staging
if not PersistentStaging.instance:
return false
# Get the zone ID
var zone_id = get_value("current_zone_id")
if not zone_id is String:
# Default to the starting zone
zone_id = starting_zone.zone_id
# Get the location
var location = get_value("current_location")
if not location is Transform3D:
# Default to null (spawn location in level)
location = null
# Restore the game difficulty
game_difficulty = get_value("game_difficulty")
# Get the zone
var zone := zone_database.get_zone(zone_id)
if not zone:
return false
# Start transition to scene
PersistentStaging.instance.load_scene(zone.instance_scene, location)
return true
# Handle changing the game difficulty
func _set_game_difficulty(p_game_difficulty : GameDifficulty) -> void:
if p_game_difficulty < 0 or p_game_difficulty >= GameDifficulty.GAME_MAX:
push_warning("Difficulty %d is out of bounds" % [ p_game_difficulty ])
return
game_difficulty = p_game_difficulty
set_value("game_difficulty", game_difficulty)
+1
View File
@@ -0,0 +1 @@
uid://cyifcyidiy6y7
+12
View File
@@ -0,0 +1,12 @@
[gd_scene load_steps=5 format=3 uid="uid://bn6uprm55d3tt"]
[ext_resource type="Script" path="res://game/game_state.gd" id="1_0aj3c"]
[ext_resource type="Resource" uid="uid://to5lown6orfd" path="res://game/zones/outside/outside_zone_info.tres" id="2_6tdys"]
[ext_resource type="Resource" uid="uid://cx1d62bw62y0k" path="res://game/zones/zone_database.tres" id="3_x37w3"]
[ext_resource type="Resource" uid="uid://5sqmlq5ruolr" path="res://game/items/item_database.tres" id="4_im36k"]
[node name="GameState" type="Node"]
script = ExtResource("1_0aj3c")
starting_zone = ExtResource("2_6tdys")
zone_database = ExtResource("3_x37w3")
item_database = ExtResource("4_im36k")
+81
View File
@@ -0,0 +1,81 @@
[gd_scene load_steps=16 format=3 uid="uid://87ayr1op44nh"]
[ext_resource type="PackedScene" uid="uid://cc2akik80xtnb" path="res://components/persistent/persistent_item.tscn" id="1_62chp"]
[ext_resource type="Resource" uid="uid://bybqoawclvbw5" path="res://game/items/backpack/backpack_type.tres" id="2_t0xmd"]
[ext_resource type="PackedScene" uid="uid://cle28r34dsj5m" path="res://game/items/backpack/boxed_backpack.tscn" id="3_phepc"]
[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="4_gyi5s"]
[ext_resource type="Animation" uid="uid://plad1r85f7ws" path="res://addons/godot-xr-tools/hands/animations/left/Grip.res" id="4_iqsjp"]
[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="5_l0b75"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="5_ne2cg"]
[ext_resource type="PackedScene" uid="uid://dh8grd7s3n8kg" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_snap.tscn" id="6_n8c7u"]
[ext_resource type="PackedScene" uid="uid://qmejywplaagw" path="res://components/persistent/persistent_pocket.tscn" id="6_whllu"]
[ext_resource type="Animation" uid="uid://ccds2u22gbxn7" path="res://addons/godot-xr-tools/hands/animations/right/Grip.res" id="7_acm53"]
[ext_resource type="PackedScene" uid="uid://da2qgxxwwitl6" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" id="7_bllxq"]
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_lp6as"]
points = PackedVector3Array(-0.2, -0.275, -0.125, -0.2, -0.275, 0.125, -0.2, 0.275, -0.125, 0.2, -0.275, -0.125, 0.2, -0.275, 0.125, -0.2, 0.275, 0.125, 0.2, 0.275, -0.125, 0.2, 0.275, 0.125)
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_wxdd7"]
points = PackedVector3Array(-0.075, -0.2625, 0, -0.0649569, -0.2625, -0.0375, -0.0649569, -0.2625, 0.0374853, -0.075, 0.2625, 0, -0.0375, -0.2625, -0.0649569, -0.0649569, 0.2625, -0.0375, -0.0375, -0.2625, 0.0649422, -0.0649569, 0.2625, 0.0374853, 0, -0.2625, -0.075, -0.0375, 0.2625, -0.0649569, 0, -0.2625, 0.075, -0.0375, 0.2625, 0.0649422, 0.0375, -0.2625, -0.0649569, 0, 0.2625, -0.075, 0.0375, -0.2625, 0.0649422, 0, 0.2625, 0.075, 0.0649422, -0.2625, -0.0375147, 0.0375, 0.2625, -0.0649569, 0.0649422, -0.2625, 0.0374853, 0.0375, 0.2625, 0.0649422, 0.075, -0.2625, 0, 0.0649422, 0.2625, -0.0375147, 0.0649422, 0.2625, 0.0374853, 0.075, 0.2625, 0)
[sub_resource type="Resource" id="Resource_yqryf"]
script = ExtResource("5_ne2cg")
open_pose = ExtResource("4_iqsjp")
closed_pose = ExtResource("4_iqsjp")
[sub_resource type="Resource" id="Resource_mvhry"]
script = ExtResource("5_ne2cg")
open_pose = ExtResource("7_acm53")
closed_pose = ExtResource("7_acm53")
[node name="Backpack" groups=["backpack"] instance=ExtResource("1_62chp")]
item_id = "backpack"
item_type = ExtResource("2_t0xmd")
auto_return = true
auto_return_timeout = 2.0
[node name="CollisionShape3D" parent="." index="0"]
shape = SubResource("ConvexPolygonShape3D_lp6as")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="." index="1"]
transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0, -0.280267, 0.178486)
shape = SubResource("ConvexPolygonShape3D_wxdd7")
[node name="BoxedBackpack" parent="." index="2" instance=ExtResource("3_phepc")]
[node name="GrabPointHandLeft" parent="." index="3" instance=ExtResource("4_gyi5s")]
transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0.05, 0.3, 0.075)
hand_pose = SubResource("Resource_yqryf")
[node name="GrabPointHandRight" parent="." index="4" instance=ExtResource("5_l0b75")]
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, -0.05, 0.3, 0.075)
hand_pose = SubResource("Resource_mvhry")
[node name="GrabPointSnap" parent="." index="5" instance=ExtResource("6_n8c7u")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0.1)
[node name="BackPocket" parent="." index="6" instance=ExtResource("6_whllu")]
transform = Transform3D(0.3, 0, 0, 0, 0.0520944, -0.295442, 0, 0.295442, 0.0520944, 0, -0.1, -0.25)
pocket_id = "backpack_back_pocket"
snap_require = "fits_in_storage"
[node name="HighlightRing" parent="BackPocket" index="2" instance=ExtResource("7_bllxq")]
[node name="LeftPocket" parent="." index="7" instance=ExtResource("6_whllu")]
transform = Transform3D(-1.31134e-08, 0.3, 0, -0.3, -1.31134e-08, 0, 0, 0, 0.3, 0.250293, 0, 0)
pocket_id = "backpack_left_pocket"
snap_require = "fits_in_storage"
[node name="HighlightRing" parent="LeftPocket" index="2" instance=ExtResource("7_bllxq")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0)
[node name="RightPocket" parent="." index="8" instance=ExtResource("6_whllu")]
transform = Transform3D(-1.31134e-08, -0.3, 0, 0.3, -1.31134e-08, 0, 0, 0, 0.3, -0.25, 0, 0)
pocket_id = "backpack_right_pocket"
snap_require = "fits_in_storage"
[node name="HighlightRing" parent="RightPocket" index="2" instance=ExtResource("7_bllxq")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0)
[node name="HighlightRing" parent="." index="9" instance=ExtResource("7_bllxq")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0.1)
+8
View File
@@ -0,0 +1,8 @@
[gd_resource type="Resource" script_class="ItemType" load_steps=2 format=3 uid="uid://bybqoawclvbw5"]
[ext_resource type="Script" path="res://components/persistent/persistent_item_type.gd" id="1_nq2x7"]
[resource]
script = ExtResource("1_nq2x7")
type_id = "backpack"
instance_scene = "res://game/items/backpack/backpack.tscn"
+72
View File
@@ -0,0 +1,72 @@
[gd_scene load_steps=9 format=3 uid="uid://cle28r34dsj5m"]
[ext_resource type="Material" uid="uid://cjylinr1vdjcw" path="res://assets/prototype_materials/dark_brown.tres" id="1_knbky"]
[ext_resource type="Material" uid="uid://b1o2xnr4gi6r4" path="res://assets/prototype_materials/sandstone.tres" id="2_xlphg"]
[sub_resource type="BoxMesh" id="BoxMesh_87stb"]
size = Vector3(0.165, 0.015, 0.135)
[sub_resource type="BoxMesh" id="BoxMesh_bj2r6"]
size = Vector3(0.4, 0.55, 0.25)
[sub_resource type="CylinderMesh" id="CylinderMesh_xb4bx"]
top_radius = 0.075
bottom_radius = 0.075
height = 0.525
radial_segments = 12
[sub_resource type="CylinderMesh" id="CylinderMesh_k3kpj"]
top_radius = 0.085
bottom_radius = 0.085
height = 0.035
radial_segments = 12
[sub_resource type="PrismMesh" id="PrismMesh_rq3up"]
left_to_right = 0.2
size = Vector3(1, 0.1, 0.4)
[sub_resource type="PlaneMesh" id="PlaneMesh_lw0r6"]
size = Vector2(0.335, 0.47)
[node name="BoxedBackpack" type="Node3D"]
[node name="MeshInstance3D2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.792864, 0.609398, 0, -0.609398, 0.792864, 0, 0.285, 0.115)
mesh = SubResource("BoxMesh_87stb")
skeleton = NodePath("../MeshInstance3D")
surface_material_override/0 = ExtResource("1_knbky")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
mesh = SubResource("BoxMesh_bj2r6")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("1_knbky")
[node name="MeshInstance3D3" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0, -0.280267, 0.178486)
mesh = SubResource("CylinderMesh_xb4bx")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("2_xlphg")
[node name="MeshInstance3D4" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, -0.17, -0.28, 0.178)
mesh = SubResource("CylinderMesh_k3kpj")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("1_knbky")
[node name="MeshInstance3D5" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0.17, -0.28, 0.178)
mesh = SubResource("CylinderMesh_k3kpj")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("1_knbky")
[node name="MeshInstance3D6" type="MeshInstance3D" parent="."]
transform = Transform3D(1.05088e-15, -4.37114e-08, 1, -0.55, -4.37114e-08, 0, 2.40413e-08, -1, -4.37114e-08, 0, -0.001, -0.174805)
mesh = SubResource("PrismMesh_rq3up")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("1_knbky")
[node name="MeshInstance3D7" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0.125514)
mesh = SubResource("PlaneMesh_lw0r6")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("2_xlphg")
+29
View File
@@ -0,0 +1,29 @@
[gd_scene load_steps=8 format=3 uid="uid://dbepe4i2q62yy"]
[ext_resource type="PackedScene" uid="uid://cc2akik80xtnb" path="res://components/persistent/persistent_item.tscn" id="1_j3qg2"]
[ext_resource type="Resource" uid="uid://dag4mhfys4x5d" path="res://game/items/crate/crate_type.tres" id="2_26s4t"]
[ext_resource type="Material" uid="uid://c386ygo86nqfc" path="res://assets/prototype_materials/wood_brown.tres" id="3_3s4ke"]
[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="4_6v1fn"]
[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="5_hu3nh"]
[sub_resource type="BoxShape3D" id="BoxShape3D_54n81"]
[sub_resource type="BoxMesh" id="BoxMesh_6eydf"]
material = ExtResource("3_3s4ke")
[node name="Crate" instance=ExtResource("1_j3qg2")]
item_id = "crate_"
item_type = ExtResource("2_26s4t")
second_hand_grab = 1
[node name="CollisionShape3D" parent="." index="0"]
shape = SubResource("BoxShape3D_54n81")
[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="1"]
mesh = SubResource("BoxMesh_6eydf")
[node name="GrabPointHandLeft" parent="." index="2" instance=ExtResource("4_6v1fn")]
transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0, 0.5, 0.4)
[node name="GrabPointHandRight" parent="." index="3" instance=ExtResource("5_hu3nh")]
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0.5, 0.4)
+8
View File
@@ -0,0 +1,8 @@
[gd_resource type="Resource" script_class="ItemType" load_steps=2 format=3 uid="uid://dag4mhfys4x5d"]
[ext_resource type="Script" path="res://components/persistent/persistent_item_type.gd" id="1_uqv6g"]
[resource]
script = ExtResource("1_uqv6g")
type_id = "crate_type"
instance_scene = "res://game/items/crate/crate.tscn"
+11
View File
@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PersistentItemDatabase" load_steps=6 format=3 uid="uid://5sqmlq5ruolr"]
[ext_resource type="Resource" uid="uid://bybqoawclvbw5" path="res://game/items/backpack/backpack_type.tres" id="1_a6dgf"]
[ext_resource type="Script" path="res://components/persistent/persistent_item_database.gd" id="1_em17a"]
[ext_resource type="Resource" uid="uid://dag4mhfys4x5d" path="res://game/items/crate/crate_type.tres" id="2_3ixst"]
[ext_resource type="Resource" uid="uid://bjewm2x0kyx28" path="res://game/items/rock/rock_type.tres" id="3_s3pwk"]
[ext_resource type="Resource" uid="uid://c61hljsd7ejeo" path="res://game/items/toolbox/toolbox_type.tres" id="4_25idd"]
[resource]
script = ExtResource("1_em17a")
items = Array[Resource("res://components/persistent/persistent_item_type.gd")]([ExtResource("1_a6dgf"), ExtResource("2_3ixst"), ExtResource("3_s3pwk"), ExtResource("4_25idd")])
+52
View File
@@ -0,0 +1,52 @@
[gd_scene load_steps=14 format=3 uid="uid://c4rpcr7s5pt3v"]
[ext_resource type="PackedScene" uid="uid://cc2akik80xtnb" path="res://components/persistent/persistent_item.tscn" id="1_87r61"]
[ext_resource type="Material" uid="uid://ccdofvku4c7w3" path="res://assets/prototype_materials/stone_grey.tres" id="2_1ev3x"]
[ext_resource type="Resource" uid="uid://bjewm2x0kyx28" path="res://game/items/rock/rock_type.tres" id="2_53gts"]
[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="3_08c2g"]
[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="4_m4f38"]
[ext_resource type="Animation" uid="uid://bediglpx0rj7i" path="res://addons/godot-xr-tools/hands/animations/left/Grip 5.res" id="5_rtm64"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="6_34xyl"]
[ext_resource type="Animation" uid="uid://s1vqcxyqcvea" path="res://addons/godot-xr-tools/hands/animations/right/Grip 5.res" id="8_kmf2q"]
[ext_resource type="PackedScene" uid="uid://da2qgxxwwitl6" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" id="9_kvg40"]
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_ys4vs"]
points = PackedVector3Array(-0.11756, 0, -0.161803, -0.0831523, -0.106069, -0.114418, -0.190211, 0, 0.0617738, -0.0831523, 0.10604, -0.114418, 0.117523, 0, -0.161803, 0.083115, -0.106069, -0.114418, 1.49012e-08, -0.15, -2.60025e-05, -0.134503, -0.106069, 0.0436766, -0.134503, 0.10604, 0.0436766, 1.49012e-08, 0, 0.2, 1.49012e-08, 0.15, -2.60025e-05, 0.083115, 0.10604, -0.114418, 0.190211, 0, 0.0617738, 0.134466, -0.106069, 0.0436766, 1.49012e-08, -0.106069, 0.141388, 1.49012e-08, 0.10604, 0.141388, 0.134466, 0.10604, 0.0436766)
[sub_resource type="SphereMesh" id="SphereMesh_xrq4h"]
material = ExtResource("2_1ev3x")
radius = 0.2
height = 0.3
radial_segments = 5
rings = 3
[sub_resource type="Resource" id="Resource_m0rx4"]
script = ExtResource("6_34xyl")
open_pose = ExtResource("5_rtm64")
closed_pose = ExtResource("5_rtm64")
[sub_resource type="Resource" id="Resource_vx8u2"]
script = ExtResource("6_34xyl")
open_pose = ExtResource("8_kmf2q")
closed_pose = ExtResource("8_kmf2q")
[node name="Rock" groups=["fits_in_pocket", "fits_in_storage"] instance=ExtResource("1_87r61")]
item_id = "rock_"
item_type = ExtResource("2_53gts")
second_hand_grab = 2
[node name="CollisionShape3D" parent="." index="0"]
shape = SubResource("ConvexPolygonShape3D_ys4vs")
[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="1"]
mesh = SubResource("SphereMesh_xrq4h")
[node name="GrabPointHandLeft" parent="." index="2" instance=ExtResource("3_08c2g")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.16, 0.045, -0.045)
hand_pose = SubResource("Resource_m0rx4")
[node name="GrabPointHandRight" parent="." index="3" instance=ExtResource("4_m4f38")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.16, 0.045, -0.045)
hand_pose = SubResource("Resource_vx8u2")
[node name="HighlightRing" parent="." index="4" instance=ExtResource("9_kvg40")]
+8
View File
@@ -0,0 +1,8 @@
[gd_resource type="Resource" script_class="ItemType" load_steps=2 format=3 uid="uid://bjewm2x0kyx28"]
[ext_resource type="Script" path="res://components/persistent/persistent_item_type.gd" id="1_dtjyn"]
[resource]
script = ExtResource("1_dtjyn")
type_id = "rock_type"
instance_scene = "res://game/items/rock/rock.tscn"
+44
View File
@@ -0,0 +1,44 @@
[gd_scene load_steps=8 format=3 uid="uid://d3w3e8ocyuq5l"]
[ext_resource type="Material" uid="uid://cjylinr1vdjcw" path="res://assets/prototype_materials/dark_brown.tres" id="1_hcjd5"]
[ext_resource type="Material" uid="uid://c386ygo86nqfc" path="res://assets/prototype_materials/wood_brown.tres" id="2_nd6ej"]
[ext_resource type="Material" uid="uid://b1o2xnr4gi6r4" path="res://assets/prototype_materials/sandstone.tres" id="3_751ru"]
[sub_resource type="BoxMesh" id="BoxMesh_6at8g"]
size = Vector3(0.4, 0.175, 0.2)
[sub_resource type="BoxMesh" id="BoxMesh_4x6yb"]
size = Vector3(0.415, 0.015, 0.015)
[sub_resource type="PrismMesh" id="PrismMesh_b8n6r"]
size = Vector3(0.2, 0.1, 0.035)
[sub_resource type="BoxMesh" id="BoxMesh_5ti0d"]
size = Vector3(0.3, 0.01, 0.175)
[node name="BoxedToolbox" type="Node3D"]
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0278689, 0)
mesh = SubResource("BoxMesh_6at8g")
surface_material_override/0 = ExtResource("1_hcjd5")
[node name="MeshInstance3D2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.13549, 0)
mesh = SubResource("BoxMesh_4x6yb")
surface_material_override/0 = ExtResource("2_nd6ej")
[node name="MeshInstance3D3" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.18241, 0.110122, 0)
mesh = SubResource("PrismMesh_b8n6r")
surface_material_override/0 = ExtResource("1_hcjd5")
[node name="MeshInstance3D4" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0.182, 0.11, 0)
mesh = SubResource("PrismMesh_b8n6r")
surface_material_override/0 = ExtResource("1_hcjd5")
[node name="MeshInstance3D5" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0581902, 0)
mesh = SubResource("BoxMesh_5ti0d")
surface_material_override/0 = ExtResource("3_751ru")
+94
View File
@@ -0,0 +1,94 @@
[gd_scene load_steps=16 format=3 uid="uid://c33bpwxnrb0gr"]
[ext_resource type="PackedScene" uid="uid://cc2akik80xtnb" path="res://components/persistent/persistent_item.tscn" id="1_y6luy"]
[ext_resource type="PackedScene" uid="uid://d3w3e8ocyuq5l" path="res://game/items/toolbox/boxed_toolbox.tscn" id="2_ja1ew"]
[ext_resource type="Resource" uid="uid://c61hljsd7ejeo" path="res://game/items/toolbox/toolbox_type.tres" id="2_vckid"]
[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="3_vbs1k"]
[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="4_e0m8r"]
[ext_resource type="PackedScene" uid="uid://qmejywplaagw" path="res://components/persistent/persistent_pocket.tscn" id="5_52y7n"]
[ext_resource type="Animation" uid="uid://plad1r85f7ws" path="res://addons/godot-xr-tools/hands/animations/left/Grip.res" id="5_tfcf4"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="6_jm161"]
[ext_resource type="PackedScene" uid="uid://da2qgxxwwitl6" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" id="6_ur4rh"]
[ext_resource type="Animation" uid="uid://ccds2u22gbxn7" path="res://addons/godot-xr-tools/hands/animations/right/Grip.res" id="8_3tlci"]
[sub_resource type="BoxShape3D" id="BoxShape3D_bt734"]
size = Vector3(0.4, 0.175, 0.2)
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_avjxc"]
points = PackedVector3Array(0, 0.05, 0.0175, 0.1, -0.05, 0.0175, 0, 0.05, -0.0175, -0.1, -0.05, 0.0175, 0.1, -0.05, -0.0175, -0.1, -0.05, -0.0175)
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_bi3ui"]
points = PackedVector3Array(0, 0.05, 0.0175, 0.1, -0.05, 0.0175, 0, 0.05, -0.0175, -0.1, -0.05, 0.0175, 0.1, -0.05, -0.0175, -0.1, -0.05, -0.0175)
[sub_resource type="Resource" id="Resource_vlsyk"]
script = ExtResource("6_jm161")
open_pose = ExtResource("5_tfcf4")
closed_pose = ExtResource("5_tfcf4")
[sub_resource type="Resource" id="Resource_1av4s"]
script = ExtResource("6_jm161")
open_pose = ExtResource("8_3tlci")
closed_pose = ExtResource("8_3tlci")
[node name="Toolbox" instance=ExtResource("1_y6luy")]
item_id = "toolbox"
item_type = ExtResource("2_vckid")
[node name="CollisionShape3D" parent="." index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.028, 0)
shape = SubResource("BoxShape3D_bt734")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="." index="1"]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.18241, 0.110122, 0)
shape = SubResource("ConvexPolygonShape3D_avjxc")
[node name="CollisionShape3D3" type="CollisionShape3D" parent="." index="2"]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0.182, 0.11, 0)
shape = SubResource("ConvexPolygonShape3D_bi3ui")
[node name="BoxedToolbox" parent="." index="3" instance=ExtResource("2_ja1ew")]
[node name="GrabPointHandLeft" parent="." index="4" instance=ExtResource("3_vbs1k")]
transform = Transform3D(-4.37114e-08, 1, 4.37114e-08, 0, -4.37114e-08, 1, 1, 4.37114e-08, 1.91069e-15, 0.045, 0.045, 0.012)
visible = true
hand_pose = SubResource("Resource_vlsyk")
[node name="GrabPointHandRight" parent="." index="5" instance=ExtResource("4_e0m8r")]
transform = Transform3D(-4.37114e-08, -1, -4.37114e-08, 0, -4.37114e-08, 1, -1, 4.37114e-08, 1.91069e-15, -0.045, 0.045, 0.012)
visible = true
hand_pose = SubResource("Resource_1av4s")
[node name="PersistentPocket1" parent="." index="6" instance=ExtResource("5_52y7n")]
transform = Transform3D(0.3, 0, 0, 0, -1.31134e-08, -0.3, 0, 0.3, -1.31134e-08, -0.1, -0.028, 0.15)
pocket_id = "toolbox_pocket_1"
grab_distance = 0.1
snap_require = "fits_in_storage"
[node name="HighlightRing" parent="PersistentPocket1" index="2" instance=ExtResource("6_ur4rh")]
[node name="PersistentPocket2" parent="." index="7" instance=ExtResource("5_52y7n")]
transform = Transform3D(0.3, 0, 0, 0, -1.31134e-08, -0.3, 0, 0.3, -1.31134e-08, 0.1, -0.028, 0.15)
pocket_id = "toolbox_pocket_2"
grab_distance = 0.1
snap_require = "fits_in_storage"
[node name="HighlightRing" parent="PersistentPocket2" index="2" instance=ExtResource("6_ur4rh")]
[node name="PersistentPocket3" parent="." index="8" instance=ExtResource("5_52y7n")]
transform = Transform3D(0.3, 0, 0, 0, -1.31134e-08, 0.3, 0, -0.3, -1.31134e-08, -0.1, -0.028, -0.15)
pocket_id = "toolbox_pocket_3"
grab_distance = 0.1
snap_require = "fits_in_storage"
[node name="HighlightRing" parent="PersistentPocket3" index="2" instance=ExtResource("6_ur4rh")]
[node name="PersistentPocket4" parent="." index="9" instance=ExtResource("5_52y7n")]
transform = Transform3D(0.3, 0, 0, 0, -1.31134e-08, 0.3, 0, -0.3, -1.31134e-08, 0.1, -0.028, -0.15)
pocket_id = "toolbox_pocket_4"
grab_distance = 0.1
snap_require = "fits_in_storage"
[node name="HighlightRing" parent="PersistentPocket4" index="2" instance=ExtResource("6_ur4rh")]
[node name="HighlightRing" parent="." index="10" instance=ExtResource("6_ur4rh")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.135117, 0)
+8
View File
@@ -0,0 +1,8 @@
[gd_resource type="Resource" script_class="ItemType" load_steps=2 format=3 uid="uid://c61hljsd7ejeo"]
[ext_resource type="Script" path="res://components/persistent/persistent_item_type.gd" id="1_54y5y"]
[resource]
script = ExtResource("1_54y5y")
type_id = "toolbox"
instance_scene = "res://game/items/toolbox/toolbox.tscn"
+41
View File
@@ -0,0 +1,41 @@
@tool
class_name GameStaging
extends PersistentStaging
## Game Staging Script
##
## This script registers the staging instance with the [GameState] singleton
## and handles pausing/resuming.
# Called when the node enters the scene tree for the first time.
func _ready():
super()
# Do not initialise if in the editor
if Engine.is_editor_hint():
return
# Connect events
scene_loaded.connect(_on_scene_loaded)
xr_started.connect(_on_xr_started)
xr_ended.connect(_on_xr_ended)
# This method is called when a scene is loaded
func _on_scene_loaded(_scene : XRToolsSceneBase, _user_data : Variant) -> void:
# Clear the continue prompt
prompt_for_continue = false
# This method is called when the player starts the VR experience
func _on_xr_started() -> void:
# Resume the game
get_tree().paused = false
# This method is called when the player ends the VR experience
func _on_xr_ended() -> void:
# Pause the game
get_tree().paused = true
+1
View File
@@ -0,0 +1 @@
uid://b1e158fnh00x8
+12
View File
@@ -0,0 +1,12 @@
[gd_scene load_steps=4 format=3 uid="uid://c8wx3hdpdrw8p"]
[ext_resource type="PackedScene" uid="uid://c2u2yasyfotxr" path="res://components/persistent/persistent_staging.tscn" id="1"]
[ext_resource type="Texture2D" uid="uid://bkvj83shnbfwl" path="res://assets/splash/splash.png" id="2"]
[ext_resource type="Script" path="res://game/main.gd" id="2_dmefr"]
[node name="Main" instance=ExtResource("1")]
script = ExtResource("2_dmefr")
main_scene = "res://game/start_scene/start_scene.tscn"
[node name="LoadingScreen" parent="." index="2"]
splash_screen = ExtResource("2")
+23
View File
@@ -0,0 +1,23 @@
[gd_scene load_steps=5 format=3 uid="uid://drc02f0wuae6e"]
[ext_resource type="Material" uid="uid://cjylinr1vdjcw" path="res://assets/prototype_materials/dark_brown.tres" id="1_5abf6"]
[ext_resource type="Material" uid="uid://b1o2xnr4gi6r4" path="res://assets/prototype_materials/sandstone.tres" id="2_4wpy8"]
[sub_resource type="BoxMesh" id="BoxMesh_8k3qs"]
size = Vector3(1, 0.5, 0.5)
[sub_resource type="BoxMesh" id="BoxMesh_60kyu"]
size = Vector3(0.95, 0.01, 0.45)
[node name="BoxedStorage" type="Node3D"]
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
mesh = SubResource("BoxMesh_8k3qs")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("1_5abf6")
[node name="MeshInstance3D2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.246036, 0)
mesh = SubResource("BoxMesh_60kyu")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("2_4wpy8")
+71
View File
@@ -0,0 +1,71 @@
[gd_scene load_steps=5 format=3 uid="uid://chch4r7wddwdj"]
[ext_resource type="PackedScene" uid="uid://drc02f0wuae6e" path="res://game/objects/storage/boxed_storage.tscn" id="1_gtbba"]
[ext_resource type="PackedScene" uid="uid://qmejywplaagw" path="res://components/persistent/persistent_pocket.tscn" id="2_58j7k"]
[ext_resource type="PackedScene" uid="uid://da2qgxxwwitl6" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" id="3_ll6mm"]
[sub_resource type="BoxShape3D" id="BoxShape3D_s7ybo"]
size = Vector3(1, 0.5, 0.5)
[node name="StorageBox" type="StaticBody3D"]
[node name="BoxedStorage" parent="." instance=ExtResource("1_gtbba")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0)
shape = SubResource("BoxShape3D_s7ybo")
[node name="PersistentPocket1" parent="." instance=ExtResource("2_58j7k")]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, -0.3, 0.55, -0.1)
pocket_id = "storage_slot_1"
held_behavior = 0
grab_distance = 0.1
snap_require = "fits_in_storage"
[node name="HighlightRing" parent="PersistentPocket1" instance=ExtResource("3_ll6mm")]
[node name="PersistentPocket2" parent="." instance=ExtResource("2_58j7k")]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0.55, -0.1)
pocket_id = "storage_slot_2"
held_behavior = 0
grab_distance = 0.1
snap_require = "fits_in_storage"
[node name="HighlightRing" parent="PersistentPocket2" instance=ExtResource("3_ll6mm")]
[node name="PersistentPocket3" parent="." instance=ExtResource("2_58j7k")]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0.3, 0.55, -0.1)
pocket_id = "storage_slot_3"
held_behavior = 0
grab_distance = 0.1
snap_require = "fits_in_storage"
[node name="HighlightRing" parent="PersistentPocket3" instance=ExtResource("3_ll6mm")]
[node name="PersistentPocket4" parent="." instance=ExtResource("2_58j7k")]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, -0.3, 0.55, 0.1)
pocket_id = "storage_slot_4"
held_behavior = 0
grab_distance = 0.1
snap_require = "fits_in_storage"
[node name="HighlightRing" parent="PersistentPocket4" instance=ExtResource("3_ll6mm")]
[node name="PersistentPocket5" parent="." instance=ExtResource("2_58j7k")]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0.55, 0.1)
pocket_id = "storage_slot_5"
held_behavior = 0
grab_distance = 0.1
snap_require = "fits_in_storage"
[node name="HighlightRing" parent="PersistentPocket5" instance=ExtResource("3_ll6mm")]
[node name="PersistentPocket6" parent="." instance=ExtResource("2_58j7k")]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0.3, 0.55, 0.1)
pocket_id = "storage_slot_6"
held_behavior = 0
grab_distance = 0.1
snap_require = "fits_in_storage"
[node name="HighlightRing" parent="PersistentPocket6" instance=ExtResource("3_ll6mm")]
+149
View File
@@ -0,0 +1,149 @@
[gd_scene load_steps=17 format=3 uid="uid://b64v7w5y3yghi"]
[ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1_2sv0p"]
[ext_resource type="PackedScene" uid="uid://cqhw276realc" path="res://addons/godot-xr-tools/functions/function_pointer.tscn" id="3_du2hn"]
[ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="3_rfr2t"]
[ext_resource type="Material" uid="uid://ccdofvku4c7w3" path="res://assets/prototype_materials/stone_grey.tres" id="3_uwduq"]
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="4_7pgy0"]
[ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="5_5cr7c"]
[ext_resource type="PackedScene" uid="uid://cl8q8f32imusk" path="res://game/start_scene/start_ui.tscn" id="5_grt1o"]
[sub_resource type="Environment" id="Environment_oplr7"]
ambient_light_source = 1
reflected_light_source = 1
[sub_resource type="QuadMesh" id="QuadMesh_vi1r3"]
material = ExtResource("3_uwduq")
size = Vector2(12, 12)
[sub_resource type="BoxShape3D" id="BoxShape3D_3ap0s"]
size = Vector3(12, 1, 12)
[sub_resource type="QuadMesh" id="QuadMesh_l0e1e"]
material = ExtResource("3_uwduq")
size = Vector2(12, 4)
[sub_resource type="BoxShape3D" id="BoxShape3D_w6gh2"]
size = Vector3(12, 4, 1)
[sub_resource type="QuadMesh" id="QuadMesh_44p7b"]
resource_local_to_scene = true
size = Vector2(3, 2)
[sub_resource type="ViewportTexture" id="ViewportTexture_2wivy"]
viewport_path = NodePath("Viewport")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tmib1"]
transparency = 1
cull_mode = 2
shading_mode = 0
albedo_texture = SubResource("ViewportTexture_2wivy")
texture_filter = 1
[sub_resource type="BoxShape3D" id="BoxShape3D_iru2p"]
resource_local_to_scene = true
size = Vector3(3, 2, 0.02)
[node name="StartZone" instance=ExtResource("1_2sv0p")]
[node name="XROrigin3D" parent="." index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3)
[node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("3_rfr2t")]
[node name="FunctionPointer" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("3_du2hn")]
show_laser = 2
laser_length = 1
[node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("5_5cr7c")]
[node name="FunctionPointer" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("3_du2hn")]
show_laser = 2
laser_length = 1
[node name="World" type="Node3D" parent="." index="1"]
[node name="WorldEnvironment" type="WorldEnvironment" parent="World" index="0"]
environment = SubResource("Environment_oplr7")
[node name="OmniLight3D" type="OmniLight3D" parent="World" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.5, 0)
omni_range = 12.0
[node name="Ground" type="StaticBody3D" parent="World" index="2"]
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Ground" index="0"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0)
mesh = SubResource("QuadMesh_vi1r3")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Ground" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
shape = SubResource("BoxShape3D_3ap0s")
[node name="Wall1" type="StaticBody3D" parent="World" index="3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, -5)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Wall1" index="0"]
mesh = SubResource("QuadMesh_l0e1e")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Wall1" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.5)
shape = SubResource("BoxShape3D_w6gh2")
[node name="Wall2" type="StaticBody3D" parent="World" index="4"]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 5, 2, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Wall2" index="0"]
mesh = SubResource("QuadMesh_l0e1e")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Wall2" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.5)
shape = SubResource("BoxShape3D_w6gh2")
[node name="Wall3" type="StaticBody3D" parent="World" index="5"]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 2, 5)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Wall3" index="0"]
mesh = SubResource("QuadMesh_l0e1e")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Wall3" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.5)
shape = SubResource("BoxShape3D_w6gh2")
[node name="Wall4" type="StaticBody3D" parent="World" index="6"]
transform = Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -5, 2, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Wall4" index="0"]
mesh = SubResource("QuadMesh_l0e1e")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Wall4" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.5)
shape = SubResource("BoxShape3D_w6gh2")
[node name="Ceiling" type="StaticBody3D" parent="World" index="7"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Ceiling" index="0"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
mesh = SubResource("QuadMesh_vi1r3")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Ceiling" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
shape = SubResource("BoxShape3D_3ap0s")
[node name="Screen" parent="." index="2" instance=ExtResource("4_7pgy0")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, -3)
update_mode = 2
throttle_fps = 15.0
unshaded = true
[node name="StartUI" parent="Screen/Viewport" index="0" instance=ExtResource("5_grt1o")]
[node name="Screen" parent="Screen" index="1"]
mesh = SubResource("QuadMesh_44p7b")
surface_material_override/0 = SubResource("StandardMaterial3D_tmib1")
[node name="CollisionShape3D" parent="Screen/StaticBody3D" index="0"]
shape = SubResource("BoxShape3D_iru2p")
[editable path="Screen"]
+65
View File
@@ -0,0 +1,65 @@
extends CenterContainer
@onready var save_list_node = $LoadGame/SaveList
var save_list : Array
# Called when the node enters the scene tree for the first time.
func _ready():
_set_pane(1)
# Get our list of save games
if PersistentWorld.instance:
save_list = PersistentWorld.instance.list_saves()
save_list_node.clear()
for entry in save_list:
save_list_node.add_item(entry)
$MainMenu/LoadGameBtn.disabled = save_list.size() == 0
func _set_pane(p_no):
$MainMenu.visible = p_no == 1
$NewGame.visible = p_no == 2
$LoadGame.visible = p_no == 3
$Options.visible = p_no == 4
# Main menu
func _on_new_game_btn_pressed():
_set_pane(2)
func _on_load_game_btn_pressed():
_set_pane(3)
func _on_options_btn_pressed():
_set_pane(4)
func _on_exit_btn_pressed():
get_tree().quit()
# New game
func _on_easy_btn_pressed():
GameState.new_game(GameState.GameDifficulty.GAME_EASY)
func _on_normal_btn_pressed():
GameState.new_game(GameState.GameDifficulty.GAME_NORMAL)
func _on_hard_btn_pressed():
GameState.new_game(GameState.GameDifficulty.GAME_HARD)
func _on_back_btn_pressed():
_set_pane(1)
# Load game
func _on_start_button_pressed():
var selected_items = save_list_node.get_selected_items()
if selected_items.size() == 1:
# Should be only one!
var selected_item = selected_items[0]
print("Selected item: ", selected_item)
var save_name = save_list[selected_item]
print("Loading save: ", save_name)
GameState.load_game(save_name)
+1
View File
@@ -0,0 +1 @@
uid://cck20btlm3owa
+107
View File
@@ -0,0 +1,107 @@
[gd_scene load_steps=2 format=3 uid="uid://cl8q8f32imusk"]
[ext_resource type="Script" path="res://game/start_scene/start_ui.gd" id="1_n87es"]
[node name="StartUI" type="CenterContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
script = ExtResource("1_n87es")
[node name="MainMenu" type="VBoxContainer" parent="."]
visible = false
layout_mode = 2
[node name="NewGameBtn" type="Button" parent="MainMenu"]
layout_mode = 2
text = "New game"
[node name="LoadGameBtn" type="Button" parent="MainMenu"]
layout_mode = 2
text = "Load game
"
[node name="OptionsBtn" type="Button" parent="MainMenu"]
layout_mode = 2
text = "Options
"
[node name="ExitBtn" type="Button" parent="MainMenu"]
layout_mode = 2
text = "Quit"
[node name="NewGame" type="VBoxContainer" parent="."]
visible = false
layout_mode = 2
[node name="EasyBtn" type="Button" parent="NewGame"]
layout_mode = 2
text = "Easy
"
[node name="NormalBtn" type="Button" parent="NewGame"]
layout_mode = 2
text = "Normal"
[node name="HardBtn" type="Button" parent="NewGame"]
layout_mode = 2
text = "Hard"
[node name="BackBtn" type="Button" parent="NewGame"]
layout_mode = 2
text = "Back"
[node name="LoadGame" type="VBoxContainer" parent="."]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 5
[node name="Label" type="Label" parent="LoadGame"]
layout_mode = 2
theme_override_font_sizes/font_size = 12
text = "Load/Save Not Implemented in Demo"
[node name="SaveList" type="ItemList" parent="LoadGame"]
layout_mode = 2
size_flags_vertical = 3
theme_override_font_sizes/font_size = 20
auto_height = true
item_count = 4
item_0/text = "Save Slot - 1"
item_1/text = "Save Slot - 2"
item_2/text = "Save Slot - 3"
item_3/text = "Save Slot - 4"
[node name="StartBtn" type="Button" parent="LoadGame"]
layout_mode = 2
theme_override_font_sizes/font_size = 25
text = "Start"
[node name="BackBtn" type="Button" parent="LoadGame"]
layout_mode = 2
theme_override_font_sizes/font_size = 25
text = "Back "
[node name="Options" type="VBoxContainer" parent="."]
visible = false
layout_mode = 2
[node name="BackBtn" type="Button" parent="Options"]
layout_mode = 2
theme_override_font_sizes/font_size = 25
text = "Back "
[connection signal="pressed" from="MainMenu/NewGameBtn" to="." method="_on_new_game_btn_pressed"]
[connection signal="pressed" from="MainMenu/LoadGameBtn" to="." method="_on_load_game_btn_pressed"]
[connection signal="pressed" from="MainMenu/OptionsBtn" to="." method="_on_options_btn_pressed"]
[connection signal="pressed" from="MainMenu/ExitBtn" to="." method="_on_exit_btn_pressed"]
[connection signal="pressed" from="NewGame/EasyBtn" to="." method="_on_easy_btn_pressed"]
[connection signal="pressed" from="NewGame/NormalBtn" to="." method="_on_normal_btn_pressed"]
[connection signal="pressed" from="NewGame/HardBtn" to="." method="_on_hard_btn_pressed"]
[connection signal="pressed" from="NewGame/BackBtn" to="." method="_on_back_btn_pressed"]
[connection signal="pressed" from="LoadGame/StartBtn" to="." method="_on_start_button_pressed"]
[connection signal="pressed" from="LoadGame/BackBtn" to="." method="_on_back_btn_pressed"]
[connection signal="pressed" from="Options/BackBtn" to="." method="_on_back_btn_pressed"]
@@ -0,0 +1,292 @@
[gd_scene load_steps=34 format=3 uid="uid://h71bqvvu0lcn"]
[ext_resource type="PackedScene" uid="uid://cvn48xcmsmkrb" path="res://game/zones/zone_base.tscn" id="1_30op8"]
[ext_resource type="Material" uid="uid://cqs6que52ytcg" path="res://assets/prototype_materials/dry_grass.tres" id="2_2nr20"]
[ext_resource type="Environment" uid="uid://er867l7dl10j" path="res://default_env.tres" id="2_a5ktn"]
[ext_resource type="Script" path="res://components/helpers/scatter.gd" id="3_dvyu5"]
[ext_resource type="Resource" uid="uid://cpugbtukttkfj" path="res://game/zones/house_back_yard/house_back_yard_zone_info.tres" id="3_m4v83"]
[ext_resource type="Material" uid="uid://c386ygo86nqfc" path="res://assets/prototype_materials/wood_brown.tres" id="4_j3su2"]
[ext_resource type="Material" uid="uid://b1o2xnr4gi6r4" path="res://assets/prototype_materials/sandstone.tres" id="5_gh4so"]
[ext_resource type="Material" uid="uid://cjylinr1vdjcw" path="res://assets/prototype_materials/dark_brown.tres" id="5_goc1s"]
[ext_resource type="PackedScene" uid="uid://vm423o6hdlya" path="res://components/helpers/zone_switch_area.tscn" id="6_tlcot"]
[ext_resource type="PackedScene" uid="uid://chch4r7wddwdj" path="res://game/objects/storage/storage_box.tscn" id="10_20abo"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_o8xit"]
animation = &"Grip"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ajt4g"]
animation = &"Grip"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_2beyu"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_030p5"]
animation = &"Grip 5"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_acps2"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_b0o74"]
graph_offset = Vector2(-536, 11)
nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_o8xit")
nodes/ClosedHand1/position = Vector2(-600, 300)
nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_ajt4g")
nodes/ClosedHand2/position = Vector2(-360, 300)
nodes/Grip/node = SubResource("AnimationNodeBlend2_2beyu")
nodes/Grip/position = Vector2(0, 20)
nodes/OpenHand/node = SubResource("AnimationNodeAnimation_030p5")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_acps2")
nodes/Trigger/position = Vector2(-360, 20)
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_6bs3a"]
animation = &"Grip"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_fol2p"]
animation = &"Grip"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_rlq5j"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_6rona"]
animation = &"Grip 5"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_4yg54"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_d5g1d"]
graph_offset = Vector2(-552.664, 107.301)
nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_6bs3a")
nodes/ClosedHand1/position = Vector2(-600, 300)
nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_fol2p")
nodes/ClosedHand2/position = Vector2(-360, 300)
nodes/Grip/node = SubResource("AnimationNodeBlend2_rlq5j")
nodes/Grip/position = Vector2(0, 40)
nodes/OpenHand/node = SubResource("AnimationNodeAnimation_6rona")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_4yg54")
nodes/Trigger/position = Vector2(-360, 40)
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[sub_resource type="QuadMesh" id="QuadMesh_tg51c"]
material = ExtResource("2_2nr20")
size = Vector2(20, 20)
[sub_resource type="BoxShape3D" id="BoxShape3D_uk6lx"]
size = Vector3(20, 1, 20)
[sub_resource type="QuadMesh" id="QuadMesh_iva63"]
material = ExtResource("2_2nr20")
size = Vector2(20, 4)
[sub_resource type="BoxShape3D" id="BoxShape3D_db0th"]
size = Vector3(20, 4, 1)
[sub_resource type="SphereMesh" id="SphereMesh_mdvnb"]
material = ExtResource("5_gh4so")
radius = 2.0
height = 3.0
radial_segments = 7
rings = 4
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_on5hg"]
points = PackedVector3Array(-0.82556, -0.463684, -1.71374, -0.82556, 0.463391, -1.71374, 0.825197, -0.463684, -1.71374, -0.510075, -1.21368, -1.05931, -1.14613, -1.21368, -0.26188, -1.85442, -0.463684, -0.423277, -0.510075, 1.21339, -1.05931, 0.825197, 0.463391, -1.71374, -1.85442, 0.463391, -0.423277, -1.14613, 1.21339, -0.26188, 1.85442, 0.463391, -0.423277, 1.85406, -0.463684, -0.423277, 1.14576, -1.21368, -0.26188, 0.509712, -1.21368, -1.05931, 0, -1.5, -0.000317931, -1.48739, -0.463684, 1.18574, -0.919225, -1.21368, 0.732693, 0, 1.5, -0.000317931, 0.509712, 1.21339, -1.05931, 1.14576, 1.21339, -0.26188, -1.48739, 0.463391, 1.18574, -0.919225, 1.21339, 0.732693, 0.918862, 1.21339, 0.732693, 1.48702, 0.463391, 1.18574, 1.48702, -0.463684, 1.18574, 0.918862, -1.21368, 0.732693, 0, -1.21368, 1.17547, 0, -0.463684, 1.90176, 0, 0.463391, 1.90211, 0, 1.21339, 1.17547)
[sub_resource type="QuadMesh" id="QuadMesh_lmjaa"]
size = Vector2(0.02, 0.1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k6snm"]
cull_mode = 2
albedo_color = Color(0.619608, 0.635294, 0.419608, 1)
[sub_resource type="BoxMesh" id="BoxMesh_tq4y1"]
material = ExtResource("5_goc1s")
size = Vector3(1, 3, 0.2)
[sub_resource type="BoxShape3D" id="BoxShape3D_dvkw1"]
size = Vector3(1, 3, 0.1)
[sub_resource type="BoxShape3D" id="BoxShape3D_g8b71"]
size = Vector3(1, 3, 0.2)
[node name="HouseBackYard" instance=ExtResource("1_30op8")]
zone_info = ExtResource("3_m4v83")
[node name="Skeleton3D" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L/Armature" index="0"]
bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824)
bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042)
bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639)
bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979)
bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608)
bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929)
bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775)
bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934)
bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027)
bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843)
bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685)
bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718)
bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124)
bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136)
bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994)
bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524)
bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351)
bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086)
bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249)
[node name="BoneAttachment3D" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D" index="1"]
transform = Transform3D(0.54083, 0.840813, -0.0231736, -0.0826267, 0.0805243, 0.993322, 0.837064, -0.535303, 0.113023, 0.039902, 0.0402828, -0.150096)
[node name="AnimationTree" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand" index="1"]
tree_root = SubResource("AnimationNodeBlendTree_b0o74")
[node name="Skeleton3D" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand/Hand_Nails_low_R/Armature" index="0"]
bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824)
bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042)
bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639)
bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979)
bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608)
bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929)
bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775)
bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934)
bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027)
bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843)
bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685)
bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718)
bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124)
bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136)
bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994)
bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524)
bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351)
bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086)
bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249)
[node name="BoneAttachment3D" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand/Hand_Nails_low_R/Armature/Skeleton3D" index="1"]
transform = Transform3D(0.540829, -0.840813, 0.0231736, 0.0826268, 0.0805242, 0.993322, -0.837064, -0.535303, 0.113024, -0.039902, 0.0402828, -0.150096)
[node name="AnimationTree" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand" index="1"]
tree_root = SubResource("AnimationNodeBlendTree_d5g1d")
[node name="World" type="Node3D" parent="." index="1"]
[node name="WorldEnvironment" type="WorldEnvironment" parent="World" index="0"]
environment = ExtResource("2_a5ktn")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="World" index="1"]
transform = Transform3D(-0.707107, -0.5, 0.5, 0, 0.707107, 0.707107, -0.707107, 0.5, -0.5, 0, 8, 0)
[node name="Ground" type="StaticBody3D" parent="World" index="2"]
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Ground" index="0"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0)
mesh = SubResource("QuadMesh_tg51c")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Ground" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
shape = SubResource("BoxShape3D_uk6lx")
[node name="Boundary1" type="StaticBody3D" parent="World" index="3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, -10)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Boundary1" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5)
mesh = SubResource("QuadMesh_iva63")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Boundary1" index="1"]
shape = SubResource("BoxShape3D_db0th")
[node name="Boundary2" type="StaticBody3D" parent="World" index="4"]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 10, 2, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Boundary2" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5)
mesh = SubResource("QuadMesh_iva63")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Boundary2" index="1"]
shape = SubResource("BoxShape3D_db0th")
[node name="Boundary3" type="StaticBody3D" parent="World" index="5"]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 2, 10)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Boundary3" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5)
mesh = SubResource("QuadMesh_iva63")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Boundary3" index="1"]
shape = SubResource("BoxShape3D_db0th")
[node name="Boundary4" type="StaticBody3D" parent="World" index="6"]
transform = Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -10, 2, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Boundary4" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5)
mesh = SubResource("QuadMesh_iva63")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Boundary4" index="1"]
shape = SubResource("BoxShape3D_db0th")
[node name="Stone1" type="StaticBody3D" parent="World" index="7"]
transform = Transform3D(0.965926, -0.258819, 0, 0.25, 0.933013, 0.258819, -0.0669873, -0.25, 0.965926, -7, -0.2, -7)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Stone1" index="0"]
mesh = SubResource("SphereMesh_mdvnb")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Stone1" index="1"]
shape = SubResource("ConvexPolygonShape3D_on5hg")
[node name="Stone2" type="StaticBody3D" parent="World" index="8"]
transform = Transform3D(-0.0669873, -0.25, 0.965926, 0.25, 0.933013, 0.258819, -0.965926, 0.258819, -4.60787e-08, 7, -0.6, -7)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Stone2" index="0"]
mesh = SubResource("SphereMesh_mdvnb")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Stone2" index="1"]
shape = SubResource("ConvexPolygonShape3D_on5hg")
[node name="Grass1" type="Node3D" parent="World" index="9"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.05, 0)
script = ExtResource("3_dvyu5")
extend = Vector3(10, 0, 10)
instance_count = 3000
mesh = SubResource("QuadMesh_lmjaa")
material_override = SubResource("StandardMaterial3D_k6snm")
[node name="HouseEntrance" type="Node3D" parent="." index="2"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 8.6)
[node name="Exterior" type="CSGPolygon3D" parent="HouseEntrance" index="0"]
use_collision = true
polygon = PackedVector2Array(-3, 0, -3, 3, 0, 5, 3, 3, 3, 0, 0.5, 0, 0.5, 3, -0.5, 3, -0.5, 0)
material = ExtResource("4_j3su2")
[node name="Door" type="StaticBody3D" parent="HouseEntrance" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, -0.5)
[node name="MeshInstance3D" type="MeshInstance3D" parent="HouseEntrance/Door" index="0"]
mesh = SubResource("BoxMesh_tq4y1")
[node name="CollisionShape3D" type="CollisionShape3D" parent="HouseEntrance/Door" index="1"]
shape = SubResource("BoxShape3D_dvkw1")
[node name="EnterHouse" parent="." index="3" instance=ExtResource("6_tlcot")]
zone_scene = "res://game/zones/house_interior/house_interior_zone.tscn"
spawn_node_name = "FromBackYard"
[node name="CollisionShape3D" type="CollisionShape3D" parent="EnterHouse" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 8.7)
shape = SubResource("BoxShape3D_g8b71")
[node name="FromHouseInterior" type="Marker3D" parent="." index="4"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 7.6)
[node name="StorageBox" parent="." index="5" instance=ExtResource("10_20abo")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 4, 0, 9)
[editable path="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand"]
[editable path="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L"]
[editable path="XROrigin3D/RightHand/CollisionHandRight/RightHand"]
[editable path="XROrigin3D/RightHand/CollisionHandRight/RightHand/Hand_Nails_low_R"]
@@ -0,0 +1,8 @@
[gd_resource type="Resource" script_class="ZoneInfo" load_steps=2 format=3 uid="uid://cpugbtukttkfj"]
[ext_resource type="Script" path="res://components/persistent/persistent_zone_info.gd" id="1_rxgn1"]
[resource]
script = ExtResource("1_rxgn1")
zone_id = "zone_house_back_yard"
instance_scene = "res://game/zones/house_back_yard/house_back_yard_zone.tscn"
@@ -0,0 +1,515 @@
[gd_scene load_steps=48 format=3 uid="uid://bsb7i42nbkdp2"]
[ext_resource type="PackedScene" uid="uid://cvn48xcmsmkrb" path="res://game/zones/zone_base.tscn" id="1_4sjqh"]
[ext_resource type="Environment" uid="uid://er867l7dl10j" path="res://default_env.tres" id="2_42k30"]
[ext_resource type="Material" uid="uid://c386ygo86nqfc" path="res://assets/prototype_materials/wood_brown.tres" id="2_rhoo2"]
[ext_resource type="Material" uid="uid://cjylinr1vdjcw" path="res://assets/prototype_materials/dark_brown.tres" id="3_f5fy3"]
[ext_resource type="Resource" uid="uid://d1lgdwh7pv220" path="res://game/zones/house_interior/house_interior_zone_info.tres" id="3_x42ux"]
[ext_resource type="Material" uid="uid://csepeix2yvih" path="res://assets/prototype_materials/grass.tres" id="4_8oeg0"]
[ext_resource type="Material" uid="uid://c7prktlpm7tmm" path="res://assets/prototype_materials/forest.tres" id="5_60arm"]
[ext_resource type="Script" path="res://components/helpers/scatter.gd" id="6_sr5e8"]
[ext_resource type="PackedScene" uid="uid://vm423o6hdlya" path="res://components/helpers/zone_switch_area.tscn" id="7_jpwgk"]
[ext_resource type="PackedScene" uid="uid://chch4r7wddwdj" path="res://game/objects/storage/storage_box.tscn" id="11_q611u"]
[ext_resource type="PackedScene" uid="uid://dm2e4qfiy0v0a" path="res://components/helpers/zone_save_point.tscn" id="11_vm0jr"]
[ext_resource type="PackedScene" uid="uid://87ayr1op44nh" path="res://game/items/backpack/backpack.tscn" id="12_4n3xy"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_fm4ad"]
animation = &"Grip"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8r2ds"]
animation = &"Grip"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_andi0"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_4glen"]
animation = &"Grip 5"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_lh6lx"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_ctrkn"]
graph_offset = Vector2(-536, 11)
nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_fm4ad")
nodes/ClosedHand1/position = Vector2(-600, 300)
nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_8r2ds")
nodes/ClosedHand2/position = Vector2(-360, 300)
nodes/Grip/node = SubResource("AnimationNodeBlend2_andi0")
nodes/Grip/position = Vector2(0, 20)
nodes/OpenHand/node = SubResource("AnimationNodeAnimation_4glen")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_lh6lx")
nodes/Trigger/position = Vector2(-360, 20)
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0dda0"]
animation = &"Grip"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_brdbn"]
animation = &"Grip"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_6fgtj"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_pe2vh"]
animation = &"Grip 5"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_kn2ma"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_tcppe"]
graph_offset = Vector2(-552.664, 107.301)
nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_0dda0")
nodes/ClosedHand1/position = Vector2(-600, 300)
nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_brdbn")
nodes/ClosedHand2/position = Vector2(-360, 300)
nodes/Grip/node = SubResource("AnimationNodeBlend2_6fgtj")
nodes/Grip/position = Vector2(0, 40)
nodes/OpenHand/node = SubResource("AnimationNodeAnimation_pe2vh")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_kn2ma")
nodes/Trigger/position = Vector2(-360, 40)
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[sub_resource type="QuadMesh" id="QuadMesh_ss6of"]
material = ExtResource("4_8oeg0")
size = Vector2(20, 20)
[sub_resource type="BoxShape3D" id="BoxShape3D_7i35n"]
size = Vector3(20, 1, 20)
[sub_resource type="QuadMesh" id="QuadMesh_fjuju"]
material = ExtResource("5_60arm")
size = Vector2(20, 4)
[sub_resource type="BoxShape3D" id="BoxShape3D_65y34"]
size = Vector3(20, 4, 1)
[sub_resource type="QuadMesh" id="QuadMesh_ympj7"]
size = Vector2(0.02, 0.1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cpr52"]
cull_mode = 2
albedo_color = Color(0, 0.603922, 0.0901961, 1)
[sub_resource type="QuadMesh" id="QuadMesh_3b7bd"]
material = ExtResource("2_rhoo2")
size = Vector2(8, 18)
[sub_resource type="BoxShape3D" id="BoxShape3D_7waf7"]
size = Vector3(8, 1, 18)
[sub_resource type="BoxMesh" id="BoxMesh_aqhwm"]
material = ExtResource("2_rhoo2")
size = Vector3(8, 18, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_88dki"]
size = Vector3(18, 3, 1)
[sub_resource type="BoxMesh" id="BoxMesh_maljg"]
material = ExtResource("2_rhoo2")
size = Vector3(18, 1, 1)
[sub_resource type="BoxMesh" id="BoxMesh_pyf23"]
material = ExtResource("2_rhoo2")
size = Vector3(18, 0.5, 1)
[sub_resource type="BoxMesh" id="BoxMesh_yxwu0"]
material = ExtResource("2_rhoo2")
size = Vector3(3, 1.5, 1)
[sub_resource type="BoxMesh" id="BoxMesh_jl771"]
material = ExtResource("2_rhoo2")
size = Vector3(3, 3, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_t07s1"]
size = Vector3(3, 3, 1)
[sub_resource type="BoxMesh" id="BoxMesh_2681d"]
material = ExtResource("2_rhoo2")
size = Vector3(1, 0.25, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_vx05l"]
size = Vector3(1, 0.25, 1)
[sub_resource type="BoxMesh" id="BoxMesh_tmdhs"]
material = ExtResource("3_f5fy3")
size = Vector3(1, 2.875, 0.1)
[sub_resource type="BoxShape3D" id="BoxShape3D_hamto"]
size = Vector3(1, 2.875, 0.1)
[sub_resource type="CylinderMesh" id="CylinderMesh_vc0dy"]
material = ExtResource("3_f5fy3")
top_radius = 1.0
bottom_radius = 1.0
height = 0.05
radial_segments = 32
rings = 1
[sub_resource type="CylinderMesh" id="CylinderMesh_ll8no"]
material = ExtResource("3_f5fy3")
top_radius = 0.1
bottom_radius = 0.1
height = 0.8
radial_segments = 6
rings = 1
[sub_resource type="CylinderShape3D" id="CylinderShape3D_ns35b"]
height = 0.05
radius = 1.0
[sub_resource type="BoxShape3D" id="BoxShape3D_rpfc0"]
size = Vector3(1, 3, 0.2)
[node name="HouseInteriorZone" instance=ExtResource("1_4sjqh")]
zone_info = ExtResource("3_x42ux")
[node name="Skeleton3D" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L/Armature" index="0"]
bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824)
bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042)
bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639)
bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979)
bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608)
bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929)
bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775)
bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934)
bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027)
bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843)
bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685)
bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718)
bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124)
bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136)
bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994)
bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524)
bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351)
bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086)
bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249)
[node name="BoneAttachment3D" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D" index="1"]
transform = Transform3D(0.54083, 0.840813, -0.0231736, -0.0826267, 0.0805243, 0.993322, 0.837064, -0.535303, 0.113023, 0.039902, 0.0402828, -0.150096)
[node name="AnimationTree" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand" index="1"]
tree_root = SubResource("AnimationNodeBlendTree_ctrkn")
[node name="Skeleton3D" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand/Hand_Nails_low_R/Armature" index="0"]
bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824)
bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042)
bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639)
bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979)
bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608)
bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929)
bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775)
bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934)
bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027)
bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843)
bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685)
bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718)
bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124)
bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136)
bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994)
bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524)
bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351)
bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086)
bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249)
[node name="BoneAttachment3D" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand/Hand_Nails_low_R/Armature/Skeleton3D" index="1"]
transform = Transform3D(0.540829, -0.840813, 0.0231736, 0.0826268, 0.0805242, 0.993322, -0.837064, -0.535303, 0.113024, -0.039902, 0.0402828, -0.150096)
[node name="AnimationTree" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand" index="1"]
tree_root = SubResource("AnimationNodeBlendTree_tcppe")
[node name="World" type="Node3D" parent="." index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.1, 0)
[node name="WorldEnvironment" type="WorldEnvironment" parent="World" index="0"]
environment = ExtResource("2_42k30")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="World" index="1"]
transform = Transform3D(-0.707107, -0.5, 0.5, 0, 0.707107, 0.707107, -0.707107, 0.5, -0.5, 0, 8, 0)
[node name="Ground" type="StaticBody3D" parent="World" index="2"]
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Ground" index="0"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0)
mesh = SubResource("QuadMesh_ss6of")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Ground" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
shape = SubResource("BoxShape3D_7i35n")
[node name="Boundary1" type="StaticBody3D" parent="World" index="3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, -10)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Boundary1" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5)
mesh = SubResource("QuadMesh_fjuju")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Boundary1" index="1"]
shape = SubResource("BoxShape3D_65y34")
[node name="Boundary2" type="StaticBody3D" parent="World" index="4"]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 10, 2, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Boundary2" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5)
mesh = SubResource("QuadMesh_fjuju")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Boundary2" index="1"]
shape = SubResource("BoxShape3D_65y34")
[node name="Boundary3" type="StaticBody3D" parent="World" index="5"]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 2, 10)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Boundary3" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5)
mesh = SubResource("QuadMesh_fjuju")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Boundary3" index="1"]
shape = SubResource("BoxShape3D_65y34")
[node name="Boundary4" type="StaticBody3D" parent="World" index="6"]
transform = Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -10, 2, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Boundary4" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5)
mesh = SubResource("QuadMesh_fjuju")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Boundary4" index="1"]
shape = SubResource("BoxShape3D_65y34")
[node name="Grass1" type="Node3D" parent="World" index="7"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 0.05, 0)
script = ExtResource("6_sr5e8")
extend = Vector3(3, 0, 10)
instance_count = 2000
mesh = SubResource("QuadMesh_ympj7")
material_override = SubResource("StandardMaterial3D_cpr52")
[node name="Grass2" type="Node3D" parent="World" index="8"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7, 0.05, 0)
script = ExtResource("6_sr5e8")
extend = Vector3(3, 0, 10)
instance_count = 2000
mesh = SubResource("QuadMesh_ympj7")
material_override = SubResource("StandardMaterial3D_cpr52")
[node name="House" type="Node3D" parent="." index="2"]
[node name="Floor" type="StaticBody3D" parent="House" index="0"]
[node name="MeshInstance3D" type="MeshInstance3D" parent="House/Floor" index="0"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0)
mesh = SubResource("QuadMesh_3b7bd")
[node name="CollisionShape3D" type="CollisionShape3D" parent="House/Floor" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
shape = SubResource("BoxShape3D_7waf7")
[node name="Roof" type="StaticBody3D" parent="House" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="House/Roof" index="0"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0.5, 0)
mesh = SubResource("BoxMesh_aqhwm")
[node name="CollisionShape3D" type="CollisionShape3D" parent="House/Roof" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
shape = SubResource("BoxShape3D_7waf7")
[node name="LongWall1" type="StaticBody3D" parent="House" index="2"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -4, 0, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="House/LongWall1" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
shape = SubResource("BoxShape3D_88dki")
[node name="Base" type="MeshInstance3D" parent="House/LongWall1" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
mesh = SubResource("BoxMesh_maljg")
[node name="Top" type="MeshInstance3D" parent="House/LongWall1" index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.75, 0)
mesh = SubResource("BoxMesh_pyf23")
[node name="Section1" type="MeshInstance3D" parent="House/LongWall1" index="3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 1.75, 0)
mesh = SubResource("BoxMesh_yxwu0")
[node name="Section2" type="MeshInstance3D" parent="House/LongWall1" index="4"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.75, 0)
mesh = SubResource("BoxMesh_yxwu0")
[node name="Section3" type="MeshInstance3D" parent="House/LongWall1" index="5"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 1.75, 0)
mesh = SubResource("BoxMesh_yxwu0")
[node name="LongWall2" type="StaticBody3D" parent="House" index="3"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 4, 0, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="House/LongWall2" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
shape = SubResource("BoxShape3D_88dki")
[node name="Base" type="MeshInstance3D" parent="House/LongWall2" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
mesh = SubResource("BoxMesh_maljg")
[node name="Top" type="MeshInstance3D" parent="House/LongWall2" index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.75, 0)
mesh = SubResource("BoxMesh_pyf23")
[node name="Section1" type="MeshInstance3D" parent="House/LongWall2" index="3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 1.75, 0)
mesh = SubResource("BoxMesh_yxwu0")
[node name="Section2" type="MeshInstance3D" parent="House/LongWall2" index="4"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.75, 0)
mesh = SubResource("BoxMesh_yxwu0")
[node name="Section3" type="MeshInstance3D" parent="House/LongWall2" index="5"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 1.75, 0)
mesh = SubResource("BoxMesh_yxwu0")
[node name="OutsideWall" type="Node3D" parent="House" index="4"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 9)
[node name="Wall1" type="StaticBody3D" parent="House/OutsideWall" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="House/OutsideWall/Wall1" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
mesh = SubResource("BoxMesh_jl771")
[node name="CollisionShape3D" type="CollisionShape3D" parent="House/OutsideWall/Wall1" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
shape = SubResource("BoxShape3D_t07s1")
[node name="Wall2" type="StaticBody3D" parent="House/OutsideWall" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="House/OutsideWall/Wall2" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
mesh = SubResource("BoxMesh_jl771")
[node name="CollisionShape3D" type="CollisionShape3D" parent="House/OutsideWall/Wall2" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
shape = SubResource("BoxShape3D_t07s1")
[node name="DoorTop" type="StaticBody3D" parent="House/OutsideWall" index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.875, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="House/OutsideWall/DoorTop" index="0"]
mesh = SubResource("BoxMesh_2681d")
[node name="CollisionShape3D" type="CollisionShape3D" parent="House/OutsideWall/DoorTop" index="1"]
shape = SubResource("BoxShape3D_vx05l")
[node name="Door" type="StaticBody3D" parent="House/OutsideWall" index="3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.438, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="House/OutsideWall/Door" index="0"]
mesh = SubResource("BoxMesh_tmdhs")
[node name="CollisionShape3D" type="CollisionShape3D" parent="House/OutsideWall/Door" index="1"]
shape = SubResource("BoxShape3D_hamto")
[node name="BackYardWall" type="Node3D" parent="House" index="5"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -9)
[node name="Wall1" type="StaticBody3D" parent="House/BackYardWall" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="House/BackYardWall/Wall1" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
mesh = SubResource("BoxMesh_jl771")
[node name="CollisionShape3D" type="CollisionShape3D" parent="House/BackYardWall/Wall1" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
shape = SubResource("BoxShape3D_t07s1")
[node name="Wall2" type="StaticBody3D" parent="House/BackYardWall" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="House/BackYardWall/Wall2" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
mesh = SubResource("BoxMesh_jl771")
[node name="CollisionShape3D" type="CollisionShape3D" parent="House/BackYardWall/Wall2" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
shape = SubResource("BoxShape3D_t07s1")
[node name="DoorTop" type="StaticBody3D" parent="House/BackYardWall" index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.875, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="House/BackYardWall/DoorTop" index="0"]
mesh = SubResource("BoxMesh_2681d")
[node name="CollisionShape3D" type="CollisionShape3D" parent="House/BackYardWall/DoorTop" index="1"]
shape = SubResource("BoxShape3D_vx05l")
[node name="Door" type="StaticBody3D" parent="House/BackYardWall" index="3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.438, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="House/BackYardWall/Door" index="0"]
mesh = SubResource("BoxMesh_tmdhs")
[node name="CollisionShape3D" type="CollisionShape3D" parent="House/BackYardWall/Door" index="1"]
shape = SubResource("BoxShape3D_hamto")
[node name="RoundTable" type="StaticBody3D" parent="House" index="6"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 6)
[node name="Top" type="MeshInstance3D" parent="House/RoundTable" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0)
mesh = SubResource("CylinderMesh_vc0dy")
[node name="Stand" type="MeshInstance3D" parent="House/RoundTable" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0)
mesh = SubResource("CylinderMesh_ll8no")
[node name="TopCollider" type="CollisionShape3D" parent="House/RoundTable" index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0)
shape = SubResource("CylinderShape3D_ns35b")
[node name="ToOutside" parent="." index="3" instance=ExtResource("7_jpwgk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 8.6)
zone_scene = "res://game/zones/outside/outside_zone.tscn"
spawn_node_name = "FromHouseInterior"
[node name="CollisionShape3D" type="CollisionShape3D" parent="ToOutside" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
shape = SubResource("BoxShape3D_rpfc0")
[node name="FromOutside" type="Marker3D" parent="." index="4"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 7.5)
[node name="ToBackYard" parent="." index="5" instance=ExtResource("7_jpwgk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -8.6)
zone_scene = "res://game/zones/house_back_yard/house_back_yard_zone.tscn"
spawn_node_name = "FromHouseInterior"
[node name="CollisionShape3D" type="CollisionShape3D" parent="ToBackYard" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
shape = SubResource("BoxShape3D_rpfc0")
[node name="FromBackYard" type="Marker3D" parent="." index="6"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, -7.5)
[node name="SavePoint" parent="." index="7" instance=ExtResource("11_vm0jr")]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -2, 0, 0)
[node name="StorageBox" parent="." index="8" instance=ExtResource("11_q611u")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 3, 0, 0)
[node name="Backpack" parent="." index="9" instance=ExtResource("12_4n3xy")]
transform = Transform3D(1, 0, 0, 0, -0.209823, -0.977739, 0, 0.977739, -0.209823, -1.65298, 1.01782, 5.83564)
[editable path="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand"]
[editable path="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L"]
[editable path="XROrigin3D/RightHand/CollisionHandRight/RightHand"]
[editable path="XROrigin3D/RightHand/CollisionHandRight/RightHand/Hand_Nails_low_R"]
@@ -0,0 +1,8 @@
[gd_resource type="Resource" script_class="ZoneInfo" load_steps=2 format=3 uid="uid://d1lgdwh7pv220"]
[ext_resource type="Script" path="res://components/persistent/persistent_zone_info.gd" id="1_13qc4"]
[resource]
script = ExtResource("1_13qc4")
zone_id = "zone_house_interior"
instance_scene = "res://game/zones/house_interior/house_interior_zone.tscn"
+328
View File
@@ -0,0 +1,328 @@
[gd_scene load_steps=38 format=3 uid="uid://cjat5u6nsihgw"]
[ext_resource type="PackedScene" uid="uid://cvn48xcmsmkrb" path="res://game/zones/zone_base.tscn" id="1_sk0kv"]
[ext_resource type="Material" uid="uid://csepeix2yvih" path="res://assets/prototype_materials/grass.tres" id="2_uryyw"]
[ext_resource type="Material" uid="uid://c7prktlpm7tmm" path="res://assets/prototype_materials/forest.tres" id="3_wfk2d"]
[ext_resource type="Resource" uid="uid://to5lown6orfd" path="res://game/zones/outside/outside_zone_info.tres" id="3_wyepd"]
[ext_resource type="Script" path="res://components/helpers/scatter.gd" id="4_v2d8i"]
[ext_resource type="Material" uid="uid://c386ygo86nqfc" path="res://assets/prototype_materials/wood_brown.tres" id="4_yw2go"]
[ext_resource type="Material" uid="uid://cjylinr1vdjcw" path="res://assets/prototype_materials/dark_brown.tres" id="5_peq87"]
[ext_resource type="Material" uid="uid://ccdofvku4c7w3" path="res://assets/prototype_materials/stone_grey.tres" id="6_y2a7s"]
[ext_resource type="PackedScene" uid="uid://vm423o6hdlya" path="res://components/helpers/zone_switch_area.tscn" id="7_omnq0"]
[ext_resource type="Environment" uid="uid://er867l7dl10j" path="res://default_env.tres" id="8_82q6b"]
[ext_resource type="PackedScene" uid="uid://c4rpcr7s5pt3v" path="res://game/items/rock/rock.tscn" id="12_cxbia"]
[ext_resource type="PackedScene" uid="uid://chch4r7wddwdj" path="res://game/objects/storage/storage_box.tscn" id="13_galon"]
[ext_resource type="PackedScene" uid="uid://dbepe4i2q62yy" path="res://game/items/crate/crate.tscn" id="13_mtgv7"]
[ext_resource type="PackedScene" uid="uid://c33bpwxnrb0gr" path="res://game/items/toolbox/toolbox.tscn" id="14_68l3l"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_p02yt"]
animation = &"Grip"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_5ya82"]
animation = &"Grip"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_hmww4"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8y4d1"]
animation = &"Grip 5"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_iyfkk"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_qrs50"]
graph_offset = Vector2(-536, 11)
nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_p02yt")
nodes/ClosedHand1/position = Vector2(-600, 300)
nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_5ya82")
nodes/ClosedHand2/position = Vector2(-360, 300)
nodes/Grip/node = SubResource("AnimationNodeBlend2_hmww4")
nodes/Grip/position = Vector2(0, 20)
nodes/OpenHand/node = SubResource("AnimationNodeAnimation_8y4d1")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_iyfkk")
nodes/Trigger/position = Vector2(-360, 20)
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_xxwsy"]
animation = &"Grip"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_m7om0"]
animation = &"Grip"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_1bkqf"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8npt3"]
animation = &"Grip 5"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_doyug"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_4mfj8"]
graph_offset = Vector2(-552.664, 107.301)
nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_xxwsy")
nodes/ClosedHand1/position = Vector2(-600, 300)
nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_m7om0")
nodes/ClosedHand2/position = Vector2(-360, 300)
nodes/Grip/node = SubResource("AnimationNodeBlend2_1bkqf")
nodes/Grip/position = Vector2(0, 40)
nodes/OpenHand/node = SubResource("AnimationNodeAnimation_8npt3")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_doyug")
nodes/Trigger/position = Vector2(-360, 40)
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[sub_resource type="QuadMesh" id="QuadMesh_0144s"]
material = ExtResource("2_uryyw")
size = Vector2(20, 20)
[sub_resource type="BoxShape3D" id="BoxShape3D_ivc2m"]
size = Vector3(20, 1, 20)
[sub_resource type="QuadMesh" id="QuadMesh_mq77n"]
material = ExtResource("3_wfk2d")
size = Vector2(20, 4)
[sub_resource type="BoxShape3D" id="BoxShape3D_cvifd"]
size = Vector3(20, 4, 1)
[sub_resource type="QuadMesh" id="QuadMesh_pt6e2"]
size = Vector2(0.02, 0.1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_srm7c"]
cull_mode = 2
albedo_color = Color(0, 0.603922, 0.0901961, 1)
[sub_resource type="SphereMesh" id="SphereMesh_6ysum"]
material = ExtResource("6_y2a7s")
radius = 3.0
height = 4.0
radial_segments = 5
rings = 3
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_f4wyk"]
points = PackedVector3Array(-1.7634, 0, -2.42705, -1.24728, -1.41425, -1.71626, -2.85317, 0, 0.926607, -1.24728, 1.41386, -1.71626, 1.76284, 0, -2.42705, 1.24673, -1.41425, -1.71626, 0, -2, -0.000390053, -2.01755, -1.41425, 0.655149, -2.01755, 1.41386, 0.655149, 0, 0, 3, 0, 2, -0.000390053, 1.24673, 1.41386, -1.71626, 2.85317, 0, 0.926607, 2.01699, -1.41425, 0.655149, 0, -1.41425, 2.12081, 0, 1.41386, 2.12081, 2.01699, 1.41386, 0.655149)
[sub_resource type="BoxMesh" id="BoxMesh_s0cu3"]
material = ExtResource("5_peq87")
size = Vector3(1, 3, 0.2)
[sub_resource type="BoxShape3D" id="BoxShape3D_lsqhn"]
size = Vector3(1, 3, 0.1)
[sub_resource type="BoxShape3D" id="BoxShape3D_wdgkd"]
size = Vector3(1, 3, 0.2)
[node name="OutsideZone" instance=ExtResource("1_sk0kv")]
zone_info = ExtResource("3_wyepd")
[node name="Skeleton3D" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L/Armature" index="0"]
bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824)
bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042)
bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639)
bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979)
bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608)
bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929)
bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775)
bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934)
bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027)
bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843)
bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685)
bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718)
bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124)
bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136)
bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994)
bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524)
bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351)
bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086)
bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249)
[node name="BoneAttachment3D" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D" index="1"]
transform = Transform3D(0.54083, 0.840813, -0.0231736, -0.0826267, 0.0805243, 0.993322, 0.837064, -0.535303, 0.113023, 0.039902, 0.0402828, -0.150096)
[node name="AnimationTree" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand" index="1"]
tree_root = SubResource("AnimationNodeBlendTree_qrs50")
[node name="Skeleton3D" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand/Hand_Nails_low_R/Armature" index="0"]
bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824)
bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042)
bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639)
bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979)
bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608)
bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929)
bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775)
bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934)
bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027)
bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843)
bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685)
bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718)
bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124)
bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136)
bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994)
bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524)
bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351)
bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086)
bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249)
[node name="BoneAttachment3D" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand/Hand_Nails_low_R/Armature/Skeleton3D" index="1"]
transform = Transform3D(0.540829, -0.840813, 0.0231736, 0.0826268, 0.0805242, 0.993322, -0.837064, -0.535303, 0.113024, -0.039902, 0.0402828, -0.150096)
[node name="AnimationTree" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand" index="1"]
tree_root = SubResource("AnimationNodeBlendTree_4mfj8")
[node name="World" type="Node3D" parent="." index="1"]
[node name="WorldEnvironment" type="WorldEnvironment" parent="World" index="0"]
environment = ExtResource("8_82q6b")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="World" index="1"]
transform = Transform3D(-0.707107, -0.5, 0.5, 0, 0.707107, 0.707107, -0.707107, 0.5, -0.5, 0, 8, 0)
[node name="Ground" type="StaticBody3D" parent="World" index="2"]
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Ground" index="0"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0)
mesh = SubResource("QuadMesh_0144s")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Ground" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
shape = SubResource("BoxShape3D_ivc2m")
[node name="Boundary1" type="StaticBody3D" parent="World" index="3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, -10)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Boundary1" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5)
mesh = SubResource("QuadMesh_mq77n")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Boundary1" index="1"]
shape = SubResource("BoxShape3D_cvifd")
[node name="Boundary2" type="StaticBody3D" parent="World" index="4"]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 10, 2, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Boundary2" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5)
mesh = SubResource("QuadMesh_mq77n")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Boundary2" index="1"]
shape = SubResource("BoxShape3D_cvifd")
[node name="Boundary3" type="StaticBody3D" parent="World" index="5"]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 2, 10)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Boundary3" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5)
mesh = SubResource("QuadMesh_mq77n")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Boundary3" index="1"]
shape = SubResource("BoxShape3D_cvifd")
[node name="Boundary4" type="StaticBody3D" parent="World" index="6"]
transform = Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -10, 2, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Boundary4" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5)
mesh = SubResource("QuadMesh_mq77n")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Boundary4" index="1"]
shape = SubResource("BoxShape3D_cvifd")
[node name="Grass1" type="Node3D" parent="World" index="7"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.05, 0)
script = ExtResource("4_v2d8i")
extend = Vector3(10, 0, 10)
instance_count = 3000
mesh = SubResource("QuadMesh_pt6e2")
material_override = SubResource("StandardMaterial3D_srm7c")
[node name="Stone1" type="StaticBody3D" parent="World" index="8"]
transform = Transform3D(0.764321, 0.0519332, 0.642742, -0.26228, 0.935615, 0.236294, -0.589087, -0.349183, 0.72873, 7, 0, 8)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Stone1" index="0"]
transform = Transform3D(1, -1.42492e-07, 0, 3.63216e-08, 1, 0, 0, 1.49012e-08, 1, 0, 0, 0)
mesh = SubResource("SphereMesh_6ysum")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Stone1" index="1"]
transform = Transform3D(1, -1.42492e-07, 0, 3.63216e-08, 1, 0, 0, 1.49012e-08, 1, 0, 0, 0)
shape = SubResource("ConvexPolygonShape3D_f4wyk")
[node name="Stone2" type="StaticBody3D" parent="World" index="9"]
transform = Transform3D(0.417223, -0.0502081, 0.907416, -0.0618827, 0.994586, 0.0834845, -0.906695, -0.0909851, 0.411857, -8, -0.4, 8)
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Stone2" index="0"]
transform = Transform3D(1, -1.56462e-07, 0, 4.47035e-08, 1, 3.35276e-08, 0, 1.49012e-08, 1, 0, 0, 0)
mesh = SubResource("SphereMesh_6ysum")
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Stone2" index="1"]
transform = Transform3D(1, -1.42492e-07, 0, 3.63216e-08, 1, 0, 0, 1.49012e-08, 1, 0, 0, 0)
shape = SubResource("ConvexPolygonShape3D_f4wyk")
[node name="HouseEntrance" type="Node3D" parent="." index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -8.6)
[node name="Exterior" type="CSGPolygon3D" parent="HouseEntrance" index="0"]
use_collision = true
polygon = PackedVector2Array(-3, 0, -3, 3, 0, 5, 3, 3, 3, 0, 0.5, 0, 0.5, 3, -0.5, 3, -0.5, 0)
material = ExtResource("4_yw2go")
[node name="Door" type="StaticBody3D" parent="HouseEntrance" index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, -0.5)
[node name="MeshInstance3D" type="MeshInstance3D" parent="HouseEntrance/Door" index="0"]
mesh = SubResource("BoxMesh_s0cu3")
[node name="CollisionShape3D" type="CollisionShape3D" parent="HouseEntrance/Door" index="1"]
shape = SubResource("BoxShape3D_lsqhn")
[node name="ToHouseInterior" parent="." index="3" instance=ExtResource("7_omnq0")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -8.7)
zone_scene = "res://game/zones/house_interior/house_interior_zone.tscn"
spawn_node_name = "FromOutside"
[node name="CollisionShape3D" type="CollisionShape3D" parent="ToHouseInterior" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
shape = SubResource("BoxShape3D_wdgkd")
[node name="FromHouseInterior" type="Marker3D" parent="." index="4"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, -7.6)
[node name="Rock1" parent="." index="5" instance=ExtResource("12_cxbia")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.02816, 0.159056, 5.29193)
item_id = "rock_outside_1"
[node name="Rock2" parent="." index="6" instance=ExtResource("12_cxbia")]
transform = Transform3D(0.5, 0, 0.866025, 0, 1, 0, -0.866025, 0, 0.5, 4.52816, 0.159056, 5.29193)
item_id = "rock_outside_2"
[node name="Rock3" parent="." index="7" instance=ExtResource("12_cxbia")]
transform = Transform3D(0.258819, 0, 0.965926, 0, 1, 0, -0.965926, 0, 0.258819, 4.82816, 0.159056, 5.69193)
item_id = "rock_outside_3"
[node name="Crate1" parent="." index="8" instance=ExtResource("13_mtgv7")]
transform = Transform3D(0.965926, 0, -0.258819, 0, 1, 0, 0.258819, 0, 0.965926, -6, 0.5, -8.6)
item_id = "crate_outside_1"
[node name="Crate2" parent="." index="9" instance=ExtResource("13_mtgv7")]
transform = Transform3D(0.996195, 0, 0.0871557, 0, 1, 0, -0.0871557, 0, 0.996195, -4.7, 0.5, -8.6)
item_id = "crate_outside_2"
[node name="Crate3" parent="." index="10" instance=ExtResource("13_mtgv7")]
transform = Transform3D(1, 0, -2.23517e-08, 0, 1, 0, 2.23517e-08, 0, 1, -5.4, 1.5, -8.6)
item_id = "crate_outside_3"
[node name="StorageBox" parent="." index="11" instance=ExtResource("13_galon")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, -9)
[node name="Toolbox" parent="." index="12" instance=ExtResource("14_68l3l")]
transform = Transform3D(0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, 0.707107, 6, 0.117771, 4)
[editable path="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand"]
[editable path="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L"]
[editable path="XROrigin3D/RightHand/CollisionHandRight/RightHand"]
[editable path="XROrigin3D/RightHand/CollisionHandRight/RightHand/Hand_Nails_low_R"]
@@ -0,0 +1,8 @@
[gd_resource type="Resource" script_class="ZoneInfo" load_steps=2 format=3 uid="uid://to5lown6orfd"]
[ext_resource type="Script" path="res://components/persistent/persistent_zone_info.gd" id="1_ebey5"]
[resource]
script = ExtResource("1_ebey5")
zone_id = "zone_outside"
instance_scene = "res://game/zones/outside/outside_zone.tscn"
+252
View File
@@ -0,0 +1,252 @@
[gd_scene load_steps=33 format=3 uid="uid://cvn48xcmsmkrb"]
[ext_resource type="PackedScene" uid="uid://di1bu0tceg332" path="res://components/persistent/persistent_zone.tscn" id="1_radar"]
[ext_resource type="PackedScene" uid="uid://bkv43ec6chcf3" path="res://addons/godot-xr-tools/hands/scenes/collision/collision_hand_left.tscn" id="4_38kmp"]
[ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="5_2k6vw"]
[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="6_3jgly"]
[ext_resource type="PackedScene" uid="uid://cqhw276realc" path="res://addons/godot-xr-tools/functions/function_pointer.tscn" id="7_573pv"]
[ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="8_7p3lb"]
[ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="9_cv4ub"]
[ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="10_6ajyr"]
[ext_resource type="PackedScene" uid="uid://clt88d5d1dje4" path="res://addons/godot-xr-tools/functions/movement_crouch.tscn" id="11_5npet"]
[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="12_jg4e1"]
[ext_resource type="PackedScene" uid="uid://c3uoohvnshach" path="res://addons/godot-xr-tools/hands/scenes/collision/collision_hand_right.tscn" id="12_o3mdo"]
[ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="13_dr7jm"]
[ext_resource type="PackedScene" uid="uid://b3bubdytjn523" path="res://game/zones/zone_wrist_ui.tscn" id="13_w2gnj"]
[ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="14_yb1jn"]
[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="15_x1dm3"]
[ext_resource type="PackedScene" uid="uid://qmejywplaagw" path="res://components/persistent/persistent_pocket.tscn" id="16_4oqtv"]
[ext_resource type="PackedScene" uid="uid://da2qgxxwwitl6" path="res://addons/godot-xr-tools/objects/highlight/highlight_ring.tscn" id="17_1njvn"]
[ext_resource type="PackedScene" uid="uid://drs4eeq721ojn" path="res://addons/godot-xr-tools/functions/movement_sprint.tscn" id="18_l4ed5"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_xdmwg"]
animation = &"Grip"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ta1f5"]
animation = &"Grip"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_bete2"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_u47f6"]
animation = &"Grip 5"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_1kag1"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_emrvp"]
graph_offset = Vector2(-536, 11)
nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_xdmwg")
nodes/ClosedHand1/position = Vector2(-600, 300)
nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_ta1f5")
nodes/ClosedHand2/position = Vector2(-360, 300)
nodes/Grip/node = SubResource("AnimationNodeBlend2_bete2")
nodes/Grip/position = Vector2(0, 20)
nodes/OpenHand/node = SubResource("AnimationNodeAnimation_u47f6")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_1kag1")
nodes/Trigger/position = Vector2(-360, 20)
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_n3638"]
animation = &"Grip"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_1n6bu"]
animation = &"Grip"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_svpyk"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_g0jtn"]
animation = &"Grip 5"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_g8ki7"]
filter_enabled = true
filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_26byb"]
graph_offset = Vector2(-552.664, 107.301)
nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_n3638")
nodes/ClosedHand1/position = Vector2(-600, 300)
nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_1n6bu")
nodes/ClosedHand2/position = Vector2(-360, 300)
nodes/Grip/node = SubResource("AnimationNodeBlend2_svpyk")
nodes/Grip/position = Vector2(0, 40)
nodes/OpenHand/node = SubResource("AnimationNodeAnimation_g0jtn")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_g8ki7")
nodes/Trigger/position = Vector2(-360, 40)
node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_g8k03"]
transparency = 1
shading_mode = 0
albedo_color = Color(0, 0, 0.501961, 0.25098)
[sub_resource type="SphereMesh" id="SphereMesh_1ccdy"]
material = SubResource("StandardMaterial3D_g8k03")
flip_faces = true
radius = 0.1
height = 0.2
[node name="ZoneBase" instance=ExtResource("1_radar")]
[node name="XRCamera3D" parent="XROrigin3D" index="0"]
near = 0.03
[node name="BackPocket" parent="XROrigin3D/XRCamera3D" index="0" instance=ExtResource("16_4oqtv")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0.2)
pocket_id = "backpack_pocket"
grab_distance = 0.2
snap_require = "backpack"
[node name="CollisionHandLeft" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("4_38kmp")]
[node name="LeftHand" parent="XROrigin3D/LeftHand/CollisionHandLeft" index="1" instance=ExtResource("5_2k6vw")]
[node name="Skeleton3D" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L/Armature" index="0"]
bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824)
bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042)
bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639)
bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979)
bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608)
bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929)
bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775)
bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934)
bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027)
bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843)
bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685)
bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718)
bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124)
bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136)
bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994)
bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524)
bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351)
bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086)
bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249)
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D" index="1"]
transform = Transform3D(0.54083, 0.840813, -0.0231736, -0.0826267, 0.0805243, 0.993322, 0.837064, -0.535303, 0.113023, 0.039902, 0.0402828, -0.150096)
bone_name = "Index_Tip_L"
bone_idx = 9
[node name="Poke" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("6_3jgly")]
transform = Transform3D(0.54083, -0.0826267, 0.837064, 0.840813, 0.0805243, -0.535303, -0.0231736, 0.993322, 0.113024, 0, 0, 0)
[node name="AnimationTree" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand" index="1"]
tree_root = SubResource("AnimationNodeBlendTree_emrvp")
[node name="FunctionPointer" parent="XROrigin3D/LeftHand/CollisionHandLeft" index="2" instance=ExtResource("7_573pv")]
show_laser = 2
laser_length = 1
[node name="FunctionPickup" parent="XROrigin3D/LeftHand/CollisionHandLeft" index="3" instance=ExtResource("8_7p3lb")]
grab_distance = 0.15
ranged_angle = 15.0
[node name="MovementDirect" parent="XROrigin3D/LeftHand/CollisionHandLeft" index="4" instance=ExtResource("9_cv4ub")]
strafe = true
[node name="MovementJump" parent="XROrigin3D/LeftHand/CollisionHandLeft" index="5" instance=ExtResource("10_6ajyr")]
jump_button_action = "ax_button"
[node name="MovementCrouch" parent="XROrigin3D/LeftHand/CollisionHandLeft" index="6" instance=ExtResource("11_5npet")]
crouch_button_action = "by_button"
[node name="WristUI" parent="XROrigin3D/LeftHand/CollisionHandLeft" index="7" instance=ExtResource("12_jg4e1")]
transform = Transform3D(1.30801e-07, -1, 7.6194e-09, -0.0871558, -3.8097e-09, 0.996195, -0.996195, -1.30968e-07, -0.0871558, -0.03, 0, 0.3)
screen_size = Vector2(0.16, 0.08)
collision_layer = 4194304
scene = ExtResource("13_w2gnj")
viewport_size = Vector2(400, 200)
update_mode = 2
throttle_fps = 15.0
transparent = 0
unshaded = true
[node name="CollisionHandRight" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("12_o3mdo")]
[node name="RightHand" parent="XROrigin3D/RightHand/CollisionHandRight" index="1" instance=ExtResource("13_dr7jm")]
[node name="Skeleton3D" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand/Hand_Nails_low_R/Armature" index="0"]
bones/1/rotation = Quaternion(0.323537, 2.56577e-05, 0.0272204, 0.945824)
bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042)
bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639)
bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979)
bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608)
bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929)
bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775)
bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934)
bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027)
bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843)
bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685)
bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718)
bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124)
bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136)
bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994)
bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524)
bones/21/rotation = Quaternion(-0.0625182, 0.000225721, 0.115393, 0.991351)
bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086)
bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249)
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand/Hand_Nails_low_R/Armature/Skeleton3D" index="1"]
transform = Transform3D(0.540829, -0.840813, 0.0231736, 0.0826268, 0.0805242, 0.993322, -0.837064, -0.535303, 0.113024, -0.039902, 0.0402828, -0.150096)
bone_name = "Index_Tip_R"
bone_idx = 9
[node name="Poke" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand/Hand_Nails_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("6_3jgly")]
[node name="AnimationTree" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand" index="1"]
tree_root = SubResource("AnimationNodeBlendTree_26byb")
[node name="FunctionPointer" parent="XROrigin3D/RightHand/CollisionHandRight" index="2" instance=ExtResource("7_573pv")]
show_laser = 2
laser_length = 1
[node name="FunctionPickup" parent="XROrigin3D/RightHand/CollisionHandRight" index="3" instance=ExtResource("8_7p3lb")]
grab_distance = 0.15
ranged_angle = 15.0
[node name="MovementDirect" parent="XROrigin3D/RightHand/CollisionHandRight" index="4" instance=ExtResource("9_cv4ub")]
[node name="MovementTurn" parent="XROrigin3D/RightHand/CollisionHandRight" index="5" instance=ExtResource("14_yb1jn")]
[node name="MovementJump" parent="XROrigin3D/RightHand/CollisionHandRight" index="6" instance=ExtResource("10_6ajyr")]
jump_button_action = "ax_button"
[node name="MovementCrouch" parent="XROrigin3D/RightHand/CollisionHandRight" index="7" instance=ExtResource("11_5npet")]
crouch_button_action = "by_button"
[node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("15_x1dm3")]
[node name="LeftPocket" parent="XROrigin3D/PlayerBody" index="0" instance=ExtResource("16_4oqtv")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.3, 1, -0.1)
pocket_id = "pocket_left"
grab_distance = 0.1
snap_require = "fits_in_pocket"
[node name="MeshInstance3D" type="MeshInstance3D" parent="XROrigin3D/PlayerBody/LeftPocket" index="2"]
mesh = SubResource("SphereMesh_1ccdy")
[node name="HighlightRing" parent="XROrigin3D/PlayerBody/LeftPocket" index="3" instance=ExtResource("17_1njvn")]
[node name="RightPocket" parent="XROrigin3D/PlayerBody" index="1" instance=ExtResource("16_4oqtv")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, 1, -0.1)
pocket_id = "pocket_right"
grab_distance = 0.1
snap_require = "fits_in_pocket"
[node name="MeshInstance3D" type="MeshInstance3D" parent="XROrigin3D/PlayerBody/RightPocket" index="2"]
mesh = SubResource("SphereMesh_1ccdy")
[node name="HighlightRing" parent="XROrigin3D/PlayerBody/RightPocket" index="3" instance=ExtResource("17_1njvn")]
[node name="MovementSprint" parent="XROrigin3D" index="4" instance=ExtResource("18_l4ed5")]
[editable path="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand"]
[editable path="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L"]
[editable path="XROrigin3D/RightHand/CollisionHandRight/RightHand"]
[editable path="XROrigin3D/RightHand/CollisionHandRight/RightHand/Hand_Nails_low_R"]
+10
View File
@@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="PersistentZoneDatabase" load_steps=5 format=3 uid="uid://cx1d62bw62y0k"]
[ext_resource type="Script" path="res://components/persistent/persistent_zone_database.gd" id="1_fm6ij"]
[ext_resource type="Resource" uid="uid://to5lown6orfd" path="res://game/zones/outside/outside_zone_info.tres" id="2_453gu"]
[ext_resource type="Resource" uid="uid://d1lgdwh7pv220" path="res://game/zones/house_interior/house_interior_zone_info.tres" id="3_e8q3n"]
[ext_resource type="Resource" uid="uid://cpugbtukttkfj" path="res://game/zones/house_back_yard/house_back_yard_zone_info.tres" id="4_ukd4u"]
[resource]
script = ExtResource("1_fm6ij")
zones = Array[Resource("res://components/persistent/persistent_zone_info.gd")]([ExtResource("2_453gu"), ExtResource("3_e8q3n"), ExtResource("4_ukd4u")])
+9
View File
@@ -0,0 +1,9 @@
extends PanelContainer
func _on_save_button_pressed():
GameState.auto_save_game()
func _on_quit_button_pressed():
GameState.quit_game()
+1
View File
@@ -0,0 +1 @@
uid://b58t5d43msmg5
+42
View File
@@ -0,0 +1,42 @@
[gd_scene load_steps=2 format=3 uid="uid://b3bubdytjn523"]
[ext_resource type="Script" path="res://game/zones/zone_wrist_ui.gd" id="1_3c68p"]
[node name="ZoneWristMenu" type="PanelContainer"]
offset_right = 400.0
offset_bottom = 200.0
script = ExtResource("1_3c68p")
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 2
theme_override_constants/margin_left = 5
theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 5
theme_override_constants/margin_bottom = 5
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
layout_mode = 2
theme_override_constants/separation = 10
alignment = 1
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
text = "This display shows the wrist UI when playing the game. Customize this for your games content or theme."
autowrap_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 50
alignment = 1
[node name="SaveButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 0
text = "Save"
[node name="QuitButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "Quit"
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/SaveButton" to="." method="_on_save_button_pressed"]
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/QuitButton" to="." method="_on_quit_button_pressed"]