/* Copyright (c) 2012-2015 Jesper Öqvist <jesper@llbit.se>
*
* This file is part of Chunky.
*
* Chunky is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Chunky is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with Chunky. If not, see <http://www.gnu.org/licenses/>.
*/
package se.llbit.chunky.resources;
import se.llbit.chunky.PersistentSettings;
import se.llbit.chunky.renderer.scene.Sun;
import se.llbit.chunky.resources.texturepack.AlternateTextures;
import se.llbit.chunky.resources.texturepack.AnimatedTextureLoader;
import se.llbit.chunky.resources.texturepack.ChestTexture;
import se.llbit.chunky.resources.texturepack.CloudsTexture;
import se.llbit.chunky.resources.texturepack.EntityTextureLoader;
import se.llbit.chunky.resources.texturepack.FoliageColorTexture;
import se.llbit.chunky.resources.texturepack.FontTexture;
import se.llbit.chunky.resources.texturepack.GrassColorTexture;
import se.llbit.chunky.resources.texturepack.IndexedTexture;
import se.llbit.chunky.resources.texturepack.LargeChestTexture;
import se.llbit.chunky.resources.texturepack.LayeredTextureLoader;
import se.llbit.chunky.resources.texturepack.RotatedTextureLoader;
import se.llbit.chunky.resources.texturepack.ShulkerTextureLoader;
import se.llbit.chunky.resources.texturepack.SimpleTexture;
import se.llbit.chunky.resources.texturepack.TextureLoader;
import se.llbit.chunky.resources.texturepack.ThinArmEntityTextureLoader;
import se.llbit.log.Log;
import se.llbit.resources.ImageLoader;
import se.llbit.util.NotNull;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/**
* Utility methods to load Minecraft texture packs.
*
* @author Jesper Öqvist <jesper@llbit.se>
*/
public class TexturePackLoader {
private static Map<String, TextureLoader> allTextures = new HashMap<>();
static {
allTextures.put("normal chest", new AlternateTextures(
new ChestTexture("assets/minecraft/textures/entity/chest/normal", Texture.chestLock,
// MC 1.6
Texture.chestTop, Texture.chestBottom, Texture.chestLeft, Texture.chestRight,
Texture.chestFront, Texture.chestBack),
new ChestTexture("item/chest", Texture.chestLock, Texture.chestTop, Texture.chestBottom,
Texture.chestLeft, Texture.chestRight, Texture.chestFront, Texture.chestBack)));
allTextures.put("ender chest", new AlternateTextures(
new ChestTexture("assets/minecraft/textures/entity/chest/ender", // MC 1.6
Texture.enderChestLock, Texture.enderChestTop, Texture.enderChestBottom,
Texture.enderChestLeft, Texture.enderChestRight, Texture.enderChestFront,
Texture.enderChestBack),
new ChestTexture("item/enderchest", Texture.enderChestLock, Texture.enderChestTop,
Texture.enderChestBottom, Texture.enderChestLeft, Texture.enderChestRight,
Texture.enderChestFront, Texture.enderChestBack)));
allTextures.put("normal double chest", new AlternateTextures(
new LargeChestTexture("assets/minecraft/textures/entity/chest/normal_double", // MC 1.6
Texture.largeChestLeft, Texture.largeChestRight, Texture.largeChestTopLeft,
Texture.largeChestTopRight, Texture.largeChestFrontLeft, Texture.largeChestFrontRight,
Texture.largeChestBottomLeft, Texture.largeChestBottomRight, Texture.largeChestBackLeft,
Texture.largeChestBackRight),
new LargeChestTexture("item/largechest", Texture.largeChestLeft, Texture.largeChestRight,
Texture.largeChestTopLeft, Texture.largeChestTopRight, Texture.largeChestFrontLeft,
Texture.largeChestFrontRight, Texture.largeChestBottomLeft,
Texture.largeChestBottomRight, Texture.largeChestBackLeft,
Texture.largeChestBackRight)));
allTextures.put("trapped chest", new AlternateTextures(
new ChestTexture("assets/minecraft/textures/entity/chest/trapped", // MC 1.6
Texture.trappedChestLock, Texture.trappedChestTop, Texture.trappedChestBottom,
Texture.trappedChestLeft, Texture.trappedChestRight, Texture.trappedChestFront,
Texture.trappedChestBack)));
allTextures.put("trapped double chest", new AlternateTextures(
new LargeChestTexture("assets/minecraft/textures/entity/chest/trapped_double", // MC 1.6
Texture.largeTrappedChestLeft, Texture.largeTrappedChestRight,
Texture.largeTrappedChestTopLeft, Texture.largeTrappedChestTopRight,
Texture.largeTrappedChestFrontLeft, Texture.largeTrappedChestFrontRight,
Texture.largeTrappedChestBottomLeft, Texture.largeTrappedChestBottomRight,
Texture.largeTrappedChestBackLeft, Texture.largeTrappedChestBackRight)));
allTextures.put("sun", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/environment/sun", Sun.texture),// MC 1.6
new SimpleTexture("environment/sun", Sun.texture),// MC 1.5
new SimpleTexture("terrain/sun", Sun.texture)));
allTextures.put("sign", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/entity/sign", Texture.signPost),// MC 1.6
new SimpleTexture("item/sign", Texture.signPost)));
allTextures.put("clouds",
new AlternateTextures(new CloudsTexture("assets/minecraft/textures/environment/clouds"),
// MC 1.6
new CloudsTexture("environment/clouds")));
allTextures.put("grass color map",
new AlternateTextures(new GrassColorTexture("assets/minecraft/textures/colormap/grass"),
// MC 1.6
new GrassColorTexture("misc/grasscolor")));
allTextures.put("foliage color map",
new AlternateTextures(new FoliageColorTexture("assets/minecraft/textures/colormap/foliage"),
// MC 1.6
new FoliageColorTexture("misc/foliagecolor")));
allTextures.put("grass top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/grass_top", Texture.grassTop),
new SimpleTexture("textures/blocks/grass_top", Texture.grassTop),
new IndexedTexture(0x00, Texture.grassTop)));
allTextures.put("stone", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/stone", Texture.stone),
new SimpleTexture("textures/blocks/stone", Texture.stone),
new IndexedTexture(0x01, Texture.stone)));
allTextures.put("dirt", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/dirt", Texture.dirt),
new SimpleTexture("textures/blocks/dirt", Texture.dirt),
new IndexedTexture(0x02, Texture.dirt)));
allTextures.put("grass side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/grass_side",
Texture.grassSideSaturated),
new SimpleTexture("textures/blocks/grass_side", Texture.grassSideSaturated),
new IndexedTexture(0x03, Texture.grassSideSaturated)));
allTextures.put("oak planks", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/planks_oak", Texture.oakPlanks),
new SimpleTexture("textures/blocks/wood", Texture.oakPlanks),
new IndexedTexture(0x04, Texture.oakPlanks)));
allTextures.put("stone slab side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/stone_slab_side", Texture.slabSide),
new SimpleTexture("textures/blocks/stoneslab_side", Texture.slabSide),
new IndexedTexture(0x05, Texture.slabSide)));
allTextures.put("stone slab top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/stone_slab_top", Texture.slabTop),
new SimpleTexture("textures/blocks/stoneslab_top", Texture.slabTop),
new IndexedTexture(0x06, Texture.slabTop)));
allTextures.put("brick", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/brick", Texture.brick),
new SimpleTexture("textures/blocks/brick", Texture.brick),
new IndexedTexture(0x07, Texture.brick)));
allTextures.put("tnt side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/tnt_side", Texture.tntSide),
new SimpleTexture("textures/blocks/tnt_side", Texture.tntSide),
new IndexedTexture(0x08, Texture.tntSide)));
allTextures.put("tnt top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/tnt_top", Texture.tntTop),
new SimpleTexture("textures/blocks/tnt_top", Texture.tntTop),
new IndexedTexture(0x09, Texture.tntTop)));
allTextures.put("tnt bottom", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/tnt_bottom", Texture.tntBottom),
new SimpleTexture("textures/blocks/tnt_bottom", Texture.tntBottom),
new IndexedTexture(0x0A, Texture.tntBottom)));
allTextures.put("cobweb", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/web", Texture.cobweb),
new SimpleTexture("textures/blocks/web", Texture.cobweb),
new IndexedTexture(0x0B, Texture.cobweb)));
allTextures.put("rose", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/flower_rose", Texture.poppy),
new SimpleTexture("textures/blocks/rose", Texture.poppy),
new IndexedTexture(0x0C, Texture.poppy)));
allTextures.put("dandelion", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/flower_dandelion", Texture.dandelion),
new SimpleTexture("textures/blocks/flower", Texture.dandelion),
new IndexedTexture(0x0D, Texture.dandelion)));
allTextures.put("nether portal", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/portal", Texture.portal),
new SimpleTexture("textures/blocks/portal", Texture.portal),
new IndexedTexture(0x0E, Texture.portal)));
allTextures.put("oak sapling", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/sapling_oak", Texture.oakSapling),
new SimpleTexture("textures/blocks/sapling", Texture.oakSapling),
new IndexedTexture(0x0F, Texture.oakSapling)));
allTextures.put("cobblestone", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cobblestone", Texture.cobblestone),
new SimpleTexture("textures/blocks/stonebrick", Texture.cobblestone),
new IndexedTexture(0x10, Texture.cobblestone)));
allTextures.put("bedrock", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/bedrock", Texture.bedrock),
new SimpleTexture("textures/blocks/bedrock", Texture.bedrock),
new IndexedTexture(0x11, Texture.bedrock)));
allTextures.put("sand", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/sand", Texture.sand),
new SimpleTexture("textures/blocks/sand", Texture.sand),
new IndexedTexture(0x12, Texture.sand)));
allTextures.put("gravel", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/gravel", Texture.gravel),
new SimpleTexture("textures/blocks/gravel", Texture.gravel),
new IndexedTexture(0x13, Texture.gravel)));
allTextures.put("oak log side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/log_oak", Texture.oakWood),
new SimpleTexture("textures/blocks/tree_side", Texture.oakWood),
new IndexedTexture(0x14, Texture.oakWood)));
allTextures.put("oak log top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/log_oak_top", Texture.oakWoodTop),
new SimpleTexture("textures/blocks/tree_top", Texture.oakWoodTop),
new IndexedTexture(0x15, Texture.oakWoodTop)));
allTextures.put("iron block", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/iron_block", Texture.ironBlock),
new SimpleTexture("textures/blocks/blockIron", Texture.ironBlock),
new IndexedTexture(0x16, Texture.ironBlock)));
allTextures.put("gold block", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/gold_block", Texture.goldBlock),
new SimpleTexture("textures/blocks/blockGold", Texture.goldBlock),
new IndexedTexture(0x17, Texture.goldBlock)));
allTextures.put("diamond block", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/diamond_block", Texture.diamondBlock),
new SimpleTexture("textures/blocks/blockDiamond", Texture.diamondBlock),
new IndexedTexture(0x18, Texture.diamondBlock)));
allTextures.put("emerald block", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/emerald_block", Texture.emeraldBlock),
new SimpleTexture("textures/blocks/blockEmerald", Texture.emeraldBlock),
new IndexedTexture(0x19, Texture.emeraldBlock)));
allTextures.put("redstone block", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/redstone_block", Texture.redstoneBlock),
new SimpleTexture("textures/blocks/blockRedstone", Texture.redstoneBlock),
new IndexedTexture(0x1A, Texture.redstoneBlock)));
allTextures.put("red mushroom", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/mushroom_red", Texture.redMushroom),
new SimpleTexture("textures/blocks/mushroom_red", Texture.redMushroom),
new IndexedTexture(0x1C, Texture.redMushroom)));
allTextures.put("brown mushroom", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/mushroom_brown", Texture.brownMushroom),
new SimpleTexture("textures/blocks/mushroom_brown", Texture.brownMushroom),
new IndexedTexture(0x1D, Texture.brownMushroom)));
allTextures.put("jungle sapling", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/sapling_jungle", Texture.jungleSapling),
new SimpleTexture("textures/blocks/sapling_jungle", Texture.jungleSapling),
new IndexedTexture(0x1E, Texture.jungleSapling)));
allTextures.put("gold ore", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/gold_ore", Texture.goldOre),
new SimpleTexture("textures/blocks/oreGold", Texture.goldOre),
new IndexedTexture(0x20, Texture.goldOre)));
allTextures.put("iron ore", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/iron_ore", Texture.ironOre),
new SimpleTexture("textures/blocks/oreIron", Texture.ironOre),
new IndexedTexture(0x21, Texture.ironOre)));
allTextures.put("coal ore", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/coal_ore", Texture.coalOre),
new SimpleTexture("textures/blocks/oreCoal", Texture.coalOre),
new IndexedTexture(0x22, Texture.coalOre)));
allTextures.put("bookshelf", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/bookshelf", Texture.bookshelf),
new SimpleTexture("textures/blocks/bookshelf", Texture.bookshelf),
new IndexedTexture(0x23, Texture.bookshelf)));
allTextures.put("mossy cobblestone", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cobblestone_mossy", Texture.mossStone),
new SimpleTexture("textures/blocks/stoneMoss", Texture.mossStone),
new IndexedTexture(0x24, Texture.mossStone)));
allTextures.put("obsidian", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/obsidian", Texture.obsidian),
new SimpleTexture("textures/blocks/obsidian", Texture.obsidian),
new IndexedTexture(0x25, Texture.obsidian)));
allTextures.put("grass_side_overlay", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/grass_side_overlay", Texture.grassSide),
new SimpleTexture("textures/blocks/grass_side_overlay", Texture.grassSide),
new IndexedTexture(0x26, Texture.grassSide)));
allTextures.put("tallgrass", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/tallgrass", Texture.tallGrass),
new SimpleTexture("textures/blocks/tallgrass", Texture.tallGrass),
new IndexedTexture(0x27, Texture.tallGrass)));
allTextures.put("beacon", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/beacon", Texture.beacon),
new SimpleTexture("textures/blocks/beacon", Texture.beacon),
new IndexedTexture(0x29, Texture.beacon)));
allTextures.put("crafting_table_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/crafting_table_top",
Texture.workbenchTop),
new SimpleTexture("textures/blocks/workbench_top", Texture.workbenchTop),
new IndexedTexture(0x2B, Texture.workbenchTop)));
allTextures.put("furnace_front_off", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/furnace_front_off",
Texture.furnaceUnlitFront),
new SimpleTexture("textures/blocks/furnace_front", Texture.furnaceUnlitFront),
new IndexedTexture(0x2C, Texture.furnaceUnlitFront)));
allTextures.put("furnace_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/furnace_side", Texture.furnaceSide),
new SimpleTexture("textures/blocks/furnace_side", Texture.furnaceSide),
new IndexedTexture(0x2D, Texture.furnaceSide)));
allTextures.put("dispenser_front_horizontal", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/dispenser_front_horizontal",
Texture.dispenserFront),
new SimpleTexture("textures/blocks/dispenser_front", Texture.dispenserFront),
new IndexedTexture(0x2E, Texture.dispenserFront)));
allTextures.put("dispenser_front_vertical",
new SimpleTexture("assets/minecraft/textures/blocks/dispenser_front_vertical",
Texture.dispenserFrontVertical));
allTextures.put("sponge", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/sponge", Texture.sponge),
new SimpleTexture("textures/blocks/sponge", Texture.sponge),
new IndexedTexture(0x30, Texture.sponge)));
allTextures.put("glass", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/glass", Texture.glass),
new SimpleTexture("textures/blocks/glass", Texture.glass),
new IndexedTexture(0x31, Texture.glass)));
allTextures.put("diamond ore", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/diamond_ore", Texture.diamondOre),
new SimpleTexture("textures/blocks/oreDiamond", Texture.diamondOre),
new IndexedTexture(0x32, Texture.diamondOre)));
allTextures.put("redstone ore", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/redstone_ore", Texture.redstoneOre),
new SimpleTexture("textures/blocks/oreRedstone", Texture.redstoneOre),
new IndexedTexture(0x33, Texture.redstoneOre)));
allTextures.put("oak leaves", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/leaves_oak", Texture.oakLeaves),
new SimpleTexture("textures/blocks/leaves", Texture.oakLeaves),
new IndexedTexture(0x34, Texture.oakLeaves)));
allTextures.put("stone brick", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/stonebrick", Texture.stoneBrick),
new SimpleTexture("textures/blocks/stonebricksmooth", Texture.stoneBrick),
new IndexedTexture(0x36, Texture.stoneBrick)));
allTextures.put("deadbush", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/deadbush", Texture.deadBush),
new SimpleTexture("textures/blocks/deadbush", Texture.deadBush),
new IndexedTexture(0x37, Texture.deadBush)));
allTextures.put("fern", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/fern", Texture.fern),
new SimpleTexture("textures/blocks/fern", Texture.fern),
new IndexedTexture(0x38, Texture.fern)));
allTextures.put("crafting_table_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/crafting_table_side",
Texture.workbenchSide),
new SimpleTexture("textures/blocks/workbench_side", Texture.workbenchSide),
new IndexedTexture(0x3B, Texture.workbenchSide)));
allTextures.put("crafting_table_front", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/crafting_table_front",
Texture.workbenchFront),
new SimpleTexture("textures/blocks/workbench_front", Texture.workbenchFront),
new IndexedTexture(0x3C, Texture.workbenchFront)));
allTextures.put("furnace_front_on", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/furnace_front_on",
Texture.furnaceLitFront),
new SimpleTexture("textures/blocks/furnace_front_lit", Texture.furnaceLitFront),
new IndexedTexture(0x3D, Texture.furnaceLitFront)));
allTextures.put("furnace_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/furnace_top", Texture.furnaceTop),
new SimpleTexture("textures/blocks/furnace_top", Texture.furnaceTop),
new IndexedTexture(0x3E, Texture.furnaceTop)));
allTextures.put("sapling_spruce", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/sapling_spruce", Texture.spruceSapling),
new SimpleTexture("textures/blocks/sapling_spruce", Texture.spruceSapling),
new IndexedTexture(0x3F, Texture.spruceSapling)));
allTextures.put("white wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_white", Texture.whiteWool),
new SimpleTexture("textures/blocks/cloth_0", Texture.whiteWool),
new IndexedTexture(0x40, Texture.whiteWool)));
allTextures.put("mob spawner", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/mob_spawner", Texture.monsterSpawner),
new SimpleTexture("textures/blocks/mobSpawner", Texture.monsterSpawner),
new IndexedTexture(0x41, Texture.monsterSpawner)));
allTextures.put("snow", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/snow", Texture.snowBlock),
new SimpleTexture("textures/blocks/snow", Texture.snowBlock),
new IndexedTexture(0x42, Texture.snowBlock)));
allTextures.put("ice", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/ice", Texture.ice),
new SimpleTexture("textures/blocks/ice", Texture.ice),
new IndexedTexture(0x43, Texture.ice)));
allTextures.put("snowy grass block side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/grass_side_snowed", Texture.snowSide),
new SimpleTexture("textures/blocks/snow_side", Texture.snowSide),
new IndexedTexture(0x44, Texture.snowSide)));
allTextures.put("cactus_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cactus_top", Texture.cactusTop),
new SimpleTexture("textures/blocks/cactus_top", Texture.cactusTop),
new IndexedTexture(0x45, Texture.cactusTop)));
allTextures.put("cactus_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cactus_side", Texture.cactusSide),
new SimpleTexture("textures/blocks/cactus_side", Texture.cactusSide),
new IndexedTexture(0x46, Texture.cactusSide)));
allTextures.put("cactus_bottom", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cactus_bottom", Texture.cactusBottom),
new SimpleTexture("textures/blocks/cactus_bottom", Texture.cactusBottom),
new IndexedTexture(0x47, Texture.cactusBottom)));
allTextures.put("clay", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/clay", Texture.clay),
new SimpleTexture("textures/blocks/clay", Texture.clay),
new IndexedTexture(0x48, Texture.clay)));
allTextures.put("reeds", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/reeds", Texture.sugarCane),
new SimpleTexture("textures/blocks/reeds", Texture.sugarCane),
new IndexedTexture(0x49, Texture.sugarCane)));
allTextures.put("noteblock", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/noteblock", Texture.jukeboxSide),
new SimpleTexture("textures/blocks/musicBlock", Texture.jukeboxSide),
new IndexedTexture(0x4A, Texture.jukeboxSide)));
allTextures.put("jukebox_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/jukebox_top", Texture.jukeboxTop),
new SimpleTexture("textures/blocks/jukebox_top", Texture.jukeboxTop),
new IndexedTexture(0x4B, Texture.jukeboxTop)));
allTextures.put("waterlily", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/waterlily", Texture.lilyPad),
new SimpleTexture("textures/blocks/waterlily", Texture.lilyPad),
new IndexedTexture(0x4C, Texture.lilyPad)));
allTextures.put("mycelium side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/mycelium_side", Texture.myceliumSide),
new SimpleTexture("textures/blocks/mycel_side", Texture.myceliumSide),
new IndexedTexture(0x4D, Texture.myceliumSide)));
allTextures.put("mycelium top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/mycelium_top", Texture.myceliumTop),
new SimpleTexture("textures/blocks/mycel_top", Texture.myceliumTop),
new IndexedTexture(0x4E, Texture.myceliumTop)));
allTextures.put("sapling_birch", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/sapling_birch", Texture.birchSapling),
new SimpleTexture("textures/blocks/sapling_birch", Texture.birchSapling),
new IndexedTexture(0x4F, Texture.birchSapling)));
allTextures.put("torch", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/torch_on", Texture.torch),
new SimpleTexture("textures/blocks/torch", Texture.torch),
new IndexedTexture(0x50, Texture.torch)));
allTextures.put("door_wood_upper", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/door_wood_upper",
Texture.woodenDoorTop),
new SimpleTexture("textures/blocks/doorWood_upper", Texture.woodenDoorTop),
new IndexedTexture(0x51, Texture.woodenDoorTop)));
allTextures.put("door_iron_upper", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/door_iron_upper", Texture.ironDoorTop),
new SimpleTexture("textures/blocks/doorIron_upper", Texture.ironDoorTop),
new IndexedTexture(0x52, Texture.ironDoorTop)));
allTextures.put("ladder", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/ladder", Texture.ladder),
new SimpleTexture("textures/blocks/ladder", Texture.ladder),
new IndexedTexture(0x53, Texture.ladder)));
allTextures.put("trapdoor", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/trapdoor", Texture.trapdoor),
new SimpleTexture("textures/blocks/trapdoor", Texture.trapdoor),
new IndexedTexture(0x54, Texture.trapdoor)));
allTextures.put("iron bars", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/iron_bars", Texture.ironBars),
new SimpleTexture("textures/blocks/fenceIron", Texture.ironBars),
new IndexedTexture(0x55, Texture.ironBars)));
allTextures.put("farmland_wet", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/farmland_wet", Texture.farmlandWet),
new SimpleTexture("textures/blocks/farmland_wet", Texture.farmlandWet),
new IndexedTexture(0x56, Texture.farmlandWet)));
allTextures.put("farmland_dry", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/farmland_dry", Texture.farmlandDry),
new SimpleTexture("textures/blocks/farmland_dry", Texture.farmlandDry),
new IndexedTexture(0x57, Texture.farmlandDry)));
allTextures.put("wheat_stage_0", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wheat_stage_0", Texture.crops0),
new SimpleTexture("textures/blocks/crops_0", Texture.crops0),
new IndexedTexture(0x58, Texture.crops0)));
allTextures.put("wheat_stage_1", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wheat_stage_1", Texture.crops1),
new SimpleTexture("textures/blocks/crops_1", Texture.crops1),
new IndexedTexture(0x59, Texture.crops1)));
allTextures.put("wheat_stage_2", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wheat_stage_2", Texture.crops2),
new SimpleTexture("textures/blocks/crops_2", Texture.crops2),
new IndexedTexture(0x5A, Texture.crops2)));
allTextures.put("wheat_stage_3", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wheat_stage_3", Texture.crops3),
new SimpleTexture("textures/blocks/crops_3", Texture.crops3),
new IndexedTexture(0x5B, Texture.crops3)));
allTextures.put("wheat_stage_4", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wheat_stage_4", Texture.crops4),
new SimpleTexture("textures/blocks/crops_4", Texture.crops4),
new IndexedTexture(0x5C, Texture.crops4)));
allTextures.put("wheat_stage_5", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wheat_stage_5", Texture.crops5),
new SimpleTexture("textures/blocks/crops_5", Texture.crops5),
new IndexedTexture(0x5D, Texture.crops5)));
allTextures.put("wheat_stage_6", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wheat_stage_6", Texture.crops6),
new SimpleTexture("textures/blocks/crops_6", Texture.crops6),
new IndexedTexture(0x5E, Texture.crops6)));
allTextures.put("wheat_stage_7", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wheat_stage_7", Texture.crops7),
new SimpleTexture("textures/blocks/crops_7", Texture.crops7),
new IndexedTexture(0x5F, Texture.crops7)));
allTextures.put("lever", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/lever", Texture.lever),
new SimpleTexture("textures/blocks/lever", Texture.lever),
new IndexedTexture(0x60, Texture.lever)));
allTextures.put("door_wood_lower", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/door_wood_lower",
Texture.woodenDoorBottom),
new SimpleTexture("textures/blocks/doorWood_lower", Texture.woodenDoorBottom),
new IndexedTexture(0x61, Texture.woodenDoorBottom)));
allTextures.put("door_iron_lower", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/door_iron_lower",
Texture.ironDoorBottom),
new SimpleTexture("textures/blocks/doorIron_lower", Texture.ironDoorBottom),
new IndexedTexture(0x62, Texture.ironDoorBottom)));
allTextures.put("redstone_torch_on", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/redstone_torch_on",
Texture.redstoneTorchOn),
new SimpleTexture("textures/blocks/redtorch_lit", Texture.redstoneTorchOn),
new IndexedTexture(0x63, Texture.redstoneTorchOn)));
allTextures.put("stonebrick_mossy", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/stonebrick_mossy",
Texture.mossyStoneBrick),
new SimpleTexture("textures/blocks/stonebricksmooth_mossy", Texture.mossyStoneBrick),
new IndexedTexture(0x64, Texture.mossyStoneBrick)));
allTextures.put("stonebrick_cracked", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/stonebrick_cracked",
Texture.crackedStoneBrick),
new SimpleTexture("textures/blocks/stonebricksmooth_cracked", Texture.crackedStoneBrick),
new IndexedTexture(0x65, Texture.crackedStoneBrick)));
allTextures.put("pumpkin_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/pumpkin_top", Texture.pumpkinTop),
new SimpleTexture("textures/blocks/pumpkin_top", Texture.pumpkinTop),
new IndexedTexture(0x66, Texture.pumpkinTop)));
allTextures.put("netherrack", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/netherrack", Texture.netherrack),
new SimpleTexture("textures/blocks/hellrock", Texture.netherrack),
new IndexedTexture(0x67, Texture.netherrack)));
allTextures.put("soul_sand", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/soul_sand", Texture.soulsand),
new SimpleTexture("textures/blocks/hellsand", Texture.soulsand),
new IndexedTexture(0x68, Texture.soulsand)));
allTextures.put("glowstone", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/glowstone", Texture.glowstone),
new SimpleTexture("textures/blocks/lightgem", Texture.glowstone),
new IndexedTexture(0x69, Texture.glowstone)));
allTextures.put("piston_top_sticky", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/piston_top_sticky",
Texture.pistonTopSticky),
new SimpleTexture("textures/blocks/piston_top_sticky", Texture.pistonTopSticky),
new IndexedTexture(0x6A, Texture.pistonTopSticky)));
allTextures.put("piston_top_normal", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/piston_top_normal", Texture.pistonTop),
new SimpleTexture("textures/blocks/piston_top", Texture.pistonTop),
new IndexedTexture(0x6B, Texture.pistonTop)));
allTextures.put("piston_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/piston_side", Texture.pistonSide),
new SimpleTexture("textures/blocks/piston_side", Texture.pistonSide),
new IndexedTexture(0x6C, Texture.pistonSide)));
allTextures.put("piston_bottom", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/piston_bottom", Texture.pistonBottom),
new SimpleTexture("textures/blocks/piston_bottom", Texture.pistonBottom),
new IndexedTexture(0x6D, Texture.pistonBottom)));
allTextures.put("piston_inner", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/piston_inner", Texture.pistonInnerTop),
new SimpleTexture("textures/blocks/piston_inner_top", Texture.pistonInnerTop),
new IndexedTexture(0x6E, Texture.pistonInnerTop)));
// TODO pumpkin stem variants
allTextures.put("melon_stem_disconnected", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/melon_stem_disconnected",
Texture.stemStraight),
new SimpleTexture("textures/blocks/stem_straight", Texture.stemStraight),
new IndexedTexture(0x6F, Texture.stemStraight)));
allTextures.put("rail_normal_turned", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/rail_normal_turned",
Texture.railsCurved),
new SimpleTexture("textures/blocks/rail_turn", Texture.railsCurved),
new IndexedTexture(0x70, Texture.railsCurved)));
allTextures.put("black wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_black", Texture.blackWool),
new SimpleTexture("textures/blocks/cloth_15", Texture.blackWool),
new IndexedTexture(0x71, Texture.blackWool)));
allTextures.put("gray wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_gray", Texture.grayWool),
new SimpleTexture("textures/blocks/cloth_7", Texture.grayWool),
new IndexedTexture(0x72, Texture.grayWool)));
allTextures.put("redstone_torch_off", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/redstone_torch_off",
Texture.redstoneTorchOff),
new SimpleTexture("textures/blocks/redtorch", Texture.redstoneTorchOff),
new IndexedTexture(0x73, Texture.redstoneTorchOff)));
allTextures.put("log_spruce", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/log_spruce", Texture.spruceWood),
new SimpleTexture("textures/blocks/tree_spruce", Texture.spruceWood),
new IndexedTexture(0x74, Texture.spruceWood)));
allTextures.put("log_birch", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/log_birch", Texture.birchWood),
new SimpleTexture("textures/blocks/tree_birch", Texture.birchWood),
new IndexedTexture(0x75, Texture.birchWood)));
allTextures.put("pumpkin_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/pumpkin_side", Texture.pumpkinSide),
new SimpleTexture("textures/blocks/pumpkin_side", Texture.pumpkinSide),
new IndexedTexture(0x76, Texture.pumpkinSide)));
allTextures.put("pumpkin_face_off", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/pumpkin_face_off",
Texture.pumpkinFront),
new SimpleTexture("textures/blocks/pumpkin_face", Texture.pumpkinFront),
new IndexedTexture(0x77, Texture.pumpkinFront)));
allTextures.put("pumpkin_face_on", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/pumpkin_face_on",
Texture.jackolanternFront),
new SimpleTexture("textures/blocks/pumpkin_jack", Texture.jackolanternFront),
new IndexedTexture(0x78, Texture.jackolanternFront)));
allTextures.put("cake_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cake_top", Texture.cakeTop),
new SimpleTexture("textures/blocks/cake_top", Texture.cakeTop),
new IndexedTexture(0x79, Texture.cakeTop)));
allTextures.put("cake_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cake_side", Texture.cakeSide),
new SimpleTexture("textures/blocks/cake_side", Texture.cakeSide),
new IndexedTexture(0x7A, Texture.cakeSide)));
allTextures.put("cake_inner", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cake_inner", Texture.cakeInside),
new SimpleTexture("textures/blocks/cake_inner", Texture.cakeInside),
new IndexedTexture(0x7B, Texture.cakeInside)));
allTextures.put("cake_bottom", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cake_bottom", Texture.cakeBottom),
new SimpleTexture("textures/blocks/cake_bottom", Texture.cakeBottom),
new IndexedTexture(0x7C, Texture.cakeBottom)));
allTextures.put("mushroom_block_skin_red", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/mushroom_block_skin_red",
Texture.hugeRedMushroom),
new SimpleTexture("textures/blocks/mushroom_skin_red", Texture.hugeRedMushroom),
new IndexedTexture(0x7D, Texture.hugeRedMushroom)));
allTextures.put("mushroom_block_skin_brown", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/mushroom_block_skin_brown",
Texture.hugeBrownMushroom),
new SimpleTexture("textures/blocks/mushroom_skin_brown", Texture.hugeBrownMushroom),
new IndexedTexture(0x7E, Texture.hugeBrownMushroom)));
allTextures.put("melon_stem_connected", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/melon_stem_connected",
Texture.stemBent), new SimpleTexture("textures/blocks/stem_bent", Texture.stemBent),
new IndexedTexture(0x7F, Texture.stemBent)));
allTextures.put("rail_normal", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/rail_normal", Texture.rails),
new SimpleTexture("textures/blocks/rail", Texture.rails),
new IndexedTexture(0x80, Texture.rails)));
allTextures.put("red wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_red", Texture.redWool),
new SimpleTexture("textures/blocks/cloth_14", Texture.redWool),
new IndexedTexture(0x81, Texture.redWool)));
allTextures.put("pink wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_pink", Texture.pinkWool),
new SimpleTexture("textures/blocks/cloth_6", Texture.pinkWool),
new IndexedTexture(0x82, Texture.pinkWool)));
allTextures.put("repeater_off", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/repeater_off",
Texture.redstoneRepeaterOff),
new SimpleTexture("textures/blocks/repeater", Texture.redstoneRepeaterOff),
new IndexedTexture(0x83, Texture.redstoneRepeaterOff)));
allTextures.put("leaves_spruce", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/leaves_spruce", Texture.spruceLeaves),
new SimpleTexture("textures/blocks/leaves_spruce", Texture.spruceLeaves),
new IndexedTexture(0x84, Texture.spruceLeaves)));
allTextures.put("bed_feet_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/bed_feet_top", Texture.bedFootTop),
new SimpleTexture("textures/blocks/bed_feet_top", Texture.bedFootTop),
new IndexedTexture(0x86, Texture.bedFootTop)));
allTextures.put("bed_head_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/bed_head_top", Texture.bedHeadTop),
new SimpleTexture("textures/blocks/bed_head_top", Texture.bedHeadTop),
new IndexedTexture(0x87, Texture.bedHeadTop)));
allTextures.put("melon_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/melon_side", Texture.melonSide),
new SimpleTexture("textures/blocks/melon_side", Texture.melonSide),
new IndexedTexture(0x88, Texture.melonSide)));
allTextures.put("melon_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/melon_top", Texture.melonTop),
new SimpleTexture("textures/blocks/melon_top", Texture.melonTop),
new IndexedTexture(0x89, Texture.melonTop)));
allTextures.put("cauldron_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cauldron_top", Texture.cauldronTop),
new SimpleTexture("textures/blocks/cauldron_top", Texture.cauldronTop),
new IndexedTexture(0x8A, Texture.cauldronTop)));
allTextures.put("cauldron_inner", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cauldron_inner",
Texture.cauldronInside),
new SimpleTexture("textures/blocks/cauldron_inner", Texture.cauldronInside),
new IndexedTexture(0x8B, Texture.cauldronInside)));
allTextures.put("mushroom_block_skin_stem", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/mushroom_block_skin_stem",
Texture.mushroomStem),
new SimpleTexture("textures/blocks/mushroom_skin_stem", Texture.mushroomStem),
new IndexedTexture(0x8D, Texture.mushroomStem)));
allTextures.put("mushroom_block_inside", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/mushroom_block_inside",
Texture.mushroomPores),
new SimpleTexture("textures/blocks/mushroom_inside", Texture.mushroomPores),
new IndexedTexture(0x8E, Texture.mushroomPores)));
allTextures.put("vine", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/vine", Texture.vines),
new SimpleTexture("textures/blocks/vine", Texture.vines),
new IndexedTexture(0x8F, Texture.vines)));
allTextures.put("lapis_block", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/lapis_block", Texture.lapisBlock),
new SimpleTexture("textures/blocks/blockLapis", Texture.lapisBlock),
new IndexedTexture(0x90, Texture.lapisBlock)));
allTextures.put("green wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_green", Texture.greenWool),
new SimpleTexture("textures/blocks/cloth_13", Texture.greenWool),
new IndexedTexture(0x91, Texture.greenWool)));
allTextures.put("lime wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_lime", Texture.limeWool),
new SimpleTexture("textures/blocks/cloth_5", Texture.limeWool),
new IndexedTexture(0x92, Texture.limeWool)));
allTextures.put("repeater_on", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/repeater_on",
Texture.redstoneRepeaterOn),
new SimpleTexture("textures/blocks/repeater_lit", Texture.redstoneRepeaterOn),
new IndexedTexture(0x93, Texture.redstoneRepeaterOn)));
allTextures.put("glass_pane_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top", Texture.glassPaneTop),
new SimpleTexture("textures/blocks/thinglass_top", Texture.glassPaneTop),
new IndexedTexture(0x94, Texture.glassPaneTop)));
allTextures.put("bed_feet_end", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/bed_feet_end", Texture.bedFootEnd),
new SimpleTexture("textures/blocks/bed_feet_end", Texture.bedFootEnd),
new IndexedTexture(0x95, Texture.bedFootEnd)));
allTextures.put("bed_feet_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/bed_feet_side", Texture.bedFootSide),
new SimpleTexture("textures/blocks/bed_feet_side", Texture.bedFootSide),
new IndexedTexture(0x96, Texture.bedFootSide)));
allTextures.put("bed_head_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/bed_head_side", Texture.bedHeadSide),
new SimpleTexture("textures/blocks/bed_head_side", Texture.bedHeadSide),
new IndexedTexture(0x97, Texture.bedHeadSide)));
allTextures.put("bed_head_end", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/bed_head_end", Texture.bedHeadEnd),
new SimpleTexture("textures/blocks/bed_head_end", Texture.bedHeadEnd),
new IndexedTexture(0x98, Texture.bedHeadEnd)));
allTextures.put("log_jungle", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/log_jungle", Texture.jungleWood),
new SimpleTexture("textures/blocks/tree_jungle", Texture.jungleWood),
new IndexedTexture(0x99, Texture.jungleWood)));
allTextures.put("cauldron_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cauldron_side", Texture.cauldronSide),
new SimpleTexture("textures/blocks/cauldron_side", Texture.cauldronSide),
new IndexedTexture(0x9A, Texture.cauldronSide)));
allTextures.put("cauldron_bottom", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cauldron_bottom",
Texture.cauldronBottom),
new SimpleTexture("textures/blocks/cauldron_bottom", Texture.cauldronBottom),
new IndexedTexture(0x9B, Texture.cauldronBottom)));
allTextures.put("brewing_stand_base", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/brewing_stand_base",
Texture.brewingStandBase),
new SimpleTexture("textures/blocks/brewingStand_base", Texture.brewingStandBase),
new IndexedTexture(0x9C, Texture.brewingStandBase)));
allTextures.put("brewing_stand", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/brewing_stand",
Texture.brewingStandSide),
new SimpleTexture("textures/blocks/brewingStand", Texture.brewingStandSide),
new IndexedTexture(0x9D, Texture.brewingStandSide)));
allTextures.put("endframe_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/endframe_top",
Texture.endPortalFrameTop),
new SimpleTexture("textures/blocks/endframe_top", Texture.endPortalFrameTop),
new IndexedTexture(0x9E, Texture.endPortalFrameTop)));
allTextures.put("endframe_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/endframe_side",
Texture.endPortalFrameSide),
new SimpleTexture("textures/blocks/endframe_side", Texture.endPortalFrameSide),
new IndexedTexture(0x9F, Texture.endPortalFrameSide)));
allTextures.put("lapis_ore", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/lapis_ore", Texture.lapisOre),
new SimpleTexture("textures/blocks/oreLapis", Texture.lapisOre),
new IndexedTexture(0xA0, Texture.lapisOre)));
allTextures.put("brown wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_brown", Texture.brownWool),
new SimpleTexture("textures/blocks/cloth_12", Texture.brownWool),
new IndexedTexture(0xA1, Texture.brownWool)));
allTextures.put("yellow wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_yellow",
Texture.yellowWool), new SimpleTexture("textures/blocks/cloth_4", Texture.yellowWool),
new IndexedTexture(0xA2, Texture.yellowWool)));
allTextures.put("rail_golden", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/rail_golden", Texture.poweredRailOff),
new SimpleTexture("textures/blocks/goldenRail", Texture.poweredRailOff),
new IndexedTexture(0xA3, Texture.poweredRailOff)));
allTextures.put("enchanting_table_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/enchanting_table_top",
Texture.enchantmentTableTop),
new SimpleTexture("textures/blocks/enchantment_top", Texture.enchantmentTableTop),
new IndexedTexture(0xA6, Texture.enchantmentTableTop)));
allTextures.put("dragon_egg", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/dragon_egg", Texture.dragonEgg),
new SimpleTexture("textures/blocks/dragonEgg", Texture.dragonEgg),
new IndexedTexture(0xA7, Texture.dragonEgg)));
allTextures.put("cocoa_stage_2", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cocoa_stage_2",
Texture.cocoaPlantLarge),
new SimpleTexture("textures/blocks/cocoa_2", Texture.cocoaPlantLarge),
new IndexedTexture(0xA8, Texture.cocoaPlantLarge)));
allTextures.put("cocoa_stage_1", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cocoa_stage_1",
Texture.cocoaPlantMedium),
new SimpleTexture("textures/blocks/cocoa_1", Texture.cocoaPlantMedium),
new IndexedTexture(0xA9, Texture.cocoaPlantMedium)));
allTextures.put("cocoa_stage_0", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/cocoa_stage_0",
Texture.cocoaPlantSmall),
new SimpleTexture("textures/blocks/cocoa_0", Texture.cocoaPlantSmall),
new IndexedTexture(0xAA, Texture.cocoaPlantSmall)));
allTextures.put("emerald_ore", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/emerald_ore", Texture.emeraldOre),
new SimpleTexture("textures/blocks/oreEmerald", Texture.emeraldOre),
new IndexedTexture(0xAB, Texture.emeraldOre)));
allTextures.put("trip_wire_source", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/trip_wire_source",
Texture.tripwireHook),
new SimpleTexture("textures/blocks/tripWireSource", Texture.tripwireHook),
new IndexedTexture(0xAC, Texture.tripwireHook)));
allTextures.put("trip_wire", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/trip_wire", Texture.tripwire),
new SimpleTexture("textures/blocks/tripWire", Texture.tripwire),
new IndexedTexture(0xAD, Texture.tripwire)));
allTextures.put("endframe_eye", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/endframe_eye", Texture.eyeOfTheEnder),
new SimpleTexture("textures/blocks/endframe_eye", Texture.eyeOfTheEnder),
new IndexedTexture(0xAE, Texture.eyeOfTheEnder)));
allTextures.put("end_stone", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/end_stone", Texture.endStone),
new SimpleTexture("textures/blocks/whiteStone", Texture.endStone),
new IndexedTexture(0xAF, Texture.endStone)));
allTextures.put("sandstone_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/sandstone_top", Texture.sandstoneTop),
new SimpleTexture("textures/blocks/sandstone_top", Texture.sandstoneTop),
new IndexedTexture(0xB0, Texture.sandstoneTop)));
allTextures.put("blue wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_blue", Texture.blueWool),
new SimpleTexture("textures/blocks/cloth_11", Texture.blueWool),
new IndexedTexture(0xB1, Texture.blueWool)));
allTextures.put("light blue wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_light_blue",
Texture.lightBlueWool),
new SimpleTexture("textures/blocks/cloth_3", Texture.lightBlueWool),
new IndexedTexture(0xB2, Texture.lightBlueWool)));
allTextures.put("rail_golden_powered", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/rail_golden_powered",
Texture.poweredRailOn),
new SimpleTexture("textures/blocks/goldenRail_powered", Texture.poweredRailOn),
new IndexedTexture(0xB3, Texture.poweredRailOn)));
allTextures.put("enchanting_table_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/enchanting_table_side",
Texture.enchantmentTableSide),
new SimpleTexture("textures/blocks/enchantment_side", Texture.enchantmentTableSide),
new IndexedTexture(0xB6, Texture.enchantmentTableSide)));
allTextures.put("enchanting_table_bottom", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/enchanting_table_bottom",
Texture.enchantmentTableBottom),
new SimpleTexture("textures/blocks/enchantment_bottom", Texture.enchantmentTableBottom),
new IndexedTexture(0xB7, Texture.enchantmentTableBottom)));
// Command block textures were changed in Minecraft 1.9.
allTextures.put("command_block_back",
new SimpleTexture("assets/minecraft/textures/blocks/command_block_back",
Texture.commandBlockBack));
allTextures.put("command_block_conditional",
new SimpleTexture("assets/minecraft/textures/blocks/command_block_conditional",
Texture.commandBlockConditional));
allTextures.put("command_block_front",
new SimpleTexture("assets/minecraft/textures/blocks/command_block_front",
Texture.commandBlockFront));
allTextures.put("command_block_side",
new SimpleTexture("assets/minecraft/textures/blocks/command_block_side",
Texture.commandBlockSide));
allTextures.put("repeating_command_block_back",
new SimpleTexture("assets/minecraft/textures/blocks/repeating_command_block_back",
Texture.repeatingCommandBlockBack));
allTextures.put("repeating_command_block_conditional",
new SimpleTexture("assets/minecraft/textures/blocks/repeating_command_block_conditional",
Texture.repeatingCommandBlockConditional));
allTextures.put("repeating_command_block_front",
new SimpleTexture("assets/minecraft/textures/blocks/repeating_command_block_front",
Texture.repeatingCommandBlockFront));
allTextures.put("repeating_command_block_side",
new SimpleTexture("assets/minecraft/textures/blocks/repeating_command_block_side",
Texture.repeatingCommandBlockSide));
allTextures.put("chain_command_block_back",
new SimpleTexture("assets/minecraft/textures/blocks/chain_command_block_back",
Texture.chainCommandBlockBack));
allTextures.put("chain_command_block_conditional",
new SimpleTexture("assets/minecraft/textures/blocks/chain_command_block_conditional",
Texture.chainCommandBlockConditional));
allTextures.put("chain_command_block_front",
new SimpleTexture("assets/minecraft/textures/blocks/chain_command_block_front",
Texture.chainCommandBlockFront));
allTextures.put("chain_command_block_side",
new SimpleTexture("assets/minecraft/textures/blocks/chain_command_block_side",
Texture.chainCommandBlockSide));
allTextures.put("flower_pot", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/flower_pot", Texture.flowerPot),
new SimpleTexture("textures/blocks/flowerPot", Texture.flowerPot),
new IndexedTexture(0xBA, Texture.flowerPot)));
allTextures.put("quartz_ore", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/quartz_ore", Texture.netherQuartzOre),
new SimpleTexture("textures/blocks/netherquartz", Texture.netherQuartzOre),
new IndexedTexture(0xBF, Texture.netherQuartzOre)));
allTextures.put("sandstone_normal", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/sandstone_normal",
Texture.sandstoneSide),
new SimpleTexture("textures/blocks/sandstone_side", Texture.sandstoneSide),
new IndexedTexture(0xC0, Texture.sandstoneSide)));
allTextures.put("purple wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_purple",
Texture.purpleWool), new SimpleTexture("textures/blocks/cloth_10", Texture.purpleWool),
new IndexedTexture(0xC1, Texture.purpleWool)));
allTextures.put("magenta wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_magenta",
Texture.magentaWool), new SimpleTexture("textures/blocks/cloth_2", Texture.magentaWool),
new IndexedTexture(0xC2, Texture.magentaWool)));
allTextures.put("rail_detector", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/rail_detector", Texture.detectorRail),
new SimpleTexture("textures/blocks/detectorRail", Texture.detectorRail),
new IndexedTexture(0xC3, Texture.detectorRail)));
allTextures.put("leaves_jungle", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/leaves_jungle",
Texture.jungleTreeLeaves),
new SimpleTexture("textures/blocks/leaves_jungle", Texture.jungleTreeLeaves),
new IndexedTexture(0xC4, Texture.jungleTreeLeaves)));
allTextures.put("planks_spruce", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/planks_spruce", Texture.sprucePlanks),
new SimpleTexture("textures/blocks/wood_spruce", Texture.sprucePlanks),
new IndexedTexture(0xC6, Texture.sprucePlanks)));
allTextures.put("planks_jungle", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/planks_jungle",
Texture.jungleTreePlanks),
new SimpleTexture("textures/blocks/wood_jungle", Texture.jungleTreePlanks),
new IndexedTexture(0xC7, Texture.jungleTreePlanks)));
allTextures.put("carrots_stage_0", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/carrots_stage_0", Texture.carrots0),
new SimpleTexture("textures/blocks/carrots_0", Texture.carrots0),
new IndexedTexture(0xC8, Texture.carrots0)));
allTextures.put("potatoes_stage_0", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/potatoes_stage_0", Texture.potatoes0),
new SimpleTexture("textures/blocks/potatoes_0", Texture.potatoes0),
new IndexedTexture(0xC8, Texture.potatoes0)));
allTextures.put("carrots_stage_1", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/carrots_stage_1", Texture.carrots1),
new SimpleTexture("textures/blocks/carrots_1", Texture.carrots1),
new IndexedTexture(0xC9, Texture.carrots1)));
allTextures.put("potatoes_stage_1", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/potatoes_stage_1", Texture.potatoes1),
new SimpleTexture("textures/blocks/potatoes_1", Texture.potatoes1),
new IndexedTexture(0xC9, Texture.potatoes1)));
allTextures.put("carrots_stage_2", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/carrots_stage_2", Texture.carrots2),
new SimpleTexture("textures/blocks/carrots_2", Texture.carrots2),
new IndexedTexture(0xCA, Texture.carrots2)));
allTextures.put("potatoes_stage_2", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/potatoes_stage_2", Texture.potatoes2),
new SimpleTexture("textures/blocks/potatoes_2", Texture.potatoes2),
new IndexedTexture(0xCA, Texture.potatoes2)));
allTextures.put("carrots_stage_3", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/carrots_stage_3", Texture.carrots3),
new SimpleTexture("textures/blocks/carrots_3", Texture.carrots3),
new IndexedTexture(0xCB, Texture.carrots3)));
allTextures.put("potatoes_stage_3", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/potatoes_stage_3", Texture.potatoes3),
new SimpleTexture("textures/blocks/potatoes_3", Texture.potatoes3),
new IndexedTexture(0xCC, Texture.potatoes3)));
allTextures.put("water_still", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/water_still", Texture.water),
new SimpleTexture("textures/blocks/water", Texture.water),
new IndexedTexture(0xCD, Texture.water)));
allTextures.put("sandstone_bottom", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/sandstone_bottom",
Texture.sandstoneBottom),
new SimpleTexture("textures/blocks/sandstone_bottom", Texture.sandstoneBottom),
new IndexedTexture(0xD0, Texture.sandstoneBottom)));
allTextures.put("cyan wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_cyan", Texture.cyanWool),
new SimpleTexture("textures/blocks/cloth_9", Texture.cyanWool),
new IndexedTexture(0xD1, Texture.cyanWool)));
allTextures.put("orange wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_orange",
Texture.orangeWool), new SimpleTexture("textures/blocks/cloth_1", Texture.orangeWool),
new IndexedTexture(0xD2, Texture.orangeWool)));
allTextures.put("redstone_lamp_off", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/redstone_lamp_off",
Texture.redstoneLampOff),
new SimpleTexture("textures/blocks/redstoneLight", Texture.redstoneLampOff),
new IndexedTexture(0xD3, Texture.redstoneLampOff)));
allTextures.put("redstone_lamp_on", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/redstone_lamp_on",
Texture.redstoneLampOn),
new SimpleTexture("textures/blocks/redstoneLight_lit", Texture.redstoneLampOn),
new IndexedTexture(0xD4, Texture.redstoneLampOn)));
allTextures.put("stonebrick_carved", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/stonebrick_carved",
Texture.circleStoneBrick),
new SimpleTexture("textures/blocks/stonebricksmooth_carved", Texture.circleStoneBrick),
new IndexedTexture(0xD5, Texture.circleStoneBrick)));
allTextures.put("planks_birch", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/planks_birch", Texture.birchPlanks),
new SimpleTexture("textures/blocks/wood_birch", Texture.birchPlanks),
new IndexedTexture(0xD6, Texture.birchPlanks)));
allTextures.put("anvil_base", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/anvil_base", Texture.anvilSide),
new SimpleTexture("textures/blocks/anvil_base", Texture.anvilSide),
new IndexedTexture(0xD7, Texture.anvilSide)));
allTextures.put("anvil_top_damaged_1", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/anvil_top_damaged_1",
Texture.anvilTopDamaged1),
new SimpleTexture("textures/blocks/anvil_top_damaged_1", Texture.anvilTopDamaged1),
new IndexedTexture(0xD8, Texture.anvilTopDamaged1)));
allTextures.put("nether_brick", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/nether_brick", Texture.netherBrick),
new SimpleTexture("textures/blocks/netherBrick", Texture.netherBrick),
new IndexedTexture(0xE0, Texture.netherBrick)));
allTextures.put("light gray wool", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/wool_colored_silver",
Texture.lightGrayWool),
new SimpleTexture("textures/blocks/cloth_8", Texture.lightGrayWool),
new IndexedTexture(0xE1, Texture.lightGrayWool)));
allTextures.put("nether_wart_stage_0", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/nether_wart_stage_0",
Texture.netherWart0),
new SimpleTexture("textures/blocks/netherStalk_0", Texture.netherWart0),
new IndexedTexture(0xE2, Texture.netherWart0)));
allTextures.put("nether_wart_stage_1", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/nether_wart_stage_1",
Texture.netherWart1),
new SimpleTexture("textures/blocks/netherStalk_1", Texture.netherWart1),
new IndexedTexture(0xE3, Texture.netherWart1)));
allTextures.put("nether_wart_stage_2", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/nether_wart_stage_2",
Texture.netherWart2),
new SimpleTexture("textures/blocks/netherStalk_2", Texture.netherWart2),
new IndexedTexture(0xE4, Texture.netherWart2)));
allTextures.put("sandstone_carved", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/sandstone_carved",
Texture.sandstoneDecorated),
new SimpleTexture("textures/blocks/sandstone_carved", Texture.sandstoneDecorated),
new IndexedTexture(0xE5, Texture.sandstoneDecorated)));
allTextures.put("sandstone_smooth", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/sandstone_smooth",
Texture.sandstoneSmooth),
new SimpleTexture("textures/blocks/sandstone_smooth", Texture.sandstoneSmooth),
new IndexedTexture(0xE6, Texture.sandstoneSmooth)));
allTextures.put("anvil_top_damaged_0", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/anvil_top_damaged_0", Texture.anvilTop),
new SimpleTexture("textures/blocks/anvil_top", Texture.anvilTop),
new IndexedTexture(0xE7, Texture.anvilTop)));
allTextures.put("anvil_top_damaged_2", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/anvil_top_damaged_2",
Texture.anvilTopDamaged2),
new SimpleTexture("textures/blocks/anvil_top_damaged_2", Texture.anvilTopDamaged2),
new IndexedTexture(0xE8, Texture.anvilTopDamaged2)));
allTextures.put("lava_still", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/lava_still", Texture.lava),
new SimpleTexture("textures/blocks/lava", Texture.lava),
new IndexedTexture(0xED, Texture.lava)));
// MC 1.5
allTextures.put("quartz_block_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/quartz_block_side", Texture.quartzSide),
new SimpleTexture("textures/blocks/quartzblock_side", Texture.quartzSide)));
allTextures.put("quartz_block_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/quartz_block_top", Texture.quartzTop),
new SimpleTexture("textures/blocks/quartzblock_top", Texture.quartzTop)));
allTextures.put("quartz_block_bottom", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/quartz_block_bottom",
Texture.quartzBottom),
new SimpleTexture("textures/blocks/quartzblock_bottom", Texture.quartzBottom)));
allTextures.put("quartz_block_chiseled", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/quartz_block_chiseled",
Texture.quartzChiseled),
new SimpleTexture("textures/blocks/quartzblock_chiseled", Texture.quartzChiseled)));
allTextures.put("quartz_block_chiseled_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/quartz_block_chiseled_top",
Texture.quartzChiseledTop),
new SimpleTexture("textures/blocks/quartzblock_chiseled_top", Texture.quartzChiseledTop)));
allTextures.put("quartz_block_lines", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/quartz_block_lines",
Texture.quartzPillar),
new SimpleTexture("textures/blocks/quartzblock_lines", Texture.quartzPillar)));
allTextures.put("quartz_block_lines_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/quartz_block_lines_top",
Texture.quartzPillarTop),
new SimpleTexture("textures/blocks/quartzblock_lines_top", Texture.quartzPillarTop)));
allTextures.put("dropper_front_horizontal", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/dropper_front_horizontal",
Texture.dropperFront),
new SimpleTexture("textures/blocks/dropper_front", Texture.dropperFront)));
allTextures.put("dropper_front_vertical",
new SimpleTexture("assets/minecraft/textures/blocks/dropper_front_vertical",
Texture.dropperFrontVertical));
allTextures.put("rail_activator", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/rail_activator", Texture.activatorRail),
new SimpleTexture("textures/blocks/activatorRail", Texture.activatorRail)));
allTextures.put("rail_activator_powered", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/rail_activator_powered",
Texture.activatorRailPowered),
new SimpleTexture("textures/blocks/activatorRail_powered", Texture.activatorRailPowered)));
allTextures.put("daylight_detector_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/daylight_detector_top",
Texture.daylightDetectorTop),
new SimpleTexture("textures/blocks/daylightDetector_top", Texture.daylightDetectorTop)));
allTextures.put("daylight_detector_side", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/daylight_detector_side",
Texture.daylightDetectorSide),
new SimpleTexture("textures/blocks/daylightDetector_side", Texture.daylightDetectorSide)));
allTextures.put("comparator_off", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/comparator_off", Texture.comparatorOff),
new SimpleTexture("textures/blocks/comparator", Texture.comparatorOff)));
allTextures.put("comparator_on", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/comparator_on", Texture.comparatorOn),
new SimpleTexture("textures/blocks/comparator_lit", Texture.comparatorOn)));
allTextures.put("hopper_outside", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/hopper_outside", Texture.hopperOutside),
new SimpleTexture("textures/blocks/hopper", Texture.hopperOutside)));
allTextures.put("hopper_inside", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/hopper_inside", Texture.hopperInside),
new SimpleTexture("textures/blocks/hopper_inside", Texture.hopperInside)));
// TODO hopper top
// MC 1.6
allTextures.put("hay_block_side",
new SimpleTexture("assets/minecraft/textures/blocks/hay_block_side", Texture.hayBlockSide));
allTextures.put("hay_block_top",
new SimpleTexture("assets/minecraft/textures/blocks/hay_block_top", Texture.hayBlockTop));
allTextures.put("hardened_clay",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay", Texture.hardenedClay));
allTextures.put("coal_block",
new SimpleTexture("assets/minecraft/textures/blocks/coal_block", Texture.coalBlock));
allTextures.put("hardened_clay_stained_black",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_black",
Texture.blackClay));
allTextures.put("hardened_clay_stained_blue",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_blue",
Texture.blueClay));
allTextures.put("hardened_clay_stained_brown",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_brown",
Texture.brownClay));
allTextures.put("hardened_clay_stained_cyan",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_cyan",
Texture.cyanClay));
allTextures.put("hardened_clay_stained_gray",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_gray",
Texture.grayClay));
allTextures.put("hardened_clay_stained_green",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_green",
Texture.greenClay));
allTextures.put("hardened_clay_stained_light_blue",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_light_blue",
Texture.lightBlueClay));
allTextures.put("hardened_clay_stained_lime",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_lime",
Texture.limeClay));
allTextures.put("hardened_clay_stained_magenta",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_magenta",
Texture.magentaClay));
allTextures.put("hardened_clay_stained_orange",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_orange",
Texture.orangeClay));
allTextures.put("hardened_clay_stained_pink",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_pink",
Texture.pinkClay));
allTextures.put("hardened_clay_stained_purple",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_purple",
Texture.purpleClay));
allTextures.put("hardened_clay_stained_red",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_red",
Texture.redClay));
allTextures.put("hardened_clay_stained_silver",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_silver",
Texture.lightGrayClay));
allTextures.put("hardened_clay_stained_white",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_white",
Texture.whiteClay));
allTextures.put("hardened_clay_stained_yellow",
new SimpleTexture("assets/minecraft/textures/blocks/hardened_clay_stained_yellow",
Texture.yellowClay));
// Birch Leaf [MC ?]
allTextures.put("leaves_birch", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/leaves_birch", Texture.birchLeaves),
new IndexedTexture(0xC4, Texture.birchLeaves)));
// [MC 1.7.2] Stained glass blocks
allTextures.put("glass_black",
new SimpleTexture("assets/minecraft/textures/blocks/glass_black", Texture.blackGlass));
allTextures.put("glass_blue",
new SimpleTexture("assets/minecraft/textures/blocks/glass_blue", Texture.blueGlass));
allTextures.put("glass_brown",
new SimpleTexture("assets/minecraft/textures/blocks/glass_brown", Texture.brownGlass));
allTextures.put("glass_cyan",
new SimpleTexture("assets/minecraft/textures/blocks/glass_cyan", Texture.cyanGlass));
allTextures.put("glass_gray",
new SimpleTexture("assets/minecraft/textures/blocks/glass_gray", Texture.grayGlass));
allTextures.put("glass_green",
new SimpleTexture("assets/minecraft/textures/blocks/glass_green", Texture.greenGlass));
allTextures.put("glass_light_blue",
new SimpleTexture("assets/minecraft/textures/blocks/glass_light_blue",
Texture.lightBlueGlass));
allTextures.put("glass_lime",
new SimpleTexture("assets/minecraft/textures/blocks/glass_lime", Texture.limeGlass));
allTextures.put("glass_magenta",
new SimpleTexture("assets/minecraft/textures/blocks/glass_magenta", Texture.magentaGlass));
allTextures.put("glass_orange",
new SimpleTexture("assets/minecraft/textures/blocks/glass_orange", Texture.orangeGlass));
allTextures.put("glass_pink",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pink", Texture.pinkGlass));
allTextures.put("glass_purple",
new SimpleTexture("assets/minecraft/textures/blocks/glass_purple", Texture.purpleGlass));
allTextures.put("glass_red",
new SimpleTexture("assets/minecraft/textures/blocks/glass_red", Texture.redGlass));
allTextures.put("glass_silver",
new SimpleTexture("assets/minecraft/textures/blocks/glass_silver", Texture.lightGrayGlass));
allTextures.put("glass_white",
new SimpleTexture("assets/minecraft/textures/blocks/glass_white", Texture.whiteGlass));
allTextures.put("glass_yellow",
new SimpleTexture("assets/minecraft/textures/blocks/glass_yellow", Texture.yellowGlass));
// [MC 1.7.2] Stained glass panes
allTextures.put("glass_pane_top_black",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_black",
Texture.blackGlassPaneSide));
allTextures.put("glass_pane_top_blue",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_blue",
Texture.blueGlassPaneSide));
allTextures.put("glass_pane_top_brown",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_brown",
Texture.brownGlassPaneSide));
allTextures.put("glass_pane_top_cyan",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_cyan",
Texture.cyanGlassPaneSide));
allTextures.put("glass_pane_top_gray",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_gray",
Texture.grayGlassPaneSide));
allTextures.put("glass_pane_top_green",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_green",
Texture.greenGlassPaneSide));
allTextures.put("glass_pane_top_light_blue",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_light_blue",
Texture.lightBlueGlassPaneSide));
allTextures.put("glass_pane_top_lime",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_lime",
Texture.limeGlassPaneSide));
allTextures.put("glass_pane_top_magenta",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_magenta",
Texture.magentaGlassPaneSide));
allTextures.put("glass_pane_top_orange",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_orange",
Texture.orangeGlassPaneSide));
allTextures.put("glass_pane_top_pink",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_pink",
Texture.pinkGlassPaneSide));
allTextures.put("glass_pane_top_purple",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_purple",
Texture.purpleGlassPaneSide));
allTextures.put("glass_pane_top_red",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_red",
Texture.redGlassPaneSide));
allTextures.put("glass_pane_top_silver",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_silver",
Texture.lightGrayGlassPaneSide));
allTextures.put("glass_pane_top_white",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_white",
Texture.whiteGlassPaneSide));
allTextures.put("glass_pane_top_yellow",
new SimpleTexture("assets/minecraft/textures/blocks/glass_pane_top_yellow",
Texture.yellowGlassPaneSide));
// [MC 1.7.2] Top/bottom log textures
allTextures.put("log_spruce_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/log_spruce_top", Texture.spruceWoodTop),
new IndexedTexture(0x15, Texture.spruceWoodTop)));
allTextures.put("log_birch_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/log_birch_top", Texture.birchWoodTop),
new IndexedTexture(0x15, Texture.spruceWoodTop)));
allTextures.put("log_jungle_top", new AlternateTextures(
new SimpleTexture("assets/minecraft/textures/blocks/log_jungle_top", Texture.jungleTreeTop),
new IndexedTexture(0x15, Texture.jungleTreeTop)));
// [MC 1.7.2] Podzol
allTextures.put("dirt_podzol_side",
new SimpleTexture("assets/minecraft/textures/blocks/dirt_podzol_side", Texture.podzolSide));
allTextures.put("dirt_podzol_top",
new SimpleTexture("assets/minecraft/textures/blocks/dirt_podzol_top", Texture.podzolTop));
// [MC 1.7.2] Acacia, Dark Oak
allTextures.put("log_acacia",
new SimpleTexture("assets/minecraft/textures/blocks/log_acacia", Texture.acaciaWood));
allTextures.put("log_big_oak",
new SimpleTexture("assets/minecraft/textures/blocks/log_big_oak", Texture.darkOakWood));
allTextures.put("log_acacia_top",
new SimpleTexture("assets/minecraft/textures/blocks/log_acacia_top",
Texture.acaciaWoodTop));
allTextures.put("log_big_oak_top",
new SimpleTexture("assets/minecraft/textures/blocks/log_big_oak_top",
Texture.darkOakWoodTop));
allTextures.put("leaves_acacia",
new SimpleTexture("assets/minecraft/textures/blocks/leaves_acacia", Texture.acaciaLeaves));
allTextures.put("leaves_big_oak",
new SimpleTexture("assets/minecraft/textures/blocks/leaves_big_oak",
Texture.darkOakLeaves));
allTextures.put("sapling_acacia",
new SimpleTexture("assets/minecraft/textures/blocks/sapling_acacia",
Texture.acaciaSapling));
allTextures.put("sapling_roofed_oak",
new SimpleTexture("assets/minecraft/textures/blocks/sapling_roofed_oak",
Texture.darkOakSapling));
allTextures.put("planks_acacia",
new SimpleTexture("assets/minecraft/textures/blocks/planks_acacia", Texture.acaciaPlanks));
allTextures.put("planks_big_oak",
new SimpleTexture("assets/minecraft/textures/blocks/planks_big_oak",
Texture.darkOakPlanks));
// [MC 1.7.2] Packed Ice
allTextures.put("ice_packed",
new SimpleTexture("assets/minecraft/textures/blocks/ice_packed", Texture.packedIce));
// [MC 1.7.2] Red Sand
allTextures.put("red_sand",
new SimpleTexture("assets/minecraft/textures/blocks/red_sand", Texture.redSand));
// [MC 1.7.2] Flowers
allTextures.put("flower_allium",
new SimpleTexture("assets/minecraft/textures/blocks/flower_allium", Texture.allium));
allTextures.put("flower_blue_orchid",
new SimpleTexture("assets/minecraft/textures/blocks/flower_blue_orchid",
Texture.blueOrchid));
allTextures.put("flower_houstonia",
new SimpleTexture("assets/minecraft/textures/blocks/flower_houstonia", Texture.azureBluet));
allTextures.put("flower_oxeye_daisy",
new SimpleTexture("assets/minecraft/textures/blocks/flower_oxeye_daisy",
Texture.oxeyeDaisy));
allTextures.put("flower_tulip_red",
new SimpleTexture("assets/minecraft/textures/blocks/flower_tulip_red", Texture.redTulip));
allTextures.put("flower_tulip_orange",
new SimpleTexture("assets/minecraft/textures/blocks/flower_tulip_orange",
Texture.orangeTulip));
allTextures.put("flower_tulip_white",
new SimpleTexture("assets/minecraft/textures/blocks/flower_tulip_white",
Texture.whiteTulip));
allTextures.put("flower_tulip_pink",
new SimpleTexture("assets/minecraft/textures/blocks/flower_tulip_pink", Texture.pinkTulip));
allTextures.put("double_plant_fern_bottom",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_fern_bottom",
Texture.largeFernBottom));
allTextures.put("double_plant_fern_top",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_fern_top",
Texture.largeFernTop));
allTextures.put("double_plant_grass_bottom",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_grass_bottom",
Texture.doubleTallGrassBottom));
allTextures.put("double_plant_grass_top",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_grass_top",
Texture.doubleTallGrassTop));
allTextures.put("double_plant_paeonia_bottom",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_paeonia_bottom",
Texture.peonyBottom));
allTextures.put("double_plant_paeonia_top",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_paeonia_top",
Texture.peonyTop));
allTextures.put("double_plant_rose_bottom",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_rose_bottom",
Texture.roseBushBottom));
allTextures.put("double_plant_rose_top",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_rose_top",
Texture.roseBushTop));
allTextures.put("double_plant_sunflower_bottom",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_sunflower_bottom",
Texture.sunflowerBottom));
allTextures.put("double_plant_sunflower_top",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_sunflower_top",
Texture.sunflowerTop));
allTextures.put("double_plant_sunflower_front",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_sunflower_front",
Texture.sunflowerFront));
allTextures.put("double_plant_sunflower_back",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_sunflower_back",
Texture.sunflowerBack));
allTextures.put("double_plant_syringa_bottom",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_syringa_bottom",
Texture.lilacBottom));
allTextures.put("double_plant_syringa_top",
new SimpleTexture("assets/minecraft/textures/blocks/double_plant_syringa_top",
Texture.lilacTop));
// [MC 1.8] New Blocks
allTextures.put("stone_diorite",
new SimpleTexture("assets/minecraft/textures/blocks/stone_diorite", Texture.diorite));
allTextures.put("stone_diorite_smooth",
new SimpleTexture("assets/minecraft/textures/blocks/stone_diorite_smooth",
Texture.smoothDiorite));
allTextures.put("stone_granite",
new SimpleTexture("assets/minecraft/textures/blocks/stone_granite", Texture.granite));
allTextures.put("stone_granite_smooth",
new SimpleTexture("assets/minecraft/textures/blocks/stone_granite_smooth",
Texture.smoothGranite));
allTextures.put("stone_andesite",
new SimpleTexture("assets/minecraft/textures/blocks/stone_andesite", Texture.andesite));
allTextures.put("stone_andesite_smooth",
new SimpleTexture("assets/minecraft/textures/blocks/stone_andesite_smooth",
Texture.smoothAndesite));
allTextures.put("coarse_dirt",
new SimpleTexture("assets/minecraft/textures/blocks/coarse_dirt", Texture.coarseDirt));
allTextures.put("prismarine_rough",
new SimpleTexture("assets/minecraft/textures/blocks/prismarine_rough", Texture.prismarine));
allTextures.put("prismarine_bricks",
new SimpleTexture("assets/minecraft/textures/blocks/prismarine_bricks",
Texture.prismarineBricks));
allTextures.put("prismarine_dark",
new SimpleTexture("assets/minecraft/textures/blocks/prismarine_dark",
Texture.darkPrismarine));
allTextures.put("sea_lantern",
new SimpleTexture("assets/minecraft/textures/blocks/sea_lantern", Texture.seaLantern));
allTextures.put("sponge_wet",
new SimpleTexture("assets/minecraft/textures/blocks/sponge_wet", Texture.wetSponge));
allTextures.put("iron_trapdoor",
new SimpleTexture("assets/minecraft/textures/blocks/iron_trapdoor", Texture.ironTrapdoor));
allTextures
.put("slime", new SimpleTexture("assets/minecraft/textures/blocks/slime", Texture.slime));
allTextures.put("red_sandstone_top",
new SimpleTexture("assets/minecraft/textures/blocks/red_sandstone_top",
Texture.redSandstoneTop));
allTextures.put("red_sandstone_bottom",
new SimpleTexture("assets/minecraft/textures/blocks/red_sandstone_bottom",
Texture.redSandstoneBottom));
allTextures.put("red_sandstone_normal",
new SimpleTexture("assets/minecraft/textures/blocks/red_sandstone_normal",
Texture.redSandstoneSide));
allTextures.put("red_sandstone_carved",
new SimpleTexture("assets/minecraft/textures/blocks/red_sandstone_carved",
Texture.redSandstoneDecorated));
allTextures.put("red_sandstone_smooth",
new SimpleTexture("assets/minecraft/textures/blocks/red_sandstone_smooth",
Texture.redSandstoneSmooth));
allTextures.put("door_spruce_upper",
new SimpleTexture("assets/minecraft/textures/blocks/door_spruce_upper",
Texture.spruceDoorTop));
allTextures.put("door_birch_upper",
new SimpleTexture("assets/minecraft/textures/blocks/door_birch_upper",
Texture.birchDoorTop));
allTextures.put("door_jungle_upper",
new SimpleTexture("assets/minecraft/textures/blocks/door_jungle_upper",
Texture.jungleDoorTop));
allTextures.put("door_acacia_upper",
new SimpleTexture("assets/minecraft/textures/blocks/door_acacia_upper",
Texture.acaciaDoorTop));
allTextures.put("door_dark_oak_upper",
new SimpleTexture("assets/minecraft/textures/blocks/door_dark_oak_upper",
Texture.darkOakDoorTop));
allTextures.put("door_spruce_lower",
new SimpleTexture("assets/minecraft/textures/blocks/door_spruce_lower",
Texture.spruceDoorBottom));
allTextures.put("door_birch_lower",
new SimpleTexture("assets/minecraft/textures/blocks/door_birch_lower",
Texture.birchDoorBottom));
allTextures.put("door_jungle_lower",
new SimpleTexture("assets/minecraft/textures/blocks/door_jungle_lower",
Texture.jungleDoorBottom));
allTextures.put("door_acacia_lower",
new SimpleTexture("assets/minecraft/textures/blocks/door_acacia_lower",
Texture.acaciaDoorBottom));
allTextures.put("door_dark_oak_lower",
new SimpleTexture("assets/minecraft/textures/blocks/door_dark_oak_lower",
Texture.darkOakDoorBottom));
// Minecraft 1.9 blocks.
allTextures.put("grass_path_side",
new SimpleTexture("assets/minecraft/textures/blocks/grass_path_side",
Texture.grassPathSide));
allTextures.put("grass_path_top",
new SimpleTexture("assets/minecraft/textures/blocks/grass_path_top", Texture.grassPathTop));
allTextures.put("end_bricks",
new SimpleTexture("assets/minecraft/textures/blocks/end_bricks", Texture.endBricks));
allTextures.put("purpur_block",
new SimpleTexture("assets/minecraft/textures/blocks/purpur_block", Texture.purpurBlock));
allTextures.put("purpur_pillar",
new SimpleTexture("assets/minecraft/textures/blocks/purpur_pillar",
Texture.purpurPillarSide));
allTextures.put("purpur_pillar_top",
new SimpleTexture("assets/minecraft/textures/blocks/purpur_pillar_top",
Texture.purpurPillarTop));
allTextures.put("chorus_flower",
new SimpleTexture("assets/minecraft/textures/blocks/chorus_flower", Texture.chorusFlower));
allTextures.put("chorus_flower_dead",
new SimpleTexture("assets/minecraft/textures/blocks/chorus_flower_dead",
Texture.chorusFlowerDead));
allTextures.put("chorus_plant",
new SimpleTexture("assets/minecraft/textures/blocks/chorus_plant", Texture.chorusPlant));
allTextures.put("end_rod",
new SimpleTexture("assets/minecraft/textures/blocks/end_rod", Texture.endRod));
allTextures.put("fire_layer_0",
new AnimatedTextureLoader("assets/minecraft/textures/blocks/fire_layer_0",
Texture.fireLayer0));
allTextures.put("fire_layer_1",
new AnimatedTextureLoader("assets/minecraft/textures/blocks/fire_layer_1",
Texture.fireLayer1));
allTextures.put("paintings_zetterstrand",
new SimpleTexture("assets/minecraft/textures/painting/paintings_kristoffer_zetterstrand",
Texture.paintings));
allTextures.put("font_ascii", new FontTexture("assets/minecraft/textures/font/ascii"));
allTextures.put("alex",
new ThinArmEntityTextureLoader("assets/minecraft/textures/entity/alex", Texture.alex));
allTextures.put("steve",
new EntityTextureLoader("assets/minecraft/textures/entity/steve", Texture.steve));
allTextures.put("creeper",
new EntityTextureLoader("assets/minecraft/textures/entity/creeper/creeper",
Texture.creeper));
allTextures.put("zombie",
new EntityTextureLoader("assets/minecraft/textures/entity/zombie/zombie", Texture.zombie));
allTextures.put("skeleton",
new EntityTextureLoader("assets/minecraft/textures/entity/skeleton/skeleton",
Texture.skeleton));
allTextures.put("wither",
new EntityTextureLoader("assets/minecraft/textures/entity/wither/wither", Texture.wither));
// Minecraft 1.10 blocks.
allTextures.put("boneSide",
new SimpleTexture("assets/minecraft/textures/blocks/bone_block_side", Texture.boneSide));
allTextures.put("boneTop",
new SimpleTexture("assets/minecraft/textures/blocks/bone_block_top", Texture.boneTop));
allTextures.put("magma",
new SimpleTexture("assets/minecraft/textures/blocks/magma", Texture.magma));
allTextures.put("netherWartBlock",
new SimpleTexture("assets/minecraft/textures/blocks/nether_wart_block",
Texture.netherWartBlock));
allTextures.put("redNetherBrick",
new SimpleTexture("assets/minecraft/textures/blocks/red_nether_brick",
Texture.redNetherBrick));
// [1.11] Shulker boxes.
allTextures.put("shulkerBlack",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_black",
"assets/minecraft/textures/entity/shulker/shulker_black",
Texture.shulkerBlack));
allTextures.put("shulkerBlue",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_blue",
"assets/minecraft/textures/entity/shulker/shulker_blue",
Texture.shulkerBlue));
allTextures.put("shulkerBrown",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_brown",
"assets/minecraft/textures/entity/shulker/shulker_brown",
Texture.shulkerBrown));
allTextures.put("shulkerCyan",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_cyan",
"assets/minecraft/textures/entity/shulker/shulker_cyan",
Texture.shulkerCyan));
allTextures.put("shulkerGray",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_gray",
"assets/minecraft/textures/entity/shulker/shulker_gray",
Texture.shulkerGray));
allTextures.put("shulkerGreen",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_green",
"assets/minecraft/textures/entity/shulker/shulker_green",
Texture.shulkerGreen));
allTextures.put("shulkerLightBlue",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_light_blue",
"assets/minecraft/textures/entity/shulker/shulker_light_blue",
Texture.shulkerLightBlue));
allTextures.put("shulkerLime",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_lime",
"assets/minecraft/textures/entity/shulker/shulker_lime",
Texture.shulkerLime));
allTextures.put("shulkerMagenta",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_magenta",
"assets/minecraft/textures/entity/shulker/shulker_magenta",
Texture.shulkerMagenta));
allTextures.put("shulkerOrange",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_orange",
"assets/minecraft/textures/entity/shulker/shulker_orange",
Texture.shulkerOrange));
allTextures.put("shulkerPink",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_pink",
"assets/minecraft/textures/entity/shulker/shulker_pink",
Texture.shulkerPink));
allTextures.put("shulkerPurple",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_purple",
"assets/minecraft/textures/entity/shulker/shulker_purple",
Texture.shulkerPurple));
allTextures.put("shulkerRed",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_red",
"assets/minecraft/textures/entity/shulker/shulker_red",
Texture.shulkerRed));
allTextures.put("shulkerSilver",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_silver",
"assets/minecraft/textures/entity/shulker/shulker_silver",
Texture.shulkerSilver));
allTextures.put("shulkerWhite",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_white",
"assets/minecraft/textures/entity/shulker/shulker_white",
Texture.shulkerWhite));
allTextures.put("shulkerYellow",
new ShulkerTextureLoader(
"assets/minecraft/textures/blocks/shulker_top_yellow",
"assets/minecraft/textures/entity/shulker/shulker_yellow",
Texture.shulkerYellow));
// [1.11] Observer block.
allTextures.put("observer_back",
new SimpleTexture("assets/minecraft/textures/blocks/observer_back",
Texture.observerBack));
allTextures.put("observer_front",
new SimpleTexture("assets/minecraft/textures/blocks/observer_front",
Texture.observerFront));
allTextures.put("observer_side",
new SimpleTexture("assets/minecraft/textures/blocks/observer_side",
Texture.observerSide));
allTextures.put("observer_top",
new SimpleTexture("assets/minecraft/textures/blocks/observer_top",
Texture.observerTop));
// Redstone textures were redone and renamed in Minecraft 1.9.
// The redstone cross texture is now created by combining redstone_dust_dot
// and redstone_dust_line0, and redstone_dust_line1.
// See https://github.com/llbit/chunky/issues/359
allTextures.put("redstone_dust_cross", new AlternateTextures(
new LayeredTextureLoader(
"assets/minecraft/textures/blocks/redstone_dust_dot",
Texture.redstoneWireCross,
new LayeredTextureLoader(
"assets/minecraft/textures/blocks/redstone_dust_line0",
Texture.redstoneWireCross,
new RotatedTextureLoader(
"assets/minecraft/textures/blocks/redstone_dust_line1",
Texture.redstoneWireCross))),
new SimpleTexture("assets/minecraft/textures/blocks/redstone_dust_cross",
Texture.redstoneWireCross),
new SimpleTexture("textures/blocks/redstoneDust_cross", Texture.redstoneWireCross),
new IndexedTexture(0xA4, Texture.redstoneWireCross)));
allTextures.put("redstone_dust_line", new AlternateTextures(
new RotatedTextureLoader("assets/minecraft/textures/blocks/redstone_dust_line0",
Texture.redstoneWire),
new SimpleTexture("assets/minecraft/textures/blocks/redstone_dust_line",
Texture.redstoneWire),
new SimpleTexture("textures/blocks/redstoneDust_line", Texture.redstoneWire),
new IndexedTexture(0xA5, Texture.redstoneWire)));
// Minecraft 1.12: Glazed Terracotta:
allTextures.put("glazed_terracotta_black",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_black",
Texture.terracottaBlack));
allTextures.put("glazed_terracotta_blue",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_blue",
Texture.terracottaBlue));
allTextures.put("glazed_terracotta_brown",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_brown",
Texture.terracottaBrown));
allTextures.put("glazed_terracotta_cyan",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_cyan",
Texture.terracottaCyan));
allTextures.put("glazed_terracotta_gray",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_gray",
Texture.terracottaGray));
allTextures.put("glazed_terracotta_green",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_green",
Texture.terracottaGreen));
allTextures.put("glazed_terracotta_light_blue",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_light_blue",
Texture.terracottaLightBlue));
allTextures.put("glazed_terracotta_lime",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_lime",
Texture.terracottaLime));
allTextures.put("glazed_terracotta_magenta",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_magenta",
Texture.terracottaMagenta));
allTextures.put("glazed_terracotta_orange",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_orange",
Texture.terracottaOrange));
allTextures.put("glazed_terracotta_pink",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_pink",
Texture.terracottaPink));
allTextures.put("glazed_terracotta_purple",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_purple",
Texture.terracottaPurple));
allTextures.put("glazed_terracotta_red",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_red",
Texture.terracottaRed));
allTextures.put("glazed_terracotta_silver",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_silver",
Texture.terracottaSilver));
allTextures.put("glazed_terracotta_white",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_white",
Texture.terracottaWhite));
allTextures.put("glazed_terracotta_yellow",
new SimpleTexture("assets/minecraft/textures/blocks/glazed_terracotta_yellow",
Texture.terracottaYellow));
// Minecraft 1.12: Concrete:
allTextures.put("concrete_black",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_black",
Texture.concreteBlack));
allTextures.put("concrete_blue",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_blue",
Texture.concreteBlue));
allTextures.put("concrete_brown",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_brown",
Texture.concreteBrown));
allTextures.put("concrete_cyan",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_cyan",
Texture.concreteCyan));
allTextures.put("concrete_gray",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_gray",
Texture.concreteGray));
allTextures.put("concrete_green",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_green",
Texture.concreteGreen));
allTextures.put("concrete_light_blue",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_light_blue",
Texture.concreteLightBlue));
allTextures.put("concrete_lime",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_lime",
Texture.concreteLime));
allTextures.put("concrete_magenta",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_magenta",
Texture.concreteMagenta));
allTextures.put("concrete_orange",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_orange",
Texture.concreteOrange));
allTextures.put("concrete_pink",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_pink",
Texture.concretePink));
allTextures.put("concrete_purple",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_purple",
Texture.concretePurple));
allTextures.put("concrete_red",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_red",
Texture.concreteRed));
allTextures.put("concrete_silver",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_silver",
Texture.concreteSilver));
allTextures.put("concrete_white",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_white",
Texture.concreteWhite));
allTextures.put("concrete_yellow",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_yellow",
Texture.concreteYellow));
// Concrete powder:
allTextures.put("concrete_powder_black",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_black",
Texture.concretePowderBlack));
allTextures.put("concrete_powder_blue",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_blue",
Texture.concretePowderBlue));
allTextures.put("concrete_powder_brown",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_brown",
Texture.concretePowderBrown));
allTextures.put("concrete_powder_cyan",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_cyan",
Texture.concretePowderCyan));
allTextures.put("concrete_powder_gray",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_gray",
Texture.concretePowderGray));
allTextures.put("concrete_powder_green",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_green",
Texture.concretePowderGreen));
allTextures.put("concrete_powder_light_blue",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_light_blue",
Texture.concretePowderLightBlue));
allTextures.put("concrete_powder_lime",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_lime",
Texture.concretePowderLime));
allTextures.put("concrete_powder_magenta",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_magenta",
Texture.concretePowderMagenta));
allTextures.put("concrete_powder_orange",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_orange",
Texture.concretePowderOrange));
allTextures.put("concrete_powder_pink",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_pink",
Texture.concretePowderPink));
allTextures.put("concrete_powder_purple",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_purple",
Texture.concretePowderPurple));
allTextures.put("concrete_powder_red",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_red",
Texture.concretePowderRed));
allTextures.put("concrete_powder_silver",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_silver",
Texture.concretePowderSilver));
allTextures.put("concrete_powder_white",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_white",
Texture.concretePowderWhite));
allTextures.put("concrete_powder_yellow",
new SimpleTexture("assets/minecraft/textures/blocks/concrete_powder_yellow",
Texture.concretePowderYellow));
}
private static String texturePackName(File tpFile) {
boolean isDefault = tpFile.equals(MinecraftFinder.getMinecraftJar());
return String.format("%s (%s)",
isDefault ? "default resource pack" : "resource pack",
tpFile.getAbsolutePath());
}
/**
* Load a set of textures from a Minecraft resource pack.
*
* @param tpFile resource pack file
* @param textures textures to load
* @return the keys for textures that could not be loaded
*/
public static Set<Map.Entry<String, TextureLoader>> loadTextures(File tpFile,
Collection<Map.Entry<String, TextureLoader>> textures) {
Set<Map.Entry<String, TextureLoader>> notLoaded = new HashSet<>(textures);
try (ZipFile texturePack = new ZipFile(tpFile)) {
boolean foundAssetDirectory = false;
Enumeration<? extends ZipEntry> entries = texturePack.entries();
while (entries.hasMoreElements()) {
if (entries.nextElement().getName().startsWith("assets/")) {
foundAssetDirectory = true;
break;
}
}
if (!foundAssetDirectory) {
Log.errorf("Missing assets directory in %s", texturePackName(tpFile));
} else {
for (Map.Entry<String, TextureLoader> texture : textures) {
if (texture.getValue().load(texturePack)) {
notLoaded.remove(texture);
}
}
// Fall back on the "terrain.png" texture atlas:
notLoaded = loadTerrainTextures(texturePack, notLoaded);
}
} catch (IOException e) {
Log.warnf("Failed to open %s: %s", texturePackName(tpFile), e.getMessage());
}
return notLoaded;
}
/**
* Load textures from some resource packs.
* @param texturePacks The paths to texture packs to be loaded, as a path list.
* Texture packs are loaded in the order of the paths in this argument.
* Paths are separated by the system path separator.
* @param remember Decides if the texture packs should be saved as the
* last used texture pack.
*/
public static void loadTexturePacks(@NotNull String texturePacks, boolean remember) {
String pathList = texturePacks.trim();
String[] packs;
if (!texturePacks.isEmpty()) {
packs = pathList.split(File.pathSeparator);
} else {
packs = new String[0];
}
loadTexturePacks(packs, remember);
}
/**
* Load textures from some resource packs.
* @param texturePacks The paths to texture packs to be loaded.
* Texture packs are loaded in the order of the paths in this argument.
* @param remember Decides if the texture packs should be saved as the
* last used texture pack.
*/
public static void loadTexturePacks(@NotNull String[] texturePacks, boolean remember) {
Set<Map.Entry<String, TextureLoader>> toLoad = allTextures.entrySet();
for (String path : texturePacks) {
if (!path.isEmpty()) {
File file = new File(path);
if (!file.isFile()) {
Log.error("Could not open texture pack: " + file.getAbsolutePath());
}
Log.infof("Loading %d textures from %s", toLoad.size(), file.getAbsolutePath());
toLoad = loadTextures(file, toLoad);
if (toLoad.isEmpty()) {
break;
}
}
}
if (!toLoad.isEmpty()) {
// If there are textures left to load we try to load the default textures.
File defaultResources = MinecraftFinder.getMinecraftJar();
if (defaultResources != null) {
Log.infof("Loading %d textures from %s", toLoad.size(), defaultResources.getAbsolutePath());
toLoad = loadTextures(defaultResources, toLoad);
} else {
Log.error("Minecraft Jar not found: falling back on placeholder textures.");
}
}
if (!toLoad.isEmpty()) {
StringBuilder message = new StringBuilder();
message.append("Failed to load textures:");
Iterator<Map.Entry<String, TextureLoader>> iterator = toLoad.iterator();
for (int count = 0; iterator.hasNext() && count < 10; ++count) {
message.append("\n\t").append(iterator.next().getKey());
}
if (toLoad.size() > 10) {
message.append("\n\t... and ").append(toLoad.size() - 10).append(" more");
}
Log.info(message.toString());
}
if (remember) {
StringBuilder paths = new StringBuilder();
for (String path : texturePacks) {
if (paths.length() > 0) {
paths.append(File.pathSeparator);
}
paths.append(path);
}
PersistentSettings.setLastTexturePack(paths.toString());
}
}
private static Set<Map.Entry<String, TextureLoader>> loadTerrainTextures(ZipFile texturePack,
Set<Map.Entry<String, TextureLoader>> textures) {
Set<Map.Entry<String, TextureLoader>> notLoaded = new HashSet<>(textures);
try (InputStream in = texturePack.getInputStream(new ZipEntry("terrain.png"))) {
if (in != null) {
BitmapImage spriteMap = ImageLoader.read(in);
BitmapImage[] terrainTextures = getTerrainTextures(spriteMap);
for (Map.Entry<String, TextureLoader> texture : textures) {
if (texture.getValue().loadFromTerrain(terrainTextures)) {
notLoaded.remove(texture);
}
}
}
} catch (IOException e) {
// Failed to load terrain textures - this is handled implicitly.
}
return notLoaded;
}
/**
* Load a 16x16 spritemap.
*
* @return A bufferedImage containing the spritemap
* @throws IOException if the image dimensions are incorrect
*/
private static BitmapImage[] getTerrainTextures(BitmapImage spritemap) throws IOException {
if (spritemap.width != spritemap.height || spritemap.width % 16 != 0) {
throw new IOException(
"Error: terrain.png file must have equal width and height, divisible by 16!");
}
int imgW = spritemap.width;
int spriteW = imgW / 16;
BitmapImage[] tex = new BitmapImage[256];
for (int i = 0; i < 256; ++i) {
tex[i] = new BitmapImage(spriteW, spriteW);
}
for (int y = 0; y < imgW; ++y) {
int sy = y / spriteW;
for (int x = 0; x < imgW; ++x) {
int sx = x / spriteW;
BitmapImage texture = tex[sx + sy * 16];
texture.setPixel(x % spriteW, y % spriteW, spritemap.getPixel(x, y));
}
}
return tex;
}
}