Remove archive
This commit is contained in:
@@ -1,27 +0,0 @@
|
|||||||
class_name InteractableArea extends Area3D
|
|
||||||
|
|
||||||
signal interactEvent(playerEntity:Player)
|
|
||||||
signal interactable(playerEntity:Player)
|
|
||||||
signal notInteractable(playerEntity:Player)
|
|
||||||
|
|
||||||
func _enter_tree() -> void:
|
|
||||||
area_entered.connect(onAreaEntered)
|
|
||||||
area_exited.connect(onAreaExited)
|
|
||||||
|
|
||||||
func _exit_tree() -> void:
|
|
||||||
area_entered.disconnect(onAreaEntered)
|
|
||||||
area_exited.disconnect(onAreaExited)
|
|
||||||
|
|
||||||
func onAreaEntered(area:Area3D) -> void:
|
|
||||||
if !area.get_parent() or !(area.get_parent() is Player):
|
|
||||||
return
|
|
||||||
|
|
||||||
var player:Player = area.get_parent() as Player
|
|
||||||
interactable.emit(player)
|
|
||||||
|
|
||||||
func onAreaExited(area:Area3D) -> void:
|
|
||||||
if !area.get_parent() or !(area.get_parent() is Player):
|
|
||||||
return
|
|
||||||
|
|
||||||
var player:Player = area.get_parent() as Player
|
|
||||||
notInteractable.emit(player)
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://cql02fqctrd4r
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
class_name MapChangeInteract extends Node3D
|
|
||||||
|
|
||||||
|
|
||||||
@export var mapResource:PackedScene
|
|
||||||
@export var destinationPointNodeName:String
|
|
||||||
var interactableArea:InteractableArea
|
|
||||||
var shapeChild:CollisionShape3D
|
|
||||||
|
|
||||||
func _enter_tree() -> void:
|
|
||||||
interactableArea = $InteractableArea
|
|
||||||
|
|
||||||
if !mapResource:
|
|
||||||
push_error("MapChangeInteract must have a mapResource set.")
|
|
||||||
return
|
|
||||||
|
|
||||||
# Needs to be exactly one child.
|
|
||||||
if get_child_count() != 2:
|
|
||||||
push_error("MapChangeInteract must have exactly one child InteractableArea node.")
|
|
||||||
return
|
|
||||||
|
|
||||||
var child = get_child(1)
|
|
||||||
if not (child is CollisionShape3D):
|
|
||||||
push_error("MapChangeInteract's child must be an CollisionShape3D node.")
|
|
||||||
|
|
||||||
shapeChild = child
|
|
||||||
remove_child(shapeChild)
|
|
||||||
interactableArea.add_child(shapeChild)
|
|
||||||
|
|
||||||
interactableArea.interactEvent.connect(onInteract)
|
|
||||||
interactableArea.interactable.connect(onInteractable)
|
|
||||||
interactableArea.notInteractable.connect(onNotInteractable)
|
|
||||||
|
|
||||||
func _exit_tree() -> void:
|
|
||||||
interactableArea.interactEvent.disconnect(onInteract)
|
|
||||||
interactableArea.interactable.disconnect(onInteractable)
|
|
||||||
interactableArea.notInteractable.disconnect(onNotInteractable)
|
|
||||||
|
|
||||||
interactableArea.remove_child(shapeChild)
|
|
||||||
add_child(shapeChild)
|
|
||||||
|
|
||||||
func onInteract(_ent:Player) -> void:
|
|
||||||
OVERWORLD.mapChange(mapResource, destinationPointNodeName)
|
|
||||||
|
|
||||||
func onInteractable(_ent:Player) -> void:
|
|
||||||
print("Able to leave map")
|
|
||||||
pass
|
|
||||||
|
|
||||||
func onNotInteractable(_ent:Player) -> void:
|
|
||||||
print("Not able to leave map")
|
|
||||||
pass
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://dgev713uv0kdk
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://cr6h3g15bf6ts"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cpqmjomfpyifw" path="res://MapChangeInteract.gd" id="1_4tqca"]
|
|
||||||
[ext_resource type="Script" uid="uid://b00rxpveu3v4m" path="res://InteractableArea.gd" id="2_3pe6u"]
|
|
||||||
|
|
||||||
[node name="MapChangeInteract" type="Node3D"]
|
|
||||||
script = ExtResource("1_4tqca")
|
|
||||||
|
|
||||||
[node name="InteractableArea" type="Area3D" parent="."]
|
|
||||||
script = ExtResource("2_3pe6u")
|
|
||||||
metadata/_custom_type_script = "uid://b00rxpveu3v4m"
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
class_name Cutscene extends Node
|
|
||||||
|
|
||||||
var items:Array[CutsceneItem] = []
|
|
||||||
var itemIndex:int = 0
|
|
||||||
|
|
||||||
func _enter_tree() -> void:
|
|
||||||
# Get children
|
|
||||||
var children = get_children()
|
|
||||||
for child in children:
|
|
||||||
if !(child is CutsceneItem):
|
|
||||||
continue
|
|
||||||
items.append(child)
|
|
||||||
pass
|
|
||||||
|
|
||||||
func _exit_tree() -> void:
|
|
||||||
items.clear()
|
|
||||||
pass
|
|
||||||
|
|
||||||
func start() -> void:
|
|
||||||
itemIndex = -1
|
|
||||||
if items.size() == 0:
|
|
||||||
return
|
|
||||||
nextItem()
|
|
||||||
|
|
||||||
func nextItem() -> void:
|
|
||||||
itemIndex += 1
|
|
||||||
if itemIndex >= items.size():
|
|
||||||
return
|
|
||||||
|
|
||||||
var item = items[itemIndex]
|
|
||||||
item.cutscene = self
|
|
||||||
item.start()
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://chxpes3546yoj
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
class_name CutsceneItem extends Node
|
|
||||||
|
|
||||||
var cutscene:Cutscene = null
|
|
||||||
|
|
||||||
func start() -> void:
|
|
||||||
# This method should be overridden by subclasses
|
|
||||||
pass
|
|
||||||
|
|
||||||
func done() -> void:
|
|
||||||
if !cutscene:
|
|
||||||
return
|
|
||||||
cutscene.nextItem()
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://dbjcrhunrugyb
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
class_name CutsceneText extends CutsceneItem
|
|
||||||
|
|
||||||
@export_multiline var interactTexts:Array[String] = []
|
|
||||||
var nextTextIndex:int = 0
|
|
||||||
|
|
||||||
func _enter_tree() -> void:
|
|
||||||
pass
|
|
||||||
|
|
||||||
func _exit_tree() -> void:
|
|
||||||
UI.TEXTBOX.textboxClosing.disconnect(onTextboxClosing)
|
|
||||||
|
|
||||||
func start() -> void:
|
|
||||||
nextTextIndex = 0
|
|
||||||
UI.TEXTBOX.setText(interactTexts[nextTextIndex])
|
|
||||||
UI.TEXTBOX.textboxClosing.connect(onTextboxClosing)
|
|
||||||
|
|
||||||
func onTextboxClosing() -> void:
|
|
||||||
nextTextIndex += 1
|
|
||||||
if nextTextIndex < interactTexts.size():
|
|
||||||
UI.TEXTBOX.setText(interactTexts[nextTextIndex])
|
|
||||||
else:
|
|
||||||
UI.TEXTBOX.textboxClosing.disconnect(onTextboxClosing)
|
|
||||||
UI.TEXTBOX.setText("")
|
|
||||||
done()
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://8updtj1mctra
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
# @tool
|
|
||||||
# class_name EntityMovement extends Node
|
|
||||||
|
|
||||||
# const FRICTION = 0.01
|
|
||||||
# const WALK_SPEED_DEFAULT = 8
|
|
||||||
# const RUN_SPEED_DEFAULT = 12
|
|
||||||
|
|
||||||
# var _inputDir:Vector2 = Vector2.ZERO
|
|
||||||
# var _running:bool = false
|
|
||||||
|
|
||||||
# @export var body:CharacterBody3D
|
|
||||||
# @export var rotate:Node3D
|
|
||||||
# @export var walkSpeed:float = WALK_SPEED_DEFAULT
|
|
||||||
# @export var runSpeed:float = RUN_SPEED_DEFAULT
|
|
||||||
|
|
||||||
# #
|
|
||||||
# # Private Methods
|
|
||||||
# #
|
|
||||||
# func _applyGravity() -> void:
|
|
||||||
# if !body.is_on_floor():
|
|
||||||
# body.velocity += PHYSICS.GRAVITY * get_process_delta_time()
|
|
||||||
|
|
||||||
# func _applyMovement() -> void:
|
|
||||||
# if !canMove():
|
|
||||||
# return
|
|
||||||
|
|
||||||
# var cameraCurrent = get_viewport().get_camera_3d()
|
|
||||||
# if !cameraCurrent:
|
|
||||||
# return
|
|
||||||
|
|
||||||
# # Use camera orientation for movement direction
|
|
||||||
# var camBasis = cameraCurrent.global_transform.basis
|
|
||||||
|
|
||||||
# # Forward and right vectors, ignore vertical component
|
|
||||||
# var forward = -camBasis.z
|
|
||||||
# forward.y = 0
|
|
||||||
# forward = forward.normalized()
|
|
||||||
# var right = camBasis.x
|
|
||||||
# right.y = 0
|
|
||||||
# right = right.normalized()
|
|
||||||
|
|
||||||
# var directionAdjusted = (
|
|
||||||
# forward * _inputDir.y + right * _inputDir.x
|
|
||||||
# ).normalized()
|
|
||||||
# if directionAdjusted.length() <= 0.01:
|
|
||||||
# return
|
|
||||||
|
|
||||||
# if rotate:
|
|
||||||
# var targetRot = atan2(directionAdjusted.x, directionAdjusted.z)
|
|
||||||
# rotate.rotation.y = targetRot
|
|
||||||
|
|
||||||
# var speed = walkSpeed
|
|
||||||
# if _running:
|
|
||||||
# speed = runSpeed
|
|
||||||
|
|
||||||
# body.velocity.x = directionAdjusted.x * speed
|
|
||||||
# body.velocity.z = directionAdjusted.z * speed
|
|
||||||
|
|
||||||
# func _applyFriction(delta:float) -> void:
|
|
||||||
# body.velocity.x *= delta * FRICTION
|
|
||||||
# body.velocity.z *= delta * FRICTION
|
|
||||||
|
|
||||||
# #
|
|
||||||
# # Protected Methods
|
|
||||||
# #
|
|
||||||
# func canMove() -> bool:
|
|
||||||
# return true
|
|
||||||
|
|
||||||
# #
|
|
||||||
# # Callbacks
|
|
||||||
# #
|
|
||||||
# func _enter_tree() -> void:
|
|
||||||
# pass
|
|
||||||
|
|
||||||
# func _physics_process(delta:float) -> void:
|
|
||||||
# if Engine.is_editor_hint():
|
|
||||||
# return
|
|
||||||
|
|
||||||
# if !body:
|
|
||||||
# return
|
|
||||||
|
|
||||||
# _applyGravity()
|
|
||||||
# _applyFriction(delta)
|
|
||||||
# _applyMovement()
|
|
||||||
# body.move_and_slide()
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://b38dxsome4kiq
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://csb0i132lcu0w
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://jbarxyoib5a7
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://c0by5m1upv57h
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
@tool
|
|
||||||
class_name NPC extends CharacterBody3D
|
|
||||||
|
|
||||||
@export var _movement:NPCMovement
|
|
||||||
@export var _interact:NPCInteract
|
|
||||||
|
|
||||||
# NPC Movement Accessors
|
|
||||||
@export var walkSpeed:float:
|
|
||||||
set(value):
|
|
||||||
if _movement:
|
|
||||||
_movement.walkSpeed = value
|
|
||||||
get:
|
|
||||||
if _movement:
|
|
||||||
return _movement.walkSpeed
|
|
||||||
return 0
|
|
||||||
|
|
||||||
@export var runSpeed:float:
|
|
||||||
set(value):
|
|
||||||
if _movement:
|
|
||||||
_movement.runSpeed = value
|
|
||||||
get:
|
|
||||||
if _movement:
|
|
||||||
return _movement.runSpeed
|
|
||||||
return 0
|
|
||||||
|
|
||||||
# NPC Interact Accessors
|
|
||||||
@export var interactType:NPCInteract.InteractType:
|
|
||||||
set(value):
|
|
||||||
if _interact:
|
|
||||||
_interact.interactType = value
|
|
||||||
get:
|
|
||||||
if _interact:
|
|
||||||
return _interact.interactType
|
|
||||||
return NPCInteract.InteractType.NONE
|
|
||||||
|
|
||||||
@export var interactText:String:
|
|
||||||
set(value):
|
|
||||||
if _interact:
|
|
||||||
_interact.interactText = value
|
|
||||||
get:
|
|
||||||
if _interact:
|
|
||||||
return _interact.interactText
|
|
||||||
return ""
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://crw7ls7t8cwct
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
[gd_scene load_steps=9 format=3 uid="uid://kabs7mopalmo"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://crw7ls7t8cwct" path="res://entity/npc/NPC.gd" id="1_00k55"]
|
|
||||||
[ext_resource type="Script" uid="uid://b00rxpveu3v4m" path="res://InteractableArea.gd" id="2_x8luf"]
|
|
||||||
[ext_resource type="Script" uid="uid://tlfthv88ki0y" path="res://entity/npc/NPCMovement.gd" id="3_1seh5"]
|
|
||||||
[ext_resource type="Script" uid="uid://dunhfgdwp8wjh" path="res://entity/npc/NPCInteract.gd" id="3_binvk"]
|
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_jphom"]
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_jphom"]
|
|
||||||
size = Vector3(1, 2, 1)
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jphom"]
|
|
||||||
shading_mode = 0
|
|
||||||
|
|
||||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_jphom"]
|
|
||||||
material = SubResource("StandardMaterial3D_jphom")
|
|
||||||
|
|
||||||
[node name="NPC" type="CharacterBody3D" node_paths=PackedStringArray("_movement", "_interact")]
|
|
||||||
script = ExtResource("1_00k55")
|
|
||||||
_movement = NodePath("Scripts/NPCMovement")
|
|
||||||
_interact = NodePath("Scripts/NPCInteract")
|
|
||||||
walkSpeed = 8.0
|
|
||||||
runSpeed = 12.0
|
|
||||||
|
|
||||||
[node name="Scripts" type="Node" parent="."]
|
|
||||||
|
|
||||||
[node name="NPCMovement" type="Node" parent="Scripts" node_paths=PackedStringArray("body")]
|
|
||||||
script = ExtResource("3_1seh5")
|
|
||||||
body = NodePath("../..")
|
|
||||||
|
|
||||||
[node name="NPCInteract" type="Node" parent="Scripts"]
|
|
||||||
script = ExtResource("3_binvk")
|
|
||||||
interactText = ""
|
|
||||||
metadata/_custom_type_script = "uid://dunhfgdwp8wjh"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
|
||||||
shape = SubResource("CapsuleShape3D_jphom")
|
|
||||||
|
|
||||||
[node name="Rotate" type="Node3D" parent="."]
|
|
||||||
|
|
||||||
[node name="InteractableArea" type="Area3D" parent="Rotate"]
|
|
||||||
script = ExtResource("2_x8luf")
|
|
||||||
metadata/_custom_type_script = "uid://b00rxpveu3v4m"
|
|
||||||
|
|
||||||
[node name="InteractableShape" type="CollisionShape3D" parent="Rotate/InteractableArea"]
|
|
||||||
transform = Transform3D(0.999999, -0.000856732, 0.0007724, 0.000857588, 0.999999, -0.00114162, -0.000771449, 0.00114226, 0.999999, 0, 0, 0)
|
|
||||||
shape = SubResource("BoxShape3D_jphom")
|
|
||||||
|
|
||||||
[node name="CapsuleMesh" type="MeshInstance3D" parent="Rotate"]
|
|
||||||
mesh = SubResource("CapsuleMesh_jphom")
|
|
||||||
skeleton = NodePath("../..")
|
|
||||||
|
|
||||||
[connection signal="interactEvent" from="Rotate/InteractableArea" to="Scripts/NPCInteract" method="onInteract"]
|
|
||||||
[connection signal="interactable" from="Rotate/InteractableArea" to="Scripts/NPCInteract" method="onInteractable"]
|
|
||||||
[connection signal="notInteractable" from="Rotate/InteractableArea" to="Scripts/NPCInteract" method="onNotInteractable"]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://dda6r22r8eow2
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
@tool
|
|
||||||
class_name NPCInteract extends Node
|
|
||||||
|
|
||||||
enum InteractType {
|
|
||||||
NONE,
|
|
||||||
TEXT,
|
|
||||||
CUTSCENE
|
|
||||||
}
|
|
||||||
|
|
||||||
@export var interactType:InteractType = InteractType.NONE
|
|
||||||
@export var interactText:Array[String] = []
|
|
||||||
|
|
||||||
var interactTextIndex:int = 0
|
|
||||||
|
|
||||||
func onInteract(_player:Player) -> void:
|
|
||||||
if interactType == InteractType.TEXT:
|
|
||||||
interactTextIndex = 0
|
|
||||||
UI.TEXTBOX.setText(interactText[interactTextIndex])
|
|
||||||
UI.TEXTBOX.textboxClosing.connect(onTextboxClosing)
|
|
||||||
return
|
|
||||||
|
|
||||||
pass
|
|
||||||
|
|
||||||
func onInteractable(player:Player) -> void:
|
|
||||||
pass
|
|
||||||
|
|
||||||
func onNotInteractable(player:Player) -> void:
|
|
||||||
pass
|
|
||||||
|
|
||||||
func _exit_tree() -> void:
|
|
||||||
UI.TEXTBOX.textboxClosing.disconnect(onTextboxClosing)
|
|
||||||
|
|
||||||
func onTextboxClosing() -> void:
|
|
||||||
interactTextIndex += 1
|
|
||||||
if interactTextIndex < interactText.size():
|
|
||||||
UI.TEXTBOX.setText(interactText[interactTextIndex])
|
|
||||||
else:
|
|
||||||
UI.TEXTBOX.textboxClosing.disconnect(onTextboxClosing)
|
|
||||||
UI.TEXTBOX.setText("")
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://dunhfgdwp8wjh
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
# @tool
|
|
||||||
# class_name NPCMovement extends "res://entity/EntityMovement.gd"
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://tlfthv88ki0y
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
class_name NPCTest extends Node
|
|
||||||
|
|
||||||
func onInteract(playerEntity: Player) -> void:
|
|
||||||
print("Player has interacted with the NPC.")
|
|
||||||
UI.TEXTBOX.setText("You have interacted with the NPC.")
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://cmwovncvo1n5o
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
# @tool
|
|
||||||
# class_name Player extends CharacterBody3D
|
|
||||||
|
|
||||||
# @export var _movement:PlayerMovement
|
|
||||||
|
|
||||||
# @export var walkSpeed:float:
|
|
||||||
# set(value):
|
|
||||||
# if _movement:
|
|
||||||
# _movement.walkSpeed = value
|
|
||||||
# get:
|
|
||||||
# if _movement:
|
|
||||||
# return _movement.walkSpeed
|
|
||||||
# return 0.0
|
|
||||||
|
|
||||||
# @export var runSpeed:float:
|
|
||||||
# set(value):
|
|
||||||
# if _movement:
|
|
||||||
# _movement.runSpeed = value
|
|
||||||
# get:
|
|
||||||
# if _movement:
|
|
||||||
# return _movement.runSpeed
|
|
||||||
# return 0.0
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://ylmy3nvpirgr
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 237 B |
@@ -1,35 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://xx3qp5xh7tgu"
|
|
||||||
path.s3tc="res://.godot/imported/Player.png-375a5d516004cad2a06e60ddde70664e.s3tc.ctex"
|
|
||||||
metadata={
|
|
||||||
"imported_formats": ["s3tc_bptc"],
|
|
||||||
"vram_texture": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_archive/entity/player/Player.png"
|
|
||||||
dest_files=["res://.godot/imported/Player.png-375a5d516004cad2a06e60ddde70664e.s3tc.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=2
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=true
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=0
|
|
||||||
Binary file not shown.
@@ -1,74 +0,0 @@
|
|||||||
[gd_scene load_steps=12 format=3 uid="uid://2ch34sio36nv"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://ylmy3nvpirgr" path="res://entity/player/Player.gd" id="1_24gqh"]
|
|
||||||
[ext_resource type="Script" uid="uid://bwxdv3kxrs4oj" path="res://entity/player/PlayerMovement.gd" id="2_o7et6"]
|
|
||||||
[ext_resource type="Script" uid="uid://b3nty7pvbo58d" path="res://entity/player/PlayerInteraction.gd" id="3_24gqh"]
|
|
||||||
[ext_resource type="Script" uid="uid://bdv1fj1pwknrs" path="res://entity/player/PlayerInput.gd" id="4_yjynp"]
|
|
||||||
[ext_resource type="Script" uid="uid://bdjgvyiacbg28" path="res://entity/player/PlayerCamera.gd" id="5_g3lhm"]
|
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_rykwh"]
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rykwh"]
|
|
||||||
shading_mode = 0
|
|
||||||
|
|
||||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_etv1g"]
|
|
||||||
material = SubResource("StandardMaterial3D_rykwh")
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_etv1g"]
|
|
||||||
shading_mode = 0
|
|
||||||
albedo_color = Color(0.376471, 1, 1, 1)
|
|
||||||
|
|
||||||
[sub_resource type="BoxMesh" id="BoxMesh_m44ds"]
|
|
||||||
material = SubResource("StandardMaterial3D_etv1g")
|
|
||||||
size = Vector3(0.4, 0.4, 0.4)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_g13of"]
|
|
||||||
size = Vector3(1.14069, 1, 1.38867)
|
|
||||||
|
|
||||||
[node name="Player" type="CharacterBody3D" node_paths=PackedStringArray("_movement")]
|
|
||||||
script = ExtResource("1_24gqh")
|
|
||||||
_movement = NodePath("Scripts/PlayerMovement")
|
|
||||||
|
|
||||||
[node name="Scripts" type="Node" parent="."]
|
|
||||||
|
|
||||||
[node name="PlayerMovement" type="Node" parent="Scripts" node_paths=PackedStringArray("body", "rotate")]
|
|
||||||
script = ExtResource("2_o7et6")
|
|
||||||
body = NodePath("../..")
|
|
||||||
rotate = NodePath("../../PlayerRotate")
|
|
||||||
|
|
||||||
[node name="PlayerInteraction" type="Node" parent="Scripts" node_paths=PackedStringArray("interactableArea", "player")]
|
|
||||||
script = ExtResource("3_24gqh")
|
|
||||||
interactableArea = NodePath("../../PlayerRotate/PlayerInteractableArea")
|
|
||||||
player = NodePath("../..")
|
|
||||||
|
|
||||||
[node name="PlayerInput" type="Node" parent="Scripts" node_paths=PackedStringArray("interaction", "movement")]
|
|
||||||
script = ExtResource("4_yjynp")
|
|
||||||
interaction = NodePath("../PlayerInteraction")
|
|
||||||
movement = NodePath("../PlayerMovement")
|
|
||||||
|
|
||||||
[node name="PlayerCamera" type="Node" parent="Scripts" node_paths=PackedStringArray("camera", "target")]
|
|
||||||
script = ExtResource("5_g3lhm")
|
|
||||||
camera = NodePath("../../PlayerCamera")
|
|
||||||
target = NodePath("../..")
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
|
||||||
shape = SubResource("CapsuleShape3D_rykwh")
|
|
||||||
|
|
||||||
[node name="PlayerCamera" type="Camera3D" parent="."]
|
|
||||||
transform = Transform3D(1, -0.000461383, 0.000263726, 0.000138582, 0.705475, 0.708735, -0.00051305, -0.708735, 0.705475, 0.00619125, 4.26114, 4.36711)
|
|
||||||
|
|
||||||
[node name="PlayerRotate" type="Node3D" parent="."]
|
|
||||||
|
|
||||||
[node name="CapsuleMesh" type="MeshInstance3D" parent="PlayerRotate"]
|
|
||||||
mesh = SubResource("CapsuleMesh_etv1g")
|
|
||||||
skeleton = NodePath("../..")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="PlayerRotate/CapsuleMesh"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.41166, 0.475431)
|
|
||||||
mesh = SubResource("BoxMesh_m44ds")
|
|
||||||
|
|
||||||
[node name="PlayerInteractableArea" type="Area3D" parent="PlayerRotate"]
|
|
||||||
|
|
||||||
[node name="InteractHitbox" type="CollisionShape3D" parent="PlayerRotate/PlayerInteractableArea"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0233459, 0, 0.795664)
|
|
||||||
shape = SubResource("BoxShape3D_g13of")
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
@tool
|
|
||||||
class_name PlayerCamera extends Node
|
|
||||||
|
|
||||||
const CAMERA_PIXELS_PER_UNIT = 1.0
|
|
||||||
const CAMERA_PIXEL_SCALE = 1.0
|
|
||||||
|
|
||||||
@export var camera:Camera3D = null
|
|
||||||
@export var target:Node3D = null
|
|
||||||
|
|
||||||
var angle = 0.0
|
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
|
||||||
if !camera || !target:
|
|
||||||
return
|
|
||||||
|
|
||||||
# Follow target
|
|
||||||
# camera.global_transform.origin = target.global_transform.origin
|
|
||||||
|
|
||||||
# # Spin around origin.
|
|
||||||
# var rotation_speed = 1 # Radians per second
|
|
||||||
# angle += rotation_speed * delta
|
|
||||||
# var radius = 3.0
|
|
||||||
# var offset = Vector3(radius * sin(angle), 2.0, radius * cos(angle))
|
|
||||||
# camera.global_transform.origin += offset
|
|
||||||
|
|
||||||
# # Look at target
|
|
||||||
# camera.look_at(target.global_transform.origin, Vector3.UP)
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://bdjgvyiacbg28
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
class_name PlayerInput extends Node
|
|
||||||
|
|
||||||
@export var interaction:PlayerInteraction
|
|
||||||
@export var movement:PlayerMovement
|
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
|
||||||
if Input.is_action_just_pressed("pause"):
|
|
||||||
PAUSE.menuPause()
|
|
||||||
|
|
||||||
if Input.is_action_just_pressed("interact"):
|
|
||||||
interaction.interact()
|
|
||||||
|
|
||||||
movement._inputDir = Input.get_vector("move_left", "move_right", "move_back", "move_forward").normalized()
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://bdv1fj1pwknrs
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
class_name PlayerInteraction extends Node
|
|
||||||
|
|
||||||
@export var interactableArea:Area3D
|
|
||||||
@export var player:CharacterBody3D
|
|
||||||
|
|
||||||
func canInteract() -> bool:
|
|
||||||
if PAUSE.isMovementPaused():
|
|
||||||
return false
|
|
||||||
return true
|
|
||||||
|
|
||||||
func interact() -> void:
|
|
||||||
if !canInteract():
|
|
||||||
return
|
|
||||||
|
|
||||||
var overlapping = interactableArea.get_overlapping_areas()
|
|
||||||
var interactable: InteractableArea = null
|
|
||||||
|
|
||||||
for node in overlapping:
|
|
||||||
if !(node is InteractableArea):
|
|
||||||
continue
|
|
||||||
interactable = node
|
|
||||||
break
|
|
||||||
|
|
||||||
if !interactable:
|
|
||||||
return
|
|
||||||
|
|
||||||
interactable.interactEvent.emit(player)
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://b3nty7pvbo58d
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
[gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://cv8q4cbjyfauh"]
|
|
||||||
|
|
||||||
[ext_resource type="Shader" path="res://materials/EntityMaterialShader.gdshader" id="1_gsq3s"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://xx3qp5xh7tgu" path="res://entity/player/Player.png" id="2_awgof"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
render_priority = 0
|
|
||||||
shader = ExtResource("1_gsq3s")
|
|
||||||
shader_parameter/text = ExtResource("2_awgof")
|
|
||||||
shader_parameter/tileColumnCount = 4
|
|
||||||
shader_parameter/tileRowCount = 1
|
|
||||||
shader_parameter/tile = 0
|
|
||||||
shader_parameter/color = Color(1, 1, 1, 1)
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
@tool
|
|
||||||
class_name PlayerMovement extends "res://entity/EntityMovement.gd"
|
|
||||||
|
|
||||||
func canMove() -> bool:
|
|
||||||
if PAUSE.isMovementPaused():
|
|
||||||
return false
|
|
||||||
return true
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://bwxdv3kxrs4oj
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://c42rc36mudwgh
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
class_name EventResource extends Resource
|
|
||||||
|
|
||||||
@export var eventName:String
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://5nyb2g1kghpv
|
|
||||||
Reference in New Issue
Block a user