jskrzypek
Repos
207
Followers
8
Following
11

Events

Compatibility Updates as of 2.0.204.48 - Moon Stair

@egocarib thanks! this is still not working but now I finally found the information about the Player.log & harmony.log.txt files in the Modding:Overview page of the wiki and found that there are errors w/ QudUX applying Harmony patches. This seems likely related:

From Player.log

MODERROR [QudUX] - Exception applying harmony patches: HarmonyLib.HarmonyException: Patching exception in method static System.String XRL.Annals.QudHistoryFactory::NameRuinsSite(HistoryKit.History history, System.Boolean& Proper, System.String& nameRoot) ---> System.ComponentModel.Win32Exception: Invalid data
  at MonoMod.RuntimeDetour.Platforms.DetourNativeLibcPlatform.SetMemPerms (System.IntPtr start, System.UInt64 len, MonoMod.RuntimeDetour.Platforms.DetourNativeLibcPlatform+MmapProts prot) [0x00043] in <28a34da201e449be81fe5efb7481a26c>:0 
  at MonoMod.RuntimeDetour.Platforms.DetourNativeLibcPlatform.MakeWritable (System.IntPtr src, System.UInt32 size) [0x00000] in <28a34da201e449be81fe5efb7481a26c>:0 
  at MonoMod.RuntimeDetour.DetourHelper.MakeWritable (MonoMod.RuntimeDetour.IDetourNativePlatform plat, MonoMod.RuntimeDetour.NativeDetourData detour) [0x00000] in <28a34da201e449be81fe5efb7481a26c>:0 
  at MonoMod.RuntimeDetour.Platforms.DetourRuntimeILPlatform._HookSelftest (System.Reflection.MethodInfo from, System.Reflection.MethodInfo to) [0x00035] in <28a34da201e449be81fe5efb7481a26c>:0 
  at MonoMod.RuntimeDetour.Platforms.DetourRuntimeILPlatform..ctor () [0x0003f] in <28a34da201e449be81fe5efb7481a26c>:0 
  at MonoMod.RuntimeDetour.Platforms.DetourRuntimeMonoPlatform..ctor () [0x00000] in <28a34da201e449be81fe5efb7481a26c>:0 
  at MonoMod.RuntimeDetour.DetourHelper.get_Runtime () [0x0003e] in <28a34da201e449be81fe5efb7481a26c>:0 
  at MonoMod.RuntimeDetour.DetourHelper.Pin[T] (T method) [0x00000] in <28a34da201e449be81fe5efb7481a26c>:0 
  at HarmonyLib.MethodPatcher.CreateReplacement (System.Collections.Generic.Dictionary`2[System.Int32,HarmonyLib.CodeInstruction]& finalInstructions) [0x00594] in <28a34da201e449be81fe5efb7481a26c>:0 
  at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x00057] in <28a34da201e449be81fe5efb7481a26c>:0 
  at HarmonyLib.PatchClassProcessor.ProcessPatchJob (HarmonyLib.PatchJobs`1+Job[T] job) [0x0015d] in <28a34da201e449be81fe5efb7481a26c>:0 
   --- End of inner exception stack trace ---
  at HarmonyLib.PatchClassProcessor.ReportException (System.Exception exception, System.Reflection.MethodBase original) [0x0010f] in <28a34da201e449be81fe5efb7481a26c>:0 
  at HarmonyLib.PatchClassProcessor.Patch () [0x00084] in <28a34da201e449be81fe5efb7481a26c>:0 
  at HarmonyLib.Harmony.<PatchAll>b__10_0 (System.Type type) [0x00007] in <28a34da201e449be81fe5efb7481a26c>:0 
  at HarmonyLib.CollectionExtensions.Do[T] (System.Collections.Generic.IEnumerable`1[T] sequence, System.Action`1[T] action) [0x00014] in <28a34da201e449be81fe5efb7481a26c>:0 
  at HarmonyLib.Harmony.PatchAll (System.Reflection.Assembly assembly) [0x00006] in <28a34da201e449be81fe5efb7481a26c>:0 
  at XRL.ModInfo.ApplyHarmonyPatches () [0x00070] in <beb304b415964e3bb76d1e6a79f5bd5d>:0 

From harmony.log.txt:


### Exception from user "QudUX", Harmony v2.0.2.0
### Original: static System.String XRL.Annals.QudHistoryFactory::NameRuinsSite(HistoryKit.History history, System.Boolean& Proper, System.String& nameRoot)
### Patch class: QudUX.HarmonyPatches.Patch_XRL_Annals_QudHistoryFactory
### System.ComponentModel.Win32Exception (0x80004005): Invalid data
###   at MonoMod.RuntimeDetour.Platforms.DetourNativeLibcPlatform.SetMemPerms (System.IntPtr start, System.UInt64 len, MonoMod.RuntimeDetour.Platforms.DetourNativeLibcPlatform+MmapProts prot) [0x00043] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.Platforms.DetourNativeLibcPlatform.MakeWritable (System.IntPtr src, System.UInt32 size) [0x00000] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.DetourHelper.MakeWritable (MonoMod.RuntimeDetour.IDetourNativePlatform plat, MonoMod.RuntimeDetour.NativeDetourData detour) [0x00000] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.Platforms.DetourRuntimeILPlatform._HookSelftest (System.Reflection.MethodInfo from, System.Reflection.MethodInfo to) [0x00035] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.Platforms.DetourRuntimeILPlatform..ctor () [0x0003f] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.Platforms.DetourRuntimeMonoPlatform..ctor () [0x00000] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.DetourHelper.get_Runtime () [0x0003e] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.DetourHelper.Pin[T] (T method) [0x00000] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at HarmonyLib.MethodPatcher.CreateReplacement (System.Collections.Generic.Dictionary`2[System.Int32,HarmonyLib.CodeInstruction]& finalInstructions) [0x00594] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x00057] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at HarmonyLib.PatchClassProcessor.ProcessPatchJob (HarmonyLib.PatchJobs`1+Job[T] job) [0x0015d] in <28a34da201e449be81fe5efb7481a26c>:0
### Exception from user "QudUX", Harmony v2.0.2.0
### Original: static System.String XRL.Annals.QudHistoryFactory::NameRuinsSite(HistoryKit.History history, System.Boolean& Proper, System.String& nameRoot)
### Patch class: QudUX.HarmonyPatches.Patch_XRL_Annals_QudHistoryFactory
### System.ComponentModel.Win32Exception (0x80004005): Invalid data
###   at MonoMod.RuntimeDetour.Platforms.DetourNativeLibcPlatform.SetMemPerms (System.IntPtr start, System.UInt64 len, MonoMod.RuntimeDetour.Platforms.DetourNativeLibcPlatform+MmapProts prot) [0x00043] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.Platforms.DetourNativeLibcPlatform.MakeWritable (System.IntPtr src, System.UInt32 size) [0x00000] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.DetourHelper.MakeWritable (MonoMod.RuntimeDetour.IDetourNativePlatform plat, MonoMod.RuntimeDetour.NativeDetourData detour) [0x00000] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.Platforms.DetourRuntimeILPlatform._HookSelftest (System.Reflection.MethodInfo from, System.Reflection.MethodInfo to) [0x00035] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.Platforms.DetourRuntimeILPlatform..ctor () [0x0003f] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.Platforms.DetourRuntimeMonoPlatform..ctor () [0x00000] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.DetourHelper.get_Runtime () [0x0003e] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at MonoMod.RuntimeDetour.DetourHelper.Pin[T] (T method) [0x00000] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at HarmonyLib.MethodPatcher.CreateReplacement (System.Collections.Generic.Dictionary`2[System.Int32,HarmonyLib.CodeInstruction]& finalInstructions) [0x00594] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x00057] in <28a34da201e449be81fe5efb7481a26c>:0 
###   at HarmonyLib.PatchClassProcessor.ProcessPatchJob (HarmonyLib.PatchJobs`1+Job[T] job) [0x0015d] in <28a34da201e449be81fe5efb7481a26c>:0
Created at 1 month ago
jskrzypek create branch js/try-fix-bom-crlf
Created at 1 month ago
pull request closed
Js/updates take 2
Created at 1 month ago

feat: Convert CRLF to LF

I used this command to easily convert. This should make it easier to see what changes have been made when I pull in changes from Bee / Simon after. git ls-tree -r HEAD | cut -f2 | xargs dos2unix --

feat: Apply changes from Bee/Simon Fruehauf

Apply updates from https://github.com/simonfruehauf/QUDUX-2.0.203.56's initial commit

fix: Update for 2.0.204.48 - Moon Stair

Some changes in the Moon Stair update broke QudUX, these appear to fix it.

fix: Fix parameters deprecation warnings

There were some deprecation warnings around the use of GamePartBlueprint.GetParameter in CharacterTileScreenExtender.cs. Those have been upgraded to use the new syntax, (i.e. HasParameter and GetParameterString).

chore: Add extra images & workshop.json

I'm not certain if these files need to be committed for it to work, but it's worth trying.

Created at 1 month ago
pull request opened
Js/updates take 2
Created at 1 month ago

fix: Fix parameters deprecation warnings

There were some deprecation warnings around the use of GamePartBlueprint.GetParameter in CharacterTileScreenExtender.cs. Those have been upgraded to use the new syntax, (i.e. HasParameter and GetParameterString).

chore: Add extra images & workshop.json

I'm not certain if these files need to be committed for it to work, but it's worth trying.

Created at 1 month ago

fix: Fix parameters deprecation warnings

There were some deprecation warnings around the use of GamePartBlueprint.GetParameter in CharacterTileScreenExtender.cs. Those have been upgraded to use the new syntax, (i.e. HasParameter and GetParameterString).

chore: Add extra images & workshop.json

I'm not certain if these files need to be committed for it to work, but it's worth trying.

Created at 1 month ago
Compatibility Updates as of 2.0.204.48 - Moon Stair

NB apparently this only fixes the errors with loading the mod, but doesn't actually restore full functionality... I'll try seeing if I can patch the warnings too, and see if that fixes the issue.

Created at 1 month ago
issue comment
Add support for other enquirer prompts.

@nzacca @FrozenPandaz I think I would suggest/reach for a different approach to implement this. I'd opt for something a bit like what @nzacca provided via a custom prompt, but instead I'd use a JSON object to directly provide the parameters to the library's .prompt() (leaving it open whether this is enq. or inq. per @brandonbechtel's disc. above) method pretty much without translation, rather than relying on importing and evaluating code at runtime to provide that Prompt or those params. You could maybe provide some way to opt-in to that behavior, but I definitely wouldn't default to it.

The way I see it there are two different operations that end up driven by each of these param schema:

  1. Prompting the user (including collecting the input) via the library.
  2. Parsing (and thus validating) the input value returned by the library into the type/form specified on the root of the property.

If I were going to rewrite or expand how this gets handled in the future that's probably how I'd start thinking about it. Most of the current set of prompt properties/types that nx supports are definitely the most common use-cases and I'd bias for preserving the existing syntax that they use, but I may re-consider how the advanced options and specifically the x-prompt machinery is used.

The current functionality is that the property specifies how it gets parsed (i.e. operation 2.), which implies how it should be prompted (i.e. operation 1.), unless you pass an x-prompt to override that implication. This in effect means that a compatible parser needs to be specified for any allowed prompt style.

I might consider decoupling this implication by accepting a top-level "type": "custom" on properties, which would expect an x-prompt entry with arguments to pass to the prompt library without translation, and optionally an x-parse entry. If x-parse is not provided, the returned input value would be left as-is in the form the library returned it. Otherwise, x-parse would accept a) the name of a common nx type to parse the returned value into (isomorphic to just providing the same in the type), or b) arguments to pass to a parser function.

Implementation-wise I'd then refactor the existing code to translate all of the implications/shorthands into inputs to the prompt library and the parser function, making the system more extensible. This should also allow a lot of the nested, custom, or branching logic in params.ts to be abstracted away.

Created at 1 month ago
pull request opened
Compatibility Updates as of 2.0.204.48 - Moon Stair

Updates including those from Bee/Simon's fork https://github.com/simonfruehauf/QUDUX-2.0.203.56

Created at 1 month ago

feat: Convert CRLF to LF

I used this command to easily convert. This should make it easier to see what changes have been made when I pull in changes from Bee / Simon after. git ls-tree -r HEAD | cut -f2 | xargs dos2unix --

feat: Apply changes from Bee/Simon Fruehauf

Apply updates from https://github.com/simonfruehauf/QUDUX-2.0.203.56's initial commit

fix: Update for 2.0.204.48 - Moon Stair

Some changes in the Moon Stair update broke QudUX, these appear to fix it.

Created at 1 month ago
pull request closed
Js/updates
Created at 1 month ago
pull request opened
Js/updates
Created at 1 month ago
jskrzypek create branch js/updates
Created at 1 month ago
issue comment
Add support for other enquirer prompts.

@brandonbechtel that's a great question to ask, and I think it really deserves its own issue, since this one is regarding expansion of the supported schema-driven prompt types. After you create it, I would definitely comment back on this issue with a reference to your new one, because a decision to switch libraries would certainly impact any development work on this one.

Created at 1 month ago
pull request opened
feat: extend fishing concept with jank

I don't know what I'm doing... lol

I made the "rod" show up and then I tried using a dampingspringjoint to have it track the mouse, but that was too weird so I made it very subtle.

I also reworked the chain to make it more like a fishing line w/ a bobber.

I tried to make the pole stay in "front" of the player's movement, but it doesn't move the other bits with it and it doesn't stay as I'd expect it to :/

Overall, fun to mess with still :)

Created at 1 month ago
create branch
jskrzypek create branch js/fishing-for-understanding
Created at 1 month ago

feat: Add custom dir-prefix to install system

The Addons system may be in the process of being removed but as long as the commands exist here, other users may want the repos cloned in a different location than directly under their home directory. This change makes the addons-* and install-script-templates commands take variadic additional args from the command line, each word of which will be interpreted as a part of the path under the user's $HOME directory in which they want the repos to be cloned, or in the case of the script_templates, where the respective repo can be found on the local machine.

feat: Use new babashka.fs/home

For better portability and longevity, remove bb-godot.tasks/home-dir in favor of the new babashka.fs/home.

feat: Make the git status output for addons better

Rather than the full message for the git status output, which gets a bit lost when being emitted for each addon repo, use git status -sb to show the short format with the branch and tracking information.

Additionally, it seems prudent to fetch from the remote prior to checking the status, to see how much divergence has taken place.

Created at 1 month ago

feat: Use more portable home-dir

sh is available on more systems than zsh, and the $HOME var generally better to use than the tilde, because that alias is re-writable (no one really does that, but still...)

feat: Add custom dir-prefix to install system

The Addons system may be in the process of being removed but as long as the commands exist here, other users may want the repos cloned in a different location than directly under their home directory. This change makes the addons-* and install-script-templates commands take variadic additional args from the command line, each word of which will be interpreted as a part of the path under the user's $HOME directory in which they want the repos to be cloned, or in the case of the script_templates, where the respective repo can be found on the local machine.

Created at 1 month ago
pull request opened
js/improve onboarding
  • feat: Use more portable home-dir
  • feat: Add custom dir-prefix to install system
  • fix: Disable dependency on removed external addon

A number of these changes may be superceded by the vendoring of the addons.

Created at 1 month ago
create branch
jskrzypek create branch js/improve-onboarding
Created at 1 month ago
Created at 1 month ago

feat: Day 6 pt 2

feat: Day 7 pt 1

Created at 1 month ago
Created at 1 month ago

feat: Day 6 pt 1

Created at 1 month ago

feat: Day 5 pt 2

take & drop replace peek & pop.

Created at 1 month ago

feat: Day 5 pt 1

Created at 1 month ago

feat: Day 4 pt 2

Whoo!

Created at 1 month ago