Hi folks,
I have two days of medical leave, having just undergone surgery.
So me, my bruised body and my several bottles of pills are now having a little fun with UruDistro again.
Specifically I am packaging Sirius's files for the Gahreesen wall. I thought this would be a good test.
Sirius's project is probably typical, in that it results in a bunch of object files that need to be imported into prps.
Sirius has already distributed an archive in which, for each prp, there is a folder with a bunch of .uof files.
For importing those object files, UruDistro uses libHPlasma's prpmod.exe, which needs the object name and type.
Extracting this information means decompiling each object file using prcdc.exe, and getting the information from its plKey node.
That would be a lenghty process if we did that manually (one of Sirius's folders has 1743 object files!) so I have written a packager, a script for generating the xml information needed by the UruDistro install script. The mod author runs this script, selects a folder and the script generates a text file. It took less than 2 minutes to process 1743 files while also creating a verbose log.
So the script, ran against Sirius's "Garrison_District_grsnTeamRoom01" folder, which contains 3 files (01-2.uof, TeamRoom01.uof and tr1lo.uof), generates this text fragment:
- Code: Select all
<!-- Changes to a prp file -->
<prp id="Garrison_District_grsnTeamRoom01" scenenode="Garrison_District_grsnTeamRoom01">
<addobj id="suitShooterPOS" type="plSceneObject" data="01-2.uof"/>
<addobj id="cRespTeam1TubeDown" type="plResponderModifier" data="TeamRoom01.uof"/>
<addobj id="team1TubeActivator_0_Enter" type="plLogicModifier" data="tr1lo.uof"/>
</prp>
The mod author can now paste this fragment into the xml install file.
The script assumes that the folder name is the prp file name, and also the name of the plSceneNode in the prp. If not, this can be edited manually.
Using this tool, a mod author can package his mod in a few minutes.
Another approach has been suggested, in which a mod author would run a kind of diff script which would compare an Uru installation (with only the mod applied) with a virgin Uru installation. This should be quite easy for me to do I think, but would require discipline from the mod author: he/she would have to set aside a snapshot of his Uru installation before any change, and have a separate installation with only the changes from his mod. That is on top of the author's regular Uru installation. I don't know if it is reasonable to expect that much from the author.
However, just writing about it gives me the urge to try it, so I'll probably end up doing both tools anyway and let the authors choose their approach.
Thoughts, suggestions, etc.?