Update all recipes from Iron Chests to the new way of doing them for 1.12, Even changing the color of the shulker box works!

This commit is contained in:
alexbegt 2017-06-17 18:05:07 -04:00
parent 27a82a01cd
commit b28ad34b43
226 changed files with 5781 additions and 460 deletions

View File

@ -8,11 +8,11 @@ buildscript {
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT'
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
}
}
plugins {
id "com.matthewprenger.cursegradle" version "1.0.7"
id "com.matthewprenger.cursegradle" version "1.0.8"
}
apply plugin: 'net.minecraftforge.gradle.forge'
@ -46,8 +46,8 @@ targetCompatibility = 1.8
// Setup the forge minecraft plugin data. Specify the preferred forge/minecraft version here
minecraft {
version = "1.12-14.21.0.2321"
mappings = "snapshot_20161220"
version = "1.12-14.21.0.2333"
mappings = "snapshot_20170616"
runDir = "run"
}

View File

@ -30,7 +30,7 @@ import net.minecraftforge.fml.common.network.NetworkRegistry;
import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import net.minecraftforge.fml.relauncher.Side;
@Mod(modid = IronChest.MOD_ID, name = "Iron Chests", dependencies = "required-after:forge@[13.19.0.2142,)", acceptedMinecraftVersions = "[1.11, 1.12)")
@Mod(modid = IronChest.MOD_ID, name = "Iron Chests", dependencies = "required-after:forge@[14.21.0.2333,)", acceptedMinecraftVersions = "[1.12, 1.13)")
public class IronChest
{
public static final String MOD_ID = "ironchest";
@ -78,4 +78,5 @@ public class IronChest
{
MissingMappingsHandler.onMissingMappings(event);
}
}

View File

@ -53,8 +53,11 @@ public class GUIChest extends GuiContainer
//@formatter:on
private int xSize;
private int ySize;
private ResourceList guiResourceList;
private IronChestType mainType;
GUI(int xSize, int ySize, ResourceList guiResourceList, IronChestType mainType)
@ -87,6 +90,20 @@ public class GUIChest extends GuiContainer
this.allowUserInput = false;
}
/**
* Draws the screen and all the components in it.
*/
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks)
{
this.drawDefaultBackground();
super.drawScreen(mouseX, mouseY, partialTicks);
this.renderHoveredToolTip(mouseX, mouseY);
}
/**
* Draws the background layer of this container (behind the items).
*/
@Override
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY)
{

View File

@ -52,8 +52,11 @@ public class GUIShulkerChest extends GuiContainer
//@formatter:on
private int xSize;
private int ySize;
private ResourceList guiResourceList;
private IronShulkerBoxType mainType;
GUI(int xSize, int ySize, ResourceList guiResourceList, IronShulkerBoxType mainType)
@ -87,6 +90,20 @@ public class GUIShulkerChest extends GuiContainer
this.allowUserInput = false;
}
/**
* Draws the screen and all the components in it.
*/
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks)
{
this.drawDefaultBackground();
super.drawScreen(mouseX, mouseY, partialTicks);
this.renderHoveredToolTip(mouseX, mouseY);
}
/**
* Draws the background layer of this container (behind the items).
*/
@Override
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY)
{

View File

@ -51,7 +51,7 @@ public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer<TileE
}
@Override
public void func_192841_a(TileEntityIronChest te, double x, double y, double z, float partialTicks, int destroyStage, float partial)
public void renderTileEntityAt(TileEntityIronChest te, double x, double y, double z, float partialTicks, int destroyStage, float partial)
{
if (te == null || te.isInvalid())
{
@ -200,7 +200,7 @@ public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer<TileE
GlStateManager.rotate(timeD, 0F, 1F, 0F);
GlStateManager.scale(blockScale, blockScale, blockScale);
customitem.setEntityItemStack(item);
customitem.setItem(item);
if (this.itemRenderer == null)
{

View File

@ -49,7 +49,7 @@ public class TileEntityIronShulkerBoxRenderer extends TileEntitySpecialRenderer<
}
@Override
public void func_192841_a(TileEntityIronShulkerBox te, double x, double y, double z, float partialTicks, int destroyStage, float partial)
public void renderTileEntityAt(TileEntityIronShulkerBox te, double x, double y, double z, float partialTicks, int destroyStage, float partial)
{
if (te == null || te.isInvalid())
{
@ -202,7 +202,7 @@ public class TileEntityIronShulkerBoxRenderer extends TileEntitySpecialRenderer<
GlStateManager.rotate(timeD, 0F, 1F, 0F);
GlStateManager.scale(blockScale, blockScale, blockScale);
customitem.setEntityItemStack(item);
customitem.setItem(item);
if (this.itemRenderer == null)
{

View File

@ -26,7 +26,6 @@ import cpw.mods.ironchest.common.util.BehaviorDispenseIronShulkerBox;
import cpw.mods.ironchest.common.util.CreativeTab;
import net.minecraft.block.Block;
import net.minecraft.block.BlockDispenser;
import net.minecraft.block.BlockShulkerBox;
import net.minecraft.init.Blocks;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.Item;
@ -36,6 +35,7 @@ import net.minecraftforge.fml.common.registry.GameRegistry;
public class ICContent
{
//@formatter:off
public static CreativeTab tabGeneral = new CreativeTab("IronChest", new ItemStack(Item.getItemFromBlock(Blocks.SLIME_BLOCK)));
public static BlockIronChest ironChestBlock;
@ -43,76 +43,45 @@ public class ICContent
public static ItemIronChest ironChestItemBlock;
public static BlockIronShulkerBox ironShulkerBoxWhiteBlock;
public static BlockIronShulkerBox ironShulkerBoxOrangeBlock;
public static BlockIronShulkerBox ironShulkerBoxMagentaBlock;
public static BlockIronShulkerBox ironShulkerBoxLightBlueBlock;
public static BlockIronShulkerBox ironShulkerBoxYellowBlock;
public static BlockIronShulkerBox ironShulkerBoxLimeBlock;
public static BlockIronShulkerBox ironShulkerBoxPinkBlock;
public static BlockIronShulkerBox ironShulkerBoxGrayBlock;
public static BlockIronShulkerBox ironShulkerBoxSilverBlock;
public static BlockIronShulkerBox ironShulkerBoxCyanBlock;
public static BlockIronShulkerBox ironShulkerBoxPurpleBlock;
public static BlockIronShulkerBox ironShulkerBoxBlueBlock;
public static BlockIronShulkerBox ironShulkerBoxBrownBlock;
public static BlockIronShulkerBox ironShulkerBoxGreenBlock;
public static BlockIronShulkerBox ironShulkerBoxRedBlock;
public static BlockIronShulkerBox ironShulkerBoxBlackBlock;
public static ItemIronShulkerBox ironShulkerBoxWhiteItemBlock;
public static ItemIronShulkerBox ironShulkerBoxOrangeItemBlock;
public static ItemIronShulkerBox ironShulkerBoxMagentaItemBlock;
public static ItemIronShulkerBox ironShulkerBoxLightBlueItemBlock;
public static ItemIronShulkerBox ironShulkerBoxYellowItemBlock;
public static ItemIronShulkerBox ironShulkerBoxLimeItemBlock;
public static ItemIronShulkerBox ironShulkerBoxPinkItemBlock;
public static ItemIronShulkerBox ironShulkerBoxGrayItemBlock;
public static ItemIronShulkerBox ironShulkerBoxSilverItemBlock;
public static ItemIronShulkerBox ironShulkerBoxCyanItemBlock;
public static ItemIronShulkerBox ironShulkerBoxPurpleItemBlock;
public static ItemIronShulkerBox ironShulkerBoxBlueItemBlock;
public static ItemIronShulkerBox ironShulkerBoxBrownItemBlock;
public static ItemIronShulkerBox ironShulkerBoxGreenItemBlock;
public static ItemIronShulkerBox ironShulkerBoxRedItemBlock;
public static ItemIronShulkerBox ironShulkerBoxBlackItemBlock;
public static final List<Block> SHULKER_BLOCKS = Lists.newArrayList();
public static final List<ItemBlock> SHULKER_ITEM_BLOCKS = Lists.newArrayList();
public static final List<Block> VANILLA_SHULKER_BLOCKS = Lists.newArrayList();
public static final List<EnumDyeColor> VANILLA_SHULKER_COLORS = Lists.newArrayList();
//@formatter:on
public static void preInit()
{
@ -129,9 +98,6 @@ public class ICContent
GameRegistry.registerTileEntity(typ.clazz, "IronChest." + typ.name());
}
}
IronChestType.registerBlocksAndRecipes(ironChestBlock);
ChestChangerType.generateRecipes();
// Chests End
// Shulkers Start
@ -151,21 +117,10 @@ public class ICContent
}
}
for (int i = 0; i < ICContent.SHULKER_BLOCKS.size(); i++)
{
IronShulkerBoxType.registerBlocksAndRecipes((BlockIronShulkerBox) SHULKER_BLOCKS.get(i), (BlockShulkerBox) VANILLA_SHULKER_BLOCKS.get(i));
}
for (ItemBlock block : SHULKER_ITEM_BLOCKS)
{
BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject(block, new BehaviorDispenseIronShulkerBox());
}
// CraftingManager.func_193372_a(new ResourceLocation("ironchests", "ironshulkerboxcoloring"), new IronShulkerBoxColoring()); // TEMP FIX FOR COLORING OF SHULKER BOXES.
// GameRegistry.addRecipe(new ResourceLocation("ironchests", "ironshulkerboxcoloring"), new IronShulkerBoxColoring()); // TODO RE-ADD WHEN FIXED.
// RecipeSorter.register(IronChest.MOD_ID, IronShulkerBoxColoring.class, Category.SHAPELESS, "after:forge:shapelessore"); // TODO: REMOVE WHEN FORGE REMOVES
ShulkerBoxChangerType.generateRecipes();
// Shulkers End
tabGeneral.setDisplayIcon(new ItemStack(ironChestBlock, 1, IronChestType.IRON.ordinal()));

View File

@ -10,10 +10,6 @@
******************************************************************************/
package cpw.mods.ironchest.common.blocks.chest;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import cpw.mods.ironchest.common.gui.chest.slot.ValidatingChestSlot;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityCopperChest;
import cpw.mods.ironchest.common.tileentity.chest.TileEntityCrystalChest;
@ -35,15 +31,15 @@ import net.minecraft.util.ResourceLocation;
public enum IronChestType implements IStringSerializable
{
//@formatter:off
IRON(54, 9, true, "iron_chest.png", Arrays.asList("ingotIron", "ingotRefinedIron"), TileEntityIronChest.class, 184, 202, "mmmmPmmmm", "mGmG3GmGm"),
GOLD(81, 9, true, "gold_chest.png", Collections.singleton("ingotGold"), TileEntityGoldChest.class, 184, 256, "mmmmPmmmm", "mGmG4GmGm"),
DIAMOND(108, 12, true, "diamond_chest.png", Collections.singleton("gemDiamond"), TileEntityDiamondChest.class, 184, 256, "GGGmPmGGG", "GGGG4Gmmm"),
COPPER(45, 9, false, "copper_chest.png", Collections.singleton("ingotCopper"), TileEntityCopperChest.class, 184, 184, "mmmmCmmmm"),
SILVER(72, 9, false, "silver_chest.png", Collections.singleton("ingotSilver"), TileEntitySilverChest.class, 184, 238, "mmmm3mmmm", "mGmG0GmGm"),
CRYSTAL(108, 12, true, "crystal_chest.png", Collections.singleton("blockGlass"), TileEntityCrystalChest.class, 238, 256, "GGGGPGGGG"),
OBSIDIAN(108, 12, false, "obsidian_chest.png", Collections.singleton("obsidian"), TileEntityObsidianChest.class, 238, 256, "mmmm2mmmm"),
DIRTCHEST9000(1, 1, false, "dirt_chest.png", Collections.singleton("dirt"), TileEntityDirtChest.class, 184, 184, "mmmmCmmmm"),
WOOD(0, 0, false, "", Collections.singleton("plankWood"), null, 0, 0);
IRON(54, 9, true, "iron_chest.png", TileEntityIronChest.class, 184, 202),
GOLD(81, 9, true, "gold_chest.png", TileEntityGoldChest.class, 184, 256),
DIAMOND(108, 12, true, "diamond_chest.png", TileEntityDiamondChest.class, 184, 256),
COPPER(45, 9, false, "copper_chest.png", TileEntityCopperChest.class, 184, 184),
SILVER(72, 9, false, "silver_chest.png", TileEntitySilverChest.class, 184, 238),
CRYSTAL(108, 12, true, "crystal_chest.png", TileEntityCrystalChest.class, 238, 256),
OBSIDIAN(108, 12, false, "obsidian_chest.png", TileEntityObsidianChest.class, 238, 256),
DIRTCHEST9000(1, 1, false, "dirt_chest.png", TileEntityDirtChest.class, 184, 184),
WOOD(0, 0, false, "", null, 0, 0);
//@formatter:on
public static final IronChestType VALUES[] = values();
@ -62,16 +58,12 @@ public enum IronChestType implements IStringSerializable
public final Class<? extends TileEntityIronChest> clazz;
public final Collection<String> recipes;
public final Collection<String> matList;
public final int xSize;
public final int ySize;
//@formatter:off
IronChestType(int size, int rowLength, boolean tieredChest, String modelTexture, Collection<String> mats, Class<? extends TileEntityIronChest> clazz, int xSize, int ySize, String... recipes)
IronChestType(int size, int rowLength, boolean tieredChest, String modelTexture, Class<? extends TileEntityIronChest> clazz, int xSize, int ySize)
//@formatter:on
{
this.name = this.name().toLowerCase();
@ -79,9 +71,7 @@ public enum IronChestType implements IStringSerializable
this.rowLength = rowLength;
this.tieredChest = tieredChest;
this.modelTexture = new ResourceLocation("ironchest", "textures/model/chest/" + modelTexture);
this.matList = Collections.unmodifiableCollection(mats);
this.clazz = clazz;
this.recipes = Collections.unmodifiableCollection(Arrays.asList(recipes));
this.xSize = xSize;
this.ySize = ySize;
}
@ -123,70 +113,6 @@ public enum IronChestType implements IStringSerializable
return this.name;
}
public static void registerBlocksAndRecipes(BlockIronChest blockResult)
{
Object previous = "chestWood";
for (IronChestType typ : values())
{
generateRecipesForType(blockResult, previous, typ);
ItemStack chest = new ItemStack(blockResult, 1, typ.ordinal());
if (typ.tieredChest)
{
previous = chest;
}
}
}
public static void generateRecipesForType(BlockIronChest blockResult, Object previousTier, IronChestType type)
{
for (String recipe : type.recipes)
{
String[] recipeSplit = new String[] { recipe.substring(0, 3), recipe.substring(3, 6), recipe.substring(6, 9) };
Object mainMaterial = null;
for (String mat : type.matList)
{
mainMaterial = translateOreName(mat);
//@formatter:off
addRecipe(new ItemStack(blockResult, 1, type.ordinal()), recipeSplit,
'm', mainMaterial,
'P', previousTier, /* previous tier of chest */
'G', "blockGlass",
'C', "chestWood",
'0', new ItemStack(blockResult, 1, 0), /* Iron Chest */
'1', new ItemStack(blockResult, 1, 1), /* Gold Chest */
'2', new ItemStack(blockResult, 1, 2), /* Diamond Chest */
'3', new ItemStack(blockResult, 1, 3), /* Copper Chest */
'4', new ItemStack(blockResult, 1, 4) /* Silver Chest */);
//@formatter:on
}
}
}
public static Object translateOreName(String mat)
{
if (mat.equals("obsidian"))
{
return Blocks.OBSIDIAN;
}
else if (mat.equals("dirt"))
{
return Blocks.DIRT;
}
return mat;
}
public static void addRecipe(ItemStack is, Object... parts)
{
//ShapedOreRecipe oreRecipe = new ShapedOreRecipe(is, parts); // TODO RE-ADD WHEN FIXED.
//GameRegistry.addRecipe(oreRecipe); // TODO RE-ADD WHEN FIXED.
}
public int getRowCount()
{
return this.size / this.rowLength;

View File

@ -55,9 +55,7 @@ import net.minecraftforge.fml.relauncher.SideOnly;
public class BlockIronShulkerBox extends Block
{
public static final PropertyEnum<IronShulkerBoxType> VARIANT_PROP = PropertyEnum.create("variant", IronShulkerBoxType.class);
private final EnumDyeColor color;
private EnumFacing facingDirection;
public BlockIronShulkerBox(EnumDyeColor colorIn)
@ -134,7 +132,7 @@ public class BlockIronShulkerBox extends Block
if (((TileEntityIronShulkerBox) tileentity).getAnimationStatus() == TileEntityIronShulkerBox.AnimationStatus.CLOSED)
{
//@formatter:off
AxisAlignedBB axisalignedbb = FULL_BLOCK_AABB.addCoord(0.5F * enumfacing.getFrontOffsetX(), 0.5F * enumfacing.getFrontOffsetY(), 0.5F * enumfacing.getFrontOffsetZ()).contract(enumfacing.getFrontOffsetX(), enumfacing.getFrontOffsetY(), enumfacing.getFrontOffsetZ());
AxisAlignedBB axisalignedbb = FULL_BLOCK_AABB.expand(0.5F * enumfacing.getFrontOffsetX(), 0.5F * enumfacing.getFrontOffsetY(), 0.5F * enumfacing.getFrontOffsetZ()).contract(enumfacing.getFrontOffsetX(), enumfacing.getFrontOffsetY(), enumfacing.getFrontOffsetZ());
//@formatter:on
flag = !worldIn.collidesWithAnyBlock(axisalignedbb.offset(pos.offset(enumfacing)));
@ -338,9 +336,9 @@ public class BlockIronShulkerBox extends Block
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack stack, @Nullable World playerIn, List<String> tooltip, ITooltipFlag advanced)
public void addInformation(ItemStack stack, @Nullable World worldIn, List<String> tooltip, ITooltipFlag advanced)
{
super.addInformation(stack, playerIn, tooltip, advanced);
super.addInformation(stack, worldIn, tooltip, advanced);
NBTTagCompound nbttagcompound = stack.getTagCompound();
@ -378,9 +376,37 @@ public class BlockIronShulkerBox extends Block
if (j - i > 0)
{
//@formatter:off
tooltip.add(String.format(TextFormatting.ITALIC + I18n.translateToLocal("container.shulkerBox.more"), new Object[] {Integer.valueOf(j - i)}));
//@formatter:on
//@formatter:off
tooltip.add(String.format(TextFormatting.ITALIC + I18n.translateToLocal("container.shulkerBox.more"), new Object[] { Integer.valueOf(j - i) }));
//@formatter:on
}
}
else
{
NonNullList<ItemStack> nonnulllist = NonNullList.<ItemStack> withSize(27, ItemStack.EMPTY);
ItemStackHelper.loadAllItems(nbttagcompound1, nonnulllist);
int i = 0;
int j = 0;
for (ItemStack itemstack : nonnulllist)
{
if (!itemstack.isEmpty())
{
++j;
if (i <= 4)
{
++i;
tooltip.add(String.format("%s x%d", new Object[] { itemstack.getDisplayName(), Integer.valueOf(itemstack.getCount()) }));
}
}
}
if (j - i > 0)
{
//@formatter:off
tooltip.add(String.format(TextFormatting.ITALIC + I18n.translateToLocal("container.shulkerBox.more"), new Object[] { Integer.valueOf(j - i) }));
//@formatter:on
}
}
}
@ -495,4 +521,4 @@ public class BlockIronShulkerBox extends Block
return tileentity != null && tileentity.receiveClientEvent(id, param);
}
}
}

View File

@ -10,10 +10,6 @@
******************************************************************************/
package cpw.mods.ironchest.common.blocks.shulker;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import cpw.mods.ironchest.common.gui.shulker.slot.ValidatingShulkerBoxSlot;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityCopperShulkerBox;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityCrystalShulkerBox;
@ -22,25 +18,22 @@ import cpw.mods.ironchest.common.tileentity.shulker.TileEntityGoldShulkerBox;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityIronShulkerBox;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntityObsidianShulkerBox;
import cpw.mods.ironchest.common.tileentity.shulker.TileEntitySilverShulkerBox;
import net.minecraft.block.BlockShulkerBox;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IStringSerializable;
public enum IronShulkerBoxType implements IStringSerializable
{
//@formatter:off
IRON(54, 9, true, "_iron.png", TileEntityIronShulkerBox.class, 184, 202, Arrays.asList("ingotIron", "ingotRefinedIron"), "mmmmPmmmm", "mGmG3GmGm"),
GOLD(81, 9, true, "_gold.png", TileEntityGoldShulkerBox.class, 184, 256, Collections.singleton("ingotGold"), "mmmmPmmmm", "mGmG4GmGm"),
DIAMOND(108, 12, true, "_diamond.png", TileEntityDiamondShulkerBox.class, 184, 256, Collections.singleton("gemDiamond"), "GGGmPmGGG", "GGGG4Gmmm"),
COPPER(45, 9, false, "_copper.png", TileEntityCopperShulkerBox.class, 184, 184, Collections.singleton("ingotCopper"), "mmmmCmmmm"),
SILVER(72, 9, false, "_silver.png", TileEntitySilverShulkerBox.class, 184, 238, Collections.singleton("ingotSilver"), "mmmm3mmmm", "mGmG0GmGm"),
CRYSTAL(108, 12, true, "_crystal.png", TileEntityCrystalShulkerBox.class, 238, 256, Collections.singleton("blockGlass"), "GGGGPGGGG"),
OBSIDIAN(108, 12, false, "_obsidian.png", TileEntityObsidianShulkerBox.class, 238, 256, Collections.singleton("obsidian"), "mmmm2mmmm"),
VANILLA(0, 0, false, "", null, 0, 0, Collections.singleton("shulkerBox"));
IRON(54, 9, true, "_iron.png", TileEntityIronShulkerBox.class, 184, 202),
GOLD(81, 9, true, "_gold.png", TileEntityGoldShulkerBox.class, 184, 256),
DIAMOND(108, 12, true, "_diamond.png", TileEntityDiamondShulkerBox.class, 184, 256),
COPPER(45, 9, false, "_copper.png", TileEntityCopperShulkerBox.class, 184, 184),
SILVER(72, 9, false, "_silver.png", TileEntitySilverShulkerBox.class, 184, 238),
CRYSTAL(108, 12, true, "_crystal.png", TileEntityCrystalShulkerBox.class, 238, 256),
OBSIDIAN(108, 12, false, "_obsidian.png", TileEntityObsidianShulkerBox.class, 238, 256),
VANILLA(0, 0, false, "", null, 0, 0);
//@formatter:on
public static final IronShulkerBoxType VALUES[] = values();
@ -51,7 +44,7 @@ public enum IronShulkerBoxType implements IStringSerializable
public final int rowLength;
public final boolean tieredChest;
public final boolean tieredShulkerBox;
public final String modelTexture;
@ -61,26 +54,20 @@ public enum IronShulkerBoxType implements IStringSerializable
public final int ySize;
public final Collection<String> matList;
public final Collection<String> recipes;
private String breakTexture;
//@formatter:off
IronShulkerBoxType(int size, int rowLength, boolean tieredChest, String modelTexture, Class<? extends TileEntityIronShulkerBox> clazz, int xSize, int ySize, Collection<String> mats, String... recipes)
IronShulkerBoxType(int size, int rowLength, boolean tieredShulkerBox, String modelTexture, Class<? extends TileEntityIronShulkerBox> clazz, int xSize, int ySize)
//@formatter:on
{
this.name = this.name().toLowerCase();
this.size = size;
this.rowLength = rowLength;
this.tieredChest = tieredChest;
this.tieredShulkerBox = tieredShulkerBox;
this.modelTexture = modelTexture;
this.clazz = clazz;
this.xSize = xSize;
this.ySize = ySize;
this.matList = Collections.unmodifiableCollection(mats);
this.recipes = Collections.unmodifiableCollection(Arrays.asList(recipes));
}
@Override
@ -115,72 +102,6 @@ public enum IronShulkerBoxType implements IStringSerializable
return this.breakTexture;
}
public static void registerBlocksAndRecipes(BlockIronShulkerBox blockResult, BlockShulkerBox shulkerBox)
{
Object previous = shulkerBox;
for (IronShulkerBoxType typ : values())
{
generateRecipesForType(blockResult, previous, typ);
ItemStack chest = new ItemStack(blockResult, 1, typ.ordinal());
if (typ.tieredChest)
{
previous = chest;
}
}
}
public static void generateRecipesForType(BlockIronShulkerBox blockResult, Object previousTier, IronShulkerBoxType type)
{
for (String recipe : type.recipes)
{
String[] recipeSplit = new String[] { recipe.substring(0, 3), recipe.substring(3, 6), recipe.substring(6, 9) };
Object mainMaterial = null;
for (String mat : type.matList)
{
mainMaterial = translateOreName(mat);
//@formatter:off
addRecipe(new ItemStack(blockResult, 1, type.ordinal()), recipeSplit,
'm', mainMaterial,
'P', previousTier, /* previous tier of chest */
'G', "blockGlass",
'C', "chestWood",
'0', new ItemStack(blockResult, 1, 0), /* Iron Chest */
'1', new ItemStack(blockResult, 1, 1), /* Gold Chest */
'2', new ItemStack(blockResult, 1, 2), /* Diamond Chest */
'3', new ItemStack(blockResult, 1, 3), /* Copper Chest */
'4', new ItemStack(blockResult, 1, 4) /* Silver Chest */
);
//@formatter:on
}
}
}
public static Object translateOreName(String mat)
{
if (mat.equals("shulkerBox"))
{
return Blocks.PURPLE_SHULKER_BOX;
}
if (mat.equals("obsidian"))
{
return Blocks.OBSIDIAN;
}
return mat;
}
public static void addRecipe(ItemStack is, Object... parts)
{
//ShapedOreRecipe oreRecipe = new ShapedOreRecipe(is, parts); // TODO RE-ADD WHEN FIXED.
//GameRegistry.addRecipe(oreRecipe); // TODO RE-ADD WHEN FIXED.
}
public int getRowCount()
{
return this.size / this.rowLength;

View File

@ -1,139 +0,0 @@
/*******************************************************************************
* Copyright (c) 2012 cpw.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.crafting;
import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox;
import net.minecraft.block.Block;
import net.minecraft.init.Items;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.NonNullList;
import net.minecraft.world.World;
public class IronShulkerBoxColoring implements IRecipe
{
public IronShulkerBoxColoring()
{
}
/**
* Used to check if a recipe matches current crafting inventory
*/
@Override
public boolean matches(InventoryCrafting inv, World worldIn)
{
int i = 0;
int j = 0;
for (int k = 0; k < inv.getSizeInventory(); ++k)
{
ItemStack itemstack = inv.getStackInSlot(k);
if (!itemstack.isEmpty())
{
if (Block.getBlockFromItem(itemstack.getItem()) instanceof BlockIronShulkerBox)
{
++i;
}
else
{
if (itemstack.getItem() != Items.DYE)
{
return false;
}
++j;
}
if (j > 1 || i > 1)
{
return false;
}
}
}
return i == 1 && j == 1;
}
/**
* Returns an Item that is the result of this recipe
*/
@Override
public ItemStack getCraftingResult(InventoryCrafting inv)
{
ItemStack itemstack = ItemStack.EMPTY;
ItemStack itemstack1 = ItemStack.EMPTY;
for (int i = 0; i < inv.getSizeInventory(); ++i)
{
ItemStack itemstack2 = inv.getStackInSlot(i);
if (!itemstack2.isEmpty())
{
if (Block.getBlockFromItem(itemstack2.getItem()) instanceof BlockIronShulkerBox)
{
itemstack = itemstack2;
}
else if (itemstack2.getItem() == Items.DYE)
{
itemstack1 = itemstack2;
}
}
}
ItemStack itemstack3 = BlockIronShulkerBox.getColoredItemStack(EnumDyeColor.byDyeDamage(itemstack1.getMetadata()), itemstack.getMetadata());
if (itemstack.hasTagCompound())
{
itemstack3.setTagCompound(itemstack.getTagCompound().copy());
}
return itemstack3;
}
@Override
public ItemStack getRecipeOutput()
{
return ItemStack.EMPTY;
}
@Override
public NonNullList<ItemStack> getRemainingItems(InventoryCrafting inv)
{
NonNullList<ItemStack> nonnulllist = NonNullList.<ItemStack> withSize(inv.getSizeInventory(), ItemStack.EMPTY);
for (int i = 0; i < nonnulllist.size(); ++i)
{
ItemStack itemstack = inv.getStackInSlot(i);
if (itemstack.getItem().hasContainerItem(itemstack))
{
nonnulllist.set(i, new ItemStack(itemstack.getItem().getContainerItem()));
}
}
return nonnulllist;
}
@Override
public boolean func_192399_d()
{
return true;
}
@Override
public boolean func_194133_a(int p_194133_1_, int p_194133_2_)
{
return p_194133_1_ * p_194133_2_ >= 2;
}
}

View File

@ -0,0 +1,38 @@
/*******************************************************************************
* Copyright (c) 2012 cpw.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.crafting;
import java.util.function.BooleanSupplier;
import com.google.gson.JsonObject;
import net.minecraft.util.JsonUtils;
import net.minecraftforge.common.crafting.IConditionFactory;
import net.minecraftforge.common.crafting.JsonContext;
import net.minecraftforge.oredict.OreDictionary;
public class OreDictEntryExistsConditionFactory implements IConditionFactory
{
@Override
public BooleanSupplier parse(JsonContext context, JsonObject json)
{
String orename = JsonUtils.getString(json, "ore");
if (OreDictionary.getOres(orename).isEmpty())
{
return () -> false;
}
else
{
return () -> true;
}
}
}

View File

@ -0,0 +1,156 @@
/*******************************************************************************
* Copyright (c) 2012 cpw.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.crafting;
import com.google.gson.JsonObject;
import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox;
import net.minecraft.block.Block;
import net.minecraft.init.Items;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.NonNullList;
import net.minecraft.world.World;
import net.minecraftforge.common.crafting.IRecipeFactory;
import net.minecraftforge.common.crafting.JsonContext;
import net.minecraftforge.fml.common.registry.IForgeRegistryEntry.Impl;
public class ShulkerBoxColorRecipeFactory implements IRecipeFactory
{
@Override
public IRecipe parse(JsonContext context, JsonObject json)
{
return new ShulkerBoxColorRecipe();
}
public static class ShulkerBoxColorRecipe extends Impl<IRecipe> implements IRecipe
{
public ShulkerBoxColorRecipe()
{
}
/**
* Used to check if a recipe matches current crafting inventory
*/
@Override
public boolean matches(InventoryCrafting inv, World worldIn)
{
int i = 0;
int j = 0;
for (int k = 0; k < inv.getSizeInventory(); ++k)
{
ItemStack itemstack = inv.getStackInSlot(k);
if (!itemstack.isEmpty())
{
if (Block.getBlockFromItem(itemstack.getItem()) instanceof BlockIronShulkerBox)
{
++i;
}
else
{
if (itemstack.getItem() != Items.DYE)
{
return false;
}
++j;
}
if (j > 1 || i > 1)
{
return false;
}
}
}
return i == 1 && j == 1;
}
/**
* Returns an Item that is the result of this recipe
*/
@Override
public ItemStack getCraftingResult(InventoryCrafting inv)
{
ItemStack itemstack = ItemStack.EMPTY;
ItemStack itemstack1 = ItemStack.EMPTY;
for (int i = 0; i < inv.getSizeInventory(); ++i)
{
ItemStack itemstack2 = inv.getStackInSlot(i);
if (!itemstack2.isEmpty())
{
if (Block.getBlockFromItem(itemstack2.getItem()) instanceof BlockIronShulkerBox)
{
itemstack = itemstack2;
}
else if (itemstack2.getItem() == Items.DYE)
{
itemstack1 = itemstack2;
}
}
}
ItemStack itemstack3 = BlockIronShulkerBox.getColoredItemStack(EnumDyeColor.byDyeDamage(itemstack1.getMetadata()), itemstack.getMetadata());
if (itemstack.hasTagCompound())
{
itemstack3.setTagCompound(itemstack.getTagCompound().copy());
}
return itemstack3;
}
@Override
public ItemStack getRecipeOutput()
{
return ItemStack.EMPTY;
}
@Override
public NonNullList<ItemStack> getRemainingItems(InventoryCrafting inv)
{
NonNullList<ItemStack> nonnulllist = NonNullList.<ItemStack> withSize(inv.getSizeInventory(), ItemStack.EMPTY);
for (int i = 0; i < nonnulllist.size(); ++i)
{
ItemStack itemstack = inv.getStackInSlot(i);
if (itemstack.getItem().hasContainerItem(itemstack))
{
nonnulllist.set(i, new ItemStack(itemstack.getItem().getContainerItem()));
}
}
return nonnulllist;
}
@Override
public boolean isHidden()
{
return true;
}
/**
* Used to determine if this recipe can fit in a grid of the given width/height
*/
@Override
public boolean canFit(int width, int height)
{
return width * height >= 2;
}
}
}

View File

@ -0,0 +1,83 @@
/*******************************************************************************
* Copyright (c) 2012 cpw.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
* <p>
* Contributors:
* cpw - initial API and implementation
******************************************************************************/
package cpw.mods.ironchest.common.crafting;
import javax.annotation.Nonnull;
import com.google.gson.JsonObject;
import cpw.mods.ironchest.IronChest;
import cpw.mods.ironchest.common.blocks.shulker.BlockIronShulkerBox;
import net.minecraft.block.Block;
import net.minecraft.block.BlockShulkerBox;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.JsonUtils;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.crafting.CraftingHelper.ShapedPrimer;
import net.minecraftforge.common.crafting.IRecipeFactory;
import net.minecraftforge.common.crafting.JsonContext;
import net.minecraftforge.oredict.ShapedOreRecipe;
public class ShulkerBoxRecipeFactory implements IRecipeFactory
{
@Override
public IRecipe parse(JsonContext context, JsonObject json)
{
ShapedOreRecipe recipe = ShapedOreRecipe.factory(context, json);
ShapedPrimer primer = new ShapedPrimer();
primer.width = recipe.getWidth();
primer.height = recipe.getHeight();
primer.mirrored = JsonUtils.getBoolean(json, "mirrored", true);
primer.input = recipe.getIngredients();
return new ShulkerBoxRecipe(new ResourceLocation(IronChest.MOD_ID, "shulker_box_crafting"), recipe.getRecipeOutput(), primer);
}
public static class ShulkerBoxRecipe extends ShapedOreRecipe
{
public ShulkerBoxRecipe(ResourceLocation group, ItemStack result, ShapedPrimer primer)
{
super(group, result, primer);
}
@Override
@Nonnull
public ItemStack getCraftingResult(@Nonnull InventoryCrafting var1)
{
ItemStack newOutput = this.output.copy();
ItemStack itemstack = ItemStack.EMPTY;
for (int i = 0; i < var1.getSizeInventory(); ++i)
{
ItemStack stack = var1.getStackInSlot(i);
if (!stack.isEmpty())
{
if (Block.getBlockFromItem(stack.getItem()) instanceof BlockIronShulkerBox || Block.getBlockFromItem(stack.getItem()) instanceof BlockShulkerBox)
{
itemstack = stack;
}
}
}
if (itemstack.hasTagCompound())
{
newOutput.setTagCompound(itemstack.getTagCompound().copy());
}
return newOutput;
}
}
}

View File

@ -17,38 +17,37 @@ import static cpw.mods.ironchest.common.blocks.chest.IronChestType.WOOD;
import cpw.mods.ironchest.common.blocks.chest.IronChestType;
import cpw.mods.ironchest.common.items.chest.ItemChestChanger;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;
public enum ChestChangerType
{
//@formatter:off
IRON_GOLD(IRON, GOLD, "iron_gold_chest_upgrade", "mmm", "msm", "mmm"),
GOLD_DIAMOND(GOLD, DIAMOND, "gold_diamond_chest_upgrade", "GGG", "msm", "GGG"),
COPPER_SILVER(COPPER, SILVER, "copper_silver_chest_upgrade", "mmm", "msm", "mmm"),
SILVER_GOLD(SILVER, GOLD, "silver_gold_chest_upgrade", "mGm", "GsG", "mGm"),
COPPER_IRON(COPPER, IRON, "copper_iron_chest_upgrade", "mGm", "GsG", "mGm"),
DIAMOND_CRYSTAL(DIAMOND, CRYSTAL, "diamond_crystal_chest_upgrade", "GGG", "GOG", "GGG"),
WOOD_IRON(WOOD, IRON, "wood_iron_chest_upgrade", "mmm", "msm", "mmm"),
WOOD_COPPER(WOOD, COPPER, "wood_copper_chest_upgrade", "mmm", "msm", "mmm"),
DIAMOND_OBSIDIAN(DIAMOND, OBSIDIAN, "diamond_obsidian_chest_upgrade", "mmm", "mGm", "mmm");
IRON_GOLD(IRON, GOLD, "iron_gold_chest_upgrade"),
GOLD_DIAMOND(GOLD, DIAMOND, "gold_diamond_chest_upgrade"),
COPPER_SILVER(COPPER, SILVER, "copper_silver_chest_upgrade"),
SILVER_GOLD(SILVER, GOLD, "silver_gold_chest_upgrade"),
COPPER_IRON(COPPER, IRON, "copper_iron_chest_upgrade"),
DIAMOND_CRYSTAL(DIAMOND, CRYSTAL, "diamond_crystal_chest_upgrade"),
WOOD_IRON(WOOD, IRON, "wood_iron_chest_upgrade"),
WOOD_COPPER(WOOD, COPPER, "wood_copper_chest_upgrade"),
DIAMOND_OBSIDIAN(DIAMOND, OBSIDIAN, "diamond_obsidian_chest_upgrade");
//@formatter:on
public static final ChestChangerType[] VALUES = values();
public final IronChestType source;
public final IronChestType target;
public final String itemName;
public ItemChestChanger item;
private String[] recipe;
ChestChangerType(IronChestType source, IronChestType target, String itemName, String... recipe)
public final IronChestType target;
public final String itemName;
public ItemChestChanger item;
ChestChangerType(IronChestType source, IronChestType target, String itemName)
{
this.source = source;
this.target = target;
this.itemName = itemName;
this.recipe = recipe;
}
public boolean canUpgrade(IronChestType from)
@ -67,21 +66,6 @@ public enum ChestChangerType
return this.item;
}
public void addRecipes()
{
for (String sourceMat : this.source.matList)
{
for (String targetMat : this.target.matList)
{
Object targetMaterial = IronChestType.translateOreName(targetMat);
Object sourceMaterial = IronChestType.translateOreName(sourceMat);
//@formatter:off
IronChestType.addRecipe(new ItemStack(this.item), this.recipe, 'm', targetMaterial, 's', sourceMaterial, 'G', "blockGlass", 'O', Blocks.OBSIDIAN);
//@formatter:on
}
}
}
public static void buildItems()
{
for (ChestChangerType type : VALUES)
@ -89,12 +73,4 @@ public enum ChestChangerType
type.buildItem();
}
}
public static void generateRecipes()
{
for (ChestChangerType item : VALUES)
{
item.addRecipes();
}
}
}

View File

@ -17,38 +17,37 @@ import static cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType.VANILL
import cpw.mods.ironchest.common.blocks.shulker.IronShulkerBoxType;
import cpw.mods.ironchest.common.items.shulker.ItemShulkerBoxChanger;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;
public enum ShulkerBoxChangerType
{
//@formatter:off
IRON_GOLD(IRON, GOLD, "iron_gold_shulker_upgrade", "mmm", "msm", "mmm"),
GOLD_DIAMOND(GOLD, DIAMOND, "gold_diamond_shulker_upgrade", "GGG", "msm", "GGG"),
COPPER_SILVER(COPPER, SILVER, "copper_silver_shulker_upgrade", "mmm", "msm", "mmm"),
SILVER_GOLD(SILVER, GOLD, "silver_gold_shulker_upgrade", "mGm", "GsG", "mGm"),
COPPER_IRON(COPPER, IRON, "copper_iron_shulker_upgrade", "mGm", "GsG", "mGm"),
DIAMOND_CRYSTAL(DIAMOND, CRYSTAL, "diamond_crystal_shulker_upgrade", "GGG", "GOG", "GGG"),
VANILLA_IRON(VANILLA, IRON, "vanilla_iron_shulker_upgrade", "mmm", "msm", "mmm"),
VANILLA_COPPER(VANILLA, COPPER, "vanilla_copper_shulker_upgrade", "mmm", "msm", "mmm"),
DIAMOND_OBSIDIAN(DIAMOND, OBSIDIAN, "diamond_obsidian_shulker_upgrade", "mmm", "mGm", "mmm");
IRON_GOLD(IRON, GOLD, "iron_gold_shulker_upgrade"),
GOLD_DIAMOND(GOLD, DIAMOND, "gold_diamond_shulker_upgrade"),
COPPER_SILVER(COPPER, SILVER, "copper_silver_shulker_upgrade"),
SILVER_GOLD(SILVER, GOLD, "silver_gold_shulker_upgrade"),
COPPER_IRON(COPPER, IRON, "copper_iron_shulker_upgrade"),
DIAMOND_CRYSTAL(DIAMOND, CRYSTAL, "diamond_crystal_shulker_upgrade"),
VANILLA_IRON(VANILLA, IRON, "vanilla_iron_shulker_upgrade"),
VANILLA_COPPER(VANILLA, COPPER, "vanilla_copper_shulker_upgrade"),
DIAMOND_OBSIDIAN(DIAMOND, OBSIDIAN, "diamond_obsidian_shulker_upgrade");
//@formatter:on
public static final ShulkerBoxChangerType[] VALUES = values();
public final IronShulkerBoxType source;
public final IronShulkerBoxType target;
public final String itemName;
public ItemShulkerBoxChanger item;
private String[] recipe;
ShulkerBoxChangerType(IronShulkerBoxType source, IronShulkerBoxType target, String itemName, String... recipe)
public final IronShulkerBoxType target;
public final String itemName;
public ItemShulkerBoxChanger item;
ShulkerBoxChangerType(IronShulkerBoxType source, IronShulkerBoxType target, String itemName)
{
this.source = source;
this.target = target;
this.itemName = itemName;
this.recipe = recipe;
}
public boolean canUpgrade(IronShulkerBoxType from)
@ -67,22 +66,6 @@ public enum ShulkerBoxChangerType
return this.item;
}
public void addRecipes()
{
for (String sourceMat : this.source.matList)
{
for (String targetMat : this.target.matList)
{
Object targetMaterial = IronShulkerBoxType.translateOreName(targetMat);
Object sourceMaterial = IronShulkerBoxType.translateOreName(sourceMat);
//@formatter:off
IronShulkerBoxType.addRecipe(new ItemStack(this.item), this.recipe, 'm', targetMaterial, 's', sourceMaterial, 'G', "blockGlass", 'O', Blocks.OBSIDIAN);
//@formatter:on
}
}
}
public static void buildItems()
{
for (ShulkerBoxChangerType type : VALUES)
@ -90,12 +73,4 @@ public enum ShulkerBoxChangerType
type.buildItem();
}
}
public static void generateRecipes()
{
for (ShulkerBoxChangerType item : VALUES)
{
item.addRecipes();
}
}
}

View File

@ -425,7 +425,7 @@ public class TileEntityIronShulkerBox extends TileEntityLockableLoot implements
public AxisAlignedBB getBoundingBox(EnumFacing facing)
{
//@formatter:off
return Block.FULL_BLOCK_AABB.addCoord(0.5F * this.getProgress(1.0F) * facing.getFrontOffsetX(), 0.5F * this.getProgress(1.0F) * facing.getFrontOffsetY(), 0.5F * this.getProgress(1.0F) * facing.getFrontOffsetZ());
return Block.FULL_BLOCK_AABB.expand(0.5F * this.getProgress(1.0F) * facing.getFrontOffsetX(), 0.5F * this.getProgress(1.0F) * facing.getFrontOffsetY(), 0.5F * this.getProgress(1.0F) * facing.getFrontOffsetZ());
//@formatter:on
}

View File

@ -0,0 +1,93 @@
[
{
"name": "IRON",
"ingredient": [
{
"type": "forge:ore_dict",
"ore": "ingotRefinedIron"
},
{
"type": "forge:ore_dict",
"ore": "ingotIron"
}
]
},
{
"name": "GOLD",
"ingredient": {
"type": "forge:ore_dict",
"ore": "ingotGold"
}
},
{
"name": "DIAMOND",
"ingredient": {
"type": "forge:ore_dict",
"ore": "gemDiamond"
}
},
{
"name": "COPPER",
"ingredient": {
"type": "forge:ore_dict",
"ore": "ingotCopper"
}
},
{
"name": "SILVER",
"ingredient": {
"type": "forge:ore_dict",
"ore": "ingotSilver"
}
},
{
"name": "GLASS",
"ingredient": {
"type": "forge:ore_dict",
"ore": "blockGlass"
}
},
{
"name": "OBSIDIAN",
"ingredient": {
"item": "minecraft:obsidian"
}
},
{
"name": "DIRT",
"ingredient": [
{
"item": "minecraft:dirt",
"data": 0
},
{
"item": "minecraft:dirt",
"data": 1
},
{
"item": "minecraft:dirt",
"data": 2
}
]
},
{
"name": "SHULKER_SHELL",
"ingredient": {
"item": "minecraft:shulker_shell"
}
},
{
"name": "PLANKS",
"ingredient": {
"type": "forge:ore_dict",
"ore": "plankWood"
}
},
{
"name": "CHEST",
"ingredient": {
"type": "forge:ore_dict",
"ore": "chestWood"
}
}
]

View File

@ -0,0 +1,9 @@
{
"recipes": {
"shulker_box": "cpw.mods.ironchest.common.crafting.ShulkerBoxRecipeFactory",
"shulker_box_coloring": "cpw.mods.ironchest.common.crafting.ShulkerBoxColorRecipeFactory"
},
"conditions": {
"ore_dict_entry_exists": "cpw.mods.ironchest.common.crafting.OreDictEntryExistsConditionFactory"
}
}

View File

@ -0,0 +1,26 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "forge:ore_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#COPPER"
},
"S": {
"item": "#CHEST"
}
},
"result": {
"item": "ironchest:iron_chest",
"data": 3
}
}

View File

@ -0,0 +1,21 @@
{
"type": "forge:ore_shaped",
"pattern": [
"GGG",
"GSG",
"GGG"
],
"key": {
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_chest",
"data": 2
}
},
"result": {
"item": "ironchest:iron_chest",
"data": 5
}
}

View File

@ -0,0 +1,24 @@
{
"type": "forge:ore_shaped",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_chest",
"data": 1
}
},
"result": {
"item": "ironchest:iron_chest",
"data": 2
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "forge:ore_shaped",
"pattern": [
"GGG",
"GSG",
"MMM"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_chest",
"data": 4
}
},
"result": {
"item": "ironchest:iron_chest",
"data": 2
}
}

View File

@ -0,0 +1,20 @@
{
"type": "forge:ore_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#DIRT"
},
"S": {
"item": "#CHEST"
}
},
"result": {
"item": "ironchest:iron_chest",
"data": 7
}
}

View File

@ -0,0 +1,21 @@
{
"type": "forge:ore_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#GOLD"
},
"S": {
"item": "ironchest:iron_chest",
"data": 0
}
},
"result": {
"item": "ironchest:iron_chest",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "forge:ore_shaped",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#GOLD"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_chest",
"data": 4
}
},
"result": {
"item": "ironchest:iron_chest",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "forge:ore_shaped",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#IRON"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_chest",
"data": 3
}
},
"result": {
"item": "ironchest:iron_chest",
"data": 0
}
}

View File

@ -0,0 +1,20 @@
{
"type": "forge:ore_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#IRON"
},
"S": {
"item": "#CHEST"
}
},
"result": {
"item": "ironchest:iron_chest",
"data": 0
}
}

View File

@ -0,0 +1,21 @@
{
"type": "forge:ore_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#OBSIDIAN"
},
"S": {
"item": "ironchest:iron_chest",
"data": 2
}
},
"result": {
"item": "ironchest:iron_chest",
"data": 6
}
}

View File

@ -0,0 +1,31 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
},
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "forge:ore_shaped",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#SILVER"
},
"S": {
"item": "ironchest:iron_chest",
"data": 3
}
},
"result": {
"item": "ironchest:iron_chest",
"data": 4
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "forge:ore_shaped",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#SILVER"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_chest",
"data": 0
}
},
"result": {
"item": "ironchest:iron_chest",
"data": 4
}
}

View File

@ -0,0 +1,26 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#COPPER"
},
"S": {
"item": "minecraft:black_shulker_box"
}
},
"result": {
"item": "ironchest:iron_shulker_box_black",
"data": 3
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"GSG",
"GGG"
],
"key": {
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_black",
"data": 2
}
},
"result": {
"item": "ironchest:iron_shulker_box_black",
"data": 5
}
}

View File

@ -0,0 +1,24 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_black",
"data": 1
}
},
"result": {
"item": "ironchest:iron_shulker_box_black",
"data": 2
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"GSG",
"MMM"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_black",
"data": 4
}
},
"result": {
"item": "ironchest:iron_shulker_box_black",
"data": 2
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#GOLD"
},
"S": {
"item": "ironchest:iron_shulker_box_black",
"data": 0
}
},
"result": {
"item": "ironchest:iron_shulker_box_black",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#GOLD"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_black",
"data": 4
}
},
"result": {
"item": "ironchest:iron_shulker_box_black",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#IRON"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_black",
"data": 3
}
},
"result": {
"item": "ironchest:iron_shulker_box_black",
"data": 0
}
}

View File

@ -0,0 +1,20 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#IRON"
},
"S": {
"item": "minecraft:black_shulker_box"
}
},
"result": {
"item": "ironchest:iron_shulker_box_black",
"data": 0
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#OBSIDIAN"
},
"S": {
"item": "ironchest:iron_shulker_box_black",
"data": 2
}
},
"result": {
"item": "ironchest:iron_shulker_box_black",
"data": 6
}
}

View File

@ -0,0 +1,31 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
},
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#SILVER"
},
"S": {
"item": "ironchest:iron_shulker_box_black",
"data": 3
}
},
"result": {
"item": "ironchest:iron_shulker_box_black",
"data": 4
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#SILVER"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_black",
"data": 0
}
},
"result": {
"item": "ironchest:iron_shulker_box_black",
"data": 4
}
}

View File

@ -0,0 +1,26 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#COPPER"
},
"S": {
"item": "minecraft:blue_shulker_box"
}
},
"result": {
"item": "ironchest:iron_shulker_box_blue",
"data": 3
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"GSG",
"GGG"
],
"key": {
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_blue",
"data": 2
}
},
"result": {
"item": "ironchest:iron_shulker_box_blue",
"data": 5
}
}

View File

@ -0,0 +1,24 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_blue",
"data": 1
}
},
"result": {
"item": "ironchest:iron_shulker_box_blue",
"data": 2
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"GSG",
"MMM"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_blue",
"data": 4
}
},
"result": {
"item": "ironchest:iron_shulker_box_blue",
"data": 2
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#GOLD"
},
"S": {
"item": "ironchest:iron_shulker_box_blue",
"data": 0
}
},
"result": {
"item": "ironchest:iron_shulker_box_blue",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#GOLD"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_blue",
"data": 4
}
},
"result": {
"item": "ironchest:iron_shulker_box_blue",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#IRON"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_blue",
"data": 3
}
},
"result": {
"item": "ironchest:iron_shulker_box_blue",
"data": 0
}
}

View File

@ -0,0 +1,20 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#IRON"
},
"S": {
"item": "minecraft:blue_shulker_box"
}
},
"result": {
"item": "ironchest:iron_shulker_box_blue",
"data": 0
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#OBSIDIAN"
},
"S": {
"item": "ironchest:iron_shulker_box_blue",
"data": 2
}
},
"result": {
"item": "ironchest:iron_shulker_box_blue",
"data": 6
}
}

View File

@ -0,0 +1,31 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
},
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#SILVER"
},
"S": {
"item": "ironchest:iron_shulker_box_blue",
"data": 3
}
},
"result": {
"item": "ironchest:iron_shulker_box_blue",
"data": 4
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#SILVER"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_blue",
"data": 0
}
},
"result": {
"item": "ironchest:iron_shulker_box_blue",
"data": 4
}
}

View File

@ -0,0 +1,26 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#COPPER"
},
"S": {
"item": "minecraft:brown_shulker_box"
}
},
"result": {
"item": "ironchest:iron_shulker_box_brown",
"data": 3
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"GSG",
"GGG"
],
"key": {
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_brown",
"data": 2
}
},
"result": {
"item": "ironchest:iron_shulker_box_brown",
"data": 5
}
}

View File

@ -0,0 +1,24 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_brown",
"data": 1
}
},
"result": {
"item": "ironchest:iron_shulker_box_brown",
"data": 2
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"GSG",
"MMM"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_brown",
"data": 4
}
},
"result": {
"item": "ironchest:iron_shulker_box_brown",
"data": 2
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#GOLD"
},
"S": {
"item": "ironchest:iron_shulker_box_brown",
"data": 0
}
},
"result": {
"item": "ironchest:iron_shulker_box_brown",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#GOLD"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_brown",
"data": 4
}
},
"result": {
"item": "ironchest:iron_shulker_box_brown",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#IRON"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_brown",
"data": 3
}
},
"result": {
"item": "ironchest:iron_shulker_box_brown",
"data": 0
}
}

View File

@ -0,0 +1,20 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#IRON"
},
"S": {
"item": "minecraft:brown_shulker_box"
}
},
"result": {
"item": "ironchest:iron_shulker_box_brown",
"data": 0
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#OBSIDIAN"
},
"S": {
"item": "ironchest:iron_shulker_box_brown",
"data": 2
}
},
"result": {
"item": "ironchest:iron_shulker_box_brown",
"data": 6
}
}

View File

@ -0,0 +1,31 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
},
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#SILVER"
},
"S": {
"item": "ironchest:iron_shulker_box_brown",
"data": 3
}
},
"result": {
"item": "ironchest:iron_shulker_box_brown",
"data": 4
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#SILVER"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_brown",
"data": 0
}
},
"result": {
"item": "ironchest:iron_shulker_box_brown",
"data": 4
}
}

View File

@ -0,0 +1,26 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#COPPER"
},
"S": {
"item": "minecraft:cyan_shulker_box"
}
},
"result": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 3
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"GSG",
"GGG"
],
"key": {
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 2
}
},
"result": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 5
}
}

View File

@ -0,0 +1,24 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 1
}
},
"result": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 2
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"GSG",
"MMM"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 4
}
},
"result": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 2
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#GOLD"
},
"S": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 0
}
},
"result": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#GOLD"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 4
}
},
"result": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#IRON"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 3
}
},
"result": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 0
}
}

View File

@ -0,0 +1,20 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#IRON"
},
"S": {
"item": "minecraft:cyan_shulker_box"
}
},
"result": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 0
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#OBSIDIAN"
},
"S": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 2
}
},
"result": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 6
}
}

View File

@ -0,0 +1,31 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
},
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#SILVER"
},
"S": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 3
}
},
"result": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 4
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#SILVER"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 0
}
},
"result": {
"item": "ironchest:iron_shulker_box_cyan",
"data": 4
}
}

View File

@ -0,0 +1,26 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#COPPER"
},
"S": {
"item": "minecraft:gray_shulker_box"
}
},
"result": {
"item": "ironchest:iron_shulker_box_gray",
"data": 3
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"GSG",
"GGG"
],
"key": {
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_gray",
"data": 2
}
},
"result": {
"item": "ironchest:iron_shulker_box_gray",
"data": 5
}
}

View File

@ -0,0 +1,24 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_gray",
"data": 1
}
},
"result": {
"item": "ironchest:iron_shulker_box_gray",
"data": 2
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"GSG",
"MMM"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_gray",
"data": 4
}
},
"result": {
"item": "ironchest:iron_shulker_box_gray",
"data": 2
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#GOLD"
},
"S": {
"item": "ironchest:iron_shulker_box_gray",
"data": 0
}
},
"result": {
"item": "ironchest:iron_shulker_box_gray",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#GOLD"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_gray",
"data": 4
}
},
"result": {
"item": "ironchest:iron_shulker_box_gray",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#IRON"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_gray",
"data": 3
}
},
"result": {
"item": "ironchest:iron_shulker_box_gray",
"data": 0
}
}

View File

@ -0,0 +1,20 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#IRON"
},
"S": {
"item": "minecraft:gray_shulker_box"
}
},
"result": {
"item": "ironchest:iron_shulker_box_gray",
"data": 0
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#OBSIDIAN"
},
"S": {
"item": "ironchest:iron_shulker_box_gray",
"data": 2
}
},
"result": {
"item": "ironchest:iron_shulker_box_gray",
"data": 6
}
}

View File

@ -0,0 +1,31 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
},
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#SILVER"
},
"S": {
"item": "ironchest:iron_shulker_box_gray",
"data": 3
}
},
"result": {
"item": "ironchest:iron_shulker_box_gray",
"data": 4
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#SILVER"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_gray",
"data": 0
}
},
"result": {
"item": "ironchest:iron_shulker_box_gray",
"data": 4
}
}

View File

@ -0,0 +1,26 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#COPPER"
},
"S": {
"item": "minecraft:green_shulker_box"
}
},
"result": {
"item": "ironchest:iron_shulker_box_green",
"data": 3
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"GSG",
"GGG"
],
"key": {
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_green",
"data": 2
}
},
"result": {
"item": "ironchest:iron_shulker_box_green",
"data": 5
}
}

View File

@ -0,0 +1,24 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_green",
"data": 1
}
},
"result": {
"item": "ironchest:iron_shulker_box_green",
"data": 2
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"GSG",
"MMM"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_green",
"data": 4
}
},
"result": {
"item": "ironchest:iron_shulker_box_green",
"data": 2
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#GOLD"
},
"S": {
"item": "ironchest:iron_shulker_box_green",
"data": 0
}
},
"result": {
"item": "ironchest:iron_shulker_box_green",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#GOLD"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_green",
"data": 4
}
},
"result": {
"item": "ironchest:iron_shulker_box_green",
"data": 1
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#IRON"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_green",
"data": 3
}
},
"result": {
"item": "ironchest:iron_shulker_box_green",
"data": 0
}
}

View File

@ -0,0 +1,20 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#IRON"
},
"S": {
"item": "minecraft:green_shulker_box"
}
},
"result": {
"item": "ironchest:iron_shulker_box_green",
"data": 0
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#OBSIDIAN"
},
"S": {
"item": "ironchest:iron_shulker_box_green",
"data": 2
}
},
"result": {
"item": "ironchest:iron_shulker_box_green",
"data": 6
}
}

View File

@ -0,0 +1,31 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
},
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#SILVER"
},
"S": {
"item": "ironchest:iron_shulker_box_green",
"data": 3
}
},
"result": {
"item": "ironchest:iron_shulker_box_green",
"data": 4
}
}

View File

@ -0,0 +1,30 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotSilver"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MGM",
"GSG",
"MGM"
],
"key": {
"M": {
"item": "#SILVER"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_green",
"data": 0
}
},
"result": {
"item": "ironchest:iron_shulker_box_green",
"data": 4
}
}

View File

@ -0,0 +1,26 @@
{
"conditions": [
{
"type": "ironchest:ore_dict_entry_exists",
"ore": "ingotCopper"
}
],
"type": "ironchest:shulker_box",
"pattern": [
"MMM",
"MSM",
"MMM"
],
"key": {
"M": {
"item": "#COPPER"
},
"S": {
"item": "minecraft:light_blue_shulker_box"
}
},
"result": {
"item": "ironchest:iron_shulker_box_light_blue",
"data": 3
}
}

View File

@ -0,0 +1,21 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"GSG",
"GGG"
],
"key": {
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_light_blue",
"data": 2
}
},
"result": {
"item": "ironchest:iron_shulker_box_light_blue",
"data": 5
}
}

View File

@ -0,0 +1,24 @@
{
"type": "ironchest:shulker_box",
"pattern": [
"GGG",
"MSM",
"GGG"
],
"key": {
"M": {
"item": "#DIAMOND"
},
"G": {
"item": "#GLASS"
},
"S": {
"item": "ironchest:iron_shulker_box_light_blue",
"data": 1
}
},
"result": {
"item": "ironchest:iron_shulker_box_light_blue",
"data": 2
}
}

Some files were not shown because too many files have changed in this diff Show More