Commit Graph

34 Commits

Author SHA1 Message Date
Francois Belair
dc9a57e7fd Append _ to apply_steering and fix yield on ready 2020-02-07 09:56:03 -05:00
Răzvan C. Rădulescu
1baed58659 Review smart agents
I made minimal changes, mostly cosmetic like so:

- rename KinematicMovementType to MovementType since
  GSTKinematicBody2DAgent.KinematicMovementType.COLLIDE for example is
  really more than a mouthful with repeated Kinematic in the name
- add optional movement_type parameter to the constructor, otherwise
  we'd be forced to construct the object and then specify as an
  aditional step the type of movement if we want something else than the
  default
- rewrote the constructor to yield on ready and removed _on_body_ready
- renamed _apply_steering to apply_steering as this is a public method
- renamed _on_SceneTree_frame to _on_SceneTree_physics_frame
2020-02-07 12:29:45 +02:00
Francois Belair
2ae06d3da3 Split agent types into specialized classes 2020-02-06 16:30:53 -05:00
Francois Belair
85784791ec Add and have most demos use specialized agents
The agents auto-update themselves and can calculate their velocities.
This keeps the user from having to create an update_agent function.
It can also save the user from having to keep track of and update
velocities at all by using the provided `apply_steering` method.

Closes #15, closes #16
2020-02-06 16:00:41 -05:00
Francois Belair
57f3c4a24a Make calculate_acceleration return void
This makes the code more in line with GDQuest gdscript guidelines about
 not both transforming state and returning a value.
2020-02-06 14:46:21 -05:00
Francois Belair
ae3c3569ee Add tags: moniker for virtual functions
Works with the docs maker accordingly
2020-02-02 12:48:58 -05:00
Francois Belair
3cf2089ada Add missing virtual tag 2020-01-30 18:24:47 -05:00
Francois Belair
b62d7f05aa Amend docstring w/ virtual funcs and private vars 2020-01-30 13:06:35 -05:00
Nathan Lovato
0586878fcf Fix the style of booleans and virtual functions in the API
Made booleans start with a prefix, e.g. is_open
Added a leading underscore to two virtual functions
Added VIRTUAL comment above several virtual functions
Renamed accel -> acceleration in a function
2020-01-29 15:53:57 -06:00
Nathan Lovato
bd41d5987c Edit docstrings in src/Behaviors 2020-01-29 10:13:12 -06:00
Francois Belair
4885707145 Improved how the AI looks in Pursue VS Seek demo
They were looking kind of floaty, moving not like spaceships but like
they were on ice. Now they travel along their orientation, towards
where the player is/will be.
2020-01-29 10:04:47 -05:00
Francois Belair
9c87dcf7f0 Fix unknown mangling issue from previous commit
For some reason, github's merge destroyed a lot of newlines, which
broke GSTPath.
2020-01-29 09:26:20 -05:00
Francois Belair
62ad172767 Move class docstring to top of class
For documentation purposes, current tools expect it there.
2020-01-28 23:56:10 -05:00
Nathan Lovato
6276fc0413 Update code reference
Proof and edit docstrings in all the base types and proximity types
Remove docstring for the _init builtin callback
2020-01-27 17:31:10 -06:00
Francois Belair
2d8bdaebd7 Add documentation strings to behaviors 2020-01-27 13:24:05 -05:00
Francois Belair
5f6dd15c0e Add documentation strings for base types 2020-01-27 12:57:51 -05:00
Francois Belair
8228694713 Refactor var names for consistency aka min/max 2020-01-22 11:55:49 -05:00
Francois Belair
0eb4adc48c Fix bug for collision avoid direction reversed
Once the agent was close enough to a neighbor, it tried to get closer
instead of away.
2020-01-21 12:49:46 -05:00
Francois Belair
dffec9efa6 Add avoid collisions demo 2020-01-16 17:27:04 -05:00
Răzvan C. Rădulescu
f3f40848a1 Update folder structure for FoollowPath Demo 2020-01-16 15:30:55 +02:00
Răzvan C. Rădulescu
1a37b2bee0 Update project to follow GDScript guidelines closer
Used `var variable := 0.0` as discussed in the Godot issue, instead of
`var variable: = 0.0`.

Mostly these are minor/cosmetic changes, but I've also reorganized the
folder structure (naming of folders) to reflect our guidelines, plus
made some minor changes to the demo codes. Still work in progress.
2020-01-16 10:44:44 +02:00
Francois Belair
b325976139 Add path following toy demo 2020-01-15 17:15:40 -05:00
Francois Belair
b0442982d0 Implement demo for separation and cohesion 2020-01-12 10:25:10 -05:00
Francois Belair
a01f5d5b2e Clean up and improve group behaviors' code
The first pass was somewhat obtuse and lacked a common class that
differentiated them from behaviors that didn't use Proximities.
2020-01-12 10:24:03 -05:00
Francois Belair
780e6038b8 Add FollowPath behavior 2020-01-12 10:23:51 -05:00
Francois Belair
84f0465b88 Add AvoidCollision behavior 2020-01-12 10:23:42 -05:00
Francois Belair
34b58a6bba Add Cohesion behavior and RadiusProximity caching 2020-01-12 10:23:19 -05:00
Francois Belair
ac99344633 Implement Separation behavior and add Proximity 2020-01-12 10:22:54 -05:00
Nathan Lovato
8fb4f4c51a Replace multiline comments with comment blocks
The use of multiline blocks in GDSCript for comments leaves them in the
final compiled file, increasing size and potentially processing for no
end-user gain.
2020-01-12 10:21:43 -05:00
Francois Belair
9f945cbf85 Implement review suggestions to code
Razvan reviewed the code and suggested a number of changes to improve
readability and make facets of the code more explicit and consistent.
2020-01-12 10:20:06 -05:00
Francois Belair
3e9ce641fb Add Blend and Priority behaviors 2020-01-12 10:18:40 -05:00
Francois Belair
546d12b15b Implement demo for Face behavior 2020-01-12 10:18:16 -05:00
Francois Belair
f531e835fd Implement LookWhereYouGo, and demo for Pursue 2020-01-12 10:17:53 -05:00
Francois Belair
fb538b72cb Reorganize project
The GST namespace has been added to prevent class name conflicts, and
the project has been reorganized to make extensions and purpose easier.
2020-01-12 10:16:37 -05:00