public ModFileOutput(IOwmlConfig config, IModLogger logger, IModManifest manifest) : base(config, logger, manifest) { if (_writer == null) { _writer = File.Open(config.OutputFilePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); } }
internal ModInputCombination(IModManifest manifest, IModConsole console, string name, string combination) { _manifest = manifest; _console = console; Name = name; _hashes = StringToHashes(combination); }
public void OnOWMLLog(IModManifest man, string message) { if (!message.Contains("Unity log message:")) { instance.PostMessage(message, man.Name, ChatHandler.MsgType.LOG); } }
private IModData GetModData(IModManifest manifest) { var storage = new ModStorage(manifest); var config = storage.Load <ModConfig>("config.json"); var defaultConfig = storage.Load <ModConfig>("default-config.json"); if (config == null && defaultConfig == null) { config = new ModConfig(); defaultConfig = new ModConfig(); } else if (defaultConfig != null && config == null) { config = defaultConfig; } else if (defaultConfig != null) { foreach (var setting in defaultConfig.Settings) { if (!config.Settings.ContainsKey(setting.Key)) { config.Settings.Add(setting.Key, setting.Value); } } } storage.Save(config, "config.json"); return(new ModData(manifest, config, defaultConfig)); }
/// <summary>Construct an instance.</summary> /// <param name="list">The list of loaded mods.</param> /// <param name="proxyFactory">The proxy factory instance.</param> /// <param name="manifest">The manifest of the mod this instance is attached to.</param> public ModInteraction(IList <IModBehaviour> list, InterfaceProxyFactory proxyFactory, IModManifest manifest) { _modList = list; _modManifest = manifest; _proxyFactory = proxyFactory; RegenerateDictionaries(); }
public ModSocketOutput(IOwmlConfig config, IModLogger logger, IModManifest manifest) : base(config, logger, manifest) { if (_socket == null) { CreateSocket(); } }
private bool IsMadeForSameOwmlMajorVersion(IModManifest manifest) { var owmlVersionSplit = _owmlManifest.Version.Split('.'); var modVersionSplit = manifest.OWMLVersion.Split('.'); return(owmlVersionSplit.Length == modVersionSplit.Length && owmlVersionSplit[0] == modVersionSplit[0] && owmlVersionSplit[1] == modVersionSplit[1]); }
protected ModConsole(IOwmlConfig config, IModLogger logger, IModManifest manifest) { Logger = logger; Manifest = manifest; OwmlConfig = config; if (manifest.Name == "OWML") { Instance = this; } }
public App(IOwmlConfig owmlConfig, IModManifest owmlManifest, IModConsole writer, IModFinder modFinder, OutputListener listener, PathFinder pathFinder, OWPatcher owPatcher, VRPatcher vrPatcher) { _owmlConfig = owmlConfig; _owmlManifest = owmlManifest; _writer = writer; _modFinder = modFinder; _listener = listener; _pathFinder = pathFinder; _owPatcher = owPatcher; _vrPatcher = vrPatcher; }
public ModLogger(IOwmlConfig config, IModManifest manifest) { if (manifest.Name == "OWML") { Instance = this; } if (_config == null) { _config = config; } _manifest = manifest; }
public ModHelper(IModLogger logger, IModConsole console, IHarmonyHelper harmonyHelper, IModEvents events, IModAssets assets, IModStorage storage, IModMenus menus, IModManifest manifest, IModConfig config, IOwmlConfig owmlConfig, IModInteraction interaction) { Logger = logger; Console = console; HarmonyHelper = harmonyHelper; Events = events; Assets = assets; Storage = storage; Menus = menus; Manifest = manifest; Config = config; OwmlConfig = owmlConfig; Interaction = interaction; }
public ModMenus(IModConsole console, IModEvents events, IModInputHandler inputHandler, IModManifest owmlManifest, IOwmlConfig owmlConfig, IOwmlConfig owmlDefaultConfig) { MainMenu = new ModMainMenu(console); PauseMenu = new ModPauseMenu(console); ModsMenu = new ModsMenu(console, this, inputHandler); OwmlMenu = new OwmlConfigMenu(console, owmlManifest, owmlConfig, owmlDefaultConfig); InputMenu = new ModInputMenu(console); InputCombinationElementMenu = new ModInputCombinationElementMenu(console, inputHandler); InputCombinationMenu = new ModInputCombinationMenu(console); events.Subscribe <SettingsManager>(Common.Events.AfterStart); events.Subscribe <TitleScreenManager>(Common.Events.AfterStart); events.OnEvent += OnEvent; }
private void LoadMod(IModManifest manifest) { var modType = LoadModType(manifest); if (modType == null) { _helper.Logger.Log("Mod type is null, skipping"); return; } _helper.Logger.Log($"Loading {manifest.UniqueName} ({manifest.Version})..."); _helper.Logger.Log("Adding mod behaviour..."); var go = new GameObject(manifest.UniqueName); var mod = (ModBehaviour)go.AddComponent(modType); _helper.Logger.Log("Added! Initializing..."); mod.Init(_helper, manifest); _helper.Console.WriteLine($"Loaded {manifest.UniqueName} ({manifest.Version})."); _helper.Logger.Log($"Loaded {manifest.UniqueName} ({manifest.Version})."); }
private Type LoadModType(IModManifest manifest) { if (!manifest.Enabled) { _helper.Logger.Log($"{manifest.UniqueName} is disabled"); return(null); } _helper.Logger.Log("Loading assembly: " + manifest.AssemblyPath); var assembly = Assembly.LoadFile(manifest.AssemblyPath); _helper.Logger.Log($"Loaded {assembly.FullName}"); try { return(assembly.GetTypes().FirstOrDefault(x => x.IsSubclassOf(typeof(ModBehaviour)))); } catch (Exception ex) { _helper.Logger.Log($"Error while trying to get {typeof(ModBehaviour)}: {ex.Message}"); _helper.Console.WriteLine($"Error while trying to get {typeof(ModBehaviour)}: {ex.Message}"); return(null); } }
public static IModConsole CreateOutput(IOwmlConfig owmlConfig, IModLogger logger, IModManifest manifest) { if (CommandLineArguments.HasArgument(Constants.ConsolePortArgument)) { return(new ModSocketOutput(owmlConfig, logger, manifest)); } if (logger == null) { return(new OutputWriter()); } return(new ModFileOutput(owmlConfig, logger, manifest)); }
protected ModConfigMenuBase(IModConsole console, IModManifest manifest) : base(console) { Manifest = manifest; Storage = new ModStorage(manifest); }
public ModStorage(IModManifest manifest) { _manifest = manifest; }
public void Init(IModHelper modHelper, IModManifest manifest) { ModHelper = modHelper; ModManifest = manifest; DontDestroyOnLoad(gameObject); }
public OwmlConfigMenu(IModConsole console, IModManifest manifest, IOwmlConfig config, IOwmlConfig defaultConfig) : base(console, manifest) { _config = config; _defaultConfig = defaultConfig; }
public ModAssets(IModConsole console, IModManifest manifest) { _console = console; _manifest = manifest; _objImporter = new ObjImporter(); }
public ModData(IModManifest manifest, IModConfig config, IModConfig defaultConfig) { Manifest = manifest; Config = config; DefaultConfig = defaultConfig; }
internal static void CallWriteCallback(IModManifest manifest, string text) { OnConsole?.Invoke(manifest, text); }
/// <summary> /// Registers a mod /// </summary> /// <param name="itemId">The UniqueID of the mod</param> /// <param name="item">The mod manifest</param> public static void RegisterItem(UniqueId <string> itemId, IModManifest item) { RegistryInstance.RegisterItem(itemId, item); }
public ModStorage(IModConsole console, IModManifest manifest) { _console = console; _manifest = manifest; }