diff --git a/src/common/resources/lang/en_US/gui.lang b/src/common/resources/lang/en_US/gui.lang
index f1e4cc427..3dd615c97 100644
--- a/src/common/resources/lang/en_US/gui.lang
+++ b/src/common/resources/lang/en_US/gui.lang
@@ -264,6 +264,7 @@ gui.select_server.button.show_ip.off=OFF
 gui.select_world.label.title=Select World
 gui.select_world.label.world=World %s
 gui.select_world.label.must_be_converted=Must be converted!
+gui.select_world.label.dimension_corrupted=Error Dimension Corrupted!
 gui.select_world.label.outdated=Outdated - can't be loaded (yet!)
 gui.select_world.label.delete_title=Delete World
 gui.select_world.label.delete_confirm.1=Are you sure you want to delete this world?
diff --git a/src/common/resources/lang/en_US/strings.lang b/src/common/resources/lang/en_US/strings.lang
index 47bc34fff..d7c6de7fa 100644
--- a/src/common/resources/lang/en_US/strings.lang
+++ b/src/common/resources/lang/en_US/strings.lang
@@ -135,4 +135,6 @@ flag.full=You have too many flags on this map!
 flag.overwrite=Cannot overwrite an existing pattern.
 flag.copied=Flag pattern copied.
 
-wand.wrongmode=You must be in Creative mode to use this item!
\ No newline at end of file
+wand.wrongmode=You must be in Creative mode to use this item!
+
+save.data.missing.data=Level Metadata Missing!
\ No newline at end of file
diff --git a/src/main/java/com/mojang/nbt/CompoundTag.java b/src/main/java/com/mojang/nbt/CompoundTag.java
index 57f84d1d5..b7d946bd5 100644
--- a/src/main/java/com/mojang/nbt/CompoundTag.java
+++ b/src/main/java/com/mojang/nbt/CompoundTag.java
@@ -361,6 +361,8 @@ public class CompoundTag extends Tag<Map<String, Tag<?>>>
         sb.append("}");
         return sb.toString();
     }
+
+    @Override
     public boolean equals(Object o){
         if (!(o instanceof CompoundTag)) return false;
         Map<String, Tag<?>> data1 = this.getValue();
diff --git a/src/main/java/com/mojang/nbt/Tag.java b/src/main/java/com/mojang/nbt/Tag.java
index 438f8f338..2d2108ba1 100644
--- a/src/main/java/com/mojang/nbt/Tag.java
+++ b/src/main/java/com/mojang/nbt/Tag.java
@@ -1,6 +1,7 @@
 package com.mojang.nbt;
 
 import java.io.*;
+import java.util.Objects;
 
 public abstract class Tag<T>
 {
@@ -133,6 +134,13 @@ public abstract class Tag<T>
         }
     }
 
+    @Override
+    public boolean equals(Object obj) {
+        if(!(obj instanceof Tag<?>)) return false;
+        Tag<?> tag = (Tag<?>) obj;
+        return Objects.equals(getValue(), tag.getValue());
+    }
+
     /**
      * Creates a new tag wrapping the specified type.
      * @param type The type to wrap.
diff --git a/src/main/java/net/minecraft/client/gui/GuiIngame.java b/src/main/java/net/minecraft/client/gui/GuiIngame.java
index 0d77bae83..af8ccd02b 100644
--- a/src/main/java/net/minecraft/client/gui/GuiIngame.java
+++ b/src/main/java/net/minecraft/client/gui/GuiIngame.java
@@ -311,7 +311,7 @@ public class GuiIngame extends Gui
                         int meta = mc.theWorld.getBlockMetadata(mc.objectMouseOver.x, mc.objectMouseOver.y, mc.objectMouseOver.z);
                         try
                         {
-                            name = stringtranslate.translateKey(Item.itemsList[block.id].getLanguageKey(new ItemStack(block, 1, meta)) + ".name");
+                            name = block.asItem().getTranslatedName(new ItemStack(block, 1, meta));
                         }
                         catch (Exception e)
                         {
diff --git a/src/main/java/net/minecraft/client/gui/GuiSelectWorld.java b/src/main/java/net/minecraft/client/gui/GuiSelectWorld.java
index 78f3237d0..370b6e522 100644
--- a/src/main/java/net/minecraft/client/gui/GuiSelectWorld.java
+++ b/src/main/java/net/minecraft/client/gui/GuiSelectWorld.java
@@ -213,6 +213,7 @@ public class GuiSelectWorld extends GuiScreen
     public void selectWorld(int i)
     {
         SaveFile save = saveList.get(i);
+        if (save.isCorrupted()) return;
         if (save.getNeedsConversion() && Global.DISABLE_OLD_WORLDS)
         {
             return;
@@ -277,8 +278,9 @@ public class GuiSelectWorld extends GuiScreen
         {
             selectedWorld = itemIndex;
             boolean flag1 = selectedWorld >= 0 && selectedWorld < getItemCount();
-            buttonSelect.enabled = flag1;
-            buttonRename.enabled = flag1;
+            boolean corrupted = saveList.get(itemIndex) == null || saveList.get(itemIndex).isCorrupted();
+            buttonSelect.enabled = flag1 && !corrupted;
+            buttonRename.enabled = flag1 && !corrupted;
             buttonDelete.enabled = flag1;
             if(doubleClicked && flag1)
             {
@@ -310,6 +312,7 @@ public class GuiSelectWorld extends GuiScreen
             I18n i18n = I18n.getInstance();
             SaveFile saveFile = saveList.get(index);
             String s = saveFile.getDisplayName();
+            if (saveFile.isCorrupted()) s = TextFormatting.RED + s;
             if(s == null || MathHelper.stringNullOrLengthZero(s))
             {
                 s = i18n.translateKeyAndFormat(stringWorld, index + 1);
@@ -325,16 +328,20 @@ public class GuiSelectWorld extends GuiScreen
             }
             else
             {
+                I18n st = I18n.getInstance();
                 LevelData ld = saveFile.getLevelData();
                 DimensionData dd = saveFile.getDimensionData()[0];
-                I18n st = I18n.getInstance();
-                s2 += st.translateNameKey(Gamemode.gamemodesList[ld.getGamemode()].getLanguageKey());
-                if (ld.getCheatsEnabled()) s2 += " | " + st.translateKey("gui.select_world.label.cheats");
-                WorldType worldType = dd.getWorldType();
-                if (worldType != null) {
-                    s2 += " | " + st.translateNameKey(dd.getWorldType().getLanguageKey());
+                if (dd == null){
+                    s2 += TextFormatting.RED + st.translateKey("gui.select_world.label.dimension_corrupted");
                 } else {
-                    s2 += " | " + TextFormatting.RED + st.translateKey("gui.select_world.label.unknown");
+                    s2 += st.translateNameKey(Gamemode.gamemodesList[ld.getGamemode()].getLanguageKey());
+                    if (ld.getCheatsEnabled()) s2 += " | " + st.translateKey("gui.select_world.label.cheats");
+                    WorldType worldType = dd.getWorldType();
+                    if (worldType != null) {
+                        s2 += " | " + st.translateNameKey(dd.getWorldType().getLanguageKey());
+                    } else {
+                        s2 += " | " + TextFormatting.RED + st.translateKey("gui.select_world.label.unknown");
+                    }
                 }
             }
 
diff --git a/src/main/java/net/minecraft/client/gui/GuiTooltip.java b/src/main/java/net/minecraft/client/gui/GuiTooltip.java
index 27975a72b..d3b64d572 100644
--- a/src/main/java/net/minecraft/client/gui/GuiTooltip.java
+++ b/src/main/java/net/minecraft/client/gui/GuiTooltip.java
@@ -233,7 +233,7 @@ public class GuiTooltip extends Gui
             }
 
 			if(debug) {
-                text.append('\n').append(TextFormatting.LIGHT_GRAY).append(itemStack.getItemName());
+                text.append('\n').append(TextFormatting.LIGHT_GRAY).append(itemStack.getItemKey());
 				CompoundTag data = itemStack.getData();
 				if(data != null) {
 					text.append('\n').append(TextFormatting.LIGHT_GRAY).append("NBT: ").append(data.getValue().size()).append(" Tags");
@@ -259,7 +259,7 @@ public class GuiTooltip extends Gui
 			}
 
 			if(showDescription) {
-				text.append('\n').append(formatDescription(trans.translateKey(itemStack.getItemName() + ".desc"), 16));
+				text.append('\n').append(formatDescription(itemStack.getItemDescription(), 16));
 			}
 
 			if(slot instanceof SlotCrafting) {
@@ -274,7 +274,7 @@ public class GuiTooltip extends Gui
 				}
 			}
 		} else {
-			String translatedName = trans.translateNameKey(itemStack.getItemName());
+			String translatedName = itemStack.getDisplayName();
 			for(char c : translatedName.toCharArray()) {
 				if(Character.isLetterOrDigit(c))
 					text.append("?");
diff --git a/src/main/java/net/minecraft/client/render/FontRenderer.java b/src/main/java/net/minecraft/client/render/FontRenderer.java
index bf44707f7..539b6d640 100644
--- a/src/main/java/net/minecraft/client/render/FontRenderer.java
+++ b/src/main/java/net/minecraft/client/render/FontRenderer.java
@@ -1,5 +1,6 @@
 package net.minecraft.client.render;
 
+import net.minecraft.client.Minecraft;
 import net.minecraft.client.lang.text.Text;
 import net.minecraft.client.option.GameSettings;
 import net.minecraft.client.render.tessellator.Tessellator;
@@ -24,6 +25,7 @@ public class FontRenderer {
     private static final Pattern FORMATTING_CODE_REGEX = Pattern.compile("(?i)\\u00A7[0-9A-FK-OR]");
 
     private final GameSettings gameSettings;
+    private final Minecraft mc;
     private final byte[] charWidth;
     public int fontTextureName;
     private final int[] fontTextureNames;
@@ -48,7 +50,8 @@ public class FontRenderer {
     private boolean underlineStyle;
     private boolean strikethroughStyle;
 
-    public FontRenderer(GameSettings gameSettings, String fontPath, RenderEngine renderEngine) {
+    public FontRenderer(Minecraft minecraft, GameSettings gameSettings, String fontPath, RenderEngine renderEngine) {
+        this.mc = minecraft;
         this.gameSettings = gameSettings;
         this.charWidth = new byte[65536];
         this.fontTextureName = 0;
@@ -65,8 +68,8 @@ public class FontRenderer {
         this.strikethroughStyle = false;
         this.renderEngine = renderEngine;
 
-        try (InputStream glyphStream = RenderEngine.class.getResourceAsStream("/font/glyph_sizes.bin");
-             InputStream glyphStreamDefault = RenderEngine.class.getResourceAsStream("/font/glyph_sizes_default.bin")) {
+        try (InputStream glyphStream = mc.texturePackList.getResourceAsStream("/font/glyph_sizes.bin");
+             InputStream glyphStreamDefault = mc.texturePackList.getResourceAsStream("/font/glyph_sizes_default.bin")) {
             glyphStream.read(this.glyphWidth);
             glyphStreamDefault.read(this.charWidth);
         } catch (IOException e) {
@@ -119,11 +122,11 @@ public class FontRenderer {
 
         BufferedImage fontTexture;
         try {
-            fontTexture = ImageIO.read(RenderEngine.class.getResourceAsStream(fontPath));
+            fontTexture = ImageIO.read(mc.texturePackList.getResourceAsStream(fontPath));
         } catch (IOException | IllegalArgumentException e) {
             success = false;
             try {
-                fontTexture = ImageIO.read(RenderEngine.class.getResourceAsStream(glyphPath));
+                fontTexture = ImageIO.read(mc.texturePackList.getResourceAsStream(glyphPath));
             } catch (IOException e1) {
                 throw new RuntimeException(e1);
             }
@@ -183,7 +186,7 @@ public class FontRenderer {
 
         BufferedImage glyphTexture;
         try {
-            glyphTexture = ImageIO.read(RenderEngine.class.getResourceAsStream(glyphPath));
+            glyphTexture = ImageIO.read(mc.texturePackList.getResourceAsStream(glyphPath));
         } catch (IOException var5) {
             throw new RuntimeException(var5);
         }
diff --git a/src/main/java/net/minecraft/client/render/RenderEngine.java b/src/main/java/net/minecraft/client/render/RenderEngine.java
index 39100aefb..6d0bb2dcd 100644
--- a/src/main/java/net/minecraft/client/render/RenderEngine.java
+++ b/src/main/java/net/minecraft/client/render/RenderEngine.java
@@ -700,7 +700,7 @@ public class RenderEngine {
 
 		Colors.loadColors();
 		
-		mc.fontRenderer = new FontRenderer(gameSettings, "/font/default.png", this);
+		mc.fontRenderer = new FontRenderer(mc, gameSettings, "/font/default.png", this);
 		
 		mc.skinVariantList.refresh(errors);
 		mc.mainMenuBackground.refresh(errors);
diff --git a/src/main/java/net/minecraft/client/render/texturepack/TexturePackList.java b/src/main/java/net/minecraft/client/render/texturepack/TexturePackList.java
index 24459217c..0cbc89bf7 100644
--- a/src/main/java/net/minecraft/client/render/texturepack/TexturePackList.java
+++ b/src/main/java/net/minecraft/client/render/texturepack/TexturePackList.java
@@ -83,7 +83,7 @@ public class TexturePackList
 	}
 	public void refresh(){
 		mc.renderEngine.refreshTexturesAndDisplayErrors();
-		mc.fontRenderer = new FontRenderer(mc.gameSettings, "/font/default.png", mc.renderEngine);
+		mc.fontRenderer = new FontRenderer(mc, mc.gameSettings, "/font/default.png", mc.renderEngine);
 		mc.renderGlobal.loadRenderers();
 		mc.currentScreen.refreshFontRenderer();
 		mc.renderEngine.updateDynamicTextures();
@@ -98,6 +98,19 @@ public class TexturePackList
 			File[] filesInDir = texturePackDir.listFiles();
 			
 			if(filesInDir != null) {
+//				 remove this before releasing any live builds, this is explicitly so I can refresh the resources ingame without recompiling
+//				File[] tempList = new File[filesInDir.length + 1];
+//				for (int i = 0; i < tempList.length; i++) {
+//					if (i < tempList.length - 1){
+//						tempList[i] = filesInDir[i];
+//					} else {
+//						File local = new File("./src/main/resources");
+//						System.out.println(local.getAbsoluteFile());
+//						tempList[i] = local;
+//					}
+//				}
+//				filesInDir = tempList;
+
 				for(File file : filesInDir) {
 					if(!isTexturePack(file)) {
 						continue;
diff --git a/src/main/java/net/minecraft/client/util/helper/Colors.java b/src/main/java/net/minecraft/client/util/helper/Colors.java
index a0c46dd94..7260ea416 100644
--- a/src/main/java/net/minecraft/client/util/helper/Colors.java
+++ b/src/main/java/net/minecraft/client/util/helper/Colors.java
@@ -36,7 +36,7 @@ public abstract class Colors {
 			stream.close();
 			fillColorArray(colors, image);
 		}catch (Exception e) {
-			throw new RuntimeException("Failed to load colors from image: "+path);
+			throw new RuntimeException("Failed to load colors from image: "+path, e);
 		}
 	}
 	
diff --git a/src/main/java/net/minecraft/core/item/Item.java b/src/main/java/net/minecraft/core/item/Item.java
index 8eedf4059..88ed427ec 100644
--- a/src/main/java/net/minecraft/core/item/Item.java
+++ b/src/main/java/net/minecraft/core/item/Item.java
@@ -161,7 +161,7 @@ public class Item
         return 1;
     }
 
-    public boolean canHarvestBlock(Block block)
+    public boolean canHarvestBlock(EntityLiving entityLiving, ItemStack itemStack, Block block)
     {
         return false;
     }
@@ -187,9 +187,12 @@ public class Item
     {
         return key;
     }
-    
+
     public String getTranslatedName(ItemStack itemstack) {
-    	return I18n.getInstance().translateKey(itemstack.getItemName() + ".name");
+        return I18n.getInstance().translateKey(itemstack.getItemKey() + ".name");
+    }
+    public String getTranslatedDescription(ItemStack itemstack) {
+        return I18n.getInstance().translateKey(itemstack.getItemKey() + ".desc");
     }
 
     public CompoundTag getDefaultTag() {
diff --git a/src/main/java/net/minecraft/core/item/ItemStack.java b/src/main/java/net/minecraft/core/item/ItemStack.java
index fb13326c6..c2b3ae546 100644
--- a/src/main/java/net/minecraft/core/item/ItemStack.java
+++ b/src/main/java/net/minecraft/core/item/ItemStack.java
@@ -322,9 +322,9 @@ public final class ItemStack
         return Item.itemsList[itemID].getDamageVsEntity(entity);
     }
 
-    public boolean canHarvestBlock(Block block)
+    public boolean canHarvestBlock(EntityLiving entityLiving, Block block)
     {
-        return Item.itemsList[itemID].canHarvestBlock(block);
+        return Item.itemsList[itemID].canHarvestBlock(entityLiving, this, block);
     }
 
     public boolean useItemOnEntity(EntityLiving entityliving, EntityPlayer entityPlayer)
@@ -370,10 +370,13 @@ public final class ItemStack
         return itemID == itemstack.itemID && metadata == itemstack.metadata;
     }
 
-    public String getItemName()
+    public String getItemKey()
     {
         return Item.itemsList[itemID].getLanguageKey(this);
     }
+    public String getItemDescription(){
+        return Item.itemsList[itemID].getTranslatedDescription(this);
+    }
 
     public static ItemStack copyItemStack(ItemStack itemstack)
     {
diff --git a/src/main/java/net/minecraft/core/item/ItemToolShears.java b/src/main/java/net/minecraft/core/item/ItemToolShears.java
index 469a85467..cf978f6cf 100644
--- a/src/main/java/net/minecraft/core/item/ItemToolShears.java
+++ b/src/main/java/net/minecraft/core/item/ItemToolShears.java
@@ -26,7 +26,7 @@ public class ItemToolShears extends Item
     }
 
     @Override
-    public boolean canHarvestBlock(Block block)
+    public boolean canHarvestBlock(EntityLiving entityLiving, ItemStack itemStack, Block block)
     {
         return block.hasTag(BlockTags.MINEABLE_BY_SHEARS);
     }
diff --git a/src/main/java/net/minecraft/core/item/tool/ItemToolAxe.java b/src/main/java/net/minecraft/core/item/tool/ItemToolAxe.java
index d1291d729..8296b1195 100644
--- a/src/main/java/net/minecraft/core/item/tool/ItemToolAxe.java
+++ b/src/main/java/net/minecraft/core/item/tool/ItemToolAxe.java
@@ -5,6 +5,7 @@ import net.minecraft.core.block.BlockLog;
 import net.minecraft.core.block.tag.BlockTags;
 import net.minecraft.core.data.gamerule.GameRules;
 import net.minecraft.core.data.gamerule.TreecapitatorHelper;
+import net.minecraft.core.entity.EntityLiving;
 import net.minecraft.core.entity.player.EntityPlayer;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.material.ToolMaterial;
@@ -19,7 +20,7 @@ public class ItemToolAxe extends ItemTool
     }
 
     @Override
-    public boolean canHarvestBlock(Block block)
+    public boolean canHarvestBlock(EntityLiving entityLiving, ItemStack itemStack, Block block)
     {
         return block.hasTag(BlockTags.MINEABLE_BY_AXE);
     }
diff --git a/src/main/java/net/minecraft/core/item/tool/ItemToolHoe.java b/src/main/java/net/minecraft/core/item/tool/ItemToolHoe.java
index 368edb2ae..6a205e810 100644
--- a/src/main/java/net/minecraft/core/item/tool/ItemToolHoe.java
+++ b/src/main/java/net/minecraft/core/item/tool/ItemToolHoe.java
@@ -25,7 +25,7 @@ public class ItemToolHoe extends ItemTool
     }
 
     @Override
-    public boolean canHarvestBlock(Block block)
+    public boolean canHarvestBlock(EntityLiving entityLiving, ItemStack itemStack, Block block)
     {
         return block.hasTag(BlockTags.MINEABLE_BY_HOE);
     }
diff --git a/src/main/java/net/minecraft/core/item/tool/ItemToolPickaxe.java b/src/main/java/net/minecraft/core/item/tool/ItemToolPickaxe.java
index 3536f7330..0aced0924 100644
--- a/src/main/java/net/minecraft/core/item/tool/ItemToolPickaxe.java
+++ b/src/main/java/net/minecraft/core/item/tool/ItemToolPickaxe.java
@@ -4,8 +4,9 @@ import java.util.HashMap;
 import java.util.Map;
 
 import net.minecraft.core.block.Block;
-import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
+import net.minecraft.core.entity.EntityLiving;
+import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.material.ToolMaterial;
 
 public class ItemToolPickaxe extends ItemTool {
@@ -59,7 +60,7 @@ public class ItemToolPickaxe extends ItemTool {
 	}
 
 	@Override
-	public boolean canHarvestBlock(Block block)
+	public boolean canHarvestBlock(EntityLiving entityLiving, ItemStack itemStack, Block block)
 	{
 		Integer miningLevel = miningLevels.get(block);
 		if(miningLevel != null) return material.getMiningLevel() >= miningLevel;
diff --git a/src/main/java/net/minecraft/core/item/tool/ItemToolShovel.java b/src/main/java/net/minecraft/core/item/tool/ItemToolShovel.java
index 437357747..d92026e05 100644
--- a/src/main/java/net/minecraft/core/item/tool/ItemToolShovel.java
+++ b/src/main/java/net/minecraft/core/item/tool/ItemToolShovel.java
@@ -2,6 +2,7 @@ package net.minecraft.core.item.tool;
 
 import net.minecraft.core.block.Block;
 import net.minecraft.core.block.tag.BlockTags;
+import net.minecraft.core.entity.EntityLiving;
 import net.minecraft.core.entity.player.EntityPlayer;
 import net.minecraft.core.enums.EnumBlockSoundEffectType;
 import net.minecraft.core.item.ItemStack;
@@ -20,7 +21,7 @@ public class ItemToolShovel extends ItemTool
     }
 
     @Override
-    public boolean canHarvestBlock(Block block)
+    public boolean canHarvestBlock(EntityLiving entityLiving, ItemStack itemStack, Block block)
     {
         return block.hasTag(BlockTags.MINEABLE_BY_SHOVEL);
     }
diff --git a/src/main/java/net/minecraft/core/item/tool/ItemToolSword.java b/src/main/java/net/minecraft/core/item/tool/ItemToolSword.java
index 90cadf206..2b6e96204 100644
--- a/src/main/java/net/minecraft/core/item/tool/ItemToolSword.java
+++ b/src/main/java/net/minecraft/core/item/tool/ItemToolSword.java
@@ -57,7 +57,7 @@ public class ItemToolSword extends Item
     }
 
     @Override
-    public boolean canHarvestBlock(Block block)
+    public boolean canHarvestBlock(EntityLiving entityLiving, ItemStack itemStack, Block block)
     {
         return block.hasTag(BlockTags.MINEABLE_BY_SWORD);
     }
diff --git a/src/main/java/net/minecraft/core/net/command/commands/GiveCommand.java b/src/main/java/net/minecraft/core/net/command/commands/GiveCommand.java
index 27d83e6ca..80582a346 100644
--- a/src/main/java/net/minecraft/core/net/command/commands/GiveCommand.java
+++ b/src/main/java/net/minecraft/core/net/command/commands/GiveCommand.java
@@ -103,7 +103,7 @@ public class GiveCommand extends Command{
 			return true;
 		}
 		if(player instanceof EntityPlayerMP) {
-			handler.sendCommandFeedback(sender, "Gave "+item.stackSize+" of "+item.getItemName()+" to "+player.getDisplayName());
+			handler.sendCommandFeedback(sender, "Gave "+item.stackSize+" of "+ item.getItemKey() +" to "+player.getDisplayName());
 			
 			EntityPlayerMP playerMP = (EntityPlayerMP) player;
 			playerMP.dropPlayerItem(item);
diff --git a/src/main/java/net/minecraft/core/player/inventory/ContainerPlayerCreative.java b/src/main/java/net/minecraft/core/player/inventory/ContainerPlayerCreative.java
index 72e607dcb..7848bdbdb 100644
--- a/src/main/java/net/minecraft/core/player/inventory/ContainerPlayerCreative.java
+++ b/src/main/java/net/minecraft/core/player/inventory/ContainerPlayerCreative.java
@@ -81,7 +81,7 @@ public class ContainerPlayerCreative extends ContainerPlayer
 		
 		for (int i = 0; i < creativeItemsCount; i++)
 		{
-			if (t.translateNameKey(creativeItems.get(i).getItemName()).toLowerCase().contains(search.toLowerCase()))
+			if (t.translateNameKey(creativeItems.get(i).getItemKey()).toLowerCase().contains(search.toLowerCase()))
 			{
 				searchedItems.add(creativeItems.get(i));
 			}
diff --git a/src/main/java/net/minecraft/core/player/inventory/InventoryPlayer.java b/src/main/java/net/minecraft/core/player/inventory/InventoryPlayer.java
index 4e4b50b8b..f23e1b4ce 100644
--- a/src/main/java/net/minecraft/core/player/inventory/InventoryPlayer.java
+++ b/src/main/java/net/minecraft/core/player/inventory/InventoryPlayer.java
@@ -355,7 +355,7 @@ public class InventoryPlayer
         ItemStack itemstack = getStackInSlot(currentItem);
         if(itemstack != null)
         {
-            return itemstack.canHarvestBlock(block);
+            return itemstack.canHarvestBlock(player, block);
         } else
         {
             return false;
diff --git a/src/main/java/net/minecraft/core/world/biome/provider/BiomeProviderOverworld.java b/src/main/java/net/minecraft/core/world/biome/provider/BiomeProviderOverworld.java
index dd89f99fd..9985583b3 100644
--- a/src/main/java/net/minecraft/core/world/biome/provider/BiomeProviderOverworld.java
+++ b/src/main/java/net/minecraft/core/world/biome/provider/BiomeProviderOverworld.java
@@ -1,5 +1,6 @@
 package net.minecraft.core.world.biome.provider;
 
+import net.minecraft.core.Global;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.world.biome.Biome;
 import net.minecraft.core.world.biome.Biomes;
@@ -396,6 +397,8 @@ public final class BiomeProviderOverworld
         brm.lock();
         
 //		Stop turning this on it crashes servers
-//        brm.generateDebugImage(true);
+//        if (!Global.isServer){
+//            brm.generateDebugImage(true);
+//        }
     }
 }
diff --git a/src/main/java/net/minecraft/core/world/save/SaveFile.java b/src/main/java/net/minecraft/core/world/save/SaveFile.java
index 8b6a882c4..ed839b6c3 100644
--- a/src/main/java/net/minecraft/core/world/save/SaveFile.java
+++ b/src/main/java/net/minecraft/core/world/save/SaveFile.java
@@ -1,18 +1,25 @@
 package net.minecraft.core.world.save;
 
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Objects;
+
 public class SaveFile
     implements Comparable<SaveFile>
 {
 
-    public SaveFile(String fileName, String displayName, LevelData levelData, DimensionData[] dimensionData, long lastTimePlayed, long sizeOnDisk, boolean needsConversion)
+    public SaveFile(@NotNull String fileName, @NotNull String displayName, @Nullable LevelData levelData, DimensionData @NotNull [] dimensionData, long lastTimePlayed, long sizeOnDisk, boolean needsConversion)
     {
-        this.fileName = fileName;
-        this.displayName = displayName;
+        this.fileName = Objects.requireNonNull(fileName);
+        this.displayName = Objects.requireNonNull(displayName);
         this.lastTimePlayed = lastTimePlayed;
         this.sizeOnDisk = sizeOnDisk;
         this.needsConversion = needsConversion;
         this.levelData = levelData;
-        this.dimensionData = dimensionData;
+        this.dimensionData = Objects.requireNonNull(dimensionData);
+
+        this.corrupted = levelData == null || dimensionData[0] == null;
     }
 
     public String getFileName()
@@ -24,12 +31,12 @@ public class SaveFile
     {
         return displayName;
     }
-    
+    @Nullable
     public LevelData getLevelData()
     {
     	return levelData;
     }
-
+    @Nullable
     public DimensionData[] getDimensionData()
     {
         return dimensionData;
@@ -44,6 +51,7 @@ public class SaveFile
     {
         return needsConversion;
     }
+    public boolean isCorrupted(){ return corrupted; }
 
     public long getLastTimePlayed()
     {
@@ -66,16 +74,23 @@ public class SaveFile
     }
 
     @Override
-    public int compareTo(SaveFile save)
+    public int compareTo(@NotNull SaveFile save)
     {
+//        if (this.isCorrupted()) return -1;
+//        if (save.isCorrupted()) return 1;
         return getMostRecentSave(save);
     }
 
+    @NotNull
     private final String fileName;
+    @NotNull
     private final String displayName;
+    @Nullable
     private final LevelData levelData;
+    @NotNull
     private final DimensionData[] dimensionData;
     private final long lastTimePlayed;
     private final long sizeOnDisk;
     private final boolean needsConversion;
+    private final boolean corrupted;
 }
diff --git a/src/main/java/net/minecraft/core/world/save/SaveFormatBase.java b/src/main/java/net/minecraft/core/world/save/SaveFormatBase.java
index c77847154..f8475dbd3 100644
--- a/src/main/java/net/minecraft/core/world/save/SaveFormatBase.java
+++ b/src/main/java/net/minecraft/core/world/save/SaveFormatBase.java
@@ -1,5 +1,6 @@
 package net.minecraft.core.world.save;
 
+import net.minecraft.core.lang.I18n;
 import net.minecraft.core.util.helper.MathHelper;
 import com.mojang.nbt.CompoundTag;
 import com.mojang.nbt.NbtIo;
@@ -137,29 +138,35 @@ public abstract class SaveFormatBase
                 {
                     continue;
                 }
+
                 String worldDirName = file.getName();
                 LevelData levelData = getLevelData(worldDirName);
-                if (levelData == null)
-                {
-                    continue;
-                }
-                boolean needsConversion = levelData.getSaveVersion() != getSaveVersion();
-                String worldName = levelData.getWorldName();
-                if (worldName == null || MathHelper.stringNullOrLengthZero(worldName))
-                {
-                    worldName = worldDirName;
-                }
-                DimensionData[] dimensionData = new DimensionData[Dimension.getDimensionList().size()];
-                for (Dimension dimension : Dimension.getDimensionList().values())
-                {
-                    dimensionData[dimension.id] = getDimensionData(worldDirName, dimension.id);
-                }
-                if(!needsConversion && dimensionData[0] == null) {
-                	// Prevent crash
-                	// TODO show world in list as broken maybe?
-                	continue;
+                String worldName;
+                long lastTimePlayed;
+                long size;
+                DimensionData[] dimensionData;
+                boolean needsConversion = false;
+                if (levelData == null) {
+                    worldName = I18n.getInstance().translateKey("save.data.missing.data");
+                    lastTimePlayed = System.currentTimeMillis();
+                    size = -1;
+                    dimensionData = new DimensionData[Dimension.getDimensionList().size()];
+                } else {
+                    lastTimePlayed = levelData.getLastTimePlayed();
+                    size = levelData.getSizeOnDisk();
+                    needsConversion = levelData.getSaveVersion() != getSaveVersion();
+                    worldName = levelData.getWorldName();
+                    if (worldName == null || MathHelper.stringNullOrLengthZero(worldName))
+                    {
+                        worldName = worldDirName;
+                    }
+                    dimensionData = new DimensionData[Dimension.getDimensionList().size()];
+                    for (Dimension dimension : Dimension.getDimensionList().values())
+                    {
+                        dimensionData[dimension.id] = getDimensionData(worldDirName, dimension.id);
+                    }
                 }
-                saveFileList.add(new SaveFile(worldDirName, worldName, levelData, dimensionData, levelData.getLastTimePlayed(), levelData.getSizeOnDisk(), needsConversion));
+                saveFileList.add(new SaveFile(worldDirName, worldName, levelData, dimensionData, lastTimePlayed, size, needsConversion));
             }
         }
 
diff --git a/src/main/java/net/minecraft/server/net/handler/NetServerHandler.java b/src/main/java/net/minecraft/server/net/handler/NetServerHandler.java
index a1bc39d45..82434c3b3 100644
--- a/src/main/java/net/minecraft/server/net/handler/NetServerHandler.java
+++ b/src/main/java/net/minecraft/server/net/handler/NetServerHandler.java
@@ -871,7 +871,9 @@ public class NetServerHandler extends NetHandler
     @Override
     public void handleItemName(Packet137SetItemName packet)
     {
-        playerEntity.inventory.getStackInSlot(packet.slot).setCustomName(packet.name);
+        String name = packet.name;
+        if (name.length() > 16) name = packet.name.substring(0, 16);
+        playerEntity.inventory.getStackInSlot(packet.slot).setCustomName(name);
     }
 
     @Override
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_black_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_black_bottom.png
index 35f85c279..1d63f40c0 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_black_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_black_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_black_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_black_top.png
index c59a3af96..fe9ac6aba 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_black_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_black_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_blue_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_blue_bottom.png
index 3e85b7996..971bcd5ce 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_blue_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_blue_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_blue_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_blue_top.png
index f57e8690f..51f239e85 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_blue_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_blue_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_brown_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_brown_bottom.png
index e2a6b506b..c7a45b426 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_brown_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_brown_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_brown_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_brown_top.png
index 308606c34..08e2ee19c 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_brown_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_brown_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_cyan_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_cyan_bottom.png
index a390dcbd6..9c83abb5c 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_cyan_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_cyan_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_cyan_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_cyan_top.png
index 46426df2c..36f99bb2c 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_cyan_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_cyan_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_gray_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_gray_bottom.png
index e4fc43bb2..7b09508b6 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_gray_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_gray_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_gray_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_gray_top.png
index f36e02b10..f2bb07153 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_gray_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_gray_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_green_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_green_bottom.png
index 57326e175..05b9d7ac5 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_green_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_green_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_green_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_green_top.png
index e2c73a1b0..65cf3071c 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_green_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_green_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lightblue_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lightblue_bottom.png
index cb1697c6e..266ecf43f 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lightblue_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lightblue_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lightblue_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lightblue_top.png
index e4acaaf9b..9c332ea4b 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lightblue_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lightblue_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lime_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lime_bottom.png
index f96c9f83d..21e201c94 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lime_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lime_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lime_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lime_top.png
index eddc94803..7d0b30483 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lime_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_lime_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_magenta_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_magenta_bottom.png
index 7d3c2fccc..7c820ac1a 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_magenta_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_magenta_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_magenta_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_magenta_top.png
index 098cbafeb..03c1822ba 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_magenta_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_magenta_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_orange_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_orange_bottom.png
index aa1094e6c..42a0bfd56 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_orange_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_orange_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_orange_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_orange_top.png
index a40809a4c..b119c8478 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_orange_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_orange_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_pink_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_pink_bottom.png
index a62dc7f0c..522c718bb 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_pink_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_pink_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_pink_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_pink_top.png
index 7bdc03e39..e0dcb6315 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_pink_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_pink_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_purple_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_purple_bottom.png
index bc0584382..44f9b5671 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_purple_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_purple_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_purple_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_purple_top.png
index fbb8fab0b..196a1827d 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_purple_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_purple_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_red_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_red_bottom.png
index 8574a0322..b046e28a6 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_red_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_red_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_red_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_red_top.png
index 232255b65..e262fc545 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_red_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_red_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_silver_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_silver_bottom.png
index a97957e07..8f06ee8be 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_silver_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_silver_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_silver_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_silver_top.png
index 6134c1fcd..4cd1744a8 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_silver_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_silver_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_white_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_white_bottom.png
index 3b7621069..2d419ee78 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_white_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_white_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_white_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_white_top.png
index cafe13003..6338fe24c 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_white_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_white_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_yellow_bottom.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_yellow_bottom.png
index 27de03c68..9fd7ecb9f 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_yellow_bottom.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_yellow_bottom.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_yellow_top.png b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_yellow_top.png
index 363a4d27a..f52440eff 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/door_planks_oak_yellow_top.png and b/src/main/resources/assets/minecraft/textures/block/door_planks_oak_yellow_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_black.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_black.png
index 02f6bd8b9..d4083cc5d 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_black.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_black.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_blue.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_blue.png
index f80d5dadb..c5a74cf89 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_blue.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_blue.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_brown.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_brown.png
index d46cdf3c7..d743d24af 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_brown.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_brown.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_cyan.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_cyan.png
index 91d67f5a4..758f041ad 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_cyan.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_cyan.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_gray.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_gray.png
index 8d1e01705..7247cae53 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_gray.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_gray.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_green.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_green.png
index 176db4e1c..2e5cc9e2d 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_green.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_green.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_lightblue.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_lightblue.png
index f54f8e9f0..01c9c6b9b 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_lightblue.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_lightblue.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_lime.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_lime.png
index 3fe0ead7a..ce463c2c6 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_lime.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_lime.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_magenta.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_magenta.png
index 2d6e9d5c7..5998d1ec9 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_magenta.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_magenta.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_orange.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_orange.png
index a9541bc13..e1848db24 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_orange.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_orange.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_pink.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_pink.png
index 1025e8331..61e528a6b 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_pink.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_pink.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_purple.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_purple.png
index 8f725ec84..8e60526c5 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_purple.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_purple.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_red.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_red.png
index d73d1bd42..0be0719ee 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_red.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_red.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_silver.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_silver.png
index 1a35634a4..414462168 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_silver.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_silver.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_white.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_white.png
index 2f64adaf1..06ecbcd73 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_white.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_white.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_yellow.png b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_yellow.png
index 83e3270bb..8fff3c5e9 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_yellow.png and b/src/main/resources/assets/minecraft/textures/block/planks_oak_painted_yellow.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_black_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_black_side.png
index b841cc550..0bf8e9fd0 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_black_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_black_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_black_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_black_top.png
index 0f471ab7d..b1eadf216 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_black_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_black_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_blue_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_blue_side.png
index cbe17672d..36dac5a22 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_blue_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_blue_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_blue_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_blue_top.png
index e9956529e..48b4a1441 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_blue_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_blue_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_brown_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_brown_side.png
index 4f6dfad83..b6995ed45 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_brown_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_brown_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_brown_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_brown_top.png
index e139bfdf8..7b1fcad0a 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_brown_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_brown_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_cyan_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_cyan_side.png
index 547085cb6..f2eee0522 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_cyan_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_cyan_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_cyan_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_cyan_top.png
index 5dc27d35a..d978a0828 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_cyan_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_cyan_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_gray_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_gray_side.png
index 522604413..ab21cea10 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_gray_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_gray_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_gray_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_gray_top.png
index 5bdb963d4..f244fd735 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_gray_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_gray_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_green_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_green_side.png
index ff3f9b45c..055e2b307 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_green_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_green_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_green_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_green_top.png
index 6aebf86e7..3f4adcf76 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_green_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_green_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lightblue_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lightblue_side.png
index b9b1d4413..0c6cbb5fe 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lightblue_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lightblue_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lightblue_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lightblue_top.png
index 8eefff65c..7b732e1b1 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lightblue_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lightblue_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lime_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lime_side.png
index 3abbd0e1e..9b670b766 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lime_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lime_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lime_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lime_top.png
index b10070646..51c369abc 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lime_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_lime_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_magenta_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_magenta_side.png
index b5562aab8..5cf108c13 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_magenta_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_magenta_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_magenta_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_magenta_top.png
index a971c1939..f69ad5fd5 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_magenta_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_magenta_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_orange_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_orange_side.png
index cd9c675d8..781ec48c5 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_orange_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_orange_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_orange_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_orange_top.png
index c8862bd7b..5afc5f5de 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_orange_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_orange_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_pink_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_pink_side.png
index f00603775..b11527525 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_pink_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_pink_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_pink_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_pink_top.png
index 6f44a8689..e1e49a239 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_pink_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_pink_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_purple_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_purple_side.png
index e866b47b7..a7915dde6 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_purple_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_purple_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_purple_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_purple_top.png
index c7e79c95f..a2156385d 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_purple_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_purple_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_red_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_red_side.png
index 6be0b6532..d2e5ec1b9 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_red_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_red_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_red_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_red_top.png
index cdbcf9953..8b8620031 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_red_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_red_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_silver_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_silver_side.png
index 4a760f40c..b69967bb2 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_silver_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_silver_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_silver_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_silver_top.png
index 9c553e15f..644e222fe 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_silver_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_silver_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_white_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_white_side.png
index 3fdfffed2..8c78938be 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_white_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_white_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_white_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_white_top.png
index 7fa791902..0d115b72e 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_white_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_white_top.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_yellow_side.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_yellow_side.png
index 75c31f723..08e358696 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_yellow_side.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_yellow_side.png differ
diff --git a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_yellow_top.png b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_yellow_top.png
index 413198acd..91810225d 100644
Binary files a/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_yellow_top.png and b/src/main/resources/assets/minecraft/textures/block/trapdoor_planks_oak_yellow_top.png differ
diff --git a/src/main/resources/font/font_00.png b/src/main/resources/font/font_00.png
index 1fe122a66..b51fd9627 100644
Binary files a/src/main/resources/font/font_00.png and b/src/main/resources/font/font_00.png differ
