- Added ConsoleOnly frontend. This is to make it quicker to test Galavant features which do not need Unreal Engine. I wrote this while the GalavantUnreal frontend was broken
- Fixed HTNPlanner includes to be absolute
- Fixed CombatComponentManager warning regarding my lazy resetting of current CombatAction
- Updated Jamfile for GalavantPseudotarget to have correct library ordering and added some comments in Jamrules about this
- Fixed frustrating bug in PooledComponentManager where member Subscribers was being used instead of ComponentManager Subscribers. The solution was to get rid of PooledComponentManager's Subscribers declaration
- ComponentManager now only goes all the way with unsubscribing if there are entities left to unsubscribe
- Fixed an apparent bug in EntityListSortAndRemoveDuplicates() and EntityListRemoveNonUniqueEntitiesInSuspect() where the iterator wouldn't be advanced on removal
- Filled in InteractComponentManager and added PickupDirect() which puts a pickup straight into an entity's need (for testing purposes)
- Added NeedTypes and AgentComponentManager interface to get an agent's specific need
- Added InteractPickupTask, which uses the PickupDirect command on a TargetEntity
- FindResource now marks the found resource as the TargetEntity
- WorldResourceLocator now stores an Entity and a ResourceType on the Resource, facilitating Pickups as well as making the zero position shenanigans go away
- Got all the Sublime project working dirs sorted out and added a bunch of helpful build systems (for me, at least)
- Added my TODO file to remember where I left off and such
- I've converted all std::cout calls to LOG calls, except for those in tests, which aren't essential
- Added Logging util for initializing logging and decreasing including plog headers directly
- Goal, Compound, and Primitive Tasks now store and return Task pointers to themselves. This is to reduce boilerplate and mistakes. I'm now doubting whether avoiding inheritance and static_casts was worth it
- Added PLog, a logging library, which will eventually replace all std::cout calls in Galavant. It's robust and will allow me to pipe output from Galavant lib to Unreal Engine logs
- I finally sorted out the Jam building problems. SubDirC++Flags are appended to C++Flags. They do not replace C++Flags. This was very frustrating. Lesson learned: when you find weird shit in other peoples' code, it doesn't hurt to read their code (in this case, Jambase)
- Added some debugging shit to PlanComponentManager
- Small formatting changes
- Added EntitySharedData which is for things like Position that almost all components need
- Changed interfaces which didn't hold up to scrutiny
- Fucked with Jamfiles/Jamrules to get Unreal working
- Added Subject Observer, which I will likely refactor heavily, but gives an idea for what it will be like
- I decided to add Flatbuffers in its entirety to Galavant. I feel confident that it will work for all of my data serialization needs. Here's to hoping this doesn't bite me in the ass later.
- Wrote an awful experiment involving flatbuffers to get a feel for how to use the library
- Updated the readme with links and information about Jam
- Jamfiles now reference eachother and all use Jamrules for compilation variables. Building from the root galavant/ now deposits libs and bins to root galavant/lib and galavant/bin, which is much more organized. So far, only experiments are built to bin (as Galavant is supposed to be a lib only)