diff options
Diffstat (limited to 'src/main/java/me/shedaniel/plugin/blastfurnace')
| -rwxr-xr-x | src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceCategory.java | 90 | ||||
| -rwxr-xr-x | src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java | 44 |
2 files changed, 134 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceCategory.java b/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceCategory.java new file mode 100755 index 000000000..4ef67cbf9 --- /dev/null +++ b/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceCategory.java @@ -0,0 +1,90 @@ +package me.shedaniel.plugin.blastfurnace; + +import me.shedaniel.api.IDisplayCategory; +import me.shedaniel.gui.widget.Control; +import me.shedaniel.gui.widget.REISlot; +import me.shedaniel.gui.widget.WidgetArrow; +import net.minecraft.block.Blocks; +import net.minecraft.block.entity.BlastFurnaceBlockEntity; +import net.minecraft.block.entity.SmokerBlockEntity; +import net.minecraft.client.resource.language.I18n; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.stream.Collectors; + +public class VanillaBlastFurnaceCategory implements IDisplayCategory<VanillaBlastFurnaceRecipe> { + private List<VanillaBlastFurnaceRecipe> recipes; + + @Override + public String getId() { + return "blastingfurnace"; + } + + @Override + public String getDisplayName() { + return I18n.translate("category.rei.blasting"); + } + + @Override + public void addRecipe(VanillaBlastFurnaceRecipe recipe) { + if (this.recipes == null) + this.recipes = new ArrayList<>(); + this.recipes.add(recipe); + } + + @Override + public void resetRecipes() { + this.recipes = new ArrayList<>(); + } + + @Override + public List<REISlot> setupDisplay(int number) { + List<REISlot> slots = new LinkedList<>(); + REISlot inputSlot = new REISlot(50, 70 + number * 75); + inputSlot.setStackList(recipes.get(number).getInput().get(0)); + inputSlot.setDrawBackground(true); + + REISlot outputSlot = new REISlot(110, 70 + number * 75); + outputSlot.setStackList(recipes.get(number).getOutput()); + outputSlot.setDrawBackground(true); + + REISlot fuelSlot = new REISlot(80, 100 + number * 75); + fuelSlot.setStackList(getFuel()); + fuelSlot.setDrawBackground(true); + fuelSlot.setExtraTooltip(I18n.translate("category.rei.smelting.fuel")); + + slots.add(inputSlot); + slots.add(outputSlot); + slots.add(fuelSlot); + return slots; + } + + @Override + public boolean canDisplay(VanillaBlastFurnaceRecipe recipe) { + return false; + } + + @Override + public void drawExtras() { + + } + + @Override + public void addWidget(List<Control> controls, int number) { + WidgetArrow wa = new WidgetArrow(75, 70 + number * 75, true, 10); + controls.add(wa); + } + + private List<ItemStack> getFuel() { + return BlastFurnaceBlockEntity.getBurnTimeMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()); + } + + @Override + public ItemStack getCategoryIcon() { + return new ItemStack(Blocks.BLAST_FURNACE.getItem()); + } +} diff --git a/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java b/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java new file mode 100755 index 000000000..3032c2401 --- /dev/null +++ b/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java @@ -0,0 +1,44 @@ +package me.shedaniel.plugin.blastfurnace; + +import me.shedaniel.api.IRecipe; +import net.minecraft.block.BlastFurnaceBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.recipe.Ingredient; +import net.minecraft.recipe.smelting.BlastingRecipe; +import net.minecraft.recipe.smelting.SmokingRecipe; + +import java.util.LinkedList; +import java.util.List; + +public class VanillaBlastFurnaceRecipe implements IRecipe<ItemStack> { + private final BlastingRecipe recipe; + + @Override + public String getId() { + return "blastingfurnace"; + } + + public VanillaBlastFurnaceRecipe(BlastingRecipe recipe) { + this.recipe = recipe; + } + + @Override + public List<ItemStack> getOutput() { + List<ItemStack> output = new LinkedList<>(); + output.add(recipe.getOutput().copy()); + return output; + } + + @Override + public List<List<ItemStack>> getInput() { + List<List<ItemStack>> input = new LinkedList<>(); + for(Ingredient ingredient : recipe.getPreviewInputs()) { + List<ItemStack> ingredients = new LinkedList<>(); + for(ItemStack matchingStack : ingredient.getStackArray()) { + ingredients.add(matchingStack); + } + input.add(ingredients); + } + return input; + } +} |
