Gonna invent a scripting language lol

This commit is contained in:
2025-08-30 22:25:50 -05:00
parent 3ccf4ebabb
commit 6d75b33775
4 changed files with 43 additions and 6 deletions

View File

@@ -1,6 +1,38 @@
@tool
class_name NPC extends CharacterBody3D
@export var interactEvent:EventResource
@export var _movement:NPCMovement
func _onInteract(playerEntity: Player) -> void:
@export var facingDirection:EntityMovement.FacingDirection:
set(value):
if _movement:
_movement.facingDir = value
get:
if _movement:
return _movement.facingDir
return EntityMovement.FacingDirection.SOUTH
@export var walkSpeed:float = 48.0:
set(value):
if _movement:
_movement.walkSpeed = value
get:
if _movement:
return _movement.walkSpeed
return 48.0
@export var runSpeed:float = 64.0:
set(value):
if _movement:
_movement.runSpeed = value
get:
if _movement:
return _movement.runSpeed
return 64.0
func onInteract(player:Player) -> void:
print("Interacted with NPC")
pass
func _enter_tree() -> void:
pass

View File

@@ -62,8 +62,9 @@ animations = [{
[sub_resource type="SphereShape3D" id="SphereShape3D_x8luf"]
radius = 8.5
[node name="NPC" type="CharacterBody3D"]
[node name="NPC" type="CharacterBody3D" node_paths=PackedStringArray("_movement")]
script = ExtResource("1_00k55")
_movement = NodePath("Scripts/NPCMovement")
[node name="Scripts" type="Node" parent="."]
@@ -86,10 +87,10 @@ axis = 1
double_sided = false
texture_filter = 0
sprite_frames = SubResource("SpriteFrames_1seh5")
animation = &"walk_west"
animation = &"walk_south"
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8.5, 0)
shape = SubResource("SphereShape3D_x8luf")
[connection signal="interactEvent" from="InteractableArea" to="." method="_onInteract"]
[connection signal="interactEvent" from="InteractableArea" to="." method="onInteract"]

View File

@@ -1,3 +1,4 @@
@tool
class_name PlayerCamera extends Node
const CAMERA_PIXELS_PER_UNIT = 1.0
@@ -8,6 +9,9 @@ const CAMERA_PIXEL_SCALE = 1.0
@export var offset:Vector3 = Vector3(0, 0, 12)
func _process(delta: float) -> void:
if !camera || !target:
return
# I tried a few things but this is most consistent for both backbuffer and
# framebuffer viewports.
var viewportHeight = get_viewport().get_visible_rect().size.y;

View File

@@ -9,7 +9,7 @@
[node name="TestMapBase" parent="." instance=ExtResource("1_ox0si")]
[node name="Player" parent="." instance=ExtResource("2_0d2qr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.3947, 1.94879, -13.1025)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27.142, 1.94879, -59.112)
facingDirection = 1
[node name="NPC" parent="." instance=ExtResource("3_0vfw4")]