Jump to content

[1.12.x] Dang It! Continued


linuxgurugamer

Recommended Posts

2 hours ago, Titandesdieu said:

In vaccum , if  a tank failed and leak it will creat a thrust in a opposite direction of the leak. Is it possible to recreate this in Dang It or just impossible

Possible I would think, worth the work, i dunno.  I'm thinking it would be a hidden part, a special kind of radial engine that gets attached via a script when a leak occurs and removed when a leak is fixed.

Link to comment
Share on other sites

I hope I didn't miss something essential in exploring the following issue as there's too much beer in me.

Anyways. I wanted to add support for SSTU solar panels. As some of you may notice, its a popular mod. I use it too. So... after trying some configs inserted directly into \DangIt\ModuleManager\Entropy\Solar.cfg (I've simply replaced ModuleDeployableSolarPanel with SSTUSolarPanelDeployable for testing purposes), I got the following stuff:

KSP.log:

Spoiler

[LOG 01:40:07.200] PartLoader: Part 'SSTU/Parts/dev/ProbeCore/PC-STOCK/SSTU-PC-HECS2' has no database record. Creating. 
[LOG 01:40:07.211] DragCubeSystem: Creating drag cubes for part 'SSTU-PC-HECS2' 
[EXC 01:40:07.253] InvalidOperationException: Operation is not valid due to the current state of the object 
System.Linq.Enumerable.First[ModuleDeployableSolarPanel] (IEnumerable`1 source) 
nsDangIt.ModuleSolarReliability.DI_ShowInfoInEditor () 
nsDangIt.ModuleReliabilityInfo.GetInfo () 
PartLoader.CompilePartInfo (.AvailablePart newPartInfo, .Part part) 
PartLoader+<CompileParts>c__Iterator66.MoveNext () 
UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) 


That one made me to look up the source. 

Spoiler

public override bool DI_ShowInfoInEditor(){ 
return this.part.Modules.OfType<ModuleDeployableSolarPanel>().First().isTracking; //Don't show for non-tracking panels 
}

I'm not familiar with MM syntax neither with MM config files. But as far as I researched any module declared with MODULE { } inherits its parents' fields (as, for example, the ModuleDeployableSolarPanel.isTracking one). So isn't is safer to change the parametrization to 

return this.part.Modules.OfType<ModuleSolarReliability>().First().isTracking;



PS: and as always.. Thank you @Ippo for DangIt! and @Coffeeman for Entropy and @linuxgurugamer for maintaining this mod! KSP really lacks of random failures. Not sure if it's nice to call all of you for thanks but oh well.

Edited by atomontage
clarification
Link to comment
Share on other sites

1 hour ago, atomontage said:

I hope I didn't miss something essential in exploring the following issue as there's too much beer in me.

Anyways. I wanted to add support for SSTU solar panels. As some of you may notice, its a popular mod. I use it too. So... after trying some configs inserted directly into \DangIt\ModuleManager\Entropy\Solar.cfg (I've simply replaced ModuleDeployableSolarPanel with SSTUSolarPanelDeployable for testing purposes), I got the following stuff:

KSP.log:

  Reveal hidden contents

[LOG 01:40:07.200] PartLoader: Part 'SSTU/Parts/dev/ProbeCore/PC-STOCK/SSTU-PC-HECS2' has no database record. Creating. 
[LOG 01:40:07.211] DragCubeSystem: Creating drag cubes for part 'SSTU-PC-HECS2' 
[EXC 01:40:07.253] InvalidOperationException: Operation is not valid due to the current state of the object 
System.Linq.Enumerable.First[ModuleDeployableSolarPanel] (IEnumerable`1 source) 
nsDangIt.ModuleSolarReliability.DI_ShowInfoInEditor () 
nsDangIt.ModuleReliabilityInfo.GetInfo () 
PartLoader.CompilePartInfo (.AvailablePart newPartInfo, .Part part) 
PartLoader+<CompileParts>c__Iterator66.MoveNext () 
UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) 


That one made me to look up the source. 

  Reveal hidden contents

public override bool DI_ShowInfoInEditor(){ 
return this.part.Modules.OfType<ModuleDeployableSolarPanel>().First().isTracking; //Don't show for non-tracking panels 
}

I'm not familiar with MM syntax neither with MM config files. But as far as I researched any module declared with MODULE { } inherits its parents' fields (as, for example, the ModuleDeployableSolarPanel.isTracking one). So isn't is safer to change the parametrization to 


return this.part.Modules.OfType<ModuleSolarReliability>().First().isTracking;



PS: and as always.. Thank you @Ippo for DangIt! and @Coffeeman for Entropy and @linuxgurugamer for maintaining this mod! KSP really lacks of random failures. Not sure if it's nice to call all of you for thanks but oh well.

It's not going to work without some coding done.  The code is directly referencing the KSP module: ModuleDeployableSolarPanel, i would have to add some code to work with the SSTUSolarPanelDeployable 

Link to comment
Share on other sites

  • 2 weeks later...

@linuxgurugamer
Hi man, I've ran into a small but very annoying issue with this mod. Whenever a failure occurs the alarm tends to go off every time I switch from map screen to normal view, or switch craft (even though the other craft has no failure on it). I'm missing a button to kill the alarm. I'm also missing an option to highlight the parts that failed, and to hide the glow on components with failed parts once I took notice... Is it possible for this to be implemented?

Link to comment
Share on other sites

Also... How is it possible that, one One single munar flight I had: A coolant leak, a leaking fuel tank, a leaking monoprop tank, a faulty battery and an engine failure :| I mean, Apollo 13 was real but do I really have to re-inact it?

9 minutes ago, linuxgurugamer said:

The alarm is a known bug.

Did you check the settings page about highlighting?

 

Yeah, but you can either turn all on or turn all off. But some failures aren't highlighted so it's guessing where the problem lies...

Link to comment
Share on other sites

31 minutes ago, Adelaar said:

Also... How is it possible that, one One single munar flight I had: A coolant leak, a leaking fuel tank, a leaking monoprop tank, a faulty battery and an engine failure :| I mean, Apollo 13 was real but do I really have to re-inact it?

Yeah, but you can either turn all on or turn all off. But some failures aren't highlighted so it's guessing where the problem lies...

There is a good chance that the failures may be highlighted, but you can't see it for various reasons.

For example, if a part is buried deep inside and it fails the highlighting can be lost or if the vessel is so big that you can't find it before you have problems.

Link to comment
Share on other sites

Well it was a motor failure which did not light up, and neither did the Coolant leak...

I am still clueless as to how it could happen that I ran into so many problems on one flight with a brand new rocket...

Link to comment
Share on other sites

The funny thing about randomness is how often it feels decidedly non-random.  But it's much harder to perceive when randomness rolls in our favor (ie fewer failures than you should expect by the odds) - that feels like things just working as they should.

I've run this mod for long stretches and I don't see a problem in what you described

Link to comment
Share on other sites

3 hours ago, fourfa said:

The funny thing about randomness is how often it feels decidedly non-random.  But it's much harder to perceive when randomness rolls in our favor (ie fewer failures than you should expect by the odds) - that feels like things just working as they should.

I've run this mod for long stretches and I don't see a problem in what you described

Well the part highlighting or lack thereof can be annoying... As for the failures, I find it adds a lot of depth but I was truly confused at how my mission went completely Apollo 13 on me... With similar missions before and after proceeding without a single problem. I did turn off the option of fuel tank leaks though, I don't mind engine failures nearly as much as a leaky tank.

Link to comment
Share on other sites

Agreed that sometimes it's difficult to tell what's failed and beeping.  And come to think of it I recall earlier versions popping a notice in the F3 menu, or in the contract milestone type window, and I haven't seen that in the current version.

Link to comment
Share on other sites

8 minutes ago, fourfa said:

Agreed that sometimes it's difficult to tell what's failed and beeping.  And come to think of it I recall earlier versions popping a notice in the F3 menu, or in the contract milestone type window, and I haven't seen that in the current version.

If those were taken out, it was before I took this over.

I’m busy with some other mods, right now, but if you open an issue on github with the details, it will help me not lose it.

specifically, are there specific parts which dont get highlighted?

Link to comment
Share on other sites

i am looking at game installs that use both dangit and USI mods.  in dangit we have a resource called "SpareParts" while USI uses something similar called "ReplacementParts"  how hard would it be to convert dangit to use the USI resource "ReplacementPart" to make it all play together better?

 

 

 

 

Link to comment
Share on other sites

12 minutes ago, Bit Fiddler said:

i am looking at game installs that use both dangit and USI mods.  in dangit we have a resource called "SpareParts" while USI uses something similar called "ReplacementParts"  how hard would it be to convert dangit to use the USI resource "ReplacementPart" to make it all play together better?

I have no idea, what are the stats for the ReplacementPart? 

Edited by linuxgurugamer
Link to comment
Share on other sites

looks like it's a under-the-skin mechanic in USI-MKS:

"To broadly answer your questions, ReplacementParts and wear are the same mechanic: ReplacementParts are a semi-invisible resource that are slowly consumed over time. Command pods as well as some other parts have them. They are replenished by having a part containing MaterialKits nearby, then EVAing an engineer, and selecting "Maintenance" from the right-click menu when close to the part."

discussion follows this post:

 

 

Link to comment
Share on other sites

hmm in looking in the CRP file i do not see them listed.   i just noticed them in another document that the creators use to make thier mod.   maybe this is a future idea and they are not implemnted yet.   i guess we need to ask @RoverDude     i am trying to make a part for KSP, and in looking in his balance worksheet for ensuring parts all fit in the "reality" of USI i see a conversion ratio of

 

 ReplacementParts:     MaterialKits(2) + SpecializedParts(2) +  Chemicals(1) =  ReplacementParts(5) 

 

but this "Replacement Part" is not listed in the Community resource pack, so i will have to dig deeper. 

 

 

 

 

EDIT:

however the CRP does list The material kits

RESOURCE_DEFINITION
{
    name = MaterialKits
 displayName = #LOC_CRP_MaterialKits_DisplayName
    density = 0.001
    unitCost = 2
    flowMode = ALL_VESSEL
    transfer = PUMP
    isTweakable = true
    isVisible = true
 volume = 1
}

 

 

maybe this is a better choice for Dangit.   the material kit is the basic unit for construction parts in "OSE Workshops", as well as used in various places in the USI family. so if this works in the logic of Dang It! that would remove the extra resource needed when using these 3 mods side by side.

 

 

in the world of USI the formula to make Materialkits is listed as this:  Metals (2) + Chemicals (1)  + Polymers (2) =  MaterialKits (5) 

 

 

 

 

Edited by Bit Fiddler
Link to comment
Share on other sites

First, it appears that the Community Tech Tree defines SpareParts as well, the DangIt config checks for that.

Second, the config is so different it doesn't make sense to do so:

RESOURCE_DEFINITION:NEEDS[!CommunityTechTree]
{
   name = SpareParts
   density = 0.00378
   flowMode = NO_FLOW
   transfer = NONE
   isTweakable = true
   unitCost = 12.6
}

 

Link to comment
Share on other sites

the reason i ask for the change is not to get the "SparePart" in the CRP, but rather to prevent carrying multiple resources on a ship that are basically the same thing.   since i use all the USI mods, and use Dang It as well as OSE, and Extraplanetary Launchpads; All of which are already set to use "MaterialKits".  Thus, all my outposts need "SpareParts" as well as "MaterialKits".  Also the USI factories are setup to make the "Material Kits", so i can refill the craft that is set permanantly away from Kerbin.  whereas with dang it as it sits now, i have no way of making new "spareparts" on location, and have to keep sending resupply runs to my outposts to replace them.  But since USI is geared toward insitu amnufacturing to make a self sustaining colony, it would be nice to just make the Dang It parts on site as well. 

Link to comment
Share on other sites

On 1/26/2018 at 12:45 AM, Bit Fiddler said:

the reason i ask for the change is not to get the "SparePart" in the CRP, but rather to prevent carrying multiple resources on a ship that are basically the same thing.   since i use all the USI mods, and use Dang It as well as OSE, and Extraplanetary Launchpads; All of which are already set to use "MaterialKits".  Thus, all my outposts need "SpareParts" as well as "MaterialKits".  Also the USI factories are setup to make the "Material Kits", so i can refill the craft that is set permanantly away from Kerbin.  whereas with dang it as it sits now, i have no way of making new "spareparts" on location, and have to keep sending resupply runs to my outposts to replace them.  But since USI is geared toward insitu amnufacturing to make a self sustaining colony, it would be nice to just make the Dang It parts on site as well. 

I'm working on this, but keep in mind this is really a disruptive change:

  • The MaterialKits are less than 1/3 the weight of the SpareParts
  • The MaterialKits can flow through the vessel using the pumps, the SpareParts cannot
  • The cost for the Materiakits is less than 1/12 the cost of the SpareParts

You may want to ask @RoverDude if there would be a better way to use this than to replace the SpareParts with the MaterialKits.

Alternatively, I can create a config which will take MaterialKits and convert them into SpareParts, and add that to the RadialBay, which is where the SpareParts are stored.  Not perfect, but would definitely be less disruptive than a total replacement.  Plus, it adds the need to actually make the SpareParts out of the MaterialKits

Link to comment
Share on other sites

using material kits to make spare parts in sort of a "factory" part is a good method.  really all that matter is we have a way to manufacture them on site with the basic USI (or other) mods existing supply chain. 

 

 

Edited by Bit Fiddler
Link to comment
Share on other sites

2 hours ago, Bit Fiddler said:

using material kits to make spare parts in sort of a "factory" part is a good method.  really all that matter is we have a way to manufacture them on site with the basic USI (or other) mods existing supply chain. 

 

 

Sounds like something that OSE Workshop could do maybe. 

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