Added features per game and a menu/index page
parent
576457d5b0
commit
5f31996982
|
@ -11,3 +11,9 @@ toml = "0.8.19"
|
||||||
tracing = "0.1.40"
|
tracing = "0.1.40"
|
||||||
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
|
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
|
||||||
itertools = "0.13.0"
|
itertools = "0.13.0"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
default = ["bbs", "ddd", "kh3"]
|
||||||
|
kh3 = []
|
||||||
|
bbs = []
|
||||||
|
ddd = []
|
||||||
|
|
|
@ -130,15 +130,15 @@ const FINISHERS_PATH: &str = "./input/bbs/finish-commands.json";
|
||||||
const COMMANDS_PATH: &str = "./input/bbs/commands.json";
|
const COMMANDS_PATH: &str = "./input/bbs/commands.json";
|
||||||
|
|
||||||
pub fn init() {
|
pub fn init() {
|
||||||
tracing::info!("Loading abilities json data from {}", ABILITIES_PATH);
|
tracing::info!("Loading abilities data from {}", ABILITIES_PATH);
|
||||||
let abilities_str = std::fs::read_to_string(ABILITIES_PATH).unwrap();
|
let abilities_str = std::fs::read_to_string(ABILITIES_PATH).unwrap();
|
||||||
let abilities = serde_json::from_str::<Vec<Ability>>(&abilities_str).unwrap();
|
let abilities = serde_json::from_str::<Vec<Ability>>(&abilities_str).unwrap();
|
||||||
|
|
||||||
tracing::info!("Loading finishers json data from {}", ABILITIES_PATH);
|
tracing::info!("Loading finishers data from {}", ABILITIES_PATH);
|
||||||
let finishers_str = std::fs::read_to_string(FINISHERS_PATH).unwrap();
|
let finishers_str = std::fs::read_to_string(FINISHERS_PATH).unwrap();
|
||||||
let finishers = serde_json::from_str::<HashMap<String, Finisher>>(&finishers_str).unwrap();
|
let finishers = serde_json::from_str::<HashMap<String, Finisher>>(&finishers_str).unwrap();
|
||||||
|
|
||||||
tracing::info!("Loading commands json data from {}", ABILITIES_PATH);
|
tracing::info!("Loading commands data from {}", ABILITIES_PATH);
|
||||||
let commands_str = std::fs::read_to_string(COMMANDS_PATH).unwrap();
|
let commands_str = std::fs::read_to_string(COMMANDS_PATH).unwrap();
|
||||||
let mut commands = serde_json::from_str::<Vec<Command>>(&commands_str).unwrap();
|
let mut commands = serde_json::from_str::<Vec<Command>>(&commands_str).unwrap();
|
||||||
|
|
||||||
|
|
|
@ -356,7 +356,7 @@ struct AbilitiesTemplate {
|
||||||
const ABILITIES_PATH: &str = "./input/ddd/abilities";
|
const ABILITIES_PATH: &str = "./input/ddd/abilities";
|
||||||
|
|
||||||
pub fn init() {
|
pub fn init() {
|
||||||
tracing::info!("Loading ability links json data from {}", ABILITIES_PATH);
|
tracing::info!("Loading ability boards data from {}", ABILITIES_PATH);
|
||||||
let mut boards: Vec<Board> = vec![];
|
let mut boards: Vec<Board> = vec![];
|
||||||
// Loading multiple files into one vector due to the size of each board
|
// Loading multiple files into one vector due to the size of each board
|
||||||
let paths = std::fs::read_dir(ABILITIES_PATH)
|
let paths = std::fs::read_dir(ABILITIES_PATH)
|
||||||
|
|
20
src/main.rs
20
src/main.rs
|
@ -1,13 +1,23 @@
|
||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
|
|
||||||
|
use rinja::Template;
|
||||||
use tracing_subscriber::EnvFilter;
|
use tracing_subscriber::EnvFilter;
|
||||||
|
|
||||||
|
#[cfg(feature = "bbs")]
|
||||||
mod bbs;
|
mod bbs;
|
||||||
|
|
||||||
|
#[cfg(feature = "ddd")]
|
||||||
mod ddd;
|
mod ddd;
|
||||||
|
|
||||||
|
#[cfg(feature = "kh3")]
|
||||||
mod kh3;
|
mod kh3;
|
||||||
|
|
||||||
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
|
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
|
||||||
|
|
||||||
|
#[derive(Template)]
|
||||||
|
#[template(path = "pages/index.html")]
|
||||||
|
struct IndexTemplate {}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
// Initialize tracing
|
// Initialize tracing
|
||||||
tracing_subscriber::fmt()
|
tracing_subscriber::fmt()
|
||||||
|
@ -15,7 +25,17 @@ fn main() {
|
||||||
.event_format(tracing_subscriber::fmt::format().with_source_location(true))
|
.event_format(tracing_subscriber::fmt::format().with_source_location(true))
|
||||||
.init();
|
.init();
|
||||||
|
|
||||||
|
tracing::info!("Generating the main menu template");
|
||||||
|
let template = IndexTemplate {};
|
||||||
|
|
||||||
|
std::fs::write("./out/index.html", template.render().unwrap()).unwrap();
|
||||||
|
|
||||||
|
#[cfg(feature = "bbs")]
|
||||||
bbs::init();
|
bbs::init();
|
||||||
|
|
||||||
|
#[cfg(feature = "ddd")]
|
||||||
ddd::init();
|
ddd::init();
|
||||||
|
|
||||||
|
#[cfg(feature = "kh3")]
|
||||||
kh3::init();
|
kh3::init();
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,6 +40,23 @@
|
||||||
ul {
|
ul {
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #00ff00;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: #9dff9d;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:visited {
|
||||||
|
color: #00a200;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: #65a565;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
{% block head %}{% endblock %}
|
{% block head %}{% endblock %}
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
{% extends "layouts/base.html" %}
|
||||||
|
|
||||||
|
{% block title %}Menu{% endblock %}
|
||||||
|
|
||||||
|
{% block head %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% if cfg!(feature = "bbs") %}
|
||||||
|
<h1>Kingdom Hearts Birth by Sleep</h1>
|
||||||
|
<ul>
|
||||||
|
<li><a href="./bbs-commands.html">Command Melding</a></li>
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if cfg!(feature = "ddd") %}
|
||||||
|
<h1>Kingdom Hearts Dream Drop Distance</h1>
|
||||||
|
<ul>
|
||||||
|
<li><a href="./ddd-abilities.html">Spirit Boards</a></li>
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if cfg!(feature = "kh3") %}
|
||||||
|
<h1>Kingdom Hearts III</h1>
|
||||||
|
<ul>
|
||||||
|
<li><a href="./kh3-recipes.html">Food Simulator</a></li>
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
Loading…
Reference in New Issue