[libs] EJew's library pile. New: replays & playlists

Showcase your libraries, tools and other projects that help your fellow love users.
Post Reply
User avatar
EntranceJew
Prole
Posts: 31
Joined: Fri Apr 03, 2015 10:02 pm
Location: Saint Petersburg, Florida
Contact:

[libs] EJew's library pile. New: replays & playlists

Post by EntranceJew »

Hello everybody, I love you. Here are some libraries that I managed to wiggle out of my monolithic project. If you think you have a better name for any of my libs here, lay 'em on me home slice. Also if you think I should change up how the libraries work, I'm all ears.

imgurlua
A Lua client for the Imgur API. It can be used to interact with the Imgur API in your projects.
I wanted the screenshot button to make screenshots instantly linkable, so here we are. Requires an external SSL library. If you want some help on getting started, just check out imgurlua-example and there you go.

Lisa Frank
A helper to colorize an indexed image with a provided palette.
Want to be a new aged retro hippie? Don't want to use expensive shaders? Use this lib to transform an indexed image against a palette. It uses the red value of the index color, so use the blue and green to make things easier for you to distinguish while you're spriting. The red value is 0 based and corresponds to the leftmost pixel in the palette image. I accidentally made the palette also pass its alpha, so you can even hold yourself to ridiculous standards like having a reserved transparency color.

love-mml
A Music Macro Language player (for love).
It's like a midi instrument player, except less complicated. If you wanted to have timed musical events and don't need complex music, this might be something to look at. I'm not entirely sure how to get sustained notes going, the SoundData transforms would be pretty crazy.

timer
A simple lua timer library that mimics the gmod timer library.
Honestly, you might be better off with HUMP's timer but I didn't even think to look for an existing library when I needed this.

hooker
A simple lua hooking library that mimics the gmod hook library. Expose and call hooks.
I'm working on a project that's supposed to be pretty mod-friendly. If you're trying to do something similar, this might do something that you want it to. Or you could use HUMP's signals, maybe.

whatdoyouneed
Want to know what files are using what? Need to debug your requires? Is your scope acting like you think it is?
Basically, it just records which files require which other files. Includes a convenient table print function if all you need to do is look at it. Inspired by slime and bartbes' discussion over here, I wanted a way to utilize lurker's pre/post-swap hooks on certain files without having to hardcode a dependency tree of a given file, especially for third party libs.

love-notes
This isn't a library, it's a knowledgebase!
Here's a list of stuff that I wish I knew about and knew the importance of before trying to write games. If you have any like-advice, I suggest putting something here.

placeholdme
No more waiting around for assets!
Generates a bunch of graphics for use as a sprite sheet. Allows you to set the text on the images. Useful for testing animations and the like.
Image

blackbox
Record all love events and play them back.

Have you ever had a user do something so outrageously difficult to reproduce that you just have to know how to make it happen yourself? Do you want an easy way of creating replays? If you happen to use the love event system extensively, this might be for you! Set it up, get it to start recording, figure out a way to save its recording with some other serialization library, reload the replay, play it back with this.

Deck
Playlist control for LÖVE.

This allows you to create media-player like sequences of audio or video to play in order. It's an abstraction for sources. If you ever wanted a timeline object that you could step through, this might also be something worth referencing since it mirrors a lot of the design logic that LÖVE uses for Sources. This was originally part of MoreVids but I thought it might just be generic enough to break into its own repository.

MoreVids
A library for showing preroll vids from other games.

Have you ever added "-novid" to a source engine game's launch options? Have you ever modified "sIntroSequence=" in an .ini file? Do you for some reason wish to show users that accidentally typo "-novid" in your game as "-movid" more videos, as they have clearly requested? What better way to celebrate the launch of love 0.10.0 than by using this newfound ability to play videos to its fullest potential.

poopsmith.lua
The much less useful alternative to strict.lua.

If you've ever revisited your old code, you've probably thought to yourself "Why did I make so many global variables?!" It's natural, everybody at some point in their life has to make some bad code before they can make gold. By dropping this library into your project, you'll break your code that uses nasty habits like writing globals. This will give you a chance to find out where in your code you're using globals where you may not mean to. You could also just use strict.lua

vmf.lua
Valve map formats structured as lua tables.

Have you ever wanted to read a valve map as a lua table? No? Well now you can! I threw this together just to help figure some things out and thought someone else might want it. Almost all of the data valve uses is formatted like this, so it's technically able to read stuff like GameInfo.txt or GameConfig.txt or even .vmt files. I recommend CapsAdmin's solution in goluwa over mine, but I couldn't find it when I needed it.

I also made minor changes to monocle and lurker but I don't think they warranted a pull request.
Last edited by EntranceJew on Wed Dec 23, 2015 5:20 pm, edited 5 times in total.
sandsmas: A LÖVE Editor
My Libraries: Imgur, Palettes, Music Macros, Timer, Hooks
User avatar
EntranceJew
Prole
Posts: 31
Joined: Fri Apr 03, 2015 10:02 pm
Location: Saint Petersburg, Florida
Contact:

Re: [libraries] Imgur, Palettes, Music Macros, Timer, Hooks

Post by EntranceJew »

imgurlua just got updated to use luajit-request, and if you're needing an example on how to use it, set up luajit-request then go ahead and check out imgurlua-example and you'll be cool. (You'll need to register your own application on imgur in order to get started, nothing I can really do about that.)

I also isolated most of the changes for LoveFrames dynamic text selections so if you want to help fix that up and ready it for a pull request that'd be neat, otherwise just look at this:
Image
sandsmas: A LÖVE Editor
My Libraries: Imgur, Palettes, Music Macros, Timer, Hooks
User avatar
EntranceJew
Prole
Posts: 31
Joined: Fri Apr 03, 2015 10:02 pm
Location: Saint Petersburg, Florida
Contact:

Re: [libraries] Too many to put in the title. New: placehold

Post by EntranceJew »

I stealth updated the thread to add whatdoyouneed, a lib that monitors require statements and makes a tree map out of them. You could combine this with lurker to dynamically reload all the files in a chain during a preswap.

But I also added placeholdme, long story short it makes images like these:
Image
Out of code like this:

Code: Select all

love.graphics.newImage( placeholdme(100,50,3,4) )
I also started a repo of my own notes about stuff that I see around that might be useful to people called love-notes, because the wiki is a bit old and I didn't want to mess it all up with my crazy ramblings.
sandsmas: A LÖVE Editor
My Libraries: Imgur, Palettes, Music Macros, Timer, Hooks
davisdude
Party member
Posts: 1154
Joined: Sun Apr 28, 2013 3:29 am
Location: North Carolina

Re: [libraries] Too many to put in the title. New: placehold

Post by davisdude »

These look like some really nice libraries! These deserve more attention! :)
GitHub | MLib - Math and shape intersections library | Walt - Animation library | Brady - Camera library with parallax scrolling | Vim-love-docs - Help files and syntax coloring for Vim
User avatar
Duster
Prole
Posts: 32
Joined: Fri Dec 19, 2014 8:34 pm
Location: Ontario, Canada

Re: [libraries] Too many to put in the title. New: placehold

Post by Duster »

Placeholdme seems really useful, I'm definitely gonna use that
User avatar
EntranceJew
Prole
Posts: 31
Joined: Fri Apr 03, 2015 10:02 pm
Location: Saint Petersburg, Florida
Contact:

Re: [libraries] Too many to put in the title. New: placehold

Post by EntranceJew »

Long time no update! Well, I haven't put out a lot of useful libraries recently, but maybe you might find the inner mechanisms of one of these babies inspiring:

blackbox
Record all love events and play them back.

Have you ever had a user do something so outrageously difficult to reproduce that you just have to know how to make it happen yourself? Do you want an easy way of creating replays? If you happen to use the love event system extensively, this might be for you! Set it up, get it to start recording, figure out a way to save its recording with some other serialization library, reload the replay, play it back with this.

Deck
Playlist control for LÖVE.

This allows you to create media-player like sequences of audio or video to play in order. It's an abstraction for sources. If you ever wanted a timeline object that you could step through, this might also be something worth referencing since it mirrors a lot of the design logic that LÖVE uses for Sources. This was originally part of MoreVids but I thought it might just be generic enough to break into its own repository.

MoreVids
A library for showing preroll vids from other games.

Have you ever added "-novid" to a source engine game's launch options? Have you ever modified "sIntroSequence=" in an .ini file? Do you for some reason wish to show users that accidentally typo "-novid" in your game as "-movid" more videos, as they have clearly requested? What better way to celebrate the launch of love 0.10.0 than by using this newfound ability to play videos to its fullest potential.

poopsmith.lua
The much less useful alternative to strict.lua.

If you've ever revisited your old code, you've probably thought to yourself "Why did I make so many global variables?!" It's natural, everybody at some point in their life has to make some bad code before they can make gold. By dropping this library into your project, you'll break your code that uses nasty habits like writing globals. This will give you a chance to find out where in your code you're using globals where you may not mean to. You could also just use strict.lua

vmf.lua
Valve map formats structured as lua tables.

Have you ever wanted to read a valve map as a lua table? No? Well now you can! I threw this together just to help figure some things out and thought someone else might want it. Almost all of the data valve uses is formatted like this, so it's technically able to read stuff like GameInfo.txt or GameConfig.txt or even .vmt files. I recommend CapsAdmin's solution in goluwa over mine, but I couldn't find it when I needed it.
sandsmas: A LÖVE Editor
My Libraries: Imgur, Palettes, Music Macros, Timer, Hooks
User avatar
Ulydev
Party member
Posts: 445
Joined: Mon Nov 10, 2014 10:46 pm
Location: Paris
Contact:

Re: [libs] EJew's library pile. New: replays & playlists

Post by Ulydev »

Awesome libraries. Really. :awesome:
User avatar
zorg
Party member
Posts: 3465
Joined: Thu Dec 13, 2012 2:55 pm
Location: Absurdistan, Hungary
Contact:

Re: [libs] EJew's library pile. New: replays & playlists

Post by zorg »

I'm gonna love the heck out of the mmlplayer, thanks! :3
Me and my stuff :3True Neutral Aspirant. Why, yes, i do indeed enjoy sarcastically correcting others when they make the most blatant of spelling mistakes. No bullying or trolling the innocent tho.
Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 3 guests