diff --git a/src/main/java/com/simibubi/create/AllItems.java b/src/main/java/com/simibubi/create/AllItems.java index 95e13caec..c0df793fa 100644 --- a/src/main/java/com/simibubi/create/AllItems.java +++ b/src/main/java/com/simibubi/create/AllItems.java @@ -88,6 +88,8 @@ public enum AllItems { FLOUR(ingredient()), DOUGH(ingredient()), PROPELLER(ingredient()), + WHISK(ingredient()), + BRASS_HAND(ingredient()), WRENCH(new WrenchItem(standardItemProperties().setTEISR(() -> () -> renderUsing(AllItemRenderers.WRENCH))), true), GOGGLES(new GogglesItem(standardItemProperties()), true), diff --git a/src/main/java/com/simibubi/create/AllRecipes.java b/src/main/java/com/simibubi/create/AllRecipes.java index cd368475e..9ee40f860 100644 --- a/src/main/java/com/simibubi/create/AllRecipes.java +++ b/src/main/java/com/simibubi/create/AllRecipes.java @@ -2,6 +2,7 @@ package com.simibubi.create; import java.util.function.Supplier; +import com.simibubi.create.compat.jei.ConversionRecipe; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.modules.contraptions.components.crafter.MechanicalCraftingRecipe; import com.simibubi.create.modules.contraptions.components.crusher.CrushingRecipe; @@ -34,6 +35,7 @@ public enum AllRecipes { CUTTING(processingSerializer(CuttingRecipe::new)), MIXING(processingSerializer(MixingRecipe::new)), SANDPAPER_POLISHING(processingSerializer(SandPaperPolishingRecipe::new)), + CONVERSION(processingSerializer(ConversionRecipe::new)), ; diff --git a/src/main/java/com/simibubi/create/ScreenResources.java b/src/main/java/com/simibubi/create/ScreenResources.java index 2fec60633..d62357424 100644 --- a/src/main/java/com/simibubi/create/ScreenResources.java +++ b/src/main/java/com/simibubi/create/ScreenResources.java @@ -73,6 +73,7 @@ public enum ScreenResources { JEI_LONG_ARROW("jei/widgets.png", 19, 0, 71, 10), JEI_DOWN_ARROW("jei/widgets.png", 0, 21, 18, 14), JEI_LIGHT("jei/widgets.png", 0, 42, 52, 11), + JEI_QUESTION_MARK("jei/widgets.png", 0, 178, 12, 16), JEI_SHADOW("jei/widgets.png", 0, 56, 52, 11), BLOCKZAPPER_UPGRADE_RECIPE("jei/widgets.png", 0, 75, 144, 66), diff --git a/src/main/java/com/simibubi/create/compat/jei/ConversionRecipe.java b/src/main/java/com/simibubi/create/compat/jei/ConversionRecipe.java new file mode 100644 index 000000000..cf5f3913b --- /dev/null +++ b/src/main/java/com/simibubi/create/compat/jei/ConversionRecipe.java @@ -0,0 +1,49 @@ +package com.simibubi.create.compat.jei; + +import java.util.Arrays; +import java.util.List; + +import com.simibubi.create.AllRecipes; +import com.simibubi.create.Create; +import com.simibubi.create.modules.contraptions.processing.ProcessingIngredient; +import com.simibubi.create.modules.contraptions.processing.ProcessingOutput; +import com.simibubi.create.modules.contraptions.processing.ProcessingRecipe; + +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.items.wrapper.RecipeWrapper; + +/** + * Helper recipe type for displaying an item relationship in JEI + * + * @author simibubi + * + */ +public class ConversionRecipe extends ProcessingRecipe { + + public ConversionRecipe(ResourceLocation id, String group, List ingredients, + List results, int processingDuration) { + super(AllRecipes.CONVERSION, id, group, ingredients, results, processingDuration); + } + + static int counter = 0; + + public static ConversionRecipe create(ItemStack from, ItemStack to) { + List ingredients = Arrays.asList(new ProcessingIngredient(Ingredient.fromStacks(from))); + List outputs = Arrays.asList(new ProcessingOutput(to, 1)); + return new ConversionRecipe(new ResourceLocation(Create.ID, "conversion_" + counter++), ingredients, outputs); + } + + public ConversionRecipe(ResourceLocation id, List ingredients, + List results) { + this(id, "conversions", ingredients, results, -1); + } + + @Override + public boolean matches(RecipeWrapper inv, World worldIn) { + return false; + } + +} diff --git a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java index 5171f1939..719be23e7 100644 --- a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java +++ b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java @@ -9,7 +9,19 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.AllRecipes; import com.simibubi.create.Create; -import com.simibubi.create.compat.jei.BlockCuttingCategory.CondensedBlockCuttingRecipe; +import com.simibubi.create.compat.jei.category.BlastingViaFanCategory; +import com.simibubi.create.compat.jei.category.BlockCuttingCategory; +import com.simibubi.create.compat.jei.category.BlockCuttingCategory.CondensedBlockCuttingRecipe; +import com.simibubi.create.compat.jei.category.BlockzapperUpgradeCategory; +import com.simibubi.create.compat.jei.category.CrushingCategory; +import com.simibubi.create.compat.jei.category.MixingCategory; +import com.simibubi.create.compat.jei.category.MysteriousItemConversionCategory; +import com.simibubi.create.compat.jei.category.PackingCategory; +import com.simibubi.create.compat.jei.category.PolishingCategory; +import com.simibubi.create.compat.jei.category.PressingCategory; +import com.simibubi.create.compat.jei.category.SawingCategory; +import com.simibubi.create.compat.jei.category.SmokingViaFanCategory; +import com.simibubi.create.compat.jei.category.SplashingCategory; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.modules.contraptions.components.mixer.MixingRecipe; import com.simibubi.create.modules.contraptions.components.press.MechanicalPressTileEntity; @@ -50,6 +62,8 @@ public class CreateJEI implements IModPlugin { private SawingCategory sawingCategory; private BlockCuttingCategory blockCuttingCategory; private PackingCategory packingCategory; + private PolishingCategory polishingCategory; + private MysteriousItemConversionCategory mysteryConversionCategory; @Override public ResourceLocation getPluginUid() { @@ -67,6 +81,8 @@ public class CreateJEI implements IModPlugin { sawingCategory = new SawingCategory(); blockCuttingCategory = new BlockCuttingCategory(); packingCategory = new PackingCategory(); + polishingCategory = new PolishingCategory(); + mysteryConversionCategory = new MysteriousItemConversionCategory(); } @Override @@ -78,7 +94,7 @@ public class CreateJEI implements IModPlugin { public void registerCategories(IRecipeCategoryRegistration registration) { registration.addRecipeCategories(crushingCategory, splashingCategory, pressingCategory, smokingCategory, blastingCategory, blockzapperCategory, mixingCategory, sawingCategory, blockCuttingCategory, - packingCategory); + packingCategory, polishingCategory, mysteryConversionCategory); } @Override @@ -103,6 +119,8 @@ public class CreateJEI implements IModPlugin { registration.addRecipes(findRecipes( r -> (r instanceof ICraftingRecipe) && MechanicalPressTileEntity.canCompress(r.getIngredients())), packingCategory.getUid()); + registration.addRecipes(findRecipes(AllRecipes.SANDPAPER_POLISHING), polishingCategory.getUid()); + registration.addRecipes(MysteriousItemConversionCategory.getRecipes(), mysteryConversionCategory.getUid()); } @Override @@ -129,6 +147,8 @@ public class CreateJEI implements IModPlugin { registration.addRecipeCatalyst(new ItemStack(Blocks.STONECUTTER), blockCuttingCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(AllBlocks.MECHANICAL_PRESS.get()), packingCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(AllBlocks.BASIN.get()), packingCategory.getUid()); + registration.addRecipeCatalyst(AllItems.SAND_PAPER.asStack(), polishingCategory.getUid()); + registration.addRecipeCatalyst(AllItems.RED_SAND_PAPER.asStack(), polishingCategory.getUid()); } @Override @@ -172,7 +192,7 @@ public class CreateJEI implements IModPlugin { return byType; } - static void addStochasticTooltip(IGuiItemStackGroup itemStacks, List results) { + public static void addStochasticTooltip(IGuiItemStackGroup itemStacks, List results) { itemStacks.addTooltipCallback((slotIndex, input, ingredient, tooltip) -> { if (input) return; @@ -183,7 +203,7 @@ public class CreateJEI implements IModPlugin { }); } - static void addCatalystTooltip(IGuiItemStackGroup itemStacks, Map catalystIndices) { + public static void addCatalystTooltip(IGuiItemStackGroup itemStacks, Map catalystIndices) { itemStacks.addTooltipCallback((slotIndex, input, ingredient, tooltip) -> { if (!input) return; diff --git a/src/main/java/com/simibubi/create/compat/jei/BlastingViaFanCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/BlastingViaFanCategory.java similarity index 95% rename from src/main/java/com/simibubi/create/compat/jei/BlastingViaFanCategory.java rename to src/main/java/com/simibubi/create/compat/jei/category/BlastingViaFanCategory.java index 41020fb84..a2970b286 100644 --- a/src/main/java/com/simibubi/create/compat/jei/BlastingViaFanCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/BlastingViaFanCategory.java @@ -1,8 +1,9 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category; import com.mojang.blaze3d.platform.GlStateManager; import com.simibubi.create.AllItems; import com.simibubi.create.Create; +import com.simibubi.create.compat.jei.DoubleItemIcon; import com.simibubi.create.foundation.gui.ScreenElementRenderer; import com.simibubi.create.foundation.utility.Lang; diff --git a/src/main/java/com/simibubi/create/compat/jei/BlockCuttingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/BlockCuttingCategory.java similarity index 92% rename from src/main/java/com/simibubi/create/compat/jei/BlockCuttingCategory.java rename to src/main/java/com/simibubi/create/compat/jei/category/BlockCuttingCategory.java index 2e366ecd1..ff45422c7 100644 --- a/src/main/java/com/simibubi/create/compat/jei/BlockCuttingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/BlockCuttingCategory.java @@ -1,4 +1,4 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category; import java.util.ArrayList; import java.util.Arrays; @@ -7,7 +7,10 @@ import java.util.List; import com.simibubi.create.AllBlocks; import com.simibubi.create.Create; import com.simibubi.create.ScreenResources; -import com.simibubi.create.compat.jei.BlockCuttingCategory.CondensedBlockCuttingRecipe; +import com.simibubi.create.compat.jei.DoubleItemIcon; +import com.simibubi.create.compat.jei.EmptyBackground; +import com.simibubi.create.compat.jei.category.BlockCuttingCategory.CondensedBlockCuttingRecipe; +import com.simibubi.create.compat.jei.category.animations.AnimatedSaw; import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.utility.Lang; diff --git a/src/main/java/com/simibubi/create/compat/jei/BlockzapperUpgradeCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/BlockzapperUpgradeCategory.java similarity index 96% rename from src/main/java/com/simibubi/create/compat/jei/BlockzapperUpgradeCategory.java rename to src/main/java/com/simibubi/create/compat/jei/category/BlockzapperUpgradeCategory.java index 98687a606..6bdc827f0 100644 --- a/src/main/java/com/simibubi/create/compat/jei/BlockzapperUpgradeCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/BlockzapperUpgradeCategory.java @@ -1,4 +1,4 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category; import static com.simibubi.create.ScreenResources.BLOCKZAPPER_UPGRADE_RECIPE; @@ -10,6 +10,8 @@ import java.util.stream.Collectors; import com.mojang.blaze3d.platform.GlStateManager; import com.simibubi.create.AllItems; import com.simibubi.create.Create; +import com.simibubi.create.compat.jei.DoubleItemIcon; +import com.simibubi.create.compat.jei.ScreenResourceWrapper; import com.simibubi.create.foundation.gui.ScreenElementRenderer; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.modules.curiosities.blockzapper.BlockzapperUpgradeRecipe; diff --git a/src/main/java/com/simibubi/create/compat/jei/CrushingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/CrushingCategory.java similarity index 91% rename from src/main/java/com/simibubi/create/compat/jei/CrushingCategory.java rename to src/main/java/com/simibubi/create/compat/jei/category/CrushingCategory.java index 47f1a65f0..28f23f364 100644 --- a/src/main/java/com/simibubi/create/compat/jei/CrushingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/CrushingCategory.java @@ -1,4 +1,4 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category; import java.util.Arrays; import java.util.List; @@ -7,6 +7,10 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.Create; import com.simibubi.create.ScreenResources; +import com.simibubi.create.compat.jei.CreateJEI; +import com.simibubi.create.compat.jei.DoubleItemIcon; +import com.simibubi.create.compat.jei.EmptyBackground; +import com.simibubi.create.compat.jei.category.animations.AnimatedCrushingWheels; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.modules.contraptions.components.crusher.CrushingRecipe; import com.simibubi.create.modules.contraptions.processing.ProcessingOutput; diff --git a/src/main/java/com/simibubi/create/compat/jei/MixingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/MixingCategory.java similarity index 94% rename from src/main/java/com/simibubi/create/compat/jei/MixingCategory.java rename to src/main/java/com/simibubi/create/compat/jei/category/MixingCategory.java index d7e85f6e5..00342dcb7 100644 --- a/src/main/java/com/simibubi/create/compat/jei/MixingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/MixingCategory.java @@ -1,4 +1,4 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category; import java.util.Arrays; import java.util.HashMap; @@ -12,6 +12,10 @@ import org.apache.commons.lang3.tuple.Pair; import com.simibubi.create.AllBlocks; import com.simibubi.create.Create; import com.simibubi.create.ScreenResources; +import com.simibubi.create.compat.jei.CreateJEI; +import com.simibubi.create.compat.jei.DoubleItemIcon; +import com.simibubi.create.compat.jei.EmptyBackground; +import com.simibubi.create.compat.jei.category.animations.AnimatedMixer; import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.modules.contraptions.components.mixer.MixingRecipe; diff --git a/src/main/java/com/simibubi/create/compat/jei/category/MysteriousItemConversionCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/MysteriousItemConversionCategory.java new file mode 100644 index 000000000..85277b79f --- /dev/null +++ b/src/main/java/com/simibubi/create/compat/jei/category/MysteriousItemConversionCategory.java @@ -0,0 +1,95 @@ +package com.simibubi.create.compat.jei.category; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.simibubi.create.AllItems; +import com.simibubi.create.Create; +import com.simibubi.create.ScreenResources; +import com.simibubi.create.compat.jei.ConversionRecipe; +import com.simibubi.create.compat.jei.CreateJEI; +import com.simibubi.create.compat.jei.DoubleItemIcon; +import com.simibubi.create.compat.jei.EmptyBackground; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.modules.contraptions.processing.ProcessingOutput; + +import mezz.jei.api.constants.VanillaTypes; +import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.gui.drawable.IDrawable; +import mezz.jei.api.gui.ingredient.IGuiItemStackGroup; +import mezz.jei.api.ingredients.IIngredients; +import mezz.jei.api.recipe.category.IRecipeCategory; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class MysteriousItemConversionCategory implements IRecipeCategory { + + private static ResourceLocation ID = new ResourceLocation(Create.ID, "mystery_conversion"); + private IDrawable icon; + private IDrawable background = new EmptyBackground(177, 50); + + public static List getRecipes() { + List recipes = new ArrayList<>(); + recipes.add(ConversionRecipe.create(AllItems.CHROMATIC_COMPOUND.asStack(), AllItems.SHADOW_STEEL.asStack())); + recipes.add(ConversionRecipe.create(AllItems.CHROMATIC_COMPOUND.asStack(), AllItems.REFINED_RADIANCE.asStack())); + return recipes; + } + + public MysteriousItemConversionCategory() { + icon = new DoubleItemIcon(() -> AllItems.CHROMATIC_COMPOUND.asStack(), () -> ItemStack.EMPTY); + } + + @Override + public IDrawable getIcon() { + return icon; + } + + @Override + public ResourceLocation getUid() { + return ID; + } + + @Override + public Class getRecipeClass() { + return ConversionRecipe.class; + } + + @Override + public String getTitle() { + return Lang.translate("recipe.mystery_conversion"); + } + + @Override + public IDrawable getBackground() { + return background; + } + + @Override + public void setIngredients(ConversionRecipe recipe, IIngredients ingredients) { + ingredients.setInputIngredients(recipe.getIngredients()); + ingredients.setOutputs(VanillaTypes.ITEM, recipe.getPossibleOutputs()); + } + + @Override + public void setRecipe(IRecipeLayout recipeLayout, ConversionRecipe recipe, IIngredients ingredients) { + IGuiItemStackGroup itemStacks = recipeLayout.getItemStacks(); + List results = recipe.getRollableResults(); + + itemStacks.init(0, true, 26, 16); + itemStacks.set(0, Arrays.asList(recipe.getIngredients().get(0).getMatchingStacks())); + itemStacks.init(1, false, 131, 16); + itemStacks.set(1, results.get(0).getStack()); + + CreateJEI.addStochasticTooltip(itemStacks, results); + } + + @Override + public void draw(ConversionRecipe recipe, double mouseX, double mouseY) { + ScreenResources.JEI_SLOT.draw(26, 16); + ScreenResources.JEI_SLOT.draw(131, 16); + ScreenResources.JEI_LONG_ARROW.draw(52, 20); + ScreenResources.JEI_QUESTION_MARK.draw(77, 5); + } + +} diff --git a/src/main/java/com/simibubi/create/compat/jei/PackingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/PackingCategory.java similarity index 92% rename from src/main/java/com/simibubi/create/compat/jei/PackingCategory.java rename to src/main/java/com/simibubi/create/compat/jei/category/PackingCategory.java index 4dc400da3..c7c0f7bad 100644 --- a/src/main/java/com/simibubi/create/compat/jei/PackingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/PackingCategory.java @@ -1,10 +1,13 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category; import java.util.Arrays; import com.simibubi.create.AllBlocks; import com.simibubi.create.Create; import com.simibubi.create.ScreenResources; +import com.simibubi.create.compat.jei.DoubleItemIcon; +import com.simibubi.create.compat.jei.EmptyBackground; +import com.simibubi.create.compat.jei.category.animations.AnimatedPress; import com.simibubi.create.foundation.utility.Lang; import mezz.jei.api.constants.VanillaTypes; diff --git a/src/main/java/com/simibubi/create/compat/jei/category/PolishingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/PolishingCategory.java new file mode 100644 index 000000000..a12209cb7 --- /dev/null +++ b/src/main/java/com/simibubi/create/compat/jei/category/PolishingCategory.java @@ -0,0 +1,109 @@ +package com.simibubi.create.compat.jei.category; + +import java.util.Arrays; +import java.util.List; + +import com.mojang.blaze3d.platform.GlStateManager; +import com.simibubi.create.AllItems; +import com.simibubi.create.Create; +import com.simibubi.create.ScreenResources; +import com.simibubi.create.compat.jei.CreateJEI; +import com.simibubi.create.compat.jei.DoubleItemIcon; +import com.simibubi.create.compat.jei.EmptyBackground; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.modules.contraptions.processing.ProcessingOutput; +import com.simibubi.create.modules.curiosities.tools.SandPaperPolishingRecipe; + +import mezz.jei.api.constants.VanillaTypes; +import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.gui.drawable.IDrawable; +import mezz.jei.api.gui.ingredient.IGuiItemStackGroup; +import mezz.jei.api.ingredients.IIngredients; +import mezz.jei.api.recipe.category.IRecipeCategory; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.NonNullList; +import net.minecraft.util.ResourceLocation; + +public class PolishingCategory implements IRecipeCategory { + + private static ResourceLocation ID = new ResourceLocation(Create.ID, "sandpaper_polishing"); + private IDrawable icon; + private IDrawable background = new EmptyBackground(177, 55); + private ItemStack renderedSandpaper; + + public PolishingCategory() { + icon = new DoubleItemIcon(() -> AllItems.SAND_PAPER.asStack(), () -> ItemStack.EMPTY); + renderedSandpaper = AllItems.SAND_PAPER.asStack(); + } + + @Override + public IDrawable getIcon() { + return icon; + } + + @Override + public ResourceLocation getUid() { + return ID; + } + + @Override + public Class getRecipeClass() { + return SandPaperPolishingRecipe.class; + } + + @Override + public String getTitle() { + return Lang.translate("recipe.sandpaper_polishing"); + } + + @Override + public IDrawable getBackground() { + return background; + } + + @Override + public void setIngredients(SandPaperPolishingRecipe recipe, IIngredients ingredients) { + ingredients.setInputIngredients(recipe.getIngredients()); + ingredients.setOutputs(VanillaTypes.ITEM, recipe.getPossibleOutputs()); + } + + @Override + public void setRecipe(IRecipeLayout recipeLayout, SandPaperPolishingRecipe recipe, IIngredients ingredients) { + IGuiItemStackGroup itemStacks = recipeLayout.getItemStacks(); + List results = recipe.getRollableResults(); + + itemStacks.init(0, true, 26, 28); + itemStacks.set(0, Arrays.asList(recipe.getIngredients().get(0).getMatchingStacks())); + itemStacks.init(1, false, 131, 28); + itemStacks.set(1, results.get(0).getStack()); + + CreateJEI.addStochasticTooltip(itemStacks, results); + } + + @Override + public void draw(SandPaperPolishingRecipe recipe, double mouseX, double mouseY) { + ScreenResources.JEI_SLOT.draw(26, 28); + ScreenResources.JEI_SLOT.draw(131, 28); + ScreenResources.JEI_SHADOW.draw(61, 21); + ScreenResources.JEI_LONG_ARROW.draw(52, 32); + + NonNullList ingredients = recipe.getIngredients(); + ItemStack[] matchingStacks = ingredients.get(0).getMatchingStacks(); + if (matchingStacks.length == 0) + return; + + GlStateManager.pushMatrix(); + CompoundNBT tag = renderedSandpaper.getOrCreateTag(); + tag.put("Polishing", matchingStacks[0].serializeNBT()); + tag.putBoolean("JEI", true); + ItemRenderer itemRenderer = Minecraft.getInstance().getItemRenderer(); + GlStateManager.scaled(2, 2, 2); + itemRenderer.renderItemIntoGUI(renderedSandpaper, getBackground().getWidth() / 4 - 8, 1); + GlStateManager.popMatrix(); + } + +} diff --git a/src/main/java/com/simibubi/create/compat/jei/PressingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/PressingCategory.java similarity index 91% rename from src/main/java/com/simibubi/create/compat/jei/PressingCategory.java rename to src/main/java/com/simibubi/create/compat/jei/category/PressingCategory.java index 952d7bc9c..3a3774990 100644 --- a/src/main/java/com/simibubi/create/compat/jei/PressingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/PressingCategory.java @@ -1,4 +1,4 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category; import java.util.Arrays; import java.util.List; @@ -7,6 +7,10 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.Create; import com.simibubi.create.ScreenResources; +import com.simibubi.create.compat.jei.CreateJEI; +import com.simibubi.create.compat.jei.DoubleItemIcon; +import com.simibubi.create.compat.jei.EmptyBackground; +import com.simibubi.create.compat.jei.category.animations.AnimatedPress; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.modules.contraptions.components.press.PressingRecipe; import com.simibubi.create.modules.contraptions.processing.ProcessingOutput; diff --git a/src/main/java/com/simibubi/create/compat/jei/ProcessingViaFanCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/ProcessingViaFanCategory.java similarity index 94% rename from src/main/java/com/simibubi/create/compat/jei/ProcessingViaFanCategory.java rename to src/main/java/com/simibubi/create/compat/jei/category/ProcessingViaFanCategory.java index a4e90a3bd..a0609a536 100644 --- a/src/main/java/com/simibubi/create/compat/jei/ProcessingViaFanCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/ProcessingViaFanCategory.java @@ -1,10 +1,12 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category; import java.util.Arrays; import com.mojang.blaze3d.platform.GlStateManager; import com.simibubi.create.AllBlocks; import com.simibubi.create.ScreenResources; +import com.simibubi.create.compat.jei.EmptyBackground; +import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics; import com.simibubi.create.foundation.gui.ScreenElementRenderer; import mezz.jei.api.constants.VanillaTypes; diff --git a/src/main/java/com/simibubi/create/compat/jei/SawingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/SawingCategory.java similarity index 91% rename from src/main/java/com/simibubi/create/compat/jei/SawingCategory.java rename to src/main/java/com/simibubi/create/compat/jei/category/SawingCategory.java index d9c5b3d1c..7a42a14ae 100644 --- a/src/main/java/com/simibubi/create/compat/jei/SawingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/SawingCategory.java @@ -1,4 +1,4 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category; import java.util.Arrays; import java.util.List; @@ -6,6 +6,10 @@ import java.util.List; import com.simibubi.create.AllBlocks; import com.simibubi.create.Create; import com.simibubi.create.ScreenResources; +import com.simibubi.create.compat.jei.CreateJEI; +import com.simibubi.create.compat.jei.DoubleItemIcon; +import com.simibubi.create.compat.jei.EmptyBackground; +import com.simibubi.create.compat.jei.category.animations.AnimatedSaw; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.modules.contraptions.components.saw.CuttingRecipe; import com.simibubi.create.modules.contraptions.processing.ProcessingOutput; diff --git a/src/main/java/com/simibubi/create/compat/jei/SmokingViaFanCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/SmokingViaFanCategory.java similarity index 92% rename from src/main/java/com/simibubi/create/compat/jei/SmokingViaFanCategory.java rename to src/main/java/com/simibubi/create/compat/jei/category/SmokingViaFanCategory.java index d81083c57..1444881d9 100644 --- a/src/main/java/com/simibubi/create/compat/jei/SmokingViaFanCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/SmokingViaFanCategory.java @@ -1,7 +1,8 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category; import com.simibubi.create.AllItems; import com.simibubi.create.Create; +import com.simibubi.create.compat.jei.DoubleItemIcon; import com.simibubi.create.foundation.gui.ScreenElementRenderer; import com.simibubi.create.foundation.utility.Lang; diff --git a/src/main/java/com/simibubi/create/compat/jei/SplashingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/SplashingCategory.java similarity index 95% rename from src/main/java/com/simibubi/create/compat/jei/SplashingCategory.java rename to src/main/java/com/simibubi/create/compat/jei/category/SplashingCategory.java index 3a77f4f4b..fbf53fac5 100644 --- a/src/main/java/com/simibubi/create/compat/jei/SplashingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/SplashingCategory.java @@ -1,4 +1,4 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category; import java.util.Arrays; import java.util.List; @@ -7,6 +7,9 @@ import com.mojang.blaze3d.platform.GlStateManager; import com.simibubi.create.AllItems; import com.simibubi.create.Create; import com.simibubi.create.ScreenResources; +import com.simibubi.create.compat.jei.CreateJEI; +import com.simibubi.create.compat.jei.DoubleItemIcon; +import com.simibubi.create.compat.jei.EmptyBackground; import com.simibubi.create.foundation.gui.ScreenElementRenderer; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.modules.contraptions.components.fan.SplashingRecipe; diff --git a/src/main/java/com/simibubi/create/compat/jei/AnimatedCrushingWheels.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrushingWheels.java similarity index 96% rename from src/main/java/com/simibubi/create/compat/jei/AnimatedCrushingWheels.java rename to src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrushingWheels.java index 6145c3c3d..110625ced 100644 --- a/src/main/java/com/simibubi/create/compat/jei/AnimatedCrushingWheels.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrushingWheels.java @@ -1,4 +1,4 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category.animations; import com.mojang.blaze3d.platform.GlStateManager; import com.simibubi.create.AllBlocks; diff --git a/src/main/java/com/simibubi/create/compat/jei/AnimatedKinetics.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedKinetics.java similarity index 85% rename from src/main/java/com/simibubi/create/compat/jei/AnimatedKinetics.java rename to src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedKinetics.java index fb6a74602..63dd2cfa2 100644 --- a/src/main/java/com/simibubi/create/compat/jei/AnimatedKinetics.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedKinetics.java @@ -1,4 +1,4 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category.animations; import com.simibubi.create.foundation.utility.AnimationTickHolder; diff --git a/src/main/java/com/simibubi/create/compat/jei/AnimatedMixer.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMixer.java similarity index 97% rename from src/main/java/com/simibubi/create/compat/jei/AnimatedMixer.java rename to src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMixer.java index df92a644f..161f910f6 100644 --- a/src/main/java/com/simibubi/create/compat/jei/AnimatedMixer.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMixer.java @@ -1,4 +1,4 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category.animations; import com.mojang.blaze3d.platform.GlStateManager; import com.simibubi.create.AllBlocks; diff --git a/src/main/java/com/simibubi/create/compat/jei/AnimatedPress.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedPress.java similarity index 97% rename from src/main/java/com/simibubi/create/compat/jei/AnimatedPress.java rename to src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedPress.java index a131624e3..d87636102 100644 --- a/src/main/java/com/simibubi/create/compat/jei/AnimatedPress.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedPress.java @@ -1,4 +1,4 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category.animations; import static com.simibubi.create.foundation.utility.AnimationTickHolder.ticks; diff --git a/src/main/java/com/simibubi/create/compat/jei/AnimatedSaw.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedSaw.java similarity index 96% rename from src/main/java/com/simibubi/create/compat/jei/AnimatedSaw.java rename to src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedSaw.java index 8f2fd7b71..a75faa4a8 100644 --- a/src/main/java/com/simibubi/create/compat/jei/AnimatedSaw.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedSaw.java @@ -1,4 +1,4 @@ -package com.simibubi.create.compat.jei; +package com.simibubi.create.compat.jei.category.animations; import com.mojang.blaze3d.platform.GlStateManager; import com.simibubi.create.AllBlocks; diff --git a/src/main/java/com/simibubi/create/modules/curiosities/tools/SandPaperItemRenderer.java b/src/main/java/com/simibubi/create/modules/curiosities/tools/SandPaperItemRenderer.java index f1126a766..7fec0f6a4 100644 --- a/src/main/java/com/simibubi/create/modules/curiosities/tools/SandPaperItemRenderer.java +++ b/src/main/java/com/simibubi/create/modules/curiosities/tools/SandPaperItemRenderer.java @@ -6,6 +6,7 @@ import org.apache.commons.lang3.tuple.Pair; import com.mojang.blaze3d.platform.GlStateManager; import com.simibubi.create.foundation.block.render.CustomRenderItemBakedModel; +import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.player.ClientPlayerEntity; @@ -35,9 +36,11 @@ public class SandPaperItemRenderer extends ItemStackTileEntityRenderer { GlStateManager.translatef(.5f, .5f, .5f); CompoundNBT tag = stack.getOrCreateTag(); + boolean jeiMode = tag.contains("JEI"); + if (tag.contains("Polishing")) { GlStateManager.pushMatrix(); - + if (mainModel.transformType == TransformType.GUI) { GlStateManager.translatef(0.0F, .2f, 1.0F); GlStateManager.scalef(.75f, .75f, .75f); @@ -45,18 +48,19 @@ public class SandPaperItemRenderer extends ItemStackTileEntityRenderer { int modifier = leftHand ? -1 : 1; GlStateManager.rotatef(modifier * 40, 0, 1, 0); } - + // Reverse bobbing - float time = (float) player.getItemInUseCount() - partialTicks + 1.0F; + float time = (float) (!jeiMode ? player.getItemInUseCount() + : (-AnimationTickHolder.ticks) % stack.getUseDuration()) - partialTicks + 1.0F; if (time / (float) stack.getUseDuration() < 0.8F) { float bobbing = -MathHelper.abs(MathHelper.cos(time / 4.0F * (float) Math.PI) * 0.1F); - - if (mainModel.transformType == TransformType.GUI) + + if (mainModel.transformType == TransformType.GUI) GlStateManager.translatef(bobbing, bobbing, 0.0F); - else + else GlStateManager.translatef(0.0f, bobbing, 0.0F); } - + ItemStack toPolish = ItemStack.read(tag.getCompound("Polishing")); itemRenderer.renderItem(toPolish, itemRenderer.getModelWithOverrides(toPolish).getBakedModel()); diff --git a/src/main/resources/assets/create/lang/en_us.json b/src/main/resources/assets/create/lang/en_us.json index a2a0322cb..f165f081f 100644 --- a/src/main/resources/assets/create/lang/en_us.json +++ b/src/main/resources/assets/create/lang/en_us.json @@ -24,6 +24,8 @@ "item.create.lapis_plate": "Lapis Plating", "item.create.obsidian_dust": "Powdered Obsidian", "item.create.propeller": "Propeller", + "item.create.whisk": "Whisk", + "item.create.brass_hand": "Hand", "item.create.flour": "Wheat Flour", "item.create.dough": "Dough", "item.create.wrench": "Wrench", @@ -228,6 +230,8 @@ "create.recipe.sawing": "Sawing", "create.recipe.block_cutting": "Block Cutting", "create.recipe.blockzapperUpgrade": "Handheld Blockzapper", + "create.recipe.sandpaper_polishing": "Sandpaper Polishing", + "create.recipe.mystery_conversion": "Chromatic Metamorphosis", "create.recipe.processing.catalyst": "Catalyst", "create.recipe.processing.chance": "%1$s%% Chance", "create.recipe.processing.chanceToReturn": "%1$s%% Chance to return", diff --git a/src/main/resources/assets/create/models/block/encased_fan/propeller.json b/src/main/resources/assets/create/models/block/encased_fan/propeller.json index 9004fe89f..b50ef7caf 100644 --- a/src/main/resources/assets/create/models/block/encased_fan/propeller.json +++ b/src/main/resources/assets/create/models/block/encased_fan/propeller.json @@ -1,4 +1,5 @@ { + "credit": "Made with Blockbench", "textures": { "axis_top": "create:block/axis_top", "fan_blades": "create:block/fan_blades", @@ -24,8 +25,7 @@ "to": [15, 15, 12], "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 8]}, "faces": { - "north": {"uv": [1, 1, 15, 15], "texture": "#fan_blades"}, - "south": {"uv": [1, 1, 15, 15], "texture": "#fan_blades"} + "north": {"uv": [1, 1, 15, 15], "texture": "#fan_blades"} } } ] diff --git a/src/main/resources/assets/create/models/item/brass_hand.json b/src/main/resources/assets/create/models/item/brass_hand.json new file mode 100644 index 000000000..4c5300aa2 --- /dev/null +++ b/src/main/resources/assets/create/models/item/brass_hand.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "create:item/brass_hand" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/item/whisk.json b/src/main/resources/assets/create/models/item/whisk.json new file mode 100644 index 000000000..4aa2337cd --- /dev/null +++ b/src/main/resources/assets/create/models/item/whisk.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "create:item/whisk" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/fan_blades.png b/src/main/resources/assets/create/textures/block/fan_blades.png index faea05d9b..af0d81d81 100644 Binary files a/src/main/resources/assets/create/textures/block/fan_blades.png and b/src/main/resources/assets/create/textures/block/fan_blades.png differ diff --git a/src/main/resources/assets/create/textures/gui/jei/widgets.png b/src/main/resources/assets/create/textures/gui/jei/widgets.png index 2236c342e..fbcae5b4a 100644 Binary files a/src/main/resources/assets/create/textures/gui/jei/widgets.png and b/src/main/resources/assets/create/textures/gui/jei/widgets.png differ diff --git a/src/main/resources/assets/create/textures/item/brass_hand.png b/src/main/resources/assets/create/textures/item/brass_hand.png new file mode 100644 index 000000000..a9bce9c40 Binary files /dev/null and b/src/main/resources/assets/create/textures/item/brass_hand.png differ diff --git a/src/main/resources/assets/create/textures/item/propeller.png b/src/main/resources/assets/create/textures/item/propeller.png index 3e80be28c..af0d81d81 100644 Binary files a/src/main/resources/assets/create/textures/item/propeller.png and b/src/main/resources/assets/create/textures/item/propeller.png differ diff --git a/src/main/resources/assets/create/textures/item/whisk.png b/src/main/resources/assets/create/textures/item/whisk.png new file mode 100644 index 000000000..78761e3b8 Binary files /dev/null and b/src/main/resources/assets/create/textures/item/whisk.png differ diff --git a/src/main/resources/data/create/recipes/blasting/copper_ore.json b/src/main/resources/data/create/recipes/blasting/copper_ore.json new file mode 100644 index 000000000..3c3da8e41 --- /dev/null +++ b/src/main/resources/data/create/recipes/blasting/copper_ore.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "tag": "forge:ores/copper" + }, + "result": "create:copper_ingot", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/blasting/zinc_ore.json b/src/main/resources/data/create/recipes/blasting/zinc_ore.json new file mode 100644 index 000000000..eedba058a --- /dev/null +++ b/src/main/resources/data/create/recipes/blasting/zinc_ore.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "tag": "forge:ores/zinc" + }, + "result": "create:zinc_ingot", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crafting_shaped/curiosities/deforester.json b/src/main/resources/data/create/recipes/crafting_shaped/curiosities/deforester.json new file mode 100644 index 000000000..d1ff1bcd5 --- /dev/null +++ b/src/main/resources/data/create/recipes/crafting_shaped/curiosities/deforester.json @@ -0,0 +1,29 @@ +{ + "type": "crafting_shaped", + "pattern": [ + "EG", + "EO", + " O" + ], + "key": { + "E": { + "item": "create:refined_radiance" + }, + "O": { + "item": "minecraft:obsidian" + }, + "G": { + "item": "create:cogwheel" + } + }, + "result": { + "item": "create:deforester", + "count": 1 + }, + "conditions": [ + { + "type": "create:module", + "module": "curiosities" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crafting_shaped/curiosities/filter.json b/src/main/resources/data/create/recipes/crafting_shaped/curiosities/filter.json new file mode 100644 index 000000000..7024edd88 --- /dev/null +++ b/src/main/resources/data/create/recipes/crafting_shaped/curiosities/filter.json @@ -0,0 +1,24 @@ +{ + "type": "crafting_shaped", + "pattern": [ + "NWN" + ], + "key": { + "N": { + "tag": "forge:nuggets/iron" + }, + "W": { + "tag": "minecraft:wool" + } + }, + "result": { + "item": "create:filter", + "count": 1 + }, + "conditions": [ + { + "type": "create:module", + "module": "curiosities" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crafting_shaped/curiosities/goggles.json b/src/main/resources/data/create/recipes/crafting_shaped/curiosities/goggles.json new file mode 100644 index 000000000..fdd392de2 --- /dev/null +++ b/src/main/resources/data/create/recipes/crafting_shaped/curiosities/goggles.json @@ -0,0 +1,28 @@ +{ + "type": "crafting_shaped", + "pattern": [ + " S ", + "GPG" + ], + "key": { + "S": { + "tag": "forge:string" + }, + "G": { + "tag": "forge:glass" + }, + "P": { + "tag": "forge:plates/gold" + } + }, + "result": { + "item": "create:goggles", + "count": 1 + }, + "conditions": [ + { + "type": "create:module", + "module": "curiosities" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crafting_shaped/curiosities/placement_handgun.json b/src/main/resources/data/create/recipes/crafting_shaped/curiosities/placement_handgun.json index eebd64cf4..2a2221b5c 100644 --- a/src/main/resources/data/create/recipes/crafting_shaped/curiosities/placement_handgun.json +++ b/src/main/resources/data/create/recipes/crafting_shaped/curiosities/placement_handgun.json @@ -2,8 +2,8 @@ "type": "crafting_shaped", "pattern": [ " E", - " A ", - "AO " + " O ", + "OA " ], "key": { "E": { diff --git a/src/main/resources/data/create/recipes/crafting_shaped/curiosities/property_filter.json b/src/main/resources/data/create/recipes/crafting_shaped/curiosities/property_filter.json new file mode 100644 index 000000000..555065396 --- /dev/null +++ b/src/main/resources/data/create/recipes/crafting_shaped/curiosities/property_filter.json @@ -0,0 +1,24 @@ +{ + "type": "crafting_shaped", + "pattern": [ + "NWN" + ], + "key": { + "N": { + "tag": "forge:nuggets/copper" + }, + "W": { + "tag": "minecraft:wool" + } + }, + "result": { + "item": "create:property_filter", + "count": 1 + }, + "conditions": [ + { + "type": "create:module", + "module": "curiosities" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crafting_shaped/curiosities/wrench.json b/src/main/resources/data/create/recipes/crafting_shaped/curiosities/wrench.json new file mode 100644 index 000000000..b34c59de0 --- /dev/null +++ b/src/main/resources/data/create/recipes/crafting_shaped/curiosities/wrench.json @@ -0,0 +1,29 @@ +{ + "type": "crafting_shaped", + "pattern": [ + "PP", + "PG", + " S" + ], + "key": { + "S": { + "tag": "forge:rods/wooden" + }, + "G": { + "item": "create:cogwheel" + }, + "P": { + "tag": "forge:plates/gold" + } + }, + "result": { + "item": "create:wrench", + "count": 1 + }, + "conditions": [ + { + "type": "create:module", + "module": "curiosities" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crafting_shaped/materials/andesite_casing.json b/src/main/resources/data/create/recipes/crafting_shaped/materials/andesite_casing.json index 66e186697..1ec494b13 100644 --- a/src/main/resources/data/create/recipes/crafting_shaped/materials/andesite_casing.json +++ b/src/main/resources/data/create/recipes/crafting_shaped/materials/andesite_casing.json @@ -2,7 +2,7 @@ "type": "crafting_shaped", "pattern": [ "AAA", - "ASA", + "CSC", "AAA" ], "key": { @@ -10,8 +10,11 @@ "tag": "minecraft:planks" }, "S": { - "item": "create:andesite_alloy" - } + "tag": "minecraft:logs" + }, + "C": { + "item": "create:andesite_alloy" + } }, "result": { "item": "create:andesite_casing", diff --git a/src/main/resources/data/create/recipes/crafting_shaped/materials/brass_casing.json b/src/main/resources/data/create/recipes/crafting_shaped/materials/brass_casing.json index 166745171..82f697ff1 100644 --- a/src/main/resources/data/create/recipes/crafting_shaped/materials/brass_casing.json +++ b/src/main/resources/data/create/recipes/crafting_shaped/materials/brass_casing.json @@ -2,7 +2,7 @@ "type": "crafting_shaped", "pattern": [ "AAA", - "SSS", + "CSC", "AAA" ], "key": { @@ -10,8 +10,11 @@ "tag": "minecraft:planks" }, "S": { - "tag": "forge:plates/brass" - } + "tag": "minecraft:logs" + }, + "C": { + "tag": "forge:plates/brass" + } }, "result": { "item": "create:brass_casing", diff --git a/src/main/resources/data/create/recipes/crafting_shaped/materials/brass_ingot.json b/src/main/resources/data/create/recipes/crafting_shaped/materials/brass_ingot.json new file mode 100644 index 000000000..1fe46c76e --- /dev/null +++ b/src/main/resources/data/create/recipes/crafting_shaped/materials/brass_ingot.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + "###" + ], + "key": { + "#": { + "tag": "forge:nuggets/brass" + } + }, + "result": { + "item": "create:brass_ingot" + }, + "conditions": [ + { + "type": "create:module", + "module": "contraptions" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crafting_shaped/materials/copper_ingot.json b/src/main/resources/data/create/recipes/crafting_shaped/materials/copper_ingot.json new file mode 100644 index 000000000..bf2dacad4 --- /dev/null +++ b/src/main/resources/data/create/recipes/crafting_shaped/materials/copper_ingot.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + "###" + ], + "key": { + "#": { + "tag": "forge:nuggets/copper" + } + }, + "result": { + "item": "create:copper_ingot" + }, + "conditions": [ + { + "type": "create:module", + "module": "contraptions" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crafting_shaped/materials/zinc_ingot.json b/src/main/resources/data/create/recipes/crafting_shaped/materials/zinc_ingot.json new file mode 100644 index 000000000..a480284ca --- /dev/null +++ b/src/main/resources/data/create/recipes/crafting_shaped/materials/zinc_ingot.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + "###" + ], + "key": { + "#": { + "tag": "forge:nuggets/zinc" + } + }, + "result": { + "item": "create:zinc_ingot" + }, + "conditions": [ + { + "type": "create:module", + "module": "contraptions" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crafting_shaped/schematics/blueprint_and_quill.json b/src/main/resources/data/create/recipes/crafting_shapeless/blueprint_and_quill.json similarity index 100% rename from src/main/resources/data/create/recipes/crafting_shaped/schematics/blueprint_and_quill.json rename to src/main/resources/data/create/recipes/crafting_shapeless/blueprint_and_quill.json diff --git a/src/main/resources/data/create/recipes/crafting_shapeless/brass_nugget.json b/src/main/resources/data/create/recipes/crafting_shapeless/brass_nugget.json new file mode 100644 index 000000000..861ea0291 --- /dev/null +++ b/src/main/resources/data/create/recipes/crafting_shapeless/brass_nugget.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:ingots/brass" + } + ], + "result": { + "item": "create:brass_nugget", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crafting_shapeless/copper_nugget.json b/src/main/resources/data/create/recipes/crafting_shapeless/copper_nugget.json new file mode 100644 index 000000000..b7fbc41dc --- /dev/null +++ b/src/main/resources/data/create/recipes/crafting_shapeless/copper_nugget.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:ingots/copper" + } + ], + "result": { + "item": "create:copper_nugget", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crafting_shaped/schematics/empty_blueprint.json b/src/main/resources/data/create/recipes/crafting_shapeless/empty_blueprint.json similarity index 100% rename from src/main/resources/data/create/recipes/crafting_shaped/schematics/empty_blueprint.json rename to src/main/resources/data/create/recipes/crafting_shapeless/empty_blueprint.json diff --git a/src/main/resources/data/create/recipes/crafting_shapeless/zinc_nugget.json b/src/main/resources/data/create/recipes/crafting_shapeless/zinc_nugget.json new file mode 100644 index 000000000..89feb4d05 --- /dev/null +++ b/src/main/resources/data/create/recipes/crafting_shapeless/zinc_nugget.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:ingots/zinc" + } + ], + "result": { + "item": "create:zinc_nugget", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/copper_ore.json b/src/main/resources/data/create/recipes/crushing/copper_ore.json new file mode 100644 index 000000000..5923ca2ed --- /dev/null +++ b/src/main/resources/data/create/recipes/crushing/copper_ore.json @@ -0,0 +1,26 @@ +{ + "type": "create:crushing", + "group": "minecraft:misc", + "ingredients": [ + { + "tag": "forge:ores/copper" + } + ], + "results": [ + { + "item": "create:crushed_copper", + "count": 1 + }, + { + "item": "create:crushed_copper", + "count": 2, + "chance": 0.3 + }, + { + "item": "minecraft:cobblestone", + "count": 1, + "chance": 0.125 + } + ], + "processingTime": 350 +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/crushing/gold_ore.json b/src/main/resources/data/create/recipes/crushing/gold_ore.json index 47a4d5bfd..f4adc881c 100644 --- a/src/main/resources/data/create/recipes/crushing/gold_ore.json +++ b/src/main/resources/data/create/recipes/crushing/gold_ore.json @@ -3,7 +3,7 @@ "group": "minecraft:misc", "ingredients": [ { - "item": "minecraft:gold_ore" + "tag": "forge:ores/gold" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/crushing/iron_ore.json b/src/main/resources/data/create/recipes/crushing/iron_ore.json index 94ad9f91f..a7b36df00 100644 --- a/src/main/resources/data/create/recipes/crushing/iron_ore.json +++ b/src/main/resources/data/create/recipes/crushing/iron_ore.json @@ -3,7 +3,7 @@ "group": "minecraft:misc", "ingredients": [ { - "item": "minecraft:iron_ore" + "tag": "forge:ores/iron" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/crushing/zinc_ore.json b/src/main/resources/data/create/recipes/crushing/zinc_ore.json new file mode 100644 index 000000000..50e57d798 --- /dev/null +++ b/src/main/resources/data/create/recipes/crushing/zinc_ore.json @@ -0,0 +1,26 @@ +{ + "type": "create:crushing", + "group": "minecraft:misc", + "ingredients": [ + { + "tag": "forge:ores/zinc" + } + ], + "results": [ + { + "item": "create:crushed_zinc", + "count": 1 + }, + { + "item": "create:crushed_zinc", + "count": 2, + "chance": 0.3 + }, + { + "item": "minecraft:cobblestone", + "count": 1, + "chance": 0.125 + } + ], + "processingTime": 350 +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/smelting/copper_ore.json b/src/main/resources/data/create/recipes/smelting/copper_ore.json new file mode 100644 index 000000000..5ad042b91 --- /dev/null +++ b/src/main/resources/data/create/recipes/smelting/copper_ore.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "tag": "forge:ores/copper" + }, + "result": "create:copper_ingot", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/smelting/zinc_ore.json b/src/main/resources/data/create/recipes/smelting/zinc_ore.json new file mode 100644 index 000000000..dd6596a2d --- /dev/null +++ b/src/main/resources/data/create/recipes/smelting/zinc_ore.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "tag": "forge:ores/zinc" + }, + "result": "create:zinc_ingot", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/forge/tags/blocks/ores.json b/src/main/resources/data/forge/tags/blocks/ores.json new file mode 100644 index 000000000..66c5d81f6 --- /dev/null +++ b/src/main/resources/data/forge/tags/blocks/ores.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "#forge:ores/copper", + "#forge:ores/zinc" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/forge/tags/blocks/ores/copper.json b/src/main/resources/data/forge/tags/blocks/ores/copper.json new file mode 100644 index 000000000..4b386dbe0 --- /dev/null +++ b/src/main/resources/data/forge/tags/blocks/ores/copper.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "create:copper_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/forge/tags/blocks/ores/zinc.json b/src/main/resources/data/forge/tags/blocks/ores/zinc.json new file mode 100644 index 000000000..9389dcb95 --- /dev/null +++ b/src/main/resources/data/forge/tags/blocks/ores/zinc.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "create:zinc_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/forge/tags/items/ores.json b/src/main/resources/data/forge/tags/items/ores.json new file mode 100644 index 000000000..66c5d81f6 --- /dev/null +++ b/src/main/resources/data/forge/tags/items/ores.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "#forge:ores/copper", + "#forge:ores/zinc" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/forge/tags/items/ores/copper.json b/src/main/resources/data/forge/tags/items/ores/copper.json new file mode 100644 index 000000000..4b386dbe0 --- /dev/null +++ b/src/main/resources/data/forge/tags/items/ores/copper.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "create:copper_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/forge/tags/items/ores/zinc.json b/src/main/resources/data/forge/tags/items/ores/zinc.json new file mode 100644 index 000000000..9389dcb95 --- /dev/null +++ b/src/main/resources/data/forge/tags/items/ores/zinc.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "create:zinc_ore" + ] +} \ No newline at end of file