Jump to content

[1.12.x] Reviva - the IVA revival and editor/flight switcher. Bug fixing release. (1.0.0 - 17th Feb 2024)


610yesnolovely

Recommended Posts

4 hours ago, JonnyOThan said:

Eh? I thought I fixed that…

Might be the version I'm playing with. Assumed it was intentional bc it's was so neat to be able to do it.

I thought it was part of the idea of them being trained up before officially joining the roster at 500 hours.

Link to comment
Share on other sites

  • 3 weeks later...
Posted (edited)
On 4/8/2023 at 2:40 PM, JonnyOThan said:

MM errors are in the KSP .log file too, so no additional logs needed for now.

 99198 [LOG 22:45:35.045] Applying update DE_IVAExtension/Parts/@PART:HAS[#DE_IVA_internalName]:FOR[DE_IVAExtension] to REPOSoftTech/ResearchBodies/Parts/telescope/telescope.cfg/PART[TrackBodiesTelescope]
 99199 [WRN 22:45:35.045] Cannot find key manufacturer in PART
 99200 [ERR 22:45:35.055] Error - Cannot parse variable search when replacing (%) key storedStrings = #v1.1.0||$/title$|||||$/manufacturer$

I was pretty sure I fixed this one..Oh it just hasn't been released yet :/

If you make your GameData/DE_IVAExtension/Parts.cfg file look like this, it should fix the MM error and produce a configcache: https://github.com/JonnyOThan/DE_IVAExtension/compare/v1.1.0...master#diff-938ce9c5b40254e1754ae2e06e1f00d3c94cd3e7683d3255cfa00aea82351bf4

Or perhaps more useful, here's a link to the fixed version you can download: https://raw.githubusercontent.com/JonnyOThan/DE_IVAExtension/4882eace46237be959d24ca7196c7d16cfaa1fd5/GameData/DE_IVAExtension/Parts.cfg

 

Good lord, I think I found it.  There's a single missing character in this line: https://github.com/JonnyOThan/KSA-IVA-Upgrade/blob/eaf645250a348c72db63f93ccf8f206e56708ea8/GameData/KSA/IVAUpgrade/Spaces/KSA_bdb_lm.cfg#L1026

That needs to be

:HAS[#moduleID[IVASwitch]]

- note the missing #

Spoiler
[LOG 08:31:01.692] Applying update Reviva/1_Patches/DE_MAS/@PART:HAS[#Reviva_DE_MAS_internalName]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to Squad/Parts/Command/Mk1-3Pod/mk1-3.cfg/PART[mk1-3pod]
[LOG 08:31:01.693] Applying update Reviva/1_Patches/DE_MAS/@PART:HAS[#Reviva_DE_MAS_internalName]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to Squad/Parts/Command/mk1Cockpits/mk1Cockpit.cfg/PART[Mark1Cockpit]
[LOG 08:31:01.693] Applying update Reviva/1_Patches/DE_MAS/@PART:HAS[#Reviva_DE_MAS_internalName]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to Squad/Parts/Command/mk1Cockpits/mk1InlineCockpit.cfg/PART[Mark2Cockpit]
[LOG 08:31:01.693] Applying update Reviva/1_Patches/DE_MAS/@PART:HAS[#Reviva_DE_MAS_internalName]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to Squad/Parts/Command/mk1LanderCan/mk1LanderCan.cfg/PART[landerCabinSmall]
[LOG 08:31:01.694] Applying update Reviva/1_Patches/DE_MAS/@PART:HAS[#Reviva_DE_MAS_internalName]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to Squad/Parts/Command/mk1pod_v2/mk1Pod_v2.cfg/PART[mk1pod_v2]
[LOG 08:31:01.694] Applying update Reviva/1_Patches/DE_MAS/@PART:HAS[#Reviva_DE_MAS_internalName]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to Squad/Parts/Command/mk2CockpitInline/mk2CockpitInline.cfg/PART[mk2Cockpit_Inline]
[LOG 08:31:01.694] Applying update Reviva/1_Patches/DE_MAS/@PART:HAS[#Reviva_DE_MAS_internalName]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to Squad/Parts/Command/mk2CockpitStandard/mk2CockpitStandard.cfg/PART[mk2Cockpit_Standard]
[LOG 08:31:01.695] Applying update Reviva/1_Patches/DE_MAS/@PART:HAS[#Reviva_DE_MAS_internalName]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to Squad/Parts/Command/mk2LanderCan_v2/mk2LanderCan_v2.cfg/PART[mk2LanderCabin_v2]
[LOG 08:31:01.695] Applying update Reviva/1_Patches/DE_MAS/@PART:HAS[#Reviva_DE_MAS_internalName]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to Squad/Parts/Command/mk3CockpitShuttle/mk3CockpitShuttle.cfg/PART[mk3Cockpit_Shuttle]
[LOG 08:31:01.695] Applying update Reviva/1_Patches/DE_MAS/@PART:HAS[#Reviva_DE_MAS_internalName]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to Squad/Parts/Command/mk3CockpitShuttle/mk3CockpitShuttle.cfg/PART[AT_Willis_CMP]
[WRN 08:31:01.695] Cannot find key DE_IVA_storedStrings in PART
[ERR 08:31:01.696] Error - Cannot parse variable search when replacing (%) key storedStrings = #$/DE_IVA_storedStrings$
[WRN 08:31:01.696] Cannot find key DE_IVA_triggeredEvents in PART
[ERR 08:31:01.696] Error - Cannot parse variable search when replacing (%) key triggeredEvents = #$/DE_IVA_triggeredEvents$
[LOG 08:31:01.702] Applying copy Reviva/1_Patches/DE_MAS/+INTERNAL[DE_Mk1-3]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to DE_IVAExtension/Spaces/DE_Mk1-3.cfg/INTERNAL[DE_Mk1-3]
[LOG 08:31:01.703] Applying copy Reviva/1_Patches/DE_MAS/+INTERNAL[DE_mk1CockpitInternal]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to DE_IVAExtension/Spaces/DE_mk1CockpitInternal.cfg/INTERNAL[DE_mk1CockpitInternal]
[LOG 08:31:01.704] Applying copy Reviva/1_Patches/DE_MAS/+INTERNAL[DE_mk1InlineInternal]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to DE_IVAExtension/Spaces/DE_mk1InlineInternal.cfg/INTERNAL[DE_mk1InlineInternal]
[LOG 08:31:01.705] Applying copy Reviva/1_Patches/DE_MAS/+INTERNAL[DE_landerCabinSmallInternal]:NEEDS[DE_IVAExtension&AvionicsSystems]:FOR[Reviva] to DE_IVAExtension/Spaces/DE_landerCabinSmallInternal.cfg/INTERNAL[DE_landerCabinSmallInternal]

 

Ran into MM errors as well, albeit only for a single stock part.

 

I cannot upload the full logs to pastebin as it crashes/refuses for size, but this should be the relevant part.

 

Edit: I found the cause

 

The bug is caused by Mk3 Shuttle Mid-Deck IVA Refurbished

Spoiler

PART[mk3Cockpit_Shuttle]
{
  @name = AT_Willis_CMP
  @author = Porkjet, Daelkyr, Atomikku
    @title = AT-CMP "Willis" Mark V Command Pod
  //@TechRequired = heavyAerodynamics
    @entryCost = 55000
    @cost = 15000
  @mass = 4.125
  @manufacturer = AtomicTech Inc.
    @description = Joseph "Daelkyr" Kerman, one of our senior engineers, originally proposed his six seat to C7 Aerospace Division while he was still working there. After years of his proposal being overlooked, among other things, he left the company to join AtomicTech Inc. where his proposal was quickly put into production. The AT-CMP "Willis" Mark V Command Pod is the first command pod in the AT-CMP Series that uses thermal tiles to re-enter instead of requiring an ablative heat shield. Just be sure to check those tiles after every flight!
    @CrewCapacity = 6 
  !INTERNAL
    {
        !name = MK3_Cockpit_Int
    }
    INTERNAL
    {
        name = AT_MK3_Cockpit_Int2
    }
}

    

 

Somehow, it confuses stuff. I thought to fix it by adding it to parts.cfg in DE_IVA's folder but I thought it might break stuff so I uninstalled for now. I got MK3 stockalike extension anyhow.

 

Edited by RunaDacino
Link to comment
Share on other sites

Is there an easy-ish way (using configs) to set-up a cockpit to use the same IVA, except there's a MAS and a RPM version?

 

Nav Utilities continued is only on RPM, and MAS has no landing indicator for OPT cockpits.

Link to comment
Share on other sites

  • 1 month later...
16 hours ago, SheepDog2142 said:

Is there any way to get support for Tantaras Soviet style modules. I tried myself but I do not have the skill set.  Would really really apricate it.
 

I've not personally used Tantares (shocking, must remedy) - the real question here is do the command modules have any IVA at all? Or multiple? Because if there's only just one and it's default, there's not much use for Reviva - it's best for CM which have multiple IVA where you need to switch. This is mostly true for stock or where there's mods which have similar command pods (eg. stock Mk3 is kinda like BDB's Apollo CM) here a lot of IVA have been made and can be shared.

Historically there's not been any IVA for Tantares, though recently there's somebody on the thread trying to make some, I guess in theory one might jam in some Making History IVA (DE_IVA?) but it'd be janky (eg. not match up well to view ports).

If you know of any IVA sets, then let us know in this thread. Unfortunately I've moved half way across the world and my dev machine is in a container only a quarter of the way round the world (ie. two to three months away). Have laptop, but it's not great for development, so unlikely I can attempt it myself, but you might motivate somebody with ModuleManager skillset to help. 

Link to comment
Share on other sites

1 hour ago, 610yesnolovely said:

I've not personally used Tantares (shocking, must remedy) - the real question here is do the command modules have any IVA at all? Or multiple? Because if there's only just one and it's default, there's not much use for Reviva - it's best for CM which have multiple IVA where you need to switch. This is mostly true for stock or where there's mods which have similar command pods (eg. stock Mk3 is kinda like BDB's Apollo CM) here a lot of IVA have been made and can be shared.

Historically there's not been any IVA for Tantares, though recently there's somebody on the thread trying to make some, I guess in theory one might jam in some Making History IVA (DE_IVA?) but it'd be janky (eg. not match up well to view ports).

If you know of any IVA sets, then let us know in this thread. Unfortunately I've moved half way across the world and my dev machine is in a container only a quarter of the way round the world (ie. two to three months away). Have laptop, but it's not great for development, so unlikely I can attempt it myself, but you might motivate somebody with ModuleManager skillset to help. 

I dont think there are any for that mod set unfortunly except the stock one. However for a full IVA playthrough any similar enough  placeholder IVA would work just fine.  Im sure people would love even the ability to swap them out with a basic non lined up IVA that has working switches and such to at least be able to use it.

If there was a basic "how to tutorial" I could follow along and probably put something together. Maybe lol my skills are not the best. Also Thanks for the response!!

Lastly do you think these is a way to limit the IVAs that are selectable by Tech level for science/ career mode? I see they already have tags such as low tech analog, medium tech etc. I was wondering if that could be tied to a tech tree node or building level unlock before they can be used.

Edited by SheepDog2142
Link to comment
Share on other sites

Posted (edited)

I'll add a GitHub issue to look into Tantares support using whatever Missing History or other IVA might work, it is popular. Perhaps @JonnyOThan will notice, since it's Reviva is now a co-operative mod.

https://github.com/FirstPersonKSP/reviva/issues/33

For tutorials, quick advice:

  • Assuming you have Missing History DLC
  • Use CKAN to make another copy of KSP just for developing.
  • Install only the minimal dependencies so KSP loads quickly: ModuleManager, Reviva, B9PartSwitch and RasterPropMonitor.
    • Add Tantares mod(s)
    • Clone the GitHub repro (if you know Git) or download the source zip.
  • Try editting https://github.com/FirstPersonKSP/reviva/blob/main/GameData/Reviva/0_Setup/Stock.cfg in your dev version
  • Start with adding this near other similar lines, total guess would be tantares_crew_s1_1 
    Quote

    @PART[tantares_crew_s1_1]
    {
        Reviva_Stock_internalName = tantares_crew_s1_1_interior
    }

    Got this info from reading: https://github.com/Tantares/Tantares/blob/master/GameData/Tantares/parts/core_soyuz/_tantares_crew_s1_1.cfg 

    • look for the name = xxx line (xxx is the part name) and then the block that says INTERNAL { name = yyy } (yyy is the name of the IVA / internal module that is used).

  • This just sets the default "Stock" for that Tantares part.

  • Adding an alternative is a little trickier (from memory), possibly copy GameData/Reviva/1_Patches/Apex.cfg to another file called Tantares.cfg (anywhere under GameData)

    • replace Apex with Tantares (name of mod)

    • replace mk3Cockpit_Shuttle with tantares_crew_s1_1 (name of part)

    • replace MK3_ApexInternals with KV1_IVA (name of internal)

This may not be accurate, and if it works, it's not the official way to do things properly: but it gives you an idea of how things work: each part has an INTERNAL which specifies what the IVA is, and that's a unique name for each IVA. Each part needs two modules:

  1.  ModuleIVASwitch which has an internalName field that is watched by Reviva code that actually switches the IVA on the part
  2.  ModuleB9PartSwitch which targets that module that the B9PartSwitch mod implements. This needs one or more SUBTYPE nodes, each describe the value to of ModuleIVASwitch's internalName field as you select which IVA you want in the UI (PAW). Reviva code watches for that changed field and the Reviva code switches out the IVA.

This means Reviva is actually just focused on the IVA switching logic code, and B9PartSwitch is the magic that defines the UI (PAW) and sub-type definitions, and does 90% of the support work, so you should read up on how that works if you (or anyone else) is interested. Might want to also read the GitHub README.

Most of the work in adding mod support is writing ModuleManager .cfg files that end up building such edits, so definitely you'd need to read ModuleManager's tutorial/wiki/KSPCF posts to understand the easier parts (there's a lot of depth, but the basics are fairly easy).

Edited by 610yesnolovely
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...