From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- .../fbs/block/render/RenderAlchemyCauldron.class | Bin 0 -> 5760 bytes .../fbs/block/render/RenderAlchemyCauldron.java | 188 +++++++++++++++++++ .../fbs/block/render/RenderAlchemyTable.class | Bin 0 -> 3330 bytes .../fbs/block/render/RenderAlchemyTable.java | 93 ++++++++++ .../plusplus/fbs/block/render/RenderBarrier.class | Bin 0 -> 2918 bytes .../plusplus/fbs/block/render/RenderBarrier.java | 106 +++++++++++ .../jp/plusplus/fbs/block/render/RenderCharm.class | Bin 0 -> 2041 bytes .../jp/plusplus/fbs/block/render/RenderCharm.java | 52 ++++++ .../fbs/block/render/RenderDecorations.class | Bin 0 -> 5180 bytes .../fbs/block/render/RenderDecorations.java | 198 +++++++++++++++++++++ .../fbs/block/render/RenderDirectional.class | Bin 0 -> 2750 bytes .../fbs/block/render/RenderDirectional.java | 99 +++++++++++ .../fbs/block/render/RenderHarvestable.class | Bin 0 -> 6538 bytes .../fbs/block/render/RenderHarvestable.java | 191 ++++++++++++++++++++ .../plusplus/fbs/block/render/RenderMirror.class | Bin 0 -> 2615 bytes .../jp/plusplus/fbs/block/render/RenderMirror.java | 76 ++++++++ .../fbs/block/render/RenderPortalWarp.class | Bin 0 -> 1693 bytes .../fbs/block/render/RenderPortalWarp.java | 46 +++++ 18 files changed, 1049 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyCauldron.class create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyCauldron.java create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyTable.class create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyTable.java create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderBarrier.class create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderBarrier.java create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderCharm.class create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderCharm.java create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderDecorations.class create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderDecorations.java create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderDirectional.class create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderDirectional.java create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderHarvestable.class create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderHarvestable.java create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderMirror.class create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderMirror.java create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderPortalWarp.class create mode 100644 src/main/java/jp/plusplus/fbs/block/render/RenderPortalWarp.java (limited to 'src/main/java/jp/plusplus/fbs/block/render') diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyCauldron.class b/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyCauldron.class new file mode 100644 index 0000000..99a999b Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyCauldron.class differ diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyCauldron.java b/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyCauldron.java new file mode 100644 index 0000000..9c8fd60 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyCauldron.java @@ -0,0 +1,188 @@ +package jp.plusplus.fbs.block.render; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.block.BlockCore; +import jp.plusplus.fbs.block.model.ModelAlchemyCauldron; +import jp.plusplus.fbs.model.ModelMirror; +import mods.defeatedcrow.common.fluid.BlockCamOilFluid; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.init.Blocks; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.IBlockAccess; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +/** + * Created by pluslus_F on 2015/09/24. + */ +public class RenderAlchemyCauldron extends TileEntitySpecialRenderer implements ISimpleBlockRenderingHandler { + public static ResourceLocation rl = new ResourceLocation(FBS.MODID + ":textures/models/AlchemyCauldron.png"); + protected ModelAlchemyCauldron model = new ModelAlchemyCauldron(); + float f4 = 4.0f / 16.0f; + float f5 = 5.0f / 16.0f; + float f9 = 9.0f / 16.0f; + float f11 = 11.0f / 16.0f; + float f12 = 12.0f / 16.0f; + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + GL11.glPushMatrix(); + GL11.glTranslatef(0.5f, 0.5f, 0.5f); + GL11.glRotatef(180, 0, 0, 1); + GL11.glRotatef(90, 0, -1, 0); + + float scale = 0.0625f*0.8f; + GL11.glScalef(scale, scale, scale); + + bindTexture(rl); + model.render(null, 0, 0, 0, 0, 0, 1.0f); + bindTexture(TextureMap.locationBlocksTexture); + + GL11.glScalef(1f, 1f, 1f); + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + if (modelId == this.getRenderId()) { + int meta = world.getBlockMetadata(x, y, z)&7; + + renderer.setOverrideBlockTexture(Blocks.brick_block.getIcon(0, 0)); + + + if (meta == 0) { + renderer.setRenderBounds(f5, 0, f5, 1, f5, 1); + renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(f5, f5, f5, f12, f9, f12); + renderer.renderStandardBlock(block, x, y, z); + } else if (meta == 1) { + renderer.setRenderBounds(0, 0, f5, f11, f5, 1); + renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(f4, f5, f5, f11, f9, f12); + renderer.renderStandardBlock(block, x, y, z); + } else if (meta == 2) { + renderer.setRenderBounds(f5, 0, 0, 1, f5, f11); + renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(f5, f5, f5, f12, f9, f11); + renderer.renderStandardBlock(block, x, y, z); + } else if (meta == 3) { + renderer.setRenderBounds(0, 0, 0, f11, f5, f11); + renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(f4, f5, f5, f11, f9, f11); + renderer.renderStandardBlock(block, x, y, z); + } + + renderer.setRenderBounds(0, 0, 0, 1, 1, 1); + renderer.clearOverrideBlockTexture(); + return true; + } + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return FBS.renderAlchemyCauldronId; + } + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float p_147500_8_) { + int meta = te.getWorldObj().getBlockMetadata(te.xCoord, te.yCoord, te.zCoord); + if ((meta&7) != 0) return; + + GL11.glPushMatrix(); + + if((meta&8)!=0){ + GL11.glTranslatef((float) x + 0.5f, (float) y + (16.0f - 7.0f) / 16.0f, (float) z + 0.5f); + GL11.glRotatef(90.0f, 0, 1, 0); + } + else{ + GL11.glTranslatef((float) x + 0.5f + 1.f, (float) y + (16.0f - 7.0f) / 16.0f, (float) z + 0.5f); + } + + GL11.glRotatef(180.0f, 0, 0, 1); + float scale = 0.0625f; + GL11.glScalef(scale, scale, scale); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + this.bindTexture(rl); + model.render(null, 0, 0, 0, 0, 0, 1.0f); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + + + //溜まった水の描画 + IIcon icon = BlockCore.mana.getIcon(); + if (icon == null) return; + float minU=icon.getInterpolatedU(16 * 0); + float maxU=icon.getInterpolatedU(16 * 1); + float minV=icon.getInterpolatedV(16 * 0); + float maxV=icon.getInterpolatedV(16 * 1); + + bindTexture(TextureMap.locationBlocksTexture); + GL11.glPushMatrix(); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(2.0F, 2.0F, 2.0F, 0.75F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(0.0F, 0.0F, 1.0F, 0.0F); + + float height = 15.0f/16.0f; + Tessellator tessellator=Tessellator.instance; + + //0 + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0f, 1.0f, 0.0f); + tessellator.addVertexWithUV(f5, height, f5, minU, minV); + tessellator.addVertexWithUV(f5, height, 1, minU, maxV); + tessellator.addVertexWithUV(1, height, 1, maxU, maxV); + tessellator.addVertexWithUV(1, height, f5, maxU, minV); + tessellator.draw(); + + //1 + GL11.glTranslatef(1.0f, 0, 0); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0f, 1.0f, 0.0f); + tessellator.addVertexWithUV(0, height, f5, minU, minV); + tessellator.addVertexWithUV(0, height, 1, minU, maxV); + tessellator.addVertexWithUV(f11, height, 1, maxU, maxV); + tessellator.addVertexWithUV(f11, height, f5, maxU, minV); + tessellator.draw(); + + //2 + GL11.glTranslatef(-1.0f, 0, 1); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0f, 1.0f, 0.0f); + tessellator.addVertexWithUV(f5, height, 0, minU, minV); + tessellator.addVertexWithUV(f5, height, f11, minU, maxV); + tessellator.addVertexWithUV(1, height, f11, maxU, maxV); + tessellator.addVertexWithUV(1, height, 0, maxU, minV); + tessellator.draw(); + + //3 + GL11.glTranslatef(1.0f, 0, 0); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0f, 1.0f, 0.0f); + tessellator.addVertexWithUV(0, height, 0, minU, minV); + tessellator.addVertexWithUV(0, height, f11, minU, maxV); + tessellator.addVertexWithUV(f11, height, f11, maxU, maxV); + tessellator.addVertexWithUV(f11, height, 0, maxU, minV); + tessellator.draw(); + + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyTable.class b/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyTable.class new file mode 100644 index 0000000..c53632d Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyTable.class differ diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyTable.java b/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyTable.java new file mode 100644 index 0000000..0527eb7 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyTable.java @@ -0,0 +1,93 @@ +package jp.plusplus.fbs.block.render; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.block.BlockCore; +import jp.plusplus.fbs.block.model.ModelAlchemyCauldron; +import jp.plusplus.fbs.block.model.ModelAlchemyTable; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.init.Blocks; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.IBlockAccess; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +/** + * Created by pluslus_F on 2015/09/25. + */ +public class RenderAlchemyTable extends TileEntitySpecialRenderer implements ISimpleBlockRenderingHandler { + public static ResourceLocation rl = new ResourceLocation(FBS.MODID + ":textures/models/AlchemyTable.png"); + protected ModelAlchemyTable model = new ModelAlchemyTable(); + float f4 = 4.0f / 16.0f; + float f5 = 5.0f / 16.0f; + float f9 = 9.0f / 16.0f; + float f11 = 11.0f / 16.0f; + float f12 = 12.0f / 16.0f; + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + GL11.glPushMatrix(); + GL11.glTranslatef(0.5f, 0.5f, 0.5f); + GL11.glRotatef(180, 0, 0, 1); + GL11.glRotatef(90, 0, -1, 0); + + float scale = 0.0625f*0.8f; + GL11.glScalef(scale, scale, scale); + + bindTexture(rl); + model.render(null, 0, 0, 0, 0, 0, 1.0f); + bindTexture(TextureMap.locationBlocksTexture); + + GL11.glScalef(1f, 1f, 1f); + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + if (modelId == this.getRenderId()) { + return true; + } + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return FBS.renderAlchemyTableId; + } + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float p_147500_8_) { + int meta = te.getWorldObj().getBlockMetadata(te.xCoord, te.yCoord, te.zCoord); + if ((meta&8) != 0) return; + + GL11.glPushMatrix(); + GL11.glTranslatef((float) x + 0.5f + 1.f, (float) y + 0.5f, (float) z + 0.5f); + GL11.glRotatef(180.0f, 0, 0, 1); + float scale = 0.0625f; + GL11.glScalef(scale, scale, scale); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + switch(meta){ + case 4: GL11.glRotatef(90, 0, -1, 0); break; + case 5: GL11.glRotatef(90, 0, 1, 0); break; + case 3: GL11.glRotatef(180, 0, -1, 0); break; + default: break; + } + + this.bindTexture(rl); + model.render(null, 0, 0, 0, 0, 0, 1.0f); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderBarrier.class b/src/main/java/jp/plusplus/fbs/block/render/RenderBarrier.class new file mode 100644 index 0000000..1ec59e5 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/block/render/RenderBarrier.class differ diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderBarrier.java b/src/main/java/jp/plusplus/fbs/block/render/RenderBarrier.java new file mode 100644 index 0000000..9ca1dbd --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/block/render/RenderBarrier.java @@ -0,0 +1,106 @@ +package jp.plusplus.fbs.block.render; + +import codechicken.lib.render.BlockRenderer; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import jp.plusplus.fbs.FBS; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +/** + * Created by plusplus_F on 2015/09/27. + */ +public class RenderBarrier implements ISimpleBlockRenderingHandler { + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + + if (modelId == this.getRenderId()){ + IIcon icon=block.getIcon(0,0); + + GL11.glPushMatrix(); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(2.0F, 2.0F, 2.0F, 0.75F); + + Tessellator tessellator = Tessellator.instance; + block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + renderer.setRenderBoundsFromBlock(block); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + renderer.setRenderBoundsFromBlock(block); + + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, icon); + tessellator.draw(); + + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, icon); + tessellator.draw(); + + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, icon); + tessellator.draw(); + + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, icon); + tessellator.draw(); + + tessellator.startDrawingQuads(); + tessellator.setNormal(-1F, 0.0F, 0.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, icon); + tessellator.draw(); + + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, icon); + tessellator.draw(); + + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + renderer.setRenderBoundsFromBlock(block); + GL11.glPopMatrix(); + } + + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + if(modelId==getRenderId()){ + + + GL11.glPushMatrix(); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(2.0F, 2.0F, 2.0F, 0.75F); + + block.setBlockBounds(0, 0, 0, 1, 1, 1); + renderer.setRenderBoundsFromBlock(block); + renderer.renderStandardBlock(block, x, y, z); + + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + + return true; + } + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return false; + } + + @Override + public int getRenderId() { + return FBS.renderBarrierId; + } +} diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderCharm.class b/src/main/java/jp/plusplus/fbs/block/render/RenderCharm.class new file mode 100644 index 0000000..321f200 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/block/render/RenderCharm.class differ diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderCharm.java b/src/main/java/jp/plusplus/fbs/block/render/RenderCharm.java new file mode 100644 index 0000000..2a94b0e --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/block/render/RenderCharm.java @@ -0,0 +1,52 @@ +package jp.plusplus.fbs.block.render; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.block.BlockCore; +import jp.plusplus.fbs.tileentity.TileEntityMagicCore; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +/** + * Created by pluslus_F on 2015/06/17. + */ +public class RenderCharm implements ISimpleBlockRenderingHandler { + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + if (modelId == this.getRenderId()){ + + if(block== BlockCore.magicCore){ + TileEntity te=world.getTileEntity(x,y,z); + if(te instanceof TileEntityMagicCore){ + if(!((TileEntityMagicCore) te).getCircleName().equals("null")) return true; + } + } + + block.setBlockBounds(0, 0, 0, 1, 0.0625f, 1); + renderer.renderMaxY=0.01f; + renderer.renderStandardBlock(block, x, y, z); + + return true; + } + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return false; + } + + @Override + public int getRenderId() { + return FBS.renderCharmId; + } +} diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderDecorations.class b/src/main/java/jp/plusplus/fbs/block/render/RenderDecorations.class new file mode 100644 index 0000000..02e79b8 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/block/render/RenderDecorations.class differ diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderDecorations.java b/src/main/java/jp/plusplus/fbs/block/render/RenderDecorations.java new file mode 100644 index 0000000..98574c2 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/block/render/RenderDecorations.java @@ -0,0 +1,198 @@ +package jp.plusplus.fbs.block.render; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.block.BlockCore; +import jp.plusplus.fbs.block.model.ModelAlchemyTable; +import jp.plusplus.fbs.block.model.ModelBonfire; +import jp.plusplus.fbs.block.model.ModelSchoolTable; +import jp.plusplus.fbs.render.TessellatorWrapper; +import net.minecraft.block.Block; +import net.minecraft.block.BlockFire; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.init.Blocks; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.IBlockAccess; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +/** + * Created by plusplus_F on 2015/09/25. + */ +public class RenderDecorations extends TileEntitySpecialRenderer implements ISimpleBlockRenderingHandler { + public static final ResourceLocation rl0=new ResourceLocation(FBS.MODID+":textures/models/SchoolTable.png"); + public ModelSchoolTable md0=new ModelSchoolTable(); + + public static final ResourceLocation rl1 = new ResourceLocation(FBS.MODID + ":textures/models/AlchemyTable.png"); + public ModelAlchemyTable md1 = new ModelAlchemyTable(); + + public static final ResourceLocation rl2=new ResourceLocation(FBS.MODID+":textures/models/Bonfire.png"); + public ModelBonfire md2=new ModelBonfire(); + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + if(getRenderId()!=modelId) return; + int type=getRenderType(block, metadata); + + GL11.glPushMatrix(); + GL11.glTranslatef(0.5f, 0.5f, 0.5f); + GL11.glRotatef(180, 0, 0, 1); + if(type==0) GL11.glRotatef(90, 0, 1, 0); + float scale = 0.0625f; + GL11.glScalef(scale, scale, scale); + + if(type==0){ + GL11.glTranslatef(0, 2f, 0); + bindTexture(rl0); + md0.render(null,0,0,0,0,0,1.0f); + } + else if(type==1){ + GL11.glTranslatef(-5, 4f, 0); + scale=0.8f; + GL11.glScalef(scale, scale, scale); + bindTexture(rl1); + md1.render(null, 0, 0, 0, 0, 0, 1.0f); + } + else if(type==2){ + //GL11.glTranslatef(-5, 4f, 0); + bindTexture(rl2); + GL11.glTranslatef(0, -16f, 0); + md2.render(null, 0, 0, 0, 0, 0, 1.0f); + } + + GL11.glScalef(1f, 1f, 1f); + GL11.glPopMatrix(); + + bindTexture(TextureMap.locationBlocksTexture); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + if(getRenderId()==modelId){ + + int meta=world.getBlockMetadata(x,y,z); + int type=getRenderType(block, meta); + if(type==2 && meta>0){ + /* + renderer.setOverrideBlockTexture(Blocks.fire.getIcon(0,0)); + + renderer.renderMinY=0; + renderer.renderMaxY=1; + + GL11.glPushMatrix(); + + renderer.renderMinZ=0; + renderer.renderMaxZ=1; + renderer.renderMinX=renderer.renderMaxX=0.25; + renderer.renderStandardBlock(block, x, y, z); + renderer.renderMinX=renderer.renderMaxX=0.75; + renderer.renderStandardBlock(block, x, y, z); + + renderer.renderMinX=0; + renderer.renderMaxX=1; + renderer.renderMinZ=renderer.renderMaxZ=0.25; + renderer.renderStandardBlock(block, x, y, z); + renderer.renderMinZ=renderer.renderMaxZ=0.75; + renderer.renderStandardBlock(block, x, y, z); + + renderer.clearOverrideBlockTexture(); + */ + } + + return true; + } + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return FBS.renderDecorationId; + } + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float p_147500_8_) { + int meta=te.getWorldObj().getBlockMetadata(te.xCoord, te.yCoord, te.zCoord); + int type=getRenderType(te.getBlockType(), meta); + + GL11.glPushMatrix(); + GL11.glTranslatef((float) x + 0.5f, (float) y + 0.5f, (float) z + 0.5f); + GL11.glRotatef(180.0f, 0, 0, 1); + float scale = 0.0625f; + GL11.glScalef(scale, scale, scale); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + if(type==0){ + switch(meta){ + case 4: GL11.glRotatef(90, 0, -1, 0); break; + case 5: GL11.glRotatef(90, 0, 1, 0); break; + case 3: GL11.glRotatef(180, 0, -1, 0); break; + default: break; + } + + bindTexture(rl0); + md0.render(null, 0,0,0,0,0,1.f); + } + else if(type==1){ + if((meta&8)==0){ + switch(meta){ + case 4: GL11.glRotatef(90, 0, -1, 0); break; + case 5: GL11.glRotatef(90, 0, 1, 0); break; + case 3: GL11.glRotatef(180, 0, -1, 0); break; + default: break; + } + + this.bindTexture(rl1); + md1.render(null, 0, 0, 0, 0, 0, 1.0f); + } + } + else if(type==2){ + GL11.glTranslatef(0, -16.f, 0); + bindTexture(rl2); + md2.render(null, 0,0,0,0,0,1.f); + + //焔の描画 + if(meta>0) { + bindTexture(TextureMap.locationBlocksTexture); + IIcon icon = Blocks.fire.getIcon(0, 0); + + GL11.glPushMatrix(); + GL11.glTranslatef(-4f, 16.f-3f, -4f); + //GL11.glScalef(0.5f, 0.5f, 0.5f); + float ssc=9f; + GL11.glScalef(ssc, ssc, ssc); + + TessellatorWrapper.SetBlockRender(false); + TessellatorWrapper.DrawXNeg(0.25f, 0.f, 0.f, 1.f, 1.f, icon); + TessellatorWrapper.DrawXPos(0.25f, 0.f, 0.f, 1.f, 1.f, icon); + TessellatorWrapper.DrawXNeg(0.75f, 0.f, 0.f, 1.f, 1.f, icon); + TessellatorWrapper.DrawXPos(0.75f, 0.f, 0.f, 1.f, 1.f, icon); + + TessellatorWrapper.DrawZNeg(0.f, 0.f, 0.25f, 1.f, 1.f, icon); + TessellatorWrapper.DrawZPos(0.f, 0.f, 0.25f, 1.f, 1.f, icon); + TessellatorWrapper.DrawZNeg(0.f, 0.f, 0.75f, 1.f, 1.f, icon); + TessellatorWrapper.DrawZPos(0.f, 0.f, 0.75f, 1.f, 1.f, icon); + + GL11.glPopMatrix(); + } + } + + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + } + + public int getRenderType(Block block, int meta){ + if(block==BlockCore.schoolTable) return 0; + if(block==BlockCore.tableAlchemist) return 1; + if(block==BlockCore.bonfire) return 2; + return 0; + } +} diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderDirectional.class b/src/main/java/jp/plusplus/fbs/block/render/RenderDirectional.class new file mode 100644 index 0000000..ca922cc Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/block/render/RenderDirectional.class differ diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderDirectional.java b/src/main/java/jp/plusplus/fbs/block/render/RenderDirectional.java new file mode 100644 index 0000000..ecc5df7 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/block/render/RenderDirectional.java @@ -0,0 +1,99 @@ +package jp.plusplus.fbs.block.render; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import jp.plusplus.fbs.FBS; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import org.lwjgl.opengl.GL11; + +/** + * Createdby pluslus_Fon 2015/06/13. + */ +public class RenderDirectional implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) { + IIcon tFront; + IIcon tSide; + IIcon tTop; + IIcon tBottom; + + if (modelID == this.getRenderId()){ + tFront=block.getIcon(2, 2); + tSide=block.getIcon(2,0); + tTop=block.getIcon(1,0); + tBottom=block.getIcon(0,0); + + Tessellator tessellator = Tessellator.instance; + block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + renderer.setRenderBoundsFromBlock(block); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + renderer.setRenderBoundsFromBlock(block); + + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, tBottom); + tessellator.draw(); + + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, tTop); + tessellator.draw(); + + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, tFront); + tessellator.draw(); + + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, tSide); + tessellator.draw(); + + tessellator.startDrawingQuads(); + tessellator.setNormal(-1F, 0.0F, 0.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, tSide); + tessellator.draw(); + + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, tSide); + tessellator.draw(); + + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + renderer.setRenderBoundsFromBlock(block); + } + } + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + if (modelId == this.getRenderId()) { + /* + TileEntity te=world.getTileEntity(x,y,z); + if(!(te instanceof IDirectional)) return false; + byte side=((IDirectional)te).getSide(); + */ + + block.setBlockBounds(0, 0, 0, 1, 1, 1); + renderer.setRenderBoundsFromBlock(block); + renderer.renderStandardBlock(block, x, y, z); + + return true; + } + return false; + } + + @Override + public boolean shouldRender3DInInventory(int i) { + return true; + } + + @Override + public int getRenderId() { + return FBS.renderDirectionalId; + } +} diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderHarvestable.class b/src/main/java/jp/plusplus/fbs/block/render/RenderHarvestable.class new file mode 100644 index 0000000..cf3a6be Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/block/render/RenderHarvestable.class differ diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderHarvestable.java b/src/main/java/jp/plusplus/fbs/block/render/RenderHarvestable.java new file mode 100644 index 0000000..3afccc8 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/block/render/RenderHarvestable.java @@ -0,0 +1,191 @@ +package jp.plusplus.fbs.block.render; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.api.IPottery; +import jp.plusplus.fbs.block.BlockCore; +import jp.plusplus.fbs.block.model.ModelHerb; +import jp.plusplus.fbs.block.model.ModelMushroom; +import jp.plusplus.fbs.tileentity.TileEntityHavestable; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.EntityRenderer; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.init.Blocks; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.IBlockAccess; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +/** + * Created by plusplus_F on 2015/11/15. + */ +public class RenderHarvestable extends TileEntitySpecialRenderer implements ISimpleBlockRenderingHandler { + public static ResourceLocation rlHerb = new ResourceLocation(FBS.MODID + ":textures/models/Herb.png"); + protected ModelHerb[] herbs; + + public static ResourceLocation rlMushroom=new ResourceLocation(FBS.MODID + ":textures/models/Mushroom.png"); + protected ModelMushroom[] mushes; + + public RenderHarvestable(){ + herbs=new ModelHerb[9]; + for(int i=0;i> 16 & 255) / 255.0F; + float f1 = (float) (l >> 8 & 255) / 255.0F; + float f2 = (float) (l & 255) / 255.0F; + + if (EntityRenderer.anaglyphEnable) { + float f3 = (f * 30.0F + f1 * 59.0F + f2 * 11.0F) / 100.0F; + float f4 = (f * 30.0F + f1 * 70.0F) / 100.0F; + float f5 = (f * 30.0F + f2 * 70.0F) / 100.0F; + f = f3; + f1 = f4; + f2 = f5; + } + + tessellator.setColorOpaque_F(f, f1, f2); + double d1 = (double) x; + double d2 = (double) y; + double d0 = (double) z; + long i1; + + i1 = (long) (x * 3129871) ^ (long) y * 116129781L ^ (long) z; + i1 = i1 * i1 * 42317861L + i1 * 11L; + d1 += ((double) ((float) (i1 >> 16 & 15L) / 15.0F) - 0.5D) * 0.5D; + d2 += ((double) ((float) (i1 >> 20 & 15L) / 15.0F) - 1.0D) * 0.2D; + d0 += ((double) ((float) (i1 >> 24 & 15L) / 15.0F) - 0.5D) * 0.5D; + + IIcon iicon = block.getIcon(world, x, y, z, 0); + RenderBlocks.getInstance().drawCrossedSquares(iicon, d1, d2, d0, 1.0F); + } + return true; + } + + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return FBS.renderHerbId; + } + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float p_147500_8_) { + int meta = te.getWorldObj().getBlockMetadata(te.xCoord, te.yCoord, te.zCoord); + GL11.glPushMatrix(); + GL11.glTranslatef((float) x + 0.5f, (float) y + 1+0.5f, (float) z + 0.5f); + + GL11.glRotatef(180.0f, 0, 0, 1); + float scale = 0.0625f; + GL11.glScalef(scale, scale, scale); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + if(te instanceof TileEntityHavestable){ + Block b=te.getBlockType(); + TileEntityHavestable teh=(TileEntityHavestable) te; + + if(b==BlockCore.harvestableHerb){ + this.bindTexture(rlHerb); + herbs[meta].render(null, 0, 0, 0, 0, 0, 1.0f); + if(teh.canHarvest()){ + herbs[meta].renderHerbs(1.0f); + } + } + else if(b==BlockCore.harvestableMushroom){ + this.bindTexture(rlMushroom); + mushes[meta].render(null, 0, 0, 0, 0, 0, 1.0f); + if(teh.canHarvest()){ + mushes[meta].renderMush(1.0f); + } + } + } + + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderMirror.class b/src/main/java/jp/plusplus/fbs/block/render/RenderMirror.class new file mode 100644 index 0000000..ae647d1 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/block/render/RenderMirror.class differ diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderMirror.java b/src/main/java/jp/plusplus/fbs/block/render/RenderMirror.java new file mode 100644 index 0000000..bbab4ab --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/block/render/RenderMirror.java @@ -0,0 +1,76 @@ +package jp.plusplus.fbs.block.render; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.model.ModelMirror; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.common.util.ForgeDirection; +import org.lwjgl.opengl.GL11; +import shift.sextiarysector.renderer.model.ModelWindmill; +import shift.sextiarysector.tileentity.TileEntityWindmill; + +/** + * Created by pluslus_F on 2015/06/24. + */ +public class RenderMirror extends TileEntitySpecialRenderer implements ISimpleBlockRenderingHandler { + public static ResourceLocation rl=new ResourceLocation(FBS.MODID+":textures/entity/mirror.png"); + protected ModelMirror model=new ModelMirror(); + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + if (modelId == this.getRenderId()){ + return true; + } + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return false; + } + + @Override + public int getRenderId() { + return FBS.renderMirrorId; + } + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float p_147500_8_) { + int dir=te.getBlockMetadata(); + if((dir&8)!=0) return; + + GL11.glPushMatrix(); + GL11.glTranslatef((float)x+0.5f, (float)y, (float)z+0.5f); + float scale = 0.0625f; + GL11.glScalef(scale,scale,scale); + + switch(dir){ + case 5: + GL11.glRotatef(90, 0, 1, 0); + break; + case 4: + GL11.glRotatef(90, 0, -1, 0); + break; + case 2: + GL11.glRotatef(180, 0, 1, 0); + break; + default: + break; + } + + this.bindTexture(rl); + model.render(null, 0,0,0, 0,0, 1.0f); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderPortalWarp.class b/src/main/java/jp/plusplus/fbs/block/render/RenderPortalWarp.class new file mode 100644 index 0000000..8bec72d Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/block/render/RenderPortalWarp.class differ diff --git a/src/main/java/jp/plusplus/fbs/block/render/RenderPortalWarp.java b/src/main/java/jp/plusplus/fbs/block/render/RenderPortalWarp.java new file mode 100644 index 0000000..160a554 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/block/render/RenderPortalWarp.java @@ -0,0 +1,46 @@ +package jp.plusplus.fbs.block.render; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import jp.plusplus.fbs.FBS; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.world.IBlockAccess; + +/** + * Created by plusplus_F on 2015/10/28. + */ +public class RenderPortalWarp implements ISimpleBlockRenderingHandler { + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + if(modelId==getRenderId()){ + int meta=world.getBlockMetadata(x,y,z); + if((meta&8)!=0){ + renderer.setRenderBounds(0.5,0,0,0.5,1,1); + } + else{ + renderer.setRenderBounds(0,0,0.5,1,1,0.5); + } + + renderer.renderStandardBlock(block, x,y,z); + + renderer.setRenderBounds(0,0,0,1,1,1); + return true; + } + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return false; + } + + @Override + public int getRenderId() { + return FBS.renderPortalWarpId; + } +} -- cgit v1.2.3