// ----- Vanilla pods @PART[cupola]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_cupolaInternal } @PART[landerCabinSmall]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_landerCabinSmallInternal } @PART[Mark1Cockpit]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_mk1CockpitInternal } @PART[Mark2Cockpit]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_mk1InlineInternal } @PART[mk1-3pod]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_Mk1-3 } @PART[mk1pod_v2]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_mk1pod_IVA } @PART[mk2Cockpit_Inline]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_mk2InlineInternal } @PART[mk2Cockpit_Standard]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_mk2CockpitStandardInternals } @PART[mk2LanderCabin_v2]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_mk2LanderCanInternal } @PART[mk3Cockpit_Shuttle]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_MK3_Cockpit_Int } // ----- ProbeControlRoom @PART[*]:HAS[@MODULE[ModuleCommand],!INTERNAL[*]]:FOR[DE_IVAExtension]:NEEDS[ProbeControlRoom] { MODULE { name = ProbeControlRoomPart seatTransformName = CameraPosition } MODULE { name = RasterPropMonitorComputer } DE_IVA_internalName = DE_MissionControl } // ----- Making History pods @PART[kv1Pod]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_KV1_ASET_IVA_Internal } @PART[kv2Pod]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_KV2_ASET_IVA_Internal } @PART[kv3Pod]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_KV3_ASET_IVA_Internal } @PART[MEMLander]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_MEM_ASET_IVA_Internal } @PART[Mk2Pod]:FOR[DE_IVAExtension] { DE_IVA_internalName = DE_MK2POD_ASET_IVA_Internal } // ----- Common setup @PART:HAS[#DE_IVA_internalName]:FOR[DE_IVAExtension] { &title = #$name$ &manufacturer = %MODULE[RasterPropMonitorComputer] { // 0 1 2 3456 7 %storedStrings = #v1.1.0||$/title$|||||$/manufacturer$ %triggeredEvents = ALCOR_CALLRECOVERYTEAM|ASET_AUTO_GEAR_DOWN_EVENT } %INTERNAL { %name = #$/DE_IVA_internalName$ } } // ----- Reviva // before reviva runs, copy out the stored strings and triggered events so we can use them later @PART:HAS[#DE_IVA_internalName]:FOR[DE_IVAExtension] { DE_IVA_storedStrings = #$MODULE[RasterPropMonitorComputer]/storedStrings$ DE_IVA_triggeredEvents = #$MODULE[RasterPropMonitorComputer]/triggeredEvents$ } // Reviva does its patching in FOR[zzz_Reviva], so choose a phase that goes after that one @PART:HAS[#DE_IVA_internalName]:LAST[DE_IVAExtension]:NEEDS[Reviva] { @MODULE[ModuleB9PartSwitch]:HAS[#moduleID[IVASwitch]] { // remove any existing subtypes !SUBTYPE[ASET_for_MH] {} !SUBTYPE[DE] {} // TODO: what about DE+MAS? SUBTYPE { name = DE primaryColor = Red secondaryColor = White descriptionSummary = DE IVA descriptionDetail = Use DE IVAExtension IVA.\nHigh Tech Digital MODULE { IDENTIFIER { name = ModuleIVASwitch } DATA { internalName = #$/DE_IVA_internalName$ RasterPropMonitorComputer { storedStrings = #$/DE_IVA_storedStrings$ triggeredEvents = #$/DE_IVA_triggeredEvents } } } } } } // clean up variables @PART:HAS[#DE_IVA_internalName]:LAST[DE_IVAExtension] { !DE_IVA_internalName = delete !DE_IVA_storedStrings = delete !DE_IVA_triggeredEvents = delete }