From 93f59ec13190eb56346fa744ff6bca0db03489ab Mon Sep 17 00:00:00 2001 From: karl Date: Mon, 11 Nov 2019 10:24:29 +0100 Subject: [PATCH] Add NPC class which Meldewesen now inherits from This is in preparation for being able to more finely control the NPC, both from the specific NPC implementation and the PathNavigator (which was renamed accordingly) --- Characters/Meldewesen/Meldewesen.gd | 2 +- Characters/NPC.gd | 2 ++ ...vigatorForKinematicBody.gd => PathNavigatorForNPC.gd} | 2 +- ...torForKinematicBody.tscn => PathNavigatorForNPC.tscn} | 4 ++-- Level/PathTestWorld.tscn | 9 +++++---- project.godot | 6 ++++++ 6 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 Characters/NPC.gd rename Characters/Util/{PathNavigatorForKinematicBody.gd => PathNavigatorForNPC.gd} (99%) rename Characters/Util/{PathNavigatorForKinematicBody.tscn => PathNavigatorForNPC.tscn} (73%) diff --git a/Characters/Meldewesen/Meldewesen.gd b/Characters/Meldewesen/Meldewesen.gd index 7d137f1..0fc790f 100644 --- a/Characters/Meldewesen/Meldewesen.gd +++ b/Characters/Meldewesen/Meldewesen.gd @@ -1,4 +1,4 @@ -extends KinematicBody +extends NPC export(NodePath) var _visibility_path: NodePath diff --git a/Characters/NPC.gd b/Characters/NPC.gd new file mode 100644 index 0000000..8f61c63 --- /dev/null +++ b/Characters/NPC.gd @@ -0,0 +1,2 @@ +extends KinematicBody +class_name NPC diff --git a/Characters/Util/PathNavigatorForKinematicBody.gd b/Characters/Util/PathNavigatorForNPC.gd similarity index 99% rename from Characters/Util/PathNavigatorForKinematicBody.gd rename to Characters/Util/PathNavigatorForNPC.gd index b2d9796..24fd7dd 100644 --- a/Characters/Util/PathNavigatorForKinematicBody.gd +++ b/Characters/Util/PathNavigatorForNPC.gd @@ -11,7 +11,7 @@ export(float) var speed = 8 export(NodePath) var body_nodepath var navigation: Navigation -var body: KinematicBody +var body: NPC # React to the NodeGroupNotifier of the Navigation diff --git a/Characters/Util/PathNavigatorForKinematicBody.tscn b/Characters/Util/PathNavigatorForNPC.tscn similarity index 73% rename from Characters/Util/PathNavigatorForKinematicBody.tscn rename to Characters/Util/PathNavigatorForNPC.tscn index 13021f2..a64f875 100644 --- a/Characters/Util/PathNavigatorForKinematicBody.tscn +++ b/Characters/Util/PathNavigatorForNPC.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=3 format=2] -[ext_resource path="res://Characters/Util/PathNavigatorForKinematicBody.gd" type="Script" id=1] +[ext_resource path="res://Characters/Util/PathNavigatorForNPC.gd" type="Script" id=1] [sub_resource type="Curve3D" id=1] _data = { @@ -8,7 +8,7 @@ _data = { "tilts": PoolRealArray( 0, 0, 0, 0 ) } -[node name="PathNavigatorForKinematicBody" type="Path" groups=[ +[node name="PathNavigatorForNPC" type="Path" groups=[ "Navigator", ]] curve = SubResource( 1 ) diff --git a/Level/PathTestWorld.tscn b/Level/PathTestWorld.tscn index ed3726d..3d9fd29 100644 --- a/Level/PathTestWorld.tscn +++ b/Level/PathTestWorld.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=12 format=2] [ext_resource path="res://Characters/Player/Player.tscn" type="PackedScene" id=1] -[ext_resource path="res://Characters/Util/PathNavigatorForKinematicBody.tscn" type="PackedScene" id=2] +[ext_resource path="res://Characters/Util/PathNavigatorForNPC.tscn" type="PackedScene" id=2] [ext_resource path="res://Characters/Meldewesen/Meldewesen.tscn" type="PackedScene" id=3] [ext_resource path="res://Util/NodeGroupNotifier.tscn" type="PackedScene" id=4] @@ -74,11 +74,12 @@ shape = SubResource( 6 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0 ) shape = SubResource( 7 ) -[node name="PathNavigatorForKinematicBody" parent="." instance=ExtResource( 2 )] +[node name="MeldewesenNavigator" parent="." instance=ExtResource( 2 )] speed = 3.0 -body_nodepath = NodePath("Meldewesen") +body_nodepath = NodePath("../MeldewesenNavigator/Meldewesen") -[node name="Meldewesen" parent="PathNavigatorForKinematicBody" instance=ExtResource( 3 )] +[node name="Meldewesen" parent="MeldewesenNavigator" instance=ExtResource( 3 )] +_visibility_path = NodePath("../../MeldewesenNavigator/Meldewesen/Visibility") [node name="NodeGroupNotifier" parent="." instance=ExtResource( 4 )] group_name = "Navigator" diff --git a/project.godot b/project.godot index f4683b4..a496b14 100644 --- a/project.godot +++ b/project.godot @@ -39,6 +39,11 @@ _global_script_classes=[ { "language": "GDScript", "path": "res://Util/gs-logger-3.1-R3/gs_logger/message.gd" }, { +"base": "KinematicBody", +"class": "NPC", +"language": "GDScript", +"path": "res://Characters/NPC.gd" +}, { "base": "Layout", "class": "PatternLayout", "language": "GDScript", @@ -51,6 +56,7 @@ _global_script_class_icons={ "HtmlLayout": "", "Layout": "", "Message": "", +"NPC": "", "PatternLayout": "" }