public GuiAspectFormer(EntityPlayer ep, TileEntityAspectFormer te) { super(new CoreContainer(ep, te), ep, te); list.addAll(ReikaThaumHelper.getAllDiscoveredAspects(ep)); ReikaThaumHelper.sortAspectList(list); ySize = 74; tile = te; mode = te.getMode(); }
@Override @ModDependent(ModList.THAUMCRAFT) public ItemStack onWandRightClick(World world, ItemStack wandstack, EntityPlayer player) { player.setItemInUse(wandstack, Integer.MAX_VALUE); ReikaThaumHelper.setWandInUse(wandstack, this); return wandstack; }
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++; } }
@Override @ModDependent(ModList.THAUMCRAFT) public void onUsingWandTick(ItemStack wandstack, EntityPlayer player, int count) { if (!worldObj.isRemote && this.canConduct() && player.ticksExisted % 5 == 0) { if (!ChromaOptions.HARDTHAUM.getState() || ReikaThaumHelper.isResearchComplete(player, "NODETAPPER2")) { AspectList al = ReikaThaumHelper.decompose(this.getAspects()); for (Aspect a : al.aspects.keySet()) { int amt = 2; if (ReikaThaumHelper.isResearchComplete(player, "NODETAPPER1")) amt *= 2; if (ReikaThaumHelper.isResearchComplete(player, "NODETAPPER2")) amt *= 2; amt = Math.min(amt, al.getAmount(a)); amt = Math.min(amt, ReikaThaumHelper.getWandSpaceFor(wandstack, a)); int ret = ReikaThaumHelper.addVisToWand(wandstack, a, amt); int added = amt - ret; if (added > 0) { this.drain(color, Math.min(energy, energy - added * 48)); } } } } }