Jump to content

[1.10.0] Final Frontier - kerbal individual merits 1.10.0-3485


Nereid

KSP 1.1.0  

849 members have voted

  1. 1. Is FinalFrontier working in KSP 1.1.0?

    • Yes
      275
    • No
      65
    • It doesn't matter; this poll was just created to remove the outdated old one...
      538


Recommended Posts

Sorry for so many questions, but, well, i have another. I put the whole thing in my career mode save folder, Blizzy's mod and all, but when i started the game up, the FF button was nowhere to be seen. Do i have to put the Blizzy mod in Gamedata, and yours in the save game folder?

Link to comment
Share on other sites

I used the last shreds of my computer's crying RAM to run this mod. I am amazed as to how much it personifies each Kerbal. No longer do I test rockets by strapping 20 kerbals to them and holding their families at gunpoint.

Link to comment
Share on other sites

I used the last shreds of my computer's crying RAM to run this mod. I am amazed as to how much it personifies each Kerbal. No longer do I test rockets by strapping 20 kerbals to them and holding their families at gunpoint.

I agree, I've got one kerbal who absolutely must be the first to step outside the lander so he can hog all the 'first' EVA ribbons, and his companion who really does all the hard work piloting and sits mildly by...

Link to comment
Share on other sites

Small bug. Your new pathing logic doesn't work on OS-X, because our directory structure is different.

Relevant log line:

[LOG 22:18:57.578] no final frontier logbook (/Applications/KSP_osx_23.0/KSP.app/Contents/../saves/Cydonian Monk/halloffame.ksp) found

That's trying to read for the saves directory inside of the KSP.app folder (the KSP Application Bundle), when the saves (and GameData, and etc.) is one more directory up in the hierarchy.

As for suggestions on how to fix: KSPUtil.ApplicationRootPath will give you the root path (without /KSP_data/ or /KSP.app/Content/ appended), and should work for your needs. So to build your path to the save file, for instance, you'd need:

private static readonly String SAVE_BASE_FOLDER = KSPUtil.ApplicationRootPath + "/saves/";

That worked for me. I have no way to test on Windows, though, so....

Edited by Cydonian Monk
Link to comment
Share on other sites

May I suggest that you do something like the following:


/*
* This gets created when the game loads the Space Center scene. It then checks
* to make sure the ScenarioModule has been added to the game (so it will be
* automatically created in the appropriate scenes).
*/
[KSPAddonFixed(KSPAddon.Startup.SpaceCentre, false, typeof(AddScenarioModules))]
public class AddScenarioModules : MonoBehaviour
{
void Start()
{
var game = HighLogic.CurrentGame;

ProtoScenarioModule psm = game.scenarios.Find(
s => s.moduleName == typeof(FinalFrontier).Name);
if (psm == null)
{
Debug.Log("FF: Adding the scenario module.");
psm = game.AddProtoScenarioModule(typeof(FinalFrontier),
GameScenes.SPACECENTER, GameScenes.FLIGHT, GameScenes.EDITOR,
GameScenes.SPH, GameScenes.TRACKSTATION);
}
}
// BTW: I got this from Majiir's Kethane mod.
}

/*
* This will be automatically created by the game whenever the associated Game
* Scene is loaded, as specified above when the scenario was added to the
* current game.
*
* Note that it will be created in the scene in which the scenario is added to
* the game, if you do it the way I did above.
*/
public class FinalFrontier : ScenarioModule
{
/*
* This is called whenever the game is saving, both when saving to the
* persistent.sfs file and when quicksaving.
*/
public override void OnSave(ConfigNode gameNode)
{
// You can save to the given ConfigNode, which adds your data to the
// game's save file, or you can save to your own file here. If you save
// to your own file, you will need to figure out some way to handle
// quicksaving & quickloading.
// Saving to the game's save file handles that automatically for you.

foreach (LogBookEntry entry in book)
{
entry.Save(gameNode);

// You can keep saving one entry per line if you want:
// string value = entry.UniversalTime.ToString() + " " + entry.Code +
// " " + entry.Name;
// gameNode.AddValue("entry", value);
}

Debug.Log("FF: Saving FinalFrontier scenario: " + gameNode);
}

/* This is called whenever the game is loading. */
public override void OnLoad(ConfigNode gameNode)
{
Debug.Log("FF: Loading FinalFrontier scenario: " + gameNode);

var entries = gameNode.GetNodes("LogBookEntry");
foreach (ConfigNode node in entries)
{
LogBookEntry newEntry = new LogBookEntry();
newEntry.Load(node);
}
}
}

class LogBookEntry
{
public double UniversalTime { get; set; }
public String Code { get; set; }
public String Name { get; set; }

public void Save(ConfigNode node)
{
ConfigNode entry = node.AddNode("LogBookEntry");
entry.AddValue("UniversalTime", UniversalTime);
entry.AddValue("Code", Code);
entry.AddValue("Name", Name);
}

public void Load(ConfigNode node)
{
if (node.HasValue("UniversalTime"))
{
double newValue;
if (double.TryParse(node.GetValue("UniversalTime"), out newValue))
{
UniversalTime = newValue;
}
}
if (node.HasValue("Code"))
{
Code = node.GetValue("Code");

// You could change Code to an Enum and save that. Parsing it is a
// little more difficult, but not bad:
// string stringValue = node.GetValue("Code");
// if (Enum.IsDefined(typeof(CodeEnum), stringValue))
// {
// Code = (CodeEnum)Enum.Parse(typeof(CodeEnum), stringValue);
// }
}
if (node.HasValue("Name"))
{
Name = node.GetValue("Name");
}
}
}

// KSPAddonFixed is really only needed when using "once=true", so this works
// too: [KSPAddon(KSPAddon.Startup.SpaceCentre, false)]. Either way is good.

How do you feel about receiving help with your project? Would you mind if I tried to help? I cannot devote enough time to do much for you, just a little here or there. And how do you feel about hosting your code on Github or similar? PM me if you are interested.

I really like what you have done here. Great idea! :cool:

Link to comment
Share on other sites

Small bug. Your new pathing logic doesn't work on OS-X, because our directory structure is different.

[...]

As for suggestions on how to fix: KSPUtil.ApplicationRootPath will give you the root path (without /KSP_data/ or /KSP.app/Content/ appended), and should work for your needs. So to build your path to the save file, for instance, you'd need:

private static readonly String SAVE_BASE_FOLDER = KSPUtil.ApplicationRootPath + "/saves/";

That worked for me. I have no way to test on Windows, though, so....

Ah! Thank you! That is the information I was looking for! :) I was just trying to solve one problem, but I didn't feel well, when I was changing the code.

I have searched the unity/ksb api for a while to find a way to get to the KSP base folder, but given up a bit to early it seems.

I will recompile 0.1.6c with this fix today.

May I suggest that you do something like the following:

[...]

How do you feel about receiving help with your project? Would you mind if I tried to help? I cannot devote enough time to do much for you, just a little here or there. And how do you feel about hosting your code on Github or similar? PM me if you are interested.

I will try the suggestion in the next release.

Starting FF and not reloading/reinitializing things multiple times had puzzled my quite a bit at the first day. So I experimented a bit with "once=true" but didn't get any satisfiying results. This part of the code has to get a majoy overhaul some day. I'm programing in Java/C++ usually. C# and Unity too is completely new for me. So there are a few unnecessary quirks in the code for sure.

Regarding help: sure, why not? I'm using a local SVN repository at the moment. Next week I'm out for business again the whole week, but after then I can upload the code and resources to githup or a similar site.

EDIT: I somebody has some skills to create graphics any help would be appreciated, too. The ribbons are generated using a small java program. So adding new ribbons or changing them isn't hard.

Edited by Nereid
Link to comment
Share on other sites

I soooo want to add this mod to my KSP. But, I really don't want to restart my universe (otherwise, all the firsts would be wrong)! Maybe when 0.24 comes out... ;) Of course, that also assumes that this doesn't push me over the RAM limit...

Anyway, the mod looks great! I hope to be able to add it some day soon!

Link to comment
Share on other sites

I soooo want to add this mod to my KSP. But, I really don't want to restart my universe (otherwise, all the firsts would be wrong)! Maybe when 0.24 comes out... ;) Of course, that also assumes that this doesn't push me over the RAM limit...

You could use it in a existing universe, but some ribbons are more or less meaningless then.

Regarding RAM limits: This is not on focus at the moment. But I have noticed that KSP loads my ribbons as textures and currently I do load them again. So there is room for improvement. But the ribbon graphics are small and won't add much.

Link to comment
Share on other sites

Excellent work Nereid you deserve a medal! Me, my Mac and my team of Kerbals are all eagerly waiting with baited breath for the 0.1.6c path fix. Took the decision to reboot career mode yesterday to use this mod. Faffing around on Kerbin in the meantime.

Link to comment
Share on other sites

Noticed one of your bugs is docking award. Problems detecting docking? Feel free to take a look at how mission controller does it. I use gamevents.onpartcouple. Works most of time. ;)

I'm using gamevents.onpartcouple, too. But I'm not sure how my solution will work in KAS at the moment.

Link to comment
Share on other sites

Excellent work Nereid you deserve a medal! Me, my Mac and my team of Kerbals are all eagerly waiting with baited breath for the 0.1.6c path fix. Took the decision to reboot career mode yesterday to use this mod. Faffing around on Kerbin in the meantime.

0.1.6c is coming when I'm back from work in a few hours.

Would it be possible add the information how they died to dead kerbals?

Puh... that would be quite difficult. In the next few days I will add the new window for detailed view. I will think about this in between.

Edited by Nereid
Link to comment
Share on other sites

Final Frontier 0.1.6c is on Spaceport

The load/save-issues on OS-X should be fixed. No other changes.

EDIT: I don't really like the word "undecorated" in the filter. Any ideas for a better wording?

IMPORTANT for OS-X users: If you have used a version prior to 0.1.6 on OS-X, you have to move the halloffame.ksp to your save game folder.

Edited by Nereid
Link to comment
Share on other sites

Final Frontier 0.1.6c is on Spaceport

The load/save-issues on OS-X should be fixed. No other changes.

Thanks. I'll test it when I get home.

EDIT: I don't really like the word "undecorated" in the filter. Any ideas for a better wording?

Good question. There were a few early NASA Astronauts that (for various reasons) were never graduated to a mission assignment that called themselves the "Excess Eleven." I would not suggest that.

Perhaps "Candidates"?

Edit: Or "Rookies"?

Edited by Cydonian Monk
Link to comment
Share on other sites

My 2 cents:

I like "Undecorated" as it is descriptive and to the point, however "Candidates" is ok but I think "rookie" is a step back, no offense intended.

I honestly can't think of anything better than "Undecorated" so I have no suggestions.

Link to comment
Share on other sites

Generally NASA has a two year training program. If you assume that when a Kerbalnaut is chosen that they have passed the qualification tests but must be trained before being placed on flight status, then "In Training" could be a status for a Kerbalnaut without any awards.

Since a Kerbalnaut without any awards is because they have not flown any missions. (Even a mission that aborts on launch should give a EVA ribbon when the Kerbal gets out of the capsule on landing, if they are not killed...) then "Unflown Kerbalnauts" could be an option. Unflown is a term commonly used by the various space organizations.

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