Jump to content

[1.8.x-1.12.x] Module Manager 4.2.3 (July 03th 2023) - Fireworks season


sarbian

Recommended Posts

MM 2.5.0 is now available for KSP 0.25. See the first post

Does this work under KSP 0.24.2 (32-bit of course)? Understandable if you haven't tested that.

I'm not moving to 0.25 until most of the important mods (including BTSM) have all successfully upgraded.

Link to comment
Share on other sites

hello to all...

I downloaded the new MM in zip form and had LOTS of strange errors in the ksp.log and it wouldn't do anything.

I have since pulled mm.2.5.0 from another download (newest FAR) and size of .dll was different and that one worked.

I will see if something happened on my end with the .zip, but just wanted to pass on to see if others had seen same thing....

Link to comment
Share on other sites

Yup, got errors too, wich is weird because I didn't have those with the version I downloaded somewhere else (2.5.0 too, from DeadlyReentry's archive).

I guess this is the interesting parts of the log, no mention of ModuleManager before those lines.

[LOG 11:29:01.631] AddonLoader: Instantiating addon 'ModuleManager' from assembly 'ModuleManager'
[LOG 11:29:01.915] [ModuleManager] Adding ModuleManager to the loading screen 2
[EXC 11:29:01.923] MissingManifestResourceException: Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "ModuleManager.Properties.Resources.resources" was correctly embedded or linked into assembly "ModuleManager.2.5.0" at compile time, or that all the satellite assemblies required are loadable and fully signed.
System.Resources.ResourceManager.AssemblyResourceMissing (System.String fileName)
System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
System.Resources.ResourceManager.GetObject (System.String name, System.Globalization.CultureInfo culture)
ModuleManager.Properties.Resources.get_cat ()
ModuleManager.ModuleManager.Awake ()
UnityEngine.GameObject:AddComponent(Type)
AddonLoader:StartAddon(LoadedAssembly, Type, KSPAddon, Startup)
AddonLoader:StartAddons(Startup)
:MoveNext()
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
:MoveNext()
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
GameDatabase:StartLoad()
:MoveNext()
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
LoadingScreen:Start()

And the full log from PasteBin, if it could help.

Edit: I ran into the same error when I tried to recompile it from the source.

Edit 2: x86 KSP, no mods but ModuleManager.

Edited by Lilleman
Link to comment
Share on other sites

Ah poop. My bad. Fixing it ...

Edit : Fixed and bumped to 2.5.1. Thanks for the report and proper log.

The version bundled with FAR is fine, mine had a problem with the build script that I did not see.

Edited by sarbian
Link to comment
Share on other sites

Just a heads up that some of the files related to the VS project on github appear to be out of sync with the actual modulemanager.cs code, making it unbuildable out of the box.

I think it's specifically ModuleManager.csproj that needs to be updated. It references savegamefixer.cs which doesn't exist in that branch and is missing the nyancat resource in properties. :D

I think I was able to get it building correctly once I removed the reference to savegamefixer and manually added in the cat resource, but I can't swear those are the only things that need to be changed.

Link to comment
Share on other sites

Hi guys, I need help with a patch: I want to match all the parts that have any resource other than ElectricCharge. The catch is, I don't want to exclude them if they do. (Basically, I need to select pure batteries).

The example in the second post

@PART

[*]:HAS[!RESOURCE[ElectricCharge],@RESOURCE

[*]]

doesn't work for me: in fact, command pods have MonoPropellant AND ElectricCharge, and so they are excluded by that patch.

A little help, please?

Link to comment
Share on other sites

Hi guys, I need help with a patch: I want to match all the parts that have any resource other than ElectricCharge. The catch is, I don't want to exclude them if they do. (Basically, I need to select pure batteries).

The example in the second post

doesn't work for me: in fact, command pods have MonoPropellant AND ElectricCharge, and so they are excluded by that patch.

A little help, please?

I'm trying to wrap my brain around this but it seems like a logical impossibility... like having simultaneous Tea and No Tea.

And about pure batteries do you mean you want to exclude them? If it has only electricity it isnt matched? But if it has electricity & something else then you want to match it... wow yeah, I think I'm with Sarbian.... I'm not even sure how to express that in terms that MM can understand.

Link to comment
Share on other sites

I'm trying to wrap my brain around this but it seems like a logical impossibility... like having simultaneous Tea and No Tea.

Actually, no. I want to match it if it has at least one resource that isn't ElectricCharge. It's not logically impossible, although it might be in MM.

No sure You can Ippo. I don't see how to do it.

Mmm, ok. So, I guess I could reverse the example to match ONLY batteries, and remove the module that was applied in the previous pass?

@PART

[*]:HAS[@RESOURCE[ElectricCharge],!RESOURCE

[*]]:AFTER[DangIt]

{

!MODULE[unwanted Module]

}

UPDATE: nope, doesn't seem to work :'(

Edited by Ippo
Link to comment
Share on other sites

Hi guys, I need help with a patch: I want to match all the parts that have any resource other than ElectricCharge. The catch is, I don't want to exclude them if they do. (Basically, I need to select pure batteries).

The example in the second post

doesn't work for me: in fact, command pods have MonoPropellant AND ElectricCharge, and so they are excluded by that patch.

A little help, please?

The example matches parts that contain at least one resource, but none of those resources are ElectricCharge.

It sounds like you want to match either 1) parts that contain ElectricCharge and no other resource, or 2) the inverse of that. I think you could match batteries (EC, but no other resource) with something like @PART[*]:HAS[@RESOURCE[ElectricCharge],!RESOURCE[*]:HAS[~name[ElectricCharge]]].

The shortest way that comes to mind to invert that test and match all non-batteries is to split it in half:

@PART[*]:HAS[!RESOURCE[ElectricCharge]] matches parts with no EC, and @PART[*]:HAS[@RESOURCE[*]:HAS[~name[ElectricCharge]]] matches parts with non-EC resources.

Edited by undercoveryankee
Link to comment
Share on other sites

@PART

[*]:HAS[@RESOURCE

[*]:HAS[~name[ElectricCharge]]] matches parts with non-EC resources.

No dice :/

Also, reading back my post I realized that it was really convoluted (sorry everyone, sometimes my english just derps): what I want is "match any part that has any resource, unless it ONLY has electric charge".

So the patch should apply to tanks (LFO), to jet tanks (LF), command pods (MonoProp + EC), but not to batteries (only EC).

I think I'll just write my own little class to take care of that in the main menu :/

Link to comment
Share on other sites

Just wanted to drop in and say THANK YOU FOREVER to sarbian! You have fixed my wishes for MM configs forever with the new matching syntax! I'm so glad my post was helpful! I wanted to also drop in a MM script I worked up here that is only possible thanks to this latest feature addition:

@PART
[*]:HAS[@RESOURCE[Oxidizer],@RESOURCE[LiquidFuel],!MODULE[ModuleFuelTanks]]:FINAL{
MODULE[ModuleFuelTanks]
{
volume = #$../RESOURCE[Oxidizer]/amount$
@volume += #$../RESOURCE[LiquidFuel]/amount$
@volume *= 5
type = Default
}
!RESOURCE[Oxidizer] {}
!RESOURCE[LiquidFuel] {}
}

@PART
[*]:HAS[!RESOURCE[Oxidizer],@RESOURCE[LiquidFuel],!MODULE[ModuleFuelTanks]]:FINAL
{
MODULE[ModuleFuelTanks]
{
volume = #$../RESOURCE[LiquidFuel]/amount$
@volume *= 5
type = Jet
}
!RESOURCE[LiquidFuel] {}
}

This is a nice catch-all for any parts not covered by RealFuels. More tailored configs would always be better of course, but this makes it technically compatible with any stock-alike fuel tanks, no matter what the mod. (The 'FINAL' is just so that all other mods can add their Real Fuels configs first). Similar configs might be possible for engines as well! I can't thank you enough for this; it made my day (week, even).

I will be working some up for other similar applications soon :)

Edited by dreadicon
Link to comment
Share on other sites

Maybe a very minor bug: Loading screen no longer displays sum of changes made. As of version 2.5.1.

Regardless, all changes seem to have been applied successfully.

Edit: Seems to be a bug in the DangIt! mod. Deleted, fixed.

Edited by velusip
other mod related bug
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...