Skip to content

Commit

Permalink
Merge pull request #11 from GTNewHorizons/cleanup-recipes
Browse files Browse the repository at this point in the history
Clean up recipes
  • Loading branch information
boubou19 authored Sep 1, 2024
2 parents 53e8db0 + d74038e commit 78428d7
Show file tree
Hide file tree
Showing 92 changed files with 824 additions and 889 deletions.
28 changes: 22 additions & 6 deletions src/main/java/ab/api/AdvancedBotanyAPI.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@

public class AdvancedBotanyAPI {

public static List<RecipeAdvancedPlate> advancedPlateRecipes = new ArrayList<RecipeAdvancedPlate>();
public static List<RecipeAncientAlphirine> alphirineRecipes = new ArrayList<RecipeAncientAlphirine>();
public static List<TerraFarmlandList> farmlandList = new ArrayList<TerraFarmlandList>();
public static List<Achievement> achievements = new ArrayList<Achievement>();
public static List<ItemStack> relicList = new ArrayList<ItemStack>();
public static List<ItemStack> diceList = new ArrayList<ItemStack>();
public static List<RecipeAdvancedPlate> advancedPlateRecipes = new ArrayList<>();
public static List<RecipeAncientAlphirine> alphirineRecipes = new ArrayList<>();
public static List<TerraFarmlandList> farmlandList = new ArrayList<>();
public static List<Achievement> achievements = new ArrayList<>();
public static List<ItemStack> relicList = new ArrayList<>();
public static List<ItemStack> diceList = new ArrayList<>();

public static Item.ToolMaterial mithrilToolMaterial = EnumHelper.addToolMaterial("MITHRIL", 7, -1, 8.0F, 4.0F, 24);
public static ItemArmor.ArmorMaterial nebulaArmorMaterial = EnumHelper.addArmorMaterial(
Expand All @@ -47,6 +47,22 @@ public static RecipeAdvancedPlate registerAdvancedPlateRecipe(ItemStack output,
return recipe;
}

public static RecipeAdvancedPlate registerAdvancedPlateRecipe(ItemStack output, int mana, int color,
Object... inputs) {
RecipeAdvancedPlate recipe = new RecipeAdvancedPlate(output, mana, color, inputs);
advancedPlateRecipes.add(recipe);
return recipe;
}

public static RecipeAdvancedPlate registerAdvancedPlateRecipe(String output, int mana, int color,
Object... inputs) {
RecipeAdvancedPlate recipe = RecipeAdvancedPlate.fromOreDictOutput(output, mana, color, inputs);
if (recipe != null) {
advancedPlateRecipes.add(recipe);
}
return recipe;
}

public static RecipeAncientAlphirine registerAlphirineRecipe(ItemStack output, ItemStack input, int chance) {
RecipeAncientAlphirine recipe = new RecipeAncientAlphirine(output, input, chance);
alphirineRecipes.add(recipe);
Expand Down
58 changes: 12 additions & 46 deletions src/main/java/ab/api/recipe/RecipeAdvancedPlate.java
Original file line number Diff line number Diff line change
@@ -1,33 +1,26 @@
package ab.api.recipe;

import java.util.ArrayList;
import java.util.List;

import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;

public class RecipeAdvancedPlate {
import vazkii.botania.api.recipe.RecipePetals;

private ItemStack output;
private int color;
private List<ItemStack> inputs;
private int mana;
public class RecipeAdvancedPlate extends RecipePetals {

public RecipeAdvancedPlate(ItemStack output, int mana, int color, ItemStack... inputs) {
this.output = output;
this.mana = mana;
this.color = color;
List<ItemStack> inputsToSet = new ArrayList();
for (ItemStack obj : inputs) inputsToSet.add(obj);
this.inputs = inputsToSet;
}
private final int color;
private final int mana;

public List<ItemStack> getInputs() {
return new ArrayList(this.inputs);
public static RecipeAdvancedPlate fromOreDictOutput(String output, int mana, int color, Object... inputs) {
List<ItemStack> ores = OreDictionary.getOres(output);
return !ores.isEmpty() ? new RecipeAdvancedPlate(ores.get(0), mana, color, inputs) : null;
}

public ItemStack getOutput() {
return this.output;
public RecipeAdvancedPlate(ItemStack output, int mana, int color, Object... inputs) {
super(output, inputs);
this.mana = mana;
this.color = color;
}

public int getManaUsage() {
Expand All @@ -37,31 +30,4 @@ public int getManaUsage() {
public int getColor() {
return this.color;
}

public boolean matches(IInventory inv) {
List<ItemStack> inputsMissing = new ArrayList(this.inputs);
for (int i = 1; i < inv.getSizeInventory(); i++) {
ItemStack stack = inv.getStackInSlot(i);
if (stack == null) break;
int stackIndex = -1;
for (int j = 0; j < inputsMissing.size(); j++) {
ItemStack input = inputsMissing.get(j);
if (input instanceof ItemStack && simpleAreStacksEqual(input.copy(), stack)) {
stackIndex = j;
break;
}
}
if (stackIndex != -1) {
inputsMissing.remove(stackIndex);
} else {
return false;
}
}
return inputsMissing.isEmpty();
}

boolean simpleAreStacksEqual(ItemStack input, ItemStack stack) {
if (input.getItemDamage() == 32767) input.setItemDamage(stack.getItemDamage());
return (input.getItem() == stack.getItem() && input.getItemDamage() == stack.getItemDamage());
}
}
35 changes: 23 additions & 12 deletions src/main/java/ab/api/recipe/lexicon/AdvancedPlateCraftPage.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,22 @@
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
import net.minecraftforge.oredict.OreDictionary;

import org.lwjgl.opengl.GL11;

import vazkii.botania.api.internal.IGuiLexiconEntry;
import vazkii.botania.api.lexicon.LexiconEntry;
import vazkii.botania.api.lexicon.LexiconRecipeMappings;
import vazkii.botania.client.core.handler.ClientTickHandler;
import vazkii.botania.common.core.handler.ConfigHandler;
import vazkii.botania.common.lexicon.page.PageRecipe;
import ab.api.AdvancedBotanyAPI;
import ab.api.recipe.RecipeAdvancedPlate;
import ab.client.core.ClientHelper;
import ab.common.lib.register.BlockListAB;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import vazkii.botania.api.internal.IGuiLexiconEntry;
import vazkii.botania.api.lexicon.LexiconEntry;
import vazkii.botania.api.lexicon.LexiconRecipeMappings;
import vazkii.botania.client.core.handler.ClientTickHandler;
import vazkii.botania.common.core.handler.ConfigHandler;
import vazkii.botania.common.lexicon.page.PageRecipe;

public class AdvancedPlateCraftPage extends PageRecipe {

Expand Down Expand Up @@ -68,14 +69,24 @@ public void renderRecipe(IGuiLexiconEntry gui, int mx, int my) {
TextureManager render = (Minecraft.getMinecraft()).renderEngine;
renderItemAtGridPos(gui, 3, 0, recipe.getOutput(), false);
renderItemAtGridPos(gui, 2, 1, new ItemStack(BlockListAB.blockABPlate), false);
List<ItemStack> inputs = recipe.getInputs();
List<Object> inputs = recipe.getInputs();
int degreePerInput = (int) (360.0F / inputs.size());
float currentDegree = ConfigHandler.lexiconRotatingItems ? (GuiScreen.isShiftKeyDown() ? this.ticksElapsed
: (this.ticksElapsed + ClientTickHandler.partialTicks)) : 0.0F;
for (ItemStack obj : inputs) {
ItemStack copy = obj.copy();
if (copy.getItemDamage() == 32767) copy.setItemDamage(0);
renderItemAtAngle(gui, currentDegree, copy);
for (Object obj : inputs) {
ItemStack copy = null;
if (obj instanceof String oreName) {
List<ItemStack> ores = OreDictionary.getOres(oreName);
if (!ores.isEmpty()) {
copy = ores.get(0).copy();
}
} else if (obj instanceof ItemStack itemStack) {
copy = itemStack.copy();
}
if (copy != null) {
if (copy.getItemDamage() == OreDictionary.WILDCARD_VALUE) copy.setItemDamage(0);
renderItemAtAngle(gui, currentDegree, copy);
}
currentDegree += degreePerInput;
}
renderManaBar(gui, mx, my);
Expand Down Expand Up @@ -116,7 +127,7 @@ public void updateScreen() {
}

public List<ItemStack> getDisplayedRecipes() {
ArrayList<ItemStack> list = new ArrayList<ItemStack>();
ArrayList<ItemStack> list = new ArrayList<>();
list.add(recipe.getOutput());
return list;
}
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/ab/api/recipe/lexicon/AlphirineCraftPage.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,16 @@

import org.lwjgl.opengl.GL11;

import vazkii.botania.api.internal.IGuiLexiconEntry;
import vazkii.botania.api.lexicon.LexiconEntry;
import vazkii.botania.api.lexicon.LexiconRecipeMappings;
import vazkii.botania.common.item.block.ItemBlockSpecialFlower;
import vazkii.botania.common.lexicon.page.PageRecipe;
import ab.api.AdvancedBotanyAPI;
import ab.api.recipe.RecipeAncientAlphirine;
import ab.client.core.ClientHelper;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import vazkii.botania.api.internal.IGuiLexiconEntry;
import vazkii.botania.api.lexicon.LexiconEntry;
import vazkii.botania.api.lexicon.LexiconRecipeMappings;
import vazkii.botania.common.item.block.ItemBlockSpecialFlower;
import vazkii.botania.common.lexicon.page.PageRecipe;

public class AlphirineCraftPage extends PageRecipe {

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/ab/client/core/handler/BoundRenderHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@

import org.lwjgl.opengl.GL11;

import ab.api.IBoundRender;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import vazkii.botania.api.wand.ICoordBoundItem;
import vazkii.botania.api.wand.IWireframeAABBProvider;
import vazkii.botania.client.core.handler.ClientTickHandler;
import ab.api.IBoundRender;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;

public class BoundRenderHandler {

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/ab/client/core/handler/ClientHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;

import vazkii.botania.client.core.handler.ClientTickHandler;
import vazkii.botania.common.lib.LibObfuscation;
import ab.api.IRankItem;
import ab.client.core.handler.PlayerItemUsingSound.ClientSoundHandler;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
import cpw.mods.fml.relauncher.ReflectionHelper;
import vazkii.botania.client.core.handler.ClientTickHandler;
import vazkii.botania.common.lib.LibObfuscation;

public class ClientHandler {

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/ab/client/core/handler/HudRenderHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
import net.minecraft.util.MovingObjectPosition;
import net.minecraftforge.client.event.RenderGameOverlayEvent;

import vazkii.botania.common.item.ItemLexicon;
import vazkii.botania.common.item.ItemTwigWand;
import ab.api.IRenderHud;
import ab.common.item.equipment.ItemBlackHalo;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import vazkii.botania.common.item.ItemLexicon;
import vazkii.botania.common.item.ItemTwigWand;

public class HudRenderHandler {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@

import org.lwjgl.opengl.GL11;

import vazkii.botania.api.item.IPhantomInkable;
import vazkii.botania.client.core.handler.ClientTickHandler;
import ab.client.core.ClientHelper;
import ab.common.item.equipment.armor.ItemNebulaArmor;
import ab.common.item.equipment.armor.ItemNebulaHelm;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import vazkii.botania.api.item.IPhantomInkable;
import vazkii.botania.client.core.handler.ClientTickHandler;

public class PlayerRendererHandler {

Expand Down
40 changes: 34 additions & 6 deletions src/main/java/ab/client/core/proxy/ClientProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,47 @@
import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.common.MinecraftForge;

import vazkii.botania.common.Botania;
import ab.client.core.handler.BoundRenderHandler;
import ab.client.core.handler.ClientHandler;
import ab.client.core.handler.HudRenderHandler;
import ab.client.core.handler.PlayerRendererHandler;
import ab.client.render.block.*;
import ab.client.render.entity.*;
import ab.client.render.block.RenderBlockABSpreader;
import ab.client.render.block.RenderBlockEngineerHopper;
import ab.client.render.block.RenderBlockManaCharger;
import ab.client.render.block.RenderBlockManaContainer;
import ab.client.render.block.RenderBlockManaCrystalCube;
import ab.client.render.block.RenderBlockNidavellirForge;
import ab.client.render.entity.EntityNullRender;
import ab.client.render.entity.RenderEntityAdvancedSpark;
import ab.client.render.entity.RenderEntityAlphirinePortal;
import ab.client.render.item.RenderItemAntigravityCharm;
import ab.client.render.item.RenderItemSphereNavigation;
import ab.client.render.tile.*;
import ab.common.block.tile.*;
import ab.client.render.tile.RenderTileABSpreader;
import ab.client.render.tile.RenderTileBoardFate;
import ab.client.render.tile.RenderTileEngineerHopper;
import ab.client.render.tile.RenderTileGameBoard;
import ab.client.render.tile.RenderTileMagicCraftingCrate;
import ab.client.render.tile.RenderTileManaCharger;
import ab.client.render.tile.RenderTileManaContainer;
import ab.client.render.tile.RenderTileManaCrystalCube;
import ab.client.render.tile.RenderTileNidavellirForge;
import ab.common.block.tile.TileABSpreader;
import ab.common.block.tile.TileBoardFate;
import ab.common.block.tile.TileEngineerHopper;
import ab.common.block.tile.TileGameBoard;
import ab.common.block.tile.TileMagicCraftCrate;
import ab.common.block.tile.TileManaCharger;
import ab.common.block.tile.TileManaContainer;
import ab.common.block.tile.TileManaCrystalCube;
import ab.common.block.tile.TileNidavellirForge;
import ab.common.core.handler.ConfigABHandler;
import ab.common.core.proxy.CommonProxy;
import ab.common.entity.*;
import ab.common.entity.EntityAdvancedSpark;
import ab.common.entity.EntityAlphirinePortal;
import ab.common.entity.EntityManaVine;
import ab.common.entity.EntityNebulaBlaze;
import ab.common.entity.EntitySeed;
import ab.common.entity.EntitySword;
import ab.common.lib.register.BlockListAB;
import ab.common.lib.register.ItemListAB;
import cpw.mods.fml.client.registry.ClientRegistry;
Expand All @@ -25,6 +52,7 @@
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import vazkii.botania.common.Botania;

public class ClientProxy extends CommonProxy {

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/ab/client/gui/ContainerItemChest.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;

import vazkii.botania.client.gui.SlotLocked;
import ab.common.item.relic.ItemTalismanHiddenRiches;
import vazkii.botania.client.gui.SlotLocked;

public class ContainerItemChest extends Container {

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/ab/client/model/ModelManaCharger.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@

import org.lwjgl.opengl.GL11;

import vazkii.botania.client.core.handler.LightningHandler;
import vazkii.botania.common.core.helper.Vector3;
import ab.client.render.tile.RenderTileManaCharger;
import ab.common.block.tile.TileManaCharger;
import vazkii.botania.client.core.handler.LightningHandler;
import vazkii.botania.common.core.helper.Vector3;

public class ModelManaCharger extends ModelBase {

Expand Down
Loading

0 comments on commit 78428d7

Please sign in to comment.