Jump to content

[0.25/0.90] TechManager Version 1.5


anonish

Recommended Posts

Yup, tested it inside the R&D Screen (and outside). But Alt is bound to the window manager, so that key is never going to work as a modifier in KSP linux.

See Modifier key for what I mean. I'm guessing that's something KSP implements on it's own and not Unity then.

PM me a test version and I can verify.

Here is a slightly modified version 1.4, with some new keypress logic:

if(GameSettings.MODIFIER_KEY.GetKey() && Input.GetKeyDown(KeyCode.F7))

Works on windows far as I can tell, let me know about linux.

Link to comment
Share on other sites

Thanks for the update anonish, those UI changes should do trick :).

Care to explain what the new "hideIfNoBranchParts" flag does?

Its similar to hideIfNoParts / hideIfEmpty (both do the same). Instead of hiding a node if that node has no parts assigned to it, it will hide a node if that node and that node's children and their children... have no parts assigned to them. Custom trees allow for the possibility of A -> B -> C, where C has parts, but A and B don't. We wouldn't want to hide A and B in that case. But if C doesn't have parts, then its okay to hide them all. This is mainly to support CTT, where they are defining nodes that may or may not be used for a particular game and allows for branches of the tree to be 'turned off'.

Link to comment
Share on other sites

Its similar to hideIfNoParts / hideIfEmpty (both do the same). Instead of hiding a node if that node has no parts assigned to it, it will hide a node if that node and that node's children and their children... have no parts assigned to them. Custom trees allow for the possibility of A -> B -> C, where C has parts, but A and B don't. We wouldn't want to hide A and B in that case. But if C doesn't have parts, then its okay to hide them all. This is mainly to support CTT, where they are defining nodes that may or may not be used for a particular game and allows for branches of the tree to be 'turned off'.

Ah, I see. So it's technically a better version of "hideIfEmpty" really, since there's little point in hiding a node if you're not also going to hide it's children! Good call.

Link to comment
Share on other sites

The Left Alt F7 in both 1.3 and 1.4 causes the mod to disappear and I cant load any trees.

Load into an old or new save and hit Alt F7 in the R&D building and the GUI button telling me what tree im using dissapears and then becomes unresponsive.

Hm. That could be a mod crash. Please check your log file under KSPData for any exceptions / errors. Its also possible the GUILock is preventing you from doing anything, and you can't get rid of it because the dialog never shows itself. This might happen if you have multiple copies of TM installed, but shouldn't.

What other mods do you have installed? Does it happen when *only* TM is installed?

Link to comment
Share on other sites

Hm. That could be a mod crash. Please check your log file under KSPData for any exceptions / errors. Its also possible the GUILock is preventing you from doing anything, and you can't get rid of it because the dialog never shows itself. This might happen if you have multiple copies of TM installed, but shouldn't.

What other mods do you have installed? Does it happen when *only* TM is installed?

Ok so I think its the tree because other trees neem to work. I dont see any errors so maybe someone else will?

https://drive.google.com/open?id=0B94UWsd9Mg-5TVNJT3BmYkhZVm8&authuser=0

Link to comment
Share on other sites

what tree is this? or a custom one?

Its an extreamly modified vertical tech tree for personal use. I chose it because it has mode nodes than stock so im changing most of what thoes nodes are made up of.

Should I post my output log Im new to all this I only Joined the forums this month?

Link to comment
Share on other sites

Its an extreamly modified vertical tech tree for personal use. I chose it because it has mode nodes than stock so im changing most of what thoes nodes are made up of.

Should I post my output log Im new to all this I only Joined the forums this month?

name = newnode_veryLargeNobleStorage

hideIfEmpty = Ture

Ture?

There may be other problems, but it loaded just fine after that.

Link to comment
Share on other sites

Hey guys, I really want to add a sub-tree with all the parts of my mod in it, but I don't know how to use this "external" node feature you speak of... How does an external node get researched if it doesn't have any parents? Is it just ready to be researched at any time? If so, I want to make an isolated sub-tree to contain all of the parts in my mod to avoid conflicts with other mods.

(I'm using Nelien's Tech Tree Editor)

Link to comment
Share on other sites

Hey guys, I really want to add a sub-tree with all the parts of my mod in it, but I don't know how to use this "external" node feature you speak of... How does an external node get researched if it doesn't have any parents? Is it just ready to be researched at any time? If so, I want to make an isolated sub-tree to contain all of the parts in my mod to avoid conflicts with other mods.

(I'm using Nelien's Tech Tree Editor)

Well, I don't think Nelien's Tech Tree Editor supports the external property. You'll have to make it like a normal node then add 'external = True' to it in the .cfg file.

The way external nodes work is by referencing an existing tech in *another* tree. Lets say you wanted to start your sub-tree off of robotics from the stock tree, but you didn't want to replicate the entire stock tree. You just want robotics and whatever you branch off of it. You would create a node like:

NODE

{

name = mytree_robotics

pos = <x,y,z>

icon = ROBOTICS

techID = robotics

title = Robotics

description = The rumors of robot-led world domination are greatly exaggerated.

external = True

}

that's it. then you would reference that 'external' node in your new techs:

NODE

{

name = mytree_superrobotics

pos = <x,y,z>

icon = AUTOMATION (or whatever)

anyParent = False

techID = superrobotics

title = Super Robotics

description = Now the robots make snacks.

cost = 1000

hideIfEmpty = False

parents = mytree_robotics

}

So, an external node is referenced just like any other node. Its just not researchable from the tree it's defined on. It will show up, but will only show its children after its tech has been researched via some other tree. In this example, the idea would be to play with both 'KSP Stock' and 'mytree' enabled. After node8_robotics (techID = robotics) would be researched on the stock tree, mytree_robotics would light up as researched and allow progression on the sub-tree, 'mytree'.

I hope I'm explaining this okay. I feel like its a simple idea that isn't so simple to explain. An external node is like a sub-tree's 'start' node, and references a techID from another tree.

Link to comment
Share on other sites

Well, I don't think Nelien's Tech Tree Editor supports the external property. You'll have to make it like a normal node then add 'external = True' to it in the .cfg file.

The way external nodes work is by referencing an existing tech in *another* tree. Lets say you wanted to start your sub-tree off of robotics from the stock tree, but you didn't want to replicate the entire stock tree. You just want robotics and whatever you branch off of it. You would create a node like:

NODE

{

name = mytree_robotics

pos = <x,y,z>

icon = ROBOTICS

techID = robotics

title = Robotics

description = The rumors of robot-led world domination are greatly exaggerated.

external = True

}

that's it. then you would reference that 'external' node in your new techs:

NODE

{

name = mytree_superrobotics

pos = <x,y,z>

icon = AUTOMATION (or whatever)

anyParent = False

techID = superrobotics

title = Super Robotics

description = Now the robots make snacks.

cost = 1000

hideIfEmpty = False

parents = mytree_robotics

}

So, an external node is referenced just like any other node. Its just not researchable from the tree it's defined on. It will show up, but will only show its children after its tech has been researched via some other tree. In this example, the idea would be to play with both 'KSP Stock' and 'mytree' enabled. After node8_robotics (techID = robotics) would be researched on the stock tree, mytree_robotics would light up as researched and allow progression on the sub-tree, 'mytree'.

I hope I'm explaining this okay. I feel like its a simple idea that isn't so simple to explain. An external node is like a sub-tree's 'start' node, and references a techID from another tree.

So... it's like a clone or duplicate of a stock node that gets researched whenever the stock it is bound to does? And then the children behave as normal nodes.

Link to comment
Share on other sites

So... it's like a clone or duplicate of a stock node that gets researched whenever the stock it is bound to does? And then the children behave as normal nodes.

yes, exactly. except it doesn't have to be a stock node. it could be any techID from any (active) tree.

Link to comment
Share on other sites

So is there anyway to get Tech Manager to work client side on a dedicated server? I have a custom tech tree we are trying to use on a rented server. The host server will not allow us to put tech manager on it. This leads me to needing to do it on my end/ my players end.

Link to comment
Share on other sites

So is there anyway to get Tech Manager to work client side on a dedicated server? I have a custom tech tree we are trying to use on a rented server. The host server will not allow us to put tech manager on it. This leads me to needing to do it on my end/ my players end.

i have no idea. didn't even know dedicated servers were a thing. I'd expect that any multiplayer ksp would still leave research up to the individual players and not group research?

Link to comment
Share on other sites

The way I see it these are the main types of tech tree a mod could add to the game:

  1. The mods that piggyback on the standard tech tree without editing the stock node positions, science values, or stock part contents in any way.
  2. The mods that extend the stock tree to make it go beyond the normal "end nodes." Can also add their parts to unedited stock nodes.
  3. The mods that create an isolated sub-tree that contains the bulk of that mod's niche parts. Some parts can also be part of stock nodes.
  4. The mods that completely re-structure and re-arrange the stock tree to make it a different progression experience.

The type 1 tree doesn't require any additional mods. This is how most mods already add their parts to the tech tree.

Kerbal Interstellar is an example of the type 2 tree. This tree should be compatible with types 1 and 3, but would conflict with other type 2's.

The type 3 tree is less common, but there are a few mod authors that want it this way. (Personally, I thought this was the only way it could be a while back.)These mods would only work every time if the stock tree nodes were untouched. These sub-trees would almost never conflict with each other except for when they overlap each other. If this happens, then the mods authors could just inform each other and one of them will move their sub-tree.

The type 4 tree is not compatible with any others. Some type 1 tree might just happen to work only because some stock node names were used. It is the responsibility of the author of the tree to manage what parts go where, and to decide if they want modded parts added to their tree. (If a tree asks for a modded part, but that mod is not installed, nothing bad will happen, right?)

What I'm proposing here is to make your GUI know what kind of tech tree each one is, either by detection or by definition in the tree.cfg file. It would allow as many sub-trees to be loaded as the user wants, and only 1 tree extender (type 2). If a type 4 tree is selected, then all other trees are un-selected. The type 1's don't need management, really.

What do you think of this system?

Edited by jandcando
Link to comment
Share on other sites

Kerbal Interstellar is an example of the type 2 tree. This tree should be compatible with types 1 and 3, but would conflict with other type 2's.

not at all. I see no conflict between multiple type 2 trees.

These sub-trees would almost never conflict with each other except for when they overlap each other.

what overlap? if there are two trees, then they can't overlap. only one is drawn at any particular point in time. each modder is free to develop their tree without worrying about where other modders put their nodes. that was the whole point of allowing multiple trees to be active and toggled between in the R&D building.

The type 4 tree is not compatible with any others.

again, i see i inherit conflict here. its true that each tree may define different paths from tech A->B, or even reverse the paths, but that's not a conflict, its what it means to have multiple trees active. Think of them as research programs. Each research program can produce some set of techs if pre-requisite techs are already researched. So yes, multiple trees could allow you multiple ways to research the same tech, but that's the point.

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