package pneumaticCraft.api.client.assemblymachine; import java.util.HashMap; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class AssemblyRenderOverriding{ public static final HashMap<Integer, IAssemblyRenderOverriding> renderOverrides = new HashMap<Integer, IAssemblyRenderOverriding>(); public static void addRenderOverride(Block block, IAssemblyRenderOverriding renderOverride){ renderOverrides.put(Block.getIdFromBlock(block), renderOverride); } public static void addRenderOverride(Item item, IAssemblyRenderOverriding renderOverride){ renderOverrides.put(Item.getIdFromItem(item), renderOverride); } public static interface IAssemblyRenderOverriding{ /** * This method will be called just before the IO Unit's held stack is being rendered. You can insert GL11 calls here to * rotate the model for example. push and pop matrices are not needed, this is done for you. * You can also choose to do the whole rendering yourself, you'll need to return false then to indicate that * PneumaticCraft shouldn't render the item. * @param renderedStack itemStack that is being rendered * @return true if PneumaticCraft should render the item (after your changes), or false to cancel rendering. */ public boolean applyRenderChangeIOUnit(ItemStack renderedStack); /** * Same deal as with the applyRenderChangeIOUnit(), but now for the Assembly Platform. * @param renderedStack itemStack that is being rendered * @return true if PneumaticCraft should render the item (after your changes), or false to cancel rendering. */ public boolean applyRenderChangePlatform(ItemStack renderedStack); /** * Should return the distance the claw travels before it is gripped to the stack. * By default it's 0.0875F for items and 0.00625F for blocks, 0.09375 when the claw is completely closed. * @param renderedStack * @return */ public float getIOUnitClawShift(ItemStack renderedStack); /** * Should return the distance the claw travels before it is gripped to the stack. * By default it's 0.0875F for items and 0.00625F for blocks, 0.09375 when the claw is completely closed. * @param renderedStack * @return */ public float getPlatformClawShift(ItemStack renderedStack); } }