4,304 Commits over 1,552 Days - 0.12cph!
Fix creating new subgraph, deal with creating new subgraph inside itself and overwriting later
Start changing graph fixed data to use node locations instead of node ids - because groups and subgraphs have their own set of nodes, fixed data needs to know where the a node is in the hierarchy
Make undo redo function in context menu
Default new group nodes with 1 input and 1 output pins
Add icons for undo redo in context menu
Don't show root anim node in context menu for groups and subgraphs - root should always be in top level probably
Remove duplicate node id checking in setcontext, probably not needed now
Restore nodes for subgraph and blend2d visualizers
Give graph visualizers a node location so it can restore the node when graph changes
Fix some search crashes
Search now works
More search shit
Focus on location uses node path
Temp fix for going to log item location
Add back GetNode functions to IAnimationGraph temporarily to fix remaining errors and see whats what
Visualizer goes down the path to get to the correct node manager
Graph search attempts to check nodes in all node managers, maintaining correct node path in location
Break everything so that node ids are unique local to their node manager - this is how dota works so I should do the same
Try using a node stack for GetOutputNodeID, breaks highlighting but fuck it for now
Fix crash when changing subgraph on node with connections
Detect cyclic subgraph nodes
GetOutputNodeID has optional groupnode id so groupinputnode can know what group its for
Creating subgraph from selection now works
Add subgraph manager so subgraphs can be shared across subgraph nodes (this breaks everything but I've gotta figure it out either way)
Give subgraphs a context
Subgraph manager sets graph for new subgraph context and sets context for their node manager
Fix subgraph saving
Set group input/output ids for subgraph node
If we paste a subgraph node, clear the input connection map
Resync group node input/output node ids in the node instead of node manager, slightly slower but removes dependency on CAnimNodeManager::GetGroupNodeID
Animgraph: Fix aim matrix anim node not working in groups
"Create Group From Selection" and "Create New SubGraph From Selection" in context menu to make it obvious that they're being created from selection
Remove customer machine checks
Set subgraph node UI name to base filename if unnamed
Animgraph: Use MPropertyAttrChangeCallback instead of MPropertyAttrStateCallback for subgraph filename, fixes so many issues with updating node pins properly
Animgraph: Save all subgraphs after saving the graph
Disable subgraphs on customer machine so users can't use it yet
Fix slashes when saving subgraph
Animgraph: Save and load subgraphs when graph saves (although save needs to be done in a better place)
Animgraph: subgraph node no longer derives from group node, too much fucking about to make that work.
Animgraph: Set subgraph filename on node after creating a new one
Animgraph: Load subgraph from file when subgraph filename changes on subgraph node
Animgraph: Add interface for subgraph nodes
Animgraph: Check the asset system for subgraph
Animgraph: Allow nodes to decide if they want to show a visualizer or not
Animgraph: Don't show visualizer for subgraph nodes that don't have a subgraph asset set
Add functions to animation system for creating/loading/saving subgraphs
OnCreateNewSubGraph asks for save location, creates new subgraph and saves it
Undo early outs in build new contact
Allow the engine to switch us to keyframed if we're attached to a moving parent as this should be fine to do now
Add interacts exclude for static level, world geometry and player clip for triggers - fixes stupid load times for triggers that get set to keyframed but actually aren't
Turns out we actually do want keyframed client side - gotta fix rubikon instead
Disable all collisions and only enable touch on base trigger and precip
Don't default motion type to keyframed on client - we sometimes have client side triggers (func_precipitation) and it's causing rubikon to shit itself on map load
Fix SetupPhysicsFromUnscaledCapsule and SetupPhysicsFromUnscaledAABB still forcing us to keyframed - let us decide that
Fix SetupPhysicsFromModel not setting ideal motion type after setting move type, this made it so static motion type was never possible, always got reset to keyframed (wtf) - fixes slow loading repo
Support for shatter_glass initial damage positions
Add r_force_copy_texture_using_shaders for the rare situations some cards are encoding video with incorrect color format
Fixup our sky entity and implement everything the native env_sky entity has, replace native env_sky with our own C# one. Remove env_sky_atmosphere (if you use this, replace it with env_sky and use a atmosphere material)
Add Hammer.Skybox helper to render skybox in hammer
Implement phys_spring
Remove the bullshit constraints (phys_constraint, phys_ragdollconstraint, phys_genericconstraint, phys_keepupright - if we ever need these we can implement in a better way)
Implement phys_pulleyconstraint
Animgraph: Add GetGroupNodeID to ianimnode so we can add the group id to the current path when going to location - fixes clicking warning/error not taking you to the correct node if it's in a group
Put shatter_glass and voxel_surface into a destruction category
Put func_precipitation into effects category
Use tolower on entity category so we don't create multiple categories for same name
Implement phys_ballsocket