From 02caaf685a6d05273a5ef59dc8aec6396e5c7e19 Mon Sep 17 00:00:00 2001 From: Relintai Date: Fri, 13 Jan 2023 23:03:12 +0100 Subject: [PATCH] Udpated the engine and removed the now c++ classes. --- HEADS | 2 +- .../GSAIAgentLocation.gd | 10 -- .../GSAIGroupBehavior.gd | 19 --- .../GSAIPath.gd | 129 ------------------ .../GSAISteeringAgent.gd | 29 ---- .../GSAISteeringBehavior.gd | 26 ---- .../GSAITargetAcceleration.gd | 31 ----- .../GSAIUtils.gd | 40 ------ .../Proximities/GSAIProximity.gd | 22 --- godot/project.pandemonium | 52 +------ 10 files changed, 5 insertions(+), 355 deletions(-) delete mode 100644 godot/addons/com.gdquest.godot-steering-ai-framework/GSAIAgentLocation.gd delete mode 100644 godot/addons/com.gdquest.godot-steering-ai-framework/GSAIGroupBehavior.gd delete mode 100644 godot/addons/com.gdquest.godot-steering-ai-framework/GSAIPath.gd delete mode 100644 godot/addons/com.gdquest.godot-steering-ai-framework/GSAISteeringAgent.gd delete mode 100644 godot/addons/com.gdquest.godot-steering-ai-framework/GSAISteeringBehavior.gd delete mode 100644 godot/addons/com.gdquest.godot-steering-ai-framework/GSAITargetAcceleration.gd delete mode 100644 godot/addons/com.gdquest.godot-steering-ai-framework/GSAIUtils.gd delete mode 100644 godot/addons/com.gdquest.godot-steering-ai-framework/Proximities/GSAIProximity.gd diff --git a/HEADS b/HEADS index f304c1b..5987c25 100644 --- a/HEADS +++ b/HEADS @@ -1 +1 @@ -{"engine": {"3.2": "94a0fc47f7b4e90f8973f9adbfd3312579ed2825", "master": "8c73e813134001e575b6f59e3b0100471c007410", "3.x": "c4864a0e5f73a375259503ea1485794a6aad6df7"}, "world_generator": {"master": "260c430f11b0b591eaf4714516419aa327d2842c"}, "entity_spell_system": {"master": "3536f01bacf5f54cefb32b768cd020a1f94d0ade"}, "ui_extensions": {"master": "80a3b96fc56991a0f88a1d441ed1e3cebaf3307a"}, "voxelman": {"master": "65485930a20f65844d496b4ba47dec5b6ed70b91"}, "texture_packer": {"master": "ae4d222fbaade063ed6f0bc9f3aaa53df68a7fed"}, "fastnoise": {"master": "46bb1f610bfb7171613b5c708d312bcf94e89356"}, "mesh_data_resource": {"master": "a062d871d49d954c5466b9de54b4075cb61cbef4"}, "procedural_animations": {"master": "f8aae42bf06b3936cc6bd24cb18e1c3ec9f78f4f"}, "ess_data": {"master": "3bd637fdd3304b64a18287a49a6b7387acf2f5de"}, "props": {"master": "983090d21a08ebed30a5ce06681269819ab12e48"}, "mesh_utils": {"master": "b52a261c31f04fad624e5cfbcdcc4a45d61136da"}, "broken_seals_module": {"master": "52c5a81350db1c29d375c63d95010260911ec034"}, "thread_pool": {"master": "0917511d04bb1aa308385b63ec88d3c182990628"}, "terraman": {"master": "c72d8fc03295588fc18c5168ce351bd0c321ec5f"}, "pandemonium_engine": {"master": "4b09cb47ab00a2fa63dbab46bc932e3c19309e53"}} \ No newline at end of file +{"engine": {"3.2": "94a0fc47f7b4e90f8973f9adbfd3312579ed2825", "master": "8c73e813134001e575b6f59e3b0100471c007410", "3.x": "c4864a0e5f73a375259503ea1485794a6aad6df7"}, "world_generator": {"master": "260c430f11b0b591eaf4714516419aa327d2842c"}, "entity_spell_system": {"master": "3536f01bacf5f54cefb32b768cd020a1f94d0ade"}, "ui_extensions": {"master": "80a3b96fc56991a0f88a1d441ed1e3cebaf3307a"}, "voxelman": {"master": "65485930a20f65844d496b4ba47dec5b6ed70b91"}, "texture_packer": {"master": "ae4d222fbaade063ed6f0bc9f3aaa53df68a7fed"}, "fastnoise": {"master": "46bb1f610bfb7171613b5c708d312bcf94e89356"}, "mesh_data_resource": {"master": "a062d871d49d954c5466b9de54b4075cb61cbef4"}, "procedural_animations": {"master": "f8aae42bf06b3936cc6bd24cb18e1c3ec9f78f4f"}, "ess_data": {"master": "3bd637fdd3304b64a18287a49a6b7387acf2f5de"}, "props": {"master": "983090d21a08ebed30a5ce06681269819ab12e48"}, "mesh_utils": {"master": "b52a261c31f04fad624e5cfbcdcc4a45d61136da"}, "broken_seals_module": {"master": "52c5a81350db1c29d375c63d95010260911ec034"}, "thread_pool": {"master": "0917511d04bb1aa308385b63ec88d3c182990628"}, "terraman": {"master": "c72d8fc03295588fc18c5168ce351bd0c321ec5f"}, "pandemonium_engine": {"master": "56296172cc6e387bf1d49ae9cf07fc596603a531"}} \ No newline at end of file diff --git a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAIAgentLocation.gd b/godot/addons/com.gdquest.godot-steering-ai-framework/GSAIAgentLocation.gd deleted file mode 100644 index 5e2b8fd..0000000 --- a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAIAgentLocation.gd +++ /dev/null @@ -1,10 +0,0 @@ -extends Reference -class_name GSAIAgentLocation - -# Represents an agent with only a location and an orientation. -# @category - Base types - -# The agent's position in space. -var position : Vector3 = Vector3.ZERO -# The agent's orientation on its Y axis rotation. -var orientation : float = 0.0 diff --git a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAIGroupBehavior.gd b/godot/addons/com.gdquest.godot-steering-ai-framework/GSAIGroupBehavior.gd deleted file mode 100644 index 1b6dbb2..0000000 --- a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAIGroupBehavior.gd +++ /dev/null @@ -1,19 +0,0 @@ -class_name GSAIGroupBehavior -extends GSAISteeringBehavior - -# Base type for group-based steering behaviors. -# @category - Base types - -# Container to find neighbors of the agent and calculate group behavior. -var proximity : GSAIProximity - -var _callback : FuncRef = funcref(self, "_report_neighbor") - -func get_callback() -> FuncRef: - return _callback - -# Internal callback for the behavior to define whether or not a member is -# relevant -# @tags - virtual -func _report_neighbor(_neighbor : GSAISteeringAgent) -> bool: - return false diff --git a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAIPath.gd b/godot/addons/com.gdquest.godot-steering-ai-framework/GSAIPath.gd deleted file mode 100644 index 11ba939..0000000 --- a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAIPath.gd +++ /dev/null @@ -1,129 +0,0 @@ -class_name GSAIPath -extends Reference - -# Represents a path made up of Vector3 waypoints, split into segments path -# follow behaviors can use. -# @category - Base types - -# If `false`, the path loops. -var is_open : bool -# Total length of the path. -var length : float - -var _segments : Array - -var _nearest_point_on_segment : Vector3 -var _nearest_point_on_path : Vector3 - - -func initialize(waypoints : Array, _is_open : bool = false) -> void: - self.is_open = _is_open - create_path(waypoints) - _nearest_point_on_segment = waypoints[0] - _nearest_point_on_path = waypoints[0] - - -# Creates a path from a list of waypoints. -func create_path(waypoints : Array) -> void: - if not waypoints or waypoints.size() < 2: - printerr("Waypoints cannot be null and must contain at least two (2) waypoints.") - return - - _segments = [] - length = 0 - var current : Vector3 = waypoints.front() - var previous : Vector3 - - for i in range(1, waypoints.size(), 1): - previous = current - if i < waypoints.size(): - current = waypoints[i] - elif is_open: - break - else: - current = waypoints[0] - - var segment : GSAISegment = GSAISegment.new(previous, current) - length += segment.length - segment.cumulative_length = length - _segments.append(segment) - - -# Returns the distance from `agent_current_position` to the next waypoint. -func calculate_distance(agent_current_position : Vector3) -> float: - if _segments.size() == 0: - return 0.0 - - var smallest_distance_squared : float = INF - var nearest_segment : GSAISegment = null - - for i in range(_segments.size()): - var segment: GSAISegment = _segments[i] - var distance_squared : float = _calculate_point_segment_distance_squared(segment.begin, segment.end, agent_current_position) - - if distance_squared < smallest_distance_squared: - _nearest_point_on_path = _nearest_point_on_segment - smallest_distance_squared = distance_squared - nearest_segment = segment - - var length_on_path : float = nearest_segment.cumulative_length - _nearest_point_on_path.distance_to(nearest_segment.end) - - return length_on_path - - -# Calculates a target position from the path's starting point based on the `target_distance`. -func calculate_target_position(target_distance: float) -> Vector3: - if is_open: - target_distance = clamp(target_distance, 0, length) - else: - if target_distance < 0: - target_distance = length + fmod(target_distance, length) - elif target_distance > length: - target_distance = fmod(target_distance, length) - - var desired_segment: GSAISegment - for i in range(_segments.size()): - var segment: GSAISegment = _segments[i] - if segment.cumulative_length >= target_distance: - desired_segment = segment - break - - if not desired_segment: - desired_segment = _segments.back() - - var distance := desired_segment.cumulative_length - target_distance - - return (((desired_segment.begin - desired_segment.end) * (distance / desired_segment.length)) + desired_segment.end) - - -# Returns the position of the first point on the path. -func get_start_point() -> Vector3: - return _segments.front().begin - - -# Returns the position of the last point on the path. -func get_end_point() -> Vector3: - return _segments.back().end - - -func _calculate_point_segment_distance_squared(start: Vector3, end: Vector3, position: Vector3) -> float: - _nearest_point_on_segment = start - var start_end : Vector3 = end - start - var start_end_length_squared : float = start_end.length_squared() - if start_end_length_squared != 0: - var t = (position - start).dot(start_end) / start_end_length_squared - _nearest_point_on_segment += start_end * clamp(t, 0, 1) - - return _nearest_point_on_segment.distance_squared_to(position) - -# not exposed helper struct -class GSAISegment: - var begin: Vector3 - var end: Vector3 - var length: float - var cumulative_length: float - - func _init(_begin: Vector3, _end: Vector3) -> void: - self.begin = _begin - self.end = _end - length = _begin.distance_to(_end) diff --git a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAISteeringAgent.gd b/godot/addons/com.gdquest.godot-steering-ai-framework/GSAISteeringAgent.gd deleted file mode 100644 index cda4f98..0000000 --- a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAISteeringAgent.gd +++ /dev/null @@ -1,29 +0,0 @@ -extends GSAIAgentLocation -class_name GSAISteeringAgent - -# Adds velocity, speed, and size data to `GSAIAgentLocation`. -# -# It is the character's responsibility to keep this information up to date for -# the steering toolkit to work correctly. -# @category - Base types - -# The amount of velocity to be considered effectively not moving. -var zero_linear_speed_threshold : float = 0.01 -# The maximum speed at which the agent can move. -var linear_speed_max : float = 0.0 -# The maximum amount of acceleration that any behavior can apply to the agent. -var linear_acceleration_max : float = 0.0 -# The maximum amount of angular speed at which the agent can rotate. -var angular_speed_max : float = 0.0 -# The maximum amount of angular acceleration that any behavior can apply to an -# agent. -var angular_acceleration_max : float = 0.0 -# Current velocity of the agent. -var linear_velocity : Vector3 = Vector3.ZERO -# Current angular velocity of the agent. -var angular_velocity : float = 0.0 -# The radius of the sphere that approximates the agent's size in space. -var bounding_radius : float = 0.0 -# Used internally by group behaviors and proximities to mark the agent as already -# considered. -var is_tagged : bool = false diff --git a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAISteeringBehavior.gd b/godot/addons/com.gdquest.godot-steering-ai-framework/GSAISteeringBehavior.gd deleted file mode 100644 index c83c2c0..0000000 --- a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAISteeringBehavior.gd +++ /dev/null @@ -1,26 +0,0 @@ -extends Reference -class_name GSAISteeringBehavior - -# Base class for all steering behaviors. -# -# Steering behaviors calculate the linear and the angular acceleration to be -# to the agent that owns them. -# -# The `calculate_steering` function is the entry point for all behaviors. -# Individual steering behaviors encapsulate the steering logic. -# @category - Base types - -# If `false`, all calculations return zero amounts of acceleration. -var is_enabled : bool = true -# The AI agent on which the steering behavior bases its calculations. -var agent : GSAISteeringAgent - -# Sets the `acceleration` with the behavior's desired amount of acceleration. -func calculate_steering(acceleration: GSAITargetAcceleration) -> void: - if is_enabled: - call("_calculate_steering", acceleration) - else: - acceleration.set_zero() - -func _calculate_steering(acceleration: GSAITargetAcceleration) -> void: - acceleration.set_zero() diff --git a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAITargetAcceleration.gd b/godot/addons/com.gdquest.godot-steering-ai-framework/GSAITargetAcceleration.gd deleted file mode 100644 index e094008..0000000 --- a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAITargetAcceleration.gd +++ /dev/null @@ -1,31 +0,0 @@ -extends Reference -class_name GSAITargetAcceleration - -# A desired linear and angular amount of acceleration requested by the steering -# system. -# @category - Base types - -# Linear acceleration -var linear : Vector3 = Vector3.ZERO -# Angular acceleration -var angular : float = 0.0 - -# Sets the linear and angular components to 0. -func set_zero() -> void: - linear.x = 0.0 - linear.y = 0.0 - linear.z = 0.0 - angular = 0.0 - -# Adds `accel`'s components, multiplied by `scalar`, to this one. -func add_scaled_accel(accel: GSAITargetAcceleration, scalar: float) -> void: - linear += accel.linear * scalar - angular += accel.angular * scalar - -# Returns the squared magnitude of the linear and angular components. -func get_magnitude_squared() -> float: - return linear.length_squared() + angular * angular - -# Returns the magnitude of the linear and angular components. -func get_magnitude() -> float: - return sqrt(get_magnitude_squared()) diff --git a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAIUtils.gd b/godot/addons/com.gdquest.godot-steering-ai-framework/GSAIUtils.gd deleted file mode 100644 index 621a1f6..0000000 --- a/godot/addons/com.gdquest.godot-steering-ai-framework/GSAIUtils.gd +++ /dev/null @@ -1,40 +0,0 @@ -class_name GSAIUtils - -# Math and vector utility functions. -# @Category - Utilities - -# Returns the `vector` with its length capped to `limit`. -static func clampedv3(vector: Vector3, limit: float) -> Vector3: - var length_squared : float = vector.length_squared() - var limit_squared : float = limit * limit - - if length_squared > limit_squared: - vector *= sqrt(limit_squared / length_squared) - - return vector - -# Returns an angle in radians between the positive X axis and the `vector`. -# -# This assumes orientation for 3D agents that are upright and rotate -# around the Y axis. -static func vector3_to_angle(vector: Vector3) -> float: - return atan2(vector.x, vector.z) - -# Returns an angle in radians between the positive X axis and the `vector`. -static func vector2_to_angle(vector: Vector2) -> float: - return atan2(vector.x, -vector.y) - -# Returns a directional vector from the given orientation angle. -# -# This assumes orientation for 2D agents or 3D agents that are upright and -# rotate around the Y axis. -static func angle_to_vector2(angle: float) -> Vector2: - return Vector2(sin(-angle), cos(angle)) - -# Returns a vector2 with `vector`'s x and y components. -static func to_vector2(vector: Vector3) -> Vector2: - return Vector2(vector.x, vector.y) - -# Returns a vector3 with `vector`'s x and y components and 0 in z. -static func to_vector3(vector: Vector2) -> Vector3: - return Vector3(vector.x, vector.y, 0) diff --git a/godot/addons/com.gdquest.godot-steering-ai-framework/Proximities/GSAIProximity.gd b/godot/addons/com.gdquest.godot-steering-ai-framework/Proximities/GSAIProximity.gd deleted file mode 100644 index 8ce092e..0000000 --- a/godot/addons/com.gdquest.godot-steering-ai-framework/Proximities/GSAIProximity.gd +++ /dev/null @@ -1,22 +0,0 @@ -extends Reference -class_name GSAIProximity - -# Base container type that stores data to find the neighbors of an agent. -# @category - Proximities -# @tags - abstract - -# The owning agent whose neighbors are found in the group -var agent : GSAISteeringAgent -# The agents who are part of this group and could be potential neighbors -var agents : Array = Array() - -func find_neighbors(_callback: FuncRef) -> int: - return call("_find_neighbors", _callback) - -# Returns a number of neighbors based on a `callback` function. -# -# `_find_neighbors` calls `callback` for each agent in the `agents` array and -# adds one to the count if its `callback` returns true. -# @tags - virtual -func _find_neighbors(_callback: FuncRef) -> int: - return 0 diff --git a/godot/project.pandemonium b/godot/project.pandemonium index e3f17ca..d7a40f0 100644 --- a/godot/project.pandemonium +++ b/godot/project.pandemonium @@ -14,11 +14,6 @@ _global_script_classes=[ { "language": @"GDScript", "path": "res://Demos/DemoPickerUI.gd" }, { -"base": "Reference", -"class": @"GSAIAgentLocation", -"language": @"GDScript", -"path": "res://addons/com.gdquest.godot-steering-ai-framework/GSAIAgentLocation.gd" -}, { "base": "GSAISteeringBehavior", "class": @"GSAIArrive", "language": @"GDScript", @@ -59,11 +54,6 @@ _global_script_classes=[ { "language": @"GDScript", "path": "res://addons/com.gdquest.godot-steering-ai-framework/Behaviors/GSAIFollowPath.gd" }, { -"base": "GSAISteeringBehavior", -"class": @"GSAIGroupBehavior", -"language": @"GDScript", -"path": "res://addons/com.gdquest.godot-steering-ai-framework/GSAIGroupBehavior.gd" -}, { "base": "GSAIProximity", "class": @"GSAIInfiniteProximity", "language": @"GDScript", @@ -89,21 +79,11 @@ _global_script_classes=[ { "language": @"GDScript", "path": "res://addons/com.gdquest.godot-steering-ai-framework/Behaviors/GSAIMatchOrientation.gd" }, { -"base": "Reference", -"class": @"GSAIPath", -"language": @"GDScript", -"path": "res://addons/com.gdquest.godot-steering-ai-framework/GSAIPath.gd" -}, { "base": "GSAISteeringBehavior", "class": @"GSAIPriority", "language": @"GDScript", "path": "res://addons/com.gdquest.godot-steering-ai-framework/Behaviors/GSAIPriority.gd" }, { -"base": "Reference", -"class": @"GSAIProximity", -"language": @"GDScript", -"path": "res://addons/com.gdquest.godot-steering-ai-framework/Proximities/GSAIProximity.gd" -}, { "base": "GSAISteeringBehavior", "class": @"GSAIPursue", "language": @"GDScript", @@ -138,35 +118,12 @@ _global_script_classes=[ { "class": @"GSAISpecializedAgent", "language": @"GDScript", "path": "res://addons/com.gdquest.godot-steering-ai-framework/Agents/GSAISpecializedAgent.gd" -}, { -"base": "GSAIAgentLocation", -"class": @"GSAISteeringAgent", -"language": @"GDScript", -"path": "res://addons/com.gdquest.godot-steering-ai-framework/GSAISteeringAgent.gd" -}, { -"base": "Reference", -"class": @"GSAISteeringBehavior", -"language": @"GDScript", -"path": "res://addons/com.gdquest.godot-steering-ai-framework/GSAISteeringBehavior.gd" -}, { -"base": "Reference", -"class": @"GSAITargetAcceleration", -"language": @"GDScript", -"path": "res://addons/com.gdquest.godot-steering-ai-framework/GSAITargetAcceleration.gd" -}, { -"base": "Reference", -"class": @"GSAIUtils", -"language": @"GDScript", -"path": "res://addons/com.gdquest.godot-steering-ai-framework/GSAIUtils.gd" } ] _global_script_class_icons={ @"GSAISeparation": "", @"DemoPickerUI": "", @"GSAIBlend": "", @"GSAIEvade": "", -@"GSAIGroupBehavior": "", -@"GSAIPath": "", -@"GSAIProximity": "", @"GSAIRadiusProximity": "", @"GSAIFlee": "", @"GSAIPursue": "", @@ -180,15 +137,10 @@ _global_script_class_icons={ @"GSAIArrive": "", @"GSAIKinematicBody3DAgent": "", @"GSAIMatchOrientation": "", -@"GSAISteeringBehavior": "", -@"GSAITargetAcceleration": "", -@"GSAIUtils": "", -@"GSAIAgentLocation": "", @"GSAICohesion": "", @"GSAIFollowPath": "", @"GSAIKinematicBody2DAgent": "", @"GSAISeek": "", -@"GSAISteeringAgent": "", @"GSAIFace": "" } @@ -208,6 +160,10 @@ window/size/test_height=720 window/stretch/mode="2d" window/stretch/aspect="expand" +[editor_plugins] + +enabled=PoolStringArray( "res://addons/gdc_converter/plugin.cfg" ) + [input] sf_left={