2021-10-13 05:08:31 +02:00
|
|
|
package de.ellpeck.actuallyadditions.data;
|
|
|
|
|
|
|
|
import com.google.gson.JsonObject;
|
|
|
|
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
|
|
|
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
|
|
|
import de.ellpeck.actuallyadditions.mod.crafting.LaserRecipe;
|
2021-10-13 22:42:48 +02:00
|
|
|
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
|
2021-10-13 05:08:31 +02:00
|
|
|
import net.minecraft.data.DataGenerator;
|
2024-03-02 21:23:08 +01:00
|
|
|
import net.minecraft.data.HashCache;
|
|
|
|
import net.minecraft.data.recipes.FinishedRecipe;
|
|
|
|
import net.minecraft.data.recipes.RecipeProvider;
|
|
|
|
import net.minecraft.resources.ResourceLocation;
|
2021-10-13 22:42:48 +02:00
|
|
|
import net.minecraft.tags.ItemTags;
|
2024-03-02 21:23:08 +01:00
|
|
|
import net.minecraft.tags.Tag;
|
|
|
|
import net.minecraft.tags.TagKey;
|
|
|
|
import net.minecraft.world.item.Item;
|
|
|
|
import net.minecraft.world.item.Items;
|
|
|
|
import net.minecraft.world.item.crafting.Ingredient;
|
|
|
|
import net.minecraft.world.level.ItemLike;
|
2021-10-13 05:08:31 +02:00
|
|
|
import net.minecraftforge.common.Tags;
|
|
|
|
|
|
|
|
import java.nio.file.Path;
|
|
|
|
import java.util.function.Consumer;
|
|
|
|
|
|
|
|
public class LaserRecipeGenerator extends RecipeProvider {
|
|
|
|
public LaserRecipeGenerator(DataGenerator p_i48262_1_) {
|
|
|
|
super(p_i48262_1_);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2024-03-02 21:23:08 +01:00
|
|
|
protected void saveAdvancement(HashCache pCache, JsonObject pAdvancementJson, Path pPath) {
|
2021-10-13 05:08:31 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2024-03-02 21:23:08 +01:00
|
|
|
protected void buildCraftingRecipes(Consumer<FinishedRecipe> consumer) {
|
2021-10-13 22:42:48 +02:00
|
|
|
//Crystal Blocks
|
|
|
|
laserCrystalizeRecipe(consumer, ActuallyBlocks.RESTONIA_CRYSTAL.getItem(), Tags.Items.STORAGE_BLOCKS_REDSTONE, 400);
|
|
|
|
laserCrystalizeRecipe(consumer, ActuallyBlocks.PALIS_CRYSTAL.getItem(), Tags.Items.STORAGE_BLOCKS_LAPIS, 400);
|
|
|
|
laserCrystalizeRecipe(consumer, ActuallyBlocks.DIAMATINE_CRYSTAL.getItem(), Tags.Items.STORAGE_BLOCKS_DIAMOND, 600);
|
|
|
|
laserCrystalizeRecipe(consumer, ActuallyBlocks.EMERADIC_CRYSTAL.getItem(), Tags.Items.STORAGE_BLOCKS_EMERALD, 1000);
|
|
|
|
laserCrystalizeRecipe(consumer, ActuallyBlocks.VOID_CRYSTAL.getItem(), Tags.Items.STORAGE_BLOCKS_COAL, 600);
|
|
|
|
laserCrystalizeRecipe(consumer, ActuallyBlocks.ENORI_CRYSTAL.getItem(), Tags.Items.STORAGE_BLOCKS_IRON, 800);
|
2021-10-13 05:08:31 +02:00
|
|
|
|
2021-10-13 22:42:48 +02:00
|
|
|
//Crystal Items
|
|
|
|
laserCrystalizeRecipe(consumer, ActuallyItems.RESTONIA_CRYSTAL.get(), Tags.Items.DUSTS_REDSTONE, 40);
|
|
|
|
laserCrystalizeRecipe(consumer, ActuallyItems.PALIS_CRYSTAL.get(), Tags.Items.GEMS_LAPIS, 40);
|
|
|
|
laserCrystalizeRecipe(consumer, ActuallyItems.DIAMATINE_CRYSTAL.get(), Tags.Items.GEMS_DIAMOND, 60);
|
|
|
|
laserCrystalizeRecipe(consumer, ActuallyItems.EMERADIC_CRYSTAL.get(), Tags.Items.GEMS_EMERALD, 100);
|
|
|
|
laserCrystalizeRecipe(consumer, ActuallyItems.VOID_CRYSTAL.get(), ItemTags.COALS, 60);
|
|
|
|
laserCrystalizeRecipe(consumer, ActuallyItems.ENORI_CRYSTAL.get(), Tags.Items.INGOTS_IRON, 80);
|
2021-10-13 05:08:31 +02:00
|
|
|
|
2021-10-13 22:42:48 +02:00
|
|
|
//Lenses
|
2021-11-24 17:57:31 +01:00
|
|
|
laserRecipe(consumer, ActuallyItems.LENS_OF_COLOR.get(), ActuallyItems.LENS.get(), 5000);
|
|
|
|
laserRecipe(consumer, ActuallyItems.LENS_OF_DETONATION.get(), ActuallyItems.LENS_OF_COLOR.get(), 5000);
|
|
|
|
laserRecipe(consumer, ActuallyItems.LENS_OF_CERTAIN_DEATH.get(), ActuallyItems.LENS_OF_DETONATION.get(), 5000);
|
|
|
|
laserRecipe(consumer, ActuallyItems.LENS.get(), ActuallyItems.LENS_OF_CERTAIN_DEATH.get(), 5000);
|
2021-10-13 22:42:48 +02:00
|
|
|
|
|
|
|
//Relays
|
|
|
|
laserRecipe(consumer, ActuallyBlocks.LASER_RELAY_FLUIDS.getItem(), ActuallyBlocks.LASER_RELAY.getItem(), 2000);
|
|
|
|
laserRecipe(consumer, ActuallyBlocks.LASER_RELAY_ITEM.getItem(), ActuallyBlocks.LASER_RELAY_FLUIDS.getItem(), 2000);
|
|
|
|
laserRecipe(consumer, ActuallyBlocks.LASER_RELAY.getItem(), ActuallyBlocks.LASER_RELAY_ITEM.getItem(), 2000);
|
|
|
|
|
|
|
|
//Misc
|
|
|
|
laserRecipe(consumer, Items.SOUL_SAND, Tags.Items.SAND, 20000);
|
|
|
|
laserRecipe(consumer, Items.LEATHER, Items.ROTTEN_FLESH, 20000);
|
|
|
|
laserRecipe(consumer, Items.NETHER_WART, Items.RED_MUSHROOM, 150000);
|
|
|
|
laserRecipe(consumer, Items.PRISMARINE_SHARD, Items.QUARTZ, 30000);
|
2021-11-24 17:57:31 +01:00
|
|
|
laserRecipe(consumer, ActuallyItems.CRYSTALLIZED_CANOLA_SEED.get(), ActuallyItems.CANOLA_SEEDS.get(), 2000);
|
2021-10-13 22:42:48 +02:00
|
|
|
laserRecipe(consumer, ActuallyBlocks.ETHETIC_WHITE_BLOCK.getItem(), Items.QUARTZ_BLOCK, 10);
|
|
|
|
laserRecipe(consumer, ActuallyBlocks.ETHETIC_GREEN_BLOCK.getItem(), Items.CHISELED_QUARTZ_BLOCK, 10);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2024-03-02 21:23:08 +01:00
|
|
|
private void laserRecipe(Consumer<FinishedRecipe> consumer, ItemLike output, Ingredient input, int energy) {
|
|
|
|
consumer.accept(new LaserRecipe.Result(new ResourceLocation(ActuallyAdditions.MODID, "laser/" + output.asItem().getRegistryName().getPath()),
|
2021-10-13 22:42:48 +02:00
|
|
|
input, energy, output));
|
|
|
|
}
|
2024-03-02 21:23:08 +01:00
|
|
|
private void laserRecipe(Consumer<FinishedRecipe> consumer, ItemLike output, TagKey<Item> input, int energy) {
|
|
|
|
consumer.accept(new LaserRecipe.Result(new ResourceLocation(ActuallyAdditions.MODID, "laser/" + output.asItem().getRegistryName().getPath()),
|
2021-10-13 22:42:48 +02:00
|
|
|
Ingredient.of(input), energy, output));
|
|
|
|
}
|
2024-03-02 21:23:08 +01:00
|
|
|
private void laserRecipe(Consumer<FinishedRecipe> consumer, ItemLike output, ItemLike input, int energy) {
|
|
|
|
consumer.accept(new LaserRecipe.Result(new ResourceLocation(ActuallyAdditions.MODID, "laser/" + output.asItem().getRegistryName().getPath()),
|
2021-10-13 22:42:48 +02:00
|
|
|
Ingredient.of(input), energy, output));
|
|
|
|
}
|
2024-03-02 21:23:08 +01:00
|
|
|
private void laserCrystalizeRecipe(Consumer<FinishedRecipe> consumer, ItemLike output, Ingredient input, int energy) {
|
|
|
|
consumer.accept(new LaserRecipe.Result(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_" + output.asItem().getRegistryName().getPath()),
|
2021-10-13 22:42:48 +02:00
|
|
|
input, energy, output));
|
|
|
|
}
|
2024-03-02 21:23:08 +01:00
|
|
|
private void laserCrystalizeRecipe(Consumer<FinishedRecipe> consumer, ItemLike output, TagKey<Item> input, int energy) {
|
|
|
|
consumer.accept(new LaserRecipe.Result(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_" + output.asItem().getRegistryName().getPath()),
|
2021-10-13 22:42:48 +02:00
|
|
|
Ingredient.of(input), energy, output));
|
|
|
|
}
|
2024-03-02 21:23:08 +01:00
|
|
|
private void laserCrystalizeRecipe(Consumer<FinishedRecipe> consumer, ItemLike output, ItemLike input, int energy) {
|
|
|
|
consumer.accept(new LaserRecipe.Result(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_" + output.asItem().getRegistryName().getPath()),
|
2021-10-13 22:42:48 +02:00
|
|
|
Ingredient.of(input), energy, output));
|
2021-10-13 05:08:31 +02:00
|
|
|
}
|
|
|
|
}
|