public bool CanDelete()
        {
            if (this.SaveData == null || this.SaveData.AnimalData == null || (!Singleton <Manager.Map> .IsInstance() || !Singleton <Resources> .IsInstance()))
            {
                return(true);
            }
            AIProject.SaveData.AnimalData animalData = this.SaveData.AnimalData;
            int itemCategoryId = animalData.ItemCategoryID;
            int itemId         = animalData.ItemID;

            if (Singleton <Resources> .Instance.GameInfo.GetItem(itemCategoryId, itemId) == null)
            {
                return(true);
            }
            Manager.Map instance = Singleton <Manager.Map> .Instance;
            List <ValueTuple <int, List <StuffItem> > > inventoryList = instance.GetInventoryList();

            if (((IReadOnlyList <ValueTuple <int, List <StuffItem> > >)inventoryList).IsNullOrEmpty <ValueTuple <int, List <StuffItem> > >())
            {
                instance.ReturnInventoryList(inventoryList);
                return(true);
            }
            StuffItem stuffItem = new StuffItem(itemCategoryId, itemId, 1);
            bool      flag      = false;

            using (List <ValueTuple <int, List <StuffItem> > > .Enumerator enumerator = inventoryList.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    ValueTuple <int, List <StuffItem> > current = enumerator.Current;
                    int capacity          = (int)current.Item1;
                    List <StuffItem> self = (List <StuffItem>)current.Item2;
                    int possible          = 0;
                    StuffItemExtensions.CanAddItem((IReadOnlyCollection <StuffItem>)self, capacity, stuffItem, out possible);
                    flag = stuffItem.Count <= possible;
                    if (flag)
                    {
                        self.AddItem(stuffItem);
                        break;
                    }
                }
            }
            return(flag);
        }
        private ValueTuple <AIProject.SaveData.AnimalData, PetChicken> CreateChicken(
            AIProject.SaveData.Environment.ChickenInfo info)
        {
            ValueTuple <AIProject.SaveData.AnimalData, PetChicken> valueTuple;

            ((ValueTuple <AIProject.SaveData.AnimalData, PetChicken>) ref valueTuple).\u002Ector((AIProject.SaveData.AnimalData)null, (PetChicken)null);
            if (info == null || !Singleton <AnimalManager> .IsInstance() || Object.op_Equality((Object)this._currentFarmPoint, (Object)null))
            {
                return(valueTuple);
            }
            int        _animalTypeID = 1;
            AnimalBase animalBase    = Singleton <AnimalManager> .Instance.CreateBase(_animalTypeID, 1);

            IPetAnimal petAnimal = animalBase as IPetAnimal;

            if (Object.op_Equality((Object)animalBase, (Object)null))
            {
                return(valueTuple);
            }
            ((Component)animalBase).get_transform().SetParent(this._currentFarmPoint.AnimalRoot, true);
            AIProject.SaveData.AnimalData animalData = new AIProject.SaveData.AnimalData();
            animalData.AnimalID         = animalBase.AnimalID;
            animalData.RegisterID       = this._currentFarmPoint.RegisterID;
            animalData.AnimalType       = AnimalTypes.Chicken;
            animalData.AnimalTypeID     = _animalTypeID;
            animalData.InitAnimalTypeID = true;
            animalData.BreedingType     = BreedingTypes.Pet;
            animalData.Nickname         = info.name;
            ItemIDKeyPair itemId = animalBase.ItemID;

            animalData.ItemCategoryID = itemId.categoryID;
            animalData.ItemID         = itemId.itemID;
            if (petAnimal != null)
            {
                petAnimal.AnimalData = animalData;
                if (animalBase is PetChicken)
                {
                    (animalBase as PetChicken).Initialize(this._currentFarmPoint);
                }
            }
            valueTuple.Item1 = (__Null)animalData;
            valueTuple.Item2 = (__Null)(animalBase as PetChicken);
            return(valueTuple);
        }
Beispiel #3
0
 public AnimalData(AnimalData data)
 {
     this.Copy(data);
 }