I’ve added a collision system with three different types of collision detectors: circle, axis-aligned bounding box, and container, which is just AABB but inverted. I’ve also added a PhysicsSprite class and an AnimatedPhysicsSprite class to handle sprite acceleration and velocity. Along with the collision types, I’ve added collision reactions: Block, AnchoredBlock, Bounce, Trigger, BounceTrigger, BlockTrigger, and AnchoredBlockTrigger. Block and AnchoredBlock prevent the colliding sprites from intersecting, with the difference being that sprites that use AnchoredBlock will not be moved in this process. Bounce will mirror the vector of the sprite with it when it collides, and Trigger will trigger the other sprite’s _trigger<Sprite, Sprite> Action delegate. BlockTrigger, AnchoredBlockTrigger, and Bounce do their base actions while also triggering the other sprite’s action delegate.
The problem that I’ve been having is that it seems that Block() has a bug where when an AABB and a Container collide, Block() will push the AABB out of bounds. There also seems to be an inconsistency with how Bounce() handles colliding with containers