Jump to content

[1.3.0] Kerbalism v1.2.9


ShotgunNinja

Recommended Posts

Hi all!

 

I'm trying to make this awesome mod work along with Planetary base system (using the TAC profile), however I'm having trouble dealing with the life support system.

Aside from the air filter (that extracts gases from the atmosphere), the Sabatier, carbon extractor, Elektron and Water Purifier are broken, only displaying some storage space.

Looking at the cfg files it seems that these parts rely on a TacGenericConverter (thought that the Kerbalism TAC profile would replace/alter it) so at this point I'm starting to think that I've messed up my install or that I'm missing something.

Is there any patch file to make these parts work with the recyclers from Kerbalism? Or Am I gonna have to get my hands dirty ^_^?

Link to comment
Share on other sites

@inigma It does. Kerbalism use CRP resources (well, mostly), US added esplicit support a while back, and recently I added a MM patch to address some minor balance issues with the US containers.

 

@Captain Dax The TAC-emulation profile is only meant to mimic TAC rates, and as a bonus unlock TAC related parts in other mods by tricking them into believing that TAC is installed. But there is obviously no implementation of the TAC modules.

EDIT:
Oooops, I didn't read it was the KPBS Elektron. You'll have to get your hands dirty :)
Here is a patch made by DarkonZ that do a similar thing, but for the Realism profile. Maybe it can work as a starting point.

Edited by ShotgunNinja
ooops
Link to comment
Share on other sites

I've deleted the whole UniversalStorage folder from DMagic mod. At first it seemed the charging problem was solved, but then, at high timewarps, probes behave as if they're being eclipsed for few weeks at a time.

I don't get any crashes or error logs but this forces me to use Hyper Edit all the time.

 

I don't know what to look for to help you, @ShotgunNinja. :S

Link to comment
Share on other sites

On 9/4/2016 at 1:49 PM, ShotgunNinja said:

@gamerscircle You could do that, but then risk to lose it when the mod is updated. Instead:

  • rename the file Profiles/Default.cfg to Profiles/Default.cfg-disabled, or just delete it, to disable the default profile.
  • put the content of the custom one in a file with extension .cfg anywhere inside GameData

 

@ss8913 Unfortunately Interstellar has a lot of modules, a custom electric charge resource, and complex ISRU. It is also constantly evolving. Supporting it in the background simulation will be a major effort. I mean serious work: I will have to basically reimplement it for unloaded vessels, as I've done with the supported mods. However, these had a couple of modules at best and were relatively stable. So I'll be frank and say that I don't see me implementing background simulation for Interstellar any time soon, if ever. Maybe when I exaust the other things I'm planning to implement I'll look into supporting some of its modules.

maybe a compromise... add a checkbox for "assume KSPIE nuclear reactors are working as intended" and force them to 100% EC in the background.  This is essentially the behavior that you'd get if it was properly implemented anyway, and seems like it's much easier to code.  Of course it's not fully realistic and it misses some edge cases, but it solves the 95% case for this problem.

Link to comment
Share on other sites

@lajoswinkler Send me the log, the savegame, a list of part mods you are using and the name of the vessels that are showing this problem.

 

@ss8913 I want to show you something: this is the data stored in the KSPIE nuclear reactor module:

Spoiler

        [KSPField(isPersistant = true)]
        public bool IsEnabled;
        [KSPField(isPersistant = true)]
        public bool isupgraded = false;
        [KSPField(isPersistant = true)]
        public bool breedtritium;
        [KSPField(isPersistant = true)]
        public float last_active_time;
        [KSPField(isPersistant = true, guiActive = false, guiName = "Consumption Rate", guiFormat = "F2")]
        public double ongoing_consumption_rate;
        [KSPField(isPersistant = true)]
        public bool reactorInit;
        [KSPField(isPersistant = true)]
        public bool reactorBooted;
        [KSPField(isPersistant = true, guiActiveEditor = true, guiName = "Start Enabled"), UI_Toggle(disabledText = "True", enabledText = "False")]
        public bool startDisabled;
        [KSPField(isPersistant = true)]
        public double neutronEmbrittlementDamage;
        [KSPField(isPersistant = true)]
        public double maxEmbrittlementFraction = 0.5;
        [KSPField(isPersistant = true)]
        public float windowPositionX = 20;
        [KSPField(isPersistant = true)]
        public float windowPositionY = 20;
        [KSPField(isPersistant = true)]
        public int currentGenerationType;
        [KSPField(isPersistant = true)]
        public float storedPowerMultiplier = 1;
        [KSPField(isPersistant = true)]
        public float stored_fuel_ratio = 1;

        [KSPField(isPersistant = false, guiActive = false)]
        public string upgradeTechReqMk2 = null;
        [KSPField(isPersistant = false, guiActive = false)]
        public string upgradeTechReqMk3 = null;
        [KSPField(isPersistant = false, guiActive = false)]
        public string upgradeTechReqMk4 = null;
        [KSPField(isPersistant = false, guiActive = false)]
        public string upgradeTechReqMk5 = null;

        [KSPField(isPersistant = false)]
        public float minimumThrottleMk1 = 0;
        [KSPField(isPersistant = false)]
        public float minimumThrottleMk2 = 0;
        [KSPField(isPersistant = false)]
        public float minimumThrottleMk3 = 0;
        [KSPField(isPersistant = false)]
        public float minimumThrottleMk4 = 0;
        [KSPField(isPersistant = false)]
        public float minimumThrottleMk5 = 0;

        [KSPField(isPersistant = false)]
        public float fuelEfficencyMk1 = 0;
        [KSPField(isPersistant = false)]
        public float fuelEfficencyMk2 = 0;
        [KSPField(isPersistant = false)]
        public float fuelEfficencyMk3 = 0;
        [KSPField(isPersistant = false)]
        public float fuelEfficencyMk4 = 0;
        [KSPField(isPersistant = false)]
        public float fuelEfficencyMk5 = 0;

        [KSPField(isPersistant = false)]
        public float coreTemperatureMk1 = 0;
        [KSPField(isPersistant = false)]
        public float coreTemperatureMk2 = 0;
        [KSPField(isPersistant = false)]
        public float coreTemperatureMk3 = 0;
        [KSPField(isPersistant = false)]
        public float coreTemperatureMk4 = 0;
        [KSPField(isPersistant = false)]
        public float coreTemperatureMk5 = 0;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        public float basePowerOutputMk1 = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        public float basePowerOutputMk2 = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        public float basePowerOutputMk3 = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        public float basePowerOutputMk4 = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        public float basePowerOutputMk5 = 0;

        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = true, guiName = "Power Output Mk1", guiUnits = " MJ")]
        public float powerOutputMk1;
        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = true, guiName = "Power Output Mk2", guiUnits = " MJ")]
        public float powerOutputMk2;
        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = true, guiName = "Power Output Mk3", guiUnits = " MJ")]
        public float powerOutputMk3;
        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = true, guiName = "Power Output Mk4", guiUnits = " MJ")]
        public float powerOutputMk4;
        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = true, guiName = "Power Output Mk5", guiUnits = " MJ")]
        public float powerOutputMk5;

        // Settings
        [KSPField(isPersistant = false)]
        public int reactorModeTechBonus = 0;
        [KSPField(isPersistant = false)]
        public bool canBeCombinedWithLab = false;
        [KSPField(isPersistant = false)]
        public bool canBreedTritium = false;
        [KSPField(isPersistant = false)]
        public bool canDisableTritiumBreeding = true;
        [KSPField(isPersistant = false)]
        public bool disableAtZeroThrottle = false;
        [KSPField(isPersistant = false)]
        public bool controlledByEngineThrottle = false;
        [KSPField(isPersistant = false)]
        public bool showShutDownInFlight = false;
        [KSPField(isPersistant = false, guiActiveEditor = true)]
        public float powerScaleExponent = 3;

        [KSPField(isPersistant = false)]
        public float emergencyPowerShutdownFraction = 0.95f;
        [KSPField(isPersistant = false)]
        public float breedDivider = 100000.0f;
        [KSPField(isPersistant = false)]
        public float bonusBufferFactor = 0.05f;
        [KSPField(isPersistant = false)]
        public float heatTransportationEfficiency = 0.8f;
        [KSPField(isPersistant = false)]
        public float ReactorTemp = 0;
        [KSPField(isPersistant = false)]
        public float powerOutputMultiplier = 1;
        [KSPField(isPersistant = false)]
        public float upgradedReactorTemp = 0;
        [KSPField(isPersistant = false)]
        public string animName;
        [KSPField(isPersistant = false)]
        public string upgradedName;
        [KSPField(isPersistant = false)]
        public string originalName;
        [KSPField(isPersistant = false)]
        public float upgradeCost;
        [KSPField(isPersistant = false, guiActiveEditor = false, guiActive = false, guiName = "Radius")]
        public float radius;
        [KSPField(isPersistant = false)]
        public float minimumThrottle = 0;
        [KSPField(isPersistant = false)]
        public bool canShutdown = true;
        [KSPField(isPersistant = false)]
        public bool consumeGlobal;
        [KSPField(isPersistant = false)]
        public int reactorType;
        [KSPField(isPersistant = false)]
        public float fuelEfficiency = 1;
        [KSPField(isPersistant = false)]
        public float upgradedFuelEfficiency = 1;
        [KSPField(isPersistant = false)]
        public bool containsPowerGenerator = false;
        [KSPField(isPersistant = false)]
        public float fuelUsePerMJMult = 1f;
        [KSPField(isPersistant = false)]
        public float wasteHeatMultiplier = 1;
        [KSPField(isPersistant = false)]
        public float hotBathTemperature = 0;

        [KSPField(isPersistant = false)]
        public float alternatorPowerKW = 0;
        [KSPField(isPersistant = false)]
        public float thermalPropulsionEfficiency = 1;
        [KSPField(isPersistant = false)]
        public float thermalEnergyEfficiency = 1;
        [KSPField(isPersistant = false)]
        public float chargedParticleEnergyEfficiency = 1;
        [KSPField(isPersistant = false)]
        public float chargedParticlePropulsionEfficiency = 1;

        [KSPField(isPersistant = false)]
        public bool hasBuoyancyEffects = false;
        [KSPField(isPersistant = false)]
        public float geeForceMultiplier = 2;
        [KSPField(isPersistant = false)]
        public float geeForceTreshHold = 1.5f;
        [KSPField(isPersistant = false)]
        public float minGeeForceModifier = 0.01f;
        [KSPField(isPersistant = false)]
        public float neutronEmbrittlementLifepointsMax = 100;
        [KSPField(isPersistant = false)]
        public float neutronEmbrittlementDivider = 1e+9f;
        [KSPField(isPersistant = false)]
        public float hotBathModifier = 1;
        [KSPField(isPersistant = false)]
        public float thermalProcessingModifier = 1;
        [KSPField(isPersistant = false, guiActive = false)]
        public int supportedPropellantAtoms = GameConstants.defaultSupportedPropellantAtoms;
        [KSPField(isPersistant = false, guiActive = false)]
        public int supportedPropellantTypes = GameConstants.defaultSupportedPropellantTypes;
        [KSPField(isPersistant = false)]
        public bool fullPowerForNonNeutronAbsorbants = true;
        [KSPField(isPersistant = false)]
        public bool showSpecialisedUI = true;
        [KSPField(isPersistant = false)]
        public bool fastNeutrons = true;
        [KSPField(isPersistant = false)]
        public bool canUseNeutronicFuels = true;

        // Visible imput parameters 
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Bimodel upgrade tech")]
        public string bimodelUpgradeTechReq = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Extra upgrade tech")]
        public string powerUpgradeTechReq = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Extra upgrade Power Multiplier")]
        public float powerUpgradeTechMult = 1;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Extra upgrade Core temp Mult")]
        public float powerUpgradeCoreTempMult = 1;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = true, guiName = "Active Raw Power", guiUnits = " MJ")]
        public float currentRawPowerOutput;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Output (Basic)", guiUnits = " MW")]
        public float PowerOutput = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Output (Upgraded)", guiUnits = " MW")]
        public float upgradedPowerOutput = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Upgrade")]
        public string upgradeTechReq = String.Empty;

        // GUI strings
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = true, guiName = "Core Temp")]
        public string coretempStr = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiName = "Status")]
        public string statusStr = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiName = "Thermal Power")]
        public string currentTPwr = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiName = "Charged Power")]
        public string currentCPwr = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = true, guiName = "Fuel")]
        public string fuelModeStr = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = true, guiName = "Connections Surface")]
        public string connectedRecieversStr = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = true, guiName = "Reactor Surface", guiUnits = " m2")]
        public float reactorSurface;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Max Power to Supply frame")]
        protected double max_power_to_supply = 0;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Fixed Max Thermal Power")]
        protected double fixed_maximum_thermal_power;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Fixed Max Charged Power")]
        protected double fixed_maximum_charged_power;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        protected double max_thermal_to_supply_fixed;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        protected double max_charged_to_supply_fixed;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Max TP To Supply", guiFormat = "F6")]
        protected double max_thermal_to_supply_nominal;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Max CP To Supply", guiFormat = "F6")]
        protected double max_charged_to_supply_nominal;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Min throttle")]
        protected float min_throttle;

        // Gui floats
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = true, guiName = "Part Mass", guiUnits = " t")]
        public float partMass = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Max Thermal Power", guiUnits = " MW", guiFormat = "F6")]
        public double maximumThermalPowerFloat = 0;
        [KSPField(isPersistant = false, guiActive = false, guiName = "Gee Force Mod")]
        public double geeForceModifier;
        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = false, guiName = "Power Produced", guiUnits = " MW", guiFormat = "F6")]
        public double ongoing_total_power_generated;

        [KSPField(isPersistant = false, guiActive = false)]
        protected double effective_minimum_throtle;

        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = false, guiName = "Neutron Power Generated", guiFormat = "F6")]
        protected double ongoing_neutron_power_generated;
        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = false, guiName = "Charged Power Generated", guiFormat = "F6")]
        protected double ongoing_charged_power_generated;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Thermal Power Requested", guiFormat = "F6")]
        protected double ongoing_thermal_power_requested;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Charged Power Requested", guiFormat = "F6")]
        protected double ongoing_charged_power_requested;

 

Now, I believe that alternatorPowerKW could be the EC production for the module, but who knows. I don't really have time to dig in all of this, and this is just one among twelve types of reactors.

Link to comment
Share on other sites

What other ways of shielding exist besides adding shielding to your vessel? Is it possible to send Kerbals on journeys longer than 9 years 332 days? Because that's what mine are maxing out on with one Kerbal no matter how much shielding I add. I really like this mod but I'm also using outer planets mod and really wanted to send Kerbals there but it looks like I might not be able to because it takes longer than 9 years round trip. Is there anyway to heal or reset radiation sickness?

Oh wait I just saw the active shield. Damn need 750 more science to unlock that haha! Cool, a goal.

Edited by seeingeyegod
Link to comment
Share on other sites

18 hours ago, seeingeyegod said:

Oh wait I just saw the active shield. Damn need 750 more science to unlock that haha! Cool, a goal.

Made my day :)

 

11 minutes ago, RedParadize said:

You think it would be possible to support SSTUSolarPanelDeployable?

I am looking at the code of both SSTUSolarPanelStatic and SSTUSolarPanelDeployable: they should be doable. I'll add them to the todo list. I also see a whole lot of goodness in SSTU code: converters, lights, and fuel boiloff modules. Definitely need to try it out.

Link to comment
Share on other sites

2 minutes ago, ShotgunNinja said:

I am looking at the code of both SSTUSolarPanelStatic and SSTUSolarPanelDeployable: they should be doable. I'll add them to the todo list. I also see a whole lot of goodness in SSTU code: converters, lights, and fuel boiloff modules. Definitely need to try it out.

You will love it.  SSTU offer offer a integrated, simple and customisable solution to everything that is part related. Alot of ground breaking fonctionality. Its now a must have for me, just like your mod!

Link to comment
Share on other sites

I think that I have a potential bug which I couldn't find in this topic so far. My space station placed in Kerbins low orbit shows as "in shadow", even though it is NOT. Therefore, the vessel monitor constantly shows low EC warnings. However, when I focus on the station (i. e. "switch to"), the batteries recharge normally when in sunlight.

EDIT: The latest Kerbalism update solved the problem. Thank! Keep up the great work!

Edited by dabel
Update solved the problem.
Link to comment
Share on other sites

On 9/6/2016 at 2:04 PM, ShotgunNinja said:

@lajoswinkler Send me the log, the savegame, a list of part mods you are using and the name of the vessels that are showing this problem.

 

@ss8913 I want to show you something: this is the data stored in the KSPIE nuclear reactor module:

  Hide contents


        [KSPField(isPersistant = true)]
        public bool IsEnabled;
        [KSPField(isPersistant = true)]
        public bool isupgraded = false;
        [KSPField(isPersistant = true)]
        public bool breedtritium;
        [KSPField(isPersistant = true)]
        public float last_active_time;
        [KSPField(isPersistant = true, guiActive = false, guiName = "Consumption Rate", guiFormat = "F2")]
        public double ongoing_consumption_rate;
        [KSPField(isPersistant = true)]
        public bool reactorInit;
        [KSPField(isPersistant = true)]
        public bool reactorBooted;
        [KSPField(isPersistant = true, guiActiveEditor = true, guiName = "Start Enabled"), UI_Toggle(disabledText = "True", enabledText = "False")]
        public bool startDisabled;
        [KSPField(isPersistant = true)]
        public double neutronEmbrittlementDamage;
        [KSPField(isPersistant = true)]
        public double maxEmbrittlementFraction = 0.5;
        [KSPField(isPersistant = true)]
        public float windowPositionX = 20;
        [KSPField(isPersistant = true)]
        public float windowPositionY = 20;
        [KSPField(isPersistant = true)]
        public int currentGenerationType;
        [KSPField(isPersistant = true)]
        public float storedPowerMultiplier = 1;
        [KSPField(isPersistant = true)]
        public float stored_fuel_ratio = 1;

        [KSPField(isPersistant = false, guiActive = false)]
        public string upgradeTechReqMk2 = null;
        [KSPField(isPersistant = false, guiActive = false)]
        public string upgradeTechReqMk3 = null;
        [KSPField(isPersistant = false, guiActive = false)]
        public string upgradeTechReqMk4 = null;
        [KSPField(isPersistant = false, guiActive = false)]
        public string upgradeTechReqMk5 = null;

        [KSPField(isPersistant = false)]
        public float minimumThrottleMk1 = 0;
        [KSPField(isPersistant = false)]
        public float minimumThrottleMk2 = 0;
        [KSPField(isPersistant = false)]
        public float minimumThrottleMk3 = 0;
        [KSPField(isPersistant = false)]
        public float minimumThrottleMk4 = 0;
        [KSPField(isPersistant = false)]
        public float minimumThrottleMk5 = 0;

        [KSPField(isPersistant = false)]
        public float fuelEfficencyMk1 = 0;
        [KSPField(isPersistant = false)]
        public float fuelEfficencyMk2 = 0;
        [KSPField(isPersistant = false)]
        public float fuelEfficencyMk3 = 0;
        [KSPField(isPersistant = false)]
        public float fuelEfficencyMk4 = 0;
        [KSPField(isPersistant = false)]
        public float fuelEfficencyMk5 = 0;

        [KSPField(isPersistant = false)]
        public float coreTemperatureMk1 = 0;
        [KSPField(isPersistant = false)]
        public float coreTemperatureMk2 = 0;
        [KSPField(isPersistant = false)]
        public float coreTemperatureMk3 = 0;
        [KSPField(isPersistant = false)]
        public float coreTemperatureMk4 = 0;
        [KSPField(isPersistant = false)]
        public float coreTemperatureMk5 = 0;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        public float basePowerOutputMk1 = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        public float basePowerOutputMk2 = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        public float basePowerOutputMk3 = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        public float basePowerOutputMk4 = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        public float basePowerOutputMk5 = 0;

        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = true, guiName = "Power Output Mk1", guiUnits = " MJ")]
        public float powerOutputMk1;
        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = true, guiName = "Power Output Mk2", guiUnits = " MJ")]
        public float powerOutputMk2;
        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = true, guiName = "Power Output Mk3", guiUnits = " MJ")]
        public float powerOutputMk3;
        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = true, guiName = "Power Output Mk4", guiUnits = " MJ")]
        public float powerOutputMk4;
        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = true, guiName = "Power Output Mk5", guiUnits = " MJ")]
        public float powerOutputMk5;

        // Settings
        [KSPField(isPersistant = false)]
        public int reactorModeTechBonus = 0;
        [KSPField(isPersistant = false)]
        public bool canBeCombinedWithLab = false;
        [KSPField(isPersistant = false)]
        public bool canBreedTritium = false;
        [KSPField(isPersistant = false)]
        public bool canDisableTritiumBreeding = true;
        [KSPField(isPersistant = false)]
        public bool disableAtZeroThrottle = false;
        [KSPField(isPersistant = false)]
        public bool controlledByEngineThrottle = false;
        [KSPField(isPersistant = false)]
        public bool showShutDownInFlight = false;
        [KSPField(isPersistant = false, guiActiveEditor = true)]
        public float powerScaleExponent = 3;

        [KSPField(isPersistant = false)]
        public float emergencyPowerShutdownFraction = 0.95f;
        [KSPField(isPersistant = false)]
        public float breedDivider = 100000.0f;
        [KSPField(isPersistant = false)]
        public float bonusBufferFactor = 0.05f;
        [KSPField(isPersistant = false)]
        public float heatTransportationEfficiency = 0.8f;
        [KSPField(isPersistant = false)]
        public float ReactorTemp = 0;
        [KSPField(isPersistant = false)]
        public float powerOutputMultiplier = 1;
        [KSPField(isPersistant = false)]
        public float upgradedReactorTemp = 0;
        [KSPField(isPersistant = false)]
        public string animName;
        [KSPField(isPersistant = false)]
        public string upgradedName;
        [KSPField(isPersistant = false)]
        public string originalName;
        [KSPField(isPersistant = false)]
        public float upgradeCost;
        [KSPField(isPersistant = false, guiActiveEditor = false, guiActive = false, guiName = "Radius")]
        public float radius;
        [KSPField(isPersistant = false)]
        public float minimumThrottle = 0;
        [KSPField(isPersistant = false)]
        public bool canShutdown = true;
        [KSPField(isPersistant = false)]
        public bool consumeGlobal;
        [KSPField(isPersistant = false)]
        public int reactorType;
        [KSPField(isPersistant = false)]
        public float fuelEfficiency = 1;
        [KSPField(isPersistant = false)]
        public float upgradedFuelEfficiency = 1;
        [KSPField(isPersistant = false)]
        public bool containsPowerGenerator = false;
        [KSPField(isPersistant = false)]
        public float fuelUsePerMJMult = 1f;
        [KSPField(isPersistant = false)]
        public float wasteHeatMultiplier = 1;
        [KSPField(isPersistant = false)]
        public float hotBathTemperature = 0;

        [KSPField(isPersistant = false)]
        public float alternatorPowerKW = 0;
        [KSPField(isPersistant = false)]
        public float thermalPropulsionEfficiency = 1;
        [KSPField(isPersistant = false)]
        public float thermalEnergyEfficiency = 1;
        [KSPField(isPersistant = false)]
        public float chargedParticleEnergyEfficiency = 1;
        [KSPField(isPersistant = false)]
        public float chargedParticlePropulsionEfficiency = 1;

        [KSPField(isPersistant = false)]
        public bool hasBuoyancyEffects = false;
        [KSPField(isPersistant = false)]
        public float geeForceMultiplier = 2;
        [KSPField(isPersistant = false)]
        public float geeForceTreshHold = 1.5f;
        [KSPField(isPersistant = false)]
        public float minGeeForceModifier = 0.01f;
        [KSPField(isPersistant = false)]
        public float neutronEmbrittlementLifepointsMax = 100;
        [KSPField(isPersistant = false)]
        public float neutronEmbrittlementDivider = 1e+9f;
        [KSPField(isPersistant = false)]
        public float hotBathModifier = 1;
        [KSPField(isPersistant = false)]
        public float thermalProcessingModifier = 1;
        [KSPField(isPersistant = false, guiActive = false)]
        public int supportedPropellantAtoms = GameConstants.defaultSupportedPropellantAtoms;
        [KSPField(isPersistant = false, guiActive = false)]
        public int supportedPropellantTypes = GameConstants.defaultSupportedPropellantTypes;
        [KSPField(isPersistant = false)]
        public bool fullPowerForNonNeutronAbsorbants = true;
        [KSPField(isPersistant = false)]
        public bool showSpecialisedUI = true;
        [KSPField(isPersistant = false)]
        public bool fastNeutrons = true;
        [KSPField(isPersistant = false)]
        public bool canUseNeutronicFuels = true;

        // Visible imput parameters 
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Bimodel upgrade tech")]
        public string bimodelUpgradeTechReq = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Extra upgrade tech")]
        public string powerUpgradeTechReq = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Extra upgrade Power Multiplier")]
        public float powerUpgradeTechMult = 1;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Extra upgrade Core temp Mult")]
        public float powerUpgradeCoreTempMult = 1;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = true, guiName = "Active Raw Power", guiUnits = " MJ")]
        public float currentRawPowerOutput;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Output (Basic)", guiUnits = " MW")]
        public float PowerOutput = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Output (Upgraded)", guiUnits = " MW")]
        public float upgradedPowerOutput = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Upgrade")]
        public string upgradeTechReq = String.Empty;

        // GUI strings
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = true, guiName = "Core Temp")]
        public string coretempStr = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiName = "Status")]
        public string statusStr = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiName = "Thermal Power")]
        public string currentTPwr = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiName = "Charged Power")]
        public string currentCPwr = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = true, guiName = "Fuel")]
        public string fuelModeStr = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = true, guiName = "Connections Surface")]
        public string connectedRecieversStr = String.Empty;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = true, guiName = "Reactor Surface", guiUnits = " m2")]
        public float reactorSurface;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Max Power to Supply frame")]
        protected double max_power_to_supply = 0;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Fixed Max Thermal Power")]
        protected double fixed_maximum_thermal_power;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Fixed Max Charged Power")]
        protected double fixed_maximum_charged_power;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        protected double max_thermal_to_supply_fixed;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false)]
        protected double max_charged_to_supply_fixed;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Max TP To Supply", guiFormat = "F6")]
        protected double max_thermal_to_supply_nominal;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Max CP To Supply", guiFormat = "F6")]
        protected double max_charged_to_supply_nominal;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Min throttle")]
        protected float min_throttle;

        // Gui floats
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = true, guiName = "Part Mass", guiUnits = " t")]
        public float partMass = 0;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Max Thermal Power", guiUnits = " MW", guiFormat = "F6")]
        public double maximumThermalPowerFloat = 0;
        [KSPField(isPersistant = false, guiActive = false, guiName = "Gee Force Mod")]
        public double geeForceModifier;
        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = false, guiName = "Power Produced", guiUnits = " MW", guiFormat = "F6")]
        public double ongoing_total_power_generated;

        [KSPField(isPersistant = false, guiActive = false)]
        protected double effective_minimum_throtle;

        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = false, guiName = "Neutron Power Generated", guiFormat = "F6")]
        protected double ongoing_neutron_power_generated;
        [KSPField(isPersistant = true, guiActive = false, guiActiveEditor = false, guiName = "Charged Power Generated", guiFormat = "F6")]
        protected double ongoing_charged_power_generated;

        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Thermal Power Requested", guiFormat = "F6")]
        protected double ongoing_thermal_power_requested;
        [KSPField(isPersistant = false, guiActive = false, guiActiveEditor = false, guiName = "Charged Power Requested", guiFormat = "F6")]
        protected double ongoing_charged_power_requested;

 

Now, I believe that alternatorPowerKW could be the EC production for the module, but who knows. I don't really have time to dig in all of this, and this is just one among twelve types of reactors.

wow.. ok.. *alternate question then* - do the UKS reactors work when unfocused? :)

Link to comment
Share on other sites

Hi @ShotgunNinja,

I love Kerbalism's added difficulty, and one of my goals is to set up a self-sustaining colony on another planet - somwhere like Duna, for example. Kerbalism makes this *almost* possible, but currently there's no way to generate oxygen - only reduce the rate at which it's consumed through scrubbers. It would be great if Greenhouses produced oxygen, and based on an admittedly high-level glance through the code and configuration values, it seems like this could be enabled by adding a few lines to the Greenhouse part configuration. Would you be open to such a change? If so, would you accept a pull request if I was interested in implementing said change?

EDIT: Based on a more thorough investigation I'd also have to edit at least a few of the C# source files, but I'd still be up for it. Time to dust off my old copy of Visual Studio perhaps!

Edited by ThePsion5
Mentioning ShotgunNinja since my question was directed at him
Link to comment
Share on other sites

11 hours ago, ss8913 said:

wow.. ok.. *alternate question then* - do the UKS reactors work when unfocused

If USK is using the stock converters they should work out of the box.

 

8 hours ago, ecaps said:

i got an issue in high time warp. The kerbals on my station around Kerbin all die because the station has no electricity.

This mod doesn't suffer from 'high timewarp problems' anymore. So more details are needed: it is happening on loaded vessels? on unloaded ones? do you have some ec producer/consumer that is not supported by this mod? And the usual log+savegame. You need to prove that what you say is happening and is related to this mod, or I can't do nothing about it.

 

6 hours ago, ThePsion5 said:

I love Kerbalism's added difficulty, and one of my goals is to set up a self-sustaining colony on another planet - somwhere like Duna, for example. Kerbalism makes this *almost* possible, but currently there's no way to generate oxygen - only reduce the rate at which it's consumed through scrubbers.

I am doing some serious working on ISRU, that will allow the user to produce Oxygen in situ among other things. Namely, you will be able to produce it using Molten Regolith Electrolysis (out of Ore) and Solid Oxide Electrolysis (out of atmospheric CO2). There will be a full stack of interesting transformations available for a Duna colony :). And both the scrubber and greenhouse are changing, moving a bit more toward realistic mechanics. I'm timing these changes for KSP 1.2.0 public release, together with some savegame-breaking ones.

 

6 hours ago, ThePsion5 said:

It would be great if Greenhouses produced oxygen, and based on an admittedly high-level glance through the code and configuration values, it seems like this could be enabled by adding a few lines to the Greenhouse part configuration. Would you be open to such a change? If so, would you accept a pull request if I was interested in implementing said change?

Contributions are welcome, and I definitely want the greenhouse to consume some tiny bit of carbon dioxide and to produce a tiny bit of oxygen. Consider that right now I'm in the middle of a big refactor that is not on the version in Github, but I didn't touch the Greenhouse yet.

 

6 hours ago, ThePsion5 said:

Based on a more thorough investigation I'd also have to edit at least a few of the C# source files, but I'd still be up for it. Time to dust off my old copy of Visual Studio perhaps!

You will need to add some fields to the greenhouse module, andchange its FixedUpdate/BackgroundUpdate functions to produce oxygen (look in the resource cache for how to do it). Then you will need to change how the greenhouse is simulated in the planner (there is a resource simulator there).

Link to comment
Share on other sites

I installed the mod via CKAN, along with the default config from CKAN. I can't get any new antennas though. The only antenna I have access to is the "Communotron 8". I am playing career, and have unlocked the techs for better antennas (Basic science), but they still don't show up. In Sandbox mode I have all the antennas visible. 

Any idea what's going on?

Link to comment
Share on other sites

Sorry about this, but the gamma absorption makes no sense. I have a planet with a 80km, 4atm thick atmosphere absorbing 30% of gamma radiation, but a planet with a 22km, 1 atm thick atmosphere absorbing all of the gamma radiation. Can you make these settable so I can release new patches including the atmosphere settings?

Link to comment
Share on other sites

11 hours ago, ShotgunNinja said:
20 hours ago, ecaps said:

i got an issue in high time warp. The kerbals on my station around Kerbin all die because the station has no electricity.

This mod doesn't suffer from 'high timewarp problems' anymore. So more details are needed: it is happening on loaded vessels? on unloaded ones? do you have some ec producer/consumer that is not supported by this mod? And the usual log+savegame. You need to prove that what you say is happening and is related to this mod, or I can't do nothing about it.

Thank you! I had solar panels from ProbePlus on my vessel and it occured in unloaded state. After i changed to stock panels everything works fine.

I love your mod it adds so much depth to the game.

Link to comment
Share on other sites

I will try this mod out. I just want to ask a question regarding some things: Is this compatible with mods that change the tech tree ? I wouldn't mind if it only replace the few science parts btu I'm unsure will this clash with SETI-CTT, which is a  mod that emphasyzes on starting unmanned and making most of your missions done by probes rather han Kerbals (t mimmick how it's done in real life).  And how much is the science reduced ? The tech tree I use recommends to slide the science slider to 60% for the progression not to be too rapid, but how much does this mod reduce science gains ?

Edited by Antonio432
Link to comment
Share on other sites

Hi @ShotgunNinja,

First of all let me tell you that Kerbalism is one of the best mods I've ever used in the 4 years I've been playing KSP, so congrats! :D Now I have a problem that I have no idea how to solve:
I'm using Kerbalism along with a lot of mods, everything updated through CKAN. I like the realism profile more, so I've changed to that one. A few weeks ago i've updated my mods, and did not notice the realism profile was remained along with the new default. Now I changed only to the new Realism profile but I can no longer load my space station from anywhere (tracking station or flight) and if I load another craft, my debug log fills up with NullReferenceException warnings. I have a backup game with the 2 profiles both "active", KSP seems to run well without any problems exept food is consumed at a very high rate and no water consumption at all. 
I really don't want to lose this save, so any help is much appreciated!

Cheers!

 

 

 
Link to comment
Share on other sites

@BashGordon33 I'm adding a bonus to absorption if the body has atmospheric oxygen and/or an ocean. But now that I checked it, there is some problems in the formula. I'll fix it in next version. BTW what body does have this problem?

 

@Antonio432 The only thing this mod does to science is to reduce a bit the amounts, reorganize some of the situation combinations for the experiments, and switch thermometer/goo and barometer/matlab around in the tree. There should be no issues with SETI-CTT, and I guess 60% science is fine as I'm using that level myself.

 

@etomee Mmm, that is probably resource related. But I can't say without seeing the savegame. Send me the backup one.

 

Edited by ShotgunNinja
Link to comment
Share on other sites

1 hour ago, ShotgunNinja said:

 

 

@Antonio432 The only thing this mod does to science is to reduce a bit the amounts, reorganize some of the situation combinations for the experiments, and switch thermometer/goo and barometer/matlab around in the tree. There should be no issues with SETI-CTT, and I guess 60% science is fine as I'm using that level myself.

 

 

 

Thanks for the info. 60% does work really well, as it gives me a better sense of progression. I have just one another question: Does Space Weather disrupt RT connections aswell ?

Link to comment
Share on other sites

16 hours ago, ShotgunNinja said:

@herman When you unlock better 'signal processing', the effective ranges of antennas increase but there is no unlocking of parts. And kerbalism re-use the stock antennas, it doens't add any other except the communotron 8.

I might not have been clear enough. I'm not expecting new antennas from the mod, I'm expecting the antennas that would normally be unlocked at different tech levels (e.g. Communotron DTS M-1 at tech "Basic Science"). Right now the only antenna I have in the VAB is the "Communotron B8", despite unlocking "Basic Science".

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...