Jump to content

[0.90WIP] Procedural Parts - Parts the way you want 'em 0.9.21, Dec 19


swamp_ig

Would you prefer decouplers to:  

118 members have voted

  1. 1. Would you prefer decouplers to:

    • Closely as possible follow stock behaviour
      15
    • Have a sensible relation between size, decoupler force, and mass
      153


Recommended Posts

This is mostly a bugfix release

Features:

  • Created a module manager 2.0.1 config file to allow 1m and 0.1m snap sizes and alter the default diameters to suit. See the ModuleManager subfolder for the file. You'll have to rename it to get it to work.

Bugfixes:

  • Xenon tanks missing cones.
  • Part wobble / joint positions fix
  • Tanks not filling / working right.

Note

Any xenon tanks attached to ships in flight will require any ships in flight to be edited. Directions are here: (https://github.com/Swamp-Ig/ProceduralParts/wiki/Upgrading-between-versions)

Edited by swamp_ig
Link to comment
Share on other sites

Nope, just checked the source here and PP doesn't either. Hey swamp_ig, you might want to steal my ModuleEngines / ModuleEningesFX wrapper from Real Fuels (or HoneyFox's presumably-better/more-flexible one from Engine Ignitor) so that your code can use either ModuleEngines or ModuleEnginesFX in your SRBs.

...or just switch to ModuleEnginesFX and say "enough with that" which is probably easier and better.

Yes, the mod should definetely switch to ModuleEnginesFX ..and we need a skirted nozzle SRB :D

Link to comment
Share on other sites

The download link on the OP is not working, it gives a 404 Error ....

Fixed.

Nope, just checked the source here and PP doesn't either. Hey swamp_ig, you might want to steal my ModuleEngines / ModuleEningesFX wrapper from Real Fuels (or HoneyFox's presumably-better/more-flexible one from Engine Ignitor) so that your code can use either ModuleEngines or ModuleEnginesFX in your SRBs.

...or just switch to ModuleEnginesFX and say "enough with that" which is probably easier and better.

Done...

Will push out a new release with this in the morning. If anyone really wants this functionality, wait 8 hours :P

Edited by swamp_ig
Link to comment
Share on other sites

Something is wrong with 0.9.2.

So I’ve downloaded it, delete 0.9 and place in gamedata new version. It definitely new, because xenon cones are included, but there are no resources in the tanks. I did not add any screenshots just because there is nothing to see, tanks looks like a structural parts, and in VAB there are no fuel indication for procedural fuel/rcs/xenon tanks when right click on it.

Link to comment
Share on other sites

I think that's due to their relatively low mass. Same problem as stock SAS units.

Then their density needs to be increased. A 1.25m procedural decoupler weighs in at .014t, whereas a stock 1.25m decoupler weighs in at .1t .05t.

However, the following may be related: I've noticed that they default to 250N of ejection force, but if you right click on them you only have the option to set them from 5N to 25N. So if you want a 250N ejection, you can't right click on it in the VAB at all. If their mass is being set as if they have enough explosive for 25N of separation force, then it would explain the very, very low mass of a standard 1.25m decoupler.

Also, I'd like to repeat my request for straight-walled decouplers, rather than pill-shaped. :-)

Edited by lordkrike
Link to comment
Share on other sites

0.9.2 isn't working on my normal KSP install for some reason, the tanks aren't changing size. Getting this in logs:


System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object

at ProceduralParts.TankContentSwitcher.UpdateMassAndResources (Boolean typeChanged) [0x00000] in <filename unknown>:0

at ProceduralParts.TankContentSwitcher.ChangeVolume (Single volume) [0x00000] in <filename unknown>:0

at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

--- End of inner exception stack trace ---

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0

at KSPAPIExtensions.PartMessage.ServiceImpl.Send (KSPAPIExtensions.PartMessage.CurrentEventInfoImpl message) [0x00000] in <filename unknown>:0

at KSPAPIExtensions.PartMessage.ServiceImpl+MessageConsolidator.Dispose () [0x00000] in <filename unknown>:0

at ProceduralParts.ProceduralAbstractShape.Update () [0x00000] in <filename unknown>:0

and



NullReferenceException: Object reference not set to an instance of an object
at ProceduralParts.TankContentSwitcher.UpdateMassAndResources (Boolean typeChanged) [0x00000] in <filename unknown>:0

at ProceduralParts.TankContentSwitcher.UpdateTankType () [0x00000] in <filename unknown>:0

at ProceduralParts.TankContentSwitcher.OnStart (StartState state) [0x00000] in <filename unknown>:0

at Part.ModulesOnStart () [0x00000] in <filename unknown>:0

at Part+ .MoveNext () [0x00000] in <filename unknown>:0

EDIT: Also seems related


ArgumentException: Message is not a delegate type
at KSPAPIExtensions.PartMessage.PartMessageListener..ctor (System.Type delegateType, PartRelationship relations, GameSceneFilter scenes) [0x00000] in <filename unknown>:0

at (wrapper managed-to-native) System.MonoCustomAttrs:GetCustomAttributesInternal (System.Reflection.ICustomAttributeProvider,System.Type,bool)

at System.MonoCustomAttrs.GetCustomAttributesBase (ICustomAttributeProvider obj, System.Type attributeType) [0x00000] in <filename unknown>:0

at System.MonoCustomAttrs.GetCustomAttributes (ICustomAttributeProvider obj, System.Type attributeType, Boolean inherit) [0x00000] in <filename unknown>:0

at System.MonoCustomAttrs.GetCustomAttributes (ICustomAttributeProvider obj, Boolean inherit) [0x00000] in <filename unknown>:0

at System.Reflection.MonoMethod.GetCustomAttributes (Boolean inherit) [0x00000] in <filename unknown>:0

at KSPAPIExtensions.PartMessage.ServiceImpl.Register[TankContentSwitcher] (ProceduralParts.TankContentSwitcher obj) [0x00000] in <filename unknown>:0

at KSPAPIExtensions.PartMessage.PartMessageService.Register[TankContentSwitcher] (ProceduralParts.TankContentSwitcher obj) [0x00000] in <filename unknown>:0

at ProceduralParts.TankContentSwitcher.OnAwake () [0x00000] in <filename unknown>:0

at PartModule.Awake () [0x00000] in <filename unknown>:0
UnityEngine.GameObject:SetActive(Boolean)
EditorLogic:SpawnPart(AvailablePart)
EditorPartList:CreateEditorPart(AvailablePart)
EditorPartList:TapIcon(AvailablePart)
EditorPartIcon:OnTap()
EditorPartIcon:MouseInput(POINTER_INFO&)
UIButton:OnInput(POINTER_INFO&)
AutoSpriteControlBase:OnInput(POINTER_INFO)
UIManager:DispatchHelper(POINTER_INFO&, Int32)
UIManager:DispatchInput()
UIManager:Update()

This is my main KSP install, haven't played since 0.7.4. This is when trying to build a new ship in the SPH.

Link to comment
Share on other sites

swap_ig, NathanKell made mention to me a while back about your work on what he called a 'stretchy-lite' plugin that could be used to more easily give stretchy tanks logic to other parts. Is this what came of that?

I have been toying with some parts of my own for a while and want to try this functionality. Is adding it as simple as writing the modules into the config?

Link to comment
Share on other sites

0.9.2 isn't working on my normal KSP install for some reason, the tanks aren't changing size. Getting this in logs:


System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object

at ProceduralParts.TankContentSwitcher.UpdateMassAndResources (Boolean typeChanged) [0x00000] in <filename unknown>:0

at ProceduralParts.TankContentSwitcher.ChangeVolume (Single volume) [0x00000] in <filename unknown>:0

at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

--- End of inner exception stack trace ---

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0

at KSPAPIExtensions.PartMessage.ServiceImpl.Send (KSPAPIExtensions.PartMessage.CurrentEventInfoImpl message) [0x00000] in <filename unknown>:0

at KSPAPIExtensions.PartMessage.ServiceImpl+MessageConsolidator.Dispose () [0x00000] in <filename unknown>:0

at ProceduralParts.ProceduralAbstractShape.Update () [0x00000] in <filename unknown>:0

and



NullReferenceException: Object reference not set to an instance of an object
at ProceduralParts.TankContentSwitcher.UpdateMassAndResources (Boolean typeChanged) [0x00000] in <filename unknown>:0

at ProceduralParts.TankContentSwitcher.UpdateTankType () [0x00000] in <filename unknown>:0

at ProceduralParts.TankContentSwitcher.OnStart (StartState state) [0x00000] in <filename unknown>:0

at Part.ModulesOnStart () [0x00000] in <filename unknown>:0

at Part+ .MoveNext () [0x00000] in <filename unknown>:0

EDIT: Also seems related


ArgumentException: Message is not a delegate type
at KSPAPIExtensions.PartMessage.PartMessageListener..ctor (System.Type delegateType, PartRelationship relations, GameSceneFilter scenes) [0x00000] in <filename unknown>:0

at (wrapper managed-to-native) System.MonoCustomAttrs:GetCustomAttributesInternal (System.Reflection.ICustomAttributeProvider,System.Type,bool)

at System.MonoCustomAttrs.GetCustomAttributesBase (ICustomAttributeProvider obj, System.Type attributeType) [0x00000] in <filename unknown>:0

at System.MonoCustomAttrs.GetCustomAttributes (ICustomAttributeProvider obj, System.Type attributeType, Boolean inherit) [0x00000] in <filename unknown>:0

at System.MonoCustomAttrs.GetCustomAttributes (ICustomAttributeProvider obj, Boolean inherit) [0x00000] in <filename unknown>:0

at System.Reflection.MonoMethod.GetCustomAttributes (Boolean inherit) [0x00000] in <filename unknown>:0

at KSPAPIExtensions.PartMessage.ServiceImpl.Register[TankContentSwitcher] (ProceduralParts.TankContentSwitcher obj) [0x00000] in <filename unknown>:0

at KSPAPIExtensions.PartMessage.PartMessageService.Register[TankContentSwitcher] (ProceduralParts.TankContentSwitcher obj) [0x00000] in <filename unknown>:0

at ProceduralParts.TankContentSwitcher.OnAwake () [0x00000] in <filename unknown>:0

at PartModule.Awake () [0x00000] in <filename unknown>:0
UnityEngine.GameObject:SetActive(Boolean)
EditorLogic:SpawnPart(AvailablePart)
EditorPartList:CreateEditorPart(AvailablePart)
EditorPartList:TapIcon(AvailablePart)
EditorPartIcon:OnTap()
EditorPartIcon:MouseInput(POINTER_INFO&)
UIButton:OnInput(POINTER_INFO&)
AutoSpriteControlBase:OnInput(POINTER_INFO)
UIManager:DispatchHelper(POINTER_INFO&, Int32)
UIManager:DispatchInput()
UIManager:Update()

This is my main KSP install, haven't played since 0.7.4. This is when trying to build a new ship in the SPH.

I too get this error, I have gotten it with version .9 and .9.2. So i've reverted back to version .8.1 for the time being. Additionally, the tanks will update their sizes if you switch the shape then switch back. but they willnot update realtime like they are expected to.

Link to comment
Share on other sites

Just a balance comment here: Having the bell size (and required part diameter) increase with increased thrust for SRBs is great - but having it be a linear relationship is not so much. In trying to replicate the Space Shuttle SRB, it fails badly. Admittedly, these are the "most powerful" SRBs made to date, especially if trying to replicated the "uprated" versions proposed for the SLS - but they are still way out of proportion even given that. The original SRBs generated 12,000 kN in a 3.71m diameter booster, the "uprated" ones proposed for the SLS generate just over 16,000kN in the same diameter. To get the same results using procedural SRBs requires a nearly 9m diameter booster. Burn time for volume seems about accurate, but really we should be seeing higher thrust out of smaller diameters, and longer burn time using longer boosters, rather than requiring short and stubby boosters to match the same performance numbers.

Link to comment
Share on other sites

I'm also hitting a bunch of:

[LOG 21:33:11.964] System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object

at ProceduralParts.TankContentSwitcher.UpdateMassAndResources (Boolean typeChanged) [0x00000] in <filename unknown>:0

at ProceduralParts.TankContentSwitcher.ChangeVolume (Single volume) [0x00000] in <filename unknown>:0

at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

--- End of inner exception stack trace ---

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0

at KSPAPIExtensions.PartMessage.ServiceImpl.Send (KSPAPIExtensions.PartMessage.CurrentEventInfoImpl message) [0x00000] in <filename unknown>:0

at KSPAPIExtensions.PartMessage.ServiceImpl+MessageConsolidator.Dispose () [0x00000] in <filename unknown>:0

at ProceduralParts.ProceduralAbstractShape.Update () [0x00000] in <filename unknown>:0

logs with 0.9.2, and generally it doesn't seem to work.

But, I originally came here to report a different problem (running with 0.9.0) before seeing there was an update:

I tried setting up a ship with one large SRB with two smaller SRBs in the same stage. The smaller ones are set with a different thrust to the large one, but are otherwise the same type. But when I launch it all three SRBs are putting out the same power. It seems the larger one is being capped at the level of the smaller ones (or maybe all of them at the average?). This is running with a fairly fresh 0.23.5 install + realism mods, including RealFuels v5.1. Is that something you could look at?

Full list of mods if it matters: CustomBiomes DeadlyReentry EngineIgnitor FerramAerospaceResearch ProceduralFairings KerbalJointReinforcement LifeSupport ProceduralParts RealChute RealFuels RealismOverhaul RealSolarSystem RftS TreeLoader

Thanks for your work on the mod!

Mike

Link to comment
Share on other sites

Triple-Confirming the "Parts don't resize" bug. (they do if you change the shape, but not in real time)

Also:

A9G3Qbn.png

No idea what all is going on here... The SRB is ON in the SPH, the exhaust is doubled and one of the clones is detached and the tweakable under "Thrust Limiter" reads "Not Found" if the buttons are clicked....

Also: Tanks seem to have no fuel, nor fuel tweakables...

Update: I made a fresh install of KSP. No mods, no config changes (except graphics resolution and no AA) and all the same issues persist. It's not an inter-mod incompatibility issue.

Edited by Corbald
Link to comment
Share on other sites

I've just put up 0.9.3. That has hot rockets support.

It's possible I accidentally put an old version of one of the DLLs in the download bundle, which is causing the above errors.

Try this version and see if that fixes it. (I'm at work so I can't look at it further)

Edited by swamp_ig
Link to comment
Share on other sites

I've just put up 0.9.3. That has hot rockets support.

It's possible I accidentally put an old version of one of the DLLs in the download bundle, which is causing the above errors.

Try this version and see if that fixes it.

Yup, that seems to have done it! Thanks for the quick fix! (yes; I WAS hovering over the thread ;D )

Link to comment
Share on other sites

Also, I'd like to repeat my request for straight-walled decouplers, rather than pill-shaped. :-)

As per request, the decouplers in the latest build are straighter. If you want totally straight ones (or to be able to modify the curve) have a look at the config file and comment out the line that is suggested that you comment: https://github.com/Swamp-Ig/ProceduralParts/blob/master/Parts/Structural/StackDecoupler.cfg#L60

I was toying with putting in cylinders, but that would require modification to any ships in flight, which isn't ideal really.

Link to comment
Share on other sites

I've been trying to replicate some real rockets for use with RSS but have been running into an issue with the max thrust on the SRBs. I can get them to the proper size but the thrust is always is too low. Anything I can do to change that?

Also, do you have any plans to do something like a procedural truss?

Link to comment
Share on other sites

I've been trying to replicate some real rockets for use with RSS but have been running into an issue with the max thrust on the SRBs. I can get them to the proper size but the thrust is always is too low. Anything I can do to change that?

Also, do you have any plans to do something like a procedural truss?

The latest version will fix this slightly if you use the module manager file, though for maximum realism, I suggest you change the '*= 1.25' lines to '*= 2.5'. This will give you a maximum thrust at of just over that of a titan IV SRB with a width of 3m.

Procedural trusses are in development at the moment.

Edited by OtherBarry
Link to comment
Share on other sites

Is there any easy way to cfg a new "srb" part to be an liquid fuel engine? I know in the thread it's saying it's not a priority but, would it be hard to make them?

Not that I've tested this, but that seems like a fantastic idea, which I don't think will be that hard to make. I'll give at a go over the next few days, and it might work quite well as an interim procedural engine. Thrust would be scalable, but ISP would always be the same without an update to the core mod.

Link to comment
Share on other sites

I've been taking a look at the decouplers and how to improve it.

I feel that the mass of the decoupler should be related to the decoupler force as well as the size - after all that's what you'd expect right?

The problem is that the stock decouplers really don't follow any rhyme or reason in their masses / decoupling force / thickness.. or any variable relation really.

So I've put up a poll, please vote :)

Edit:

Incidentally - please note that the wobble issue in KSP 0.23.5 that was present prior to PP 0.9.2 should be now fixed. The primary determination for joint strength is the size of the attach node, rather than the part mass.

Given that the exact mass of the decoupler is a bit irrelevant -the mass of fuel tanks and other stuff is going to be much larger.

Edited by swamp_ig
Link to comment
Share on other sites

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