new animations

This commit is contained in:
Rowan 2025-05-02 19:10:14 -05:00
parent 70c9c1ad16
commit 20c15953af
12 changed files with 7816 additions and 231 deletions

View file

@ -1,85 +1,84 @@
import { Callable, Callable1, InputEvent, LineEdit, Variant } from 'godot'
import { export_, onready } from 'godot.annotations'
import { Enumerable, IEnumerable } from '../enumerable-ts/src/index'
import { Action } from './dev_console'
export default class AutocompleteLine extends LineEdit {
@export_(Variant.Type.TYPE_BOOL)
private auto_suggest: boolean = true
@export_(Variant.Type.TYPE_BOOL)
private auto_suggest: boolean = true
@onready("Suggestion")
private suggestion!: LineEdit
@onready("Suggestion")
private suggestion!: LineEdit
autocomplete_list: string[] = []
current_suggestions: string[] = []
suggestion_index: number = -1
suppress_focus_change: boolean = true
autocomplete_list: string[] = []
current_suggestions: string[] = []
suggestion_index: number = -1
suppress_focus_change: boolean = true
_on_text_changed!: Callable1<string>
_on_text_changed!: Callable1<string>
_ready(): void {
this._on_text_changed = Callable.create(this, this.suggest)
_ready(): void {
this._on_text_changed = Callable.create(this, this.suggest)
if (this.auto_suggest) {
this.text_changed.connect(this._on_text_changed)
}
}
if (this.auto_suggest) {
this.text_changed.connect(this._on_text_changed)
}
}
_input(event: InputEvent): void {
if (this.has_focus() && this.suppress_focus_change)
if (event.is_action_pressed(Action.FocusPrevious)) {
this.accept_event()
this.autocomplete(-1)
} else if (event.is_action_pressed(Action.FocusNext)) {
this.accept_event()
this.autocomplete(1)
}
}
_input(event: InputEvent): void {
if (this.has_focus() && this.suppress_focus_change)
if (event.is_action_pressed(Action.FocusPrevious)) {
this.accept_event()
this.autocomplete(-1)
} else if (event.is_action_pressed(Action.FocusNext)) {
this.accept_event()
this.autocomplete(1)
}
}
suggest(value: string): boolean {
this.reset()
suggest(value: string): boolean {
this.reset()
if (value == '') {
return false
}
if (value == '') {
return false
}
this.current_suggestions = this.fuzzy_find(value)
this.current_suggestions = this.fuzzy_find(value)
if (this.current_suggestions.length > 0) {
const suggestion = this.current_suggestions[0]
if (suggestion != null) {
// create the illusion that the text is autocompleting
// by replacing the already typed characters with spaces
const padded = suggestion.slice(value.length).padStart(suggestion.length, ' ')
this.suggestion.text = padded
return true
}
}
if (this.current_suggestions.length > 0) {
const suggestion = this.current_suggestions[0]
if (suggestion != null) {
// create the illusion that the text is autocompleting
// by replacing the already typed characters with spaces
const padded = suggestion.slice(value.length).padStart(suggestion.length, ' ')
this.suggestion.text = padded
return true
}
}
this.suggestion.text = ''
return false
}
this.suggestion.text = ''
return false
}
set_caret_to_end() {
this.caret_column = this.text.length + 1
}
set_caret_to_end() {
this.caret_column = this.text.length + 1
}
autocomplete(direction: (-1 | 1)) {
if (this.current_suggestions.length > 0) {
this.suggestion_index = (this.suggestion_index + direction) % this.current_suggestions.length
this.text = this.current_suggestions.at(this.suggestion_index) || ''
this.suggestion.clear()
this.set_caret_to_end()
}
}
autocomplete(direction: (-1 | 1)) {
if (this.current_suggestions.length > 0) {
this.suggestion_index = (this.suggestion_index + direction) % this.current_suggestions.length
this.text = this.current_suggestions.at(this.suggestion_index) || ''
this.suggestion.clear()
this.set_caret_to_end()
}
}
fuzzy_find(value: string): string[] {
return this.autocomplete_list.filter(text => text != null && text.startsWith(value))
}
fuzzy_find(value: string): string[] {
return this.autocomplete_list.filter(text => text != null && text.startsWith(value))
}
reset() {
this.current_suggestions = []
this.suggestion_index = -1
this.suggestion.text = ''
}
reset() {
this.current_suggestions = []
this.suggestion_index = -1
this.suggestion.text = ''
}
}

View file

@ -5,7 +5,7 @@
[ext_resource type="Script" path="res://addons/dev_console/autocomplete_line.ts" id="2_fq41p"]
[node name="CanvasLayer" type="CanvasLayer"]
script = ExtResource("1_3ukun")
process_mode = 3
[node name="Container" type="Control" parent="."]
custom_minimum_size = Vector2(0, 250)
@ -14,6 +14,7 @@ anchors_preset = 10
anchor_right = 1.0
grow_horizontal = 2
size_flags_horizontal = 3
script = ExtResource("1_3ukun")
[node name="ColorRect" type="ColorRect" parent="Container"]
layout_mode = 1

View file

@ -1,5 +1,5 @@
import { Callable, Callable1, CanvasLayer, Expression, GArray, GDictionary, GError, InputEvent, RichTextLabel } from 'godot'
import { onready } from 'godot.annotations'
import { Callable, Callable1, Control, Expression, GArray, GDictionary, GError, InputEvent, RichTextLabel, Variant } from 'godot'
import { export_, onready } from 'godot.annotations'
import AutocompleteLine from './autocomplete_line'
import { GArrayEnumerator } from '../../src/collection/enumerable'
import { Enumerable } from '../enumerable-ts/src/index'
@ -14,11 +14,14 @@ export const Action = {
FocusPrevious: 'ui_focus_prev'
} as const
export default class DevConsole extends CanvasLayer {
@onready("Container/VBoxContainer/Output")
export default class DevConsole extends Control {
@export_(Variant.Type.TYPE_BOOL)
private pause_when_open: boolean = true
@onready("VBoxContainer/Output")
private output!: RichTextLabel
@onready("Container/VBoxContainer/Input")
@onready("VBoxContainer/Input")
private input!: AutocompleteLine
private history: string[] = []
@ -40,7 +43,6 @@ export default class DevConsole extends CanvasLayer {
}
_input(event: InputEvent): void {
if (event.is_action_pressed(Action.Toggle)) {
this._toggle()
return
@ -87,12 +89,19 @@ export default class DevConsole extends CanvasLayer {
async _show() {
await this.get_tree().process_frame.as_promise()
if (this.pause_when_open) {
this.get_tree().paused = true
}
this.input.text_submitted.connect(this.parse_callable)
this.input.grab_focus()
}
_hide() {
if (this.pause_when_open) {
this.get_tree().paused = false
}
this.input.text_submitted.disconnect(this.parse_callable)
this.input.release_focus()
}

BIN
assets/player2.glb Normal file

Binary file not shown.

7235
assets/player2.glb.import Normal file

File diff suppressed because it is too large Load diff

View file

@ -19,6 +19,7 @@ config/icon="res://icon.svg"
MessageBus="*res://src/message_bus.ts"
DebugDraw="*res://src/debug_draw.ts"
Console="*res://addons/dev_console/console.tscn"
[input]
@ -67,6 +68,16 @@ _dev_console_toggle={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":96,"key_label":0,"unicode":96,"location":0,"echo":false,"script":null)
]
}
aim={
"deadzone": 0.5,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"canceled":false,"pressed":false,"double_click":false,"script":null)
]
}
fire={
"deadzone": 0.5,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
]
}
[layer_names]

10
resources/items/key.tres Normal file
View file

@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="ItemData" load_steps=2 format=3 uid="uid://5odv3n0dp2nn"]
[ext_resource type="Script" path="res://src/item_data.ts" id="1_bbxre"]
[resource]
script = ExtResource("1_bbxre")
name = &"DebugKey"
type = 1
description = ""
max_quantity = 99

View file

@ -1,8 +1,11 @@
[gd_scene load_steps=7 format=3 uid="uid://dl8pjf2esflbr"]
[gd_scene load_steps=13 format=3 uid="uid://dl8pjf2esflbr"]
[ext_resource type="PackedScene" uid="uid://cersx8w4ps2sr" path="res://scenes/player.tscn" id="1_uum5p"]
[ext_resource type="PackedScene" uid="uid://cwrgvwx3lfwf6" path="res://assets/level.glb" id="2_i3oty"]
[ext_resource type="Script" path="res://src/interactable.ts" id="3_dt0nx"]
[ext_resource type="Script" path="res://src/interactable/door.ts" id="3_imxmk"]
[ext_resource type="Resource" uid="uid://5odv3n0dp2nn" path="res://resources/items/key.tres" id="4_3rynd"]
[ext_resource type="Script" path="res://src/item_pickup.ts" id="6_qe67v"]
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_y41n8"]
@ -10,6 +13,13 @@
[sub_resource type="BoxShape3D" id="BoxShape3D_y1mmm"]
[sub_resource type="SphereMesh" id="SphereMesh_bketi"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_odc30"]
albedo_color = Color(1, 0, 0, 1)
[sub_resource type="SphereShape3D" id="SphereShape3D_v25bj"]
[node name="Node3D" type="Node3D"]
[node name="level" parent="." instance=ExtResource("2_i3oty")]
@ -30,15 +40,51 @@ far = 50.0
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 9, 0)
[node name="Node3D" type="Node3D" parent="."]
[node name="Door" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 1, 0)
script = ExtResource("3_imxmk")
locked = true
requires_key = true
key_item = ExtResource("4_3rynd")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Node3D"]
[node name="MeshInstance3D" type="MeshInstance3D" parent="Door"]
mesh = SubResource("BoxMesh_crnh0")
[node name="Interactable" type="Area3D" parent="Node3D"]
[node name="Interactable" type="Area3D" parent="Door"]
monitoring = false
script = ExtResource("3_dt0nx")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Node3D/Interactable"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Door/Interactable"]
shape = SubResource("BoxShape3D_y1mmm")
[node name="Label3D" type="Label3D" parent="Door"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
billboard = 1
text = "door"
font_size = 128
outline_size = 32
[node name="Node3D" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -5)
script = ExtResource("6_qe67v")
resource = ExtResource("4_3rynd")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Node3D"]
mesh = SubResource("SphereMesh_bketi")
surface_material_override/0 = SubResource("StandardMaterial3D_odc30")
[node name="Area3D" type="Area3D" parent="Node3D"]
script = ExtResource("3_dt0nx")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Node3D/Area3D"]
shape = SubResource("SphereShape3D_v25bj")
[node name="Label3D" type="Label3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
billboard = 1
text = "door key"
font_size = 128
outline_size = 32
[connection signal="interacted" from="Door/Interactable" to="Door" method="open"]
[connection signal="interacted" from="Node3D/Area3D" to="Node3D" method="add_to_inventory"]

View file

@ -1,16 +1,23 @@
[gd_scene load_steps=17 format=3 uid="uid://cersx8w4ps2sr"]
[gd_scene load_steps=24 format=3 uid="uid://cersx8w4ps2sr"]
[ext_resource type="PackedScene" uid="uid://cyfbte21rykqr" path="res://scenes/player_mesh.tscn" id="2_0u3o5"]
[ext_resource type="Script" path="res://src/player.ts" id="2_pdrhn"]
[ext_resource type="PackedScene" uid="uid://b1vb3py5av0e3" path="res://scenes/player_mesh2.tscn" id="2_rje1f"]
[ext_resource type="Script" path="res://src/player_animation.ts" id="3_26yay"]
[ext_resource type="Script" path="res://src/player_input.ts" id="3_x6527"]
[ext_resource type="Script" path="res://src/interactor.ts" id="5_uk7c1"]
[ext_resource type="Script" path="res://src/inventory.ts" id="6_jscba"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1kx10"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vilbe"]
animation = &"Idle"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_kjlhm"]
animation = &"PistolIdle"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_84wxe"]
animation = &"Shooting"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_d7cro"]
animation = &"SlowRun"
@ -48,14 +55,36 @@ switch_mode = 1
advance_mode = 2
advance_expression = "not velocity"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_h1vpo"]
xfade_time = 0.3
advance_mode = 2
advance_expression = "is_aiming()"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_wqng5"]
xfade_time = 0.3
advance_mode = 2
advance_expression = "not is_aiming()"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_n5lxw"]
advance_mode = 2
advance_expression = "is_shooting()"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_3tstq"]
switch_mode = 2
advance_mode = 2
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_8s3qg"]
states/Idle/node = SubResource("AnimationNodeAnimation_vilbe")
states/Idle/position = Vector2(311, 100)
states/PistolIdle/node = SubResource("AnimationNodeAnimation_kjlhm")
states/PistolIdle/position = Vector2(311, 207)
states/Shooting/node = SubResource("AnimationNodeAnimation_84wxe")
states/Shooting/position = Vector2(454, 207)
states/SlowRun/node = SubResource("AnimationNodeAnimation_d7cro")
states/SlowRun/position = Vector2(572, 100)
states/Walking/node = SubResource("AnimationNodeAnimation_w5ck1")
states/Walking/position = Vector2(434, 100)
transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition_twhp3"), "Idle", "Walking", SubResource("AnimationNodeStateMachineTransition_p6dv3"), "Walking", "SlowRun", SubResource("AnimationNodeStateMachineTransition_xh0w6"), "SlowRun", "Walking", SubResource("AnimationNodeStateMachineTransition_vse2m"), "Walking", "Idle", SubResource("AnimationNodeStateMachineTransition_yh7m2")]
transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition_twhp3"), "Idle", "Walking", SubResource("AnimationNodeStateMachineTransition_p6dv3"), "Walking", "SlowRun", SubResource("AnimationNodeStateMachineTransition_xh0w6"), "SlowRun", "Walking", SubResource("AnimationNodeStateMachineTransition_vse2m"), "Walking", "Idle", SubResource("AnimationNodeStateMachineTransition_yh7m2"), "Idle", "PistolIdle", SubResource("AnimationNodeStateMachineTransition_h1vpo"), "PistolIdle", "Idle", SubResource("AnimationNodeStateMachineTransition_wqng5"), "PistolIdle", "Shooting", SubResource("AnimationNodeStateMachineTransition_n5lxw"), "Shooting", "PistolIdle", SubResource("AnimationNodeStateMachineTransition_3tstq")]
graph_offset = Vector2(155, -1)
[sub_resource type="SphereShape3D" id="SphereShape3D_64co4"]
@ -67,154 +96,158 @@ script = ExtResource("2_pdrhn")
transform = Transform3D(1.25, 0, 0, 0, 1.25, 0, 0, 0, 1.25, 0, 1.25, 0)
shape = SubResource("CapsuleShape3D_1kx10")
[node name="Mesh" parent="." instance=ExtResource("2_0u3o5")]
[node name="PlayerMesh" parent="." instance=ExtResource("2_rje1f")]
[node name="Skeleton3D" parent="Mesh/Armature" index="0"]
bones/0/position = Vector3(0.00289948, 100.861, 1.26735)
bones/0/rotation = Quaternion(-0.0244499, -0.0264677, -0.0879678, 0.995471)
bones/1/position = Vector3(-1.08778e-06, 8.00974e-08, -5.45755e-07)
bones/2/rotation = Quaternion(-0.109938, -0.0139449, 0.0898347, 0.989772)
bones/3/position = Vector3(1.2666e-07, 1.38208e-06, 4.63426e-06)
bones/4/rotation = Quaternion(0.018758, -0.00338616, 0.0225337, 0.999564)
bones/5/position = Vector3(-8.19564e-07, -1.46851e-05, 4.30644e-06)
bones/6/rotation = Quaternion(0.0319564, -0.00485405, 0.0217667, 0.99924)
bones/7/position = Vector3(3.57632e-07, -2.42144e-05, -3.53158e-06)
bones/8/rotation = Quaternion(-0.580392, 0.491768, -0.548909, -0.346422)
bones/9/position = Vector3(1.93715e-07, -8.76188e-06, -1.82156e-05)
bones/10/position = Vector3(-2.22259e-06, 10.8382, 6.657e-05)
bones/10/rotation = Quaternion(0.45809, -0.121747, -0.0824416, 0.876661)
bones/11/position = Vector3(1.66958e-06, -2.30764e-05, 5.90135e-07)
bones/12/rotation = Quaternion(8.23363e-08, -4.68609e-08, -0.245739, 0.969336)
bones/13/position = Vector3(7.10815e-06, 2.49848e-06, -3.67706e-07)
bones/14/position = Vector3(1.00884e-05, 28.3289, 1.42043e-06)
bones/14/rotation = Quaternion(0.014645, -0.137758, -0.00643952, 0.990337)
bones/15/position = Vector3(1.43223e-06, -9.47448e-06, -3.04991e-06)
bones/16/rotation = Quaternion(0.160255, 0.000143802, 0.0186451, 0.9869)
bones/17/position = Vector3(2.78027e-07, -1.63051e-05, 2.7709e-07)
bones/18/position = Vector3(-7.17311e-07, 3.6, -4.46059e-05)
bones/18/rotation = Quaternion(0.155034, -1.66765e-07, 0.0188948, 0.987729)
bones/19/position = Vector3(-1.09796e-06, -1.6639e-05, -1.30592e-05)
bones/20/rotation = Quaternion(0.220887, 2.16033e-08, 0.0269202, 0.974928)
bones/21/position = Vector3(-3.42208e-06, -3.57069e-06, -7.88492e-06)
bones/22/position = Vector3(-2.66578e-06, 2.11579, -6.80612e-06)
bones/23/position = Vector3(1.99676e-06, 2.3176e-06, 1.13522e-06)
bones/24/position = Vector3(-2.81929e-05, 9.5325, 4.46934e-05)
bones/24/rotation = Quaternion(0.14289, 0.00156384, 0.00648316, 0.989716)
bones/25/position = Vector3(-2.64221e-06, 1.33002e-05, 9.27813e-06)
bones/26/position = Vector3(-3.12982e-06, 3.70001, -1.88553e-05)
bones/26/rotation = Quaternion(0.156567, -1.04364e-07, 0.0190816, 0.987483)
bones/27/position = Vector3(4.8121e-06, -1.06792e-05, -1.50226e-05)
bones/28/position = Vector3(3.86115e-06, 2.95001, -1.38305e-05)
bones/28/rotation = Quaternion(0.271732, 0.0239403, 0.0400047, 0.961243)
bones/31/position = Vector3(1.86637e-06, 5.9802e-06, -1.467e-05)
bones/32/rotation = Quaternion(0.203925, 0.00114676, 0.0193327, 0.978795)
bones/33/position = Vector3(-2.25109e-06, -9.16777e-06, 1.35742e-05)
bones/34/position = Vector3(-1.61634e-06, 3.37927, -2.16157e-06)
bones/34/rotation = Quaternion(0.123071, -4.23026e-08, 0.0149991, 0.992285)
bones/36/position = Vector3(-1.34902e-06, 2.88968, 1.45266e-05)
bones/36/rotation = Quaternion(0.193011, 0.101139, 0.0441025, 0.974973)
bones/37/position = Vector3(7.45909e-07, -8.48482e-06, 1.51202e-05)
bones/38/position = Vector3(-7.0702e-07, 2.63882, -1.46823e-05)
bones/39/position = Vector3(-4.24683e-07, -3.16713e-06, -1.23643e-05)
bones/40/position = Vector3(2.25983, 9.10828, 0.517866)
bones/40/rotation = Quaternion(0.208794, -0.00164783, 0.0331266, 0.977397)
bones/41/position = Vector3(5.8333e-07, 6.3235e-07, 1.57826e-05)
bones/42/rotation = Quaternion(0.10675, -1.37934e-07, 0.0130101, 0.994201)
bones/43/position = Vector3(-1.30539e-06, 1.28774e-05, 4.90486e-08)
bones/44/rotation = Quaternion(0.181155, 2.82432e-08, 0.022078, 0.983207)
bones/45/position = Vector3(-2.28086e-07, -1.45823e-06, -4.29744e-07)
[node name="Skeleton3D" parent="PlayerMesh/Scene/Armature" index="0"]
bones/0/position = Vector3(0.17945, 104.41, 0.110052)
bones/0/rotation = Quaternion(-0.0406521, -0.0416971, -0.0129259, 0.998219)
bones/1/position = Vector3(5.96109e-08, -7.79423e-06, 8.06525e-07)
bones/2/rotation = Quaternion(-0.0597369, 0.00111039, 0.00642272, 0.998193)
bones/3/position = Vector3(-2.98023e-07, -1.34446e-05, 2.14577e-06)
bones/4/rotation = Quaternion(0.0409263, 0.00151155, 0.0114956, 0.999095)
bones/5/position = Vector3(1.63912e-07, 2.08151e-07, 3.01749e-07)
bones/6/rotation = Quaternion(0.0537973, 0.00165954, 0.0114752, 0.998485)
bones/7/position = Vector3(-5.96042e-07, -2.79844e-05, -6.33299e-07)
bones/8/rotation = Quaternion(0.561827, -0.587188, 0.4308, 0.392392)
bones/9/position = Vector3(1.63913e-06, -1.72853e-06, 2.13917e-05)
bones/10/position = Vector3(2.77566e-06, 10.8382, 6.21936e-05)
bones/10/rotation = Quaternion(0.546062, -0.128743, -0.247847, 0.789819)
bones/11/position = Vector3(-3.33721e-06, -2.59971e-05, -4.23144e-07)
bones/12/rotation = Quaternion(-1.44821e-07, 1.29284e-07, -0.269901, 0.962888)
bones/13/position = Vector3(4.32435e-07, 3.89919e-06, 7.05178e-07)
bones/14/position = Vector3(7.82341e-06, 28.3288, -1.32138e-06)
bones/14/rotation = Quaternion(-0.111071, -0.0606597, 0.117823, 0.984937)
bones/15/position = Vector3(1.78986e-06, 7.87047e-06, 1.65885e-06)
bones/16/rotation = Quaternion(0.410799, 0.0410545, -0.0191872, 0.910599)
bones/17/position = Vector3(5.01544e-07, -6.299e-06, 3.963e-07)
bones/18/position = Vector3(-4.8526e-07, 3.60001, -4.86888e-05)
bones/18/rotation = Quaternion(0.53131, 0.0228324, -0.106782, 0.840111)
bones/19/position = Vector3(3.32548e-07, -8.41357e-06, -2.27747e-05)
bones/20/rotation = Quaternion(-4.9514e-08, 5.57123e-08, -1.76427e-07, 1)
bones/21/position = Vector3(-1.54454e-06, -7.68341e-06, -8.74918e-06)
bones/22/position = Vector3(-8.60441e-07, 2.11579, -1.07681e-05)
bones/23/position = Vector3(-2.92063e-06, 7.30623e-07, -3.37238e-06)
bones/24/position = Vector3(-2.72793e-05, 9.53252, 4.71968e-05)
bones/24/rotation = Quaternion(0.339952, 0.0300464, 0.0273285, 0.939565)
bones/25/position = Vector3(-9.73276e-07, 9.30667e-06, 1.7444e-05)
bones/26/position = Vector3(-2.40773e-06, 3.70001, -1.51598e-05)
bones/26/rotation = Quaternion(0.430758, 0.165335, 0.0714135, 0.884314)
bones/27/position = Vector3(2.42792e-06, -5.07634e-06, -1.79432e-05)
bones/28/position = Vector3(5.23295e-07, 2.95001, -1.36814e-05)
bones/28/rotation = Quaternion(3.76456e-09, -9.34081e-09, -3.22034e-08, 1)
bones/31/position = Vector3(6.74278e-07, 1.0987e-05, -1.06914e-05)
bones/32/rotation = Quaternion(0.367356, 0.012829, -0.0137641, 0.92989)
bones/33/position = Vector3(-2.16168e-06, -9.28698e-06, 1.61968e-05)
bones/34/position = Vector3(-2.08148e-06, 3.37928, -2.75762e-06)
bones/34/rotation = Quaternion(0.435237, 0.0202325, -0.0616527, 0.897975)
bones/36/position = Vector3(5.32687e-06, 2.88968, 1.89373e-05)
bones/36/rotation = Quaternion(6.7077e-08, 6.14505e-08, -1.0756e-07, 1)
bones/37/position = Vector3(1.10354e-06, -4.4019e-06, 1.37493e-05)
bones/38/position = Vector3(-1.83442e-06, 2.63883, -1.48906e-05)
bones/39/position = Vector3(-4.24683e-07, 1.03333e-05, -2.27057e-05)
bones/40/position = Vector3(2.25983, 9.1083, 0.517871)
bones/40/rotation = Quaternion(0.230758, 0.0232, 0.0553016, 0.971161)
bones/41/position = Vector3(-1.50283e-06, -3.18235e-06, 1.64979e-05)
bones/42/rotation = Quaternion(0.345931, -0.0275399, 0.00615904, 0.937835)
bones/43/position = Vector3(2.44329e-07, 8.88386e-06, -6.62667e-06)
bones/44/rotation = Quaternion(7.46085e-09, -1.39777e-08, -2.75613e-08, 1)
bones/45/position = Vector3(-4.96307e-07, 1.11183e-05, 2.6697e-06)
bones/48/position = Vector3(2.68185, 2.4648, 1.57399)
bones/48/rotation = Quaternion(0.123855, 0.0615792, -0.158218, 0.977668)
bones/49/position = Vector3(-3.57628e-06, -1.16825e-05, 6.73833e-06)
bones/50/position = Vector3(-7.17277e-06, 4.18897, 1.07578e-06)
bones/50/rotation = Quaternion(-0.0658568, 0.0352429, 0.20427, 0.976061)
bones/52/position = Vector3(-8.77766e-06, 3.41628, -4.79003e-06)
bones/52/rotation = Quaternion(0.020006, -0.00218171, -0.0319489, 0.999287)
bones/53/position = Vector3(-3.03984e-06, 2.01762e-05, -1.93187e-06)
bones/56/rotation = Quaternion(0.0426809, 0.00409768, -0.0515628, 0.997749)
bones/57/position = Vector3(1.19211e-07, -2.28947e-05, -3.36394e-06)
bones/58/rotation = Quaternion(-0.0950997, -0.0140778, 0.00690302, 0.995344)
bones/59/position = Vector3(-1.0431e-07, -1.54506e-05, -1.49384e-06)
bones/61/rotation = Quaternion(0.580092, 0.493797, -0.538984, 0.35938)
bones/62/position = Vector3(5.96046e-08, -6.10948e-07, -7.88433e-06)
bones/63/position = Vector3(3.42725e-07, 10.8377, 3.26269e-05)
bones/63/rotation = Quaternion(0.575548, 0.0681971, 0.0612369, 0.812616)
bones/64/position = Vector3(2.4772e-06, 1.24322e-06, 3.17702e-06)
bones/65/position = Vector3(7.81477e-06, 27.8415, 3.26074e-05)
bones/65/rotation = Quaternion(1.45869e-07, -1.74771e-07, 0.187347, 0.982294)
bones/66/position = Vector3(-3.25318e-06, -4.67625e-06, -1.50252e-06)
bones/67/rotation = Quaternion(0.0649669, 0.17139, 0.0446918, 0.982042)
bones/68/position = Vector3(7.47968e-08, -6.91227e-07, -2.51579e-06)
bones/69/rotation = Quaternion(0.124716, -0.0706003, 0.12224, 0.982099)
bones/70/position = Vector3(1.18017e-05, 1.18017e-05, 1.03254e-05)
bones/71/position = Vector3(-7.12144e-07, 4.18709, 2.40078e-06)
bones/71/rotation = Quaternion(-0.0113373, 0.00316211, -0.0953233, 0.995377)
bones/72/position = Vector3(5.48363e-06, -9.44734e-06, -1.48937e-05)
bones/73/position = Vector3(-6.19066e-06, 3.41839, -3.25305e-05)
bones/73/rotation = Quaternion(-0.0550551, -0.0920655, -0.0310965, 0.993743)
bones/74/position = Vector3(3.75509e-06, 1.69277e-05, 9.12723e-07)
bones/75/position = Vector3(2.59013e-06, 2.5806, 1.43079e-06)
bones/77/rotation = Quaternion(0.137069, -0.00188298, -0.00277138, 0.990556)
bones/78/position = Vector3(2.34035e-07, 6.61208e-07, -1.22018e-06)
bones/79/position = Vector3(-2.66701e-07, 3.7, -4.303e-07)
bones/79/rotation = Quaternion(0.166772, -2.34506e-07, -0.0201262, 0.98579)
bones/80/position = Vector3(-3.04282e-06, -2.24161e-06, -1.52532e-05)
bones/81/rotation = Quaternion(0.22072, -2.87607e-07, -0.0266367, 0.974973)
bones/84/position = Vector3(-1.56742e-06, -5.37828e-06, 1.60567e-05)
bones/85/rotation = Quaternion(0.0854835, -0.000807518, -0.000812654, 0.996339)
bones/86/position = Vector3(-2.09158e-07, 7.10476e-06, -1.37234e-05)
bones/87/rotation = Quaternion(0.174826, -2.14469e-07, -0.021098, 0.984373)
bones/88/position = Vector3(-1.44259e-06, -2.81852e-06, -1.08586e-06)
bones/89/rotation = Quaternion(0.217704, -3.39905e-07, -0.0262725, 0.975661)
bones/90/position = Vector3(-1.67251e-06, -5.69229e-06, 4.16067e-06)
bones/92/position = Vector3(-2.07638e-06, -8.50701e-06, 1.83102e-06)
bones/93/rotation = Quaternion(0.143233, -0.000851651, -0.0113733, 0.989623)
bones/94/position = Vector3(-1.24702e-06, -4.42364e-06, 5.52884e-07)
bones/95/rotation = Quaternion(0.17102, -2.88582e-07, -0.0206387, 0.985051)
bones/96/position = Vector3(-2.19045e-06, -7.68091e-06, -2.55365e-06)
bones/97/position = Vector3(1.62425e-06, 2.95, 1.38972e-05)
bones/97/rotation = Quaternion(0.260024, -3.83975e-07, -0.0313798, 0.965092)
bones/98/position = Vector3(-2.69965e-06, -1.43062e-07, 1.26105e-06)
bones/99/position = Vector3(-2.845e-05, 2.64431, 1.98053e-06)
bones/100/position = Vector3(6.57979e-07, -4.74934e-06, 1.44472e-05)
bones/101/position = Vector3(3.80627, 8.07779, 0.486894)
bones/101/rotation = Quaternion(0.149406, 0.00473882, -0.0485855, 0.98757)
bones/102/position = Vector3(-2.33662e-06, 1.08604e-05, 1.6658e-05)
bones/103/rotation = Quaternion(0.185388, 0.00650348, 0.0129359, 0.982559)
bones/104/position = Vector3(1.84285e-06, 5.76279e-06, -1.71906e-05)
bones/105/rotation = Quaternion(0.191951, -2.77327e-07, -0.0231645, 0.981131)
bones/106/position = Vector3(1.48522e-06, -3.60209e-06, 1.44012e-05)
bones/107/position = Vector3(4.3816e-06, 2.12554, -2.07618e-05)
bones/108/position = Vector3(-4.91738e-07, 8.79425e-06, -1.38031e-06)
bones/109/rotation = Quaternion(-0.0738114, 0.0489804, 0.991878, -0.0912707)
bones/110/position = Vector3(-1.06222e-06, 3.19319e-05, -1.56533e-06)
bones/111/rotation = Quaternion(-0.207644, 0.0479112, 0.00270132, 0.977027)
bones/112/position = Vector3(2.91388e-07, 4.25241e-06, -2.20301e-06)
bones/113/rotation = Quaternion(0.540425, -0.0295423, -0.00350192, 0.840866)
bones/115/rotation = Quaternion(0.340084, 3.45659e-05, 1.22099e-05, 0.940395)
bones/119/rotation = Quaternion(0.0580127, 0.138334, 0.982759, -0.108092)
bones/120/position = Vector3(-8.23132e-07, -4.34501e-06, -1.59527e-06)
bones/121/rotation = Quaternion(-0.3299, -0.0711539, 0.0134173, 0.941235)
bones/122/position = Vector3(-6.62286e-07, 6.482e-06, 2.36121e-07)
bones/123/rotation = Quaternion(0.582538, -0.0190267, -0.0186471, 0.812367)
bones/125/rotation = Quaternion(0.323212, 3.84905e-05, 1.41309e-05, 0.946327)
bones/48/rotation = Quaternion(0.253233, 0.0269746, -0.19885, 0.946364)
bones/49/position = Vector3(-4.76836e-07, -4.29153e-06, 8.58607e-06)
bones/50/position = Vector3(-5.36506e-06, 4.18898, 1.80082e-06)
bones/50/rotation = Quaternion(-0.0236439, 0.0331235, 0.0393129, 0.998398)
bones/52/position = Vector3(-8.58953e-06, 3.41627, -3.79061e-06)
bones/52/rotation = Quaternion(1.62159e-06, -0.000806941, 3.60843e-07, 1)
bones/53/position = Vector3(-7.33137e-06, 1.96993e-05, -3.36238e-06)
bones/56/rotation = Quaternion(-0.168671, 0.00146631, -0.00322634, 0.985666)
bones/57/position = Vector3(-1.48998e-08, -1.55101e-05, -2.81259e-07)
bones/58/rotation = Quaternion(0.116994, 0.0330545, -0.00432665, 0.992573)
bones/59/position = Vector3(4.47016e-08, -3.2247e-05, -2.96597e-06)
bones/61/rotation = Quaternion(0.506672, 0.632248, -0.512417, 0.28456)
bones/62/position = Vector3(-2.02656e-06, -3.57628e-07, -4.18441e-05)
bones/63/position = Vector3(7.15469e-08, 10.8377, 1.51746e-05)
bones/63/rotation = Quaternion(0.502967, 0.244286, 0.329048, 0.76097)
bones/64/position = Vector3(3.60969e-06, 1.52503e-05, 4.33931e-06)
bones/65/position = Vector3(6.08624e-06, 27.8415, 3.61837e-05)
bones/65/rotation = Quaternion(1.00117e-07, -9.33561e-08, 0.240972, 0.970532)
bones/66/position = Vector3(1.5152e-06, 5.09353e-07, 1.06806e-07)
bones/67/rotation = Quaternion(-0.124955, -0.15428, -0.118697, 0.97288)
bones/68/position = Vector3(-1.47492e-06, 9.18099e-07, 8.22066e-07)
bones/69/rotation = Quaternion(0.223335, 0.00464231, 0.100994, 0.969485)
bones/70/position = Vector3(3.93391e-06, -3.12924e-06, 1.2352e-05)
bones/71/position = Vector3(-7.3569e-06, 4.18708, 3.80831e-06)
bones/71/rotation = Quaternion(-0.017028, -0.0337403, -0.0322282, 0.998766)
bones/72/position = Vector3(5.96047e-08, -1.01924e-05, -1.82316e-05)
bones/73/position = Vector3(-7.20031e-06, 3.41838, -3.40019e-05)
bones/73/rotation = Quaternion(-2.43768e-06, 0.000745857, 5.4902e-07, 1)
bones/74/position = Vector3(-3.96371e-06, -8.34465e-06, 1.30411e-07)
bones/75/position = Vector3(-3.2532e-06, 2.58059, 3.56767e-06)
bones/77/rotation = Quaternion(0.329022, -0.00440169, -0.0369186, 0.94359)
bones/78/position = Vector3(4.72453e-07, -1.04497e-06, 3.59342e-07)
bones/79/position = Vector3(-2.66038e-07, 3.7, 8.95903e-07)
bones/79/rotation = Quaternion(0.28229, 0.0283846, 0.000264906, 0.958909)
bones/80/position = Vector3(-1.96994e-06, 1.6327e-06, -1.63261e-05)
bones/81/rotation = Quaternion(-3.65055e-07, -4.16772e-09, -6.83649e-08, 1)
bones/84/position = Vector3(-4.94532e-07, -1.87893e-05, 1.52819e-05)
bones/85/rotation = Quaternion(0.331909, -0.019802, -0.0105555, 0.943044)
bones/86/position = Vector3(-2.09158e-07, -2.31277e-06, -1.46174e-05)
bones/87/rotation = Quaternion(0.403889, -0.00181236, 0.0290873, 0.914344)
bones/88/position = Vector3(2.26344e-07, -5.1729e-06, -4.39392e-06)
bones/89/rotation = Quaternion(4.04652e-07, 8.72496e-12, 6.58802e-08, 1)
bones/90/position = Vector3(-2.41998e-07, -4.32138e-06, -4.24358e-06)
bones/92/position = Vector3(3.67407e-07, 1.44696e-06, -5.79837e-06)
bones/93/rotation = Quaternion(0.331827, -0.0487858, 0.034802, 0.941435)
bones/94/position = Vector3(1.83496e-07, -1.69704e-05, -3.62689e-06)
bones/95/rotation = Quaternion(0.547972, -0.0207689, 0.058348, 0.834201)
bones/96/position = Vector3(-6.40724e-07, 1.08097e-06, 1.03508e-05)
bones/97/position = Vector3(1.86266e-06, 2.95, 2.9305e-05)
bones/97/rotation = Quaternion(-1.44502e-15, 1.80445e-09, -3.60028e-08, 1)
bones/98/position = Vector3(7.57416e-07, -2.73586e-06, -1.18274e-06)
bones/99/position = Vector3(-2.38102e-05, 2.64431, -7.72471e-06)
bones/100/position = Vector3(-1.36858e-06, -8.86206e-06, 9.053e-06)
bones/101/position = Vector3(3.80626, 8.0778, 0.486895)
bones/101/rotation = Quaternion(0.379958, -0.0550092, 0.0382487, 0.922574)
bones/102/position = Vector3(-1.08492e-06, 2.92186e-05, 1.50487e-05)
bones/103/rotation = Quaternion(0.582059, -0.0103286, 0.0735094, 0.809751)
bones/104/position = Vector3(-1.73342e-06, -1.47918e-06, -2.0886e-05)
bones/105/rotation = Quaternion(-5.4723e-08, -3.14058e-09, 1.77999e-07, 1)
bones/106/position = Vector3(8.89177e-07, -7.90852e-06, 1.76198e-05)
bones/107/position = Vector3(2.5899e-06, 2.12554, 9.70504e-08)
bones/108/position = Vector3(8.49366e-07, 5.665e-06, 3.62648e-06)
bones/109/rotation = Quaternion(-0.036333, 0.0217706, 0.999101, 0.00199951)
bones/110/position = Vector3(-1.3528e-06, 3.43757e-05, -4.54129e-08)
bones/111/rotation = Quaternion(-0.143928, 0.000177422, 0.00374932, 0.989581)
bones/112/position = Vector3(-4.23869e-07, 1.24792e-07, 6.58015e-07)
bones/113/rotation = Quaternion(0.495013, 0.131615, -0.0439782, 0.857732)
bones/115/rotation = Quaternion(0.335413, 0.00425432, -0.000217396, 0.942062)
bones/119/rotation = Quaternion(0.119179, 0.0314785, 0.992322, -0.0101509)
bones/120/position = Vector3(8.86776e-07, -4.30776e-06, 1.57868e-06)
bones/121/rotation = Quaternion(-0.0940526, 0.000144511, -0.0022175, 0.995565)
bones/122/position = Vector3(-8.41099e-07, -1.2368e-06, 3.5533e-07)
bones/123/rotation = Quaternion(0.451014, 0.00101661, 0.0176655, 0.892342)
bones/125/rotation = Quaternion(0.335216, 0.000625836, -1.98777e-05, 0.942141)
[node name="Input" type="Node3D" parent="."]
script = ExtResource("3_x6527")
min_range = 0.5
[node name="AnimationTree" type="AnimationTree" parent="."]
root_node = NodePath("../Mesh")
root_node = NodePath("../PlayerMesh")
tree_root = SubResource("AnimationNodeStateMachine_8s3qg")
advance_expression_base_node = NodePath("..")
anim_player = NodePath("../Mesh/AnimationPlayer")
anim_player = NodePath("../PlayerMesh/AnimationPlayer")
script = ExtResource("3_26yay")
[node name="Interactor" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 1)
script = ExtResource("5_uk7c1")
_root_node = NodePath("..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Interactor"]
shape = SubResource("SphereShape3D_64co4")
[editable path="Mesh"]
[node name="Inventory" type="Node" parent="."]
script = ExtResource("6_jscba")
[editable path="PlayerMesh"]

181
scenes/player_mesh2.tscn Normal file
View file

@ -0,0 +1,181 @@
[gd_scene load_steps=2 format=3 uid="uid://b1vb3py5av0e3"]
[ext_resource type="PackedScene" uid="uid://05nocsdvnsy5" path="res://assets/player2.glb" id="1_5mcnn"]
[node name="PlayerMesh" instance=ExtResource("1_5mcnn")]
[node name="Skeleton3D" parent="Scene/Armature" index="0"]
bones/0/position = Vector3(0.17945, 104.41, 0.110052)
bones/0/rotation = Quaternion(-0.0406521, -0.0416971, -0.0129259, 0.998219)
bones/0/scale = Vector3(1, 1, 1)
bones/1/position = Vector3(5.96109e-08, -7.79423e-06, 8.06525e-07)
bones/2/rotation = Quaternion(-0.0597369, 0.00111039, 0.00642272, 0.998193)
bones/2/scale = Vector3(1, 1, 1)
bones/3/position = Vector3(-2.98023e-07, -1.34446e-05, 2.14577e-06)
bones/4/rotation = Quaternion(0.0409263, 0.00151155, 0.0114956, 0.999095)
bones/4/scale = Vector3(1, 1, 1)
bones/5/position = Vector3(1.63912e-07, 2.08151e-07, 3.01749e-07)
bones/6/rotation = Quaternion(0.0537973, 0.00165954, 0.0114752, 0.998485)
bones/6/scale = Vector3(1, 1, 1)
bones/7/position = Vector3(-5.96042e-07, -2.79844e-05, -6.33299e-07)
bones/8/rotation = Quaternion(0.561827, -0.587188, 0.4308, 0.392392)
bones/8/scale = Vector3(1, 1, 1)
bones/9/position = Vector3(1.63913e-06, -1.72853e-06, 2.13917e-05)
bones/10/position = Vector3(2.77566e-06, 10.8382, 6.21936e-05)
bones/10/rotation = Quaternion(0.546062, -0.128743, -0.247847, 0.789819)
bones/10/scale = Vector3(1, 1, 1)
bones/11/position = Vector3(-3.33721e-06, -2.59971e-05, -4.23144e-07)
bones/12/rotation = Quaternion(-1.44821e-07, 1.29284e-07, -0.269901, 0.962888)
bones/13/position = Vector3(4.32435e-07, 3.89919e-06, 7.05178e-07)
bones/14/position = Vector3(7.82341e-06, 28.3288, -1.32138e-06)
bones/14/rotation = Quaternion(-0.111071, -0.0606597, 0.117823, 0.984937)
bones/14/scale = Vector3(1, 1, 1)
bones/15/position = Vector3(1.78986e-06, 7.87047e-06, 1.65885e-06)
bones/16/rotation = Quaternion(0.410799, 0.0410545, -0.0191872, 0.910599)
bones/16/scale = Vector3(1, 1, 1)
bones/17/position = Vector3(5.01544e-07, -6.299e-06, 3.963e-07)
bones/18/position = Vector3(-4.8526e-07, 3.60001, -4.86888e-05)
bones/18/rotation = Quaternion(0.53131, 0.0228324, -0.106782, 0.840111)
bones/18/scale = Vector3(1, 1, 1)
bones/19/position = Vector3(3.32548e-07, -8.41357e-06, -2.27747e-05)
bones/20/rotation = Quaternion(-4.9514e-08, 5.57123e-08, -1.76427e-07, 1)
bones/21/position = Vector3(-1.54454e-06, -7.68341e-06, -8.74918e-06)
bones/22/position = Vector3(-8.60441e-07, 2.11579, -1.07681e-05)
bones/22/rotation = Quaternion(6.43738e-08, 0.00156918, -4.10172e-05, 0.999999)
bones/22/scale = Vector3(1, 1, 1)
bones/23/position = Vector3(-2.92063e-06, 7.30623e-07, -3.37238e-06)
bones/24/position = Vector3(-2.72793e-05, 9.53252, 4.71968e-05)
bones/24/rotation = Quaternion(0.339952, 0.0300464, 0.0273285, 0.939565)
bones/24/scale = Vector3(1, 1, 1)
bones/25/position = Vector3(-9.73276e-07, 9.30667e-06, 1.7444e-05)
bones/26/position = Vector3(-2.40773e-06, 3.70001, -1.51598e-05)
bones/26/rotation = Quaternion(0.430758, 0.165335, 0.0714135, 0.884314)
bones/27/position = Vector3(2.42792e-06, -5.07634e-06, -1.79432e-05)
bones/28/position = Vector3(5.23295e-07, 2.95001, -1.36814e-05)
bones/28/rotation = Quaternion(3.76456e-09, -9.34081e-09, -3.22034e-08, 1)
bones/30/rotation = Quaternion(-1.54606e-07, 0.000928791, 0.000166436, 1)
bones/31/position = Vector3(6.74278e-07, 1.0987e-05, -1.06914e-05)
bones/32/rotation = Quaternion(0.367356, 0.012829, -0.0137641, 0.92989)
bones/33/position = Vector3(-2.16168e-06, -9.28698e-06, 1.61968e-05)
bones/34/position = Vector3(-2.08148e-06, 3.37928, -2.75762e-06)
bones/34/rotation = Quaternion(0.435237, 0.0202325, -0.0616527, 0.897975)
bones/34/scale = Vector3(1, 1, 1)
bones/36/position = Vector3(5.32687e-06, 2.88968, 1.89373e-05)
bones/36/rotation = Quaternion(6.7077e-08, 6.14505e-08, -1.0756e-07, 1)
bones/37/position = Vector3(1.10354e-06, -4.4019e-06, 1.37493e-05)
bones/38/position = Vector3(-1.83442e-06, 2.63883, -1.48906e-05)
bones/38/rotation = Quaternion(1.16653e-07, 0.000145825, -0.00079924, 1)
bones/38/scale = Vector3(1, 1, 1)
bones/39/position = Vector3(-4.24683e-07, 1.03333e-05, -2.27057e-05)
bones/40/position = Vector3(2.25983, 9.1083, 0.517871)
bones/40/rotation = Quaternion(0.230758, 0.0232, 0.0553016, 0.971161)
bones/40/scale = Vector3(1, 1, 1)
bones/41/position = Vector3(-1.50283e-06, -3.18235e-06, 1.64979e-05)
bones/42/rotation = Quaternion(0.345931, -0.0275399, 0.00615904, 0.937835)
bones/43/position = Vector3(2.44329e-07, 8.88386e-06, -6.62667e-06)
bones/44/rotation = Quaternion(7.46085e-09, -1.39777e-08, -2.75613e-08, 1)
bones/45/position = Vector3(-4.96307e-07, 1.11183e-05, 2.6697e-06)
bones/46/rotation = Quaternion(-8.72723e-08, 0.00100258, 8.70361e-05, 0.999999)
bones/46/scale = Vector3(1, 1, 1)
bones/48/position = Vector3(2.68185, 2.4648, 1.57399)
bones/48/rotation = Quaternion(0.253233, 0.0269746, -0.19885, 0.946364)
bones/48/scale = Vector3(1, 1, 1)
bones/49/position = Vector3(-4.76836e-07, -4.29153e-06, 8.58607e-06)
bones/50/position = Vector3(-5.36506e-06, 4.18898, 1.80082e-06)
bones/50/rotation = Quaternion(-0.0236439, 0.0331235, 0.0393129, 0.998398)
bones/50/scale = Vector3(1, 1, 1)
bones/52/position = Vector3(-8.58953e-06, 3.41627, -3.79061e-06)
bones/52/rotation = Quaternion(1.62159e-06, -0.000806941, 3.60843e-07, 1)
bones/53/position = Vector3(-7.33137e-06, 1.96993e-05, -3.36238e-06)
bones/54/rotation = Quaternion(0.00577409, -0.11751, -0.0487441, 0.991858)
bones/56/rotation = Quaternion(-0.168671, 0.00146631, -0.00322634, 0.985666)
bones/56/scale = Vector3(1, 1, 1)
bones/57/position = Vector3(-1.48998e-08, -1.55101e-05, -2.81259e-07)
bones/58/rotation = Quaternion(0.116994, 0.0330545, -0.00432665, 0.992573)
bones/59/position = Vector3(4.47016e-08, -3.2247e-05, -2.96597e-06)
bones/60/rotation = Quaternion(3.91155e-08, 3.7787e-08, 2.9976e-15, 1)
bones/61/rotation = Quaternion(0.506672, 0.632248, -0.512417, 0.28456)
bones/61/scale = Vector3(1, 1, 1)
bones/62/position = Vector3(-2.02656e-06, -3.57628e-07, -4.18441e-05)
bones/63/position = Vector3(7.15469e-08, 10.8377, 1.51746e-05)
bones/63/rotation = Quaternion(0.502967, 0.244286, 0.329048, 0.76097)
bones/64/position = Vector3(3.60969e-06, 1.52503e-05, 4.33931e-06)
bones/65/position = Vector3(6.08624e-06, 27.8415, 3.61837e-05)
bones/65/rotation = Quaternion(1.00117e-07, -9.33561e-08, 0.240972, 0.970532)
bones/66/position = Vector3(1.5152e-06, 5.09353e-07, 1.06806e-07)
bones/67/rotation = Quaternion(-0.124955, -0.15428, -0.118697, 0.97288)
bones/68/position = Vector3(-1.47492e-06, 9.18099e-07, 8.22066e-07)
bones/69/rotation = Quaternion(0.223335, 0.00464231, 0.100994, 0.969485)
bones/69/scale = Vector3(1, 1, 1)
bones/70/position = Vector3(3.93391e-06, -3.12924e-06, 1.2352e-05)
bones/71/position = Vector3(-7.3569e-06, 4.18708, 3.80831e-06)
bones/71/rotation = Quaternion(-0.017028, -0.0337403, -0.0322282, 0.998766)
bones/72/position = Vector3(5.96047e-08, -1.01924e-05, -1.82316e-05)
bones/73/position = Vector3(-7.20031e-06, 3.41838, -3.40019e-05)
bones/73/rotation = Quaternion(-2.43768e-06, 0.000745857, 5.4902e-07, 1)
bones/73/scale = Vector3(1, 1, 1)
bones/74/position = Vector3(-3.96371e-06, -8.34465e-06, 1.30411e-07)
bones/75/position = Vector3(-3.2532e-06, 2.58059, 3.56767e-06)
bones/75/rotation = Quaternion(0.0051477, 0.122682, 0.041651, 0.991558)
bones/75/scale = Vector3(1, 1, 1)
bones/77/rotation = Quaternion(0.329022, -0.00440169, -0.0369186, 0.94359)
bones/77/scale = Vector3(1, 1, 1)
bones/78/position = Vector3(4.72453e-07, -1.04497e-06, 3.59342e-07)
bones/79/position = Vector3(-2.66038e-07, 3.7, 8.95903e-07)
bones/79/rotation = Quaternion(0.28229, 0.0283846, 0.000264906, 0.958909)
bones/79/scale = Vector3(1, 1, 1)
bones/80/position = Vector3(-1.96994e-06, 1.6327e-06, -1.63261e-05)
bones/81/rotation = Quaternion(-3.65055e-07, -4.16772e-09, -6.83649e-08, 1)
bones/83/rotation = Quaternion(-4.89366e-09, -0.000377568, -1.2974e-05, 1)
bones/84/position = Vector3(-4.94532e-07, -1.87893e-05, 1.52819e-05)
bones/85/rotation = Quaternion(0.331909, -0.019802, -0.0105555, 0.943044)
bones/85/scale = Vector3(1, 1, 1)
bones/86/position = Vector3(-2.09158e-07, -2.31277e-06, -1.46174e-05)
bones/87/rotation = Quaternion(0.403889, -0.00181236, 0.0290873, 0.914344)
bones/87/scale = Vector3(1, 1, 1)
bones/88/position = Vector3(2.26344e-07, -5.1729e-06, -4.39392e-06)
bones/89/rotation = Quaternion(4.04652e-07, 8.72496e-12, 6.58802e-08, 1)
bones/90/position = Vector3(-2.41998e-07, -4.32138e-06, -4.24358e-06)
bones/91/rotation = Quaternion(2.85187e-08, -0.00102416, 2.78559e-05, 0.999999)
bones/92/position = Vector3(3.67407e-07, 1.44696e-06, -5.79837e-06)
bones/93/rotation = Quaternion(0.331827, -0.0487858, 0.034802, 0.941435)
bones/94/position = Vector3(1.83496e-07, -1.69704e-05, -3.62689e-06)
bones/95/rotation = Quaternion(0.547972, -0.0207689, 0.058348, 0.834201)
bones/95/scale = Vector3(1, 1, 1)
bones/96/position = Vector3(-6.40724e-07, 1.08097e-06, 1.03508e-05)
bones/97/position = Vector3(1.86266e-06, 2.95, 2.9305e-05)
bones/97/rotation = Quaternion(-1.44502e-15, 1.80445e-09, -3.60028e-08, 1)
bones/98/position = Vector3(7.57416e-07, -2.73586e-06, -1.18274e-06)
bones/99/position = Vector3(-2.38102e-05, 2.64431, -7.72471e-06)
bones/100/position = Vector3(-1.36858e-06, -8.86206e-06, 9.053e-06)
bones/101/position = Vector3(3.80626, 8.0778, 0.486895)
bones/101/rotation = Quaternion(0.379958, -0.0550092, 0.0382487, 0.922574)
bones/101/scale = Vector3(1, 1, 1)
bones/102/position = Vector3(-1.08492e-06, 2.92186e-05, 1.50487e-05)
bones/103/rotation = Quaternion(0.582059, -0.0103286, 0.0735094, 0.809751)
bones/104/position = Vector3(-1.73342e-06, -1.47918e-06, -2.0886e-05)
bones/105/rotation = Quaternion(-5.4723e-08, -3.14058e-09, 1.77999e-07, 1)
bones/106/position = Vector3(8.89177e-07, -7.90852e-06, 1.76198e-05)
bones/107/position = Vector3(2.5899e-06, 2.12554, 9.70504e-08)
bones/107/rotation = Quaternion(-2.31341e-07, -0.000782879, -0.000295457, 1)
bones/107/scale = Vector3(1, 1, 1)
bones/108/position = Vector3(8.49366e-07, 5.665e-06, 3.62648e-06)
bones/109/rotation = Quaternion(-0.036333, 0.0217706, 0.999101, 0.00199951)
bones/109/scale = Vector3(1, 1, 1)
bones/110/position = Vector3(-1.3528e-06, 3.43757e-05, -4.54129e-08)
bones/111/rotation = Quaternion(-0.143928, 0.000177422, 0.00374932, 0.989581)
bones/112/position = Vector3(-4.23869e-07, 1.24792e-07, 6.58015e-07)
bones/113/rotation = Quaternion(0.495013, 0.131615, -0.0439782, 0.857732)
bones/115/rotation = Quaternion(0.335413, 0.00425432, -0.000217396, 0.942062)
bones/115/scale = Vector3(1, 1, 1)
bones/117/rotation = Quaternion(2.98097e-08, 0.0115715, 3.46601e-10, 0.999933)
bones/119/rotation = Quaternion(0.119179, 0.0314785, 0.992322, -0.0101509)
bones/119/scale = Vector3(1, 1, 1)
bones/120/position = Vector3(8.86776e-07, -4.30776e-06, 1.57868e-06)
bones/121/rotation = Quaternion(-0.0940526, 0.000144511, -0.0022175, 0.995565)
bones/121/scale = Vector3(1, 1, 1)
bones/122/position = Vector3(-8.41099e-07, -1.2368e-06, 3.5533e-07)
bones/123/rotation = Quaternion(0.451014, 0.00101661, 0.0176655, 0.892342)
bones/123/scale = Vector3(1, 1, 1)
bones/125/rotation = Quaternion(0.335216, 0.000625836, -1.98777e-05, 0.942141)
bones/127/rotation = Quaternion(1.4904e-08, -0.0119058, -1.76878e-10, 0.999929)

View file

@ -26,8 +26,20 @@ export default class Player extends CharacterBody3D {
turn_speed = 1
_rotation_speed = 2 * Math.PI
is_moving() {
return !this.velocity.is_zero_approx()
}
is_running() {
return this.player_input.is_running && !this.velocity.is_zero_approx()
return this.player_input.is_running && this.is_moving()
}
is_aiming() {
return this.player_input.is_aiming && !this.is_moving()
}
is_firing() {
return this.player_input.is_firing && this.is_aiming()
}
_ready(): void {
@ -102,7 +114,15 @@ export default class Player extends CharacterBody3D {
this.move_and_slide()
}
_aim_at_direction() {
}
_physics_process(delta: float64): void {
if (this.player_input.is_aiming) {
this._aim_at_direction()
return
}
const input = this.player_input.movement_input
const movement = this.get_movement(input)

View file

@ -2,6 +2,17 @@ import { float64, Input, InputEvent, InputEventJoypadButton, InputEventJoypadMot
import { export_, signal } from 'godot.annotations'
import InputBuffer from './input_buffer'
export const PlayerAction = {
MoveLeft: 'move_left',
MoveRight: 'move_right',
MoveUp: 'move_up',
MoveDown: 'move_down',
Run: 'run',
Interact: 'interact',
Aim: 'aim',
Fire: 'fire'
} as const
enum Device {
KeyboardMouse = 0,
Gamepad = 1
@ -64,6 +75,24 @@ export default class PlayerInput extends Node3D {
@signal()
readonly interact!: Signal0
_aiming: boolean = false
get is_aiming() {
return this._aiming
}
@signal()
readonly aim!: Signal1<boolean>
_firing: boolean = false
get is_firing() {
return this._firing
}
@signal()
readonly fire!: Signal1<boolean>
private _changed_since_last_frame = false
get changed_since_last_frame() {
@ -82,27 +111,11 @@ export default class PlayerInput extends Node3D {
}
_process(_delta: float64): void {
const next_input = Input.get_vector('move_left', 'move_right', 'move_up', 'move_down')
const next_movement = Input.get_vector(PlayerAction.MoveLeft, PlayerAction.MoveRight, PlayerAction.MoveUp, PlayerAction.MoveDown)
this._changed_since_last_frame = !next_input.is_equal_approx(this.movement_input)
this._changed_since_last_frame = !next_movement.is_equal_approx(this.movement_input)
this._input_buffer.push(next_input)
const running = Input.is_action_pressed('run')
if (running !== this._running) {
this._running = running
this.run.emit(running)
}
const interacting = Input.is_action_pressed('interact')
if (interacting !== this._interacting) {
this._interacting = interacting
if (interacting) {
this.interact.emit()
}
}
this._input_buffer.push(next_movement)
}
_input(event: InputEvent): void {
@ -111,6 +124,33 @@ export default class PlayerInput extends Node3D {
} else if (event instanceof InputEventJoypadButton || event instanceof InputEventJoypadMotion) {
this._last_known_device = Device.Gamepad
}
const running = event.is_action_pressed(PlayerAction.Run)
if (running !== this._running) {
this._running = running
this.run.emit(running)
}
const interacting = event.is_action_pressed(PlayerAction.Interact)
if (interacting !== this._interacting) {
this._interacting = interacting
if (interacting) {
this.interact.emit()
}
}
const aiming = event.is_action_pressed(PlayerAction.Aim)
if (aiming !== this._aiming) {
this._aiming = aiming
this.aim.emit(aiming)
}
const firing = event.is_action_pressed(PlayerAction.Fire)
if (firing !== this._firing) {
this._firing = firing
this.fire.emit(firing)
}
}
}