     _create_registry: (data) ->
         cache = engine.utils.create_from_constructor_string @config.registry_cache_class
         return engine.utils.create_from_constructor_string @config.thing_registry_class, cache, data
-
-    _setup_keyboard_manager: ->
-        @keyboard_manager = new engine.input.KeyboardManager()
-        # TODO: Send actual bindings
-        @player_keyboard_input = @keyboard_manager.bind_input_layer @player_action_mappings, false
-        #@global_ui_keyboard_input = @keyboard_manager.bind_input_layer undefined, false
 
     _define_player_action_mappings: (player) ->
         bindings = [

                        @player_action_failure_callback error_message
            )(binding)

    _protagonist_ready: (player_character) ->
        player_character.listen_for_actions_handler = (success_callback, failure_callback) =>
            @player_action_success_callback = success_callback
            @player_action_failure_callback = failure_callback
            # Start listening for input
            @_player_input_on()

        player_character.offerred_turn_handler = =>
            # Every time the player is offered a turn we will auto-save
            @quicksave()
            # And allow them input
            @_player_input_on()
        @_setup_keyboard_manager()
        @_define_player_action_mappings player_character
        @world.protagonist_ready player_character

    _get_save_data: (is_quicksave=false) ->

        ###
        return @_get_save_data false

    set_protagonist: (creature) ->
        @registry.register_thing creature
        player_character = engine.utils.create_from_constructor_string @config.player_character_class
