<commit_before>#include "ajokki_keyboard_callbacks.hpp"
#include "code/ylikuutio/callback_system/callback_parameter.hpp"
#include "code/ylikuutio/callback_system/callback_object.hpp"
#include "code/ylikuutio/callback_system/callback_engine.hpp"
#include "code/ylikuutio/callback_system/callback_magic_numbers.hpp"
#include "code/ylikuutio/console/console.hpp"
#include "code/ylikuutio/ontology/object.hpp"
#include "code/ylikuutio/ontology/species.hpp"
#include "code/ylikuutio/ontology/material.hpp"
#include "code/ylikuutio/ontology/universe.hpp"
#include "code/ylikuutio/ontology/world.hpp"
#include "code/ylikuutio/common/any_value.hpp"
#include "code/ylikuutio/common/globals.hpp"

// Include standard headers
#include <iostream> // std::cout, std::cin, std::cerr
#include <memory>   // std::make_shared, std::shared_ptr
#include <stdint.h> // uint32_t etc.
#include <vector>   // std::vector

// Callbacks' input parameters can be accessed either through
// `yli::callback_system::CallbackObject* callback_object`or
// `std::vector<yli::callback_system::CallbackParameter*>& input parameters`.
//
// To access named input variables:
// `yli::datatypes::AnyValue* some_any_value = callback_object->get_any_value("foo");`
// where `"foo"` is the variable name.
//
// To access input variables without name (this works for named input variables too):
// `yli::datatypes::AnyValue* some_any_value = input_parameters.at(foo)->get_any_value();`
// where `foo` is the zero-based index of the variable. First `CallbackParameter` of
// a `CallbackObject` gets index 0, second `CallbackParameter` gets index 1, etc.

namespace ajokki
{
    /*********************************************************************\
     * Helper functions for callbacks begin here.                        *
    \*********************************************************************/

    bool move_to_direction(yli::callback_system::CallbackObject* callback_object, glm::vec3 moving_direction)
    {
        std::shared_ptr<yli::datatypes::AnyValue> any_value_universe = std::make_shared<yli::datatypes::AnyValue>(*callback_object->get_arg(0));

        if (any_value_universe == nullptr)
        {
            std::cerr << "Error: universe not found!\n";
            return false;
        }
<commit_msg>`ajokki::move_to_direction`: `moving_direction` is `const glm::vec3&`.<commit_after>#include "ajokki_keyboard_callbacks.hpp"
#include "code/ylikuutio/callback_system/callback_parameter.hpp"
#include "code/ylikuutio/callback_system/callback_object.hpp"
#include "code/ylikuutio/callback_system/callback_engine.hpp"
#include "code/ylikuutio/callback_system/callback_magic_numbers.hpp"
#include "code/ylikuutio/console/console.hpp"
#include "code/ylikuutio/ontology/object.hpp"
#include "code/ylikuutio/ontology/species.hpp"
#include "code/ylikuutio/ontology/material.hpp"
#include "code/ylikuutio/ontology/universe.hpp"
#include "code/ylikuutio/ontology/world.hpp"
#include "code/ylikuutio/common/any_value.hpp"
#include "code/ylikuutio/common/globals.hpp"

// Include standard headers
#include <iostream> // std::cout, std::cin, std::cerr
#include <memory>   // std::make_shared, std::shared_ptr
#include <stdint.h> // uint32_t etc.
#include <vector>   // std::vector

// Callbacks' input parameters can be accessed either through
// `yli::callback_system::CallbackObject* callback_object`or
// `std::vector<yli::callback_system::CallbackParameter*>& input parameters`.
//
// To access named input variables:
// `yli::datatypes::AnyValue* some_any_value = callback_object->get_any_value("foo");`
// where `"foo"` is the variable name.
//
// To access input variables without name (this works for named input variables too):
// `yli::datatypes::AnyValue* some_any_value = input_parameters.at(foo)->get_any_value();`
// where `foo` is the zero-based index of the variable. First `CallbackParameter` of
// a `CallbackObject` gets index 0, second `CallbackParameter` gets index 1, etc.

namespace ajokki
{
    /*********************************************************************\
     * Helper functions for callbacks begin here.                        *
    \*********************************************************************/

    bool move_to_direction(yli::callback_system::CallbackObject* callback_object, const glm::vec3& moving_direction)
    {
        std::shared_ptr<yli::datatypes::AnyValue> any_value_universe = std::make_shared<yli::datatypes::AnyValue>(*callback_object->get_arg(0));

        if (any_value_universe == nullptr)
        {
            std::cerr << "Error: universe not found!\n";
            return false;
        }

{'fraction_non_alphanumeric': 0.18771626297577854, 'fraction_numerical': 0.0028114186851211074, 'mean_word_length': 5.0935441370223975, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7379166', 'n_tokens_mistral': 1444, 'n_tokens_neox': 1440, 'n_words': 279}