diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java index 5f1a86261..a0a3ceb56 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java @@ -27,7 +27,7 @@ public class TileEntityHeatCollector extends TileEntityBase implements IEnergyPr ArrayList blocksAround = new ArrayList(); if(energyProducedPerTick <= this.getMaxEnergyStored(ForgeDirection.UNKNOWN)-this.getEnergyStored(ForgeDirection.UNKNOWN)){ for(int i = 1; i <= 5; i++){ - WorldPos coords = WorldUtil.getCoordsFromSide(WorldUtil.getDirectionByRotatingSide(i), worldObj, xCoord, yCoord, zCoord); + WorldPos coords = WorldUtil.getCoordsFromSide(WorldUtil.getDirectionBySidesInOrder(i), worldObj, xCoord, yCoord, zCoord); if(coords != null){ Block block = worldObj.getBlock(coords.getX(), coords.getY(), coords.getZ()); if(block != null && block.getMaterial() == Material.lava && worldObj.getBlockMetadata(coords.getX(), coords.getY(), coords.getZ()) == 0){ @@ -43,7 +43,7 @@ public class TileEntityHeatCollector extends TileEntityBase implements IEnergyPr Random rand = new Random(); if(rand.nextInt(randomChance) == 0){ int randomSide = blocksAround.get(rand.nextInt(blocksAround.size())); - WorldUtil.breakBlockAtSide(WorldUtil.getDirectionByRotatingSide(randomSide), worldObj, xCoord, yCoord, zCoord); + WorldUtil.breakBlockAtSide(WorldUtil.getDirectionBySidesInOrder(randomSide), worldObj, xCoord, yCoord, zCoord); } } if(this.getEnergyStored(ForgeDirection.UNKNOWN) > 0){ diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInputter.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInputter.java index 11885e20f..06c471191 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInputter.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInputter.java @@ -309,8 +309,8 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt public void initVars(){ //Gets the Place to put and Pull - this.placeToPull = WorldUtil.getTileEntityFromSide(WorldUtil.getDirectionByRotatingSide(this.sideToPull), this.worldObj, this.xCoord, this.yCoord, this.zCoord); - this.placeToPut = WorldUtil.getTileEntityFromSide(WorldUtil.getDirectionByRotatingSide(this.sideToPut), this.worldObj, this.xCoord, this.yCoord, this.zCoord); + this.placeToPull = WorldUtil.getTileEntityFromSide(WorldUtil.getDirectionBySidesInOrder(this.sideToPull), this.worldObj, this.xCoord, this.yCoord, this.zCoord); + this.placeToPut = WorldUtil.getTileEntityFromSide(WorldUtil.getDirectionBySidesInOrder(this.sideToPut), this.worldObj, this.xCoord, this.yCoord, this.zCoord); //Resets the Variables if(this.placeToPull instanceof IInventory){ diff --git a/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java b/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java index ce4d7789a..b080f7423 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java @@ -193,23 +193,25 @@ public class WorldUtil{ } } - public static ForgeDirection getDirectionByRotatingSide(int side){ - switch(side){ - case 0: - return ForgeDirection.UP; - case 1: - return ForgeDirection.DOWN; - case 2: - return ForgeDirection.NORTH; - case 3: - return ForgeDirection.EAST; - case 4: - return ForgeDirection.SOUTH; - case 5: - return ForgeDirection.WEST; - default: - return ForgeDirection.UNKNOWN; + /** + * Horizontal Directions in Order: + * Up, Down + */ + public static final ForgeDirection[] HORIZONTAL_DIRECTIONS_ORDER = new ForgeDirection[]{ForgeDirection.UP, ForgeDirection.DOWN}; + /** + * Cardinal Directions in Order: + * North, East, South, West + */ + public static final ForgeDirection[] CARDINAL_DIRECTIONS_ORDER = new ForgeDirection[]{ForgeDirection.NORTH, ForgeDirection.EAST, ForgeDirection.SOUTH, ForgeDirection.WEST}; + + public static ForgeDirection getDirectionBySidesInOrder(int side){ + if(side >= 0 && side < HORIZONTAL_DIRECTIONS_ORDER.length+CARDINAL_DIRECTIONS_ORDER.length){ + if(side < HORIZONTAL_DIRECTIONS_ORDER.length){ + return HORIZONTAL_DIRECTIONS_ORDER[side]; + } + else return CARDINAL_DIRECTIONS_ORDER[side-HORIZONTAL_DIRECTIONS_ORDER.length]; } + return ForgeDirection.UNKNOWN; } public static ArrayList getMaterialsAround(World world, int x, int y, int z){