Jump to content

[Minimum KSP version - 1.11] Kerbal Attachment System (KAS) v1.12


IgorZ

Recommended Posts

The Breaking Ground DLC is about to be released.  It includes an inventory system in the stock game.  I wonder how that may impact the need for KIS.  If KIS is no longer used, can we still use KAS?  I'm hoping KIS is not needed for KAS.

Link to comment
Share on other sites

@IgorZ I'll confirm KAS has issues with 1.7.1. It seems that 1.7.1 broke being able to grab connectors. The winches, cable reel and RTS-1 fail when you grab the connector. The TJ struts still work since the Kerbal doesn't grab them in the same manner as the other parts. Since this normally works the KAS device thinks the Kerbal has the connector and shows you drop connector message; Press 'y' to drop and highlights available connectors to connect, but this doesn't work and KAS is left in an odd state.

You get the following error when you try to grab a connector:

Spoiler

[LOG 13:28:52.919] [Part:KAS.RTS1 (id=F1255903841)#Module:0] Linking to target: [Part:kerbalEVA (Bill Kerman) (id=F840144035)#Module:12], actor=Player

[EXC 13:28:52.922] InvalidOperationException: Transition AcceptingLinks=>Locked is not allowed
	KSPDev.ProcessingUtils.SimpleStateMachine`1[KASAPIv2.LinkState].SetState (Nullable`1 newState)
	KSPDev.ProcessingUtils.SimpleStateMachine`1[KASAPIv2.LinkState].set_currentState (Nullable`1 value)
	KAS.AbstractLinkPeer.SetLinkState (LinkState state)
	KAS.AbstractLinkPeer.OnKASLinkedState (IKasLinkEvent info, Boolean isLinked)
	KAS.KASLinkTargetBase+<>c__DisplayClassb.<OnPeerChange>b__7 (ILinkStateEventListener x)
	System.Collections.Generic.List`1[KASAPIv2.ILinkStateEventListener].ForEach (System.Action`1 action)
	KAS.KASLinkTargetBase.OnPeerChange (ILinkPeer oldPeer)
	KAS.AbstractLinkPeer.SetOtherPeer (ILinkPeer peer)
	KAS.KASLinkTargetBase.set_linkSource (ILinkSource value)
	KAS.KASLinkSourceBase.LogicalLink (ILinkTarget target)
	KAS.KASLinkSourcePhysical.LogicalLink (ILinkTarget target)
	KAS.KASLinkSourceBase.LinkToTarget (ILinkTarget target)
	KAS.KASLinkSourceBase.LinkToTarget (LinkActorType actor, ILinkTarget target)
	KAS.KASLinkSourcePhysical.GrabConnectorEvent ()
	BaseEvent.Invoke ()
	UIPartActionButton.OnClick ()
	UnityEngine.Events.InvokableCall.Invoke ()
	UnityEngine.Events.UnityEvent.Invoke ()
	UnityEngine.UI.Button.Press ()
	UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData)
	UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData)

	UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor)

	UnityEngine.EventSystems.EventSystem:Update()

[LOG 13:29:20.419] [Kopernicus] No new objects this time. (Probablility is 90%)

[ERR 13:29:40.726] [Part:KAS.RTS1 (id=F1255903841)#Module:0] Cannot break link in state: Linking

 

 

Edited by Tonka Crash
Link to comment
Share on other sites

Looks interesting. The state transition reported in the log is not supposed to happen under the circumstances. I'll be out of town for the weekend, so will be able to take a look only on Monday.

Link to comment
Share on other sites

32 minutes ago, snakeru said:

Just BG. I have just finished towing stuff around and quit to main menu specifically to answer your question. The version is 1.7.1.

Okay, that's a interesting bit of info. I moved my Serenity folder out of SquadExpansions to the Desktop and KAS works. BUT, I found a new bug. After testing KAS on the launchpad I reverted and now selecting anything in the VAB throws an exception:

[EXC 10:59:23.846] NullReferenceException: Object reference not set to an instance of an object
	EditorLogic.OnPodSpawn (.AvailablePart pod)
	EditorLogic.SpawnPart (.AvailablePart partInfo)
	EditorLogic.OnPartListIconTap (.AvailablePart p)
	KSP.UI.Screens.EditorPartList.TapIcon (.AvailablePart part)
	KSP.UI.Screens.EditorPartIcon.MouseInput_SpawnPart ()
	UnityEngine.Events.InvokableCall.Invoke ()
	UnityEngine.Events.UnityEvent.Invoke ()
	UnityEngine.UI.Button.Press ()
	UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData)
	UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData)
	UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor)
	UnityEngine.EventSystems.EventSystem:Update()

Back out of the Space Center and back in and go back into the VAB and it works again until I revert. Time to try with a clean install.

Link to comment
Share on other sites

Clean install of 1.7.1 and no expansion packs with CKAN install of @IgorZ mods and Module Manager (MM isn't set as a KIS/KAS dependency in CKAN)

Spoiler

Environment Info
Win32NT 7FFFFFFFFFFFFFFF  Args: KSP_x64.exe -popupwindow

Mod DLLs found:
Stock assembly: Assembly-CSharp v0.0.0.0
ModuleManager v4.0.2.0
EasyVesselSwitch v1.11.7052.36539 / v1.11 for KSP v1.7+
KSPDev_Utils.1.2 v1.2.7031.33522 / v1.2 for KSP v1.6+
KAS-API-v2 v2.0.7037.1430 / vKAS API v2
KAS v1.3.7050.3681 / v1.3-pre for KSP 1.6+
KSPDev_Utils.1.2 v1.2.7031.33522 / v1.2 for KSP v1.6+
KIS v1.22.7090.200 / v1.22 for KSP 1.7+
KSPDev_Utils.1.2 v1.2.7031.33522 / v1.2 for KSP v1.6+

Folders and files in GameData:
EasyVesselSwitch
KAS
KIS
Stock folder: Squad

ModuleManager.4.0.2.dll
ModuleManager.ConfigCache
ModuleManager.ConfigSHA
ModuleManager.Physics
ModuleManager.TechTree

 

Result is the behavior I noticed above. KIS/KAS works, but reverting breaks selecting parts in the VAB until you go to Spacecenter and back into VAB. Stock game with no mods doesn't have a problem reverting.

Edited by Tonka Crash
Link to comment
Share on other sites

1 hour ago, zer0Kerbal said:

KIS has a really nice debug ability(I saw it in this vid - partAlignToolKey) - does KAS?

I ask because it would be very helpful in a project I have going on.

Thank you in advance.

There is a setting in KAS settings file:

    Debug
    {
        partAlignToolKey = // Set to a keyboard shortcut. E.g. "&L" for Alt+L.
    }


 

Edited by IgorZ
Link to comment
Share on other sites

am trying to locate where KAS debug dumps to?

am hoping it writes all the data so can easily xfer it into the part.

log - so just copied and paste from the game into part.cfg - now for the other part...

Edited by zer0Kerbal
Link to comment
Share on other sites

Does anyone know how to quickly replace all legacy KAS parts with the new ones? I really would like to update KAS and KIS to their latest versions, but I have ~10 crafts in space with legacy parts on them, including many KIS containers filled with them. Replacing them manually would take ages.

Would it be possible to do this by editing a .sfs file? (Editing as in replacing every instance of the legacy part's ID with the new part's ID.)

Link to comment
Share on other sites

so am writting a patch for several parts - essentially want to have two versions of the patch - one for old KAS one for new KAS.

 

// OLD KAS
@PART[billsrebob]:HAS[???]:NEEDS[KAS/LEGACY|KAS/Parts/hook_anchor/]:LAST
{ // does old KAS things}

// NEW KAS
@PART[billsrebob]:HAS[???]:NEEDS[KAS],!KAS/LEGACY|!KAS/Parts/hook_anchor/]:LAST
{ // does NEW KAS things}

 

is there a simple way to do this? a way for MM to know the difference?

Link to comment
Share on other sites

25 minutes ago, zer0Kerbal said:

so am writting a patch for several parts - essentially want to have two versions of the patch - one for old KAS one for new KAS.

 

// OLD KAS
@PART[billsrebob]:HAS[???]:NEEDS[KAS/LEGACY|KAS/Parts/hook_anchor/]:LAST
{ // does old KAS things}

// NEW KAS
@PART[billsrebob]:HAS[???]:NEEDS[KAS],!KAS/LEGACY|!KAS/Parts/hook_anchor/]:LAST
{ // does NEW KAS things}

 

is there a simple way to do this? a way for MM to know the difference?

Quit trying to support legacy KAS on new KAS?  Or just write two versions, one named KAS.cfg, the other KAS_Legacy.txt. Let the user decide if he needs the legacy add-ons and he can rename the file. The part names are unique between the two so patches don't really need to smart enough to know which KAS is installed if you address them by name.

Link to comment
Share on other sites

1 hour ago, Tonka Crash said:

Quit trying to support legacy KAS on new KAS?  Or just write two versions, one named KAS.cfg, the other KAS_Legacy.txt. Let the user decide if he needs the legacy add-ons and he can rename the file. The part names are unique between the two so patches don't really need to smart enough to know which KAS is installed if you address them by name.

I like automated. So you install a mod from CKAN, are running RO or whatever that is a couple of versions behind; plus I like the challenge which pushes me to learn and improve.

There is also the issue of overwriting by re-installations and updates. This way, it is a not a concern.

Thanks for the reply, will take your suggestion under advisement.

Edited by zer0Kerbal
Link to comment
Share on other sites

so am I hearing right, KAS isn't working right in 1.7.1 currently?  i was trying real hard to connect an RT-1 to one of those connector ports (the new one) and it just.. would not.  so... just wait for the update, then?

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...