Tacombel Posted October 30, 2021 Share Posted October 30, 2021 14 minutes ago, Gotmachine said: It will cause any mod having a MM patch relying on a NEEDS[ConnectedLivingSpace] to have that patch wrongly applied when CLS isn't actually installed. Wont that already happend ? Link to comment Share on other sites More sharing options...
Gotmachine Posted October 30, 2021 Share Posted October 30, 2021 (edited) 1 hour ago, Tacombel said: Wont that already happend ? No. MM will only register a CLSInterfaces keyword if the interface dll is present. MM adds NEEDS keyword by looking for *.dll names and gamedata root folders names. As long as no ConnectedLivingSpace.dll exists, and that no ConnectedLivingSpace gamedata root folder exists, a NEEDS[ConnectedLivingSpace] patch won't be applied. The best solution to work around that KSP bug is having mods using CLSInterfaces.dll redistributing it from within their own mod folder, but renaming it with an unique name like "CLSInterfaces_MyMod.dll" I confirm that this work without side issues, both in 1.12.2 and 1.11.1 (so before and after Squad modified the assembly loader). The assembly loader will have two separate wrapper entries, but only one common interface assembly will actually be loaded : This solution is the one that will have the least impact and require the least work from everyone's POV. It doesn't require any change on CKAN and neither on the CLS side and won't break any player install that isn't already broken by the KSP bug. It only require updating mods using the CLS interface. Edited October 30, 2021 by Gotmachine Link to comment Share on other sites More sharing options...
micha Posted October 30, 2021 Author Share Posted October 30, 2021 Thanks everybody for chiming in, and argh, what a nightmare! Why the bleep did KSP break something which has worked fine for years and years? Moving forward, IMHO the best approach will be a unified one by all mods which publish APIs or include dependant DLLs from other mods. Will need to collate a list of mods and then have a chat to the authors to see what people think. Link to comment Share on other sites More sharing options...
Tacombel Posted October 30, 2021 Share Posted October 30, 2021 (edited) 4 hours ago, Gotmachine said: No. MM will only register a CLSInterfaces keyword if the interface dll is present. MM adds NEEDS keyword by looking for *.dll names and gamedata root folders names. As long as no ConnectedLivingSpace.dll exists, and that no ConnectedLivingSpace gamedata root folder exists, a NEEDS[ConnectedLivingSpace] patch won't be applied. That's what I mean. As soon as somebody installs Kerbal Health, the DLL is there, whithout the "main" mod present, no? Edited October 30, 2021 by Tacombel Link to comment Share on other sites More sharing options...
Gotmachine Posted October 30, 2021 Share Posted October 30, 2021 (edited) 1 hour ago, Tacombel said: That's what I mean. As soon as somebody installs Kerbal Health, the DLL is there, whithout the "main" mod present, no? No. The CLS core functionality is in "ConnectedLivingSpace.dll", which is only distributed with CLS. That one will cause the "ConnectedLivingSpace" keyword to be added by MM (as well as the fact that a "ConnectedLivingSpace" folder exists in GameData). "CLSInterfaces.dll" is an additional assembly distributed by both CLS and other mods using it, for the purpose of plugin interoperability. It will indeed cause a "CLSInterfaces" keyword to be added to MM, but nobody should ever be checking that in a MM NEEDS. Edited October 30, 2021 by Gotmachine Link to comment Share on other sites More sharing options...
linuxgurugamer Posted October 30, 2021 Share Posted October 30, 2021 12 hours ago, Gotmachine said: It will cause any mod having a MM patch relying on a NEEDS[ConnectedLivingSpace] to have that patch wrongly applied when CLS isn't actually installed. The dll being there does that already Link to comment Share on other sites More sharing options...
Gotmachine Posted October 31, 2021 Share Posted October 31, 2021 (edited) 11 hours ago, linuxgurugamer said: The dll being there does that already *sigh*... No, the dll isn't there. Should I really explain it a third time, or are you gonna read the post just above yours ? Edited October 31, 2021 by Gotmachine Link to comment Share on other sites More sharing options...
linuxgurugamer Posted October 31, 2021 Share Posted October 31, 2021 4 hours ago, Gotmachine said: *sigh*... No, the dll isn't there. Should I really explain it a third time, or are you gonna read the post just above yours ? I was referring to any mod that distributes the dll, should put the dll in to correct place and not in its own folder. There are a few mods which do. If I've misunderstood the conversation, I apologize Link to comment Share on other sites More sharing options...
Papa_Joe Posted November 6, 2021 Share Posted November 6, 2021 With my return to modding, and my resuming support of Ship Manifest, I'll also resume support of Connected Living Spaces. Thanks to @micha for his support during my absence, and for keeping this mod alive. I am deeply grateful. My dev environment is setup now, so I'm working to get the source code repos updated with the updates that @micha has delivered. Link to comment Share on other sites More sharing options...
Brigadier Posted November 6, 2021 Share Posted November 6, 2021 40 minutes ago, Papa_Joe said: With my return to modding, and my resuming support of Ship Manifest, I'll also resume support of Connected Living Spaces. Thanks to @micha for his support during my absence, and for keeping this mod alive. I am deeply grateful. Welcome back @Papa_Joe. Many thanks to @micha. Link to comment Share on other sites More sharing options...
ruiluth Posted November 7, 2021 Share Posted November 7, 2021 I'm not sure if CLS is causing this issue, but every time I transfer kerbals within a vessel, their inventory gets reset with a new parachute and eva pack. My stations are filling up with parachutes Link to comment Share on other sites More sharing options...
ruiluth Posted November 11, 2021 Share Posted November 11, 2021 I'm having another issue that I can't figure out how to solve. I have two parts that are connected and passable, but for some reason, CLS is not putting them in the same internal space. I cannot figure out why. I even went through my persistence file and verified that the parts have the CLS module and it's enabled and configured properly. Nothing relevant in the logs. Anybody have any ideas for things I could try? For now I've enabled "allow unrestricted crew transfers" but that kind of defeats the point of having this mod at all. Link to comment Share on other sites More sharing options...
Tacombel Posted November 11, 2021 Share Posted November 11, 2021 1 hour ago, ruiluth said: I'm having another issue that I can't figure out how to solve. I have two parts that are connected and passable, but for some reason, CLS is not putting them in the same internal space. I cannot figure out why. I even went through my persistence file and verified that the parts have the CLS module and it's enabled and configured properly. Nothing relevant in the logs. Anybody have any ideas for things I could try? For now I've enabled "allow unrestricted crew transfers" but that kind of defeats the point of having this mod at all. Check that the docking ports are open. Ship manifest can help with this. Link to comment Share on other sites More sharing options...
ruiluth Posted November 13, 2021 Share Posted November 13, 2021 On 11/11/2021 at 8:27 AM, Tacombel said: Check that the docking ports are open. Ship manifest can help with this. The docking ports are open, that was the first thing I checked. If you look closely, you can see in the screenshots that the lower space includes both docking ports and the next part, and the upper space does not extend as far as the docking port. So that's definitely not the problem. Link to comment Share on other sites More sharing options...
Tacombel Posted November 13, 2021 Share Posted November 13, 2021 3 hours ago, ruiluth said: The docking ports are open, that was the first thing I checked. If you look closely, you can see in the screenshots that the lower space includes both docking ports and the next part, and the upper space does not extend as far as the docking port. So that's definitely not the problem. Then probably that part has no configuration for CLS, or it is not pasable in that direction. I think that you can check the CLS configuration on the VAB. Link to comment Share on other sites More sharing options...
Gordon Dry Posted November 13, 2021 Share Posted November 13, 2021 (edited) @ruiluththere is a patch that could be considered cheating, but you can use it: GameData\zFinal\zzz_CLSMoreFreedomAddon.cfg @PART[*ecoupler*]:HAS[!MODULE[ModuleConnectedLivingSpace],~description[*adial*]&#attachRules[1,0,1,1,0]|#attachRules[1,0,1,0,0]|#attachRules[1,0,1,1,1]|#attachRules[1,0,1,0,1]]:NEEDS[ConnectedLivingSpace]:FINAL { MODULE { name = ModuleConnectedLivingSpace passable = false } } @PART[*eparator*]:HAS[!MODULE[ModuleConnectedLivingSpace],#attachRules[1,0,1,1,0]|#attachRules[1,0,1,0,0]|#attachRules[1,0,1,1,1]|#attachRules[1,0,1,0,1]]:NEEDS[ConnectedLivingSpace]:FINAL { MODULE { name = ModuleConnectedLivingSpace passable = false } } @PART[*dapter*]:HAS[!MODULE[ModuleConnectedLivingSpace],#attachRules[1,0,1,1,0]|#attachRules[1,0,1,0,0]|#attachRules[1,0,1,1,1]|#attachRules[1,0,1,0,1]]:NEEDS[ConnectedLivingSpace]:FINAL { MODULE { name = ModuleConnectedLivingSpace passable = false } } @PART[*attery*]:HAS[!MODULE[ModuleConnectedLivingSpace],~description[*adial*]&#attachRules[1,0,1,1,0]|#attachRules[1,0,1,0,0]|#attachRules[1,0,1,1,1]|#attachRules[1,0,1,0,1]]:NEEDS[ConnectedLivingSpace]:FINAL { MODULE { name = ModuleConnectedLivingSpace passable = false } } @PART[RC_stack]:HAS[!MODULE[ModuleConnectedLivingSpace]]:NEEDS[RealChute,ConnectedLivingSpace]:FINAL { MODULE { name = ModuleConnectedLivingSpace passable = true } } It's part of my zFinal project, see signature (always up to date Dropbox archive). Edited December 13, 2021 by Gordon Dry added RealChute Stack Chute Link to comment Share on other sites More sharing options...
ruiluth Posted November 13, 2021 Share Posted November 13, 2021 6 hours ago, Tacombel said: Then probably that part has no configuration for CLS, or it is not pasable in that direction. I think that you can check the CLS configuration on the VAB. Quote I even went through my persistence file and verified that the parts have the CLS module and it's enabled and configured properly. I tripled checked the part and it definitely does have it. The only thing I can think of that might change it is that it's a switchable part with variable length, as well as a variant that does not have a crew tunnel, but it's configured to have all nodes be passable, so... I'm not sure with that. The other weird thing is that it shows as connected in the VAB when I assemble the station, but not in flight. 5 hours ago, Gordon Dry said: @ruiluththere is a patch that could be considered cheating, but you can use it: GameData\zFinal\zzz_CLSMoreFreedomAddon.cfg @PART[*ecoupler*]:HAS[!MODULE[ModuleConnectedLivingSpace],~description[*adial*]&#attachRules[1,0,1,1,0]|#attachRules[1,0,1,0,0]|#attachRules[1,0,1,1,1]|#attachRules[1,0,1,0,1]]:NEEDS[ConnectedLivingSpace]:FINAL { MODULE { name = ModuleConnectedLivingSpace passable = false } } @PART[*eparator*]:HAS[!MODULE[ModuleConnectedLivingSpace],#attachRules[1,0,1,1,0]|#attachRules[1,0,1,0,0]|#attachRules[1,0,1,1,1]|#attachRules[1,0,1,0,1]]:NEEDS[ConnectedLivingSpace]:FINAL { MODULE { name = ModuleConnectedLivingSpace passable = false } } @PART[*dapter*]:HAS[!MODULE[ModuleConnectedLivingSpace],#attachRules[1,0,1,1,0]|#attachRules[1,0,1,0,0]|#attachRules[1,0,1,1,1]|#attachRules[1,0,1,0,1]]:NEEDS[ConnectedLivingSpace]:FINAL { MODULE { name = ModuleConnectedLivingSpace passable = false } } @PART[*attery*]:HAS[!MODULE[ModuleConnectedLivingSpace],~description[*adial*]&#attachRules[1,0,1,1,0]|#attachRules[1,0,1,0,0]|#attachRules[1,0,1,1,1]|#attachRules[1,0,1,0,1]]:NEEDS[ConnectedLivingSpace]:FINAL { MODULE { name = ModuleConnectedLivingSpace passable = false } } It's part of my zFinal project, see signature (always up to date Dropbox archive). What is this meant to do? It looks like it just removes the ability to transfer kerbals through certain parts... Link to comment Share on other sites More sharing options...
Gordon Dry Posted November 13, 2021 Share Posted November 13, 2021 29 minutes ago, ruiluth said: What is this meant to do? It looks like it just removes the ability to transfer kerbals through certain parts... It creates the modules to be able to pass through, but disables them by default. Toggleable in VAB. Link to comment Share on other sites More sharing options...
Papa_Joe Posted November 22, 2021 Share Posted November 22, 2021 Hey all, With the release of Ship Manifest, I'm now turning my attention to CLS. I'll be pulling the latest code and going thru it. I'll look over the issues posted here and in @Micha's Repo for any low hanging fruit. Update soontm. Link to comment Share on other sites More sharing options...
codepoet Posted November 27, 2021 Share Posted November 27, 2021 (edited) On 11/6/2021 at 1:10 AM, Papa_Joe said: With my return to modding, and my resuming support of Ship Manifest, I'll also resume support of Connected Living Spaces. Thanks to @micha for his support during my absence, and for keeping this mod alive. I am deeply grateful. My dev environment is setup now, so I'm working to get the source code repos updated with the updates that @micha has delivered. Yay. Lovely to see old friends! I just dropped by seeking a moment out of real life. Great to see people still (trying!) to use Connected Living Space, and really thrilled to see that it being used with feature rich mods like Kerbal Health, I have read the discussion about conflicts with CLSInterfaces.dll with interest. I am sure things have moved on, and I can not remember much from when it was originally introduced, but the purpose of having a separate interfaces dll was to remove some of these sorts or problems by making the interface definition rigid and allowing the implementation and callers to change. It sounds like something has changed in KSP to make life harder for everyone, but it is great to see you all trying to find the best solution. Thanks everyone. Edited November 27, 2021 by codepoet Link to comment Share on other sites More sharing options...
Papa_Joe Posted November 27, 2021 Share Posted November 27, 2021 (edited) 15 hours ago, codepoet said: Yay. Lovely to see old friends! I just dropped by seeking a moment out of real life. Great to see people still (trying!) to use Connected Living Space, and really thrilled to see that it being used with feature rich mods like Kerbal Health, I have read the discussion about conflicts with CLSInterfaces.dll with interest. I am sure things have moved on, and I can not remember much from when it was originally introduced, but the purpose of having a separate interfaces dll was to remove some of these sorts or problems by making the interface definition rigid and allowing the implementation and callers to change. It sounds like something has changed in KSP to make life harder for everyone, but it is great to see you all trying to find the best solution. Thanks everyone. Wonderful to hear from you! I do hope life is treating you and yours well! I've buried a wife, overcome some strife, built a new life, and am embarking on a new adventure in Mexico, with a woman willing to give it a go! Indeed, an assembly loading bug in KSP 1.12, caused an issue with duplicate DLL file names. It is not consistent, and according to @Gotmachine depends on the mix of mods loaded. Renaming the File embedded with each mod seems to correct the issue. @HebaruSan at CKAN can rename the files for other mods on the fly at his end, but that does not solve the problem for everyone, and renders the renamed file inaccessable, as CLSInterfaces.dll is referenced in the mod assembly's dependencies. It seems the least painful path is for modders to simply rename the file using their modname/acronym as a prefix or suffix for CLSInterfaces.dll, and rebind the dependency in their next release to that local file. Your mod is alive and well, supported by this fine community! Iirc, it is a *must* for Real Solar System enthusiasts. Don't be a stranger! Edited November 28, 2021 by Papa_Joe Link to comment Share on other sites More sharing options...
Gordon Dry Posted December 13, 2021 Share Posted December 13, 2021 consider adding ClickThrougBlocker as dependency - and make CLS un-throughclickable. Link to comment Share on other sites More sharing options...
micha Posted December 14, 2021 Author Share Posted December 14, 2021 (edited) 6 hours ago, Gordon Dry said: consider adding ClickThrougBlocker as dependency - and make CLS un-throughclickable. Please note that @Papa_Joe has resumed development of CLS. And if he reads this, I strongly hope that he will not do so. ClickThroughBlocker pulls in other dependencies and some of those I refuse to install in my game. I've discussed my issues with the author of those mods and we agreed to disagree. That said, implementing similar functionality to avoid click-through is something I do strongly support and have already implemented and/or started work on such for other mods. For CLS I was torn between implemeting it for the current implementation, or by moving all of CLS to the "new" Unity windowing system which would provide this functionality by default as well as other benefits, albeit at a significant amount of initial development effort. ---- @Mods please lock this thread as it is no longer required. Please see the original thread on CLS (linked in the OP). Edited December 14, 2021 by micha add hr between merged posts Link to comment Share on other sites More sharing options...
Papa_Joe Posted December 14, 2021 Share Posted December 14, 2021 (edited) 42 minutes ago, micha said: Please note that @Papa_Joe has resumed development of CLS. And if he reads this, I strongly hope that he will not do so. ClickThroughBlocker pulls in other dependencies and some of those I refuse to install in my game. I've discussed my issues with the author of those mods and we agreed to disagree. That said, implementing similar functionality to avoid click-through is something I do strongly support and have already implemented and/or started work on such for other mods. For CLS I was torn between implemeting it for the current implementation, or by moving all of CLS to the "new" Unity windowing system which would provide this functionality by default as well as other benefits, albeit at a significant amount of initial development effort. ---- @Mods please lock this thread as it is no longer required. Please see the original thread on CLS (linked in the OP). Just to close this out, there is another way, and I just implemented it in ShipManifest. I do not wish for such as dependency either... I will further refine the blocking code I already have and catch the remaining KSP UI elements that are not yet blocked. Edited December 14, 2021 by Papa_Joe Link to comment Share on other sites More sharing options...
Vanamonde Posted December 14, 2021 Share Posted December 14, 2021 Thread closed by OP's request. Link to comment Share on other sites More sharing options...
Recommended Posts