コード例 #1
0
ファイル: ProtoItemFishViewModel.cs プロジェクト: Djekke/CNEI
        /// <summary>
        /// Initialize entity relationships with each other - invoked after all entity view Models created,
        /// so you can access them by using <see cref="EntityViewModelsManager.GetEntityViewModel" />
        /// and <see cref="EntityViewModelsManager.GetAllEntityViewModels" />.
        /// </summary>
        public override void InitAdditionalRecipes()
        {
            base.InitAdditionalRecipes();

            if (!(ProtoEntity is IProtoItemFish fish))
            {
                return;
            }

            if (fish.DropItemsList != null &&
                fish.DropItemsList.EnumerateAllItems().Any())
            {
                Droplist = new DroplistRecipeViewModel(this, fish.DropItemsList.EnumerateAllItems());
                EntityViewModelsManager.AddRecipe(Droplist);
            }

            if (fish.BaitWeightList.Entries.Count > 0)
            {
                foreach (var baitWithWeight in fish.BaitWeightList.Entries)
                {
                    var baitVM = EntityViewModelsManager.GetEntityViewModel(baitWithWeight.Value);
                    if (baitVM is ProtoItemFishingBaitViewModel baitViewModel)
                    {
                        baitViewModel.AddRelatedFish(this, baitWithWeight.Weight);
                    }
                    else
                    {
                        Api.Logger.Error("CNEI: Wrong bait veiw model " + baitVM);
                    }
                }
            }
        }
コード例 #2
0
 /// <summary>
 /// Initialize entity relationships with each other - invoked after all entity view Models created,
 /// so you can access them by using <see cref="EntityViewModelsManager.GetEntityViewModel" />
 /// and <see cref="EntityViewModelsManager.GetAllEntityViewModels" />.
 /// </summary>
 public override void InitAdditionalRecipes()
 {
     if (ProtoEntity is IProtoCharacterMob creature &&
         creature.LootDroplist != null &&
         creature.LootDroplist.EnumerateAllItems().Any())
     {
         Droplist = new DroplistRecipeViewModel(this, creature.LootDroplist.EnumerateAllItems());
         EntityViewModelsManager.AddRecipe(Droplist);
     }
 }
コード例 #3
0
 /// <summary>
 /// Initilize entity reletionships with each other - invoked after all entity view Models created,
 /// so you can access them by using <see cref="EntityViewModelsManager.GetEntityViewModel" />
 /// and <see cref="EntityViewModelsManager.GetAllEntityViewModels" />.
 /// </summary>
 public override void InitAdditionalRecipes()
 {
     if (ProtoEntity is IProtoObjectLoot loot &&
         loot.LootDroplist != null &&
         loot.LootDroplist.EnumerateAllItems().Any())
     {
         Droplist = new DroplistRecipeViewModel(this, loot.LootDroplist.EnumerateAllItems());
         EntityViewModelsManager.AddRecipe(Droplist);
     }
 }
コード例 #4
0
 /// <summary>
 /// Initialize entity relationships with each other - invoked after all entity view Models created,
 /// so you can access them by using <see cref="EntityViewModelsManager.GetEntityViewModel" />
 /// and <see cref="EntityViewModelsManager.GetAllEntityViewModels" />.
 /// </summary>
 public override void InitAdditionalRecipes()
 {
     if (ProtoEntity is ProtoObjectHackableContainer hackableContainer &&
         hackableContainer.LootDroplist != null &&
         hackableContainer.LootDroplist.EnumerateAllItems().Any())
     {
         Droplist = new DroplistRecipeViewModel(this, hackableContainer.LootDroplist.EnumerateAllItems());
         EntityViewModelsManager.AddRecipe(Droplist);
     }
 }
コード例 #5
0
 /// <summary>
 /// Initilize entity reletionships with each other - invoked after all entity view Models created,
 /// so you can access them by using <see cref="EntityViewModelsManager.GetEntityViewModel" />
 /// and <see cref="EntityViewModelsManager.GetAllEntityViewModels" />.
 /// </summary>
 public override void InitAdditionalRecipes()
 {
     if (ProtoEntity is IProtoObjectVegetation vegetation &&
         vegetation.DroplistOnDestroy != null &&
         vegetation.DroplistOnDestroy.EnumerateAllItems().Any())
     {
         DroplistOnDestroy = new DroplistRecipeViewModel(this, vegetation.DroplistOnDestroy.EnumerateAllItems());
         EntityViewModelsManager.AddRecipe(DroplistOnDestroy);
     }
 }
コード例 #6
0
        /// <summary>
        /// Initilize entity reletionships with each other - invoked after all entity view Models created,
        /// so you can access them by using <see cref="EntityViewModelsManager.GetEntityViewModel" />
        /// and <see cref="EntityViewModelsManager.GetAllEntityViewModels" />.
        /// </summary>
        public override void InitAdditionalRecipes()
        {
            base.InitAdditionalRecipes();

            if (ProtoEntity is IProtoItemSeed seed)
            {
                PlantRecipe = new PlantRecipeViewModel(this,
                                                       EntityViewModelsManager.GetEntityViewModel(seed.ObjectPlantProto));
                EntityViewModelsManager.AddRecipe(PlantRecipe);
            }
        }
コード例 #7
0
 /// <summary>
 /// Initilize entity reletionships with each other - invoked after all entity view Models created,
 /// so you can access them by using <see cref="EntityViewModelsManager.GetEntityViewModel" />
 /// and <see cref="EntityViewModelsManager.GetAllEntityViewModels" />.
 /// </summary>
 public override void InitAdditionalRecipes()
 {
     if (ProtoEntity is IProtoObjectLoot lootContainer &&
         lootContainer.LootDroplist != null &&
         lootContainer.LootDroplist.EnumerateAllItems().Any())
     {
         Droplist           = new RecipeViewModel(this, lootContainer.LootDroplist.EnumerateAllItems());
         DroplistVisibility = Visibility.Visible;
         EntityViewModelsManager.AddRecipe(Droplist);
     }
 }
コード例 #8
0
        /// <summary>
        /// Initilize entity reletionships with each other - invoked after all entity view Models created,
        /// so you can access them by using <see cref="EntityViewModelsManager.GetEntityViewModel" />
        /// and <see cref="EntityViewModelsManager.GetAllEntityViewModels" />.
        /// </summary>
        public override void InitAdditionalRecipes()
        {
            base.InitAdditionalRecipes();

            if (ProtoEntity is IProtoObjectGatherableVegetation gatherableVegetation &&
                gatherableVegetation.GatherDroplist != null &&
                gatherableVegetation.GatherDroplist.EnumerateAllItems().Any())
            {
                GatherDroplist = new DroplistRecipeViewModel(this,
                                                             gatherableVegetation.GatherDroplist.EnumerateAllItems());
                EntityViewModelsManager.AddRecipe(GatherDroplist);
            }
        }
コード例 #9
0
        public void AddConsumable([NotNull] ProtoEntityViewModel consumableViewModel, double intensity)
        {
            if (Consumables.Count == 0)
            {
                ConsumableEffect = new ConsumableEffectViewModel(this, consumableViewModel, intensity);
                EntityViewModelsManager.AddRecipe(ConsumableEffect);
            }
            else
            {
                ConsumableEffect.AddConsumable(consumableViewModel, intensity);
            }

            Consumables.Add(consumableViewModel);
        }
コード例 #10
0
ファイル: ProtoItemAmmoViewModel.cs プロジェクト: Djekke/CNEI
        public void AddCompatibleGun([NotNull] ProtoEntityViewModel gunViewModel)
        {
            if (CompatibleGuns.Count == 0)
            {
                AmmoUsage = new AmmoUsageViewModel(this, gunViewModel);
                EntityViewModelsManager.AddRecipe(AmmoUsage);
            }
            else
            {
                AmmoUsage.AddAmmoUsage(gunViewModel);
            }

            CompatibleGuns.Add(gunViewModel);
        }
コード例 #11
0
ファイル: ProtoVehicleViewModel.cs プロジェクト: Djekke/CNEI
        /// <summary>
        /// Initialize entity relationships with each other - invoked after all entity view Models created,
        /// so you can access them by using <see cref="EntityViewModelsManager.GetEntityViewModel" />
        /// and <see cref="EntityViewModelsManager.GetAllEntityViewModels" />.
        /// </summary>
        public override void InitAdditionalRecipes()
        {
            if (ProtoEntity is IProtoVehicle vehicle)
            {
                ListedInTechNodes = vehicle.ListedInTechNodes
                                    .Select(EntityViewModelsManager.GetEntityViewModel)
                                    .ToList().AsReadOnly();

                EntityViewModelsManager.AddRecipe(new VehicleBuildRecipeViewModel(this, vehicle));

                RepairRecipeVM = new VehicleRepairRecipeViewModel(this, vehicle);
                EntityViewModelsManager.AddRecipe(RepairRecipeVM);
            }
        }
コード例 #12
0
        public void AddRelatedFish([NotNull] ProtoEntityViewModel fishViewModel, double chance)
        {
            if (RelatedFish.Count == 0)
            {
                BaitUsage = new FishingViewModel(this, fishViewModel, chance);
                EntityViewModelsManager.AddRecipe(BaitUsage);
            }
            else
            {
                BaitUsage.AddBaitUsage(fishViewModel, chance);
            }

            RelatedFish.Add(fishViewModel);
        }
コード例 #13
0
        /// <summary>
        /// Initialize entity relationships with each other - invoked after all entity view Models created,
        /// so you can access them by using <see cref="EntityViewModelsManager.GetEntityViewModel" />
        /// and <see cref="EntityViewModelsManager.GetAllEntityViewModels" />.
        /// </summary>
        public override void InitAdditionalRecipes()
        {
            if (ProtoEntity is IProtoObjectMineral mineral)
            {
                if (mineral.DropItemsConfig == null)
                {
                    return;
                }

                HashSet <IProtoItem> droplist = new HashSet <IProtoItem>();
                droplist.AddRange(mineral.DropItemsConfig.Stage1.EnumerateAllItems());
                droplist.AddRange(mineral.DropItemsConfig.Stage2.EnumerateAllItems());
                droplist.AddRange(mineral.DropItemsConfig.Stage3.EnumerateAllItems());
                droplist.AddRange(mineral.DropItemsConfig.Stage4.EnumerateAllItems());
                if (droplist.Count > 0)
                {
                    Droplist = new DroplistRecipeViewModel(this, droplist);
                    EntityViewModelsManager.AddRecipe(Droplist);
                }
            }
        }
コード例 #14
0
        /// <summary>
        /// Initialize entity relationships with each other - invoked after all entity view Models created,
        /// so you can access them by using <see cref="EntityViewModelsManager.GetEntityViewModel" />
        /// and <see cref="EntityViewModelsManager.GetAllEntityViewModels" />.
        /// </summary>
        public override void InitAdditionalRecipes()
        {
            if (ProtoEntity is IProtoObjectStructure structure)
            {
                ListedInTechNodes = structure.ListedInTechNodes
                                    .Select(EntityViewModelsManager.GetEntityViewModel)
                                    .ToList().AsReadOnly();

                if (structure.ConfigBuild.IsAllowed &&
                    structure.ConfigBuild != null &&
                    structure.ConfigBuild.StageRequiredItems.Count > 0)
                {
                    EntityViewModelsManager.AddRecipe(new StructureBuildRecipeViewModel(this, structure.ConfigBuild));
                }

                if (structure.ConfigUpgrade != null)
                {
                    foreach (var upgradeEntry in structure.ConfigUpgrade.Entries)
                    {
                        EntityViewModelsManager.AddRecipe(new StructureUpgradeRecipeViewModel(this, upgradeEntry));
                    }
                }
            }
        }