ImpulsiveLad / NarrowMoonChoices

0 stars 1 forks source link

[Bug] no selene moons are shown when free moon pool is empty #3

Open ajsglist opened 1 month ago

ajsglist commented 1 month ago

Hey there,

I was updating my mod pack today when I ran into the following error:

[17:09:54.2573546] [Error  : Unity Log] ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Stack trace:
System.Collections.Generic.List`1[T].get_Item (System.Int32 index) (at <787acc3c9a4c471ba7d971300105af24>:IL_0009)
Selenes_Choice.HideMoonsOnStart.ProcessData () (at <cad98e21beac4641ac12ed2fbca2e1f4>:IL_0143)
Selenes_Choice.HideMoonsOnStart+<WaitOnStart>d__5.MoveNext () (at <cad98e21beac4641ac12ed2fbca2e1f4>:IL_0040)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <e27997765c1848b09d8073e5d642717a>:IL_0026)

[17:09:54.2583559] [Error  : Unity Log] ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Stack trace:
System.Collections.Generic.List`1[T].get_Item (System.Int32 index) (at <787acc3c9a4c471ba7d971300105af24>:IL_0009)
Selenes_Choice.HideMoonsOnStart.ProcessData () (at <cad98e21beac4641ac12ed2fbca2e1f4>:IL_0143)
Selenes_Choice.HideMoonsOnStart+<WaitOnStart>d__5.MoveNext () (at <cad98e21beac4641ac12ed2fbca2e1f4>:IL_0040)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <e27997765c1848b09d8073e5d642717a>:IL_0026)

This appears to have occurred because I temporarily disabled any modded moons that were free, but selene's choice was still set up to attempt to populate these moons. The error caused no selene moons to be chosen for any of the selene categories, leaving a moon screen with my default moon behavior despite having valid choices for the other selene categories.

image

ImpulsiveLad commented 1 month ago

uhh is the image related? It seems you have no moons with a price of 0

ajsglist commented 1 month ago

as I said, the bug happens BECAUSE i have removed my modded free moons. Leading to an error causing NO selene choices to populate in the moon catalog. The picture clearly shows the moon catalog is not getting populated with ANY selene content

ajsglist commented 1 month ago

there's also another bug that occurs when you try to interact with locked moons. When querying locked content, the terminal will enter a broken state until exited/reentered (at which point it will have reset, and become usable as expected)

[18:04:36.8721943] [Info   : Unity Log] result: toilationRoute
[18:04:36.8761952] [Info   :   Console] Run text post process
[18:04:39.5427969] [Error  : Unity Log] IndexOutOfRangeException: Index was outside the bounds of the array.
Stack trace:
(wrapper dynamic-method) Terminal.DMD<Terminal::OnSubmit>(Terminal)
UnityEngine.Events.InvokableCall.Invoke () (at <e27997765c1848b09d8073e5d642717a>:IL_0010)
UnityEngine.Events.UnityEvent`1[T0].Invoke (T0 arg0) (at <e27997765c1848b09d8073e5d642717a>:IL_0049)
TMPro.TMP_InputField.SendOnEndEdit () (at <9baa8119dbcd498f902c1a92f10843c1>:IL_000E)
TMPro.TMP_InputField.ReleaseSelection () (at <9baa8119dbcd498f902c1a92f10843c1>:IL_001B)
TMPro.TMP_InputField.DeactivateInputField (System.Boolean clearSelection) (at <9baa8119dbcd498f902c1a92f10843c1>:IL_00B0)
TMPro.TMP_InputField.OnUpdateSelected (UnityEngine.EventSystems.BaseEventData eventData) (at <9baa8119dbcd498f902c1a92f10843c1>:IL_007C)
UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IUpdateSelectedHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at <17de86d66286445fa95af59fa8fa644d>:IL_0000)
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at <17de86d66286445fa95af59fa8fa644d>:IL_0067)
UnityEngine.Logger:LogException(Exception, Object)
AsyncLoggers.Wrappers.Unity.<>c__DisplayClass4_0:<LogException>b__0() (at ./src/Wrappers/Unity/AsyncLoggerWrapper.cs:36)
AsyncLoggers.Wrappers.Unity.<>c__DisplayClass28_0:<wrapCallback>b__0() (at ./src/Wrappers/Unity/AsyncLoggerWrapper.cs:136)
AsyncLoggers.Wrappers.JobWrapper:LogWorker() (at ./src/Wrappers/JobWrapper.cs:84)
AsyncLoggers.Wrappers.LogJob:Execute() (at ./src/Wrappers/JobWrapper.cs:68)
Unity.Jobs.JobStruct`1:Execute(LogJob&, IntPtr, IntPtr, JobRanges&, Int32)
ImpulsiveLad commented 1 month ago

I'm guessing this in v55? locking would be an LLL thing, LLL has not updated to v55 and I am unsure if there is enough reason for batby to port it

ajsglist commented 1 month ago

yes this is all being reported in the current build, but the latter issue exists in v50 as well and only appears to occur when Selene's Choice is enabled

there may be other ways to reproduce it without Selene's Choice if it's due to LLL, but I have never seen it in the wild in the absence of Selene's Choice mod

ImpulsiveLad commented 1 month ago

well what happens if you don't have selenes, lock a moon with either LLL or CentralConfig, and route to it?, could also be a terminal formatter issue, I know there are quite a few bugs between Selenes and TF that mrov says he will fix

ajsglist commented 1 month ago

apologies for the delayed response. In regards to your questions about the 2nd reported issue: Hiding it in the LLL config produces no errors. Unregistering it from the LLL config (which I would have naively expected to throw the same error) doesn't produce any errors or issues with the terminal. It simply says "This action was not compatible with this object"