Internal thread (for me when I start coding this):
http://www.hard-light.net/forums/index.php/topic,33845.0.htmlAs per mikhael's request, a brief outline of stuff I'd like to have
gr - Basic graphics libraryFor all 2D drawing functions, like line, circle, box, bitmap, etc.
g3d - 3D graphics libraryFor all 3D drawing functions, like models or bitmaps in 3D space or maybe 3D lines
sxp - SEXP functionsMaybe just an evaluate-sexp function. This would mostly be a hack to get SEXP data and functions integrated where Python doesn't have 'em
mth - Math libWhatever functions aren't included with default Python math libs.
Presumeably some of the appropriate python libs would be imported by default, so you wouldn't have to import them every time. The math library in particular, since getting rid of the prefix would make it more readable and easy to use and there really aren't many functions named "cos"
Past that...
Ship classFeatures simple stuff like get_speed get_name get_target etc.
Mostly I've been more concer
HUD Stuff - basically once new HUD stuff is define, it turns off the original ones. The goal is more to provide an all-new system than to integrate with the old one, that would be more trouble than its worth.
Now to quote my post in the big feature thread:
For the new HUD I was thinking along similar lines. The old :V: system is so hardcoded it isn't even funny.
For both of these I'd probably be relying
on Python integration as well to give a lot of flexibility (without sacrificing much simplicity) to modders.
So general idea for a gauge entry:
$Name: Blah
$Show in: ("cockpit" "target cockpit")
$XCoord: 100 ;; Draw 100 pixels to the right of the left edge of the screen
$YCoord: 240 ;; Draw 200 pixels down from the top edge of the screen
$Draw: {
# What you want to draw goes here. Like to draw a
# 100 pixel-square X:
# Top left to lower right
gr.line(0, 0, 100, 100)
# Top right to lower left
gr.line(100, 0, 0, 100)
# Draw the current target model too?
g3d.draw_ship_model(self.target(), 0, 0, 10, 10)
# Write the name in the upper left
gr.text(self.target().get_name(), 0, 0)
# Note that 'self' would refer to the ship you're
# currently viewing from, rather than just the player ship.
}
Gauges would be separated into different 'screens' (I use the term because that's the class name for the new GUI, Gui_screen), each screen would correlate to a different ship type or something.
Assuming all this got implemented, it'd be really really flexible; you could do pretty much anything you wanted with the HUD, the only limit would be how advanced of Python knowledge you had. [/B]