Anyway, I've been up and down on my motivation and mood recently. I've been writing down all kinds of ideas. I've dabbled a bit with my jigsaw puzzle engine, I've added a little onto my Minecraft Pokearth map, I've jotted down DM snippets here and there, I've written up multiple functional specification documents on a Pokemon mod for Minecraft, and I've started to learn Java, not to mention all of the random housework that I have and haven't finished... or started. Recently, I've been looking into work outside of town, pondering the possibility of moving again soon. One thing is clear right now; I'm not settled and I'm not content. I know that next year, I will have to move no matter what, but I don't know...
Anyway, with my life in very little context here, it's clear that nothing I start will be finished anytime soon, so I've decided to release, rather make public, some libraries I've been using and even had on my hub for a while now. These are over a year old, in their original implementation. I figure that it'd be nice to share them, as they've been more than handy for me. Granted, the documentation for one is outdated, one is incomplete, and the other two lack documentation altogether, and only one has a demo. I hope to make up for that here.
Now without further ado, I give you these:
HDK Mouse And Keys (Updated)
HDK Pixel HUD
HDK Draggable HUD
HDK Icon Augments
HDK Mouse And Keys
This library has been update with some naming convention changes. If you use it already, you should update your sources to reflect these changes. The changes were to make variables a little more homogenous for use with the other two libraries.
HDK Pixel HUD
HDK Pixel HUD has some minor documentaion packaged with it that explains how to set up HDK Mouse And Keys if you only plan to use this library. Here, I'll explain how to use it. /HUDObject is the main datum for this library, a screen object with variables and procedures that allow it to be easily manipulated on the client's screen. Not listed below but also included is a full suite of alignment procedures. You may reference the actual library for usage.
/HUDObject
pixel_loc_x/y: coordinates on screen, in pixels, from the bottom-left
size_x/y: size of object, drawn from Width() and Height() of object's icon
list/attachments: list of attached objects, referenced by name
New(client/C,X,Y)
client/C: client whose screen on which to place object
X/Y: coordinates at which to place object, placed at pixel_loc_x/y if not specified
Icon(new_icon,reset)
new_icon: the icon to set for object, called to nab the new size
reset: changes icon back to initial
PixelMove(client/C,newx,newy,skip_attachments)
client/C: the client on whose screen object appears
newx/y: the coordinates on the screen to move object to
skip_attachments: TRUE to ignore any attached objects when moving, defaults to FALSE
PixelMoved() called after PixelMove() is completed
HDK Draggable HUD
HDK Draggable HUD allows for screen objects that may be freely moved around on the client's screen via the mouse. This comes in very handy for anything from puzzles to customizable interfaces. Even more interesting is the ability to drag around a window by grabbing a screen object.
/HUDObject/Draggable
PixelDrag()
always returns TRUE, used to make calls before dragging
PixelDrop()
used to make calls after dragging
var/drag_window_name: the name of an interface window to drag rather than the object
HDK Icon Augments
HDK Icon Augments adds a few useful icon procedures for altering icons. The four procedures allow you to dynamically resize images whilist maintaining their precious aspect ratios, outline icons, both inner and outer, and rotate dynamically sized icons by ninety degrees. There is an updated version of the last one that allows for inputs of any degrees, but rounds to the nearest ninety degree interval. If I find it, I will update it.
ResizeWithAspect(new_width,new_height,alignment)
new_widht/height: the new size of the image
alignment: favors portions of the picture for cropping, 0=left/bottom, 1=right/top, 2=center
InnerOutline(color,bold,blending)
OuterOutline(color,bold,blending)
color: color of the outline, defaults to black
bold: FALSE for thin outline, TRUE for think outline
blending: follows the same blending methonds as icon.Blend(), defaults to ICON_OVERLAY
Rotate(ccw)
ccw: TRUE for counterclockwise, FALSE for clockwise