From cd0aec123df8477b0948956ff57949c175082331 Mon Sep 17 00:00:00 2001 From: thatsIch Date: Sun, 21 Jun 2015 23:57:36 +0200 Subject: [PATCH] Exports the ore-dicts out of the recipe files This will not alter the handler, because rewriting the parser for it being too static is not feasible at this point --- build.gradle | 1 + src/main/java/appeng/core/RecipeLoader.java | 7 +++++- .../java/appeng/recipes/RecipeHandler.java | 10 +++++--- .../appliedenergistics2/oredict/ae2.oredict | 17 ++++++++++++++ .../oredict/vanilla.oredict | 11 +++++++++ .../appliedenergistics2/recipes/index.recipe | 23 ------------------- 6 files changed, 42 insertions(+), 27 deletions(-) create mode 100644 src/main/resources/assets/appliedenergistics2/oredict/ae2.oredict create mode 100644 src/main/resources/assets/appliedenergistics2/oredict/vanilla.oredict diff --git a/build.gradle b/build.gradle index 4bcca0da..c800e027 100644 --- a/build.gradle +++ b/build.gradle @@ -100,6 +100,7 @@ sourceSets { srcDir "src/main/resources/" include "assets/appliedenergistics2/recipes/*.recipe", "assets/appliedenergistics2/recipes/README.html", + "assets/appliedenergistics2/oredict/*.oredict", "assets/appliedenergistics2/lang/*.lang", "assets/appliedenergistics2/textures/blocks/*", "assets/appliedenergistics2/textures/guis/*", diff --git a/src/main/java/appeng/core/RecipeLoader.java b/src/main/java/appeng/core/RecipeLoader.java index cfed19b7..231b7fa6 100644 --- a/src/main/java/appeng/core/RecipeLoader.java +++ b/src/main/java/appeng/core/RecipeLoader.java @@ -29,6 +29,7 @@ import com.google.common.base.Preconditions; import org.apache.commons.io.FileUtils; import appeng.api.recipes.IRecipeHandler; +import appeng.api.recipes.IRecipeLoader; import appeng.recipes.loader.ConfigLoader; import appeng.recipes.loader.JarLoader; import appeng.recipes.loader.RecipeResourceCopier; @@ -68,7 +69,11 @@ public class RecipeLoader implements Runnable final File readmeGenDest = new File( generatedRecipesDir, "README.html" ); final File readmeUserDest = new File( userRecipesDir, "README.html" ); - // generates generated and user recipes dir + final IRecipeLoader oreDictLoader = new JarLoader("/assets/appliedenergistics2/oredict/"); + this.handler.parseRecipes(oreDictLoader, "vanilla.oredict" ); + this.handler.parseRecipes(oreDictLoader, "ae2.oredict" ); + + // generates generated and user recipes dir // will clean the generated every time to keep it up to date // copies over the recipes in the jar over to the generated folder // copies over the readmes diff --git a/src/main/java/appeng/recipes/RecipeHandler.java b/src/main/java/appeng/recipes/RecipeHandler.java index 8e5b6dd6..3d5b4dd0 100644 --- a/src/main/java/appeng/recipes/RecipeHandler.java +++ b/src/main/java/appeng/recipes/RecipeHandler.java @@ -73,16 +73,20 @@ import appeng.recipes.handlers.OreRegistration; */ public class RecipeHandler implements IRecipeHandler { - - public final List tokens = new LinkedList(); final RecipeData data; + private final List tokens = new LinkedList(); public RecipeHandler() { this.data = new RecipeData(); } - RecipeHandler( RecipeHandler parent ) + /** + * Called recursively from parent + * + * @param parent owner of this handler + */ + private RecipeHandler( RecipeHandler parent ) { this.data = parent.data; } diff --git a/src/main/resources/assets/appliedenergistics2/oredict/ae2.oredict b/src/main/resources/assets/appliedenergistics2/oredict/ae2.oredict new file mode 100644 index 00000000..41d72f4a --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/oredict/ae2.oredict @@ -0,0 +1,17 @@ +# AE2 Ore Dictionary +# Materials for processing in other machines +ore=ae2:ItemMaterial.CertusQuartzCrystal -> crystalCertusQuartz +ore=ae2:ItemMaterial.FluixCrystal -> crystalFluix +ore=ae2:ItemMaterial.PurifiedFluixCrystal -> crystalPureFluix +ore=ae2:ItemMaterial.NetherQuartzDust -> dustNetherQuartz +ore=ae2:ItemMaterial.CertusQuartzDust -> dustCertusQuartz +ore=ae2:ItemMaterial.FluixDust -> dustFluix + +# Ores of AE2 +ore=ae2:tile.OreQuartz -> oreCertusQuartz +ore=ae2:tile.OreQuartzCharged -> oreCertusQuartz + +# Parts to be used +ore= ae2:ItemPart.SemiDarkMonitor -> itemIlluminatedPanel +ore= ae2:ItemPart.Monitor -> itemIlluminatedPanel +ore= ae2:ItemPart.DarkMonitor -> itemIlluminatedPanel diff --git a/src/main/resources/assets/appliedenergistics2/oredict/vanilla.oredict b/src/main/resources/assets/appliedenergistics2/oredict/vanilla.oredict new file mode 100644 index 00000000..0b396528 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/oredict/vanilla.oredict @@ -0,0 +1,11 @@ +# Forge Ore Dictionary +# logWood, slabWood, stairWood, treeSapling, treeLeaves, +# oreGold, oreIron, oreLapis, oreDiamond, oreRedstone, oreEmerald, oreQuartz, oreCoal, +# stone, cobblestone, record, stickWood, plankWood, +# dyeBlack, dyeRed, dyeGreen, dyeBrown, dyeBlue, dyePurple, dyeCyan, dyeLightGray, dyeGray, dyePink, dyeLime, dyeYellow, dyeLightBlue, dyeMagenta, dyeOrange, dyeWhite + +# Minecraft Ore Dict Entries +# Renamed for less clashing +ore=mc:quartz -> crystalNetherQuartz +ore=mc:wool:* -> blockWool +ore=mc:stained_hardened_clay:* -> blockStainedHardenedClay diff --git a/src/main/resources/assets/appliedenergistics2/recipes/index.recipe b/src/main/resources/assets/appliedenergistics2/recipes/index.recipe index facef180..dcc4e038 100644 --- a/src/main/resources/assets/appliedenergistics2/recipes/index.recipe +++ b/src/main/resources/assets/appliedenergistics2/recipes/index.recipe @@ -2,25 +2,6 @@ alias=mc -> minecraft alias=ae2 -> appliedenergistics2 -# Forge Ore Dictionary -# logWood, slabWood, stairWood, treeSapling, treeLeaves, -# oreGold, oreIron, oreLapis, oreDiamond, oreRedstone, oreEmerald, oreQuartz, oreCoal, -# stone, cobblestone, record, stickWood, plankWood, -# dyeBlack, dyeRed, dyeGreen, dyeBrown, dyeBlue, dyePurple, dyeCyan, dyeLightGray, dyeGray, dyePink, dyeLime, dyeYellow, dyeLightBlue, dyeMagenta, dyeOrange, dyeWhite - -# AE2 Ore Dictionary -ore=ae2:ItemMaterial.CertusQuartzCrystal -> crystalCertusQuartz -ore=ae2:ItemMaterial.FluixCrystal -> crystalFluix -ore=ae2:ItemMaterial.PurifiedFluixCrystal -> crystalPureFluix -ore=mc:quartz -> crystalNetherQuartz -ore=mc:wool:* -> blockWool -ore=mc:stained_hardened_clay:* -> blockStainedHardenedClay -ore=ae2:ItemMaterial.NetherQuartzDust -> dustNetherQuartz -ore=ae2:ItemMaterial.CertusQuartzDust -> dustCertusQuartz -ore=ae2:ItemMaterial.FluixDust -> dustFluix -ore=ae2:tile.OreQuartz -> oreCertusQuartz -ore=ae2:tile.OreQuartzCharged -> oreCertusQuartz - group= mc:iron_ingot oredictionary:ingotCopper oredictionary:ingotTin oredictionary:ingotSilver oredictionary:ingotLead oredictionary:ingotBronze oredictionary:ingotBrass oredictionary:ingotNickel oredictionary:ingotInvar oredictionary:ingotAluminium -> metalIngots group= oredictionary:dustEnder oredictionary:dustEnderPearl -> dustEnder @@ -43,10 +24,6 @@ exceptions=false # Error on Missing Items ( default is no because AE2 allows you to enable/disable items without modifying recipes. ) erroronmissing=true -ore= ae2:ItemPart.SemiDarkMonitor -> itemIlluminatedPanel -ore= ae2:ItemPart.Monitor -> itemIlluminatedPanel -ore= ae2:ItemPart.DarkMonitor -> itemIlluminatedPanel - group= oredictionary:itemIlluminatedPanel -> monitor group= ae2:BlockInterface ae2:ItemPart.Interface -> interface