Add Vacuum Freezer recipes

This commit is contained in:
mezz 2015-12-31 02:27:07 -08:00
parent ad0b45cd2a
commit 090de63608
6 changed files with 145 additions and 3 deletions

View file

@ -19,7 +19,7 @@ import java.io.IOException;
public class GuiVacuumFreezer extends GuiContainer {
private static final ResourceLocation texture = new ResourceLocation("techreborn", "textures/gui/vacuum_freezer.png");
public static final ResourceLocation texture = new ResourceLocation("techreborn", "textures/gui/vacuum_freezer.png");
TileVacuumFreezer crafter;
ContainerVacuumFreezer containerVacuumFreezer;

View file

@ -14,4 +14,5 @@ public class RecipeCategoryUids {
public static final String IMPLOSION_COMPRESSOR = "TechReborn.ImplosionCompressor";
public static final String INDUSTRIAL_ELECTROLYZER = "TechReborn.IndustrialElectrolyzer";
public static final String INDUSTRIAL_SAWMILL = "TechReborn.IndustrialSawmill";
public static final String VACUUM_FREEZER = "TechReborn.VacuumFreezer";
}

View file

@ -29,6 +29,7 @@ import techreborn.client.container.ContainerGrinder;
import techreborn.client.container.ContainerImplosionCompressor;
import techreborn.client.container.ContainerIndustrialElectrolyzer;
import techreborn.client.container.ContainerIndustrialSawmill;
import techreborn.client.container.ContainerVacuumFreezer;
import techreborn.compat.jei.alloySmelter.AlloySmelterRecipeCategory;
import techreborn.compat.jei.alloySmelter.AlloySmelterRecipeHandler;
import techreborn.compat.jei.assemblingMachine.AssemblingMachineRecipeCategory;
@ -49,6 +50,8 @@ import techreborn.compat.jei.industrialElectrolyzer.IndustrialElectrolyzerRecipe
import techreborn.compat.jei.industrialElectrolyzer.IndustrialElectrolyzerRecipeHandler;
import techreborn.compat.jei.industrialSawmill.IndustrialSawmillRecipeCategory;
import techreborn.compat.jei.industrialSawmill.IndustrialSawmillRecipeHandler;
import techreborn.compat.jei.vacuumFreezer.VacuumFreezerRecipeCategory;
import techreborn.compat.jei.vacuumFreezer.VacuumFreezerRecipeHandler;
@mezz.jei.api.JEIPlugin
public class TechRebornJeiPlugin implements IModPlugin {
@ -83,7 +86,8 @@ public class TechRebornJeiPlugin implements IModPlugin {
new GrinderRecipeCategory(guiHelper),
new ImplosionCompressorRecipeCategory(guiHelper),
new IndustrialElectrolyzerRecipeCategory(guiHelper),
new IndustrialSawmillRecipeCategory(guiHelper)
new IndustrialSawmillRecipeCategory(guiHelper),
new VacuumFreezerRecipeCategory(guiHelper)
);
registry.addRecipeHandlers(
@ -96,7 +100,8 @@ public class TechRebornJeiPlugin implements IModPlugin {
new GrinderRecipeHandler(),
new ImplosionCompressorRecipeHandler(),
new IndustrialElectrolyzerRecipeHandler(),
new IndustrialSawmillRecipeHandler()
new IndustrialSawmillRecipeHandler(),
new VacuumFreezerRecipeHandler()
);
registry.addRecipes(RecipeHandler.recipeList);
@ -119,6 +124,7 @@ public class TechRebornJeiPlugin implements IModPlugin {
recipeTransferRegistry.addRecipeTransferHandler(ContainerImplosionCompressor.class, RecipeCategoryUids.IMPLOSION_COMPRESSOR, 0, 2, 4, 36);
recipeTransferRegistry.addRecipeTransferHandler(ContainerIndustrialElectrolyzer.class, RecipeCategoryUids.INDUSTRIAL_ELECTROLYZER, 0, 2, 7, 36);
recipeTransferRegistry.addRecipeTransferHandler(ContainerIndustrialSawmill.class, RecipeCategoryUids.INDUSTRIAL_SAWMILL, 0, 2, 5, 36);
recipeTransferRegistry.addRecipeTransferHandler(ContainerVacuumFreezer.class, RecipeCategoryUids.VACUUM_FREEZER, 0, 1, 2, 36);
}
@Override

View file

@ -0,0 +1,70 @@
package techreborn.compat.jei.vacuumFreezer;
import javax.annotation.Nonnull;
import net.minecraft.client.Minecraft;
import net.minecraft.util.StatCollector;
import mezz.jei.api.IGuiHelper;
import mezz.jei.api.gui.IDrawable;
import mezz.jei.api.gui.IGuiItemStackGroup;
import mezz.jei.api.gui.IRecipeLayout;
import mezz.jei.api.recipe.IRecipeCategory;
import mezz.jei.api.recipe.IRecipeWrapper;
import techreborn.client.gui.GuiVacuumFreezer;
import techreborn.compat.jei.RecipeCategoryUids;
import techreborn.compat.jei.RecipeUtil;
public class VacuumFreezerRecipeCategory implements IRecipeCategory {
private static final int[] INPUT_SLOTS = {0};
private static final int[] OUTPUT_SLOTS = {1};
private final IDrawable background;
private final String title;
public VacuumFreezerRecipeCategory(IGuiHelper guiHelper) {
background = guiHelper.createDrawable(GuiVacuumFreezer.texture, 55, 30, 82, 26);
title = StatCollector.translateToLocal("tile.techreborn.vacuumfreezer.name");
}
@Nonnull
@Override
public String getUid() {
return RecipeCategoryUids.VACUUM_FREEZER;
}
@Nonnull
@Override
public String getTitle() {
return title;
}
@Nonnull
@Override
public IDrawable getBackground() {
return background;
}
@Override
public void drawExtras(Minecraft minecraft) {
}
@Override
public void drawAnimations(Minecraft minecraft) {
}
@Override
public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) {
IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks();
guiItemStacks.init(INPUT_SLOTS[0], true, 0, 3);
guiItemStacks.init(OUTPUT_SLOTS[0], false, 60, 4);
if (recipeWrapper instanceof VacuumFreezerRecipeWrapper) {
VacuumFreezerRecipeWrapper recipe = (VacuumFreezerRecipeWrapper) recipeWrapper;
RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, null, null);
}
}
}

View file

@ -0,0 +1,33 @@
package techreborn.compat.jei.vacuumFreezer;
import javax.annotation.Nonnull;
import mezz.jei.api.recipe.IRecipeHandler;
import mezz.jei.api.recipe.IRecipeWrapper;
import techreborn.api.recipe.machines.VacuumFreezerRecipe;
import techreborn.compat.jei.RecipeCategoryUids;
public class VacuumFreezerRecipeHandler implements IRecipeHandler<VacuumFreezerRecipe> {
@Nonnull
@Override
public Class<VacuumFreezerRecipe> getRecipeClass() {
return VacuumFreezerRecipe.class;
}
@Nonnull
@Override
public String getRecipeCategoryUid() {
return RecipeCategoryUids.VACUUM_FREEZER;
}
@Nonnull
@Override
public IRecipeWrapper getRecipeWrapper(@Nonnull VacuumFreezerRecipe recipe) {
return new VacuumFreezerRecipeWrapper(recipe);
}
@Override
public boolean isRecipeValid(@Nonnull VacuumFreezerRecipe recipe) {
return true;
}
}

View file

@ -0,0 +1,32 @@
package techreborn.compat.jei.vacuumFreezer;
import javax.annotation.Nonnull;
import net.minecraft.client.Minecraft;
import mezz.jei.api.IGuiHelper;
import mezz.jei.api.gui.IDrawableAnimated;
import mezz.jei.api.gui.IDrawableStatic;
import techreborn.api.recipe.machines.VacuumFreezerRecipe;
import techreborn.client.gui.GuiVacuumFreezer;
import techreborn.compat.jei.BaseRecipeWrapper;
import techreborn.compat.jei.TechRebornJeiPlugin;
public class VacuumFreezerRecipeWrapper extends BaseRecipeWrapper<VacuumFreezerRecipe> {
private final IDrawableAnimated progress;
public VacuumFreezerRecipeWrapper(VacuumFreezerRecipe baseRecipe) {
super(baseRecipe);
IGuiHelper guiHelper = TechRebornJeiPlugin.jeiHelpers.getGuiHelper();
IDrawableStatic progressStatic = guiHelper.createDrawable(GuiVacuumFreezer.texture, 176, 14, 20, 11);
int ticksPerCycle = baseRecipe.tickTime();
this.progress = guiHelper.createAnimatedDrawable(progressStatic, ticksPerCycle, IDrawableAnimated.StartDirection.LEFT, false);
}
@Override
public void drawAnimations(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHeight) {
super.drawAnimations(minecraft, recipeWidth, recipeHeight);
progress.draw(minecraft, 25, 7);
}
}