game to string function; example game function
This commit is contained in:
parent
2e4d9fd36e
commit
fb0fac0665
|
@ -4,10 +4,6 @@ a library for parsing Bitsy game data.
|
||||||
|
|
||||||
## todo
|
## todo
|
||||||
|
|
||||||
### functions
|
|
||||||
|
|
||||||
* game to
|
|
||||||
|
|
||||||
### tidy up
|
### tidy up
|
||||||
|
|
||||||
split into multiple files
|
split into multiple files
|
||||||
|
@ -24,5 +20,3 @@ e.g. "DLG SPR_1..." instead of just "SPR_1..."
|
||||||
examples of use cases (dedupe tiles, merge games, etc.)
|
examples of use cases (dedupe tiles, merge games, etc.)
|
||||||
|
|
||||||
### publish to crates.io
|
### publish to crates.io
|
||||||
|
|
||||||
(not much point until it's feature-complete, I think)
|
|
||||||
|
|
344
src/main.rs
344
src/main.rs
|
@ -280,6 +280,150 @@ fn example_room_string() -> String {
|
||||||
include_str!("../test/resources/room").to_string()
|
include_str!("../test/resources/room").to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn example_game_default() -> Game {
|
||||||
|
Game {
|
||||||
|
name: "Write your game's title here".to_string(),
|
||||||
|
version: 6.5,
|
||||||
|
room_format: 1,
|
||||||
|
palettes: vec![
|
||||||
|
Palette {
|
||||||
|
id: "0".to_string(),
|
||||||
|
name: None,
|
||||||
|
colours: vec![
|
||||||
|
Colour {red: 0, green: 82, blue: 204 },
|
||||||
|
Colour {red: 128, green: 159, blue: 255 },
|
||||||
|
Colour {red: 255, green: 255, blue: 255 },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
rooms: vec![
|
||||||
|
Room {
|
||||||
|
id: "0".to_string(),
|
||||||
|
palette: "0".to_string(),
|
||||||
|
name: None,
|
||||||
|
tiles: vec![
|
||||||
|
"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"0".to_string(),
|
||||||
|
"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),
|
||||||
|
],
|
||||||
|
items: vec![],
|
||||||
|
exits: vec![],
|
||||||
|
endings: vec![]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
tiles: vec![
|
||||||
|
Tile {
|
||||||
|
id: "a".to_string(),
|
||||||
|
name: None,
|
||||||
|
wall: false,
|
||||||
|
animation_frames: vec![
|
||||||
|
Image {
|
||||||
|
pixels: vec![
|
||||||
|
1,1,1,1,1,1,1,1,
|
||||||
|
1,0,0,0,0,0,0,1,
|
||||||
|
1,0,0,0,0,0,0,1,
|
||||||
|
1,0,0,1,1,0,0,1,
|
||||||
|
1,0,0,1,1,0,0,1,
|
||||||
|
1,0,0,0,0,0,0,1,
|
||||||
|
1,0,0,0,0,0,0,1,
|
||||||
|
1,1,1,1,1,1,1,1,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
avatar: Avatar {
|
||||||
|
animation_frames: vec![
|
||||||
|
Image {
|
||||||
|
pixels: vec![
|
||||||
|
0,0,0,1,1,0,0,0,
|
||||||
|
0,0,0,1,1,0,0,0,
|
||||||
|
0,0,0,1,1,0,0,0,
|
||||||
|
0,0,1,1,1,1,0,0,
|
||||||
|
0,1,1,1,1,1,1,0,
|
||||||
|
1,0,1,1,1,1,0,1,
|
||||||
|
0,0,1,0,0,1,0,0,
|
||||||
|
0,0,1,0,0,1,0,0,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
room: "0".to_string(),
|
||||||
|
position: Position { x: 4, y: 4 }
|
||||||
|
},
|
||||||
|
sprites: vec![
|
||||||
|
Sprite {
|
||||||
|
id: "a".to_string(),
|
||||||
|
name: None,
|
||||||
|
animation_frames: vec![
|
||||||
|
Image {
|
||||||
|
pixels: vec![
|
||||||
|
0,0,0,0,0,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,
|
||||||
|
0,1,0,1,0,0,0,1,
|
||||||
|
0,1,1,1,0,0,0,1,
|
||||||
|
0,1,1,1,0,0,1,0,
|
||||||
|
0,1,1,1,1,1,0,0,
|
||||||
|
0,0,1,1,1,1,0,0,
|
||||||
|
0,0,1,0,0,1,0,0,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
dialogue: Some("SPR_0".to_string()),
|
||||||
|
room: "0".to_string(),
|
||||||
|
position: Position { x: 8, y: 12 }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
items: vec![
|
||||||
|
Item {
|
||||||
|
id: "0".to_string(),
|
||||||
|
animation_frames: vec![
|
||||||
|
Image {
|
||||||
|
pixels: vec![
|
||||||
|
0,0,0,0,0,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,
|
||||||
|
0,0,1,1,1,1,0,0,
|
||||||
|
0,1,1,0,0,1,0,0,
|
||||||
|
0,0,1,0,0,1,0,0,
|
||||||
|
0,0,0,1,1,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,
|
||||||
|
]
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: Some("tea".to_string()),
|
||||||
|
dialogue: Some("ITM_0".to_string())
|
||||||
|
},
|
||||||
|
],
|
||||||
|
dialogues: vec![
|
||||||
|
Dialogue {
|
||||||
|
id: "SPR_0".to_string(),
|
||||||
|
contents: "I'm a cat".to_string(),
|
||||||
|
},
|
||||||
|
Dialogue {
|
||||||
|
id: "ITM_0".to_string(),
|
||||||
|
contents: "You found a nice warm cup of tea".to_string(),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
endings: vec![],
|
||||||
|
variables: vec![
|
||||||
|
Variable { id: "a".to_string(), initial_value: "42".to_string() }
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn image_from_string(string: String) -> Image {
|
fn image_from_string(string: String) -> Image {
|
||||||
let string = string.replace("\n", "");
|
let string = string.replace("\n", "");
|
||||||
let pixels: Vec<&str> = string.split("").collect();
|
let pixels: Vec<&str> = string.split("").collect();
|
||||||
|
@ -1083,155 +1227,65 @@ fn test_game_from_string() {
|
||||||
let output = game_from_string(
|
let output = game_from_string(
|
||||||
include_str!["../test/resources/default.bitsy"].to_string()
|
include_str!["../test/resources/default.bitsy"].to_string()
|
||||||
);
|
);
|
||||||
|
let expected = example_game_default();
|
||||||
let expected = Game {
|
|
||||||
name: "Write your game's title here".to_string(),
|
|
||||||
version: 6.5,
|
|
||||||
room_format: 1,
|
|
||||||
palettes: vec![
|
|
||||||
Palette {
|
|
||||||
id: "0".to_string(),
|
|
||||||
name: None,
|
|
||||||
colours: vec![
|
|
||||||
Colour {red: 0, green: 82, blue: 204 },
|
|
||||||
Colour {red: 128, green: 159, blue: 255 },
|
|
||||||
Colour {red: 255, green: 255, blue: 255 },
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
rooms: vec![
|
|
||||||
Room {
|
|
||||||
id: "0".to_string(),
|
|
||||||
palette: "0".to_string(),
|
|
||||||
name: None,
|
|
||||||
tiles: vec![
|
|
||||||
"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"a".to_string(),"0".to_string(),
|
|
||||||
"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),"0".to_string(),
|
|
||||||
],
|
|
||||||
items: vec![],
|
|
||||||
exits: vec![],
|
|
||||||
endings: vec![]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
tiles: vec![
|
|
||||||
Tile {
|
|
||||||
id: "a".to_string(),
|
|
||||||
name: None,
|
|
||||||
wall: false,
|
|
||||||
animation_frames: vec![
|
|
||||||
Image {
|
|
||||||
pixels: vec![
|
|
||||||
1,1,1,1,1,1,1,1,
|
|
||||||
1,0,0,0,0,0,0,1,
|
|
||||||
1,0,0,0,0,0,0,1,
|
|
||||||
1,0,0,1,1,0,0,1,
|
|
||||||
1,0,0,1,1,0,0,1,
|
|
||||||
1,0,0,0,0,0,0,1,
|
|
||||||
1,0,0,0,0,0,0,1,
|
|
||||||
1,1,1,1,1,1,1,1,
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
avatar: Avatar {
|
|
||||||
animation_frames: vec![
|
|
||||||
Image {
|
|
||||||
pixels: vec![
|
|
||||||
0,0,0,1,1,0,0,0,
|
|
||||||
0,0,0,1,1,0,0,0,
|
|
||||||
0,0,0,1,1,0,0,0,
|
|
||||||
0,0,1,1,1,1,0,0,
|
|
||||||
0,1,1,1,1,1,1,0,
|
|
||||||
1,0,1,1,1,1,0,1,
|
|
||||||
0,0,1,0,0,1,0,0,
|
|
||||||
0,0,1,0,0,1,0,0,
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
room: "0".to_string(),
|
|
||||||
position: Position { x: 4, y: 4 }
|
|
||||||
},
|
|
||||||
sprites: vec![
|
|
||||||
Sprite {
|
|
||||||
id: "a".to_string(),
|
|
||||||
name: None,
|
|
||||||
animation_frames: vec![
|
|
||||||
Image {
|
|
||||||
pixels: vec![
|
|
||||||
0,0,0,0,0,0,0,0,
|
|
||||||
0,0,0,0,0,0,0,0,
|
|
||||||
0,1,0,1,0,0,0,1,
|
|
||||||
0,1,1,1,0,0,0,1,
|
|
||||||
0,1,1,1,0,0,1,0,
|
|
||||||
0,1,1,1,1,1,0,0,
|
|
||||||
0,0,1,1,1,1,0,0,
|
|
||||||
0,0,1,0,0,1,0,0,
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
dialogue: Some("SPR_0".to_string()),
|
|
||||||
room: "0".to_string(),
|
|
||||||
position: Position { x: 8, y: 12 }
|
|
||||||
}
|
|
||||||
],
|
|
||||||
items: vec![
|
|
||||||
Item {
|
|
||||||
id: "0".to_string(),
|
|
||||||
animation_frames: vec![
|
|
||||||
Image {
|
|
||||||
pixels: vec![
|
|
||||||
0,0,0,0,0,0,0,0,
|
|
||||||
0,0,0,0,0,0,0,0,
|
|
||||||
0,0,0,0,0,0,0,0,
|
|
||||||
0,0,1,1,1,1,0,0,
|
|
||||||
0,1,1,0,0,1,0,0,
|
|
||||||
0,0,1,0,0,1,0,0,
|
|
||||||
0,0,0,1,1,0,0,0,
|
|
||||||
0,0,0,0,0,0,0,0,
|
|
||||||
]
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: Some("tea".to_string()),
|
|
||||||
dialogue: Some("ITM_0".to_string())
|
|
||||||
},
|
|
||||||
],
|
|
||||||
dialogues: vec![
|
|
||||||
Dialogue {
|
|
||||||
id: "SPR_0".to_string(),
|
|
||||||
contents: "I'm a cat".to_string(),
|
|
||||||
},
|
|
||||||
Dialogue {
|
|
||||||
id: "ITM_0".to_string(),
|
|
||||||
contents: "You found a nice warm cup of tea".to_string(),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
endings: vec![],
|
|
||||||
variables: vec![
|
|
||||||
Variable { id: "a".to_string(), initial_value: "42".to_string() }
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
assert_eq!(output, expected);
|
assert_eq!(output, expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
// fn game_to_string(game: Game) -> String {
|
fn game_to_string(game: Game) -> String {
|
||||||
//
|
let mut segments : Vec<String> = Vec::new();
|
||||||
// }
|
|
||||||
|
// todo refactor
|
||||||
|
|
||||||
|
for palette in game.palettes {
|
||||||
|
segments.push(palette_to_string(palette));
|
||||||
|
}
|
||||||
|
|
||||||
|
for room in game.rooms {
|
||||||
|
segments.push(room_to_string(room));
|
||||||
|
}
|
||||||
|
|
||||||
|
for tile in game.tiles {
|
||||||
|
segments.push(tile_to_string(tile));
|
||||||
|
}
|
||||||
|
|
||||||
|
segments.push(avatar_to_string(game.avatar));
|
||||||
|
|
||||||
|
for sprite in game.sprites {
|
||||||
|
segments.push(sprite_to_string(sprite));
|
||||||
|
}
|
||||||
|
|
||||||
|
for item in game.items {
|
||||||
|
segments.push(item_to_string(item));
|
||||||
|
}
|
||||||
|
|
||||||
|
for dialogue in game.dialogues {
|
||||||
|
segments.push(dialogue_to_string(dialogue));
|
||||||
|
}
|
||||||
|
|
||||||
|
for ending in game.endings {
|
||||||
|
segments.push(ending_to_string(ending));
|
||||||
|
}
|
||||||
|
|
||||||
|
for variable in game.variables {
|
||||||
|
segments.push(variable_to_string(variable));
|
||||||
|
}
|
||||||
|
|
||||||
|
format!(
|
||||||
|
"{}\n\n# BITSY VERSION {}\n\n! ROOM_FORMAT {}\n\n{}\n\n",
|
||||||
|
game.name,
|
||||||
|
game.version,
|
||||||
|
game.room_format,
|
||||||
|
segments.join("\n\n"),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_game_to_string() {
|
||||||
|
let output = game_to_string(example_game_default());
|
||||||
|
let expected = include_str!["../test/resources/default.bitsy"].to_string();
|
||||||
|
assert_eq!(output, expected);
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
println!("why does a crate need a main function?");
|
println!("why does a crate need a main function?");
|
||||||
|
|
Loading…
Reference in New Issue