package rabbitescape.engine.textworld;
import rabbitescape.engine.Block;
public class BlockRenderer
{
public static void render( Chars chars, Iterable<Block> blocks )
{
for ( Block block : blocks )
{
chars.set( block.x, block.y, charForBlock( block ) );
}
}
public static char charForBlock( Block block )
{
switch ( block.material )
{
case EARTH:
switch ( block.shape )
{
case FLAT: return '#';
case UP_RIGHT: return '/';
case UP_LEFT: return '\\';
case BRIDGE_UP_RIGHT: return '(';
case BRIDGE_UP_LEFT: return ')';
}
break;
case METAL:
switch ( block.shape )
{
case FLAT: return 'M';
default:
break;
}
break;
}
throw new AssertionError(
"Unknown Block type: " + block.material + " " + block.shape );
}
}