Skip to content

Commit 3bba748

Browse files
Initial V1 version
0 parents  commit 3bba748

8 files changed

Lines changed: 558 additions & 0 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/target

Cargo.lock

Lines changed: 335 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[package]
2+
name = "aseprite_xml"
3+
version = "1.0.0"
4+
edition = "2021"
5+
6+
[dependencies]
7+
clap = { version = "4.5.34", features = ["derive"] }
8+
regex = "1.11.1"
9+
serde = { version = "1.0.219", features = ["derive"] }
10+
serde_json = "1.0.140"

src/asprite_json.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
use std::collections::HashMap;
2+
3+
use serde::Deserialize;
4+
5+
#[derive(Debug, Deserialize)]
6+
pub struct AspriteJson {
7+
pub meta: AspriteMeta,
8+
pub frames: HashMap<String, AspriteFrameData>,
9+
}
10+
11+
#[derive(Debug, Deserialize)]
12+
#[serde(rename_all = "camelCase")]
13+
pub struct AspriteMeta {
14+
pub image: String,
15+
pub frame_tags: Vec<FrameTag>,
16+
}
17+
18+
#[derive(Debug, Deserialize)]
19+
pub struct FrameTag {
20+
pub name: String,
21+
pub from: usize,
22+
pub to: usize,
23+
}
24+
25+
#[derive(Debug, Deserialize)]
26+
#[serde(rename_all = "camelCase")]
27+
pub struct AspriteFrameData {
28+
pub frame: AspriteFrame,
29+
pub sprite_source_size: AspriteFrame,
30+
pub duration: usize,
31+
}
32+
33+
#[derive(Debug, Deserialize)]
34+
pub struct AspriteFrame {
35+
pub x: f64,
36+
pub y: f64,
37+
pub w: f64,
38+
pub h: f64,
39+
}

0 commit comments

Comments
 (0)