summaryrefslogtreecommitdiff
path: root/src/main/java/jp/plusplus/fbs/block/render
diff options
context:
space:
mode:
authorBenjamin Culkin <scorpress@gmail.com>2024-08-24 08:16:37 -0400
committerBenjamin Culkin <scorpress@gmail.com>2024-08-24 08:16:37 -0400
commit70c1354a4a96698758a88c032866288f79de6f5a (patch)
treeeca51294e84b90a4cb3230bc2c7900469e784184 /src/main/java/jp/plusplus/fbs/block/render
Initial commitHEADtrunk
Diffstat (limited to 'src/main/java/jp/plusplus/fbs/block/render')
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyCauldron.classbin0 -> 5760 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyCauldron.java188
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyTable.classbin0 -> 3330 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyTable.java93
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderBarrier.classbin0 -> 2918 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderBarrier.java106
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderCharm.classbin0 -> 2041 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderCharm.java52
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderDecorations.classbin0 -> 5180 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderDecorations.java198
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderDirectional.classbin0 -> 2750 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderDirectional.java99
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderHarvestable.classbin0 -> 6538 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderHarvestable.java191
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderMirror.classbin0 -> 2615 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderMirror.java76
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderPortalWarp.classbin0 -> 1693 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/block/render/RenderPortalWarp.java46
18 files changed, 1049 insertions, 0 deletions
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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyCauldron.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/block/render/RenderAlchemyTable.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/block/render/RenderBarrier.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/block/render/RenderCharm.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/block/render/RenderDecorations.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/block/render/RenderDirectional.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/block/render/RenderHarvestable.class
Binary files 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<herbs.length;i++) herbs[i]=new ModelHerb(i);
+
+ mushes=new ModelMushroom[3];
+ for(int i=0;i<mushes.length;i++) mushes[i]=new ModelMushroom(i);
+ }
+
+ @Override
+ public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
+ if(modelId!=getRenderId()) return;
+
+ GL11.glPushMatrix();
+ GL11.glTranslatef(0.5f, 1.75f, 0.5f);
+ GL11.glRotatef(180, 0, 0, 1);
+
+ float scale = 0.0625f;
+ scale*=1.25f;
+ GL11.glScalef(scale, scale, scale);
+
+ if(block==BlockCore.harvestableHerb){
+ bindTexture(rlHerb);
+ herbs[metadata].render(null, 0, 0, 0, 0, 0, 1.0f);
+ herbs[metadata].renderHerbs(1.0f);
+ }
+ else if(block==BlockCore.harvestableMushroom){
+ bindTexture(rlMushroom);
+ mushes[metadata].render(null, 0, 0, 0, 0, 0, 1.0f);
+ mushes[metadata].renderMush(1.0f);
+ }
+ else if(block==BlockCore.harvestableGrass){
+ GL11.glPopMatrix();
+ GL11.glPushMatrix();
+ Tessellator tessellator = Tessellator.instance;
+ IIcon p_147765_1_=block.getIcon(0, 0);
+
+ double p_147765_8_=0.8;
+ double d3 = (double)p_147765_1_.getMinU();
+ double d4 = (double)p_147765_1_.getMinV();
+ double d5 = (double)p_147765_1_.getMaxU();
+ double d6 = (double)p_147765_1_.getMaxV();
+ double d7 = 0.45D * (double)p_147765_8_;
+ double d8 = 0 + 0.5D - d7;
+ double d9 = 0 + 0.5D + d7;
+ double d10 = 0 + 0.5D - d7;
+ double d11 = 0 + 0.5D + d7;
+ tessellator.startDrawingQuads();
+ tessellator.addVertexWithUV(d8, (double)p_147765_8_, d10, d3, d4);
+ tessellator.addVertexWithUV(d8, 0.0D, d10, d3, d6);
+ tessellator.addVertexWithUV(d9, 0.0D, d11, d5, d6);
+ tessellator.addVertexWithUV(d9, (double)p_147765_8_, d11, d5, d4);
+ tessellator.addVertexWithUV(d9, (double)p_147765_8_, d11, d3, d4);
+ tessellator.addVertexWithUV(d9, 0.0D, d11, d3, d6);
+ tessellator.addVertexWithUV(d8, 0.0D, d10, d5, d6);
+ tessellator.addVertexWithUV(d8, (double)p_147765_8_, d10, d5, d4);
+ tessellator.addVertexWithUV(d8, (double)p_147765_8_, d11, d3, d4);
+ tessellator.addVertexWithUV(d8, 0.0D, d11, d3, d6);
+ tessellator.addVertexWithUV(d9, 0.0D, d10, d5, d6);
+ tessellator.addVertexWithUV(d9, (double)p_147765_8_, d10, d5, d4);
+ tessellator.addVertexWithUV(d9, (double)p_147765_8_, d10, d3, d4);
+ tessellator.addVertexWithUV(d9, 0.0D, d10, d3, d6);
+ tessellator.addVertexWithUV(d8, 0.0D, d11, d5, d6);
+ tessellator.addVertexWithUV(d8, (double)p_147765_8_, d11, d5, d4);
+ tessellator.draw();
+ }
+ 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==getRenderId()){
+ if(block==BlockCore.harvestableGrass) {
+ Tessellator tessellator = Tessellator.instance;
+ tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z));
+ int l = block.colorMultiplier(world, x, y, z);
+ float f = (float) (l >> 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/block/render/RenderMirror.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/block/render/RenderPortalWarp.class
Binary files 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;
+ }
+}