package WayofTime.alchemicalWizardry.common.rituals; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import WayofTime.alchemicalWizardry.api.Int3; import WayofTime.alchemicalWizardry.api.RoutingFocusParadigm; import WayofTime.alchemicalWizardry.api.RoutingFocusPosAndFacing; import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler; import WayofTime.alchemicalWizardry.common.items.routing.InputRoutingFocus; import WayofTime.alchemicalWizardry.common.items.routing.OutputRoutingFocus; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; public class RitualEffectItemRouting extends RitualEffect { Random rand = new Random(); @Override public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); int z = ritualStone.getZCoord(); if (world.getWorldTime() % 20 != 0) { return; } int xBufOffset = 0; int yBufOffset = 1; int zBufOffset = 0; // TileEntity bufferTile = world.getTileEntity(x + xBufOffset, y + yBufOffset, z + zBufOffset); // // if(!(bufferTile instanceof IInventory)) // { // return; // } Map tileMap = new HashMap(); // IInventory bufferInventory = (IInventory)bufferTile; List outputList = new ArrayList(); for(int i=0; i<4; i++) //Check output foci chests, return if none available { Int3 outputFocusChest = this.getOutputBufferChestLocation(i); TileEntity outputFocusInv = world.getTileEntity(x + outputFocusChest.xCoord, y + outputFocusChest.yCoord, z + outputFocusChest.zCoord); if(outputFocusInv instanceof IInventory) { outputList.add((IInventory)outputFocusInv); } } if(outputList.isEmpty()) { return; } for(IInventory outputFocusInventory : outputList) { { OutputRoutingFocus outputFocus;; RoutingFocusParadigm parad = new RoutingFocusParadigm(); TileEntity outputChest = null; //Destination ForgeDirection inputDirection;; { IInventory outputChestInventory = null; boolean lastItemWasFocus = true; for(int j=0; j getRitualComponentList() { ArrayList omegaRitual = new ArrayList(); this.addCornerRunes(omegaRitual, 1, 0, RitualComponent.BLANK); this.addOffsetRunes(omegaRitual, 2, 1, 0, RitualComponent.FIRE); this.addParallelRunes(omegaRitual, 4, 0, RitualComponent.WATER); this.addParallelRunes(omegaRitual, 5, 0, RitualComponent.EARTH); this.addCornerRunes(omegaRitual, 4, 0, RitualComponent.WATER); return omegaRitual; } }