forked from 1b-agent/fieldcraft-upstream
feat: application icon family (a meshed bracket) drawn with VectorCraft (#37)
cargo xtask app-icon computes an isometric L bracket with a bolt hole and a structured hexahedral mesh (O-grid around the hole), draws it with vectorcraft-cli and writes icon.svg/png, small-size artwork, the iconset, icns, ico, an Icon Composer ModelCraft.icon (floor grid Default/Dark, part, mesh) and its actool Assets.car. The desktop app uses the 256 px export as its window icon, falling back to eframe's default if it cannot be decoded. Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm Co-authored-by: jyviko <2501648+jyviko@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
34 files changed
+1145
-1
No files matched your search
@@ -5,6 +5,7 @@
|
||||
//! ATTRIBUTION.md.
|
||||
#![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)]
|
||||
|
||||
mod app_icon;
|
||||
mod assets;
|
||||
mod icons;
|
||||
mod layers;
|
||||
@@ -23,6 +24,9 @@ commands:
|
||||
icons [ID…] draw the toolbar icons from their recipes (assets/icons/src/*.json) with
|
||||
VectorCraft (VECTORCRAFT_CLI, else vectorcraft-cli on the PATH): writes each
|
||||
icon's .vectorcraft source and .svg export
|
||||
app-icon draw the application icon family (assets/app-icon) with VectorCraft, then
|
||||
write the iconset, icns, ico and Icon Composer document (macOS: sips,
|
||||
iconutil, magick; actool for Assets.car when available)
|
||||
licences [--check]
|
||||
write THIRD-PARTY-LICENSES.txt (the licences of every shipped crate);
|
||||
--check fails when it is out of date
|
||||
@@ -44,6 +48,7 @@ fn main() -> ExitCode {
|
||||
Some("layers") => cmd_layers(),
|
||||
Some("assets") => assets::run(&root()),
|
||||
Some("icons") => icons::run(&root(), &rest),
|
||||
Some("app-icon") => app_icon::run(&root()),
|
||||
Some("licences") => licences::run(&root(), rest.contains(&"--check")),
|
||||
Some("test") => {
|
||||
let (cargo_args, test_args) = rest.iter().position(|a| *a == "--").map_or((&rest[..], &[][..]), |i| (&rest[..i], &rest[i + 1..]));
|
||||
|
||||
Reference in new issue
Block a user