Fixed nested entities stuff
This commit is contained in:
@@ -69,7 +69,7 @@ func getDirectionToFace(position:Vector3) -> Direction:
|
||||
if !characterBody:
|
||||
return Direction.SOUTH;
|
||||
|
||||
var diff = position - characterBody.position;
|
||||
var diff = position - characterBody.global_position;
|
||||
if abs(diff.x) > abs(diff.z):
|
||||
if diff.x > 0:
|
||||
return Direction.EAST;
|
||||
|
@@ -21,8 +21,8 @@ func getRaycastInteractable() -> EntityInteractable:
|
||||
|
||||
var rayDirection = entityDirection.getDirectionVector()
|
||||
var query = PhysicsRayQueryParameters3D.create(
|
||||
characterBody.position,
|
||||
characterBody.position + (rayDirection * interactRange)
|
||||
characterBody.global_position,
|
||||
characterBody.global_position + (rayDirection * interactRange)
|
||||
)
|
||||
query.collide_with_bodies = true;
|
||||
query.collide_with_areas = true;
|
||||
|
@@ -1,6 +1,7 @@
|
||||
class_name ItemOnGround extends StaticBody3D
|
||||
|
||||
@export var interactEvent:Event = null
|
||||
@export var itemType:Item.Type = Item.Type.POTION;
|
||||
@export var quantity:int = 1;
|
||||
|
||||
func _ready() -> void:
|
||||
$Entity/EntityInteractable.onInteract.connect(
|
||||
@@ -12,16 +13,15 @@ func _exit_tree() -> void:
|
||||
self.onEntityInteract
|
||||
)
|
||||
|
||||
func selfDispose() -> void:
|
||||
get_parent().remove_child(self)
|
||||
self.queue_free()
|
||||
|
||||
func onEntityInteract(
|
||||
interactor:EntityInteractor,
|
||||
interactee:EntityInteractable
|
||||
) -> void:
|
||||
if interactEvent == null || (interactEvent.started && !interactEvent.isDone()):
|
||||
return
|
||||
|
||||
interactEvent.onEntityInteract(interactor, $Entity/EntityInteractable)
|
||||
self.selfDispose()
|
||||
print("Interact?")
|
||||
var event = EventGetItem.new()
|
||||
event.itemType = itemType;
|
||||
event.quantity = quantity;
|
||||
event.onEntityInteract(interactor, interactee)
|
||||
|
||||
get_parent().remove_child(self)
|
||||
self.queue_free()
|
@@ -20,7 +20,7 @@ func _process(delta: float) -> void:
|
||||
(viewportHeight / 2.0)
|
||||
) / unitScale;
|
||||
|
||||
var look = follow.position;
|
||||
var look = follow.global_position;
|
||||
var position = Vector3(0, 0, 2) + look;
|
||||
|
||||
look_at_from_position(
|
||||
|
@@ -16,13 +16,13 @@ func start() -> void:
|
||||
if turnInteractee && interactee.entityDirection && interactor.characterBody:
|
||||
var turn = EventEntityTurn.new()
|
||||
turn.entity = interactee.entityDirection
|
||||
turn.direction = turn.entity.getDirectionToFace(interactor.characterBody.position)
|
||||
turn.direction = turn.entity.getDirectionToFace(interactor.characterBody.global_position)
|
||||
addExtraEvent(turn, 0)
|
||||
|
||||
if turnInteractor && interactor.entityDirection && interactee.characterBody:
|
||||
var turn = EventEntityTurn.new()
|
||||
turn.entity = interactor.entityDirection
|
||||
turn.direction = turn.entity.getDirectionToFace(interactee.characterBody.position)
|
||||
turn.direction = turn.entity.getDirectionToFace(interactee.characterBody.global_position)
|
||||
addExtraEvent(turn, 0)
|
||||
|
||||
# Create start pause event
|
||||
|
@@ -2,4 +2,5 @@ class_name EventGetItem extends "res://scripts/Event/Item/EventItem.gd"
|
||||
|
||||
func start() -> void:
|
||||
super.start()
|
||||
print("Got item")
|
||||
getInventory().addItem(itemType, quantity)
|
Reference in New Issue
Block a user