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; } } } } }