From 4ac678aa0087100bf2a61d414df1f194bc5c9475 Mon Sep 17 00:00:00 2001 From: Calclavia Date: Sun, 26 Jan 2014 16:09:38 +0800 Subject: [PATCH] Large gears are now omni-directional --- .../mechanical/gear/PartGear.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/main/java/resonantinduction/mechanical/gear/PartGear.java b/src/main/java/resonantinduction/mechanical/gear/PartGear.java index 438e1fa9..fba18427 100644 --- a/src/main/java/resonantinduction/mechanical/gear/PartGear.java +++ b/src/main/java/resonantinduction/mechanical/gear/PartGear.java @@ -3,8 +3,6 @@ package resonantinduction.mechanical.gear; import java.util.HashSet; import java.util.Set; -import com.builtbroken.common.Pair; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -17,10 +15,7 @@ import resonantinduction.mechanical.network.IMechanical; import resonantinduction.mechanical.network.PartMechanical; import calclavia.lib.multiblock.reference.IMultiBlockStructure; import calclavia.lib.multiblock.reference.MultiBlockHandler; -import calclavia.lib.network.PacketHandler; import calclavia.lib.prefab.block.BlockAdvanced; -import codechicken.lib.data.MCDataInput; -import codechicken.lib.data.MCDataOutput; import codechicken.lib.vec.Rotation; import codechicken.lib.vec.Vector3; import codechicken.multipart.ControlKeyModifer; @@ -218,12 +213,27 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock public universalelectricity.api.vector.Vector3[] getMultiBlockVectors() { Set vectors = new HashSet(); + ForgeDirection dir = placementSide; + + universalelectricity.api.vector.Vector3 rotationalAxis = universalelectricity.api.vector.Vector3.UP(); + + if (placementSide == ForgeDirection.NORTH || placementSide == ForgeDirection.SOUTH) + { + rotationalAxis = universalelectricity.api.vector.Vector3.EAST(); + } + else if (placementSide == ForgeDirection.WEST || placementSide == ForgeDirection.EAST) + { + rotationalAxis = universalelectricity.api.vector.Vector3.SOUTH(); + } for (int x = -1; x <= 1; x++) { for (int z = -1; z <= 1; z++) { - vectors.add(new universalelectricity.api.vector.Vector3(x, 0, z)); + universalelectricity.api.vector.Vector3 vector = new universalelectricity.api.vector.Vector3(x, 0, z); + vector.rotate(90, rotationalAxis); + vector = vector.round(); + vectors.add(vector); } }