Skip to content

Commit

Permalink
Add crucible recipes
Browse files Browse the repository at this point in the history
  • Loading branch information
NovaMachina committed Dec 28, 2020
1 parent edc5608 commit 34dbe27
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 6 deletions.
Expand Up @@ -18,17 +18,17 @@ public class CrucibleRecipe extends SerializableRecipe {
public static final IRecipeType<CrucibleRecipe> RECIPE_TYPE = IRecipeType
.register(ExNihiloConstants.ModIds.EX_NIHILO_SEQUENTIA + ":crucible");
private static RegistryObject<RecipeSerializer<CrucibleRecipe>> serializer;
private final Ingredient input;
private final int amount;
private final FluidStack resultFluid;
private final CrucilbeTypeEnum crucipleType;
private Ingredient input;
private int amount;
private FluidStack resultFluid;
private CrucilbeTypeEnum crucibleType;

public CrucibleRecipe(ResourceLocation id, Ingredient input, int amount, FluidStack fluid, CrucilbeTypeEnum crucibleType) {
super(null, RECIPE_TYPE, id);
this.input = input;
this.amount = amount;
this.resultFluid = fluid;
this.crucipleType = crucibleType;
this.crucibleType = crucibleType;
}

public static RegistryObject<RecipeSerializer<CrucibleRecipe>> getStaticSerializer() {
Expand All @@ -43,16 +43,32 @@ public Ingredient getInput() {
return input;
}

public void setInput(Ingredient input) {
this.input = input;
}

public int getAmount() {
return amount;
}

public void setAmount(int amount) {
this.amount = amount;
}

public FluidStack getResultFluid() {
return resultFluid;
}

public void setResultFluid(FluidStack resultFluid) {
this.resultFluid = resultFluid;
}

public CrucilbeTypeEnum getCrucibleType() {
return crucipleType;
return crucibleType;
}

public void setCrucibleType(String crucibleType) {
this.crucibleType = CrucilbeTypeEnum.getTypeByName(crucibleType);
}

@Override
Expand Down
@@ -0,0 +1,31 @@
package novamachina.exnihilosequentia.common.compat.crafttweaker;

import com.blamejared.crafttweaker.api.CraftTweakerAPI;
import com.blamejared.crafttweaker.api.annotations.ZenRegister;
import com.blamejared.crafttweaker.api.managers.IRecipeManager;
import com.blamejared.crafttweaker.impl.actions.recipes.ActionAddRecipe;
import net.minecraft.item.crafting.IRecipeType;
import net.minecraft.util.ResourceLocation;
import novamachina.exnihilosequentia.api.crafting.crucible.CrucibleRecipe;
import novamachina.exnihilosequentia.common.compat.crafttweaker.builder.ZenCrucibleRecipe;
import novamachina.exnihilosequentia.common.utility.ExNihiloConstants;
import org.openzen.zencode.java.ZenCodeType;

@ZenRegister
@ZenCodeType.Name("mods.exnihilosequentia.CrucibleRecipes")
public class CrucibleRecipeManager implements IRecipeManager {

@ZenCodeType.Method
public ZenCrucibleRecipe create(String recipeId) {
recipeId = fixRecipeName(recipeId);
ResourceLocation resourceLocation = new ResourceLocation(ExNihiloConstants.ModIds.CRAFT_TWEAKER, recipeId);
ZenCrucibleRecipe recipe = ZenCrucibleRecipe.builder(resourceLocation);
CraftTweakerAPI.apply(new ActionAddRecipe(this, recipe.build(), ""));
return recipe;
}

@Override
public IRecipeType<CrucibleRecipe> getRecipeType() {
return CrucibleRecipe.RECIPE_TYPE;
}
}
@@ -0,0 +1,56 @@
package novamachina.exnihilosequentia.common.compat.crafttweaker.builder;

import com.blamejared.crafttweaker.api.annotations.ZenRegister;
import com.blamejared.crafttweaker.api.fluid.IFluidStack;
import com.blamejared.crafttweaker.api.item.IIngredient;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fluids.FluidStack;
import novamachina.exnihilosequentia.api.crafting.crucible.CrucibleRecipe;
import novamachina.exnihilosequentia.common.tileentity.crucible.CrucilbeTypeEnum;
import org.openzen.zencode.java.ZenCodeType;

@ZenRegister
@ZenCodeType.Name("mods.exnihilosequentia.ZenCrucibleRecipe")
public class ZenCrucibleRecipe {

private CrucibleRecipe internal;

private ZenCrucibleRecipe(ResourceLocation recipeId) {
this.internal = new CrucibleRecipe(recipeId, Ingredient.EMPTY, 0, FluidStack.EMPTY, CrucilbeTypeEnum.WOOD);
}

@ZenCodeType.Method
public static ZenCrucibleRecipe builder(ResourceLocation recipeId) {
return new ZenCrucibleRecipe(recipeId);
}

@ZenCodeType.Method
public ZenCrucibleRecipe setInput(IIngredient input) {
internal.setInput(input.asVanillaIngredient());
return this;
}

@ZenCodeType.Method
public ZenCrucibleRecipe setAmount(int amount) {
internal.setAmount(amount);
return this;
}

@ZenCodeType.Method
public ZenCrucibleRecipe setResultFluid(IFluidStack fluid) {
internal.setResultFluid(fluid.getInternal());
return this;
}

@ZenCodeType.Method
public ZenCrucibleRecipe setCrucibleType(String crucibleType) {
internal.setCrucibleType(crucibleType);
return this;
}

public CrucibleRecipe build() {
return internal;
}
}

0 comments on commit 34dbe27

Please sign in to comment.