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