001 package net.minecraftforge.common; 002 003 import net.minecraft.util.AxisAlignedBB; 004 import net.minecraft.entity.Entity; 005 import net.minecraft.entity.item.EntityMinecart; 006 007 /** 008 * This class defines a replacement for the default minecart collision code. 009 * Only one handler can be registered at a time. It it registered with EntityMinecart.registerCollisionHandler(). 010 * If you use this, make it a configuration option. 011 * @author CovertJaguar 012 */ 013 public interface IMinecartCollisionHandler 014 { 015 016 /** 017 * This basically replaces the function of the same name in EnityMinecart. 018 * Code in IMinecartHooks.applyEntityCollisionHook is still run. 019 * @param cart The cart that called the collision. 020 * @param other The object it collided with. 021 */ 022 public void onEntityCollision(EntityMinecart cart, Entity other); 023 024 /** 025 * This function replaced the function of the same name in EntityMinecart. 026 * It is used to define whether minecarts collide with specific entities, 027 * for example items. 028 * @param cart The cart for which the collision box was requested. 029 * @param other The entity requesting the collision box. 030 * @return The collision box or null. 031 */ 032 public AxisAlignedBB getCollisionBox(EntityMinecart cart, Entity other); 033 034 /** 035 * This function is used to define the box used for detecting minecart collisions. 036 * It is generally bigger that the normal collision box. 037 * @param cart The cart for which the collision box was requested. 038 * @return The collision box, cannot be null. 039 */ 040 public AxisAlignedBB getMinecartCollisionBox(EntityMinecart cart); 041 042 /** 043 * This function replaces the function of the same name in EntityMinecart. 044 * It defines whether minecarts are solid to the player. 045 * @param cart The cart for which the bounding box was requested. 046 * @return The bounding box or null. 047 */ 048 public AxisAlignedBB getBoundingBox(EntityMinecart cart); 049 } 050