From ff27e16bc1b34914938162e091233177983cca68 Mon Sep 17 00:00:00 2001 From: Flanks255 <32142731+Flanks255@users.noreply.github.com> Date: Fri, 1 Apr 2022 21:50:39 -0500 Subject: [PATCH] Typo in crystallized. Phase 1 working to oil generator. --- src/generated/resources/.cache/cache | 4 + .../recipes/liquid_fuel/canola_oil.json | 11 ++ .../liquid_fuel/crystallized_canola_oil.json | 11 ++ .../liquid_fuel/empowered_canola_oil.json | 11 ++ .../liquid_fuel/refined_canola_oil.json | 11 ++ .../api/ActuallyAdditionsAPI.java | 1 + .../data/ActuallyAdditionsData.java | 2 +- .../data/FuelRecipeGenerator.java | 67 +++++++ .../data/ItemModelGenerator.java | 5 +- .../data/LootTableGenerator.java | 7 +- .../data/SolidFuelGenerator.java | 54 ------ .../mod/ActuallyAdditionsClient.java | 4 +- .../mod/crafting/ActuallyRecipes.java | 3 +- .../mod/crafting/FermentingRecipe.java | 5 + .../mod/crafting/InitCrafting.java | 2 +- .../mod/crafting/LiquidFuelRecipe.java | 183 ++++++++++++++++++ .../mod/fluids/InitFluids.java | 2 +- .../mod/items/CanolaSeed.java | 6 +- .../mod/util/ResourceReloader.java | 3 + 19 files changed, 319 insertions(+), 73 deletions(-) create mode 100644 src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/canola_oil.json create mode 100644 src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/crystallized_canola_oil.json create mode 100644 src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/empowered_canola_oil.json create mode 100644 src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/refined_canola_oil.json create mode 100644 src/main/java/de/ellpeck/actuallyadditions/data/FuelRecipeGenerator.java delete mode 100644 src/main/java/de/ellpeck/actuallyadditions/data/SolidFuelGenerator.java create mode 100644 src/main/java/de/ellpeck/actuallyadditions/mod/crafting/LiquidFuelRecipe.java diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 51ed9bc2b..05a94da81 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -806,6 +806,10 @@ ec31df01057ad65de89068b01f96b3fb9f837bb4 data/actuallyadditions/recipes/lens.jso 634680e59ff81f293e3c44fd871e84fca96336ea data/actuallyadditions/recipes/lens_of_disenchanting.json 9a958fc55ca0f759841f9813a8449639e175bbcc data/actuallyadditions/recipes/lens_of_the_killer.json 1d560167a16962d870f0a4bf0cf9e74ac1431b3c data/actuallyadditions/recipes/lens_of_the_miner.json +701af1122ed158e5d162815a9f744169031698f4 data/actuallyadditions/recipes/liquid_fuel/canola_oil.json +0c908206a367aa9c04f751d1f69aa50d6d09ce3a data/actuallyadditions/recipes/liquid_fuel/crystallized_canola_oil.json +901f642d13b3768f2a00fbbdd3482c7b4866867f data/actuallyadditions/recipes/liquid_fuel/empowered_canola_oil.json +cce14618f9e39666e2858bf09c3cc7197e758b1c data/actuallyadditions/recipes/liquid_fuel/refined_canola_oil.json 7821b149dc37caa85b587a0276307f1b5cefaa03 data/actuallyadditions/recipes/netherite_aiot.json 2e2b1a33e5ecfb72a818d2e4ba8fe083f49b041c data/actuallyadditions/recipes/palis_aiot.json 21106732cd37767564077f5f0d0de9cc651ada83 data/actuallyadditions/recipes/palis_axe.json diff --git a/src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/canola_oil.json b/src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/canola_oil.json new file mode 100644 index 000000000..2bc1573ba --- /dev/null +++ b/src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/canola_oil.json @@ -0,0 +1,11 @@ +{ + "type": "actuallyadditions:liquid_fuel", + "ingredient": { + "fluid": "actuallyadditions:canola_oil", + "amount": 50 + }, + "result": { + "total_energy": 4000, + "burn_time": 100 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/crystallized_canola_oil.json b/src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/crystallized_canola_oil.json new file mode 100644 index 000000000..134d61c73 --- /dev/null +++ b/src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/crystallized_canola_oil.json @@ -0,0 +1,11 @@ +{ + "type": "actuallyadditions:liquid_fuel", + "ingredient": { + "fluid": "actuallyadditions:crystallized_oil", + "amount": 50 + }, + "result": { + "total_energy": 28000, + "burn_time": 280 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/empowered_canola_oil.json b/src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/empowered_canola_oil.json new file mode 100644 index 000000000..dde7cea8e --- /dev/null +++ b/src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/empowered_canola_oil.json @@ -0,0 +1,11 @@ +{ + "type": "actuallyadditions:liquid_fuel", + "ingredient": { + "fluid": "actuallyadditions:empowered_oil", + "amount": 50 + }, + "result": { + "total_energy": 48000, + "burn_time": 400 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/refined_canola_oil.json b/src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/refined_canola_oil.json new file mode 100644 index 000000000..2f344e154 --- /dev/null +++ b/src/generated/resources/data/actuallyadditions/recipes/liquid_fuel/refined_canola_oil.json @@ -0,0 +1,11 @@ +{ + "type": "actuallyadditions:liquid_fuel", + "ingredient": { + "fluid": "actuallyadditions:refined_canola_oil", + "amount": 50 + }, + "result": { + "total_energy": 9600, + "burn_time": 120 + } +} \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/api/ActuallyAdditionsAPI.java b/src/main/java/de/ellpeck/actuallyadditions/api/ActuallyAdditionsAPI.java index cfa42dc58..636385661 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/api/ActuallyAdditionsAPI.java +++ b/src/main/java/de/ellpeck/actuallyadditions/api/ActuallyAdditionsAPI.java @@ -46,6 +46,7 @@ public final class ActuallyAdditionsAPI { public static final Map RECONSTRUCTOR_LENS_COLOR_CHANGERS = new HashMap<>(); public static final List SOLID_FUEL_RECIPES = new ArrayList<>(); + public static final List LIQUID_FUEL_RECIPES = new ArrayList<>(); public static final List PRESSING_RECIPES = new ArrayList<>(); public static final List FERMENTING_RECIPES = new ArrayList<>(); public static final List CONVERSION_LASER_RECIPES = new ArrayList<>(); diff --git a/src/main/java/de/ellpeck/actuallyadditions/data/ActuallyAdditionsData.java b/src/main/java/de/ellpeck/actuallyadditions/data/ActuallyAdditionsData.java index 3c2af8650..9ca8c99bf 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/data/ActuallyAdditionsData.java +++ b/src/main/java/de/ellpeck/actuallyadditions/data/ActuallyAdditionsData.java @@ -36,7 +36,7 @@ public class ActuallyAdditionsData { generator.addProvider(new LaserRecipeGenerator(generator)); generator.addProvider(new EmpoweringRecipeGenerator(generator)); generator.addProvider(new CrushingRecipeGenerator(generator)); - generator.addProvider(new SolidFuelGenerator(generator)); + generator.addProvider(new FuelRecipeGenerator(generator)); generator.addProvider(new MiscMachineRecipeGenerator(generator)); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/data/FuelRecipeGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/data/FuelRecipeGenerator.java new file mode 100644 index 000000000..aa608828b --- /dev/null +++ b/src/main/java/de/ellpeck/actuallyadditions/data/FuelRecipeGenerator.java @@ -0,0 +1,67 @@ +package de.ellpeck.actuallyadditions.data; + +import com.google.gson.JsonObject; +import de.ellpeck.actuallyadditions.api.ActuallyTags; +import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; +import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks; +import de.ellpeck.actuallyadditions.mod.crafting.LiquidFuelRecipe; +import de.ellpeck.actuallyadditions.mod.crafting.SolidFuelRecipe; +import de.ellpeck.actuallyadditions.mod.fluids.InitFluids; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.DirectoryCache; +import net.minecraft.data.IFinishedRecipe; +import net.minecraft.data.RecipeProvider; +import net.minecraft.item.Item; +import net.minecraft.item.Items; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.tags.ITag; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fluids.FluidStack; + +import javax.annotation.Nonnull; +import java.nio.file.Path; +import java.util.function.Consumer; + +public class FuelRecipeGenerator extends RecipeProvider { + public FuelRecipeGenerator(DataGenerator pGenerator) { + super(pGenerator); + } + + @Override + protected void saveAdvancement(@Nonnull DirectoryCache pCache, @Nonnull JsonObject pAdvancementJson, @Nonnull Path pPath) { + //Nah + } + + @Override + protected void buildShapelessRecipes(@Nonnull Consumer consumer) { + addSolid(consumer, "coal", Items.COAL, 32000, 1600); + addSolid(consumer, "stick", Items.STICK, 2000, 100); + addSolid(consumer, "tiny-coal", ActuallyTags.Items.TINY_COALS, 4000, 200); + addSolid(consumer, "charcoal", Items.CHARCOAL, 32000, 1600); + addSolid(consumer, "coal-block", Items.COAL_BLOCK, 320000, 16000); + addSolid(consumer, "charcoal-block", ActuallyBlocks.CHARCOAL_BLOCK.getItem(), 320000, 16000); + addSolid(consumer, "lava", Items.LAVA_BUCKET, 400000, 20000); + + consumer.accept(new LiquidFuelRecipe.FinishedRecipe(new ResourceLocation(ActuallyAdditions.MODID, "liquid_fuel/canola_oil"), + new FluidStack(InitFluids.CANOLA_OIL.get(), 50), 4000, 100)); + + consumer.accept(new LiquidFuelRecipe.FinishedRecipe(new ResourceLocation(ActuallyAdditions.MODID, "liquid_fuel/refined_canola_oil"), + new FluidStack(InitFluids.REFINED_CANOLA_OIL.get(), 50), 9600, 120)); + + consumer.accept(new LiquidFuelRecipe.FinishedRecipe(new ResourceLocation(ActuallyAdditions.MODID, "liquid_fuel/crystallized_canola_oil"), + new FluidStack(InitFluids.CRYSTALLIZED_OIL.get(), 50), 28000, 280)); + + consumer.accept(new LiquidFuelRecipe.FinishedRecipe(new ResourceLocation(ActuallyAdditions.MODID, "liquid_fuel/empowered_canola_oil"), + new FluidStack(InitFluids.EMPOWERED_OIL.get(), 50), 48000, 400)); + } + + private void addSolid(Consumer consumer, String name, Item item, int energy, int burnTime) { + consumer.accept(new SolidFuelRecipe.FinishedRecipe(new ResourceLocation(ActuallyAdditions.MODID, "solid_fuel/"+name), Ingredient.of(item), energy, burnTime)); + } + private void addSolid(Consumer consumer, String name, Ingredient item, int energy, int burnTime) { + consumer.accept(new SolidFuelRecipe.FinishedRecipe(new ResourceLocation(ActuallyAdditions.MODID, "solid_fuel/"+name), item, energy, burnTime)); + } + private void addSolid(Consumer consumer, String name, ITag tag, int energy, int burnTime) { + consumer.accept(new SolidFuelRecipe.FinishedRecipe(new ResourceLocation(ActuallyAdditions.MODID, "solid_fuel/"+name), Ingredient.of(tag), energy, burnTime)); + } +} diff --git a/src/main/java/de/ellpeck/actuallyadditions/data/ItemModelGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/data/ItemModelGenerator.java index b5763c997..46a8a6bea 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/data/ItemModelGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/data/ItemModelGenerator.java @@ -9,7 +9,6 @@ import de.ellpeck.actuallyadditions.mod.items.ActuallyItems; import net.minecraft.block.Block; import net.minecraft.block.WallBlock; import net.minecraft.data.DataGenerator; -import net.minecraft.fluid.Fluid; import net.minecraft.item.Item; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.generators.ItemModelProvider; @@ -44,7 +43,7 @@ public class ItemModelGenerator extends ItemModelProvider { Set ignoreList = ImmutableSet.of( InitFluids.CANOLA_OIL.getBlock(), InitFluids.REFINED_CANOLA_OIL.getBlock(), - InitFluids.CRYSTALIZED_OIL.getBlock(), + InitFluids.CRYSTALLIZED_OIL.getBlock(), InitFluids.EMPOWERED_OIL.getBlock(), ActuallyBlocks.CANOLA.get(), ActuallyBlocks.RICE.get(), @@ -57,7 +56,7 @@ public class ItemModelGenerator extends ItemModelProvider { generateBucket(InitFluids.CANOLA_OIL); generateBucket(InitFluids.REFINED_CANOLA_OIL); - generateBucket(InitFluids.CRYSTALIZED_OIL); + generateBucket(InitFluids.CRYSTALLIZED_OIL); generateBucket(InitFluids.EMPOWERED_OIL); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/data/LootTableGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/data/LootTableGenerator.java index 67959fc9e..7f8e42b9b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/data/LootTableGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/data/LootTableGenerator.java @@ -13,16 +13,11 @@ import net.minecraft.block.CropsBlock; import net.minecraft.data.DataGenerator; import net.minecraft.data.LootTableProvider; import net.minecraft.data.loot.BlockLootTables; -import net.minecraft.enchantment.Enchantments; import net.minecraft.item.Item; import net.minecraft.item.Items; import net.minecraft.loot.*; import net.minecraft.loot.conditions.BlockStateProperty; -import net.minecraft.loot.functions.ApplyBonus; -import net.minecraft.loot.functions.SetCount; -import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.Tags; import net.minecraftforge.fml.RegistryObject; import javax.annotation.Nonnull; @@ -216,7 +211,7 @@ public class LootTableGenerator extends LootTableProvider { final Set ignoreForNow = ImmutableSet.of( InitFluids.CANOLA_OIL.getBlock(), InitFluids.REFINED_CANOLA_OIL.getBlock(), - InitFluids.CRYSTALIZED_OIL.getBlock(), + InitFluids.CRYSTALLIZED_OIL.getBlock(), InitFluids.EMPOWERED_OIL.getBlock() ); diff --git a/src/main/java/de/ellpeck/actuallyadditions/data/SolidFuelGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/data/SolidFuelGenerator.java deleted file mode 100644 index 83b7d04e4..000000000 --- a/src/main/java/de/ellpeck/actuallyadditions/data/SolidFuelGenerator.java +++ /dev/null @@ -1,54 +0,0 @@ -package de.ellpeck.actuallyadditions.data; - -import com.google.gson.JsonObject; -import de.ellpeck.actuallyadditions.api.ActuallyTags; -import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; -import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks; -import de.ellpeck.actuallyadditions.mod.crafting.SolidFuelRecipe; -import de.ellpeck.actuallyadditions.mod.items.ActuallyItems; -import de.ellpeck.actuallyadditions.mod.items.base.ActuallyItem; -import net.minecraft.data.DataGenerator; -import net.minecraft.data.DirectoryCache; -import net.minecraft.data.IFinishedRecipe; -import net.minecraft.data.RecipeProvider; -import net.minecraft.item.Item; -import net.minecraft.item.Items; -import net.minecraft.item.crafting.Ingredient; -import net.minecraft.tags.ITag; -import net.minecraft.util.ResourceLocation; - -import javax.annotation.Nonnull; -import java.nio.file.Path; -import java.util.function.Consumer; - -public class SolidFuelGenerator extends RecipeProvider { - public SolidFuelGenerator(DataGenerator pGenerator) { - super(pGenerator); - } - - @Override - protected void saveAdvancement(@Nonnull DirectoryCache pCache, @Nonnull JsonObject pAdvancementJson, @Nonnull Path pPath) { - //Nah - } - - @Override - protected void buildShapelessRecipes(@Nonnull Consumer consumer) { - addFuel(consumer, "coal", Items.COAL, 32000, 1600); - addFuel(consumer, "stick", Items.STICK, 2000, 100); - addFuel(consumer, "tiny-coal", ActuallyTags.Items.TINY_COALS, 4000, 200); - addFuel(consumer, "charcoal", Items.CHARCOAL, 32000, 1600); - addFuel(consumer, "coal-block", Items.COAL_BLOCK, 320000, 16000); - addFuel(consumer, "charcoal-block", ActuallyBlocks.CHARCOAL_BLOCK.getItem(), 320000, 16000); - addFuel(consumer, "lava", Items.LAVA_BUCKET, 400000, 20000); - } - - private void addFuel(Consumer consumer, String name, Item item, int energy, int burnTime) { - consumer.accept(new SolidFuelRecipe.FinishedRecipe(new ResourceLocation(ActuallyAdditions.MODID, "solid_fuel/"+name), Ingredient.of(item), energy, burnTime)); - } - private void addFuel(Consumer consumer, String name, Ingredient item, int energy, int burnTime) { - consumer.accept(new SolidFuelRecipe.FinishedRecipe(new ResourceLocation(ActuallyAdditions.MODID, "solid_fuel/"+name), item, energy, burnTime)); - } - private void addFuel(Consumer consumer, String name, ITag tag, int energy, int burnTime) { - consumer.accept(new SolidFuelRecipe.FinishedRecipe(new ResourceLocation(ActuallyAdditions.MODID, "solid_fuel/"+name), Ingredient.of(tag), energy, burnTime)); - } -} diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditionsClient.java b/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditionsClient.java index 75b0336d6..2db713d8f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditionsClient.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditionsClient.java @@ -75,8 +75,8 @@ public class ActuallyAdditionsClient { RenderTypeLookup.setRenderLayer(InitFluids.CANOLA_OIL.getFlowing(), RenderType.translucent()); RenderTypeLookup.setRenderLayer(InitFluids.REFINED_CANOLA_OIL.get(), RenderType.translucent()); RenderTypeLookup.setRenderLayer(InitFluids.REFINED_CANOLA_OIL.getFlowing(), RenderType.translucent()); - RenderTypeLookup.setRenderLayer(InitFluids.CRYSTALIZED_OIL.get(), RenderType.translucent()); - RenderTypeLookup.setRenderLayer(InitFluids.CRYSTALIZED_OIL.getFlowing(), RenderType.translucent()); + RenderTypeLookup.setRenderLayer(InitFluids.CRYSTALLIZED_OIL.get(), RenderType.translucent()); + RenderTypeLookup.setRenderLayer(InitFluids.CRYSTALLIZED_OIL.getFlowing(), RenderType.translucent()); RenderTypeLookup.setRenderLayer(InitFluids.EMPOWERED_OIL.get(), RenderType.translucent()); RenderTypeLookup.setRenderLayer(InitFluids.EMPOWERED_OIL.getFlowing(), RenderType.translucent()); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/ActuallyRecipes.java b/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/ActuallyRecipes.java index b6dfc5fa4..b94bbcb0d 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/ActuallyRecipes.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/ActuallyRecipes.java @@ -20,6 +20,7 @@ public class ActuallyRecipes { public static final RegistryObject> EMPOWERING_RECIPE = SERIALIZERS.register(EmpowererRecipe.NAME, EmpowererRecipe.Serializer::new); public static final RegistryObject> CRUSHING_RECIPE = SERIALIZERS.register(CrushingRecipe.NAME, CrushingRecipe.Serializer::new); public static final RegistryObject> SOLID_FUEL_RECIPE = SERIALIZERS.register(SolidFuelRecipe.NAME, SolidFuelRecipe.Serializer::new); + public static final RegistryObject> LIQUID_FUEL_RECIPE = SERIALIZERS.register(LiquidFuelRecipe.NAME, LiquidFuelRecipe.Serializer::new); public static final RegistryObject> PRESSING_RECIPE = SERIALIZERS.register(PressingRecipe.NAME, PressingRecipe.Serializer::new); public static final RegistryObject> FERMENTING_RECIPE = SERIALIZERS.register(FermentingRecipe.NAME, FermentingRecipe.Serializer::new); @@ -30,7 +31,7 @@ public class ActuallyRecipes { public static final IRecipeType EMPOWERING = IRecipeType.register(ActuallyAdditions.MODID + ":empower"); public static final IRecipeType CRUSHING = IRecipeType.register(ActuallyAdditions.MODID + ":crushing"); public static final IRecipeType SOLID_FUEL = IRecipeType.register(ActuallyAdditions.MODID + ":solid_fuel"); - //public static final IRecipeType LIQUIDFUEL = IRecipeType.register(ActuallyAdditions.MODID + ":liquid_fuel"); + public static final IRecipeType LIQUID_FUEL = IRecipeType.register(ActuallyAdditions.MODID + ":liquid_fuel"); public static final IRecipeType PRESSING = IRecipeType.register(ActuallyAdditions.MODID + ":pressing"); public static final IRecipeType FERMENTING = IRecipeType.register(ActuallyAdditions.MODID + ":fermenting"); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/FermentingRecipe.java b/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/FermentingRecipe.java index 72315ec9e..4233489fe 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/FermentingRecipe.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/FermentingRecipe.java @@ -80,6 +80,7 @@ public class FermentingRecipe implements IRecipe { return false; } + @Nonnull @Override public ItemStack assemble(IInventory pInv) { return ItemStack.EMPTY; @@ -90,21 +91,25 @@ public class FermentingRecipe implements IRecipe { return false; } + @Nonnull @Override public ItemStack getResultItem() { return ItemStack.EMPTY; } + @Nonnull @Override public ResourceLocation getId() { return ID; } + @Nonnull @Override public IRecipeSerializer getSerializer() { return ActuallyRecipes.FERMENTING_RECIPE.get(); } + @Nonnull @Override public IRecipeType getType() { return ActuallyRecipes.Types.FERMENTING; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/InitCrafting.java b/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/InitCrafting.java index 041ca13ed..711116d9f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/InitCrafting.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/InitCrafting.java @@ -36,7 +36,7 @@ public final class InitCrafting { int[] time = ConfigIntListValues.OIL_TIME.getValue(); ActuallyAdditionsAPI.addOilGenRecipe(InitFluids.CANOLA_OIL.getName(), power[0], time[0]); ActuallyAdditionsAPI.addOilGenRecipe(InitFluids.REFINED_CANOLA_OIL.getName(), power[1], time[1]); - ActuallyAdditionsAPI.addOilGenRecipe(InitFluids.CRYSTALIZED_OIL.getName(), power[2], time[2]); + ActuallyAdditionsAPI.addOilGenRecipe(InitFluids.CRYSTALLIZED_OIL.getName(), power[2], time[2]); ActuallyAdditionsAPI.addOilGenRecipe(InitFluids.EMPOWERED_OIL.getName(), power[3], time[3]); ActuallyAdditionsAPI.addFarmerBehavior(new DefaultFarmerBehavior()); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/LiquidFuelRecipe.java b/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/LiquidFuelRecipe.java new file mode 100644 index 000000000..a691b532a --- /dev/null +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/LiquidFuelRecipe.java @@ -0,0 +1,183 @@ +package de.ellpeck.actuallyadditions.mod.crafting; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import net.minecraft.data.IFinishedRecipe; +import net.minecraft.fluid.Fluid; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.item.crafting.IRecipeSerializer; +import net.minecraft.item.crafting.IRecipeType; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.network.PacketBuffer; +import net.minecraft.util.JSONUtils; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.ForgeRegistryEntry; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + +public class LiquidFuelRecipe implements IRecipe { + public static String NAME = "liquid_fuel"; + private FluidStack fuel; + private int burnTime; + private int totalEnergy; + private ResourceLocation id; + + public LiquidFuelRecipe(ResourceLocation id, FluidStack fuel, int totalEnergy, int burnTime) { + this.fuel = fuel; + this.burnTime = burnTime; + this.totalEnergy = totalEnergy; + this.id = id; + } + + public int getBurnTime() { + return burnTime; + } + + public int getTotalEnergy() { + return totalEnergy; + } + + @Override + public boolean matches(@Nonnull IInventory pInv,@Nonnull World pLevel) { + return false; + } + + public boolean matches(FluidStack stack) { + return this.fuel.isFluidEqual(stack); + } + + @Nonnull + @Override + public ItemStack assemble(@Nonnull IInventory pInv) { + return ItemStack.EMPTY; + } + + @Override + public boolean canCraftInDimensions(int pWidth, int pHeight) { + return false; + } + + @Nonnull + @Override + public ItemStack getResultItem() { + return ItemStack.EMPTY; + } + + @Nonnull + @Override + public ResourceLocation getId() { + return id; + } + + @Nonnull + @Override + public IRecipeSerializer getSerializer() { + return ActuallyRecipes.LIQUID_FUEL_RECIPE.get(); + } + + @Nonnull + @Override + public IRecipeType getType() { + return ActuallyRecipes.Types.LIQUID_FUEL; + } + + public static class Serializer extends ForgeRegistryEntry> implements IRecipeSerializer { + @Nonnull + @Override + public LiquidFuelRecipe fromJson(@Nonnull ResourceLocation pId, JsonObject pJson) { + JsonObject ingredient = pJson.getAsJsonObject("ingredient"); + + ResourceLocation fluidRes = new ResourceLocation(JSONUtils.getAsString(ingredient, "fluid")); + Fluid fluid = ForgeRegistries.FLUIDS.getValue(fluidRes); + if (fluid == null) + throw new JsonParseException("Unknown fluid '" + fluidRes + "'"); + int inputAmount = JSONUtils.getAsInt(ingredient, "amount", 50); + FluidStack input = new FluidStack(fluid, inputAmount); + + JsonObject result = pJson.getAsJsonObject("result"); + int totalEnergy = result.get("total_energy").getAsInt(); + int burnTime = result.get("burn_time").getAsInt(); + return new LiquidFuelRecipe(pId, input, totalEnergy, burnTime); + } + + @Override + public LiquidFuelRecipe fromNetwork(@Nonnull ResourceLocation pId, @Nonnull PacketBuffer pBuffer) { + ResourceLocation inputRes = new ResourceLocation(pBuffer.readUtf()); + int inputAmount = pBuffer.readInt(); + Fluid inputFluid = ForgeRegistries.FLUIDS.getValue(inputRes); + if(inputFluid == null) + throw new JsonParseException("Unknown input fluid '" + inputRes + "'"); + FluidStack input = new FluidStack(inputFluid, inputAmount); + + int totalEnergy = pBuffer.readInt(); + int burnTime = pBuffer.readInt(); + return new LiquidFuelRecipe(pId, input, totalEnergy, burnTime); + } + + @Override + public void toNetwork(@Nonnull PacketBuffer pBuffer, LiquidFuelRecipe pRecipe) { + pBuffer.writeUtf(pRecipe.fuel.getFluid().getRegistryName().toString()); + pBuffer.writeInt(pRecipe.fuel.getAmount()); + pBuffer.writeInt(pRecipe.totalEnergy); + pBuffer.writeInt(pRecipe.burnTime); + } + } + + public static class FinishedRecipe implements IFinishedRecipe { + private FluidStack fuel; + private int burnTime; + private int totalEnergy; + private ResourceLocation id; + + public FinishedRecipe(ResourceLocation id, FluidStack fuel, int totalEnergy, int burnTime) { + this.fuel = fuel; + this.burnTime = burnTime; + this.totalEnergy = totalEnergy; + this.id = id; + } + + @Override + public void serializeRecipeData(JsonObject pJson) { + JsonObject ingredient = new JsonObject(); + ingredient.addProperty("fluid", fuel.getFluid().getRegistryName().toString()); + ingredient.addProperty("amount", fuel.getAmount()); + + JsonObject result = new JsonObject(); + result.addProperty("total_energy", totalEnergy); + result.addProperty("burn_time", burnTime); + + pJson.add("ingredient", ingredient); + pJson.add("result", result); + } + + @Nonnull + @Override + public ResourceLocation getId() { + return id; + } + + @Nonnull + @Override + public IRecipeSerializer getType() { + return ActuallyRecipes.LIQUID_FUEL_RECIPE.get(); + } + + @Nullable + @Override + public JsonObject serializeAdvancement() { + return null; + } + + @Nullable + @Override + public ResourceLocation getAdvancementId() { + return null; + } + } +} diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/fluids/InitFluids.java b/src/main/java/de/ellpeck/actuallyadditions/mod/fluids/InitFluids.java index 02681ecc7..032142b5b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/fluids/InitFluids.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/fluids/InitFluids.java @@ -23,7 +23,7 @@ public final class InitFluids { public static final FluidAA CANOLA_OIL = new FluidAA("canola_oil", "fluid/canola_oil"); public static final FluidAA REFINED_CANOLA_OIL = new FluidAA("refined_canola_oil", "fluid/refined_canola_oil"); - public static final FluidAA CRYSTALIZED_OIL = new FluidAA("crystallized_oil", "fluid/crystallized_oil"); + public static final FluidAA CRYSTALLIZED_OIL = new FluidAA("crystallized_oil", "fluid/crystallized_oil"); public static final FluidAA EMPOWERED_OIL = new FluidAA("empowered_oil", "fluid/empowered_oil"); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/CanolaSeed.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/CanolaSeed.java index af0698de6..eb849511f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/CanolaSeed.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/CanolaSeed.java @@ -7,10 +7,8 @@ import net.minecraft.block.BlockState; import net.minecraft.block.FlowingFluidBlock; import net.minecraft.entity.item.ItemEntity; import net.minecraft.fluid.Fluid; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; -import net.minecraftforge.fluids.IFluidBlock; public class CanolaSeed extends ItemBase { public boolean empowered; @@ -34,12 +32,12 @@ public class CanolaSeed extends ItemBase { if (block instanceof FlowingFluidBlock && state.getFluidState().isSource()) { Fluid fluid = ((FlowingFluidBlock) block).getFluid(); if (fluid != null && fluid == (empowered - ? InitFluids.CRYSTALIZED_OIL.get() + ? InitFluids.CRYSTALLIZED_OIL.get() : InitFluids.REFINED_CANOLA_OIL.get())) { entity.kill(); entity.level.setBlockAndUpdate(pos, (empowered ? InitFluids.EMPOWERED_OIL.getBlock() - : InitFluids.CRYSTALIZED_OIL.getBlock()).defaultBlockState()); + : InitFluids.CRYSTALLIZED_OIL.getBlock()).defaultBlockState()); } } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/ResourceReloader.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/ResourceReloader.java index b2062f056..f3150af69 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/ResourceReloader.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/ResourceReloader.java @@ -27,6 +27,9 @@ public class ResourceReloader implements IResourceManagerReloadListener { ActuallyAdditionsAPI.SOLID_FUEL_RECIPES.clear(); ActuallyAdditionsAPI.SOLID_FUEL_RECIPES.addAll(recipeManager.getAllRecipesFor(ActuallyRecipes.Types.SOLID_FUEL)); + ActuallyAdditionsAPI.LIQUID_FUEL_RECIPES.clear(); + ActuallyAdditionsAPI.LIQUID_FUEL_RECIPES.addAll(recipeManager.getAllRecipesFor(ActuallyRecipes.Types.LIQUID_FUEL)); + ActuallyAdditionsAPI.PRESSING_RECIPES.clear(); ActuallyAdditionsAPI.PRESSING_RECIPES.addAll(recipeManager.getAllRecipesFor(ActuallyRecipes.Types.PRESSING));