Jump to content

[1.4.*] [2.5.3] (2018-04-06) UbioZur Welding Ltd. Continued


Recommended Posts

13 hours ago, Lisias said:

Welcome. Well, you almost did it. You need to unpack the ModuleManager DLL into GameData directly, and then you unzip the Ubiozur zip on the desktop, and move just UbioWeldingLtd into GameData, like this:

55jUCsq.png

The 2.5.3 kinda works on 1.7.3. I remembering fixing some bugs on my fork, but you will need to install dependencies to use it.

In both ones, you will have some problems on welding parts with Variants (as the fuel tanks). I think it will be more productive to use 1.5.1 for welding, but then you would need to copy some textures from zdeprecated into the original place (SXT from LGG has a script that does that for you).

akz0B5a.png

 

Let me know if you need some more help! Weld safe! :P

finally working, thank you so much!

Link to post
Share on other sites
  • 1 month later...

So I am knee deep in 1.7.3 and I know that switching out to an older version is beyond my capabilities at this point. I have a massive ship that I have built that looks to be around 453 parts and climbing. I wasn't able to get the welding mod to work on the one that @Lisias made. If anyone could give me a hand it would be greatly appreciated. Before anyone comes in here saying "logs or bust", please direct me to either the mod owners mod or Lisias fork, because I'm a little confused as to which I should use.

Edited by SimonTheSkink
Link to post
Share on other sites
On ‎8‎/‎25‎/‎2019 at 11:24 PM, Jbailey23 said:

Maybe you should post the specs of your Rig with it^^

Welding is not really beneficial with super large objects as the partcount is not really that dramatically reduced. What it will cause is some massive loading times :D

Link to post
Share on other sites
  • 2 weeks later...

I tried to weld parts on 1.4.3 and textures were very messed up for variant parts. Going into .cfg file of the part and deleting the part related to variants  fixed the textures. The welded part will use some default texture that might  not be  very good looking to you like orange fuel tanks instead of black and white ones but textures at least looked properly when I did it.

 

As example this was the part I removed from my .cfg file for the part and it fixed the textures of variant parts.

 

Spoiler

MODULE
    {
        name = ModulePartVariants
        baseVariant = YellowAndWhite
        VARIANT
        {
            name = White
            displayName = Black and White
            themeName = BlackAndWhite
            primaryColor = #ffffff
            secondaryColor = #000000
            TEXTURE
            {
                mainTextureURL = Squad/Parts/FuelTank/RockomaxTanks/rockomax_16 [AlbedoM] BW
                _BumpMap = Squad/Parts/FuelTank/RockomaxTanks/rockomax_16 [Normal] BW
            }
            GAMEOBJECTS
            {
                Rockomax_64_tubes = true
                Rockomax_64_tubes = false
            }
        }
        VARIANT
        {
            name = Orange
            displayName = Orange
            themeName = Orange
            primaryColor = #f49841
            secondaryColor = #4c4f47
            TEXTURE
            {
                mainTextureURL = Squad/Parts/FuelTank/RockomaxTanks/rockomax_16 [AlbedoM] O
                _BumpMap = Squad/Parts/FuelTank/RockomaxTanks/rockomax_16 [Normal]O
            }
            GAMEOBJECTS
            {
                Rockomax_64_tubes = false
                Rockomax_64_tubes = true
            }
        }
    }




On 1.7.3 I'm having a problem where when I click to save the welded part nothing happens if I click to save again it asks to overwrite the file and if I click okay nothing happens again. I am using MM 3.1.3. The part file is being written into GameData\__LOCAL\net.lisias.ksp\UbioWeldingLtd\Structural\test1 but its empty.

There is no log error for initial save but when I try to overwrite I get same error as someone did back in July, its trying to look for __LOCAL in wrong place. The error from log is below.

 

Spoiler

[ERR 21:43:21.513] [WeldingTool] ERROR: UbioWeldingLtd.UbioZurWeldingLtd raised Exception System.IO.IsolatedStorage.IsolatedStorageException: Could not find a part of the path "E:\__LOCAL\net.lisias.ksp\UbioWeldingLtd\Structural\weldedpart\weldedpart.cfg".
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0 
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0 
  at System.IO.File.Open (System.String path, FileMode mode) [0x00000] in <filename unknown>:0 
  at ConfigNode.Save (System.String fileFullName, System.String header) [0x00000] in <filename unknown>:0 
  at ConfigNode.Save (System.String fileFullName) [0x00000] in <filename unknown>:0 
  at UbioWeldingLtd.UbioZurWeldingLtd.WriteCfg (System.String pathname) [0x00000] in <filename unknown>:0 
  at UbioWeldingLtd.UbioZurWeldingLtd.HandleOverwriteDisplay (Int32 windowID) [0x00000] in <filename unknown>:0 
  at UbioWeldingLtd.UbioZurWeldingLtd.OnOverwriteDisplay (Int32 windowID) [0x00000] in <filename unknown>:0 



Creating appropriate folders that it cannot find does appear to fix the issue and lets me save the part and then use it by moving it into parts folder.  In the case of 1.7.3 deleting variant part of .cfg file did not fix messed up textures for variant parts.

Link to post
Share on other sites

How easy would it be to make this mod work with module manager 4, for 1.7.3? Is the problem solvable but difficult, or has no solution at this point? My CPU is dying due to the big stations I keep trying to build... this mod would be a godsend.

Link to post
Share on other sites

For anyone really wanting this to work for parts with variants on 1.7.3 you can use Blender and  .mu exporter/importer addon to by hand remove Variants from .mu files.  I tested so far with RockMax fuel tanks and it seems to work.

Link to post
Share on other sites
On 7/28/2019 at 12:50 AM, w00tguy said:

It's... different now! I don't have to copy the part folders to the root of GameData, but it's still checking the root of my filesystem:

[EXC 20:34:53.984] IsolatedStorageException: Could not find a part of the path "D:\__LOCAL\net.lisias.ksp\UbioWeldingLtd\Aero\test\test.cfg".

Creating an empty folder at D:\__LOCAL\net.lisias.ksp\UbioWeldingLtd\Aero\test allows me to save the weld, but the part isn't available after restarting.

A valid CFG is saved to the D:\__LOCAL path, and an empty CFG is saved to the GameData\__LOCAL path. If I copy the valid CFG from the D:\__LOCAL path to the GameData\__LOCAL path then I can use the part.

This actually makes it a easier to workaround with an NTFS junction point:

D:\>mklink /J __LOCAL "Steam\steamapps\common\Kerbal Space Program\GameData\__LOCAL"
Junction created for __LOCAL <<===>> Steam\steamapps\common\Kerbal Space Program\GameData\__LOCAL

That way welds can save/load successfully without having to copy files around.

Hi, dude!

I just found the magnificent bork I did that affected you. I let a "/" leak into the code, instead of using System.IO.Path.Path.DirectorySeparatorChar .#facePalm Yeah, I'm getting old. :)

Assuming this is still relevant to you, please update KSPe to the latest version. I didn't tested it properly on the Welding Tool (busy on TweakScale), but the function that was borking on Windows is now working properly.

https://github.com/net-lisias-ksp/KSPAPIExtensions/releases

Cheers!

 

Link to post
Share on other sites

God how I used to love this mod!?! I had to leave it way back at version 1.3.1 ...

Can anybody tell me the denouement of it?

Can it ever be revived for 1.8? Can it ever see the light and make people happy again?

 

*Looks like this

giphy.webp

at @Lisias and that guru gamer who he better not mention here, cause he doesn't want to distract him while he's currently updating 200 mods...*

 

 

Link to post
Share on other sites
5 hours ago, Problemless Mods Wanter said:

God how I used to love this mod!?! I had to leave it way back at version 1.3.1 ...

Can anybody tell me the denouement of it?

Can it ever be revived for 1.8? Can it ever see the light and make people happy again?

Yes, it can. Proper support for MODULEPARTVARIANT must be added to the thing. It's not different from what I have to do with TweakScale, where this is partially implemented already.

The hard part is to find enough time to do that. Both codebases (the official one on the OP, and my fork with some bug fixes, and some additional bugs to be fixed…) works fine. Mine manages to work slightly better on 1.5.x (IIRC) and has one or two glitches fixed.

The workaround to correctly weld parts is to use older KSP to do the welding, and then copy the parts to newer KPSs. Don't weld parts with VARIANT, is usually doesn't ends well. But don't hurt to try.

Link to post
Share on other sites
3 minutes ago, Lisias said:

Yes, it can. Proper support for MODULEPARTVARIANT must be added to the thing. It's not different from what I have to do with TweakScale, where this is partially implemented already.

The hard part is to find enough time to do that. Both codebases (the official one on the OP, and my fork with some bug fixes, and some additional bugs to be fixed…) works fine. Mine manages to work slightly better on 1.5.x (IIRC) and has one or two glitches fixed.

The workaround to correctly weld parts is to use older KSP to do the welding, and then copy the parts to newer KPSs. Don't weld parts with VARIANT, is usually doesn't ends well. But don't hurt to try.

This variant thing was the reason I had to let it go, in the first place. I was using "color coded cans" at that time.

Later, i believe with 1.4, they introduced this feature as vanilla, so I didn't even bother to try this mod again.

 

Most of the parts I want to weld (like 90%) have variants, not only color but also shape variants... So for me, it'll be a waiting game I guess.

But for anybody else interested; I'm leaving the link for your fork here, in this latest message. I hope it is correct;

https://github.com/net-lisias-ksp/UbioWeldContinuum/releases/tag/RELEASE%2F2.6.0.6

 

Link to post
Share on other sites

Change it to "releases/latest" , I do fix a thing now and then.

And the reason I publish it here is because I didn't adopted the thing (at least yet), and if the OP choose to come back (and then I won't need to), he is aware of it and can merge the fixes. Win win situation.

Edited by Lisias
tyops. as usulla.
Link to post
Share on other sites
8 hours ago, Alewx said:

1.8 changed a lot, really a lot, so don't be surprised when it does not work.

even finding the correct dlls for compiling is not like before.

You know what? Most of the changes they (Squad) managed to absorb. Add'Ons that handles only internal KSP structures, as TweakScale and Module Manager, survived almost without scratch - not even a recompile is needed. Had not happen that marvelous bork on some UI Float controls, I would withdrew TweakScale 2.4.3.8 (the one that blocks KSP 1.8) and leave things as they are.

Since UbioWeld is one of that Add'Ons too, you can pretty leave things as they are: compiling against 1.4.1 and handling the configs "by hand". You will be able to keep all the user base happy with a single binary, as I did with TweakScale since 1.4.1 (and almost did with 1.8 too).

 

8 hours ago, Alewx said:

 

@Lisiashow about just making a merge request?

The tricky part is that I used the Welding Tool as a test bed for a library of mine, KSPe, that it's 95% stable - but that 5% is taking me more time than I had planned, and that 5% will affect the Welding tool (see my post above) - mainly because it was this tool that triggered that features. :D 

The smartest move, IMHO, is to create a branch on my project to cherry-pick the changes you approve, and then making a pull request from that branch - is the M.O. I used on FireSpitter, by example, to prevent shoving my clutter on its code-tree as I did once by plain stupidity.

Can you wait some days, while I handle KSP 1.8 somehow? I'm taking some user pressure to have TweakScale working, not to mention that I'm blocking some other fellow Add'On Authors (that are kindly giving me the slack I need to better handle things - but yet, I'm blocking them).

Edited by Lisias
kinda of tyops. - and I hate typing on mobies
Link to post
Share on other sites
On 8/25/2019 at 12:45 AM, Lisias said:

Use ModuleManager 3.1.3. Something changed on MM 4, and Ubioweld didn't coped very well.

Confirmed, before found this on the previous page, I was trying 1.4.5, 1.5.1, but the GUI didn't show up.
After downgrading MM, it works fine with ksp1.7.3 + MM 3.1.3

 

 

Link to post
Share on other sites
  • 1 month later...

So, this mod doesn't work with latest ksp?

I have the button visible in VAB, but clicking it does nothing.

And there's some errors in the log:

Spoiler
[LOG 21:26:04.846] [WeldingTool] - UbioWeldingLtd.UbioZurWeldingLtd => Awake
[LOG 21:26:04.847] [WeldingTool]  Platform is WindowsPlayer
[ERR 21:26:04.862] ADDON BINDER: Cannot resolve assembly: UbioWeldingLtd.XmlSerializers, Culture=neutral, PublicKeyToken=null

[ERR 21:26:04.862] ADDON BINDER: Cannot resolve assembly: UbioWeldingLtd.XmlSerializers, Culture=neutral, PublicKeyToken=null

[ERR 21:26:04.863] ADDON BINDER: Cannot resolve assembly: UbioWeldingLtd.XmlSerializers

[LOG 21:26:04.968] [WeldingTool]  Config was loaded
[LOG 21:26:04.983] [WeldingTool]  ModuleManager assembly was found: ModuleManager (version 4.1.3.0)
[ERR 21:26:04.984] FindAllObjectsOfType: The type has to be derived from UnityEngine.Object. Type is MMPatchLoader.

[EXC 21:26:04.985] NullReferenceException: Object reference not set to an instance of an object
	UnityEngine.Object.FindObjectOfType (System.Type type) (at <5aeafee3fea24f37abd1315553f2cfa6>:0)
	UbioWeldingLtd.DatabaseHandler.initMMAssembly () (at <1030eb405a3a4e0ab4570a124c797fa5>:0)
	UbioWeldingLtd.UbioZurWeldingLtd.Awake () (at <1030eb405a3a4e0ab4570a124c797fa5>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.GameObject:AddComponent(Type)
	AddonLoader:StartAddon(LoadedAssembly, Type, KSPAddon, Startup)
	AddonLoader:StartAddons(Startup)
	AddonLoader:OnLevelLoaded(GameScenes)
	AddonLoader:OnSceneLoaded(Scene, LoadSceneMode)
	UnityEngine.SceneManagement.SceneManager:Internal_SceneLoaded(Scene, LoadSceneMode)
[LOG 21:36:11.086] [WeldingTool]  ModuleManager assembly was found: ModuleManager (version 4.1.3.0)
[ERR 21:36:11.086] FindAllObjectsOfType: The type has to be derived from UnityEngine.Object. Type is MMPatchLoader.

[EXC 21:36:11.087] NullReferenceException: Object reference not set to an instance of an object
	UnityEngine.Object.FindObjectOfType (System.Type type) (at <5aeafee3fea24f37abd1315553f2cfa6>:0)
	UbioWeldingLtd.DatabaseHandler.initMMAssembly () (at <1030eb405a3a4e0ab4570a124c797fa5>:0)
	UbioWeldingLtd.UbioZurWeldingLtd.Awake () (at <1030eb405a3a4e0ab4570a124c797fa5>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.GameObject:AddComponent(Type)
	AddonLoader:StartAddon(LoadedAssembly, Type, KSPAddon, Startup)
	AddonLoader:StartAddons(Startup)
	AddonLoader:OnLevelLoaded(GameScenes)
	AddonLoader:OnSceneLoaded(Scene, LoadSceneMode)
	UnityEngine.SceneManagement.SceneManager:Internal_SceneLoaded(Scene, LoadSceneMode)

 

 

Link to post
Share on other sites
  • 2 weeks later...
On 12/17/2019 at 1:53 PM, Chewzie said:

So, this mod doesn't work with latest ksp?

I have the button visible in VAB, but clicking it does nothing.

It's a change on Module Manager on a (at that time) public interface.

I "fixed" the issue using MM3 or my personal fork for MM4.

Link to post
Share on other sites
On 12/28/2019 at 4:10 PM, qromodynmc said:

I wonder if 1.8 version work with 1.7.3 too.

If you compile the thing using dotNet 4.x, nope. KSP 1.7 and older uses Mono as runtime, and it understands only dotNet 3.5.

But if you compile it using a dotNet 3.5 compiler, it would work both on 1.7.3 and on 1.8.x, as dotNet 4.x understands 3.5 code.

In a way or another, the Welding tool chockes with parts with MODULEPARTVARIANT, no matter the KSP you are using - this is can be a problem from 1.5.1 onwards, where MODULEPARTVAIRANT started to be widely used on stock parts.

Link to post
Share on other sites
9 hours ago, zer0Kerbal said:

why not write a MM patch for this mod that !MODULEPARTVARIANT[*] {} ? (deletes all modulepart variants?)

Clever idea. However, the problem is on the input part of the algorithm - the Welding tool has some code to handle VARIANTs, but it's incomplete - I'm guessing that at the time of the write, there were no enough samples of this thing to make a working solution (at the 1.4 times, only one part had the VARIANT, I bet my mouse Squad was wetting their feet on this).

You need to get rid of the VARIANT before applying the weld. At present state, that code is useless because different parts have different meanings for a VARIANT, and by welding them together, you ended up welding tomatoes as it were apples.

I think that a better solution was given by a fellow Kerbonaut some pages ago: create the welded part without VARIANTs - the tool should "consolidade" the present state of the part and then generated a "UNVARIANT" part using that configurations.

Link to post
Share on other sites
10 hours ago, Lisias said:

Clever idea

thank you.

 

Just wanting to seek clarity: if the MM patch deletes all modulepartvarients during load - and you go to weld an assembly - there shouldn't be any modulepartvarient(s) left to give it a case of hiccups? Using :FIRST on the patch... and to CYA, do another pass with the same patch with :FINAL.

Edited by zer0Kerbal
Link to post
Share on other sites
6 minutes ago, zer0Kerbal said:

Just wanting to seek clarity: if the MM patch deletes all modulepartvarients during load - and you go to weld an assembly - there shouldn't be any modulepartvarient(s) left to give it a case of hiccups? Using :FIRST on the patch... and to CYA, do another pass with the same patch with :FINAL.

The problem is that some parts depends on the VARIANT to get his real data. From TweakScale, I learnt that some parts are defined more or less as follows:

PART
{
    name = fancyPants
    mass = -1.2525
    <yaddayaddayadda>
    VARIANT
    {
        scale = 1.0
        mass = 25.00
        <yaddayaddayadda>
    }
    VARIANT
    {
        scale = 1.5
        mass = 30.00
        <yaddayaddayadda>
    }
    VARIANT
    {
        scale = 0.5
        mass = 15
        <yaddayaddayadda>
    }
}

So, in order to get the final mass of the part, you need to apply a VARIANT first.

Link to post
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...