Jump to content

[1.12.x] Hide Empty Tech Tree Nodes (for modded tech trees) v1.3.2


ev0

Recommended Posts

2 hours ago, ev0 said:

I wrote the above MM patch.  I guess it made its way to a different post where you were able to grab it.

I want the default behavior of this mod to be to hide empty tech tree nodes (the name of the mod!), so I hardcode all empty nodes to be hidden within the plugin's dll.  Unless that "Use RDNode Settings" option is enabled, in which case it uses whatever is in the "hideEmpty" field directly.  The above patch helps out with that (the default value for "hideEmpty" is usually "false", which I don't want), but the player does need to remember to enable the correct option, too.

Any thoughts on a more hands-off approach for the player to get your empty nodes to show?  I couldn't think of one.  I was afraid of overwriting anyone's MM patches from the many tech trees out there (like if they load out of order), so I've been avoiding relying on any MM patches as part of this mod.

 

I'm happy with the behavior as is, I should have looked to see if there were options first.

Link to comment
Share on other sites

3 hours ago, Clamp-o-Tron said:

Would having “Use RDNode settings by default” always on break anything? I can’t think of any cases where it will, if patches to keep empty nodes showing are written correctly.

It would be tough.  Since the default value for the "hideEmpty"  field is usually "false", I'd need to have an MM patch set them to "true".  There's two paths, but it's a bit complicated:

Option 1:  I write the patch, but it would need to run after the CTT, ETT, KTT, and all the other tech trees.  I'm not sure of any clean combination of MM keywords like LAST and AFTER that would ensure the default behavior of this mod.  To ensure it works correctly I'd probably need a messy "AFTER[CTT|ETT|KiwiTechTree|etc|etc]" and would need to update it.  Then those tech trees need to run their patches after mine if they want to set any nodes back to "false".

Option 2:  I require all tech tree mods to put a similar patch like the patch hemeac posted into their mod folders.  This would be best, but that would be bothering a lot of modders at this point...

Thoughts?

Link to comment
Share on other sites

@ev0, What are your thoughts about hard coding a statement that nodes that begin with a particular word or phrase will be visible irrespective of whether they have parts/upgrades?  If that word was tier*, that could allow Unkerballed the option of working without needing to modify any node ids.  However, the flip side is that tier could conceivably be used as a way to distinguish nodes for a yet written tech tree and that could be a difficult to diagnose issue for a tech tree mod author if you happen to not be available if that issue crops up.  I don't have super strong feelings about this, I am happy to write a note in the list of mod support for KTT to the affect that RDNode Settings should be enabled.  I think no matter what option you choose, you will create some level of compatibility issues :-)

Link to comment
Share on other sites

On 1/1/2021 at 12:39 AM, hemeac said:

@ev0, What are your thoughts about hard coding a statement that nodes that begin with a particular word or phrase will be visible irrespective of whether they have parts/upgrades?  If that word was tier*, that could allow Unkerballed the option of working without needing to modify any node ids.  However, the flip side is that tier could conceivably be used as a way to distinguish nodes for a yet written tech tree and that could be a difficult to diagnose issue for a tech tree mod author if you happen to not be available if that issue crops up.  I don't have super strong feelings about this, I am happy to write a note in the list of mod support for KTT to the affect that RDNode Settings should be enabled.  I think no matter what option you choose, you will create some level of compatibility issues :-)

Hmm I think I'd prefer you write a note, but if you want to use MM to add a field called something like "alwaysShow = True" or "hettnOverride = True" or something to the RDNode modules then I I'd be okay with checking for that an not hiding those nodes.

Edit:

Oh, but if you have those high tier nodes always unhidden, but the player didn't install any parts for those tiers so the relevant tech nodes are all hidden, then those tier nodes would just be randomly hanging on their own...

Instead of the above pre-edit post, how about adding a "techTier=##" field (e.g. techTier=5) to each RDNode, then I would not hide the "id=tier##" node if there is any node with the same techTier? That would look the cleanest, but it would certainly be a lot more work on your end to add a "techTier" field to each and every node. I'll leave it up to you.

Edited by ev0
Link to comment
Share on other sites

@ev0, either solution would work great for me.  I have my entire tree setup in an Excel workbook that can generate MM patches for me, so it is a simple change to add in code on my end for whatever method is easiest for you to maintain.  As it is though, I think my tree would be mostly setup for your second option.  To give you an idea of what I already have:

RDNode:NEEDS[KiwiTechTree]
	{
		id = tier11
		tier = 11
		title = #LOC_KTT_tier11_Title // Tier 11
		description = #LOC_KTT_tier11_Description // Tier 11
		cost = 0
		hideEmpty = False
		nodeName = ktt_tier11
		anyToUnlock = False
		icon = KiwiTechTree/Icons/ktt_icon_tier11
		pos = -1090,2260,0
		scale = 0.6
	}
	RDNode:NEEDS[CommunityTechTree]
	{
		id = exoticNuclearPower
		tier = 11
		title = #LOC_CTT_exoticNuclearPower_title
		description = #LOC_CTT_exoticNuclearPower_description
		cost = 2734
		hideEmpty = False
		nodeName = ktt_exoticNuclearPower
		anyToUnlock = False
		icon = KiwiTechTree/Icons/ktt_icon_exoticNuclearPower
		pos = -1090,2128,0
		scale = 0.6
		Parent
		{
			parentID = expNuclearPower
			lineFrom = RIGHT
			lineTo = LEFT
		}
	}

 

Link to comment
Share on other sites

20 hours ago, hemeac said:

@ev0, either solution would work great for me.  I have my entire tree setup in an Excel workbook that can generate MM patches for me, so it is a simple change to add in code on my end for whatever method is easiest for you to maintain.  As it is though, I think my tree would be mostly setup for your second option.  To give you an idea of what I already have:



RDNode:NEEDS[KiwiTechTree]
	{
		id = tier11
		tier = 11
		title = #LOC_KTT_tier11_Title // Tier 11
		description = #LOC_KTT_tier11_Description // Tier 11
		cost = 0
		hideEmpty = False
		nodeName = ktt_tier11
		anyToUnlock = False
		icon = KiwiTechTree/Icons/ktt_icon_tier11
		pos = -1090,2260,0
		scale = 0.6
	}
	RDNode:NEEDS[CommunityTechTree]
	{
		id = exoticNuclearPower
		tier = 11
		title = #LOC_CTT_exoticNuclearPower_title
		description = #LOC_CTT_exoticNuclearPower_description
		cost = 2734
		hideEmpty = False
		nodeName = ktt_exoticNuclearPower
		anyToUnlock = False
		icon = KiwiTechTree/Icons/ktt_icon_exoticNuclearPower
		pos = -1090,2128,0
		scale = 0.6
		Parent
		{
			parentID = expNuclearPower
			lineFrom = RIGHT
			lineTo = LEFT
		}
	}

 

That works!  I can use the "tier" field and match them to the IDs for your tier names.

Link to comment
Share on other sites

7 hours ago, EnderKid2 said:

playing the 1.11 pre-release, how do i edit the settings?

They are in the in-game Difficulty Settings, either when starting a new game or for an existing game.

For an existing game, they're found at:

Esc->Settings->Difficulty Settings (at the top)->Hide Empty Tech Tree Nodes tab

Link to comment
Share on other sites

On 1/8/2021 at 2:36 PM, hemeac said:

@TR_HyDra, there's a pre release version for 1.11. The link is on the previous page from December 22. 

Thanks so much for pointing this out.  Have CTT and OPT which have their own techTree files and have been dealing with empty nodes, and broken connections.  The pre-release sorted everything out!!

Link to comment
Share on other sites

On 12/30/2020 at 9:13 PM, hemeac said:

@ev0, I've been thinking of adding empty nodes at the top and bottom of the tree that denote the tier (see below).  As they are empty, they are getting grabbed by your mod.  Do you have any current method to workaround that?  This isn't mission critical, but let me know if there  is anything that I can do to make your job easier.  They currently have a cost of 0 and have an id that starts with tier

6rqmLZl.png

These tier nodes are not in your mod yet, correct?  I don't see them even with HETTN not installed, so I can't run any tests yet on some code that I wrote to keep those nodes unhidden.

Link to comment
Share on other sites

  • 3 weeks later...
On 12/22/2020 at 5:48 AM, ev0 said:

Pre-Release v1.3.0 for KSPv1.11.0

  • Fixed HETTN tech tree node not loading properly in KSPv1.11
  • Fixed Propagate Science option getting stuck in infinite loop @etmoonshade

Here's a GitHub link to a pre-release for the mod for those that want to try it out.  Just download the .zip file there (top file only, ignore the source code downloads) and extract it into your game like normal.  Let me know if it works.

Download

Details

KSP v1.11 now loads all TechTree nodes in .cfg files that are the GameData folder.  Simply specifying the file path to the TechTree node you wanted to load isn't enough anymore.  I had to make sure I cleared the RDNodes from the instanced TechTree nodes, then add the RDNodes from the HETTN tree to that instance.  I'm not sure if that's the best approach, so if anyone who might know better wants to chime in please feel free.

The pre-release has a good chance of not working if there are more than one .cfg files with a TechTree node.  The only tree that I'm aware of that does this is the ETT.  Anything that uses ModuleManager to edit the stock TechTree node, however, should be fine. ETT still works, as long as you don't have the CTT installed at the same time like I did during my tests:rolleyes:

 

Does this Pre-Release work with SIMPLEX Tech Tree?

Link to comment
Share on other sites

On 2/5/2021 at 11:06 AM, Neebel said:

Does this Pre-Release work with SIMPLEX Tech Tree?

SIMPLEX should work.  Any tech tree that uses Module Manager for their tech tree changes should be fine.  If you notice anything wrong, let me know.

I'll be marking the pre-release for release soon.

Link to comment
Share on other sites

Can anyone tell me if the the pre-release works in 1.11.1?  I just noticed the new KSP update.  I released what I have to CKAN under KSPv1.11.0, so if it still works then I'll bump the version.

Link to comment
Share on other sites

11 hours ago, ev0 said:

Can anyone tell me if the the pre-release works in 1.11.1?  I just noticed the new KSP update.  I released what I have to CKAN under KSPv1.11.0, so if it still works then I'll bump the version.

Can confirm the CKAN-release works fine with SIMPLEX Tech Tree in 1.11.1

Link to comment
Share on other sites

The Pre-release does not seem to be working for me on the Kiwi Tech Tree Overhaul. Will test more and report.

 

unknown.png?width=1083&height=609

 

I am using Kerbalism with the KTT tree, and some extra mods that *should* be compatible with both.

 

It appears that the mod is also hiding nodes that contain only part upgrades. That node disabled left of the large solid rockets I selected is medium solid rockets, and contains only an upgrade.

Edited by guto8797
Link to comment
Share on other sites

  • 1 month later...

I've been having some issues with the nodes hiding improperly. I'm on KSP 1.11.2 with the latest ckan version of the mod. It was initially hiding nodes which had parts in them. So I tried downloading the mod manually from github and overwriting my current version, then loaded up the game. I checked the settings to make sure it was set correctly, and now it's not hiding any nodes at all. Not sure what's going on here. There's a few exceptions in the ksp.log file.

https://www.dropbox.com/s/ee7nknhanypyjo8/KSP.log?dl=0

 

Link to comment
Share on other sites

On 4/7/2021 at 1:00 PM, John007qwe said:

I've been having some issues with the nodes hiding improperly. I'm on KSP 1.11.2 with the latest ckan version of the mod. It was initially hiding nodes which had parts in them. So I tried downloading the mod manually from github and overwriting my current version, then loaded up the game. I checked the settings to make sure it was set correctly, and now it's not hiding any nodes at all. Not sure what's going on here. There's a few exceptions in the ksp.log file.

https://www.dropbox.com/s/ee7nknhanypyjo8/KSP.log?dl=0

 

I'll try to take a look. I think I know what broke, but I've had a lot of irl stuff keeping me too busy to check.

Link to comment
Share on other sites

On 4/10/2021 at 6:01 AM, ev0 said:

I'll try to take a look. I think I know what broke, but I've had a lot of irl stuff keeping me too busy to check.

Well, for some reason, it's now hiding them correctly, and I changed nothing lol. Might have something to do with the mod creating a new tech tree file, and it not taking effect until after relaunching the game?

Link to comment
Share on other sites

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