Minecart with Furnace

A minecart with furnace is a self-propelling minecart with a furnace inside. A minecart with furnace propels itself in a given direction and pauses when the track leads in another direction. They are a cheaper alternative to powered rails, since the materials needed are easier to find.

Obtaining
Minecarts with furnaces cannot be retrieved by attacking them, as they just drop a minecart and a furnace. Still, they are renewable since the player is able to recraft them.

Usage
Furnace minecarts are placed the same as other minecarts. It does not have a visible interface with slots, like a furnace does.

Furnace minecarts can be powered only toward north-east, south-east, south-west, or north-west. This is done by feeding fuel (coal or charcoal) into the furnace minecart with the button while facing one of these directions. The fuel is consumed immediately. Any piece of fuel, added at any time, increases the total range by an additional 3600 ticks (equal to 180 seconds or 3 minutes). Using the button with anything other than coal or charcoal in the main hand moves the cart a short distance as usual without consuming the item in hand. The minecart does not break when it runs out of fuel.

When powered, a minecart with furnace cover 240m per minute (about 4 m/s, slightly slower than walking speed) or 720m per piece of coal. They do not accelerate when going downhill or on active powered rails, and they do not slow down when going uphill, on inactive powered rails (unless right clicking the furnace without a fuel source in hand or in the furnance), or when pushing or pulling other minecarts.

Minecarts with furnace can climb up steep inclines while pushing other minecarts for as long as they have fuel. If a minecart with furnace reaches a slope while pulling another minecart, the pulled minecart is switched to the forward position so that it can be pushed along the slope instead of pulled.

When the furnace minecart reaches a piece of track facing a direction it wasn't powered for, the minecart loses power and comes to pause after 11±1 blocks, waiting for the player to redirect it with the button. The direction the minecart is powered for changes whenever a player presses while facing the needed direction, as long as the furnace minecart is on rails.

A furnace minecart can be made to pull up to four other minecarts by first shunting them together against a wall, and then powering the furnace in the other direction. All minecarts in this train move at the constant speed of the furnace minecart. These shunts are fragile and easily come undone. Pulling a minecart with TNT causes it to explode.

When a minecart with furnace bumps into another minecart or multiple minecarts, the other minecarts are pushed forward with great speed. The furnace minecart continues on with its own speed. Because of this speed difference, some of the minecarts may end up inside unloaded chunks on straight tracks.

When two powered minecarts with furnace overlap, they keep going in any direction (not just the powered direction), and even continue moving or pushing indefinitely after they run out of fuel, even uphill. In this formation, they do lose the ability to pull other minecarts, and they can lose contact in hairpin turns.

Properties
The coal is not stored as an item in the Entity, but in the object data in the fuel property as a time in ticks. Fuel is a short value, i.e. a maximum of 32767 ticks, which is less than 30 minutes. However, alone doesn't make it go since it doesn't have a direction. It can be right-clicked on a track to give it a direction, or it can be summoned with the properties PushX and PushZ set, which are responsible for the direction. Note that the  property every entity has allows for movement of the the minecart, but it won't give the minecart the direction it needs to move on its own.

Data values
Minecarts with furnace have entity data associated with them that contain various properties of the entity.

Trivia

 * The minecart with furnace is excluded from Bedrock Edition and New Nintendo 3DS Edition on purpose. In a tweet, Jeb considered removing it from Java Edition.