示例#1
0
        // VCCase
        public static CreationItemClass ECreationToItemClass(ECreation type)
        {
            switch (type)
            {
            case ECreation.Aircraft: return(CreationItemClass.Aircraft);

            case ECreation.Vehicle: return(CreationItemClass.Vehicle);

            case ECreation.Sword:
            case ECreation.SwordLarge:
            case ECreation.SwordDouble: return(CreationItemClass.Sword);

            case ECreation.Bow: return(CreationItemClass.Bow);

            case ECreation.Axe: return(CreationItemClass.Axe);

            case ECreation.Boat: return(CreationItemClass.Boat);

            case ECreation.HandGun: return(CreationItemClass.HandGun);

            case ECreation.Rifle: return(CreationItemClass.Rifle);

            case ECreation.AITurret: return(CreationItemClass.AITurret);

            case ECreation.Robot: return(CreationItemClass.Robot);

            case ECreation.Shield: return(CreationItemClass.Shield);

            case ECreation.SimpleObject: return(CreationItemClass.SimpleObject);

            default: return(CreationItemClass.None);
            }
        }
示例#2
0
            public static int GetCreationCount(this ItemPackage package, ECreation type)
            {
                int count = 0;

                for (int i = 0; i < (int)ItemAsset.ItemPackage.ESlotType.Max; i++)
                {
                    SlotList accessor = package.GetSlotList((ItemAsset.ItemPackage.ESlotType)i);
                    count += accessor.GetCreationCount(type);
                }
                return(count);
            }
示例#3
0
            public static int GetCreationItemCount(this PeEntity entity, ECreation type)
            {
                PlayerPackageCmpt pkg = entity.GetCmpt <PlayerPackageCmpt>();

                if (null == pkg)
                {
                    return(0);
                }

                return(pkg.package.GetCreationCount(type));
            }
示例#4
0
            public static List <int> GetCreationInstanceId(this ItemPackage package, ECreation type)
            {
                List <int> tmp = new List <int>();

                for (int i = 0; i < (int)ItemAsset.ItemPackage.ESlotType.Max; i++)
                {
                    SlotList accessor = package.GetSlotList((ItemAsset.ItemPackage.ESlotType)i);
                    foreach (var item in accessor.GetCreationInstanceId(type))
                    {
                        tmp.Add(item);
                    }
                }
                return(tmp);
            }
示例#5
0
            public static List <int> GetCreationInstanceId(this SlotList slotList, ECreation type)
            {
                List <int> tmp = new List <int>();

                foreach (var item in slotList)
                {
                    if (item == null)
                    {
                        continue;
                    }
                    if (WhiteCat.CreationHelper.GetCreationItemClass(item) != WhiteCat.CreationHelper.ECreationToItemClass(type))
                    {
                        continue;
                    }
                    tmp.Add(item.instanceId);
                }
                return(tmp);
            }
示例#6
0
            public static int GetCreationCount(this SlotList slotList, ECreation type)
            {
                int count = 0;

                foreach (var item in slotList)
                {
                    if (item == null)
                    {
                        continue;
                    }
                    if (WhiteCat.CreationHelper.GetCreationItemClass(item) == WhiteCat.CreationHelper.ECreationToItemClass(type))
                    {
                        count += item.stackCount;
                    }
                }

                return(count);
            }
示例#7
0
    public static void CopyCretion(ECreation type)
    {
        Pathea.PlayerPackageCmpt pkg = Pathea.PeCreature.Instance.mainPlayer.GetCmpt <Pathea.PlayerPackageCmpt>();
        if (null == pkg)
        {
            return;
        }
        List <int> creationInstanceid = pkg.package.GetCreationInstanceId(type);

        if (creationInstanceid == null || creationInstanceid.Count == 0)
        {
            return;
        }
        CreationData cd = CreationMgr.GetCreation(creationInstanceid[0]);

        if (Pathea.PeGameMgr.IsMulti)
        {
            ulong hash   = CRC64.Compute(cd.m_Resource);
            ulong fileId = SteamWorkShop.GetFileHandle(hash);
            VCGameMediator.SendIsoDataToServer(cd.m_IsoData.m_HeadInfo.Name, cd.m_IsoData.m_HeadInfo.SteamDesc,
                                               cd.m_IsoData.m_HeadInfo.SteamPreview, cd.m_Resource, SteamWorkShop.AddNewVersionTag(cd.m_IsoData.m_HeadInfo.ScenePaths()), true, fileId, true);
        }
        else
        {
            CreationData new_creation = new CreationData();
            new_creation.m_ObjectID   = CreationMgr.QueryNewId();
            new_creation.m_RandomSeed = UnityEngine.Random.value;
            new_creation.m_Resource   = cd.m_Resource;
            new_creation.ReadRes();

            // Attr
            new_creation.GenCreationAttr();
            if (new_creation.m_Attribute.m_Type == ECreation.Null)
            {
                Debug.LogWarning("Creation is not a valid type !");
                new_creation.Destroy();
                return;
            }

            // SaveRes
            if (new_creation.SaveRes())
            {
                new_creation.BuildPrefab();
                new_creation.Register();
                CreationMgr.AddCreation(new_creation);
                ItemAsset.ItemObject item;
                int send_retval = new_creation.SendToPlayer(out item);

                Debug.Log("Make creation succeed !");
                if (send_retval == 0)
                {
                    return; // Error
                }
                else if (send_retval == -1)
                {
                    return; // Item Package Full
                }
                else
                {
                    return; // Succeed
                }
            }
            else
            {
                Debug.LogWarning("Save creation resource file failed !");
                new_creation.Destroy();
                return;
            }
        }
    }
示例#8
0
 public List <int> GetCreationInstanceId(ECreation type)
 {
     return(_playerPak.GetCreationInstanceId(type));
 }
示例#9
0
 public int GetCreationCount(ECreation type)
 {
     return(_playerPak.GetCreationCount(type));
 }