new(integration): storagedrawers gtnh recipes

Integrates StorageDrawers with gtnh recipes.
Config change
Deprecate script
Remove Gregtech assembler recipes map spam
Move wood variants of drawers to chisel
Save on load and server join time
This commit is contained in:
Léa Gris committed 2020-02-03 19:34:15 +01:00
1 parent 7e3bf651c3
commit cde1db9de2
16 files changed
+803 -104

No files matched your search

+3 -3
View File
@@ -24,13 +24,13 @@ apply plugin: 'forge'
sourceCompatibility = 1.8
targetCompatibility = 1.8
version = "1.7.10-1.10.9"
version = "1.7.10-1.11.0-gtnh"
group= "com.jaquadro.minecraft.storagedrawers" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "StorageDrawers"
minecraft {
version = "1.7.10-10.13.4.1614-1.7.10"
assetDir = "runtime/assets"
runDir = "runtime"
replace '@VERSION@', project.version
}
@@ -90,7 +90,7 @@ dependencies {
compile "codechicken:CodeChickenCore:1.7.10-1.0.7.47:dev"
compile "codechicken:NotEnoughItems:1.7.10-1.0.5.120:dev"
compile files("libs/appliedenergistics2-rv2-beta-33-dev.jar")
compile files("libs/appliedenergistics2-rv3-beta-6-dev.jar")
compile name: 'MineTweaker3', version: "Dev-1.7.10-3.0.10B", ext: 'jar'
+2 -2
View File
@@ -23,7 +23,7 @@ archivesBaseName = "StorageDrawers-BiomesOPlenty"
minecraft {
version = "1.7.10-10.13.4.1614-1.7.10"
assetDir = "../../runtime/assets"
runDir = "../../runtime"
replace '@VERSION@', project.version
replace 'required-after:StorageDrawers', "required-after:StorageDrawers@[1.7.6,)"
@@ -69,4 +69,4 @@ task deobfJar(type: Jar) {
artifacts {
archives deobfJar
}
}
+2 -2
View File
@@ -23,7 +23,7 @@ archivesBaseName = "StorageDrawers-Erebus"
minecraft {
version = "1.7.10-10.13.4.1614-1.7.10"
assetDir = "../../runtime/assets"
runDir = "../../runtime"
replace '@VERSION@', project.version
replace 'required-after:StorageDrawers', "required-after:StorageDrawers@[1.7.6,)"
@@ -69,4 +69,4 @@ task deobfJar(type: Jar) {
artifacts {
archives deobfJar
}
}
+2 -2
View File
@@ -23,7 +23,7 @@ archivesBaseName = "StorageDrawers-Forestry"
minecraft {
version = "1.7.10-10.13.4.1614-1.7.10"
assetDir = "../../runtime/assets"
runDir = "../../runtime"
replace '@VERSION@', project.version
replace 'required-after:StorageDrawers', "required-after:StorageDrawers@[1.7.6,)"
@@ -69,4 +69,4 @@ task deobfJar(type: Jar) {
artifacts {
archives deobfJar
}
}
+2 -2
View File
@@ -23,7 +23,7 @@ archivesBaseName = "StorageDrawers-Misc"
minecraft {
version = "1.7.10-10.13.4.1614-1.7.10"
assetDir = "../../runtime/assets"
runDir = "../../runtime"
replace '@VERSION@', project.version
replace 'required-after:StorageDrawers', "required-after:StorageDrawers@[1.7.6,)"
@@ -69,4 +69,4 @@ task deobfJar(type: Jar) {
artifacts {
archives deobfJar
}
}
+2 -2
View File
@@ -23,7 +23,7 @@ archivesBaseName = "StorageDrawers-Natura"
minecraft {
version = "1.7.10-10.13.4.1614-1.7.10"
assetDir = "../../runtime/assets"
runDir = "../../runtime"
replace '@VERSION@', project.version
replace 'required-after:StorageDrawers', "required-after:StorageDrawers@[1.7.6,)"
@@ -69,4 +69,4 @@ task deobfJar(type: Jar) {
artifacts {
archives deobfJar
}
}
@@ -3,4 +3,6 @@ package com.jaquadro.minecraft.storagedrawers.api.config;
public interface IIntegrationConfig
{
boolean isRefinedRelocationEnabled ();
boolean isChiselEnabled ();
boolean isGTNHEnabled ();
}
@@ -53,7 +53,7 @@ public class ConfigManager
}
}
public class ConfigCache {
public static class ConfigCache {
public boolean enableIndicatorUpgrades;
public boolean enableStorageUpgrades;
public boolean enableLockUpgrades;
@@ -77,6 +77,8 @@ public class ConfigManager
public boolean enableRefinedRelocationIntegration;
public boolean enableThermalExpansionIntegration;
public boolean enableThermalFoundationIntegration;
public boolean enableChiselIntegration;
public boolean enableGTNHIntegration;
public boolean enableTape;
public boolean enableFallbackRecipes;
public boolean enableFramedDrawers;
@@ -160,6 +162,17 @@ public class ConfigManager
public boolean isRefinedRelocationEnabled () {
return cache.enableRefinedRelocationIntegration;
}
@Override
public boolean isChiselEnabled () {
return cache.enableChiselIntegration;
}
@Override
public boolean isGTNHEnabled () {
return cache.enableGTNHIntegration;
}
}
private class UserConfig implements IUserConfig {
@@ -261,6 +274,8 @@ public class ConfigManager
cache.enableRefinedRelocationIntegration = config.get(sectionIntegration.getQualifiedName(), "enableRefinedRelocation", true).setLanguageKey(LANG_PREFIX + "integration.enableRefinedRelocation").setRequiresMcRestart(true).getBoolean();
cache.enableThermalExpansionIntegration = config.get(sectionIntegration.getQualifiedName(), "enableThermalExpansion", true).setLanguageKey(LANG_PREFIX + "integration.enableThermalExpansion").setRequiresMcRestart(true).getBoolean();
cache.enableThermalFoundationIntegration = config.get(sectionIntegration.getQualifiedName(), "enableThermalFoundation", true).setLanguageKey(LANG_PREFIX + "integration.enableThermalFoundation").setRequiresMcRestart(true).getBoolean();
cache.enableChiselIntegration = config.get(sectionIntegration.getQualifiedName(), "enableChisel", true).setLanguageKey(LANG_PREFIX + "integration.enableChisel").setRequiresMcRestart(true).getBoolean();
cache.enableGTNHIntegration = config.get(sectionIntegration.getQualifiedName(), "enableGTNH", true).setLanguageKey(LANG_PREFIX + "integration.enableGTNH").setRequiresMcRestart(true).getBoolean();
config.get(sectionBlocksFullDrawers1x1.getQualifiedName(), "enabled", true).setLanguageKey(LANG_PREFIX + "prop.enabled").setRequiresMcRestart(true);
config.get(sectionBlocksFullDrawers1x1.getQualifiedName(), "baseStorage", 32).setLanguageKey(LANG_PREFIX + "prop.baseStorage").setRequiresWorldRestart(true);
@@ -10,6 +10,7 @@ import com.jaquadro.minecraft.storagedrawers.api.registry.IRenderRegistry;
import com.jaquadro.minecraft.storagedrawers.api.registry.IWailaRegistry;
import com.jaquadro.minecraft.storagedrawers.core.api.PackFactory;
import com.jaquadro.minecraft.storagedrawers.core.api.PackRecipes;
import com.jaquadro.minecraft.storagedrawers.integration.ChiselIntegrationModule;
import com.jaquadro.minecraft.storagedrawers.integration.ThermalExpansion;
public class Api implements IStorageDrawersApi
@@ -1,12 +1,10 @@
package com.jaquadro.minecraft.storagedrawers.core;
import com.jaquadro.minecraft.storagedrawers.StorageDrawers;
import com.jaquadro.minecraft.storagedrawers.block.BlockDrawers;
import com.jaquadro.minecraft.storagedrawers.config.ConfigManager;
import com.jaquadro.minecraft.storagedrawers.core.recipe.FallbackShapedOreRecipe;
import com.jaquadro.minecraft.storagedrawers.core.recipe.TemplateRecipe;
import com.jaquadro.minecraft.storagedrawers.integration.ChiselIntegrationModule;
import com.jaquadro.minecraft.storagedrawers.integration.GTNHIntegrationModule;
import cpw.mods.fml.common.registry.GameRegistry;
import minetweaker.mc1710.recipes.ShapedRecipeOre;
import net.minecraft.block.BlockWood;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
@@ -16,39 +14,39 @@ import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.RecipeSorter;
import net.minecraftforge.oredict.ShapedOreRecipe;
public class ModRecipes
{
public void init () {
import static com.jaquadro.minecraft.storagedrawers.StorageDrawers.config;
public class ModRecipes {
public void init() {
OreDictionary.registerOre("chestWood", new ItemStack(Blocks.chest)); // Remove when porting to 1.8
if (GTNHIntegrationModule.isEnabled()) return;
RecipeSorter.register("StorageDrawers:FallbackShapedOreRecipe", FallbackShapedOreRecipe.class, RecipeSorter.Category.SHAPED, "after:forge:shapedore");
ConfigManager config = StorageDrawers.config;
for (int i = 0; i < BlockWood.field_150096_a.length; i++) {
if (config.isBlockEnabled("fulldrawers1"))
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.fullDrawers1, config.getBlockRecipeOutput("fulldrawers1"), i), "xxx", " y ", "xxx",
'x', new ItemStack(Blocks.planks, 1, i), 'y', "chestWood"));
if (config.isBlockEnabled("fulldrawers2"))
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.fullDrawers2, config.getBlockRecipeOutput("fulldrawers2"), i), "xyx", "xxx", "xyx",
'x', new ItemStack(Blocks.planks, 1, i), 'y', "chestWood"));
if (config.isBlockEnabled("halfdrawers2"))
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.halfDrawers2, config.getBlockRecipeOutput("halfdrawers2"), i), "xyx", "xxx", "xyx",
'x', new ItemStack(Blocks.wooden_slab, 1, i), 'y', "chestWood"));
if (config.isBlockEnabled("fulldrawers4"))
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.fullDrawers4, config.getBlockRecipeOutput("fulldrawers4"), i), "yxy", "xxx", "yxy",
'x', new ItemStack(Blocks.planks, 1, i), 'y', "chestWood"));
if (config.isBlockEnabled("halfdrawers4"))
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.halfDrawers4, config.getBlockRecipeOutput("halfdrawers4"), i), "yxy", "xxx", "yxy",
'x', new ItemStack(Blocks.wooden_slab, 1, i), 'y', "chestWood"));
if (config.isBlockEnabled("trim")) {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.trim, config.getBlockRecipeOutput("trim"), i), "xyx", "yyy", "xyx",
'x', "stickWood", 'y', new ItemStack(Blocks.planks, 1, i)));
if (!ChiselIntegrationModule.isEnabled()) {
for (int i = 0; i < BlockWood.field_150096_a.length; i++) {
if (config.isBlockEnabled("fulldrawers1"))
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.fullDrawers1, config.getBlockRecipeOutput("fulldrawers1"), i), "xxx", " y ", "xxx",
'x', new ItemStack(Blocks.planks, 1, i), 'y', "chestWood"));
if (config.isBlockEnabled("fulldrawers2"))
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.fullDrawers2, config.getBlockRecipeOutput("fulldrawers2"), i), "xyx", "xxx", "xyx",
'x', new ItemStack(Blocks.planks, 1, i), 'y', "chestWood"));
if (config.isBlockEnabled("halfdrawers2"))
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.halfDrawers2, config.getBlockRecipeOutput("halfdrawers2"), i), "xyx", "xxx", "xyx",
'x', new ItemStack(Blocks.wooden_slab, 1, i), 'y', "chestWood"));
if (config.isBlockEnabled("fulldrawers4"))
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.fullDrawers4, config.getBlockRecipeOutput("fulldrawers4"), i), "yxy", "xxx", "yxy",
'x', new ItemStack(Blocks.planks, 1, i), 'y', "chestWood"));
if (config.isBlockEnabled("halfdrawers4"))
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.halfDrawers4, config.getBlockRecipeOutput("halfdrawers4"), i), "yxy", "xxx", "yxy",
'x', new ItemStack(Blocks.wooden_slab, 1, i), 'y', "chestWood"));
if (config.isBlockEnabled("trim")) {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.trim, config.getBlockRecipeOutput("trim"), i), "xyx", "yyy", "xyx",
'x', "stickWood", 'y', new ItemStack(Blocks.planks, 1, i)));
}
}
}
// Fallback recipes
if (config.cache.enableFallbackRecipes) {
if (config.cache.enableFallbackRecipes || ChiselIntegrationModule.isEnabled()) {
if (config.isBlockEnabled("fulldrawers1"))
GameRegistry.addRecipe(new FallbackShapedOreRecipe(new ItemStack(ModBlocks.fullDrawers1, config.getBlockRecipeOutput("fulldrawers1"), 0), "xxx", " y ", "xxx",
'x', "plankWood", 'y', "chestWood"));
@@ -5,12 +5,13 @@ import com.jaquadro.minecraft.storagedrawers.api.pack.BlockConfiguration;
import com.jaquadro.minecraft.storagedrawers.api.pack.IExtendedDataResolver;
import com.jaquadro.minecraft.storagedrawers.api.pack.IPackBlockFactory;
import com.jaquadro.minecraft.storagedrawers.api.pack.IPackDataResolver;
import com.jaquadro.minecraft.storagedrawers.block.pack.BlockSortingTrimPack;
import com.jaquadro.minecraft.storagedrawers.config.ConfigManager;
import com.jaquadro.minecraft.storagedrawers.integration.IntegrationRegistry;
import com.jaquadro.minecraft.storagedrawers.block.pack.BlockDrawersPack;
import com.jaquadro.minecraft.storagedrawers.block.pack.BlockSortingDrawersPack;
import com.jaquadro.minecraft.storagedrawers.block.pack.BlockSortingTrimPack;
import com.jaquadro.minecraft.storagedrawers.block.pack.BlockTrimPack;
import com.jaquadro.minecraft.storagedrawers.config.ConfigManager;
import com.jaquadro.minecraft.storagedrawers.integration.ChiselIntegrationModule;
import com.jaquadro.minecraft.storagedrawers.integration.IntegrationRegistry;
import com.jaquadro.minecraft.storagedrawers.integration.notenoughitems.NEIStorageDrawersConfig;
import com.jaquadro.minecraft.storagedrawers.integration.refinedrelocation.SortingBlockRegistry;
import com.jaquadro.minecraft.storagedrawers.item.pack.ItemDrawersPack;
@@ -23,10 +24,9 @@ import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
public class PackFactory implements IPackBlockFactory
{
public class PackFactory implements IPackBlockFactory {
@Override
public Block createBlock (BlockConfiguration blockConfig, IPackDataResolver dataResolver) {
public Block createBlock(BlockConfiguration blockConfig, IPackDataResolver dataResolver) {
switch (blockConfig.getBlockType()) {
case Drawers:
return new BlockDrawersPack(dataResolver, blockConfig.getDrawerCount(), blockConfig.isHalfDepth()).setConfigName(getConfigName(blockConfig));
@@ -40,55 +40,43 @@ public class PackFactory implements IPackBlockFactory
if (IntegrationRegistry.instance().isModLoaded("RefinedRelocation"))
return new BlockSortingTrimPack(dataResolver);
return null;
default:
return null;
}
return null;
}
private static String getConfigName (BlockConfiguration blockConfig) {
if (blockConfig.getDrawerCount() == 1)
return "fullDrawers1";
if (blockConfig.getDrawerCount() == 2 && !blockConfig.isHalfDepth())
return "fullDrawers2";
if (blockConfig.getDrawerCount() == 4 && !blockConfig.isHalfDepth())
return "fullDrawers4";
if (blockConfig.getDrawerCount() == 2 && blockConfig.isHalfDepth())
return "halfDrawers2";
if (blockConfig.getDrawerCount() == 4 && blockConfig.isHalfDepth())
return "halfDrawers4";
return "";
private static String getConfigName(BlockConfiguration blockConfig) {
return (blockConfig.isHalfDepth() ? "half" : "full") + "Drawer" + blockConfig.getDrawerCount();
}
@Override
public void registerBlock (Block block, String name) {
public void registerBlock(Block block, String name) {
if (block instanceof BlockSortingDrawersPack) {
GameRegistry.registerBlock(block, ItemSortingDrawersPack.class, name);
StorageDrawers.proxy.registerDrawer(block);
}
else if (block instanceof BlockDrawersPack) {
} else if (block instanceof BlockDrawersPack) {
GameRegistry.registerBlock(block, ItemDrawersPack.class, name);
OreDictionary.registerOre("drawerBasic", new ItemStack(block, 1, OreDictionary.WILDCARD_VALUE));
StorageDrawers.proxy.registerDrawer(block);
}
else if (block instanceof BlockSortingTrimPack)
} else if (block instanceof BlockSortingTrimPack)
GameRegistry.registerBlock(block, ItemSortingTrimPack.class, name);
else if (block instanceof BlockTrimPack)
GameRegistry.registerBlock(block, ItemTrimPack.class, name);
ChiselIntegrationModule.registerPackBlock(block);
}
@Override
public void bindSortingBlock (Block basicBlock, Block sortingBlock) {
public void bindSortingBlock(Block basicBlock, Block sortingBlock) {
SortingBlockRegistry.register(basicBlock, sortingBlock);
}
@Override
public void hideBlock (String blockID) {
public void hideBlock(String blockID) {
NEIStorageDrawersConfig.hideBlock(blockID);
}
@Override
public void registerResolver (IExtendedDataResolver resolver) {
public void registerResolver(IExtendedDataResolver resolver) {
ConfigManager config = StorageDrawers.config;
if (config.isBlockEnabled("fulldrawers1")) {
StorageDrawers.blockRegistry.register(BlockConfiguration.BasicFull1, resolver);
@@ -1,5 +1,6 @@
package com.jaquadro.minecraft.storagedrawers.core.api;
import com.jaquadro.minecraft.storagedrawers.StorageDrawers;
import com.jaquadro.minecraft.storagedrawers.api.IStorageDrawersApi;
import com.jaquadro.minecraft.storagedrawers.api.StorageDrawersApi;
import com.jaquadro.minecraft.storagedrawers.api.config.IBlockConfig;
@@ -12,9 +13,10 @@ import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.ShapedOreRecipe;
public class PackRecipes
{
public static void registerStandardRecipes (IExtendedDataResolver resolver) {
import static com.jaquadro.minecraft.storagedrawers.StorageDrawers.*;
public class PackRecipes {
public static void registerStandardRecipes(IExtendedDataResolver resolver) {
IStorageDrawersApi api = StorageDrawersApi.instance();
if (api == null)
return;
@@ -39,39 +41,55 @@ public class PackRecipes
if (!resolver.isValidMetaValue(i))
continue;
Block plank = resolver.getPlankBlock(i);
Block slab = resolver.getSlabBlock(i);
int plankMeta = resolver.getPlankMeta(i);
int slabMeta = resolver.getSlabMeta(i);
if (!config.cache.enableChiselIntegration && Loader.isModLoaded("chisel")) {
Block plank = resolver.getPlankBlock(i);
Block slab = resolver.getSlabBlock(i);
int plankMeta = resolver.getPlankMeta(i);
int slabMeta = resolver.getSlabMeta(i);
if (blockConfig.isBlockEnabled(nameFull1) && basicFull1 != null) {
if (plank != null)
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(basicFull1, blockConfig.getBlockRecipeOutput(nameFull1), i), "xxx", " y ", "xxx",
'x', new ItemStack(plank, 1, plankMeta), 'y', "chestWood"));
if (slab != null) {
if (StorageDrawers.config.cache.enableGTNHIntegration) {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(basicFull1, blockConfig.getBlockRecipeOutput(nameFull1), i),
new String[]{
"xxx",
"xyx",
"xxx"},
'x', new ItemStack(slab, 1, slabMeta),
'y', "chestWood"));
}
}
}
if (plank != null) {
if (blockConfig.isBlockEnabled(nameFull1) && basicFull1 != null)
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(basicFull1, blockConfig.getBlockRecipeOutput(nameFull1), i), "xxx", " y ", "xxx",
'x', new ItemStack(plank, 1, plankMeta), 'y', "chestWood"));
if (blockConfig.isBlockEnabled(nameFull2) && basicFull2 != null)
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(basicFull2, blockConfig.getBlockRecipeOutput(nameFull2), i), "xyx", "xxx", "xyx",
'x', new ItemStack(plank, 1, plankMeta), 'y', "chestWood"));
'x', new ItemStack(plank, 1, plankMeta), 'y', "chestWood"));
if (blockConfig.isBlockEnabled(nameFull4) && basicFull4 != null)
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(basicFull4, blockConfig.getBlockRecipeOutput(nameFull4), i), "yxy", "xxx", "yxy",
'x', new ItemStack(plank, 1, plankMeta), 'y', "chestWood"));
'x', new ItemStack(plank, 1, plankMeta), 'y', "chestWood"));
if (blockConfig.isBlockEnabled(nameTrim) && basicTrim != null) {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(basicTrim, blockConfig.getBlockRecipeOutput(nameTrim), i), "xyx", "yyy", "xyx",
'x', "stickWood", 'y', new ItemStack(plank, 1, plankMeta)));
'x', "stickWood", 'y', new ItemStack(plank, 1, plankMeta)));
}
}
if (slab != null) {
if (blockConfig.isBlockEnabled(nameHalf2) && basicHalf2 != null)
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(basicHalf2, blockConfig.getBlockRecipeOutput(nameHalf2), i), "xyx", "xxx", "xyx",
'x', new ItemStack(slab, 1, slabMeta), 'y', "chestWood"));
if (blockConfig.isBlockEnabled(nameHalf4) && basicHalf4 != null)
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(basicHalf4, blockConfig.getBlockRecipeOutput(nameHalf4), i), "yxy", "xxx", "yxy",
'x', new ItemStack(slab, 1, slabMeta), 'y', "chestWood"));
if (slab != null) {
if (blockConfig.isBlockEnabled(nameHalf2) && basicHalf2 != null)
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(basicHalf2, blockConfig.getBlockRecipeOutput(nameHalf2), i), "xyx", "xxx", "xyx",
'x', new ItemStack(slab, 1, slabMeta), 'y', "chestWood"));
if (blockConfig.isBlockEnabled(nameHalf4) && basicHalf4 != null)
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(basicHalf4, blockConfig.getBlockRecipeOutput(nameHalf4), i), "yxy", "xxx", "yxy",
'x', new ItemStack(slab, 1, slabMeta), 'y', "chestWood"));
}
}
}
}
public static void registerSortingRecipes (IExtendedDataResolver resolver) {
public static void registerSortingRecipes(IExtendedDataResolver resolver) {
IStorageDrawersApi api = StorageDrawersApi.instance();
if (api == null)
return;
@@ -108,22 +126,22 @@ public class PackRecipes
if (blockConfig.isBlockEnabled(nameFull1) && sortingFull1 != null && basicFull1 != null)
GameRegistry.addRecipe(new ItemStack(sortingFull1, 1, i), "x x", " y ", "x x",
'x', Items.gold_nugget, 'y', new ItemStack(basicFull1, 1, i));
'x', Items.gold_nugget, 'y', new ItemStack(basicFull1, 1, i));
if (blockConfig.isBlockEnabled(nameFull2) && sortingFull2 != null && basicFull2 != null)
GameRegistry.addRecipe(new ItemStack(sortingFull2, 1, i), "x x", " y ", "x x",
'x', Items.gold_nugget, 'y', new ItemStack(basicFull2, 1, i));
'x', Items.gold_nugget, 'y', new ItemStack(basicFull2, 1, i));
if (blockConfig.isBlockEnabled(nameFull4) && sortingFull4 != null && basicFull4 != null)
GameRegistry.addRecipe(new ItemStack(sortingFull4, 1, i), "x x", " y ", "x x",
'x', Items.gold_nugget, 'y', new ItemStack(basicFull4, 1, i));
'x', Items.gold_nugget, 'y', new ItemStack(basicFull4, 1, i));
if (blockConfig.isBlockEnabled(nameHalf2) && sortingHalf2 != null && basicHalf2 != null)
GameRegistry.addRecipe(new ItemStack(sortingHalf2, 1, i), "x x", " y ", "x x",
'x', Items.gold_nugget, 'y', new ItemStack(basicHalf2, 1, i));
'x', Items.gold_nugget, 'y', new ItemStack(basicHalf2, 1, i));
if (blockConfig.isBlockEnabled(nameHalf4) && sortingHalf4 != null && basicHalf4 != null)
GameRegistry.addRecipe(new ItemStack(sortingHalf4, 1, i), "x x", " y ", "x x",
'x', Items.gold_nugget, 'y', new ItemStack(basicHalf4, 1, i));
'x', Items.gold_nugget, 'y', new ItemStack(basicHalf4, 1, i));
if (blockConfig.isBlockEnabled(nameTrim) && sortingTrim != null && basicTrim != null)
GameRegistry.addRecipe(new ItemStack(sortingTrim, 1, i), "x x", " y ", "x x",
'x', Items.gold_nugget, 'y', new ItemStack(basicTrim, 1, i));
'x', Items.gold_nugget, 'y', new ItemStack(basicTrim, 1, i));
}
}
}
@@ -0,0 +1,105 @@
package com.jaquadro.minecraft.storagedrawers.integration;
import com.jaquadro.minecraft.storagedrawers.StorageDrawers;
import com.jaquadro.minecraft.storagedrawers.api.pack.IPackDataResolver;
import com.jaquadro.minecraft.storagedrawers.block.pack.BlockDrawersPack;
import com.jaquadro.minecraft.storagedrawers.block.pack.BlockSortingDrawersPack;
import com.jaquadro.minecraft.storagedrawers.block.pack.BlockSortingTrimPack;
import com.jaquadro.minecraft.storagedrawers.block.pack.BlockTrimPack;
import com.jaquadro.minecraft.storagedrawers.config.ConfigManager;
import com.jaquadro.minecraft.storagedrawers.core.ModBlocks;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
import net.minecraft.block.BlockWood;
public class ChiselIntegrationModule extends IntegrationModule {
private static final String chiselModID = "chisel";
private static final String addVariation = "variation:add";
private static final boolean chiselEnabled = (Loader.isModLoaded(chiselModID) && StorageDrawers.config.integrationConfig.isChiselEnabled());
public static boolean isEnabled() {
return chiselEnabled;
}
public static void registerPackBlock(Block block) {
if (!chiselEnabled) return;
final String blockGroupName;
final IPackDataResolver resolver;
if (block instanceof BlockDrawersPack) {
resolver = ((BlockDrawersPack) block).getDataResolver();
if (((BlockDrawersPack) block).halfDepth) {
blockGroupName = "basicHalf" + ((BlockDrawersPack) block).drawerCount;
} else {
blockGroupName = "basicFull" + ((BlockDrawersPack) block).drawerCount;
}
} else if (block instanceof BlockSortingDrawersPack) {
resolver = ((BlockSortingDrawersPack) block).getDataResolver();
if (((BlockSortingDrawersPack) block).halfDepth) {
blockGroupName = "sortingHalf" + ((BlockSortingDrawersPack) block).drawerCount;
} else {
blockGroupName = "sortingFull" + ((BlockSortingDrawersPack) block).drawerCount;
}
} else {
blockGroupName = "trim";
if (block instanceof BlockTrimPack) {
resolver = ((BlockTrimPack) block).getDataResolver();
} else {
if (block instanceof BlockSortingTrimPack) {
resolver = ((BlockSortingTrimPack) block).getDataResolver();
} else return;
}
}
// If block is not enabled its resolver is null
if (resolver == null) return;
for (int meta = 0; meta <= 16; meta++) {
if (!resolver.isValidMetaValue(meta)) continue;
registerBlock(block, meta, blockGroupName);
}
}
public static void registerBlock(final Block block, final int meta, final String blockGroupName) {
FMLInterModComms.sendMessage(chiselModID, addVariation, String.join("|",
"StorageDrawers_" + blockGroupName,
GameRegistry.findUniqueIdentifierFor(block).toString(),
Integer.toString(meta)));
}
@Override
public String getModID() {
return chiselModID;
}
@Override
public void init() throws Throwable {
final ConfigManager config = StorageDrawers.config;
for (int meta = 0; meta < BlockWood.field_150096_a.length; meta++) {
if (config.isBlockEnabled("fulldrawers1"))
registerBlock(ModBlocks.fullDrawers1, meta, "basicFull1");
if (config.isBlockEnabled("fulldrawers2"))
registerBlock(ModBlocks.fullDrawers2, meta, "basicFull2");
if (config.isBlockEnabled("fulldrawers4"))
registerBlock(ModBlocks.fullDrawers4, meta, "basicFull4");
if (config.isBlockEnabled("halfdrawers2"))
registerBlock(ModBlocks.halfDrawers2, meta, "basicHalf2");
if (config.isBlockEnabled("halfdrawers4"))
registerBlock(ModBlocks.halfDrawers4, meta, "basicHalf4");
if (config.isBlockEnabled("trim"))
registerBlock(ModBlocks.trim, meta, "trim");
}
}
@Override
public void postInit() {
/* nothing */
}
}
@@ -0,0 +1,29 @@
package com.jaquadro.minecraft.storagedrawers.integration;
import com.jaquadro.minecraft.storagedrawers.StorageDrawers;
import com.jaquadro.minecraft.storagedrawers.integration.gtnh.ModRecipes;
import cpw.mods.fml.common.Loader;
public class GTNHIntegrationModule extends IntegrationModule {
private static final boolean GTNHEnabled = (Loader.isModLoaded("gregtech") && StorageDrawers.config.integrationConfig.isGTNHEnabled());
public static boolean isEnabled() {
return GTNHEnabled;
}
@Override
public String getModID() {
return null;
}
@Override
public void init() throws Throwable {
ModRecipes.init();
}
@Override
public void postInit() {
}
}
@@ -32,6 +32,10 @@ public class IntegrationRegistry
reg.add(new ThermalExpansion());
if (Loader.isModLoaded("ThermalFoundation") && StorageDrawers.config.cache.enableThermalFoundationIntegration)
reg.add(new ThermalFoundation());
if (ChiselIntegrationModule.isEnabled())
reg.add(new ChiselIntegrationModule());
if (GTNHIntegrationModule.isEnabled())
reg.add(new GTNHIntegrationModule());
}
private IntegrationRegistry () {
@@ -0,0 +1,539 @@
package com.jaquadro.minecraft.storagedrawers.integration.gtnh;
import com.google.common.collect.ImmutableList;
import com.jaquadro.minecraft.storagedrawers.core.ModBlocks;
import com.jaquadro.minecraft.storagedrawers.core.ModItems;
import com.jaquadro.minecraft.storagedrawers.item.ItemDrawers;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier;
import gregtech.api.util.GT_Utility;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapedOreRecipe;
import static com.jaquadro.minecraft.storagedrawers.StorageDrawers.config;
import static gregtech.api.enums.GT_Values.NF;
import static gregtech.api.enums.GT_Values.RA;
public class ModRecipes {
private static final String MOD_ID_CB = "CarpentersBlocks";
private static final String ORE_chestWood = "chestWood";
private static final String ORE_drawerBasic = "drawerBasic";
private static final String ORE_plateObsidian = "plateObsidian";
private static final String ORE_plateRedstone = "plateRedstone";
private static final String ORE_slabWood = "slabWood";
private static final String ORE_stickWood = "stickWood";
private static final String name_blockCarpentersBlock = "blockCarpentersBlock";
// Lists of Wildcard Meta slabWood ItemStacks suitable to optimize the number of Gregtech Assembler recipes registered
private static final ImmutableList<ItemStack> slabWood8WList;
private static final ImmutableList<ItemStack> slabWood7WList;
private static final ImmutableList<ItemStack> slabWood5WList;
private static final ImmutableList<ItemStack> slabWood4WList;
// Ingredients for Drawers recipes
private static final ItemStack chest1 = new ItemStack(Blocks.chest, 1);
private static final ItemStack chest2 = new ItemStack(Blocks.chest, 2);
private static final ItemStack chest4 = new ItemStack(Blocks.chest, 4);
private static final ItemStack chest5 = new ItemStack(Blocks.chest, 5);
private static final ItemStack integratedCircuit1 = GT_Utility.getIntegratedCircuit(1);
private static final ItemStack integratedCircuit2 = GT_Utility.getIntegratedCircuit(2);
private static final ItemStack integratedCircuit4 = GT_Utility.getIntegratedCircuit(4);
private static final ItemStack integratedCircuit12 = GT_Utility.getIntegratedCircuit(12);
private static final ItemStack integratedCircuit14 = GT_Utility.getIntegratedCircuit(14);
// Ingredients for Framed Drawers recipes
private static final ItemStack carpentersBlock8 = GameRegistry.findItemStack(MOD_ID_CB, name_blockCarpentersBlock, 8);
private static final ItemStack carpentersBlock7 = GameRegistry.findItemStack(MOD_ID_CB, name_blockCarpentersBlock, 7);
private static final ItemStack carpentersBlock5 = GameRegistry.findItemStack(MOD_ID_CB, name_blockCarpentersBlock, 5);
private static final ItemStack carpentersBlock4 = GameRegistry.findItemStack(MOD_ID_CB, name_blockCarpentersBlock, 4);
private static final ItemStack carpentersBlock1 = GameRegistry.findItemStack(MOD_ID_CB, name_blockCarpentersBlock, 1);
// Ingredients for Trims
private static final ItemStack stick4 = new ItemStack(Items.stick, 4);
// Ingredients for Controller
private static final ItemStack comparatorGate = makeItemStack("ProjRed|Integration:projectred.integration.gate", 26, 1, null);
// Ingredients for Upgrades recipes
private static final ItemStack redAlloyWire = makeItemStack("ProjRed|Transmission:projectred.transmission.wire", 0, 1, null);
private static final ItemStack upgradeLock = new ItemStack(ModItems.upgradeLock);
private static final ItemStack piston = new ItemStack(Blocks.piston, 1);
private static final ItemStack upgradeTemplate = new ItemStack(ModItems.upgradeTemplate);
private static final ImmutableList<ItemStack> drawerBasicW;
static {
final ImmutableList.Builder<String> slabWoodRegistryNameListBuilder = new ImmutableList.Builder<>();
final ImmutableList.Builder<ItemStack> slabWood8WListBuilder = new ImmutableList.Builder<>();
final ImmutableList.Builder<ItemStack> slabWood7WListBuilder = new ImmutableList.Builder<>();
final ImmutableList.Builder<ItemStack> slabWood5WListBuilder = new ImmutableList.Builder<>();
final ImmutableList.Builder<ItemStack> slabWood4WListBuilder = new ImmutableList.Builder<>();
// Build a list of unique slabWood Items's Registry Names ("MOD_ID:ItemName")
for (ItemStack slabWood : OreDictionary.getOres(ORE_slabWood)) {
slabWoodRegistryNameListBuilder.add(GameRegistry.findUniqueIdentifierFor(slabWood.getItem()).toString());
}
// Build lists of unique slabWood ItemStacks of different size with Wildcard Meta from the RegistryNames list above
for (String slabName : slabWoodRegistryNameListBuilder.build()) {
slabWood8WListBuilder.add(makeItemStack(slabName, OreDictionary.WILDCARD_VALUE, 8, null));
slabWood7WListBuilder.add(makeItemStack(slabName, OreDictionary.WILDCARD_VALUE, 7, null));
slabWood5WListBuilder.add(makeItemStack(slabName, OreDictionary.WILDCARD_VALUE, 5, null));
slabWood4WListBuilder.add(makeItemStack(slabName, OreDictionary.WILDCARD_VALUE, 4, null));
}
slabWood8WList = slabWood8WListBuilder.build();
slabWood7WList = slabWood7WListBuilder.build();
slabWood5WList = slabWood5WListBuilder.build();
slabWood4WList = slabWood4WListBuilder.build();
final ImmutableList.Builder<ItemStack> drawerBasic1RegistryNameListBuilder = new ImmutableList.Builder<>();
final ImmutableList.Builder<String> drawerBasicRefs = new ImmutableList.Builder<>();
// Build a list of unique drawerBasic Items's Registry Names ("MOD_ID:ItemName")
for (ItemStack drawerBasicStack : OreDictionary.getOres(ORE_drawerBasic)) {
UniqueIdentifier drawerID = GameRegistry.findUniqueIdentifierFor(drawerBasicStack.getItem());
// Keeps only fullDrawer1 to limit the amount of distinct items
if (drawerID.name.matches("fullDrawers1.*"))
drawerBasicRefs.add(drawerID.toString());
}
// Build the list of unique drawerBasic ItemStacks with Wildcard Meta from the RegistryNames list above
for (String drawerName : drawerBasicRefs.build()) {
final ItemStack drawerStack = makeItemStack(drawerName, OreDictionary.WILDCARD_VALUE, 1, null);
// Be sure to only keep the ItemDrawers and not some other mod's drawerBasic1
if (drawerStack.getItem() instanceof ItemDrawers) {
drawerBasic1RegistryNameListBuilder.add(drawerStack);
}
}
drawerBasicW = drawerBasic1RegistryNameListBuilder.build();
}
private ModRecipes() {
throw new IllegalStateException("Utility class");
}
public static void init() {
// Drawer Recipes
// Drawer Full
fullDrawers1Recipes(); // Drawer Full 1x1
fullDrawers2Recipes(); // Drawer Full 1x2
fullDrawers4Recipes(); // Drawer Full 2x2
// Drawer Half
halfDrawers2Recipes(); // Drawer Half 1x2
halfDrawers4Recipes(); // Oak Drawer Half 2x2
// Trim Recipes
trimRecipes(); // Drawer trim
// Drawer Machines Recipes
compDrawersRecipes(); // Compacting Drawer
controllerRecipes(); // Parent Controller recipe
controllerSlaveRecipes(); // Child Controller recipe
framingTableRecipes(); // Framing Table recipe
// Upgrades recipes
upgradeTemplateRecipes(); // Upgrade Template
storageUpgradeRecipes(); // Iron, Gold, Obsidian, Diamond, Emerald Storage Upgrades
statusUpgradeRecipes(); // Status Upgrade I & II
redstoneUpgradeRecipes(); // Redstone, Max, Min Upgrades
voidUpgradeRecipes(); // Void Upgrade
lockUpgradeRecipes(); // Drawer key
shroudKeyUpgradeRecipes(); // Concealment Key
personalKeyUpgradeRecipes(); // Personal Key
// Packing Tape
packingTapeRecipes(); // Packing Tape
}
private static void fullDrawers1Recipes() {
if (!config.isBlockEnabled("fulldrawers1")) return;
// Oak Drawer Full 1x1
final int recipeOutput = config.getBlockRecipeOutput("fulldrawers1");
// Oak Drawer Full 1x1 Workbench recipe
final ItemStack fullDrawer1 = new ItemStack(ModBlocks.fullDrawers1, recipeOutput, 0);
GameRegistry.addRecipe(new ShapedOreRecipe(fullDrawer1, "sss", "scs", "sss", 's', ORE_slabWood, 'c', ORE_chestWood));
// Oak Drawer Full 1x1 Gregtech Assembler recipes
for (ItemStack slabWood8W : slabWood8WList)
RA.addAssemblerRecipe(new ItemStack[]{slabWood8W, chest1, integratedCircuit1}, NF, fullDrawer1, 200, 16);
// Framed Drawer Full 1x1
if (!config.cache.enableFramedDrawers) return;
// Framed Drawer Full 1x1 Workbench recipe
final ItemStack fullCustom1 = new ItemStack(ModBlocks.fullCustom1, recipeOutput, 0);
GameRegistry.addRecipe(new ShapedOreRecipe(fullCustom1, "bbb", "bcb", "bbb", 'b', carpentersBlock1, 'c', ORE_chestWood));
// Framed Drawer Full 1x1 Gregtech Assembler recipe
RA.addAssemblerRecipe(new ItemStack[]{carpentersBlock8, chest1, integratedCircuit1}, NF, fullCustom1, 200, 16);
}
private static void fullDrawers2Recipes() {
if (!config.isBlockEnabled("fulldrawers2")) return;
// Oak Drawer Full 1x2
final int recipeOutput = config.getBlockRecipeOutput("fulldrawers2");
// Oak Drawer Full 1x2 Workbench recipe
final ItemStack fullDrawers2 = new ItemStack(ModBlocks.fullDrawers2, recipeOutput, 0);
GameRegistry.addRecipe(new ShapedOreRecipe(fullDrawers2, "scs", "sss", "scs", 's', ORE_slabWood, 'c', ORE_chestWood));
// Oak Drawer Full 1x2 Gregtech Assembler recipes
for (ItemStack slabWood7W : slabWood7WList)
RA.addAssemblerRecipe(new ItemStack[]{slabWood7W, chest2, integratedCircuit2}, NF, fullDrawers2, 200, 16);
// Framed Drawer Full 1x2
if (!config.cache.enableFramedDrawers) return;
// Framed Drawer Full 1x2 Workbench recipe
final ItemStack fullCustom2 = new ItemStack(ModBlocks.fullCustom2, recipeOutput, 0);
GameRegistry.addRecipe(new ShapedOreRecipe(fullCustom2, "bcb", "bbb", "bcb", 'b', carpentersBlock1, 'c', ORE_chestWood));
// Framed Drawer Full 1x2 Gregtech Assembler recipe
RA.addAssemblerRecipe(new ItemStack[]{carpentersBlock7, chest2, integratedCircuit2}, NF, fullCustom2, 200, 16);
}
private static void fullDrawers4Recipes() {
if (!config.isBlockEnabled("fulldrawers4")) return;
// Oak Drawer Full 2x2
final int recipeOutput = config.getBlockRecipeOutput("fulldrawers4");
// Oak Drawer Full 2x2 Workbench recipe
final ItemStack fullDrawers4 = new ItemStack(ModBlocks.fullDrawers4, recipeOutput, 0);
GameRegistry.addRecipe(new ShapedOreRecipe(fullDrawers4, "csc", "sss", "csc", 's', ORE_slabWood, 'c', ORE_chestWood));
// Oak Drawer Full 2x2 Gregtech Assembler recipes
for (ItemStack slabWood5W : slabWood5WList)
RA.addAssemblerRecipe(new ItemStack[]{slabWood5W, chest4, integratedCircuit4}, NF, fullDrawers4, 200, 16);
// Framed Drawer Full 2x2
if (!config.cache.enableFramedDrawers) return;
// Framed Drawer Full 2x2 Workbench recipe
final ItemStack fullCustom4 = new ItemStack(ModBlocks.fullCustom4, recipeOutput, 0);
GameRegistry.addRecipe(new ShapedOreRecipe(fullCustom4, "cbc", "bbb", "cbc", 'b', carpentersBlock1, 'c', ORE_chestWood));
// Framed Drawer Full 2x2 Gregtech Assembler recipe
RA.addAssemblerRecipe(new ItemStack[]{carpentersBlock5, chest4, integratedCircuit4}, NF, fullCustom4, 200, 16);
}
private static void halfDrawers2Recipes() {
if (!config.isBlockEnabled("halfdrawers2")) return;
// Oak Drawer Half 1x2
final int recipeOutput = config.getBlockRecipeOutput("halfdrawers2");
// Oak Drawer Half 1x2 Workbench recipe
final ItemStack halfDrawers2 = new ItemStack(ModBlocks.halfDrawers2, recipeOutput, 0);
GameRegistry.addRecipe(new ShapedOreRecipe(halfDrawers2, "sss", "csc", "sss", 's', ORE_slabWood, 'c', ORE_chestWood));
// Oak Drawer Half 1x2 Gregtech Assembler recipes
for (ItemStack slabWood7W : slabWood7WList)
RA.addAssemblerRecipe(new ItemStack[]{slabWood7W, chest2, integratedCircuit12}, NF, halfDrawers2, 200, 16);
// Framed Drawer Half 1x2
if (!config.cache.enableFramedDrawers) return;
// Framed Drawer Half 1x2 Workbench recipe
final ItemStack halfCustom2 = new ItemStack(ModBlocks.halfCustom2, recipeOutput, 0);
GameRegistry.addRecipe(new ShapedOreRecipe(halfCustom2, "bbb", "cbc", "bbb", 'b', carpentersBlock1, 'c', ORE_chestWood));
// Framed Drawer Half 1x2 Gregtech Assembler recipe
RA.addAssemblerRecipe(new ItemStack[]{carpentersBlock7, chest2, integratedCircuit12}, NF, halfCustom2, 200, 16);
}
private static void halfDrawers4Recipes() {
if (!config.isBlockEnabled("halfdrawers4")) return;
// Oak Drawer Half 2x2
final int recipeOutput = config.getBlockRecipeOutput("halfdrawers4");
// Oak Drawer Half 2x2 Workbench recipe
final ItemStack halfDrawers4 = new ItemStack(ModBlocks.halfDrawers4, recipeOutput, 0);
GameRegistry.addRecipe(new ShapedOreRecipe(halfDrawers4, "csc", "scs", "csc", 's', ORE_slabWood, 'c', ORE_chestWood));
for (ItemStack slabWood4W : slabWood4WList)
RA.addAssemblerRecipe(new ItemStack[]{slabWood4W, chest5, integratedCircuit14}, NF, halfDrawers4, 200, 16);
// Framed Drawer Half 2x2
if (!config.cache.enableFramedDrawers) return;
// Framed Drawer Half 2x2 Workbench recipe
final ItemStack halfCustom4 = new ItemStack(ModBlocks.halfCustom4, recipeOutput, 0);
GameRegistry.addRecipe(new ShapedOreRecipe(halfCustom4, "cbc", "bcb", "cbc", 'b', carpentersBlock1, 'c', ORE_chestWood));
// Framed Drawer Half 2x2 Gregtech Assembler recipe
RA.addAssemblerRecipe(new ItemStack[]{carpentersBlock4, chest5, integratedCircuit14}, NF, halfCustom4, 200, 16);
}
private static void trimRecipes() {
if (!config.isBlockEnabled("trim")) return;
// Oak Trim
final int recipeOutput = config.getBlockRecipeOutput("trim");
// Oak Trim Workbench recipe
final ItemStack trim = new ItemStack(ModBlocks.trim, recipeOutput, 0);
GameRegistry.addRecipe(new ShapedOreRecipe(trim, "tst", "sss", "tst", 't', ORE_stickWood, 's', ORE_slabWood));
// Oak Trim Gregtech Assembler recipe
for (ItemStack slabWood5W : slabWood5WList)
RA.addAssemblerRecipe(new ItemStack[]{slabWood5W, stick4, integratedCircuit1}, NF, trim, 200, 16);
// Framed Trim
if (!config.cache.enableFramedDrawers) return;
// Framed Trim Workbench recipe
final ItemStack trimCustom = new ItemStack(ModBlocks.trimCustom, recipeOutput, 0);
GameRegistry.addRecipe(new ShapedOreRecipe(trimCustom, "tbt", "bbb", "tbt", 'b', carpentersBlock1, 't', ORE_stickWood));
// Framed Trim Gregtech Assembler recipe
RA.addAssemblerRecipe(new ItemStack[]{carpentersBlock5, stick4, integratedCircuit1}, NF, trimCustom, 200, 16);
}
private static void compDrawersRecipes() {
if (!config.isBlockEnabled("compdrawers")) return;
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.compDrawers, 1),
new String[]{
"sss",
"pdp",
"oio"},
's', "stoneConcrete",
'p', new ItemStack(Blocks.piston),
'd', ORE_drawerBasic,
'o', ORE_plateObsidian,
'i', "plateIron"));
}
private static void controllerRecipes() {
if (!config.isBlockEnabled("controller")) return;
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.controller),
new String[]{
"scs",
"gbg",
"odo"},
's', "plateStainlessSteel",
'c', "circuitGood",
'g', comparatorGate,
'b', ORE_drawerBasic,
'o', ORE_plateObsidian,
'd', "plateDiamond"));
}
private static void controllerSlaveRecipes() {
if (!config.isBlockEnabled("controllerSlave")) return;
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.controllerSlave), "scs", "gbg", "oeo",
's', "plateStainlessSteel",
'c', "circuitGood",
'g', comparatorGate,
'b', ORE_drawerBasic,
'o', ORE_plateObsidian,
'e', "plateEnderEye"));
}
private static void framingTableRecipes() {
if (!config.cache.enableFramedDrawers) return;
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.framingTable), "ttt", "fsf", "fdf",
't', ModBlocks.trim,
'f', "fenceWood",
's', ORE_stickWood,
'd', "craftingToolScrewdriver"));
}
private static void upgradeTemplateRecipes() {
if (!(config.cache.enableIndicatorUpgrades
|| config.cache.enableLockUpgrades
|| config.cache.enablePersonalUpgrades
|| config.cache.enableRedstoneUpgrades
|| config.cache.enableShroudUpgrades
|| config.cache.enableSortingUpgrades
|| config.cache.enableStorageUpgrades
|| config.cache.enableVoidUpgrades)) return;
for (ItemStack drawer : drawerBasicW)
RA.addAssemblerRecipe(new ItemStack[]{drawer, piston}, NF, upgradeTemplate, 1200, 16);
}
private static void storageUpgradeRecipes() {
if (!config.cache.enableStorageUpgrades) return;
// Upgarde Iron
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.upgrade, 1, 2),
new String[]{
"pup",
"upu",
"psp"},
'p', "plateIron",
's', "stickIron",
'u', ModItems.upgradeTemplate));
// Upgarde Gold
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.upgrade, 1, 3),
new String[]{
"pup",
"upu",
"psp"},
'p', "plateGold",
's', "stickGold",
'u', ModItems.upgradeTemplate));
// Upgarde Obsidian
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.upgrade, 1, 4),
new String[]{
"pup",
"upu",
"psp"},
'p', ORE_plateObsidian,
's', "stickObsidian",
'u', ModItems.upgradeTemplate));
// Upgarde Diamond
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.upgrade, 1, 5),
new String[]{
"pup",
"upu",
"psp"},
'p', "plateDiamond",
's', "stickDiamond",
'u', ModItems.upgradeTemplate));
// Upgarde Emerald
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.upgrade, 1, 6),
new String[]{
"pup",
"upu",
"psp"},
'p', "plateEmerald",
's', "stickEmerald",
'u', ModItems.upgradeTemplate));
}
private static void statusUpgradeRecipes() {
if (!config.cache.enableIndicatorUpgrades) return;
// Status Upgrade I recipe
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.upgradeStatus, 1, 1), "twt", "wuw", "rwr",
't', new ItemStack(Blocks.redstone_torch),
'w', redAlloyWire,
'u', ModItems.upgradeTemplate,
'r', ORE_plateRedstone));
// Status Upgrade II recipe
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.upgradeStatus, 1, 2), "gwg", "wuw", "rwr",
'g', comparatorGate,
'w', redAlloyWire,
'u', ModItems.upgradeTemplate,
'r', ORE_plateRedstone));
}
private static void redstoneUpgradeRecipes() {
if (!config.cache.enableRedstoneUpgrades) return;
// Redstone Upgrade recipe
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.upgradeRedstone, 1, 0), "rsr", "sus", "rwr",
'r', ORE_plateRedstone,
's', ORE_stickWood,
'u', ModItems.upgradeTemplate,
'w', redAlloyWire));
// Redstone Max Upgrade recipe
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.upgradeRedstone, 1, 1), "rrr", "sus", "sws",
'r', ORE_plateRedstone,
's', ORE_stickWood,
'u', ModItems.upgradeTemplate,
'w', redAlloyWire));
// Redstone Min recipe
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.upgradeRedstone, 1, 2), "sws", "sus", "rrr",
'r', ORE_plateRedstone,
's', ORE_stickWood,
'u', ModItems.upgradeTemplate,
'w', redAlloyWire));
}
private static void voidUpgradeRecipes() {
if (!config.cache.enableVoidUpgrades) return;
// Upgrade Void recipe
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.upgradeVoid), "sws", "ouo", "sws",
's', ORE_stickWood,
'w', redAlloyWire,
'o', "plateDenseObsidian",
'u', ModItems.upgradeTemplate));
}
private static void lockUpgradeRecipes() {
if (!config.cache.enableLockUpgrades) return;
// Drawer Key recipe
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.upgradeLock), " bs", "uso", "gt ",
'b', "boltGold",
's', "plateSteel",
'u', ModItems.upgradeTemplate,
'o', "stickGold",
'g', "plateGold",
't', "craftingToolSaw"));
}
private static void shroudKeyUpgradeRecipes() {
if (!config.cache.enableShroudUpgrades) return;
// Concealment Key
RA.addAssemblerRecipe(new ItemStack[]{upgradeLock, new ItemStack(Items.ender_eye)}, NF, new ItemStack(ModItems.shroudKey), 100, 30);
}
private static void personalKeyUpgradeRecipes() {
if (!config.cache.enablePersonalUpgrades) return;
// Storage Personal Key
RA.addAssemblerRecipe(new ItemStack[]{upgradeLock, new ItemStack(Items.name_tag)}, NF, new ItemStack(ModItems.personalKey), 100, 30);
}
private static void packingTapeRecipes() {
if (!config.cache.enableTape) return;
// Packing Tape
RA.addAssemblerRecipe(new ItemStack[]{
new ItemStack(Items.paper),
GT_Utility.getIntegratedCircuit(1)},
new FluidStack((FluidRegistry.getFluid("refinedglue") != null) ?
FluidRegistry.getFluid("refinedglue") :
FluidRegistry.getFluid("glue"), // Fallback glue
144),
new ItemStack(ModItems.tape),
200, 30);
}
/* Same as cpw.mods.fml.common.registry.GameRegistry.makeItemStack
* But with working stackSize
*/
private static ItemStack makeItemStack(String itemName, int meta, int stackSize, String nbtString) {
final ItemStack rStack = GameRegistry.makeItemStack(itemName, meta, stackSize, nbtString);
rStack.stackSize = stackSize;
return rStack;
}
}