Jump to content

[1.12.x] KSP Part Volumes


linuxgurugamer

Recommended Posts

3 hours ago, Jebs_SY said:

Hello @linuxgurugamer,

in my RSS RP-1 (150 mods) install there are lines added at each start... I deleted the file and started 4 times (just to the main menu)...

1st start: file is created and makes logical sense, "calculated tank" lines are in between...
2nd start: block of ONLY "calculated tank" lines at the file end is added. The numbers are equal to the "calculated tank" lines in the middle of block #1, where they make sense
3rd start: block of ONLY "calculated tank" lines at the file end is added.
4th start: block of ONLY "calculated tank" lines at the file end is added.

See this example (part (end) of log file, after 2nd run, not the complete log, though):
 

  Reveal hidden contents

// ----------------------------------------------------------------------
// VenStockRevamp/PartBin/Data/Structural/strutCubeLarge
// Dimensions: x: 0.22, y: 2.28, z: 0.22
// Bounding Box Size: 105.952 liters
// Volume adjustment: 10%
//
@PART[strutCubeLarge]:HAS[!MODULE[ModuleCargoPart]]:Final
{
    MODULE
    {
        name = ModuleCargoPart
        packedVolume = 117
        %KSP_PartVolume = true
    }
}
// ----------------------------------------------------------------------
// VenStockRevamp/PartBin/Data/Structural/strutCubeMedium
// Dimensions: x: 0.22, y: 1.15, z: 0.22
// Bounding Box Size: 53.46918 liters
// Volume adjustment: 10%
//
@PART[strutCubeMedium]:HAS[!MODULE[ModuleCargoPart]]:Final
{
    MODULE
    {
        name = ModuleCargoPart
        packedVolume = 59
        %KSP_PartVolume = true
    }
}
// ----------------------------------------------------------------------
// VenStockRevamp/PartBin/Data/Structural/strutCubeSmall
// Dimensions: x: 0.22, y: 0.59, z: 0.22
// Bounding Box Size: 27.29531 liters
// Volume adjustment: 10%
//
@PART[strutCubeSmall]:HAS[!MODULE[ModuleCargoPart]]:Final
{
    MODULE
    {
        name = ModuleCargoPart
        packedVolume = 31
        %KSP_PartVolume = true
    }
}
// ----------------------------------------------------------------------
======================================= FILE ENDS HERE AFTER THE FIRST START =======================================
//      Calculated tank volume: 900.5
//      Calculated tankVol (max x min) volume: 845.6
//      Calculated tank volume: 900.5
//      Calculated tankVol (max x min) volume: 845.6
//      Calculated tank volume: 3731.4
//      Calculated tankVol (max x min) volume: 3761.9
//      Calculated tank volume: 3343.7
//      Calculated tankVol (max x min) volume: 12649.2
//      Calculated tank volume: 148.0
//      Calculated tankVol (max x min) volume: 582.6
//      Calculated tank volume: 148.0
//      Calculated tankVol (max x min) volume: 582.6
//      Calculated tank volume: 148.0
//      Calculated tankVol (max x min) volume: 125.8
//      Calculated tank volume: 148.0
//      Calculated tankVol (max x min) volume: 125.8
//      Calculated tank volume: 130.7
//      Calculated tankVol (max x min) volume: 238.4
//      Calculated tank volume: 6912.7
//      Calculated tankVol (max x min) volume: 3796.3
//      Calculated tank volume: 6216117.9
//      Calculated tankVol (max x min) volume: 11821.8
//      Calculated tank volume: 6216117.9
//      Calculated tankVol (max x min) volume: 1477.7
//      Calculated tank volume: 6201.2
//      Calculated tankVol (max x min) volume: 5639.7
//      Calculated tank volume: -15.8
//      Calculated tankVol (max x min) volume: 13217.5
//      Calculated tank volume: 15179.1
//      Calculated tankVol (max x min) volume: 59206.8
//      Calculated tank volume: 15179.1
//      Calculated tankVol (max x min) volume: 59206.8
//      Calculated tank volume: 764.7
//      Calculated tankVol (max x min) volume: 7149.9
//      Calculated tank volume: 714.1
//      Calculated tankVol (max x min) volume: 3616.8
//      Calculated tank volume: 325.7
//      Calculated tankVol (max x min) volume: 7470.2
//      Calculated tank volume: 483.8
//      Calculated tankVol (max x min) volume: 2591.4
//      Calculated tank volume: 85.1
//      Calculated tankVol (max x min) volume: 1495.2
//      Calculated tank volume: 379.3
//      Calculated tankVol (max x min) volume: 1688.3
//      Calculated tank volume: 719.4
//      Calculated tankVol (max x min) volume: 22615.3
//      Calculated tank volume: 102.7
//      Calculated tankVol (max x min) volume: 1688.3
//      Calculated tank volume: 738.5
//      Calculated tankVol (max x min) volume: 22615.3
//      Calculated tank volume: 1115059.6
//      Calculated tankVol (max x min) volume: 23067.1
//      Calculated tank volume: 1115059.6
//      Calculated tankVol (max x min) volume: 8609.7
//      Calculated tank volume: 980408.7
//      Calculated tankVol (max x min) volume: 37078.9
//      Calculated tank volume: 980408.7
//      Calculated tankVol (max x min) volume: 13839.6
//      Calculated tank volume: 4.1
//      Calculated tankVol (max x min) volume: 13.9
//      Calculated tank volume: 294.6
//      Calculated tankVol (max x min) volume: 3534.7
//      Calculated tank volume: 1837.4
//      Calculated tankVol (max x min) volume: 4108.7
//      Calculated tank volume: 3822213.8
//      Calculated tankVol (max x min) volume: 4678.6
//      Calculated tank volume: 238.7
//      Calculated tankVol (max x min) volume: 6107.6
//      Calculated tank volume: 249.6
//      Calculated tankVol (max x min) volume: 9915.3
//      Calculated tank volume: 1768887.7
//      Calculated tankVol (max x min) volume: 48072.3
//      Calculated tank volume: 2394.9
//      Calculated tankVol (max x min) volume: 35905.2
//      Calculated tank volume: 31906179.1
//      Calculated tankVol (max x min) volume: 62060.4
//      Calculated tank volume: 572.7
//      Calculated tankVol (max x min) volume: 11070.0
//      Calculated tank volume: 2935.8
//      Calculated tankVol (max x min) volume: 5068.3
//      Calculated tank volume: 1371914.2
//      Calculated tankVol (max x min) volume: 3253.9
//      Calculated tank volume: 320166.3
//      Calculated tankVol (max x min) volume: 338.0
//      Calculated tank volume: 325.7
//      Calculated tankVol (max x min) volume: 7470.2
//      Calculated tank volume: 4169.7
//      Calculated tankVol (max x min) volume: 112054.1
//      Calculated tank volume: 325.7
//      Calculated tankVol (max x min) volume: 7470.2
//      Calculated tank volume: 178.5
//      Calculated tankVol (max x min) volume: 3873.5
//      Calculated tank volume: 930.8
//      Calculated tankVol (max x min) volume: 2547.0
//      Calculated tank volume: 18.1
//      Calculated tankVol (max x min) volume: 3090.2
//      Calculated tank volume: 0.2
//      Calculated tankVol (max x min) volume: 11.2
//      Calculated tank volume: 0.2
//      Calculated tankVol (max x min) volume: 11.2
//      Calculated tank volume: 0.4
//      Calculated tankVol (max x min) volume: 149.3
//      Calculated tank volume: 0.4
//      Calculated tankVol (max x min) volume: 18.7
//      Calculated tank volume: 0.4
//      Calculated tankVol (max x min) volume: 36.5
//      Calculated tank volume: 0.4
//      Calculated tankVol (max x min) volume: 63.0
//      Calculated tank volume: 0.4
//      Calculated tankVol (max x min) volume: 18.7
//      Calculated tank volume: 0.4
//      Calculated tankVol (max x min) volume: 212.6
//      Calculated tank volume: 0.4
//      Calculated tankVol (max x min) volume: 149.3
//      Calculated tank volume: 0.4
//      Calculated tankVol (max x min) volume: 198.8
//      Calculated tank volume: 2.7
//      Calculated tankVol (max x min) volume: 2219.6
//      Calculated tank volume: 2.7
//      Calculated tankVol (max x min) volume: 541.9
//      Calculated tank volume: 2.7
//      Calculated tankVol (max x min) volume: 936.4
//      Calculated tank volume: 2.7
//      Calculated tankVol (max x min) volume: 11895.9
//      Calculated tank volume: 2.7
//      Calculated tankVol (max x min) volume: 541.9
//      Calculated tank volume: 2.7
//      Calculated tankVol (max x min) volume: 936.4
//      Calculated tank volume: 2.7
//      Calculated tankVol (max x min) volume: 2219.6
//      Calculated tank volume: 2.7
//      Calculated tankVol (max x min) volume: 4335.2
//      Calculated tank volume: 2.7
//      Calculated tankVol (max x min) volume: 11895.9
//      Calculated tank volume: 2.2
//      Calculated tankVol (max x min) volume: 41267.1
//      Calculated tank volume: 2.2
//      Calculated tankVol (max x min) volume: 5158.4
======================================= FILE ENDS HERE AFTER THE SECOND START =======================================

 

I looked at the code, somehow these 2 lines seem to be executed/added to the main file at each startup... but I don't understand, why... wrong stringbuilder object?! I don't know...
But I found the workaround to rename the KSP-PartVolume DLL after first run... I assume as long as I don't add parts that should be fine?!

BR
Jebs_SY

I'll take a look at that this evening, it shouldn't be written out.

Deleting the DLL will prevent it from running, if you add parts, just put it back for a run

Link to comment
Share on other sites

  • 4 weeks later...

Hi @linuxgurugamer,

The other day, I turned on the "Process manipulatable-only parts" feature and it got stuck in a loop, complaining that new parts had been detected every launch. I think I've identified the issue through.

What happened was every time KSP started, the mod would extend the partVolumes-v3.cfg file entries for each of the the manipulatable-only parts, like it wasn't noticing that it had already fixed them. Each part gave an entry like:

// SquadExpansion/Serenity/Parts/Robotics/RotorEngine_02/RotorEngine_02
// Dimensions: x: 1.26, y: 0.88, z: 1.25
// Bounding Box Size: 1381.887 liters
// Volume adjustment: 10%
//
@PART[RotorEngine_02]:HAS[@MODULE[ModuleCargoPart]]:Final
{
    @MODULE[ModuleCargoPart]
    {
        packedVolume = 1521
        KSP_PartVolume = true
    }
}

This edits the existing ModuleCargoPart module, but I'm pretty sure that it adds a new packedVolume value to the module, so there are two and when the mod looks it gets the the original -1 value and thinks that it hasn't been processed. Changing it to:
 

@PART[RotorEngine_02]:HAS[@MODULE[ModuleCargoPart]]:Final
{
    @MODULE[ModuleCargoPart]
    {
        %packedVolume = 1521
        %KSP_PartVolume = true
    }
}

with the leading %, to make MM edit or create the values (rather than add) seems to fix the issue when I edited my partVolumes-v3.cfg file. It looks like a couple of changes around PartVolume.cs@347-367 would fix the issue but I haven't tested this as I don't have an environment set up to compile and I was having some issues following the code generating the popup (the call seems commented out on PartVolume.cs@461 and the text of the pop up is different, is master the correct branch?)

Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...

I experienced the same bug as @Robin Patenall.  Turning on 'Process manipulatable-only' parts got this mod stuck in a loop, claiming new parts detected with every restart.  Turning 'Process manipulatable-only' back off did not cure it.  Removing and re-installing the mod did.  

I set aside the logs from one of the loops, let me know if you want them.

Link to comment
Share on other sites

7 minutes ago, wreckreation said:

I experienced the same bug as @Robin Patenall.  Turning on 'Process manipulatable-only' parts got this mod stuck in a loop, claiming new parts detected with every restart.  Turning 'Process manipulatable-only' back off did not cure it.  Removing and re-installing the mod did.  

I set aside the logs from one of the loops, let me know if you want them.

You should always provide the log file, just saves time on my asking for it.

This bug is why I did the last release, to try to find the issue.

Link to comment
Share on other sites

Apologies.  Here they are.

KSP.log

Player.log

I copied the logs with the game running, at the main menu with the Partvolumes pop-up window displayed (because the restart loop means the log is overwritten when the game restarts).  If this is insufficient, I can try again, choose 'ignore' and then do a clean shutdown.

Link to comment
Share on other sites

  • 2 weeks later...

Short Question: There is an option to only include manipulable-only Parts... What are these? I thought on EVA every part can be moved as long as it fits the kerbal mass limits (60kg on Kerbin).

Edited by Rakete
Link to comment
Share on other sites

@linuxgurugamer  I have the problem, that KSP_Partvolumes keeps telling me on every (!) load up, that there were new parts detected and I need to restart. Did 4 restarts without changing options. How can I fix this?

have turned process manipulable-parts on.

Logs here: Available for 7 days, since the file hoster is free of charge: https://www.filemail.com/d/tddnddpzktqksga

Here also the generated config for you to check if it correctly processed also the manipulable-only parts correctly or broke the creation loop:

https://www.filemail.com/d/xffahlratmndeqp

Edited by Rakete
Link to comment
Share on other sites

41 minutes ago, Rakete said:

@linuxgurugamer  I have the problem, that KSP_Partvolumes keeps telling me on every (!) load up, that there were new parts detected and I need to restart. Did 4 restarts without changing options. How can I fix this?

have turned process manipulable-parts on.

Logs here: Available for 7 days, since the file hoster is free of charge: https://www.filemail.com/d/tddnddpzktqksga

Here also the generated config for you to check if it correctly processed also the manipulable-only parts correctly or broke the creation loop:

https://www.filemail.com/d/xffahlratmndeqp

For now, turn it off, I'll try to look at it soon

Link to comment
Share on other sites

28 minutes ago, linuxgurugamer said:

For now, turn it off, I'll try to look at it soon

Uninstalled the mod, but kept the created config. Hope it was built correctly.

Please download the logs soon, as they are only hosted for a limited amount of time.

Link to comment
Share on other sites

4 hours ago, Rakete said:

@linuxgurugamer  I have the problem, that KSP_Partvolumes keeps telling me on every (!) load up, that there were new parts detected and I need to restart. Did 4 restarts without changing options. How can I fix this?

have turned process manipulable-parts on.

Logs here: Available for 7 days, since the file hoster is free of charge: https://www.filemail.com/d/tddnddpzktqksga

Here also the generated config for you to check if it correctly processed also the manipulable-only parts correctly or broke the creation loop:

https://www.filemail.com/d/xffahlratmndeqp

Thanks to you, I've finally been able to relicate this annoying bug.

Couple of questions:

Please tell me which of these options you had enabled (if you remember):

  • Include tanks
  • Include manned parts
  • Include stock part
  • Process manipulable-only parts
  • Limit Size

Thanks

Link to comment
Share on other sites

New release, 0.0.3.9

  • Fixed syntax error in generated file which would keep adding same values over and over, causing an endless loop telling user to reboot

Please note that this WILL force one restart of the game since the file version has been updated.  If you wish to avoid that, then just delete the file GameData/partVolumes-v3.cfg

Please report any other issues with this mod

Link to comment
Share on other sites

11 hours ago, linuxgurugamer said:

Thanks to you, I've finally been able to relicate this annoying bug.

Couple of questions:

Please tell me which of these options you had enabled (if you remember):

  • Include tanks
  • Include manned parts
  • Include stock part
  • Process manipulable-only parts
  • Limit Size

Thanks

All of them except Limit size.

Link to comment
Share on other sites

1 hour ago, Rakete said:

New Version installed. It took 2 restarts (even with deleting the old config), but then no pop-up came up again, so I guess the config was created correctly.

 

That's strange. but I'm glad it's working for you.  If you get a chance, send me the ModuleManager.ConfigCache file

Link to comment
Share on other sites

3 hours ago, linuxgurugamer said:

That's strange. but I'm glad it's working for you.  If you get a chance, send me the ModuleManager.ConfigCache file

What happend was the following:

1. Deleted the old config, installed ksp_partvolumes and its dependencies, started ksp

2. Pop-up: New parts found, restart needed. Restart executed

3. No pop-up, edited the options of ksp_part volumes to include all parts, without part limits. Restart needed. Restart executed

4. Pop-up: new parts found, restart needed. Restart executed.

5. No pop-up anymore.

Unfortunately I then uninstalled the mod and the dependencies and just kept the config, as I don't need i running on every KSP Play session. 

 

Will provide the MM Cache as soon as I am back on the computer (right know writing via tablet from my couch) because it's already late in the evening here in central europe. Maybe tomorrow after work... 

Edited by Rakete
Link to comment
Share on other sites

  • 4 weeks later...

Hey @linuxgurugamer thank you very much for this mod, it's helped me put together module lists for the Restock+ parts that are missing them.

However a couple of questions/clarifications if I may:

Firstly, there is still no description in the readme or this thread as to what "Process manipulable-only parts" actually does - and I can't see any changes in the generated config file when enabling it. I'm assuming it filters out all parts that are too big to be moved even with X kerbals, but I'm likely quite wrong there.

Secondly, is there any way of tuning the generated list to be closer to stock values? Some of these parts are generating vloumes in the tens of thousands when equivlent sized stock parts are fudged to be ~1k. If you ever get back to this, can we have an option to set an upper bound that, if within the "largest allowable part" range, resizes the part to that bound? E.g. if I have a part that calculates at 24000 litres, and an upper bound of 2000, it should be set to 2000 rather than 24k.

Thanks.

Link to comment
Share on other sites

16 minutes ago, Moose said:

there is still no description in the readme or this thread as to what "Process manipulable-only parts" actually does

manipulable-only parts are parts that have  ModuleCargoPart{} with negative volume, therefore can't be placed in inventory, but can be manipulated in the EVA Construction.
A part without  ModuleCargoPart{} can't be manipulated in the EVA Construction.

Therefore, enabling "Process manipulable-only parts" will process manipulable-only parts, and instead of -1 these parts will be having proper volume.

 

30 minutes ago, Moose said:

Some of these parts are generating vloumes in the tens of thousands when equivlent sized stock parts are fudged to be ~1k.

make manual config for these parts, if the part have ModuleCargoPart{}then mod will ignore that part.
(It is why all this fuzz with the manipulable-only parts was needed in the first place)

@PART[reactor-125]:HAS[!MODULE[ModuleCargoPart]]:Final
{
    MODULE
    {
        name = ModuleCargoPart
        packedVolume = 4254
    }
}

 

Link to comment
Share on other sites

51 minutes ago, flart said:

Therefore, enabling "Process manipulable-only parts" will process manipulable-only parts, and instead of -1 these parts will be having proper volume.

This is the bit I needed, thank you.

Link to comment
Share on other sites

2 hours ago, flart said:

manipulable-only parts are parts that have  ModuleCargoPart{} with negative volume, therefore can't be placed in inventory, but can be manipulated in the EVA Construction.
A part without  ModuleCargoPart{} can't be manipulated in the EVA Construction.

Therefore, enabling "Process manipulable-only parts" will process manipulable-only parts, and instead of -1 these parts will be having proper volume.

 

make manual config for these parts, if the part have ModuleCargoPart{}then mod will ignore that part.
(It is why all this fuzz with the manipulable-only parts was needed in the first place)

@PART[reactor-125]:HAS[!MODULE[ModuleCargoPart]]:Final
{
    MODULE
    {
        name = ModuleCargoPart
        packedVolume = 4254
    }
}

 

I'll add some of this to the OP soon

Link to comment
Share on other sites

Is there a mod, that increases the area around an EVA-Kerbal, in which it can draw parts from storage and install them on a vessel during stock EVA-construction?  Sometimes it is kind of unfortunate to pull a part from storage then weld it halfway on the place where it is intended to be, the move the eva kerbal and them move the temporarily parked part again. In many cases (especially with part-printing-mods like sandcastle) the storage of generated parts on a spacestation is often distant to the construction site of the spacestation, where you want to refit e.g. new antennas...

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