EnemyArea / ONI-Mods

Mods für Oxygen Not Included
4 stars 5 forks source link

[Ethanol Geyser] Startup crash in June QOL release #7

Closed kaedys closed 1 year ago

kaedys commented 1 year ago

Crash on startup, before main menu. This was also reported (by another user) on the Steam page, but I'm not sure if you have notifications turned on for that. Crash log:

Exception while loading mod EnemyArea.EthanolGeyser at C:/Users/Scott/Documents/Klei/OxygenNotIncluded/mods/Steam/2810438800. 
HarmonyLib.HarmonyException: Patching exception in method System.Void ProcGen.Worlds::UpdateWorldCache(System.Collections.Generic.ISet`1<System.String> referencedWorlds, System.Collections.Generic.List`1<Klei.Error> errors) ---> System.Exception: Parameter "path" not found in method System.Void ProcGen.Worlds::UpdateWorldCache(System.Collections.Generic.ISet`1<System.String> referencedWorlds, System.Collections.Generic.List`1<Klei.Error> errors)
  at HarmonyLib.MethodPatcher.EmitCallParameter (System.Reflection.MethodInfo patch, System.Collections.Generic.Dictionary`2[TKey,TValue] variables, System.Boolean allowFirsParamPassthrough, System.Reflection.Emit.LocalBuilder& tmpObjectVar, System.Collections.Generic.List`1[T] tmpBoxVars) [0x00756] in <2f5aaaa000594d07b9998f4cff1e9662>:0 
  at HarmonyLib.MethodPatcher+<>c__DisplayClass32_0.<AddPostfixes>b__1 (System.Reflection.MethodInfo fix) [0x00023] in <2f5aaaa000594d07b9998f4cff1e9662>:0 
  at HarmonyLib.CollectionExtensions.Do[T] (System.Collections.Generic.IEnumerable`1[T] sequence, System.Action`1[T] action) [0x00014] in <2f5aaaa000594d07b9998f4cff1e9662>:0 
  at HarmonyLib.MethodPatcher.AddPostfixes (System.Collections.Generic.Dictionary`2[TKey,TValue] variables, System.Boolean passthroughPatches) [0x00039] in <2f5aaaa000594d07b9998f4cff1e9662>:0 
  at HarmonyLib.MethodPatcher.CreateReplacement (System.Collections.Generic.Dictionary`2[System.Int32,HarmonyLib.CodeInstruction]& finalInstructions) [0x0029a] in <2f5aaaa000594d07b9998f4cff1e9662>:0 
  at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x00057] in <2f5aaaa000594d07b9998f4cff1e9662>:0 
  at HarmonyLib.PatchClassProcessor.ProcessPatchJob (HarmonyLib.PatchJobs`1+Job[T] job) [0x000bb] in <2f5aaaa000594d07b9998f4cff1e9662>:0 
   --- End of inner exception stack trace ---
  at HarmonyLib.PatchClassProcessor.ReportException (System.Exception exception, System.Reflection.MethodBase original) [0x0010f] in <2f5aaaa000594d07b9998f4cff1e9662>:0 
  at HarmonyLib.PatchClassProcessor.Patch () [0x00082] in <2f5aaaa000594d07b9998f4cff1e9662>:0 
  at HarmonyLib.Harmony.<PatchAll>b__10_0 (System.Type type) [0x00007] in <2f5aaaa000594d07b9998f4cff1e9662>:0 
  at HarmonyLib.CollectionExtensions.Do[T] (System.Collections.Generic.IEnumerable`1[T] sequence, System.Action`1[T] action) [0x00014] in <2f5aaaa000594d07b9998f4cff1e9662>:0 
  at HarmonyLib.Harmony.PatchAll (System.Reflection.Assembly assembly) [0x00006] in <2f5aaaa000594d07b9998f4cff1e9662>:0 
  at KMod.UserMod2.OnLoad (HarmonyLib.Harmony harmony) [0x00007] in <990b4cf9a7d84305ad7eaef1059b672b>:0 
  at KMod.DLLLoader.LoadDLLs (KMod.Mod ownerMod, System.String harmonyId, System.String path, System.Boolean isDev) [0x00222] in <990b4cf9a7d84305ad7eaef1059b672b>:0 

  at UnityEngine.Debug.LogError (System.Object message, UnityEngine.Object context) [0x00000] in <72b60a3dd8cd4f12a155b761a1af9144>:0 
  at Debug.LogError (System.Object obj, UnityEngine.Object context) [0x00000] in <0f4b778ef79c497e89f6ee18303840cf>:0 
  at DebugUtil.LogErrorArgs (UnityEngine.Object context, System.Object[] objs) [0x00000] in <0f4b778ef79c497e89f6ee18303840cf>:0 
  at DebugUtil.LogException (UnityEngine.Object context, System.String errorMessage, System.Exception e) [0x00000] in <0f4b778ef79c497e89f6ee18303840cf>:0 
  at KMod.DLLLoader.LoadDLLs (KMod.Mod ownerMod, System.String harmonyId, System.String path, System.Boolean isDev) [0x00000] in <990b4cf9a7d84305ad7eaef1059b672b>:0 
  at KMod.Mod.Load (KMod.Content content) [0x00000] in <990b4cf9a7d84305ad7eaef1059b672b>:0 
  at KMod.Manager.Load (KMod.Content content) [0x00000] in <990b4cf9a7d84305ad7eaef1059b672b>:0 
  at Global.Awake () [0x00000] in <990b4cf9a7d84305ad7eaef1059b672b>:0 
  at UnityEngine.Object.Internal_InstantiateSingleWithParent_Injected (UnityEngine.Object data, UnityEngine.Transform parent, UnityEngine.Vector3& pos, UnityEngine.Quaternion& rot) [0x00000] in <72b60a3dd8cd4f12a155b761a1af9144>:0 
  at UnityEngine.Object.Internal_InstantiateSingleWithParent (UnityEngine.Object data, UnityEngine.Transform parent, UnityEngine.Vector3 pos, UnityEngine.Quaternion rot) [0x00000] in <72b60a3dd8cd4f12a155b761a1af9144>:0 
  at UnityEngine.Object.Instantiate (UnityEngine.Object original, UnityEngine.Vector3 position, UnityEngine.Quaternion rotation, UnityEngine.Transform parent) [0x00000] in <72b60a3dd8cd4f12a155b761a1af9144>:0 
  at UnityEngine.Object.Instantiate[T] (T original, UnityEngine.Vector3 position, UnityEngine.Quaternion rotation, UnityEngine.Transform parent) [0x00000] in <72b60a3dd8cd4f12a155b761a1af9144>:0 
  at Util.KInstantiate (UnityEngine.GameObject original, UnityEngine.Vector3 position, UnityEngine.Quaternion rotation, UnityEngine.GameObject parent, System.String name, System.Boolean initialize_id, System.Int32 gameLayer) [0x00000] in <0f4b778ef79c497e89f6ee18303840cf>:0 
  at Util.KInstantiate (UnityEngine.GameObject original, UnityEngine.GameObject parent, System.String name) [0x00000] in <0f4b778ef79c497e89f6ee18303840cf>:0 
  at LaunchInitializer.Update () [0x00000] in <990b4cf9a7d84305ad7eaef1059b672b>:0 
Build: U47-561558-S
EnemyArea commented 1 year ago

please try the latest source :)

kaedys commented 1 year ago

I'll be honest, not sure how to do that, as the file in my /workshop dir is a legacy.bin rather than the source. Can I just straight replace it with the source from Github? Might be worth publishing it to Steam as well, I'm sure I'm not the only one interested in a fix (unless you were looking for confirmation that it is working before doing so).

EnemyArea commented 1 year ago

Hi there, you need to build the source against the oni assembly. The sourcecode alone will not work. You could ask the publisher of the mod, who has linked it in the steam workshop, to take the fixed version. I'm sorry that I can not provide any other solution, because there were to many complains in the workshop from the original author of the mod, who don't wont to redistribute that mod any more.

kaedys commented 1 year ago

Am I getting authors confused? I was referring to this mod on Steam: https://steamcommunity.com/sharedfiles/filedetails/?id=2810438800. It links to this Github and references your Github username here on that Steam page, so I sorta assumed you and that mod poster were one and the same. Is this not the case? If it is, I don't see any complaints from the original author of the Ethanol Geyser mod (test447) on the page. Thundercraft isn't the original author, he was just asking that the description of the mod link to the original source mod, and/or copy the description from the original mod so people could have that info.

kaedys commented 1 year ago

Also, the original mod was explicitly specified as open-source, and the Github repo for it states it is under the MIT license, which literally a "do whatever you want with it" license.

EnemyArea commented 1 year ago

Hey there, yeah we are two different persons :D This mod was created by "test447" and he worked with that "Cairath"-guy who leave his mods broken for some months. I fixed them and repubished them to steam, because I used them by my self. Cairath has taken them down and told me to remove them. Bacause of that, I decide to abandon the workshop and my efforts to fixing these mods, until I use them by my self.

kaedys commented 1 year ago

Bleh. Technically, Cairath doesn't have a leg to stand on there, since the code was explicitly licensed under the MIT license, but I get where you're coming from. So I guess my next step would me either to figure out compiling against source (I've resisted getting a C# compiler set up for a while now >.>), or see if I can get AlexSteelax to pull and recompile.

Well, much appreciate the fix in either case, just got another step before I can get this running again.

EnemyArea commented 1 year ago

if you using windows, I can mail your this mod-. Then you can use it as a local-mod.

kaedys commented 1 year ago

That would be excellent. Going to use a one-time email simply because I think even edits on Github are permanently visible, and I'd rather not have my proper email available like that to anyone that looks. Edit:

EnemyArea commented 1 year ago

Removed download link Cant' send it there :) Please download it, so I can remove the link.

You have to put the mod in Dokumente\Klei\OxygenNotIncluded\mods\dev\EnemyArea.EthanolGeyser

kaedys commented 1 year ago

Done, much appreciated