mirror of
https://github.com/horizon-rust/horizon.git
synced 2026-11-07 11:06:11 -10:00
Merge pull request #8193 from horizon-rust/fix/native-mods-recursion-limit
🤖 Agent: queued (urgent: every native mod build fails on Nightly f42ef42, #8169). verify green, and a real native build of smp + voicechat-server passes the mixins step at this head. The only code change besides the attribute is control_mobs_at's json! split in two, same output.
This commit is contained in:
2 files changed
+23
-21
No files matched your search
@@ -760,27 +760,28 @@ impl Game<'_> {
|
||||
"sitting": m.extra.sitting,
|
||||
"temper": m.extra.variant3,
|
||||
"chested": m.extra.chested,
|
||||
"head": m.extra.head.as_deref(),
|
||||
"body": m.extra.body.as_deref(),
|
||||
"warden": horizon_client::mobs::warden::describe(m),
|
||||
"villager": horizon_client::mobs::villager::ext(m).map(|e| serde_json::json!({
|
||||
"food_level": e.food_level,
|
||||
"inventory": e.inventory.iter().map(|s| format!("{}x{}", s.count, s.item)).collect::<Vec<_>>(),
|
||||
"gossips": e.gossips.len(),
|
||||
"last_slept": e.last_slept,
|
||||
"raid": e.raid,
|
||||
})),
|
||||
"raider": horizon_client::mobs::raider::state(m).map(|s| serde_json::json!({
|
||||
"raid": s.raid_id,
|
||||
"wave": s.wave,
|
||||
"leader": s.patrol_leader,
|
||||
"patrolling": s.patrolling,
|
||||
"patrol_target": s.patrol_target,
|
||||
"vehicle": m.extra.mount,
|
||||
})),
|
||||
});
|
||||
// Drawn seated (Entity.isPassenger); set apart because the
|
||||
// json! above is at the macro recursion limit.
|
||||
// Set apart: one json! with every key goes past the default macro recursion
|
||||
// limit, and horizon-client can't raise it (#8169).
|
||||
state["head"] = m.extra.head.as_deref().into();
|
||||
state["body"] = m.extra.body.as_deref().into();
|
||||
state["warden"] = serde_json::json!(horizon_client::mobs::warden::describe(m));
|
||||
state["villager"] = serde_json::json!(horizon_client::mobs::villager::ext(m).map(|e| serde_json::json!({
|
||||
"food_level": e.food_level,
|
||||
"inventory": e.inventory.iter().map(|s| format!("{}x{}", s.count, s.item)).collect::<Vec<_>>(),
|
||||
"gossips": e.gossips.len(),
|
||||
"last_slept": e.last_slept,
|
||||
"raid": e.raid,
|
||||
})));
|
||||
state["raider"] = serde_json::json!(horizon_client::mobs::raider::state(m).map(|s| serde_json::json!({
|
||||
"raid": s.raid_id,
|
||||
"wave": s.wave,
|
||||
"leader": s.patrol_leader,
|
||||
"patrolling": s.patrolling,
|
||||
"patrol_target": s.patrol_target,
|
||||
"vehicle": m.extra.mount,
|
||||
})));
|
||||
// Drawn seated (Entity.isPassenger).
|
||||
state["passenger"] = m.extra.passenger.into();
|
||||
state["guardian_beam"] = serde_json::json!(horizon_client::mobs::guardian::beam(m, 0.0));
|
||||
state
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
//! Gameplay and startup, above the reusable client library.
|
||||
#![recursion_limit = "256"]
|
||||
// No `#![recursion_limit]` or other inner attribute horizon-mixins doesn't know here: the
|
||||
// launcher's horizon-mixins then rejects every native mod targeting this crate (#8169).
|
||||
#![forbid(unsafe_code)]
|
||||
extern crate self as horizon_client;
|
||||
pub use horizon_client_lib::*;
|
||||
|
||||
Reference in new issue
Block a user