by Kaiochao
A collection of useful code files.
Requires BYOND 512, which is in beta at the moment, but whatever. It's great.

I made this because there's a lot of files, some of which depend on other files, and some of which exist only to bridge two other files, etc., and it would be incredibly inconvenient for everyone to have separate libraries for every single file just because they're modular.

  • An operator-powered /vector2 datum.
  • A SetPosition proc like the one in Absolute Positions, which was missing when I split that into the Sub-Pixel Movement and Pixel Positions libraries.
  • Vector2 integration for a few libraries (such as Pixel Positions and Mouse Position). No need for that Vector Movement library.
  • Event integration for a few libraries (such as Mouse Position and Button Tracker).
  • A special 512 edition PixelMove() which replaces my Sub-Pixel Movement library (because sub-pixel movement is built-in now, but a simple "slide by offset" proc is not).
  • A proc that converts a vector2 to the rotation matrix that rotates a north-facing icon to point in the same direction as the vector. No angle or atan2 required here!

Also includes some demos for things such as:
  • Car movement. Forward, back, turn.
  • Spaceship movement. Like car movement, but frictionless.
  • Look at the mouse. Makes the player, an arrow, point at the mouse as the mouse moves around.
  • Move to/toward the mouse. Press RMB, player moves towards the mouse, or where the mouse was clicked.
  • Multi-key movement with a server-side loop. Move diagonally by holding two movement directions. Way smoother than native key+rep movement.
  • Slide movement. Same as multi-key movement, but lets you slide along walls when moving diagonally instead of sticking to them.
  • Top-down shooter.
great library