Ritual holograms!

This commit is contained in:
Arcaratus 2016-02-18 21:59:10 -05:00
parent 035ba94976
commit da711c0461
6 changed files with 238 additions and 5 deletions

View file

@ -0,0 +1,51 @@
package WayofTime.bloodmagic.client.helper;
import WayofTime.bloodmagic.api.Constants;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.TextureStitchEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
/**
* Courtesy of williewillus <a href="https://github.com/williewillus/Botania/blob/MC18/"></a>
*/
public class MiscIcons
{
public static final MiscIcons INSTANCE = new MiscIcons();
public TextureAtlasSprite
ritualStoneBlankIcon,
ritualStoneWaterIcon,
ritualStoneFireIcon,
ritualStoneEarthIcon,
ritualStoneAirIcon,
ritualStoneDawnIcon,
ritualStoneDuskIcon;
private MiscIcons() {}
@SubscribeEvent
public void onTextureStitch(TextureStitchEvent.Pre event)
{
final String BLOCKS = "blocks";
ritualStoneBlankIcon = forName(event.map, "RitualStone", BLOCKS);
ritualStoneWaterIcon = forName(event.map, "WaterRitualStone", BLOCKS);
ritualStoneFireIcon = forName(event.map, "FireRitualStone", BLOCKS);
ritualStoneEarthIcon = forName(event.map, "EarthRitualStone", BLOCKS);
ritualStoneAirIcon = forName(event.map, "AirRitualStone", BLOCKS);
ritualStoneDawnIcon = forName(event.map, "LightRitualStone", BLOCKS);
ritualStoneDuskIcon = forName(event.map, "DuskRitualStone", BLOCKS);
}
public static TextureAtlasSprite forName(TextureMap textureMap, String name)
{
return textureMap.registerSprite(new ResourceLocation(Constants.Mod.DOMAIN + name));
}
public static TextureAtlasSprite forName(TextureMap textureMap, String name, String dir)
{
return textureMap.registerSprite(new ResourceLocation(Constants.Mod.DOMAIN + dir + "/" + name));
}
}

View file

@ -0,0 +1,68 @@
package WayofTime.bloodmagic.client.helper;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.WorldRenderer;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.world.World;
import org.lwjgl.opengl.GL11;
public class RenderFakeBlocks
{
public static void drawFakeBlock(TextureAtlasSprite texture, double minX, double minY, double minZ, World world)
{
if (texture == null)
{
return;
}
double maxX = minX + 1;
double maxY = minY + 1;
double maxZ = minZ + 1;
Tessellator tessellator = Tessellator.getInstance();
WorldRenderer wr = tessellator.getWorldRenderer();
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture);
wr.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
// wr.setColorRGBA(255, 255, 255, 200);
float texMinU = texture.getMinU();
float texMinV = texture.getMinV();
float texMaxU = texture.getMaxU();
float texMaxV = texture.getMaxV();
wr.pos(minX, minY, minZ).tex(texMinU, texMinV).endVertex();
wr.pos(maxX, minY, minZ).tex(texMaxU, texMinV).endVertex();
wr.pos(maxX, minY, maxZ).tex(texMaxU, texMaxV).endVertex();
wr.pos(minX, minY, maxZ).tex(texMinU, texMaxV).endVertex();
wr.pos(minX, maxY, maxZ).tex(texMinU, texMaxV).endVertex();
wr.pos(maxX, maxY, maxZ).tex(texMaxU, texMaxV).endVertex();
wr.pos(maxX, maxY, minZ).tex(texMaxU, texMinV).endVertex();
wr.pos(minX, maxY, minZ).tex(texMinU, texMinV).endVertex();
wr.pos(maxX, minY, minZ).tex(texMinU, texMaxV).endVertex();
wr.pos(minX, minY, minZ).tex(texMaxU, texMaxV).endVertex();
wr.pos(minX, maxY, minZ).tex(texMaxU, texMinV).endVertex();
wr.pos(maxX, maxY, minZ).tex(texMinU, texMinV).endVertex();
wr.pos(minX, minY, maxZ).tex(texMinU, texMaxV).endVertex();
wr.pos(maxX, minY, maxZ).tex(texMaxU, texMaxV).endVertex();
wr.pos(maxX, maxY, maxZ).tex(texMaxU, texMinV).endVertex();
wr.pos(minX, maxY, maxZ).tex(texMinU, texMinV).endVertex();
wr.pos(minX, minY, minZ).tex(texMinU, texMaxV).endVertex();
wr.pos(minX, minY, maxZ).tex(texMaxU, texMaxV).endVertex();
wr.pos(minX, maxY, maxZ).tex(texMaxU, texMinV).endVertex();
wr.pos(minX, maxY, minZ).tex(texMinU, texMinV).endVertex();
wr.pos(maxX, minY, maxZ).tex(texMinU, texMaxV).endVertex();
wr.pos(maxX, minY, minZ).tex(texMaxU, texMaxV).endVertex();
wr.pos(maxX, maxY, minZ).tex(texMaxU, texMinV).endVertex();
wr.pos(maxX, maxY, maxZ).tex(texMinU, texMinV).endVertex();
tessellator.draw();
}
}

View file

@ -26,7 +26,6 @@ import org.lwjgl.opengl.GL11;
public final class ShaderHelper
{
private static final int VERT_ST = ARBVertexShader.GL_VERTEX_SHADER_ARB;
private static final int FRAG_ST = ARBFragmentShader.GL_FRAGMENT_SHADER_ARB;