mirror of
https://github.com/GTNewHorizons/Chisel.git
synced 2026-11-12 00:07:37 +00:00
94 lines
2.7 KiB
Java
94 lines
2.7 KiB
Java
package team.chisel.client.render;
|
|
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
import team.chisel.init.ChiselBlocks;
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.client.renderer.RenderBlocks;
|
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.IIcon;
|
|
import net.minecraft.world.IBlockAccess;
|
|
import net.minecraftforge.client.IItemRenderer;
|
|
|
|
import com.cricketcraft.ctmlib.Drawing;
|
|
import com.cricketcraft.ctmlib.RenderBlocksCTM;
|
|
import com.cricketcraft.ctmlib.TextureSubmap;
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
|
|
public class SubmapManagerAntiblock extends SubmapManagerBase {
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public static class AntiblockItemRenderer implements IItemRenderer {
|
|
|
|
@Override
|
|
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
|
|
GL11.glDisable(GL11.GL_LIGHTING);
|
|
Drawing.drawBlock(ChiselBlocks.antiBlock, ChiselBlocks.antiBlock.getIcon(0, item.getItemDamage()), (RenderBlocks) data[0]);
|
|
GL11.glEnable(GL11.GL_LIGHTING);
|
|
}
|
|
}
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
private static class RenderBlocksCTMFullbright extends RenderBlocksCTM {
|
|
|
|
@Override
|
|
protected void fillLightmap(int bottomLeft, int bottomRight, int topRight, int topLeft) {
|
|
int maxLight = 0xF000F0;
|
|
super.fillLightmap(maxLight, maxLight, maxLight, maxLight);
|
|
}
|
|
|
|
@Override
|
|
protected void fillColormap(float bottomLeft, float bottomRight, float topRight, float topLeft, float[][] map) {
|
|
int color = 0xFFFFFF;
|
|
super.fillColormap(color, color, color, color, map);
|
|
}
|
|
};
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
private static RenderBlocksCTMFullbright rb;
|
|
|
|
private String color;
|
|
private TextureSubmap submap, submapSmall;
|
|
|
|
public SubmapManagerAntiblock(String color) {
|
|
this.color = color;
|
|
}
|
|
|
|
@Override
|
|
public IIcon getIcon(int side, int meta) {
|
|
return submapSmall.getBaseIcon();
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public void registerIcons(String modName, Block block, IIconRegister register) {
|
|
submap = new TextureSubmap(register.registerIcon(modName + ":antiblock/" + color + "-antiBlock-ctm"), 4, 4);
|
|
submapSmall = new TextureSubmap(register.registerIcon(modName + ":antiblock/" + color + "-antiBlock"), 2, 2);
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public RenderBlocks createRenderContext(RenderBlocks rendererOld, Block block, IBlockAccess world) {
|
|
if (rb == null) {
|
|
rb = new RenderBlocksCTMFullbright();
|
|
}
|
|
rb.setRenderBoundsFromBlock(block);
|
|
rb.submap = submap;
|
|
rb.submapSmall = submapSmall;
|
|
return rb;
|
|
}
|
|
}
|