package fox.spiteful.forbidden.tiles; import fox.spiteful.forbidden.compat.DarkSignature; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; import thaumcraft.api.aspects.Aspect; import thaumcraft.api.aspects.AspectList; import thaumcraft.common.Thaumcraft; import thaumcraft.common.config.ConfigItems; import thaumcraft.common.items.ItemWispEssence; import vazkii.botania.api.BotaniaAPI; import vazkii.botania.api.lexicon.LexiconEntry; import vazkii.botania.api.subtile.SubTileFunctional; public class SubTileEuclidaisy extends SubTileFunctional { private static final int cost = 9000; public static LexiconEntry lexicon; @Override public void onUpdate(){ super.onUpdate(); if(redstoneSignal > 0) return; if(mana >= cost && !supertile.getWorldObj().isRemote && this.ticksExisted % 400 == 0) { Thaumcraft.proxy.burst(supertile.getWorldObj(), (double)supertile.xCoord + 0.5D, (double)supertile.yCoord + 0.5D, (double)supertile.zCoord + 0.5D, 1.0F); AspectList aspect; if(supertile.getWorldObj().rand.nextInt(10) < 4) aspect = (new AspectList()).add(Aspect.AURA, 2); else { Aspect[] aspects = Aspect.aspects.values().toArray(new Aspect[0]); aspect = (new AspectList()).add(aspects[supertile.getWorldObj().rand.nextInt(aspects.length)], 2); } ItemStack ess = new ItemStack(ConfigItems.itemWispEssence); ((ItemWispEssence)ess.getItem()).setAspects(ess, aspect); dropItem(supertile.getWorldObj(), supertile.xCoord, supertile.yCoord, supertile.zCoord, ess); mana -= cost; sync(); } } public void dropItem(World world, int x, int y, int z, ItemStack item){ float f = 0.7F; double d0 = (double)(world.rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D; double d1 = (double)(world.rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D; double d2 = (double)(world.rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D; EntityItem entityitem = new EntityItem(world, (double)x + d0, (double)y + d1, (double)z + d2, item); entityitem.delayBeforeCanPickup = 10; world.spawnEntityInWorld(entityitem); } @Override public int getColor(){ return 0xFF8CFF; } @Override public int getMaxMana() { return cost; } @Override public boolean acceptsRedstone() { return true; } @Override public LexiconEntry getEntry(){ return lexicon; } @Override public IIcon getIcon(){ return BotaniaAPI.getSignatureForName("euclidaisy").getIconForStack(null); } }