/**
* This class was created by <Vazkii>. It's distributed as
* part of the Botania Mod. Get the Source Code in github:
* https://github.com/Vazkii/Botania
*
* Botania is Open Source and distributed under the
* Botania License: http://botaniamod.net/license.php
*
* File Created @ [Jun 27, 2015, 7:31:58 PM (GMT)]
*/
package vazkii.botania.api.lexicon.multiblock;
import net.minecraft.entity.Entity;
import net.minecraft.util.MathHelper;
/**
* A set of Multiblock objects for various rotations.
*/
public class MultiblockSet {
private final Multiblock[] mbs;
public MultiblockSet(Multiblock[] mbs) {
this.mbs = mbs;
}
public MultiblockSet(Multiblock mb) {
this(mb.createRotations());
}
public Multiblock getForEntity(Entity e) {
return getForRotation(e.rotationYaw);
}
public Multiblock getForRotation(double rotation) {
int facing = MathHelper.floor_double(rotation * 4.0 / 360.0 + 0.5) & 3;
return getForIndex(facing);
}
public Multiblock getForIndex(int index) {
return mbs[Math.min(mbs.length - 1, index)];
}
}