public void AddMount(string name, ModMountData mount, string texture,
IDictionary <MountTextureType, string> extraTextures = null)
{
int id;
if (Mount.mounts == null || Mount.mounts.Length == MountID.Count)
{
Mount.Initialize();
}
id = MountLoader.ReserveMountID();
mount.Name = name;
mount.Type = id;
mountDatas[name] = mount;
MountLoader.mountDatas[id] = mount;
mount.texture = texture;
mount.mod = this;
if (extraTextures != null)
{
foreach (MountTextureType textureType in Enum.GetValues(typeof(MountTextureType)))
{
if (extraTextures.ContainsKey(textureType) && ModLoader.TextureExists(extraTextures[textureType]))
{
Texture2D extraTexture = ModLoader.GetTexture(extraTextures[textureType]);
switch (textureType)
{
case MountTextureType.Back:
mount.mountData.backTexture = extraTexture;
break;
case MountTextureType.BackGlow:
mount.mountData.backTextureGlow = extraTexture;
break;
case MountTextureType.BackExtra:
mount.mountData.backTextureExtra = extraTexture;
break;
case MountTextureType.BackExtraGlow:
mount.mountData.backTextureExtraGlow = extraTexture;
break;
case MountTextureType.Front:
mount.mountData.frontTexture = extraTexture;
break;
case MountTextureType.FrontGlow:
mount.mountData.frontTextureGlow = extraTexture;
break;
case MountTextureType.FrontExtra:
mount.mountData.frontTextureExtra = extraTexture;
break;
case MountTextureType.FrontExtraGlow:
mount.mountData.frontTextureExtraGlow = extraTexture;
break;
}
}
}
}
}