[SUGGESTION] WBIGateAssembler new features proposal
FluffyLogic opened this issue · comments
As the title says i have a few ideas about either expanding functionality of WBIGateAssembler or creating a new general purpose module that could be used for in-flight segment construction :
- Set state of other modules (which are enumerated in base part config) on base part spawn and whose parameters can be later altered as segments are added.
Example:
- RESOURCE{} config node whose parameters "amount" and "maxAmount" are altered as new segments (that represent that resource) are added
- ModuleGenerator which can be already present and active in base part whose parameter "rate " is raised when new segment (representing additional EC generation) is added
- same could potentially be done even for ModuleReactionWheel (especially if adding segments that specifically represent pitch, yaw and roll torque RW).
For simplicity's sake, all modules, that do need to exist when segments are added, should already be present in base part config. The exception is RESOURCE{} node which may need to be added with segment mount since it will be visible in part PAW even if "amount" is equal to zero.
-
All segments need to be checked if they are properly attached to supported structure ie that entire structure does not contain foreign parts so segment merging operation does not cause visual/functional conflicts.
-
support for variable attachment points in segments to allow "growing" base part in alternate directions, not in single configuration.
Example: building a structure in shape like "I" (extension), "T" (junction/branching) or "O" (closed loop).
Techically, the transforms for internal segments have to be re-parented to new attachment point and also those attachment points need to be the new starting points for further "growth" with new segments). It is the responsibility of who makes models to account for this variation.
- Removing segments. This... it is better to avoid. It would need checks against resources (ie separating segments that enable/expand resources in part) and also if any foreign part is attached to them. Secondly, order in which segments are added needs to be respected as well.