fix(core): Fixes type caching & cleanup (#422)

- [X] Fixes some issues with the type caching
- [X] Changes type check default to ignore case
- [X] Splits out type caching of insensitive and sensitive lists. This means less stuff to iterate through when checking a type against the string.
- [X] Adds an ArrayEnumerator, mostly for reference purposes (copy/paste as needed)
This commit is contained in:
Kamron Batman 2021-01-20 00:10:33 -08:00 committed by GitHub
parent b921c38879
commit e869c105d0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 253 additions and 96 deletions

View file

@ -51,7 +51,7 @@ namespace Server.Engines.MLQuests
var split = line.Split('\t');
var type = AssemblyHandler.FindFirstTypeForName(split[0]);
var type = AssemblyHandler.FindTypeByName(split[0]);
if (type == null || !baseQuestType.IsAssignableFrom(type))
{
@ -87,7 +87,7 @@ namespace Server.Engines.MLQuests
for (var i = 1; i < split.Length; ++i)
{
var questerType = AssemblyHandler.FindFirstTypeForName(split[i]);
var questerType = AssemblyHandler.FindTypeByName(split[i]);
if (questerType == null || !baseQuesterType.IsAssignableFrom(questerType))
{
@ -190,7 +190,7 @@ namespace Server.Engines.MLQuests
return;
}
var index = AssemblyHandler.FindFirstTypeForName(e.GetString(0));
var index = AssemblyHandler.FindTypeByName(e.GetString(0));
if (index == null || !Quests.TryGetValue(index, out var quest))
{
@ -216,7 +216,7 @@ namespace Server.Engines.MLQuests
return;
}
var index = AssemblyHandler.FindFirstTypeForName(e.GetString(0));
var index = AssemblyHandler.FindTypeByName(e.GetString(0));
if (index == null || !Quests.TryGetValue(index, out var quest))
{
@ -773,7 +773,7 @@ namespace Server.Engines.MLQuests
return null; // not serialized
}
var questType = AssemblyHandler.FindFirstTypeForName(typeName);
var questType = AssemblyHandler.FindTypeByFullName(typeName);
if (questType == null)
{