19,298 Commits over 1,614 Days - 0.50cph!
Ooops, forgot to use the goal blackboard rather than temporaryBlackboard for goal plan fallbacks.
Fixed a few bugs, there's definitely more.
Some optimizations. Set max goal count to 50 and max goal plans per goal to 25, as allocation presumptions for the binary heaps in agent+decisionmaker + made the binary heaps shared among all agents (since they're only ever accessed within the scope of SimTickDecisionMaker().
This now seem to work, but obviously needs more rigirous testing to confirm that it doesn't fuck up.
Goal now buffers the blackboard of it's latest decision, for use when scoring goal plans. Renamed the root function and commented out the old root function, so that the new DM path is now used by agent (for testing).
Added in the debug hooks.
When picking a goal or goal plan when multiple elements scored above the given threshold, we now reinsert elements that fail but with a slightly lower score than the new top of the heap element, since we have no guarantees that a goal or goal plan has a valid path to a goal plan variant.
When iterating goal plans, we now try to construct a valid goal plan variant for the current goal plan, and if that succeeds we try to set it as the new behaviour of our agent.
Fixed BiomeMaterialObject.GetMaterialsFromLibrary not grabbing disabled/inactive renderers
Fixed disabled BuildingView components on some prefabs...
Fixed UnitItembar UI showing items that the Unit is not holding
Split selectable indicator widget into two seperate widgets, one for hover and one for selected indiactors
Building hovered indicator shows construction progress ball
added interaction positions back
Actually fixed building category toggle states
footsteps added to walk carry anim
making small shelter work
Fixed UnitCommandsWidget not reseting category toggle state
AI designer inline creation for goals/plans in node graph
SmartObject init spits errors when interactions are flagged as positonal but no positions are defined
Interaction position data for medium hut
fixed/changed mat on shelter
AmbientSoundPlayer cleanup
Actions.CraftItem handles animation internally, exposed param name in item data
Removed animation actions from crafting abilties
spear crafting sound edit
testing a small change to edge scrolling
Getting there... Iterative approach to best goal with support for moving to next best goal and so on when finding goal plan fails...
Items can define crafting sounds in their data, AnimationAudioBundle asssts have a special mode for playing item craft sounds
Rather than Decision being a binary heap item for priority heaping, we let Goal and GoalPlan be the binary heap items instead. This is because we don't want DecisionMaker to clear away our sorted decision scores for goals when we create the heap of goal plans (necessity of moving to an iterative approach). This also greatly simplifies how much Agent+DecisionMaker must touch Decisions.
UnitAttachments.CanAttach checks validity of points that will be blocked by attaching the item passed in (blocked, occupied)
ProcessItemIntoDesiredItem GoalPlan filters items that are held by other units
People no longer to try to start conversations with people who are busy building, crafting or gathering stuff
Added optional decision making path in DecisionMaker that returns a binary heap of decisions (all decisions), sorted by decision score, so that the best decision is always at the top of the heap. It also returns the number of elements that scores over the decision threshold, so that we know how many items on the top of the heap we consider "best decisions".
Added Binary Heap class for optimal priority access to the list of decisions that Decision Maker executes over.
TribeTrackerPortrait text is consistent with UnitInfoWidget
Unit.Roles.GetActiveRole now outs whatever Role the primary AI behaviour is tagged with, GetPrimaryRole outs the Role with highest weight
Deleted old foxgloves_lods prefab
Senses Load Balancing WIP
Few buildable icons (needs recropping)