Implement non-bundled mods #125

Merged
lucas merged 13 commits from feat/loose-files into master 2023-11-24 11:52:54 +01:00
2 changed files with 9 additions and 2 deletions
Showing only changes of commit 2f746debf3 - Show all commits

View file

@ -73,6 +73,7 @@ impl From<dtmt_shared::ModDependency> for ModDependency {
#[derive(Clone, Data, Debug, Lens, serde::Serialize, serde::Deserialize)] #[derive(Clone, Data, Debug, Lens, serde::Serialize, serde::Deserialize)]
pub(crate) struct NexusInfo { pub(crate) struct NexusInfo {
pub id: u64, pub id: u64,
pub name: String,
pub version: String, pub version: String,
pub author: String, pub author: String,
pub summary: Arc<String>, pub summary: Arc<String>,
@ -83,6 +84,7 @@ impl From<NexusMod> for NexusInfo {
fn from(value: NexusMod) -> Self { fn from(value: NexusMod) -> Self {
Self { Self {
id: value.mod_id, id: value.mod_id,
name: value.name,
version: value.version, version: value.version,
author: value.author, author: value.author,
summary: Arc::new(value.summary), summary: Arc::new(value.summary),

View file

@ -135,8 +135,13 @@ fn build_mod_list() -> impl Widget<State> {
}) })
.lens(lens!((usize, Arc<ModInfo>, bool), 1).then(ModInfo::enabled.in_arc())); .lens(lens!((usize, Arc<ModInfo>, bool), 1).then(ModInfo::enabled.in_arc()));
let name = let name = Label::dynamic(|info: &Arc<ModInfo>, _| {
Label::raw().lens(lens!((usize, Arc<ModInfo>, bool), 1).then(ModInfo::name.in_arc())); info.nexus
.as_ref()
.map(|n| n.name.clone())
.unwrap_or_else(|| info.name.clone())
})
.lens(lens!((usize, Arc<ModInfo>, bool), 1));
let version = { let version = {
let icon = { let icon = {