public static void applyObjectTags() {
    ObjectTags tags =
        new ObjectTags().add(EnumTag.LIFE, 1).add(EnumTag.EARTH, 2).add(EnumTag.CRYSTAL, 1);
    ThaumcraftApi.registerObjectTag(PinkGum1.blockID, -1, tags);

    tags = new ObjectTags().add(EnumTag.LIFE, 1).add(EnumTag.ROCK, 2).add(EnumTag.CRYSTAL, 1);
    ThaumcraftApi.registerObjectTag(BlueGum1.blockID, -1, tags);
  }
Пример #2
0
  private void addResearchAndRecipe(
      ResearchItem research,
      int[] meta,
      AspectList aspects,
      IRecipe[] recipes,
      ResearchPage... pages) {
    ThaumcraftApi.registerObjectTag(research.icon_item, meta, aspects);
    /*
    ThaumcraftApi.registerObjectTag(new ItemStack(this.thaumicAnalyzer), new int[] {
    				0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
    		}, new AspectList().
    				add(Aspect.MIND, 4).
    				add(Aspect.METAL, 2).
    				add(Aspect.MECHANISM, 10).
    				add(Aspect.MAGIC, 7)
    );
    */

    List<ResearchPage> allPages = new ArrayList<ResearchPage>(Arrays.asList(pages));
    for (IRecipe recipe : recipes) {
      GameRegistry.addRecipe(recipe);
      allPages.add(new ResearchPage(recipe));
    }
    research.tags.add(aspects);
    research.setPages(allPages.toArray(new ResearchPage[allPages.size()])).registerResearchItem();
  }
Пример #3
0
 public static void addArcaneRecipes() {
   ConfigResearch.recipes.put(
       "Gardenomicon",
       ThaumcraftApi.addShapelessArcaneCraftingRecipe(
           "Gardenomicon",
           new ItemStack(BotanyItems.gardenomicon, 1, 0),
           new AspectList().add(Aspect.WATER, 5),
           new Object[] {Items.book, BotanyItems.inkBottle}));
 }
Пример #4
0
  public static void addAspects(ItemStack is, AspectList aspects) {
    AspectList has = ThaumcraftApi.objectTags.get(Arrays.asList(is.getItem(), is.getItemDamage()));

    if (has != null) {
      for (Aspect as : has.aspects.keySet()) {
        aspects.merge(as, has.getAmount(as));
      }
    }
    clearNullAspects(aspects);
    ThaumcraftApi.registerObjectTag(is, new int[] {is.getItemDamage()}, aspects);
    DragonAPICore.log("Registering " + is + " aspects " + aspectsToString(aspects));
  }
Пример #5
0
  /** Contains a helper function to avoid overwriting existing aspects. */
  public static void addAspects(ItemStack is, Object... aspects) {
    if (aspects.length % 2 != 0) {
      DragonAPICore.logError(
          "Could not add aspects to " + is + ": You must specify a level for every aspect!");
      ReikaJavaLibrary.dumpStack();
      return;
    }
    AspectList has = ThaumcraftApi.objectTags.get(Arrays.asList(is.getItem(), is.getItemDamage()));
    AspectList ot = getAspectList(aspects);

    if (has != null) {
      for (Aspect as : has.aspects.keySet()) {
        ot.merge(as, has.getAmount(as));
      }
    }
    clearNullAspects(ot);
    ThaumcraftApi.registerObjectTag(is, ot);
    DragonAPICore.log("Registering " + is + " aspects " + aspectsToString(ot));
  }
Пример #6
0
  public static void addRecipes() {
    int i = -2;
    String ref =
        FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT
            ? ChromaDescriptions.getParentPage() + "thaum.xml"
            : "";
    for (TieredOres t : items.keySet()) {
      WandType wt = items.get(t);
      AspectList al = new AspectList();
      int n = t == TieredOres.FOCAL ? 2 : 1;
      al.add(Aspect.ORDER, 20 * n);
      Aspect a = wt.aspects.get(0);
      al.add(a, 50 * n);
      Object[] recipe = {"AAA", "A A", 'A', wt.raw};
      ShapedArcaneRecipe ir = ThaumcraftApi.addArcaneCraftingRecipe("", wt.item, al, recipe);
      String id = "CAP_TIEREDCAP_" + t.name();
      String desc = "Novel caps";

      MathExpression cost =
          new MathExpression() {
            @Override
            public double evaluate(double arg) throws ArithmeticException {
              return arg / 5D;
            }

            @Override
            public double getBaseValue() {
              return 0;
            }

            @Override
            public String toString() {
              return "/5";
            }
          };

      ReikaThaumHelper.addArcaneRecipeBookEntryViaXML(
          id, desc, "chromaticraft", ir, cost, 2, i, ChromatiCraft.class, ref);
      i++;
    }
  }
  public static void add() {

    /** Infusion Recipes * */
    thaumiumDrill =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Thaumium Drill",
            new ItemStack(ItemRegistry.thaumiumDrill),
            5,
            CraftingAspects.thaumiumDrillCrafting,
            new ItemStack(
                IC2Items.getItem("diamondDrill").getItem(), 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              new ItemStack(Items.diamond),
              new ItemStack(Items.diamond),
              new ItemStack(ItemRegistry.thaumiumPlate),
              new ItemStack(ItemRegistry.thaumiumPlate),
              new ItemStack(ItemRegistry.thaumiumPlate),
              IC2Items.getItem("denseplateiron")
            });

    thaumiumChainsaw =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Thaumium Chainsaw",
            new ItemStack(ItemRegistry.thaumiumChainsaw),
            5,
            CraftingAspects.thaumiumChainsawCrafting,
            new ItemStack(ItemRegistry.diamondChainsaw, 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              new ItemStack(Items.diamond),
              new ItemStack(Items.diamond),
              new ItemStack(ItemRegistry.thaumiumPlate),
              new ItemStack(ItemRegistry.thaumiumPlate),
              new ItemStack(ItemRegistry.thaumiumPlate),
              IC2Items.getItem("denseplateiron")
            });

    thaumicQuantumHelmet =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Quantum Goggles of Revealing",
            new ItemStack(ItemRegistry.quantumThaumicHelmet),
            6,
            CraftingAspects.thaumicQuantumHelmetCrafting,
            new ItemStack(ItemRegistry.nanoThaumicHelmet, 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              new ItemStack(Items.diamond),
              new ItemStack(Items.milk_bucket),
              new ItemStack(
                  IC2Items.getItem("quantumHelmet").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              new ItemStack(ItemRegistry.thaumiumPlate),
              new ItemStack(ItemRegistry.thaumiumPlate),
              IC2Items.getItem("iridiumPlate"),
              IC2Items.getItem("advancedCircuit")
            });

    thaumicNanoHelmet =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Nanosuit Goggles of Revealing",
            new ItemStack(ItemRegistry.nanoThaumicHelmet),
            5,
            CraftingAspects.thaumicNanoHelmetCrafting,
            new ItemStack(ItemRegistry.electricGoggles, 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              new ItemStack(Items.diamond),
              new ItemStack(Items.gold_ingot),
              new ItemStack(
                  IC2Items.getItem("nanoHelmet").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              new ItemStack(ItemRegistry.thaumiumPlate),
              new ItemStack(ItemRegistry.thaumiumPlate),
              IC2Items.getItem("carbonPlate"),
              IC2Items.getItem("electronicCircuit")
            });

    thaumiumOmnitool =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Thaumium Omnitool",
            new ItemStack(ItemRegistry.thaumiumOmnitool),
            6,
            CraftingAspects.thaumiumOmnitoolCrafting,
            new ItemStack(ItemRegistry.thaumiumChainsaw, 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              new ItemStack(ItemRegistry.thaumiumDrill, 1, OreDictionary.WILDCARD_VALUE),
              new ItemStack(ItemRegistry.thaumiumPlate),
              new ItemStack(ItemRegistry.thaumiumPlate),
              new ItemStack(ItemRegistry.thaumiumPlate),
              IC2Items.getItem("carbonPlate"),
              IC2Items.getItem("plateobsidian")
            });

    diamondOmnitoolToThaumium =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Thaumium Omnitool",
            new ItemStack(ItemRegistry.thaumiumOmnitool),
            6,
            CraftingAspects.thaumiumOmnitoolCrafting,
            new ItemStack(ItemRegistry.diamondOmnitool, 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              new ItemStack(Blocks.diamond_block),
              new ItemStack(ConfigBlocks.blockMetalDevice, 1, 9),
              new ItemStack(ConfigBlocks.blockMetalDevice, 1, 9),
              new ItemStack(
                  IC2Items.getItem("energyCrystal").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              IC2Items.getItem("carbonPlate"),
              IC2Items.getItem("advancedCircuit")
            });

    explosionFocus =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Explosion Focus",
            new ItemStack(ItemRegistry.explosionFocus),
            6,
            CraftingAspects.laserFocusCrafting,
            new ItemStack(ConfigItems.itemFocusHellbat, 1),
            new ItemStack[] {
              new ItemStack(
                  IC2Items.getItem("miningLaser").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              new ItemStack(Items.arrow),
              new ItemStack(Items.gunpowder),
              new ItemStack(Items.firework_charge),
              new ItemStack(ConfigItems.itemResource, 1, 1),
              new ItemStack(ConfigItems.itemWispEssence, 1)
            });

    shieldFocus =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Shield Focus",
            new ItemStack(ItemRegistry.shieldFocus),
            4,
            CraftingAspects.shieldFocusCrafting,
            new ItemStack(ConfigItems.itemFocusPortableHole, 1),
            new ItemStack[] {
              IC2Items.getItem("reinforcedStone"),
              IC2Items.getItem("reinforcedGlass"),
              IC2Items.getItem("reinforcedStone"),
              IC2Items.getItem("reinforcedGlass"),
              new ItemStack(Blocks.soul_sand),
              new ItemStack(Blocks.obsidian),
              new ItemStack(Blocks.obsidian)
            });

    potentiaGenerator =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Potentia Generator",
            new ItemStack(BlockRegistry.essentiaGens, 1, 0),
            6,
            CraftingAspects.potentiaGeneratorCrafting,
            IC2Items.getItem("semifluidGenerator"),
            new ItemStack[] {
              new ItemStack(Items.diamond),
              new ItemStack(ConfigItems.itemFocusTrade),
              new ItemStack(Blocks.hopper),
              new ItemStack(ConfigBlocks.blockJar),
              IC2Items.getItem("mvTransformer"),
              IC2Items.getItem("advancedMachine"),
              IC2Items.getItem("orewashingplant"),
              IC2Items.getItem("scrap")
            });

    streamChainsaw =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Chainsaw of the Stream",
            new ItemStack(ItemRegistry.streamChainsaw),
            6,
            CraftingAspects.streamChaisnawCrafting,
            new ItemStack(ItemRegistry.thaumiumChainsaw, 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              new ItemStack(Items.water_bucket),
              new ItemStack(ConfigItems.itemAxeElemental),
              new ItemStack(ConfigBlocks.blockMagicalLog),
              new ItemStack(
                  IC2Items.getItem("lapotronCrystal").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              IC2Items.getItem("compressedPlantBall"),
              IC2Items.getItem("iridiumPlate"),
              IC2Items.getItem("overclockerUpgrade")
            });

    rockbreakerDrill =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Drill of the Rockbreaker",
            new ItemStack(ItemRegistry.rockbreakerDrill),
            6,
            CraftingAspects.rockbreakerDrillCrafting,
            new ItemStack(ItemRegistry.thaumiumDrill, 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              new ItemStack(Items.flint_and_steel),
              new ItemStack(Items.fire_charge),
              new ItemStack(ConfigItems.itemPickElemental),
              new ItemStack(ConfigItems.itemShovelElemental),
              new ItemStack(
                  IC2Items.getItem("lapotronCrystal").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              IC2Items.getItem("reinforcedStone"),
              IC2Items.getItem("iridiumPlate"),
              IC2Items.getItem("overclockerUpgrade")
            });

    thorHammer =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Mjolnir",
            new ItemStack(ItemRegistry.thorHammer),
            7,
            CraftingAspects.thorHammerCrafting,
            new ItemStack(ItemRegistry.taintedThorHammer, 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              new ItemStack(ItemRegistry.lightningSummoner),
              new ItemStack(ItemRegistry.lightningSummoner),
              new ItemStack(ConfigItems.itemSwordElemental),
              new ItemStack(ConfigItems.itemResource, 1, 1),
              new ItemStack(ConfigItems.itemFocusShock),
              IC2Items.getItem("rubber")
            });

    superchargedThorHammer =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Supercharged Mjolnir",
            new ItemStack(ItemRegistry.electricThorHammer),
            10,
            CraftingAspects.superchargedThorHammerCrafting,
            new ItemStack(ItemRegistry.thorHammer, 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              new ItemStack(ItemRegistry.lightningSummoner),
              new ItemStack(ItemRegistry.lightningSummoner),
              new ItemStack(Blocks.web),
              new ItemStack(ConfigItems.itemFocusHellbat),
              new ItemStack(ConfigItems.itemSwordElemental),
              new ItemStack(
                  IC2Items.getItem("lapotronCrystal").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              IC2Items.getItem("iridiumPlate"),
              IC2Items.getItem("iridiumPlate"),
              new ItemStack(
                  IC2Items.getItem("nanoSaber").getItem(), 1, OreDictionary.WILDCARD_VALUE)
            });

    wandRecharger =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Industrial Wand Charging Station",
            new ItemStack(BlockRegistry.emtMachines, 1, 0),
            6,
            CraftingAspects.wandCharger,
            new ItemStack(ConfigBlocks.blockStoneDevice, 1, 5),
            new ItemStack[] {
              IC2Items.getItem("replicator"),
              IC2Items.getItem("iridiumPlate"),
              new ItemStack(Blocks.diamond_block),
              new ItemStack(ConfigItems.itemShard, 1, 5),
              new ItemStack(ConfigBlocks.blockJar)
            });

    solarHelmetRevealing =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Solar Helmet of Revealing",
            new ItemStack(ItemRegistry.solarHelmetRevealing),
            5,
            CraftingAspects.solarHelmetRevealing,
            new ItemStack(ItemRegistry.quantumThaumicHelmet, 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              new ItemStack(BlockRegistry.emtSolars, 1, 1),
              IC2Items.getItem("glassFiberCableItems"),
              new ItemStack(
                  IC2Items.getItem("lapotronCrystal").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              new ItemStack(ConfigItems.itemShard, 1, 4)
            });

    electricBootsTravel =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Electric Boots of the Traveller",
            new ItemStack(ItemRegistry.electricBootsTraveller),
            2,
            CraftingAspects.electricBootsTravel,
            new ItemStack(ConfigItems.itemBootsTraveller),
            new ItemStack[] {
              new ItemStack(Items.diamond),
              IC2Items.getItem("elemotor"),
              IC2Items.getItem("coil"),
              IC2Items.getItem("hazmatBoots"),
              new ItemStack(
                  IC2Items.getItem("advBattery").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              new ItemStack(ConfigItems.itemWispEssence)
            });

    nanoBootsTravel =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Nano Boots of the Traveller",
            new ItemStack(ItemRegistry.nanoBootsTraveller),
            2,
            CraftingAspects.nanoBootsTravel,
            new ItemStack(ItemRegistry.electricBootsTraveller, 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              new ItemStack(Items.diamond),
              new ItemStack(
                  IC2Items.getItem("nanoBoots").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              new ItemStack(
                  IC2Items.getItem("energyCrystal").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              new ItemStack(ConfigItems.itemWispEssence),
              new ItemStack(ConfigItems.itemWispEssence)
            });

    quantumBootsTravel =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Quantum Boots of the Traveller",
            new ItemStack(ItemRegistry.quantumBootsTraveller),
            2,
            CraftingAspects.quantumBootsTravel,
            new ItemStack(ItemRegistry.nanoBootsTraveller, 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              new ItemStack(Blocks.diamond_block),
              new ItemStack(
                  IC2Items.getItem("quantumBoots").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              new ItemStack(
                  IC2Items.getItem("lapotronCrystal").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              IC2Items.getItem("iridiumPlate"),
              new ItemStack(ConfigItems.itemWispEssence),
              new ItemStack(ConfigItems.itemWispEssence),
              new ItemStack(ConfigItems.itemWispEssence)
            });

    etheralProcessor =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Etheral Processor",
            new ItemStack(BlockRegistry.emtMachines, 1, 1),
            3,
            CraftingAspects.etherealProcessor,
            IC2Items.getItem("macerator"),
            new ItemStack[] {
              IC2Items.getItem("electroFurnace"),
              new ItemStack(ConfigBlocks.blockMetalDevice, 1, 9),
              new ItemStack(Blocks.end_stone),
              new ItemStack(Blocks.end_stone),
              new ItemStack(Blocks.iron_block),
              new ItemStack(Blocks.iron_block),
              new ItemStack(ItemRegistry.thaumiumPlate),
              new ItemStack(ItemRegistry.thaumiumPlate)
            });

    tripleCompressedSolar =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Compressed Solars",
            new ItemStack(BlockRegistry.emtSolars, 1, 2),
            2,
            CraftingAspects.compressedSolars,
            new ItemStack(BlockRegistry.emtSolars, 1, 1),
            new ItemStack[] {
              new ItemStack(BlockRegistry.emtSolars, 1, 1),
              new ItemStack(BlockRegistry.emtSolars, 1, 1),
              new ItemStack(BlockRegistry.emtSolars, 1, 1),
              new ItemStack(BlockRegistry.emtSolars, 1, 1),
              new ItemStack(BlockRegistry.emtSolars, 1, 1),
              new ItemStack(BlockRegistry.emtSolars, 1, 1),
              new ItemStack(BlockRegistry.emtSolars, 1, 1),
              new ItemStack(BlockRegistry.emtSolars, 1, 1)
            });

    electricHoeGrowth =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Electric Hoe of Growth",
            new ItemStack(ItemRegistry.electricHoeGrowth),
            4,
            CraftingAspects.electricHoeGrowth,
            new ItemStack(ConfigItems.itemHoeElemental),
            new ItemStack[] {
              new ItemStack(
                  IC2Items.getItem("lapotronCrystal").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              new ItemStack(
                  IC2Items.getItem("electricHoe").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              new ItemStack(Items.dye, 1, 15),
              IC2Items.getItem("elemotor"),
              IC2Items.getItem("coil"),
              new ItemStack(Blocks.sapling, 1, OreDictionary.WILDCARD_VALUE)
            });

    chargeFocus =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Wand Focus: Charging",
            new ItemStack(ItemRegistry.chargeFocus),
            4,
            CraftingAspects.chargeFocus,
            new ItemStack(
                IC2Items.getItem("advBattery").getItem(), 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack[] {
              IC2Items.getItem("generator"),
              IC2Items.getItem("batBox"),
              new ItemStack(ItemRegistry.thaumiumPlate),
              new ItemStack(ItemRegistry.thaumiumPlate),
              new ItemStack(ConfigItems.itemShard, 1, OreDictionary.WILDCARD_VALUE),
              new ItemStack(ConfigItems.itemShard, 1, OreDictionary.WILDCARD_VALUE)
            });

    wandChargeFocus =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Wand Focus: Wand Charging",
            new ItemStack(ItemRegistry.wandChargeFocus),
            5,
            CraftingAspects.wandChargeFocus,
            new ItemStack(BlockRegistry.emtMachines, 1, 0),
            new ItemStack[] {
              new ItemStack(ItemRegistry.chargeFocus),
              new ItemStack(
                  IC2Items.getItem("energyPack").getItem(), 1, OreDictionary.WILDCARD_VALUE),
              IC2Items.getItem("iridiumPlate"),
              IC2Items.getItem("iridiumPlate")
            });

    inventoryChargingRing =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Inventory Charging Ring",
            new ItemStack(ItemRegistry.emtBauble, 1, 1),
            6,
            CraftingAspects.inventoryChargingRing,
            new ItemStack(ConfigItems.itemBaubleBlanks, 1, 1),
            new ItemStack[] {
              new ItemStack(ItemRegistry.thaumiumDrill, 1, OreDictionary.WILDCARD_VALUE),
              IC2Items.getItem("generator"),
              IC2Items.getItem("geothermalGenerator"),
              IC2Items.getItem("waterMill"),
              IC2Items.getItem("solarPanel"),
              IC2Items.getItem("windMill"),
              IC2Items.getItem("nuclearReactor")
            });

    armorChargingRing =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "Armor Charging Ring",
            new ItemStack(ItemRegistry.emtBauble, 1, 0),
            6,
            CraftingAspects.armorChargingRing,
            new ItemStack(ConfigItems.itemBaubleBlanks, 1, 1),
            new ItemStack[] {
              new ItemStack(ItemRegistry.electricBootsTraveller, 1, OreDictionary.WILDCARD_VALUE),
              IC2Items.getItem("generator"),
              IC2Items.getItem("geothermalGenerator"),
              IC2Items.getItem("waterMill"),
              IC2Items.getItem("solarPanel"),
              IC2Items.getItem("windMill"),
              IC2Items.getItem("nuclearReactor")
            });

    /** Arcane Worktable Recipes * */
    diamondOmnitool =
        ThaumcraftApi.addShapelessArcaneCraftingRecipe(
            "Diamond Omnitool",
            new ItemStack(ItemRegistry.diamondOmnitool),
            CraftingAspects.diamondOmnitoolCrafting,
            new ItemStack(ItemRegistry.diamondChainsaw, 1, OreDictionary.WILDCARD_VALUE),
            new ItemStack(
                IC2Items.getItem("diamondDrill").getItem(), 1, OreDictionary.WILDCARD_VALUE));

    ironOmnitoolToDiamond =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "Diamond Omnitool",
            new ItemStack(ItemRegistry.diamondOmnitool),
            CraftingAspects.diamondOmnitoolCrafting,
            "XAX",
            "XBX",
            "XAX",
            'X',
            new ItemStack(Items.diamond),
            'A',
            IC2Items.getItem("advancedCircuit"),
            'B',
            new ItemStack(ItemRegistry.ironOmnitool, 1, OreDictionary.WILDCARD_VALUE));

    christmasFocus =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "Kris-tmas Focus",
            new ItemStack(ItemRegistry.christmasFocus),
            CraftingAspects.christmasFocusCrafting,
            "XYX",
            "YZY",
            "XYX",
            'X',
            new ItemStack(Blocks.snow),
            'Y',
            new ItemStack(Blocks.pumpkin),
            'Z',
            new ItemStack(ConfigItems.itemFocusFrost));

    electricGoggles =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "Electric Goggles",
            new ItemStack(ItemRegistry.electricGoggles),
            CraftingAspects.electricGogglesCrafting,
            " Y ",
            "AZA",
            "BXB",
            'Z',
            new ItemStack(ConfigItems.itemGoggles),
            'X',
            IC2Items.getItem("electronicCircuit"),
            'Y',
            new ItemStack(Items.diamond_helmet),
            'A',
            new ItemStack(
                IC2Items.getItem("chargedReBattery").getItem(), 1, OreDictionary.WILDCARD_VALUE),
            'B',
            Items.repeater);

    shieldBlock =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "Shield Blocks",
            new ItemStack(BlockRegistry.shield, 8),
            CraftingAspects.shieldBlockCrafting,
            "XYX",
            "X X",
            "XYX",
            'X',
            new ItemStack(Blocks.glass),
            'Y',
            new ItemStack(Blocks.obsidian));

    tinyUranium =
        ThaumcraftApi.addShapelessArcaneCraftingRecipe(
            "Tiny Uranium",
            new ItemStack(IC2Items.getItem("smallUran235").getItem(), 7),
            CraftingAspects.tinyUraniumCrafting,
            IC2Items.getItem("Uran238"));

    compressedSolar =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "Compressed Solars",
            new ItemStack(BlockRegistry.emtSolars, 1, 0),
            CraftingAspects.compressedSolars,
            "XXX",
            "XXX",
            "XXX",
            'X',
            IC2Items.getItem("solarPanel"));

    doubleCompressedSolar =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "Compressed Solars",
            new ItemStack(BlockRegistry.emtSolars, 1, 1),
            CraftingAspects.compressedSolars,
            "XXX",
            "XXX",
            "XXX",
            'X',
            new ItemStack(BlockRegistry.emtSolars, 1, 0));

    electricScribingTools =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "Electric Scribing Tools",
            new ItemStack(ItemRegistry.electricScribingTools),
            CraftingAspects.electricScribingTools,
            "YXY",
            "XZX",
            "YXY",
            'Y',
            IC2Items.getItem("electronicCircuit"),
            'X',
            new ItemStack(ConfigItems.itemInkwell),
            'Z',
            new ItemStack(
                IC2Items.getItem("energyCrystal").getItem(), 1, OreDictionary.WILDCARD_VALUE));

    /** Crucible Recipes * */
    ignisGenerator =
        ThaumcraftApi.addCrucibleRecipe(
            "Ignis Generator",
            new ItemStack(BlockRegistry.essentiaGens, 1, 1),
            new ItemStack(BlockRegistry.essentiaGens, 1, 0),
            CraftingAspects.ignisGeneratorCrafting);

    auramGenerator =
        ThaumcraftApi.addCrucibleRecipe(
            "Auram Generator",
            new ItemStack(BlockRegistry.essentiaGens, 1, 2),
            new ItemStack(BlockRegistry.essentiaGens, 1, 0),
            CraftingAspects.auramGeneratorCrafting);

    arborGenerator =
        ThaumcraftApi.addCrucibleRecipe(
            "Arbor Generator",
            new ItemStack(BlockRegistry.essentiaGens, 1, 3),
            new ItemStack(BlockRegistry.essentiaGens, 1, 0),
            CraftingAspects.arborGeneratorCrafting);

    waterSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Water Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars, 1, 3),
            new ItemStack(BlockRegistry.emtSolars, 1, 0),
            CraftingAspects.waterSolars);

    doubleWaterSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Water Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars, 1, 4),
            new ItemStack(BlockRegistry.emtSolars, 1, 1),
            CraftingAspects.waterSolars);

    tripleWaterSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Water Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars, 1, 5),
            new ItemStack(BlockRegistry.emtSolars, 1, 2),
            CraftingAspects.waterSolars);

    darkSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Entropy Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars, 1, 6),
            new ItemStack(BlockRegistry.emtSolars, 1, 0),
            CraftingAspects.darkSolars);

    doubleDarkSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Entropy Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars, 1, 7),
            new ItemStack(BlockRegistry.emtSolars, 1, 1),
            CraftingAspects.darkSolars);

    tripleDarkSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Entropy Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars, 1, 8),
            new ItemStack(BlockRegistry.emtSolars, 1, 2),
            CraftingAspects.darkSolars);

    orderSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Order Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars, 1, 9),
            new ItemStack(BlockRegistry.emtSolars, 1, 0),
            CraftingAspects.orderSolars);

    doubleOrderSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Order Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars, 1, 10),
            new ItemStack(BlockRegistry.emtSolars, 1, 1),
            CraftingAspects.orderSolars);

    tripleOrderSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Order Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars, 1, 11),
            new ItemStack(BlockRegistry.emtSolars, 1, 2),
            CraftingAspects.orderSolars);

    fireSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Fire Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars, 1, 12),
            new ItemStack(BlockRegistry.emtSolars, 1, 0),
            CraftingAspects.fireSolars);

    doubleFireSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Fire Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars, 1, 13),
            new ItemStack(BlockRegistry.emtSolars, 1, 1),
            CraftingAspects.fireSolars);

    tripleFireSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Fire Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars, 1, 14),
            new ItemStack(BlockRegistry.emtSolars, 1, 2),
            CraftingAspects.fireSolars);

    airSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Air Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars, 1, 15),
            new ItemStack(BlockRegistry.emtSolars, 1, 0),
            CraftingAspects.airSolars);

    doubleAirSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Air Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars2, 1, 0),
            new ItemStack(BlockRegistry.emtSolars, 1, 1),
            CraftingAspects.airSolars);

    tripleAirSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Air Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars2, 1, 1),
            new ItemStack(BlockRegistry.emtSolars, 1, 2),
            CraftingAspects.airSolars);

    earthSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Earth Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars2, 1, 2),
            new ItemStack(BlockRegistry.emtSolars, 1, 0),
            CraftingAspects.earthSolars);

    doubleEarthSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Earth Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars2, 1, 3),
            new ItemStack(BlockRegistry.emtSolars, 1, 1),
            CraftingAspects.earthSolars);

    tripleEarthSolar =
        ThaumcraftApi.addCrucibleRecipe(
            "Earth Infused Solar Panels",
            new ItemStack(BlockRegistry.emtSolars2, 1, 4),
            new ItemStack(BlockRegistry.emtSolars, 1, 2),
            CraftingAspects.earthSolars);

    portableNode =
        ThaumcraftApi.addCrucibleRecipe(
            "Portable Node",
            new ItemStack(BlockRegistry.portableNode),
            new ItemStack(ConfigItems.itemJarFilled),
            CraftingAspects.portableNode);

    /** IC2 Stuff related recipes * */

    /* Ore Clusters Macerator Recipes */
    ItemStack ironClusterRecipe = IC2Items.getItem("smallIronDust").copy();
    ironClusterRecipe.stackSize = 22;
    Recipes.macerator.addRecipe(
        new RecipeInputItemStack(new ItemStack(ConfigItems.itemNugget, 1, 16)),
        null,
        ironClusterRecipe);

    ItemStack goldClusterRecipe = IC2Items.getItem("smallGoldDust").copy();
    goldClusterRecipe.stackSize = 22;
    Recipes.macerator.addRecipe(
        new RecipeInputItemStack(new ItemStack(ConfigItems.itemNugget, 1, 31)),
        null,
        goldClusterRecipe);

    ItemStack copperClusterRecipe = IC2Items.getItem("smallCopperDust").copy();
    copperClusterRecipe.stackSize = 22;
    Recipes.macerator.addRecipe(
        new RecipeInputItemStack(new ItemStack(ConfigItems.itemNugget, 1, 17)),
        null,
        copperClusterRecipe);

    ItemStack tinClusterRecipe = IC2Items.getItem("smallTinDust").copy();
    tinClusterRecipe.stackSize = 22;
    Recipes.macerator.addRecipe(
        new RecipeInputItemStack(new ItemStack(ConfigItems.itemNugget, 1, 18)),
        null,
        tinClusterRecipe);

    ItemStack silverClusterRecipe = IC2Items.getItem("smallSilverDust").copy();
    silverClusterRecipe.stackSize = 22;
    Recipes.macerator.addRecipe(
        new RecipeInputItemStack(new ItemStack(ConfigItems.itemNugget, 1, 19)),
        null,
        silverClusterRecipe);

    ItemStack leadClusterRecipe = IC2Items.getItem("smallLeadDust").copy();
    leadClusterRecipe.stackSize = 22;
    Recipes.macerator.addRecipe(
        new RecipeInputItemStack(new ItemStack(ConfigItems.itemNugget, 1, 20)),
        null,
        leadClusterRecipe);

    /* Thaumium Plates Recipes */
    thaumiumPlate =
        GameRegistry.addShapedRecipe(
            new ItemStack(ItemRegistry.thaumiumPlate),
            "X",
            "Y",
            "Z",
            'Y',
            new ItemStack(ConfigItems.itemResource, 1, 2),
            'X',
            new ItemStack(
                IC2Items.getItem("ForgeHammer").getItem(), 1, OreDictionary.WILDCARD_VALUE),
            'Z',
            new ItemStack(Blocks.obsidian));
    Recipes.metalformerRolling.addRecipe(
        new RecipeInputItemStack(new ItemStack(ConfigItems.itemResource, 1, 2)),
        null,
        new ItemStack(ItemRegistry.thaumiumPlate));

    /* Ore Processing for Amber and Cinnabar */
    ItemStack crushedAmberRecipe = new ItemStack(ItemRegistry.itemEMTItems, 1, 1);
    crushedAmberRecipe.stackSize = 2;
    Recipes.macerator.addRecipe(
        new RecipeInputItemStack(new ItemStack(ConfigBlocks.blockCustomOre, 1, 7)),
        null,
        crushedAmberRecipe);

    ItemStack crushedCinnabarRecipe = new ItemStack(ItemRegistry.itemEMTItems, 1, 3);
    crushedCinnabarRecipe.stackSize = 2;
    Recipes.macerator.addRecipe(
        new RecipeInputItemStack(new ItemStack(ConfigBlocks.blockCustomOre, 1, 0)),
        null,
        crushedCinnabarRecipe);

    NBTTagCompound waterAmount = new NBTTagCompound();
    waterAmount.setInteger("amount", 1000);

    Recipes.oreWashing.addRecipe(
        new RecipeInputItemStack(new ItemStack(ItemRegistry.itemEMTItems, 1, 1)),
        waterAmount,
        new ItemStack[] {
          new ItemStack(ItemRegistry.itemEMTItems, 1, 2),
          StackUtil.copyWithSize(Ic2Items.smallCopperDust, 2),
          Ic2Items.stoneDust
        });
    Recipes.oreWashing.addRecipe(
        new RecipeInputItemStack(new ItemStack(ItemRegistry.itemEMTItems, 1, 3)),
        waterAmount,
        new ItemStack[] {
          new ItemStack(ItemRegistry.itemEMTItems, 1, 4),
          StackUtil.copyWithSize(Ic2Items.smallTinDust, 2),
          Ic2Items.stoneDust
        });

    NBTTagCompound heatAmount = new NBTTagCompound();
    heatAmount.setInteger("minHeat", 1000);

    Recipes.centrifuge.addRecipe(
        new RecipeInputItemStack(new ItemStack(ItemRegistry.itemEMTItems, 1, 2)),
        heatAmount,
        new ItemStack[] {Ic2Items.smallCopperDust, new ItemStack(ConfigItems.itemResource, 1, 6)});
    Recipes.centrifuge.addRecipe(
        new RecipeInputItemStack(new ItemStack(ItemRegistry.itemEMTItems, 1, 4)),
        heatAmount,
        new ItemStack[] {Ic2Items.smallTinDust, new ItemStack(ConfigItems.itemResource, 1, 3)});
  }
Пример #8
0
 public static void addAspects(Class<? extends Entity> entity, Object... aspects) {
   AspectList ot = getAspectList(aspects);
   String name = (String) EntityList.classToStringMapping.get(entity);
   ThaumcraftApi.registerEntityTag(name, ot);
 }
Пример #9
0
 public boolean canUndo() {
   return ThaumcraftApi.getWarp(target) > 0;
 }
Пример #10
0
  private static void setupItemAspects() {
    ItemStack item;
    AspectList list;

    ThaumcraftApi.registerObjectTag(
        new ItemStack(Items.clock),
        new AspectList(new ItemStack(Items.clock)).add((Aspect) aspectTime, 4));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Items.repeater),
        new AspectList(new ItemStack(Items.repeater)).add((Aspect) aspectTime, 2));

    list = new AspectList(new ItemStack(Blocks.log));
    for (int i = 1; i <= 8; i++) {
      item = ItemInterface.getItemStack("log" + i);
      if (item != null) {
        ThaumcraftApi.registerObjectTag(item, list);
      }
    }

    list = new AspectList(new ItemStack(Blocks.planks));
    for (int i = 1; i <= 2; i++) {
      item = ItemInterface.getItemStack("planks" + i);
      if (item != null) {
        ThaumcraftApi.registerObjectTag(item, list);
      }
    }

    list = new AspectList().add(Aspect.ORDER, 5).add(Aspect.ARMOR, 2).add(Aspect.BEAST, 1);
    item = new ItemStack(Config.fHiveBlock);
    ThaumcraftApi.registerObjectTag(item, list);
    ThaumcraftApi.registerObjectTag(new ItemStack(Config.hive), list);

    list = new AspectList().add(Aspect.LIGHT, 1);
    item = new ItemStack(BlockInterface.getBlock(ForestryHelper.Name, "candle"));
    ThaumcraftApi.registerObjectTag(item, new int[] {item.getItemDamage()}, list);

    list = new AspectList().add(Aspect.DARKNESS, 1);
    item = new ItemStack(BlockInterface.getBlock(ForestryHelper.Name, "stump"));
    ThaumcraftApi.registerObjectTag(item, new int[] {item.getItemDamage()}, list);

    list = new AspectList(new ItemStack(Blocks.glass)).add(Aspect.SENSES, 1);
    item = new ItemStack(BlockInterface.getBlock(ForestryHelper.Name, "glass"));
    ThaumcraftApi.registerObjectTag(item, list);

    list = new AspectList().add(Aspect.EARTH, 2).add(Aspect.WATER, 2);
    item = new ItemStack(BlockInterface.getBlock(ForestryHelper.Name, "soil"));
    ThaumcraftApi.registerObjectTag(item, new int[] {1}, list);

    list = new AspectList(new ItemStack(Blocks.leaves));
    item = ItemInterface.getItemStack(ForestryHelper.Name, "candle");
    ThaumcraftApi.registerObjectTag(item, new int[] {item.getItemDamage()}, list);

    list = new AspectList(new ItemStack(Blocks.sapling));
    item = ItemInterface.getItemStack(ForestryHelper.Name, "candle");
    ThaumcraftApi.registerObjectTag(item, list);

    list = new AspectList() /* .add(Aspect.SEED, 1) */.add(Aspect.PLANT, 1);
    item = ItemInterface.getItemStack(ForestryHelper.Name, "candle");
    ThaumcraftApi.registerObjectTag(item, list);

    list = new AspectList().add(Aspect.CRYSTAL, 1).add(Aspect.EARTH, 2);
    item = ItemInterface.getItemStack(ForestryHelper.Name, "candle");
    ThaumcraftApi.registerObjectTag(
        new ItemStack(item.getItem(), 1, ForestryHelper.BlockResource.APATITE.ordinal()),
        list.copy());
    item = ItemInterface.getItemStack(ForestryHelper.Name, "apatite");
    ThaumcraftApi.registerObjectTag(
        new ItemStack(item.getItem(), 1, item.getItemDamage()), list.copy().add(Aspect.CRYSTAL, 2));

    list = new AspectList().add(Aspect.MOTION, 2).add(Aspect.FLIGHT, 1);
    item = ItemInterface.getItemStack("beeDroneGE");
    ThaumcraftApi.registerObjectTag(item, list);
    list = list.copy().add(Aspect.GREED, 2).add(Aspect.EXCHANGE, 1);
    item = ItemInterface.getItemStack("beePrincessGE");
    ThaumcraftApi.registerObjectTag(item, list);
    item = ItemInterface.getItemStack("beeQueenGE");
    ThaumcraftApi.registerObjectTag(item, list);
    list = new AspectList().add(Aspect.LIFE, 2).add(Aspect.EXCHANGE, 5);
    item = ItemInterface.getItemStack("beeLarvaeGE");
    ThaumcraftApi.registerObjectTag(item, list);

    item = ItemInterface.getItemStack("scoop");
    list = new AspectList(new ItemStack(item.getItem(), 1, 0)).add(Aspect.TOOL, 2);
    ThaumcraftApi.registerComplexObjectTag(item, list);

    item = ItemInterface.getItemStack("grafter");
    list =
        new AspectList(new ItemStack(item.getItem(), 1, item.getItemDamage())).add(Aspect.TOOL, 2);
    ThaumcraftApi.registerComplexObjectTag(item, list);

    item = ItemInterface.getItemStack("grafterProven");
    list = list.copy().add(Aspect.TOOL, 2).add(Aspect.EXCHANGE, 3);
    ThaumcraftApi.registerObjectTag(new ItemStack(item.getItem(), 1, item.getItemDamage()), list);

    list = new AspectList().add(Aspect.TRAP, 2);
    ThaumcraftApi.registerObjectTag("beeComb", list);

    list = new AspectList().add(Aspect.SLIME, 1);
    item = ItemInterface.getItemStack("propolis");
    ThaumcraftApi.registerObjectTag(
        new ItemStack(item.getItem(), 1, ForestryHelper.Propolis.NORMAL.ordinal()), list);
    ThaumcraftApi.registerObjectTag(
        new ItemStack(item.getItem(), 1, ForestryHelper.Propolis.SILKY.ordinal()),
        list.copy().add(Aspect.SLIME, 2));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(item.getItem(), 1, ForestryHelper.Propolis.PULSATING.ordinal()),
        list.copy().add(Aspect.ELDRITCH, 2));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Config.propolis, 1, PropolisType.UNSTABLE.ordinal()),
        list.copy().add(Aspect.ENTROPY, 1).add(Aspect.EXCHANGE, 1));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Config.propolis, 1, PropolisType.AIR.ordinal()),
        list.copy().add(Aspect.AIR, 2));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Config.propolis, 1, PropolisType.WATER.ordinal()),
        list.copy().add(Aspect.WATER, 2));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Config.propolis, 1, PropolisType.FIRE.ordinal()),
        list.copy().add(Aspect.FIRE, 2));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Config.propolis, 1, PropolisType.EARTH.ordinal()),
        list.copy().add(Aspect.EARTH, 2));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Config.propolis, 1, PropolisType.ORDER.ordinal()),
        list.copy().add(Aspect.ORDER, 2));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Config.propolis, 1, PropolisType.CHAOS.ordinal()),
        list.copy().add(Aspect.ENTROPY, 2));

    list = new AspectList().add(Aspect.PLANT, 2);
    item = ItemInterface.getItemStack("pollen");
    ThaumcraftApi.registerObjectTag(
        new ItemStack(item.getItem(), 1, ForestryHelper.Pollen.NORMAL.ordinal()), list);
    ThaumcraftApi.registerObjectTag(
        new ItemStack(item.getItem(), 1, ForestryHelper.Pollen.CRYSTALLINE.ordinal()), list.copy());
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Config.pollen, 1, PollenType.UNUSUAL.ordinal()),
        list.copy().add(Aspect.MAGIC, 2));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Config.pollen, 1, PollenType.PHASED.ordinal()),
        list.copy().add((Aspect) aspectTime, 2));

    list = new AspectList().add(Aspect.ORDER, 1);
    item = ItemInterface.getItemStack("beeswax");
    ThaumcraftApi.registerObjectTag(
        item, new int[] {item.getItemDamage()}, list.copy().add(Aspect.ORDER, 2));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Config.wax, 1, WaxType.MAGIC.ordinal()), list.copy().add(Aspect.MAGIC, 2));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Config.wax, 1, WaxType.SOUL.ordinal()), list.copy().add(Aspect.SOUL, 2));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Config.wax, 1, WaxType.AMNESIC.ordinal()), list.copy().add(Aspect.MIND, 2));

    list = new AspectList().add(Aspect.EXCHANGE, 2).add(Aspect.LIFE, 2);
    item = ItemInterface.getItemStack("honeyDrop");
    ThaumcraftApi.registerObjectTag(item, new int[] {item.getItemDamage()}, list);

    list = new AspectList().add(Aspect.LIFE, 2).add(Aspect.ENERGY, 2);
    item = ItemInterface.getItemStack("honeydew");
    ThaumcraftApi.registerObjectTag(item, new int[] {item.getItemDamage()}, list);

    list = new AspectList().add(Aspect.GREED, 1).add(Aspect.LIFE, 4);
    item = ItemInterface.getItemStack("royalJelly");
    ThaumcraftApi.registerObjectTag(item, new int[] {item.getItemDamage()}, list);

    list = new AspectList().add(Aspect.FIRE, 1).add(Aspect.TRAP, 2);
    item = ItemInterface.getItemStack("phosphor");
    ThaumcraftApi.registerObjectTag(item, new int[] {item.getItemDamage()}, list);

    item = Config.miscResources.getStackForType(ResourceType.ESSENCE_FALSE_LIFE);
    ThaumcraftApi.registerObjectTag(
        item, new int[] {item.getItemDamage()}, new AspectList().add(Aspect.LIFE, 6));

    item = Config.miscResources.getStackForType(ResourceType.ESSENCE_SHALLOW_GRAVE);
    ThaumcraftApi.registerObjectTag(
        item, new int[] {item.getItemDamage()}, new AspectList().add(Aspect.DEATH, 6));

    item = Config.miscResources.getStackForType(ResourceType.ESSENCE_EVERLASTING_DURABILITY);
    ThaumcraftApi.registerObjectTag(
        item, new int[] {item.getItemDamage()}, new AspectList().add(Aspect.ARMOR, 6));

    item = Config.miscResources.getStackForType(ResourceType.ESSENCE_LOST_TIME);
    ThaumcraftApi.registerObjectTag(
        item,
        new int[] {item.getItemDamage()},
        new AspectList().add(Aspect.VOID, 6).add((Aspect) aspectTime, 8));
  }
 @Override
 public void registerRecipe() {
   ShapedArcaneRecipe recipe =
       ThaumcraftApi.addArcaneCraftingRecipe(research, output, aspects, stuff);
   ConfigResearch.recipes.put(name, recipe);
 }
  @Override
  protected void registerCrafting() {
    // Common items
    CommonDependantItems cdi = FeatureRegistry.instance().getCommonItems();

    // My items
    IThEItems theItems = ThEApi.instance().items();
    ItemStack EssentiaStorageComponent_1k = theItems.EssentiaStorageComponent_1k.getStack();
    ItemStack EssentiaStorageComponent_4k = theItems.EssentiaStorageComponent_4k.getStack();
    ItemStack EssentiaStorageComponent_16k = theItems.EssentiaStorageComponent_16k.getStack();
    ItemStack EssentiaStorageComponent_64k = theItems.EssentiaStorageComponent_64k.getStack();
    ItemStack EssentiaCell_Housing = theItems.EssentiaCell_Casing.getStack();
    ItemStack EssentiaCell_1k = theItems.EssentiaCell_1k.getStack();
    ItemStack EssentiaCell_4k = theItems.EssentiaCell_4k.getStack();
    ItemStack EssentiaCell_16k = theItems.EssentiaCell_16k.getStack();
    ItemStack EssentiaCell_64k = theItems.EssentiaCell_64k.getStack();
    ItemStack EssentiaCellWorkbench = ThEApi.instance().blocks().EssentiaCellWorkbench.getStack();

    // Item Groups
    ArrayList<ItemStack> GroupQuartz = new ArrayList<ItemStack>(3);
    GroupQuartz.add(cdi.CertusQuartz);
    GroupQuartz.add(cdi.ChargedCertusQuartz);
    GroupQuartz.add(cdi.PureCertusQuartz);

    // Housing ===============================================

    // Housing recipe
    Object[] recipeHousing =
        new Object[] {
          "WRW", "R R", "TTT", 'W', cdi.WardedGlass, 'R', cdi.RedstoneDust, 'T', cdi.ThaumiumIngot
        };

    // Register Housing
    GameRegistry.addRecipe(
        RecipeRegistry.ITEM_STORAGE_HOUSING =
            new ShapedOreRecipe(EssentiaCell_Housing, false, recipeHousing));

    // 1K ====================================================

    // 1K Storage aspects
    AspectList aspects1KStorage = new AspectList();
    aspects1KStorage.add(Aspect.FIRE, 3);
    aspects1KStorage.add(Aspect.ORDER, 1);

    // 1K Storage recipe
    Object[] recipe1KStorage =
        new Object[] {
          "EQ ",
          "QPQ",
          " QE",
          'E',
          cdi.EtheralEssence,
          'Q',
          cdi.CertusQuartz,
          'P',
          cdi.LogicProcessor
        };

    // 1K Cell recipe
    Object[] recipe1KCell =
        new Object[] {
          "WRW",
          "RCR",
          "TTT",
          'W',
          cdi.WardedGlass,
          'R',
          cdi.RedstoneDust,
          'T',
          cdi.ThaumiumIngot,
          'C',
          EssentiaStorageComponent_1k
        };

    // Register 1K storage
    RecipeRegistry.ITEM_STORAGE_COMPONENT_1K =
        ThaumcraftApi.addArcaneCraftingRecipe(
            ResearchTypes.STORAGE.getKey(),
            EssentiaStorageComponent_1k,
            aspects1KStorage,
            recipe1KStorage);

    // Register 1K cell
    GameRegistry.addRecipe(
        RecipeRegistry.ITEM_STORAGE_CELL_1K_SHAPED =
            new ShapedOreRecipe(EssentiaCell_1k, false, recipe1KCell));
    GameRegistry.addRecipe(
        RecipeRegistry.ITEM_STORAGE_CELL_1K_SHAPELESS =
            new ShapelessOreRecipe(
                EssentiaCell_1k, EssentiaStorageComponent_1k, EssentiaCell_Housing));

    // Replace regular certus quartz with any of the certus quartz variants in the 1K storage
    // component
    this.replaceRecipeIngredientWithGroup(
        (ShapedArcaneRecipe) RecipeRegistry.ITEM_STORAGE_COMPONENT_1K,
        cdi.CertusQuartz,
        GroupQuartz);

    // 4K ===================================================

    // 4K Storage aspects
    AspectList aspects4KStorage = new AspectList();
    aspects4KStorage.add(Aspect.FIRE, 3);
    aspects4KStorage.add(Aspect.ORDER, 2);

    // 4K Storage recipe
    Object[] recipe4KStorage =
        new Object[] {
          "EPE",
          "1G1",
          "E1E",
          'E',
          cdi.EtheralEssence,
          '1',
          EssentiaStorageComponent_1k,
          'P',
          cdi.CalculationProcessor,
          'G',
          cdi.QuartzGlass
        };

    // 4K Cell recipe
    Object[] recipe4KCell =
        new Object[] {
          "WRW",
          "RCR",
          "TTT",
          'W',
          cdi.WardedGlass,
          'R',
          cdi.RedstoneDust,
          'T',
          cdi.ThaumiumIngot,
          'C',
          EssentiaStorageComponent_4k
        };

    // Register 4K storage
    RecipeRegistry.ITEM_STORAGE_COMPONENT_4K =
        ThaumcraftApi.addArcaneCraftingRecipe(
            ResearchTypes.STORAGE.getKey(),
            EssentiaStorageComponent_4k,
            aspects4KStorage,
            recipe4KStorage);

    // Register 4K cell
    GameRegistry.addRecipe(
        RecipeRegistry.ITEM_STORAGE_CELL_4K_SHAPED =
            new ShapedOreRecipe(EssentiaCell_4k, false, recipe4KCell));
    GameRegistry.addRecipe(
        RecipeRegistry.ITEM_STORAGE_CELL_4K_SHAPELESS =
            new ShapelessOreRecipe(
                EssentiaCell_4k, EssentiaStorageComponent_4k, EssentiaCell_Housing));

    // 16K ===================================================

    // 16K Storage aspects
    AspectList aspects16KStorage = new AspectList();
    aspects16KStorage.add(Aspect.FIRE, 3);
    aspects16KStorage.add(Aspect.ORDER, 4);

    // 16K Storage recipe
    Object[] recipe16KStorage =
        new Object[] {
          "SPE",
          "4G4",
          "E4S",
          'E',
          cdi.EtheralEssence,
          'S',
          cdi.SalisMundus,
          '4',
          EssentiaStorageComponent_4k,
          'P',
          cdi.EngineeringProcessor,
          'G',
          cdi.QuartzGlass
        };

    // 16K Cell recipe
    Object[] recipe16KCell =
        new Object[] {
          "WRW",
          "RCR",
          "TTT",
          'W',
          cdi.WardedGlass,
          'R',
          cdi.RedstoneDust,
          'T',
          cdi.ThaumiumIngot,
          'C',
          EssentiaStorageComponent_16k
        };

    // Register 16K storage
    RecipeRegistry.ITEM_STORAGE_COMPONENT_16K =
        ThaumcraftApi.addArcaneCraftingRecipe(
            ResearchTypes.STORAGE.getKey(),
            EssentiaStorageComponent_16k,
            aspects16KStorage,
            recipe16KStorage);

    // Register 16K cell
    GameRegistry.addRecipe(
        RecipeRegistry.ITEM_STORAGE_CELL_16K_SHAPED =
            new ShapedOreRecipe(EssentiaCell_16k, false, recipe16KCell));
    GameRegistry.addRecipe(
        RecipeRegistry.ITEM_STORAGE_CELL_16K_SHAPELESS =
            new ShapelessOreRecipe(
                EssentiaCell_16k, EssentiaStorageComponent_16k, EssentiaCell_Housing));

    // 64K ===================================================

    // 64K Storage aspects
    AspectList aspects64KStorage = new AspectList();
    aspects64KStorage.add(Aspect.FIRE, 3);
    aspects64KStorage.add(Aspect.ORDER, 8);

    // 64K Storage recipe
    Object[] recipe64KStorage =
        new Object[] {
          "SPS",
          "6G6",
          "S6S",
          'S',
          cdi.SalisMundus,
          '6',
          EssentiaStorageComponent_16k,
          'P',
          cdi.EngineeringProcessor,
          'G',
          cdi.QuartzGlass
        };

    // 64K Cell recipe
    Object[] recipe64KCell =
        new Object[] {
          "WRW",
          "RCR",
          "TTT",
          'W',
          cdi.WardedGlass,
          'R',
          cdi.RedstoneDust,
          'T',
          cdi.ThaumiumIngot,
          'C',
          EssentiaStorageComponent_64k
        };

    // Register 64K storage
    RecipeRegistry.ITEM_STORAGE_COMPONENT_64K =
        ThaumcraftApi.addArcaneCraftingRecipe(
            ResearchTypes.STORAGE.getKey(),
            EssentiaStorageComponent_64k,
            aspects64KStorage,
            recipe64KStorage);

    // 64K Storage Cell
    GameRegistry.addRecipe(
        RecipeRegistry.ITEM_STORAGE_CELL_64K_SHAPED =
            new ShapedOreRecipe(EssentiaCell_64k, false, recipe64KCell));
    GameRegistry.addRecipe(
        RecipeRegistry.ITEM_STORAGE_CELL_64K_SHAPELESS =
            new ShapelessOreRecipe(
                EssentiaCell_64k, EssentiaStorageComponent_64k, EssentiaCell_Housing));

    // Workbench
    GameRegistry.addRecipe(
        RecipeRegistry.BLOCK_CELL_WORKBENCH =
            new ShapelessOreRecipe(
                EssentiaCellWorkbench, EssentiaStorageComponent_1k, cdi.MECellWorkbench));
  }
Пример #13
0
  private static void addAspects() {
    // TODO more aspects to everything!
    // Items
    ThaumcraftApi.registerObjectTag(
        ii(BotanyItems.wand_focus_watering),
        new int[] {0},
        new AspectList().add(Aspect.WATER, 10).add(Aspect.MAGIC, 5).add(Aspect.CROP, 3));
    ThaumcraftApi.registerObjectTag(
        ii(BotanyItems.gardeners_cap),
        new int[] {0},
        new AspectList()
            .add(Aspect.ARMOR, 5)
            .add(ArcaneBotany.aspectHortus, 5)
            .add(Aspect.PLANT, 2));
    ThaumcraftApi.registerObjectTag(
        ii(BotanyItems.gardeners_chest),
        new int[] {0},
        new AspectList()
            .add(Aspect.ARMOR, 5)
            .add(ArcaneBotany.aspectHortus, 5)
            .add(Aspect.PLANT, 2));
    ThaumcraftApi.registerObjectTag(
        ii(BotanyItems.gardeners_pants),
        new int[] {0},
        new AspectList()
            .add(Aspect.ARMOR, 5)
            .add(ArcaneBotany.aspectHortus, 5)
            .add(Aspect.PLANT, 2));
    ThaumcraftApi.registerObjectTag(
        ii(BotanyItems.gardeners_boots),
        new int[] {0},
        new AspectList()
            .add(Aspect.ARMOR, 5)
            .add(ArcaneBotany.aspectHortus, 5)
            .add(Aspect.PLANT, 2));

    ThaumcraftApi.registerObjectTag(
        ii(BotanyItems.gardenomicon),
        new int[] {0},
        new AspectList()
            .add(Aspect.CLOTH, 5)
            .add(ArcaneBotany.aspectHortus, 5)
            .add(Aspect.CRAFT, 2)
            .add(Aspect.PLANT, 3));
    ThaumcraftApi.registerObjectTag(
        ii(BotanyItems.inkBottle),
        new int[] {0},
        new AspectList().add(Aspect.WATER, 1).add(ArcaneBotany.aspectHortus, 1));

    // Blocks
    ThaumcraftApi.registerObjectTag(
        ib(BotanyBlocks.scribers_pitcher),
        new int[] {0},
        new AspectList()
            .add(Aspect.DARKNESS, 5)
            .add(Aspect.PLANT, 5)
            .add(ArcaneBotany.aspectHortus, 2));
    ThaumcraftApi.registerObjectTag(
        ib(BotanyBlocks.nitor_root),
        new int[] {0},
        new AspectList()
            .add(Aspect.LIGHT, 5)
            .add(Aspect.PLANT, 5)
            .add(ArcaneBotany.aspectHortus, 2));
    ThaumcraftApi.registerObjectTag(
        ib(BotanyBlocks.golem_fern),
        new int[] {0},
        new AspectList()
            .add(Aspect.TRAVEL, 5)
            .add(Aspect.CRYSTAL, 2)
            .add(ArcaneBotany.aspectHortus, 2));
    ThaumcraftApi.registerObjectTag(
        ib(BotanyBlocks.tainted_hedge),
        new int[] {0},
        new AspectList()
            .add(Aspect.AURA, 5)
            .add(Aspect.DARKNESS, 2)
            .add(ArcaneBotany.aspectHortus, 2));
    ThaumcraftApi.registerObjectTag(
        ib(BotanyBlocks.ghast_amaryllis),
        new int[] {0},
        new AspectList()
            .add(Aspect.BEAST, 5)
            .add(Aspect.SENSES, 2)
            .add(ArcaneBotany.aspectHortus, 2));

    // TODO //Mobs
  }
Пример #14
0
  @SuppressWarnings("unchecked")
  public static void setup() {
    //	Create Thaumonomicon Page
    ResearchCategories.registerCategory(catName, null, icon, back, null);

    //	ResearchCategoryList	THAUMATURGY=ResearchCategories.getResearchList("THAUMATURGY");
    ResearchCategoryList ALCHEMY = ResearchCategories.getResearchList("ALCHEMY");
    //	ResearchCategoryList	ARTIFICE=ResearchCategories.getResearchList("ARTIFICE");
    ResearchItem crucRes = ALCHEMY.research.get("CRUCIBLE");

    copy(crucRes, "TC.CRUCIBLE", catName, 0, 0).setHidden().registerResearchItem();
    //		copy(crucRes,"TC.CRUCIBLE",catName,0,0).setHidden().registerResearchItem();
    copy(
            ResearchCategories.getResearchList("ALCHEMY").research.get("METALLURGY"),
            "TS.ALCHEMY",
            catName,
            -3,
            -5)
        .setHidden()
        .registerResearchItem();
    //
    //	copy(ResearchCategories.getResearchList("ALCHEMY").research.get("METALLURGY"),"TS.ALCHEMY",catName,-3,-5).setHidden().registerResearchItem();

    //	Register items and aspects <???>
    ThaumcraftApi.registerObjectTag(
        new ItemStack(TSItems.arcane_coal, 1, OreDictionary.WILDCARD_VALUE),
        new AspectList().add(Aspect.FIRE, 16).add(Aspect.ORDER, 8).add(Aspect.LIGHT, 6));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(TSItems.arcane_coal_block, 1, OreDictionary.WILDCARD_VALUE),
        new AspectList().add(Aspect.FIRE, 16).add(Aspect.ORDER, 8).add(Aspect.LIGHT, 6));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(TSItems.arcane_torch_dispenser, 1, OreDictionary.WILDCARD_VALUE),
        new AspectList().add(Aspect.FIRE, 16).add(Aspect.ORDER, 8).add(Aspect.LIGHT, 20));
    //		ThaumcraftApi.registerObjectTag(new
    // ItemStack(TSItems.arcane_torch_dispenser,1,OreDictionary.WILDCARD_VALUE), new
    // AspectList().add(Aspect.FIRE, 16).add(Aspect.ORDER, 8).add(Aspect.LIGHT, 6));

    //	Crucible Recipe
    //	Clean Clay - Costs Permutatio(EXCHANGE)String

    ItemStack clay3Rec_cat[] = {
      new ItemStack(Blocks.clay, 1, 0),
      new ItemStack(Blocks.hardened_clay, 1, 0),
      new ItemStack(Blocks.stained_hardened_clay, 1, 0)
    };
    CrucibleRecipe clay3Rec =
        new CrucibleRecipe(
            new String[] {"TS.r.Entropy_clay"},
            new ItemStack(Items.clay_ball, 3, 0),
            clay3Rec_cat,
            new AspectList().add(Aspect.ENTROPY, 1));

    ItemStack arcaneCoalS_cat[] = {new ItemStack(TSItems.arcane_coal, 1, 0)};
    CrucibleRecipe arcaneCoalS_Rec =
        new CrucibleRecipe(
            new String[] {"TS.ALCHEMY"},
            new ItemStack(TSItems.arcane_coalS, 1, 0),
            arcaneCoalS_cat,
            new AspectList()
                .add(Aspect.FIRE, 32)
                .add(Aspect.ENERGY, 32)
                .add(Aspect.EXCHANGE, 20)
                .add(Aspect.LIGHT, 16));

    //	Define Recipes
    ThaumcraftApi.getCraftingRecipes().add(clay3Rec);
    ThaumcraftApi.getCraftingRecipes().add(arcaneCoalS_Rec);

    // ThaumicStorage.archane_coal
    ShapedArcaneRecipe arcane_coal_rec =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "",
            new ItemStack(TSItems.arcane_coal),
            new AspectList()
                .add(Aspect.FIRE, 40)
                .add(Aspect.ORDER, 20)
                .add(Aspect.ENTROPY, 20)
                .add(Aspect.EARTH, 10),
            new Object[] {
              "121",
              "343",
              "151",
              '1',
              new ItemStack(BlocksTC.plank, 1, 0),
              '2',
              new ItemStack(ItemsTC.shard, 1, 1),
              '3',
              new ItemStack(ItemsTC.nuggets, 1, 6),
              '4',
              new ItemStack(Blocks.coal_block),
              '5',
              new ItemStack(ItemsTC.alumentum, 1, 0)
            });

    // ThaumicStorage.archane_coal_block
    ShapedArcaneRecipe arcane_coal_block_rec =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "",
            new ItemStack(TSItems.arcane_coal_block),
            new AspectList().add(Aspect.FIRE, 20).add(Aspect.ORDER, 20).add(Aspect.ENTROPY, 20),
            new Object[] {"111", "111", "111", '1', TSItems.arcane_coal});

    // ThaumicStorage.arcane_torch_dispenser
    ShapedArcaneRecipe arcane_torch_dispenser_rec =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "",
            new ItemStack(TSItems.arcane_torch_dispenser),
            new AspectList()
                .add(Aspect.FIRE, 40)
                .add(Aspect.ORDER, 20)
                .add(Aspect.ENTROPY, 20)
                .add(Aspect.EARTH, 10),
            new Object[] {
              "121",
              "131",
              "141",
              '1',
              new ItemStack(ItemsTC.plate, 1, 0),
              '2',
              new ItemStack(Items.flint_and_steel, 1, 0),
              '3',
              new ItemStack(TSItems.arcane_coalS, 1, 0),
              '4',
              new ItemStack(ItemsTC.wandRods, 1, OreDictionary.WILDCARD_VALUE)
            });

    // Register Research Page
    // Arcane Coal
    new ResearchItem(
            "TS.r.arcane_coal",
            catName,
            new AspectList().add(Aspect.ORDER, 3).add(Aspect.FIRE, 3).add(Aspect.LIGHT, 3),
            3,
            0,
            1,
            new ItemStack(TSItems.arcane_coal, 1, 0))
        .setParents("TC.CRUCIBLE")
        .setPages(
            new ResearchPage("TS.p0.arcane_coal"),
            new ResearchPage("TS.p1.arcane_coal"),
            new ResearchPage(arcane_coal_rec),
            new ResearchPage("TS.p2.arcane_coal"),
            new ResearchPage("TS.p3.arcane_coal"))
        .registerResearchItem();

    // Register Research Page
    // Arcane Coal super-charged
    new ResearchItem(
            "TS.r.arcane_coalS",
            catName,
            new AspectList().add(Aspect.ORDER, 3).add(Aspect.FIRE, 3).add(Aspect.LIGHT, 3),
            4,
            -1,
            1,
            new ItemStack(TSItems.arcane_coalS, 1, 0))
        .setParents("TS.r.arcane_coal")
        .setSecondary()
        .setPages(new ResearchPage("TS.p0.arcane_coalS"), new ResearchPage(arcaneCoalS_Rec))
        .registerResearchItem();

    // Register Research Page
    // Arcane Coal Block
    new ResearchItem(
            "TS.r.arcane_coal_block",
            catName,
            new AspectList().add(Aspect.ORDER, 3),
            4,
            1,
            1,
            new ItemStack(TSItems.arcane_coal_block, 1, 0))
        .setParents("TS.r.arcane_coal")
        .setPages(
            new ResearchPage("TS.p0.arcane_coal_block"), new ResearchPage(arcane_coal_block_rec))
        .registerResearchItem();

    // Register Research Page
    // Arcane Torch Dispenser
    new ResearchItem(
            "TS.r.arcane_torch_dispenser",
            catName,
            new AspectList().add(Aspect.ORDER, 3).add(Aspect.FIRE, 3).add(Aspect.LIGHT, 3),
            5,
            -2,
            1,
            new ItemStack(TSItems.arcane_torch_dispenser, 1, 0))
        .setParents("TS.r.arcane_coalS")
        .setPages(
            new ResearchPage("TS.p0.arcane_torch_dispenser"),
            new ResearchPage(arcane_torch_dispenser_rec))
        .registerResearchItem();

    new ResearchItem(
            "TS.r.Entropy_clay",
            catName,
            new AspectList().add(Aspect.ENTROPY, 2),
            -1,
            -4,
            3,
            new ItemStack(Items.clay_ball, 1, 0))
        .setParents("TS.ALCHEMY")
        .setPages(
            new ResearchPage("TS.p0.Entropy_clay"), new ResearchPage(clay3Rec)
            //	new ResearchPage(clay3Rec2),
            //	new ResearchPage(clay3Rec3)
            )
        .registerResearchItem();
  }
Пример #15
0
  private static void registerItemAspects() {
    AspectList oldAspects =
        ThaumcraftCraftingManager.getObjectTags(new ItemStack(RegisteredBlocks.blockStoneMachine));

    ThaumcraftApi.registerObjectTag(
        new ItemStack(Item.getItemFromBlock(RegisteredBlocks.blockStoneMachine)),
        new int[] {11, 15},
        new AspectList());
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Item.getItemFromBlock(RegisteredBlocks.blockStoneMachine)),
        new int[] {0},
        oldAspects);

    AspectList pylon =
        new AspectList()
            .add(Aspect.WATER, 10)
            .add(Aspect.MAGIC, 12)
            .add(Aspect.VOID, 4)
            .add(Aspect.MECHANISM, 4);
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Item.getItemFromBlock(RegisteredBlocks.blockAuraPylon)),
        new int[] {0},
        pylon);
    pylon =
        new AspectList()
            .add(Aspect.FIRE, 10)
            .add(Aspect.AURA, 12)
            .add(Aspect.MAGIC, 8)
            .add(Aspect.LIGHT, 4)
            .add(Aspect.MECHANISM, 4);
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Item.getItemFromBlock(RegisteredBlocks.blockAuraPylon)),
        new int[] {1},
        pylon);

    AspectList packager =
        new AspectList()
            .add(Aspect.TREE, 10)
            .add(Aspect.MECHANISM, 8)
            .add(Aspect.CRAFT, 8)
            .add(Aspect.AURA, 12);
    ThaumcraftApi.registerObjectTag(
        new ItemStack(Item.getItemFromBlock(RegisteredBlocks.blockStoneMachine)),
        new int[] {4},
        packager);

    AspectList aspect = new AspectList();
    aspect.add(Aspect.MAGIC, 6).add(Aspect.AURA, 12).add(Aspect.ELDRITCH, 4).add(Aspect.VOID, 10);
    ThaumcraftApi.registerObjectTag(
        new ItemStack(RegisteredItems.itemAuraCore), new int[] {0}, aspect.copy());
    ThaumcraftApi.registerObjectTag(
        new ItemStack(RegisteredItems.itemAuraCore),
        new int[] {1},
        aspect.copy().add(Aspect.AIR, 26));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(RegisteredItems.itemAuraCore),
        new int[] {2},
        aspect.copy().add(Aspect.FIRE, 26));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(RegisteredItems.itemAuraCore),
        new int[] {3},
        aspect.copy().add(Aspect.WATER, 26));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(RegisteredItems.itemAuraCore),
        new int[] {4},
        aspect.copy().add(Aspect.EARTH, 26));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(RegisteredItems.itemAuraCore),
        new int[] {5},
        aspect.copy().add(Aspect.ORDER, 26));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(RegisteredItems.itemAuraCore),
        new int[] {6},
        aspect.copy().add(Aspect.ENTROPY, 26));

    ThaumcraftApi.registerObjectTag(
        new ItemStack(RegisteredItems.itemPackage, 1, 0),
        new AspectList().add(Aspect.CLOTH, 2).add(Aspect.BEAST, 2).add(Aspect.ARMOR, 1));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(RegisteredItems.itemPackage, 1, 1), new AspectList().add(Aspect.CLOTH, 4));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(RegisteredItems.itemFakeLootbag, 1, 0),
        new AspectList().add(Aspect.CLOTH, 2).add(Aspect.BEAST, 2).add(Aspect.ARMOR, 1));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(RegisteredItems.itemFakeLootbag, 1, 1),
        new AspectList().add(Aspect.CLOTH, 4));

    ThaumcraftApi.registerObjectTag(
        new ItemStack(RegisteredBlocks.blockKnowledgeBook),
        new AspectList()
            .add(Aspect.MIND, 8)
            .add(Aspect.MECHANISM, 4)
            .add(Aspect.MAGIC, 6)
            .add(Aspect.ORDER, 4));
  }
Пример #16
0
  private static void setupCrafting() {
    ItemStack input, output;

    input = Config.miscResources.getStackForType(ResourceType.TC_DUST_AIR);
    output = new ItemStack(Config.tcShard, 1, ShardType.AIR.ordinal());
    GameRegistry.addShapelessRecipe(output, input, input, input, input);

    input = Config.miscResources.getStackForType(ResourceType.TC_DUST_WATER);
    output = new ItemStack(Config.tcShard, 1, ShardType.WATER.ordinal());
    GameRegistry.addShapelessRecipe(output, input, input, input, input);

    input = Config.miscResources.getStackForType(ResourceType.TC_DUST_FIRE);
    output = new ItemStack(Config.tcShard, 1, ShardType.FIRE.ordinal());
    GameRegistry.addShapelessRecipe(output, input, input, input, input);

    input = Config.miscResources.getStackForType(ResourceType.TC_DUST_EARTH);
    output = new ItemStack(Config.tcShard, 1, ShardType.EARTH.ordinal());
    GameRegistry.addShapelessRecipe(output, input, input, input, input);

    input = Config.miscResources.getStackForType(ResourceType.TC_DUST_ORDER);
    output = new ItemStack(Config.tcShard, 1, ShardType.ORDER.ordinal());
    GameRegistry.addShapelessRecipe(output, input, input, input, input);

    input = Config.miscResources.getStackForType(ResourceType.TC_DUST_CHAOS);
    output = new ItemStack(Config.tcShard, 1, ShardType.CHAOS.ordinal());
    GameRegistry.addShapelessRecipe(output, input, input, input, input);

    thaumScoop =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "MB_Scoop",
            new ItemStack(Config.thaumiumScoop),
            new AspectList().add(Aspect.ORDER, 2),
            new Object[] {
              "sWs",
              "sTs",
              " T ",
              's',
              Items.stick,
              'W',
              Blocks.wool,
              'T',
              new ItemStack(Config.tcMiscResource, 1, MiscResource.THAUMIUM.ordinal())
            });

    thaumGrafter =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "MB_Grafter",
            new ItemStack(Config.thaumiumGrafter),
            new AspectList().add(Aspect.ORDER, 5),
            new Object[] {
              "  T",
              " s ",
              "s  ",
              's',
              Items.stick,
              'T',
              new ItemStack(Config.tcMiscResource, 1, MiscResource.THAUMIUM.ordinal())
            });

    frameMagic =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "MB_FrameMagic",
            new ItemStack(Config.hiveFrameMagic),
            new AspectList().add(Aspect.ORDER, 5).add(Aspect.AIR, 2).add(Aspect.EARTH, 2),
            new Object[] {
              "sss",
              "sCs",
              "sss",
              's',
              Items.stick,
              'C',
              new ItemStack(Config.tcMiscResource, 1, MiscResource.ENCHANTED_FABRIC.ordinal())
            });

    visAuraProvider =
        ThaumcraftApi.addArcaneCraftingRecipe(
            "MB_VisAuraProvider",
            new ItemStack(Config.visAuraProvider),
            new AspectList()
                .add(Aspect.ORDER, 60)
                .add(Aspect.AIR, 60)
                .add(Aspect.ENTROPY, 60)
                .add(Aspect.WATER, 60),
            new Object[] {
              "ngn",
              "gvg",
              "npn",
              'n',
              Items.gold_nugget,
              'g',
              new ItemStack(
                  Config.tcWooden, 1, ThaumcraftHelper.WoodenDeviceType.PLANKS_GREATWOOD.ordinal()),
              'v',
              new ItemStack(
                  Config.tcMetal, 1, ThaumcraftHelper.MetalDeviceType.VIS_RELAY.ordinal()),
              'p',
              Config.pollen.getStackForType(PollenType.UNUSUAL)
            });

    essenceLife =
        ThaumcraftApi.addCrucibleRecipe(
            "MB_EssenceLife",
            Config.miscResources.getStackForType(ResourceType.ESSENCE_FALSE_LIFE),
            new ItemStack(Blocks.red_flower),
            new AspectList().add(Aspect.EXCHANGE, 4).add(Aspect.PLANT, 4));

    essenceDeath =
        ThaumcraftApi.addCrucibleRecipe(
            "MB_EssenceDeath",
            Config.miscResources.getStackForType(ResourceType.ESSENCE_SHALLOW_GRAVE),
            new ItemStack(Items.rotten_flesh),
            new AspectList().add(Aspect.DEATH, 4).add(Aspect.ENTROPY, 4));

    essenceArmor =
        ThaumcraftApi.addCrucibleRecipe(
            "MB_EssenceArmor",
            Config.miscResources.getStackForType(ResourceType.ESSENCE_EVERLASTING_DURABILITY),
            new ItemStack(Items.leather),
            new AspectList().add(Aspect.ARMOR, 4).add(Aspect.MAGIC, 2));

    output = Config.miscResources.getStackForType(ResourceType.ESSENCE_FICKLE_PERMANENCE);
    essenceUnstableA =
        ThaumcraftApi.addCrucibleRecipe(
            "MB_EssenceUnstable",
            output,
            Config.propolis.getStackForType(PropolisType.UNSTABLE),
            new AspectList().add(Aspect.ENTROPY, 2).add(Aspect.EXCHANGE, 1));

    essenceUnstableB =
        ThaumcraftApi.addCrucibleRecipe(
            "MB_EssenceUnstable",
            output,
            new ItemStack(Blocks.netherrack),
            new AspectList().add(Aspect.ENTROPY, 8).add(Aspect.EXCHANGE, 5));

    essenceTime =
        ThaumcraftApi.addCrucibleRecipe(
            "MB_EssenceTime",
            Config.miscResources.getStackForType(ResourceType.ESSENCE_LOST_TIME),
            new ItemStack(Items.clock),
            new AspectList().add(Aspect.ORDER, 10).add(Aspect.VOID, 10).add(Aspect.TRAP, 4));

    input = new ItemStack(Items.ender_pearl);
    singularityA =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "MB_DimensionalSingularity",
            Config.miscResources.getStackForType(ResourceType.DIMENSIONAL_SINGULARITY, 3),
            5,
            new AspectList().add(Aspect.ELDRITCH, 10).add(Aspect.EXCHANGE, 20),
            new ItemStack(Blocks.gold_block),
            new ItemStack[] {input, input});

    ItemStack in2 = new ItemStack(Items.diamond);
    singularityB =
        ThaumcraftApi.addInfusionCraftingRecipe(
            "MB_DimensionalSingularity",
            Config.miscResources.getStackForType(ResourceType.DIMENSIONAL_SINGULARITY, 3),
            6,
            new AspectList().add(Aspect.ELDRITCH, 10).add(Aspect.EXCHANGE, 20).add(Aspect.VOID, 15),
            Config.propolis.getStackForType(PropolisType.UNSTABLE),
            new ItemStack[] {input, input, in2});

    essenceOblivion =
        ThaumcraftApi.addShapelessArcaneCraftingRecipe(
            "MB_EssenceOblivion",
            Config.miscResources.getStackForType(ResourceType.ESSENCE_SCORNFUL_OBLIVION),
            new AspectList().add(Aspect.ENTROPY, 25).add(Aspect.AIR, 40).add(Aspect.ORDER, 15),
            new Object[] {
              Config.miscResources.getStackForType(ResourceType.DIMENSIONAL_SINGULARITY),
              Blocks.dragon_egg,
            });
  }
Пример #17
0
 public static void clearAspects(ItemStack is) {
   AspectList ot = new AspectList();
   ThaumcraftApi.registerObjectTag(is, new int[] {is.getItemDamage()}, ot);
 }
Пример #18
0
  public static void abracadabra() {
    ULTRA_DEATH =
        new Aspect(
            "terminus",
            0xb90000,
            new Aspect[] {Aspect.GREED, Aspect.ELDRITCH},
            new ResourceLocation("avaritia", "textures/misc/terminus.png"),
            771);

    LudicrousItems.akashic_record = new ItemAkashicRecord();
    GameRegistry.registerItem(LudicrousItems.akashic_record, "Akashic_Record");

    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.resource, 1, 1),
        new AspectList().add(ULTRA_DEATH, 1).add(Aspect.ENERGY, 8).add(Aspect.CRYSTAL, 32));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.resource, 1, 4),
        new AspectList().add(ULTRA_DEATH, 2).add(Aspect.METAL, 12).add(Aspect.ENERGY, 12));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.resource, 1, 5),
        new AspectList().add(ULTRA_DEATH, 5).add(Aspect.EXCHANGE, 12));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.resource, 1, 6),
        new AspectList().add(ULTRA_DEATH, 16).add(Aspect.ELDRITCH, 64));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousBlocks.neutron_collector, 1, OreDictionary.WILDCARD_VALUE),
        new AspectList()
            .add(ULTRA_DEATH, 5)
            .add(Aspect.METAL, 64)
            .add(Aspect.ENERGY, 64)
            .add(Aspect.MECHANISM, 64));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.singularity, 1, 0),
        new AspectList().add(ULTRA_DEATH, 3).add(Aspect.METAL, 100));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.singularity, 1, 1),
        new AspectList().add(ULTRA_DEATH, 3).add(Aspect.METAL, 100).add(Aspect.GREED, 100));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.singularity, 1, 2),
        new AspectList().add(ULTRA_DEATH, 3).add(Aspect.SENSES, 100));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.singularity, 1, 3),
        new AspectList().add(ULTRA_DEATH, 3).add(Aspect.MECHANISM, 100).add(Aspect.ENERGY, 100));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.singularity, 1, 4),
        new AspectList().add(ULTRA_DEATH, 3).add(Aspect.CRYSTAL, 100).add(Aspect.ORDER, 100));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.singularity, 1, 5),
        new AspectList().add(ULTRA_DEATH, 3).add(Aspect.METAL, 100));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.singularity, 1, 6),
        new AspectList().add(ULTRA_DEATH, 3).add(Aspect.METAL, 100));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.singularity, 1, 7),
        new AspectList().add(ULTRA_DEATH, 3).add(Aspect.METAL, 100));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.singularity, 1, 8),
        new AspectList().add(ULTRA_DEATH, 3).add(Aspect.METAL, 100));
    ThaumcraftApi.registerObjectTag(
        new ItemStack(LudicrousItems.infinity_sword),
        new AspectList()
            .add(ULTRA_DEATH, 60)
            .add(Aspect.WEAPON, 999)
            .add(Aspect.DEATH, 999)
            .add(Aspect.ELDRITCH, 100));
    ThaumcraftApi.registerComplexObjectTag(
        new ItemStack(LudicrousItems.skull_sword),
        new AspectList()
            .add(ULTRA_DEATH, 1)
            .add(Aspect.FIRE, 2)
            .add(Aspect.CRYSTAL, 16)
            .add(Aspect.DEATH, 4));

    WAND_ROD_NEUTRONIUM =
        new WandRod(
            "infinity",
            9999999,
            new ItemStack(LudicrousBlocks.resource_block, 1, 0),
            9999,
            new CheatyWandUpdate(),
            new ResourceLocation("avaritia", "textures/models/wand_rod_neutronium.png"));
    WAND_ROD_NEUTRONIUM.setGlowing(true);
    WAND_CAP_CRYSTAL = new WandCap("matrix", 0.0F, new ItemStack(Blocks.command_block), 1000);
    WAND_CAP_CRYSTAL.setTexture(
        new ResourceLocation("avaritia", "textures/models/wand_cap_crystal.png"));

    ItemStack wand = new ItemStack(ConfigItems.itemWandCasting, 1, 9000);
    ((ItemWandCasting) ConfigItems.itemWandCasting).setRod(wand, WAND_ROD_NEUTRONIUM);
    ((ItemWandCasting) ConfigItems.itemWandCasting).setCap(wand, WAND_CAP_CRYSTAL);

    ExtremeCraftingManager.getInstance()
        .addRecipe(
            wand,
            "      C  ",
            "     CIC ",
            "     NIIC",
            "    NINC ",
            "   NXN   ",
            " CNIN    ",
            "CIIN     ",
            " CIC     ",
            "  C      ",
            'I',
            new ItemStack(LudicrousItems.resource, 1, 6),
            'C',
            new ItemStack(LudicrousItems.resource, 1, 1),
            'N',
            new ItemStack(LudicrousItems.resource, 1, 4),
            'X',
            new ItemStack(LudicrousBlocks.resource_block, 1, 1));

    if (Loader.isModLoaded("ThaumicTinkerer")) {
      try {
        boolean kami =
            Class.forName("thaumic.tinkerer.common.core.handler.ConfigHandler")
                .getField("enableKami")
                .getBoolean(null);
        if (kami) {
          Item kamiResource = Compat.getItem("ThaumicTinkerer", "kamiResource");
          Grinder.catalyst.getInput().add(new ItemStack(kamiResource, 1, 2));
        }
      } catch (Exception e) {
        Lumberjack.log(
            Level.INFO, e, "Avaritia couldn't find the last research it needs to unlock Ichor.");
      }
    }
  }
Пример #19
0
 public void apply() {
   if (target instanceof String) ThaumcraftApi.addWarpToResearch((String) target, warp);
   else if (target instanceof ItemStack) ThaumcraftApi.addWarpToItem((ItemStack) target, warp);
 }