|
1 | 1 | package com.klikli_dev.occultism_kubejs;
|
2 | 2 |
|
3 | 3 | import com.klikli_dev.occultism.crafting.recipe.RitualRecipe;
|
| 4 | +import com.klikli_dev.occultism_kubejs.component.ConditionComponent; |
4 | 5 | import com.klikli_dev.occultism_kubejs.component.EntityToSacrificeComponent;
|
5 |
| -import com.klikli_dev.occultism_kubejs.component.EntityToSummonSettingsComponent; |
6 |
| -import com.klikli_dev.occultism_kubejs.component.RitualRequirementSettingsComponent; |
7 |
| -import com.klikli_dev.occultism_kubejs.component.RitualStartSettingsComponent; |
8 | 6 | import dev.latvian.mods.kubejs.recipe.RecipeKey;
|
9 | 7 | import dev.latvian.mods.kubejs.recipe.component.*;
|
10 | 8 | import dev.latvian.mods.kubejs.recipe.schema.RecipeSchema;
|
|
15 | 13 | import net.minecraft.world.entity.EntityType;
|
16 | 14 | import net.minecraft.world.item.ItemStack;
|
17 | 15 | import net.minecraft.world.item.crafting.Ingredient;
|
| 16 | +import net.neoforged.neoforge.common.conditions.ICondition; |
18 | 17 |
|
19 | 18 | import java.util.List;
|
20 | 19 |
|
21 | 20 | public interface RitualRecipeSchema {
|
| 21 | + RecipeKey<ItemStack> RESULT = ItemStackComponent.ITEM_STACK.outputKey("result").allowEmpty(); |
| 22 | + RecipeKey<List<Ingredient>> INGREDIENTS = IngredientComponent.INGREDIENT.asList().inputKey("ingredients"); |
22 | 23 | RecipeKey<String> RITUAL_TYPE = StringComponent.ID.inputKey("ritual_type").alt("ritualType").optional("occultism:craft").alwaysWrite();
|
23 |
| - RecipeKey<RitualRecipe.RitualRequirementSettings> RITUAL_REQUIREMENT_SETTINGS = RitualRequirementSettingsComponent.RITUAL_REQUIREMENT_SETTINGS.inputKey("ritual_requirement_settings").alt("ritualRequirementSettings").alwaysWrite(); |
24 |
| - RecipeKey<RitualRecipe.RitualStartSettings> RITUAL_START_SETTINGS = RitualStartSettingsComponent.RITUAL_START_SETTINGS.inputKey("ritual_start_settings").alt("ritualStartSettings").alwaysWrite(); |
25 |
| - RecipeKey<RitualRecipe.EntityToSummonSettings> ENTITY_TO_SUMMON_SETTINGS = EntityToSummonSettingsComponent.ENTITY_TO_SUMMON_SETTINGS.outputKey("entity_to_summon_settings").alt("entityToSummonSettings") |
26 |
| - .defaultOptional(); |
| 24 | + RecipeKey<String> ENTITY_TO_SUMMON = StringComponent.ID.inputKey("entity_to_summon").alt("entityToSummon").alt("summon").defaultOptional(); |
| 25 | + RecipeKey<TagKey<EntityType<?>>> ENTITY_TAG_TO_SUMMON = TagKeyComponent.ENTITY_TYPE.inputKey("entity_tag_to_summon").alt("entityTagToSummon").alt("summonTag").defaultOptional(); |
| 26 | + RecipeKey<String> ENTITY_NBT = StringComponent.ANY.inputKey("entity_nbt").alt("entityNbt").defaultOptional(); |
| 27 | + RecipeKey<Ingredient> ACTIVATION_ITEM = IngredientComponent.INGREDIENT.inputKey("activation_item").alt("activationItem"); |
| 28 | + RecipeKey<String> PENTACLE_ID = StringComponent.ID.inputKey("pentacle_id").alt("pentacleId").alt("pentacle"); |
| 29 | + RecipeKey<TickDuration> DURATION = TimeComponent.TICKS.inputKey("duration").optional(TickDuration.wrap(30)); |
| 30 | + RecipeKey<Integer> SPIRIT_MAX_AGE = NumberComponent.INT.inputKey("spirit_max_age").alt("spiritMaxAge").alt("maxAge").optional(-1); |
| 31 | + RecipeKey<String> SPIRIT_JOB_TYPE = StringComponent.ID.inputKey("spirit_job_type").alt("spiritJobType").alt("jobType").defaultOptional(); |
27 | 32 | RecipeKey<ItemStack> RITUAL_DUMMY = ItemStackComponent.ITEM_STACK.outputKey("ritual_dummy").alt("ritualDummy").alt("dummyItem").alt("dummy")
|
28 | 33 | // apparently there is never any static reference to this item, so let's just hope klikli never changes this lmao
|
29 | 34 | .optional(new ItemStack(BuiltInRegistries.ITEM.get(ResourceLocation.parse("occultism:ritual_dummy/custom_ritual"))))
|
30 | 35 | .alwaysWrite();
|
31 |
| - RecipeKey<ItemStack> RESULT = ItemStackComponent.ITEM_STACK.outputKey("result").allowEmpty(); |
| 36 | + |
| 37 | + RecipeKey<RitualRecipe.EntityToSacrifice> ENTITY_TO_SACRIFICE = EntityToSacrificeComponent.ENTITY_TO_SACRIFICE |
| 38 | + .inputKey("entity_to_sacrifice").alt("entityToSacrifice").alt("sacrifice") |
| 39 | + .defaultOptional(); |
| 40 | + RecipeKey<Ingredient> ITEM_TO_USE = IngredientComponent.INGREDIENT.inputKey("item_to_use") |
| 41 | + .alt("itemToUse").alt("useItem").optional(Ingredient.EMPTY).allowEmpty(); |
32 | 42 | RecipeKey<String> COMMAND = StringComponent.ANY.inputKey("command").defaultOptional();
|
| 43 | + RecipeKey<ICondition> CONDITION = ConditionComponent.CONDITION.inputKey("condition").alt("startCondition").defaultOptional(); |
33 | 44 |
|
34 | 45 | RecipeSchema SCHEMA = new RecipeSchema(
|
35 | 46 | // all the required keys first
|
36 |
| - RESULT, |
37 |
| - RITUAL_REQUIREMENT_SETTINGS, RITUAL_START_SETTINGS, |
| 47 | + RESULT, INGREDIENTS, ACTIVATION_ITEM, PENTACLE_ID, |
38 | 48 | // and now all the optionals...
|
39 |
| - ENTITY_TO_SUMMON_SETTINGS, RITUAL_DUMMY, RITUAL_TYPE, COMMAND |
| 49 | + DURATION, SPIRIT_MAX_AGE, SPIRIT_JOB_TYPE, RITUAL_DUMMY, RITUAL_TYPE, |
| 50 | + ENTITY_TO_SUMMON, ENTITY_TAG_TO_SUMMON, ENTITY_NBT, ENTITY_TO_SACRIFICE, |
| 51 | + ITEM_TO_USE, COMMAND, CONDITION |
40 | 52 | ).uniqueId(RITUAL_DUMMY);
|
41 | 53 |
|
42 | 54 | }
|
0 commit comments