Some time ago, I stumpled upon the Map Generation System (MGS) by Timothee Besset.
It is both a plugin to QERadiant, and a standalone product, which can generate different objects and effects to .MAP-files.
As I examined MGS, I found a feature that I would try to implement as a true Python-plugin for QuArK, and this is the result...
|
The path duplicator consists of two things; a templategroup and a list of path-handles.
Templategroup
The templategroup is a collection of polys and entities. (Though not entities which require polys under them, like func_door.)
The templategroup must be designed, so it is open in the ends that points towards angle 180 and 360 (X-axis).
You can scale the templategroup in Y and Z direction, but the X direction will automatically be scaled by the distance between the path-handles.
|
|
Path-Handles
When you highlight the path duplicator, you will be able to move, insert and remove path-handles. These handles determine how
your templategroup should twist and turn.
If you right-click with your mouse, on one of the path-handles, you can insert a new path-handle, before the one that you clicked
on, and you can remove it as well.
To insert more path-handles after the last one, you must enter the specific/arg-view and increase the path duplicator's
count specific. (Be aware that if you decrease it, you will not be able to undo. Use the 'Remove this path-handle' in the
right-click context-menu.)
|
|
Special specifics...
There are at least two specifics that you must know about; scaletexture and speeddraw. The others are just for your information.
ScaleTexture | 0 or 1. If set to 0, the textures in your templategroup will not be scaled, or stretched, so they almost
match the distance between the two path-handles. |
SpeedDraw | 0 or 1. If set to 1, a temporary cube the size of your templategroup, will be used to draw the path duplicator instead.
This might help speed it up a bit, if your templategroup is very complex, and you've got lots of path-handles. |
Count | Keeps the number of path-handles. Increase this value to add more path-handles. Do not decrease it, because you won't
be able to undo that action, and all your path-handle-coordinates will be lost. |
horigin## | This keeps the x,y,z coordinates for a path-handle. Instead of moving a path-handle with your mouse, you can enter
its coordinates here. You should not add a new specific like this one, instead use the 'Insert path-handle before this' or increase the count. |
lastchoosenhandle | This is automatically calculated and used, when you use the right-click context-menu on a path-handle. You
do not need to edit this field. |
|
|
|
Yes there are still some bugs in it, that is why its BETA!
There is a problem where a segment between two path-handles, will be brush-subtracted differently. You will notice when it does it!
This will hopefully be fixed.
Another problem is, that there are a limit on how long a segment can be stretched. Anyway I don't think you will create such loooong
segments :-)
If you should experience any other bugs, which isn't mentioned here, please contact Decker,
and explain your problem - preferably with an example map to illustrate it.
|