use of minechem.fluid.FluidMolecule in project Minechem by iopleke.
the class FluidItemRenderingHandler method renderItem.
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
Fluid fluid = ((BlockFluidBase) ((ItemBlock) item.getItem()).field_150939_a).getFluid();
if (fluid instanceof FluidElement) {
RenderingUtil.setColorForElement(((FluidElement) fluid).element);
} else if (fluid instanceof FluidMolecule) {
MoleculeEnum molecule = ((FluidMolecule) fluid).molecule;
GL11.glColor3f(molecule.red, molecule.green, molecule.blue);
}
IIcon icon = ((ItemBlock) item.getItem()).field_150939_a.getBlockTextureFromSide(0);
switch(type) {
case INVENTORY:
RenderingUtil.drawTexturedRectUV(0, 0, 0, 16, 16, icon);
break;
case EQUIPPED_FIRST_PERSON:
case EQUIPPED:
ItemRenderer.renderItemIn2D(Tessellator.instance, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F);
break;
case ENTITY:
EntityItem entityItem = (EntityItem) data[1];
if (entityItem.worldObj == null) {
float angle = (Minecraft.getSystemTime() % 8000L) / 8000.0F * 360.0F;
GL11.glPushMatrix();
GL11.glRotatef(angle, 0.0F, 1.0F, 0.0F);
GL11.glTranslatef(-0.2F, -0.5F, 0.0F);
renderItemAsEntity(item, icon);
GL11.glPopMatrix();
} else {
renderItemAsEntity(item, icon);
}
break;
default:
break;
}
}
use of minechem.fluid.FluidMolecule in project Minechem by iopleke.
the class MoleculeItem method onItemUseFirst.
@Override
public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
TileEntity te = world.getTileEntity(x, y, z);
boolean result = !world.isRemote;
if (te != null && te instanceof IFluidHandler && !player.isSneaking() && !(te instanceof IInventory)) {
int filled = 0;
for (int i = 0; i < 6; i++) {
FluidStack fluidStack = new FluidStack(FluidRegistry.WATER, 125);
if (getMolecule(stack) != MoleculeEnum.water) {
FluidMolecule fluid = FluidHelper.molecules.get(getMolecule(stack));
if (fluid == null) {
return super.onItemUseFirst(stack, player, world, x, y, z, side, hitX, hitY, hitZ);
}
fluidStack = new FluidStack(fluid, 125);
}
filled = ((IFluidHandler) te).fill(ForgeDirection.getOrientation(i), fluidStack, false);
if (filled > 0) {
if (result) {
((IFluidHandler) te).fill(ForgeDirection.getOrientation(i), fluidStack, true);
}
if (!player.capabilities.isCreativeMode) {
MinechemUtil.incPlayerInventory(stack, -1, player, new ItemStack(MinechemItemsRegistration.element, 1, 0));
}
return result || stack.stackSize <= 0;
}
}
return result;
}
return super.onItemUseFirst(stack, player, world, x, y, z, side, hitX, hitY, hitZ);
}
Aggregations