leo60228 / monomod-stuff

i have private repos or something
0 stars 0 forks source link

Refactoring #1

Open leo60228 opened 6 years ago

leo60228 commented 6 years ago

post ideas and stuff

copied from discord:

tbh I thought about splitting MonoMod into pieces MonoMod.Patcher for the patcher and relinker, MonoMod.RuntimeDetour for the runtime detour part, MonoMod.DebugIL for the DebugIL dumper, ... I basically wanted to get to it once I'd begin working on something called MonoMod.BaseAPI or BaseLoader the name is still open, but it'd be a collection of all the mod loading / mod API - related parts I've worked on for years now stuff that began in FEZMod and that has been carried over through ETGMod over YLMAPI (which never became a thing, sadly) to Everest HookedMethod would then only depend on the MonoMod.RuntimeDetour library [...] it's meant to be a patcher in the first place, yes, but it's also meant to be a library to make C# modding easier this is "feature creep" territory, but honestly, I'd like to collect everything C# modding-related I've worked on that could be useful for others in "MonoMod" in one form or another - 0x0ade

so, for that idea:

@0x0ade

leo60228 commented 6 years ago

@0x0ade I just made this repo public

0x0ade commented 6 years ago

I just sat down at my PC.

This would be better fit in the MonoMod repository, but on the other hand, I don't want to set this into stone just yet. Before you're going to ask: No, I'm not planning to use GitHub Projects for MonoMod just yet, as I don't see the need to "overmanage" MonoMod in its current state. This is going to be different when I want to make MonoMod easier to contribute to, but right now, getting contributors on board would only make us step on our own feet.

leo60228 commented 6 years ago

Oh, I thought you meant MonoMod.Loader to be a mod loader template, and thus I thought it would make sense for relevant utilities to be in a separate project (in the C# sense) exposed on Nuget.

leo60228 commented 6 years ago

GlobalNamespaces allows this syntax: GlobalNamespaces.System.String == typeof(System.String) && GlobalNamespaces.System.String.GetType() == typeof(ExtendableType /* working name */)

leo60228 commented 6 years ago

ExtendableType is a DynamicObject because extension properties don't exist yet

0x0ade commented 6 years ago

I'm still undecided whether MonoMod.Loader is going to be a template or not, which is why I was hesitant to announce my plans publicly :/