List of usage examples for net.minecraftforge.common.property Properties AnimationProperty
ModelProperty AnimationProperty
To view the source code for net.minecraftforge.common.property Properties AnimationProperty.
Click Source Link
From source file:blusunrize.immersiveengineering.client.models.IESmartObjModel.java
@Override public List<BakedQuad> getQuads(IBlockState blockState, EnumFacing side, long rand) { if (side != null) return ImmutableList.of(); OBJState objState = null;//w w w . j a v a 2 s . co m Map<String, String> tex = null; if (blockState instanceof IExtendedBlockState) { IExtendedBlockState ext = (IExtendedBlockState) blockState; if (ext.getUnlistedNames().contains(Properties.AnimationProperty)) { IModelState modState = ext.getValue(Properties.AnimationProperty); if (modState instanceof OBJState) objState = (OBJState) modState; } if (ext.getUnlistedNames().contains(IEProperties.OBJ_TEXTURE_REMAP)) tex = ext.getValue(IEProperties.OBJ_TEXTURE_REMAP); } return getQuads(blockState, side, rand, objState, tex, false); }
From source file:blusunrize.immersiveengineering.client.render.TileRenderArcFurnace.java
@Override public void render(TileEntityArcFurnace te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { if (!te.formed || te.isDummy() || !te.getWorld().isBlockLoaded(te.getPos(), false)) return;/* w ww . ja v a2 s . co m*/ List<String> renderedParts = null; for (int i = 0; i < 3; i++) if (!te.getInventory().get(23 + i).isEmpty()) { if (renderedParts == null) renderedParts = Lists.newArrayList("electrode" + (i + 1)); else renderedParts.add("electrode" + (i + 1)); } if (renderedParts == null) return; if (te.shouldRenderAsActive()) renderedParts.add("active"); final BlockRendererDispatcher blockRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher(); BlockPos blockPos = te.getPos(); IBlockState state = getWorld().getBlockState(blockPos); if (state.getBlock() != IEContent.blockMetalMultiblock) return; state = state.getBlock().getActualState(state, getWorld(), blockPos); state = state.withProperty(IEProperties.DYNAMICRENDER, true); IBakedModel model = blockRenderer.getBlockModelShapes().getModelForState(state); if (state instanceof IExtendedBlockState) state = ((IExtendedBlockState) state).withProperty(Properties.AnimationProperty, new OBJState(renderedParts, true)); Tessellator tessellator = Tessellator.getInstance(); BufferBuilder worldRenderer = tessellator.getBuffer(); ClientUtils.bindAtlas(); GlStateManager.pushMatrix(); GlStateManager.translate(x, y, z); GlStateManager.translate(.5, .5, .5); RenderHelper.disableStandardItemLighting(); GlStateManager.blendFunc(770, 771); GlStateManager.enableBlend(); GlStateManager.disableCull(); if (Minecraft.isAmbientOcclusionEnabled()) GlStateManager.shadeModel(7425); else GlStateManager.shadeModel(7424); worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK); worldRenderer.setTranslation(-.5 - blockPos.getX(), -.5 - blockPos.getY(), -.5 - blockPos.getZ()); worldRenderer.color(255, 255, 255, 255); blockRenderer.getBlockModelRenderer().renderModel(te.getWorld(), model, state, blockPos, worldRenderer, true); worldRenderer.setTranslation(0.0D, 0.0D, 0.0D); tessellator.draw(); RenderHelper.enableStandardItemLighting(); if (te.pouringMetal > 0) { if (hotMetal_flow == null) { hotMetal_still = ApiUtils.getRegisterSprite(ClientUtils.mc().getTextureMapBlocks(), "immersiveengineering:blocks/fluid/hot_metal_still"); hotMetal_flow = ApiUtils.getRegisterSprite(ClientUtils.mc().getTextureMapBlocks(), "immersiveengineering:blocks/fluid/hot_metal_flow"); } GlStateManager.rotate(-te.facing.getHorizontalAngle() + 180, 0, 1, 0); int process = 40; float speed = 5f; int pour = process - te.pouringMetal; Vector3f tmp = new Vector3f(); float h = (pour > (process - speed) ? ((process - pour) / speed * 27) : pour > speed ? 27 : (pour / speed * 27)) / 16f; GlStateManager.translate(-.5f, 1.25 - .6875f, 1.5f); worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); GlStateManager.disableLighting(); setLightmapDisabled(true); if (pour > (process - speed)) addTranslation(tmp, worldRenderer, 0, -1.6875f + h, 0); if (h > 1) { addTranslation(tmp, worldRenderer, 0, -h, 0); ClientUtils.renderTexturedBox(worldRenderer, .375, 0, .375, .625, 1, .625, hotMetal_flow, true); addTranslation(tmp, worldRenderer, 0, 1, 0); ClientUtils.renderTexturedBox(worldRenderer, .375, 0, .375, .625, h - 1, .625, hotMetal_flow, true); addTranslation(tmp, worldRenderer, 0, -1, 0); addTranslation(tmp, worldRenderer, 0, h, 0); } else { addTranslation(tmp, worldRenderer, 0, -h, 0); ClientUtils.renderTexturedBox(worldRenderer, .375, 0, .375, .625, h, .625, hotMetal_flow, true); addTranslation(tmp, worldRenderer, 0, h, 0); } if (pour > (process - speed)) addTranslation(tmp, worldRenderer, 0, 1.6875f - h, 0); if (pour > speed) { float h2 = (pour > (process - speed) ? .625f : pour / (process - speed) * .625f); addTranslation(tmp, worldRenderer, 0, -1.6875f, 0); ClientUtils.renderTexturedBox(worldRenderer, .125, 0, .125, .875, h2, .875, hotMetal_still, false); addTranslation(tmp, worldRenderer, 0, 1.6875f, 0); } worldRenderer.setTranslation(0, 0, 0); tessellator.draw(); setLightmapDisabled(false); GlStateManager.enableLighting(); } GlStateManager.popMatrix(); }
From source file:blusunrize.immersiveengineering.client.render.TileRenderAutoWorkbench.java
public static void renderModelPart(final BlockRendererDispatcher blockRenderer, Tessellator tessellator, BufferBuilder worldRenderer, World world, IBlockState state, IBakedModel model, BlockPos pos, String... parts) {/* w w w . java 2 s.c om*/ if (state instanceof IExtendedBlockState) state = ((IExtendedBlockState) state).withProperty(Properties.AnimationProperty, new OBJState(Arrays.asList(parts), true)); RenderHelper.disableStandardItemLighting(); GlStateManager.blendFunc(770, 771); GlStateManager.enableBlend(); GlStateManager.disableCull(); if (Minecraft.isAmbientOcclusionEnabled()) GlStateManager.shadeModel(7425); else GlStateManager.shadeModel(7424); worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK); worldRenderer.setTranslation(-.5 - pos.getX(), -.5 - pos.getY(), -.5 - pos.getZ()); worldRenderer.color(255, 255, 255, 255); blockRenderer.getBlockModelRenderer().renderModel(world, model, state, pos, worldRenderer, true); worldRenderer.setTranslation(0.0D, 0.0D, 0.0D); tessellator.draw(); }
From source file:blusunrize.immersiveengineering.client.render.TileRenderBelljar.java
@Override public void render(TileEntityBelljar tile, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { if (tile.dummy != 0 || !tile.getWorld().isBlockLoaded(tile.getPos(), false)) return;// w w w . j a va 2 s . co m final BlockRendererDispatcher blockRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher(); BlockPos blockPos = tile.getPos(); if (!quads.containsKey(tile.getFacing())) { IBlockState state = getWorld().getBlockState(blockPos); if (state.getBlock() != IEContent.blockMetalDevice1) return; state = state.getActualState(getWorld(), blockPos); IBakedModel model = blockRenderer.getBlockModelShapes().getModelForState(state); if (state instanceof IExtendedBlockState) state = ((IExtendedBlockState) state).withProperty(Properties.AnimationProperty, new OBJState(Arrays.asList("glass"), true)); quads.put(tile.getFacing(), model.getQuads(state, null, 0)); } ClientUtils.bindAtlas(); GlStateManager.pushMatrix(); GlStateManager.translate(x, y, z); RenderHelper.disableStandardItemLighting(); GlStateManager.blendFunc(770, 771); GlStateManager.enableBlend(); GlStateManager.disableCull(); if (Minecraft.isAmbientOcclusionEnabled()) GlStateManager.shadeModel(7425); else GlStateManager.shadeModel(7424); Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); BufferBuilder worldRenderer = Tessellator.getInstance().getBuffer(); GlStateManager.enableCull(); IPlantHandler plantHandler = tile.getCurrentPlantHandler(); if (plantHandler != null) { GlStateManager.pushMatrix(); GlStateManager.translate(0, 1.0625, 0); GlStateManager.color(1, 1, 1, 1); NonNullList<ItemStack> inventory = tile.getInventory(); float scale = plantHandler.getRenderSize(inventory.get(1), inventory.get(0), tile.renderGrowth, tile); GlStateManager.translate((1 - scale) / 2, 0, (1 - scale) / 2); GlStateManager.scale(scale, scale, scale); if (!plantHandler.overrideRender(inventory.get(1), inventory.get(0), tile.renderGrowth, tile, blockRenderer)) { IBlockState[] states = plantHandler.getRenderedPlant(inventory.get(1), inventory.get(0), tile.renderGrowth, tile); if (states == null || states.length < 1) return; for (IBlockState s : states) { List<BakedQuad> plantQuadList = plantQuads.get(s); if (plantQuadList == null) { IBakedModel plantModel = blockRenderer.getModelForState(s); plantQuadList = new ArrayList<BakedQuad>(plantModel.getQuads(s, null, 0)); for (EnumFacing f : EnumFacing.values()) plantQuadList.addAll(plantModel.getQuads(s, f, 0)); plantQuads.put(s, plantQuadList); } if (plantQuadList != null) { GlStateManager.pushMatrix(); worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK); ClientUtils.renderModelTESRFancy(plantQuadList, worldRenderer, tile.getWorld(), blockPos, false); Tessellator.getInstance().draw(); GlStateManager.popMatrix(); GlStateManager.translate(0, 1, 0); } } } GlStateManager.popMatrix(); } GlStateManager.depthMask(false); worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK); ClientUtils.renderModelTESRFast(quads.get(tile.getFacing()), worldRenderer, tile.getWorld(), blockPos); Tessellator.getInstance().draw(); RenderHelper.enableStandardItemLighting(); GlStateManager.disableBlend(); GlStateManager.depthMask(true); GlStateManager.popMatrix(); RenderHelper.enableStandardItemLighting(); }
From source file:blusunrize.immersiveengineering.client.render.TileRenderBottlingMachine.java
public static void renderModelPart(final BlockRendererDispatcher blockRenderer, Tessellator tessellator, BufferBuilder worldRenderer, World world, IBlockState state, IBakedModel model, BlockPos pos, String... parts) {//from w w w . ja v a 2s . co m if (state instanceof IExtendedBlockState) state = ((IExtendedBlockState) state).withProperty(Properties.AnimationProperty, new OBJState(Arrays.asList(parts), true)); RenderHelper.disableStandardItemLighting(); GlStateManager.blendFunc(770, 771); GlStateManager.enableBlend(); GlStateManager.disableCull(); GlStateManager.color(1, 0, 0, 1); if (Minecraft.isAmbientOcclusionEnabled()) GlStateManager.shadeModel(7425); else GlStateManager.shadeModel(7424); worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK); worldRenderer.setTranslation(-.5 - pos.getX(), -.5 - pos.getY(), -.5 - pos.getZ()); worldRenderer.color(255, 255, 255, 255); blockRenderer.getBlockModelRenderer().renderModel(world, model, state, pos, worldRenderer, true); worldRenderer.setTranslation(0.0D, 0.0D, 0.0D); tessellator.draw(); }
From source file:blusunrize.immersiveengineering.client.render.TileRenderSampleDrill.java
@Override public void render(TileEntitySampleDrill tile, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { if (tile.isDummy() || !tile.getWorld().isBlockLoaded(tile.getPos(), false)) return;//w ww . java2 s . co m final BlockRendererDispatcher blockRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher(); IBlockState state = tile.getWorld().getBlockState(tile.getPos()); BlockPos blockPos = tile.getPos(); IBakedModel model = blockRenderer.getModelForState(state); if (state.getBlock() != IEContent.blockMetalDevice1) return; // .getModelFromBlockState(state, getWorld(), blockPos); if (state instanceof IExtendedBlockState) state = ((IExtendedBlockState) state).withProperty(Properties.AnimationProperty, new OBJState(Lists.newArrayList("drill"), true)); Tessellator tessellator = Tessellator.getInstance(); BufferBuilder worldRenderer = tessellator.getBuffer(); bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); RenderHelper.disableStandardItemLighting(); GlStateManager.blendFunc(770, 771); GlStateManager.enableBlend(); GlStateManager.disableCull(); if (Minecraft.isAmbientOcclusionEnabled()) GlStateManager.shadeModel(7425); else GlStateManager.shadeModel(7424); GlStateManager.pushMatrix(); GlStateManager.translate(x + .5, y + .5, z + .5); // float rot = 360*tile.rotation-(!tile.canTurn||tile.rotation==0||tile.rotation-tile.prevRotation<4?0:tile.facing.getAxis()==Axis.X?-f:f); // GlStateManager.rotate(rot, 0,0,1); int max = IEConfig.Machines.coredrill_time; if (tile.process > 0 && tile.process < max) { GlStateManager.rotate(((tile.process + partialTicks) * 22.5f) % 360f, 0, 1, 0); float push = tile.process / (float) max; if (tile.process > max / 2) push = 1 - push; GlStateManager.translate(0, -2.8f * push, 0); } worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK); worldRenderer.setTranslation(-.5 - blockPos.getX(), -.5 - blockPos.getY(), -.5 - blockPos.getZ()); worldRenderer.color(255, 255, 255, 255); blockRenderer.getBlockModelRenderer().renderModel(tile.getWorld(), model, state, tile.getPos(), worldRenderer, true); worldRenderer.setTranslation(0.0D, 0.0D, 0.0D); tessellator.draw(); GlStateManager.popMatrix(); RenderHelper.enableStandardItemLighting(); }
From source file:blusunrize.immersiveengineering.client.render.TileRenderTurret.java
public static void renderModelPart(final BlockRendererDispatcher blockRenderer, Tessellator tessellator, BufferBuilder worldRenderer, World world, IBlockState state, IBakedModel model, BlockPos pos, boolean isFirst, String... parts) { pos = pos.up();//from w w w. j av a 2s . co m if (state instanceof IExtendedBlockState) state = ((IExtendedBlockState) state).withProperty(Properties.AnimationProperty, new OBJState(Arrays.asList(parts), true)); RenderHelper.disableStandardItemLighting(); GlStateManager.blendFunc(770, 771); GlStateManager.enableBlend(); GlStateManager.disableCull(); Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); if (Minecraft.isAmbientOcclusionEnabled()) GlStateManager.shadeModel(7425); else GlStateManager.shadeModel(7424); worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK); worldRenderer.setTranslation(-.5, 0, -.5); long randomLong = MathHelper.getPositionRandom(pos); int light = world.getCombinedLight(pos, 0); List<BakedQuad> quads = model.getQuads(state, null, randomLong); ClientUtils.renderModelTESRFancy(quads, worldRenderer, world, pos, !isFirst); worldRenderer.setTranslation(0.0D, 0.0D, 0.0D); tessellator.draw(); RenderHelper.enableStandardItemLighting(); GlStateManager.disableBlend(); GlStateManager.enableCull(); }
From source file:blusunrize.immersiveengineering.client.render.TileRenderWindmill.java
@Override public void render(TileEntityWindmill tile, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { if (!tile.getWorld().isBlockLoaded(tile.getPos(), false)) return;/*from w ww. j a va 2 s .c o m*/ final BlockRendererDispatcher blockRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher(); BlockPos blockPos = tile.getPos(); if (quads[tile.sails] == null) { IBlockState state = getWorld().getBlockState(blockPos); if (state.getBlock() != IEContent.blockWoodenDevice1) return; state = state.getActualState(getWorld(), blockPos); state = state.withProperty(IEProperties.FACING_ALL, EnumFacing.NORTH); IBakedModel model = blockRenderer.getBlockModelShapes().getModelForState(state); if (state instanceof IExtendedBlockState) { List<String> parts = new ArrayList<>(); parts.add("base"); for (int i = 1; i <= tile.sails; i++) parts.add("sail_" + i); state = ((IExtendedBlockState) state).withProperty(Properties.AnimationProperty, new OBJState(parts, true)); } quads[tile.sails] = model.getQuads(state, null, 0); } Tessellator tessellator = Tessellator.getInstance(); GlStateManager.blendFunc(770, 771); GlStateManager.enableBlend(); GlStateManager.disableCull(); GlStateManager.pushMatrix(); GlStateManager.translate(x + .5, y + .5, z + .5); float dir = tile.facing == EnumFacing.SOUTH ? 0 : tile.facing == EnumFacing.NORTH ? 180 : tile.facing == EnumFacing.EAST ? 90 : -90; float rot = 360 * (tile.rotation + (!tile.canTurn || tile.rotation == 0 ? 0 : partialTicks) * tile.perTick); GlStateManager.rotate(rot, tile.facing.getAxis() == Axis.X ? 1 : 0, 0, tile.facing.getAxis() == Axis.Z ? 1 : 0); GlStateManager.rotate(dir, 0, 1, 0); RenderHelper.disableStandardItemLighting(); Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); BufferBuilder worldRenderer = tessellator.getBuffer(); worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK); worldRenderer.setTranslation(-.5, -.5, -.5); ClientUtils.renderModelTESRFast(quads[tile.sails], worldRenderer, tile.getWorld(), blockPos); worldRenderer.setTranslation(0, 0, 0); tessellator.draw(); GlStateManager.popMatrix(); RenderHelper.enableStandardItemLighting(); GlStateManager.disableBlend(); GlStateManager.enableCull(); }
From source file:blusunrize.immersiveengineering.common.blocks.BlockIETileProvider.java
@Override public IBlockState getExtendedState(IBlockState state, IBlockAccess world, BlockPos pos) { state = super.getExtendedState(state, world, pos); if (state instanceof IExtendedBlockState) { IExtendedBlockState extended = (IExtendedBlockState) state; TileEntity te = world.getTileEntity(pos); if (te != null) { if (te instanceof IConfigurableSides) for (int i = 0; i < 6; i++) if (extended.getUnlistedNames().contains(IEProperties.SIDECONFIG[i])) extended = extended.withProperty(IEProperties.SIDECONFIG[i], ((IConfigurableSides) te).getSideConfig(i)); if (te instanceof IAdvancedHasObjProperty) extended = extended.withProperty(Properties.AnimationProperty, ((IAdvancedHasObjProperty) te).getOBJState()); else if (te instanceof IHasObjProperty) extended = extended.withProperty(Properties.AnimationProperty, new OBJState(((IHasObjProperty) te).compileDisplayList(), true)); if (te instanceof IDynamicTexture) extended = extended.withProperty(IEProperties.OBJ_TEXTURE_REMAP, ((IDynamicTexture) te).getTextureReplacements()); if (te instanceof IOBJModelCallback) extended = extended.withProperty(IOBJModelCallback.PROPERTY, (IOBJModelCallback) te); if (te.hasCapability(CapabilityShader.SHADER_CAPABILITY, null)) extended = extended.withProperty(CapabilityShader.BLOCKSTATE_PROPERTY, te.getCapability(CapabilityShader.SHADER_CAPABILITY, null)); if (te instanceof IPropertyPassthrough && ((IExtendedBlockState) state).getUnlistedNames() .contains(IEProperties.TILEENTITY_PASSTHROUGH)) extended = extended.withProperty(IEProperties.TILEENTITY_PASSTHROUGH, te); if (te instanceof TileEntityImmersiveConnectable && ((IExtendedBlockState) state).getUnlistedNames().contains(IEProperties.CONNECTIONS)) extended = extended.withProperty(IEProperties.CONNECTIONS, ((TileEntityImmersiveConnectable) te).genConnBlockstate()); }//from www. j a v a2 s . co m state = extended; } return state; }
From source file:blusunrize.immersiveengineering.common.blocks.metal.BlockMetalDecoration2.java
public BlockMetalDecoration2() { super("metal_decoration2", Material.IRON, PropertyEnum.create("type", BlockTypes_MetalDecoration2.class), ItemBlockIEBase.class, IEProperties.FACING_ALL, IEProperties.MULTIBLOCKSLAVE, IEProperties.INT_4, Properties.AnimationProperty, IOBJModelCallback.PROPERTY, IEProperties.CONNECTIONS); this.setHardness(3.0F); this.setResistance(15.0F); this.setAllNotNormalBlock(); this.setMetaBlockLayer(BlockTypes_MetalDecoration2.RAZOR_WIRE.getMeta(), BlockRenderLayer.CUTOUT, BlockRenderLayer.SOLID, BlockRenderLayer.TRANSLUCENT); this.setMetaBlockLayer(BlockTypes_MetalDecoration2.STEEL_SLOPE.getMeta(), BlockRenderLayer.CUTOUT_MIPPED); this.setMetaBlockLayer(BlockTypes_MetalDecoration2.ALU_SLOPE.getMeta(), BlockRenderLayer.CUTOUT_MIPPED); lightOpacity = 0;/*from w ww. j av a2s . c o m*/ this.setMetaMobilityFlag(BlockTypes_MetalDecoration2.STEEL_POST.getMeta(), EnumPushReaction.BLOCK); this.setMetaMobilityFlag(BlockTypes_MetalDecoration2.ALUMINUM_POST.getMeta(), EnumPushReaction.BLOCK); }