{"id":17100651,"url":"https://github.com/jakobhellermann/celestetools","last_synced_at":"2025-04-06T01:24:40.007Z","repository":{"id":226105598,"uuid":"644923015","full_name":"jakobhellermann/celestetools","owner":"jakobhellermann","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-24T19:52:18.000Z","size":3241,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-24T20:28:43.126Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jakobhellermann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-24T14:31:11.000Z","updated_at":"2024-04-24T19:52:22.000Z","dependencies_parsed_at":"2024-10-14T15:14:22.807Z","dependency_job_id":"30810421-dd66-41ef-a598-43df7bd132c1","html_url":"https://github.com/jakobhellermann/celestetools","commit_stats":null,"previous_names":["jakobhellermann/celestetools"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakobhellermann%2Fcelestetools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakobhellermann%2Fcelestetools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakobhellermann%2Fcelestetools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakobhellermann%2Fcelestetools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakobhellermann","download_url":"https://codeload.github.com/jakobhellermann/celestetools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247422110,"owners_count":20936418,"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":[],"created_at":"2024-10-14T15:14:20.133Z","updated_at":"2025-04-06T01:24:39.974Z","avatar_url":"https://github.com/jakobhellermann.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# celestetools\n\n## `annotate_celeste_map`\n\n### Installation\nSetup rust using https://rustup.rs.\n```sh\ncargo install --git https://github.com/jakobhellermann/celestetools annotate_celeste_map\n```\n\n### Usage\n\n```sh\nUsage: annotate_celeste_map [OPTIONS] \u003cMAP\u003e -o \u003cOUTPUT\u003e --cct-recordings [\u003cFILTER\u003e...] --lobby-entrances \u003cLOBBY_ENTRANCES\u003e\n\nArguments:\n  \u003cMAP\u003e  path to the .png map export from Lönn\n\nOptions:\n      -o \u003cOUTPUT\u003e            Write annotated png to \u003cOUTPUT\u003e\n      --top-left \u003cTOP_LEFT\u003e  tile position x,y of the topleft corner of the map\n      --open                 Open file after annotating\n\nAnnotations:\n      --cct-recordings [\u003cFILTER\u003e...]\n          Annotate with the movement of recent physics inspector recordings.\n          \u003cFILTER\u003e can be empty to select all recordings,\n          or 'city' to only match recordings in the given chapter,\n          or '1,2,5' to include specific recent recordings.\n      --lobby-entrances \u003cLOBBY_ENTRANCES\u003e\n          path to .csv file with columns 'index,name,xpos,ypos'\n```\n\n**CCT Recordings**\n\n\u003cimg src=\"./docs/cct_recording.png\" height=\"400\"\u003e\n\n1. Download @viddie's [Celeste Consistency Tracker](https://gamebanana.com/mods/358978) mod.\n2. Enable `Mod Options -\u003e Consistency Tracker -\u003e Physics Inspector Settings -\u003e Recording Physics Enabled`\n    - Optionally, increase the `Max Recent Recordings` from the default of 10\n3. Run your TASes, or play the game. Every `console load`, savestate, or death, the current recording gets saved.\n   \n   The recordings can be found (and deleted) in `Celeste/ConsistencyTracker/physics-recordings/recent-recordings`.\n4. Open the map in Lönn and do `Map -\u003e Save Map Image` in the menu, save as e.g. `map.png`\n\n\nThen, run\n```sh\nannotate_celeste_map map.png -o annotated.png --cct-recordings        # annotate with every recent path\nannotate_celeste_map map.png -o annotated.png --cct-recordings --open # annotate and open in image viewer afterwards\nannotate_celeste_map map.png -o annotated.png --cct-recordings city   # annotate with every path from a chapter matching the name 'city'\nannotate_celeste_map map.png -o annotated.png --cct-recordings 0,1    # annotate with the last two paths\n\n# ^ these will only work if your path visits the leftmost, rightmost, bottommost and topmost room in the map.\n# If that isn't the case, you need to figure out at which tile position the topleft corner of the map begins.\n\nannotate_celeste_map map.png -o annotated.png --cct-recordings --top-left 0,-401\n```\n\nTo figure out the offset, hover the **leftmost** room in the debug map and copy the room's x position \"320x180  \u003cspan style=\"color:red\"\u003e**0**\u003c/span\u003e,0  0,0\", then find the **topmost** room and copy the room's y position \"320x180 480,\u003cspan style=\"color:red\"\u003e**-401**\u003c/span\u003e 3840,-3208\"\nThis will result in an offset of `--top-left 0,-401`.\n\n\u003cimg src=\"./docs/room_pos_xy.png\" height=\"100\"\u003e\n\n### Lobby Entrances\n\n```sh\nannotate_celeste_map gallery_lobby.png -o out.png --lobby-entrances entrances.csv --top-left 87,-84\n```\nwith `entrances.csv` containing\n```csv\n0,\"Start\",712,1032\n1,\"Blueberry Jelly Valley\",1573,912\n2,\"Ruins of Temple\",1085,864\n3,\"Afterglow Summit\",1157,480\n...\n```\n\n\u003cimg src=\"./docs/lobby_entrances.png\" height=\"300\"\u003e\n\n## lobby2table\n\n\n\n```sh\ncargo install --git https://github.com/jakobhellermann/celestetools tools --bin lobby2table\n```\n\n```sh\nUSAGE: lobby2table [--format=csv|raw|table|draftmsg] [--placeholder placeholder (e.g. 60000)] PATHS...\n```\n\n\nWrite `lobby2table` into the path in the explorer and press enter:\n\n\u003cimg src=\"./docs/lobby2table.png\" height=\"300\"\u003e\n\n\u003cimg src=\"./docs/lobby2table_output.png\" height=\"300\"\u003e\n\n\nAlternatively, you can do `lobby2table --format draftmsg` for\n```\nbeg_0-1.tas draft in 0:02.873(169)\nbeg_0-8.tas draft in 0:04.828(284)\nbeg_0-9.tas draft in 0:03.995(235)\nbeg_0-11.tas draft in 0:03.332(196)\nbeg_1-2.tas draft in 0:04.369(257)\n...\n```\n\n## `celesteloader`\n\nRust crate for parsing celeste map files, mod zips and dialog files.\n\nSource in [./crates/celesteloader](./crates/celesteloader/).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakobhellermann%2Fcelestetools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakobhellermann%2Fcelestetools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakobhellermann%2Fcelestetools/lists"}