package crazypants.enderio.rail; import java.util.Collections; import java.util.List; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityMinecart; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.common.Loader; public class CartLinkUtil implements ICartLinkUtil { public static final ICartLinkUtil instance; public static final ICartLinkUtil defaultInstance = new CartLinkUtil(); static { ICartLinkUtil daInstance; if(Loader.isModLoaded("Railcraft")) { try { daInstance = new RailcraftLinkUtil(); } catch (Exception e) { daInstance = defaultInstance; } } else { daInstance = defaultInstance; } instance = daInstance; } private CartLinkUtil() { } @Override public void setCartDirection(EntityMinecart cart, ForgeDirection dir) { double velocity = Math.max(Math.abs(cart.motionX), Math.abs(cart.motionZ)); cart.motionX = dir.offsetX * velocity; cart.motionZ = dir.offsetZ * velocity; } @Override public int getNumberOfCartsInTrain(EntityMinecart cart) { if(cart == null) { return 0; } return 1; } @Override public List<EntityMinecart> getCartsInTrain(EntityMinecart cart) { if(cart == null) { return Collections.emptyList(); } return Collections.singletonList(cart); } @Override public void updateCartLinks(World world, EntityMinecart cart) { } @Override public void recreateLinks(EntityMinecart cart) { } @Override public void breakLinks(World worldObj, Entity entity) { } }