public CustomNPCPlugin(Main game) : base(game) { eventManager = new EventManager(); UsingSEConomy = File.Exists(Path.Combine("ServerPlugins", "Wolfje.Plugins.SEconomy.dll")); definitionManager = new DefinitionManager(); #if USE_APPDOMAIN pluginDomain = CreateNewPluginDomain(); #endif ////pluginDomain.AssemblyResolve += PluginDomain_OnAssemblyResolve; /* * foreach (AssemblyName asm in Assembly.GetExecutingAssembly().GetReferencedAssemblies()) * { * pluginDomain.Load(asm); * } * * pluginDomain.Load(Assembly.GetExecutingAssembly().GetName()); */ #if USE_APPDOMAIN pluginManager = pluginDomain.CreateInstanceAndUnwrap <PluginManager <NPCPlugin> >(eventManager, definitionManager); #else pluginManager = new PluginManager <NPCPlugin>(eventManager, definitionManager); #endif }
/// <summary> /// This is called once the CustomNPCDefinitions have been loaded into the DefinitionManager. /// </summary> /// <param name="definitions"></param> internal void LoadFrom(DefinitionManager definitions) { foreach (var pair in definitions.Definitions) { string id = pair.Key; CustomNPCDefinition definition = pair.Value; CustomNPCs.Add(id, definition); foreach (var spawning in definition.customNPCSpawning) { if (spawning.spawnBiome != BiomeTypes.None) { AddCustomNPCToBiome(spawning.spawnBiome, id, spawning); } if (!string.IsNullOrEmpty(spawning.spawnRegion)) { AddCustomNPCToRegion(spawning.spawnRegion, id, spawning); } } } }
internal static void LoadFrom(DefinitionManager definitions) { Data.LoadFrom(definitions); }