diff --git a/src/common/resources/lang/en_US/tile.lang b/src/common/resources/lang/en_US/tile.lang
index 9de273c88..f3e3d4007 100644
--- a/src/common/resources/lang/en_US/tile.lang
+++ b/src/common/resources/lang/en_US/tile.lang
@@ -1,915 +1,917 @@
-tile.stone.name=Stone
-tile.stone.desc=A block of solid stone.
-tile.basalt.name=Basalt
-tile.basalt.desc=A block of solid basalt.
-tile.limestone.name=Limestone
-tile.limestone.desc=A block of solid limestone.
-tile.granite.name=Granite
-tile.granite.desc=A block of solid granite.
-tile.marble.name=Marble
-tile.marble.desc=A block of solid marble.
-tile.slate.name=Slate
-tile.slate.desc=A block of solid slate.
-tile.permafrost.name=Permafrost
-tile.permafrost.desc=A block of frozen stone.
-
-tile.cobble.stone.name=Cobblestone
-tile.cobble.stone.desc=Stone, smashed apart and reconstituted.
-tile.cobble.stone.mossy.name=Mossy Cobblestone
-tile.cobble.stone.mossy.desc=Cobblestone with added greenery.
-tile.cobble.basalt.name=Cobbled Basalt
-tile.cobble.basalt.desc=Basalt, smashed apart and reconstituted.
-tile.cobble.limestone.name=Cobbled Limestone
-tile.cobble.limestone.desc=Limestone, smashed apart and reconstituted.
-tile.cobble.granite.name=Cobbled Granite
-tile.cobble.granite.desc=Granite, smashed apart and reconstituted.
-tile.cobble.permafrost.name=Cobbled Permafrost
-tile.cobble.permafrost.desc=Permafrost, smashed apart and reconstituted.
-
-tile.pillar.marble.name=Marble Pillar
-tile.pillar.marble.desc=A block of marble engraved into a pillar.
-tile.capstone.marble.name=Marble Capstone
-tile.capstone.marble.desc=A pillar capstone made of solid marble.
-
-tile.sandstone.name=Sandstone
-tile.sandstone.desc=Compacted sand.
-
-tile.stone.carved.name=Carved Stone
-tile.stone.carved.desc=Polished Stone with lines hewn through the middle.
-tile.granite.carved.name=Carved Granite
-tile.granite.carved.desc=Polished Granite with lines hewn through the middle.
-tile.limestone.carved.name=Carved Limestone
-tile.limestone.carved.desc=Polished Limestone with lines hewn through the middle.
-tile.basalt.carved.name=Carved Basalt
-tile.basalt.carved.desc=Polished Basalt with lines hewn through the middle.
-
-tile.planks.oak.name=Wooden Planks
-tile.planks.oak.desc=Processed tree insides.
-tile.planks.oak.painted.name=Mystery Planks
-tile.planks.oak.painted.desc=How did you get this?!
-tile.planks.oak.painted.black.name=Black Wooden Planks
-tile.planks.oak.painted.black.desc=Wooden planks, stained black.
-tile.planks.oak.painted.red.name=Red Wooden Planks
-tile.planks.oak.painted.red.desc=Wooden planks, stained red.
-tile.planks.oak.painted.green.name=Green Wooden Planks
-tile.planks.oak.painted.green.desc=Wooden planks, stained green.
-tile.planks.oak.painted.brown.name=Brown Wooden Planks
-tile.planks.oak.painted.brown.desc=Wooden planks, stained brown.
-tile.planks.oak.painted.blue.name=Blue Wooden Planks
-tile.planks.oak.painted.blue.desc=Wooden planks, stained blue.
-tile.planks.oak.painted.purple.name=Purple Wooden Planks
-tile.planks.oak.painted.purple.desc=Wooden planks, stained purple.
-tile.planks.oak.painted.cyan.name=Cyan Wooden Planks
-tile.planks.oak.painted.cyan.desc=Wooden planks, stained cyan.
-tile.planks.oak.painted.silver.name=Light Gray Wooden Planks
-tile.planks.oak.painted.silver.desc=Wooden planks, stained light gray.
-tile.planks.oak.painted.gray.name=Gray Wooden Planks
-tile.planks.oak.painted.gray.desc=Wooden planks, stained gray.
-tile.planks.oak.painted.pink.name=Pink Wooden Planks
-tile.planks.oak.painted.pink.desc=Wooden planks, stained pink.
-tile.planks.oak.painted.lime.name=Lime Wooden Planks
-tile.planks.oak.painted.lime.desc=Wooden planks, stained lime.
-tile.planks.oak.painted.yellow.name=Yellow Wooden Planks
-tile.planks.oak.painted.yellow.desc=Wooden planks, stained yellow.
-tile.planks.oak.painted.lightblue.name=Light Blue Wooden Planks
-tile.planks.oak.painted.lightblue.desc=Wooden planks, stained light blue.
-tile.planks.oak.painted.magenta.name=Magenta Wooden Planks
-tile.planks.oak.painted.magenta.desc=Wooden planks, stained magenta.
-tile.planks.oak.painted.orange.name=Orange Wooden Planks
-tile.planks.oak.painted.orange.desc=Wooden planks, stained orange.
-tile.planks.oak.painted.white.name=White Wooden Planks
-tile.planks.oak.painted.white.desc=Wooden planks, stained white.
-
-tile.torch.coal.name=Torch
-tile.torch.coal.desc=Helps light the way.
-
-tile.ladder.oak.name=Oak Ladder
-tile.ladder.oak.desc=For very rapid vertical movement.
-
-tile.fence.planks.oak.name=Oak Fence
-tile.fence.planks.oak.desc=Too tall to jump over.
-
-tile.fence.planks.oak.painted.name=Mystery Wooden Fence
-tile.fence.planks.oak.painted.desc=How did you get this?!
-tile.fence.planks.oak.painted.black.name=Black Wooden Fence
-tile.fence.planks.oak.painted.black.desc=A wooden fence, stained black.
-tile.fence.planks.oak.painted.red.name=Red Wooden Fence
-tile.fence.planks.oak.painted.red.desc=A wooden fence, stained red.
-tile.fence.planks.oak.painted.green.name=Green Wooden Fence
-tile.fence.planks.oak.painted.green.desc=A wooden fence, stained green.
-tile.fence.planks.oak.painted.brown.name=Brown Wooden Fence
-tile.fence.planks.oak.painted.brown.desc=A wooden fence, stained brown.
-tile.fence.planks.oak.painted.blue.name=Blue Wooden Fence
-tile.fence.planks.oak.painted.blue.desc=A wooden fence, stained blue.
-tile.fence.planks.oak.painted.purple.name=Purple Wooden Fence
-tile.fence.planks.oak.painted.purple.desc=A wooden fence, stained purple.
-tile.fence.planks.oak.painted.cyan.name=Cyan Wooden Fence
-tile.fence.planks.oak.painted.cyan.desc=A wooden fence, stained cyan.
-tile.fence.planks.oak.painted.silver.name=Light Gray Wooden Fence
-tile.fence.planks.oak.painted.silver.desc=A wooden fence, stained light gray.
-tile.fence.planks.oak.painted.gray.name=Gray Wooden Fence
-tile.fence.planks.oak.painted.gray.desc=A wooden fence, stained gray.
-tile.fence.planks.oak.painted.pink.name=Pink Wooden Fence
-tile.fence.planks.oak.painted.pink.desc=A wooden fence, stained pink.
-tile.fence.planks.oak.painted.lime.name=Lime Wooden Fence
-tile.fence.planks.oak.painted.lime.desc=A wooden fence, stained lime.
-tile.fence.planks.oak.painted.yellow.name=Yellow Wooden Fence
-tile.fence.planks.oak.painted.yellow.desc=A wooden fence, stained yellow.
-tile.fence.planks.oak.painted.lightblue.name=Light Blue Wooden Fence
-tile.fence.planks.oak.painted.lightblue.desc=A wooden fence, stained light blue.
-tile.fence.planks.oak.painted.magenta.name=Magenta Wooden Fence
-tile.fence.planks.oak.painted.magenta.desc=A wooden fence, stained magenta.
-tile.fence.planks.oak.painted.orange.name=Orange Wooden Fence
-tile.fence.planks.oak.painted.orange.desc=A wooden fence, stained orange.
-tile.fence.planks.oak.painted.white.name=White Wooden Fence
-tile.fence.planks.oak.painted.white.desc=A wooden fence, stained white.
-
-tile.fencegate.planks.oak.name=Wooden Fence Gate
-tile.fencegate.planks.oak.desc=Like a door but for fences.
-
-tile.fencegate.planks.oak.painted.name=Mystery Wooden Fence Gate
-tile.fencegate.planks.oak.painted.desc=How did you get this?!
-tile.fencegate.planks.oak.painted.black.name=Black Wooden Fence Gate
-tile.fencegate.planks.oak.painted.black.desc=A wooden fence gate, stained black.
-tile.fencegate.planks.oak.painted.red.name=Red Wooden Fence Gate
-tile.fencegate.planks.oak.painted.red.desc=A wooden fence gate, stained red.
-tile.fencegate.planks.oak.painted.green.name=Green Wooden Fence Gate
-tile.fencegate.planks.oak.painted.green.desc=A wooden fence gate, stained green.
-tile.fencegate.planks.oak.painted.brown.name=Brown Wooden Fence Gate
-tile.fencegate.planks.oak.painted.brown.desc=A wooden fence gate, stained brown.
-tile.fencegate.planks.oak.painted.blue.name=Blue Wooden Fence Gate
-tile.fencegate.planks.oak.painted.blue.desc=A wooden fence gate, stained blue.
-tile.fencegate.planks.oak.painted.purple.name=Purple Wooden Fence Gate
-tile.fencegate.planks.oak.painted.purple.desc=A wooden fence gate, stained purple.
-tile.fencegate.planks.oak.painted.cyan.name=Cyan Wooden Fence Gate
-tile.fencegate.planks.oak.painted.cyan.desc=A wooden fence gate, stained cyan.
-tile.fencegate.planks.oak.painted.silver.name=Light Gray Wooden Fence Gate
-tile.fencegate.planks.oak.painted.silver.desc=A wooden fence gate, stained light gray.
-tile.fencegate.planks.oak.painted.gray.name=Gray Wooden Fence Gate
-tile.fencegate.planks.oak.painted.gray.desc=A wooden fence gate, stained gray.
-tile.fencegate.planks.oak.painted.pink.name=Pink Wooden Fence Gate
-tile.fencegate.planks.oak.painted.pink.desc=A wooden fence gate, stained pink.
-tile.fencegate.planks.oak.painted.lime.name=Lime Wooden Fence Gate
-tile.fencegate.planks.oak.painted.lime.desc=A wooden fence gate, stained lime.
-tile.fencegate.planks.oak.painted.yellow.name=Yellow Wooden Fence Gate
-tile.fencegate.planks.oak.painted.yellow.desc=A wooden fence gate, stained yellow.
-tile.fencegate.planks.oak.painted.lightblue.name=Light Blue Wooden Fence Gate
-tile.fencegate.planks.oak.painted.lightblue.desc=A wooden fence gate, stained light blue.
-tile.fencegate.planks.oak.painted.magenta.name=Magenta Wooden Fence Gate
-tile.fencegate.planks.oak.painted.magenta.desc=A wooden fence gate, stained magenta.
-tile.fencegate.planks.oak.painted.orange.name=Orange Wooden Fence Gate
-tile.fencegate.planks.oak.painted.orange.desc=A wooden fence gate, stained orange.
-tile.fencegate.planks.oak.painted.white.name=White Wooden Fence Gate
-tile.fencegate.planks.oak.painted.white.desc=A wooden fence gate, stained white.
-
-tile.bookshelf.planks.oak.name=Bookshelf
-tile.bookshelf.planks.oak.desc=A repository of knowledge.
-
-tile.wool.name=Wool
-tile.wool.desc=How did you get this?!
-tile.wool.black.name=Black Wool
-tile.wool.black.desc=Sheep's wool, dyed black.
-tile.wool.red.name=Red Wool
-tile.wool.red.desc=Sheep's wool, dyed red.
-tile.wool.green.name=Green Wool
-tile.wool.green.desc=Sheep's wool, dyed green.
-tile.wool.brown.name=Brown Wool
-tile.wool.brown.desc=Sheep's wool, dyed brown.
-tile.wool.blue.name=Blue Wool
-tile.wool.blue.desc=Sheep's wool, dyed blue.
-tile.wool.purple.name=Purple Wool
-tile.wool.purple.desc=Sheep's wool, dyed purple.
-tile.wool.cyan.name=Cyan Wool
-tile.wool.cyan.desc=Sheep's wool, dyed cyan.
-tile.wool.silver.name=Light Gray Wool
-tile.wool.silver.desc=Sheep's wool, dyed light gray.
-tile.wool.gray.name=Gray Wool
-tile.wool.gray.desc=Sheep's wool, dyed gray.
-tile.wool.pink.name=Pink Wool
-tile.wool.pink.desc=Sheep's wool, dyed pink.
-tile.wool.lime.name=Lime Wool
-tile.wool.lime.desc=Sheep's wool, dyed lime.
-tile.wool.yellow.name=Yellow Wool
-tile.wool.yellow.desc=Sheep's wool, dyed yellow.
-tile.wool.lightblue.name=Light Blue Wool
-tile.wool.lightblue.desc=Sheep's wool, dyed light blue.
-tile.wool.magenta.name=Magenta Wool
-tile.wool.magenta.desc=Sheep's wool, dyed magenta.
-tile.wool.orange.name=Orange Wool
-tile.wool.orange.desc=Sheep's wool, dyed orange.
-tile.wool.white.name=White Wool
-tile.wool.white.desc=Sheep's wool, dyed white.
-
-tile.brick.clay.name=Clay Bricks
-tile.brick.clay.desc=Stacked bricks of baked clay.
-tile.brick.stone.polished.name=Polished Stone Bricks
-tile.brick.stone.polished.desc=Stacked bricks of polished stone.
-tile.brick.stone.polished.mossy.name=Mossy Polished Stone Bricks
-tile.brick.stone.polished.mossy.desc=Stacked bricks of polished stone with added greenery.
-tile.brick.sandstone.name=Sandstone Bricks
-tile.brick.sandstone.desc=Stacked bricks of sandstone.
-tile.brick.gold.name=Gold Bricks
-tile.brick.gold.desc=Stacked bricks of gold.
-tile.brick.lapis.name=Lapis Lazuli Bricks
-tile.brick.lapis.desc=Stacked bricks of lapis lazuli.
-tile.brick.basalt.name=Basalt Bricks
-tile.brick.basalt.desc=Stacked bricks of basalt.
-tile.brick.limestone.name=Limestone Bricks
-tile.brick.limestone.desc=Stacked bricks of limestone.
-tile.brick.granite.name=Granite Bricks
-tile.brick.granite.desc=Stacked bricks of granite.
-tile.brick.marble.name=Marble Bricks
-tile.brick.marble.desc=Stacked bricks of marble.
-tile.brick.slate.name=Slate Bricks
-tile.brick.slate.desc=Stacked bricks of slate.
-tile.brick.stone.name=Stone Bricks
-tile.brick.stone.desc=Stacked bricks of stone.
-tile.brick.permafrost.name=Permafrost Bricks
-tile.brick.permafrost.desc=Stacked bricks of permafrost.
-tile.brick.iron.name=Iron Bricks
-tile.brick.iron.desc=Stacked bricks of iron.
-
-tile.slab.planks.oak.name=Wooden Slab
-tile.slab.planks.oak.desc=A slab of wooden planks.
-tile.slab.cobble.stone.name=Cobblestone Slab
-tile.slab.cobble.stone.desc=A slab of cobblestone.
-tile.slab.sandstone.name=Sandstone Slab
-tile.slab.sandstone.desc=A slab of sandstone.
-tile.slab.brick.stone.polished.name=Polished Stone Brick Slab
-tile.slab.brick.stone.polished.desc=A slab of polished stone bricks.
-tile.slab.stone.carved.name=Polished Stone Slab
-tile.slab.stone.carved.desc=A slab of polished stone.
-tile.slab.brick.marble.name=Marble Brick Slab
-tile.slab.brick.marble.desc=A slab of marble bricks.
-tile.slab.brick.clay.name=Clay Brick Slab
-tile.slab.brick.clay.desc=A slab of clay bricks.
-tile.slab.capstone.marble.name=Marble Capstone Slab
-tile.slab.capstone.marble.desc=Marble sculpted into a capstone.
-tile.slab.cobble.basalt.name=Cobbled Basalt Slab
-tile.slab.cobble.basalt.desc=A slab of cobbled basalt.
-tile.slab.cobble.limestone.name=Cobbled Limestone Slab
-tile.slab.cobble.limestone.desc=A slab of cobbled limestone.
-tile.slab.cobble.granite.name=Cobbled Granite Slab
-tile.slab.cobble.granite.desc=A slab of cobbled granite.
-tile.slab.brick.basalt.name=Basalt Brick Slab
-tile.slab.brick.basalt.desc=A slab of basalt bricks.
-tile.slab.brick.limestone.name=Limestone Brick Slab
-tile.slab.brick.limestone.desc=A slab of limestone bricks.
-tile.slab.brick.granite.name=Granite Brick Slab
-tile.slab.brick.granite.desc=A slab of granite bricks.
-tile.slab.brick.slate.name=Slate Brick Slab
-tile.slab.brick.slate.desc=A slab of slate bricks.
-tile.slab.brick.stone.name=Stone Brick Slab
-tile.slab.brick.stone.desc=A slab of stone bricks.
-tile.slab.granite.carved.name=Polished Granite Slab
-tile.slab.granite.carved.desc=A slab of polished granite.
-tile.slab.limestone.carved.name=Polished Limestone Slab
-tile.slab.limestone.carved.desc=A slab of polished limestone.
-tile.slab.basalt.carved.name=Polished Basalt Slab
-tile.slab.basalt.carved.desc=A slab of polished basalt.
-
-tile.slab.planks.oak.painted.name=Mystery Wooden Slab
-tile.slab.planks.oak.painted.desc=How did you get this?!
-tile.slab.planks.oak.painted.black.name=Black Wooden Slab
-tile.slab.planks.oak.painted.black.desc=A slab of wooden planks, stained black.
-tile.slab.planks.oak.painted.red.name=Red Wooden Slab
-tile.slab.planks.oak.painted.red.desc=A slab of wooden planks, stained red.
-tile.slab.planks.oak.painted.green.name=Green Wooden Slab
-tile.slab.planks.oak.painted.green.desc=A slab of wooden planks, stained green.
-tile.slab.planks.oak.painted.brown.name=Brown Wooden Slab
-tile.slab.planks.oak.painted.brown.desc=A slab of wooden planks, stained brown.
-tile.slab.planks.oak.painted.blue.name=Blue Wooden Slab
-tile.slab.planks.oak.painted.blue.desc=A slab of wooden planks, stained blue.
-tile.slab.planks.oak.painted.purple.name=Purple Wooden Slab
-tile.slab.planks.oak.painted.purple.desc=A slab of wooden planks, stained purple.
-tile.slab.planks.oak.painted.cyan.name=Cyan Wooden Slab
-tile.slab.planks.oak.painted.cyan.desc=A slab of wooden planks, stained cyan.
-tile.slab.planks.oak.painted.silver.name=Light Gray Wooden Slab
-tile.slab.planks.oak.painted.silver.desc=A slab of wooden planks, stained light gray.
-tile.slab.planks.oak.painted.gray.name=Gray Wooden Slab
-tile.slab.planks.oak.painted.gray.desc=A slab of wooden planks, stained gray.
-tile.slab.planks.oak.painted.pink.name=Pink Wooden Slab
-tile.slab.planks.oak.painted.pink.desc=A slab of wooden planks, stained pink.
-tile.slab.planks.oak.painted.lime.name=Lime Wooden Slab
-tile.slab.planks.oak.painted.lime.desc=A slab of wooden planks, stained lime.
-tile.slab.planks.oak.painted.yellow.name=Yellow Wooden Slab
-tile.slab.planks.oak.painted.yellow.desc=A slab of wooden planks, stained yellow.
-tile.slab.planks.oak.painted.lightblue.name=Light Blue Wooden Slab
-tile.slab.planks.oak.painted.lightblue.desc=A slab of wooden planks, stained light blue.
-tile.slab.planks.oak.painted.magenta.name=Magenta Wooden Slab
-tile.slab.planks.oak.painted.magenta.desc=A slab of wooden planks, stained magenta.
-tile.slab.planks.oak.painted.orange.name=Orange Wooden Slab
-tile.slab.planks.oak.painted.orange.desc=A slab of wooden planks, stained orange.
-tile.slab.planks.oak.painted.white.name=White Wooden Slab
-tile.slab.planks.oak.painted.white.desc=A slab of wooden planks, stained white.
-
-tile.stairs.planks.oak.name=Wooden Stairs
-tile.stairs.planks.oak.desc=Wooden block used for rapid vertical movement.
-tile.stairs.cobble.stone.name=Cobblestone Stairs
-tile.stairs.cobble.stone.desc=Cobblestone block used for rapid vertical movement.
-tile.stairs.brick.stone.polished.name=Polished Stone Brick Stairs
-tile.stairs.brick.stone.polished.desc=Polished stone brick block used for rapid vertical movement.
-tile.stairs.brick.marble.name=Marble Brick Stairs
-tile.stairs.brick.marble.desc=Marble brick block used for rapid vertical movement.
-tile.stairs.cobble.basalt.name=Cobbled Basalt Stairs
-tile.stairs.cobble.basalt.desc=Cobbled basalt block used for rapid vertical movement.
-tile.stairs.cobble.limestone.name=Cobbled Limestone Stairs
-tile.stairs.cobble.limestone.desc=Cobbled limestone block used for rapid vertical movement.
-tile.stairs.cobble.granite.name=Cobbled Granite Stairs
-tile.stairs.cobble.granite.desc=Cobbled granite block used for rapid vertical movement.
-tile.stairs.brick.basalt.name=Basalt Brick Stairs
-tile.stairs.brick.basalt.desc=Basalt brick block used for rapid vertical movement.
-tile.stairs.brick.limestone.name=Limestone Brick Stairs
-tile.stairs.brick.limestone.desc=Limestone brick block used for rapid vertical movement.
-tile.stairs.brick.granite.name=Granite Brick Stairs
-tile.stairs.brick.granite.desc=Granite brick block used for rapid vertical movement.
-tile.stairs.brick.clay.name=Clay Brick Stairs
-tile.stairs.brick.clay.desc=Clay brick block used for rapid vertical movement.
-tile.stairs.brick.slate.name=Slate Brick Stairs
-tile.stairs.brick.slate.desc=Slate brick block used for rapid vertical movement.
-tile.stairs.brick.stone.name=Stone Brick Stairs
-tile.stairs.brick.stone.desc=Stone brick block used for rapid vertical movement.
-
-tile.stairs.planks.oak.painted.name=Mystery Wooden Stairs
-tile.stairs.planks.oak.painted.desc=How did you get this?!
-tile.stairs.planks.oak.painted.black.name=Black Wooden Stairs
-tile.stairs.planks.oak.painted.black.desc=Wooden steps, stained black.
-tile.stairs.planks.oak.painted.red.name=Red Wooden Stairs
-tile.stairs.planks.oak.painted.red.desc=Wooden steps, stained red.
-tile.stairs.planks.oak.painted.green.name=Green Wooden Stairs
-tile.stairs.planks.oak.painted.green.desc=Wooden steps, stained green.
-tile.stairs.planks.oak.painted.brown.name=Brown Wooden Stairs
-tile.stairs.planks.oak.painted.brown.desc=Wooden steps, stained brown.
-tile.stairs.planks.oak.painted.blue.name=Blue Wooden Stairs
-tile.stairs.planks.oak.painted.blue.desc=Wooden steps, stained blue.
-tile.stairs.planks.oak.painted.purple.name=Purple Wooden Stairs
-tile.stairs.planks.oak.painted.purple.desc=Wooden steps, stained purple.
-tile.stairs.planks.oak.painted.cyan.name=Cyan Wooden Stairs
-tile.stairs.planks.oak.painted.cyan.desc=Wooden steps, stained cyan.
-tile.stairs.planks.oak.painted.silver.name=Light Gray Wooden Stairs
-tile.stairs.planks.oak.painted.silver.desc=Wooden steps, stained light gray.
-tile.stairs.planks.oak.painted.gray.name=Gray Wooden Stairs
-tile.stairs.planks.oak.painted.gray.desc=Wooden steps, stained gray.
-tile.stairs.planks.oak.painted.pink.name=Pink Wooden Stairs
-tile.stairs.planks.oak.painted.pink.desc=Wooden steps, stained pink.
-tile.stairs.planks.oak.painted.lime.name=Lime Wooden Stairs
-tile.stairs.planks.oak.painted.lime.desc=Wooden steps, stained lime.
-tile.stairs.planks.oak.painted.yellow.name=Yellow Wooden Stairs
-tile.stairs.planks.oak.painted.yellow.desc=Wooden steps, stained yellow.
-tile.stairs.planks.oak.painted.lightblue.name=Light Blue Wooden Stairs
-tile.stairs.planks.oak.painted.lightblue.desc=Wooden steps, stained light blue.
-tile.stairs.planks.oak.painted.magenta.name=Magenta Wooden Stairs
-tile.stairs.planks.oak.painted.magenta.desc=Wooden steps, stained magenta.
-tile.stairs.planks.oak.painted.orange.name=Orange Wooden Stairs
-tile.stairs.planks.oak.painted.orange.desc=Wooden steps, stained orange.
-tile.stairs.planks.oak.painted.white.name=White Wooden Stairs
-tile.stairs.planks.oak.painted.white.desc=Wooden steps, stained white.
-
-tile.obsidian.name=Obsidian
-tile.obsidian.desc=Rapidly cooled volcanic rock.
-
-tile.glass.name=Glass
-tile.glass.desc=Sand heated until it becomes translucent.
-tile.glass.tinted.name=Tinted Glass
-tile.glass.tinted.desc=Darkened glass that blocks light.
-
-tile.grass.name=Grass
-tile.grass.desc=Crisp, crunchy grass.
-tile.grass.retro.name=Retro Grass
-tile.grass.retro.desc=Crisp, crunchy grass. Smells old.
-tile.grass.scorched.name=Scorched Grass
-tile.grass.scorched.desc=Grass that has baked in the sun.
-
-tile.path.dirt.name=Dirt Path
-tile.path.dirt.desc=Dirt worn down by frequent travelling.
-
-tile.dirt.name=Dirt
-tile.dirt.desc=Crumbly brown dirt.
-tile.dirt.scorched.name=Scorched Dirt
-tile.dirt.scorched.desc=Dirt that has baked in the sun.
-tile.dirt.scorched.rich.name=Rich Scorched Dirt
-tile.dirt.scorched.rich.desc=Dirt that has baked in the sun, searing in minerals.
-
-tile.mud.name=Mud
-tile.mud.desc=Mud sodden to its core.
-tile.mud.baked.name=Baked Mud
-tile.mud.baked.desc=Mud that's been dried out and cracked.
-
-tile.sponge.dry.name=Sponge
-tile.sponge.dry.desc=A dry sponge, good for soaking up water.
-tile.sponge.wet.name=Wet Sponge
-tile.sponge.wet.desc=A sponge full of water.
-
-tile.moss.stone.name=Mossy Stone
-tile.moss.stone.desc=Moss covering a block of stone.
-tile.moss.basalt.name=Mossy Basalt
-tile.moss.basalt.desc=Moss covering a block of basalt.
-tile.moss.limestone.name=Mossy Limestone
-tile.moss.limestone.desc=Moss covering a block of limestone.
-tile.moss.granite.name=Mossy Granite
-tile.moss.granite.desc=Moss covering a block of granite.
-
-tile.sand.name=Sand
-tile.sand.desc=Gets everywhere.
-tile.gravel.name=Gravel
-tile.gravel.desc=A loose collection of pebbles.
-
-tile.bedrock.name=Bedrock
-tile.bedrock.desc=The toughest substance known to man.
-
-tile.fluid.water.flowing.name=Flowing Water
-tile.fluid.water.flowing.desc=Water that flows when placed.
-tile.fluid.water.still.name=Still Water
-tile.fluid.water.still.desc=Water that does not flow when placed.
-tile.fluid.lava.flowing.name=Flowing Lava
-tile.fluid.lava.flowing.desc=Lava that flows when placed.
-tile.fluid.lava.still.name=Still Lava
-tile.fluid.lava.still.desc=Lava that does not flow when placed.
-
-tile.log.oak.name=Oak Log
-tile.log.oak.desc=A log from an oak tree.
-tile.log.pine.name=Pine Log
-tile.log.pine.desc=A log from a pine tree.
-tile.log.birch.name=Birch Log
-tile.log.birch.desc=A log from a birch tree.
-tile.log.cherry.name=Cherry Log
-tile.log.cherry.desc=A log from a cherry tree.
-tile.log.eucalyptus.name=Eucalyptus Log
-tile.log.eucalyptus.desc=A log from a eucalyptus tree.
-tile.log.oak.mossy.name=Mossy Oak Log
-tile.log.oak.mossy.desc=A log from a mossy oak tree.
-
-tile.leaves.oak.name=Oak Leaves
-tile.leaves.oak.desc=Leaves from an oak tree.
-tile.leaves.pine.name=Pine Leaves
-tile.leaves.pine.desc=Leaves from a pine tree.
-tile.leaves.birch.name=Birch Leaves
-tile.leaves.birch.desc=Leaves from a birch tree.
-tile.leaves.cherry.name=Cherry Leaves
-tile.leaves.cherry.desc=Leaves from a cherry tree.
-tile.leaves.eucalyptus.name=Eucalyptus Leaves
-tile.leaves.eucalyptus.desc=Leaves from a eucalyptus tree.
-tile.leaves.oak.retro.name=Retro Leaves
-tile.leaves.oak.retro.desc=Leaves from long ago.
-tile.leaves.shrub.name=Shrub Leaves
-tile.leaves.shrub.desc=Leaves from a shrub.
-tile.leaves.cherry.flowering.name=Flowering Cherry Leaves
-tile.leaves.cherry.flowering.desc=Leaves from a cherry tree that are budding with fruit.
-tile.leaves.cacao.name=Cacao Leaves
-tile.leaves.cacao.desc=Leaves from a cacao tree.
-
-tile.sapling.oak.name=Oak Sapling
-tile.sapling.oak.desc=Plant to grow an oak tree.
-tile.sapling.pine.name=Pine Sapling
-tile.sapling.pine.desc=Plant to grow a pine tree.
-tile.sapling.birch.name=Birch Sapling
-tile.sapling.birch.desc=Plant to grow a birch tree.
-tile.sapling.cherry.name=Cherry Sapling
-tile.sapling.cherry.desc=Plant to grow a cherry tree.
-tile.sapling.eucalyptus.name=Eucalyptus Sapling
-tile.sapling.eucalyptus.desc=Plant to grow a eucalyptus tree.
-tile.sapling.oak.retro.name=Retro Oak Sapling
-tile.sapling.oak.retro.desc=Plant to grow a tree from long ago.
-tile.sapling.shrub.name=Shrub Sapling
-tile.sapling.shrub.desc=Plant to grow a shrub.
-tile.sapling.cacao.name=Cacao Sapling
-tile.sapling.cacao.desc=Plant to grow a cacao tree.
-
-tile.tallgrass.name=Tall Grass
-tile.tallgrass.desc=Lush, growing grass.
-tile.tallgrass.fern.name=Fern
-tile.tallgrass.fern.desc=A fern plant.
-tile.deadbush.name=Dead Bush
-tile.deadbush.desc=A dried and withered plant.
-tile.spinifex.name=Spinifex
-tile.spinifex.desc=A spindly, thin grass from dry regions.
-tile.algae.name=Algae
-tile.algae.desc=Gooey vegetation that floats on the water's surface.
-
-tile.flower.yellow.name=Dandelion
-tile.flower.yellow.desc=A beautiful yellow flower.
-tile.flower.red.name=Rose
-tile.flower.red.desc=A beautiful red flower.
-
-tile.mushroom.red.name=Red Mushroom
-tile.mushroom.red.desc=A tasty red mushroom. Good for stew.
-tile.mushroom.brown.name=Brown Mushroom
-tile.mushroom.brown.desc=A tasty brown mushroom. Good for stew.
-
-tile.ore.coal.stone.name=Stone Coal Ore
-tile.ore.coal.stone.desc=A chunk of coal embedded in stone.
-tile.ore.coal.basalt.name=Basalt Coal Ore
-tile.ore.coal.basalt.desc=A chunk of coal embedded in basalt.
-tile.ore.coal.limestone.name=Limestone Coal Ore
-tile.ore.coal.limestone.desc=A chunk of coal embedded in limestone.
-tile.ore.coal.granite.name=Granite Coal Ore
-tile.ore.coal.granite.desc=A chunk of coal embedded in granite.
-
-tile.ore.iron.stone.name=Stone Iron Ore
-tile.ore.iron.stone.desc=Iron nuggets embedded in stone.
-tile.ore.iron.basalt.name=Basalt Iron Ore
-tile.ore.iron.basalt.desc=Iron nuggets embedded in basalt.
-tile.ore.iron.limestone.name=Limestone Iron Ore
-tile.ore.iron.limestone.desc=Iron nuggets embedded in limestone.
-tile.ore.iron.granite.name=Granite Iron Ore
-tile.ore.iron.granite.desc=Iron nuggets embedded in granite.
-
-tile.ore.gold.stone.name=Stone Gold Ore
-tile.ore.gold.stone.desc=Gold nuggets embedded in stone.
-tile.ore.gold.basalt.name=Basalt Gold Ore
-tile.ore.gold.basalt.desc=Gold nuggets embedded in basalt.
-tile.ore.gold.limestone.name=Limestone Gold Ore
-tile.ore.gold.limestone.desc=Gold nuggets embedded in limestone.
-tile.ore.gold.granite.name=Granite Gold Ore
-tile.ore.gold.granite.desc=Gold nuggets embedded in granite.
-
-tile.ore.lapis.stone.name=Stone Lapis Lazuli Ore
-tile.ore.lapis.stone.desc=Chunks of lapis lazuli embedded in stone.
-tile.ore.lapis.basalt.name=Basalt Lapis Lazuli Ore
-tile.ore.lapis.basalt.desc=Chunks of lapis lazuli embedded in basalt.
-tile.ore.lapis.limestone.name=Limestone Lapis Lazuli Ore
-tile.ore.lapis.limestone.desc=Chunks of lapis lazuli embedded in limestone.
-tile.ore.lapis.granite.name=Granite Lapis Lazuli Ore
-tile.ore.lapis.granite.desc=Chunks of lapis lazuli embedded in granite.
-
-tile.ore.redstone.stone.name=Stone Redstone Ore
-tile.ore.redstone.stone.desc=Red dust embedded in stone.
-tile.ore.redstone.basalt.name=Basalt Redstone Ore
-tile.ore.redstone.basalt.desc=Red dust embedded in basalt.
-tile.ore.redstone.limestone.name=Limestone Redstone Ore
-tile.ore.redstone.limestone.desc=Red dust embedded in limestone.
-tile.ore.redstone.granite.name=Granite Redstone Ore
-tile.ore.redstone.granite.desc=Red dust embedded in granite.
-tile.ore.redstone.glowing.stone.name=Glowing Stone Redstone Ore
-tile.ore.redstone.glowing.stone.desc=Red dust embedded in stone. Emits a faint light.
-tile.ore.redstone.glowing.basalt.name=Glowing Basalt Redstone Ore
-tile.ore.redstone.glowing.basalt.desc=Red dust embedded in basalt. Emits a faint light.
-tile.ore.redstone.glowing.limestone.name=Glowing Limestone Redstone Ore
-tile.ore.redstone.glowing.limestone.desc=Red dust embedded in limestone. Emits a faint light.
-tile.ore.redstone.glowing.granite.name=Glowing Granite Redstone Ore
-tile.ore.redstone.glowing.granite.desc=Red dust embedded in granite. Emits a faint light.
-
-tile.ore.diamond.stone.name=Stone Diamond Ore
-tile.ore.diamond.stone.desc=A chunk of diamond embedded in stone.
-tile.ore.diamond.basalt.name=Basalt Diamond Ore
-tile.ore.diamond.basalt.desc=A chunk of diamond embedded in basalt.
-tile.ore.diamond.limestone.name=Limestone Diamond Ore
-tile.ore.diamond.limestone.desc=A chunk of diamond embedded in limestone.
-tile.ore.diamond.granite.name=Granite Diamond Ore
-tile.ore.diamond.granite.desc=A chunk of diamond embedded in granite.
-
-tile.ore.nethercoal.netherrack.name=Nether Coal Ore
-tile.ore.nethercoal.netherrack.desc=A lump of Nether Coal embedded in netherrack.
-
-tile.block.coal.name=Block of Coal
-tile.block.coal.desc=A solid block of coal.
-tile.block.iron.name=Block of Iron
-tile.block.iron.desc=A solid block of iron. Heavy!
-tile.block.gold.name=Block of Gold
-tile.block.gold.desc=A solid block of gold, for flaunting your bling.
-tile.block.lapis.name=Block of Lapis Lazuli
-tile.block.lapis.desc=A solid block of lapis lazuli.
-tile.block.redstone.name=Block of Redstone
-tile.block.redstone.desc=A solid block of redstone.
-tile.block.diamond.name=Block of Diamond
-tile.block.diamond.desc=A solid block of diamond. Well done you.
-tile.block.nethercoal.name=Block of Nether Coal
-tile.block.nethercoal.desc=A solid block of Nether Coal.
-tile.block.steel.name=Block of Steel
-tile.block.steel.desc=A solid block of steel.
-tile.block.quartz.name=Block of Quartz
-tile.block.quartz.desc=A solid block of quartz.
-tile.block.olivine.name=Block of Olivine
-tile.block.olivine.desc=A solid block of olivine.
-tile.block.charcoal.name=Block of Charcoal
-tile.block.charcoal.desc=A solid block of charcoal.
-
-tile.wire.redstone.name=Redstone Wire
-tile.wire.redstone.desc=A strand of redstone dust laid on the ground.
-
-tile.torch.redstone.idle.name=Redstone Torch
-tile.torch.redstone.idle.desc=Emits a constant redstone signal.
-tile.torch.redstone.active.name=Redstone Torch
-tile.torch.redstone.active.desc=Emits a constant redstone signal.
-
-tile.button.stone.name=Stone Button
-tile.button.stone.desc=Emits a brief redstone signal when pressed.
-
-tile.lever.cobble.stone.name=Cobblestone Lever
-tile.lever.cobble.stone.desc=Allows turning a redstone signal on or off.
-
-tile.pressureplate.stone.name=Stone Pressure Plate
-tile.pressureplate.stone.desc=Emits a redstone signal when living creatures step on it.
-tile.pressureplate.planks.oak.name=Wooden Pressure Plate
-tile.pressureplate.planks.oak.desc=Emits a redstone signal when anything steps on it.
-tile.pressureplate.cobble.stone.name=Cobblestone Pressure Plate
-tile.pressureplate.cobble.stone.desc=Emits a redstone signal when players step on it.
-
-tile.motionsensor.idle.name=Motion Sensor
-tile.motionsensor.idle.desc=Emits a redstone signal when something moves past it.
-tile.motionsensor.active.name=Active Motion Sensor
-tile.motionsensor.active.desc=Emits a redstone signal when something moves past it.
-
-tile.repeater.idle.name=Redstone Repeater
-tile.repeater.idle.desc=Repeats redstone signals over a distance.
-tile.repeater.active.name=Redstone Repeater
-tile.repeater.active.desc=Repeats redstone signals over a distance.
-
-tile.piston.base.name=Piston
-tile.piston.base.desc=Pushes blocks but does not pull them.
-tile.piston.base.sticky.name=Sticky Piston
-tile.piston.base.sticky.desc=Pushes and pulls blocks.
-tile.piston.head.name=Piston Head
-tile.piston.head.desc=The pushy part of the piston.
-tile.piston.moving.name=Piston Mover
-tile.piston.moving.desc=The invisible moving part of the piston.
-
-tile.noteblock.name=Note Block
-tile.noteblock.desc=Plays a musical note when powered.
-
-tile.rail.name=Rail
-tile.rail.desc=For rapid horizontal movement via minecart.
-tile.rail.powered.name=Powered Rail
-tile.rail.powered.desc=Makes minecarts go faster when powered.
-tile.rail.detector.name=Detector Rail
-tile.rail.detector.desc=Emits a redstone signal when a minecart crosses it.
-
-tile.spikes.name=Spike Trap
-tile.spikes.desc=Deactivates when powered. Technically a war crime.
-
-tile.dispenser.cobble.stone.name=Dispenser
-tile.dispenser.cobble.stone.desc=Fires items out of the hole in the front.
-
-tile.trapdoor.planks.oak.name=Oak Trapdoor
-tile.trapdoor.planks.oak.desc=Like a door, but flat.
-tile.trapdoor.iron.name=Iron Trapdoor
-tile.trapdoor.iron.desc=Like a door, but flat and made of iron.
-tile.trapdoor.glass.name=Glass Trapdoor
-tile.trapdoor.glass.desc=Useless at its job.
-
-tile.tnt.name=TNT
-tile.tnt.desc=Goes off with a bang.
-
-tile.door.planks.oak.bottom.name=Bottom Wooden Door
-tile.door.planks.oak.bottom.desc=/give Honeydew 64 46
-tile.door.planks.oak.top.name=Top Wooden Door
-tile.door.planks.oak.top.desc=Oh, wait, that's not TNT, that's half a door.
-tile.door.iron.bottom.name=Bottom Iron Door
-tile.door.iron.bottom.desc=Not much good on its own.
-tile.door.iron.top.name=Top Iron Door
-tile.door.iron.top.desc=Could use a friend.
-
-tile.mesh.name=Mesh Block
-tile.mesh.desc=Allows items to pass through but nothing else.
-
-tile.bed.name=Bed
-tile.bed.desc=Bed!
-tile.seat.name=Seat
-tile.seat.desc=Sit down and relax.
-
-tile.cobweb.name=Cobweb
-tile.cobweb.desc=Sticky silky strands woven by spiders.
-
-tile.fire.name=Fire
-tile.fire.desc=Ouch, fire hot!
-
-tile.mobspawner.name=Mob Spawner
-tile.mobspawner.desc=A cage filled with horror.
-tile.mobspawner.deactivated.name=Deactivated Mob Spawner
-tile.mobspawner.deactivated.desc=A cage no longer filled with horror.
-
-tile.workbench.name=Workbench
-tile.workbench.desc=For bigger projects.
-
-tile.furnace.stone.idle.name=Furnace
-tile.furnace.stone.idle.desc=For melting, heating, and cooking blocks and items.
-tile.furnace.stone.active.name=Lit Furnace
-tile.furnace.stone.active.desc=For melting, heating, and cooking blocks and items.
-tile.furnace.blast.idle.name=Blast Furnace
-tile.furnace.blast.idle.desc=Burns hotter than a normal furnace.
-tile.furnace.blast.active.name=Lit Blast Furnace
-tile.furnace.blast.active.desc=Burns hotter than a normal furnace.
-
-tile.trommel.idle.name=Trommel
-tile.trommel.idle.desc=A machine that separates dirt from other useful items.
-tile.trommel.active.name=Lit Trommel
-tile.trommel.active.desc=A machine that separates dirt from other useful items.
-
-tile.chest.planks.oak.name=Wooden Chest
-tile.chest.planks.oak.desc=A place to store your items.
-tile.chest.planks.oak.painted.name=Mystery Wooden Chest
-tile.chest.planks.oak.painted.desc=How did you get this?!
-tile.chest.planks.oak.painted.black.name=Black Wooden Chest
-tile.chest.planks.oak.painted.black.desc=A place to store your items.
-tile.chest.planks.oak.painted.red.name=Red Wooden Chest
-tile.chest.planks.oak.painted.red.desc=A place to store your items.
-tile.chest.planks.oak.painted.green.name=Green Wooden Chest
-tile.chest.planks.oak.painted.green.desc=A place to store your items.
-tile.chest.planks.oak.painted.brown.name=Brown Wooden Chest
-tile.chest.planks.oak.painted.brown.desc=A place to store your items.
-tile.chest.planks.oak.painted.blue.name=Blue Wooden Chest
-tile.chest.planks.oak.painted.blue.desc=A place to store your items.
-tile.chest.planks.oak.painted.purple.name=Purple Wooden Chest
-tile.chest.planks.oak.painted.purple.desc=A place to store your items.
-tile.chest.planks.oak.painted.cyan.name=Cyan Wooden Chest
-tile.chest.planks.oak.painted.cyan.desc=A place to store your items.
-tile.chest.planks.oak.painted.silver.name=Light Gray Wooden Chest
-tile.chest.planks.oak.painted.silver.desc=A place to store your items.
-tile.chest.planks.oak.painted.gray.name=Gray Wooden Chest
-tile.chest.planks.oak.painted.gray.desc=A place to store your items.
-tile.chest.planks.oak.painted.pink.name=Pink Wooden Chest
-tile.chest.planks.oak.painted.pink.desc=A place to store your items.
-tile.chest.planks.oak.painted.lime.name=Lime Wooden Chest
-tile.chest.planks.oak.painted.lime.desc=A place to store your items.
-tile.chest.planks.oak.painted.yellow.name=Yellow Wooden Chest
-tile.chest.planks.oak.painted.yellow.desc=A place to store your items.
-tile.chest.planks.oak.painted.lightblue.name=Light Blue Wooden Chest
-tile.chest.planks.oak.painted.lightblue.desc=A place to store your items.
-tile.chest.planks.oak.painted.magenta.name=Magenta Wooden Chest
-tile.chest.planks.oak.painted.magenta.desc=A place to store your items.
-tile.chest.planks.oak.painted.orange.name=Orange Wooden Chest
-tile.chest.planks.oak.painted.orange.desc=A place to store your items.
-tile.chest.planks.oak.painted.white.name=White Wooden Chest
-tile.chest.planks.oak.painted.white.desc=A place to store your items.
-tile.chest.legacy.name=Legacy Chest
-
-tile.crops.wheat.name=Wheat Crops
-tile.crops.wheat.desc=Wheat, plucked from the ground.
-tile.crops.pumpkin.name=Pumpkin Crops
-tile.crops.pumpkin.desc=A ripening pumpkin, plucked from the ground.
-
-tile.farmland.dirt.name=Farmland
-tile.farmland.dirt.desc=Tilled soil for growing crops.
-
-tile.sign.post.planks.oak.name=Oak Signpost
-tile.sign.post.planks.oak.desc=A free-standing oak sign.
-tile.sign.wall.planks.oak.name=Oak Wall Sign
-tile.sign.wall.planks.oak.desc=An oak sign placed on a wall.
-
-tile.layer.snow.name=Snow Layer
-tile.layer.snow.desc=A flat layer of snow.
-tile.layer.leaves.oak.name=Leaf Pile
-tile.layer.leaves.oak.desc=A pile of leaves.
-tile.layer.slate.name=Slate Layer
-tile.layer.slate.desc=A flat sheet of slate.
-
-tile.ice.name=Ice
-tile.ice.desc=Slippery frozen water.
-tile.ice.perma.name=Perma-Ice
-tile.ice.perma.desc=Ice imbued with the essence of stone.
-
-tile.block.snow.name=Block of Snow
-tile.block.snow.desc=Lots of snow compacted into a block.
-
-tile.cactus.name=Cactus
-tile.cactus.desc=A spiky plant that grows in the desert.
-
-tile.block.clay.name=Block of Clay
-tile.block.clay.desc=A block of compacted clay.
-
-tile.sugarcane.name=Sugarcane
-tile.sugarcane.desc=Not as sweet as you.
-
-tile.block.sugarcane.name=Block of Sugarcane
-tile.block.sugarcane.desc=One very big sugar cube.
-tile.block.sugarcane.baked.name=Baked Block of Sugarcane
-tile.block.sugarcane.baked.desc=Smells absolutely delicious.
-
-tile.jukebox.name=Jukebox
-tile.jukebox.desc=Plays your favourite tunes, assuming you have the right record.
-
-tile.pumpkin.name=Pumpkin
-tile.pumpkin.desc=An orange squash that grows in the wild.
-tile.pumpkin.carved.idle.name=Carved Pumpkin
-tile.pumpkin.carved.idle.desc=An orange squash with a spooky face.
-tile.pumpkin.carved.active.name=Jack 'o' Lantern
-tile.pumpkin.carved.active.desc=An orange squash with a spooky face, lit by a torch.
-
-tile.netherrack.name=Netherrack
-tile.netherrack.desc=Dark red rock that burns forever.
-tile.netherrack.igneous.name=Igneous Netherrack
-tile.netherrack.igneous.desc=Extreme heat has made this rock glow from inside.
-
-tile.soulsand.name=Soul Sand
-tile.soulsand.desc=Squishy brown sand that's tough to walk through.
-
-tile.glowstone.name=Block of Glowstone
-tile.glowstone.desc=Constantly emits a strong yellowish light.
-
-tile.portal.nether.name=Nether Portal
-tile.portal.nether.desc=A portal to the Nether.
-tile.portal.paradise.name=Paradise Portal
-tile.portal.paradise.desc=A portal to Paradise.
-
-tile.cake.name=Cake
-tile.cake.desc=I just can't cake it any more.
-
-tile.lamp.idle.name=Lamp
-tile.lamp.idle.desc=How did you get this?!
-tile.lamp.idle.black.name=Black Lamp
-tile.lamp.idle.black.desc=A redstone lamp that can emit light. Tinted black.
-tile.lamp.idle.red.name=Red Lamp
-tile.lamp.idle.red.desc=A redstone lamp that can emit light. Tinted red.
-tile.lamp.idle.green.name=Green Lamp
-tile.lamp.idle.green.desc=A redstone lamp that can emit light. Tinted green.
-tile.lamp.idle.brown.name=Brown Lamp
-tile.lamp.idle.brown.desc=A redstone lamp that can emit light. Tinted brown.
-tile.lamp.idle.blue.name=Blue Lamp
-tile.lamp.idle.blue.desc=A redstone lamp that can emit light. Tinted blue.
-tile.lamp.idle.purple.name=Purple Lamp
-tile.lamp.idle.purple.desc=A redstone lamp that can emit light. Tinted purple.
-tile.lamp.idle.cyan.name=Cyan Lamp
-tile.lamp.idle.cyan.desc=A redstone lamp that can emit light. Tinted cyan.
-tile.lamp.idle.silver.name=Light Gray Lamp
-tile.lamp.idle.silver.desc=A redstone lamp that can emit light. Tinted light gray.
-tile.lamp.idle.gray.name=Gray Lamp
-tile.lamp.idle.gray.desc=A redstone lamp that can emit light. Tinted gray.
-tile.lamp.idle.pink.name=Pink Lamp
-tile.lamp.idle.pink.desc=A redstone lamp that can emit light. Tinted pink.
-tile.lamp.idle.lime.name=Lime Lamp
-tile.lamp.idle.lime.desc=A redstone lamp that can emit light. Tinted lime.
-tile.lamp.idle.yellow.name=Yellow Lamp
-tile.lamp.idle.yellow.desc=A redstone lamp that can emit light. Tinted yellow.
-tile.lamp.idle.lightblue.name=Light Blue Lamp
-tile.lamp.idle.lightblue.desc=A redstone lamp that can emit light. Tinted light blue.
-tile.lamp.idle.magenta.name=Magenta Lamp
-tile.lamp.idle.magenta.desc=A redstone lamp that can emit light. Tinted magenta.
-tile.lamp.idle.orange.name=Orange Lamp
-tile.lamp.idle.orange.desc=A redstone lamp that can emit light. Tinted orange.
-tile.lamp.idle.white.name=White Lamp
-tile.lamp.idle.white.desc=A redstone lamp that can emit light.
-
-tile.lamp.active.name=Lit Lamp
-tile.lamp.active.desc=How did you get this?!
-tile.lamp.active.black.name=Lit Black Lamp
-tile.lamp.active.black.desc=A redstone lamp that emits light. Tinted black.
-tile.lamp.active.red.name=Lit Red Lamp
-tile.lamp.active.red.desc=A redstone lamp that emits light. Tinted red.
-tile.lamp.active.green.name=Lit Green Lamp
-tile.lamp.active.green.desc=A redstone lamp that emits light. Tinted green.
-tile.lamp.active.brown.name=Lit Brown Lamp
-tile.lamp.active.brown.desc=A redstone lamp that emits light. Tinted brown.
-tile.lamp.active.blue.name=Lit Blue Lamp
-tile.lamp.active.blue.desc=A redstone lamp that emits light. Tinted blue.
-tile.lamp.active.purple.name=Lit Purple Lamp
-tile.lamp.active.purple.desc=A redstone lamp that emits light. Tinted purple.
-tile.lamp.active.cyan.name=Lit Cyan Lamp
-tile.lamp.active.cyan.desc=A redstone lamp that emits light. Tinted cyan.
-tile.lamp.active.silver.name=Lit Light Gray Lamp
-tile.lamp.active.silver.desc=A redstone lamp that emits light. Tinted light gray.
-tile.lamp.active.gray.name=Lit Gray Lamp
-tile.lamp.active.gray.desc=A redstone lamp that emits light. Tinted gray.
-tile.lamp.active.pink.name=Lit Pink Lamp
-tile.lamp.active.pink.desc=A redstone lamp that emits light. Tinted pink.
-tile.lamp.active.lime.name=Lit Lime Lamp
-tile.lamp.active.lime.desc=A redstone lamp that emits light. Tinted lime.
-tile.lamp.active.yellow.name=Yellow Lamp
-tile.lamp.active.yellow.desc=A redstone lamp that emits light. Tinted yellow.
-tile.lamp.active.lightblue.name=Light Blue Lamp
-tile.lamp.active.lightblue.desc=A redstone lamp that emits light. Tinted light blue.
-tile.lamp.active.magenta.name=Magenta Lamp
-tile.lamp.active.magenta.desc=A redstone lamp that emits light. Tinted magenta.
-tile.lamp.active.orange.name=Orange Lamp
-tile.lamp.active.orange.desc=A redstone lamp that emits light. Tinted orange.
-tile.lamp.active.white.name=White Lamp
-tile.lamp.active.white.desc=A redstone lamp that emits light.
-
-tile.stone.polished.name=Polished Stone
-tile.stone.polished.desc=A polished block of stone.
-tile.granite.polished.name=Polished Granite
-tile.granite.polished.desc=A polished block of granite.
-tile.limestone.polished.name=Polished Limestone
-tile.limestone.polished.desc=A polished block of limestone.
-tile.basalt.polished.name=Polished Basalt
-tile.basalt.polished.desc=A polished block of basalt.
-tile.slate.polished.name=Polished Slate
-tile.slate.polished.desc=A polished block of slate.
-
-tile.candle.wax.soul.name=Soul Wax Candle
-tile.candle.wax.soul.desc=A waxy brown candle that glows with an unnatural light.
-
-tile.basket.name=Basket
-tile.basket.desc=A wicker container for holding items.
-
-tile.overlay.pebbles.name=Pebbles
-tile.overlay.pebbles.desc=A cluster of pebbles.
-
-tile.fence.chainlink.name=Chainlink Fence
-tile.fence.chainlink.desc=A fence made of interconnected chain links. Can be climbed!
-tile.fence.paper_wall.name=Paper Wall Fence
-tile.fence.paper_wall.desc=A fence made of delicate paper. Be careful!
-
-tile.lantern.firefly.green.name=Green Firefly Lantern
-tile.lantern.firefly.green.desc=A glass jar containing a swarm of green fireflies.
-tile.lantern.firefly.orange.name=Orange Firefly Lantern
-tile.lantern.firefly.orange.desc=A glass jar containing a swarm of orange fireflies.
-tile.lantern.firefly.blue.name=Blue Firefly Lantern
-tile.lantern.firefly.blue.desc=A glass jar containing a swarm of blue fireflies.
-tile.lantern.firefly.red.name=Red Firefly Lantern
-tile.lantern.firefly.red.desc=A glass jar containing a swarm of red fireflies.
-
-tile.flag.name=Flag
-tile.flag.desc=A flag to mark your territory.
-
-tile.paper_wall.name=Paper Wall
+tile.stone.name=Stone
+tile.stone.desc=A block of solid stone.
+tile.basalt.name=Basalt
+tile.basalt.desc=A block of solid basalt.
+tile.limestone.name=Limestone
+tile.limestone.desc=A block of solid limestone.
+tile.granite.name=Granite
+tile.granite.desc=A block of solid granite.
+tile.marble.name=Marble
+tile.marble.desc=A block of solid marble.
+tile.slate.name=Slate
+tile.slate.desc=A block of solid slate.
+tile.permafrost.name=Permafrost
+tile.permafrost.desc=A block of frozen stone.
+
+tile.cobble.stone.name=Cobblestone
+tile.cobble.stone.desc=Stone, smashed apart and reconstituted.
+tile.cobble.stone.mossy.name=Mossy Cobblestone
+tile.cobble.stone.mossy.desc=Cobblestone with added greenery.
+tile.cobble.basalt.name=Cobbled Basalt
+tile.cobble.basalt.desc=Basalt, smashed apart and reconstituted.
+tile.cobble.limestone.name=Cobbled Limestone
+tile.cobble.limestone.desc=Limestone, smashed apart and reconstituted.
+tile.cobble.granite.name=Cobbled Granite
+tile.cobble.granite.desc=Granite, smashed apart and reconstituted.
+tile.cobble.permafrost.name=Cobbled Permafrost
+tile.cobble.permafrost.desc=Permafrost, smashed apart and reconstituted.
+
+tile.pillar.marble.name=Marble Pillar
+tile.pillar.marble.desc=A block of marble engraved into a pillar.
+tile.capstone.marble.name=Marble Capstone
+tile.capstone.marble.desc=A pillar capstone made of solid marble.
+
+tile.sandstone.name=Sandstone
+tile.sandstone.desc=Compacted sand.
+
+tile.stone.carved.name=Carved Stone
+tile.stone.carved.desc=Polished Stone with lines hewn through the middle.
+tile.granite.carved.name=Carved Granite
+tile.granite.carved.desc=Polished Granite with lines hewn through the middle.
+tile.limestone.carved.name=Carved Limestone
+tile.limestone.carved.desc=Polished Limestone with lines hewn through the middle.
+tile.basalt.carved.name=Carved Basalt
+tile.basalt.carved.desc=Polished Basalt with lines hewn through the middle.
+
+tile.planks.oak.name=Wooden Planks
+tile.planks.oak.desc=Processed tree insides.
+tile.planks.oak.painted.name=Mystery Planks
+tile.planks.oak.painted.desc=How did you get this?!
+tile.planks.oak.painted.black.name=Black Wooden Planks
+tile.planks.oak.painted.black.desc=Wooden planks, stained black.
+tile.planks.oak.painted.red.name=Red Wooden Planks
+tile.planks.oak.painted.red.desc=Wooden planks, stained red.
+tile.planks.oak.painted.green.name=Green Wooden Planks
+tile.planks.oak.painted.green.desc=Wooden planks, stained green.
+tile.planks.oak.painted.brown.name=Brown Wooden Planks
+tile.planks.oak.painted.brown.desc=Wooden planks, stained brown.
+tile.planks.oak.painted.blue.name=Blue Wooden Planks
+tile.planks.oak.painted.blue.desc=Wooden planks, stained blue.
+tile.planks.oak.painted.purple.name=Purple Wooden Planks
+tile.planks.oak.painted.purple.desc=Wooden planks, stained purple.
+tile.planks.oak.painted.cyan.name=Cyan Wooden Planks
+tile.planks.oak.painted.cyan.desc=Wooden planks, stained cyan.
+tile.planks.oak.painted.silver.name=Light Gray Wooden Planks
+tile.planks.oak.painted.silver.desc=Wooden planks, stained light gray.
+tile.planks.oak.painted.gray.name=Gray Wooden Planks
+tile.planks.oak.painted.gray.desc=Wooden planks, stained gray.
+tile.planks.oak.painted.pink.name=Pink Wooden Planks
+tile.planks.oak.painted.pink.desc=Wooden planks, stained pink.
+tile.planks.oak.painted.lime.name=Lime Wooden Planks
+tile.planks.oak.painted.lime.desc=Wooden planks, stained lime.
+tile.planks.oak.painted.yellow.name=Yellow Wooden Planks
+tile.planks.oak.painted.yellow.desc=Wooden planks, stained yellow.
+tile.planks.oak.painted.lightblue.name=Light Blue Wooden Planks
+tile.planks.oak.painted.lightblue.desc=Wooden planks, stained light blue.
+tile.planks.oak.painted.magenta.name=Magenta Wooden Planks
+tile.planks.oak.painted.magenta.desc=Wooden planks, stained magenta.
+tile.planks.oak.painted.orange.name=Orange Wooden Planks
+tile.planks.oak.painted.orange.desc=Wooden planks, stained orange.
+tile.planks.oak.painted.white.name=White Wooden Planks
+tile.planks.oak.painted.white.desc=Wooden planks, stained white.
+
+tile.torch.coal.name=Torch
+tile.torch.coal.desc=Helps light the way.
+
+tile.ladder.oak.name=Oak Ladder
+tile.ladder.oak.desc=For very rapid vertical movement.
+
+tile.fence.planks.oak.name=Oak Fence
+tile.fence.planks.oak.desc=Too tall to jump over.
+
+tile.fence.planks.oak.painted.name=Mystery Wooden Fence
+tile.fence.planks.oak.painted.desc=How did you get this?!
+tile.fence.planks.oak.painted.black.name=Black Wooden Fence
+tile.fence.planks.oak.painted.black.desc=A wooden fence, stained black.
+tile.fence.planks.oak.painted.red.name=Red Wooden Fence
+tile.fence.planks.oak.painted.red.desc=A wooden fence, stained red.
+tile.fence.planks.oak.painted.green.name=Green Wooden Fence
+tile.fence.planks.oak.painted.green.desc=A wooden fence, stained green.
+tile.fence.planks.oak.painted.brown.name=Brown Wooden Fence
+tile.fence.planks.oak.painted.brown.desc=A wooden fence, stained brown.
+tile.fence.planks.oak.painted.blue.name=Blue Wooden Fence
+tile.fence.planks.oak.painted.blue.desc=A wooden fence, stained blue.
+tile.fence.planks.oak.painted.purple.name=Purple Wooden Fence
+tile.fence.planks.oak.painted.purple.desc=A wooden fence, stained purple.
+tile.fence.planks.oak.painted.cyan.name=Cyan Wooden Fence
+tile.fence.planks.oak.painted.cyan.desc=A wooden fence, stained cyan.
+tile.fence.planks.oak.painted.silver.name=Light Gray Wooden Fence
+tile.fence.planks.oak.painted.silver.desc=A wooden fence, stained light gray.
+tile.fence.planks.oak.painted.gray.name=Gray Wooden Fence
+tile.fence.planks.oak.painted.gray.desc=A wooden fence, stained gray.
+tile.fence.planks.oak.painted.pink.name=Pink Wooden Fence
+tile.fence.planks.oak.painted.pink.desc=A wooden fence, stained pink.
+tile.fence.planks.oak.painted.lime.name=Lime Wooden Fence
+tile.fence.planks.oak.painted.lime.desc=A wooden fence, stained lime.
+tile.fence.planks.oak.painted.yellow.name=Yellow Wooden Fence
+tile.fence.planks.oak.painted.yellow.desc=A wooden fence, stained yellow.
+tile.fence.planks.oak.painted.lightblue.name=Light Blue Wooden Fence
+tile.fence.planks.oak.painted.lightblue.desc=A wooden fence, stained light blue.
+tile.fence.planks.oak.painted.magenta.name=Magenta Wooden Fence
+tile.fence.planks.oak.painted.magenta.desc=A wooden fence, stained magenta.
+tile.fence.planks.oak.painted.orange.name=Orange Wooden Fence
+tile.fence.planks.oak.painted.orange.desc=A wooden fence, stained orange.
+tile.fence.planks.oak.painted.white.name=White Wooden Fence
+tile.fence.planks.oak.painted.white.desc=A wooden fence, stained white.
+
+tile.fencegate.planks.oak.name=Wooden Fence Gate
+tile.fencegate.planks.oak.desc=Like a door but for fences.
+
+tile.fencegate.planks.oak.painted.name=Mystery Wooden Fence Gate
+tile.fencegate.planks.oak.painted.desc=How did you get this?!
+tile.fencegate.planks.oak.painted.black.name=Black Wooden Fence Gate
+tile.fencegate.planks.oak.painted.black.desc=A wooden fence gate, stained black.
+tile.fencegate.planks.oak.painted.red.name=Red Wooden Fence Gate
+tile.fencegate.planks.oak.painted.red.desc=A wooden fence gate, stained red.
+tile.fencegate.planks.oak.painted.green.name=Green Wooden Fence Gate
+tile.fencegate.planks.oak.painted.green.desc=A wooden fence gate, stained green.
+tile.fencegate.planks.oak.painted.brown.name=Brown Wooden Fence Gate
+tile.fencegate.planks.oak.painted.brown.desc=A wooden fence gate, stained brown.
+tile.fencegate.planks.oak.painted.blue.name=Blue Wooden Fence Gate
+tile.fencegate.planks.oak.painted.blue.desc=A wooden fence gate, stained blue.
+tile.fencegate.planks.oak.painted.purple.name=Purple Wooden Fence Gate
+tile.fencegate.planks.oak.painted.purple.desc=A wooden fence gate, stained purple.
+tile.fencegate.planks.oak.painted.cyan.name=Cyan Wooden Fence Gate
+tile.fencegate.planks.oak.painted.cyan.desc=A wooden fence gate, stained cyan.
+tile.fencegate.planks.oak.painted.silver.name=Light Gray Wooden Fence Gate
+tile.fencegate.planks.oak.painted.silver.desc=A wooden fence gate, stained light gray.
+tile.fencegate.planks.oak.painted.gray.name=Gray Wooden Fence Gate
+tile.fencegate.planks.oak.painted.gray.desc=A wooden fence gate, stained gray.
+tile.fencegate.planks.oak.painted.pink.name=Pink Wooden Fence Gate
+tile.fencegate.planks.oak.painted.pink.desc=A wooden fence gate, stained pink.
+tile.fencegate.planks.oak.painted.lime.name=Lime Wooden Fence Gate
+tile.fencegate.planks.oak.painted.lime.desc=A wooden fence gate, stained lime.
+tile.fencegate.planks.oak.painted.yellow.name=Yellow Wooden Fence Gate
+tile.fencegate.planks.oak.painted.yellow.desc=A wooden fence gate, stained yellow.
+tile.fencegate.planks.oak.painted.lightblue.name=Light Blue Wooden Fence Gate
+tile.fencegate.planks.oak.painted.lightblue.desc=A wooden fence gate, stained light blue.
+tile.fencegate.planks.oak.painted.magenta.name=Magenta Wooden Fence Gate
+tile.fencegate.planks.oak.painted.magenta.desc=A wooden fence gate, stained magenta.
+tile.fencegate.planks.oak.painted.orange.name=Orange Wooden Fence Gate
+tile.fencegate.planks.oak.painted.orange.desc=A wooden fence gate, stained orange.
+tile.fencegate.planks.oak.painted.white.name=White Wooden Fence Gate
+tile.fencegate.planks.oak.painted.white.desc=A wooden fence gate, stained white.
+
+tile.bookshelf.planks.oak.name=Bookshelf
+tile.bookshelf.planks.oak.desc=A repository of knowledge.
+
+tile.wool.name=Wool
+tile.wool.desc=How did you get this?!
+tile.wool.black.name=Black Wool
+tile.wool.black.desc=Sheep's wool, dyed black.
+tile.wool.red.name=Red Wool
+tile.wool.red.desc=Sheep's wool, dyed red.
+tile.wool.green.name=Green Wool
+tile.wool.green.desc=Sheep's wool, dyed green.
+tile.wool.brown.name=Brown Wool
+tile.wool.brown.desc=Sheep's wool, dyed brown.
+tile.wool.blue.name=Blue Wool
+tile.wool.blue.desc=Sheep's wool, dyed blue.
+tile.wool.purple.name=Purple Wool
+tile.wool.purple.desc=Sheep's wool, dyed purple.
+tile.wool.cyan.name=Cyan Wool
+tile.wool.cyan.desc=Sheep's wool, dyed cyan.
+tile.wool.silver.name=Light Gray Wool
+tile.wool.silver.desc=Sheep's wool, dyed light gray.
+tile.wool.gray.name=Gray Wool
+tile.wool.gray.desc=Sheep's wool, dyed gray.
+tile.wool.pink.name=Pink Wool
+tile.wool.pink.desc=Sheep's wool, dyed pink.
+tile.wool.lime.name=Lime Wool
+tile.wool.lime.desc=Sheep's wool, dyed lime.
+tile.wool.yellow.name=Yellow Wool
+tile.wool.yellow.desc=Sheep's wool, dyed yellow.
+tile.wool.lightblue.name=Light Blue Wool
+tile.wool.lightblue.desc=Sheep's wool, dyed light blue.
+tile.wool.magenta.name=Magenta Wool
+tile.wool.magenta.desc=Sheep's wool, dyed magenta.
+tile.wool.orange.name=Orange Wool
+tile.wool.orange.desc=Sheep's wool, dyed orange.
+tile.wool.white.name=White Wool
+tile.wool.white.desc=Sheep's wool, dyed white.
+
+tile.brick.clay.name=Clay Bricks
+tile.brick.clay.desc=Stacked bricks of baked clay.
+tile.brick.stone.polished.name=Polished Stone Bricks
+tile.brick.stone.polished.desc=Stacked bricks of polished stone.
+tile.brick.stone.polished.mossy.name=Mossy Polished Stone Bricks
+tile.brick.stone.polished.mossy.desc=Stacked bricks of polished stone with added greenery.
+tile.brick.sandstone.name=Sandstone Bricks
+tile.brick.sandstone.desc=Stacked bricks of sandstone.
+tile.brick.gold.name=Gold Bricks
+tile.brick.gold.desc=Stacked bricks of gold.
+tile.brick.lapis.name=Lapis Lazuli Bricks
+tile.brick.lapis.desc=Stacked bricks of lapis lazuli.
+tile.brick.basalt.name=Basalt Bricks
+tile.brick.basalt.desc=Stacked bricks of basalt.
+tile.brick.limestone.name=Limestone Bricks
+tile.brick.limestone.desc=Stacked bricks of limestone.
+tile.brick.granite.name=Granite Bricks
+tile.brick.granite.desc=Stacked bricks of granite.
+tile.brick.marble.name=Marble Bricks
+tile.brick.marble.desc=Stacked bricks of marble.
+tile.brick.slate.name=Slate Bricks
+tile.brick.slate.desc=Stacked bricks of slate.
+tile.brick.stone.name=Stone Bricks
+tile.brick.stone.desc=Stacked bricks of stone.
+tile.brick.permafrost.name=Permafrost Bricks
+tile.brick.permafrost.desc=Stacked bricks of permafrost.
+tile.brick.iron.name=Iron Bricks
+tile.brick.iron.desc=Stacked bricks of iron.
+
+tile.slab.planks.oak.name=Wooden Slab
+tile.slab.planks.oak.desc=A slab of wooden planks.
+tile.slab.cobble.stone.name=Cobblestone Slab
+tile.slab.cobble.stone.desc=A slab of cobblestone.
+tile.slab.sandstone.name=Sandstone Slab
+tile.slab.sandstone.desc=A slab of sandstone.
+tile.slab.brick.stone.polished.name=Polished Stone Brick Slab
+tile.slab.brick.stone.polished.desc=A slab of polished stone bricks.
+tile.slab.stone.carved.name=Polished Stone Slab
+tile.slab.stone.carved.desc=A slab of polished stone.
+tile.slab.brick.marble.name=Marble Brick Slab
+tile.slab.brick.marble.desc=A slab of marble bricks.
+tile.slab.brick.clay.name=Clay Brick Slab
+tile.slab.brick.clay.desc=A slab of clay bricks.
+tile.slab.capstone.marble.name=Marble Capstone Slab
+tile.slab.capstone.marble.desc=Marble sculpted into a capstone.
+tile.slab.cobble.basalt.name=Cobbled Basalt Slab
+tile.slab.cobble.basalt.desc=A slab of cobbled basalt.
+tile.slab.cobble.limestone.name=Cobbled Limestone Slab
+tile.slab.cobble.limestone.desc=A slab of cobbled limestone.
+tile.slab.cobble.granite.name=Cobbled Granite Slab
+tile.slab.cobble.granite.desc=A slab of cobbled granite.
+tile.slab.brick.basalt.name=Basalt Brick Slab
+tile.slab.brick.basalt.desc=A slab of basalt bricks.
+tile.slab.brick.limestone.name=Limestone Brick Slab
+tile.slab.brick.limestone.desc=A slab of limestone bricks.
+tile.slab.brick.granite.name=Granite Brick Slab
+tile.slab.brick.granite.desc=A slab of granite bricks.
+tile.slab.brick.slate.name=Slate Brick Slab
+tile.slab.brick.slate.desc=A slab of slate bricks.
+tile.slab.brick.stone.name=Stone Brick Slab
+tile.slab.brick.stone.desc=A slab of stone bricks.
+tile.slab.granite.carved.name=Polished Granite Slab
+tile.slab.granite.carved.desc=A slab of polished granite.
+tile.slab.limestone.carved.name=Polished Limestone Slab
+tile.slab.limestone.carved.desc=A slab of polished limestone.
+tile.slab.basalt.carved.name=Polished Basalt Slab
+tile.slab.basalt.carved.desc=A slab of polished basalt.
+
+tile.slab.planks.oak.painted.name=Mystery Wooden Slab
+tile.slab.planks.oak.painted.desc=How did you get this?!
+tile.slab.planks.oak.painted.black.name=Black Wooden Slab
+tile.slab.planks.oak.painted.black.desc=A slab of wooden planks, stained black.
+tile.slab.planks.oak.painted.red.name=Red Wooden Slab
+tile.slab.planks.oak.painted.red.desc=A slab of wooden planks, stained red.
+tile.slab.planks.oak.painted.green.name=Green Wooden Slab
+tile.slab.planks.oak.painted.green.desc=A slab of wooden planks, stained green.
+tile.slab.planks.oak.painted.brown.name=Brown Wooden Slab
+tile.slab.planks.oak.painted.brown.desc=A slab of wooden planks, stained brown.
+tile.slab.planks.oak.painted.blue.name=Blue Wooden Slab
+tile.slab.planks.oak.painted.blue.desc=A slab of wooden planks, stained blue.
+tile.slab.planks.oak.painted.purple.name=Purple Wooden Slab
+tile.slab.planks.oak.painted.purple.desc=A slab of wooden planks, stained purple.
+tile.slab.planks.oak.painted.cyan.name=Cyan Wooden Slab
+tile.slab.planks.oak.painted.cyan.desc=A slab of wooden planks, stained cyan.
+tile.slab.planks.oak.painted.silver.name=Light Gray Wooden Slab
+tile.slab.planks.oak.painted.silver.desc=A slab of wooden planks, stained light gray.
+tile.slab.planks.oak.painted.gray.name=Gray Wooden Slab
+tile.slab.planks.oak.painted.gray.desc=A slab of wooden planks, stained gray.
+tile.slab.planks.oak.painted.pink.name=Pink Wooden Slab
+tile.slab.planks.oak.painted.pink.desc=A slab of wooden planks, stained pink.
+tile.slab.planks.oak.painted.lime.name=Lime Wooden Slab
+tile.slab.planks.oak.painted.lime.desc=A slab of wooden planks, stained lime.
+tile.slab.planks.oak.painted.yellow.name=Yellow Wooden Slab
+tile.slab.planks.oak.painted.yellow.desc=A slab of wooden planks, stained yellow.
+tile.slab.planks.oak.painted.lightblue.name=Light Blue Wooden Slab
+tile.slab.planks.oak.painted.lightblue.desc=A slab of wooden planks, stained light blue.
+tile.slab.planks.oak.painted.magenta.name=Magenta Wooden Slab
+tile.slab.planks.oak.painted.magenta.desc=A slab of wooden planks, stained magenta.
+tile.slab.planks.oak.painted.orange.name=Orange Wooden Slab
+tile.slab.planks.oak.painted.orange.desc=A slab of wooden planks, stained orange.
+tile.slab.planks.oak.painted.white.name=White Wooden Slab
+tile.slab.planks.oak.painted.white.desc=A slab of wooden planks, stained white.
+
+tile.stairs.planks.oak.name=Wooden Stairs
+tile.stairs.planks.oak.desc=Wooden block used for rapid vertical movement.
+tile.stairs.cobble.stone.name=Cobblestone Stairs
+tile.stairs.cobble.stone.desc=Cobblestone block used for rapid vertical movement.
+tile.stairs.brick.stone.polished.name=Polished Stone Brick Stairs
+tile.stairs.brick.stone.polished.desc=Polished stone brick block used for rapid vertical movement.
+tile.stairs.brick.marble.name=Marble Brick Stairs
+tile.stairs.brick.marble.desc=Marble brick block used for rapid vertical movement.
+tile.stairs.cobble.basalt.name=Cobbled Basalt Stairs
+tile.stairs.cobble.basalt.desc=Cobbled basalt block used for rapid vertical movement.
+tile.stairs.cobble.limestone.name=Cobbled Limestone Stairs
+tile.stairs.cobble.limestone.desc=Cobbled limestone block used for rapid vertical movement.
+tile.stairs.cobble.granite.name=Cobbled Granite Stairs
+tile.stairs.cobble.granite.desc=Cobbled granite block used for rapid vertical movement.
+tile.stairs.brick.basalt.name=Basalt Brick Stairs
+tile.stairs.brick.basalt.desc=Basalt brick block used for rapid vertical movement.
+tile.stairs.brick.limestone.name=Limestone Brick Stairs
+tile.stairs.brick.limestone.desc=Limestone brick block used for rapid vertical movement.
+tile.stairs.brick.granite.name=Granite Brick Stairs
+tile.stairs.brick.granite.desc=Granite brick block used for rapid vertical movement.
+tile.stairs.brick.clay.name=Clay Brick Stairs
+tile.stairs.brick.clay.desc=Clay brick block used for rapid vertical movement.
+tile.stairs.brick.slate.name=Slate Brick Stairs
+tile.stairs.brick.slate.desc=Slate brick block used for rapid vertical movement.
+tile.stairs.brick.stone.name=Stone Brick Stairs
+tile.stairs.brick.stone.desc=Stone brick block used for rapid vertical movement.
+
+tile.stairs.planks.oak.painted.name=Mystery Wooden Stairs
+tile.stairs.planks.oak.painted.desc=How did you get this?!
+tile.stairs.planks.oak.painted.black.name=Black Wooden Stairs
+tile.stairs.planks.oak.painted.black.desc=Wooden steps, stained black.
+tile.stairs.planks.oak.painted.red.name=Red Wooden Stairs
+tile.stairs.planks.oak.painted.red.desc=Wooden steps, stained red.
+tile.stairs.planks.oak.painted.green.name=Green Wooden Stairs
+tile.stairs.planks.oak.painted.green.desc=Wooden steps, stained green.
+tile.stairs.planks.oak.painted.brown.name=Brown Wooden Stairs
+tile.stairs.planks.oak.painted.brown.desc=Wooden steps, stained brown.
+tile.stairs.planks.oak.painted.blue.name=Blue Wooden Stairs
+tile.stairs.planks.oak.painted.blue.desc=Wooden steps, stained blue.
+tile.stairs.planks.oak.painted.purple.name=Purple Wooden Stairs
+tile.stairs.planks.oak.painted.purple.desc=Wooden steps, stained purple.
+tile.stairs.planks.oak.painted.cyan.name=Cyan Wooden Stairs
+tile.stairs.planks.oak.painted.cyan.desc=Wooden steps, stained cyan.
+tile.stairs.planks.oak.painted.silver.name=Light Gray Wooden Stairs
+tile.stairs.planks.oak.painted.silver.desc=Wooden steps, stained light gray.
+tile.stairs.planks.oak.painted.gray.name=Gray Wooden Stairs
+tile.stairs.planks.oak.painted.gray.desc=Wooden steps, stained gray.
+tile.stairs.planks.oak.painted.pink.name=Pink Wooden Stairs
+tile.stairs.planks.oak.painted.pink.desc=Wooden steps, stained pink.
+tile.stairs.planks.oak.painted.lime.name=Lime Wooden Stairs
+tile.stairs.planks.oak.painted.lime.desc=Wooden steps, stained lime.
+tile.stairs.planks.oak.painted.yellow.name=Yellow Wooden Stairs
+tile.stairs.planks.oak.painted.yellow.desc=Wooden steps, stained yellow.
+tile.stairs.planks.oak.painted.lightblue.name=Light Blue Wooden Stairs
+tile.stairs.planks.oak.painted.lightblue.desc=Wooden steps, stained light blue.
+tile.stairs.planks.oak.painted.magenta.name=Magenta Wooden Stairs
+tile.stairs.planks.oak.painted.magenta.desc=Wooden steps, stained magenta.
+tile.stairs.planks.oak.painted.orange.name=Orange Wooden Stairs
+tile.stairs.planks.oak.painted.orange.desc=Wooden steps, stained orange.
+tile.stairs.planks.oak.painted.white.name=White Wooden Stairs
+tile.stairs.planks.oak.painted.white.desc=Wooden steps, stained white.
+
+tile.obsidian.name=Obsidian
+tile.obsidian.desc=Rapidly cooled volcanic rock.
+
+tile.glass.name=Glass
+tile.glass.desc=Sand heated until it becomes translucent.
+tile.glass.tinted.name=Tinted Glass
+tile.glass.tinted.desc=Darkened glass that blocks light.
+
+tile.grass.name=Grass
+tile.grass.desc=Crisp, crunchy grass.
+tile.grass.retro.name=Retro Grass
+tile.grass.retro.desc=Crisp, crunchy grass. Smells old.
+tile.grass.scorched.name=Scorched Grass
+tile.grass.scorched.desc=Grass that has baked in the sun.
+
+tile.path.dirt.name=Dirt Path
+tile.path.dirt.desc=Dirt worn down by frequent travelling.
+
+tile.dirt.name=Dirt
+tile.dirt.desc=Crumbly brown dirt.
+tile.dirt.scorched.name=Scorched Dirt
+tile.dirt.scorched.desc=Dirt that has baked in the sun.
+tile.dirt.scorched.rich.name=Rich Scorched Dirt
+tile.dirt.scorched.rich.desc=Dirt that has baked in the sun, searing in minerals.
+
+tile.mud.name=Mud
+tile.mud.desc=Mud sodden to its core.
+tile.mud.baked.name=Baked Mud
+tile.mud.baked.desc=Mud that's been dried out and cracked.
+
+tile.sponge.dry.name=Sponge
+tile.sponge.dry.desc=A dry sponge, good for soaking up water.
+tile.sponge.wet.name=Wet Sponge
+tile.sponge.wet.desc=A sponge full of water.
+
+tile.moss.stone.name=Mossy Stone
+tile.moss.stone.desc=Moss covering a block of stone.
+tile.moss.basalt.name=Mossy Basalt
+tile.moss.basalt.desc=Moss covering a block of basalt.
+tile.moss.limestone.name=Mossy Limestone
+tile.moss.limestone.desc=Moss covering a block of limestone.
+tile.moss.granite.name=Mossy Granite
+tile.moss.granite.desc=Moss covering a block of granite.
+
+tile.sand.name=Sand
+tile.sand.desc=Gets everywhere.
+tile.gravel.name=Gravel
+tile.gravel.desc=A loose collection of pebbles.
+
+tile.bedrock.name=Bedrock
+tile.bedrock.desc=The toughest substance known to man.
+
+tile.fluid.water.flowing.name=Flowing Water
+tile.fluid.water.flowing.desc=Water that flows when placed.
+tile.fluid.water.still.name=Still Water
+tile.fluid.water.still.desc=Water that does not flow when placed.
+tile.fluid.lava.flowing.name=Flowing Lava
+tile.fluid.lava.flowing.desc=Lava that flows when placed.
+tile.fluid.lava.still.name=Still Lava
+tile.fluid.lava.still.desc=Lava that does not flow when placed.
+
+tile.log.oak.name=Oak Log
+tile.log.oak.desc=A log from an oak tree.
+tile.log.pine.name=Pine Log
+tile.log.pine.desc=A log from a pine tree.
+tile.log.birch.name=Birch Log
+tile.log.birch.desc=A log from a birch tree.
+tile.log.cherry.name=Cherry Log
+tile.log.cherry.desc=A log from a cherry tree.
+tile.log.eucalyptus.name=Eucalyptus Log
+tile.log.eucalyptus.desc=A log from a eucalyptus tree.
+tile.log.oak.mossy.name=Mossy Oak Log
+tile.log.oak.mossy.desc=A log from a mossy oak tree.
+
+tile.leaves.oak.name=Oak Leaves
+tile.leaves.oak.desc=Leaves from an oak tree.
+tile.leaves.pine.name=Pine Leaves
+tile.leaves.pine.desc=Leaves from a pine tree.
+tile.leaves.birch.name=Birch Leaves
+tile.leaves.birch.desc=Leaves from a birch tree.
+tile.leaves.cherry.name=Cherry Leaves
+tile.leaves.cherry.desc=Leaves from a cherry tree.
+tile.leaves.eucalyptus.name=Eucalyptus Leaves
+tile.leaves.eucalyptus.desc=Leaves from a eucalyptus tree.
+tile.leaves.oak.retro.name=Retro Leaves
+tile.leaves.oak.retro.desc=Leaves from long ago.
+tile.leaves.shrub.name=Shrub Leaves
+tile.leaves.shrub.desc=Leaves from a shrub.
+tile.leaves.cherry.flowering.name=Flowering Cherry Leaves
+tile.leaves.cherry.flowering.desc=Leaves from a cherry tree that are budding with fruit.
+tile.leaves.cacao.name=Cacao Leaves
+tile.leaves.cacao.desc=Leaves from a cacao tree.
+
+tile.sapling.oak.name=Oak Sapling
+tile.sapling.oak.desc=Plant to grow an oak tree.
+tile.sapling.pine.name=Pine Sapling
+tile.sapling.pine.desc=Plant to grow a pine tree.
+tile.sapling.birch.name=Birch Sapling
+tile.sapling.birch.desc=Plant to grow a birch tree.
+tile.sapling.cherry.name=Cherry Sapling
+tile.sapling.cherry.desc=Plant to grow a cherry tree.
+tile.sapling.eucalyptus.name=Eucalyptus Sapling
+tile.sapling.eucalyptus.desc=Plant to grow a eucalyptus tree.
+tile.sapling.oak.retro.name=Retro Oak Sapling
+tile.sapling.oak.retro.desc=Plant to grow a tree from long ago.
+tile.sapling.shrub.name=Shrub Sapling
+tile.sapling.shrub.desc=Plant to grow a shrub.
+tile.sapling.cacao.name=Cacao Sapling
+tile.sapling.cacao.desc=Plant to grow a cacao tree.
+
+tile.tallgrass.name=Tall Grass
+tile.tallgrass.desc=Lush, growing grass.
+tile.tallgrass.fern.name=Fern
+tile.tallgrass.fern.desc=A fern plant.
+tile.deadbush.name=Dead Bush
+tile.deadbush.desc=A dried and withered plant.
+tile.spinifex.name=Spinifex
+tile.spinifex.desc=A spindly, thin grass from dry regions.
+tile.algae.name=Algae
+tile.algae.desc=Gooey vegetation that floats on the water's surface.
+
+tile.flower.yellow.name=Dandelion
+tile.flower.yellow.desc=A beautiful yellow flower.
+tile.flower.red.name=Rose
+tile.flower.red.desc=A beautiful red flower.
+
+tile.mushroom.red.name=Red Mushroom
+tile.mushroom.red.desc=A tasty red mushroom. Good for stew.
+tile.mushroom.brown.name=Brown Mushroom
+tile.mushroom.brown.desc=A tasty brown mushroom. Good for stew.
+
+tile.ore.coal.stone.name=Stone Coal Ore
+tile.ore.coal.stone.desc=A chunk of coal embedded in stone.
+tile.ore.coal.basalt.name=Basalt Coal Ore
+tile.ore.coal.basalt.desc=A chunk of coal embedded in basalt.
+tile.ore.coal.limestone.name=Limestone Coal Ore
+tile.ore.coal.limestone.desc=A chunk of coal embedded in limestone.
+tile.ore.coal.granite.name=Granite Coal Ore
+tile.ore.coal.granite.desc=A chunk of coal embedded in granite.
+
+tile.ore.iron.stone.name=Stone Iron Ore
+tile.ore.iron.stone.desc=Iron nuggets embedded in stone.
+tile.ore.iron.basalt.name=Basalt Iron Ore
+tile.ore.iron.basalt.desc=Iron nuggets embedded in basalt.
+tile.ore.iron.limestone.name=Limestone Iron Ore
+tile.ore.iron.limestone.desc=Iron nuggets embedded in limestone.
+tile.ore.iron.granite.name=Granite Iron Ore
+tile.ore.iron.granite.desc=Iron nuggets embedded in granite.
+
+tile.ore.gold.stone.name=Stone Gold Ore
+tile.ore.gold.stone.desc=Gold nuggets embedded in stone.
+tile.ore.gold.basalt.name=Basalt Gold Ore
+tile.ore.gold.basalt.desc=Gold nuggets embedded in basalt.
+tile.ore.gold.limestone.name=Limestone Gold Ore
+tile.ore.gold.limestone.desc=Gold nuggets embedded in limestone.
+tile.ore.gold.granite.name=Granite Gold Ore
+tile.ore.gold.granite.desc=Gold nuggets embedded in granite.
+
+tile.ore.lapis.stone.name=Stone Lapis Lazuli Ore
+tile.ore.lapis.stone.desc=Chunks of lapis lazuli embedded in stone.
+tile.ore.lapis.basalt.name=Basalt Lapis Lazuli Ore
+tile.ore.lapis.basalt.desc=Chunks of lapis lazuli embedded in basalt.
+tile.ore.lapis.limestone.name=Limestone Lapis Lazuli Ore
+tile.ore.lapis.limestone.desc=Chunks of lapis lazuli embedded in limestone.
+tile.ore.lapis.granite.name=Granite Lapis Lazuli Ore
+tile.ore.lapis.granite.desc=Chunks of lapis lazuli embedded in granite.
+
+tile.ore.redstone.stone.name=Stone Redstone Ore
+tile.ore.redstone.stone.desc=Red dust embedded in stone.
+tile.ore.redstone.basalt.name=Basalt Redstone Ore
+tile.ore.redstone.basalt.desc=Red dust embedded in basalt.
+tile.ore.redstone.limestone.name=Limestone Redstone Ore
+tile.ore.redstone.limestone.desc=Red dust embedded in limestone.
+tile.ore.redstone.granite.name=Granite Redstone Ore
+tile.ore.redstone.granite.desc=Red dust embedded in granite.
+tile.ore.redstone.glowing.stone.name=Glowing Stone Redstone Ore
+tile.ore.redstone.glowing.stone.desc=Red dust embedded in stone. Emits a faint light.
+tile.ore.redstone.glowing.basalt.name=Glowing Basalt Redstone Ore
+tile.ore.redstone.glowing.basalt.desc=Red dust embedded in basalt. Emits a faint light.
+tile.ore.redstone.glowing.limestone.name=Glowing Limestone Redstone Ore
+tile.ore.redstone.glowing.limestone.desc=Red dust embedded in limestone. Emits a faint light.
+tile.ore.redstone.glowing.granite.name=Glowing Granite Redstone Ore
+tile.ore.redstone.glowing.granite.desc=Red dust embedded in granite. Emits a faint light.
+
+tile.ore.diamond.stone.name=Stone Diamond Ore
+tile.ore.diamond.stone.desc=A chunk of diamond embedded in stone.
+tile.ore.diamond.basalt.name=Basalt Diamond Ore
+tile.ore.diamond.basalt.desc=A chunk of diamond embedded in basalt.
+tile.ore.diamond.limestone.name=Limestone Diamond Ore
+tile.ore.diamond.limestone.desc=A chunk of diamond embedded in limestone.
+tile.ore.diamond.granite.name=Granite Diamond Ore
+tile.ore.diamond.granite.desc=A chunk of diamond embedded in granite.
+
+tile.ore.nethercoal.netherrack.name=Nether Coal Ore
+tile.ore.nethercoal.netherrack.desc=A lump of Nether Coal embedded in netherrack.
+
+tile.block.coal.name=Block of Coal
+tile.block.coal.desc=A solid block of coal.
+tile.block.iron.name=Block of Iron
+tile.block.iron.desc=A solid block of iron. Heavy!
+tile.block.gold.name=Block of Gold
+tile.block.gold.desc=A solid block of gold, for flaunting your bling.
+tile.block.lapis.name=Block of Lapis Lazuli
+tile.block.lapis.desc=A solid block of lapis lazuli.
+tile.block.redstone.name=Block of Redstone
+tile.block.redstone.desc=A solid block of redstone.
+tile.block.diamond.name=Block of Diamond
+tile.block.diamond.desc=A solid block of diamond. Well done you.
+tile.block.nethercoal.name=Block of Nether Coal
+tile.block.nethercoal.desc=A solid block of Nether Coal.
+tile.block.steel.name=Block of Steel
+tile.block.steel.desc=A solid block of steel.
+tile.block.quartz.name=Block of Quartz
+tile.block.quartz.desc=A solid block of quartz.
+tile.block.olivine.name=Block of Olivine
+tile.block.olivine.desc=A solid block of olivine.
+tile.block.charcoal.name=Block of Charcoal
+tile.block.charcoal.desc=A solid block of charcoal.
+
+tile.wire.redstone.name=Redstone Wire
+tile.wire.redstone.desc=A strand of redstone dust laid on the ground.
+
+tile.torch.redstone.idle.name=Redstone Torch
+tile.torch.redstone.idle.desc=Emits a constant redstone signal.
+tile.torch.redstone.active.name=Redstone Torch
+tile.torch.redstone.active.desc=Emits a constant redstone signal.
+
+tile.button.stone.name=Stone Button
+tile.button.stone.desc=Emits a brief redstone signal when pressed.
+
+tile.lever.cobble.stone.name=Cobblestone Lever
+tile.lever.cobble.stone.desc=Allows turning a redstone signal on or off.
+
+tile.pressureplate.stone.name=Stone Pressure Plate
+tile.pressureplate.stone.desc=Emits a redstone signal when living creatures step on it.
+tile.pressureplate.planks.oak.name=Wooden Pressure Plate
+tile.pressureplate.planks.oak.desc=Emits a redstone signal when anything steps on it.
+tile.pressureplate.cobble.stone.name=Cobblestone Pressure Plate
+tile.pressureplate.cobble.stone.desc=Emits a redstone signal when players step on it.
+
+tile.motionsensor.idle.name=Motion Sensor
+tile.motionsensor.idle.desc=Emits a redstone signal when something moves past it.
+tile.motionsensor.active.name=Active Motion Sensor
+tile.motionsensor.active.desc=Emits a redstone signal when something moves past it.
+
+tile.repeater.idle.name=Redstone Repeater
+tile.repeater.idle.desc=Repeats redstone signals over a distance.
+tile.repeater.active.name=Redstone Repeater
+tile.repeater.active.desc=Repeats redstone signals over a distance.
+
+tile.piston.base.name=Piston
+tile.piston.base.desc=Pushes blocks but does not pull them.
+tile.piston.base.sticky.name=Sticky Piston
+tile.piston.base.sticky.desc=Pushes and pulls blocks.
+tile.piston.head.name=Piston Head
+tile.piston.head.desc=The pushy part of the piston.
+tile.piston.moving.name=Piston Mover
+tile.piston.moving.desc=The invisible moving part of the piston.
+
+tile.noteblock.name=Note Block
+tile.noteblock.desc=Plays a musical note when powered.
+
+tile.rail.name=Rail
+tile.rail.desc=For rapid horizontal movement via minecart.
+tile.rail.powered.name=Powered Rail
+tile.rail.powered.desc=Makes minecarts go faster when powered.
+tile.rail.detector.name=Detector Rail
+tile.rail.detector.desc=Emits a redstone signal when a minecart crosses it.
+
+tile.spikes.name=Spike Trap
+tile.spikes.desc=Deactivates when powered. Technically a war crime.
+
+tile.dispenser.cobble.stone.name=Dispenser
+tile.dispenser.cobble.stone.desc=Fires items out of the hole in the front.
+
+tile.trapdoor.planks.oak.name=Oak Trapdoor
+tile.trapdoor.planks.oak.desc=Like a door, but flat.
+tile.trapdoor.iron.name=Iron Trapdoor
+tile.trapdoor.iron.desc=Like a door, but flat and made of iron.
+tile.trapdoor.glass.name=Glass Trapdoor
+tile.trapdoor.glass.desc=Useless at its job.
+
+tile.tnt.name=TNT
+tile.tnt.desc=Goes off with a bang.
+
+tile.door.planks.oak.bottom.name=Bottom Wooden Door
+tile.door.planks.oak.bottom.desc=/give Honeydew 64 46
+tile.door.planks.oak.top.name=Top Wooden Door
+tile.door.planks.oak.top.desc=Oh, wait, that's not TNT, that's half a door.
+tile.door.iron.bottom.name=Bottom Iron Door
+tile.door.iron.bottom.desc=Not much good on its own.
+tile.door.iron.top.name=Top Iron Door
+tile.door.iron.top.desc=Could use a friend.
+
+tile.mesh.name=Mesh Block
+tile.mesh.desc=Allows items to pass through but nothing else.
+tile.mesh.gold.name=Gold Mesh Block
+tile.mesh.gold.desc=Allows a specified item to pass through but nothing else.
+
+tile.bed.name=Bed
+tile.bed.desc=Bed!
+tile.seat.name=Seat
+tile.seat.desc=Sit down and relax.
+
+tile.cobweb.name=Cobweb
+tile.cobweb.desc=Sticky silky strands woven by spiders.
+
+tile.fire.name=Fire
+tile.fire.desc=Ouch, fire hot!
+
+tile.mobspawner.name=Mob Spawner
+tile.mobspawner.desc=A cage filled with horror.
+tile.mobspawner.deactivated.name=Deactivated Mob Spawner
+tile.mobspawner.deactivated.desc=A cage no longer filled with horror.
+
+tile.workbench.name=Workbench
+tile.workbench.desc=For bigger projects.
+
+tile.furnace.stone.idle.name=Furnace
+tile.furnace.stone.idle.desc=For melting, heating, and cooking blocks and items.
+tile.furnace.stone.active.name=Lit Furnace
+tile.furnace.stone.active.desc=For melting, heating, and cooking blocks and items.
+tile.furnace.blast.idle.name=Blast Furnace
+tile.furnace.blast.idle.desc=Burns hotter than a normal furnace.
+tile.furnace.blast.active.name=Lit Blast Furnace
+tile.furnace.blast.active.desc=Burns hotter than a normal furnace.
+
+tile.trommel.idle.name=Trommel
+tile.trommel.idle.desc=A machine that separates dirt from other useful items.
+tile.trommel.active.name=Lit Trommel
+tile.trommel.active.desc=A machine that separates dirt from other useful items.
+
+tile.chest.planks.oak.name=Wooden Chest
+tile.chest.planks.oak.desc=A place to store your items.
+tile.chest.planks.oak.painted.name=Mystery Wooden Chest
+tile.chest.planks.oak.painted.desc=How did you get this?!
+tile.chest.planks.oak.painted.black.name=Black Wooden Chest
+tile.chest.planks.oak.painted.black.desc=A place to store your items.
+tile.chest.planks.oak.painted.red.name=Red Wooden Chest
+tile.chest.planks.oak.painted.red.desc=A place to store your items.
+tile.chest.planks.oak.painted.green.name=Green Wooden Chest
+tile.chest.planks.oak.painted.green.desc=A place to store your items.
+tile.chest.planks.oak.painted.brown.name=Brown Wooden Chest
+tile.chest.planks.oak.painted.brown.desc=A place to store your items.
+tile.chest.planks.oak.painted.blue.name=Blue Wooden Chest
+tile.chest.planks.oak.painted.blue.desc=A place to store your items.
+tile.chest.planks.oak.painted.purple.name=Purple Wooden Chest
+tile.chest.planks.oak.painted.purple.desc=A place to store your items.
+tile.chest.planks.oak.painted.cyan.name=Cyan Wooden Chest
+tile.chest.planks.oak.painted.cyan.desc=A place to store your items.
+tile.chest.planks.oak.painted.silver.name=Light Gray Wooden Chest
+tile.chest.planks.oak.painted.silver.desc=A place to store your items.
+tile.chest.planks.oak.painted.gray.name=Gray Wooden Chest
+tile.chest.planks.oak.painted.gray.desc=A place to store your items.
+tile.chest.planks.oak.painted.pink.name=Pink Wooden Chest
+tile.chest.planks.oak.painted.pink.desc=A place to store your items.
+tile.chest.planks.oak.painted.lime.name=Lime Wooden Chest
+tile.chest.planks.oak.painted.lime.desc=A place to store your items.
+tile.chest.planks.oak.painted.yellow.name=Yellow Wooden Chest
+tile.chest.planks.oak.painted.yellow.desc=A place to store your items.
+tile.chest.planks.oak.painted.lightblue.name=Light Blue Wooden Chest
+tile.chest.planks.oak.painted.lightblue.desc=A place to store your items.
+tile.chest.planks.oak.painted.magenta.name=Magenta Wooden Chest
+tile.chest.planks.oak.painted.magenta.desc=A place to store your items.
+tile.chest.planks.oak.painted.orange.name=Orange Wooden Chest
+tile.chest.planks.oak.painted.orange.desc=A place to store your items.
+tile.chest.planks.oak.painted.white.name=White Wooden Chest
+tile.chest.planks.oak.painted.white.desc=A place to store your items.
+tile.chest.legacy.name=Legacy Chest
+
+tile.crops.wheat.name=Wheat Crops
+tile.crops.wheat.desc=Wheat, plucked from the ground.
+tile.crops.pumpkin.name=Pumpkin Crops
+tile.crops.pumpkin.desc=A ripening pumpkin, plucked from the ground.
+
+tile.farmland.dirt.name=Farmland
+tile.farmland.dirt.desc=Tilled soil for growing crops.
+
+tile.sign.post.planks.oak.name=Oak Signpost
+tile.sign.post.planks.oak.desc=A free-standing oak sign.
+tile.sign.wall.planks.oak.name=Oak Wall Sign
+tile.sign.wall.planks.oak.desc=An oak sign placed on a wall.
+
+tile.layer.snow.name=Snow Layer
+tile.layer.snow.desc=A flat layer of snow.
+tile.layer.leaves.oak.name=Leaf Pile
+tile.layer.leaves.oak.desc=A pile of leaves.
+tile.layer.slate.name=Slate Layer
+tile.layer.slate.desc=A flat sheet of slate.
+
+tile.ice.name=Ice
+tile.ice.desc=Slippery frozen water.
+tile.ice.perma.name=Perma-Ice
+tile.ice.perma.desc=Ice imbued with the essence of stone.
+
+tile.block.snow.name=Block of Snow
+tile.block.snow.desc=Lots of snow compacted into a block.
+
+tile.cactus.name=Cactus
+tile.cactus.desc=A spiky plant that grows in the desert.
+
+tile.block.clay.name=Block of Clay
+tile.block.clay.desc=A block of compacted clay.
+
+tile.sugarcane.name=Sugarcane
+tile.sugarcane.desc=Not as sweet as you.
+
+tile.block.sugarcane.name=Block of Sugarcane
+tile.block.sugarcane.desc=One very big sugar cube.
+tile.block.sugarcane.baked.name=Baked Block of Sugarcane
+tile.block.sugarcane.baked.desc=Smells absolutely delicious.
+
+tile.jukebox.name=Jukebox
+tile.jukebox.desc=Plays your favourite tunes, assuming you have the right record.
+
+tile.pumpkin.name=Pumpkin
+tile.pumpkin.desc=An orange squash that grows in the wild.
+tile.pumpkin.carved.idle.name=Carved Pumpkin
+tile.pumpkin.carved.idle.desc=An orange squash with a spooky face.
+tile.pumpkin.carved.active.name=Jack 'o' Lantern
+tile.pumpkin.carved.active.desc=An orange squash with a spooky face, lit by a torch.
+
+tile.netherrack.name=Netherrack
+tile.netherrack.desc=Dark red rock that burns forever.
+tile.netherrack.igneous.name=Igneous Netherrack
+tile.netherrack.igneous.desc=Extreme heat has made this rock glow from inside.
+
+tile.soulsand.name=Soul Sand
+tile.soulsand.desc=Squishy brown sand that's tough to walk through.
+
+tile.glowstone.name=Block of Glowstone
+tile.glowstone.desc=Constantly emits a strong yellowish light.
+
+tile.portal.nether.name=Nether Portal
+tile.portal.nether.desc=A portal to the Nether.
+tile.portal.paradise.name=Paradise Portal
+tile.portal.paradise.desc=A portal to Paradise.
+
+tile.cake.name=Cake
+tile.cake.desc=I just can't cake it any more.
+
+tile.lamp.idle.name=Lamp
+tile.lamp.idle.desc=How did you get this?!
+tile.lamp.idle.black.name=Black Lamp
+tile.lamp.idle.black.desc=A redstone lamp that can emit light. Tinted black.
+tile.lamp.idle.red.name=Red Lamp
+tile.lamp.idle.red.desc=A redstone lamp that can emit light. Tinted red.
+tile.lamp.idle.green.name=Green Lamp
+tile.lamp.idle.green.desc=A redstone lamp that can emit light. Tinted green.
+tile.lamp.idle.brown.name=Brown Lamp
+tile.lamp.idle.brown.desc=A redstone lamp that can emit light. Tinted brown.
+tile.lamp.idle.blue.name=Blue Lamp
+tile.lamp.idle.blue.desc=A redstone lamp that can emit light. Tinted blue.
+tile.lamp.idle.purple.name=Purple Lamp
+tile.lamp.idle.purple.desc=A redstone lamp that can emit light. Tinted purple.
+tile.lamp.idle.cyan.name=Cyan Lamp
+tile.lamp.idle.cyan.desc=A redstone lamp that can emit light. Tinted cyan.
+tile.lamp.idle.silver.name=Light Gray Lamp
+tile.lamp.idle.silver.desc=A redstone lamp that can emit light. Tinted light gray.
+tile.lamp.idle.gray.name=Gray Lamp
+tile.lamp.idle.gray.desc=A redstone lamp that can emit light. Tinted gray.
+tile.lamp.idle.pink.name=Pink Lamp
+tile.lamp.idle.pink.desc=A redstone lamp that can emit light. Tinted pink.
+tile.lamp.idle.lime.name=Lime Lamp
+tile.lamp.idle.lime.desc=A redstone lamp that can emit light. Tinted lime.
+tile.lamp.idle.yellow.name=Yellow Lamp
+tile.lamp.idle.yellow.desc=A redstone lamp that can emit light. Tinted yellow.
+tile.lamp.idle.lightblue.name=Light Blue Lamp
+tile.lamp.idle.lightblue.desc=A redstone lamp that can emit light. Tinted light blue.
+tile.lamp.idle.magenta.name=Magenta Lamp
+tile.lamp.idle.magenta.desc=A redstone lamp that can emit light. Tinted magenta.
+tile.lamp.idle.orange.name=Orange Lamp
+tile.lamp.idle.orange.desc=A redstone lamp that can emit light. Tinted orange.
+tile.lamp.idle.white.name=White Lamp
+tile.lamp.idle.white.desc=A redstone lamp that can emit light.
+
+tile.lamp.active.name=Lit Lamp
+tile.lamp.active.desc=How did you get this?!
+tile.lamp.active.black.name=Lit Black Lamp
+tile.lamp.active.black.desc=A redstone lamp that emits light. Tinted black.
+tile.lamp.active.red.name=Lit Red Lamp
+tile.lamp.active.red.desc=A redstone lamp that emits light. Tinted red.
+tile.lamp.active.green.name=Lit Green Lamp
+tile.lamp.active.green.desc=A redstone lamp that emits light. Tinted green.
+tile.lamp.active.brown.name=Lit Brown Lamp
+tile.lamp.active.brown.desc=A redstone lamp that emits light. Tinted brown.
+tile.lamp.active.blue.name=Lit Blue Lamp
+tile.lamp.active.blue.desc=A redstone lamp that emits light. Tinted blue.
+tile.lamp.active.purple.name=Lit Purple Lamp
+tile.lamp.active.purple.desc=A redstone lamp that emits light. Tinted purple.
+tile.lamp.active.cyan.name=Lit Cyan Lamp
+tile.lamp.active.cyan.desc=A redstone lamp that emits light. Tinted cyan.
+tile.lamp.active.silver.name=Lit Light Gray Lamp
+tile.lamp.active.silver.desc=A redstone lamp that emits light. Tinted light gray.
+tile.lamp.active.gray.name=Lit Gray Lamp
+tile.lamp.active.gray.desc=A redstone lamp that emits light. Tinted gray.
+tile.lamp.active.pink.name=Lit Pink Lamp
+tile.lamp.active.pink.desc=A redstone lamp that emits light. Tinted pink.
+tile.lamp.active.lime.name=Lit Lime Lamp
+tile.lamp.active.lime.desc=A redstone lamp that emits light. Tinted lime.
+tile.lamp.active.yellow.name=Yellow Lamp
+tile.lamp.active.yellow.desc=A redstone lamp that emits light. Tinted yellow.
+tile.lamp.active.lightblue.name=Light Blue Lamp
+tile.lamp.active.lightblue.desc=A redstone lamp that emits light. Tinted light blue.
+tile.lamp.active.magenta.name=Magenta Lamp
+tile.lamp.active.magenta.desc=A redstone lamp that emits light. Tinted magenta.
+tile.lamp.active.orange.name=Orange Lamp
+tile.lamp.active.orange.desc=A redstone lamp that emits light. Tinted orange.
+tile.lamp.active.white.name=White Lamp
+tile.lamp.active.white.desc=A redstone lamp that emits light.
+
+tile.stone.polished.name=Polished Stone
+tile.stone.polished.desc=A polished block of stone.
+tile.granite.polished.name=Polished Granite
+tile.granite.polished.desc=A polished block of granite.
+tile.limestone.polished.name=Polished Limestone
+tile.limestone.polished.desc=A polished block of limestone.
+tile.basalt.polished.name=Polished Basalt
+tile.basalt.polished.desc=A polished block of basalt.
+tile.slate.polished.name=Polished Slate
+tile.slate.polished.desc=A polished block of slate.
+
+tile.candle.wax.soul.name=Soul Wax Candle
+tile.candle.wax.soul.desc=A waxy brown candle that glows with an unnatural light.
+
+tile.basket.name=Basket
+tile.basket.desc=A wicker container for holding items.
+
+tile.overlay.pebbles.name=Pebbles
+tile.overlay.pebbles.desc=A cluster of pebbles.
+
+tile.fence.chainlink.name=Chainlink Fence
+tile.fence.chainlink.desc=A fence made of interconnected chain links. Can be climbed!
+tile.fence.paper_wall.name=Paper Wall Fence
+tile.fence.paper_wall.desc=A fence made of delicate paper. Be careful!
+
+tile.lantern.firefly.green.name=Green Firefly Lantern
+tile.lantern.firefly.green.desc=A glass jar containing a swarm of green fireflies.
+tile.lantern.firefly.orange.name=Orange Firefly Lantern
+tile.lantern.firefly.orange.desc=A glass jar containing a swarm of orange fireflies.
+tile.lantern.firefly.blue.name=Blue Firefly Lantern
+tile.lantern.firefly.blue.desc=A glass jar containing a swarm of blue fireflies.
+tile.lantern.firefly.red.name=Red Firefly Lantern
+tile.lantern.firefly.red.desc=A glass jar containing a swarm of red fireflies.
+
+tile.flag.name=Flag
+tile.flag.desc=A flag to mark your territory.
+
+tile.paper_wall.name=Paper Wall
 tile.paper_wall.desc=A wall made of delicate paper. Be careful!
\ No newline at end of file
diff --git a/src/common/resources/recipes/workbench.json b/src/common/resources/recipes/workbench.json
index 353211ba8..823600c88 100644
--- a/src/common/resources/recipes/workbench.json
+++ b/src/common/resources/recipes/workbench.json
@@ -6652,6 +6652,31 @@
     },
     "consumeContainers": true
   },
+  {
+    "name": "minecraft:workbench/mesh_gold",
+    "type": "minecraft:crafting/shaped",
+    "pattern": [
+      "###",
+      "# #",
+      "###"
+    ],
+    "symbols": [
+      {
+        "symbol": "#",
+        "stack": {
+          "id": 16394,
+          "amount": 1,
+          "meta": 0
+        }
+      }
+    ],
+    "result": {
+      "id": 601,
+      "amount": 8,
+      "meta": 0
+    },
+    "consumeContainers": true
+  },
   {
     "name": "minecraft:workbench/cobweb",
     "type": "minecraft:crafting/shaped",
diff --git a/src/main/java/net/minecraft/client/gui/GuiConnectToIP.java b/src/main/java/net/minecraft/client/gui/GuiConnectToIP.java
index a53a38433..468a8d6f1 100644
--- a/src/main/java/net/minecraft/client/gui/GuiConnectToIP.java
+++ b/src/main/java/net/minecraft/client/gui/GuiConnectToIP.java
@@ -1,6 +1,7 @@
 package net.minecraft.client.gui;
 
 import net.minecraft.core.lang.I18n;
+import net.minecraft.core.net.ServerAddress;
 import org.lwjgl.input.Keyboard;
 
 // Referenced classes of package net.minecraft.src:
@@ -55,48 +56,11 @@ public class GuiConnectToIP extends GuiScreen
         } else
         if(button.id == 0)
         {
-            String s = field_22111_h.getText().trim();
-            mc.gameSettings.lastServer.value = s.replaceAll(":", "_");
+            String serverUrl = field_22111_h.getText().trim();
+            mc.gameSettings.lastServer.value = serverUrl.replaceAll(":", "_");
             mc.gameSettings.saveOptions();
-            String as[] = s.split(":");
-            if(s.startsWith("["))
-            {
-                int i = s.indexOf("]");
-                if(i > 0)
-                {
-                    String s1 = s.substring(1, i);
-                    String s2 = s.substring(i + 1).trim();
-                    if(s2.startsWith(":") && s2.length() > 0)
-                    {
-                        s2 = s2.substring(1);
-                        as = new String[2];
-                        as[0] = s1;
-                        as[1] = s2;
-                    } else
-                    {
-                        as = new String[1];
-                        as[0] = s1;
-                    }
-                }
-            }
-            if(as.length > 2)
-            {
-                as = new String[1];
-                as[0] = s;
-            }
-            mc.displayGuiScreen(new GuiConnecting(mc, as[0], as.length <= 1 ? 25565 : parseIntWithDefault(as[1], 25565)));
-        }
-    }
-
-    private int parseIntWithDefault(String s, int i)
-    {
-        try
-        {
-            return Integer.parseInt(s.trim());
-        }
-        catch(Exception exception)
-        {
-            return i;
+            ServerAddress address = ServerAddress.resolveServerIP(serverUrl);
+            mc.displayGuiScreen(new GuiConnecting(mc, address.getIP(), address.getPort()));
         }
     }
 
diff --git a/src/main/java/net/minecraft/client/gui/GuiSelectServer.java b/src/main/java/net/minecraft/client/gui/GuiSelectServer.java
index 2fdbb1da4..753d91a59 100644
--- a/src/main/java/net/minecraft/client/gui/GuiSelectServer.java
+++ b/src/main/java/net/minecraft/client/gui/GuiSelectServer.java
@@ -7,6 +7,7 @@ import net.minecraft.client.render.tessalator.TessellatorStandard;
 import net.minecraft.core.Global;
 import net.minecraft.core.lang.I18n;
 import net.minecraft.core.net.SavedServerList;
+import net.minecraft.core.net.ServerAddress;
 import net.minecraft.core.net.ServerData;
 import net.minecraft.core.util.helper.MathHelper;
 
@@ -194,7 +195,8 @@ public class GuiSelectServer extends GuiScreen {
 		}
 		selected = true;
 		ServerData server = savedServerList.servers.get(selectedServer);
-		mc.displayGuiScreen(new GuiConnecting(mc, server.getHostName(), server.getPort()));
+		ServerAddress address = server.getServerAddress();
+		mc.displayGuiScreen(new GuiConnecting(mc, address.getIP(), address.getPort()));
 	}
 
 	public void deleteWorld(boolean flag, int i) {
diff --git a/src/main/java/net/minecraft/client/net/handler/NetPingHandler.java b/src/main/java/net/minecraft/client/net/handler/NetPingHandler.java
index d03cd5491..810b0601d 100644
--- a/src/main/java/net/minecraft/client/net/handler/NetPingHandler.java
+++ b/src/main/java/net/minecraft/client/net/handler/NetPingHandler.java
@@ -2,6 +2,7 @@ package net.minecraft.client.net.handler;
 
 import net.minecraft.client.gui.GuiSelectServer;
 import net.minecraft.core.net.NetworkManager;
+import net.minecraft.core.net.ServerAddress;
 import net.minecraft.core.net.ServerData;
 import net.minecraft.core.net.handler.NetHandler;
 import net.minecraft.core.net.packet.Packet;
@@ -24,7 +25,8 @@ public class NetPingHandler
         throws IOException {
         this.gui = gui;
         this.server = server;
-        Socket socket = new Socket(InetAddress.getByName(server.getHostName()), server.getPort());
+        ServerAddress address = server.getServerAddress();
+        Socket socket = new Socket(InetAddress.getByName(address.getIP()), address.getPort());
         netManager = new NetworkManager(socket, "Ping", this, true);
     }
 
diff --git a/src/main/java/net/minecraft/client/net/thread/ThreadPingServer.java b/src/main/java/net/minecraft/client/net/thread/ThreadPingServer.java
index 7530c497c..4e7b5fe75 100644
--- a/src/main/java/net/minecraft/client/net/thread/ThreadPingServer.java
+++ b/src/main/java/net/minecraft/client/net/thread/ThreadPingServer.java
@@ -3,6 +3,7 @@ package net.minecraft.client.net.thread;
 import net.minecraft.client.gui.GuiSelectServer;
 import net.minecraft.client.net.handler.NetPingHandler;
 import net.minecraft.core.Global;
+import net.minecraft.core.net.ServerAddress;
 import net.minecraft.core.net.ServerData;
 import net.minecraft.core.net.handler.NetHandler;
 import net.minecraft.core.net.packet.Packet254PingHandshake;
@@ -18,7 +19,8 @@ public class ThreadPingServer
     public ThreadPingServer(GuiSelectServer gui, ServerData server) {
         this.gui = gui;
         this.server = server;
-        this.setName("ThreadPingServer - " + server.getHostName() + ":" + server.getPort());
+        ServerAddress address = server.getServerAddress();
+        this.setName("ThreadPingServer - " + address.getIP() + ":" + address.getPort());
     }
 
     public ServerData getServer() {
@@ -39,8 +41,9 @@ public class ThreadPingServer
 
     @Override
     public void run() {
-        String hostName = server.getHostName();
-        int port = server.getPort();
+        ServerAddress address = this.server.getServerAddress();
+        String hostName = address.getIP();
+        int port = address.getPort();
 
         try {
             netHandler = new NetPingHandler(gui, server);
diff --git a/src/main/java/net/minecraft/client/render/TileEntityRenderDispatcher.java b/src/main/java/net/minecraft/client/render/TileEntityRenderDispatcher.java
index 74ee6bf42..8a72d7ce2 100644
--- a/src/main/java/net/minecraft/client/render/TileEntityRenderDispatcher.java
+++ b/src/main/java/net/minecraft/client/render/TileEntityRenderDispatcher.java
@@ -22,6 +22,7 @@ public class TileEntityRenderDispatcher
         renderers.put(TileEntityMobSpawner.class, new TileEntityRendererMobSpawner());
         renderers.put(TileEntityPistonMoving.class, new TileEntityRendererPiston());
         renderers.put(TileEntityFlowerJar.class, new TileEntityRendererFlowerJar());
+        renderers.put(TileEntityMeshGold.class, new TileEntityRendererMesh());
 
         for (TileEntityRenderer<?> tileEntityRenderer : renderers.values())
         {
diff --git a/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java b/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java
index beedcc733..e4191a3b8 100644
--- a/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java
+++ b/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java
@@ -302,6 +302,7 @@ public class BlockModelDispatcher
         addDispatch(new BlockModelDoor<>(Block.doorIronTop).withTextures("minecraft:block/trapdoor_iron_top", "minecraft:block/door_iron_top"));
 
         addDispatch(new BlockModelTransparent<>(Block.mesh, true).withTextures("minecraft:block/mesh"));
+        addDispatch(new BlockModelTransparent<>(Block.meshGold, true).withTextures("minecraft:block/mesh_gold"));
 
         addDispatch(new BlockModelBed<>(Block.bed));
         addDispatch(new BlockModelSeat<>(Block.seat).withTextures("minecraft:block/seat_top", "minecraft:block/planks_oak", "minecraft:block/seat_side"));
diff --git a/src/main/java/net/minecraft/client/render/entity/ItemEntityRenderer.java b/src/main/java/net/minecraft/client/render/entity/ItemEntityRenderer.java
index 247f66636..45e614f14 100644
--- a/src/main/java/net/minecraft/client/render/entity/ItemEntityRenderer.java
+++ b/src/main/java/net/minecraft/client/render/entity/ItemEntityRenderer.java
@@ -1,5 +1,6 @@
 package net.minecraft.client.render.entity;
 
+import net.minecraft.client.Minecraft;
 import java.util.Random;
 
 import net.minecraft.client.render.block.color.BlockColorDispatcher;
@@ -8,6 +9,7 @@ import org.lwjgl.opengl.GL11;
 
 import net.minecraft.core.block.Block;
 import net.minecraft.client.render.RenderBlocks;
+import net.minecraft.client.render.block.model.BlockModel;
 import net.minecraft.client.render.item.model.ItemModelDispatcher;
 import net.minecraft.client.render.tessalator.Tessellator;
 import net.minecraft.client.render.tessalator.TessellatorStandard;
@@ -25,7 +27,7 @@ import static org.lwjgl.opengl.GL11.glPushMatrix;
 
 public class ItemEntityRenderer extends EntityRenderer<EntityItem>
 {
-	private final RenderBlocks renderBlocks;
+	public final RenderBlocks renderBlocks;
 	private final Random random;
 	public boolean useColor;
 
@@ -46,6 +48,8 @@ public class ItemEntityRenderer extends EntityRenderer<EntityItem>
 	}
 
 	public void doRender(Tessellator tessellator, final EntityItem entity, final double x, final double y, final double z, final float yaw, final float partialTick) {
+		final Minecraft mc = Minecraft.getMinecraft(this);
+		float brightness = entity.getBrightness(partialTick);
 		random.setSeed(187L);
 		final ItemStack itemstack = entity.item;
 		if(itemstack == null) {
@@ -56,8 +60,8 @@ public class ItemEntityRenderer extends EntityRenderer<EntityItem>
 			return;
 		}
 		glPushMatrix();
-		final float bobbingOffset = MathHelper.sin((entity.age + partialTick) / 10F + entity.field_804_d) * 0.1F + 0.1F;
-		final float f3 = (float) Math.toDegrees(((entity.age + partialTick) / 20F + entity.field_804_d));
+		final float bobbingOffset = MathHelper.sin((entity.age + partialTick) / 10F + entity.initialRotation) * 0.1F + 0.1F;
+		final float f3 = (float) Math.toDegrees(((entity.age + partialTick) / 20F + entity.initialRotation));
 		byte renderCount = 1;
 		if (entity.item.stackSize > 1) {
 			renderCount = 2;
@@ -70,7 +74,8 @@ public class ItemEntityRenderer extends EntityRenderer<EntityItem>
 		}
 		GL11.glTranslatef((float) x, (float) y + bobbingOffset, (float) z);
 		GL11.glEnable(32826 /*GL_RESCALE_NORMAL_EXT*/);
-		ItemModelDispatcher.getInstance().getDispatch(item).renderAsItemEntity(TessellatorStandard.instance, entity, renderBlocks, random, itemstack, renderCount, f3, partialTick);
+		BlockModel.setRenderBlocks(renderBlocks);
+		ItemModelDispatcher.getInstance().getDispatch(item).renderAsItemEntity(TessellatorStandard.instance, entity, random, itemstack, renderCount, f3, brightness, partialTick);
 		GL11.glDisable(32826 /*GL_RESCALE_NORMAL_EXT*/);
 		GL11.glPopMatrix();
 	}
diff --git a/src/main/java/net/minecraft/client/render/item/model/ItemModel.java b/src/main/java/net/minecraft/client/render/item/model/ItemModel.java
index a136b6bd8..8ef5c6df8 100644
--- a/src/main/java/net/minecraft/client/render/item/model/ItemModel.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModel.java
@@ -1,17 +1,18 @@
 package net.minecraft.client.render.item.model;
 
+import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.FontRenderer;
 import net.minecraft.client.render.ItemRenderer;
-import net.minecraft.client.render.RenderBlocks;
 import net.minecraft.client.render.RenderEngine;
+import net.minecraft.client.render.stitcher.IconCoordinate;
 import net.minecraft.client.render.tessalator.Tessellator;
 import net.minecraft.client.render.stitcher.IconCoordinate;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.EntityLiving;
 import net.minecraft.core.entity.player.EntityPlayer;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
+import org.jetbrains.annotations.Nullable;
 
 import java.util.Random;
 
@@ -22,9 +23,11 @@ public abstract class ItemModel {
     }
     public abstract void renderItemFirstPerson(Tessellator tessellator, ItemRenderer renderer, EntityPlayer player, ItemStack stack, float partialTick);
     public void renderItem(Tessellator tessellator, ItemRenderer renderer, EntityLiving entityLiving, ItemStack itemStack){
-        renderItem(tessellator, renderer, entityLiving, itemStack, true);
+        final Minecraft mc = Minecraft.getMinecraft(this);
+        float brightness = entityLiving.getBrightness(1.0f);
+        renderItem(tessellator, renderer, itemStack, entityLiving, brightness, true);
     }
-    public abstract void renderItem(Tessellator tessellator, ItemRenderer renderer, Entity entity, ItemStack itemstack, boolean handheldTransform);
+    public abstract void renderItem(Tessellator tessellator, ItemRenderer renderer, ItemStack itemstack, @Nullable Entity entity, float brightness, boolean handheldTransform);
     public abstract void renderItemThirdPerson(Tessellator tessellator, ItemRenderer renderer, Entity entity, ItemStack itemstack, boolean handheldTransform);
     public void renderItemIntoGui(Tessellator tessellator, FontRenderer fontrenderer, RenderEngine renderengine, ItemStack itemstack, int x, int y, float alpha) {
         renderItemIntoGui(tessellator, fontrenderer, renderengine, itemstack, x, y, 1.0f, alpha);
@@ -35,6 +38,7 @@ public abstract class ItemModel {
     }
 
     public abstract void renderItemOverlayIntoGUI(Tessellator tessellator, FontRenderer fontrenderer, RenderEngine renderengine, ItemStack itemstack, int x, int y, String override, float alpha);
-    public abstract void renderAsItemEntity(Tessellator tessellator, EntityItem entity, RenderBlocks renderBlocks, Random random, ItemStack itemstack, int renderCount, float yaw, float partialTick);
-    public abstract IconCoordinate getIcon(Entity entity, ItemStack itemStack);
+    public abstract void renderAsItemEntity(Tessellator tessellator, @Nullable Entity entity, Random random, ItemStack itemstack, int renderCount, float yaw, float brightness, float partialTick);
+    public abstract void renderItemInWorld(Tessellator tessellator, ItemStack itemStack, float brightness, float alpha, boolean worldTransform);
+    public abstract IconCoordinate getIcon(@Nullable Entity entity, ItemStack itemStack);
 }
diff --git a/src/main/java/net/minecraft/client/render/item/model/ItemModelBlock.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelBlock.java
index e05cca6d1..365fcdd6c 100644
--- a/src/main/java/net/minecraft/client/render/item/model/ItemModelBlock.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelBlock.java
@@ -3,7 +3,6 @@ package net.minecraft.client.render.item.model;
 import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.FontRenderer;
 import net.minecraft.client.render.ItemRenderer;
-import net.minecraft.client.render.RenderBlocks;
 import net.minecraft.client.render.RenderEngine;
 import net.minecraft.client.render.block.color.BlockColorDispatcher;
 import net.minecraft.client.render.block.model.BlockModel;
@@ -12,12 +11,12 @@ import net.minecraft.client.render.tessalator.Tessellator;
 import net.minecraft.client.render.stitcher.TextureRegistry;
 import net.minecraft.core.block.Block;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.EntityPlayer;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.item.block.ItemBlock;
 import net.minecraft.core.util.helper.MathHelper;
 import net.minecraft.core.util.helper.Side;
+import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
 import java.util.Random;
@@ -35,6 +34,10 @@ public class ItemModelBlock extends ItemModelStandard {
     }
     @Override
     public void renderItemFirstPerson(Tessellator tessellator, ItemRenderer renderer, EntityPlayer player, ItemStack stack, float partialTick) {
+        final Minecraft mc = Minecraft.getMinecraft(this);
+        float brightness = player.getBrightness(1.0f);
+        if (mc.fullbright || itemfullBright) brightness = 1.0f;
+
         final float distanceScale = 0.8F; // Relates to how close the held item renders from the camera
         final float swingProgress = player.getSwingProgress(partialTick);
         final float animationProgress2 = MathHelper.sin(swingProgress * MathHelper.PI);
@@ -57,22 +60,19 @@ public class ItemModelBlock extends ItemModelStandard {
         {
             GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F);
         }
-        renderItem(tessellator, renderer,player, stack, true);
+        renderItem(tessellator, renderer, stack, player, brightness, true);
     }
     @Override
-    public void renderItem(Tessellator tessellator, ItemRenderer renderer, Entity entity, ItemStack itemstack, boolean handheldTransform) {
+    public void renderItem(Tessellator tessellator, ItemRenderer renderer, ItemStack itemstack, @Nullable Entity entity, float brightness, boolean handheldTransform) {
         if(BlockModelDispatcher.getInstance().getDispatch(Block.blocksList[itemstack.itemID]).shouldItemRender3d())
         {
-            Minecraft mc = Minecraft.getMinecraft(this);
             GL11.glEnable(GL_BLEND);
             GL11.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
             TextureRegistry.blockAtlas.bindTexture();
-            float brightness = entity.getBrightness(1.0f);
-            if (mc.fullbright || itemfullBright) brightness = 1.0f;
             BlockModelDispatcher.getInstance().getDispatch(Block.blocksList[itemstack.itemID]).renderBlockOnInventory(tessellator, itemstack.getMetadata(), brightness);
             GL11.glDisable(GL_BLEND);
         } else {
-            super.renderItem(tessellator, renderer, entity, itemstack, handheldTransform);
+            super.renderItem(tessellator, renderer, itemstack, entity, brightness, handheldTransform);
         }
     }
     @Override
@@ -124,11 +124,10 @@ public class ItemModelBlock extends ItemModelStandard {
         GL11.glDisable(GL_BLEND);
     }
     @Override
-    public void renderAsItemEntity(Tessellator tessellator, EntityItem entity, RenderBlocks renderBlocks, Random random, ItemStack itemstack, int renderCount, float yaw, float partialTick) {
+    public void renderAsItemEntity(Tessellator tessellator, @Nullable Entity entity, Random random, ItemStack itemstack, int renderCount, float yaw, float brightness, float partialTick) {
         if (Block.blocksList[itemstack.itemID] != null && BlockModelDispatcher.getInstance().getDispatch(Block.blocksList[itemstack.itemID]).shouldItemRender3d()) {
             GL11.glRotatef(yaw, 0.0F, 1.0F, 0.0F);
             TextureRegistry.blockAtlas.bindTexture();
-            BlockModel.setRenderBlocks(renderBlocks);
             final float itemSize = blockModel.getItemRenderScale();
             GL11.glScalef(itemSize, itemSize, itemSize);
             for (int i = 0; i < renderCount; i++) {
@@ -139,14 +138,41 @@ public class ItemModelBlock extends ItemModelStandard {
                     final float rOffZ = ((random.nextFloat() * 2.0F - 1.0F) * 0.2F) / itemSize;
                     GL11.glTranslatef(rOffX, rOffY, rOffZ);
                 }
-                float brightness = entity.getBrightness(partialTick);
                 if (Minecraft.getMinecraft(this).fullbright || itemfullBright) brightness = 1.0f;
                 blockModel.renderBlockOnInventory(tessellator, itemstack.getMetadata(), brightness);
                 GL11.glPopMatrix();
             }
         } else {
-            super.renderAsItemEntity(tessellator, entity, renderBlocks, random, itemstack, renderCount, yaw, partialTick);
+            super.renderAsItemEntity(tessellator, entity, random, itemstack, renderCount, yaw, brightness, partialTick);
+        }
+    }
+    @Override
+    public void renderItemInWorld(Tessellator tessellator, ItemStack itemStack, float brightness, float alpha, boolean worldTransform) {
+        if (itemStack == null) return;
+        GL11.glEnable(GL_BLEND);
+        GL11.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+        GL11.glEnable(GL_CULL_FACE);
+        if (BlockModelDispatcher.getInstance().getDispatch(Block.blocksList[itemStack.itemID]).shouldItemRender3d()) {
+            GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
+            TextureRegistry.blockAtlas.bindTexture();
+            if (useColor) {
+                final int color = getColor(itemStack);
+                final float r = (color >> 16 & 0xff) / 255F;
+                final float g = (color >> 8 & 0xff) / 255F;
+                final float b = (color & 0xff) / 255F;
+                GL11.glColor4f(r * brightness, g * brightness, b * brightness, alpha);
+            } else {
+                GL11.glColor4f(brightness, brightness, brightness, alpha);
+            }
+            GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
+            BlockModel.renderBlocks.useInventoryTint = useColor;
+            BlockModelDispatcher.getInstance().getDispatch(Block.blocksList[itemStack.itemID]).renderBlockOnInventory(tessellator, itemStack.getMetadata(), brightness, alpha);
+            BlockModel.renderBlocks.useInventoryTint = true;
+        } else {
+            super.renderItemInWorld(tessellator, itemStack, brightness, alpha, worldTransform);
         }
+        GL11.glEnable(GL_CULL_FACE);
+        GL11.glDisable(GL_BLEND);
     }
     @Override
     public int getColor(ItemStack stack)
diff --git a/src/main/java/net/minecraft/client/render/item/model/ItemModelBow.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelBow.java
index 6d7481791..0d1ea90f2 100644
--- a/src/main/java/net/minecraft/client/render/item/model/ItemModelBow.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelBow.java
@@ -31,8 +31,8 @@ public class ItemModelBow extends ItemModelStandard {
     }
 
     @Override
-    public void renderItem(Tessellator tessellator, ItemRenderer renderer, Entity entity, ItemStack itemstack, boolean handheldTransform) {
-        super.renderItem(tessellator, renderer, entity, itemstack, handheldTransform);
+    public void renderItem(Tessellator tessellator, ItemRenderer renderer, ItemStack itemstack, Entity entity, float brightness, boolean handheldTransform) {
+        super.renderItem(tessellator, renderer, itemstack, entity, brightness, handheldTransform);
         Item nextArrow = null;
         if (entity instanceof EntityPlayer){
             EntityPlayer entityplayer = (EntityPlayer)entity;
@@ -46,7 +46,7 @@ public class ItemModelBow extends ItemModelStandard {
         if (nextArrow != null){
             GL11.glRotatef(-90, 0, 0, 1);
             GL11.glTranslatef(-1,0, 0.0625f);
-            ItemModelDispatcher.getInstance().getDispatch(nextArrow).renderItem(tessellator, renderer, entity, itemstack, false);
+            ItemModelDispatcher.getInstance().getDispatch(nextArrow).renderItem(tessellator, renderer, itemstack, entity, brightness, false);
         }
     }
     @Override
diff --git a/src/main/java/net/minecraft/client/render/item/model/ItemModelCoal.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelCoal.java
index 993ae6c53..3d454edaa 100644
--- a/src/main/java/net/minecraft/client/render/item/model/ItemModelCoal.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelCoal.java
@@ -5,6 +5,8 @@ import net.minecraft.client.render.stitcher.TextureRegistry;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
 public class ItemModelCoal extends ItemModelStandard{
     protected IconCoordinate charcoal = TextureRegistry.getTexture("minecraft:item/charcoal");
@@ -13,7 +15,7 @@ public class ItemModelCoal extends ItemModelStandard{
     }
 
     @Override
-    public IconCoordinate getIcon(Entity entity, ItemStack itemStack)
+    public @NotNull IconCoordinate getIcon(@Nullable Entity entity, ItemStack itemStack)
     {
         if(itemStack.getMetadata() == 1)
             return charcoal;
diff --git a/src/main/java/net/minecraft/client/render/item/model/ItemModelDye.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelDye.java
index 06872abbf..c11055ee5 100644
--- a/src/main/java/net/minecraft/client/render/item/model/ItemModelDye.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelDye.java
@@ -2,12 +2,13 @@ package net.minecraft.client.render.item.model;
 
 import net.minecraft.client.render.stitcher.IconCoordinate;
 import net.minecraft.client.render.stitcher.TextureRegistry;
-import net.minecraft.core.Global;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemDye;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.MathHelper;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
 public class ItemModelDye extends ItemModelStandard{
     public static IconCoordinate[] dyeIcons = new IconCoordinate[16];
@@ -20,7 +21,7 @@ public class ItemModelDye extends ItemModelStandard{
         super(item, null);
     }
 
-    public IconCoordinate getIcon(Entity entity, ItemStack itemStack){
+    public @NotNull IconCoordinate getIcon(@Nullable Entity entity, ItemStack itemStack){
         int meta = itemStack.getMetadata();
         return dyeIcons[MathHelper.clamp(meta, 0, 15)];
     }
diff --git a/src/main/java/net/minecraft/client/render/item/model/ItemModelFishingRod.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelFishingRod.java
index 3e5df793a..aaf726aa7 100644
--- a/src/main/java/net/minecraft/client/render/item/model/ItemModelFishingRod.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelFishingRod.java
@@ -6,6 +6,8 @@ import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.player.EntityPlayer;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
 public class ItemModelFishingRod extends ItemModelStandard {
     protected IconCoordinate rodCast = TextureRegistry.getTexture("minecraft:item/tool_fishingrod_cast");
@@ -14,7 +16,7 @@ public class ItemModelFishingRod extends ItemModelStandard {
     }
 
     @Override
-    public IconCoordinate getIcon(Entity entity, ItemStack itemStack){
+    public @NotNull IconCoordinate getIcon(@Nullable Entity entity, ItemStack itemStack){
         if (entity instanceof EntityPlayer){
             // Use the cast fishing rod texture when holding a cast rod
             if(itemStack == ((EntityPlayer) entity).getHeldItem() && ((EntityPlayer) entity).fishEntity != null)
diff --git a/src/main/java/net/minecraft/client/render/item/model/ItemModelLabel.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelLabel.java
index 909e78695..6d0bfc378 100644
--- a/src/main/java/net/minecraft/client/render/item/model/ItemModelLabel.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelLabel.java
@@ -5,6 +5,8 @@ import net.minecraft.client.render.stitcher.TextureRegistry;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
 public class ItemModelLabel extends ItemModelStandard{
     protected IconCoordinate writtenLabel = TextureRegistry.getTexture("minecraft:item/label_written");
@@ -13,7 +15,7 @@ public class ItemModelLabel extends ItemModelStandard{
     }
 
     @Override
-    public IconCoordinate getIcon(Entity entity, ItemStack itemStack)
+    public @NotNull IconCoordinate getIcon(@Nullable Entity entity, ItemStack itemStack)
     {
         if(itemStack.hasCustomName()) {
             return writtenLabel;
diff --git a/src/main/java/net/minecraft/client/render/item/model/ItemModelNone.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelNone.java
index 658fa49cf..f72bbeccc 100644
--- a/src/main/java/net/minecraft/client/render/item/model/ItemModelNone.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelNone.java
@@ -2,14 +2,13 @@ package net.minecraft.client.render.item.model;
 
 import net.minecraft.client.render.FontRenderer;
 import net.minecraft.client.render.ItemRenderer;
-import net.minecraft.client.render.RenderBlocks;
 import net.minecraft.client.render.RenderEngine;
 import net.minecraft.client.render.tessalator.Tessellator;
 import net.minecraft.client.render.stitcher.IconCoordinate;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.EntityPlayer;
 import net.minecraft.core.item.ItemStack;
+import org.jetbrains.annotations.Nullable;
 
 import java.util.Random;
 
@@ -24,7 +23,7 @@ public class ItemModelNone extends ItemModel{
     }
 
     @Override
-    public void renderItem(Tessellator tessellator, ItemRenderer renderer, Entity entity, ItemStack itemstack, boolean handheldTransform) {
+    public void renderItem(Tessellator tessellator, ItemRenderer renderer, ItemStack itemstack, @Nullable Entity entity, float brightness, boolean handheldTransform) {
 
     }
 
@@ -44,12 +43,17 @@ public class ItemModelNone extends ItemModel{
     }
 
     @Override
-    public void renderAsItemEntity(Tessellator tessellator, EntityItem entity, RenderBlocks renderBlocks, Random random, ItemStack itemstack, int renderCount, float yaw, float partialTick) {
+    public void renderAsItemEntity(Tessellator tessellator, @Nullable Entity entity, Random random, ItemStack itemstack, int renderCount, float yaw, float brightness, float partialTick) {
 
     }
 
     @Override
-    public IconCoordinate getIcon(Entity entity, ItemStack itemStack) {
+    public void renderItemInWorld(Tessellator tessellator, ItemStack itemStack, float brightness, float alpha, boolean worldTransform) {
+
+    }
+
+    @Override
+    public IconCoordinate getIcon(@Nullable Entity entity, ItemStack itemStack) {
         return null;
     }
 }
diff --git a/src/main/java/net/minecraft/client/render/item/model/ItemModelQuiver.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelQuiver.java
index fdf0d5aab..6d0c2f662 100644
--- a/src/main/java/net/minecraft/client/render/item/model/ItemModelQuiver.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelQuiver.java
@@ -5,6 +5,8 @@ import net.minecraft.client.render.stitcher.TextureRegistry;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
 public class ItemModelQuiver extends ItemModelStandard{
     protected IconCoordinate quiverFull = TextureRegistry.getTexture("minecraft:item/armor_quiver_full");
@@ -13,7 +15,7 @@ public class ItemModelQuiver extends ItemModelStandard{
     }
 
     @Override
-    public IconCoordinate getIcon(Entity entity, ItemStack itemStack)
+    public @NotNull IconCoordinate getIcon(@Nullable Entity entity, ItemStack itemStack)
     {
         if(itemStack.getMetadata() >= itemStack.getItem().getMaxDamage())
             return quiverFull;
diff --git a/src/main/java/net/minecraft/client/render/item/model/ItemModelStandard.java b/src/main/java/net/minecraft/client/render/item/model/ItemModelStandard.java
index 25e104a4e..f489c9807 100644
--- a/src/main/java/net/minecraft/client/render/item/model/ItemModelStandard.java
+++ b/src/main/java/net/minecraft/client/render/item/model/ItemModelStandard.java
@@ -4,17 +4,17 @@ import net.minecraft.client.Minecraft;
 import net.minecraft.client.render.EntityRenderDispatcher;
 import net.minecraft.client.render.FontRenderer;
 import net.minecraft.client.render.ItemRenderer;
-import net.minecraft.client.render.RenderBlocks;
 import net.minecraft.client.render.RenderEngine;
-import net.minecraft.client.render.tessalator.Tessellator;
 import net.minecraft.client.render.stitcher.IconCoordinate;
 import net.minecraft.client.render.stitcher.TextureRegistry;
+import net.minecraft.client.render.tessalator.Tessellator;
 import net.minecraft.core.entity.Entity;
-import net.minecraft.core.entity.EntityItem;
 import net.minecraft.core.entity.player.EntityPlayer;
 import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.MathHelper;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 import org.lwjgl.opengl.GL11;
 
 import java.awt.*;
@@ -24,6 +24,8 @@ import static org.lwjgl.opengl.GL11.GL_BLEND;
 import static org.lwjgl.opengl.GL11.GL_CULL_FACE;
 import static org.lwjgl.opengl.GL11.GL_DEPTH_TEST;
 import static org.lwjgl.opengl.GL11.GL_LIGHTING;
+import static org.lwjgl.opengl.GL11.GL_ONE_MINUS_SRC_ALPHA;
+import static org.lwjgl.opengl.GL11.GL_SRC_ALPHA;
 import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
 import static org.lwjgl.opengl.GL11.glBlendFunc;
 import static org.lwjgl.opengl.GL11.glDisable;
@@ -51,6 +53,10 @@ public class ItemModelStandard extends ItemModel{
 
     @Override
     public void renderItemFirstPerson(Tessellator tessellator, ItemRenderer renderer, EntityPlayer player, ItemStack stack, float partialTick) {
+        final Minecraft mc = Minecraft.getMinecraft(Minecraft.class);
+        float brightness = player.getBrightness(1f);
+        if (mc.fullbright || itemfullBright) brightness = 1.0f;
+
         final float distanceScale = 0.8F; // Relates to how close the held item renders from the camera
         final float swingProgress = player.getSwingProgress(partialTick);
         final float animationProgress2 = MathHelper.sin(swingProgress * MathHelper.PI);
@@ -71,137 +77,34 @@ public class ItemModelStandard extends ItemModel{
 
         heldTransformFirstPerson(renderer, player, stack);
 
-        renderItem(tessellator, renderer,player, stack, true);
+        renderItem(tessellator, renderer, stack, player, brightness, true);
     }
 
     @Override
-    public void renderItem(Tessellator tessellator, ItemRenderer renderer, Entity entity, ItemStack itemstack, boolean handheldTransform) {
-        final Minecraft mc = Minecraft.getMinecraft(Minecraft.class);
-
-        IconCoordinate tex = getIcon(entity, itemstack);
-        tex.parentAtlas.bindTexture();
-        int tileWidth = tex.width;
-
-        float brightness = entity.getBrightness(1f);
-        if (mc.fullbright || itemfullBright) brightness = 1.0f;
-        if (useColor) {
-            final int color = getColor(itemstack);
-            final float r = (color >> 16 & 0xff) / 255F;
-            final float g = (color >> 8 & 0xff) / 255F;
-            final float b = (color & 0xff) / 255F;
-            GL11.glColor4f(r * brightness, g * brightness, b * brightness, 1.0F);
-        }  else {
-            GL11.glColor4f(brightness, brightness, brightness, 1.0F);
-        }
-
-        double uMin = tex.getIconUMin();
-        double uMax = tex.getIconUMax();
-        double vMin = tex.getIconVMin();
-        double vMax = tex.getIconVMax();
-        double uDiff = uMin - uMax;
-        double vDiff = vMin - vMax;
-        final double width = 1.0D;
-
-        final double foon = 0.5D * tex.parentAtlas.getInverseWidth();
-        final double goon = 0.0625D * (16.0D / tileWidth);
-        GL11.glEnable(32826 /*GL_RESCALE_NORMAL_EXT*/);
+    public void renderItem(Tessellator tessellator, ItemRenderer renderer, ItemStack itemstack, @Nullable Entity entity, float brightness, boolean handheldTransform) {
+        if (itemfullBright) brightness = 1f;
         if(handheldTransform) {
             GL11.glTranslatef(-0.0F, -0.3F, 0.0F);
-            final double handheldScale = 1.5F;
-            GL11.glScaled(handheldScale, handheldScale, handheldScale);
-            GL11.glRotated(50F, 0.0F, 1.0F, 0.0F);
-            GL11.glRotated(335F, 0.0F, 0.0F, 1.0F);
-            GL11.glTranslated(-0.9375F, -0.0625F, 0.0F);
+            final float handheldScale = 1.5F;
+            GL11.glScalef(handheldScale, handheldScale, handheldScale);
+            GL11.glRotatef(50F, 0.0F, 1.0F, 0.0F);
+            GL11.glRotatef(335F, 0.0F, 0.0F, 1.0F);
+            GL11.glTranslatef(-0.9375F, -0.0625F, 0.0F);
         }
-        final double thickness = 0.0625D;
-        final double pixelWidth = 1D/tileWidth;
 
-        // Back Face
-        tessellator.startDrawingQuads();
-        tessellator.setNormal(0.0F, 0.0F, 1.0F);
-        tessellator.addVertexWithUV(0.0D, 0.0D, 0.0D, uMax, vMax);
-        tessellator.addVertexWithUV(width,0.0D, 0.0D, uMin, vMax);
-        tessellator.addVertexWithUV(width,1.0D, 0.0D, uMin, vMin);
-        tessellator.addVertexWithUV(0.0D, 1.0D, 0.0D, uMax, vMin);
-        tessellator.draw();
+        renderItemInWorld(tessellator, itemstack, brightness, 1f, false);
 
-        // Front Face
-        tessellator.startDrawingQuads();
-        tessellator.setNormal(0.0F, 0.0F, -1F);
-        tessellator.addVertexWithUV(0.0D, 1.0D, -thickness, uMax, vMin);
-        tessellator.addVertexWithUV(width,1.0D, -thickness, uMin, vMin);
-        tessellator.addVertexWithUV(width,0.0D, -thickness, uMin, vMax);
-        tessellator.addVertexWithUV(0.0D, 0.0D, -thickness, uMax, vMax);
-        tessellator.draw();
-
-        // Right Sides
-        tessellator.startDrawingQuads();
-        tessellator.setNormal(-1F, 0.0F, 0.0F);
-        for(int i = 0; i < tileWidth; i++)
-        {
-            double texProgress = i * pixelWidth;
-            double u = (uMax + uDiff * texProgress) - foon;
-            double x = width * texProgress;
-            tessellator.addVertexWithUV(x, 0.0D,    -thickness, u, vMax);
-            tessellator.addVertexWithUV(x, 0.0D,    0.0D,       u, vMax);
-            tessellator.addVertexWithUV(x, 1.0D,    0.0D,       u, vMin);
-            tessellator.addVertexWithUV(x, 1.0D,    -thickness, u, vMin);
-        }
-        tessellator.draw();
-
-        // Left Sides
-        tessellator.startDrawingQuads();
-        tessellator.setNormal(1.0F, 0.0F, 0.0F);
-        for(int i = 0; i < tileWidth; i++)
-        {
-            double texProgress = i * pixelWidth;
-            double u = (uMax + uDiff * texProgress) - foon;
-            double x = width * texProgress + goon;
-            tessellator.addVertexWithUV(x, 1.0D,    -thickness, u, vMin);
-            tessellator.addVertexWithUV(x, 1.0D,    0.0D,       u, vMin);
-            tessellator.addVertexWithUV(x, 0.0D,    0.0D,       u, vMax);
-            tessellator.addVertexWithUV(x, 0.0D,    -thickness, u, vMax);
-        }
-        tessellator.draw();
-
-        // Top Sides
-        tessellator.startDrawingQuads();
-        tessellator.setNormal(0.0F, 1.0F, 0.0F);
-        for(int i = 0; i < tileWidth; i++)
-        {
-            double texProgress = i * pixelWidth;
-            double v = (vMax + vDiff * texProgress) - foon;
-            double y = width * texProgress + goon;
-            tessellator.addVertexWithUV(0.0D,   y,  0.0D,       uMax, v);
-            tessellator.addVertexWithUV(width,  y,  0.0D,       uMin, v);
-            tessellator.addVertexWithUV(width,  y,  -thickness, uMin, v);
-            tessellator.addVertexWithUV(0.0D,   y,  -thickness, uMax, v);
-        }
-        tessellator.draw();
-
-        // Bottom Sides
-        tessellator.startDrawingQuads();
-        tessellator.setNormal(0.0F, -1F, 0.0F);
-        for(int i = 0; i < tileWidth; i++)
-        {
-            double texProgress = i * pixelWidth;
-            double v = (vMax + vDiff * texProgress) - foon;
-            double y = width * texProgress;
-            tessellator.addVertexWithUV(width,  y, 0.0D,        uMin, v);
-            tessellator.addVertexWithUV(0.0D,   y, 0.0D,        uMax, v);
-            tessellator.addVertexWithUV(0.0D,   y, -thickness,  uMax, v);
-            tessellator.addVertexWithUV(width,  y, -thickness,  uMin, v);
-        }
-        tessellator.draw();
-
-        GL11.glDisable(32826 /*GL_RESCALE_NORMAL_EXT*/);
     }
 
     @Override
     public void renderItemThirdPerson(Tessellator tessellator, ItemRenderer renderer, Entity entity, ItemStack itemstack, boolean handheldTransform) {
+        final Minecraft mc = Minecraft.getMinecraft(Minecraft.class);
+        float brightness = entity.getBrightness(1f);
+        if (mc.fullbright || itemfullBright) brightness = 1.0f;
+
         GL11.glTranslatef(-0.0625F, 0.4375F, 0.0625F);
         heldTransformThirdPerson(renderer, entity, itemstack);
-        renderItem(tessellator, renderer, entity, itemstack, handheldTransform);
+        renderItem(tessellator, renderer, itemstack, entity, brightness, handheldTransform);
     }
 
     @Override
@@ -224,7 +127,7 @@ public class ItemModelStandard extends ItemModel{
             } else {
                 GL11.glColor4f(brightness, brightness, brightness, alpha);
             }
-            renderTexturedQuad(tessellator, x, y, textureIndex, false, false);
+            renderTexturedQuad(tessellator, x, y, textureIndex);
             glEnable(GL_LIGHTING);
         }
         glEnable(GL_CULL_FACE);
@@ -267,14 +170,14 @@ public class ItemModelStandard extends ItemModel{
     }
 
     @Override
-    public void renderAsItemEntity(Tessellator tessellator, EntityItem entity, RenderBlocks renderBlocks, Random random, ItemStack itemstack, int renderCount, float yaw, float partialTick) {
+    public void renderAsItemEntity(Tessellator tessellator, @Nullable Entity entity, Random random, ItemStack itemstack, int renderCount, float yaw, float brightness, float partialTick) {
         final Minecraft mc = Minecraft.getMinecraft(this);
+        if (mc.fullbright || itemfullBright) brightness = 1.0f;
+
         EntityRenderDispatcher renderDispatcher = EntityRenderDispatcher.instance;
         GL11.glScalef(0.5F, 0.5F, 0.5F);
         final IconCoordinate tex = getIcon(entity, itemstack);
         tex.parentAtlas.bindTexture();
-        float brightness = entity.getBrightness(partialTick);
-        if (mc.fullbright || itemfullBright) brightness = 1.0f;
         if (useColor) {
             final int color = getColor(itemstack);
             final float r = (color >> 16 & 0xff) / 255F;
@@ -295,7 +198,7 @@ public class ItemModelStandard extends ItemModel{
                 glPushMatrix();
 
                 glTranslated(0.0, 0.0, 0.1 * i);
-                renderItem(tessellator, renderDispatcher.itemRenderer, entity, itemstack, false);
+                renderItem(tessellator, renderDispatcher.itemRenderer, itemstack, entity, brightness, false);
                 glPopMatrix();
             }
 
@@ -315,6 +218,125 @@ public class ItemModelStandard extends ItemModel{
             }
         }
     }
+
+    @Override
+    public void renderItemInWorld(Tessellator tessellator, ItemStack itemStack, float brightness, float alpha, boolean worldTransform) {
+        GL11.glEnable(GL_BLEND);
+        GL11.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+        if (useColor) {
+            final int color = getColor(itemStack);
+            final float r = (color >> 16 & 0xff) / 255F;
+            final float g = (color >> 8 & 0xff) / 255F;
+            final float b = (color & 0xff) / 255F;
+            GL11.glColor4f(r * brightness, g * brightness, b * brightness, alpha);
+        }  else {
+            GL11.glColor4f(brightness, brightness, brightness, alpha);
+        }
+
+        IconCoordinate tex = getIcon(null, itemStack);
+        tex.parentAtlas.bindTexture();
+        int tileWidth = tex.width;
+
+        float uMin = (float) tex.getIconUMin();
+        float uMax = (float) tex.getIconUMax();
+        float vMin = (float) tex.getIconVMin();
+        float vMax = (float) tex.getIconVMax();
+        float uDiff = uMin - uMax;
+        float vDiff = vMin - vMax;
+        final float width = 1.0F;
+
+        final float foon = (0.5f / 512);
+        final float goon = 0.0625f * (16.0f / tileWidth);
+        GL11.glEnable(32826 /*GL_RESCALE_NORMAL_EXT*/);
+        final float thickness = 0.0625f;
+        final float pixelWidth = 1f/tileWidth;
+
+        if (worldTransform){
+            GL11.glTranslatef(-0.5f, -0.5f, thickness/2);
+        }
+
+        // Back Face
+        tessellator.startDrawingQuads();
+        tessellator.setNormal(0.0F, 0.0F, 1.0F);
+        tessellator.addVertexWithUV(0.0D, 0.0D, 0.0D, uMax, vMax);
+        tessellator.addVertexWithUV(width,0.0D, 0.0D, uMin, vMax);
+        tessellator.addVertexWithUV(width,1.0D, 0.0D, uMin, vMin);
+        tessellator.addVertexWithUV(0.0D, 1.0D, 0.0D, uMax, vMin);
+        tessellator.draw();
+
+        // Front Face
+        tessellator.startDrawingQuads();
+        tessellator.setNormal(0.0F, 0.0F, -1F);
+        tessellator.addVertexWithUV(0.0D, 1.0D, -thickness, uMax, vMin);
+        tessellator.addVertexWithUV(width,1.0D, -thickness, uMin, vMin);
+        tessellator.addVertexWithUV(width,0.0D, -thickness, uMin, vMax);
+        tessellator.addVertexWithUV(0.0D, 0.0D, -thickness, uMax, vMax);
+        tessellator.draw();
+
+        // Right Sides
+        tessellator.startDrawingQuads();
+        tessellator.setNormal(-1F, 0.0F, 0.0F);
+        for(int i = 0; i < tileWidth; i++)
+        {
+            float texProgress = i * pixelWidth;
+            float u = (uMax + uDiff * texProgress) - foon;
+            float x = width * texProgress;
+            tessellator.addVertexWithUV(x, 0.0D,    -thickness, u, vMax);
+            tessellator.addVertexWithUV(x, 0.0D,    0.0D,       u, vMax);
+            tessellator.addVertexWithUV(x, 1.0D,    0.0D,       u, vMin);
+            tessellator.addVertexWithUV(x, 1.0D,    -thickness, u, vMin);
+        }
+        tessellator.draw();
+
+        // Left Sides
+        tessellator.startDrawingQuads();
+        tessellator.setNormal(1.0F, 0.0F, 0.0F);
+        for(int i = 0; i < tileWidth; i++)
+        {
+            float texProgress = i * pixelWidth;
+            float u = (uMax + uDiff * texProgress) - foon;
+            float x = width * texProgress + goon;
+            tessellator.addVertexWithUV(x, 1.0D,    -thickness, u, vMin);
+            tessellator.addVertexWithUV(x, 1.0D,    0.0D,       u, vMin);
+            tessellator.addVertexWithUV(x, 0.0D,    0.0D,       u, vMax);
+            tessellator.addVertexWithUV(x, 0.0D,    -thickness, u, vMax);
+        }
+        tessellator.draw();
+
+        // Top Sides
+        tessellator.startDrawingQuads();
+        tessellator.setNormal(0.0F, 1.0F, 0.0F);
+        for(int i = 0; i < tileWidth; i++)
+        {
+            float texProgress = i * pixelWidth;
+            float v = (vMax + vDiff * texProgress) - foon;
+            float y = width * texProgress + goon;
+            tessellator.addVertexWithUV(0.0D,   y,  0.0D,       uMax, v);
+            tessellator.addVertexWithUV(width,  y,  0.0D,       uMin, v);
+            tessellator.addVertexWithUV(width,  y,  -thickness, uMin, v);
+            tessellator.addVertexWithUV(0.0D,   y,  -thickness, uMax, v);
+        }
+        tessellator.draw();
+
+        // Bottom Sides
+        tessellator.startDrawingQuads();
+        tessellator.setNormal(0.0F, -1F, 0.0F);
+        for(int i = 0; i < tileWidth; i++)
+        {
+            float texProgress = i * pixelWidth;
+            float v = (vMax + vDiff * texProgress) - foon;
+            float y = width * texProgress;
+            tessellator.addVertexWithUV(width,  y, 0.0D,        uMin, v);
+            tessellator.addVertexWithUV(0.0D,   y, 0.0D,        uMax, v);
+            tessellator.addVertexWithUV(0.0D,   y, -thickness,  uMax, v);
+            tessellator.addVertexWithUV(width,  y, -thickness,  uMin, v);
+        }
+        tessellator.draw();
+
+        GL11.glDisable(32826 /*GL_RESCALE_NORMAL_EXT*/);
+        GL11.glDisable(GL_BLEND);
+    }
+
     public void renderFlat(Tessellator tessellator, IconCoordinate index){
         final float xOff = 0.5F;
         final float yOff = 0.25F;
@@ -362,7 +384,7 @@ public class ItemModelStandard extends ItemModel{
             GL11.glRotatef(-20F, 0.0F, 1.0F, 0.0F);
         }
     }
-    public IconCoordinate getIcon(Entity entity, ItemStack itemStack){
+    public @NotNull IconCoordinate getIcon(@Nullable Entity entity, ItemStack itemStack){
         return icon;
     }
     public int getColor(ItemStack stack)
@@ -385,6 +407,10 @@ public class ItemModelStandard extends ItemModel{
         tessellator.draw();
     }
 
+    protected void renderTexturedQuad(Tessellator tessellator, int x, int y, IconCoordinate icon) {
+        renderTexturedQuad(tessellator, x, y, icon, false, false);
+    }
+
     protected void renderTexturedQuad(Tessellator tessellator, int x, int y, IconCoordinate icon, boolean flipX, boolean flipY) {
         final float z = 0.0F;
         double uMin = icon.getIconUMin();
@@ -407,6 +433,7 @@ public class ItemModelStandard extends ItemModel{
         tessellator.addVertexWithUV(x + 16, y,      z, uMax, vMin);
         tessellator.addVertexWithUV(x,      y,      z, uMin, vMin);
         tessellator.draw();
+
     }
 
     public ItemModelStandard setFull3D()
@@ -429,4 +456,4 @@ public class ItemModelStandard extends ItemModel{
         itemfullBright = true;
         return this;
     }
-}
+}
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/client/render/stitcher/AtlasStitcher.java b/src/main/java/net/minecraft/client/render/stitcher/AtlasStitcher.java
index e661cf11d..b4e92176a 100644
--- a/src/main/java/net/minecraft/client/render/stitcher/AtlasStitcher.java
+++ b/src/main/java/net/minecraft/client/render/stitcher/AtlasStitcher.java
@@ -49,6 +49,7 @@ public class AtlasStitcher {
         List<IconCoordinate> coordinateList = new ArrayList<>(textureMap.values());
         for (IconCoordinate coordinate : coordinateList){
             BufferedImage image = Textures.readImage(mc.texturePackList.getResourceAsStream(coordinate.sourceImage));
+            if (image == null) image = Textures.missingTexture;
             if (image == Textures.missingTexture){
                 System.out.println(coordinate.sourceImage + " could not be found!");
             }
diff --git a/src/main/java/net/minecraft/client/render/stitcher/TextureRegistry.java b/src/main/java/net/minecraft/client/render/stitcher/TextureRegistry.java
index d7be53138..3979a5400 100644
--- a/src/main/java/net/minecraft/client/render/stitcher/TextureRegistry.java
+++ b/src/main/java/net/minecraft/client/render/stitcher/TextureRegistry.java
@@ -67,7 +67,7 @@ public class TextureRegistry {
             String name = file.getFileName().toString();
             if (name.endsWith(".png")){
                 atlas.getTexture(namespace + ":" + file.getFileName().toString().replace(".png", ""));
-                System.out.println(namespace + ":" + file.getFileName().toString().replace(".png", ""));
+//                System.out.println(namespace + ":" + file.getFileName().toString().replace(".png", ""));
             }
         }
         walk.close();
diff --git a/src/main/java/net/minecraft/client/render/tileentity/TileEntityRendererMesh.java b/src/main/java/net/minecraft/client/render/tileentity/TileEntityRendererMesh.java
new file mode 100644
index 000000000..4e6926f9d
--- /dev/null
+++ b/src/main/java/net/minecraft/client/render/tileentity/TileEntityRendererMesh.java
@@ -0,0 +1,35 @@
+package net.minecraft.client.render.tileentity;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.render.EntityRenderDispatcher;
+import net.minecraft.client.render.RenderBlocks;
+import net.minecraft.client.render.block.model.BlockModel;
+import net.minecraft.client.render.item.model.ItemModelDispatcher;
+import net.minecraft.client.render.tessalator.Tessellator;
+import net.minecraft.client.render.tessalator.TessellatorStandard;
+import net.minecraft.core.block.entity.TileEntityMeshGold;
+import net.minecraft.core.util.helper.MathHelper;
+import net.minecraft.core.world.World;
+import org.lwjgl.opengl.GL11;
+
+public class TileEntityRendererMesh extends TileEntityRenderer<TileEntityMeshGold> {
+
+    @Override
+    public void doRender(Tessellator tessellator, TileEntityMeshGold tileEntity, double x, double y, double z, float renderPartialTicks) {
+        if(tileEntity.filterItem == null) return;
+        GL11.glPushMatrix();
+
+        final float bobbingOffset = MathHelper.sin((tileEntity.ticksRan + renderPartialTicks) / 10F) * 0.1F + 0.1F;
+        final float f3 = (float) Math.toDegrees(((tileEntity.ticksRan + renderPartialTicks) / 20F));
+
+        GL11.glTranslatef((float) x + 0.5f, (float) y + bobbingOffset + 0.25f, (float) z + 0.5f);
+
+        float lightLevel = Minecraft.getMinecraft(this).theWorld.getLightBrightness(tileEntity.x, tileEntity.y, tileEntity.z);
+        if (Minecraft.getMinecraft(this).fullbright) lightLevel = 1.0f;
+        BlockModel.setRenderBlocks(EntityRenderDispatcher.instance.itemRenderer.renderBlocksInstance);
+        GL11.glEnable(32826 /*GL_RESCALE_NORMAL_EXT*/);
+        ItemModelDispatcher.getInstance().getDispatch(tileEntity.filterItem).renderAsItemEntity(TessellatorStandard.instance, null, tileEntity.worldObj.rand, tileEntity.filterItem, 1, f3, lightLevel, renderPartialTicks);
+        GL11.glDisable(32826 /*GL_RESCALE_NORMAL_EXT*/);
+        GL11.glPopMatrix();
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/Block.java b/src/main/java/net/minecraft/core/block/Block.java
index 8fd1a8ecb..2a3d1ea63 100644
--- a/src/main/java/net/minecraft/core/block/Block.java
+++ b/src/main/java/net/minecraft/core/block/Block.java
@@ -283,7 +283,7 @@ public class Block
         }
     }
     
-    public boolean collidesWithEntity(Entity entity)
+    public boolean collidesWithEntity(Entity entity, World world, int x, int y, int z)
     {
         return true;
     }
@@ -1151,11 +1151,11 @@ public class Block
     public static final Block leverCobbleStone = new BlockLever("lever.cobble.stone", 480).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS);
 
-    public static final Block pressureplateStone = new BlockPressurePlate("pressureplate.stone", 490, BlockPressurePlate.MobType.MOBS, Material.stone).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
+    public static final Block pressureplateStone = new BlockPressurePlate("pressureplate.stone", 490, EntityLiving.class, Material.stone).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS);
-    public static final Block pressureplatePlanksOak = new BlockPressurePlate("pressureplate.planks.oak", 491, BlockPressurePlate.MobType.EVERYTHING, Material.wood).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
+    public static final Block pressureplatePlanksOak = new BlockPressurePlate("pressureplate.planks.oak", 491, Entity.class, Material.wood).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_AXE, BlockTags.PREVENT_MOB_SPAWNS);
-    public static final Block pressureplateCobbleStone = new BlockPressurePlate("pressureplate.cobble.stone", 492, BlockPressurePlate.MobType.PLAYERS, Material.stone).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
+    public static final Block pressureplateCobbleStone = new BlockPressurePlate("pressureplate.cobble.stone", 492, EntityPlayer.class, Material.stone).withHardness(0.5F).withDisabledNeighborNotifyOnMetadataChange()
             .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS);
 
     public static final Block motionsensorIdle = new BlockMotionSensor("motionsensor.idle", 500, false).withHardness(2.0F).withBlastResistance(10F).withDisabledNeighborNotifyOnMetadataChange().withImmovableFlagSet()
@@ -1213,7 +1213,9 @@ public class Block
 
     public static final Block mesh = new BlockMesh("mesh", 600).withHardness(1.5F)
             .withTags(BlockTags.MINEABLE_BY_PICKAXE);
-
+    public static final Block meshGold = new BlockMeshGold("mesh.gold", 601).withHardness(1F)
+            .withTags(BlockTags.MINEABLE_BY_PICKAXE);
+    
     public static final Block bed = new BlockBed("bed", 610).withHardness(0.2F).withDisabledStats().withDisabledNeighborNotifyOnMetadataChange().withLitInteriorSurface(true)
             .withTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_AXE);
     public static final Block seat = new BlockSeat("seat", 611).withHardness(0.2F).withDisabledStats().withDisabledNeighborNotifyOnMetadataChange()
diff --git a/src/main/java/net/minecraft/core/block/BlockMesh.java b/src/main/java/net/minecraft/core/block/BlockMesh.java
index 1816d6534..03307b030 100644
--- a/src/main/java/net/minecraft/core/block/BlockMesh.java
+++ b/src/main/java/net/minecraft/core/block/BlockMesh.java
@@ -6,6 +6,7 @@ package net.minecraft.core.block;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityItem;
+import net.minecraft.core.world.World;
 
 public class BlockMesh extends BlockTransparent
 {
@@ -28,7 +29,7 @@ public class BlockMesh extends BlockTransparent
     }
 
     @Override
-    public boolean collidesWithEntity(Entity entity) {
+    public boolean collidesWithEntity(Entity entity, World world, int x, int y, int z) {
         return !(entity instanceof EntityItem);
     }
 }
diff --git a/src/main/java/net/minecraft/core/block/BlockMeshGold.java b/src/main/java/net/minecraft/core/block/BlockMeshGold.java
new file mode 100644
index 000000000..8241f1ad1
--- /dev/null
+++ b/src/main/java/net/minecraft/core/block/BlockMeshGold.java
@@ -0,0 +1,73 @@
+package net.minecraft.core.block;
+
+import net.minecraft.core.block.entity.TileEntity;
+import net.minecraft.core.block.entity.TileEntityMeshGold;
+import net.minecraft.core.block.material.Material;
+import net.minecraft.core.entity.Entity;
+import net.minecraft.core.entity.EntityItem;
+import net.minecraft.core.entity.player.EntityPlayer;
+import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.world.World;
+
+public class BlockMeshGold extends BlockTileEntity{
+    public BlockMeshGold(String key, int id) {
+        super(key, id, Material.metal);
+    }
+
+    @Override
+    protected TileEntity getNewBlockEntity() {
+        return new TileEntityMeshGold();
+    }
+    @Override
+    public boolean isSolidRender()
+    {
+        return false;
+    }
+    @Override
+    public boolean renderAsNormalBlock()
+    {
+        return false;
+    }
+
+    @Override
+    public boolean canPlaceOnSurface()
+    {
+        return true;
+    }
+    @Override
+    public boolean blockActivated(World world, int x, int y, int z, EntityPlayer player)
+    {
+        TileEntityMeshGold meshGold = (TileEntityMeshGold) world.getBlockTileEntity(x, y, z);
+        ItemStack heldItem = player.getHeldItem();
+        boolean flag = meshGold.setFilterItem(player, heldItem);
+        if(heldItem != null && heldItem.stackSize <= 0)
+        {
+            player.inventory.setInventorySlotContents(player.inventory.currentItem, null);
+        }
+        return flag;
+    }
+    @Override
+    public void onBlockRemoved(World world, int x, int y, int z, int data) {
+        TileEntityMeshGold mesh = (TileEntityMeshGold) world.getBlockTileEntity(x, y, z);
+        if (mesh.filterItem != null){
+            EntityItem item = world.dropItem(x, y, z, mesh.filterItem);
+            item.xd *= 0.5;
+            item.yd *= 0.5;
+            item.zd *= 0.5;
+            item.delayBeforeCanPickup = 0;
+        }
+        super.onBlockRemoved(world, x, y, z, data);
+    }
+
+    @Override
+    public boolean collidesWithEntity(Entity entity, World world, int x, int y, int z) {
+        if (entity instanceof EntityItem){
+            TileEntityMeshGold mesh = (TileEntityMeshGold) world.getBlockTileEntity(x, y, z);
+            if (mesh.filterItem == null) return true;
+
+            ItemStack entityStack = ((EntityItem) entity).item;
+            return !entityStack.isItemEqual(mesh.filterItem);
+        }
+        return true;
+    }
+}
diff --git a/src/main/java/net/minecraft/core/block/BlockMobSpawner.java b/src/main/java/net/minecraft/core/block/BlockMobSpawner.java
index 2e6bd5b96..77f5efeda 100644
--- a/src/main/java/net/minecraft/core/block/BlockMobSpawner.java
+++ b/src/main/java/net/minecraft/core/block/BlockMobSpawner.java
@@ -45,7 +45,7 @@ public class BlockMobSpawner extends BlockTileEntity
     }
 
     @Override
-    public boolean collidesWithEntity(Entity entity) {
+    public boolean collidesWithEntity(Entity entity, World world, int x, int y, int z) {
         return !(entity instanceof EntityItem);
     }
     @Override
diff --git a/src/main/java/net/minecraft/core/block/BlockMobSpawnerDeactivated.java b/src/main/java/net/minecraft/core/block/BlockMobSpawnerDeactivated.java
index 235e0e0dc..c940c70c5 100644
--- a/src/main/java/net/minecraft/core/block/BlockMobSpawnerDeactivated.java
+++ b/src/main/java/net/minecraft/core/block/BlockMobSpawnerDeactivated.java
@@ -27,7 +27,7 @@ public class BlockMobSpawnerDeactivated extends BlockTransparent{
     }
 
     @Override
-    public boolean collidesWithEntity(Entity entity) {
+    public boolean collidesWithEntity(Entity entity, World world, int x, int y, int z) {
         return !(entity instanceof EntityItem);
     }
     @Override
diff --git a/src/main/java/net/minecraft/core/block/BlockPressurePlate.java b/src/main/java/net/minecraft/core/block/BlockPressurePlate.java
index 718229033..d7524bc80 100644
--- a/src/main/java/net/minecraft/core/block/BlockPressurePlate.java
+++ b/src/main/java/net/minecraft/core/block/BlockPressurePlate.java
@@ -1,33 +1,29 @@
 package net.minecraft.core.block;
 
+import net.minecraft.core.block.material.Material;
 import net.minecraft.core.entity.Entity;
 import net.minecraft.core.entity.EntityLiving;
-import net.minecraft.core.entity.player.EntityPlayer;
 import net.minecraft.core.enums.EnumDropCause;
+import net.minecraft.core.util.helper.Side;
 import net.minecraft.core.sound.SoundCategory;
 import net.minecraft.core.world.WorldSource;
 import net.minecraft.core.world.World;
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.util.phys.AABB;
+import net.minecraft.core.world.World;
+import net.minecraft.core.world.WorldSource;
 
 import java.util.List;
 import java.util.Random;
 
 public class BlockPressurePlate extends Block
 {
-    private final MobType triggerMobType;
+    private final Class<? extends Entity> triggerMobClass;
 
-    public enum MobType
-    {
-        EVERYTHING,
-        MOBS,
-        PLAYERS
-    }
-
-	public BlockPressurePlate(String key, int id, MobType mobType, Material material)
+	public BlockPressurePlate(String key, int id, Class<? extends Entity> mobType, Material material)
     {
         super(key, id, material);
-        triggerMobType = mobType;
+        triggerMobClass = mobType;
         setTicking(true);
         float pixel = 1 / 16f;
         setBlockBounds(pixel, 0.0F, pixel, 1.0F - pixel, pixel / 2, 1.0F - pixel);
@@ -60,13 +56,13 @@ public class BlockPressurePlate extends Block
     @Override
 	public boolean canPlaceBlockAt(World world, int x, int y, int z)
     {
-        return world.canPlaceOnSurfaceOfBlock(x, y - 1, z);
+        return world.canPlaceOnSurfaceOfBlock(x, y - 1, z) || world.isBlockNormalCube(x, y + 1, z);
     }
 
     @Override
 	public void onNeighborBlockChange(World world, int x, int y, int z, int blockId)
     {
-        boolean flag = !world.canPlaceOnSurfaceOfBlock(x, y - 1, z);
+        boolean flag = !canPlaceBlockAt(world, x, y, z);
         if(flag)
         {
             dropBlockWithCause(world, EnumDropCause.WORLD, x, y, z, world.getBlockMetadata(x, y, z), null);
@@ -81,7 +77,7 @@ public class BlockPressurePlate extends Block
         {
             return;
         }
-        if (world.getBlockMetadata(x, y, z) != 0) {
+        if (isPressed(world.getBlockMetadata(x, y, z))) {
             updateState(world, x, y, z);
         }
     }
@@ -93,46 +89,36 @@ public class BlockPressurePlate extends Block
         {
             return;
         }
-        if (world.getBlockMetadata(x, y, z) != 1) {
+        if (!isPressed(world.getBlockMetadata(x, y, z))) {
             updateState(world, x, y, z);
         }
     }
 
     private void updateState(World world, int x, int y, int z)
     {
-        boolean isPressed = world.getBlockMetadata(x, y, z) == 1;
+        int meta = world.getBlockMetadata(x, y, z);
+        boolean isPressed = isPressed(meta);
+        boolean isCeiling = (meta & 0b10) != 0;
         boolean isSteppedOn = false;
         float f = 0.125F;
-        List<Entity> list = null;
-        if(triggerMobType == MobType.EVERYTHING)
-        {
-            list = world.getEntitiesWithinAABBExcludingEntity(null, AABB.getBoundingBoxFromPool((float)x + f, y, (float)z + f, (float)(x + 1) - f, (double)y + 0.25D, (float)(z + 1) - f));
-        }
-        if(triggerMobType == MobType.MOBS)
-        {
-            list = world.getEntitiesWithinAABB(EntityLiving.class, AABB.getBoundingBoxFromPool((float)x + f, y, (float)z + f, (float)(x + 1) - f, (double)y + 0.25D, (float)(z + 1) - f));
-        }
-        if(triggerMobType == MobType.PLAYERS)
-        {
-            list = world.getEntitiesWithinAABB(EntityPlayer.class, AABB.getBoundingBoxFromPool((float)x + f, y, (float)z + f, (float)(x + 1) - f, (double)y + 0.25D, (float)(z + 1) - f));
-        }
-        if(list != null && list.size() > 0)
+        List<Entity> list = world.getEntitiesWithinAABB(triggerMobClass, AABB.getBoundingBoxFromPool((float)x + f, y + (isCeiling ? .85f : 0f), (float)z + f, (float)(x + 1) - f, (double)y + (isCeiling ? 1 : 0.25D), (float)(z + 1) - f));;
+        if(list != null && !list.isEmpty())
         {
             isSteppedOn = true;
         }
         if(isSteppedOn && !isPressed)
         {
-            world.setBlockMetadataWithNotify(x, y, z, 1);
+            world.setBlockMetadataWithNotify(x, y, z, meta | 0b01);
             world.notifyBlocksOfNeighborChange(x, y, z, id);
-            world.notifyBlocksOfNeighborChange(x, y - 1, z, id);
+            world.notifyBlocksOfNeighborChange(x, y + (isCeiling ? 1 : -1), z, id);
             world.markBlocksDirty(x, y, z, x, y, z);
             world.playSoundEffect(null, SoundCategory.WORLD_SOUNDS, (double)x + 0.5D, (double)y + 0.1D, (double)z + 0.5D, "random.click", 0.3F, 0.6F);
         }
         if(!isSteppedOn && isPressed)
         {
-            world.setBlockMetadataWithNotify(x, y, z, 0);
+            world.setBlockMetadataWithNotify(x, y, z, meta & 0b10);
             world.notifyBlocksOfNeighborChange(x, y, z, id);
-            world.notifyBlocksOfNeighborChange(x, y - 1, z, id);
+            world.notifyBlocksOfNeighborChange(x, y + (isCeiling ? 1 : -1), z, id);
             world.markBlocksDirty(x, y, z, x, y, z);
             world.playSoundEffect(null, SoundCategory.WORLD_SOUNDS, (double)x + 0.5D, (double)y + 0.1D, (double)z + 0.5D, "random.click", 0.3F, 0.5F);
         }
@@ -145,10 +131,11 @@ public class BlockPressurePlate extends Block
     @Override
     public void onBlockRemoved(World world, int x, int y, int z, int data)
     {
-        if(data > 0)
+        boolean isCeiling = (world.getBlockMetadata(x, y, z) & 0b10) != 0;
+        if(isPressed(data))
         {
             world.notifyBlocksOfNeighborChange(x, y, z, id);
-            world.notifyBlocksOfNeighborChange(x, y - 1, z, id);
+            world.notifyBlocksOfNeighborChange(x, y + (isCeiling ? 1 : -1), z, id);
         }
         super.onBlockRemoved(world, x, y, z, data);
     }
@@ -156,14 +143,24 @@ public class BlockPressurePlate extends Block
     @Override
     public void setBlockBoundsBasedOnState(World world, int x, int y, int z)
     {
-        boolean isPressed = world.getBlockMetadata(x, y, z) == 1;
+        int meta = world.getBlockMetadata(x, y, z);
+        boolean isPressed = isPressed(meta);
+        boolean isCeiling = (meta & 0b10) != 0;
         float pixel = 0.0625F;
         if(isPressed)
         {
-            setBlockBounds(pixel, 0.0F, pixel, 1.0F - pixel, 0.03125F, 1.0F - pixel);
+            if (isCeiling){
+                setBlockBounds(pixel, 1f - 0.03125F, pixel, 1.0F - pixel, 1f, 1.0F - pixel);
+            } else {
+                setBlockBounds(pixel, 0.0F, pixel, 1.0F - pixel, 0.03125F, 1.0F - pixel);
+            }
         } else
         {
-            setBlockBounds(pixel, 0.0F, pixel, 1.0F - pixel, 0.0625F, 1.0F - pixel);
+            if (isCeiling){
+                setBlockBounds(pixel, 1f - 0.0625F, pixel, 1.0F - pixel, 1f, 1.0F - pixel);
+            } else {
+                setBlockBounds(pixel, 0.0F, pixel, 1.0F - pixel, 0.0625F, 1.0F - pixel);
+            }
         }
     }
 
@@ -171,20 +168,25 @@ public class BlockPressurePlate extends Block
     public boolean isPoweringTo(WorldSource blockAccess, int x, int y, int z, int side)
     {
 
-        return blockAccess.getBlockMetadata(x, y, z) > 0;
+        return isPressed(blockAccess.getBlockMetadata(x, y, z));
     }
 
     @Override
     public boolean isIndirectlyPoweringTo(World world, int x, int y, int z, int side)
     {
-        if(world.getBlockMetadata(x, y, z) == 0)
+        int meta = world.getBlockMetadata(x, y, z);
+        boolean isCeiling = (meta & 0b10) != 0;
+        if(isPressed(world.getBlockMetadata(x, y, z)))
         {
-            return false;
+            return side == (isCeiling ? 0 : 1);
         } else
         {
-            return side == 1;
+            return false;
         }
     }
+    public boolean isPressed(int meta){
+        return (meta & 0b1) != 0;
+    }
 
     @Override
     public boolean canProvidePower()
@@ -197,4 +199,10 @@ public class BlockPressurePlate extends Block
     {
         return 1;
     }
+    @Override
+    public void onBlockPlaced(World world, int x, int y, int z, Side side, EntityLiving entity, double sideHeight) {
+        if (!world.canPlaceOnSurfaceOfBlock(x, y - 1 , z) || (side.isHorizontal() && sideHeight > 0.5 && world.isBlockNormalCube(x, y + 1, z))){
+            world.setBlockMetadata(x, y, z, world.getBlockMetadata(x, y, z) | 0b10);
+        }
+    }
 }
diff --git a/src/main/java/net/minecraft/core/block/BlockSpikes.java b/src/main/java/net/minecraft/core/block/BlockSpikes.java
index 2223c0c3a..7d39736bb 100644
--- a/src/main/java/net/minecraft/core/block/BlockSpikes.java
+++ b/src/main/java/net/minecraft/core/block/BlockSpikes.java
@@ -89,7 +89,7 @@ public class BlockSpikes extends BlockCobweb
     }
 
     @Override
-    public boolean collidesWithEntity(Entity entity) {
+    public boolean collidesWithEntity(Entity entity, World world, int x, int y, int z) {
         return !(entity instanceof EntityItem);
     }
     
diff --git a/src/main/java/net/minecraft/core/block/entity/TileEntity.java b/src/main/java/net/minecraft/core/block/entity/TileEntity.java
index 735a94100..a21ea60a5 100644
--- a/src/main/java/net/minecraft/core/block/entity/TileEntity.java
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntity.java
@@ -162,6 +162,6 @@ public class TileEntity
         addMapping(TileEntityFlag.class, "Flag");
         addMapping(TileEntitySeat.class, "Seat");
         addMapping(TileEntityFlowerJar.class, "FlowerJar");
-
+        addMapping(TileEntityMeshGold.class, "MeshGold");
     }
 }
diff --git a/src/main/java/net/minecraft/core/block/entity/TileEntityMeshGold.java b/src/main/java/net/minecraft/core/block/entity/TileEntityMeshGold.java
new file mode 100644
index 000000000..67a716780
--- /dev/null
+++ b/src/main/java/net/minecraft/core/block/entity/TileEntityMeshGold.java
@@ -0,0 +1,61 @@
+package net.minecraft.core.block.entity;
+
+import com.mojang.nbt.CompoundTag;
+import net.minecraft.core.entity.player.EntityPlayer;
+import net.minecraft.core.item.ItemStack;
+import net.minecraft.core.net.packet.Packet;
+import net.minecraft.core.net.packet.Packet140TileEntityData;
+import org.jetbrains.annotations.Nullable;
+
+public class TileEntityMeshGold extends TileEntity{
+    @Nullable
+    public ItemStack filterItem;
+    public int ticksRan = 0;
+    public TileEntityMeshGold() {
+    }
+
+    public void tick()
+    {
+        if (ticksRan == 0){
+            ticksRan = worldObj.rand.nextInt(360);
+        }
+        ticksRan++;
+    }
+    public boolean setFilterItem(EntityPlayer player, @Nullable ItemStack stack){
+        boolean flag = false;
+        boolean wasNull = filterItem == null;
+        if (filterItem != null && player.getGamemode().consumeBlocks()){
+            player.inventory.insertItem(filterItem, true);
+            flag = true;
+        }
+        if (stack != null) {
+            stack.consumeItem(player);
+            filterItem = new ItemStack(stack.getItem(), 1, stack.getMetadata(), stack.getData());
+            return true;
+        }
+        filterItem = null;
+        return flag | !wasNull;
+    }
+    @Override
+    public void readFromNBT(CompoundTag compoundTag)
+    {
+        super.readFromNBT(compoundTag);
+        if (compoundTag.getBoolean("hasItem")){
+            filterItem = ItemStack.readItemStackFromNbt(compoundTag.getCompound("item"));
+        }
+    }
+
+    @Override
+    public void writeToNBT(CompoundTag compoundTag)
+    {
+        super.writeToNBT(compoundTag);
+        if (filterItem != null){
+            compoundTag.putCompound("item", filterItem.writeToNBT(new CompoundTag()));
+            compoundTag.putBoolean("hasItem", true);
+        }
+    }
+    @Override
+    public Packet getDescriptionPacket() {
+        return new Packet140TileEntityData(this);
+    }
+}
diff --git a/src/main/java/net/minecraft/core/entity/EntityItem.java b/src/main/java/net/minecraft/core/entity/EntityItem.java
index 1f578227a..9a85cadd1 100644
--- a/src/main/java/net/minecraft/core/entity/EntityItem.java
+++ b/src/main/java/net/minecraft/core/entity/EntityItem.java
@@ -31,7 +31,7 @@ public class EntityItem extends Entity
         super(world);
         age = 0;
         health = 5;
-        field_804_d = (float)(java.lang.Math.random() * 3.1415926535897931D * 2D);
+        initialRotation = (float)(java.lang.Math.random() * Math.PI * 2D);
         setSize(0.25F, 0.25F);
         heightOffset = bbHeight / 2.0F;
         setPos(d, d1, d2);
@@ -57,7 +57,7 @@ public class EntityItem extends Entity
         super(world);
         age = 0;
         health = 5;
-        field_804_d = (float)(java.lang.Math.random() * 3.1415926535897931D * 2D);
+        initialRotation = (float)(java.lang.Math.random() * 3.1415926535897931D * 2D);
         setSize(0.25F, 0.25F);
         heightOffset = bbHeight / 2.0F;
     }
@@ -272,7 +272,7 @@ public class EntityItem extends Entity
     public int age;
     public int delayBeforeCanPickup;
     private int health;
-    public float field_804_d;
+    public float initialRotation;
     public int basketPickupDelay = 0;
     public static boolean enableItemClumping = true;
 }
diff --git a/src/main/java/net/minecraft/core/net/ServerAddress.java b/src/main/java/net/minecraft/core/net/ServerAddress.java
new file mode 100644
index 000000000..df4a0c685
--- /dev/null
+++ b/src/main/java/net/minecraft/core/net/ServerAddress.java
@@ -0,0 +1,80 @@
+package net.minecraft.core.net;
+
+import javax.naming.directory.Attributes;
+import javax.naming.directory.InitialDirContext;
+import java.util.Hashtable;
+
+public class ServerAddress {
+    private final String ipAddress;
+    private final int serverPort;
+
+    private ServerAddress(String ip, int port) {
+        this.ipAddress = ip;
+        this.serverPort = port;
+    }
+
+    public String getIP() {
+        return this.ipAddress;
+    }
+
+    public int getPort() {
+        return this.serverPort;
+    }
+
+    public static ServerAddress resolveServerIP(String ipToResolve) {
+        if (ipToResolve == null) {
+            return null;
+        } else {
+            String[] ipSplit = ipToResolve.split(":");
+            if (ipToResolve.startsWith("[")) {
+                int ipv6End = ipToResolve.indexOf("]");
+                if (ipv6End > 0) {
+                    String ipv6IP = ipToResolve.substring(1, ipv6End);
+                    String port = ipToResolve.substring(ipv6End + 1).trim();
+                    if (port.startsWith(":") && !port.isEmpty()) {
+                        port = port.substring(1);
+                        ipSplit = new String[]{ipv6IP, port};
+                    } else {
+                        ipSplit = new String[]{ipv6IP};
+                    }
+                }
+            }
+
+            if (ipSplit.length > 2) {
+                ipSplit = new String[]{ipToResolve};
+            }
+
+            String ip = ipSplit[0];
+            int port = ipSplit.length > 1 ? parseIntWithDefault(ipSplit[1], 25565) : 25565;
+            if (port == 25565) {
+                String[] recordSplit = resolveSRVRecord(ip);
+                ip = recordSplit[0];
+                port = parseIntWithDefault(recordSplit[1], 25565);
+            }
+
+            return new ServerAddress(ip, port);
+        }
+    }
+
+    private static String[] resolveSRVRecord(String ip) {
+        try {
+            Hashtable<String, String> contextTable = new Hashtable<>();
+            contextTable.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
+            contextTable.put("java.naming.provider.url", "dns:");
+            InitialDirContext context = new InitialDirContext(contextTable);
+            Attributes attr = context.getAttributes("_minecraft._tcp." + ip, new String[]{"SRV"});
+            String[] ipSplit = attr.get("srv").get().toString().split(" ", 4);
+            return new String[]{ipSplit[3], ipSplit[2]};
+        } catch (Throwable t) {
+            return new String[]{ip, Integer.toString(25565)};
+        }
+    }
+
+    private static int parseIntWithDefault(String str, int defaultVal) {
+        try {
+            return Integer.parseInt(str.trim());
+        } catch (Exception e) {
+            return defaultVal;
+        }
+    }
+}
diff --git a/src/main/java/net/minecraft/core/net/ServerData.java b/src/main/java/net/minecraft/core/net/ServerData.java
index 68b8dc554..308fcc8de 100644
--- a/src/main/java/net/minecraft/core/net/ServerData.java
+++ b/src/main/java/net/minecraft/core/net/ServerData.java
@@ -1,6 +1,7 @@
 package net.minecraft.core.net;
 
 import com.mojang.nbt.CompoundTag;
+import org.apache.logging.log4j.core.jmx.Server;
 
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
@@ -40,19 +41,7 @@ public class ServerData
         tag.putCompound(Integer.toString(index), subTag);
     }
 
-    public String getHostName()
-    {
-        String[] split = address.split(":");
-        return split[0];
-    }
-
-    public int getPort()
-    {
-        String[] split = address.split(":");
-        try {
-            return Integer.parseInt(split[split.length - 1]);
-        } catch (NumberFormatException e) {
-            return 25565;
-        }
+    public ServerAddress getServerAddress() {
+        return ServerAddress.resolveServerIP(address);
     }
 }
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 fb88ea2d7..523592ef8 100644
--- a/src/main/java/net/minecraft/core/player/inventory/InventoryPlayer.java
+++ b/src/main/java/net/minecraft/core/player/inventory/InventoryPlayer.java
@@ -18,6 +18,7 @@ import net.minecraft.core.item.Item;
 import net.minecraft.core.item.ItemArmor;
 import net.minecraft.core.item.ItemStack;
 import net.minecraft.core.util.helper.DamageType;
+import org.jetbrains.annotations.Nullable;
 
 public class InventoryPlayer
     implements IInventory
@@ -32,6 +33,7 @@ public class InventoryPlayer
         this.player = player;
     }
 
+    @Nullable
     public ItemStack getCurrentItem()
     {
         if(currentItem < 9 + hotbarOffset && currentItem >= hotbarOffset)
diff --git a/src/main/java/net/minecraft/core/sound/BlockSoundDispatcher.java b/src/main/java/net/minecraft/core/sound/BlockSoundDispatcher.java
index 951ec9d27..c64eaaa84 100644
--- a/src/main/java/net/minecraft/core/sound/BlockSoundDispatcher.java
+++ b/src/main/java/net/minecraft/core/sound/BlockSoundDispatcher.java
@@ -284,6 +284,7 @@ public class BlockSoundDispatcher
         addDispatch(Block.doorIronTop, BlockSounds.METAL);
 
         addDispatch(Block.mesh, BlockSounds.METAL);
+        addDispatch(Block.meshGold, BlockSounds.METAL);
 
         addDispatch(Block.bed, BlockSounds.WOOD);
         addDispatch(Block.seat, BlockSounds.WOOD);
diff --git a/src/main/java/net/minecraft/core/world/World.java b/src/main/java/net/minecraft/core/world/World.java
index 15a4a1967..59cbacaac 100644
--- a/src/main/java/net/minecraft/core/world/World.java
+++ b/src/main/java/net/minecraft/core/world/World.java
@@ -1442,7 +1442,7 @@ public class World implements WorldSource {
                     if(block != null)
                     {
                         int metadata = getBlockMetadata(dx, dy, dz);
-                        if (block.collidesWithEntity(entity) && entity.collidesWithBlock(block, metadata))
+                        if (block.collidesWithEntity(entity, this, dx, dy, dz) && entity.collidesWithBlock(block, metadata))
                         {
                             block.getCollidingBoundingBoxes(this, dx, dy, dz, axisalignedbb, collidingBoundingBoxes);
                         }
diff --git a/src/main/resources/assets/minecraft/textures/block/mesh_gold.png b/src/main/resources/assets/minecraft/textures/block/mesh_gold.png
new file mode 100644
index 000000000..a2fd886f0
Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/block/mesh_gold.png differ
