CHANGELOG: - Profile posts! This one is long overdue but... yeah! You can now leave profile posts, and drop likes on them as well! - Classes folder! It's a folder... for classes! Don't ask me to explain what a class is, because I'm still not sure myself - Le Level Class has arrived! Instead of parsing level data in three different files, the level class has stepped up to do the dirty work. (thanks to memimoe for helping) - Renamed generate.css to iconkit.css, and deleted soon.css because it's ugly - Removed 404 redirect when trying to view an asset that doesn't exist - Updated readme to get with the times - Removed Herobrine
3.6 KiB
GDBrowser
Uh... so I've never actually used GitHub before this. But I'll try to explain everything going on here.
Sorry for my messy code. It's why I was skeptical about making this open source, but you know what, the code runs fine in the end.
The API folder
This is where all the backend stuff happens! Yipee!
They're all fairly similar. Fetch something from boomlings.com, parse the response, and serve it in a crisp and non-intimidating JSON. This is probably what you came for.
The odd one out is icon.js, which is for generating GD icons. The code here is horrendous, so apologies in advance. Improvements to it (especially UFO and robot generation) would be greatly appreciated! (and i will love you forever)
Assets
Assets! Assets everywhere!
All the GD stuff was ripped straight from the GD spritesheets via Absolute's texture splitter hack. If you want a nice categorized version, I've done all the dirty work for you.
/blocks, /objects and /initial are used for the analysis page. I just put them in seperate folders for extra neatness.
/gdfaces holds all the difficulty faces
/css has the CSS stuff. They're in a special folder so browsers won't cache them (in case of updates)
Figure out what /gauntlets and /iconkitbuttons have.
Classes
What's a class you ask? I still have no idea.
Seriously, these things are confusing
I guess the best way to put it is uh... super fancy functions???
Level.js parses the server's disgusting response and sends back a nice object with all the level info
XOR.js encrypts/decrypts stuff like GD passwords. I stole the code from somewhere so uh if you wrote it, please don't hunt me down
HTML
The HTML files! Nothing too fancy, since it can all be seen directly from gdbrowser. Note that profile.html and level.html have VARIABLES (name, id, etc) replaced by the server when they're sent.
comingsoon.html was used while the site was still in development, I just left it in there as a nice little throwback
Icons
It's GJ_Gamesheet02 but split into a much more intimidating cluster of a million files. These icons are put together and colored in the monstrosity that is icon.js
parsePlist.js reads GJ_GameSheet02-uhd.plist and magically transforms it into gameSheet.json. Props to 101arrowz for making this
forms.json is a list of the different icon forms, their ingame filenames, and their index in responses from the GD servers
/iconkit is a folder for the little grey preview icons on the icon kit
Misc
Inevitable misc folder
For level analysis
blocks.json - The object IDs in the different 'families' of blocks
colorProperties.json - Color channel cheatsheet
initialProperties.json - Level settings cheatsheet
objectProperties.json - Object property cheatsheet. Low budget version of AlFas' one
objects.json - IDs for portals, orbs, triggers, and misc stuff
Not for level analysis
colors.json - The colors for generating icons
credits.json - Credits! (shown on the homepage)
level.json - An array of the official GD tracks, and also difficulty face stuff for level searching
mapPacks.json - The IDs for the levels in map packs. I can't believe I have to hardcode this
secretStuff.json - GJP goes here, needed for level leaderboards. Not included in the repo for obvious reasons
sizecheck.js - Excecuted on most pages, used for the 'page isn't wide enough' message, back button, and a few other things
happy painting and god bless.