diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2018-12-31 13:12:25 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2018-12-31 13:12:25 +0800 |
| commit | fee12aa0885da204ec874cd5ada371c42501c873 (patch) | |
| tree | 880596f5f463e08762a56b1cb1d7008aaed1899d /src/main/java/me/shedaniel/plugin/smoker | |
| parent | 1b14c5142bb49db9af078b5c753bc22ce35a40cc (diff) | |
| download | RoughlyEnoughItems-fee12aa0885da204ec874cd5ada371c42501c873.tar.gz RoughlyEnoughItems-fee12aa0885da204ec874cd5ada371c42501c873.tar.bz2 RoughlyEnoughItems-fee12aa0885da204ec874cd5ada371c42501c873.zip | |
packetadder wip
Diffstat (limited to 'src/main/java/me/shedaniel/plugin/smoker')
| -rwxr-xr-x | src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerCategory.java | 89 | ||||
| -rwxr-xr-x | src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java | 43 |
2 files changed, 132 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerCategory.java b/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerCategory.java new file mode 100755 index 000000000..6bbb896d1 --- /dev/null +++ b/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerCategory.java @@ -0,0 +1,89 @@ +package me.shedaniel.plugin.smoker; + +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.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 VanillaSmokerCategory implements IDisplayCategory<VanillaSmokerRecipe> { + private List<VanillaSmokerRecipe> recipes; + + @Override + public String getId() { + return "smoker"; + } + + @Override + public String getDisplayName() { + return I18n.translate("category.rei.smoking"); + } + + @Override + public void addRecipe(VanillaSmokerRecipe 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(VanillaSmokerRecipe 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 SmokerBlockEntity.getBurnTimeMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()); + } + + @Override + public ItemStack getCategoryIcon() { + return new ItemStack(Blocks.SMOKER.getItem()); + } +} diff --git a/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java b/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java new file mode 100755 index 000000000..7a6d0fe95 --- /dev/null +++ b/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java @@ -0,0 +1,43 @@ +package me.shedaniel.plugin.smoker; + +import me.shedaniel.api.IRecipe; +import net.minecraft.item.ItemStack; +import net.minecraft.recipe.Ingredient; +import net.minecraft.recipe.smelting.SmeltingRecipe; +import net.minecraft.recipe.smelting.SmokingRecipe; + +import java.util.LinkedList; +import java.util.List; + +public class VanillaSmokerRecipe implements IRecipe<ItemStack> { + private final SmokingRecipe recipe; + + @Override + public String getId() { + return "smoker"; + } + + public VanillaSmokerRecipe(SmokingRecipe 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; + } +} |
