Jump to content

[1.9.*, 1.10.*, 1.11.*] DockRotate - lightweight robotics - rotational control on docking ports (plus NodeRotate, make any part rotate)


peteletroll

Recommended Posts

17 hours ago, Daniel Prates said:

Ugh, here we go again .... another version, another bunch of mods screwed up. 

This cycle is not unique to Kerbal Space Program. There are other games where each time an update/DLC drops, the mods installed also have to be updated. We are lucky that we have such a great bunch of mod makers, such as @peteletroll, who work endlessly to keep their mods updated - and they update them fairly quickly. :)

Link to comment
Share on other sites

4 hours ago, adsii1970 said:

This cycle is not unique to Kerbal Space Program. There are other games where each time an update/DLC drops, the mods installed also have to be updated. We are lucky that we have such a great bunch of mod makers, such as @peteletroll, who work endlessly to keep their mods updated - and they update them fairly quickly. :)

Hear hear!

Link to comment
Share on other sites

  • 4 weeks later...

After some testing in 1.12, it looks like it's working. I'll release a recompiled version soon™.

It has some problems when used together with the new stock rotation: if you rotate with DR then with stock, or vice versa, you get weird results. So, until I find a workaround, please use just one of them at a time!

Link to comment
Share on other sites

I'm having the mod report a bad docking rotation on a connection I haven't used rotation on. I also cannot undock or decouple these docking ports through the game PAW.

Attached log:

[LOG 20:47:00.236] [DR:286718] P:dockingPort2:170577446:"Docked (dockee)":Host.getDockedNode(): other is P:dockingPort2:1884968858:"Docked (docker)":Target
[LOG 20:47:00.236] [DR:286718]     ... .getDockingJoint(): to parent PJ:-7970304:dockingPort2:170577446>dockingPort2:1884968858
[LOG 20:47:00.236] [DR:286718] [DockingStateChecker] Check report:
################################################################################
checking node dockingPort2-170577446 "Docked (dockee)"
      has docking joint -7970304, dockingPort2-170577446 > dockingPort2-1884968858
      other is dockingPort2-1884968858 "Docked (docker)"
      *** null vesselInfo ***
################################################################################
[EXC 20:47:09.936] NullReferenceException: Object reference not set to an instance of an object
	Part.Undock (DockedVesselInfo newVesselInfo) (at <06f13185617646e5bc801baeab53ab75>:0)
	ModuleDockingNode.Undock () (at <06f13185617646e5bc801baeab53ab75>:0)
	ModuleDockingNode.Undock () (at <06f13185617646e5bc801baeab53ab75>:0)
	BaseEvent.Invoke () (at <06f13185617646e5bc801baeab53ab75>:0)
	UIPartActionButton.OnClick () (at <06f13185617646e5bc801baeab53ab75>:0)
	UnityEngine.Events.InvokableCall.Invoke () (at <5aeafee3fea24f37abd1315553f2cfa6>:0)
	UnityEngine.Events.UnityEvent.Invoke () (at <5aeafee3fea24f37abd1315553f2cfa6>:0)
	UnityEngine.UI.Button.Press () (at <8485d97123094db9883b53b3349c2a3b>:0)
	UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at <8485d97123094db9883b53b3349c2a3b>:0)
	UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at <8485d97123094db9883b53b3349c2a3b>:0)
	UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at <8485d97123094db9883b53b3349c2a3b>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.EventSystems.EventSystem:Update()

Dock Rotate version 1.11.2.54, KSP version 1.11.2

Link to comment
Share on other sites

7 hours ago, peteletroll said:

Thanks for your report, @jordanjay29. Could you please try the DockRotate.dll you can download at the following link?

https://drive.google.com/file/d/1URc6KgWP55BRsDXIGpklkqGQzR9g2uWY/view?usp=sharing

Let me know if this works, and send logs!

It did!

Trying to clean up the log for just the relevant DR parts for this. I added the DLL and started KSP, went straight to the ship right away.

[LOG 17:30:08.409] Unpacking Excelsior Interplanetary Explorer
[LOG 17:30:10.099] [DR:d:106320] JointMotion.get(): created JM:-2736688:dockingPort2:170577446>dockingPort2:1884968858
[LOG 17:30:10.100] [DR:d:106320] MDR:dockingPort2:170577446.doSetup(): joint PJ:-2716262:dockingPort2:170577446>dockingPort2:1884968858
[LOG 17:30:10.100] [DR:d:106320] [ModuleDockingNode] Part: dockingPort2-116224224 FSM Start State Docked (dockee) in ModuleDockRotate.doSetup(170577446)
[LOG 17:30:10.102] [DR:d:106320] [DockingStateChecker] loading D:\SteamLibrary\steamapps\common\Kerbal Space Program\GameData\DockRotate\PluginData\DockingStateChecker.cfg
[LOG 17:30:10.123] [DR:d:106320] [DockingStateChecker] loaded
DockingStateChecker:
	NodeState:state=Ready:hasJoint=False:isSameVessel=False
	NodeState:state=Acquire:hasJoint=False:isSameVessel=False
	NodeState:state=Acquire (dockee):hasJoint=False:isSameVessel=False
	NodeState:state=Disengage:hasJoint=False:isSameVessel=False
	NodeState:state=Disabled:hasJoint=False:isSameVessel=False
	NodeState:state=Docked (docker):hasJoint=True:isSameVessel=False
	NodeState:state=Docked (dockee):hasJoint=True:isSameVessel=False
	NodeState:state=Docked (dockee):hasJoint=True:isSameVessel=True
	NodeState:state=Docked (same vessel):hasJoint=True:isSameVessel=True
	NodeState:state=PreAttached:hasJoint=True:isSameVessel=False
	NodeState:state=PreAttached:hasJoint=False:isSameVessel=False
	JointState:hostState=PreAttached:targetState=PreAttached:isSameVessel=False
	JointState:hostState=Docked (docker):targetState=Docked (dockee):isSameVessel=False
	JointState:hostState=Docked (dockee):targetState=Docked (docker):isSameVessel=False
	JointState:hostState=Docked (same vessel):targetState=Docked (dockee):isSameVessel=True
	JointState:hostState=Docked (dockee):targetState=Docked (dockee):isSameVessel=False:hostFixTo=Docked (docker)
	JointState:hostState=Docked (same vessel):targetState=Docked (dockee):isSameVessel=False:hostFixTo=Docked (docker)
	JointState:hostState=Docked (docker):targetState=Docked (same vessel):isSameVessel=False:targetFixTo=Docked (dockee)
	JointState:hostState=Docked (dockee):targetState=Docked (same vessel):isSameVessel=False:targetFixTo=Docked (docker)
	JointState:hostState=Disengage:targetState=Disengage:isSameVessel=False:hostFixTo=Docked (docker):targetFixTo=Docked (dockee)
	JointState:hostState=Docked (docker):targetState=Ready:isSameVessel=False:targetFixTo=Docked (dockee)
	JointState:hostState=Docked (same vessel):targetState=Ready:isSameVessel=True:targetFixTo=Docked (dockee)

[LOG 17:30:10.124] [DR:d:106320] MDR:dockingPort2:1884968858.doSetup(): joint PJ:-2716262:dockingPort2:170577446>dockingPort2:1884968858
[LOG 17:30:10.124] [DR:d:106320] [ModuleDockingNode] Part: dockingPort2-2412613452 FSM Start State Docked (docker) in ModuleDockRotate.doSetup(1884968858)
[LOG 17:30:10.125] [DR:d:106320] JointMotion.get(): created JM:-2736690:dockingPort2:1207055305>sspx-docking-125-1:2978006756
[LOG 17:30:10.125] [DR:d:106320] JM:-2736690:dockingPort2:1207055305>sspx-docking-125-1:2978006756.updateOrgRot(): 89.99987°
[LOG 17:30:10.125] [DR:d:106320] MDR:dockingPort2:1207055305.doSetup(): joint PJ:-2715384:dockingPort2:1207055305>sspx-docking-125-1:2978006756
[LOG 17:30:10.125] [DR:d:106320] [ModuleDockingNode] Part: dockingPort2-2961055181 FSM Start State Docked (docker) in ModuleDockRotate.doSetup(1207055305)
[LOG 17:30:10.125] [DR:d:106320] JointMotion.get(): created JM:-2736692:dockingPort2:3538428525>sspx-docking-125-1:1317445948
[LOG 17:30:10.125] [DR:d:106320] JM:-2736692:dockingPort2:3538428525>sspx-docking-125-1:1317445948.updateOrgRot(): -89.99905°
[LOG 17:30:10.125] [DR:d:106320] MDR:dockingPort2:3538428525.doSetup(): joint PJ:-2703202:dockingPort2:3538428525>sspx-docking-125-1:1317445948
[LOG 17:30:10.126] [DR:d:106320] [ModuleDockingNode] Part: dockingPort2-2305866221 FSM Start State Docked (docker) in ModuleDockRotate.doSetup(3538428525)
[LOG 17:30:10.126] [DR:d:106320] MDR:sspx-docking-125-1:2978006756.doSetup(): joint PJ:-2715384:dockingPort2:1207055305>sspx-docking-125-1:2978006756
[LOG 17:30:10.126] [DR:d:106320] [ModuleDockingNode] Part: sspx-docking-125-1-3440881293 FSM Start State Docked (dockee) in ModuleDockRotate.doSetup(2978006756)
[LOG 17:30:10.127] [DR:d:106320] MDR:sspx-docking-125-1:1317445948.doSetup(): joint PJ:-2703202:dockingPort2:3538428525>sspx-docking-125-1:1317445948
[LOG 17:30:10.127] [DR:d:106320] [ModuleDockingNode] Part: sspx-docking-125-1-2440602407 FSM Start State Docked (dockee) in ModuleDockRotate.doSetup(1317445948)
[LOG 17:30:10.128] [DR:d:106320] MDR:sspx-docking-125-1:2331159979.doSetup(): joint null
[LOG 17:30:10.128] [DR:d:106320] [ModuleDockingNode] Part: sspx-docking-125-1-661636281 FSM Start State Ready in ModuleDockRotate.doSetup(2331159979)

[LOG 17:30:11.414] [DR:d:106325] skipping analysis, another pending
[LOG 17:30:11.414] [DR:d:106325] skipping analysis, another pending
[LOG 17:30:11.414] [DR:d:106325] skipping analysis, another pending
[LOG 17:30:11.415] [DR:d:106325] skipping analysis, another pending
[LOG 17:30:11.415] [DR:d:106325] skipping analysis, another pending
[LOG 17:30:11.415] [DR:d:106325] skipping analysis, another pending
[LOG 17:30:11.415] [DR:d:106325] analyzing incoherent states in Excelsior Interplanetary Explorer
[LOG 17:30:11.439] [DR:d:106325] [DockingStateChecker] Check report:
################################################################################
checking vessel Excelsior Interplanetary Explorer
checking node sspx-docking-125-1-1317445948 "Docked (dockee)"
      has docking joint -2703202, dockingPort2-3538428525 > sspx-docking-125-1-1317445948
      other is dockingPort2-3538428525 "Docked (docker)"
checking node sspx-docking-125-1-2331159979 "Ready"
checking node sspx-docking-125-1-2978006756 "Docked (dockee)"
      has docking joint -2715384, dockingPort2-1207055305 > sspx-docking-125-1-2978006756
      other is dockingPort2-1207055305 "Docked (docker)"
checking node dockingPort2-3538428525 "Docked (docker)"
      has docking joint -2703202, dockingPort2-3538428525 > sspx-docking-125-1-1317445948
      other is sspx-docking-125-1-1317445948 "Docked (dockee)"
      pair already checked
checking node dockingPort2-170577446 "Docked (dockee)"
      has docking joint -2716262, dockingPort2-170577446 > dockingPort2-1884968858
      other is dockingPort2-1884968858 "Docked (docker)"
      *** null vesselInfo ***
      other vesselInfo is DVI[Debris:1884968858:"Orbital Savoy + Exploration Suite Debris"]
      fixed vesselInfo to DVI[Station:508817323:"sspx-core-25-1 (Excelsior Interplanetary Explorer)"]
checking node dockingPort2-1207055305 "Docked (docker)"
      has docking joint -2715384, dockingPort2-1207055305 > sspx-docking-125-1-2978006756
      other is sspx-docking-125-1-2978006756 "Docked (dockee)"
      pair already checked
checking node dockingPort2-1884968858 "Docked (docker)"
      has docking joint -2716262, dockingPort2-170577446 > dockingPort2-1884968858
      other is dockingPort2-170577446 "Docked (dockee)"
      pair already checked
################################################################################

[LOG 17:32:43.833] [DR:d:108163] P:dockingPort2:170577446:"Docked (dockee)":None: dockedPartUId = 1884968858, but no joint
[LOG 17:32:43.833] [DR:d:108163]     ... : zeroing dockedPartUId = 1884968858
[LOG 17:32:43.833] [DR:d:108163] MDR:dockingPort2:170577446.doSetup(): joint null
[LOG 17:32:43.833] [DR:d:108163] [ModuleDockingNode] Part: dockingPort2-116224224 FSM Start State Docked (dockee) in ModuleDockRotate.doSetup(170577446)
[LOG 17:32:43.833] [DR:d:108163] MDR:dockingPort2:170577446: new docked state False
[LOG 17:32:43.834] [DR:d:108163] P:dockingPort2:1884968858:"Docked (docker)":None: dockedPartUId = 170577446, but no joint
[LOG 17:32:43.834] [DR:d:108163]     ... : zeroing dockedPartUId = 170577446
[LOG 17:32:43.834] [DR:d:108163] MDR:dockingPort2:1884968858.doSetup(): joint null
[LOG 17:32:43.834] [DR:d:108163] [ModuleDockingNode] Part: dockingPort2-2412613452 FSM Start State Docked (docker) in ModuleDockRotate.doSetup(1884968858)
[LOG 17:32:43.834] [DR:d:108163] MDR:dockingPort2:1884968858: new docked state False
[LOG 17:32:43.835] [DR:d:108163] MDR:dockingPort2:1207055305.doSetup(): joint PJ:-2715384:dockingPort2:1207055305>sspx-docking-125-1:2978006756
[LOG 17:32:43.835] [DR:d:108163] [ModuleDockingNode] Part: dockingPort2-2961055181 FSM Start State Docked (docker) in ModuleDockRotate.doSetup(1207055305)
[LOG 17:32:43.835] [DR:d:108163] MDR:dockingPort2:3538428525.doSetup(): joint PJ:-2703202:dockingPort2:3538428525>sspx-docking-125-1:1317445948
[LOG 17:32:43.835] [DR:d:108163] [ModuleDockingNode] Part: dockingPort2-2305866221 FSM Start State Docked (docker) in ModuleDockRotate.doSetup(3538428525)
[LOG 17:32:43.836] [DR:d:108163] MDR:sspx-docking-125-1:2978006756.doSetup(): joint PJ:-2715384:dockingPort2:1207055305>sspx-docking-125-1:2978006756
[LOG 17:32:43.836] [DR:d:108163] [ModuleDockingNode] Part: sspx-docking-125-1-3440881293 FSM Start State Docked (dockee) in ModuleDockRotate.doSetup(2978006756)
[LOG 17:32:43.836] [DR:d:108163] MDR:sspx-docking-125-1:1317445948.doSetup(): joint PJ:-2703202:dockingPort2:3538428525>sspx-docking-125-1:1317445948
[LOG 17:32:43.836] [DR:d:108163] [ModuleDockingNode] Part: sspx-docking-125-1-2440602407 FSM Start State Docked (dockee) in ModuleDockRotate.doSetup(1317445948)
[LOG 17:32:43.837] [DR:d:108163] MDR:sspx-docking-125-1:2331159979.doSetup(): joint null
[LOG 17:32:43.837] [DR:d:108163] [ModuleDockingNode] Part: sspx-docking-125-1-661636281 FSM Start State Ready in ModuleDockRotate.doSetup(2331159979)

[LOG 17:32:43.847] [ModuleDockingNode]: Part:Clamp-O-Tron Docking Port-116224224 FSM Event Called, Event:Undock
[LOG 17:32:43.848] [ModuleDockingNode]: Part:Clamp-O-Tron Docking Port-116224224 FSM State Changed, Old State:Docked (dockee) New State:Disengage Event:Undock
[LOG 17:32:43.848] [ModuleDockingNode]: Part:Clamp-O-Tron Docking Port-2412613452 FSM Event Called, Event:Undock
[LOG 17:32:43.848] [ModuleDockingNode]: Part:Clamp-O-Tron Docking Port-2412613452 FSM State Changed, Old State:Docked (docker) New State:Disengage Event:Undock

 

There was an exception error, but I'm not 100% that was related to this mod (I see ContractConfigurator grumbling but no DR). Added it in separately just in case:

[LOG 17:32:33.481] Game State Saved to saves/Catty Career/quicksave
[LOG 17:32:35.349] Game State Saved to saves/Catty Career/persistent
[ERR 17:32:43.465] Exception handling event onVesselRenamed in class TitleTracker:System.ArgumentNullException: Value cannot be null.
Parameter name: value
  at System.String.IndexOf (System.String value, System.Int32 startIndex, System.Int32 count, System.StringComparison comparisonType) [0x00003] in <ad04dee02e7e4a85a1299c7ee81c79f6>:0 
  at System.String.IndexOf (System.String value, System.StringComparison comparisonType) [0x00009] in <ad04dee02e7e4a85a1299c7ee81c79f6>:0 
  at System.String.Contains (System.String value) [0x00000] in <ad04dee02e7e4a85a1299c7ee81c79f6>:0 
  at ContractConfigurator.TitleTracker.OnVesselRename (GameEvents+HostedFromToAction`2[A,B] hft) [0x00019] in <ef0243a06f2841fe9bf57034a334902e>:0 
  at EventData`1[T].Fire (T data) [0x000b0] in <06f13185617646e5bc801baeab53ab75>:0 

[EXC 17:32:43.466] ArgumentNullException: Value cannot be null.
Parameter name: value
	System.String.IndexOf (System.String value, System.Int32 startIndex, System.Int32 count, System.StringComparison comparisonType) (at <ad04dee02e7e4a85a1299c7ee81c79f6>:0)
	System.String.IndexOf (System.String value, System.StringComparison comparisonType) (at <ad04dee02e7e4a85a1299c7ee81c79f6>:0)
	System.String.Contains (System.String value) (at <ad04dee02e7e4a85a1299c7ee81c79f6>:0)
	ContractConfigurator.TitleTracker.OnVesselRename (GameEvents+HostedFromToAction`2[A,B] hft) (at <ef0243a06f2841fe9bf57034a334902e>:0)
	EventData`1[T].Fire (T data) (at <06f13185617646e5bc801baeab53ab75>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:LogException(Exception)
	EventData`1:Fire(HostedFromToAction`2)
	Vessel:RunVesselNamingUpdates(Part, Boolean)
	Vessel:UpdateVesselNaming(Boolean)
	Vessel:OnVesselNamingVesselWasModified(Vessel)
	EventData`1:Fire(Vessel)
	Vessel:Initialize(Boolean, Boolean, Boolean, Boolean)
	Vessel:Initialize(Boolean)
	Part:Undock(DockedVesselInfo)
	ModuleDockingNode:Undock()
	ModuleDockingNode:Undock()
	BaseEvent:Invoke()
	UIPartActionButton:OnClick()
	UnityEngine.EventSystems.EventSystem:Update()
[ERR 17:32:43.483] Exception handling event onVesselRenamed in class TitleTracker:System.ArgumentNullException: Value cannot be null.
Parameter name: value
  at System.String.IndexOf (System.String value, System.Int32 startIndex, System.Int32 count, System.StringComparison comparisonType) [0x00003] in <ad04dee02e7e4a85a1299c7ee81c79f6>:0 
  at System.String.IndexOf (System.String value, System.StringComparison comparisonType) [0x00009] in <ad04dee02e7e4a85a1299c7ee81c79f6>:0 
  at System.String.Contains (System.String value) [0x00000] in <ad04dee02e7e4a85a1299c7ee81c79f6>:0 
  at ContractConfigurator.TitleTracker.OnVesselRename (GameEvents+HostedFromToAction`2[A,B] hft) [0x00019] in <ef0243a06f2841fe9bf57034a334902e>:0 
  at EventData`1[T].Fire (T data) [0x000b0] in <06f13185617646e5bc801baeab53ab75>:0 

[EXC 17:32:43.484] ArgumentNullException: Value cannot be null.
Parameter name: value
	System.String.IndexOf (System.String value, System.Int32 startIndex, System.Int32 count, System.StringComparison comparisonType) (at <ad04dee02e7e4a85a1299c7ee81c79f6>:0)
	System.String.IndexOf (System.String value, System.StringComparison comparisonType) (at <ad04dee02e7e4a85a1299c7ee81c79f6>:0)
	System.String.Contains (System.String value) (at <ad04dee02e7e4a85a1299c7ee81c79f6>:0)
	ContractConfigurator.TitleTracker.OnVesselRename (GameEvents+HostedFromToAction`2[A,B] hft) (at <ef0243a06f2841fe9bf57034a334902e>:0)
	EventData`1[T].Fire (T data) (at <06f13185617646e5bc801baeab53ab75>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:LogException(Exception)
	EventData`1:Fire(HostedFromToAction`2)
	Vessel:RunVesselNamingUpdates(Part, Boolean)
	Vessel:UpdateVesselNaming(Boolean)
	Vessel:OnVesselNamingVesselWasModified(Vessel)
	EventData`1:Fire(Vessel)
	Vessel:Initialize(Boolean, Boolean, Boolean, Boolean)
	Vessel:Initialize(Boolean)
	Part:Undock(DockedVesselInfo)
	ModuleDockingNode:Undock()
	ModuleDockingNode:Undock()
	BaseEvent:Invoke()
	UIPartActionButton:OnClick()
	UnityEngine.EventSystems.EventSystem:Update()
[ERR 17:32:43.495] Exception handling event onVesselRenamed in class TitleTracker:System.ArgumentNullException: Value cannot be null.
Parameter name: value
  at System.String.IndexOf (System.String value, System.Int32 startIndex, System.Int32 count, System.StringComparison comparisonType) [0x00003] in <ad04dee02e7e4a85a1299c7ee81c79f6>:0 
  at System.String.IndexOf (System.String value, System.StringComparison comparisonType) [0x00009] in <ad04dee02e7e4a85a1299c7ee81c79f6>:0 
  at System.String.Contains (System.String value) [0x00000] in <ad04dee02e7e4a85a1299c7ee81c79f6>:0 
  at ContractConfigurator.TitleTracker.OnVesselRename (GameEvents+HostedFromToAction`2[A,B] hft) [0x00019] in <ef0243a06f2841fe9bf57034a334902e>:0 
  at EventData`1[T].Fire (T data) [0x000b0] in <06f13185617646e5bc801baeab53ab75>:0 

[EXC 17:32:43.497] ArgumentNullException: Value cannot be null.
Parameter name: value
	System.String.IndexOf (System.String value, System.Int32 startIndex, System.Int32 count, System.StringComparison comparisonType) (at <ad04dee02e7e4a85a1299c7ee81c79f6>:0)
	System.String.IndexOf (System.String value, System.StringComparison comparisonType) (at <ad04dee02e7e4a85a1299c7ee81c79f6>:0)
	System.String.Contains (System.String value) (at <ad04dee02e7e4a85a1299c7ee81c79f6>:0)
	ContractConfigurator.TitleTracker.OnVesselRename (GameEvents+HostedFromToAction`2[A,B] hft) (at <ef0243a06f2841fe9bf57034a334902e>:0)
	EventData`1[T].Fire (T data) (at <06f13185617646e5bc801baeab53ab75>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:LogException(Exception)
	EventData`1:Fire(HostedFromToAction`2)
	Vessel:RunVesselNamingUpdates(Part, Boolean)
	Vessel:UpdateVesselNaming(Boolean)
	Vessel:OnVesselNamingVesselWasModified(Vessel)
	EventData`1:Fire(Vessel)
	Vessel:Initialize(Boolean, Boolean, Boolean, Boolean)
	Vessel:Initialize(Boolean)
	Part:Undock(DockedVesselInfo)
	ModuleDockingNode:Undock()
	ModuleDockingNode:Undock()
	BaseEvent:Invoke()
	UIPartActionButton:OnClick()
	UnityEngine.EventSystems.EventSystem:Update()

 

Link to comment
Share on other sites

  • 2 weeks later...
On 6/28/2021 at 5:06 AM, peteletroll said:

After some testing in 1.12, it looks like it's working. I'll release a recompiled version soon™.

It has some problems when used together with the new stock rotation: if you rotate with DR then with stock, or vice versa, you get weird results. So, until I find a workaround, please use just one of them at a time!

Can't modify the stock mechanism freeing it to rotate freely?

Link to comment
Share on other sites

8 hours ago, peteletroll said:

New release!

This will work only on 1.12.x.

@jordanjay29's bug is fixed in this release.

Also, DockRotate won't accept rotation commands if stock rotation is being used: in other words, if stock rotation angle is not zero, DockRotate rotation is disabled to keep the Kraken away.

Can you explain how it works related to the new stock mechanism?

Link to comment
Share on other sites

6 hours ago, peteletroll said:

@linuxgurugamer, if you mean how do I disable DockRotate when stock rotation is used, the code is here: https://github.com/peteletroll/DockRotate/blob/e407060144d6a47467a05345482524f8bb2f452d/DockRotate/ModuleDockRotate.cs#L263

If you mean how DockRotate works in general, that's a longer answer ;-)

Actually, not looking for code.  I'm wondering from a game point of view, what the differences are between DockRotate and the new stock mechanism, and why to use one over the other

Link to comment
Share on other sites

  • 2 weeks later...
On 7/23/2021 at 4:34 PM, linuxgurugamer said:

Actually, not looking for code.  I'm wondering from a game point of view, what the differences are between DockRotate and the new stock mechanism, and why to use one over the other

The stock thing is fricking crafts up completely. This is a craft with a new docking port on it, in case you can't see the report. It has issues similar to robotic drift, but way worse. The robotic drift only affects the robotic part itself and all the children of the robotic part, when the new docking ports affect the whole vehicle

Spoiler

 


And I don't think it can be fixed by just installing Dock Rotate, because the broken code will still be there. The only way to get rid of this, is to downgrade to 1.11. 
 

Link to comment
Share on other sites

2 hours ago, dok_377 said:

And I don't think it can be fixed by just installing Dock Rotate, because the broken code will still be there. The only way to get rid of this, is to downgrade to 1.11. 

You can use KJR next and DockRotate, though. Regardless, it is something that should be fixed on KSP code side. Infernal robotics has suffered from same issue for a long time, trough several KSP version, until Rudolf Maier fixed it with new Infernal Robotic Next code. Same method should be used over stock robotics and new stock dock ports.

Link to comment
Share on other sites

49 minutes ago, kcs123 said:

You can use KJR

Unfortunately, I don't think KJR will be of any help here. It just stiffens the joints, where drift actually occurs because the game doesn't snap displaced robotic parts and docking ports back into place. It's a little bit different from just joint force. It might actually make parts drift less with stronger joints, but it will not help in the long run at all. 

49 minutes ago, kcs123 said:

Infernal robotics has suffered from same issue for a long time, trough several KSP version, until Rudolf Maier fixed it with new Infernal Robotic Next code.

Infernal Robotics itself suffers from a lot of bugs (not drifting related) as of today. But he said that he might be able to restart the development and fix the mod, which I'm counting on at this point. 

 

49 minutes ago, kcs123 said:

Same method should be used over stock robotics and new stock dock ports.

Absolutely. If there only was a way to make this happen. 

Edited by dok_377
Link to comment
Share on other sites

27 minutes ago, dok_377 said:

Unfortunately, I don't think KJR will be of any help here. It just stiffens the joints, where drift actually occurs because the game doesn't snap displaced robotic parts and docking ports back into place. It's a little bit different from just joint force. It might actually make parts drift less with stronger joints, but it will not help in the long run at all.

I tried DockRotate+KJRNext on 1.12.2 and it seemed to hold the port in position just fine.  When I had DockRotate moving the ports, it'd release it and let it sag, but once that was done KJR would come back on and it'd spring back into place.  I didn't test it *that* extensively, though, so maybe it just takes a long time for anything noticeable to happen.

Link to comment
Share on other sites

  • 3 weeks later...

I love this mod. Will DockRotate be compatible with the 'Fix Stock Docking Nodes' mod?

The dev there mentioned, "Will probably not be compatible or break other mods that use the stock ModuleDockingNode part module",  which is also briefly mentioned in the OP here, but I don't know if it'll be incompatible. 

Link to comment
Share on other sites

On 8/27/2021 at 11:56 AM, spacehex said:

Will DockRotate be compatible with the 'Fix Stock Docking Nodes' mod?

Short answer: apparently it is.

Long answer: I tested @JPLRepo's fix in my current career. It looks like DockRotate is not only compatible, but even necessary: after installing the fix, undocking becomes problematic ("Undock" button doesn't show up). DockRotate's port state checker can fix this. I still get NREs from deep inside ModuleDockingNode:

[ERR 11:40:04.455] Module ModuleDockingNodeFixed threw during OnStartFinished: System.NullReferenceException: Object reference not set to an instance o>
  at ModuleDockingNode.get_VisualTargetAngle () [0x00014] in <4a4632fe4eb0471fa0f9f87bb7432bc2>:0 
  at ModuleDockingNode.OnStartFinished (PartModule+StartState state) [0x001f9] in <4a4632fe4eb0471fa0f9f87bb7432bc2>:0 
  at Part.ModulesOnStartFinished () [0x00042] in <4a4632fe4eb0471fa0f9f87bb7432bc2>:0 

 

On 8/27/2021 at 11:56 AM, spacehex said:

I love this mod.

Thanks! Always appreciated.

 

 

Edited by peteletroll
Link to comment
Share on other sites

  • 1 month later...
9 hours ago, FilinGoy said:

Hello guys, I have problem, help me pls. I haven't button Snap
https://drive.google.com/file/d/11uoAG__ECVj8112mO1pKtW-qJ_9liRSe/view?usp=sharing

Game Ver: 1.11.2
Mode Ver: 1.12.1.55

 

Yeah I used this mod today and if felt kinda weird, as if the buttons on the UI werent where I remember them being before. Then they seemed there again, then another time they appeared partially  buried below some other buttons used something else.... something weird is happening, that is for sure. An interface thing.

Edited by Daniel Prates
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...