Jump to content

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


ev0

Recommended Posts

1 hour ago, ev0 said:

Aha, that's the info I needed. Thanks! But instead of keeping the "techRequired" node visible, if it has no parts in it then I'll probably switch it to a different node that does have parts.

Eh, no, it has to remain in the same tech node ,. For KSPI, the nodes is just a placeholder, to let people know that researching specific technodes will grant them specific improvement in part performance.  If you move the upgrade placeholder to a different technode, players will get misinformed, thinking they should receive an upgrade while the tech requirement is a higher technode with no parts in it. I have added several new technodes just for this purpose..

Edited by FreeThinker
Link to comment
Share on other sites

12 hours ago, FreeThinker said:

Eh, no, it has to remain in the same tech node ,. For KSPI, the nodes is just a placeholder, to let people know that researching specific technodes will grant them specific improvement in part performance.  If you move the upgrade placeholder to a different technode, players will get misinformed, thinking they should receive an upgrade while the tech requirement is a higher technode with no parts in it. I have added several new technodes just for this purpose..

I see now, after using your mod. The upgrade is an actual icon that's displayed in the tech node. I originally thought that after researching a specific node, an upgrade would become available and you would have to right click the part in its original node and choose an upgrade option, or something.

Since the node isn't empty, I'll keep those visible. I'll search for PARTUPGRADE modules, and add their techRequired fields to the list.

Edit: By the way, I noticed that you have a part called Thermal Tubrojet in the advancedNuclearPropulsion node, but you also have an upgrade for that part in the same node. Is that intentional?

Edited by ev0
Link to comment
Share on other sites

3 hours ago, ev0 said:

Edit: By the way, I noticed that you have a part called Thermal Tubrojet in the advancedNuclearPropulsion node, but you also have an upgrade for that part in the same node. Is that intentional?

That must be something I overlooked. The intention is to replace all placeholder parts by placeholder upgrades, which cannot be mistaken for real parts, which prevents a lot of problems.

By the way, please get CKAN support ASAP, then I can add your mod to recommended mods for KSPI

Edited by FreeThinker
Link to comment
Share on other sites

@ev0  Alright, excellent work on your 0.5.1 release, it finally allowed me to remove the integrated CTT in KSPI-E

But I wonder if you could add more features

One idea is to not only hide unused technodes, but (optionaly) also non researchable technodes. By that I mean it will only show the tech-nodes you have access to, after you unlocked it, it should update  and show what technodes you can research now. This will create a more realistic experience of research, as you never exactly know what future technology will bring you, and how to get it.

Edit: I believe there is a mod which already does what I describe (Called Fog of Tech), but I doubt it would work well in conjunction with your mod.

Edited by FreeThinker
Link to comment
Share on other sites

1 hour ago, FreeThinker said:

@ev0  Alright, excellent work on your 0.5.1 release, it finally allowed me to remove the integrated CTT in KSPI-E

But I wonder if you could add more features

One idea is to not only hide unused technodes, but (optionaly) also non researchable technodes. By that I mean it will only show the tech-nodes you have access to, after you unlocked it, it should update  and show what technodes you can research now. This will create a more realistic experience of research, as you never exactly know what future technology will bring you, and how to get it.

Edit: I believe there is a mod which already does what I describe (Called Fog of Tech), but I doubt it would work well in conjunction with your mod.

Fog of Tech works with my mod, but even with Fog of Tech installed just by itself I get this weird problem. If you zoom out at all and then research a node, the new nodes will be the wrong size, at least until you exit and enter the RnD center again. Do you see this problem too? If he can get it to work, that might be better.

WyDrBoU.png 6yd48Aw.png huo0Dw3.png

Link to comment
Share on other sites

16 minutes ago, ev0 said:

Fog of Tech works with my mod, but even with Fog of Tech installed just by itself I get this weird problem. If you zoom out at all and then research a node, the new nodes will be the wrong size, at least until you exit and enter the RnD center again. Do you see this problem too? If he can get it to work, that might be better.

WyDrBoU.png 6yd48Aw.png huo0Dw3.png

Initially it works yes, but as you discovered there are some weird quick but also exception when you get deeper into tech tree.

Therefore I still suggest you add your own version of Fog of Technodes

Edited by FreeThinker
Link to comment
Share on other sites

10 minutes ago, FreeThinker said:

Initially it works yes, but as you discovered there are some weird quick but also exception when you get deeper into tech tree.

There I stil suggest you add your oown version of Fog of Technodes

I'll see what I can do. Won't be right away though!

Link to comment
Share on other sites

Update to 0.5.1

Added a few fixes to the plugin. Also added better support for the ETT! It should work, the only problem that you *might* see is two unrelated tech types connecting to each other. The plugin is based on switching tech lines so there's no breaks or node intersections, and since the ETT is so tightly packed it can be sometimes difficult to avoid the situation.

Version 0.5 went up on CKAN real quick, so hopefully this update will too.

Link to comment
Share on other sites

  • 2 weeks later...
10 hours ago, pap1723 said:

Hey @ev0,

I am having an issue with the mod that hides the nodes like it is supposed to, but it doesn't re-parent the node so I cannot progress through the tree. Please help!

...

Thanks!

Pap

No problem! Can you send me a link to your output log file? Dropbox, etc. Also if you go to the overrides.cfg in this mod's GameData folder and turn on the dubugging option, I'll be able to see a lot more debug info :wink:

Edit: I found the problem! Right now my plugin is looking for the overrides/settings node in a specific place (GameData/HideEmptyTechTreeNodes/overrides/HETTN_Settings). If it can't find the file, for now I made the plugin exit to avoid possible crashing errors. Since you have the settings in a different folder and under a different file name, the plugin doesn't do its thing.

Could you package the two mods separately, or for CKAN make my mod a "depends" or "recommends" mod in your NetKAN file?

In the near future if the plugin can't find the HETTN_Settings node, I want to make it create a new file with hard coded default values in the GameData/HideEmptyTechTreeNodes folder. But your "HideEmptyTechTreeNodes-Overrides.cfg" still wouldn't affect anything in that case.

Edited by ev0
Link to comment
Share on other sites

7 hours ago, ev0 said:

Edit: I found the problem! Right now my plugin is looking for the overrides/settings node in a specific place (GameData/HideEmptyTechTreeNodes/overrides/HETTN_Settings). If it can't find the file, for now I made the plugin exit to avoid possible crashing errors. Since you have the settings in a different folder and under a different file name, the plugin doesn't do its thing.

hm, as I had this issue I downloaded your Mod separately and removed the HETTN-Files in HPTechTree. And I had the same issue.

Link to comment
Share on other sites

47 minutes ago, Cheesecake said:

hm, as I had this issue I downloaded your Mod separately and removed the HETTN-Files in HPTechTree. And I had the same issue.

Huh, it works for me. Mind sending me your output log?

Link to comment
Share on other sites

I was experiencing the same problem with Historical Progression Tech Tree. I just downloaded it again, removed all 3 files relating to Hide Empty Tech Tree Nodes from it and downloaded this by itself as a separate mod. I just finished trying and getting enough points to unlock to the point of testing and it's working correctly. The lines do go all the way across and unlocking the prior node allows the subsequent node to unlock as it should. :)

Link to comment
Share on other sites

  • 2 weeks later...
Spoiler

[ERR 00:00:03.902] Couldn't find loaded texture at path: KSPX-advIonPropulsion

[ERR 00:00:03.903] Couldn't find loaded texture at path: KSPX-advNuclearPropulsion

[LOG 00:00:03.904] [HETTN Debug] Applying in-game settings...
[LOG 00:00:03.904] [HETTN Debug] Attempting to change the tech node parents...
[ERR 00:00:03.909] Exception handling event OnTechTreeSpawn in class ChangeTechTree:System.ArgumentException: An element with the same key already exists in the dictionary.
  at System.Collections.Generic.Dictionary`2[System.String,ConfigNode].Add (System.String key, .ConfigNode value) [0x00000] in <filename unknown>:0
  at HideEmptyTechTreeNodes.ChangeTechTree.ChangeParents () [0x00000] in <filename unknown>:0
  at HideEmptyTechTreeNodes.ChangeTechTree.onTechTreeSpawn (KSP.UI.Screens.RDTechTree rdTechTree) [0x00000] in <filename unknown>:0
  at EventData`1[KSP.UI.Screens.RDTechTree].Fire (KSP.UI.Screens.RDTechTree data) [0x00000] in <filename unknown>:0

[EXC 00:00:03.911] ArgumentException: An element with the same key already exists in the dictionary.
    System.Collections.Generic.Dictionary`2[System.String,ConfigNode].Add (System.String key, .ConfigNode value)
    HideEmptyTechTreeNodes.ChangeTechTree.ChangeParents ()
    HideEmptyTechTreeNodes.ChangeTechTree.onTechTreeSpawn (KSP.UI.Screens.RDTechTree rdTechTree)
    EventData`1[KSP.UI.Screens.RDTechTree].Fire (KSP.UI.Screens.RDTechTree data)
    UnityEngine.Debug:LogException(Exception)
    EventData`1:Fire(RDTechTree)
    KSP.UI.Screens.RDTechTree:SpawnTechTreeNodes()
    <DelayedCallback>c__IteratorEA:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[ERR 00:00:04.197] Couldn't find loaded texture at path: KSPX-advIonPropulsion

[ERR 00:00:04.199] Couldn't find loaded texture at path: KSPX-advNuclearPropulsion

Throws an error when entering R&D, from what i can see it misses a texture or an icon file for KSPX-advNuclearPropulsion

Link to comment
Share on other sites

5 hours ago, dtoxic said:
  Reveal hidden contents

[ERR 00:00:03.902] Couldn't find loaded texture at path: KSPX-advIonPropulsion

[ERR 00:00:03.903] Couldn't find loaded texture at path: KSPX-advNuclearPropulsion

[LOG 00:00:03.904] [HETTN Debug] Applying in-game settings...
[LOG 00:00:03.904] [HETTN Debug] Attempting to change the tech node parents...
[ERR 00:00:03.909] Exception handling event OnTechTreeSpawn in class ChangeTechTree:System.ArgumentException: An element with the same key already exists in the dictionary.
  at System.Collections.Generic.Dictionary`2[System.String,ConfigNode].Add (System.String key, .ConfigNode value) [0x00000] in <filename unknown>:0
  at HideEmptyTechTreeNodes.ChangeTechTree.ChangeParents () [0x00000] in <filename unknown>:0
  at HideEmptyTechTreeNodes.ChangeTechTree.onTechTreeSpawn (KSP.UI.Screens.RDTechTree rdTechTree) [0x00000] in <filename unknown>:0
  at EventData`1[KSP.UI.Screens.RDTechTree].Fire (KSP.UI.Screens.RDTechTree data) [0x00000] in <filename unknown>:0

[EXC 00:00:03.911] ArgumentException: An element with the same key already exists in the dictionary.
    System.Collections.Generic.Dictionary`2[System.String,ConfigNode].Add (System.String key, .ConfigNode value)
    HideEmptyTechTreeNodes.ChangeTechTree.ChangeParents ()
    HideEmptyTechTreeNodes.ChangeTechTree.onTechTreeSpawn (KSP.UI.Screens.RDTechTree rdTechTree)
    EventData`1[KSP.UI.Screens.RDTechTree].Fire (KSP.UI.Screens.RDTechTree data)
    UnityEngine.Debug:LogException(Exception)
    EventData`1:Fire(RDTechTree)
    KSP.UI.Screens.RDTechTree:SpawnTechTreeNodes()
    <DelayedCallback>c__IteratorEA:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[ERR 00:00:04.197] Couldn't find loaded texture at path: KSPX-advIonPropulsion

[ERR 00:00:04.199] Couldn't find loaded texture at path: KSPX-advNuclearPropulsion

Throws an error when entering R&D, from what i can see it misses a texture or an icon file for KSPX-advNuclearPropulsion

The errors are KSPX problems, more or less. It looks like KSPX adds tech nodes with IDs that are the same as some other mod (probably Community Tech Tree?). My mod doesn't account for duplicate IDs, so throws an error.

Here's a fix using MM on the KSPX thread: link.

As for the missing icon texture, if you download KSPX from SpaceDock it has a KSPX folder and a Squad folder. The missing textures are in the Squad folder, so make sure you install both folders. It doesn't overwrite anything, just adds the textures.

Link to comment
Share on other sites

v0.7 Pre-release (testing appreciated)

Download from Dropbox

After finding out that the tech tree is used for a few more things than just visiting the R&D center, I've decided to change the workings of the mod from "just visual" display changes to something that is more permanent to the behind the scenes of the game. Your saved games should still be fine if you decided to install or uninstall this mod, but as always use at your own risk (make a copy of your game?). See below for key details.

Change

This mod will now write its own TechTree file automatically from whatever MM derived tree you have installed. It then tells the game to use this new tree in all cases (tested with CTT). It positively affect things like part contracts assignments, and fixes some "anomalous[1]" bugs.

Note: does not work for the ETT yet! Expect a full release when I figure it out.

Edit 3: The ETT is still giving me problems. I'm moving house next weekend, so it'll be a bit longer before I release this to Spacedock/CKAN. It works for MM trees though.

[1] Spoiler alert! You may never run into this, but if you do, you'll be very glad you don't have any empty nodes!!! :wink: (link to spoiler)

New Additional Feature (Note: enabled by default in Pre-release for testing purposes! Disable in game settings.)

Added feature similar to Fog of Tech.

oOg6UkE.png

Edited by ev0
ETT update: not working
Link to comment
Share on other sites

I have a feature request that may or may not be in-scope for this mod...

Apparently since 1.2 off-world monoliths grant a research node when approached for the first time. However there are reports of receiving empty nodes this way - even in the stock game this is an issue as searching out monoliths can grant you Experimental Motors, but obviously in CTT the issue is more pronounced since it's more likely that we'll have a large number of empty nodes for the monolith to (randomly?) choose. 

Would it be possible to force the game to choose a non-empty node when granting free tech?

... and I see you've already addressed this issue, literally as I was typing this. Belated thanks in advance!

Link to comment
Share on other sites

4 minutes ago, PocketBrotector said:

... and I see you've already addressed this issue, literally as I was typing this. Belated thanks in advance!

Ha, that's pretty funny timing :D Give the new version a shot, I tested your problem and it works (was the reason for the changes).

Edited by ev0
Link to comment
Share on other sites

  • 4 weeks later...

v0.7.1 for KSP 1.2.1 and v0.7.2 for KSP 1.2.2 Updates

No real changes besides support for the ETT. 

Note to ETT users:

This mod supports tech trees in the ETT format, but does not support the Yonge's Tech Tree plugin. This simply means that the tree selection process in the beginning of a new game will do nothing. Instead, this mod reads the ETT changes to the ModuleManager tech tree, and changes the TechRequired field for Parts from that file. The good news is that you can now use ModuleManager config files on the ETT!

Edited by ev0
Link to comment
Share on other sites

On the ETT compatibility issue, here is my output log: https://dl.dropboxusercontent.com/u/8070528/KSP/ETT-HETTN log.txt

My mod list:

Spoiler

[x] Science! (xScience v5.4)
Action Groups Extended (AGExt 2.2)
Alternate Resource Panel (AlternateResourcePanel v2.9.1.0)
B9 Part Switch (B9PartSwitch v1.5.3)
CactEye Optics Community (CactEyeCommunity 1.2.1.10)
Chatterer (Chatterer 0.9.91)
Community Category Kit (CommunityCategoryKit 1.2.1)
Community Resource Pack (CommunityResourcePack 0.6.3.0)
Community Tech Tree (CommunityTechTree 1:3.0.2)
Contract Configurator (ContractConfigurator 1.22.1)
Contract Pack: Bases and Stations (ContractConfigurator-KerbinSpaceStation 1:3.5)
Contract Pack: Field Research (ContractConfigurator-FieldResearch 1.2.0)
Contract Pack: Kerbal Academy (ContractConfigurator-KerbalAcademy 1.1.5)
Contract Pack: Rover Missions (ContractConfigurator-RoverMissionsRedux 0.1.6.1)
Contract Pack: Tourism Plus (ContractConfigurator-Tourism 1.5.2)
Contract Pack: Unmanned Contracts (ContractConfigurator-UnmannedContracts 0.3.27)
DeepFreeze Continued... (DeepFreeze V0.23.2.0)
Distant Object Enhancement (DistantObject v1.8.1)
Distant Object Enhancement default config (DistantObject-default v1.8.1)
DMagic Orbital Science (DMagicOrbitalScience 1.3.7)
Engine Lighting (EngineLighting 1.5)
Engineering Tech Tree (ETT 2:v20161211)
Environmental Visual Enhancements (EnvironmentalVisualEnhancements 2:EVE-1.2-2)
Extraplanetary Launchpads (ExtraPlanetaryLaunchpads 5.5.3.0)
Extraplanetary Launchpads - No More Production (ExtraplanetaryLaunchpads-NoMoreProduction 1.0.0)
Final Frontier (FinalFrontier 1.2.5-2906)
Firespitter Core (FirespitterCore v7.4.2)
Hide Empty Tech Tree Nodes (HideEmptyTechNodes 0.7.2)
Impact! (Impact v1.5.0)
Interstellar Fuel Switch (InterstellarFuelSwitch 2.3)
Interstellar Fuel Switch Core (InterstellarFuelSwitch-Core 2.3)
Kerbal Alarm Clock (KerbalAlarmClock v3.8.3.0)
Kerbal Attachment System (KAS 0.6.1.0)
Kerbal Engineer Redux (KerbalEngineerRedux 1.1.2.8)
Kerbal Inventory System (KIS 1.4.0.0)
Kerbal Inventory System - No Fun (KerbalInventorySystemNoFun v0.1.2)
Kerbal Joint Reinforcement (KerbalJointReinforcement v3.3.1)
Konstruction (Konstruction 0.1.7.0)
Kopernicus Planetary System Modifier (Kopernicus 2:release-1.2.2-2)
kOS: Scriptable Autopilot System (kOS 1.0.3)
KRASH - Kerbal Ramification Artifical Simulation Hub (simulation mod for KSP) (KRASH 0.5.22.1)
KSP AVC (KSP-AVC 1.1.6.2)
KSP Craft Organizer (VAB/SPH tags + craft searching) (KspCraftOrganizer 1.4)
KSP Interstellar Extended (KSPInterstellarExtended 1.11.8)
KW Rocketry Redux (KWRocketryRedux 3.0.24.1)
KW Rocketry Redux - Instant Power Response Configs (KWRocketryRedux-InstantPwr 3.0.24.1)
MagiCore (MagiCore 1.1.3)
Maneuver Node Evolved (ManeuverNodeEvolved 2.3)
ModularFlightIntegrator (ModularFlightIntegrator 1.2.2.0)
Module Manager (ModuleManager 2.7.5)
Navball Docking Alignment Indicator CE-2 (NavballDockAlignIndCE 1.0.1.1)
Near Future Electrical (NearFutureElectrical 0.8.2)
Near Future Electrical Core (NearFutureElectrical-Core 0.8.2)
Near Future Electrical Extras: Decaying RTGs Patch (NearFutureElectrical-DecayingRTGs 0.8.2)
Near Future Propulsion (NearFuturePropulsion 0.8.2)
Olympic1's ARP Icons (Olympic1ARPIcons v0.10.12)
Persistent Dynamic Pod Names (PersistentDynamicPodNames 0.1.6.1)
PersistentRotation (PersistentRotation 1.8.1)
PlanetShine (PlanetShine 0.2.5.2)
PlanetShine - Default configuration (PlanetShine-Config-Default 0.2.5.2)
Realistic Atmospheres (RealisticAtmospheres 1.2.2)
Reentry Particle Effect (ReentryParticleEffect 1.2a)
REPOSoftTech-Agencies (REPOSoftTech-Agencies V1.4.4.0)
REPOSoftTech-KSP Utils (RSTKSPUtils V0.23.1.0)
RoverScience Revisited (RoverScienceRevisited 2.2.0)
SCANsat (SCANsat v16.11)
scatterer (Scatterer 2:v0.0256)
ShipManifest (ShipManifest 5.1.3.1)
SpacetuxSA (SpacetuxSA 0.3.12.1)
Stock Visual Enhancements: Scatterer Configs (SVE-Scatterer-Config 2:1.1.4)
Stock Visual Enhancements: Sunflare (SVE-Sunflare 2:1.1.4)
Stock Visual Enhancements-Medium Res (SVE-MediumResolution 2:1.1.4)
Surface Experiment Pack (SurfaceExperimentPack v2.1.1)
TakeCommandContinued (TakeCommandContinued 1.4.2)
TextureReplacer (TextureReplacer v2.5.4)
The Janitor's Closet (JanitorsCloset 0.1.8)
Toolbar (Toolbar 1.7.13)
Transfer Window Planner (TransferWindowPlanner v1.6.0.0)
TriggerAu Flags (TriggerAu-Flags v2.9.1.0)
TweakScale - Rescale Everything! (TweakScale v2.3.2)
Universal Storage (UniversalStorage 1.2.2.0)
USI Core (USI-Core 0.3.4.0)
USI Kolonization Systems (MKS/OKS) (UKS 1:0.50.7.0)
USI Life Support (USI-LS 0.5.13.0)
USI Tools (USITools 0.8.6.0)
Waypoint Manager (WaypointManager 2.6.0)
YongeTech Tech Trees Plugin Revived (YongeTechTreesPlugin-Revived v20161211)

 

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