Jump to content

Tech Tree mods: confusion and how they work. (Using the new YongeTech plugin.)


Recommended Posts

As near as I can tell, Tech Tree mods, and the part mods that support them, depend on Module Manager to set the correct node in part.cfg files. The Tech Tree seems to be set at KSP-level

The fairly new YongeTech plugin allows the player to select a Tech Tree when creating a Squad, so the same KSP install could have different Tech Trees. Part of how it does this is by listing part/node relationships in the .cfg for the Tech Tree.

In many ways the YongeTech method looks better, but it seems a lot of work to convert a tree from one to the other. A YongeTech version of the Community Tech Tree would be tempting, but I am not sure how the part-mod would need changing to support the YongeTech system.

It seems possible that a Module Manager file could be converted from one format to another by one of the standard tools, such as a Perl script. I am now scared. Perl scripts are the over-heating booster of my meagre programming skills.

I am not sure if I have even correctly understood the problem. Am I even thinking about it right?

Link to comment
Share on other sites

Hey, I missed that new tech tree plugin. It does indeed look a bit easier and has an Icon loader. I did not look into the code much so I don't know if the tree can be automatically tailored to a mod presence (MM :NEED).

But you mentioned perl so I will now run away.

Link to comment
Share on other sites

More details:

The standard Tech Tree is in ../GameData/Squad/Resources/TechTree.cfg

The YongeTech system adds "title =" and "description =" fields to the root TechTree section and, in each RDNode section adds the linkage between node and part, in this form:

Unlocks

{

part = YT_probeCoreCone

part = solidBooster_sm

part = standardNoseCone

part = sensorThermometer

part = basicFin

}

It should be possible, in Mod Manager, to check for the presence of that section and add a new part, instead of changing the part's part.cfg but you don't seem able to read the setting from one file and put it in another.

Let me check a small parts-mod... Something from Blackleg Industries, it's pretty small, and the Circular Antenna is useful. The part.cfg puts it in the "electronics" RDNode, which happens to be in the Standard Tech Tree, so I don't think it needs an edit. Here's the thread with the Module Manager data.

http://forum.kerbalspaceprogram.com/threads/55219-1-0-x-Module-Manager-2-6-6-%28June-25%29-With-more-nyan?highlight=Module+Manager

The Community Tech Tree includes instructions for the commands needed to put a new part in the tree using Module Manager, changing the part.cfg entry. The example checks for the Community Tech Tree and changes the tech node specified in the part.cfg

I don't see why a YongeTech-type TechTree.cfg can't be modified instead. but the details are where I start feeling very lost. I could throw AWK at a TechTree.cfg and get a list of the nodes but then what?

I shall depart and fan my fevered brow...

Link to comment
Share on other sites

At least I got the Node IDs, which are the internal names for the default Tech Tree nodes. That was easy. They're not quite the same as the Names displayed, and under the stock system you still have to examine every part.cfg file to get the part's internal name, and the tech node it is assigned to. Yes, the information is in the Wiki, but those pages use the visible names displayed for humans and I have a suspicion it isn't up to date. And some stuff uses a different filename to part.cfg

Anyway, here's the list of internal names.

id = start

id = basicRocketry

id = engineering101

id = survivability

id = stability

id = generalRocketry

id = aviation

id = basicScience

id = flightControl

id = advRocketry

id = generalConstruction

id = propulsionSystems

id = spaceExploration

id = advFlightControl

id = landing

id = aerodynamicSystems

id = electrics

id = heavyRocketry

id = fuelSystems

id = advConstruction

id = miniaturization

id = actuators

id = commandModules

id = heavierRocketry

id = precisionEngineering

id = advExploration

id = specializedControl

id = advLanding

id = supersonicFlight

id = advFuelSystems

id = advElectrics

id = specializedConstruction

id = precisionPropulsion

id = advAerodynamics

id = heavyLanding

id = scienceTech

id = unmannedTech

id = nuclearPropulsion

id = advMetalworks

id = fieldScience

id = highAltitudeFlight

id = largeVolumeContainment

id = composites

id = electronics

id = largeElectrics

id = heavyAerodynamics

id = ionPropulsion

id = hypersonicFlight

id = nanolathing

id = advUnmanned

id = metaMaterials

id = veryHeavyRocketry

id = advScienceTech

id = advancedMotors

id = specializedElectrics

id = highPerformanceFuelSystems

id = experimentalAerodynamics

id = automation

id = aerospaceTech

id = largeUnmanned

id = experimentalScience

id = experimentalMotors

id = experimentalElectrics

I kept the "id = " partly for clarity.

I am not sure how far I am going to go with this, but a YongeTech-format version of the stock Tech Tree might be useful. It does have the virtue of having all the node-placement info in one place.

Link to comment
Share on other sites

It seems to me that, regardless of what solution you use to build the tree, the assignment of parts to nodes should be the same. Specially since loading a custom tree is supposed to be stock now, so custom trees behave just like the stock one (I'm not sure, tho. I was very disappointed when they said they would release the tool they used to create techtrees themselves, but didn't, so I didn't follow on the subject).

So, the MM file to assign parts should still work

Kept the tab open too long, was ninja'd by a few hours... and probably said something stupid.

Link to comment
Share on other sites

There are signs of something different in the stock Tech Tree coming when v1.x.x appeared.

My first step will be to duplicate the Stock tree using YongeTech . All the tech trees I have looked at use the Stock node names as a base, I suppose so that a third party Mod will work if it doesn't take advantage of the new nodes. Since YongeTech gives the Stock Tree as an option this might seem a bit pointless.

I see it as a first step to a YT version of the Community Tech Tree. If I can get that working, it could be useful. I did try the CTT, but it needed a whole distinct install. And the base CTT doesn't depend on Module Manager

Link to comment
Share on other sites

It was getting plenty late enough when I posted that last bit.

The CTT does use Module Manager: it adds nodes and changes node positions and links, but it only modifies the TechTree.cfg file. It doesn't change the part/node links in the part.cfg files

I think a YT version would be able to put some parts in different places.

If a part isn't specified in a YT-style TechTree.cfg what happens? It makes sense for the part/node link in the part.cfg to be applied.

This probably is getting into Add-On development territory now. I'll concentrate on getting a YT-Stock and YT-CTT set up before I start a thread in the development forum.

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...