Wyozi Libraries

Hello. Over time I’ve been working on a number of libraries which I think are objectively decent, so I thought I’d post them all here on the off chance that someone finds use for them.

Medialib

Could be descibed as the core of “Cinema” gamemode contained into a library. Allows playing and querying for metadata about video and audio from Youtube, Vimeo, Soundcloud, Twitch, web-hosted mp3 files etc. The ultimate goal is to be as responsible and easy to use as possible.

Features

  • Can be installed as a single file, which makes adding it into an addon easy
  • A single API for all media types, so implementing your PlayX clones is easy
  • Querying for metadata is different from media playback, so you can implement serverside sanity checks/media service detection easily.
  • Has extensions to eg. fetch metadata for MP3 files or make media volume depend on 3D distance (even for HTML- based services)

3D2D-IMGUI

Library with the goal of making creation of 3D2D panels that accept input as easy as possible. Note: the library sacrifices some performance for safety guarantees and “deferred rendering” (the draw calls are executed only when you call Render).

See also https://github.com/HandsomeMatt/3d2d-vgui/ if you need more functionality, want to look like average gmod UI in 2008 or if you are a fan of verbose code.

NetTable

A table networking library, which networks tables to clients the first time they request it and keeps them updated after. Example use cases would be storing currently playing videos in a Cinema gamemode (if you did not want to store that data in entities) or networking the state of a game of chess.

README is kind of unclear. See examples for now.

See also https://github.com/Winded/BiValues for a similar library that allows eg. binding values to VGUI components.

LuaJS- bridge

Makes calling Javascript functions in a HTML panel way easier.

FruityDB

Database abstraction and simplification. Supports GMod’s built-in SQLite, mysqloo and tmysql4. Sadly this library was created before my obsession over single-file libraries, so it must be installed as an addon.

WorldView

Tiny library for requesting a RenderView from specific point in world (because render.RenderView cannot be used in ENT:Draw). To use, call worldview.Request(“id”, {pos=pos, ang=ang}). The function returns a Material which you can use whereever.

Binary libraries
Use these at your own risk. Code is not that good.
https://github.com/wyozi/gmod-sysinfo Access to uptime, CPU usage and memory usage.
https://github.com/wyozi/g-ace-io File library but for the whole system.
https://github.com/wyozi/gm_git libgit2 bindings.

[del]huh? where do i find this?[/del]

oh, i thought it was a dll file

sorry for a bit of offtopic, but what is this song called?

The name of the song was in the tab/window name.

Come on now.


Great releases though Wyozi. I’m sure I’ll make some great use of these.

WorldView does not seem to work properly.


for k,v in pairs(ents.FindByClass("prop_vehicle_jeep")) do
	v:SetMaterial(worldview.Request("id", {pos=v:GetPos(), ang=v:GetAngles()}))
end

I’m not sure what you’re trying to do there. Why would you set jeep material to a view from a position in the world? You also need to change the “id” to be unique per jeep.

I only had one vehicle spawned.

It is a POC type thing.