private void renderIcon(IIcon icon) { Tessellator tessellator = Tessellator.instance; float minU = icon.getMinU(); float maxU = icon.getMaxU(); float minV = icon.getMinV(); float maxV = icon.getMaxV(); OpenGLHelper.rotate(180.0F - renderManager.playerViewY, 0.0F, 1.0F, 0.0F); OpenGLHelper.rotate(-renderManager.playerViewX, 1.0F, 0.0F, 0.0F); tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, 1.0F, 0.0F); tessellator.addVertexWithUV(-0.5F, -0.25F, 0.0D, minU, maxV); tessellator.addVertexWithUV(0.5F, -0.25F, 0.0D, maxU, maxV); tessellator.addVertexWithUV(0.5F, 0.75F, 0.0D, maxU, minV); tessellator.addVertexWithUV(-0.5F, 0.75F, 0.0D, minU, minV); tessellator.draw(); }
/** * Resolve item state validity * @param meta Item metadata * @return Is item state valid */ @SuppressWarnings({"ConstantConditions"}) public boolean isValidItemState(int meta) { if (!isValid()) { return false; } try { IIcon sprite = item.getIconFromDamage(meta); return sprite != null && sprite.getIconName() != null && !sprite.getIconName().equalsIgnoreCase("") && !sprite.getIconName().equalsIgnoreCase("missingno"); } catch (Throwable ignored) { return false; } }
private static String getTextures(Block block, int damage) { List<String> allTextures = new ArrayList<String>(); String[] sides = new String[]{"top", "bottom", "north", "south", "east", "west"}; for (int index = 0; index < sides.length; index++) { try { IIcon icon = block.getIcon(index, damage); if (icon != null) { allTextures.add(icon.getIconName()); } } catch (Exception e) { System.out.println(String.format("Unable to get texture for block %s side %s", block.getLocalizedName(), index)); allTextures.add("EXCEPTION"); } } if (allTextures.isEmpty()) { return "empty"; } return String.join(",", allTextures); }
@Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { if (meta == 0 && side == 3) { return front; } if (side == 1) { return top; } return side != meta ? this.blockIcon : front; }
@SubscribeEvent public void postStitch(TextureStitchEvent.Post event) { IIcon[] icons; if(replaceLava) { icons = ReflectionManager.get(field_tex, IIcon[].class, Blocks.flowing_lava); icons[0] = newTextures[2]; icons[1] = newTextures[3]; icons = ReflectionManager.get(field_tex, IIcon[].class, Blocks.lava); icons[0] = newTextures[2]; icons[1] = newTextures[3]; } if(replaceWater) { icons = ReflectionManager.get(field_tex, IIcon[].class, Blocks.flowing_water); icons[0] = newTextures[0]; icons[1] = newTextures[1]; icons = ReflectionManager.get(field_tex, IIcon[].class, Blocks.water); icons[0] = newTextures[0]; icons[1] = newTextures[1]; } }
@SideOnly(Side.CLIENT) @Override public IIcon getIcon(int i, int par2) { if (i == 0) return gor; else if (i == 1) return dol; else if (i == 2) return st1; else if (i == 3) return st2; else if (i == 4) return st4; else if (i == 5) return st3; else return gor; }
public static void addBlockHitEffects(World world, Cuboid6 bounds, int side, IIcon icon, EffectRenderer effectRenderer) { float border = 0.1F; Vector3 diff = bounds.max.copy().subtract(bounds.min).add(-2*border); diff.x*=world.rand.nextDouble(); diff.y*=world.rand.nextDouble(); diff.z*=world.rand.nextDouble(); Vector3 pos = diff.add(bounds.min).add(border); if (side == 0) diff.y = bounds.min.y - border; if (side == 1) diff.y = bounds.max.y + border; if (side == 2) diff.z = bounds.min.z - border; if (side == 3) diff.z = bounds.max.z + border; if (side == 4) diff.x = bounds.min.x - border; if (side == 5) diff.x = bounds.max.x + border; effectRenderer.addEffect( new EntityDigIconFX(world, pos.x, pos.y, pos.z, 0, 0, 0, icon) .multiplyVelocity(0.2F).multipleParticleScaleBy(0.6F)); }
@SideOnly(Side.CLIENT) @SubscribeEvent public void handleStich(final TextureStitchEvent.Pre event) { if (event.map.getTextureType() != 0) { return; } TConIntegration.bedrock.setIcons(event.map.registerIcon("TConIntegration.bedrock")); TextureAtlasSprite sprite = new TextureBedrockLava("extrautils:bedrockFluid", "lava_still"); event.map.setTextureEntry("extrautils:bedrockFluid", sprite); if (TConIntegration.bedrock != null) { TConIntegration.bedrock.setIcons((IIcon)sprite); } sprite = new TextureBedrockLava("extrautils:bedrockFluid_flowing", "lava_flow"); if (event.map.setTextureEntry("extrautils:bedrockFluid_flowing", sprite) && TConIntegration.bedrock != null) { TConIntegration.bedrock.setFlowingIcon((IIcon)sprite); } sprite = new TextureUnstableLava("extrautils:unstableFluid", "water_still"); event.map.setTextureEntry("extrautils:unstableFluid", sprite); if (TConIntegration.unstable != null) { TConIntegration.unstable.setIcons((IIcon)sprite); } sprite = new TextureUnstableLava("extrautils:unstableFluid_flowing", "water_flow"); if (event.map.setTextureEntry("extrautils:unstableFluid_flowing", sprite) && TConIntegration.unstable != null) { TConIntegration.unstable.setFlowingIcon((IIcon)sprite); } }
@Override @SideOnly(Side.CLIENT) public IIcon getIcon(int par1, int par2) { if (par2 >= BlockAirLockFrame.METADATA_AIR_LOCK_CONTROLLER) { if (par1 == ForgeDirection.UP.ordinal() || par1 == ForgeDirection.DOWN.ordinal()) { return this.airLockIcons[0]; } return this.airLockIcons[7]; } else { return this.airLockIcons[0]; } }
@Override public IIcon getIcon(int side, int meta) { switch (meta) { case 1: return OnePlayerIcon; case 2: return TwoPlayersIcon; case 3: return ThreePlayersIcon; case 4: return FourPlayersIcon; default: return LobbyIcon; } }
public static void renderInventoryBlock(RenderBlocks renderblocks, Block block, IIcon icon) { Tessellator tessellator = Tessellator.instance; GL11.glTranslatef(-0.5F, -0.5F, -0.5F); tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, -1F, 0.0F); renderblocks.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, getValidIIcon(icon)); tessellator.draw(); tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, 1.0F, 0.0F); renderblocks.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, getValidIIcon(icon)); tessellator.draw(); tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, 0.0F, -1F); renderblocks.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, getValidIIcon(icon)); tessellator.draw(); tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, 0.0F, 1.0F); renderblocks.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, getValidIIcon(icon)); tessellator.draw(); tessellator.startDrawingQuads(); tessellator.setNormal(-1F, 0.0F, 0.0F); renderblocks.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, getValidIIcon(icon)); tessellator.draw(); tessellator.startDrawingQuads(); tessellator.setNormal(1.0F, 0.0F, 0.0F); renderblocks.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, getValidIIcon(icon)); tessellator.draw(); GL11.glTranslatef(0.5F, 0.5F, 0.5F); }
@SideOnly(Side.CLIENT) public void setIcon(int index, IIcon icon) { if (icons == null) icons = new IIcon[types.length]; icons[index] = icon; }
@Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister reg) { if (icons == null) icons = new IIcon[types.length]; for (int i = 1; i < types.length; i++) if ("".equals(types[i])) icons[i] = reg.registerIcon(getTextureName()); else icons[i] = reg.registerIcon(getTextureName() + "_" + types[i]); }
@Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister reg) { icons = new IIcon[types.length]; for (int i = 0; i < types.length; i++) if ("".equals(types[i])) icons[i] = reg.registerIcon(getTextureName()); else icons[i] = reg.registerIcon(getTextureName() + "_" + types[i]); }
@Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { if (meta < 0 || meta >= icons.length) meta = 0; return icons[meta]; }
@Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister reg) { icons = new IIcon[4]; for (int i = 0; i < icons.length; i++) icons[i] = reg.registerIcon(getTextureName() + "_" + i); }
@Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { if (meta < 7) { if (meta == 6) meta = 5; return icons[meta >> 1]; } else return icons[3]; }
@Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister reg) { icons = new IIcon[4]; for (int i = 0; i < icons.length; i++) icons[i] = reg.registerIcon(getTextureName() + "_stage_" + i); }
@Override public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float p_76986_9_) { if (!(entity instanceof EntityLingeringPotion)) return; ItemStack stack = ((EntityLingeringPotion) entity).getStack(); if (stack == null || stack.getItem() == null) return; int passes; if (stack.getItem().requiresMultipleRenderPasses()) passes = stack.getItem().getRenderPasses(0); else passes = 1; OpenGLHelper.pushMatrix(); OpenGLHelper.translate(x, y, z); OpenGLHelper.enableRescaleNormal(); OpenGLHelper.scale(0.5F, 0.5F, 0.5F); bindEntityTexture(entity); for (int pass = 0; pass < passes; pass++) { IIcon icon = stack.getItem().getIcon(stack, pass); if (icon != null) { OpenGLHelper.pushMatrix(); OpenGLHelper.colour(stack.getItem().getColorFromItemStack(stack, pass)); renderIcon(icon); OpenGLHelper.popMatrix(); } } OpenGLHelper.colour(1, 1, 1); OpenGLHelper.disableRescaleNormal(); OpenGLHelper.popMatrix(); }
@Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister reg) { icons = new IIcon[types.length]; for (int i = 0; i < types.length; i++) icons[i] = reg.registerIcon(getIconString() + "_" + types[i]); }
@Override public IIcon getIconFromDamage(int meta) { if (meta == this.getMaxDamage()) { return this.Icon_Empty; } else if (meta >= 125) { return this.Icon_1; } // Indicating fill status based on the number of blocks in here else if (meta >= 100) { return this.Icon_2; } else if (meta >= 75) { return this.Icon_3; } else if (meta >= 50) { return this.Icon_4; } else if (meta >= 25) { return this.Icon_5; } return this.Icon_6; }
@Override public IIcon getIconFromDamage(int meta) { if (meta == this.getMaxDamage()) { return Icon_Empty; } return Icon; }
@Override public IIcon getIcon(ItemStack stack, int pass) // This is for on-hand display. The difference may be useful later { if (stack.getItemDamage() == this.getMaxDamage()) { return Icon_Empty; } return Icon; }
@Override public IIcon getIcon(ItemStack stack, int pass) { if (this.getDamage(stack) >= this.getMaxDamage()) { return this.Icon_Empty; } // Empty if (this.getDamage(stack) == 1) { return this.Icon_Half; } // One arrow on the bay return this.Icon; }
@Override public IIcon getIconFromDamage(int meta) // This is for inventory display. Comes in with metadata. Only gets called on client side { if (meta == this.getMaxDamage()) { return this.Icon_Empty; } // Empty if (meta == 1) { return this.Icon_Half; } return this.Icon; // Full, default }
@Override public IIcon getIcon(ItemStack stack, int pass) // Onhand display { if (this.getDamage(stack) >= this.getMaxDamage()) { return this.Icon_Empty; } return this.Icon; }
@Override public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) { if(player.getItemInUse() == null) { return this.itemIcon; } int Pulling = stack.getMaxItemUseDuration() - useRemaining; // Displaying the bow drawing animation based on the use state if (Pulling >= 18) { return this.pull_2; } else if (Pulling > 13) { return this.pull_1; } else if (Pulling > 0) { return this.pull_0; } return itemIcon; }
@SideOnly(Side.CLIENT) public IIcon getItemIconForUseDuration(int state) // Inventory display { if (state == 0) { return this.pull_0; } else if (state == 1) { return this.pull_1; } else if (state == 2) { return this.pull_2; } return this.pull_2; // Fallback }
@Override public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) // On hand display { if(player.getItemInUse() == null) { return this.itemIcon; } int Pulling = stack.getMaxItemUseDuration() - useRemaining; // Displaying the bow drawing animation based on the use state if (Pulling >= 18) { return this.pull_2; } else if (Pulling > 13) { return this.pull_1; } else if (Pulling > 0) { return this.pull_0; } return this.itemIcon; }
@Override @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int meta) // This is for inventory display. Comes in with metadata. Only gets called on client side { if (meta == this.getMaxDamage()) { return this.Icon_Empty; } // Empty return this.Icon; // Full, default }
@Override public IIcon getIcon(ItemStack stack, int pass) // Onhand display { if (this.getDamage(stack) >= this.getMaxDamage()) { return this.Icon_Empty; } if (!this.getChambered(stack)) { return this.Icon_Unchambered; } // Not chambered return this.Icon; }
@Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister par1IconRegister) { this.itemIcon = par1IconRegister.registerIcon(ModDetails.ModID + ":" + "ItemSlingshot" + "_standby"); iconArray = new IIcon[slingshotPullIconNameArray.length]; for (int i = 0; i < iconArray.length; ++i) iconArray[i] = par1IconRegister.registerIcon(ModDetails.ModID + ":" + "ItemSlingshot" + "_" + slingshotPullIconNameArray[i]); }
@Override public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) { if (usingItem != null && usingItem.getItem() == this) { int j = usingItem.getMaxItemUseDuration() - useRemaining; float force = j / getUseSpeed(player); if (force >= 1.25) // Fully drawn { return getItemIconForUseDuration(3); } else if (force > 0.75) { return getItemIconForUseDuration(2); } else if (force > 0.25) // Minimum required force to fire { return getItemIconForUseDuration(1); } else if (force > 0) { return getItemIconForUseDuration(0); } } return getIcon(stack, renderPass); }