Jump to content

[0.90] Magic Smoke Industries Infernal Robotics - 0.19.3


sirkut

Recommended Posts

I'm not sure what the issue is but I've stated that any docking mechanism(the claw is a docking port of sorts) is a no-no when attaching directly to an IR part. Things can misbehave so tread lightly.
Alright. I'll have to go back to the drawing board to bring that asteroid down.

Virtual rocket legos. Awesome - I mean it.

Link to comment
Share on other sites

Hi sirkut, sorry if I'm an idiot but the license file distributed with IR states "MechJeb2" (not the one in the "SupportedLicenses" folder but the LICENSE.md file in the MSI root folder).

That's what I downloaded with the latest release 0.18.6. Thought I may as well tell you.

On a side note: I'm super curious about the in-editor movement, can you tell us a bit about your progress?

Link to comment
Share on other sites

Hi sirkut, sorry if I'm an idiot but the license file distributed with IR states "MechJeb2" (not the one in the "SupportedLicenses" folder but the LICENSE.md file in the MSI root folder).

That's what I downloaded with the latest release 0.18.6. Thought I may as well tell you.

On a side note: I'm super curious about the in-editor movement, can you tell us a bit about your progress?

It's a typo that has been perpetuated since I used the same license that was included with damned robotics. I'll fix it in the next update.

In-editor movement has been successfully accomplished for rotational devices EXCEPT I now have to fix a few of the parts because of how unity imports meshes from blender. Even though the mesh (in this case the base) is orientated correctly, it shows it's eulerangle as 270 in the code which causes really bad rotational movements. Fun fact, in order for attachment nodes, etc to move properly with the part, everything EXCEPT the base is allowed to move which means you have to move the base in the opposite direction.

Next step I will work on the translational parts (adjustable rail, gantry) and those shouldn't be so difficult. :) I'm hoping by this weekend to have it finished.

Link to comment
Share on other sites

It's a typo that has been perpetuated since I used the same license that was included with damned robotics. I'll fix it in the next update.

In-editor movement has been successfully accomplished for rotational devices EXCEPT I now have to fix a few of the parts because of how unity imports meshes from blender. Even though the mesh (in this case the base) is orientated correctly, it shows it's eulerangle as 270 in the code which causes really bad rotational movements. Fun fact, in order for attachment nodes, etc to move properly with the part, everything EXCEPT the base is allowed to move which means you have to move the base in the opposite direction.

Next step I will work on the translational parts (adjustable rail, gantry) and those shouldn't be so difficult. :) I'm hoping by this weekend to have it finished.

Cool!

Oh these rotations are horrible (AS forward is actually -1*right, don't ask me why :cool:)! It took me days and much help from the IRC chan to simply translate the VAB rotation to flight rotation for AS :huh:

And don't even start to talk about this dark magic called Blender :D Amazing that you are finally close to making the impossible possible!

Link to comment
Share on other sites

Anyone got any ideas what could be causing this NRE?

output_log.txt

[IR GUI] AddingLock-IRGUILockOfEditor

(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)

NullReferenceException
at (wrapper managed-to-native) UnityEngine.Transform:Find (string)

at UnityEngine.Transform.FindChild (System.String name) [0x00000] in <filename unknown>:0

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

at Part.highlight (Color highlightColor) [0x00000] in <filename unknown>:0

at Part.highlightRecursive (Color highlightColor) [0x00000] in <filename unknown>:0

at Part.SetHighlight (Boolean active) [0x00000] in <filename unknown>:0

at MuMech.MuMechGUI.EditorWindow (Int32 windowID) [0x00000] in <filename unknown>:0

at UnityEngine.GUILayout+LayoutedWindow.DoWindow (Int32 windowID) [0x00000] in <filename unknown>:0

at UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style) [0x00000] in <filename unknown>:0

(Filename: Line: -1)

GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)

(Filename: Line: 404)

NullReferenceException
at (wrapper managed-to-native) UnityEngine.Transform:Find (string)

at UnityEngine.Transform.FindChild (System.String name) [0x00000] in <filename unknown>:0

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

at Part.highlight (Color highlightColor) [0x00000] in <filename unknown>:0

at Part.highlightRecursive (Color highlightColor) [0x00000] in <filename unknown>:0

at Part.SetHighlight (Boolean active) [0x00000] in <filename unknown>:0

at MuMech.MuMechGUI.EditorWindow (Int32 windowID) [0x00000] in <filename unknown>:0

at UnityEngine.GUILayout+LayoutedWindow.DoWindow (Int32 windowID) [0x00000] in <filename unknown>:0

at UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style) [0x00000] in <filename unknown>:0

Link to comment
Share on other sites

Anyone got any ideas what could be causing this NRE?

output_log.txt

[IR GUI] AddingLock-IRGUILockOfEditor

(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)

NullReferenceException
at (wrapper managed-to-native) UnityEngine.Transform:Find (string)

at UnityEngine.Transform.FindChild (System.String name) [0x00000] in <filename unknown>:0

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

at Part.highlight (Color highlightColor) [0x00000] in <filename unknown>:0

at Part.highlightRecursive (Color highlightColor) [0x00000] in <filename unknown>:0

at Part.SetHighlight (Boolean active) [0x00000] in <filename unknown>:0

at MuMech.MuMechGUI.EditorWindow (Int32 windowID) [0x00000] in <filename unknown>:0

at UnityEngine.GUILayout+LayoutedWindow.DoWindow (Int32 windowID) [0x00000] in <filename unknown>:0

at UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style) [0x00000] in <filename unknown>:0

(Filename: Line: -1)

GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)

(Filename: Line: 404)

NullReferenceException
at (wrapper managed-to-native) UnityEngine.Transform:Find (string)

at UnityEngine.Transform.FindChild (System.String name) [0x00000] in <filename unknown>:0

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

at Part.highlight (Color highlightColor) [0x00000] in <filename unknown>:0

at Part.highlightRecursive (Color highlightColor) [0x00000] in <filename unknown>:0

at Part.SetHighlight (Boolean active) [0x00000] in <filename unknown>:0

at MuMech.MuMechGUI.EditorWindow (Int32 windowID) [0x00000] in <filename unknown>:0

at UnityEngine.GUILayout+LayoutedWindow.DoWindow (Int32 windowID) [0x00000] in <filename unknown>:0

at UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style) [0x00000] in <filename unknown>:0

Hrm. Did you do a control-z in the editor? There is a bug with that I haven't fixed or know how to at the moment. Also what version.

Edited by sirkut
Link to comment
Share on other sites

Why doesn't KSP just use degrees for rotation?

Because matrices and quaternions are a lot easier for computers to manage and avoid singularities. Just means you have to do Euler calculations now and then, which aren't so nice.

Edited by ZodiusInfuser
Link to comment
Share on other sites

Oh KSP....

It created an on-vessel-load-sculpture out of Hinges, Girders and LV-Ns. Oh and it moved everything away from the original position. And duplicated parts.

Not really IR related but hey, it contains Hinges :D

Well, this time I didn't even attempt to repair the save file and sacrificed the whole vessel...

JdD7GwW.jpg?1

Link to comment
Share on other sites

Alright. I'll have to go back to the drawing board to bring that asteroid down.

Virtual rocket legos. Awesome - I mean it.

Nice ship, but Lego means 'I build', and therefore has no plural form. (say : " Lego bricks" ;-) )

Also, I built a small vehicle with a claw on an articulated arm, and every time it dropped something it had picked up, the entire arm mechanism ceased to function. As sirkut says, he has told everyone not to do this, although speaking of intuitive design, every person who first gets hold of IR would try to do something like this, discover the issue, try to find out what was wrong and then discover that docking ports of any sort and IR don't mix, wouldn't they :rolleyes: .

Edited by Stephanie the Viking
Link to comment
Share on other sites

Nice ship, but Lego means 'I build', and therefore has no plural form. (say : " Lego bricks" ;-) )

'Lego' is a portmanteau of 'leg godt' which means 'play well' in Danish. Still has no real plural form, but it doesn't mean 'I build' in any language I know of. Correct me if I'm wrong, though.

Link to comment
Share on other sites

Nice ship, but Lego means 'I build', and therefore has no plural form. (say : " Lego bricks" ;-) )

Also, I built a small vehicle with a claw on an articulated arm, and every time it dropped something it had picked up, the entire arm mechanism ceased to function. As sirkut says, he has told everyone not to do this, although speaking of intuitive design, every person who first gets hold of IR would try to do something like this, discover the issue, try to find out what was wrong and then discover that docking ports of any sort and IR don't mix, wouldn't they :rolleyes: .

I've highly debated on preventing docking ports to even connect to certain IR parts to prevent it from even happening but some have said to not do that. Can't win.

Link to comment
Share on other sites

sirkut: isn't the weirdness caused by the parent and child segments getting messed up on docking and undocking? If so, the solution would be to refigure which part should be parent and which should be child whenever the vessel is modified. Parts know both their parent and their children (via obviously named fields), so it shouldn't be too difficult.

Link to comment
Share on other sites

I've highly debated on preventing docking ports to even connect to certain IR parts to prevent it from even happening but some have said to not do that. Can't win.

I would. If the problem cannot (or will not) be solved at any time in the future, you could certainly implement this, although attaching an octagonal strut or indeed any other part to an IR part would circumvent this wouldn't it? Unless you could search up the tree for any parent which is part of the IR tree. The easiest solution would be to write an addendum in all IR parts which simply says

"Docking ports and klaws attached directly or indirectly put too much stress on the intricate structure of robotic parts and will break them. You have been warned"

Problem solved right? :)

note: I will have to try this with a KAS winch on the end of an IR arm and plug the hook into a radial coupler on something in 'docked' form, to see if the same thing happens. I did build such a device which unfolded from a Universal Storage bay on a recent craft but did not on any occasion connect it to anything as 'docked' (yet)

'Lego' is a portmanteau of 'leg godt' which means 'play well' in Danish. Still has no real plural form, but it doesn't mean 'I build' in any language I know of. Correct me if I'm wrong, though.

Lego is Latin for 'I build', or 'I construct'. Wikipedia states that a portmanteau of a Danish term means to 'play well', which I did not know until now. The point is that the plural of 'Lego', as in pieces of Lego, or Lego bricks, Lego models, Lego houses etcetera, is 'Lego'

Edited by Stephanie the Viking
Link to comment
Share on other sites

Lego is Latin for 'I build', or 'I construct'. Wikipedia states that a portmanteau of a Danish term means to 'play well', which I did not know until now. The point is that the plural of 'Lego', as in pieces of Lego, or Lego bricks, Lego models, Lego houses etcetera, is 'Lego'

Without wishing to derail the thread too much, Latin for 'I build' is 'aedifico' (or ecficio, creo, fabrico, ecfio etc) and while 'lego' is a Latin word, it means 'I read' in English. 'Lego' does not mean anything close to 'I build' in Latin. But yes, Lego is the singular and plural form.

Also, sirkut, I second the recommendation to disabling attaching docking ports to robotic parts. Although then, you'd get people asking why they don't attach so instead of you having to say 'don't attach them', you get to say 'that's intended behaviour'. Fun times either way, but at least you wouldn't get any broken vessels.

Edited by ObsessedWithKSP
Link to comment
Share on other sites

Although then, you'd get people asking why they don't attach so instead of you having to say 'don't attach them', you get to say 'that's intended behaviour'.

If you put the text in the part saying not to do it, in a 'this is supposed to happen' way as suggested rather than a 'there is a flaw' sort of way, you'd never have to explain anything again.

also this

http://puu.sh/ba4ZI/14d557709e.png

Translations from Latin to English as from english to many other languages are almost never exact, as 'I construct' can mean 'I created, I imagined, I prophesized, I have ruthlessly manipulated, I have built' - for example when somebody 'builds a company', they do not use bricks. Ergo the translation of aedifico, meaning to literally build by stacking objects differs from the translation of 'lego', meaning 'to put together a finished vision using appropriate methods'. What this means is that we are both correct, although my original assertion that the name comes from a Latin root is indeed incorrect.

Edited by Stephanie the Viking
Link to comment
Share on other sites

Lego is Latin for 'I build', or 'I construct'. Wikipedia states that a portmanteau of a Danish term means to 'play well', which I did not know until now. The point is that the plural of 'Lego', as in pieces of Lego, or Lego bricks, Lego models, Lego houses etcetera, is 'Lego'

What ObsessedWithKSP said, plus: It sounds like an urban legend to explain the Lego name. In any case, the word has been nominalized in American English, so it's completely standard to use the normal plural suffix. I've even found a citation for "legos" in the British National Corpus. Also, notice the lack of citation in your link. "Lego" can mean "assemble" as in "convene," not "build."

Now, back on topic...

sirkut: isn't the weirdness caused by the parent and child segments getting messed up on docking and undocking? If so, the solution would be to refigure which part should be parent and which should be child whenever the vessel is modified. Parts know both their parent and their children (via obviously named fields), so it shouldn't be too difficult.

This has been my impression, too. Looking at the save structure, KSP definitely reorganizes crafts when you dock and undock them, which can cause similar self-destruction issues even with stock parts. I think it's more prevalent with IR parts because of the way they move the parent & child parts' locations. Since I haven't touched plugin coding, I don't know how difficult it would be to fix/workaround.

If you think it's less work to disallow IR parts+docking ports than keep reminding people, go ahead with it. I don't expect anyone to read part descriptions, though. A popup might work.

Link to comment
Share on other sites

If you put the text in the part saying not to do it, in a 'this is supposed to happen' way as suggested rather than a 'there is a flaw' sort of way, you'd never have to explain anything again.

It's cute you think people read. Seriously though, the amount of times sirkut has had to say 'don't attach docking ports to IR parts because they break things' despite the OP stating

"Things to remember and future plans
1. Do not dock two crafts together with docking ports attached to pistons. Sure it's cute but it will screw up one of your craft's piston and will do really crazy things. It's a bug, I know about it."

does not fill me with hope that people will read the part description or understand what it means.

And whoever wrote that is wrong - granted, 'ligÃ…Â' means 'I bind' or 'I unite' etc so that is probably where the confusion comes from, but not 'lego'. That really does mean 'I read'.

Edited by ObsessedWithKSP
Link to comment
Share on other sites

I've highly debated on preventing docking ports to even connect to certain IR parts to prevent it from even happening but some have said to not do that. Can't win.

Do you have a full list of restrictions wrt docking ports and IR parts? The OP simply states

Do not dock two crafts together with docking ports attached to pistons. Sure it's cute but it will screw up one of your craft's piston and will do really crazy things. It's a bug, I know about it.

I'm curious as I'm currently facing a different docking issue but will soon be venturing back into the world of IR.

As for "preventing docking ports from connecting to certain IR parts", this sounds neither fun nor very Kerbal. If a set of restrictions can be worked out, just scan for them on the Launch Pad and set part.BigBaddaBoom = true, or whatever it is you youngsters do these days to blow stuff up :) Very Kerbal, very obvious, almost impossible to circumvent and best of all, fun :)

Link to comment
Share on other sites

t's cute you think people read.

Don't they? Must just be me then, reading the part descriptions is part of the experience for me, but then I'm a little odd. Maybe you're right.

I posted a screenshot from the Lego website... If they don't know what their own name means then we are discussing a phantom.

Link to comment
Share on other sites

Do you have a full list of restrictions wrt docking ports and IR parts?

I've certainly caused those issues with an extendable arm formed from hinges, not pistons. You can safely assume Bad ThingsTM will happen any time you displace a docking clamp or claw using IR parts. Probably also true for KAS parts, though it's much harder to accomplish.

Link to comment
Share on other sites

sirkut: isn't the weirdness caused by the parent and child segments getting messed up on docking and undocking? If so, the solution would be to refigure which part should be parent and which should be child whenever the vessel is modified. Parts know both their parent and their children (via obviously named fields), so it shouldn't be too difficult.

I'm sure it is but I haven't figured that out yet. "shouldn't be too difficult" is all relative. :) If you asked me 3 weeks ago if I could get parts to move in the VAB/SPH I would have said it was hard but now that I figured out the stupid rotational issue with Unity importing blender(btw this bit of code is AWESOME for fixing my issue http://wiki.unity3d.com/index.php/FixBlenderImportRotationhttp://wiki.unity3d.com/index.php/FixBlenderImportRotation it isn't so hard now.

Link to comment
Share on other sites

sirkut, I wanted to thank you again for your work on this amazing mod I seriously don't know what I would do without it (how would my satellites fold up into a nice fairing sized shape??).

Link to comment
Share on other sites

@sparton646:

That's an odd bug. I have no idea how that happened, but there is some information you can provide to help narrow it down.

This is important information to include in any support request:

  • Your KSP version
  • Your mods and versions (if any)
  • Your Operating System and version
  • Steps to cause the problem
  • Cause the problem, then quit KSP and find your output log:
    • Windows (32 bit): KSP_win\KSP_Data\output_log.txt
    • Windows (64 bit): KSP_win64\KSP_x64_DATA\output_log.txt
    • Mac OS X: Open Console, find Unity on the left side, and click on Player.log. It's also located at ~/Library/Logs/Unity/Player.log.
    • Linux: ~/.config/unity3d/Squad/Kerbal\ Space\ Program/Player.log

Link to comment
Share on other sites

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