I haven't updated my branch since I have returned to the fold, but and am in the process of updating my version of PyPRP so that it's more compatible with the current versions before doing so.
However, Christian and I were discussing my changes. He has, for now, stepped aside from developing the trunk to deal with other stuff. So he has asked me to post here regarding my changes so that we (The Developers and the GoW's in general) can all discuss some of the stuff that I've developed in my off time:
So, let's run down the list of stuff:
prp_MatClasses
Lot's of changes were made since my last update to my branch. The majority of them were superficial. Things were mapped to just about every button in blender, that would allow for it, to access just about every possible flag you could set for a material or layer. The upside of this is that it's a pretty powerful tool that runs much more efficiently in game.
The coloring of layers is now entirely on a pre-layer basis, save for the Specular coloring. Layer Animations now are also entirely on a pre-layer basis. The downside to this is that a wizard will have to be written that will map the current layout of colors to the new scheme, which, really isn't all that difficult.
Included with the animations is now plLayerBink's and plLayerAVIs. Those unfamiliar with these, they are essentially what the linking panels in Myst V were. They reference a bik file that you place in the avi folder, and play a movie on the layer. These are entirely exported with PyPRP and require no manual editing of files. You just load up the original file (the avi) into Blender, and chose the movie rather than image source. You'll also need alcscript to define the length of the playback. Once you've exported you drop the converted avi or video file (the bik version) into the avi folder of Uru and away you go.
plLayerSDLAnimations and plLayerLinkAnimations are also supported. LayerSDL's are an animation that in reference to the time of day of your age they're used for day night cycles. The variable is defined in your alcscript, and you need to add it to your SDL file for the age. LayerLinkAnimations are the avatar animations that play upon linking into an age.
Along with the animations changes, there is also a new blending techine using funkramps. These are useful for things like sprites and blades of grass. They work just like the stenciling technique we currently have. You just need to use a alpha blend image (like those we already use for stenciling) and activate the "FromDuplicates" button in the MTex section of Blender.
prp_GuiClasses
Paradox, when he gets a chance, is going to go over these with a fine tooth comb, but the majority save one or two classes, of the entire GUI spectrum of classes has been coded and can all be exported via PyPRP. These include GuiButtons, GuiTextChat mods and a wide arrange of other useful gui tools.
prp_LogicModifiers/prp_Messages
MultiStageBehMods, ExcludeRegionModifers(And its associated message class), AnimEventModifier, and SeekPointMods. There are also two additional DynDecalMgr classes. They are DynaBulletMgrs and DynaTorpedoMgrs. EaxListenerMods have been in my branch for awhile. There's already some documentation on them on the wiki, I don't believe however that they were included with the latest release of pyprp.
prp_ParticleClasses
I took the liberty of taking some of Lontahv's work with Particle Sytems and mapping it to Blender's particle system interface. There's alot left to be done there so support is completely minimal.
New Stuff:
prp_AVClasses
This is an entirely new prp to us. It's basically the very beginnings of Avatar Creation and modifying, however it's very minimal, just some modifiers at this point. NPCSpawnMods, AliasModifiers and ArmatureLODMods along with some broken stuff. Nothing that should be included in the trunk yet. Eventually, once I figure out some of the avatar stuff it'll be where custom clothing creation, custom avatars and the like will go.
PyPRP AlcScript Dictionary
This is a fun new tool, it's going to be in the prp wizard interface, and will be the host of various commonly used alcscript functions like logic modifiers and responders. When one is chosen from the list it automatically adds an empty alcscript for that modifier to wherever the cursor is in the alcscript file. it's handy for quickly scripting a long list of responders or modifiers.
That's everything I think. I might have missed some stuff and if I have I'll add it to the list later.