{"id":13305827,"url":"https://github.com/applesthepi/unnamedblocks","last_synced_at":"2025-03-10T14:32:08.095Z","repository":{"id":48416878,"uuid":"222339114","full_name":"applesthepi/unnamedblocks","owner":"applesthepi","description":"A modern, moddable, block based visual language.","archived":false,"fork":false,"pushed_at":"2023-07-15T20:00:43.000Z","size":40575,"stargazers_count":11,"open_issues_count":20,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-05-02T00:04:56.873Z","etag":null,"topics":["bindings","cpp","gpl","language","modding","visual-language"],"latest_commit_sha":null,"homepage":"https://unnamedblocks.com","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/applesthepi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-18T01:31:18.000Z","updated_at":"2023-09-20T21:01:45.000Z","dependencies_parsed_at":"2024-10-23T13:01:45.663Z","dependency_job_id":null,"html_url":"https://github.com/applesthepi/unnamedblocks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/applesthepi%2Funnamedblocks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/applesthepi%2Funnamedblocks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/applesthepi%2Funnamedblocks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/applesthepi%2Funnamedblocks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/applesthepi","download_url":"https://codeload.github.com/applesthepi/unnamedblocks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242868449,"owners_count":20198483,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bindings","cpp","gpl","language","modding","visual-language"],"created_at":"2024-07-29T17:54:35.184Z","updated_at":"2025-03-10T14:32:07.623Z","avatar_url":"https://github.com/applesthepi.png","language":"C++","readme":"# ATTENTION\nPlease note that this project isn't setup properly for public use. There are probably issues with the setup and usage. There also isn't any help for when things go wrong. In the future there will be more downloads. For now, the only demo available is from 2 years ago on the stable and nightly branches. You can download the prebuilt zip/7z for windows here https://unnamedblocks.com/downloads\n\n# Installation\n**master** - active development branch  \n**stable** - stable releases (major and minor)  \n**nightly** - bleeding edge releases (beta and alpha)  \n\nYou're expected to have cmake, git, vulkan, and clang installed and in your path. Follow these steps for repo setup:\n### Windows / Visual Studio\n1. `git clone https://github.com/applesthepi/unnamedblocks`\n2. `cd unnamedblocks/`\n3. `.\\initialize.bat`\n4. `.\\win_configure_debug.bat`\n5. copy the imgui_XX-XX-XXXX.ini file to `build/debug/ub_client/` and rename it to `imgui.ini` (**FIRST TIME ONLY**)\n6. open `UB.sln` inside `build/debug/` directory\n7. rebuild solution\n8. run `UB_CLIENT.exe` in `build/debug/ub_client/` or run in Visual Studio\n\n### Linux Shell\n1. `git clone https://github.com/applesthepi/unnamedblocks`\n2. `cd unnamedblocks`\n3. `./initialize.sh`\n4. `./configure_debug.sh`\n5. copy the imgui_XX-XX-XXXX.ini file to `build/debug/ub_client/` and rename it to `imgui.ini` (**FIRST TIME ONLY**)\n6. `cd build/debug/`\n7. `make -j8`\n8. run `./UB_CLIENT` in `ub_client/`\n\n# Tools\n### Formating\nThere is a formatting shell script that will format the repo files based on the clang format provided in the repo root. If you want the script to format cmake as well, you need to install `cmake-format` package on linux.\n\n### Configuring\nDebug and Release configuration scripts are provided in the repo root for both linux and windows (prefixed with `win_`).\n\n# Code Style\nThis describes the code style that should be used throughout the Unnamed Blocks repository. External additions like mods absolutely do not have to follow this strict standard. I plan to add bindings using different case styles for c++ in the future.\n\n### Filename\n`snake_case_only_please.hpp`\n`snake_case_only_please.cpp`\n\n### Includes\nhpp\n```cpp\n/* required     */ #pragma once\n/* required     */ #include \"config.h\"\n\n/* current lib  */ #include \"rhr/stacking/block.hpp\"\n/* current lib  */ #include \"rhr/stacking/arguments/argument_text.hpp\"\n/* current lib  */ #include \"rhr/registries/char_texture.hpp\"\n\n/* required     */ #include \u003ccappuccino/utils.hpp\u003e\n/* external lib */ #include \u003ccappuccino/mod_block_pass.hpp\u003e\n/* external lib */ #include \u003ccappuccino/preprocessor_data.hpp\u003e\n/* external lib */ #include \u003ccappuccino/registration.hpp\u003e\n```\ncpp\n```cpp\n/* req if class */ #include \"example_class.hpp\"\n\n/* current lib  */ #include \"rhr/stacking/block.hpp\"\n/* current lib  */ #include \"rhr/stacking/arguments/argument_text.hpp\"\n/* current lib  */ #include \"rhr/registries/char_texture.hpp\"\n\n/* external lib */ #include \u003ccappuccino/color.hpp\u003e\n```\n\n### File Structure\n- If inside the class, you can reference objects without using the absolute namespace.\n- You may use `using namespace` in a cpp file for namespaces that you don't want to type out, though it is still recommended you type it out so its clear. That way you can easily do `handler::project` instead of `project_handler`.\n- Use the absolute paths for including files unless your including the hpp file of a class from the class's cpp file.\n- namespaces should follow the path. Have the path be plural/verb and the namespace be singular/noun. For example, you might have a path of `rendering/objects/text.hpp` and you would reference it though `render::object::text`.\n\nhpp\n```cpp\nnamespace rhr::some::space\n{\n///\nclass example_class : public rhr::some::thing\n{\npublic:\n\t///\n\tstruct data_snake_case\n\t{\n\t\t///\n\t\tu64 use_these_types;\n\t\t\n\t\t///\n\t\ti8 use_snake_case;\n\t};\n\t\n\t///\n\tenum class some_enum_thing\n\t{\n\t\tLIGHT_NORMAL,\n\t\tBOLD_NORMAL,\n\t\tLIGHT_ITALIC,\n\t\tBOLD_ITALIC\n\t};\n\t\n\t///\n\tvoid also_use_snake_case(u8 use_snake_case = 5);\n\t\n\t///\n\tvoid another_one(u8 something_yes);\n\t\n\tvoid overrided_function_init_1() override;\n\tvoid overrided_function_init_2() override;\n\nprotected:\n\t///\n\tvoid some_protected_function();\n\t\n\tvoid overrided_function_1() override;\n\tvoid overrided_function_2() override;\n\tvoid overrided_function_3() override;\n\t\nprivate:\n\t///\n\tvoid some_private_function();\n\n\t///\n\tf32 m_use_this_convention;\n};\n}\n```\ncpp\n```cpp\nrhr::some::space::example_class::also_use_snake_case(u8 use_snake_case)\n{\n\n}\n\nrhr::some::space::example_class::another_one(u8 something_yes)\n{\n\n}\n```\n### Documentation\nUnnamed Blocks currently uses doxygen documentation generation. In the example above, notice how overrided functions dont even have a space for documentation, this is because doxygen uses the most super class's documentation. Heres a big example from the i_ui class. Also notice how any phrase or sentence begins with a capital letter and ends with a period.\n```cpp\n/// Possible buffer update, use flags to make sure you need to call this.\n/// \\param offset This object's physical position (render space). See (TODO: link) for more clarification.\n/// \\param update_child Notifies this of a transform update using i_ui::transform_update_spec_position\nvoid set_position_local_physical(const glm::vec\u003c2, i32\u003e\u0026 offset, bool update_child);\n```\n### Version Standard\nThis is the version standard Unnamed Blocks will be following.\n\nMajor . Minor . Beta\n\nAll Major and Minor updates should be user tested extensively while beta updates will have tests ran on it and briefly user tested with some projects. Major and Minor updates will both use the stable branch while beta releases will be merged to nightly. Master will just be the development branch that isnt ready for public use and may have issues.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapplesthepi%2Funnamedblocks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapplesthepi%2Funnamedblocks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapplesthepi%2Funnamedblocks/lists"}