package com.jaquadro.minecraft.gardenstuff.integration.lantern;
import com.jaquadro.minecraft.gardenapi.api.component.StandardLanternSource;
import com.jaquadro.minecraft.gardencore.client.renderer.support.ModularBoxRenderer;
import com.jaquadro.minecraft.gardencore.util.RenderHelper;
import com.jaquadro.minecraft.gardenstuff.block.BlockCandelabra;
import com.jaquadro.minecraft.gardenstuff.core.ModBlocks;
import com.jaquadro.minecraft.gardenstuff.core.ModItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.world.World;
import net.minecraftforge.client.IItemRenderer;
import java.util.Random;
public class CandleLanternSource extends StandardLanternSource
{
private ModularBoxRenderer boxrender = new ModularBoxRenderer();
public CandleLanternSource () {
super(new LanternSourceInfo("candle", ModItems.candle, 14));
}
@Override
@SideOnly(Side.CLIENT)
public void render (RenderBlocks renderer, int x, int y, int z, int meta, int pass) {
float unit = 0.0625f;
BlockCandelabra block = ModBlocks.candelabra;
RenderHelper.instance.state.setRenderOffset(0, -.375f, 0);
RenderHelper.instance.state.setColorMult(1, .9f, .8f, .5f);
boxrender.setUnit(0);
boxrender.setColor(ModularBoxRenderer.COLOR_WHITE);
boxrender.setIcon(block.getIconCandleTop(), 1);
for (int i = 2; i < 6; i++)
boxrender.setIcon(block.getIconCandleSide(), i);
// Candle
boxrender.renderExterior(renderer.blockAccess, block, x, y, z, unit * 6.5f, unit * 7, unit * 6.5f, unit * 9.5f, unit * 13, unit * 9.5f, 0, ModularBoxRenderer.CUT_YNEG);
RenderHelper.instance.state.resetColorMult();
RenderHelper.instance.setRenderBounds(0, 0, 0, 1, 1, 1);
RenderHelper.instance.renderCrossedSquares(renderer.blockAccess, block, x, y, z, block.getIconCandleSide());
RenderHelper.instance.state.clearRenderOffset();
}
@Override
@SideOnly(Side.CLIENT)
public void renderItem (RenderBlocks renderer, IItemRenderer.ItemRenderType renderType, int meta) {
float unit = 0.0625f;
BlockCandelabra block = ModBlocks.candelabra;
RenderHelper.instance.state.setRenderOffset(0, -.375f, 0);
RenderHelper.instance.state.setColorMult(1, .9f, .8f, .5f);
boxrender.setUnit(0);
boxrender.setColor(ModularBoxRenderer.COLOR_WHITE);
boxrender.setIcon(block.getIconCandleTop(), 1);
for (int i = 2; i < 6; i++)
boxrender.setIcon(block.getIconCandleSide(), i);
int x = 0;
int y = 0;
int z = 0;
// Candle
boxrender.renderExterior(null, block, x, y, z, unit * 6.5f, unit * 7, unit * 6.5f, unit * 9.5f, unit * 13, unit * 9.5f, 0, ModularBoxRenderer.CUT_YNEG);
RenderHelper.instance.state.resetColorMult();
RenderHelper.instance.setRenderBounds(0, 0, 0, 1, 1, 1);
RenderHelper.instance.renderCrossedSquares(block, meta, block.getIconCandleSide());
RenderHelper.instance.state.clearRenderOffset();
}
@Override
@SideOnly(Side.CLIENT)
public void renderParticle (World world, int x, int y, int z, Random rand, int meta) {
double px = x + 0.5F;
double py = y + 0.625F;
double pz = z + 0.5F;
world.spawnParticle("flame", px, py, pz, 0.0D, 0.0D, 0.0D);
}
}