Jump to content

[1.3.0] Filter Extensions 3.0.4 (Jul 11)


Crzyrndm

Recommended Posts

6 hours ago, Crzyrndm said:

Ok, I think I fixed both the issue with disappearing bulkhead profiles and this random crash with the self destructing part module (blame stock for that one...). If I could get some verifications...

Note to self, avoid PartModuleList.Contains(string moduleName / int id) like the plague

@Crzyrndm As near as I can tell this has solved the issue.  All my filter extensions are back and seem to be working properly.  I don't see any errors popping up in the output_log either. Great job as always and thanks so much for quick response in getting this fixed.  You rock!  

 

Link to comment
Share on other sites

6 hours ago, Crzyrndm said:

Ok, I think I fixed both the issue with disappearing bulkhead profiles and this random crash with the self destructing part module (blame stock for that one...). If I could get some verifications...

Note to self, avoid PartModuleList.Contains(string moduleName / int id) like the plague

I concur with rasta -- it works for me.  It might also be good to summon @Papa_Joe as well to look at your commit that fixes the issue, since CLS throws a similar error.

Link to comment
Share on other sites

On 30.04.2016 at 7:11 AM, AccidentalDisassembly said:

Don't have a log with FE debugging enabled, but I do seem to be having some sort of conflict between FE and some other mod. I don't believe this happens on stock (not when I tried it on pure stock, anyway). Several mods in my install are somehow messing up (1.1.1, not all updated, something like that). If it's helpful, here's a log:

Log: https://dl.dropboxusercontent.com/u/59567837/output_log_filtext.txt

(Maybe?) relevant bit:

 

 

I do have the same problem. On a vanilla (or with few mods) there are no problems with regular filter configuration. But with a lot of mods (or just one particular that messes things up) I get this in my output_log:
 

Quote

 

[Filter Extensions 2.5.0.0]:
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 64)

NullReferenceException: Object reference not set to an instance of an object
  at PartModuleList.Contains (Int32 classID) [0x00000] in <filename unknown>:0

  at PartModuleList.Contains (System.String className) [0x00000] in <filename unknown>:0

  at FilterExtensions.Core.getPartData () [0x00000] in <filename unknown>:0

  at FilterExtensions.Core.Awake () [0x00000] in <filename unknown>:0
UnityEngine.GameObject:Internal_AddComponentWithType(Type)
UnityEngine.GameObject:AddComponent(Type)
AddonLoader:StartAddon(LoadedAssembly, Type, KSPAddon, Startup)
AddonLoader:StartAddons(Startup)
AddonLoader:OnLevelWasLoaded(Int32)
 
(Filename:  Line: -1)

 

It messes the categories and doesn't filter parts by mod folder names (as shown on the pictures):

http://imgur.com/a/HZndN

Log file: https://dl.dropboxusercontent.com/u/24969834/ksp_filter_extensions/output_log.txt

Link to comment
Share on other sites

FYI: your conversion of the icons to .dds seems to have 'inverted' a few of them (for lack of a better term), or at least the backgrounds of them.

I'm thinking of mainly the ScienceParts icon off the top of my head. The picture on the left is the old PNG and the right is the new DDS. In game the background of the DDS is pressed in and dark in contrast to the surrounding icons (I can get a screenshot of that as well if you need it later, but my game is currently not in a working state:blush:).

Don't get me wrong, I like the memory savings and such and prefer the DDS standard; it's just something seems to have happened in the translation. Not really an area I have any real knowledge of but I'll try running them through the DDS4KSP app and see if I get any better results.:)

 

UiR71xU.png?1

Link to comment
Share on other sites

52 minutes ago, Ald said:

I do have the same problem. On a vanilla (or with few mods) there are no problems with regular filter configuration. But with a lot of mods (or just one particular that messes things up) I get this in my output_log:
 

It messes the categories and doesn't filter parts by mod folder names (as shown on the pictures):

http://imgur.com/a/HZndN

Log file: https://dl.dropboxusercontent.com/u/24969834/ksp_filter_extensions/output_log.txt

You don't have the latest version.

14 minutes ago, Deimos Rast said:

FYI: your conversion of the icons to .dds seems to have 'inverted' a few of them (for lack of a better term), or at least the backgrounds of them.

If you find any like that I can revert icons easy enough. There was a few other odd things I had to fix in the zip I was given as well

Edited by Crzyrndm
Link to comment
Share on other sites

Used the 2.5.0 from the official channel of distribution. You mean I should try the one dll file? I'm curious with which mod it did crash on regular 2.5.0 and I'm pretty close on narrowing it down from a ton of mods.

Link to comment
Share on other sites

oh that's right, I didn't make any release. Sorry about that.

Yes, the 1 .dll on the previous page will fix your issue

Edited by Crzyrndm
Link to comment
Share on other sites

Oh... so I guess I don't need to go deeper with checking which mod messed up with Filter Extensions :)

Thank you for your work and a lifesaver mod (for modaholics like me).

Cheers!

Link to comment
Share on other sites

I've got two weird bugs going on with FE that I'm trying to narrow down. I'm running KSP 1.1.2, Windows 64 bit.

Under FE 2.5.0, with KSP 1.1.2 and MM 2.6.24, nearly every non-stock category disappears (except for Extraplanetary Launchpads, which is odd that it sticks around EL doesn't use FE... a clue?). Also, KSP doesn't properly exit from the main menu and I have to force it to exit. I wouldn't suspect this second part to be a FE issue except that it goes away when this version of FE is not installed. Here's the screen capture for this case.

Using your updated dev .dll (from both simply replacing the .dll from FE 2.5.0 or from completely downloading your dev master folder and copying the contents of /GameData), I have an entirely different set of issues. All the editor categories now show up properly, and the game no longer has any issues with exiting from the main menu. But as soon as I click on one category, the game throws a NRE and the editor pages cease updating when I click on any additional categories. That is, if I click on "structural" items first, it update the parts list on the side with the structural elements, but then clicking on "fuel tanks," "engines," etc. no longer updates the parts list and it still shows structural parts. Here is the relevant excerpt from my log:

Spoiler

[EXC 21:50:02.950] NullReferenceException: Object reference not set to an instance of an object
    PartModuleList.Contains (Int32 classID)
    PartModuleList.Contains (System.String className)
    FilterExtensions.Utility.PartType+<>c__DisplayClass2.<checkModuleName>b__0 (System.String s)
    System.Linq.Enumerable.Any[String] (IEnumerable`1 source, System.Func`2 predicate)
    FilterExtensions.Utility.PartType.checkModuleName (.AvailablePart part, System.String[] value, Boolean contains)
    FilterExtensions.ConfigNodes.Check.checkPart (.AvailablePart part, Int32 depth)
    FilterExtensions.ConfigNodes.Filter+<>c__DisplayClass4.<checkFilter>b__3 (FilterExtensions.ConfigNodes.Check c)
    System.Linq.Enumerable.All[Check] (IEnumerable`1 source, System.Func`2 predicate)
    FilterExtensions.ConfigNodes.Filter.checkFilter (.AvailablePart part, Int32 depth)
    FilterExtensions.ConfigNodes.customSubCategory+<>c__DisplayClass7.<checkFilters>b__6 (FilterExtensions.ConfigNodes.Filter f)
    System.Linq.Enumerable.Any[Filter] (IEnumerable`1 source, System.Func`2 predicate)
    FilterExtensions.ConfigNodes.customSubCategory.checkFilters (.AvailablePart part, Int32 depth)
    FilterExtensions.Utility.PartType.checkSubcategory (.AvailablePart part, System.String[] value, Int32 depth)
    FilterExtensions.ConfigNodes.Check.checkPart (.AvailablePart part, Int32 depth)
    FilterExtensions.ConfigNodes.Filter+<>c__DisplayClass4.<checkFilter>b__3 (FilterExtensions.ConfigNodes.Check c)
    System.Linq.Enumerable.All[Check] (IEnumerable`1 source, System.Func`2 predicate)
    FilterExtensions.ConfigNodes.Filter.checkFilter (.AvailablePart part, Int32 depth)
    FilterExtensions.ConfigNodes.customSubCategory+<>c__DisplayClass7.<checkFilters>b__6 (FilterExtensions.ConfigNodes.Filter f)
    System.Linq.Enumerable.Any[Filter] (IEnumerable`1 source, System.Func`2 predicate)
    FilterExtensions.ConfigNodes.customSubCategory.checkFilters (.AvailablePart part, Int32 depth)
    FilterExtensions.ConfigNodes.customSubCategory.<initialise>b__4 (.AvailablePart p)
    UniLinq.Enumerable+<CreateWhereIterator>d__209`1[AvailablePart].MoveNext ()
    System.Collections.Generic.List`1[AvailablePart].AddEnumerable (IEnumerable`1 enumerable)
    System.Collections.Generic.List`1[AvailablePart]..ctor (IEnumerable`1 collection)
    UniLinq.Enumerable.ToList[AvailablePart] (IEnumerable`1 source)
    EditorPartListFilterList`1[AvailablePart].GetFilteredList (System.Collections.Generic.List`1 list)
    KSP.UI.Screens.EditorPartList.RefreshPartList ()
    KSP.UI.Screens.EditorPartList.Refresh ()
    KSP.UI.Screens.EditorPartList.Refresh (State state)
    KSP.UI.Screens.PartCategorizer+<UpdateDaemon>c__IteratorC4.MoveNext ()

And here is the log itself.

How weird is that?

Edited by danfarnsy
finished an unfinished sentence
Link to comment
Share on other sites

4 hours ago, danfarnsy said:

And here is the log itself.

How weird is that?

That's some error you got there (the joys of generic extensions and recursion in concert...).

1) https://github.com/Crzyrndm/FilterExtension/blob/master/GameData/000_FilterExtensions/FilterExtensions.dll?raw=true
I've entirely removed all traces of the problematic function this time and created my own replacement for the one place it's required. Hopefully it doesn't have the same issues

2) If that doesn't work, I need to see your MM cache and know which category you clicked on when things exploded

Edited by Crzyrndm
Link to comment
Share on other sites

7 hours ago, Crzyrndm said:

That's some error you got there (the joys of generic extensions and recursion in concert...).

1) https://github.com/Crzyrndm/FilterExtension/blob/master/GameData/000_FilterExtensions/FilterExtensions.dll?raw=true
I've entirely removed all traces of the problematic function this time and created my own replacement for the one place it's required. Hopefully it doesn't have the same issues

2) If that doesn't work, I need to see your MM cache and know which category you clicked on when things exploded

The issue briefly showed up again with your updated .dll in a fresh install of FE 2.5.1 (though it waited this time until I placed a root part). Removing and then reinstalling some other mods (which didn't fix it yesterday) seem to have made it go away. Which is weird. Yesterday when I was troubleshooting, there was a Connected Living Space NRE, but removing CLS didn't resolve the issue in the editor (which is why I didn't mention it before). Today, when the issue briefly showed up again, the NRE was again pointing to CLS. I removed CLS, and the issue was resolved. Then I used a test install with just FE (with your linked .dll), MM, and CLS, and the issue would not reproduce! Then I put CLS back in my big unwieldy installation, and the issue also did not appear again! So near as I can figure, today's hiccup was a leftover cache/config issue from yesterday.

If the issue shows up again, I'll be sure to test thoroughly. In the mean time, I think it's fixed! Thanks!

Normally, I'd have just uninstalled FE and lived without it, but I really hate digging through the utility page when all I'm looking for is batteries. :) 

Link to comment
Share on other sites

I reinstalled Filter Extensions, and the function category tabs show up fine now, but when I click on a tab, the parts displayed don't change.

Here's the log https://www.dropbox.com/s/qid50jqqc8q22c4/output_log.txt?dl=0

 

Quote

NullReferenceException: Object reference not set to an instance of an object
  at FilterExtensions.Utility.Extensions.PMListContains (.PartModuleList list, System.String moduleName) [0x00000] in <filename unknown>:0

  at FilterExtensions.Utility.PartType+<>c__DisplayClass2.<checkModuleName>b__0 (System.String s) [0x00000] in <filename unknown>:0

  at System.Linq.Enumerable.Any[String] (IEnumerable`1 source, System.Func`2 predicate) [0x00000] in <filename unknown>:0

  at FilterExtensions.Utility.PartType.checkModuleName (.AvailablePart part, System.String[] value, Boolean contains) [0x00000] in <filename unknown>:0

  at FilterExtensions.ConfigNodes.Check.checkPart (.AvailablePart part, Int32 depth) [0x00000] in <filename unknown>:0

  at FilterExtensions.ConfigNodes.Filter+<>c__DisplayClass4.<checkFilter>b__3 (FilterExtensions.ConfigNodes.Check c) [0x00000] in <filename unknown>:0

  at System.Linq.Enumerable.All[Check] (IEnumerable`1 source, System.Func`2 predicate) [0x00000] in <filename unknown>:0

  at FilterExtensions.ConfigNodes.Filter.checkFilter (.AvailablePart part, Int32 depth) [0x00000] in <filename unknown>:0

  at FilterExtensions.ConfigNodes.customSubCategory+<>c__DisplayClass7.<checkFilters>b__6 (FilterExtensions.ConfigNodes.Filter f) [0x00000] in <filename unknown>:0

  at System.Linq.Enumerable.Any[Filter] (IEnumerable`1 source, System.Func`2 predicate) [0x00000] in <filename unknown>:0

  at FilterExtensions.ConfigNodes.customSubCategory.checkFilters (.AvailablePart part, Int32 depth) [0x00000] in <filename unknown>:0

  at FilterExtensions.ConfigNodes.customSubCategory.<initialise>b__4 (.AvailablePart p) [0x00000] in <filename unknown>:0

  at UniLinq.Enumerable+<CreateWhereIterator>d__209`1[AvailablePart].MoveNext () [0x00000] in <filename unknown>:0

  at System.Collections.Generic.List`1[AvailablePart].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0

  at System.Collections.Generic.List`1[AvailablePart]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0

  at UniLinq.Enumerable.ToList[AvailablePart] (IEnumerable`1 source) [0x00000] in <filename unknown>:0

  at EditorPartListFilterList`1[AvailablePart].GetFilteredList (System.Collections.Generic.List`1 list) [0x00000] in <filename unknown>:0

  at KSP.UI.Screens.EditorPartList.RefreshPartList () [0x00000] in <filename unknown>:0

  at KSP.UI.Screens.EditorPartList.Refresh () [0x00000] in <filename unknown>:0

  at KSP.UI.Screens.EditorPartList.Refresh (State state) [0x00000] in <filename unknown>:0

  at KSP.UI.Screens.PartCategorizer+<UpdateDaemon>c__IteratorC4.MoveNext () [0x00000] in <filename unknown>:0
 
(Filename:  Line: -1)

 

Edited by dlrk
Link to comment
Share on other sites

Doh, of course a null check would be somewhat useful here...

Try again, same link. I'm feeling very hopeful this time given that error

Edited by Crzyrndm
Link to comment
Share on other sites

Thanks for your fantastic plugin!

 

However, I found a bug. It breaks the Intermmediate Construction Tutorial. When you get to the "Select the Science Tab to continue", the Next button is always grayed out.

It appears it's waiting for another input, that the extension changed. I had to remove the extension folders to fix the problem.

Then again, it may break other tutorials where it waits for tab clicking inputs.

Link to comment
Share on other sites

Will fix, it's easy enough to detect scenarios/tutorials (although why would anyone be doing basic tutorials with mods installed...?)

Edited by Crzyrndm
Link to comment
Share on other sites

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