Ejemplo n.º 1
0
    /// <summary>
    /// 设置船mod 或是船装备mod数据
    /// </summary>
    /// <param name="equipmentModL1"></param>
    /// <param name="GeneralModContainer"></param>
    /// <param name="ExclusivelyModContainer"></param>
    private void SetShipModOrShipEquipModData(EquipmentModL1 equipmentModL1, IModContainer GeneralModContainer, IModContainer ExclusivelyModContainer)
    {
        for (int i = 0; i < m_ModCellList.Count; i++)
        {
            m_ModCellList[i].Cleanup();
            if (i < GeneralModContainer.GetCurrentSizeMax())
            {
                m_ModCellList[i].SetBaseData(equipmentModL1, EquipmentModL2.General, GeneralModContainer.GetUID(), i);
            }
            else
            {
                m_ModCellList[i].SetBaseData(equipmentModL1, EquipmentModL2.Exclusively, ExclusivelyModContainer.GetUID(), i - (int)GeneralModContainer.GetCurrentSizeMax());
            }
        }

        IMod[] mods = GeneralModContainer.GetMods();
        if (mods != null && mods.Length > 0)
        {
            for (int i = 0; i < mods.Length; i++)
            {
                m_ModCellList[mods[i].GetPos()].SetData(mods[i]);
            }
        }
        mods = ExclusivelyModContainer.GetMods();
        int GeneralModCount = (int)GeneralModContainer.GetCurrentSizeMax();

        if (mods != null && mods.Length > 0)
        {
            for (int i = 0; i < mods.Length; i++)
            {
                m_ModCellList[mods[i].GetPos() + GeneralModCount].SetData(mods[i]);
            }
        }
    }
 public static Mod[] GetModsOfIdentifier(this IModContainer container, string identifier)
 {
     return(container.GetMods().Where(x => x.StackIdentifier == identifier).ToArray());
 }
 public static Mod[] GetModsOfType(this IModContainer container, Type type)
 {
     return(container.GetMods().Where(x => type.IsInstanceOfType(x)).ToArray());
 }
 public static T[] GetModsOfType <T> (this IModContainer container) where T : Mod
 {
     return((T[])container.GetMods().Where(x => x is T).ToArray());
 }