/// <summary> /// Entry point for your mod. /// </summary> public void StartEx(IModLoaderV1 loaderApi, IModConfigV1 modConfig) { _modLoader = (IModLoader)loaderApi; _modConfig = (IModConfig)modConfig; _logger = (ILogger)_modLoader.GetLogger(); _modLoader.GetController <IReloadedHooks>()?.TryGetTarget(out _hooks !); #if (IncludeConfig) // Your config file is in Config.json. // Need a different name, format or more configurations? Modify the `Configurator`. // If you do not want a config, remove Configuration folder and Config class. var configurator = new Configurator(_modLoader.GetModConfigDirectory(_modConfig.ModId)); _configuration = configurator.GetConfiguration <Config>(0); _configuration.ConfigurationUpdated += OnConfigurationUpdated; #endif // Please put your mod code in the class below, // use this class for only interfacing with mod loader. _mod = new Mod(new ModContext() { Logger = _logger, Hooks = _hooks, ModLoader = _modLoader, ModConfig = _modConfig, Owner = this, #if (IncludeConfig) Configuration = _configuration, #endif }); }
/// <summary> /// Entry point for your mod. /// </summary> public void StartEx(IModLoaderV1 loaderApi, IModConfigV1 modConfig) { #if DEBUG // Attaches debugger in debug mode; ignored in release. //Debugger.Launch(); #endif _modLoader = (IModLoader)loaderApi; _modConfig = (IModConfig)modConfig; _logger = (ILogger)_modLoader.GetLogger(); _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks !); // Your config file is in Config.json. // Need a different name, format or more configurations? Modify the `Configurator`. // If you do not want a config, remove Configuration folder and Config class. var configurator = new Configurator(_modLoader.GetModConfigDirectory(_modConfig.ModId)); _configuration = configurator.GetConfiguration <Config>(0); _configuration.ConfigurationUpdated += OnConfigurationUpdated; /* * Your mod code starts below. * Visit https://github.com/Reloaded-Project for additional optional libraries. */ _mod = new Mod(_hooks, _logger); }
public unsafe void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; _logger = (ILogger)_modLoader.GetLogger(); _modDirectory = _modLoader.GetDirectoryForModId(ThisModId); /* Your mod code starts here. */ _modLoader.OnModLoaderInitialized += OnModLoaderInitialized; _setupColourizer = Task.Run(() => { _configurator = new Configurator(_modDirectory); _config = _configurator.GetConfiguration <Config.Config>(0); _config.ConfigurationUpdated += configurable => { _config = (Config.Config)configurable; _logger.WriteLine("[Colorizer] Config file changed. Cancelling current effects and applying new.", _logger.ColorGreenLight); lock (_lock) { CancelAll(); Initialize(); } }; Initialize(); }); }
public StageCollection(IModLoader loader) { _modLoader = loader; _logger = (ILogger)_modLoader.GetLogger(); _redirectorController = _modLoader.GetController <IRedirectorController>(); _initPathHook = Fun_InitializeSplines.Hook(InitSplineImpl).Activate(); _getEndPositionHook = Fun_GetEndPosition.Hook(GetEndPositionImpl).Activate(); _getBragPositionHook = Fun_GetIntroPosition.Hook(GetBragPositionImpl).Activate(); _getStartPositionHook = Fun_GetStartPosition.Hook(GetStartPositionImpl).Activate(); // Populate Default Stages foreach (var stageId in (Stage[])Enum.GetValues(typeof(Stage))) { // Rail Canyon for Chaotix var stage = stageId != Stage.RailCanyonChaotix ? new DefaultStage(stageId) : new DefaultStage(Stage.RailCanyon); _allStages.Add(stage); } // Temporary crash workaround for SET objects beyond default limits. var crashWorkaround = new[] { "use32", "mov edi, dword [esp + 0x58]", // Take pointer to object list from function parameters. "mov [0xA2CF70], dword edi" }; _setLimitCrashWorkaround = SDK.ReloadedHooks.CreateAsmHook(crashWorkaround, 0x43D1EA, AsmHookBehaviour.ExecuteFirst).Activate(); }
/// <summary> /// Entry point for your mod. /// </summary> public void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; Logger = (ILogger)_modLoader.GetLogger(); _postProcess = new PostProcess(_modLoader.GetDirectoryForModId(MyModId)); _modLoader.ModLoaded += ModLoaded; SetupController(); }
/// <summary> /// Entry point for your mod. /// </summary> public void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; _logger = (ILogger)_modLoader.GetLogger(); _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks); /* Your mod code starts here. */ _mod = new Mod(_logger, _hooks); }
/// <summary> /// Entry point for your mod. /// </summary> public void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; _logger = (ILogger)_modLoader.GetLogger(); _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks); // Your config file is in Config.json. _hook = new DInputHook(_hooks); }
/// <summary> /// Entry point for your mod. /// </summary> public async void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; _logger = (ILogger)_modLoader.GetLogger(); _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks); /* Your mod code starts here. */ SDK.Init(_hooks); _imguiHook = await ImguiHook.Create(RenderTestWindow); }
/// <summary> /// Entry point for your mod. /// </summary> public void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; Logger = (ILogger)_modLoader.GetLogger(); /* Your mod code starts here. */ _xInput = new XInput(_modLoader.GetDirectoryForModId(MyModId)); _modLoader.ModLoaded += ModLoaded; SetupController(); }
public void Start(IModLoaderV1 loader) { #if DEBUG Debugger.Launch(); #endif _modLoader = (IModLoader)loader; _logger = (ILogger)_modLoader.GetLogger(); // Auto-subscribe on loaded redirector. _modLoader.ModLoaded += ModLoaded; SetupEventFromRedirector(); }
public void Start(IModLoaderV1 loader) { ModLoader = (IModLoader)loader; ModLoader.GetController <IReloadedHooks>().TryGetTarget(out var hooks); Hooks = hooks; /* Your mod code starts here. */ var logger = (ILogger)ModLoader.GetLogger(); SDK.Init(Hooks, new PrsInstance()); _server = new Server(logger); }
public StageCollection(IModLoader loader, IReloadedHooks hooks) { _modLoader = loader; _logger = (ILogger)_modLoader.GetLogger(); _redirectorController = _modLoader.GetController <IRedirectorController>(); _hooks = new Hooks.Hooks(hooks, InitSplineImpl, GetStartPositionImpl, GetEndPositionImpl, GetBragPositionImpl); // Populate Default Stages foreach (StageId stageId in (StageId[])Enum.GetValues(typeof(StageId))) { _allStages.Add(new DefaultStage(stageId)); } }
public void Start(IModLoaderV1 loader) { #if DEBUG Debugger.Launch(); #endif ModLoader = (IModLoader)loader; Logger = (ILogger)ModLoader.GetLogger(); /* Your mod code starts here. */ _postProcess = new PostProcess(ModLoader.GetDirectoryForModId(MyModId)); ModLoader.ModLoaded += ModLoaded; SetupController(); }
/// <summary> /// Entry point for your mod. /// </summary> public void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; _logger = (ILogger)_modLoader.GetLogger(); _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks); _modLoader.GetController <IReloadedHooksUtilities>().TryGetTarget(out _hooksUtilities); /* Your mod code starts here. */ SDK.Init(_hooks); _hook = new ControllerHook(_hooks); _fourPlayerPatch = new FourPlayerPatch(_hooks, _hooksUtilities); _modLoader.AddOrReplaceController <IControllerHook>(this, _hook); }
public void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; _logger = (ILogger)_modLoader.GetLogger(); /* Your mod code starts here. */ var modFolder = _modLoader.GetDirectoryForModId(ModId); var configurator = new Configurator(modFolder); var configuration = configurator.GetConfiguration <Config>(0); var redirector = _modLoader.GetController <IRedirectorController>(); _swapper = new CharacterSwapper(_logger, configuration, modFolder, redirector); _modLoader.ModLoaded += OnRedirectorLoaded; }
public void Start(IModLoaderV1 loader) { #if DEBUG Debugger.Launch(); #endif ModLoader = (IModLoader)loader; Logger = (ILogger)ModLoader.GetLogger(); /* Your mod code starts here. */ string modDirectory = ModLoader.GetDirectoryForModId(MyModId); _xInput = new XInput(modDirectory); ModLoader.ModLoaded += ModLoaded; SetupController(); }
public void Start(IModLoaderV1 loader) { #if DEBUG Debugger.Launch(); #endif ModLoader = (IModLoader)loader; Logger = (ILogger)ModLoader.GetLogger(); ModLoader.GetController <IReloadedHooks>().TryGetTarget(out ReloadedHooks); SDK.SDK.Init(ReloadedHooks, null); /* Your mod code starts here. */ _hook = new ControllerHook(ModLoader.GetDirectoryForModId(ThisModId)); ModLoader.AddOrReplaceController <IControllerHook>(this, _hook); }
public void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; Logger = (ILogger)_modLoader.GetLogger(); // Your config file is in Config.json. // Need more configurations? See `_configurator.MakeConfigurations` _configurator = new Configurator(_modLoader.GetDirectoryForModId(ModId)); Configuration = _configurator.GetConfiguration <Config>(0); Configuration.ConfigurationUpdated += OnConfigurationUpdated; /* Your mod code starts here. */ _twitchBot.Connect(); EnableHooks(); }
public void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; // Print controls. var logger = (ILogger)_modLoader.GetLogger(); logger.WriteLine(Freecam.Controls); // Handle controller hook load and unload. _modLoader.ModUnloading += ModUnloading; _modLoader.ModLoading += ModLoading; /* Your mod code starts here. */ Initialize(); }
public void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; _modLoader.GetController <IReloadedHooks>().TryGetTarget(out var hooks); _modLoader.GetController <IPrsInstance>().TryGetTarget(out var prsInstance); Logger = (ILogger)_modLoader.GetLogger(); SDK.Init(hooks, prsInstance); /* Your mod code starts here. */ var configurator = new Configurator(_modLoader.GetDirectoryForModId("sonicheroes.utils.oneredirector")); var config = configurator.GetConfiguration <Config>(0); _oneHook = new OneHook(Logger, config, NativeFunctions.GetInstance(hooks)); _modLoader.ModLoading += OnModLoading; _modLoader.ModUnloading += OnModUnloading; }
public unsafe void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; _logger = (ILogger)_modLoader.GetLogger(); _modDirectory = _modLoader.GetDirectoryForModId(ThisModId); /* Your mod code starts here. */ _config = Config.Config.FromJson(_modDirectory); _config.ToJson(_modDirectory); Initialize(); var configDirectory = Path.GetDirectoryName(Config.Config.FilePath(_modDirectory)); var fileName = Path.GetFileName(Config.Config.FilePath(_modDirectory)); _watcher = new FileSystemWatcher(configDirectory, fileName); _watcher.EnableRaisingEvents = true; _watcher.Changed += WatcherOnChanged; }
public void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; _logger = (ILogger)_modLoader.GetLogger(); /* Your mod code starts here. */ // Your config file is in Config.json. // Need more configurations? See `_configurator.MakeConfigurations` _configurator = new Configurator(_modLoader.GetDirectoryForModId(ModId)); _configuration = _configurator.GetConfiguration <Config>(0); _configuration.ConfigurationUpdated += OnConfigurationUpdated; // Execute mod code. _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks); _modLoader.GetController <IReloadedHooksUtilities>().TryGetTarget(out _utilities); _drawDistanceHook = new DrawDistanceHook(_configuration, _hooks, _utilities); }
/// <summary> /// Entry point for your mod. /// </summary> public void Start(IModLoaderV1 loader) { _modLoader = ( IModLoader )loader; _logger = ( ILogger )_modLoader.GetLogger(); _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks); // Your config file is in Config.json. // Need a different name, format or more configurations? Modify the `Configurator`. // If you do not want a config, remove Configuration folder and Config class. var configurator = new Configurator(_modLoader.GetDirectoryForModId(MyModId)); _configuration = configurator.GetConfiguration <Config>(0); _configuration.ConfigurationUpdated += OnConfigurationUpdated; /* Your mod code starts here. */ _P4GPCModLoader = new P4GPCModLoader(_logger, _configuration, _hooks); _P4GPCModLoader.Activate(); }
/// <summary> /// Entry point for your mod. /// </summary> public async void StartEx(IModLoaderV1 loaderApi, IModConfigV1 modConfig) { // For more information about this template, please see // https://reloaded-project.github.io/Reloaded-II/ModTemplate/ _modLoader = (IModLoader)loaderApi; _modConfig = (IModConfig)modConfig; _logger = (ILogger)_modLoader.GetLogger(); // Your config file is in Config.json. // Need a different name, format or more configurations? Modify the `Configurator`. // If you do not want a config, remove Configuration folder and Config class. var configurator = new Configurator(_modLoader.GetModConfigDirectory(_modConfig.ModId)); _configuration = configurator.GetConfiguration <Config>(0); _configuration.ConfigurationUpdated += OnConfigurationUpdated; // Start the server on another thread so we don't delay startup with JIT overhead. _lnlServer = await Task.Run(() => LiteNetLibServer.Create(_logger, _modLoader, _configuration)); }
/// <summary> /// Entry point for your mod. /// </summary> public async void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; _logger = (ILogger)_modLoader.GetLogger(); _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks); /* Your mod code starts here. */ SDK.Init(_hooks, s => { _logger.WriteLine(s); }); await ImguiHook.Create(RenderTestWindow, new ImguiHookOptions() { EnableViewports = true, IgnoreWindowUnactivate = true, Implementations = new List <IImguiHook>() { new ImguiHookDx9(), new ImguiHookDx11() } }).ConfigureAwait(false); }
public void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; _reloadedHooks = _modLoader.GetController <IReloadedHooks>(); Logger = (ILogger)_modLoader.GetLogger(); /* Your mod code starts here. */ Logger.WriteLine($"[SteamHook] Checking for {SteamAppId.FileName}."); if (!SteamAppId.Exists()) { Logger.WriteLine($"[SteamHook] Does not exist, dropping {SteamAppId.FileName}."); SteamAppidDropper.DropSteamId(); } else { Logger.WriteLine($"[SteamHook] Exists, not overwriting."); } _steamHook = new SteamHook(_reloadedHooks); }
public void Start(IModLoaderV1 loader) { _modLoader = (IModLoader)loader; _logger = (ILogger)_modLoader.GetLogger(); /* Your mod code starts here. */ // Load mod asynchronously during the same time other mods load. (Newtonsoft.Json is slow on first run) // Then wait if necessary if mod loader is done with other mods. _modLoader.OnModLoaderInitialized += OnModLoaderInitialized; _setupPhysicsSwap = Task.Run(() => { _modDirectory = _modLoader.GetDirectoryForModId(ThisModId); _config = Config.FromJson(_modDirectory); _physicsMod = new PhysicsMod(); _physicsMod.ApplyFromConfig(_config); string filePath = Config.GetFilePath(_modDirectory); _watcher = new FileSystemWatcher(Path.GetDirectoryName(filePath), Path.GetFileName(filePath)); _watcher.EnableRaisingEvents = true; _watcher.Changed += WatcherOnChanged; }); }
/// <summary> /// Entry point for your mod. /// </summary> public void Start(IModLoaderV1 loader) { //Debugger.Launch(); _modLoader = (IModLoader)loader; _logger = (ILogger)_modLoader.GetLogger(); _modLoader.GetController <IReloadedHooks>().TryGetTarget(out _hooks); // Your config file is in Config.json. // Need a different name, format or more configurations? Modify the `Configurator`. // If you do not want a config, remove Configuration folder and Config class. var configurator = new Configurator(_modLoader.GetDirectoryForModId(MyModId)); _configuration = configurator.GetConfiguration <Config>(0); _configuration.ConfigurationUpdated += OnConfigurationUpdated; /* Your mod code starts here. */ _memory = new Memory(); using var thisProcess = Process.GetCurrentProcess(); int baseAddress = thisProcess.MainModule.BaseAddress.ToInt32(); _utils = new Utils(_configuration, _logger, baseAddress); _xpShare = new XpShare(_utils, _memory, _hooks, _configuration); }