Jump to content

KSP Interstellar Extended Continued Development Thread


FreeThinker

Recommended Posts

1 hour ago, The-Doctor said:

Question, what exactly does the solar wind collector do and how does it work?

It collect charged solar wind particles which can then be separate into useful resources by the ISRU Processor. Most useful when near the sun.

Edited by FreeThinker
Link to comment
Share on other sites

I think there is a bug in making Uranium Nitride, I had 0.04 UF4, ~2k Ammonia, the second I clicked the Uranium Tetrafluoride Ammonolysis I had about 2k Uranium Nitride instantly.

 

Image shows the ship I was testing this all with, and you can see the window for the ISRU process that was going on and the ~6.5M mT/hour production rate it had.

n0iQHCx.jpg

Link to comment
Share on other sites

4 hours ago, FreeThinker said:

It collect charged solar wind particles which can then be separate into useful resources by the ISRU Processor. Most useful when near the sun.

Resources such as? And I must say it is huge, oh um, for the relays, the beamed power transmitters and similar, could you add a node to the front of it? I was trying to make a star ship with multiple shields in front to protect against dust and what not and couldn't do it using it

Link to comment
Share on other sites

4 hours ago, The-Doctor said:

Resources such as?

According to http://solar-center.stanford.edu/FAQ/Qsolwindcomp.html and other sources, about 90 % of atoms in solar wind are hydrogen. About 8 % is helium (he-3 is less stable than he-4 and apparently the He-3/He-4 ratio is very close to 1/2000), so that's about 7,996 % He-4 and 0.004 % He-3. There are supposedly only trace amounts of heavier elements such as C, O, N and Ne,

4 hours ago, The-Doctor said:

 And I must say it is huge, oh um, for the relays, the beamed power transmitters and similar, could you add a node to the front of it? I was trying to make a star ship with multiple shields in front to protect against dust and what not and couldn't do it using it

I suggest you make a copy of the model you would like to use for the ripple shield and add the node yourself

Link to comment
Share on other sites

I am having a few issues with the combination of interstellar extended and cryogenic engines (and near future)

cryogenic engines adds hydrogen for their engines thus giving the option for lqdHydrogen+oxidizer in the fuel tanks.  This seems to work

when i install kspi-e i now have lqdHydrogen and LqdOxygen as an option for my tanks but not lqdHydrogen+oxidizer ... thus rendering cryogenic engines a bit useless.

 

can anyone recomend a fix? Adding LqdHydrogen + oxydizer as an option? Modding the cryogenic engines to take LqdOxygen?

Link to comment
Share on other sites

1 hour ago, Elieress said:

I am having a few issues with the combination of interstellar extended and cryogenic engines (and near future)

cryogenic engines adds hydrogen for their engines thus giving the option for lqdHydrogen+oxidizer in the fuel tanks.  This seems to work

when i install kspi-e i now have lqdHydrogen and LqdOxygen as an option for my tanks but not lqdHydrogen+oxidizer ... thus rendering cryogenic engines a bit useless.

 

can anyone recomend a fix? Adding LqdHydrogen + oxydizer as an option? Modding the cryogenic engines to take LqdOxygen?

Didn't anyone make a Real Fuels MM script to convert all Oxydizer on the cryogenic engines to LqdOxygen? that woud be much more logical as LqdOxygen is a cryogenic while Oxydizer  is just some fantasy resource. Perhaps a more appropriate name would be "partial cryogenic engines"

Edit: Someone mentioned this mod includes some MM script that convert the Cryognic Engines into true  Cryognic Engines meaning the Oxydizer  is replaced by LqdOxygen

 

Edited by FreeThinker
Link to comment
Share on other sites

Uploaded final Beta 1.15.0.6: which can be downloaded frpm here

* Added X-Ray Free Electron Laser Turret (by @Eleusis La Arwall )

* Added Diamagnetic Antihydrogen storage container (by @Eleusis La Arwall )

* Added ability of Diode Laser Turret  to transmit in Soft X-Rays

* Added improved convection for submerged radiators

* Added Plasma Jet Magneto Inertial Fusion Reactor

* Added Added Blanket Rectenna Receiver (by @silversliver)

* Added automated alternative fuel type selection for fusion reactors

* Added Science Dril

* Added Improve Interface Regolith Processing

* Added exit Apoapsis and exit Periapsis to Warp Control Interface

* Added resource switchers ISRU Processor

* Added IntakeLqd pump capacity to universal drill

* Added Infratable Gas Tank

* Added Mean Anomaly and DeltaV or Orbit to Alcubiere Control Window

* Added Inflatable Crashpad Gas Tank

* Added Double Pivot Photostatic X-Ray Receiver

* Re balanced cost thermal radiators

* Re-balanced beamed power

* Balance: Reduced minimum Nuclear Engines my 50%, this will also reduce Thermal Electric Power Output by 50%

* Fixed Regolith processing ability to function offscreen

* Fixed Antimatter Electric Power generation

* Fixed Reactor resource output, implicitly fixing premature actinides poisoning

* Fixed Deuterium refining from Regolith

* Fixed loss of power after docking

* Fixed spamming Universal Drill Gui

* Fixed Mass growth for Tweakaled Radiators

* Fixed Exploit staged Thermal Reactor

* Fixed active ad offline fuel usage nuclear engines

* Fixed thrust unbalance with multiple nuclear engines

* Fixed Issue where vessels with antimatter would explode when being unloaded

* Fixed issue build In thermal electric generator not functioning properly, like Timerwind

* Fixed exception log spamming on Timberwind

* Fixed Interstellar Tanks Methalox container amounts

* Fixed bug with QSR affected by lithium resources

 

Edited by FreeThinker
Link to comment
Share on other sites

On 13/08/2017 at 11:42 AM, FreeThinker said:

* Fixed spamming Universal Drill Gui

 

I think something went wrong there, because i still get the same number of drill guis as there are drills on my vessels. 
Is it even necessary to have the GUI pop up any time the drill touches the ground or is activated? 

 

I noticed something else: Tweakscaled universal drills arent really usable. They always say "insufficient power", even if thats not true.
At 0.1x physics timewarp it enables shortly and shows up in the UI with 64MW, which shouldnt be too much. 
Drill works with the infinite electricity cheat enabled though. 

ZpdJs4R.jpg

GWE6kCv.png

 

 

 

 

Third, something's wrong with fluorite. 
I did a clean 1.3.0 install and only added the contents of your most recent interstellar zip-file (well, and hyperedit). 
Even though the Resource scanner, overlay and mining ui say there's fluorite present it wont get mined on most planets. 
What i noticed is that it will mine just fine when the UI shows a number under "global 1" and or "global 2", "biome" and "local"

 

But on all planets except kerbin there's only a number under "local", and nothing gets mined. 
(The fluorite in the resources UI is from kerbin, i hyperedited the vessel around to check if stuff gets mined or not) 

 

iL6gmr9.png

 

 

Now the question is, why are the two global fields empty? I cant figure it out.. 
 

Link to comment
Share on other sites

This issue is not limited to Fluorite:
 

guSZjMD.png

 

Again no mining (of Alumina) in this scene even though resource scanners and mining ui says 9,9% locally.

I have been poking around in the interstellar sourcecode a bit and cant really make heads or tails of this issue.

It almost looks to me like a stock bug, why would the global abundances return 0 when there's something there locally? 

 

I could think of a fix; in this little bit here in UniversalCrustExtractor.cs: 

        private double CalculateResourceAmountCollected(double minedAmount, double globalPercentage, double localAbundance, double deltaTime)
        {
            double resourceAmount = minedAmount * globalPercentage * localAbundance * deltaTime;
            return resourceAmount;
        }


Just throw out globalPercentage and all should be dandy. I tried, and it works. But since since a <1 multiplier is missing, i believe mining is a tad too fast. 
Why exactly the game says "0" at that point is beyond me. 

 

 

Oh and i noticed another thing; more funny than a problem: 
The drill does not play any animation when mining on land. If its splashed down in water and extracting intakelqd it'll play the stock drill animation, kicking up dust. I think it should be reverse, right? :D

 

 

 

Link to comment
Share on other sites

5 hours ago, Hacki said:

I could think of a fix; in this little bit here in UniversalCrustExtractor.cs: 


        private double CalculateResourceAmountCollected(double minedAmount, double globalPercentage, double localAbundance, double deltaTime)
        {
            double resourceAmount = minedAmount * globalPercentage * localAbundance * deltaTime;
            return resourceAmount;
        }


Just throw out globalPercentage and all should be dandy. I tried, and it works. But since since a <1 multiplier is missing, i believe mining is a tad too fast. 
Why exactly the game says "0" at that point is beyond me.

Thanks for the heads up!

I haven't made this part of the code myself, but you are correct. I think what was intended is that the global density should affect local abundances. This could easily be achieved using some weighted multiplication. I will make it so

Link to comment
Share on other sites

I had a look at the drill-power-thing as well, and it looks like it's caused by floating point errors. 

This part of the code: 

 

private bool HasEnoughPower(double deltaTime)
        {
            if (CheatOptions.InfiniteElectricity || mwRequirements == 0) // is the cheat option of infinite electricity ON? Then skip all these checks.
                return true;

            double dPowerRequirementsMW = PluginHelper.PowerConsumptionMultiplier * mwRequirements;

            Debug.Log("dPowerRequirementsMW:" + dPowerRequirementsMW);
            // calculate the provided power and consume it
            double dPowerReceivedMW = Math.Max(consumeFNResource(dPowerRequirementsMW * deltaTime, FNResourceManager.FNRESOURCE_MEGAJOULES), 0);
            Debug.Log("dPowerReceivedMW:" + dPowerReceivedMW);
            double dNormalisedRecievedPowerMW = dPowerReceivedMW / deltaTime;
            Debug.Log("dNormalisedRecievedPowerMW:" + dNormalisedRecievedPowerMW);
            // when the requirements are low enough, we can get the power needed from stock energy charge
            if (dPowerRequirementsMW < 5 && dNormalisedRecievedPowerMW <= dPowerRequirementsMW)
            {
                double dRequiredKW = (dPowerRequirementsMW - dNormalisedRecievedPowerMW) * 1000;
                double dReceivedKW = ORSHelper.fixedRequestResource(part, FNResourceManager.STOCK_RESOURCE_ELECTRICCHARGE, dRequiredKW * deltaTime);
                dPowerReceivedMW += (dReceivedKW / 1000);
                dNormalisedRecievedPowerMW = dPowerReceivedMW / deltaTime;
            }
            return dNormalisedRecievedPowerMW >= dPowerRequirementsMW;
        }

 

Is apparently inherently flawed, as dNormalisedRecievedPowerMW is always smaller than dPowerRequirementsMW by some minute fraction because of - i guess - floating point errors. I made a debug built that prints out various values and this is what i get for the different tweakscaled sized drills: 

[LOG 11:46:38.439] dPowerRequirementsMW:1
[LOG 11:46:38.440] dPowerReceivedMW:0.0199999991059303
[LOG 11:46:38.440] dNormalisedRecievedPowerMW:0.999999977648258
[LOG 11:46:40.983] dPowerRequirementsMW:8
[LOG 11:46:40.984] dPowerReceivedMW:0.159999992847443
[LOG 11:46:40.985] dNormalisedRecievedPowerMW:7.99999982118607
[LOG 11:46:42.741] dPowerRequirementsMW:27
[LOG 11:46:42.742] dPowerReceivedMW:0.539999975860119
[LOG 11:46:42.743] dNormalisedRecievedPowerMW:26.999999396503
[LOG 11:46:44.301] dPowerRequirementsMW:64
[LOG 11:46:44.302] dPowerReceivedMW:1.27999994277954
[LOG 11:46:44.303] dNormalisedRecievedPowerMW:63.9999985694885

 

The first two versions of the drill only happen to work because of that bit in the middle, which makes drills with less than 5MW eat electric charge instead of megajoules. 
Although that bit has me scratching my head as well, especially this line: 
 

 

I'm no programmer, i dont know how to deal with floating point errors like that. 
I could replace the >= check with something like "is the received power withing 99,9% of the requirements?", but that seems a bit hack-ish and like there should be a proper way. :D

 

 

Edit: Nevermind, found it. The function MineResources takes TimeWarp.fixedDeltaTime as an argument, which is a float, but converts it to a double, so a very neat 0.02 becomes 0.0199999995529652. 
Edit again: This is where you notice i'm no programmer. convering from a float to a double shouldnt destroy any information, so whats going on here? I'm lost. 

 

Edited by Hacki
Link to comment
Share on other sites

1 hour ago, Hacki said:

 

Edit: Nevermind, found it. The function MineResources takes TimeWarp.fixedDeltaTime as an argument, which is a float, but converts it to a double, so a very neat 0.02 becomes 0.0199999995529652. 
 

 

This is actually a very interesting fact which I didn't know either until recently. That why at several locations I convert  Timewarp.fixedDeta explicitly to a double using

double fixedDetalTime  = (double)(decimal)Math.Round(TimeWarp.fixedDeltaTime,7)

which will convert the float 0.02 correctly into the double 0.02 and not make add or subtract a weird delta

The exact reason why this doesn't happen by default in C# is a bit of a mystery to me but I guess it has something to do with performance because most of the time, it doesn't matter if tiny delta creeps up in the conversion from float to double.

Edited by FreeThinker
Link to comment
Share on other sites

Very nice, that did it! 

I added this conversion of TimeWarp.fixedDeltaTime to consumeFNResource() in ORSResourceSuppliableModule.cs and to OnFixedUpdate() UniversalCrustExtractor.cs, now it works!


What i dont get is why that is necessary. Just for the fun of it i checked if  float TimeWarp.fixedDeltaTime is equal to double TimeWarp.fixedDeltaTime - and the program says yes. So why does it introduce a delta when you use the typecast value to do some math, when it apparently is exactly the same? 

 

I think UniversalCrustExtractor could use some love in general, it looks like all of that code is run for each single drill present on a craft, which is also why every drill opens up its own mining UI. Shouldnt it be enough to run it once and multiply some values by the number of drills? 

 

 

Edited by Hacki
Link to comment
Share on other sites

18 hours ago, Hacki said:

I think UniversalCrustExtractor could use some love as well, it looks like all of that code is run for each single drill present on a craft, which is also why every drill opens up its own mining UI.

 

Yes I agree it could use some love, but as always I'm very busy with other stuff as well so I would appreciate any help I can get. Perhaps you can help me fix this bugs?

19 hours ago, Hacki said:

I'm no programmer, i dont know how to deal with floating point errors like that. 
I could replace the >= check with something like "is the received power withing 99,9% of the requirements?", but that seems a bit hack-ish and like there should be a proper way.

4

That actually not that bad, but it does indicate that something elsewhere went wrong. Also, I think you don't need 99.9% power to be able to drill. Even with only a fraction (let's say 10%) it should still be able to mine but at a very low efficiency as most power would be wasted to friction.

Edited by FreeThinker
Link to comment
Share on other sites

@FreeThinker

So, inspired by Nerta's fantastic far future mod, i updated my FFRE nozzle a bit:

6lE9qXr.jpg

It now has a Hydrogen mix chamber, below the actual reactor (That will probably get deleted for the export) and, the half circle thing is supposed to be a nuclear dust powder line to 'refuel' It when it needs to be every few decades. I'll be adding some more coolant lines.

Also, I'm not sure i mentioned this before but, i did a bigger EM drive a while back. Incorporating 5 gyrotrons instead of one. Since KSPi isn't into engine clusters, It might be popular here too:

D1ED686252BA8663638CD993452FF0C1CB4175F9

 

Also, might we get the option to augment the FFR with something with more mass (besides hydrogen) in the future? To get a bit more bang for our buck? :D

 

I had one more thought as well while researching dusty plasma engines that i thought was worth mentioning. Since high-efficiency engines basic goal is to make something leave the ship REALLY fast, might this be possible to do with a particle accelerator? Accelerate your main efficiency mass in a normal toroid accelarator, Then once your up to speed divert the particle into something heavier, similar to the fission nanoparticle running into hydrogen to give it some meaningful thrust? I do know this has the rather significant drawback Of massive power consumption as you get closer to lightspeed but it might be buildabe with current tech. And i'm pretty sure i've seen a similar concept before that was basically just a open Tokamak.

Edited by SpaceMouse
Link to comment
Share on other sites

I'd love to, but i'm afraid i dont have the time to immerse myself in something larger than hunting some small bugs. 

In any case here https://github.com/alismatales/KSP-Interstellar-Extended/commits/master you can find the changes i did over the last two days to make the universal drill a bit more usable. 
You might not want to pull that straight to the master branch, but at least you'll find where the issues are easily with that. 

 

Link to comment
Share on other sites

5 hours ago, Hacki said:

In any case here https://github.com/alismatales/KSP-Interstellar-Extended/commits/master you can find the changes i did over the last two days to make the universal drill a bit more usable. 
You might not want to pull that straight to the master branch, but at least you'll find where the issues are easily with that.

Thanks, I merged your local changed into the main branch.

5 hours ago, Hacki said:

I'd love to, but i'm afraid i dont have the time to immerse myself in something larger than hunting some small bugs.

That's ok, just  keep doing what your doing, it will be appreciated by me and the community

Edited by FreeThinker
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...