From 7fc42e8269177e1fada6dafc55788d939ba29e33 Mon Sep 17 00:00:00 2001 From: ElyTheCat <78264512+elythepreciouscat@users.noreply.github.com> Date: Mon, 2 Nov 2026 18:25:52 +0330 Subject: [PATCH 01/70] Add standalone particle culling worker Co-Authored-By: OpenAI Codex --- crates/horizon-client-render/src/gfx.rs | 12 + crates/horizon-client-render/src/graphics.rs | 56 +- .../horizon-client-render/src/graphics_ui.rs | 99 ++- crates/horizon-client-render/src/particles.rs | 324 +++++++- .../assets/horizon/lang/de_de.json | 6 +- .../assets/horizon/lang/en_us.json | 6 +- .../assets/horizon/lang/es_es.json | 6 +- .../assets/horizon/lang/fr_fr.json | 6 +- .../assets/horizon/lang/pl_pl.json | 6 +- .../assets/horizon/lang/ru_ru.json | 6 +- .../assets/horizon/lang/tr_tr.json | 6 +- .../assets/horizon/lang/uk_ua.json | 6 +- .../assets/horizon/lang/zh_cn.json | 6 +- crates/horizon-client/src/game.rs | 50 +- .../src/game/particle_culling.rs | 785 ++++++++++++++++++ docs/graphics.md | 6 +- 16 files changed, 1336 insertions(+), 50 deletions(-) create mode 100644 crates/horizon-client/src/game/particle_culling.rs diff --git a/crates/horizon-client-render/src/gfx.rs b/crates/horizon-client-render/src/gfx.rs index ce28ba73c0..965a3c051c 100644 --- a/crates/horizon-client-render/src/gfx.rs +++ b/crates/horizon-client-render/src/gfx.rs @@ -9572,6 +9572,18 @@ impl Frustum { p.truncate().dot(v) + p.w < 0.0 }) } + /// Whether a camera-relative sphere is at least partly inside. Frustum + /// planes are normalized, so each test needs only one dot product and a + /// radius comparison. + pub fn intersects_sphere(&self, center: Vec3, radius: f32) -> bool { + if !center.is_finite() || !radius.is_finite() || radius < 0.0 { + return true; + } + !self + .planes + .iter() + .any(|plane| plane.truncate().dot(center) + plane.w < -radius) + } /// Whether the camera-relative box `min..max` is entirely inside. Then /// `intersects` accepts every box within it: each plane's distance only /// grows from this box's nearest corner to the inner box's farthest, and diff --git a/crates/horizon-client-render/src/graphics.rs b/crates/horizon-client-render/src/graphics.rs index 7b68bf0c90..31f41301f1 100644 --- a/crates/horizon-client-render/src/graphics.rs +++ b/crates/horizon-client-render/src/graphics.rs @@ -128,6 +128,44 @@ impl EntityCullingMode { } } +/// Particle visibility strategy, independent of Entity Culling. +#[derive(Clone, Copy, Debug, PartialEq, Eq, Default)] +pub enum ParticleCullingMode { + #[default] + Off, + Synchronous, + Asynchronous, +} +impl ParticleCullingMode { + pub const ALL: [ParticleCullingMode; 3] = [ + ParticleCullingMode::Off, + ParticleCullingMode::Synchronous, + ParticleCullingMode::Asynchronous, + ]; + pub fn name(self) -> &'static str { + match self { + Self::Off => "off", + Self::Synchronous => "sync", + Self::Asynchronous => "async", + } + } + pub fn label(self) -> &'static str { + match self { + Self::Off => "Off", + Self::Synchronous => "Synchronous", + Self::Asynchronous => "Asynchronous", + } + } + fn parse(s: &str) -> Self { + match s { + "synchronous" | "sync" => Self::Synchronous, + "asynchronous" | "async" => Self::Asynchronous, + "off" => Self::Off, + _ => Self::default(), + } + } +} + /// How the swapchain presents frames. #[derive(Clone, Copy, Debug, PartialEq, Eq, Default)] pub enum PresentMode { @@ -550,6 +588,8 @@ pub struct Graphics { pub cave_culling: bool, /// Skip drawing entities hidden behind opaque terrain, synchronously or asynchronously. pub entity_culling: EntityCullingMode, + /// Skip particles outside the view or hidden behind opaque terrain. + pub particle_culling: ParticleCullingMode, /// Terrain leaf faces inside a canopy (see [`LeafCullingMode`]); `Off` draws /// vanilla's fancy leaves. Ignored with a resource pack that may replace /// the vanilla leaf models ([`Graphics::leaf_culling_effective`]). @@ -647,6 +687,7 @@ impl Default for Graphics { blue_map: crate::bluemap::Settings::default(), cave_culling: true, entity_culling: EntityCullingMode::Off, + particle_culling: ParticleCullingMode::Off, leaf_culling: LeafCullingMode::Off, cache_shulker_boxes: false, // Sign text has used its renderer cache independently of the new model caches. @@ -740,6 +781,7 @@ impl Graphics { "blueMapAutoDetect" => g.blue_map.auto_detect = flag(g.blue_map.auto_detect), "caveCulling" => g.cave_culling = flag(g.cave_culling), "entityCulling" => g.entity_culling = EntityCullingMode::parse(value), + "particleCulling" => g.particle_culling = ParticleCullingMode::parse(value), "leafCulling" => g.leaf_culling = LeafCullingMode::parse(value), "blockEntityCache" => { let enabled = flag(false); @@ -830,12 +872,13 @@ impl Graphics { } pub fn serialize(&self) -> String { let mut text = format!( - "preset:{}\nlodDistance:{}\nfarDetail:{}\ncaveCulling:{}\nentityCulling:{}\nleafCulling:{}\nblockEntityCacheShulkerBoxes:{}\nblockEntityCacheSigns:{}\nblockEntityCacheDecoratedPots:{}\nblockEntityCacheBells:{}\nblockEntityCacheChests:{}\nblockEntityCacheBanners:{}\nblockEntityCacheCopperGolemStatues:{}\nchunkUpdates:{}\nuploadBudgetKiB:{}\ntextureBudgetMiB:{}\nsky:{}\nfog:{}\nweather:{}\nanimatedTextures:{}\nditherCutoutMips:{}\npresentMode:{}\nframePacing:{}\nworkers:{}\noverlay:{}\nresolutionScale:{}\nfxaa:{}\ntaa:{}\nupscaling:{}\nscreenshotQuality:{}\nframeGeneration:{}\nhdr:{}\nhdrPaperWhite:{}\nhdrPeak:{}\nhdrBlackLevel:{}\nhdrUiBrightness:{}\nhdrKey:{}\nbatteryMode:{}\nshadowCache:{}\ngraphicsApi:{}\npickedShaderPack:{}\nbatchTranslucent:{}\n", + "preset:{}\nlodDistance:{}\nfarDetail:{}\ncaveCulling:{}\nentityCulling:{}\nparticleCulling:{}\nleafCulling:{}\nblockEntityCacheShulkerBoxes:{}\nblockEntityCacheSigns:{}\nblockEntityCacheDecoratedPots:{}\nblockEntityCacheBells:{}\nblockEntityCacheChests:{}\nblockEntityCacheBanners:{}\nblockEntityCacheCopperGolemStatues:{}\nchunkUpdates:{}\nuploadBudgetKiB:{}\ntextureBudgetMiB:{}\nsky:{}\nfog:{}\nweather:{}\nanimatedTextures:{}\nditherCutoutMips:{}\npresentMode:{}\nframePacing:{}\nworkers:{}\noverlay:{}\nresolutionScale:{}\nfxaa:{}\ntaa:{}\nupscaling:{}\nscreenshotQuality:{}\nframeGeneration:{}\nhdr:{}\nhdrPaperWhite:{}\nhdrPeak:{}\nhdrBlackLevel:{}\nhdrUiBrightness:{}\nhdrKey:{}\nbatteryMode:{}\nshadowCache:{}\ngraphicsApi:{}\npickedShaderPack:{}\nbatchTranslucent:{}\n", self.preset.name(), self.lod_distance, self.far_detail.name(), bool_text(self.cave_culling), self.entity_culling.name(), + self.particle_culling.name(), self.leaf_culling.name(), bool_text(self.cache_shulker_boxes), bool_text(self.cache_signs), @@ -1017,6 +1060,7 @@ mod tests { }, cave_culling: false, entity_culling: EntityCullingMode::Synchronous, + particle_culling: ParticleCullingMode::Asynchronous, leaf_culling: LeafCullingMode::SolidAggressive, cache_shulker_boxes: true, cache_signs: true, @@ -1063,6 +1107,16 @@ mod tests { }; assert_eq!(Graphics::parse(&graphics.serialize()), graphics); } + for mode in ParticleCullingMode::ALL { + let graphics = Graphics { + particle_culling: mode, + ..Graphics::default() + }; + assert_eq!( + Graphics::parse(&graphics.serialize()).particle_culling, + mode + ); + } assert_eq!( Graphics::parse("entityCulling:true\n").entity_culling, EntityCullingMode::Synchronous diff --git a/crates/horizon-client-render/src/graphics_ui.rs b/crates/horizon-client-render/src/graphics_ui.rs index 615fbbc9df..4707e4d6ed 100644 --- a/crates/horizon-client-render/src/graphics_ui.rs +++ b/crates/horizon-client-render/src/graphics_ui.rs @@ -4,7 +4,7 @@ use crate::{ graphics::{ EntityCullingMode, FarDetail, FrameGeneration, GraphicsApi, LeafCullingMode, Overlay, - Pacing, PresentMode, Preset, Upscaling, + Pacing, ParticleCullingMode, PresentMode, Preset, Upscaling, }, graphics_style::{Cost, STYLE}, hud::{HudAtlas, HudBatch}, @@ -32,6 +32,7 @@ pub enum H { BlueMapRadius, CaveCulling, EntityCulling, + ParticleCulling, LeafCulling, CacheShulkerBoxes, CacheSigns, @@ -228,6 +229,11 @@ pub fn rows(level: Level) -> Vec { None, "Hides entities behind opaque blocks.", ), + h( + H::ParticleCulling, + None, + "Skips offscreen, subpixel and terrain-hidden particles.", + ), h( H::LeafCulling, Saves, @@ -542,6 +548,15 @@ fn description(item: Item, s: &Settings, text: &'static str) -> &'static str { } LeafCullingMode::Hollow => "Drops faces between leaves: faster, but gaps look through.", }, + (Item::Horizon(H::ParticleCulling), _) => match s.horizon.particle_culling { + ParticleCullingMode::Off => "Draws every particle.", + ParticleCullingMode::Synchronous => { + "Skips offscreen, subpixel and terrain-hidden particles." + } + ParticleCullingMode::Asynchronous => { + "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work." + } + }, _ => text, } } @@ -617,6 +632,7 @@ impl H { ), H::CaveCulling => labelled("Cave Culling", on_off(g.cave_culling)), H::EntityCulling => labelled("Entity Culling", g.entity_culling.label()), + H::ParticleCulling => labelled("Particle Culling", g.particle_culling.label()), H::LeafCulling => labelled("Leaf Culling", g.leaf_culling.label()), H::CacheShulkerBoxes => labelled("Shulker Boxes", on_off(g.cache_shulker_boxes)), H::CacheSigns => labelled("Signs", on_off(g.cache_signs)), @@ -770,6 +786,9 @@ impl H { H::EntityCulling => { g.entity_culling = step(&EntityCullingMode::ALL, g.entity_culling, back) } + H::ParticleCulling => { + g.particle_culling = step(&ParticleCullingMode::ALL, g.particle_culling, back) + } H::LeafCulling => { g.leaf_culling = step(&LeafCullingMode::ALL, g.leaf_culling, back); } @@ -2053,10 +2072,14 @@ mod tests { )); assert!(matches!( rows.get(culling + 3), - Some(Row::Setting(setting)) if setting.item == item + Some(Row::Setting(setting)) if setting.item == Item::Horizon(H::ParticleCulling) )); assert!(matches!( rows.get(culling + 4), + Some(Row::Setting(setting)) if setting.item == item + )); + assert!(matches!( + rows.get(culling + 5), Some(Row::Header("Block Entities")) )); for (offset, cache) in [ @@ -2072,12 +2095,12 @@ mod tests { .enumerate() { assert!(matches!( - rows.get(culling + 5 + offset), + rows.get(culling + 6 + offset), Some(Row::Setting(setting)) if setting.item == Item::Horizon(cache) )); } assert!(matches!( - rows.get(culling + 12), + rows.get(culling + 13), Some(Row::Header("Quality")) )); @@ -2162,6 +2185,51 @@ mod tests { assert_eq!(item.label(&s).plain(), "Entity Culling: Asynchronous"); } + #[test] + fn particle_culling_modes_are_opt_in_and_cycle_from_advanced_graphics() { + let mut s = Settings::default(); + let item = Item::Horizon(H::ParticleCulling); + assert_eq!(s.horizon.particle_culling, ParticleCullingMode::Off); + assert_eq!(item.label(&s).plain(), "Particle Culling: Off"); + for mode in ParticleCullingMode::ALL { + s.horizon.particle_culling = mode; + for preset in Preset::ALL { + crate::graphics::apply_preset(preset, &mut s); + assert_eq!(s.horizon.particle_culling, mode); + } + assert_eq!( + crate::graphics::Graphics::parse(&s.horizon.serialize()).particle_culling, + mode + ); + } + + let mut ui = GraphicsUi::default(); + let size = (480.0, 4000.0); + let (widgets, _, _) = ui.layout(Level::Advanced, &s, size.0, size.1); + let control = widgets + .iter() + .find(|w| matches!(w.target, Target::Item(i) if i == item)) + .unwrap(); + s.horizon.particle_culling = ParticleCullingMode::Off; + for (mode, label) in [ + (ParticleCullingMode::Synchronous, "Synchronous"), + (ParticleCullingMode::Asynchronous, "Asynchronous"), + (ParticleCullingMode::Off, "Off"), + ] { + ui.click( + Level::Advanced, + &mut s, + (control.x + 1.0, control.y + 1.0), + size, + [854, 480], + false, + false, + ); + assert_eq!(s.horizon.particle_culling, mode); + assert_eq!(item.label(&s).plain(), format!("Particle Culling: {label}")); + } + } + /// Translucent Batching: a switch on Advanced (not Simple), on by default, no part of a /// preset, and greyed out, reading Off, where the device can't batch. #[test] @@ -2446,36 +2514,47 @@ mod tests { let mut s = Settings::default(); s.horizon.leaf_culling = LeafCullingMode::Hollow; s.horizon.entity_culling = EntityCullingMode::Asynchronous; - for (code, leaf, entity, leaf_text) in [ + s.horizon.particle_culling = ParticleCullingMode::Asynchronous; + for (code, leaf, entity, leaf_text, particle, particle_text) in [ ( "de_de", "Laub-Culling: Hohl", "Objekt-Culling: Asynchron", "Lässt Flächen zwischen Blättern weg: schneller, aber Lücken sind durchsichtig.", + "Partikel-Culling: Asynchron", + "Überspringt Partikel außerhalb des Bildes, unterhalb eines Pixels oder hinter Terrain und entlastet den Render-Thread.", ), ( "pl_pl", "Pomijanie liści: Puste", "Pomijanie bytów: Asynchroniczne", "Pomija ściany między liśćmi: szybciej, ale luki są przezroczyste.", + "Pomijanie cząsteczek: Asynchroniczne", + "Pomija cząsteczki poza ekranem, mniejsze niż piksel i zasłonięte przez teren, odciążając wątek renderowania.", ), ( "uk_ua", "Відсікання листя: Порожнє", "Відсік. сутностей: Асинхронно", "Прибирає грані між листям: швидше, але прогалини прозорі.", + "Відсікання частинок: Асинхронно", + "Пропускає частинки поза екраном, менші за піксель і закриті місцевістю, зменшуючи роботу потоку рендерингу.", ), ( "zh_cn", "树叶剔除: 镂空", "实体剔除: 异步", "省略树叶之间的面:更快,但缝隙会透视。", + "粒子剔除: 异步", + "跳过屏幕外、小于一个像素和被地形遮挡的粒子,减少渲染线程的工作量。", ), ( "fr_fr", "Occlusion feuillage: Creux", "Occlusion des entités: Asynchrone", "Supprime les faces entre feuilles : plus rapide, mais on voit à travers les trous.", + "Occlusion des particules: Asynchrone", + "Ignore les particules hors écran, trop petites ou masquées par le terrain avec moins de travail sur le thread de rendu.", ), ] { let (shown, _) = lang::scoped(lang::Language::load(&[], code), || { @@ -2484,11 +2563,19 @@ mod tests { item(H::LeafCulling).label(&s).plain(), item(H::EntityCulling).label(&s).plain(), lang::get(description(item(H::LeafCulling), &s, "")), + item(H::ParticleCulling).label(&s).plain(), + lang::get(description(item(H::ParticleCulling), &s, "")), ) }); assert_eq!( shown, - (leaf.into(), entity.into(), leaf_text.into()), + ( + leaf.into(), + entity.into(), + leaf_text.into(), + particle.into(), + particle_text.into(), + ), "{code}" ); } diff --git a/crates/horizon-client-render/src/particles.rs b/crates/horizon-client-render/src/particles.rs index 404d60f771..c75a180607 100644 --- a/crates/horizon-client-render/src/particles.rs +++ b/crates/horizon-client-render/src/particles.rs @@ -19,6 +19,7 @@ use horizon_core::{ }; use horizon_world::block_collision::BlockCollisionRegistry; use std::{ + array, collections::{HashMap, HashSet}, path::Path, }; @@ -401,7 +402,7 @@ pub fn breaking_position( } } // Vanilla consumes all three doubles before replacing the hit-face coordinate. - let mut p = std::array::from_fn(|i| { + let mut p = array::from_fn(|i| { f64::from(pos[i]) + random.next_double() * (bounds[i + 3] - bounds[i] - f64::from(0.2f32)) + f64::from(0.1f32) @@ -533,18 +534,16 @@ pub fn destroy_positions( mut emit: impl FnMut([f64; 3], [f64; 3]), ) { for b in boxes { - let widths: [f64; 3] = std::array::from_fn(|i| (b[i + 3] - b[i]).min(1.0)); + let widths: [f64; 3] = array::from_fn(|i| (b[i + 3] - b[i]).min(1.0)); let counts: [usize; 3] = widths.map(|w| ((w / 0.25).ceil() as usize).max(2)); for x in 0..counts[0] { for y in 0..counts[1] { for z in 0..counts[2] { let cells = [x, y, z]; let relative: [f64; 3] = - std::array::from_fn(|i| (cells[i] as f64 + 0.5) / counts[i] as f64); + array::from_fn(|i| (cells[i] as f64 + 0.5) / counts[i] as f64); emit( - std::array::from_fn(|i| { - f64::from(pos[i]) + (relative[i] * widths[i] + b[i]) - }), + array::from_fn(|i| f64::from(pos[i]) + (relative[i] * widths[i] + b[i])), relative.map(|v| v - 0.5), ); } @@ -625,7 +624,7 @@ pub fn on_block_faces_between( let count = random.next_int_bound(max - min + 1).unwrap_or(0) + min; for _ in 0..count { // getRandomSpeedRanges, then spawnParticleOnFace with step factor 0.55. - let speed: [f64; 3] = std::array::from_fn(|_| next_double_between(random, -0.5, 0.5)); + let speed: [f64; 3] = array::from_fn(|_| next_double_between(random, -0.5, 0.5)); let mut p = [0.0; 3]; let mut v = [0.0; 3]; for i in 0..3 { @@ -654,12 +653,12 @@ pub fn along_axis( ) { let count = random.next_int_bound(max - min + 1).unwrap_or(0) + min; for _ in 0..count { - let p: [f64; 3] = std::array::from_fn(|i| { + let p: [f64; 3] = array::from_fn(|i| { f64::from(pos[i]) + 0.5 + next_double_between(random, -1.0, 1.0) * if i == axis { 0.5 } else { 0.125 } }); - let v: [f64; 3] = std::array::from_fn(|i| { + let v: [f64; 3] = array::from_fn(|i| { if i == axis { next_double_between(random, -1.0, 1.0) } else { @@ -1098,6 +1097,113 @@ pub struct ParticleEngine { const MAX_PARTICLES: usize = 16384; /// `ParticleLimit.SPORE_BLOSSOM`, the only limited particle. const SPORE_BLOSSOM_LIMIT: usize = 1000; +const PARTICLE_SECTION_CACHE_SIZE: usize = 128; + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +enum SectionFrustumResult { + Outside, + Intersects, + Inside, +} + +#[derive(Clone, Copy)] +struct CachedSectionFrustum { + section: [i32; 3], + radius_quarters: i32, + result: SectionFrustumResult, +} + +struct ParticleSectionFrustumCache { + entries: [Option; PARTICLE_SECTION_CACHE_SIZE], +} + +impl Default for ParticleSectionFrustumCache { + fn default() -> Self { + Self { + entries: [None; PARTICLE_SECTION_CACHE_SIZE], + } + } +} + +impl ParticleSectionFrustumCache { + fn result( + &mut self, + world: [f64; 3], + camera: DVec3, + radius: f64, + frustum: &crate::gfx::Frustum, + ) -> SectionFrustumResult { + let Some(section) = world_section(world) else { + return SectionFrustumResult::Intersects; + }; + if !radius.is_finite() || radius < 0.0 || radius * 4.0 > f64::from(i32::MAX) { + return SectionFrustumResult::Intersects; + } + let radius_quarters = (radius * 4.0).ceil() as i32; + let hash = (section[0] as u32).wrapping_mul(73_856_093) + ^ (section[1] as u32).wrapping_mul(19_349_663) + ^ (section[2] as u32).wrapping_mul(83_492_791) + ^ (radius_quarters as u32).wrapping_mul(2_654_435_761); + let slot = hash as usize & (PARTICLE_SECTION_CACHE_SIZE - 1); + if let Some(entry) = self.entries[slot] + && entry.section == section + && entry.radius_quarters == radius_quarters + { + return entry.result; + } + + let pad = f64::from(radius_quarters) * 0.25; + let camera = camera.to_array(); + let min = array::from_fn(|axis| f64::from(section[axis]) * 16.0 - pad - camera[axis]); + let max = array::from_fn(|axis| min[axis] + 16.0 + 2.0 * pad); + let result = if min.into_iter().chain(max).any(|v| !v.is_finite()) { + SectionFrustumResult::Intersects + } else { + let min = FVec3::from_array(min.map(|v| v as f32)); + let max = FVec3::from_array(max.map(|v| v as f32)); + if !min.is_finite() || !max.is_finite() { + SectionFrustumResult::Intersects + } else if frustum.contains(min, max) { + SectionFrustumResult::Inside + } else if frustum.intersects(min, max) { + SectionFrustumResult::Intersects + } else { + SectionFrustumResult::Outside + } + }; + self.entries[slot] = Some(CachedSectionFrustum { + section, + radius_quarters, + result, + }); + result + } +} + +fn world_section(position: [f64; 3]) -> Option<[i32; 3]> { + let mut block = [0; 3]; + for axis in 0..3 { + let value = position[axis].floor(); + if !value.is_finite() || value < f64::from(i32::MIN) || value > f64::from(i32::MAX) { + return None; + } + block[axis] = value as i32; + } + Some([block[0] >> 4, block[1] >> 4, block[2] >> 4]) +} + +fn below_half_pixel(radius: f64, distance_squared: f64, pixel_focal_length: f32) -> bool { + let projected_limit = 4.0 * radius * f64::from(pixel_focal_length); + radius.is_finite() + && radius >= 0.0 + && distance_squared.is_finite() + && distance_squared > 0.0 + && pixel_focal_length.is_finite() + && pixel_focal_length > 0.0 + && projected_limit.is_finite() + && projected_limit * projected_limit < distance_squared +} + impl ParticleEngine { pub fn new(root: &Path, atlas: &HashMap, translucent: &HashSet) -> Self { let mut engine = Self { @@ -1357,7 +1463,7 @@ impl ParticleEngine { for _ in 0..128 { let r = &mut self.level_random; let t = r.next_double(); - let velocity = std::array::from_fn(|_| f64::from((r.next_float() - 0.5) * 0.2)); + let velocity = array::from_fn(|_| f64::from((r.next_float() - 0.5) * 0.2)); let position = [ to[0] + t * (from[0] - to[0]) + (r.next_double() - 0.5) + 0.5, to[1] + t * (from[1] - to[1]) + r.next_double() - 0.5, @@ -1385,7 +1491,7 @@ impl ParticleEngine { for _ in 0..128 { let r = &mut self.level_random; let t = r.next_double(); - let velocity = std::array::from_fn(|_| f64::from((r.next_float() - 0.5) * 0.2)); + let velocity = array::from_fn(|_| f64::from((r.next_float() - 0.5) * 0.2)); // Mth.lerp(t, to, from). let position = [ to[0] + t * (from[0] - to[0]) + (r.next_double() - 0.5) * WIDTH * 2.0, @@ -4136,8 +4242,7 @@ impl ParticleEngine { .filter(|p| p.rgba[3] > 0.0) .filter_map(|p| { let (_, rgb, reach) = shining.iter().find(|(ty, ..)| *ty == p.ty)?; - let at = - std::array::from_fn(|i| p.previous[i] + (p.position[i] - p.previous[i]) * f); + let at = array::from_fn(|i| p.previous[i] + (p.position[i] - p.previous[i]) * f); Some((at, *rgb, *reach, p.rgba[3].clamp(0.0, 1.0))) }) .collect() @@ -4152,10 +4257,69 @@ impl ParticleEngine { partial: f32, light_at: &dyn Fn([i32; 3]) -> u8, out: &mut Vec, + ) { + self.render_inner::( + camera, + yaw, + pitch, + partial, + 0.0, + None, + &mut |_, _| false, + light_at, + out, + ); + } + + /// Render particles after rejecting view-frustum misses and any particles + /// the caller proves hidden behind opaque terrain. + pub fn render_culled( + &self, + camera: DVec3, + yaw: f32, + pitch: f32, + partial: f32, + pixel_focal_length: f32, + culling_enabled: bool, + frustum: Option<&crate::gfx::Frustum>, + mut occluded: impl FnMut([f64; 3], [f64; 3]) -> bool, + light_at: &dyn Fn([i32; 3]) -> u8, + out: &mut Vec, + ) { + if !culling_enabled { + self.render(camera, yaw, pitch, partial, light_at, out); + return; + } + self.render_inner::( + camera, + yaw, + pitch, + partial, + pixel_focal_length, + frustum, + &mut occluded, + light_at, + out, + ); + } + + fn render_inner( + &self, + camera: DVec3, + yaw: f32, + pitch: f32, + partial: f32, + pixel_focal_length: f32, + frustum: Option<&crate::gfx::Frustum>, + occluded: &mut dyn FnMut([f64; 3], [f64; 3]) -> bool, + light_at: &dyn Fn([i32; 3]) -> u8, + out: &mut Vec, ) { // Camera.setRotation: rotationYXZ(PI - yRot, -xRot, 0). let base = Quat::from_rotation_y(std::f32::consts::PI - yaw.to_radians()) * Quat::from_rotation_x(-pitch.to_radians()); + let mut section_cache = + (CULL && frustum.is_some()).then(ParticleSectionFrustumCache::default); for p in &self.particles { if p.no_render { continue; @@ -4167,6 +4331,39 @@ impl ParticleEngine { { continue; } + if CULL && matches!(p.behaviour, Behaviour::Shriek { delay } if delay > 0) { + continue; + } + let culled_geometry = if CULL { + let a = f64::from(partial); + let world = array::from_fn(|i| p.previous[i] + (p.position[i] - p.previous[i]) * a); + let center = (DVec3::from_array(world) - camera).as_vec3(); + let size = p.quad_size(partial); + // Every generated quad vertex is sqrt(2) * size from its center, + // including the rotated two-quad particle types. + let radius = f64::from(size.abs()) * std::f64::consts::SQRT_2 + 0.05; + if let (Some(frustum), Some(section_cache)) = (frustum, section_cache.as_mut()) { + match section_cache.result(world, camera, radius, frustum) { + SectionFrustumResult::Outside => continue, + SectionFrustumResult::Intersects + if !frustum.intersects_sphere(center, radius as f32) => + { + continue; + } + SectionFrustumResult::Inside | SectionFrustumResult::Intersects => {} + } + } + let distance_squared = f64::from(center.length_squared()); + if below_half_pixel(radius, distance_squared, pixel_focal_length) { + continue; + } + if occluded(world.map(|v| v - radius), world.map(|v| v + radius)) { + continue; + } + Some((center, size)) + } else { + None + }; // `SubmitNodeCollection.submitQuadParticleGroup`: the translucent // layer draws after translucent terrain, so a crumb of stained // glass cannot hide the glass behind it (`getLayer`). @@ -4181,19 +4378,20 @@ impl ParticleEngine { }, }; let Some(r) = rect else { continue }; - let a = f64::from(partial); - let pos = DVec3::new( - p.previous[0] + (p.position[0] - p.previous[0]) * a, - p.previous[1] + (p.position[1] - p.previous[1]) * a, - p.previous[2] + (p.position[2] - p.previous[2]) * a, - ) - camera; - let center = pos.as_vec3(); + let (center, size) = culled_geometry.unwrap_or_else(|| { + let a = f64::from(partial); + let pos = DVec3::new( + p.previous[0] + (p.position[0] - p.previous[0]) * a, + p.previous[1] + (p.position[1] - p.previous[1]) * a, + p.previous[2] + (p.position[2] - p.previous[2]) * a, + ) - camera; + (pos.as_vec3(), p.quad_size(partial)) + }); let rotation = if p.roll != 0.0 { base * Quat::from_rotation_z(p.o_roll + (p.roll - p.o_roll) * partial) } else { base }; - let size = p.quad_size(partial); let mut alpha = p.rgba[3]; // OverlayParticle.extract: the flash fades as it pulses. if p.ty == ParticleType::Flash { @@ -4207,7 +4405,7 @@ impl ParticleEngine { match p.behaviour { // ShriekParticle.extract: two tilted quads, fading out. Behaviour::Shriek { delay } => { - if delay > 0 { + if !CULL && delay > 0 { continue; } alpha = 1.0 - ((p.age as f32 + partial) / p.lifetime as f32).clamp(0.0, 1.0); @@ -4250,7 +4448,7 @@ impl ParticleEngine { // DustColorTransitionParticle.lerpColors. Behaviour::Transition { from, to } => { let t = (p.age as f32 + partial) / (p.lifetime as f32 + 1.0); - rgb = std::array::from_fn(|i| from[i] + (to[i] - from[i]) * t); + rgb = array::from_fn(|i| from[i] + (to[i] - from[i]) * t); } _ => {} } @@ -4366,6 +4564,86 @@ const CREEPER: [[f64; 2]; 12] = [ mod tests { use super::*; + #[test] + fn subpixel_culling_uses_the_frame_projection_and_fails_open() { + assert!(below_half_pixel(0.01, 41.0_f64.powi(2), 1_000.0)); + assert!(!below_half_pixel(0.01, 40.0_f64.powi(2), 1_000.0)); + assert!(!below_half_pixel(0.01, 41.0_f64.powi(2), 0.0)); + assert!(!below_half_pixel(0.01, f64::NAN, 1_000.0)); + assert!(!below_half_pixel(f64::NAN, 41.0_f64.powi(2), 1_000.0)); + + for distance in [0.25_f32, 1.0, 8.0, 40.0, 128.0] { + for radius in [0.01, 0.05, 0.2] { + let center = FVec3::new(distance, distance * 0.3, -distance * 0.8); + let old = 2.0 * radius * 900.0 / f64::from(center.length()) < 0.5; + assert_eq!( + below_half_pixel(radius, f64::from(center.length_squared()), 900.0), + old + ); + } + } + } + + #[test] + fn disabled_culled_render_matches_the_regular_particle_path() { + let mut engine = ParticleEngine::new(Path::new(""), &HashMap::new(), &HashSet::new()); + let sprite = "test:smoke".to_owned(); + engine.atlas.insert( + sprite.clone(), + ( + Rect { + u0: 0.0, + v0: 0.0, + u1: 1.0, + v1: 1.0, + w: 16, + h: 16, + }, + false, + ), + ); + let mut random = LegacyRandom::new(7); + let mut particle = + Particle::moving(&mut random, ParticleType::Smoke, [0.0, 0.0, -3.0], [0.0; 3]); + particle.sprite = Sprite::Named(sprite); + engine.particles.push(particle); + + let light_at = |_: [i32; 3]| 0xf0; + let mut regular = Vec::new(); + engine.render(DVec3::ZERO, 0.0, 0.0, 0.5, &light_at, &mut regular); + let mut disabled = Vec::new(); + engine.render_culled( + DVec3::ZERO, + 0.0, + 0.0, + 0.5, + 900.0, + false, + None, + |_, _| panic!("disabled culling must not query particle visibility"), + &light_at, + &mut disabled, + ); + + let attributes = |vertices: &[Vertex]| { + vertices + .iter() + .map(|vertex| { + ( + vertex.pos, + vertex.uv, + vertex.layer, + vertex.color, + vertex.light, + vertex.normal, + vertex.glint_uv, + ) + }) + .collect::>() + }; + assert_eq!(attributes(&disabled), attributes(®ular)); + } + #[test] fn a_mod_particles_json_becomes_its_sprite_set() { let dir = diff --git a/crates/horizon-client/assets/horizon/lang/de_de.json b/crates/horizon-client/assets/horizon/lang/de_de.json index 651a3eef9e..eed0e890ba 100644 --- a/crates/horizon-client/assets/horizon/lang/de_de.json +++ b/crates/horizon-client/assets/horizon/lang/de_de.json @@ -338,5 +338,9 @@ "horizon.pages.open.split_setup": "Splitscreen …", "horizon.pages.split_settings": "Splitscreen-Einstellungen", "horizon.pages.split_setup": "Splitscreen", - "horizon.pages.split_setup.tooltip": "Spieler an diesem Computer: Controller können deiner Welt beitreten." + "horizon.pages.split_setup.tooltip": "Spieler an diesem Computer: Controller können deiner Welt beitreten.", + "Particle Culling": "Partikel-Culling", + "Draws every particle.": "Zeichnet alle Partikel.", + "Skips offscreen, subpixel and terrain-hidden particles.": "Überspringt Partikel außerhalb des Bildes, unterhalb eines Pixels oder hinter Terrain.", + "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work.": "Überspringt Partikel außerhalb des Bildes, unterhalb eines Pixels oder hinter Terrain und entlastet den Render-Thread." } diff --git a/crates/horizon-client/assets/horizon/lang/en_us.json b/crates/horizon-client/assets/horizon/lang/en_us.json index 033cedb98c..b9844b6d67 100644 --- a/crates/horizon-client/assets/horizon/lang/en_us.json +++ b/crates/horizon-client/assets/horizon/lang/en_us.json @@ -440,5 +440,9 @@ "horizon.repro.bundle": "Repro bundle: %s", "horizon.repro.error": "Repro: %s", "horizon.repro.no_recording": "There is no recording to export yet.", - "horizon.repro.replay_started": "Replay started: %s" + "horizon.repro.replay_started": "Replay started: %s", + "Particle Culling": "Particle Culling", + "Draws every particle.": "Draws every particle.", + "Skips offscreen, subpixel and terrain-hidden particles.": "Skips offscreen, subpixel and terrain-hidden particles.", + "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work.": "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work." } diff --git a/crates/horizon-client/assets/horizon/lang/es_es.json b/crates/horizon-client/assets/horizon/lang/es_es.json index 9af1336550..e4122a1cb4 100644 --- a/crates/horizon-client/assets/horizon/lang/es_es.json +++ b/crates/horizon-client/assets/horizon/lang/es_es.json @@ -207,5 +207,9 @@ "horizon.pages.split_profiles.tooltip": "Quién juega: un perfil guardado en esta carpeta del juego.", "horizon.shader_options.open": "Opciones de sombreadores…", "horizon.shader_options.profile": "Perfil", - "horizon.shader_options.loading": "Leyendo las opciones del paquete de sombreadores…" + "horizon.shader_options.loading": "Leyendo las opciones del paquete de sombreadores…", + "Particle Culling": "Particle Culling", + "Draws every particle.": "Draws every particle.", + "Skips offscreen, subpixel and terrain-hidden particles.": "Skips offscreen, subpixel and terrain-hidden particles.", + "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work.": "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work." } diff --git a/crates/horizon-client/assets/horizon/lang/fr_fr.json b/crates/horizon-client/assets/horizon/lang/fr_fr.json index 3cea925b0f..689dacaee0 100644 --- a/crates/horizon-client/assets/horizon/lang/fr_fr.json +++ b/crates/horizon-client/assets/horizon/lang/fr_fr.json @@ -406,5 +406,9 @@ "horizon.extras.hide_block_particles.tooltip": "Masque les débris qui jaillissent d'un bloc cassé et s'effritent de celui que vous minez. Les autres particules restent.", "horizon.extras.splitscreen.tooltip": "Dans un monde, une autre manette peut rejoindre en tant que nouveau joueur : appuyez sur A quand c'est demandé, puis choisissez un profil et où jouer.", "horizon.extras.ui_sound_reserve": "Canaux pour sons UI", - "horizon.extras.ui_sound_reserve.tooltip": "Les sons du monde laissent 16 des 247 canaux sonores libres, pour qu'un déluge de sons (une grosse explosion) ne couvre pas les clics de menu." + "horizon.extras.ui_sound_reserve.tooltip": "Les sons du monde laissent 16 des 247 canaux sonores libres, pour qu'un déluge de sons (une grosse explosion) ne couvre pas les clics de menu.", + "Particle Culling": "Occlusion des particules", + "Draws every particle.": "Dessine toutes les particules.", + "Skips offscreen, subpixel and terrain-hidden particles.": "Ignore les particules hors écran, trop petites ou masquées par le terrain.", + "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work.": "Ignore les particules hors écran, trop petites ou masquées par le terrain avec moins de travail sur le thread de rendu." } diff --git a/crates/horizon-client/assets/horizon/lang/pl_pl.json b/crates/horizon-client/assets/horizon/lang/pl_pl.json index 720bd5f268..4515491d21 100644 --- a/crates/horizon-client/assets/horizon/lang/pl_pl.json +++ b/crates/horizon-client/assets/horizon/lang/pl_pl.json @@ -338,5 +338,9 @@ "horizon.pages.open.split_setup": "Podzielony ekran…", "horizon.pages.split_settings": "Ustawienia podzielonego ekranu", "horizon.pages.split_setup": "Podzielony ekran", - "horizon.pages.split_setup.tooltip": "Gracze na tym komputerze: kontrolery mogą dołączyć do twojego świata." + "horizon.pages.split_setup.tooltip": "Gracze na tym komputerze: kontrolery mogą dołączyć do twojego świata.", + "Particle Culling": "Pomijanie cząsteczek", + "Draws every particle.": "Rysuje wszystkie cząsteczki.", + "Skips offscreen, subpixel and terrain-hidden particles.": "Pomija cząsteczki poza ekranem, mniejsze niż piksel i zasłonięte przez teren.", + "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work.": "Pomija cząsteczki poza ekranem, mniejsze niż piksel i zasłonięte przez teren, odciążając wątek renderowania." } diff --git a/crates/horizon-client/assets/horizon/lang/ru_ru.json b/crates/horizon-client/assets/horizon/lang/ru_ru.json index badc148ddb..caaac4e9bc 100644 --- a/crates/horizon-client/assets/horizon/lang/ru_ru.json +++ b/crates/horizon-client/assets/horizon/lang/ru_ru.json @@ -206,5 +206,9 @@ "horizon.pages.split_profiles.tooltip": "Кто играет: профиль, хранимый в этой папке игры.", "horizon.shader_options.open": "Настройки шейдеров…", "horizon.shader_options.profile": "Профиль", - "horizon.shader_options.loading": "Чтение настроек набора шейдеров…" + "horizon.shader_options.loading": "Чтение настроек набора шейдеров…", + "Particle Culling": "Particle Culling", + "Draws every particle.": "Draws every particle.", + "Skips offscreen, subpixel and terrain-hidden particles.": "Skips offscreen, subpixel and terrain-hidden particles.", + "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work.": "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work." } diff --git a/crates/horizon-client/assets/horizon/lang/tr_tr.json b/crates/horizon-client/assets/horizon/lang/tr_tr.json index fd3a807cd9..cf53db1f89 100644 --- a/crates/horizon-client/assets/horizon/lang/tr_tr.json +++ b/crates/horizon-client/assets/horizon/lang/tr_tr.json @@ -202,5 +202,9 @@ "horizon.pages.split_profiles.tooltip": "Kim oynuyor: bu oyun klasöründe tutulan bir profil.", "horizon.shader_options.open": "Gölgelendirici Seçenekleri…", "horizon.shader_options.profile": "Profil", - "horizon.shader_options.loading": "Gölgelendirici paketinin seçenekleri okunuyor…" + "horizon.shader_options.loading": "Gölgelendirici paketinin seçenekleri okunuyor…", + "Particle Culling": "Particle Culling", + "Draws every particle.": "Draws every particle.", + "Skips offscreen, subpixel and terrain-hidden particles.": "Skips offscreen, subpixel and terrain-hidden particles.", + "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work.": "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work." } diff --git a/crates/horizon-client/assets/horizon/lang/uk_ua.json b/crates/horizon-client/assets/horizon/lang/uk_ua.json index f4867ff67b..02d21b3f7d 100644 --- a/crates/horizon-client/assets/horizon/lang/uk_ua.json +++ b/crates/horizon-client/assets/horizon/lang/uk_ua.json @@ -440,5 +440,9 @@ "horizon.repro.bundle": "Пакет відтворення: %s", "horizon.repro.error": "Відтворення: %s", "horizon.repro.no_recording": "Поки немає запису для експорту.", - "horizon.repro.replay_started": "Відтворення почато: %s" + "horizon.repro.replay_started": "Відтворення почато: %s", + "Particle Culling": "Відсікання частинок", + "Draws every particle.": "Малює всі частинки.", + "Skips offscreen, subpixel and terrain-hidden particles.": "Пропускає частинки поза екраном, менші за піксель і закриті місцевістю.", + "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work.": "Пропускає частинки поза екраном, менші за піксель і закриті місцевістю, зменшуючи роботу потоку рендерингу." } diff --git a/crates/horizon-client/assets/horizon/lang/zh_cn.json b/crates/horizon-client/assets/horizon/lang/zh_cn.json index e41512900d..3287a6ccaf 100644 --- a/crates/horizon-client/assets/horizon/lang/zh_cn.json +++ b/crates/horizon-client/assets/horizon/lang/zh_cn.json @@ -338,5 +338,9 @@ "horizon.agent.off": "关闭:代理无法访问此游戏。", "horizon.agent.session_opened": "由启动游戏的程序为本次会话开启。", "horizon.agent.socket": "套接字:%s(复制详细信息以获取完整路径)", - "horizon.agent.local_only": "仅限本机:此电脑上的代理可用,网络不可用。" + "horizon.agent.local_only": "仅限本机:此电脑上的代理可用,网络不可用。", + "Particle Culling": "粒子剔除", + "Draws every particle.": "绘制所有粒子。", + "Skips offscreen, subpixel and terrain-hidden particles.": "跳过屏幕外、小于一个像素和被地形遮挡的粒子。", + "Skips offscreen, subpixel and terrain-hidden particles with less render-thread work.": "跳过屏幕外、小于一个像素和被地形遮挡的粒子,减少渲染线程的工作量。" } diff --git a/crates/horizon-client/src/game.rs b/crates/horizon-client/src/game.rs index b9fb50f017..6a12b7b961 100644 --- a/crates/horizon-client/src/game.rs +++ b/crates/horizon-client/src/game.rs @@ -241,6 +241,7 @@ mod pad; mod pad_menu; mod paintings; mod pandas; +mod particle_culling; mod passengers; mod persist; mod perspective; @@ -2844,6 +2845,7 @@ struct Game<'a> { entity_culler: Option, async_entity_culler: Option, async_entity_culling_failed: bool, + async_particle_culler: RefCell, /// `Renderer::pack_shadow_casters` for this frame's entities: (keep what the culler hides, /// build the player's model in first person); (false, false) without a shader pack. pack_shadow_casters: (bool, bool), @@ -10442,6 +10444,7 @@ impl Game<'_> { &mut self, camera: glam::DVec3, alpha: f64, + fov_degrees: f32, mut out: Vec, ) -> ( Vec, @@ -10968,14 +10971,42 @@ impl Game<'_> { // Particles (ParticleEngine.extract): camera-facing quads. self.mark_stage(out.len(), "PARTICLES"); let world = &self.world; - self.particles.render( - camera, - self.yaw, - self.pitch, - alpha as f32, - &|b| world.light(b[0], b[1], b[2]), - &mut out, - ); + let particle_mode = self.settings.horizon.particle_culling; + if particle_mode == horizon_client::graphics::ParticleCullingMode::Off { + self.particles.render( + camera, + self.yaw, + self.pitch, + alpha as f32, + &|b| world.light(b[0], b[1], b[2]), + &mut out, + ); + } else { + let frustum = self.view_frustum; + let pixel_focal_length = self.renderer.as_ref().map_or(0.0, |renderer| { + let tangent = (f64::from(fov_degrees).to_radians() * 0.5).tan(); + if tangent.is_finite() && tangent > 0.0 { + (f64::from(renderer.config.height.max(1)) / (2.0 * tangent)) as f32 + } else { + 0.0 + } + }); + let mut particle_culling = self.particle_occlusion_context(camera); + self.particles.render_culled( + camera, + self.yaw, + self.pitch, + alpha as f32, + pixel_focal_length, + true, + frustum.as_ref(), + &mut |min, max| particle_culling.hidden(min, max), + &|b| world.light(b[0], b[1], b[2]), + &mut out, + ); + drop(particle_culling); + self.finish_async_particle_culling(); + } laps.lap("eg_particles"); // Breaking progress overlays (destroy_stage_0..9): ours and the other players'. self.mark_stage(out.len(), "DESTROY"); @@ -15364,7 +15395,7 @@ impl Game<'_> { if !title { let (built, static_sections, visible_static_sections, static_stats) = spans::time("entity_geometry", || { - self.entity_geometry(camera, alpha, entities) + self.entity_geometry(camera, alpha, fov_degrees, entities) }); entities = built; static_block_entities = static_sections; @@ -18540,6 +18571,7 @@ impl<'a> Game<'a> { entity_culler: None, async_entity_culler: None, async_entity_culling_failed: false, + async_particle_culler: RefCell::new(Default::default()), pack_shadow_casters: (false, false), pending_uploads: Vec::new(), frame_graph: Default::default(), diff --git a/crates/horizon-client/src/game/particle_culling.rs b/crates/horizon-client/src/game/particle_culling.rs new file mode 100644 index 0000000000..d0ac11bfcd --- /dev/null +++ b/crates/horizon-client/src/game/particle_culling.rs @@ -0,0 +1,785 @@ +//! Particle visibility checks and their worker, separate from entity culling. +use super::Game; +use horizon_client::{ + blocks::{BlockFacts, RenderShape, StateFacts}, + chunk::Chunk, + entity_culling::Culler, + graphics::ParticleCullingMode, + world::World, +}; +use std::{ + array, + cell::RefCell, + sync::{ + Arc, Weak, + mpsc::{self, Receiver, SyncSender, TrySendError}, + }, + thread::JoinHandle, +}; + +type ChunkKey = (i32, i32); +type SectionKey = (i32, i32, i32); +const MAX_SNAPSHOT_CHUNKS: i64 = 4_096; + +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] +struct CullKey { + camera: [u64; 3], + min: [u64; 3], + max: [u64; 3], +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +struct SnapshotKey { + world_revision: u64, + chunks_revision: u64, + bottom_y: i32, +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +struct ChunkBounds { + min_x: i32, + max_x: i32, + min_z: i32, + max_z: i32, +} + +#[derive(Clone)] +struct OcclusionSnapshot { + chunks: Vec<(ChunkKey, Weak)>, + opaque_states: Arc<[bool]>, +} + +impl OcclusionSnapshot { + fn chunk(&self, key: ChunkKey) -> Option<&Weak> { + self.chunks + .binary_search_by_key(&key, |(key, _)| *key) + .ok() + .map(|index| &self.chunks[index].1) + } + + fn refresh_chunks(&mut self, world: &World, bounds: ChunkBounds) { + self.chunks.clear(); + for x in bounds.min_x..=bounds.max_x { + for z in bounds.min_z..=bounds.max_z { + if let Some(chunk) = world.chunks.get(&(x, z)) { + self.chunks.push(((x, z), Arc::downgrade(chunk))); + } + } + } + } + + fn chunks_match(&self, world: &World) -> bool { + self.chunks.iter().all(|(key, expected)| { + world + .chunks + .get(key) + .is_some_and(|current| std::ptr::eq(expected.as_ptr(), Arc::as_ptr(current))) + }) + } + + fn opaque(&self, pos: [i32; 3], last_chunk: &mut LastChunk) -> bool { + let key = (pos[0] >> 4, pos[2] >> 4); + let Some(chunk) = last_chunk.get(self, key) else { + return false; + }; + let state = chunk.block(pos[0] & 15, pos[1], pos[2] & 15); + self.opaque_states + .get(state.0 as usize) + .copied() + .unwrap_or(false) + } +} + +#[derive(Default)] +struct LastChunk { + key: Option, + value: Option>, +} + +impl LastChunk { + fn get(&mut self, snapshot: &OcclusionSnapshot, key: ChunkKey) -> Option<&Arc> { + if self.key != Some(key) { + self.key = Some(key); + self.value = snapshot.chunk(key).and_then(Weak::upgrade); + } + self.value.as_ref() + } +} + +struct OcclusionProof { + sections: Vec, + chunks: Vec<(ChunkKey, Weak)>, +} + +struct CullResults { + stamp: SnapshotKey, + answers: Vec<(CullKey, Option>)>, + scratch_queries: Vec, +} + +struct CullJob { + stamp: SnapshotKey, + snapshot: Arc, + queries: Vec, +} + +#[derive(Default)] +pub(super) struct ParticleAsyncState { + culler: Option, + failed: bool, +} + +/// Particle occlusion has a dedicated worker so its queue cannot delay entity visibility jobs. +struct ParticleAsyncCuller { + jobs: SyncSender, + results_rx: Receiver, + _thread: JoinHandle<()>, + snapshot: Option<(SnapshotKey, ChunkBounds, Arc)>, + opaque_states: Option>, + results: Option, + queries: RefCell>, + camera: [f64; 3], + stamp: SnapshotKey, + pending: bool, +} + +impl ParticleAsyncCuller { + fn new() -> std::io::Result { + let (job_tx, job_rx) = mpsc::sync_channel::(1); + let (result_tx, result_rx) = mpsc::channel::(); + let thread = std::thread::Builder::new() + .name("particle-culling".into()) + .spawn(move || { + while let Ok(job) = job_rx.recv() { + if result_tx.send(cull_job(job)).is_err() { + break; + } + } + })?; + Ok(Self { + jobs: job_tx, + results_rx: result_rx, + _thread: thread, + snapshot: None, + opaque_states: None, + results: None, + queries: RefCell::new(Vec::new()), + camera: [0.0; 3], + stamp: SnapshotKey { + world_revision: 0, + chunks_revision: 0, + bottom_y: 0, + }, + pending: false, + }) + } + + fn begin_frame(&mut self, camera: glam::DVec3, world: &World) { + while let Ok(mut results) = self.results_rx.try_recv() { + self.pending = false; + let scratch = std::mem::take(&mut results.scratch_queries); + if scratch.capacity() > self.queries.get_mut().capacity() { + *self.queries.get_mut() = scratch; + } + self.results = Some(results); + } + self.camera = camera.to_array(); + self.stamp = SnapshotKey { + world_revision: world.revision, + chunks_revision: world.chunks.membership_revision(), + bottom_y: world.bottom_y(), + }; + if self + .results + .as_ref() + .is_some_and(|results| results.stamp != self.stamp) + { + self.results = None; + } + self.queries.get_mut().clear(); + } + + fn query(&self, min: [f64; 3], max: [f64; 3]) -> Option { + if !self.camera.iter().all(|value| value.is_finite()) + || (0..3).any(|axis| { + !min[axis].is_finite() || !max[axis].is_finite() || min[axis] > max[axis] + }) + { + return None; + } + Some(CullKey { + camera: self.camera.map(f64::to_bits), + min: min.map(f64::to_bits), + max: max.map(f64::to_bits), + }) + } + + fn cached(&self, key: &CullKey) -> Option>> { + let results = self + .results + .as_ref() + .filter(|results| results.stamp == self.stamp)?; + let index = results + .answers + .binary_search_by_key(key, |(key, _)| *key) + .ok()?; + Some(results.answers[index].1.as_ref()) + } + + fn queue(&self, key: CullKey) { + self.queries.borrow_mut().push(key); + } + + fn finish_frame(&mut self, world: &World, facts: &BlockFacts) { + let queries = self.queries.get_mut(); + if self.pending { + queries.clear(); + return; + } + if queries.is_empty() { + return; + } + queries.sort_unstable(); + queries.dedup(); + let Some(bounds) = snapshot_bounds(self.camera, queries) else { + queries.clear(); + return; + }; + let opaque_states = Arc::clone(self.opaque_states.get_or_insert_with(|| { + facts + .states + .iter() + .map(state_is_opaque) + .collect::>() + .into() + })); + let snapshot = match &mut self.snapshot { + Some((stamp, cached_bounds, snapshot)) => { + if stamp != &self.stamp || *cached_bounds != bounds || !snapshot.chunks_match(world) + { + let snapshot = Arc::make_mut(snapshot); + snapshot.opaque_states = Arc::clone(&opaque_states); + snapshot.refresh_chunks(world, bounds); + *stamp = self.stamp; + *cached_bounds = bounds; + } + Arc::clone(snapshot) + } + None => { + let mut snapshot = OcclusionSnapshot { + chunks: Vec::new(), + opaque_states, + }; + snapshot.refresh_chunks(world, bounds); + let snapshot = Arc::new(snapshot); + self.snapshot = Some((self.stamp, bounds, Arc::clone(&snapshot))); + snapshot + } + }; + let queries = std::mem::take(queries); + let job = CullJob { + stamp: self.stamp, + snapshot, + queries, + }; + match self.jobs.try_send(job) { + Ok(()) => self.pending = true, + Err(TrySendError::Full(job) | TrySendError::Disconnected(job)) => { + *self.queries.get_mut() = job.queries; + } + } + } +} + +fn snapshot_bounds(camera: [f64; 3], queries: &[CullKey]) -> Option { + let mut min = [i32::MAX; 3]; + let mut max = [i32::MIN; 3]; + let mut include = |point: [f64; 3]| { + for axis in 0..3 { + let value = point[axis].floor(); + if !value.is_finite() || value < f64::from(i32::MIN) || value > f64::from(i32::MAX) { + return false; + } + let value = value as i32; + min[axis] = min[axis].min(value); + max[axis] = max[axis].max(value); + } + true + }; + if !include(camera) { + return None; + } + for query in queries { + if !include(query.min.map(f64::from_bits)) || !include(query.max.map(f64::from_bits)) { + return None; + } + } + let bounds = ChunkBounds { + min_x: min[0] >> 4, + max_x: max[0] >> 4, + min_z: min[2] >> 4, + max_z: max[2] >> 4, + }; + let width = i64::from(bounds.max_x) - i64::from(bounds.min_x) + 1; + let depth = i64::from(bounds.max_z) - i64::from(bounds.min_z) + 1; + (width > 0 && depth > 0 && width * depth <= MAX_SNAPSHOT_CHUNKS).then_some(bounds) +} + +fn cull_job(mut job: CullJob) -> CullResults { + let camera = job.queries[0].camera.map(f64::from_bits); + let culler = Culler::new(camera, 8_192); + let mut last_chunk = LastChunk::default(); + let mut answers = Vec::with_capacity(job.queries.len()); + let mut covered = Vec::new(); + for &key in &job.queries { + covered.clear(); + let min = key.min.map(f64::from_bits); + let max = key.max.map(f64::from_bits); + let proof = if culler.occluded(min, max, |pos| { + let opaque = job.snapshot.opaque(pos, &mut last_chunk); + if opaque { + covered.push(pos); + } + opaque + }) { + let mut sections = Vec::with_capacity(covered.len()); + let mut chunks: Vec<(ChunkKey, Weak)> = Vec::new(); + let mut valid = true; + for &pos in &covered { + let chunk_key = (pos[0] >> 4, pos[2] >> 4); + let Some(y) = pos[1].checked_sub(job.stamp.bottom_y) else { + valid = false; + break; + }; + sections.push((chunk_key.0, y.div_euclid(16), chunk_key.1)); + if let Err(index) = chunks.binary_search_by_key(&chunk_key, |(key, _)| *key) { + let Some(chunk) = job.snapshot.chunk(chunk_key) else { + valid = false; + break; + }; + if chunk.strong_count() == 0 { + valid = false; + break; + } + chunks.insert(index, (chunk_key, chunk.clone())); + } + } + if valid { + sections.sort_unstable(); + sections.dedup(); + Some(Arc::new(OcclusionProof { sections, chunks })) + } else { + None + } + } else { + None + }; + answers.push((key, proof)); + } + job.queries.clear(); + CullResults { + stamp: job.stamp, + answers, + scratch_queries: job.queries, + } +} + +fn state_is_opaque(facts: &StateFacts) -> bool { + facts.render_shape == RenderShape::Model + && facts.can_occlude + && facts.solid_render + && facts.full_collision +} + +const CLUSTER_CACHE_SIZE: usize = 1_024; +const CLUSTER_SIZE: f64 = 8.0; +const MAX_CLUSTER_OCCLUSION_RADIUS: f64 = 1.0; + +#[derive(Clone, Copy)] +struct ClusterCacheEntry { + cluster: [i32; 3], + hidden: bool, +} + +struct ClusterVisibilityCache { + entries: [Option; CLUSTER_CACHE_SIZE], +} + +impl Default for ClusterVisibilityCache { + fn default() -> Self { + Self { + entries: [None; CLUSTER_CACHE_SIZE], + } + } +} + +impl ClusterVisibilityCache { + fn get(&self, cluster: [i32; 3]) -> Option { + self.entries[cluster_cache_slot(cluster)] + .filter(|entry| entry.cluster == cluster) + .map(|entry| entry.hidden) + } + + fn get_or_compute(&mut self, cluster: [i32; 3], compute: impl FnOnce() -> bool) -> bool { + if let Some(hidden) = self.get(cluster) { + return hidden; + } + let hidden = compute(); + self.insert(cluster, hidden); + hidden + } + + fn insert(&mut self, cluster: [i32; 3], hidden: bool) { + self.entries[cluster_cache_slot(cluster)] = Some(ClusterCacheEntry { cluster, hidden }); + } +} + +fn cluster_cache_slot(cluster: [i32; 3]) -> usize { + let hash = (cluster[0] as u32).wrapping_mul(73_856_093) + ^ (cluster[1] as u32).wrapping_mul(19_349_663) + ^ (cluster[2] as u32).wrapping_mul(83_492_791); + hash as usize & (CLUSTER_CACHE_SIZE - 1) +} + +/// Use one conservatively expanded 8-block cluster bound for small particles. +fn cluster_query(min: [f64; 3], max: [f64; 3]) -> Option<([i32; 3], [f64; 3], [f64; 3])> { + if (0..3).any(|axis| !min[axis].is_finite() || !max[axis].is_finite() || min[axis] > max[axis]) + { + return None; + } + let center = array::from_fn(|axis| min[axis] + (max[axis] - min[axis]) * 0.5); + let radius = (0..3) + .map(|axis| (max[axis] - min[axis]) * 0.5) + .fold(0.0_f64, f64::max); + if !radius.is_finite() || radius > MAX_CLUSTER_OCCLUSION_RADIUS { + return None; + } + let cluster = center.map(|value| { + let coordinate = (value / CLUSTER_SIZE).floor(); + (coordinate.is_finite() + && coordinate >= f64::from(i32::MIN) + && coordinate <= f64::from(i32::MAX)) + .then_some(coordinate as i32) + }); + let [Some(x), Some(y), Some(z)] = cluster else { + return None; + }; + let cluster = [x, y, z]; + let min = cluster + .map(|coordinate| f64::from(coordinate) * CLUSTER_SIZE - MAX_CLUSTER_OCCLUSION_RADIUS); + let max = cluster.map(|coordinate| { + (f64::from(coordinate) + 1.0) * CLUSTER_SIZE + MAX_CLUSTER_OCCLUSION_RADIUS + }); + Some((cluster, min, max)) +} + +pub(super) struct ParticleOcclusionContext<'borrow, 'game> { + game: &'borrow Game<'game>, + mode: ParticleCullingMode, + sync_culler: Option, + clusters: ClusterVisibilityCache, +} + +impl ParticleOcclusionContext<'_, '_> { + pub(super) fn hidden(&mut self, min: [f64; 3], max: [f64; 3]) -> bool { + if self.mode == ParticleCullingMode::Off { + return false; + } + let Some((cluster, min, max)) = cluster_query(min, max) else { + // Large particles can extend beyond the cluster's conservative + // bounds. Keep them visible rather than scheduling their own ray job. + return false; + }; + let mode = self.mode; + let game = self.game; + let sync_culler = self.sync_culler.as_ref(); + let hidden = self.clusters.get_or_compute(cluster, || match mode { + ParticleCullingMode::Off => false, + ParticleCullingMode::Synchronous => { + sync_culler.is_some_and(|culler| game.particle_occluded_sync(culler, min, max)) + } + ParticleCullingMode::Asynchronous => { + game.async_particle_hidden(min, max).unwrap_or_else(|| { + sync_culler.is_some_and(|culler| game.particle_occluded_sync(culler, min, max)) + }) + } + }); + hidden + } +} + +impl Game<'_> { + pub(super) fn particle_occlusion_context( + &self, + camera: glam::DVec3, + ) -> ParticleOcclusionContext<'_, '_> { + let at = camera.to_array().map(|value| value.floor() as i32); + let camera_inside_opaque = + state_is_opaque(self.res.facts().get(self.world.block(at[0], at[1], at[2]))); + let mode = + if self.model_packs_are_vanilla() && self.player.is_some() && !camera_inside_opaque { + self.settings.horizon.particle_culling + } else { + ParticleCullingMode::Off + }; + if mode == ParticleCullingMode::Asynchronous { + let mut state = self.async_particle_culler.borrow_mut(); + if state.culler.is_none() && !state.failed { + match ParticleAsyncCuller::new() { + Ok(culler) => state.culler = Some(culler), + Err(error) => { + log::warn!("Horizon: cannot start particle-culling worker: {error}"); + state.failed = true; + } + } + } + if let Some(culler) = &mut state.culler { + culler.begin_frame(camera, &self.world); + } + } else { + let mut state = self.async_particle_culler.borrow_mut(); + state.culler = None; + state.failed = false; + } + ParticleOcclusionContext { + game: self, + mode, + sync_culler: (mode != ParticleCullingMode::Off) + .then(|| Culler::new(camera.to_array(), 8_192)), + clusters: ClusterVisibilityCache::default(), + } + } + + pub(super) fn particle_occluded_sync( + &self, + culler: &Culler, + min: [f64; 3], + max: [f64; 3], + ) -> bool { + culler.occluded(min, max, |pos| self.particle_occluder_ready(pos)) + } + + fn particle_occluder_ready(&self, pos: [i32; 3]) -> bool { + let state = self.world.block(pos[0], pos[1], pos[2]); + if !state_is_opaque(self.res.facts().get(state)) { + return false; + } + let Some(y) = pos[1].checked_sub(self.world.bottom_y()) else { + return false; + }; + let section = (pos[0] >> 4, y.div_euclid(16), pos[2] >> 4); + self.renderer + .as_ref() + .is_some_and(|renderer| renderer.has_section(section)) + && !self.world.dirty_sections.contains(§ion) + && !self.streaming.is_meshing(section) + && !self.pending_uploads.iter().any(|(key, _)| *key == section) + } + + pub(super) fn async_particle_hidden(&self, min: [f64; 3], max: [f64; 3]) -> Option { + enum Answer { + Miss, + Visible, + Hidden(Arc), + } + + let query = { + let state = self.async_particle_culler.borrow(); + let culler = state.culler.as_ref()?; + culler.query(min, max)? + }; + let answer = { + let state = self.async_particle_culler.borrow(); + let culler = state.culler.as_ref()?; + match culler.cached(&query) { + None => Answer::Miss, + Some(None) => Answer::Visible, + Some(Some(proof)) => Answer::Hidden(Arc::clone(proof)), + } + }; + match answer { + Answer::Visible => Some(false), + Answer::Hidden(proof) if self.particle_proof_is_current(&proof) => Some(true), + Answer::Miss | Answer::Hidden(_) => { + if let Some(culler) = self.async_particle_culler.borrow().culler.as_ref() { + culler.queue(query); + } + Some(false) + } + } + } + + fn particle_proof_is_current(&self, proof: &OcclusionProof) -> bool { + proof.chunks.iter().all(|(key, expected)| { + self.world + .chunks + .get(key) + .is_some_and(|current| std::ptr::eq(Arc::as_ptr(current), expected.as_ptr())) + }) && proof.sections.iter().all(|§ion| { + self.renderer + .as_ref() + .is_some_and(|renderer| renderer.has_section(section)) + && !self.world.dirty_sections.contains(§ion) + && !self.streaming.is_meshing(section) + && !self.pending_uploads.iter().any(|(key, _)| *key == section) + }) + } + + pub(super) fn finish_async_particle_culling(&self) { + if let Some(culler) = &mut self.async_particle_culler.borrow_mut().culler { + culler.finish_frame(&self.world, self.res.facts()); + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use horizon_client::chunk::ColumnLayout; + + fn wall(hole: Option<[i32; 3]>) -> (Arc, Vec>) { + let mut live = Vec::new(); + let mut chunks = Vec::new(); + for chunk_z in [-1, 0] { + let mut chunk = Chunk::with_layout(0, chunk_z, ColumnLayout::VANILLA); + for y in -1..=0 { + for z in -1..=0 { + let pos = [4, y, z]; + if hole != Some(pos) { + chunk.set(pos[0] & 15, pos[1], pos[2] & 15, 1); + } + } + } + let chunk = Arc::new(chunk); + chunks.push(((0, chunk_z), Arc::downgrade(&chunk))); + live.push(chunk); + } + chunks.sort_unstable_by_key(|(key, _)| *key); + ( + Arc::new(OcclusionSnapshot { + chunks, + opaque_states: Arc::from([false, true]), + }), + live, + ) + } + + fn wall_job(snapshot: Arc) -> CullJob { + CullJob { + stamp: SnapshotKey { + world_revision: 1, + chunks_revision: 1, + bottom_y: ColumnLayout::VANILLA.min_y(), + }, + snapshot, + queries: vec![CullKey { + camera: [0.0; 3].map(f64::to_bits), + min: [7.95, -0.55, -0.55].map(f64::to_bits), + max: [10.05, 0.55, 0.55].map(f64::to_bits), + }], + } + } + + #[test] + fn a_cluster_query_covers_small_particles_across_negative_boundaries() { + let min = [-0.2, 15.6, -16.2]; + let max = [0.2, 16.0, -15.8]; + let (cluster, query_min, query_max) = cluster_query(min, max).unwrap(); + + assert_eq!(cluster, [0, 1, -2]); + for axis in 0..3 { + assert!(query_min[axis] <= min[axis]); + assert!(query_max[axis] >= max[axis]); + } + assert_eq!(query_min, [-1.0, 7.0, -17.0]); + assert_eq!(query_max, [9.0, 17.0, -7.0]); + } + + #[test] + fn adjacent_clusters_keep_distinct_visibility_bounds() { + let left = cluster_query([7.0, 0.0, 0.0], [7.2, 0.2, 0.2]).unwrap(); + let right = cluster_query([8.1, 0.0, 0.0], [8.3, 0.2, 0.2]).unwrap(); + + assert_eq!(left.0, [0, 0, 0]); + assert_eq!(right.0, [1, 0, 0]); + assert_ne!((left.1, left.2), (right.1, right.2)); + } + + #[test] + fn the_maximum_supported_particle_radius_is_still_fully_covered() { + let min = [15.0, 15.0, -1.0]; + let max = [17.0, 17.0, 1.0]; + let (cluster, query_min, query_max) = cluster_query(min, max).unwrap(); + + assert_eq!(cluster, [2, 2, 0]); + assert_eq!(query_min, [15.0, 15.0, -1.0]); + assert_eq!(query_max, [25.0, 25.0, 9.0]); + } + + #[test] + fn invalid_or_large_particle_bounds_fail_open() { + assert!(cluster_query([0.0, f64::NAN, 0.0], [1.0; 3]).is_none()); + assert!(cluster_query([1.0; 3], [0.0; 3]).is_none()); + assert!(cluster_query([-1.1, 0.0, 0.0], [1.1, 0.0, 0.0]).is_none()); + assert!(cluster_query([f64::MAX; 3], [f64::MAX; 3]).is_none()); + assert!(cluster_query([-f64::MAX; 3], [f64::MAX; 3]).is_none()); + } + + #[test] + fn particles_in_one_cluster_share_one_occlusion_query() { + let first = cluster_query([0.1, 1.0, 2.0], [0.3, 1.2, 2.2]).unwrap(); + let second = cluster_query([3.0, 3.0, 3.0], [3.4, 3.4, 3.4]).unwrap(); + + assert_eq!(first, second); + + let mut cache = ClusterVisibilityCache::default(); + let mut queries = 0; + assert!(cache.get_or_compute(first.0, || { + queries += 1; + true + })); + assert!(cache.get_or_compute(second.0, || { + queries += 1; + false + })); + assert_eq!(queries, 1); + } + + #[test] + fn a_direct_mapped_cache_collision_never_reuses_another_cluster_answer() { + let candidates = (0..=CLUSTER_CACHE_SIZE) + .map(|x| [i32::try_from(x).unwrap(), 0, 0]) + .collect::>(); + let (first, second) = (0..candidates.len()) + .find_map(|i| { + ((i + 1)..candidates.len()) + .find(|&j| { + cluster_cache_slot(candidates[i]) == cluster_cache_slot(candidates[j]) + }) + .map(|j| (candidates[i], candidates[j])) + }) + .expect("1025 distinct keys must contain a collision in a 1024-slot cache"); + let mut cache = ClusterVisibilityCache::default(); + + cache.insert(first, true); + assert_eq!(cache.get(first), Some(true)); + cache.insert(second, false); + assert_eq!(cache.get(first), None); + assert_eq!(cache.get(second), Some(false)); + } + + #[test] + fn particle_worker_requires_a_complete_opaque_plane_to_hide() { + let (snapshot, live) = wall(None); + let results = cull_job(wall_job(snapshot)); + let proof = results.answers[0].1.as_ref().unwrap(); + assert_eq!(proof.sections.len(), 4); + assert_eq!(proof.chunks.len(), 2); + drop(live); + + let (snapshot, live) = wall(Some([4, 0, 0])); + let results = cull_job(wall_job(snapshot)); + assert!(results.answers[0].1.is_none()); + drop(live); + } +} diff --git a/docs/graphics.md b/docs/graphics.md index bf80bee6b8..56842cb9bc 100644 --- a/docs/graphics.md +++ b/docs/graphics.md @@ -17,7 +17,7 @@ Every row has a one-line description and its cost in frame time (none, low, medi | Group | Setting | Stored in | | --- | --- | --- | | Rendering | render distance, simulation distance, entity distance | `options.txt` (vanilla keys) | -| | LOD distance, cave culling, entity culling mode, leaf culling, chunk updates per frame | `horizon-graphics.txt` | +| | LOD distance, cave culling, entity and particle culling modes, leaf culling, chunk updates per frame | `horizon-graphics.txt` | | Quality | smooth lighting, mipmap levels, biome blend, clouds, cloud distance, weather radius, particles, entity shadows, cutout leaves | `options.txt` | | | sky, fog, weather, animated textures | `horizon-graphics.txt` | | | distant plant dither (`ditherCutoutMips`, off by default: cutouts from 64 texels up) | `horizon-graphics.txt` | @@ -28,10 +28,12 @@ Every row has a one-line description and its cost in frame time (none, low, medi | Performance | battery mode, shadow cache, worker threads, graphics API, translucent batching, upload budget per frame | `horizon-graphics.txt` | | Overlay | performance overlay: FPS, frame/CPU/GPU times, frame-time graph | `horizon-graphics.txt` | -`options.txt` keeps exactly vanilla's keys and values, so the options harness still compares it with vanilla; Horizon's settings live in `horizon-graphics.txt` beside it. Their defaults render as vanilla does: cave culling on, entity and leaf culling off, no upload budgets, sky, fog and weather on, 100% resolution, no anti-aliasing, HDR off, the present mode following VSync. VSync on always waits for the display (Fifo), in a window and in fullscreen, as in vanilla; the present mode setting chooses how frames are shown only while VSync is off. Frame pacing defaults to Efficient: the limiter sleeps through the last half millisecond where vanilla spins, which changes timing, not pixels. +`options.txt` keeps exactly vanilla's keys and values, so the options harness still compares it with vanilla; Horizon's settings live in `horizon-graphics.txt` beside it. Their defaults render as vanilla does: cave culling on, entity, particle and leaf culling off, no upload budgets, sky, fog and weather on, 100% resolution, no anti-aliasing, HDR off, the present mode following VSync. VSync on always waits for the display (Fifo), in a window and in fullscreen, as in vanilla; the present mode setting chooses how frames are shown only while VSync is off. Frame pacing defaults to Efficient: the limiter sleeps through the last half millisecond where vanilla spins, which changes timing, not pixels. **Entity Culling** is off by default and disabled with non-vanilla resource packs. It applies to entity models; block entities keep their section and per-block frustum culling and use the separate Block Entities caches. Synchronous mode uses the existing same-frame CPU test. Asynchronous mode checks meshes on a worker and uses a result only when the camera and mesh bounds still match and the opaque chunks and rendered sections that proved occlusion are unchanged and ready. Until then, it leaves the mesh visible. Both modes leave simulation and interaction unchanged; older `entityCulling:true` settings select Synchronous. +**Particle Culling** is off by default. Synchronous and asynchronous modes skip particles outside the camera frustum, below half a projected pixel, or hidden by opaque terrain. Asynchronous mode defers occlusion checks and leaves particles visible until a current result is available. Particle simulation is unchanged. + **Battery mode** (Performance, off by default) is for laptops and handhelds: at most 60 frames per second in a world, 30 in menus without a world or while another window has focus, and half the automatic worker threads (chunks load slower). It changes only when frames are drawn: what they show and the game's 20 ticks per second stay as they are. **Block Entities** (Advanced Graphics) has separate switches for shulker boxes, sign text, decorated pots, bells, chests, banners and copper-golem statues. The model caches are off by default; the sign-text cache stays on by default as before. Settled shulkers, pots and bells, closed chests, and statue geometry are cached; active animations keep their regular path. Banner poles are cached while flags and patterns still update. Nearby static models are prepared independently of the block-level frustum and stored in per-section GPU buffers, including when entity culling is enabled. Camera motion updates one shared transform containing the integer camera block and its fractional offset; the shader subtracts section origins in integer coordinates before converting to floats. Camera rotation changes only the visible section draw list. Mesh/light and block-entity membership revisions invalidate only their own section, and membership reconciliation runs only when the global membership revision changes. Each new atlas identity invalidates cached UV geometry even when sprite rectangles are unchanged. The static pipeline skips blending for opaque and cutout models; resource-pack sprites with fractional alpha stay on the ordinary blended path. The benchmark summary reports snapshot rebuilds, CPU snapshot bytes, GPU bytes written, and static/dynamic block entities drawn. This remains a separate entity draw, not geometry merged into terrain section meshes. When shader-pack callbacks are required, cached model vertices use the regular per-frame entity buffer instead. Sign text also remains in the regular entity buffer, using its existing CPU geometry cache. Beds and sign boards already use the terrain's block models in 26.3; Mojang removed the bed block entity and moved beds and signs to block models in 26.2 ([release notes](https://www.minecraft.net/en-us/article/minecraft-java-edition-26-2)), so they have no separate renderer cache switch. From 5d5dd03eb8d881c3bbe9031da94f26789dabc3ba Mon Sep 17 00:00:00 2001 From: ElyTheCat <78264512+elythepreciouscat@users.noreply.github.com> Date: Mon, 2 Nov 2026 18:37:35 +0330 Subject: [PATCH 02/70] Add ordinary-scene particle culling measurements Co-Authored-By: OpenAI Codex --- .../particle-culling/2026-11-02/README.md | 27 ++++++++++++++++++ .../particle-culling/2026-11-02/main-off.png | Bin 0 -> 349760 bytes .../2026-11-02/particle-async.png | Bin 0 -> 350761 bytes .../2026-11-02/particle-off.png | Bin 0 -> 349429 bytes .../2026-11-02/particle-sync.png | Bin 0 -> 349374 bytes 5 files changed, 27 insertions(+) create mode 100644 benchmarks/particle-culling/2026-11-02/README.md create mode 100644 benchmarks/particle-culling/2026-11-02/main-off.png create mode 100644 benchmarks/particle-culling/2026-11-02/particle-async.png create mode 100644 benchmarks/particle-culling/2026-11-02/particle-off.png create mode 100644 benchmarks/particle-culling/2026-11-02/particle-sync.png diff --git a/benchmarks/particle-culling/2026-11-02/README.md b/benchmarks/particle-culling/2026-11-02/README.md new file mode 100644 index 0000000000..9fd125c86f --- /dev/null +++ b/benchmarks/particle-culling/2026-11-02/README.md @@ -0,0 +1,27 @@ +# Particle culling review measurements — 2026-11-02 + +Ordinary-scene captures and measurements for PR #7054. The scene contains 24 mobs, about 9,400–10,100 rain particles, and about 50–100 campfire smoke particles. Two opposite-order passes were run with 2 s warmup and 8 s measurement per condition. Host: Intel Core i7-3770S, Intel HD Graphics 4000, Vulkan/Mesa, 675×727, render distance 4, VSync off, 260 FPS cap. + +These are means of the two samples. CPU is the harness's average CPU time per frame; p99 is frame time. The normal scene is not expected to show large gains because most particles are visible. + +| Condition | FPS | CPU ms/frame | Frame p99 ms | +| --- | ---: | ---: | ---: | +| Main, culling Off | 88.39 | 1.930 | 23.85 | +| Particle branch, culling Off | 88.55 | 1.828 | 24.88 | +| Main, Entity Culling Synchronous | 89.12 | 1.887 | 23.07 | +| Particle branch, Entity Culling Synchronous, Particle Culling Off | 89.06 | 1.897 | 25.18 | +| Particle Culling Synchronous | 88.87 | 1.774 | 24.94 | +| Particle Culling Asynchronous* | 89.00 | 1.754 | 24.90 | + +*The asynchronous samples predate the final switch to a dedicated particle worker. They are retained only as historical context and are not a measurement of the final worker implementation. No FPS improvement is claimed from these ordinary-scene runs. The Off path delegates directly to `render`; `disabled_culled_render_matches_the_regular_particle_path` checks that it produces the same vertices. + +The FPS and CPU differences are within run-to-run variability for this GPU-limited scene. The first four conditions are the reviewer's requested Main-versus-branch default and existing synchronous-mode comparisons. Particle Sync/Async rows are branch-internal mode comparisons. + +## Captures + +The screenshots show the same ordinary test world and FPS overlay: + +- `main-off.png` +- `particle-off.png` +- `particle-sync.png` +- `particle-async.png` diff --git a/benchmarks/particle-culling/2026-11-02/main-off.png b/benchmarks/particle-culling/2026-11-02/main-off.png new file mode 100644 index 0000000000000000000000000000000000000000..5906cac0f71afad16c6b6b46d6b4cd35849a0782 GIT binary patch literal 349760 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�TGYXWB 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 TrALq(00000NkvXXu0mjfI{3HT literal 0 HcmV?d00001 diff --git a/benchmarks/particle-culling/2026-11-02/particle-async.png b/benchmarks/particle-culling/2026-11-02/particle-async.png new file mode 100644 index 0000000000000000000000000000000000000000..c6e8a3529ccb52aef509e1743f516fc7344432ca GIT binary patch literal 350761 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

BX{t;MHshCo#Ud*AYd_&yl2Xb!y1t4ec#0! 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

n;t%&h~1# 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

fRMbC8w@*X|02X3oZd#WXJKtS4X*HjHJ~S@)Lm+ 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 z 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 gDxy~Th;XL@FOy|??W=bWla$Cpdx_T^IN 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 z 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

T%w9Z4e>=*2ex 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

U*1SMOKsD;jQz6E3QZlnZb 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 literal 0 HcmV?d00001 From 740b215a998e754d5fdc9111aa492672066540f9 Mon Sep 17 00:00:00 2001 From: ElyTheCat <78264512+elythepreciouscat@users.noreply.github.com> Date: Mon, 2 Nov 2026 19:47:53 +0330 Subject: [PATCH 03/70] Fix particle culling Clippy findings Co-Authored-By: OpenAI Codex --- crates/horizon-client/src/game.rs | 29 ++++++++++--------- .../src/game/particle_culling.rs | 5 ++-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/crates/horizon-client/src/game.rs b/crates/horizon-client/src/game.rs index 6a12b7b961..9cba07dc2a 100644 --- a/crates/horizon-client/src/game.rs +++ b/crates/horizon-client/src/game.rs @@ -10991,20 +10991,21 @@ impl Game<'_> { 0.0 } }); - let mut particle_culling = self.particle_occlusion_context(camera); - self.particles.render_culled( - camera, - self.yaw, - self.pitch, - alpha as f32, - pixel_focal_length, - true, - frustum.as_ref(), - &mut |min, max| particle_culling.hidden(min, max), - &|b| world.light(b[0], b[1], b[2]), - &mut out, - ); - drop(particle_culling); + { + let mut particle_culling = self.particle_occlusion_context(camera); + self.particles.render_culled( + camera, + self.yaw, + self.pitch, + alpha as f32, + pixel_focal_length, + true, + frustum.as_ref(), + &mut |min, max| particle_culling.hidden(min, max), + &|b| world.light(b[0], b[1], b[2]), + &mut out, + ); + } self.finish_async_particle_culling(); } laps.lap("eg_particles"); diff --git a/crates/horizon-client/src/game/particle_culling.rs b/crates/horizon-client/src/game/particle_culling.rs index d0ac11bfcd..532cc44173 100644 --- a/crates/horizon-client/src/game/particle_culling.rs +++ b/crates/horizon-client/src/game/particle_culling.rs @@ -493,7 +493,7 @@ impl ParticleOcclusionContext<'_, '_> { let mode = self.mode; let game = self.game; let sync_culler = self.sync_culler.as_ref(); - let hidden = self.clusters.get_or_compute(cluster, || match mode { + self.clusters.get_or_compute(cluster, || match mode { ParticleCullingMode::Off => false, ParticleCullingMode::Synchronous => { sync_culler.is_some_and(|culler| game.particle_occluded_sync(culler, min, max)) @@ -503,8 +503,7 @@ impl ParticleOcclusionContext<'_, '_> { sync_culler.is_some_and(|culler| game.particle_occluded_sync(culler, min, max)) }) } - }); - hidden + }) } } From 05822265026c63d8bffc943c571c66b6e3dd131f Mon Sep 17 00:00:00 2001 From: Arslan Armanuly <72556944+arslanarm@users.noreply.github.com> Date: Mon, 2 Nov 2026 22:50:24 +0500 Subject: [PATCH 04/70] Shader packs: blend. blends composite-style programs `blend.` was read for gbuffers programs only, so a begin, prepare, deferred or composite program with one wrote its source over the buffer. Iris 1.11.7 blends them (probed with our own pack: 0.25 over 0.75 with SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO reads 0.625) and ignores `blend..` for deferred and composite programs (probed; begin, prepare, setup and final are assumed to match). These passes already load the buffers they write, so what the buffer holds is the destination. Part of #6812 Co-Authored-By: Claude Opus 5.5 --- .../src/gfx/pack_post.rs | 162 ++++++++++++++++++ crates/horizon-shaders/src/post.rs | 69 +++++++- 2 files changed, 229 insertions(+), 2 deletions(-) diff --git a/crates/horizon-client-render/src/gfx/pack_post.rs b/crates/horizon-client-render/src/gfx/pack_post.rs index 6a484b4457..6d1d9d746e 100644 --- a/crates/horizon-client-render/src/gfx/pack_post.rs +++ b/crates/horizon-client-render/src/gfx/pack_post.rs @@ -4505,6 +4505,168 @@ mod tests { ); } + /// `blend.` of a composite program blends its output onto what the buffer's side + /// holds (Iris 1.11.7, probed: 0.25 over 0.75 with SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO and + /// a source alpha of 0.25 reads 0.625). + #[test] + fn a_composite_program_blends_onto_its_buffer() { + let instance = crate::gfx::test_gpu::instance(); + let Ok(adapter) = pollster::block_on(instance.request_adapter(&Default::default())) else { + return; + }; + // A pass's pipeline layout has six bind group slots. + let desc = wgpu::DeviceDescriptor { + required_limits: adapter.limits(), + ..Default::default() + }; + let Ok((device, queue)) = pollster::block_on(adapter.request_device(&desc)) else { + return; + }; + let dir = std::env::temp_dir().join(format!("hz-composite-blend-{}", std::process::id())); + let shaders = dir.join("shaders"); + std::fs::create_dir_all(&shaders).unwrap(); + let file = |name: &str, text: &str| std::fs::write(shaders.join(name), text).unwrap(); + file( + "composite.vsh", + "#version 120\nvoid main() { gl_Position = ftransform(); }\n", + ); + file( + "composite.fsh", + "#version 120\n/* DRAWBUFFERS:3 */\n\ + void main() { gl_FragData[0] = vec4(0.25, 0.25, 1.0, 0.25); }\n", + ); + let pack = horizon_shaders::Pack::open(&dir).unwrap(); + let properties = horizon_shaders::Properties::parse( + "blend.composite = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO\n", + &horizon_shaders::Macros::default(), + ); + let mut post = horizon_shaders::load_post( + &pack, + "", + &properties, + &horizon_shaders::Macros::standard(), + &Default::default(), + ); + std::fs::remove_dir_all(&dir).unwrap(); + let program = post.programs.remove(0); + let buffers = pack_images::Buffers::new( + &device, + Default::default(), + Default::default(), + wgpu::ShaderStages::FRAGMENT, + ); + let stand_ins = std::cell::RefCell::new(Vec::new()); + let pack = Resources { + textures: &[], + images: &[], + left_out: &[], + buffers: &buffers, + indices: None, + gpu: Gpu::of(&adapter, device.features()), + storable: 0, + released: std::cell::Cell::new(("", 0)), + stand_ins: &stand_ins, + }; + let draws = DrawUniforms::new(&device); + let mut notes = Vec::new(); + let pass = build_pass( + &device, + program, + &[T::Rgba8Unorm; BUFFERS], + None, + T::Rgba8Unorm, + &mut notes, + None, + &[], + &draws.layout, + &pack, + ) + .unwrap_or_else(|| panic!("the pass builds: {notes:?}")); + // colortex3 holds (0.75, 0.5, 0.25, 0.5) before the pass. + let texture = device.create_texture(&wgpu::TextureDescriptor { + label: None, + size: wgpu::Extent3d { + width: 64, + height: 1, + depth_or_array_layers: 1, + }, + mip_level_count: 1, + sample_count: 1, + dimension: wgpu::TextureDimension::D2, + format: T::Rgba8Unorm, + usage: wgpu::TextureUsages::RENDER_ATTACHMENT | wgpu::TextureUsages::COPY_SRC, + view_formats: &[], + }); + let view = texture.create_view(&Default::default()); + let head = [64.0f32, 1.0, 1.0 / 64.0, 1.0]; + queue.write_buffer(&pass.ubo, 0, bytemuck::cast_slice(&head)); + let group = device.create_bind_group(&wgpu::BindGroupDescriptor { + label: None, + layout: &pass.layout, + entries: &[wgpu::BindGroupEntry { + binding: 0, + resource: pass.ubo.as_entire_binding(), + }], + }); + let mut encoder = device.create_command_encoder(&Default::default()); + let before = wgpu::Color { + r: 0.75, + g: 0.5, + b: 0.25, + a: 0.5, + }; + encoder.begin_render_pass(&wgpu::RenderPassDescriptor { + color_attachments: &[attach( + &view, + wgpu::Operations { + load: wgpu::LoadOp::Clear(before), + store: wgpu::StoreOp::Store, + }, + )], + ..Default::default() + }); + { + // Loaded, as `PackPost::render` attaches a buffer a composite pass writes. + let load = wgpu::Operations { + load: wgpu::LoadOp::Load, + store: wgpu::StoreOp::Store, + }; + let mut rp = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { + color_attachments: &[attach(&view, load)], + ..Default::default() + }); + rp.set_pipeline(pass.render()); + rp.set_bind_group(0, &group, &[]); + rp.draw(0..6, 0..1); + } + let read = device.create_buffer(&wgpu::BufferDescriptor { + label: None, + size: 256, + usage: wgpu::BufferUsages::COPY_DST | wgpu::BufferUsages::MAP_READ, + mapped_at_creation: false, + }); + encoder.copy_texture_to_buffer( + texture.as_image_copy(), + wgpu::TexelCopyBufferInfo { + buffer: &read, + layout: wgpu::TexelCopyBufferLayout::default(), + }, + texture.size(), + ); + queue.submit([encoder.finish()]); + read.slice(..).map_async(wgpu::MapMode::Read, |_| {}); + device.poll(wgpu::PollType::wait_indefinitely()).unwrap(); + let texel: Vec = read.slice(..).get_mapped_range().unwrap()[..4].to_vec(); + // rgb = 0.25 × src + 0.75 × dst, alpha = the source's. + let expected = [0.625, 0.4375, 0.4375, 0.25].map(|v: f32| v * 255.0); + for (got, want) in texel.iter().zip(expected) { + assert!( + (f32::from(*got) - want).abs() <= 1.0, + "{texel:?} vs {expected:?}" + ); + } + } + #[test] fn pack_formats_map_to_renderable_ones() { let f = |name| texture_format(Format::parse(name).unwrap(), wgpu::Features::empty()); diff --git a/crates/horizon-shaders/src/post.rs b/crates/horizon-shaders/src/post.rs index 2b928fd03f..a4861c17e2 100644 --- a/crates/horizon-shaders/src/post.rs +++ b/crates/horizon-shaders/src/post.rs @@ -214,7 +214,7 @@ pub struct PostProgram { pub buffers: Vec, /// `flip..`: buffers forced to flip (true) or kept (false) after this program. pub flips: Vec<(u32, bool)>, - /// How a gbuffers program's output blends into its buffers; `None` writes them. + /// How the program's output blends into its buffers; `None` writes them. pub blend: Option, /// Per-buffer blend overrides, keyed by colortex index (not output location). pub buffer_blends: Vec<(u32, Option)>, @@ -664,7 +664,14 @@ pub fn load_post( _ => Target::Buffers, }; for name in names { - if let Some(p) = loader.load(name, group, |v, f| translate_composite(v, f, target)) { + if let Some(mut p) = loader.load(name, group, |v, f| translate_composite(v, f, target)) + { + // `blend.` blends every buffer the program writes. Iris 1.11.7, probed: + // it applies to begin, prepare, deferred and composite programs, and + // `blend..` doesn't apply to deferred and composite ones; the + // other cases are assumed to match. + p.blend = blend(loader.properties, &p.name).flatten(); + p.buffer_blends.clear(); loader.post.programs.push(p); } } @@ -1622,6 +1629,64 @@ mod tests { ); } + /// `blend.` blends every buffer a composite-style program writes, while + /// `blend..` does not apply to them (Iris 1.11.7, probed: a buffer's `off` + /// under a program blend still blends, and a buffer's factors alone do not). + #[test] + fn composite_programs_blend_as_their_program_says() { + let pack = Pack::from_zip_bytes( + "t", + zip(&[ + ("shaders/deferred.vsh", VSH), + ("shaders/deferred.fsh", FSH), + ("shaders/composite.vsh", VSH), + ("shaders/composite.fsh", FSH), + ("shaders/composite1.vsh", VSH), + ("shaders/composite1.fsh", FSH), + ("shaders/composite2.vsh", VSH), + ("shaders/composite2.fsh", FSH), + ]), + ) + .unwrap(); + let properties = Properties::parse( + "blend.deferred = ONE ONE ZERO ONE +blend.composite = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO +\ + blend.composite.colortex3 = off +blend.composite1.colortex3 = ONE ONE ONE ONE +\ + blend.composite2 = off +", + &Macros::default(), + ); + let post = load_post( + &pack, + "", + &properties, + &Macros::standard(), + &GameInputs::default(), + ); + use Factor::*; + let blends: Vec<(&str, Option, usize)> = post + .programs + .iter() + .map(|p| (p.name.as_str(), p.blend, p.buffer_blends.len())) + .collect(); + assert_eq!( + blends, + [ + ("deferred", Some([One, One, Zero, One]), 0), + ( + "composite", + Some([SrcAlpha, OneMinusSrcAlpha, One, Zero]), + 0 + ), + ("composite1", None, 0), + ("composite2", None, 0), + ] + ); + } + #[test] fn programs_load_in_order_with_their_settings() { let pack = Pack::from_zip_bytes( From fc93a1d48db69ba62f6ced4cec31be7fad3cbef2 Mon Sep 17 00:00:00 2001 From: Arslan Armanuly <72556944+arslanarm@users.noreply.github.com> Date: Mon, 2 Nov 2026 22:47:46 +0500 Subject: [PATCH 05/70] Shader packs: fog and per-draw uniforms as Iris gives them per program kind Read back exactly with a probe pack in Iris 1.11.7 and Horizon, same scenes: - fogStart/fogEnd are vanilla's environmental fog (0 to 1024 on a clear day, -160 to 768 in rain, -8 to 96 under water, 10 to 96 in the Nether), not the render distance's (172.8 to 192); fogDensity is 0. - Composite and final programs read fogMode 0, fogShape -1, alphaTestRef 0.1, blockEntityId -1; gbuffers programs read fogMode 9729 (GL_LINEAR), fogShape 1 (cylinder) and centerDepthSmooth 0. Fixes #8060 Co-Authored-By: Claude Opus 5.5 --- .../src/gfx/pack_post.rs | 2 +- .../src/gfx/pack_uniforms.rs | 123 +++++++++++++++--- 2 files changed, 109 insertions(+), 16 deletions(-) diff --git a/crates/horizon-client-render/src/gfx/pack_post.rs b/crates/horizon-client-render/src/gfx/pack_post.rs index 73a0975751..bc78f790ef 100644 --- a/crates/horizon-client-render/src/gfx/pack_post.rs +++ b/crates/horizon-client-render/src/gfx/pack_post.rs @@ -1392,7 +1392,7 @@ fn build_pass( let features = device.features(); // The frame's uniforms, then the pack's custom ones. let index = |name: &str| { - pack_uniforms::index(name).or_else(|| { + pack_uniforms::index_in(name, geometry.is_some()).or_else(|| { let k = custom.iter().position(|c| c == name)?; Some(pack_uniforms::NAMES.len() + k) }) diff --git a/crates/horizon-client-render/src/gfx/pack_uniforms.rs b/crates/horizon-client-render/src/gfx/pack_uniforms.rs index f8bd6f2be7..298efad1ab 100644 --- a/crates/horizon-client-render/src/gfx/pack_uniforms.rs +++ b/crates/horizon-client-render/src/gfx/pack_uniforms.rs @@ -257,6 +257,13 @@ pub const NAMES: &[&str] = &[ "endFlashIntensity", "endFlashPosition", "centerDepthSmooth", + "alphaTestRef", + "entityId", + "blockEntityId", + "entityColor", + GBUFFERS_FOG_MODE, + GBUFFERS_FOG_SHAPE, + GBUFFERS_CENTER_DEPTH, "isRightHanded", "is_on_ground", "bedrockLevel", @@ -269,6 +276,13 @@ pub const NAMES: &[&str] = &[ "cloudHeight", ]; +/// What programs that draw the game's geometry (gbuffers, shadow) read as `fogMode`, +/// `fogShape` and `centerDepthSmooth`: no GLSL name can hold a dot, so no pack reads these +/// directly. +const GBUFFERS_FOG_MODE: &str = "gbuffers.fogMode"; +const GBUFFERS_FOG_SHAPE: &str = "gbuffers.fogShape"; +const GBUFFERS_CENTER_DEPTH: &str = "gbuffers.centerDepthSmooth"; + /// Values carried from frame to frame. pub struct FrameUniforms { pub values: Vec, @@ -457,18 +471,16 @@ impl FrameUniforms { }); } let center_depth = self.center_depth.unwrap_or(1.0); - // Vanilla fades by the stronger of two linear fogs; a pack gets one: the pair (start - // and end together) of the one that is complete nearer (OQ-36). Mixing the nearer start - // of one with the nearer end of the other made fog begin at the camera on clear days. + // Vanilla fades by the stronger of two linear fogs; a pack gets the environmental one + // (`FogData::environmental_start`/`environmental_end`), as Iris 1.11.7 gives it in every + // program kind: 0 to 1024 on a clear day, -160 to 768 in rain, -8 to 96 under water, 10 + // to 96 in the Nether (measured with a probe pack). let (fog_color, fog_start, fog_end) = match &frame.fog { - Some(f) => { - let (start, end) = if f.environmental_end < f.render_distance_end { - (f.environmental_start, f.environmental_end) - } else { - (f.render_distance_start, f.render_distance_end) - }; - ([f.color[0], f.color[1], f.color[2]], start, end) - } + Some(f) => ( + [f.color[0], f.color[1], f.color[2]], + f.environmental_start, + f.environmental_end, + ), None => (frame.sky.fog_color, frame.distance * 0.9, frame.distance), }; let light = shadow_light(frame, &self.shadow); @@ -530,12 +542,22 @@ impl FrameUniforms { "thunderStrength" => Value::f(&[inputs.thunder]), "fogColor" => Value::f(&fog_color), "skyColor" => Value::f(&frame.sky.sky_color), - // GL_LINEAR: vanilla's fog is linear. - "fogMode" => Value::i(&[9729]), + // Iris 1.11.7, measured: programs that draw no geometry read no fog mode (0) and + // shape (-1); those that do read GL_LINEAR and a cylinder (1). The density is 0. + "fogMode" => Value::i(&[0]), + GBUFFERS_FOG_MODE => Value::i(&[9729]), "fogStart" => Value::f(&[fog_start]), "fogEnd" => Value::f(&[fog_end]), - "fogDensity" => Value::f(&[1.0]), - "fogShape" => Value::i(&[0]), + "fogDensity" => Value::f(&[0.0]), + "fogShape" => Value::i(&[-1]), + GBUFFERS_FOG_SHAPE => Value::i(&[1]), + // Iris 1.11.7 gives gbuffers programs 0 (measured in 16 scenes). + GBUFFERS_CENTER_DEPTH => Value::f(&[0.0]), + // Outside a draw (gbuffers programs get these per draw), as Iris 1.11.7 gives + // them to composite and final programs (measured). + "alphaTestRef" => Value::f(&[0.1]), + "blockEntityId" => Value::i(&[-1]), + "entityColor" => Value::f(&[0.0; 4]), "isEyeInWater" => Value::i(&[inputs.eye_in]), "blindness" => Value::f(&[inputs.blindness]), "nightVision" => Value::f(&[frame.night_vision]), @@ -671,6 +693,7 @@ fn components(name: &str) -> usize { | "skyColor" | "endFlashPosition" => 3, "eyeBrightness" | "eyeBrightnessSmooth" | "atlasSize" => 2, + "entityColor" => 4, n if n.starts_with("gbuffer") || n.starts_with("shadow") && n != "shadowAngle" => 16, _ => 1, } @@ -681,6 +704,18 @@ pub fn index(name: &str) -> Option { NAMES.iter().position(|n| *n == name) } +/// The position in [`NAMES`] of the value a program reads as `name`; `geometry`: the program +/// draws the game's geometry (gbuffers, shadow), which reads its own fog mode and shape and no +/// centre depth. +pub fn index_in(name: &str, geometry: bool) -> Option { + match name { + "fogMode" if geometry => index(GBUFFERS_FOG_MODE), + "fogShape" if geometry => index(GBUFFERS_FOG_SHAPE), + "centerDepthSmooth" if geometry => index(GBUFFERS_CENTER_DEPTH), + _ => index(name), + } +} + #[cfg(test)] mod tests { use super::*; @@ -1159,6 +1194,64 @@ mod initial_history_tests { } } + fn int(u: &FrameUniforms, at: usize) -> i32 { + match u.values[at] { + Value::I(v) => v[0], + _ => panic!("integer uniform expected"), + } + } + + /// Iris 1.11.7, read back exactly with a probe pack on a clear day (render distance 12, + /// cloud range 64): fogStart 0 and fogEnd 1024 (the environmental fog, not the render + /// distance's 172.8 to 192), fogDensity 0; composite and final programs read alphaTestRef + /// 0.1, blockEntityId -1, fogMode 0 and fogShape -1. + #[test] + fn fog_and_draw_uniforms_outside_a_draw_follow_iris() { + let hud = HudBatch::new([800, 450]); + let mut f = frame(&hud); + f.fog = Some(crate::fog::FogData { + color: [0.7, 0.8, 1.0, 1.0], + environmental_start: 0.0, + environmental_end: 1024.0, + render_distance_start: 172.8, + render_distance_end: 192.0, + sky_end: 192.0, + cloud_end: 1024.0, + }); + let mut u = FrameUniforms::default(); + u.update(&f, &PackInputs::default(), [800, 450]); + assert_eq!(float(&u, "fogStart")[0], 0.0); + assert_eq!(float(&u, "fogEnd")[0], 1024.0); + assert_eq!(float(&u, "fogDensity")[0], 0.0); + assert_eq!(float(&u, "alphaTestRef")[0], 0.1); + assert_eq!(int(&u, index("blockEntityId").unwrap()), -1); + assert_eq!(int(&u, index("entityId").unwrap()), 0); + assert_eq!(int(&u, index("fogMode").unwrap()), 0); + assert_eq!(int(&u, index("fogShape").unwrap()), -1); + } + + /// Iris 1.11.7 (probe pack): gbuffers programs read fogMode GL_LINEAR (9729) and fogShape 1 + /// (cylinder) where composite and final programs read 0 and -1. + #[test] + fn programs_that_draw_geometry_read_their_own_fog_and_centre_depth() { + let hud = HudBatch::new([800, 450]); + let mut u = FrameUniforms::default(); + u.update(&frame(&hud), &PackInputs::default(), [800, 450]); + let at = |name, geometry| index_in(name, geometry).unwrap(); + assert_eq!(int(&u, at("fogMode", true)), 9729); + assert_eq!(int(&u, at("fogShape", true)), 1); + assert_eq!(int(&u, at("fogMode", false)), 0); + assert_eq!(int(&u, at("fogShape", false)), -1); + assert_eq!(at("fogStart", true), at("fogStart", false)); + // Iris 1.11.7 (probe pack): `centerDepthSmooth` reads 0 in gbuffers programs. + let depth = |geometry| match u.values[at("centerDepthSmooth", geometry)] { + Value::F(v) => v[0], + _ => panic!("float uniform expected"), + }; + assert_eq!(depth(true), 0.0); + assert_eq!(depth(false), 1.0); + } + fn frame(hud: &HudBatch) -> Frame<'_> { Frame { eye: glam::DVec3::ZERO, From 11c50fd0d9480517578a5e3de5fb2d2b639b59d3 Mon Sep 17 00:00:00 2001 From: Joansitoh Date: Tue, 3 Nov 2026 08:20:26 +0100 Subject: [PATCH 06/70] Send the reduced_debug_info rule to players (Login and entity events 22/23) Fixes #8051 Co-Authored-By: Claude Sonnet 5.5 --- crates/horizon-client/src/game/debug_keys.rs | 4 +- crates/horizon-client/src/game/lan.rs | 2 + crates/horizon-client/src/game/remote.rs | 10 +++++ crates/horizon-client/src/lan/hub.rs | 45 +++++++++++++++++++- 4 files changed, 59 insertions(+), 2 deletions(-) diff --git a/crates/horizon-client/src/game/debug_keys.rs b/crates/horizon-client/src/game/debug_keys.rs index 5a5a723fc9..753ec7c61a 100644 --- a/crates/horizon-client/src/game/debug_keys.rs +++ b/crates/horizon-client/src/game/debug_keys.rs @@ -550,7 +550,9 @@ impl Game<'_> { } /// `LocalPlayer.isReducedDebugInfo`: the server's rule or the option. pub(super) fn reduced_debug_info(&self) -> bool { - self.settings.reduced_debug_info || self.ui.rules.bool("reduced_debug_info") + self.settings.reduced_debug_info + || self.ui.rules.bool("reduced_debug_info") + || self.remote.as_ref().is_some_and(|r| r.reduced_debug_info) } /// `DebugScreenEntryList.isCurrentlyEnabled` for an entry's path. pub(super) fn debug_entry(&self, path: &str) -> bool { diff --git a/crates/horizon-client/src/game/lan.rs b/crates/horizon-client/src/game/lan.rs index 03d4233762..b6f6c211b2 100644 --- a/crates/horizon-client/src/game/lan.rs +++ b/crates/horizon-client/src/game/lan.rs @@ -2335,6 +2335,8 @@ impl Game<'_> { } host.hub .set_immediate_respawn(self.ui.rules.bool("immediate_respawn")); + host.hub + .set_reduced_debug_info(self.ui.rules.bool("reduced_debug_info")); // A server with several levels runs a pass for each // (`tick_server`): the network is read once, before the first. // Player packets may already have been drained before diff --git a/crates/horizon-client/src/game/remote.rs b/crates/horizon-client/src/game/remote.rs index f9e0d22f57..ee1d5fe274 100644 --- a/crates/horizon-client/src/game/remote.rs +++ b/crates/horizon-client/src/game/remote.rs @@ -654,6 +654,8 @@ pub(super) struct Remote { death_message: Option, /// `LocalPlayer.showDeathScreen`: off with `immediate_respawn`. show_death_screen: bool, + /// `Player.isReducedDebugInfo`: the server's `reduced_debug_info` rule. + pub(super) reduced_debug_info: bool, /// `LocalPlayer.doLimitedCrafting`: whether limited crafting is enabled. pub(super) do_limited_crafting: bool, player_type: Option>, @@ -1091,6 +1093,7 @@ impl Game<'_> { flat: false, death_message: None, show_death_screen: true, + reduced_debug_info: false, do_limited_crafting: false, player_type, synced: vec![None; CREATIVE_SYNCED], @@ -3072,6 +3075,7 @@ impl Game<'_> { r.view_distance = p.chunk_radius; r.simulation_distance = p.simulation_distance; r.show_death_screen = p.show_death_screen; + r.reduced_debug_info = p.reduced_debug_info; } self.streaming.radius = self.render_distance_in_use().min(p.chunk_radius + 1).max(2); @@ -3977,6 +3981,12 @@ impl Game<'_> { self.ui.registries.permission = (p.event - 24) as u8; self.remote_world_options_permission(p.event >= 26); } + // Player.handleEntityEvent 22 / 23: reduced debug info on / off. + if (22..=23).contains(&p.event) { + if let Some(r) = self.remote.as_mut().filter(|r| r.entity_id == p.id) { + r.reduced_debug_info = p.event == 22; + } + } // Ravager.handleEntityEvent 69: the roar's puff and push. if p.event == 69 { self.remote_ravager_roar(p.id); diff --git a/crates/horizon-client/src/lan/hub.rs b/crates/horizon-client/src/lan/hub.rs index 912a0b18f7..fabf71fe44 100644 --- a/crates/horizon-client/src/lan/hub.rs +++ b/crates/horizon-client/src/lan/hub.rs @@ -307,6 +307,8 @@ pub struct Hub { pub far: Option, /// The `immediate_respawn` game rule, as the players were last told. immediate_respawn: bool, + /// The `reduced_debug_info` game rule, as the players were last told. + reduced_debug_info: bool, /// An integrated server's owner (`MinecraftServer.isSingleplayerOwner`), /// whose moves are never checked. pub singleplayer_owner: Option, @@ -616,6 +618,7 @@ impl Hub { seat_order: 0, sound_seeds: Mutex::new(LegacyRandom::new(crate::sound_engine::unique_seed())), immediate_respawn: false, + reduced_debug_info: false, movement_checks: (true, true), anticheat: None, chat_filter: None, @@ -726,6 +729,20 @@ impl Hub { })); } } + /// MinecraftServer.onGameRuleChanged: every player gets entity event 22 + /// (reduced) or 23 (full) for themselves when `reduced_debug_info` + /// changes; a joining player's Login carries it. + pub fn set_reduced_debug_info(&mut self, on: bool) { + if self.reduced_debug_info != on { + self.reduced_debug_info = on; + for g in self.guests.iter().filter(|g| g.placed) { + g.send(&C::EntityEvent(play::EntityEvent { + id: g.entity_id, + event: if on { 22 } else { 23 }, + })); + } + } + } /// PlayerList.setViewDistance: every player is told the new radius, /// and each one's chunks follow it, up to what they asked for /// (ChunkMap.getPlayerViewDistance). @@ -1117,7 +1134,7 @@ impl Hub { max_players: self.config.max_players as i32, chunk_radius: self.chunk_radius(), simulation_distance: self.config.simulation_distance, - reduced_debug_info: false, + reduced_debug_info: self.reduced_debug_info, show_death_screen: !self.immediate_respawn, limited_crafting: false, spawn: self.spawn_info(i, 0), @@ -4299,6 +4316,32 @@ mod tests { (hub, rx) } + /// `onGameRuleChanged`: a changed `reduced_debug_info` reaches each player + /// as their own entity event 22 / 23, and an unchanged one sends nothing. + #[test] + fn reduced_debug_info_changes_reach_players_as_entity_events() { + let (mut hub, rx) = hub_with_a_guest(); + let id = hub.guests[0].entity_id; + let events = |rx: &std::sync::mpsc::Receiver| { + let mut sent = Vec::new(); + while let Ok(crate::lan::Out::Packet(body)) = rx.try_recv() { + let mut r = horizon_protocol::buf::Reader::new(&body); + let pid = r.varint().unwrap(); + if let Ok(C::EntityEvent(p)) = C::decode(pid, r.rest()) { + sent.push((p.id, p.event)); + } + } + sent + }; + hub.set_reduced_debug_info(false); + assert!(events(&rx).is_empty()); + hub.set_reduced_debug_info(true); + hub.set_reduced_debug_info(true); + assert_eq!(events(&rx), vec![(id, 22)]); + hub.set_reduced_debug_info(false); + assert_eq!(events(&rx), vec![(id, 23)]); + } + /// `handlePlayerCommand` START_RIDING_JUMP (3) and STOP_RIDING_JUMP (4): the /// hub used to drop both, so a guest's released jump bar never reached the /// mount they ride, and neither did the horse's rear or its jump sound. From 46fb47af41f62ae285d903e79cf9b25769ed7c7c Mon Sep 17 00:00:00 2001 From: Joansitoh Date: Tue, 3 Nov 2026 08:33:17 +0100 Subject: [PATCH 07/70] Collapse the reduced_debug_info event arm (clippy) Co-Authored-By: Claude Sonnet 5.5 --- crates/horizon-client/src/game/remote.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/horizon-client/src/game/remote.rs b/crates/horizon-client/src/game/remote.rs index ee1d5fe274..ffb4f37d4b 100644 --- a/crates/horizon-client/src/game/remote.rs +++ b/crates/horizon-client/src/game/remote.rs @@ -3982,10 +3982,10 @@ impl Game<'_> { self.remote_world_options_permission(p.event >= 26); } // Player.handleEntityEvent 22 / 23: reduced debug info on / off. - if (22..=23).contains(&p.event) { - if let Some(r) = self.remote.as_mut().filter(|r| r.entity_id == p.id) { - r.reduced_debug_info = p.event == 22; - } + if (22..=23).contains(&p.event) + && let Some(r) = self.remote.as_mut().filter(|r| r.entity_id == p.id) + { + r.reduced_debug_info = p.event == 22; } // Ravager.handleEntityEvent 69: the roar's puff and push. if p.event == 69 { From 09496d8f2adca451d6caad00fb041c42ddcda75e Mon Sep 17 00:00:00 2001 From: TiggerTakkyTTT <212331760+TiggerTakkyTTT@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:21:41 +0700 Subject: [PATCH 08/70] Add operator permission level management Co-Authored-By: Codex (GPT-6.1) --- .../src/game/dedicated/management.rs | 22 +++++++++++ .../horizon-server/src/management_methods.rs | 37 +++++++++++++++++++ tools/port_map/rest-017.tsv | 3 +- tools/test_management_protocol_parity.py | 33 ++++++++++++++++- 4 files changed, 92 insertions(+), 3 deletions(-) diff --git a/crates/horizon-client/src/game/dedicated/management.rs b/crates/horizon-client/src/game/dedicated/management.rs index 18c8fe82f9..bacb3efd1e 100644 --- a/crates/horizon-client/src/game/dedicated/management.rs +++ b/crates/horizon-client/src/game/dedicated/management.rs @@ -187,6 +187,28 @@ impl Game<'_> { self.set_default_game_mode(state.game_mode); return json!({ "value": GAME_MODES[state.game_mode as usize] }); } + "serversettings/operator_user_permission_level" => { + return json!({ "value": state.op_level }); + } + "serversettings/operator_user_permission_level/set" => { + let Some(level) = body["value"] + .as_i64() + .and_then(|value| i32::try_from(value).ok()) + .filter(|level| (0..=4).contains(level)) + else { + return json!({ + "error": "operator user permission level must be an integer between 0 and 4" + }); + }; + rpc(format!( + "Update operator user permission level from {} to {}", + state.op_level, level + )); + state.op_level = level; + state.lists.lock().unwrap().op_level = level; + self.store_property("op-permission-level", level.to_string()); + return json!({ "value": state.op_level }); + } "serversettings/force_game_mode" => { return json!({ "value": state.force_game_mode }); } diff --git a/crates/horizon-server/src/management_methods.rs b/crates/horizon-server/src/management_methods.rs index c2dfdbce2f..d26e8aa4a1 100644 --- a/crates/horizon-server/src/management_methods.rs +++ b/crates/horizon-server/src/management_methods.rs @@ -80,6 +80,12 @@ pub fn call(shared: &Shared, client: u32, short: &str, argument: &Value) -> Resu .ok_or_else(|| invalid_params("Not a string"))?, ), ), + "serversettings/operator_user_permission_level" => { + game.operator_user_permission_level(client, None) + } + "serversettings/operator_user_permission_level/set" => { + game.operator_user_permission_level(client, Some(management_int(argument)?)) + } "serversettings/force_game_mode" => game.force_game_mode(client, None), "serversettings/force_game_mode/set" => game.force_game_mode( client, @@ -579,6 +585,37 @@ impl Game<'_> { Ok(reply["value"].clone()) } + /// `MinecraftServerSettingsServiceImpl.getOperatorUserPermissions` and + /// `setOperatorUserPermissionLevel`. + fn operator_user_permission_level( + &self, + client: u32, + value: Option, + ) -> Result { + let mut request = json!({ + "method": "serversettings/operator_user_permission_level" + }); + if let Some(value) = value { + request["method"] = json!("serversettings/operator_user_permission_level/set"); + request["value"] = json!(value); + } + let reply = self.ask(&format!("management {client} {request}"))?; + if let Some(error) = reply["error"].as_str() { + return Err((INTERNAL_ERROR, Some(error.to_owned()))); + } + if let Some(value) = value { + let value = reply["value"].as_i64().unwrap_or(i64::from(value)); + crate::config::update( + &self.shared.dir, + "properties", + "op-permission-level", + toml::Value::Integer(value), + ) + .map_err(|e| (INTERNAL_ERROR, Some(e)))?; + } + Ok(reply["value"].clone()) + } + /// `MinecraftServerSettingsServiceImpl.getMotd` and `setMotd`: the live server-list message. fn motd(&self, client: u32, value: Option<&str>) -> Result { let mut request = json!({ "method": "serversettings/motd" }); diff --git a/tools/port_map/rest-017.tsv b/tools/port_map/rest-017.tsv index 01f1fe4e75..c2143856ad 100644 --- a/tools/port_map/rest-017.tsv +++ b/tools/port_map/rest-017.tsv @@ -14,9 +14,10 @@ DedicatedServer.setMaxPlayers port crates/horizon-client/src/game/dedicated.rs:: DedicatedServer.setSpawnProtectionRadius skip:server JSON-RPC management API only; spawn-protection is read at start and used by Game::under_spawn_protection DedicatedServer.setRepliesToStatus skip:server JSON-RPC management API only (ServerSettingsService); Horizon has no such API DedicatedServer.setHidesOnlinePlayers skip:server JSON-RPC management API only (ServerSettingsService); Horizon has no such API -DedicatedServer.setOperatorUserPermissions skip:server JSON-RPC management API only (ServerSettingsService); Horizon has no such API +DedicatedServer.setOperatorUserPermissions port crates/horizon-client/src/game/dedicated/management.rs::Game::management management updates the live default operator permission level and op-permission-level in server.properties DedicatedServer.setPlayerIdleTimeout port crates/horizon-client/src/game/dedicated.rs::Game::set_player_idle_timeout updates the live idle sweep and player-idle-timeout via management; gap: minor: /setidletimeout remains unimplemented MinecraftServerSettingsServiceImpl.setPlayerIdleTimeout port crates/horizon-server/src/management_methods.rs::Game::player_idle_timeout forwards the live idle timeout to the game and persists properties.player-idle-timeout in server.toml +MinecraftServerSettingsServiceImpl.setOperatorUserPermissions port crates/horizon-server/src/management_methods.rs::Game::operator_user_permission_level forwards the live default operator permission level and persists properties.op-permission-level in server.toml DedicatedServer.setStatusHeartbeatInterval skip:server JSON-RPC management API only (status heartbeat) DedicatedServer.setMotd skip:server JSON-RPC management API only (ServerSettingsService); Horizon has no such API DedicatedServer.enforceSecureProfile inline crates/horizon-client/src/game/dedicated.rs::Game::run_dedicated gap: minor: services.canValidateProfileKeys() is not part of the check diff --git a/tools/test_management_protocol_parity.py b/tools/test_management_protocol_parity.py index f333822b9e..fbeb1d357b 100644 --- a/tools/test_management_protocol_parity.py +++ b/tools/test_management_protocol_parity.py @@ -16,8 +16,9 @@ sent the same things over TLS, and every answer is compared exactly: vanilla's data generator), `server/status`, the four lists, `players`, kicking nobody, `server/save` and `server/system_message` with no one online, the four lists changed (`add`, `remove`, `set`, `clear`; with no profile service, players named resolve to offline players on both), the live server - message, difficulty, default and forced game mode read and changed (including saved properties), autosave - read and changed (including its reset after restart), allowlist use and enforcement read and changed + message, difficulty, default and forced game mode read and changed (including saved properties), operator + permission level read and changed (including saved properties and restart), autosave read and changed + (including its reset after restart), allowlist use and enforcement read and changed (including saved properties and restart), max players read and changed (including saved properties and restart), player idle timeout read and changed (including disabling it, invalid input, saved properties and restart), the live pause-when-empty timer read and changed (including its saved @@ -143,6 +144,15 @@ MESSAGES = [ '{"jsonrpc":"2.0","id":52,"method":"minecraft:serversettings/game_mode"}', '{"jsonrpc":"2.0","id":53,"method":"minecraft:serversettings/game_mode/set","params":["spectator"]}', '{"jsonrpc":"2.0","id":54,"method":"minecraft:serversettings/game_mode"}', + '{"jsonrpc":"2.0","id":140,"method":"minecraft:serversettings/operator_user_permission_level"}', + '{"jsonrpc":"2.0","id":141,"method":"minecraft:serversettings/operator_user_permission_level/set","params":[2]}', + '{"jsonrpc":"2.0","id":142,"method":"minecraft:serversettings/operator_user_permission_level"}', + '{"jsonrpc":"2.0","id":143,"method":"minecraft:serversettings/operator_user_permission_level/set","params":[0]}', + '{"jsonrpc":"2.0","id":144,"method":"minecraft:serversettings/operator_user_permission_level"}', + '{"jsonrpc":"2.0","id":145,"method":"minecraft:serversettings/operator_user_permission_level/set","params":["yes"]}', + '{"jsonrpc":"2.0","id":146,"method":"minecraft:serversettings/operator_user_permission_level"}', + '{"jsonrpc":"2.0","id":147,"method":"minecraft:serversettings/operator_user_permission_level/set","params":[2]}', + '{"jsonrpc":"2.0","id":148,"method":"minecraft:serversettings/operator_user_permission_level"}', '{"jsonrpc":"2.0","id":55,"method":"minecraft:serversettings/force_game_mode"}', '{"jsonrpc":"2.0","id":56,"method":"minecraft:serversettings/force_game_mode/set","params":[true]}', '{"jsonrpc":"2.0","id":57,"method":"minecraft:serversettings/force_game_mode"}', @@ -478,6 +488,9 @@ def main(): sides[side]['saved_player_idle_timeout'] = next( (line.partition('=')[2] for line in properties.splitlines() if line.startswith('player-idle-timeout=')), None) + sides[side]['saved_operator_user_permission_level'] = next( + (line.partition('=')[2] for line in properties.splitlines() + if line.startswith('op-permission-level=')), None) if side == 'horizon': world = (folder / 'server.toml').read_text().partition('[world]')[2].split('\n[', 1)[0] sides[side]['saved_config_difficulty'] = 'difficulty = "peaceful"' in world @@ -494,6 +507,8 @@ def main(): folder / 'server.toml').read_text() sides[side]['saved_config_player_idle_timeout'] = 'player-idle-timeout = 30' in ( folder / 'server.toml').read_text() + sides[side]['saved_config_operator_user_permission_level'] = 'op-permission-level = 2' in ( + folder / 'server.toml').read_text() finally: server.stop() restarted = Server(command, folder, build / f'{side}-restart.log') @@ -543,6 +558,12 @@ def main(): if not isinstance(reply, dict) or 'method' not in reply or 'id' in reply: break sides[side]['restarted_player_idle_timeout'] = reply + ws.send('{"jsonrpc":"2.0","id":149,"method":"minecraft:serversettings/operator_user_permission_level"}') + while True: + reply = normal(ws.receive(timeout=60)) + if not isinstance(reply, dict) or 'method' not in reply or 'id' in reply: + break + sides[side]['restarted_operator_user_permission_level'] = reply finally: ws.sock.close() finally: @@ -614,6 +635,14 @@ def main(): if vanilla['restarted_player_idle_timeout'] != horizon['restarted_player_idle_timeout'] or \ vanilla['restarted_player_idle_timeout'] != {'jsonrpc': '2.0', 'id': 133, 'result': 30}: failures.append(f"restarted player idle timeout: vanilla {vanilla['restarted_player_idle_timeout']!r}, Horizon {horizon['restarted_player_idle_timeout']!r}") + if vanilla['saved_operator_user_permission_level'] != horizon['saved_operator_user_permission_level'] or \ + vanilla['saved_operator_user_permission_level'] != '2': + failures.append(f"saved operator permission level: vanilla {vanilla['saved_operator_user_permission_level']!r}, Horizon {horizon['saved_operator_user_permission_level']!r}") + if not horizon['saved_config_operator_user_permission_level']: + failures.append('Horizon did not save operator permission level in server.toml') + if vanilla['restarted_operator_user_permission_level'] != horizon['restarted_operator_user_permission_level'] or \ + vanilla['restarted_operator_user_permission_level'] != {'jsonrpc': '2.0', 'id': 149, 'result': 2}: + failures.append(f"restarted operator permission level: vanilla {vanilla['restarted_operator_user_permission_level']!r}, Horizon {horizon['restarted_operator_user_permission_level']!r}") (build / 'report.json').write_text(json.dumps(sides, indent=1)) if failures: sys.exit(f'{NAME}: {len(failures)} differences (logs in {build}):\n' + '\n'.join(failures)) From fa22f0e6eafe9b2ea20a051eb2358d52d2e7af73 Mon Sep 17 00:00:00 2001 From: Akirabane Date: Tue, 3 Nov 2026 13:29:26 +0100 Subject: [PATCH 09/70] Renderer: keep every pipeline within 15 inter-stage variables, and test it The entity shader's vertex output had 15 user-defined locations, and the fragment stage's front_facing counts as one more: 16 against the 15 an OpenGL 3.3 GPU (a GeForce 9100M G) allows, so 'Breaking cracks' (and every entity-shader pipeline) failed to build at start-up. The spherical and cylindrical fog distances now share one vec2 location (fog_distance); each component is the same expression, interpolated on its own, so the output is unchanged. A naga test audits the vertex outputs and fragment inputs of every assembled shader and every standalone .wgsl file against that limit, front_facing / sample_index / sample_mask / primitive_index included, and fails for a .wgsl file it cannot place. Fixes #8195 Co-Authored-By: Claude Sonnet 5.5 --- crates/horizon-client-render/src/entity.wgsl | 39 ++-- crates/horizon-client-render/src/gfx.rs | 2 + .../src/gfx/inter_stage_tests.rs | 218 ++++++++++++++++++ .../horizon-client-render/src/oit_clouds.wgsl | 2 +- 4 files changed, 241 insertions(+), 20 deletions(-) create mode 100644 crates/horizon-client-render/src/gfx/inter_stage_tests.rs diff --git a/crates/horizon-client-render/src/entity.wgsl b/crates/horizon-client-render/src/entity.wgsl index 394d0b47b3..3fb849664e 100644 --- a/crates/horizon-client-render/src/entity.wgsl +++ b/crates/horizon-client-render/src/entity.wgsl @@ -50,8 +50,9 @@ struct Out { @builtin(position) clip: vec4, @location(0) uv: vec2, @location(1) color: vec4, - @location(2) spherical: f32, - @location(3) cylindrical: f32, + // The distances fog reads: .x spherical, .y cylindrical. One vec2 rather than two floats, so that + // the fragment stage stays within 14 user-defined inputs plus front_facing (GL's limit of 15, #8195). + @location(2) fog_distance: vec2, // entity.vsh's overlayColor: the OverlayTexture texel (see overlay_texel). @location(5) overlay_color: vec4, @location(4) @interpolate(flat) overlay: u32, @@ -157,11 +158,11 @@ fn entity_vertex(position: vec3, uv: vec2, out.back_color = back; out.overlay_color = overlay_texel(overlay); // Sky geometry (clouds, celestial bodies) is exempt from render-distance fog. - out.spherical = select(length(position), 0.0, overlay >= 2u && overlay <= 4u); - out.cylindrical = select(max(length(position.xz), abs(position.y)), 0.0, overlay >= 2u && overlay <= 4u); + out.fog_distance.x = select(length(position), 0.0, overlay >= 2u && overlay <= 4u); + out.fog_distance.y = select(max(length(position.xz), abs(position.y)), 0.0, overlay >= 2u && overlay <= 4u); out.overlay = overlay; out.glint_uv = vec2(0.0); - if overlay == 4u { out.spherical = length(position); } + if overlay == 4u { out.fog_distance.x = length(position); } return out; } @vertex fn vs_entity(@location(0) position: vec3, @location(1) uv: vec2, @@ -293,7 +294,7 @@ fn entity_color(in: Out, front: bool) -> vec4 { color = vec4(c, 1.0); } else if in.overlay == 4u { // clouds.fsh: alpha fades out towards the cloud fog end. - return vec4(color.rgb, color.a * (1.0 - linear_fog(in.spherical, 0.0, globals.fog_ends.y))); + return vec4(color.rgb, color.a * (1.0 - linear_fog(in.fog_distance.x, 0.0, globals.fog_ends.y))); } if color.a < 0.1 || (in.cull != 0u && !front) { discard; } // entity.fsh calculateFinalColor: the overlay (hurt red, TNT white) over the @@ -312,8 +313,8 @@ fn entity_color(in: Out, front: bool) -> vec4 { textureSample(glint_armor_tex, glint_sampler, armor_glint_uv(in.glint_uv)), ); } - let f = max(linear_fog(in.spherical, globals.fog.x, globals.fog.y), - linear_fog(in.cylindrical, globals.fog.z, globals.fog.w)); + let f = max(linear_fog(in.fog_distance.x, globals.fog.x, globals.fog.y), + linear_fog(in.fog_distance.y, globals.fog.z, globals.fog.w)); return vec4(mix(color.rgb, globals.fog_color.rgb, f * globals.fog_color.a), color.a); } @@ -327,8 +328,8 @@ fn entity_color(in: Out, front: bool) -> vec4 { fn shadow_color(in: Out) -> vec4 { var color = textureSample(atlas, atlas_sampler, in.uv) * in.color; color *= in.light_color; - let f = max(linear_fog(in.spherical, globals.fog.x, globals.fog.y), - linear_fog(in.cylindrical, globals.fog.z, globals.fog.w)); + let f = max(linear_fog(in.fog_distance.x, globals.fog.x, globals.fog.y), + linear_fog(in.fog_distance.y, globals.fog.z, globals.fog.w)); return vec4(mix(color.rgb, globals.fog_color.rgb, f * globals.fog_color.a), color.a); } @@ -347,8 +348,8 @@ fn shadow_color(in: Out) -> vec4 { let texel = textureSample(atlas, atlas_sampler, uv); if texel.a < 0.1 { discard; } // Fog hides a light source and the light on a surface as it hides everything else. - let fogged = max(linear_fog(in.spherical, globals.fog.x, globals.fog.y), - linear_fog(in.cylindrical, globals.fog.z, globals.fog.w)) * globals.fog_color.a; + let fogged = max(linear_fog(in.fog_distance.x, globals.fog.x, globals.fog.y), + linear_fog(in.fog_distance.y, globals.fog.z, globals.fog.w)) * globals.fog_color.a; if in.tier == 0u { return vec4(0.0, 0.0, 0.0, hdr_scene_alpha(mix(in.scene, globals.hdr_light.y, fogged))); } @@ -379,7 +380,7 @@ fn hdr_mark(tier: u32, y: f32) -> f32 { // HDR lighting on clouds, drawn again after them with only alpha written: they're lit by the // sky, so they take its value, which their blending would otherwise cover. @fragment fn fs_hdr_cloud_mark(in: Out) -> @location(0) vec4 { - let a = in.color.a * (1.0 - linear_fog(in.spherical, 0.0, globals.fog_ends.y)); + let a = in.color.a * (1.0 - linear_fog(in.fog_distance.x, 0.0, globals.fog_ends.y)); if a < 0.1 { discard; } return vec4(0.0, 0.0, 0.0, hdr_scene_alpha(globals.hdr_light.y)); } @@ -388,8 +389,8 @@ fn celestial_color(in: Out) -> vec4 { // RenderPipelines.DRAGON_RAYS / rendertype_lightning.fsh: untextured // vertex colour, with fog fading both RGB and alpha before additive blending. if in.overlay == 37u { - let fog = max(linear_fog(in.spherical, globals.fog.x, globals.fog.y), - linear_fog(in.cylindrical, globals.fog.z, globals.fog.w)); + let fog = max(linear_fog(in.fog_distance.x, globals.fog.x, globals.fog.y), + linear_fog(in.fog_distance.y, globals.fog.z, globals.fog.w)); return in.color * (1.0 - fog); } return textureSample(atlas, atlas_sampler, in.uv) * in.color * in.light_color; @@ -428,8 +429,8 @@ fn energy_swirl_base(in: Out) -> vec4 { return vec4(color.rgb * (128.0 / 255.0), color.a); } fn energy_swirl_fog(in: Out) -> f32 { - let f = max(linear_fog(in.spherical, globals.fog.x, globals.fog.y), - linear_fog(in.cylindrical, globals.fog.z, globals.fog.w)); + let f = max(linear_fog(in.fog_distance.x, globals.fog.x, globals.fog.y), + linear_fog(in.fog_distance.y, globals.fog.z, globals.fog.w)); return f * globals.fog_color.a; } @fragment fn fs_energy_swirl(in: Out) -> @location(0) vec4 { @@ -572,7 +573,7 @@ fn weather_color(in: Out) -> vec4 { var color = textureLoad(atlas, texel, 0) * in.color; if color.a < 0.1 { discard; } color *= in.light_color; - let f = max(linear_fog(in.spherical, globals.fog.x, globals.fog.y), - linear_fog(in.cylindrical, globals.fog.z, globals.fog.w)); + let f = max(linear_fog(in.fog_distance.x, globals.fog.x, globals.fog.y), + linear_fog(in.fog_distance.y, globals.fog.z, globals.fog.w)); return vec4(mix(color.rgb, globals.fog_color.rgb, f * globals.fog_color.a), color.a); } diff --git a/crates/horizon-client-render/src/gfx.rs b/crates/horizon-client-render/src/gfx.rs index 3bb0db7916..10a65d68df 100644 --- a/crates/horizon-client-render/src/gfx.rs +++ b/crates/horizon-client-render/src/gfx.rs @@ -46,6 +46,8 @@ mod crumbling_tests; mod entity_batch; mod entity_outline; #[cfg(test)] +mod inter_stage_tests; +#[cfg(test)] pub(crate) mod test_gpu; mod weather; use entity_batch::EntityBatch; diff --git a/crates/horizon-client-render/src/gfx/inter_stage_tests.rs b/crates/horizon-client-render/src/gfx/inter_stage_tests.rs new file mode 100644 index 0000000000..1250a18477 --- /dev/null +++ b/crates/horizon-client-render/src/gfx/inter_stage_tests.rs @@ -0,0 +1,218 @@ +//! Every render pipeline's stage interface against the weakest GPUs' limit (#8195). +//! +//! OpenGL 3.3 drivers (a GeForce 9100M G) allow `max_inter_stage_shader_variables` = 15, and wgpu +//! counts the fragment stage's built-in inputs (`front_facing`, `sample_index`, ...) against it. +//! A pipeline over that limit panics at start-up on such a GPU, with no way to run the game, so +//! this checks the shaders with naga, without a GPU. + +use std::path::{Path, PathBuf}; + +/// `Limits::downlevel_defaults().max_inter_stage_shader_variables`, the least a GPU offers. +const LIMIT: u32 = 15; + +/// One entry point's variables: the user-defined `@location`s and the built-ins wgpu counts. +#[derive(Debug, PartialEq, Eq)] +struct Interface { + entry: String, + /// Vertex outputs or fragment inputs, user-defined. + user: u32, + /// The fragment stage's `front_facing`, `sample_index`, `sample_mask` and `primitive_index` + /// inputs, which wgpu counts as one variable each; 0 for a vertex stage. + built_ins: u32, +} + +impl Interface { + fn total(&self) -> u32 { + self.user + self.built_ins + } +} + +/// The bindings an argument or a result carries, a struct's members flattened. +fn bindings( + module: &naga::Module, + binding: &Option, + ty: naga::Handle, +) -> Vec { + if let Some(binding) = binding { + return vec![binding.clone()]; + } + match &module.types[ty].inner { + naga::TypeInner::Struct { members, .. } => { + members.iter().filter_map(|m| m.binding.clone()).collect() + } + _ => Vec::new(), + } +} + +fn is_location(binding: &naga::Binding) -> bool { + matches!(binding, naga::Binding::Location { .. }) +} + +/// The stage interface of every vertex and fragment entry point of `source`. +fn interfaces(source: &str) -> Vec { + let module = naga::front::wgsl::parse_str(source).unwrap(); + let mut out = Vec::new(); + for entry in &module.entry_points { + let function = &entry.function; + let (user, built_ins) = match entry.stage { + naga::ShaderStage::Vertex => { + let outputs: Vec<_> = function + .result + .iter() + .flat_map(|r| bindings(&module, &r.binding, r.ty)) + .collect(); + (outputs.iter().filter(|b| is_location(b)).count(), 0) + } + naga::ShaderStage::Fragment => { + let inputs: Vec<_> = function + .arguments + .iter() + .flat_map(|a| bindings(&module, &a.binding, a.ty)) + .collect(); + let built_ins = inputs + .iter() + .filter(|b| { + matches!( + b, + naga::Binding::BuiltIn( + naga::BuiltIn::FrontFacing + | naga::BuiltIn::SampleIndex + | naga::BuiltIn::SampleMask + | naga::BuiltIn::PrimitiveIndex + ) + ) + }) + .count(); + (inputs.iter().filter(|b| is_location(b)).count(), built_ins) + } + _ => continue, + }; + out.push(Interface { + entry: entry.name.clone(), + user: user as u32, + built_ins: built_ins as u32, + }); + } + out +} + +/// The shaders as the renderer assembles them, by the `.wgsl` files each is made of. +fn composed() -> Vec<(&'static str, Vec<&'static str>, String)> { + let entity = crate::overlay::wgsl_constants() + include_str!("../entity.wgsl"); + vec![ + ("entity", vec!["entity.wgsl"], entity.clone()), + ( + "static entity", + vec!["entity.wgsl", "static_entity.wgsl"], + entity.clone() + include_str!("../static_entity.wgsl"), + ), + ( + "improved transparency clouds", + vec!["entity.wgsl", "oit.wgsl", "oit_clouds.wgsl"], + entity.clone() + include_str!("../oit.wgsl") + include_str!("../oit_clouds.wgsl"), + ), + ( + "improved transparency features", + vec!["entity.wgsl", "oit.wgsl", "oit_features.wgsl"], + entity + include_str!("../oit.wgsl") + include_str!("../oit_features.wgsl"), + ), + ( + "improved transparency world", + vec!["terrain.wgsl", "oit.wgsl", "oit_world.wgsl"], + include_str!("../terrain.wgsl").to_owned() + + include_str!("../oit.wgsl") + + include_str!("../oit_world.wgsl"), + ), + ( + "improved transparency world border", + vec!["border.wgsl", "oit.wgsl", "oit_border.wgsl"], + include_str!("../border.wgsl").to_owned() + + include_str!("../oit.wgsl") + + include_str!("../oit_border.wgsl"), + ), + ] +} + +fn wgsl_files(dir: &Path, out: &mut Vec) { + for entry in std::fs::read_dir(dir).unwrap().flatten() { + let path = entry.path(); + if path.is_dir() { + wgsl_files(&path, out); + } else if path.extension().is_some_and(|e| e == "wgsl") { + out.push(path); + } + } +} + +/// Every shader: the assembled ones, and each `.wgsl` file that stands alone. A file that does +/// not (it needs another's declarations) must be part of an assembled one, so that a new shader +/// cannot slip past the audit. +fn audited() -> Vec<(String, Vec)> { + let composed = composed(); + let mut files = Vec::new(); + wgsl_files( + &Path::new(env!("CARGO_MANIFEST_DIR")).join("src"), + &mut files, + ); + files.sort(); + let mut out: Vec<(String, Vec)> = composed + .iter() + .map(|(name, _, source)| ((*name).to_owned(), interfaces(source))) + .collect(); + for file in files { + let name = file.file_name().unwrap().to_string_lossy().into_owned(); + let source = std::fs::read_to_string(&file).unwrap(); + let alone = naga::front::wgsl::parse_str(&source).is_ok(); + let part = composed.iter().any(|(_, parts, _)| parts.contains(&&*name)); + assert!( + alone || part, + "{name} needs other files' declarations: add its assembly to `composed`" + ); + if alone { + out.push((name, interfaces(&source))); + } + } + out +} + +#[test] +fn no_pipeline_exceeds_the_weakest_gpus_inter_stage_limit() { + let mut over = Vec::new(); + for (shader, entries) in audited() { + for e in entries { + if e.total() > LIMIT { + over.push(format!( + "{shader}::{}: {} user-defined + {} built-in = {} > {LIMIT}", + e.entry, + e.user, + e.built_ins, + e.total() + )); + } + } + } + assert!(over.is_empty(), "over the limit:\n{}", over.join("\n")); +} + +/// The audit counts what wgpu counts (the failure of #8195: 15 user-defined + `FrontFacing`). +#[test] +fn a_front_facing_input_counts_against_the_limit() { + let source = "struct Io { @builtin(position) p: vec4, @location(0) a: vec4, @location(1) b: f32 } + @vertex fn vs() -> Io { return Io(vec4(0.0), vec4(0.0), 0.0); } + @fragment fn fs(in: Io, @builtin(front_facing) f: bool) -> @location(0) vec4 { return in.a; }"; + assert_eq!( + interfaces(source), + vec![ + Interface { + entry: "vs".into(), + user: 2, + built_ins: 0 + }, + Interface { + entry: "fs".into(), + user: 2, + built_ins: 1 + }, + ] + ); +} diff --git a/crates/horizon-client-render/src/oit_clouds.wgsl b/crates/horizon-client-render/src/oit_clouds.wgsl index 9d2c163c2a..455bf34838 100644 --- a/crates/horizon-client-render/src/oit_clouds.wgsl +++ b/crates/horizon-client-render/src/oit_clouds.wgsl @@ -6,7 +6,7 @@ // the depth bounds stage, which sees the unfaded alpha. fn oit_cloud_color(in: Out, front: bool, fade: bool) -> vec4 { let color = textureSample(atlas, atlas_sampler, in.uv) * select(in.back_color, in.color, front); - let faded = 1.0 - linear_fog(in.spherical, 0.0, globals.fog_ends.y); + let faded = 1.0 - linear_fog(in.fog_distance.x, 0.0, globals.fog_ends.y); return vec4(color.rgb, color.a * select(1.0, faded, fade)); } @fragment fn fs_oit_cloud_bounds(in: Out, @builtin(front_facing) front: bool) -> @location(0) vec4 { From 7bac913ec34d04c5e1cc3b65a00fc36a8b9dd194 Mon Sep 17 00:00:00 2001 From: Akirabane Date: Tue, 3 Nov 2026 13:51:06 +0100 Subject: [PATCH 10/70] Server: `config set server.motd` and `server.max_players` apply live On a running server, `horizon-server config set` and PATCH /api/v1/config sent only console commands, so the message of the day and the player limit were always reported as "restart required", although the game takes both live through the management settings (`serversettings/motd/set` and `serversettings/max_players/set`). `live_line` now returns the control line to send: the same management request for these two settings, `console ...` for the ones vanilla changes through its console, and nothing for the supervisor's own settings. The CLI talks to the game's control endpoint the way the API already did, and a reply with an error leaves the setting for the next start. Fixes #8206 Co-Authored-By: Claude Sonnet 5.5 --- crates/horizon-server/src/api.rs | 8 +- crates/horizon-server/src/settings.rs | 117 +++++++++++++++++++++++--- docs/hosting.md | 4 +- docs/server.md | 6 +- 4 files changed, 114 insertions(+), 21 deletions(-) diff --git a/crates/horizon-server/src/api.rs b/crates/horizon-server/src/api.rs index 7fd6066994..021e883871 100644 --- a/crates/horizon-server/src/api.rs +++ b/crates/horizon-server/src/api.rs @@ -790,12 +790,8 @@ fn patch_config(shared: &Shared, body: &[u8]) -> Response { lines.push(format!("{key}={text}")); } let lines: Vec<&str> = lines.iter().map(String::as_str).collect(); - let live = |line: &str| { - shared.phase() == Phase::Running - && engine::Control::connect(&shared.dir) - .and_then(|mut c| c.ask(&format!("console {line}"))) - .is_ok() - }; + let live = + |line: &str| shared.phase() == Phase::Running && settings::ask_game(&shared.dir, line); let running = matches!(shared.phase(), Phase::Running | Phase::Restarting); match settings::apply( &shared.dir, diff --git a/crates/horizon-server/src/settings.rs b/crates/horizon-server/src/settings.rs index 14878876e8..716d57fd3a 100644 --- a/crates/horizon-server/src/settings.rs +++ b/crates/horizon-server/src/settings.rs @@ -1,8 +1,9 @@ //! `horizon-server config`: read server.toml's settings, and change them the way the server checks them //! (docs/server.md, section 4). A running server takes what vanilla can change live through its console -//! (difficulty, the default game mode, the whitelist) at once; the rest applies at the next start. +//! (difficulty, the default game mode, the whitelist) and through its management settings (the message of the +//! day, the player limit) at once; the rest applies at the next start. -use crate::{api::Client, config}; +use crate::{api::Client, config, engine}; use serde_json::{Value, json}; use std::path::Path; @@ -147,6 +148,35 @@ fn range(section: &str, field: &str) -> Option> { } } +/// The control line that applies a setting to a running game, if there is a way to: a console command, or the +/// management setting (`serversettings/motd/set`, `serversettings/max_players/set`) that the management +/// protocol uses; `Some("")` for the settings the supervisor itself reads every time (backups, updates). +pub fn live_line(section: &str, field: &str, value: &toml::Value) -> Option { + let setting = |name: &str, value: Value| { + let request = json!({ "method": format!("serversettings/{name}/set"), "value": value }); + // Connection 0: no RPC client made this change, the command line did. + Some(format!("management 0 {request}")) + }; + match (section, field, value) { + ("server", "motd", toml::Value::String(text)) => setting("motd", json!(text)), + ("server", "max_players", toml::Value::Integer(n)) => setting("max_players", json!(n)), + _ => live_command(section, field, value).map(|line| { + if line.is_empty() { + line + } else { + format!("console {line}") + } + }), + } +} + +/// Sends the running game one control line on its endpoint, and says whether it took it. +pub fn ask_game(dir: &Path, line: &str) -> bool { + engine::Control::connect(dir) + .and_then(|mut game| game.ask(line)) + .is_ok_and(|reply| reply.get("error").is_none()) +} + /// The console command that applies a setting to a running game, if vanilla has one; `Some("")` for the /// settings the supervisor itself reads every time (backups, updates). pub fn live_command(section: &str, field: &str, value: &toml::Value) -> Option { @@ -176,17 +206,12 @@ pub fn set(dir: &Path, changes: &[&str]) -> Result { c.call("GET", "/api/v1/status", None) .is_ok_and(|s| s["phase"] == "running") }); - let run = |line: &str| { - up && client.as_ref().is_some_and(|c| { - c.call("POST", "/api/v1/command", Some(&json!({ "line": line }))) - .is_ok() - }) - }; + let run = |line: &str| up && ask_game(dir, line); apply(dir, changes, client.is_some().then_some(&run)) } -/// Writes the changes to server.toml, then sends a running server (`live` runs a console command and says -/// whether it did) what it can take at once. +/// Writes the changes to server.toml, then sends a running server (`live` sends the game a control line and +/// says whether it took it) what it can take at once. pub fn apply( dir: &Path, changes: &[&str], @@ -209,7 +234,7 @@ pub fn apply( for (section, field, value) in &parsed { let key = format!("{section}.{field}"); let unchanged = current.get(section).and_then(|s| s.get(field)) == Some(value); - match live_command(section, field, value) { + match live_line(section, field, value) { _ if unchanged => {} Some(line) if line.is_empty() => outcome.applied.push(key), Some(line) if live(&line) => outcome.applied.push(key), @@ -318,6 +343,76 @@ mod tests { ); } + #[test] + fn the_message_and_the_player_limit_go_to_the_management_settings() { + let s = |v: &str| toml::Value::String(v.into()); + assert_eq!( + live_line("server", "motd", &s("Friends \"only\"")).as_deref(), + Some(r#"management 0 {"method":"serversettings/motd/set","value":"Friends \"only\""}"#) + ); + assert_eq!( + live_line("server", "max_players", &toml::Value::Integer(8)).as_deref(), + Some(r#"management 0 {"method":"serversettings/max_players/set","value":8}"#) + ); + // The console ones keep their command, the supervisor's own settings need none. + assert_eq!( + live_line("world", "difficulty", &s("hard")).as_deref(), + Some("console difficulty hard") + ); + assert_eq!(live_line("backups", "every", &s("1h")).as_deref(), Some("")); + assert_eq!( + live_line("server", "view_distance", &toml::Value::Integer(8)), + None + ); + } + + #[test] + fn a_running_server_is_sent_only_what_changed() { + let dir = std::env::temp_dir().join(format!("horizon-server-live-{}", std::process::id())); + let _ = std::fs::remove_dir_all(&dir); + std::fs::create_dir_all(&dir).unwrap(); + std::fs::write(dir.join(config::FILE), config::TEMPLATE).unwrap(); + let sent = std::cell::RefCell::new(Vec::new()); + let game = |line: &str| { + sent.borrow_mut().push(line.to_owned()); + true + }; + let outcome = apply( + &dir, + &[ + "server.motd=Back at noon", + "server.max_players=5", + "server.view_distance=9", + ], + Some(&game), + ) + .unwrap(); + assert_eq!(outcome.applied, ["server.motd", "server.max_players"]); + assert_eq!(outcome.restart, ["server.view_distance"]); + assert_eq!( + *sent.borrow(), + [ + r#"management 0 {"method":"serversettings/motd/set","value":"Back at noon"}"#, + r#"management 0 {"method":"serversettings/max_players/set","value":5}"#, + ] + ); + // The same values again change nothing, so nothing is sent. + sent.borrow_mut().clear(); + let outcome = apply( + &dir, + &["server.motd=Back at noon", "server.max_players=5"], + Some(&game), + ) + .unwrap(); + assert!(outcome.applied.is_empty() && outcome.restart.is_empty()); + assert!(sent.borrow().is_empty()); + // A game that refuses leaves the setting for the next start. + let refuses = |_: &str| false; + let outcome = apply(&dir, &["server.motd=Closed"], Some(&refuses)).unwrap(); + assert_eq!(outcome.restart, ["server.motd"]); + let _ = std::fs::remove_dir_all(&dir); + } + #[test] fn a_stopped_server_saves_and_keeps_comments() { let dir = diff --git a/docs/hosting.md b/docs/hosting.md index eb8b829bf8..03a5780a87 100644 --- a/docs/hosting.md +++ b/docs/hosting.md @@ -322,8 +322,8 @@ two seconds behind says `Can't keep up!` as vanilla's does, at most every 15 sec `config set` changes `server.toml` without opening it: `horizon-server config set world.difficulty=hard server.max_players=10`. Each key is a section and a name from the file (`properties.spawn-protection=0` for any other vanilla key). The values are checked as the server checks them, and nothing is written if one is wrong. -A running server takes the difficulty, the default game mode, the whitelist and the backup settings at once; -the rest applies at its next start, and `config set` says which. `--json` prints that as `saved`, `applied` +A running server takes the difficulty, the default game mode, the whitelist, the message of the day, the +player limit and the backup settings at once; the rest applies at its next start, and `config set` says which. `--json` prints that as `saved`, `applied` and `restart`. The server restarts the game by itself if it crashes: after 5 s, then waiting longer each time, up to 5 diff --git a/docs/server.md b/docs/server.md index 7b90a75cf1..8a4d4377e8 100644 --- a/docs/server.md +++ b/docs/server.md @@ -310,9 +310,11 @@ refuse. There is no `backups.before_update` setting: an update always backs up t - **Changes without opening the file.** `horizon-server config set KEY=VALUE...` (the launcher's Servers page uses it) writes through `toml_edit`, checks the result as `server.toml` is checked, and writes nothing if a value is wrong. On a running server it sends what vanilla changes live through its console: - `difficulty`, `defaultgamemode` and `whitelist on|off`; the backup settings apply at once because the + `difficulty`, `defaultgamemode` and `whitelist on|off`; `server.motd` and `server.max_players` go to the + game as the management protocol's `serversettings/motd/set` and `serversettings/max_players/set` do, so + the server list and the next logins use them at once; the backup settings apply at once because the supervisor reads them each time. Everything else waits for the next start, and the command says which. A - real hot reload (view distance, MOTD) needs engine support and comes later. + hot reload of the view distance needs engine support and comes later. - `server.properties`, `ops.json`, `whitelist.json`, `banned-*.json` and `world/` keep vanilla's names and formats. A vanilla server folder works as is, and so does going back to vanilla. From ce75f3f3fd527018bd64ae66dccdf4feba74e927 Mon Sep 17 00:00:00 2001 From: dontstopgorkingit <268053046+dontstopgorkingit@users.noreply.github.com> Date: Tue, 3 Nov 2026 16:08:44 +0100 Subject: [PATCH 11/70] Add Italian (it_it) game translation Bundles Horizon's own Italian strings so it_it players see translated menus and options instead of the English fallback. Co-Authored-By: DeepSeek V4.1 Flash Free --- crates/horizon-client-core/src/lang.rs | 3 + .../assets/horizon/lang/it_it.json | 508 ++++++++++++++++++ 2 files changed, 511 insertions(+) create mode 100644 crates/horizon-client/assets/horizon/lang/it_it.json diff --git a/crates/horizon-client-core/src/lang.rs b/crates/horizon-client-core/src/lang.rs index 9ad3c155b6..1e6ac73cd5 100644 --- a/crates/horizon-client-core/src/lang.rs +++ b/crates/horizon-client-core/src/lang.rs @@ -100,6 +100,9 @@ impl ResourceSource for Bundled { "assets/horizon/lang/ur_pk.json" => { include_str!("../../horizon-client/assets/horizon/lang/ur_pk.json") } + "assets/horizon/lang/it_it.json" => { + include_str!("../../horizon-client/assets/horizon/lang/it_it.json") + } "assets/horizon/lang/de_de.json" | "assets/horizon/lang/de_at.json" => { include_str!("../../horizon-client/assets/horizon/lang/de_de.json") } diff --git a/crates/horizon-client/assets/horizon/lang/it_it.json b/crates/horizon-client/assets/horizon/lang/it_it.json new file mode 100644 index 0000000000..95bd11a418 --- /dev/null +++ b/crates/horizon-client/assets/horizon/lang/it_it.json @@ -0,0 +1,508 @@ +{ + "horizon.options.controller": "Controllore", + "horizon.options.vibration": "Vibrazione", + "horizon.options.adaptive_triggers": "Trigger adattivi", + "horizon.options.lightbar": "Barra luminosa", + "horizon.options.look_sensitivity": "Look Sensitivity", + "horizon.options.invert_x": "Inverti sguardo X", + "horizon.options.invert_y": "Inverti sguardo Y", + "horizon.options.sneak_button": "Pulsante furtivo", + "horizon.options.move_deadzone": "Sposta la zona morta", + "horizon.options.look_deadzone": "Guarda Zona morta", + "horizon.options.button_glyphs": "Glifi dei pulsanti", + "horizon.options.menu_navigation": "Navigazione nel menu", + "horizon.options.on_screen_keyboard": "Tastiera su schermo", + "horizon.options.chat_delay": "Ritardo nella chat", + "horizon.options.lightbar.health": "Salute", + "horizon.options.lightbar.dimension": "Dimensione", + "horizon.options.glyphs.auto": "Automatico", + "horizon.options.glyphs.xbox": "Xbox", + "horizon.options.glyphs.playstation": "PlayStation", + "horizon.options.glyphs.nintendo": "Nintendo", + "horizon.options.menu_focus": "Concentrarsi", + "horizon.options.menu_pointer": "Puntatore", + "horizon.options.keyboard.auto": "Automatico", + "horizon.options.keyboard.horizon": "Orizzonte", + "horizon.options.keyboard.steam": "Vapore", + "horizon.options.unavailable": "Questa funzionalità non è ancora disponibile in Horizon.", + "horizon.options.search": "Cerca impostazioni...", + "horizon.pages.mods": "Mod", + "horizon.pages.shader_packs": "Pacchetti shader", + "horizon.pages.shader_options": "Opzioni dello shader", + "horizon.pages.controller": "Impostazioni del controller", + "horizon.pages.controller_binds": "Il controller si lega", + "horizon.pages.extras": "Extra Orizzonte", + "horizon.pages.settings": "Impostazioni dell'orizzonte", + "horizon.pages.agent": "Agente dell'IA", + "horizon.split.leave": "Lascia", + "horizon.pages.split_settings": "Impostazioni schermo diviso", + "horizon.pages.split_profiles": "Chi sta giocando?", + "horizon.pages.split_setup": "Configurazione dello schermo diviso", + "horizon.pages.music": "Musica", + "horizon.pages.music.menu": "Menù", + "horizon.pages.music.overworld": "Sopramondo", + "horizon.pages.music.creative": "Creativo", + "horizon.pages.music.underwater": "Sott'acqua", + "horizon.pages.music.end": "La fine", + "horizon.pages.music.boss": "Capo", + "horizon.pages.music.credits": "Crediti", + "horizon.pages.music.overworld_biomes": "Biomi del mondo esterno", + "horizon.pages.music.nether_biomes": "Biomi inferiori", + "horizon.pages.music.end_biomes": "Fine dei biomi", + "horizon.pages.music.other": "Altra musica", + "horizon.pages.music.empty": "Nessuna traccia musicale: i suoni del gioco non vengono caricati.", + "horizon.pages.music.tooltip": "Le tracce integrate, in base alla situazione: riproducine una adesso o disattivane qualcuna in modo che il gioco smetta di selezionarla.", + "horizon.pages.settings.tooltip": "Impostazioni proprie di Horizon: grafica, controller, extra e mod.", + "horizon.pages.graphics.tooltip": "Grafica, semplicemente: ogni impostazione dice quanto costa.", + "horizon.pages.graphics_advanced.tooltip": "Ogni impostazione grafica, inclusa quella di Horizon, con il relativo costo.", + "horizon.pages.controller.tooltip": "Controller: pulsanti, levette, vibrazione e navigazione nei menu.", + "horizon.pages.extras.tooltip": "Aggiunte opzionali, tutte disattivate per impostazione predefinita: il gioco rimane vanilla finché non ne accendi uno.", + "horizon.pages.agent.tooltip": "Lascia che il tuo agente AI giochi: client Horizon-ctl e MCP su questo computer.", + "horizon.pages.split_profiles.tooltip": "Chi gioca: un profilo conservato in questa cartella del gioco.", + "horizon.pages.split_setup.tooltip": "Le finestre, i monitor e chi gioca dove.", + "horizon.pages.shader_packs.tooltip": "Pacchetti shader dalla cartella shaderpacks: quelli di Horizon e quelli nel formato shaders/. Si corre uno alla volta.", + "horizon.pages.mods.tooltip": "Mod realizzati per Horizon, dalla cartella Horizon-Mods. Ciascuno viene eseguito in una sandbox e rimane spento finché non lo accendi.", + "horizon.pages.open.graphics": "Grafica...", + "horizon.pages.open.graphics_advanced": "Grafica avanzata...", + "horizon.pages.open.shader_packs": "Pacchetti Shader...", + "horizon.pages.open.controller": "Impostazioni del controller...", + "horizon.pages.open.split_setup": "Schermo diviso...", + "horizon.pages.open.extras": "Extra...", + "horizon.pages.open.mods": "Mod...", + "horizon.pages.open.agent": "Agente dell'IA...", + "horizon.pages.open.horizon_graphics": "Grafica dell'orizzonte...", + "horizon.pages.open.controller_binds": "Il controller si lega...", + "horizon.pages.open.horizon_settings": "Impostazioni dell'orizzonte...", + "horizon.pages.open.music": "Musica...", + "horizon.mods.empty": "Nessuna mod: inserisci i file .hmod nella cartella Horizon-Mods", + "horizon.mods.stopped": " (Fermato)", + "horizon.mods.not_built": " (Non costruito)", + "horizon.mods.dev": " (Sviluppo)", + "horizon.mods.settings": "Impostazioni", + "horizon.mods.in_world": " (lasciare che il mondo cambi)", + "horizon.mods.open_folder": "Apri la cartella Mod", + "horizon.shader_packs.empty": "Nessun pacchetto shader: inseriscili nella cartella shaderpacks", + "horizon.shader_packs.kind_horizon": " (Orizzonte)", + "horizon.shader_options.open": "Opzioni shader...", + "horizon.shader_options.profile": "Profilo", + "horizon.shader_options.loading": "Leggendo le opzioni del pacchetto shader...", + "horizon.agent.copy_details": "Copia i dettagli della connessione", + "horizon.multiplayer.join": "Partecipa", + "horizon.multiplayer.cancel_reconnecting": "Annulla riconnessione", + "horizon.multiplayer.join_friend": "Unisciti a un amico", + "horizon.multiplayer.invite_code": "Codice invito", + "horizon.multiplayer.relay": "Relè (opzionale)", + "Preset": "Preimpostato", + "LOD Distance": "Distanza LOD", + "Far Detail": "Dettaglio lontano", + "Cave Culling": "Abbattimento delle caverne", + "Entity Culling": "Eccitazione di entità", + "Chunk Updates": "Aggiornamenti a blocchi", + "Upload Budget": "Carica budget", + "Sky": "Cielo", + "Fog": "Nebbia", + "Weather": "Meteo", + "Animated Textures": "Texture animate", + "Present Mode": "Modalità presente", + "Frame Pacing": "Ritmo dei fotogrammi", + "Worker Threads": "Discussioni sui lavoratori", + "Resolution Scale": "Scala di risoluzione", + "Anti-aliasing": "Anti-alias", + "Upscaling": "Upscaling", + "Paper White": "Carta Bianca", + "Peak Brightness": "Luminosità massima", + "Black Level": "Livello nero", + "UI Brightness": "Luminosità dell'interfaccia utente", + "Battery Mode": "Modalità batteria", + "Graphics API": "API grafica", + "Translucent Batching": "Dosaggio traslucido", + "Performance Overlay": "Sovrapposizione delle prestazioni", + "Full Detail Distance": "Distanza dettagliata completa", + "On": "Su", + "Off": "Spento", + "Unlimited": "Illimitato", + "Auto": "Automatico", + "Custom": "Personalizzato", + "Performance": "Prestazioni", + "Balanced": "Equilibrato", + "Quality": "Qualità", + "Ultra": "Ultra", + "Ultra Performance": "Prestazioni ultra", + "Native": "Nativo", + "Full": "Pieno", + "Reduced": "Ridotto", + "Efficient": "Efficiente", + "Precise": "Preciso", + "Auto (VSync)": "Automatico (sincronizzazione verticale)", + "FIFO": "FIFO", + "Mailbox": "Cassetta postale", + "Immediate": "Immediato", + "Vulkan": "Vulcano", + "DirectX 12": "DirectX12", + "OpenGL": "OpenGL", + "FPS and Graph": "FPS e grafico", + "FPS": "FPS", + "TAA": "TAAA", + "FXAA": "FXAA", + "No cost": "Nessun costo", + "Low cost": "Basso costo", + "Medium cost": "Costo medio", + "High cost": "Costo elevato", + "Saves time": "Risparmia tempo", + "HDR": "HDR", + "Graphics": "Grafica", + "Done": "Fatto", + "This feature is not yet available in Horizon.": "Questa funzionalità non è ancora disponibile in Horizon.", + "Your display or system doesn't offer HDR output.": "Il tuo display o sistema non offre l'uscita HDR.", + "Turn HDR on to use it.": "Attiva l'HDR per usarlo.", + "Your GPU or graphics API doesn't support it.": "La tua GPU o API grafica non lo supporta.", + "%s chunks": "%s pezzi", + "%s per frame": "%s per fotogramma", + "%s MiB/frame": "%s MiB/fotogramma", + "%s KiB/frame": "%s KiB/telaio", + "Auto (%s)": "Automatico (%s)", + "Full-detail terrain range. LOD Distance can extend local worlds farther.": "Gamma di terreno dettagliata. LOD La distanza può estendere ulteriormente i mondi locali.", + "Coarse distant terrain in local worlds. Integrated GPUs stop at 128 chunks.": "Terreni distanti e grossolani nei mondi locali. Le GPU integrate si fermano a 128 blocchi.", + "Reduced draws far terrain coarser: faster on this integrated GPU.": "Ridotti disegna terreni lontani più ruvidi: più veloce su questa GPU integrata.", + "Reduced draws far terrain coarser, for GPUs it slows down.": "Il ridotto disegna terreni lontani più grossolani, per le GPU rallenta.", + "Field of view. Wider shows more terrain at once.": "Campo visivo. Più ampio mostra più terreno contemporaneamente.", + "Caps frames per second; a cap saves power and heat.": "Limita i fotogrammi al secondo; un cappuccio consente di risparmiare energia e calore.", + "Waits for the display's refresh: no tearing, a little latency.": "Attende il refresh del display: niente strappi, poca latenza.", + "Size of menus and the HUD.": "Dimensioni dei menu e dell'HUD.", + "Sets the options below together. Changing one makes it Custom.": "Imposta insieme le opzioni seguenti. Cambiarne uno lo rende personalizzato.", + "Lava, fire and sunlight shine brighter than white. Needs an HDR display.": "La lava, il fuoco e la luce del sole brillano più del bianco. Necessita di un display HDR.", + "Your display's darkest black. 0 for OLED; LCDs glow a little.": "Il tuo display è nero più scuro. 0 per OLED; Gli LCD si illuminano leggermente.", + "How bright highlights get. Auto: the peak your system reports.": "Come diventano brillanti le luci. Auto: il picco segnalato dal sistema.", + "How bright white paper and menus look. Auto: your desktop's white.": "Come appaiono la carta bianca e i menu. Auto: il tuo desktop è bianco.", + "How bright the HUD and menus are, against paper white.": "Quanto sono luminosi l'HUD e i menu, rispetto al bianco della carta.", + "How far mobs, crops and machines keep working. CPU time.": "Fino a che punto mob, raccolti e macchine continuano a funzionare. Tempo della CPU.", + "How far away mobs and items are drawn, as a share of normal.": "Quanto lontano vengono disegnati mob e oggetti, come percentuale del normale.", + "Skips terrain hidden behind closed sections. Off costs a lot.": "Salta il terreno nascosto dietro le sezioni chiuse. Spendere costa molto.", + "Hides entities behind opaque blocks.": "Nasconde le entità dietro blocchi opachi.", + "No entity occlusion culling.": "Nessuna selezione per l'occlusione delle entità.", + "CPU occlusion test runs this frame.": "Il test di occlusione della CPU esegue questo frame.", + "Occlusion checks run on a worker thread.": "I controlli di occlusione vengono eseguiti su un thread di lavoro.", + "Meshed sections uploaded per frame. Lower is smoother while loading.": "Sezioni mesh caricate per fotogramma. La parte inferiore è più fluida durante il caricamento.", + "Soft shadows in corners. Costs chunk building time only.": "Ombre morbide negli angoli. Costa solo tempo per la costruzione del blocco.", + "Smaller copies of block textures for distant terrain: less shimmer.": "Copie più piccole di texture a blocchi per terreni distanti: meno luccichio.", + "Blends grass and water colours across biomes when building chunks.": "Unisce i colori dell'erba e dell'acqua nei biomi durante la costruzione dei blocchi.", + "Cloud layer: off, flat (fast) or 3D (fancy).": "Livello nuvola: disattivato, piatto (veloce) o 3D (fantasioso).", + "How far clouds reach, in chunks.": "Quanto lontano arrivano le nuvole, in blocchi.", + "Draws the sky, sun, moon and stars.": "Disegna il cielo, il sole, la luna e le stelle.", + "Distance fog. Off shows the edge of the loaded world.": "Nebbia a distanza. Off mostra il limite del mondo caricato.", + "Draws rain and snow.": "Attira pioggia e neve.", + "How far rain and snow fall around you.": "Quanta pioggia e neve cadono intorno a te.", + "How many particles effects spawn.": "Quanti effetti particellari vengono generati.", + "Round shadows under mobs and items.": "Ombre rotonde sotto mob e oggetti.", + "Leaves with see-through gaps. Off draws them solid.": "Foglie con spazi trasparenti. Off li attira solidi.", + "Sorts water and glass more exactly behind each other.": "Ordina l'acqua e il bicchiere in modo più preciso uno dietro l'altro.", + "Which chunk rebuilds wait for the frame: none, nearby or yours.": "Quale pezzo ricostruito attende il frame: nessuno, nelle vicinanze o il tuo.", + "Animates water, lava, fire and other moving textures.": "Anima acqua, lava, fuoco e altre texture in movimento.", + "World pixels per screen pixel. Below 100% is faster on the GPU.": "Pixel mondiali per pixel dello schermo. Sotto il 100% la GPU è più veloce.", + "Smooths jagged edges. FXAA: softer. TAA: smoothest, moving things may trail.": "Leviga i bordi frastagliati. FXAA: più morbido. TAA: le cose più fluide e in movimento possono trascinarsi.", + "Renders the world smaller and rebuilds it with TAA. Faster, softer.": "Rende il mondo più piccolo e lo ricostruisce con TAA. Più veloce, più morbido.", + "HDR output on an HDR display: lava, fire and sunlight shine brighter.": "Uscita HDR su un display HDR: lava, fuoco e luce solare brillano più luminosi.", + "How frames reach the screen while VSync is off.": "In che modo i frame raggiungono lo schermo mentre VSync è disattivato.", + "Efficient sleeps until the next frame; Precise spins, like vanilla.": "Sonni efficienti fino al fotogramma successivo; Rotazioni precise, come la vaniglia.", + "Fills the screen (borderless).": "Riempie lo schermo (senza bordi).", + "Brightens dark places.": "Illumina i luoghi bui.", + "Lowers the frame rate when minimised, or idle too.": "Riduce il frame rate quando è ridotto al minimo o anche inattivo.", + "Sways the view while walking.": "Oscilla la vista mentre si cammina.", + "Fades newly loaded chunks in.": "Dissolve i blocchi appena caricati.", + "Darkens the screen's edges.": "Scurisce i bordi dello schermo.", + "Shows when the world saves.": "Mostra quando il mondo salva.", + "Shows attack cooldown.": "Mostra il tempo di recupero dell'attacco.", + "60 FPS cap (30 in menus or unfocused), half the workers: less power.": "Limite di 60 FPS (30 nei menu o senza messa a fuoco), metà dei lavoratori: meno energia.", + "Threads that generate, light and mesh chunks. Next start.": "Fili che generano, accendono e intrecciano spezzoni. Prossimo inizio.", + "Vulkan, then DirectX 12 (Windows) or OpenGL (Linux) where it fails. Next start.": "Vulkan, quindi DirectX 12 (Windows) o OpenGL (Linux) dove fallisce. Prossimo inizio.", + "Water and glass in one buffer: fewer draw calls, a bit more VRAM. Next start.": "Acqua e vetro in un unico buffer: meno chiamate, un po' più di VRAM. Prossimo inizio.", + "Mesh data sent to the GPU per frame. Lower is smoother while loading.": "Dati mesh inviati alla GPU per frame. La parte inferiore è più fluida durante il caricamento.", + "Frame rate and frame times over the game, with a graph.": "Frequenza fotogrammi e durata dei fotogrammi durante il gioco, con un grafico.", + "horizon.multiplayer.finding_friend": "Trovare il mondo del tuo amico...", + "horizon.multiplayer.not_signed_in": "Questo server è in modalità online. Accedi con il tuo account Microsoft nel launcher Horizon per iscriverti.", + "horizon.multiplayer.invalid_address": "Indirizzo del server non valido: %s", + "horizon.multiplayer.connected_friend_direct": "Collegato direttamente al tuo amico...", + "horizon.multiplayer.connected_friend_relay": "Connesso al tuo amico tramite il relè...", + "General": "Generale", + "Advanced": "Avanzato", + "Undo": "Annulla", + "Search options": "Opzioni di ricerca", + "Shortcut": "Scorciatoia", + "Distance": "Distanza", + "Display": "Visualizzazione", + "Interface": "Interfaccia", + "Sky and weather": "Cielo e tempo", + "Lighting and entities": "Illuminazione ed entità", + "Textures": "Trame", + "Image": "Immagine", + "Chunk loading": "Caricamento di blocchi", + "Culling": "Abbattimento", + "Power": "Potenza", + "Frames": "Cornici", + "Overlay": "Sovrapposizione", + "Output": "Uscita", + "Brightness": "Luminosità", + "How far you see, the window and the HUD.": "Quanto lontano vedi, la finestra e l'HUD.", + "The sky and weather, lighting, textures and the image.": "Il cielo e il tempo, l'illuminazione, le trame e l'immagine.", + "Chunk loading, culling and power use.": "Caricamento di blocchi, selezione e consumo di energia.", + "How frames reach the screen, and the performance overlay.": "Come i fotogrammi raggiungono lo schermo e la sovrapposizione delle prestazioni.", + "Brighter-than-white output on an HDR display.": "Uscita più luminosa del bianco su un display HDR.", + "Results for \"%s\"": "Risultati per \"%s\"", + "No settings match.": "Nessuna impostazione corrisponde.", + "horizon.title.not_affiliated": "Non affiliato con Mojang o Microsoft", + "horizon.extras.header.lighting": "Illuminazione", + "horizon.extras.header.third_person": "Terza persona", + "horizon.extras.header.particles": "Particelle", + "horizon.extras.header.inventory": "Inventario", + "horizon.extras.header.chat": "Chatta", + "horizon.extras.header.multiplayer": "Multigiocatore", + "horizon.extras.header.sound": "Suono", + "horizon.extras.header.menus": "Menù", + "horizon.extras.fullbright": "Piena luminosità", + "horizon.extras.dynamic_lights": "Luci dinamiche", + "horizon.extras.own_name_tag": "Proprio cartellino con il nome", + "horizon.extras.hide_block_particles": "Nascondi le particelle di rottura del blocco", + "horizon.extras.auto_reconnect": "Riconnessione automatica", + "horizon.extras.ui_sound_reserve": "Mantieni i canali per i suoni dell'interfaccia utente", + "horizon.extras.music_page": "Pagina Musica", + "horizon.extras.mouse_tweaks": "Controlli per le modifiche del mouse", + "horizon.extras.mouse_tweaks_wheel": "La rotella di scorrimento sposta gli elementi", + "horizon.extras.sort": "Ordina i pulsanti", + "horizon.extras.sort_key": "Chiave di ordinamento", + "horizon.extras.no_ai": "Nessuna intelligenza artificiale", + "horizon.extras.agent_control": "Controllo degli agenti", + "horizon.extras.discord_presence": "Presenza ricca di discordia", + "horizon.extras.splitscreen": "Schermo diviso", + "horizon.extras.chat_animation": "Chiacchierata fluida", + "horizon.extras.chat_indicator": "Indicatore di messaggio", + "horizon.extras.wheel_cycles_settings": "La rotella di scorrimento modifica le impostazioni", + "horizon.extras.pack_browser": "Browser del pacchetto di risorse", + "horizon.extras.fullbright.tooltip": "Mostra blocchi ed entità in piena luce, anche nelle aree buie.", + "horizon.extras.dynamic_lights.tooltip": "Torce e altre fonti di luce tenute, lasciate cadere o in fiamme illuminano i blocchi attorno a loro.", + "horizon.extras.own_name_tag.tooltip": "Mostra il tuo nome sopra la tua testa in terza persona, così come lo vedono gli altri giocatori. Nascosto quando il server nasconde i nomi della tua squadra o sei invisibile.", + "horizon.extras.hide_block_particles.tooltip": "Nasconde le particelle di detriti che escono da un blocco rotto e si sbriciolano da quello che hai estratto. Altre particelle rimangono.", + "horizon.extras.auto_reconnect.tooltip": "Rientra in un server dopo una perdita di connessione o un riavvio, mai dopo un kick o un ban.", + "horizon.extras.ui_sound_reserve.tooltip": "I suoni nel mondo lasciano liberi 16 dei 247 canali audio, quindi un'ondata di essi (una grande esplosione) non può silenziare i clic dei menu.", + "horizon.extras.music_page.tooltip": "Musica e suoni hanno una pagina Musica...: riproduci subito qualsiasi traccia integrata o disattivane una in modo che il gioco smetta di selezionarla. Non cambia nulla finché non disattivi una traccia.", + "horizon.extras.mouse_tweaks.tooltip": "Il trascinamento con il tasto destro ne posiziona uno per slot, il trascinamento con il tasto sinistro raccoglie l'oggetto trattenuto, Maiusc + il trascinamento con il tasto sinistro sposta ogni slot.", + "horizon.extras.mouse_tweaks_wheel.tooltip": "Giù manda un oggetto dello slot dall'altra parte, su ne riporta uno indietro.", + "horizon.extras.sort.tooltip": "Ordina l'inventario, i forzieri, i barili, i forzieri finali e le scatole degli shulker in un ordine di schede creativo, unendo le pile.", + "horizon.extras.sort_key.tooltip": "Ordina la parte sotto il cursore. Fare clic, quindi premere un tasto; La fuga lo scioglie.", + "horizon.extras.no_ai.tooltip": "Nasconde e disattiva ogni funzionalità AI: controllo agente, Horizon-ctl e server MCP. Anche l'interruttore del launcher.", + "horizon.extras.agent_control.tooltip": "Il tuo agente AI può giocare a questo gioco tramite Horizon-ctl o un client MCP, solo su questo computer.", + "horizon.extras.discord_presence.tooltip": "Mostra Playing Horizon sul tuo profilo Discord mentre Discord è in esecuzione: menu, giocatore singolo o multiplayer, la dimensione e il tempo giocato. Mai il nome di un mondo o l'indirizzo di un server.", + "Calibrate...": "Calibra...", + "Calibrate Anyway...": "Calibra comunque...", + "Use Automatic Setup": "Utilizza l'impostazione automatica", + "Shortcut: %s": "Scorciatoia: %s", + "Next": "Avanti", + "HDR Calibration %s/%s: %s": "Calibrazione HDR %s/%s: %s", + "Sets the three below full screen, one test picture at a time.": "Imposta le tre immagini sottostanti a schermo intero, un'immagine di prova alla volta.", + "A key that opens this screen from the game. Not bound at first.": "Una chiave che apre questa schermata del gioco. All'inizio non legato.", + "Your display didn't say how bright it gets: calibrate to set it up.": "Il display non ha indicato la luminosità: calibralo per configurarlo.", + "Already set up for your display. Only calibrate if HDR looks wrong.": "Già predisposto per il tuo display. Calibrare solo se l'HDR sembra sbagliato.", + "Puts Peak Brightness and Paper White back to your display's setup.": "Riporta la luminosità di picco e il bianco della carta alla configurazione del display.", + "Set up for your display. Leave on Auto unless it looks wrong.": "Configura per il tuo display. Lasciare su Auto a meno che non sembri sbagliato.", + "Lower it until the logo just disappears into the black.": "Abbassalo finché il logo non scompare nel nero.", + "Raise it until the logo just disappears into the bright square.": "Sollevalo finché il logo non scompare nel quadrato luminoso.", + "Make the card a white that's comfortable to look at for a long time, in the light you play in.": "Rendi la carta bianca, comoda da guardare a lungo, nella luce in cui giochi.", + "horizon.splitscreen.profiles.forget": "Dimentica", + "horizon.splitscreen.profiles.create": "Crea", + "horizon.splitscreen.profiles.you": " - tu", + "horizon.splitscreen.profiles.forget_named": "Dimentica %s", + "horizon.splitscreen.profiles.previous": "Precedente", + "horizon.splitscreen.profiles.next": "Avanti", + "horizon.splitscreen.profiles.new_button": "Nuovo profilo...", + "horizon.splitscreen.profiles.forget_title": "Dimentica il profilo?", + "horizon.splitscreen.profiles.forget_leaves": "Esce dall'elenco di questa istanza.", + "horizon.splitscreen.profiles.forget_kept": "I progressi e le impostazioni del mondo vengono mantenuti.", + "horizon.splitscreen.profiles.new_title": "Nuovo profilo", + "horizon.splitscreen.profiles.name_hint": "Nome (da 3 a 16 lettere, cifre, _)", + "horizon.splitscreen.profiles.switch_title": "Cambia profilo", + "horizon.splitscreen.profiles.offline_note": "I profili offline appartengono a questa istanza", + "horizon.splitscreen.profiles.move": "Muoviti dove giochi", + "horizon.splitscreen.profiles.move_place": "Spostati dove giochi: %s", + "horizon.friends.title": "Gioca con gli amici", + "horizon.friends.hint": "Gli amici incollano il codice dopo il pulsante Amici della schermata del titolo, in Connessione diretta o nella pagina di riproduzione del launcher.", + "horizon.friends.copied": "Copiato", + "horizon.friends.copy_code": "Copia codice", + "horizon.friends.stop_sharing": "Interrompi la condivisione", + "horizon.friends.none_yet": "Nessun amico qui ancora.", + "horizon.friends.here_now": "Ecco adesso: %s", + "horizon.friends.share_intro": "Condividi questo mondo dietro un codice di invito: si apre alla LAN e gli amici su Internet si uniscono con il codice. Nessun nostro server è coinvolto.", + "horizon.friends.start_sharing": "Inizia a condividere", + "horizon.friends.troubleshooting": "Risoluzione dei problemi...", + "horizon.friends.stopped": "Interrotta la condivisione del codice di invito.", + "horizon.friends.short_code_changed": "Qualcuno continuava a provare un codice funzione sbagliato, quindi è cambiato.", + "horizon.friends.wrong_code": "Qualcuno ha provato un codice sbagliato.", + "horizon.friends.code_ready": "Il tuo codice di invito è pronto: Menu di gioco, Gioca con gli amici. Copialo e invialo ai tuoi amici.", + "horizon.friends.share_failed": "Impossibile condividere il mondo: %s", + "horizon.friends.finding_route": "Scoprire come gli amici possono contattarti...", + "horizon.osk.shift": "Cambio", + "horizon.osk.space": "Spazio", + "horizon.osk.delete": "Elimina", + "horizon.osk.type": "Digitare", + "horizon.osk.symbols": "Simboli", + "horizon.osk.close": "Chiudi", + "horizon.extras.chat_animation.tooltip": "Una nuova linea di chat scorre da sinistra mentre si dissolve, invece di apparire intera.", + "horizon.extras.chat_indicator.tooltip": "La barra colorata a sinistra di una chat line.", + "horizon.extras.wheel_cycles_settings.tooltip": "La rotella di scorrimento sopra un pulsante nelle impostazioni ne modifica il valore, come in Vanilla. Spento, la rotella scorre solo l'elenco.", + "horizon.extras.pack_browser.tooltip": "Seleziona pacchetti di risorse ottiene un pulsante Aggiungi che cerca Modrinth e installa un pacchetto nella cartella dei pacchetti. Spento, il gioco non contatta mai Modrinth.", + "horizon.extras.splitscreen.tooltip": "In un mondo, un altro controller può unirsi come nuovo giocatore: premi A quando richiesto, quindi scegli un profilo e dove giocare.", + "horizon.splitscreen.setup.monitor": "Monitorare %s", + "horizon.splitscreen.setup.monitor_unknown": "un monitor", + "horizon.splitscreen.setup.window": "Finestra %s", + "horizon.splitscreen.setup.new_window": "Nuova finestra", + "horizon.splitscreen.setup.fill_monitor": "Riempi %s", + "horizon.splitscreen.setup.done": "Fatto", + "horizon.splitscreen.setup.switch": "%s: %s", + "horizon.splitscreen.setup.on": "Su", + "horizon.splitscreen.setup.off": "Spento", + "horizon.splitscreen.setup.player": "Giocatore %s", + "horizon.splitscreen.setup.revert": "Ripristina", + "horizon.splitscreen.setup.apply": "Applicare", + "horizon.splitscreen.setup.warning.empty_main": "Nessuno gioca nella Finestra 1: si nasconde", + "horizon.splitscreen.setup.warning.empty_close": "Nessuno gioca nella finestra %s: si chiude su Applica", + "horizon.splitscreen.setup.warning.empty_new": "Nessuno gioca nella Finestra %s: non si apre", + "horizon.splitscreen.setup.warning.on_main": "La finestra %s riempie il monitor della Finestra 1: i suoi giocatori giocano nella Finestra 1", + "horizon.splitscreen.setup.warning.unplugged": "Il monitor della Finestra %s non è collegato: i suoi giocatori giocano nella Finestra 1", + "horizon.splitscreen.setup.status.off": "Lo schermo diviso è disattivato.", + "horizon.splitscreen.setup.status.enable_hint": "Accendilo, quindi premi un pulsante su un altro controller in un mondo.", + "horizon.splitscreen.setup.status.join_hint": "Premi A per iscriverti e scegliere un profilo.", + "horizon.splitscreen.setup.status.idle": "Schermo diviso inattivo", + "horizon.splitscreen.setup.status.alone": "Nessun altro giocatore locale.", + "horizon.splitscreen.setup.status.solo_controls": "I controlli Solo e il feedback del controller rimangono invariati.", + "horizon.splitscreen.setup.window_empty": "Finestra %s: vuota", + "horizon.splitscreen.setup.note.select": "Fai clic su un giocatore o trascinalo su una finestra o su un monitor.", + "horizon.splitscreen.setup.note.apply": "Applica per giocare in questo modo, Ripristina per annullare.", + "horizon.splitscreen.setup.note.place": "Dove dovrebbe giocare %s?", + "horizon.splitscreen.setup.this_player": "questo giocatore", + "horizon.splitscreen.setup.switch_disabled": "Lo schermo diviso si spegne una volta che gli altri se ne sono andati (il loro menu di pausa).", + "horizon.splitscreen.setup.window_place": "Finestra %s (%s di %s)", + "horizon.splitscreen.setup.names": "Nomi", + "horizon.splitscreen.setup.identify": "Identificare", + "horizon.splitscreen.setup.layout.two": "2 condivisione: %s", + "horizon.splitscreen.setup.layout.three": "3 condivisione: %s", + "horizon.splitscreen.setup.layout.two.0": "Automatico", + "horizon.splitscreen.setup.layout.two.1": "Fianco a fianco", + "horizon.splitscreen.setup.layout.two.2": "Sopra e sotto", + "horizon.splitscreen.setup.layout.three.0": "Uno largo in alto", + "horizon.splitscreen.setup.layout.three.1": "Uno alto a sinistra", + "horizon.splitscreen.setup.layout.three.2": "Fianco a fianco", + "horizon.splitscreen.setup.help.player": "Fai clic o trascina %s per spostarli.", + "horizon.splitscreen.setup.help.layout_auto": "%s (affiancati quando la finestra è ampia). Premere per modificare.", + "horizon.splitscreen.setup.help.layout": "%s. Premere per modificare.", + "horizon.splitscreen.setup.help.switch": "Schermo diviso per questo computer, attivato o disattivato.", + "horizon.splitscreen.setup.help.identify": "La vista di ogni giocatore mostra in quale finestra si trova.", + "horizon.splitscreen.setup.help.names": "Il nome di ogni giocatore nell'angolo della vista.", + "horizon.splitscreen.setup.help.revert": "Annulla le modifiche non ancora applicate.", + "horizon.splitscreen.setup.help.apply": "Gioca come mostra la mappa.", + "horizon.splitscreen.setup.help.unchanged": "Non è cambiato ancora nulla.", + "horizon.splitscreen.setup.give_up_pad": "Rinunciare Pad", + "horizon.splitscreen.prompt.controller_connected": "Controller collegato", + "horizon.splitscreen.prompt.controller_disconnected": "Controller disconnesso", + "horizon.splitscreen.prompt.controller_disconnected.hint": "Ricollegalo o premi un pulsante su un altro", + "horizon.splitscreen.prompt.join.one": "%s vuole unirsi", + "horizon.splitscreen.prompt.join.many": "%s controllori vogliono unirsi", + "horizon.splitscreen.prompt.join.yes": "Partecipa", + "horizon.splitscreen.prompt.join.as_p1": "Gioca come P1", + "horizon.splitscreen.prompt.join.no": "No", + "horizon.splitscreen.prompt.lost": "%s: controller disconnesso", + "horizon.splitscreen.prompt.lost.use_another": "Usane un altro", + "horizon.splitscreen.prompt.lost.leave": "Lascia", + "horizon.splitscreen.setup.help.give_up_pad": "Il tuo controller smette di guidarti e gli viene offerto di unirsi (A).", + "horizon.splitscreen.setup.note.held_at": "Da %s a %s: A la lascia qui, B la rimette a posto.", + "horizon.splitscreen.setup.note.held": "%s raccolto: sinistra/destra sceglie dove, A lascia cadere, B lo rimette a posto.", + "Hides models behind opaque blocks. Async checks off-thread; entities tick.": "Nasconde i modelli dietro blocchi opachi. Async controlla fuori thread; le entità spuntano.", + "Block Entities": "Blocca entità", + "Shulker Boxes": "Scatole Shulker", + "Reuses settled boxes; lid movement stays animated.": "Riutilizza le scatole depositate; il movimento del coperchio rimane animato.", + "Signs": "Segni", + "Reuses sign text until text, light, or font changes.": "Riutilizza il testo del segno finché il testo, la luce o il carattere non cambiano.", + "Decorated Pots": "Vasi decorati", + "Reuses still pots; break wobble and sherd changes redraw.": "Riutilizza i vasi fermi; rompi l'oscillazione e le modifiche del frammento vengono ridisegnate.", + "Bells": "Campane", + "Reuses still bells; ringing stays animated.": "Riutilizza ancora le campane; lo squillo rimane animato.", + "Chests": "Forzieri", + "Reuses closed chests; moving lids stay animated.": "Riutilizza i bauli chiusi; le palpebre mobili rimangono animate.", + "Banners": "Banner", + "Reuses poles; flags and pattern layers still update.": "Riutilizza i pali; le bandiere e i livelli di pattern continuano ad essere aggiornati.", + "Copper Golem Statues": "Statue Golem di rame", + "Reuses statue geometry until its block state changes.": "Riutilizza la geometria della statua finché il suo stato di blocco non cambia.", + "Leaf Culling": "Abbattimento delle foglie", + "Every leaf face. Vanilla's fancy leaves.": "Ogni faccia della foglia. Le foglie fantasia della vaniglia.", + "Distant Plant Dither": "Il tremore delle piante lontane", + "Keeps fine plants in high-res packs from fading far away.": "Impedisce alle piante pregiate in confezioni ad alta risoluzione di sbiadire in lontananza.", + "Screenshot Quality": "Qualità dello schermo", + "F2 screenshots at this many times the game's resolution. Higher takes longer.": "Screenshot F2 con una risoluzione pari a molte volte quella del gioco. Più alto richiede più tempo.", + "Frame Generation": "Generazione di fotogrammi", + "Shows a made-up frame between each two real ones: smoother, a little more lag.": "Mostra un fotogramma inventato tra ciascuno dei due fotogrammi reali: più fluido, con un po' più di ritardo.", + "Shadow Cache": "Cassa dell'Ombra", + "Reuses the pack shadow map when sun, view and world match. Off by default.": "Riutilizza la mappa delle ombre del pacchetto quando sole, vista e mondo corrispondono. Disattivato per impostazione predefinita.", + "Find BlueMap": "Trova BlueMap", + "On servers, finds their BlueMap web map for far terrain. Next join.": "Sui server, trova la mappa web BlueMap per terreni lontani. Prossima partecipazione.", + "BlueMap Radius": "Raggio BlueMap", + "How far around you BlueMap tiles are downloaded. Next join.": "La distanza intorno a te in cui vengono scaricate le tessere BlueMap. Prossima partecipazione.", + "Synchronous": "Sincrono", + "Asynchronous": "Asincrono", + "Solid": "Solido", + "Solid Aggressive": "Solido aggressivo", + "Hollow": "Vuoto", + "Leaves fully inside a canopy draw solid: fewer see-through layers.": "Le foglie completamente all'interno della chioma diventano solide: meno strati trasparenti.", + "Leaves with one open side draw solid too: faster, chunkier edges.": "Anche le foglie con un lato aperto disegnano solidi: bordi più veloci e più grossi.", + "Drops faces between leaves: faster, but gaps look through.": "Gocce facce tra le foglie: più veloci, ma gli spazi traspare.", + "Hotbar: Previous Slot": "Barra di accesso rapido: slot precedente", + "Hotbar: Next Slot": "Barra di accesso rapido: slot successivo", + "horizon.agent.connected.one": "Connesso: 1 connessione agente", + "horizon.agent.connected.many": "Connesso: %s connessioni agente", + "horizon.agent.connected.one_ago": "Connesso: 1 connessione agente, ultimo comando %s s fa", + "horizon.agent.connected.many_ago": "Connesso: %s connessioni agente, ultimo comando %s s fa", + "horizon.agent.waiting": "In attesa di un agente.", + "horizon.agent.off": "Disattivato: gli agenti non possono raggiungere questo gioco.", + "horizon.agent.session_opened": "Aperto per questa sessione dal programma che ha avviato il gioco.", + "horizon.agent.socket": "Socket: %s (copia i dettagli per il percorso completo)", + "horizon.agent.local_only": "Solo locale: agenti su questo computer, mai sulla rete.", + "%s nits": "%s lendini", + "Auto (%s nits)": "Auto (%s nit)", + "%.2f nits": "%.2f lendini", + "Hides models behind opaque blocks. Entities update. Off with custom packs.": "Nasconde i modelli dietro blocchi opachi. Aggiornamento delle entità. Via con i pacchetti personalizzati.", + "horizon.extras.repro_keys": "Scorciatoie di registrazione", + "horizon.extras.repro_keys.tooltip": "F3+R avvia o interrompe una registrazione di riproduzione e F3+E scrive il suo bundle. Disattivato per impostazione predefinita: una registrazione copia il mondo.", + "horizon.agent.record_session": "Avvia la sessione di registrazione", + "horizon.agent.record_stop": "Interrompi la sessione di registrazione", + "horizon.agent.export_repro": "Esporta pacchetto di riproduzione", + "horizon.repro.started": "La registrazione è iniziata; F3+R lo ferma e scrive il bundle.", + "horizon.repro.stopped": "Registrazione interrotta: %s", + "horizon.repro.bundle": "Pacchetto riproduzione: %s", + "horizon.repro.error": "Riproduzione: %s", + "horizon.repro.no_recording": "Non c'è ancora alcuna registrazione da esportare.", + "horizon.repro.replay_started": "Replay iniziato: %s", + "horizon.pack.add": "+", + "horizon.pack.addInfo": "Aggiungi un pacchetto di risorse da Modrinth", + "horizon.pack.addWorking": "Chiedendo a Modrinth...", + "horizon.pack.addNone": "Nessun pacchetto di risorse trovato", + "horizon.pack.addTitle": "Aggiungi un pacchetto di risorse", + "horizon.pack.install": "Installa", + "horizon.pack.installing": "Installazione", + "horizon.pack.installed": "Installato", + "horizon.pack.search": "Cerca", + "horizon.pack.searchHint": "Cerca Modrinth...", + "horizon.pack.filters": "Filtri", + "horizon.pack.filter.realistic": "Realistico", + "horizon.pack.filter.simplistic": "Semplicistico", + "horizon.pack.filter.vanillaLike": "Simile alla vaniglia", + "horizon.pack.filter.x16": "16x", + "horizon.pack.filter.x32": "32x", + "horizon.pack.filter.x64": "64x", + "horizon.pack.addFailed": "Impossibile aggiungere il pacchetto: %s", + "horizon.extras.header.cosmetics": "Cosmetici", + "horizon.extras.cosmetics_mine": "I miei cosmetici", + "horizon.extras.cosmetics_mine.tooltip": "Nascosto: ogni giocatore di Horizon ti vede senza i tuoi cosmetici, incluso te. Lo stesso interruttore dell'armadio del lanciatore.", + "horizon.extras.cosmetics_others": "Cosmetici di altri giocatori", + "horizon.extras.cosmetics_others.tooltip": "Cosa indossano gli altri giocatori di Horizon: tutto, solo lo stile delle etichette con il nome o niente. Nascosto, il gioco non chiede mai cosa indossano.", + "horizon.extras.cosmetics_auras": "Aure e tracce degli altri", + "horizon.extras.cosmetics_auras.tooltip": "Aure e tracce indossate da altri giocatori. Disattivato per impostazione predefinita.", + "horizon.extras.cosmetics.shown": "Mostrato", + "horizon.extras.cosmetics.hidden": "Nascosto", + "horizon.extras.cosmetics.name_tags": "Solo targhette con nome" +} From 3ef168d9af77c5537b82009b7d553d7eea525f59 Mon Sep 17 00:00:00 2001 From: dontstopgorkingit <268053046+dontstopgorkingit@users.noreply.github.com> Date: Tue, 3 Nov 2026 16:21:36 +0100 Subject: [PATCH 12/70] Add Dutch (nl_nl) game translation Bundles Horizon's own Dutch strings so nl_nl players see translated menus and options instead of the English fallback. Co-Authored-By: DeepSeek V4.1 Flash Free --- crates/horizon-client-core/src/lang.rs | 3 + .../assets/horizon/lang/nl_nl.json | 508 ++++++++++++++++++ 2 files changed, 511 insertions(+) create mode 100644 crates/horizon-client/assets/horizon/lang/nl_nl.json diff --git a/crates/horizon-client-core/src/lang.rs b/crates/horizon-client-core/src/lang.rs index 9ad3c155b6..c2b8ff0c34 100644 --- a/crates/horizon-client-core/src/lang.rs +++ b/crates/horizon-client-core/src/lang.rs @@ -100,6 +100,9 @@ impl ResourceSource for Bundled { "assets/horizon/lang/ur_pk.json" => { include_str!("../../horizon-client/assets/horizon/lang/ur_pk.json") } + "assets/horizon/lang/nl_nl.json" => { + include_str!("../../horizon-client/assets/horizon/lang/nl_nl.json") + } "assets/horizon/lang/de_de.json" | "assets/horizon/lang/de_at.json" => { include_str!("../../horizon-client/assets/horizon/lang/de_de.json") } diff --git a/crates/horizon-client/assets/horizon/lang/nl_nl.json b/crates/horizon-client/assets/horizon/lang/nl_nl.json new file mode 100644 index 0000000000..019446595a --- /dev/null +++ b/crates/horizon-client/assets/horizon/lang/nl_nl.json @@ -0,0 +1,508 @@ +{ + "horizon.options.controller": "Controleur", + "horizon.options.vibration": "Trillingen", + "horizon.options.adaptive_triggers": "Adaptieve triggers", + "horizon.options.lightbar": "Lichtbalk", + "horizon.options.look_sensitivity": "Kijk Gevoeligheid", + "horizon.options.invert_x": "Kijk X omkeren", + "horizon.options.invert_y": "Kijk omkeren Y", + "horizon.options.sneak_button": "Sneak-knop", + "horizon.options.move_deadzone": "Verplaats dode zone", + "horizon.options.look_deadzone": "Kijk Deadzone", + "horizon.options.button_glyphs": "Knop-glyphs", + "horizon.options.menu_navigation": "Menunavigatie", + "horizon.options.on_screen_keyboard": "Schermtoetsenbord", + "horizon.options.chat_delay": "Chatvertraging", + "horizon.options.lightbar.health": "Gezondheid", + "horizon.options.lightbar.dimension": "Afmeting", + "horizon.options.glyphs.auto": "Automatisch", + "horizon.options.glyphs.xbox": "Xbox", + "horizon.options.glyphs.playstation": "PlayStation", + "horizon.options.glyphs.nintendo": "Nintendo", + "horizon.options.menu_focus": "Focus", + "horizon.options.menu_pointer": "Aanwijzer", + "horizon.options.keyboard.auto": "Automatisch", + "horizon.options.keyboard.horizon": "Horizon", + "horizon.options.keyboard.steam": "Stoom", + "horizon.options.unavailable": "Deze functie is nog niet beschikbaar in Horizon.", + "horizon.options.search": "Zoekinstellingen...", + "horizon.pages.mods": "Mods", + "horizon.pages.shader_packs": "Shader-pakketten", + "horizon.pages.shader_options": "Shader-opties", + "horizon.pages.controller": "Controllerinstellingen", + "horizon.pages.controller_binds": "Controller bindt", + "horizon.pages.extras": "Horizon-extra's", + "horizon.pages.settings": "Horizon-instellingen", + "horizon.pages.agent": "AI-agent", + "horizon.split.leave": "Vertrekken", + "horizon.pages.split_settings": "Instellingen voor gesplitst scherm", + "horizon.pages.split_profiles": "Wie speelt er?", + "horizon.pages.split_setup": "Gesplitst scherm instellen", + "horizon.pages.music": "Muziek", + "horizon.pages.music.menu": "Menukaart", + "horizon.pages.music.overworld": "Bovenwereld", + "horizon.pages.music.creative": "Creatief", + "horizon.pages.music.underwater": "Onder water", + "horizon.pages.music.end": "Het einde", + "horizon.pages.music.boss": "Baas", + "horizon.pages.music.credits": "Kredieten", + "horizon.pages.music.overworld_biomes": "Overwereldbiomen", + "horizon.pages.music.nether_biomes": "Nether biomen", + "horizon.pages.music.end_biomes": "Beëindig biomen", + "horizon.pages.music.other": "Andere muziek", + "horizon.pages.music.empty": "Geen muzieknummers: de geluiden van het spel worden niet geladen.", + "horizon.pages.music.tooltip": "De ingebouwde nummers, per situatie: speel er nu één, of schakel er een uit zodat het spel stopt met het kiezen ervan.", + "horizon.pages.settings.tooltip": "Horizon's eigen instellingen: graphics, controllers, extra's en mods.", + "horizon.pages.graphics.tooltip": "Grafisch eenvoudig: elke instelling zegt wat het kost.", + "horizon.pages.graphics_advanced.tooltip": "Elke grafische instelling, inclusief Horizon's, met wat elke kost.", + "horizon.pages.controller.tooltip": "Controllers: hun knoppen, sticks, trillingen en menunavigatie.", + "horizon.pages.extras.tooltip": "Optionele toevoegingen, standaard allemaal uitgeschakeld: het spel blijft vanille totdat je er een inschakelt.", + "horizon.pages.agent.tooltip": "Laat je eigen AI-agent spelen: horizon-ctl en MCP-clients op deze computer.", + "horizon.pages.split_profiles.tooltip": "Wie speelt: een profiel dat in deze gamemap wordt bewaard.", + "horizon.pages.split_setup.tooltip": "De ramen en monitoren, en wie waar speelt.", + "horizon.pages.shader_packs.tooltip": "Shader-pakketten uit de map shaderpacks: die van Horizon en die in het shaders/-formaat. Er loopt er één tegelijk.", + "horizon.pages.mods.tooltip": "Mods gemaakt voor Horizon, uit de map horizon-mods. Ze worden allemaal in een sandbox uitgevoerd en blijven uitgeschakeld totdat u ze inschakelt.", + "horizon.pages.open.graphics": "Grafisch...", + "horizon.pages.open.graphics_advanced": "Geavanceerde grafische afbeeldingen...", + "horizon.pages.open.shader_packs": "Shader-pakketten...", + "horizon.pages.open.controller": "Controllerinstellingen...", + "horizon.pages.open.split_setup": "Gesplitst scherm...", + "horizon.pages.open.extras": "Extra's...", + "horizon.pages.open.mods": "Mods...", + "horizon.pages.open.agent": "AI-agent...", + "horizon.pages.open.horizon_graphics": "Horizon-afbeeldingen...", + "horizon.pages.open.controller_binds": "Controller bindt...", + "horizon.pages.open.horizon_settings": "Horizon-instellingen...", + "horizon.pages.open.music": "Muziek...", + "horizon.mods.empty": "Geen mods: plaats .hmod-bestanden in de map horizon-mods", + "horizon.mods.stopped": " (gestopt)", + "horizon.mods.not_built": " (Niet gebouwd)", + "horizon.mods.dev": " (Ontwikkelaar)", + "horizon.mods.settings": "Instellingen", + "horizon.mods.in_world": " (Laat de wereld veranderen)", + "horizon.mods.open_folder": "Open de Mod-map", + "horizon.shader_packs.empty": "Geen shader packs: plaats ze in de map shaderpacks", + "horizon.shader_packs.kind_horizon": " (Horizon)", + "horizon.shader_options.open": "Shader-opties...", + "horizon.shader_options.profile": "Profiel", + "horizon.shader_options.loading": "De opties van het shader-pakket lezen...", + "horizon.agent.copy_details": "Kopieer verbindingsgegevens", + "horizon.multiplayer.join": "Doe mee", + "horizon.multiplayer.cancel_reconnecting": "Annuleren Opnieuw verbinden", + "horizon.multiplayer.join_friend": "Sluit je aan bij een vriend", + "horizon.multiplayer.invite_code": "Uitnodigingscode", + "horizon.multiplayer.relay": "relais (optioneel)", + "Preset": "Voorinstelling", + "LOD Distance": "LOD-afstand", + "Far Detail": "Verre details", + "Cave Culling": "Grot ruimen", + "Entity Culling": "Entiteit ruimen", + "Chunk Updates": "Chunk-updates", + "Upload Budget": "Budget uploaden", + "Sky": "Hemel", + "Fog": "Mist", + "Weather": "Weer", + "Animated Textures": "Geanimeerde texturen", + "Present Mode": "Huidige modus", + "Frame Pacing": "Frametempo", + "Worker Threads": "Werknemersdraden", + "Resolution Scale": "Resolutieschaal", + "Anti-aliasing": "Anti-aliasing", + "Upscaling": "Opschaling", + "Paper White": "Papier Wit", + "Peak Brightness": "Piekhelderheid", + "Black Level": "Zwart niveau", + "UI Brightness": "UI-helderheid", + "Battery Mode": "Batterijmodus", + "Graphics API": "Grafische API", + "Translucent Batching": "Doorschijnend batchen", + "Performance Overlay": "Prestatie-overlay", + "Full Detail Distance": "Volledige detailafstand", + "On": "Aan", + "Off": "Uit", + "Unlimited": "Onbeperkt", + "Auto": "Automatisch", + "Custom": "Aangepast", + "Performance": "Prestaties", + "Balanced": "Evenwichtig", + "Quality": "Kwaliteit", + "Ultra": "Ultra", + "Ultra Performance": "Ultra-prestaties", + "Native": "Inheems", + "Full": "Vol", + "Reduced": "Verlaagd", + "Efficient": "Efficiënt", + "Precise": "Nauwkeurig", + "Auto (VSync)": "Automatisch (VSync)", + "FIFO": "FIFO", + "Mailbox": "Postbus", + "Immediate": "Onmiddellijk", + "Vulkan": "Vulkaan", + "DirectX 12": "DirectX 12", + "OpenGL": "OpenGL", + "FPS and Graph": "FPS en grafiek", + "FPS": "FPS", + "TAA": "TAA", + "FXAA": "FXAA", + "No cost": "Geen kosten", + "Low cost": "Lage kosten", + "Medium cost": "Middelmatige kosten", + "High cost": "Hoge kosten", + "Saves time": "Bespaart tijd", + "HDR": "HDR", + "Graphics": "Grafisch", + "Done": "Klaar", + "This feature is not yet available in Horizon.": "Deze functie is nog niet beschikbaar in Horizon.", + "Your display or system doesn't offer HDR output.": "Uw beeldscherm of systeem biedt geen HDR-uitvoer.", + "Turn HDR on to use it.": "Schakel HDR in om het te gebruiken.", + "Your GPU or graphics API doesn't support it.": "Uw GPU of grafische API ondersteunt dit niet.", + "%s chunks": "%s brokken", + "%s per frame": "%s per kader", + "%s MiB/frame": "%s MiB/frame", + "%s KiB/frame": "%s KiB/frame", + "Auto (%s)": "Automatisch (%s)", + "Full-detail terrain range. LOD Distance can extend local worlds farther.": "Volledig gedetailleerd terreinbereik. LOD Distance kan lokale werelden verder uitbreiden.", + "Coarse distant terrain in local worlds. Integrated GPUs stop at 128 chunks.": "Grof afgelegen terrein in lokale werelden. Geïntegreerde GPU's stoppen bij 128 chunks.", + "Reduced draws far terrain coarser: faster on this integrated GPU.": "Minder trekt veel terrein grover: sneller op deze geïntegreerde GPU.", + "Reduced draws far terrain coarser, for GPUs it slows down.": "Verminderd trekt veel terrein grover, voor GPU's vertraagt het.", + "Field of view. Wider shows more terrain at once.": "Gezichtsveld. Breder toont meer terrein tegelijk.", + "Caps frames per second; a cap saves power and heat.": "Maximaal frames per seconde; een dop bespaart stroom en warmte.", + "Waits for the display's refresh: no tearing, a little latency.": "Wacht op vernieuwing van het scherm: geen tearing, een beetje latentie.", + "Size of menus and the HUD.": "Grootte van menu's en de HUD.", + "Sets the options below together. Changing one makes it Custom.": "Stelt de onderstaande opties samen. Door er één te veranderen, wordt het aangepast.", + "Lava, fire and sunlight shine brighter than white. Needs an HDR display.": "Lava, vuur en zonlicht schijnen helderder dan wit. Heeft een HDR-scherm nodig.", + "Your display's darkest black. 0 for OLED; LCDs glow a little.": "Het donkerste zwart van je scherm. 0 voor OLED; LCD's gloeien een beetje.", + "How bright highlights get. Auto: the peak your system reports.": "Hoe heldere highlights worden. Auto: de piek die uw systeem rapporteert.", + "How bright white paper and menus look. Auto: your desktop's white.": "Hoe helder wit papier en menu's er uitzien. Automatisch: uw bureaublad is wit.", + "How bright the HUD and menus are, against paper white.": "Hoe helder de HUD en menu's zijn, tegen papierwit.", + "How far mobs, crops and machines keep working. CPU time.": "Hoe ver mobs, gewassen en machines blijven werken. CPU-tijd.", + "How far away mobs and items are drawn, as a share of normal.": "Hoe ver weg mobs en items worden getrokken, als percentage van normaal.", + "Skips terrain hidden behind closed sections. Off costs a lot.": "Slaat terrein over dat verborgen is achter gesloten secties. Uit kost veel.", + "Hides entities behind opaque blocks.": "Verbergt entiteiten achter ondoorzichtige blokken.", + "No entity occlusion culling.": "Geen occlusie van entiteiten.", + "CPU occlusion test runs this frame.": "De CPU-occlusietest voert dit frame uit.", + "Occlusion checks run on a worker thread.": "Occlusiecontroles worden uitgevoerd op een werkthread.", + "Meshed sections uploaded per frame. Lower is smoother while loading.": "Meshed secties geüpload per frame. Lager is soepeler tijdens het laden.", + "Soft shadows in corners. Costs chunk building time only.": "Zachte schaduwen in hoeken. Kost alleen maar bouwtijd.", + "Smaller copies of block textures for distant terrain: less shimmer.": "Kleinere kopieën van bloktexturen voor afgelegen terrein: minder glans.", + "Blends grass and water colours across biomes when building chunks.": "Mengt gras- en aquarelkleuren over biomen bij het bouwen van brokken.", + "Cloud layer: off, flat (fast) or 3D (fancy).": "Wolkenlaag: uit, plat (snel) of 3D (fancy).", + "How far clouds reach, in chunks.": "Hoe ver wolken reiken, in stukjes.", + "Draws the sky, sun, moon and stars.": "Tekent de lucht, de zon, de maan en de sterren.", + "Distance fog. Off shows the edge of the loaded world.": "Afstand mist. Off toont de rand van de beladen wereld.", + "Draws rain and snow.": "Trekt regen en sneeuw.", + "How far rain and snow fall around you.": "Hoe ver regen en sneeuw om je heen valt.", + "How many particles effects spawn.": "Hoeveel deeltjeseffecten spawnen.", + "Round shadows under mobs and items.": "Ronde schaduwen onder mobs en items.", + "Leaves with see-through gaps. Off draws them solid.": "Bladeren met doorzichtige gaten. Off trekt ze solide.", + "Sorts water and glass more exactly behind each other.": "Sorteert water en glas preciezer achter elkaar.", + "Which chunk rebuilds wait for the frame: none, nearby or yours.": "Welk deel opnieuw wordt opgebouwd, wacht op het frame: geen, dichtbij of van jou.", + "Animates water, lava, fire and other moving textures.": "Animeert water, lava, vuur en andere bewegende texturen.", + "World pixels per screen pixel. Below 100% is faster on the GPU.": "Wereldpixels per schermpixel. Onder de 100% is sneller op de GPU.", + "Smooths jagged edges. FXAA: softer. TAA: smoothest, moving things may trail.": "Maakt gekartelde randen glad. FXAA: zachter. TAA: de soepelste, bewegende dingen kunnen slepen.", + "Renders the world smaller and rebuilds it with TAA. Faster, softer.": "Maakt de wereld kleiner en herbouwt deze met TAA. Sneller, zachter.", + "HDR output on an HDR display: lava, fire and sunlight shine brighter.": "HDR-uitvoer op een HDR-scherm: lava, vuur en zonlicht schijnen helderder.", + "How frames reach the screen while VSync is off.": "Hoe frames het scherm bereiken terwijl VSync is uitgeschakeld.", + "Efficient sleeps until the next frame; Precise spins, like vanilla.": "Efficiënt slapen tot het volgende frame; Nauwkeurige spins, zoals vanille.", + "Fills the screen (borderless).": "Vult het scherm (randloos).", + "Brightens dark places.": "Verheldert donkere plekken.", + "Lowers the frame rate when minimised, or idle too.": "Verlaagt de framesnelheid wanneer deze is geminimaliseerd, of ook inactief.", + "Sways the view while walking.": "Verandert het zicht tijdens het lopen.", + "Fades newly loaded chunks in.": "Laat nieuw geladen chunks infaden.", + "Darkens the screen's edges.": "Maakt de randen van het scherm donkerder.", + "Shows when the world saves.": "Laat zien wanneer de wereld redt.", + "Shows attack cooldown.": "Toont de cooldown van de aanval.", + "60 FPS cap (30 in menus or unfocused), half the workers: less power.": "60 FPS-limiet (30 in menu's of ongericht), de helft van de werknemers: minder kracht.", + "Threads that generate, light and mesh chunks. Next start.": "Draden die brokken genereren, verlichten en meshen. Volgende start.", + "Vulkan, then DirectX 12 (Windows) or OpenGL (Linux) where it fails. Next start.": "Vulkan en vervolgens DirectX 12 (Windows) of OpenGL (Linux) waar het mislukt. Volgende start.", + "Water and glass in one buffer: fewer draw calls, a bit more VRAM. Next start.": "Water en glas in één buffer: minder draw calls, wat meer VRAM. Volgende start.", + "Mesh data sent to the GPU per frame. Lower is smoother while loading.": "Mesh-gegevens die per frame naar de GPU worden verzonden. Lager is soepeler tijdens het laden.", + "Frame rate and frame times over the game, with a graph.": "Framesnelheid en frametijden gedurende het spel, met een grafiek.", + "horizon.multiplayer.finding_friend": "Vind de wereld van je vriend...", + "horizon.multiplayer.not_signed_in": "Deze server bevindt zich in de onlinemodus. Meld u aan met uw Microsoft-account in het Horizon-opstartprogramma om hieraan deel te nemen.", + "horizon.multiplayer.invalid_address": "Ongeldig serveradres: %s", + "horizon.multiplayer.connected_friend_direct": "Rechtstreeks verbonden met je vriend...", + "horizon.multiplayer.connected_friend_relay": "Verbonden met je vriend via het relais...", + "General": "Algemeen", + "Advanced": "Geavanceerd", + "Undo": "Ongedaan maken", + "Search options": "Zoekopties", + "Shortcut": "Snelkoppeling", + "Distance": "Afstand", + "Display": "Weergave", + "Interface": "Interface", + "Sky and weather": "Hemel en weer", + "Lighting and entities": "Verlichting en entiteiten", + "Textures": "Texturen", + "Image": "Afbeelding", + "Chunk loading": "Stukken laden", + "Culling": "Ruimen", + "Power": "Macht", + "Frames": "Lijsten", + "Overlay": "Overlay", + "Output": "Uitvoer", + "Brightness": "Helderheid", + "How far you see, the window and the HUD.": "Hoe ver je kunt kijken, het raam en de HUD.", + "The sky and weather, lighting, textures and the image.": "De lucht en het weer, de verlichting, de texturen en het beeld.", + "Chunk loading, culling and power use.": "Het laden van brokken, het ruimen en het stroomverbruik.", + "How frames reach the screen, and the performance overlay.": "Hoe frames het scherm bereiken en de prestatie-overlay.", + "Brighter-than-white output on an HDR display.": "Helderder dan witte uitvoer op een HDR-scherm.", + "Results for \"%s\"": "Resultaten voor \"%s\"", + "No settings match.": "Er komen geen instellingen overeen.", + "horizon.title.not_affiliated": "Niet aangesloten bij Mojang of Microsoft", + "horizon.extras.header.lighting": "Verlichting", + "horizon.extras.header.third_person": "Derde persoon", + "horizon.extras.header.particles": "Deeltjes", + "horizon.extras.header.inventory": "Inventaris", + "horizon.extras.header.chat": "Chatten", + "horizon.extras.header.multiplayer": "Multiplayer", + "horizon.extras.header.sound": "Geluid", + "horizon.extras.header.menus": "Menu's", + "horizon.extras.fullbright": "Volledig helder", + "horizon.extras.dynamic_lights": "Dynamische lichten", + "horizon.extras.own_name_tag": "Eigen naamplaatje", + "horizon.extras.hide_block_particles": "Verberg blokbrekende deeltjes", + "horizon.extras.auto_reconnect": "Automatisch opnieuw verbinden", + "horizon.extras.ui_sound_reserve": "Houd kanalen voor UI-geluiden", + "horizon.extras.music_page": "Muziek pagina", + "horizon.extras.mouse_tweaks": "Muisaanpassingen", + "horizon.extras.mouse_tweaks_wheel": "Scrollwiel verplaatst items", + "horizon.extras.sort": "Sorteerknoppen", + "horizon.extras.sort_key": "Sorteer sleutel", + "horizon.extras.no_ai": "Geen AI", + "horizon.extras.agent_control": "Agentcontrole", + "horizon.extras.discord_presence": "Onenigheid Rijke aanwezigheid", + "horizon.extras.splitscreen": "Gesplitst scherm", + "horizon.extras.chat_animation": "Vlotte babbel", + "horizon.extras.chat_indicator": "Berichtindicator", + "horizon.extras.wheel_cycles_settings": "Scrollwiel wijzigt instellingen", + "horizon.extras.pack_browser": "Bronpakketbrowser", + "horizon.extras.fullbright.tooltip": "Toon blokken en entiteiten bij vol licht, zelfs in donkere gebieden.", + "horizon.extras.dynamic_lights.tooltip": "Fakkels en andere lichtbronnen die je vasthoudt, laat vallen of in brand steken, verlichten de blokken eromheen.", + "horizon.extras.own_name_tag.tooltip": "Toont je naam boven je hoofd in de derde persoon, zoals andere spelers het zien. Verborgen wanneer de server de namen van uw team verbergt of u onzichtbaar bent.", + "horizon.extras.hide_block_particles.tooltip": "Verbergt de puindeeltjes die uit een gebroken blok barsten en afbrokkelen van het blok dat je ontgint. Andere deeltjes blijven.", + "horizon.extras.auto_reconnect.tooltip": "Sluit zich opnieuw aan bij een server na een verbroken verbinding of een herstart, nooit na een kick of ban.", + "horizon.extras.ui_sound_reserve.tooltip": "Geluiden in de wereld laten 16 van de 247 geluidskanalen vrij, dus een overstroming ervan (een grote explosie) kan menuklikken niet tot zwijgen brengen.", + "horizon.extras.music_page.tooltip": "Muziek en geluiden krijgt een Muziek...-pagina: speel nu een ingebouwd nummer, of schakel er een uit zodat het spel het niet meer kiest. Er verandert niets totdat je een nummer uitschakelt.", + "horizon.extras.mouse_tweaks.tooltip": "Met rechts slepen wordt er één per slot geplaatst, met links slepen wordt het vastgehouden item verzameld, Shift + links slepen verplaatst elk slot.", + "horizon.extras.mouse_tweaks_wheel.tooltip": "Omlaag stuurt een item van de gleuf naar de andere kant, omhoog brengt er één terug.", + "horizon.extras.sort.tooltip": "Sorteert de inventaris, kisten, vaten, enderkisten en shulkerdozen in creatieve tabvolgorde, waarbij stapels worden samengevoegd.", + "horizon.extras.sort_key.tooltip": "Sorteert het gedeelte onder de cursor. Klik en druk vervolgens op een toets; Ontsnappen maakt het los.", + "horizon.extras.no_ai.tooltip": "Verbergt en schakelt elke AI-functie uit: agentcontrole, horizon-ctl en de MCP-servers. De schakelaar van de draagraket ook.", + "horizon.extras.agent_control.tooltip": "Je eigen AI-agent kan dit spel alleen op deze computer spelen via horizon-ctl of een MCP-client.", + "horizon.extras.discord_presence.tooltip": "Toont Speelhorizon op je Discord-profiel terwijl Discord actief is: menu's, singleplayer of multiplayer, de dimensie en de gespeelde tijd. Nooit een wereldnaam of een serveradres.", + "Calibrate...": "Kalibreer...", + "Calibrate Anyway...": "Hoe dan ook kalibreren...", + "Use Automatic Setup": "Gebruik automatische configuratie", + "Shortcut: %s": "Sneltoets: %s", + "Next": "Volgende", + "HDR Calibration %s/%s: %s": "HDR-kalibratie %s/%s: %s", + "Sets the three below full screen, one test picture at a time.": "Stelt de onderstaande drie in op volledig scherm, één testbeeld tegelijk.", + "A key that opens this screen from the game. Not bound at first.": "Een sleutel die dit scherm vanuit het spel opent. In eerste instantie niet gebonden.", + "Your display didn't say how bright it gets: calibrate to set it up.": "Uw display heeft niet aangegeven hoe helder het wordt: kalibreer om het in te stellen.", + "Already set up for your display. Only calibrate if HDR looks wrong.": "Al ingesteld voor uw beeldscherm. Kalibreer alleen als HDR er verkeerd uitziet.", + "Puts Peak Brightness and Paper White back to your display's setup.": "Zet piekhelderheid en papierwit terug in de instellingen van uw beeldscherm.", + "Set up for your display. Leave on Auto unless it looks wrong.": "Instellen voor uw beeldscherm. Laat Auto staan, tenzij het er verkeerd uitziet.", + "Lower it until the logo just disappears into the black.": "Laat hem zakken totdat het logo net in het zwart verdwijnt.", + "Raise it until the logo just disappears into the bright square.": "Breng hem omhoog totdat het logo net in het heldere vierkant verdwijnt.", + "Make the card a white that's comfortable to look at for a long time, in the light you play in.": "Maak de kaart wit, zodat je er lang naar kunt kijken, in het licht waarin je speelt.", + "horizon.splitscreen.profiles.forget": "Vergeet", + "horizon.splitscreen.profiles.create": "Creëer", + "horizon.splitscreen.profiles.you": " - jij", + "horizon.splitscreen.profiles.forget_named": "Vergeet %s", + "horizon.splitscreen.profiles.previous": "Vorige", + "horizon.splitscreen.profiles.next": "Volgende", + "horizon.splitscreen.profiles.new_button": "Nieuw profiel...", + "horizon.splitscreen.profiles.forget_title": "Profiel vergeten?", + "horizon.splitscreen.profiles.forget_leaves": "Het verlaat de lijst van deze instantie.", + "horizon.splitscreen.profiles.forget_kept": "De voortgang en instellingen van de wereld blijven behouden.", + "horizon.splitscreen.profiles.new_title": "Nieuw profiel", + "horizon.splitscreen.profiles.name_hint": "Naam (3 tot 16 letters, cijfers, _)", + "horizon.splitscreen.profiles.switch_title": "Profiel wisselen", + "horizon.splitscreen.profiles.offline_note": "Offline profielen behoren tot deze instantie", + "horizon.splitscreen.profiles.move": "Verplaats waar je speelt", + "horizon.splitscreen.profiles.move_place": "Verplaatsen waar je speelt: %s", + "horizon.friends.title": "Speel met vrienden", + "horizon.friends.hint": "Vrienden plakken de code na de knop Vrienden in het titelscherm, in Directe verbinding of op de Play-pagina van het opstartprogramma.", + "horizon.friends.copied": "Gekopieerd", + "horizon.friends.copy_code": "Kopieer code", + "horizon.friends.stop_sharing": "Stop met delen", + "horizon.friends.none_yet": "Nog geen vrienden hier.", + "horizon.friends.here_now": "Hier nu: %s", + "horizon.friends.share_intro": "Deel deze wereld achter een uitnodigingscode: deze wordt geopend voor LAN en vrienden op internet doen mee met de code. Er is geen server van ons bij betrokken.", + "horizon.friends.start_sharing": "Begin met delen", + "horizon.friends.troubleshooting": "Problemen oplossen...", + "horizon.friends.stopped": "Het delen van de uitnodigingscode is gestopt.", + "horizon.friends.short_code_changed": "Iemand probeerde steeds een verkeerde shortcode, dus het veranderde.", + "horizon.friends.wrong_code": "Iemand heeft een verkeerde code geprobeerd.", + "horizon.friends.code_ready": "Je uitnodigingscode is klaar: Gamemenu, Spelen met vrienden. Kopieer het en stuur het naar je vrienden.", + "horizon.friends.share_failed": "Kon de wereld niet delen: %s", + "horizon.friends.finding_route": "Ontdek hoe vrienden u kunnen bereiken...", + "horizon.osk.shift": "Verschuiving", + "horizon.osk.space": "Ruimte", + "horizon.osk.delete": "Verwijderen", + "horizon.osk.type": "Typ", + "horizon.osk.symbols": "Symbolen", + "horizon.osk.close": "Sluiten", + "horizon.extras.chat_animation.tooltip": "Een nieuwe chatlijn schuift van links naar binnen terwijl deze invaagt, in plaats van geheel te lijken.", + "horizon.extras.chat_indicator.tooltip": "De gekleurde balk links van een chatlijn.", + "horizon.extras.wheel_cycles_settings.tooltip": "Het scrollwiel boven een knop in de instellingen verandert de waarde, zoals in vanille. Uit: het wiel scrollt alleen door de lijst.", + "horizon.extras.pack_browser.tooltip": "Select Resource Packs krijgt een knop Toevoegen die Modrinth doorzoekt en een pakket in uw packs-map installeert. Uit: het spel maakt nooit contact met Modrinth.", + "horizon.extras.splitscreen.tooltip": "In een wereld kan een andere controller meedoen als nieuwe speler: druk op A wanneer dit wordt gevraagd, kies vervolgens een profiel en waar je wilt spelen.", + "horizon.splitscreen.setup.monitor": "Monitor %s", + "horizon.splitscreen.setup.monitor_unknown": "een monitor", + "horizon.splitscreen.setup.window": "Raam %s", + "horizon.splitscreen.setup.new_window": "Nieuw venster", + "horizon.splitscreen.setup.fill_monitor": "Vul %s", + "horizon.splitscreen.setup.done": "Klaar", + "horizon.splitscreen.setup.switch": "%s: %s", + "horizon.splitscreen.setup.on": "Aan", + "horizon.splitscreen.setup.off": "Uit", + "horizon.splitscreen.setup.player": "Speler %s", + "horizon.splitscreen.setup.revert": "Terugkeren", + "horizon.splitscreen.setup.apply": "Toepassen", + "horizon.splitscreen.setup.warning.empty_main": "Niemand speelt in Venster 1: het verbergt zich", + "horizon.splitscreen.setup.warning.empty_close": "Niemand speelt in Venster %s: het wordt gesloten bij Toepassen", + "horizon.splitscreen.setup.warning.empty_new": "Niemand speelt in Venster %s: het gaat niet open", + "horizon.splitscreen.setup.warning.on_main": "Venster %s vult de monitor van Venster 1: de spelers spelen in Venster 1", + "horizon.splitscreen.setup.warning.unplugged": "De monitor van Venster %s is niet aangesloten: de spelers spelen in Venster 1", + "horizon.splitscreen.setup.status.off": "Splitscreen staat uit.", + "horizon.splitscreen.setup.status.enable_hint": "Schakel hem in en druk vervolgens op een knop op een andere controller in een wereld.", + "horizon.splitscreen.setup.status.join_hint": "Druk op A om lid te worden en een profiel te kiezen.", + "horizon.splitscreen.setup.status.idle": "Splitscreen inactief", + "horizon.splitscreen.setup.status.alone": "Geen andere lokale spelers.", + "horizon.splitscreen.setup.status.solo_controls": "Solobediening en controllerfeedback zijn ongewijzigd.", + "horizon.splitscreen.setup.window_empty": "Venster %s: leeg", + "horizon.splitscreen.setup.note.select": "Klik op een speler of sleep deze naar een venster of monitor.", + "horizon.splitscreen.setup.note.apply": "Toepassen om op deze manier te spelen, Terug naar ongedaan maken.", + "horizon.splitscreen.setup.note.place": "Waar moet %s spelen?", + "horizon.splitscreen.setup.this_player": "deze speler", + "horizon.splitscreen.setup.switch_disabled": "Splitscreen wordt uitgeschakeld zodra de anderen zijn vertrokken (hun pauzemenu).", + "horizon.splitscreen.setup.window_place": "Venster %s (%s van %s)", + "horizon.splitscreen.setup.names": "Namen", + "horizon.splitscreen.setup.identify": "Identificeer", + "horizon.splitscreen.setup.layout.two": "2 delen: %s", + "horizon.splitscreen.setup.layout.three": "3 delen: %s", + "horizon.splitscreen.setup.layout.two.0": "Automatisch", + "horizon.splitscreen.setup.layout.two.1": "Zij aan zij", + "horizon.splitscreen.setup.layout.two.2": "Boven- en onderkant", + "horizon.splitscreen.setup.layout.three.0": "Eén breed bovenaan", + "horizon.splitscreen.setup.layout.three.1": "Links een lange", + "horizon.splitscreen.setup.layout.three.2": "Zij aan zij", + "horizon.splitscreen.setup.help.player": "Klik of sleep %s om ze te verplaatsen.", + "horizon.splitscreen.setup.help.layout_auto": "%s (naast elkaar als het raam breed is). Druk op om te wijzigen.", + "horizon.splitscreen.setup.help.layout": "%s. Druk op om te wijzigen.", + "horizon.splitscreen.setup.help.switch": "Splitscreen voor deze computer, aan of uit.", + "horizon.splitscreen.setup.help.identify": "In het zicht van elke speler kun je zien in welk venster hij zich bevindt.", + "horizon.splitscreen.setup.help.names": "De naam van elke speler in de hoek van zijn weergave.", + "horizon.splitscreen.setup.help.revert": "Maak de nog niet toegepaste wijzigingen ongedaan.", + "horizon.splitscreen.setup.help.apply": "Speel zoals de kaart laat zien.", + "horizon.splitscreen.setup.help.unchanged": "Er is nog niets veranderd.", + "horizon.splitscreen.setup.give_up_pad": "Geef Pad op", + "horizon.splitscreen.prompt.controller_connected": "Regelaar aangesloten", + "horizon.splitscreen.prompt.controller_disconnected": "Regelaar losgekoppeld", + "horizon.splitscreen.prompt.controller_disconnected.hint": "Sluit hem opnieuw aan of druk op een knop op een andere", + "horizon.splitscreen.prompt.join.one": "%s wil lid worden", + "horizon.splitscreen.prompt.join.many": "%s-controllers willen meedoen", + "horizon.splitscreen.prompt.join.yes": "Doe mee", + "horizon.splitscreen.prompt.join.as_p1": "Speel als P1", + "horizon.splitscreen.prompt.join.no": "Nee", + "horizon.splitscreen.prompt.lost": "%s: regelaar losgekoppeld", + "horizon.splitscreen.prompt.lost.use_another": "Gebruik een andere", + "horizon.splitscreen.prompt.lost.leave": "Vertrekken", + "horizon.splitscreen.setup.help.give_up_pad": "Uw controller stopt met rijden en wordt aangeboden om mee te doen (A).", + "horizon.splitscreen.setup.note.held_at": "%s tot %s: A laat het hier vallen, B legt het terug.", + "horizon.splitscreen.setup.note.held": "%s opgepakt: links/rechts kiest waar, A laat vallen, B legt het terug.", + "Hides models behind opaque blocks. Async checks off-thread; entities tick.": "Verbergt modellen achter ondoorzichtige blokken. Asynchrone controles buiten de thread; entiteiten aanvinken.", + "Block Entities": "Blokkeer entiteiten", + "Shulker Boxes": "Shulker-dozen", + "Reuses settled boxes; lid movement stays animated.": "Hergebruikt bezette dozen; dekselbeweging blijft geanimeerd.", + "Signs": "Tekenen", + "Reuses sign text until text, light, or font changes.": "Hergebruikt ondertekende tekst totdat de tekst, het licht of het lettertype verandert.", + "Decorated Pots": "Versierde potten", + "Reuses still pots; break wobble and sherd changes redraw.": "Hergebruikt nog steeds potten; breken wiebelen en scherfveranderingen opnieuw tekenen.", + "Bells": "Klokken", + "Reuses still bells; ringing stays animated.": "Hergebruikt nog steeds bellen; beltoon blijft geanimeerd.", + "Chests": "Kisten", + "Reuses closed chests; moving lids stay animated.": "Hergebruik gesloten kisten; bewegende deksels blijven geanimeerd.", + "Banners": "Banners", + "Reuses poles; flags and pattern layers still update.": "Hergebruik stokken; vlaggen en patroonlagen worden nog steeds bijgewerkt.", + "Copper Golem Statues": "Koperen Golem-beelden", + "Reuses statue geometry until its block state changes.": "Hergebruikt de geometrie van het standbeeld totdat de blokstatus verandert.", + "Leaf Culling": "Blad ruimen", + "Every leaf face. Vanilla's fancy leaves.": "Elk bladvlak. De mooie bladeren van vanille.", + "Distant Plant Dither": "Verre plantendithering", + "Keeps fine plants in high-res packs from fading far away.": "Zorgt ervoor dat mooie planten in pakketten met hoge resolutie niet ver weg vervagen.", + "Screenshot Quality": "Screenshotkwaliteit", + "F2 screenshots at this many times the game's resolution. Higher takes longer.": "F2-screenshots met deze resolutie die vele malen hoger is dan die van het spel. Hoger duurt langer.", + "Frame Generation": "Framegeneratie", + "Shows a made-up frame between each two real ones: smoother, a little more lag.": "Toont een verzonnen frame tussen elke twee echte: vloeiender, iets meer vertraging.", + "Shadow Cache": "Schaduwcache", + "Reuses the pack shadow map when sun, view and world match. Off by default.": "Hergebruikt de roedelschaduwkaart wanneer zon, zicht en wereld overeenkomen. Standaard uitgeschakeld.", + "Find BlueMap": "Zoek BlueMap", + "On servers, finds their BlueMap web map for far terrain. Next join.": "Vindt op servers hun BlueMap-webkaart voor ver terrein. Volgende meedoen.", + "BlueMap Radius": "BlueMap-radius", + "How far around you BlueMap tiles are downloaded. Next join.": "Hoe ver om je heen BlueMap-tegels worden gedownload. Volgende meedoen.", + "Synchronous": "Synchronisch", + "Asynchronous": "Asynchroon", + "Solid": "Solide", + "Solid Aggressive": "Solide agressief", + "Hollow": "Hol", + "Leaves fully inside a canopy draw solid: fewer see-through layers.": "Bladeren die zich volledig in een bladerdak bevinden, trekken stevig aan: minder doorzichtige lagen.", + "Leaves with one open side draw solid too: faster, chunkier edges.": "Bladeren met één open zijde zijn ook stevig: snellere, grovere randen.", + "Drops faces between leaves: faster, but gaps look through.": "Laat gezichten tussen bladeren vallen: sneller, maar gaten kijken er doorheen.", + "Hotbar: Previous Slot": "Hotbar: Vorig slot", + "Hotbar: Next Slot": "Hotbar: volgende slot", + "horizon.agent.connected.one": "Verbonden: 1 agentverbinding", + "horizon.agent.connected.many": "Verbonden: %s agentverbindingen", + "horizon.agent.connected.one_ago": "Verbonden: 1 agentverbinding, laatste opdracht %s s geleden", + "horizon.agent.connected.many_ago": "Verbonden: %s agentverbindingen, laatste opdracht %s s geleden", + "horizon.agent.waiting": "Wachten op een agent.", + "horizon.agent.off": "Uit: agenten kunnen dit spel niet bereiken.", + "horizon.agent.session_opened": "Voor deze sessie geopend door het programma waarmee het spel is gestart.", + "horizon.agent.socket": "Socket: %s (kopieer de details voor het volledige pad)", + "horizon.agent.local_only": "Alleen lokaal: agenten op deze computer, nooit op het netwerk.", + "%s nits": "%s nits", + "Auto (%s nits)": "Automatisch (%s nits)", + "%.2f nits": "%.2f nits", + "Hides models behind opaque blocks. Entities update. Off with custom packs.": "Verbergt modellen achter ondoorzichtige blokken. Entiteiten bijgewerkt. Weg met aangepaste pakketten.", + "horizon.extras.repro_keys": "Snelkoppelingen voor opnemen", + "horizon.extras.repro_keys.tooltip": "F3+R start of stopt een repro-opname en F3+E schrijft zijn bundel. Standaard uitgeschakeld: een opname kopieert de wereld.", + "horizon.agent.record_session": "Opnamesessie starten", + "horizon.agent.record_stop": "Stop de opnamesessie", + "horizon.agent.export_repro": "Reprobundel exporteren", + "horizon.repro.started": "Opname gestart; F3+R stopt het en schrijft de bundel.", + "horizon.repro.stopped": "Opname gestopt: %s", + "horizon.repro.bundle": "Reprobundel: %s", + "horizon.repro.error": "Reproductie: %s", + "horizon.repro.no_recording": "Er is nog geen opname om te exporteren.", + "horizon.repro.replay_started": "Herhaling gestart: %s", + "horizon.pack.add": "+", + "horizon.pack.addInfo": "Voeg een resourcepakket van Modrinth toe", + "horizon.pack.addWorking": "Modrinth gevraagd...", + "horizon.pack.addNone": "Geen bronpakketten gevonden", + "horizon.pack.addTitle": "Voeg een resourcepakket toe", + "horizon.pack.install": "Installeren", + "horizon.pack.installing": "Installeren", + "horizon.pack.installed": "Geïnstalleerd", + "horizon.pack.search": "Zoeken", + "horizon.pack.searchHint": "Zoek Modrinth...", + "horizon.pack.filters": "Filters", + "horizon.pack.filter.realistic": "Realistisch", + "horizon.pack.filter.simplistic": "Simplistisch", + "horizon.pack.filter.vanillaLike": "Vanille-achtig", + "horizon.pack.filter.x16": "16x", + "horizon.pack.filter.x32": "32x", + "horizon.pack.filter.x64": "64x", + "horizon.pack.addFailed": "Het pakket kon niet worden toegevoegd: %s", + "horizon.extras.header.cosmetics": "Cosmetica", + "horizon.extras.cosmetics_mine": "Mijn cosmetica", + "horizon.extras.cosmetics_mine.tooltip": "Verborgen: elke Horizon-speler ziet je zonder je cosmetica, inclusief jij. Dezelfde schakelaar als de kledingkast van de draagraket.", + "horizon.extras.cosmetics_others": "Cosmetica van andere spelers", + "horizon.extras.cosmetics_others.tooltip": "Wat andere Horizon-spelers dragen: alles, alleen hun naamplaatjestijlen, of niets. Verborgen vraagt ​​het spel nooit wat ze dragen.", + "horizon.extras.cosmetics_auras": "De aura's en sporen van anderen", + "horizon.extras.cosmetics_auras.tooltip": "Aura's en sporen die andere spelers dragen. Standaard uitgeschakeld.", + "horizon.extras.cosmetics.shown": "Getoond", + "horizon.extras.cosmetics.hidden": "Verborgen", + "horizon.extras.cosmetics.name_tags": "Alleen naamplaatjes" +} From a463de44f493dcd5853b2b47aed4021e435af7f1 Mon Sep 17 00:00:00 2001 From: dontstopgorkingit <268053046+dontstopgorkingit@users.noreply.github.com> Date: Tue, 3 Nov 2026 16:22:22 +0100 Subject: [PATCH 13/70] =?UTF-8?q?Add=20Ti=E1=BA=BFng=20Vi=E1=BB=87t=20(vi?= =?UTF-8?q?=5Fvn)=20game=20translation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bundles Horizon's own Tiếng Việt strings so vi_vn players see translated menus and options instead of the English fallback. Co-Authored-By: DeepSeek V4.1 Flash Free --- crates/horizon-client-core/src/lang.rs | 3 + .../assets/horizon/lang/vi_vn.json | 508 ++++++++++++++++++ 2 files changed, 511 insertions(+) create mode 100644 crates/horizon-client/assets/horizon/lang/vi_vn.json diff --git a/crates/horizon-client-core/src/lang.rs b/crates/horizon-client-core/src/lang.rs index 9ad3c155b6..1e61a2768c 100644 --- a/crates/horizon-client-core/src/lang.rs +++ b/crates/horizon-client-core/src/lang.rs @@ -100,6 +100,9 @@ impl ResourceSource for Bundled { "assets/horizon/lang/ur_pk.json" => { include_str!("../../horizon-client/assets/horizon/lang/ur_pk.json") } + "assets/horizon/lang/vi_vn.json" => { + include_str!("../../horizon-client/assets/horizon/lang/vi_vn.json") + } "assets/horizon/lang/de_de.json" | "assets/horizon/lang/de_at.json" => { include_str!("../../horizon-client/assets/horizon/lang/de_de.json") } diff --git a/crates/horizon-client/assets/horizon/lang/vi_vn.json b/crates/horizon-client/assets/horizon/lang/vi_vn.json new file mode 100644 index 0000000000..b07e6284b2 --- /dev/null +++ b/crates/horizon-client/assets/horizon/lang/vi_vn.json @@ -0,0 +1,508 @@ +{ + "horizon.options.controller": "Bộ điều khiển", + "horizon.options.vibration": "Rung", + "horizon.options.adaptive_triggers": "Trình kích hoạt thích ứng", + "horizon.options.lightbar": "thanh đèn", + "horizon.options.look_sensitivity": "Nhìn độ nhạy", + "horizon.options.invert_x": "Đảo ngược cái nhìn X", + "horizon.options.invert_y": "Đảo ngược cái nhìn Y", + "horizon.options.sneak_button": "Nút lén", + "horizon.options.move_deadzone": "Di chuyển vùng chết", + "horizon.options.look_deadzone": "Nhìn vùng chết", + "horizon.options.button_glyphs": "Biểu tượng nút", + "horizon.options.menu_navigation": "Điều hướng menu", + "horizon.options.on_screen_keyboard": "Bàn phím ảo", + "horizon.options.chat_delay": "Trì hoãn trò chuyện", + "horizon.options.lightbar.health": "sức khỏe", + "horizon.options.lightbar.dimension": "Kích thước", + "horizon.options.glyphs.auto": "Tự động", + "horizon.options.glyphs.xbox": "Xbox", + "horizon.options.glyphs.playstation": "PlayStation", + "horizon.options.glyphs.nintendo": "Nintendo", + "horizon.options.menu_focus": "Tập trung", + "horizon.options.menu_pointer": "Con trỏ", + "horizon.options.keyboard.auto": "Tự động", + "horizon.options.keyboard.horizon": "Đường chân trời", + "horizon.options.keyboard.steam": "hơi nước", + "horizon.options.unavailable": "Tính năng này chưa có ở Horizon.", + "horizon.options.search": "Cài đặt tìm kiếm...", + "horizon.pages.mods": "mod", + "horizon.pages.shader_packs": "Gói đổ bóng", + "horizon.pages.shader_options": "Tùy chọn đổ bóng", + "horizon.pages.controller": "Cài đặt bộ điều khiển", + "horizon.pages.controller_binds": "Liên kết điều khiển", + "horizon.pages.extras": "Tiện ích bổ sung của Horizon", + "horizon.pages.settings": "Cài đặt đường chân trời", + "horizon.pages.agent": "Đặc vụ AI", + "horizon.split.leave": "Rời khỏi", + "horizon.pages.split_settings": "Cài đặt chia đôi màn hình", + "horizon.pages.split_profiles": "Ai đang chơi?", + "horizon.pages.split_setup": "Thiết lập màn hình chia nhỏ", + "horizon.pages.music": "Âm nhạc", + "horizon.pages.music.menu": "Thực đơn", + "horizon.pages.music.overworld": "Thế giới ngầm", + "horizon.pages.music.creative": "sáng tạo", + "horizon.pages.music.underwater": "Dưới nước", + "horizon.pages.music.end": "Sự kết thúc", + "horizon.pages.music.boss": "Ông chủ", + "horizon.pages.music.credits": "Tín dụng", + "horizon.pages.music.overworld_biomes": "Quần xã sinh vật thế giới ngầm", + "horizon.pages.music.nether_biomes": "quần xã sinh vật địa ngục", + "horizon.pages.music.end_biomes": "Quần xã sinh vật kết thúc", + "horizon.pages.music.other": "Âm nhạc khác", + "horizon.pages.music.empty": "Không có bản nhạc: âm thanh của trò chơi không được tải.", + "horizon.pages.music.tooltip": "Các bản nhạc tích hợp, tùy theo tình huống: phát một bản ngay bây giờ hoặc tắt bất kỳ bản nhạc nào để trò chơi ngừng chọn bản nhạc đó.", + "horizon.pages.settings.tooltip": "Cài đặt riêng của Horizon: đồ họa, bộ điều khiển, tính năng bổ sung và mod.", + "horizon.pages.graphics.tooltip": "Đồ họa, đơn giản là: mỗi cài đặt cho biết giá của nó.", + "horizon.pages.graphics_advanced.tooltip": "Mọi cài đặt đồ họa, bao gồm cả Horizon, với giá của từng cài đặt.", + "horizon.pages.controller.tooltip": "Bộ điều khiển: các nút, gậy, độ rung và điều hướng menu.", + "horizon.pages.extras.tooltip": "Các bổ sung tùy chọn, tất cả đều bị tắt theo mặc định: trò chơi vẫn giữ nguyên cho đến khi bạn bật một trò chơi.", + "horizon.pages.agent.tooltip": "Hãy để tác nhân AI của riêng bạn chơi: máy khách Horizon-ctl và MCP trên máy tính này.", + "horizon.pages.split_profiles.tooltip": "Ai chơi: hồ sơ được lưu trong thư mục trò chơi này.", + "horizon.pages.split_setup.tooltip": "Cửa sổ và màn hình, ai chơi ở đâu.", + "horizon.pages.shader_packs.tooltip": "Gói Shader từ thư mục shaderpacks: của Horizon và những gói ở định dạng shader/. Một người chạy một lúc.", + "horizon.pages.mods.tooltip": "Các mod được tạo cho Horizon, từ thư mục Horizon-mods. Mỗi cái chạy trong hộp cát và tắt cho đến khi bạn bật nó lên.", + "horizon.pages.open.graphics": "Đồ họa...", + "horizon.pages.open.graphics_advanced": "Đồ họa nâng cao...", + "horizon.pages.open.shader_packs": "Gói đổ bóng...", + "horizon.pages.open.controller": "Cài đặt bộ điều khiển...", + "horizon.pages.open.split_setup": "Chia đôi màn hình...", + "horizon.pages.open.extras": "Tiện ích bổ sung...", + "horizon.pages.open.mods": "Mod...", + "horizon.pages.open.agent": "Đặc vụ AI...", + "horizon.pages.open.horizon_graphics": "Đồ họa chân trời...", + "horizon.pages.open.controller_binds": "Bộ điều khiển liên kết...", + "horizon.pages.open.horizon_settings": "Cài đặt đường chân trời...", + "horizon.pages.open.music": "Âm nhạc...", + "horizon.mods.empty": "Không có mod: đặt tệp .hmod vào thư mục Horizon-mods", + "horizon.mods.stopped": " (Đã dừng)", + "horizon.mods.not_built": " (Chưa được xây dựng)", + "horizon.mods.dev": " (Nhà phát triển)", + "horizon.mods.settings": "Cài đặt", + "horizon.mods.in_world": " (để thế giới thay đổi)", + "horizon.mods.open_folder": "Mở thư mục Mod", + "horizon.shader_packs.empty": "Không có gói shader: đặt chúng vào thư mục shaderpacks", + "horizon.shader_packs.kind_horizon": " (Chân trời)", + "horizon.shader_options.open": "Tùy chọn đổ bóng...", + "horizon.shader_options.profile": "Hồ sơ", + "horizon.shader_options.loading": "Đọc các tùy chọn của gói đổ bóng...", + "horizon.agent.copy_details": "Sao chép chi tiết kết nối", + "horizon.multiplayer.join": "Tham gia", + "horizon.multiplayer.cancel_reconnecting": "Hủy kết nối lại", + "horizon.multiplayer.join_friend": "Tham gia cùng một người bạn", + "horizon.multiplayer.invite_code": "Mã mời", + "horizon.multiplayer.relay": "Rơle (tùy chọn)", + "Preset": "cài sẵn", + "LOD Distance": "Khoảng cách LOD", + "Far Detail": "Chi tiết xa", + "Cave Culling": "Phá hủy hang động", + "Entity Culling": "Tiêu hủy thực thể", + "Chunk Updates": "Cập nhật đoạn", + "Upload Budget": "Tải lên ngân sách", + "Sky": "bầu trời", + "Fog": "Sương mù", + "Weather": "Thời tiết", + "Animated Textures": "Họa tiết hoạt hình", + "Present Mode": "Chế độ hiện tại", + "Frame Pacing": "Tốc độ khung hình", + "Worker Threads": "Chủ đề công nhân", + "Resolution Scale": "Thang đo độ phân giải", + "Anti-aliasing": "Khử răng cưa", + "Upscaling": "Nâng cấp", + "Paper White": "Giấy trắng", + "Peak Brightness": "Độ sáng cực đại", + "Black Level": "Cấp độ đen", + "UI Brightness": "Độ sáng giao diện người dùng", + "Battery Mode": "Chế độ pin", + "Graphics API": "API đồ họa", + "Translucent Batching": "Trộn mờ", + "Performance Overlay": "Lớp phủ hiệu suất", + "Full Detail Distance": "Khoảng cách chi tiết đầy đủ", + "On": "Bật", + "Off": "Tắt", + "Unlimited": "Không giới hạn", + "Auto": "Tự động", + "Custom": "tùy chỉnh", + "Performance": "Hiệu suất", + "Balanced": "Cân bằng", + "Quality": "chất lượng", + "Ultra": "siêu", + "Ultra Performance": "Hiệu suất cực cao", + "Native": "Bản địa", + "Full": "Đầy đủ", + "Reduced": "Giảm", + "Efficient": "Hiệu quả", + "Precise": "Chính xác", + "Auto (VSync)": "Tự động (VSync)", + "FIFO": "FIFO", + "Mailbox": "Hộp thư", + "Immediate": "ngay lập tức", + "Vulkan": "Vulkan", + "DirectX 12": "DirectX 12", + "OpenGL": "OpenGL", + "FPS and Graph": "FPS và đồ thị", + "FPS": "FPS", + "TAA": "TAA", + "FXAA": "FXAA", + "No cost": "Không mất phí", + "Low cost": "Chi phí thấp", + "Medium cost": "Chi phí trung bình", + "High cost": "Chi phí cao", + "Saves time": "Tiết kiệm thời gian", + "HDR": "HDR", + "Graphics": "đồ họa", + "Done": "Xong", + "This feature is not yet available in Horizon.": "Tính năng này chưa có ở Horizon.", + "Your display or system doesn't offer HDR output.": "Màn hình hoặc hệ thống của bạn không cung cấp đầu ra HDR.", + "Turn HDR on to use it.": "Bật HDR để sử dụng.", + "Your GPU or graphics API doesn't support it.": "GPU hoặc API đồ họa của bạn không hỗ trợ nó.", + "%s chunks": "%s khối", + "%s per frame": "%s mỗi khung hình", + "%s MiB/frame": "%s MiB/khung", + "%s KiB/frame": "%s KiB/khung", + "Auto (%s)": "Tự động (%s)", + "Full-detail terrain range. LOD Distance can extend local worlds farther.": "Phạm vi địa hình đầy đủ chi tiết. Khoảng cách LOD có thể mở rộng thế giới địa phương xa hơn.", + "Coarse distant terrain in local worlds. Integrated GPUs stop at 128 chunks.": "Địa hình xa xôi trong thế giới địa phương. GPU tích hợp dừng ở 128 khối.", + "Reduced draws far terrain coarser: faster on this integrated GPU.": "Giảm khả năng vẽ địa hình ở xa thô hơn: nhanh hơn trên GPU tích hợp này.", + "Reduced draws far terrain coarser, for GPUs it slows down.": "Giảm làm cho địa hình ở xa trở nên thô hơn, đối với GPU thì tốc độ này chậm lại.", + "Field of view. Wider shows more terrain at once.": "Trường nhìn. Rộng hơn hiển thị nhiều địa hình hơn cùng một lúc.", + "Caps frames per second; a cap saves power and heat.": "Giới hạn khung hình mỗi giây; nắp giúp tiết kiệm điện và nhiệt.", + "Waits for the display's refresh: no tearing, a little latency.": "Chờ làm mới màn hình: không bị rách, độ trễ một chút.", + "Size of menus and the HUD.": "Kích thước của menu và HUD.", + "Sets the options below together. Changing one makes it Custom.": "Đặt các tùy chọn bên dưới cùng nhau. Thay đổi một cái sẽ làm cho nó tùy chỉnh.", + "Lava, fire and sunlight shine brighter than white. Needs an HDR display.": "Dung nham, lửa và ánh sáng mặt trời tỏa sáng hơn màu trắng. Cần màn hình HDR.", + "Your display's darkest black. 0 for OLED; LCDs glow a little.": "Màn hình của bạn có màu đen tối nhất. 0 cho OLED; LCD phát sáng một chút.", + "How bright highlights get. Auto: the peak your system reports.": "Làm thế nào sáng nổi bật có được. Tự động: mức cao nhất mà hệ thống của bạn báo cáo.", + "How bright white paper and menus look. Auto: your desktop's white.": "Giấy và menu trắng sáng trông như thế nào. Tự động: màn hình của bạn màu trắng.", + "How bright the HUD and menus are, against paper white.": "HUD và các menu sáng như thế nào so với màu trắng của giấy.", + "How far mobs, crops and machines keep working. CPU time.": "Đám đông, cây trồng và máy móc tiếp tục hoạt động bao xa. thời gian CPU.", + "How far away mobs and items are drawn, as a share of normal.": "Khoảng cách mà mob và vật phẩm được rút ra là một phần bình thường.", + "Skips terrain hidden behind closed sections. Off costs a lot.": "Bỏ qua địa hình ẩn sau các phần đã đóng. Giảm chi phí rất nhiều.", + "Hides entities behind opaque blocks.": "Ẩn các thực thể đằng sau các khối mờ đục.", + "No entity occlusion culling.": "Không loại bỏ thực thể tắc nghẽn.", + "CPU occlusion test runs this frame.": "Kiểm tra tắc nghẽn CPU chạy khung này.", + "Occlusion checks run on a worker thread.": "Kiểm tra tắc nghẽn chạy trên một luồng công nhân.", + "Meshed sections uploaded per frame. Lower is smoother while loading.": "Các phần có lưới được tải lên trên mỗi khung. Thấp hơn là mượt mà hơn trong khi tải.", + "Soft shadows in corners. Costs chunk building time only.": "Bóng mềm ở các góc. Chỉ tốn thời gian xây dựng.", + "Smaller copies of block textures for distant terrain: less shimmer.": "Bản sao nhỏ hơn của kết cấu khối dành cho địa hình ở xa: ít lung linh hơn.", + "Blends grass and water colours across biomes when building chunks.": "Pha trộn màu cỏ và màu nước trên các quần xã khi xây dựng khối.", + "Cloud layer: off, flat (fast) or 3D (fancy).": "Lớp đám mây: tắt, phẳng (nhanh) hoặc 3D (ưa thích).", + "How far clouds reach, in chunks.": "Đám mây bay tới bao xa, theo từng khối.", + "Draws the sky, sun, moon and stars.": "Vẽ bầu trời, mặt trời, mặt trăng và các ngôi sao.", + "Distance fog. Off shows the edge of the loaded world.": "Khoảng cách sương mù. Tắt hiển thị rìa của thế giới được tải.", + "Draws rain and snow.": "Vẽ mưa và tuyết.", + "How far rain and snow fall around you.": "Bao xa mưa và tuyết rơi xung quanh bạn.", + "How many particles effects spawn.": "Có bao nhiêu hạt hiệu ứng sinh ra.", + "Round shadows under mobs and items.": "Bóng tròn dưới mob và vật phẩm.", + "Leaves with see-through gaps. Off draws them solid.": "Lá có khoảng trống nhìn xuyên qua. Tắt kéo họ vững chắc.", + "Sorts water and glass more exactly behind each other.": "Sắp xếp nước và thủy tinh chính xác hơn ở phía sau nhau.", + "Which chunk rebuilds wait for the frame: none, nearby or yours.": "Đoạn nào được xây dựng lại chờ khung: không có, ở gần hoặc của bạn.", + "Animates water, lava, fire and other moving textures.": "Hoạt hình nước, dung nham, lửa và các kết cấu chuyển động khác.", + "World pixels per screen pixel. Below 100% is faster on the GPU.": "Pixel thế giới trên mỗi pixel màn hình. Dưới 100% là nhanh hơn trên GPU.", + "Smooths jagged edges. FXAA: softer. TAA: smoothest, moving things may trail.": "Làm mịn các cạnh lởm chởm. FXAA: nhẹ nhàng hơn. TAA: êm ái nhất, mọi thứ chuyển động có thể bị kéo theo.", + "Renders the world smaller and rebuilds it with TAA. Faster, softer.": "Làm cho thế giới nhỏ hơn và xây dựng lại nó bằng TAA. Nhanh hơn, nhẹ nhàng hơn.", + "HDR output on an HDR display: lava, fire and sunlight shine brighter.": "Đầu ra HDR trên màn hình HDR: dung nham, lửa và ánh sáng mặt trời tỏa sáng hơn.", + "How frames reach the screen while VSync is off.": "Cách các khung hình tiếp cận màn hình khi VSync tắt.", + "Efficient sleeps until the next frame; Precise spins, like vanilla.": "Ngủ hiệu quả cho đến khung hình tiếp theo; Những vòng quay chính xác, giống như vani.", + "Fills the screen (borderless).": "Lấp đầy màn hình (không viền).", + "Brightens dark places.": "Làm sáng những nơi tối tăm.", + "Lowers the frame rate when minimised, or idle too.": "Giảm tốc độ khung hình khi ở mức tối thiểu hoặc khi không hoạt động.", + "Sways the view while walking.": "Thay đổi tầm nhìn khi đi bộ.", + "Fades newly loaded chunks in.": "Làm mờ dần các đoạn mới được tải vào.", + "Darkens the screen's edges.": "Làm tối các cạnh của màn hình.", + "Shows when the world saves.": "Hiển thị khi thế giới cứu.", + "Shows attack cooldown.": "Hiển thị thời gian hồi chiêu của đòn tấn công.", + "60 FPS cap (30 in menus or unfocused), half the workers: less power.": "Giới hạn 60 FPS (30 trong menu hoặc không tập trung), một nửa số công nhân: ít năng lượng hơn.", + "Threads that generate, light and mesh chunks. Next start.": "Các chủ đề tạo ra các khối ánh sáng và lưới. Bắt đầu tiếp theo.", + "Vulkan, then DirectX 12 (Windows) or OpenGL (Linux) where it fails. Next start.": "Vulkan, sau đó là DirectX 12 (Windows) hoặc OpenGL (Linux) bị lỗi. Bắt đầu tiếp theo.", + "Water and glass in one buffer: fewer draw calls, a bit more VRAM. Next start.": "Nước và thủy tinh trong một bộ đệm: ít lệnh gọi rút hơn, nhiều VRAM hơn một chút. Bắt đầu tiếp theo.", + "Mesh data sent to the GPU per frame. Lower is smoother while loading.": "Dữ liệu lưới được gửi tới GPU trên mỗi khung hình. Thấp hơn là mượt mà hơn trong khi tải.", + "Frame rate and frame times over the game, with a graph.": "Tốc độ khung hình và thời gian khung hình trong trò chơi, kèm theo biểu đồ.", + "horizon.multiplayer.finding_friend": "Đang tìm kiếm thế giới của bạn bè bạn...", + "horizon.multiplayer.not_signed_in": "Máy chủ này đang ở chế độ trực tuyến. Đăng nhập bằng tài khoản Microsoft của bạn trong trình khởi chạy Horizon để tham gia.", + "horizon.multiplayer.invalid_address": "Địa chỉ máy chủ không hợp lệ: %s", + "horizon.multiplayer.connected_friend_direct": "Đã kết nối thẳng với bạn bè của bạn...", + "horizon.multiplayer.connected_friend_relay": "Đã kết nối với bạn bè của bạn thông qua rơle...", + "General": "chung", + "Advanced": "Nâng cao", + "Undo": "Hoàn tác", + "Search options": "Tùy chọn tìm kiếm", + "Shortcut": "Phím tắt", + "Distance": "Khoảng cách", + "Display": "Hiển thị", + "Interface": "Giao diện", + "Sky and weather": "Bầu trời và thời tiết", + "Lighting and entities": "Ánh sáng và thực thể", + "Textures": "Kết cấu", + "Image": "Hình ảnh", + "Chunk loading": "Tải từng đoạn", + "Culling": "Loại bỏ", + "Power": "Quyền lực", + "Frames": "Khung", + "Overlay": "Lớp phủ", + "Output": "đầu ra", + "Brightness": "Độ sáng", + "How far you see, the window and the HUD.": "Bạn nhìn thấy bao xa, cửa sổ và HUD.", + "The sky and weather, lighting, textures and the image.": "Bầu trời và thời tiết, ánh sáng, kết cấu và hình ảnh.", + "Chunk loading, culling and power use.": "Tải chunk, loại bỏ và sử dụng năng lượng.", + "How frames reach the screen, and the performance overlay.": "Cách khung hình tiếp cận màn hình và lớp phủ hiệu suất.", + "Brighter-than-white output on an HDR display.": "Đầu ra sáng hơn màu trắng trên màn hình HDR.", + "Results for \"%s\"": "Kết quả cho \"%s\"", + "No settings match.": "Không có cài đặt nào phù hợp.", + "horizon.title.not_affiliated": "Không liên kết với Mojang hoặc Microsoft", + "horizon.extras.header.lighting": "Chiếu sáng", + "horizon.extras.header.third_person": "Người thứ ba", + "horizon.extras.header.particles": "hạt", + "horizon.extras.header.inventory": "Hàng tồn kho", + "horizon.extras.header.chat": "Trò chuyện", + "horizon.extras.header.multiplayer": "Nhiều người chơi", + "horizon.extras.header.sound": "Âm thanh", + "horizon.extras.header.menus": "Thực đơn", + "horizon.extras.fullbright": "Fullbright", + "horizon.extras.dynamic_lights": "Đèn năng động", + "horizon.extras.own_name_tag": "Thẻ tên riêng", + "horizon.extras.hide_block_particles": "Ẩn các hạt phá khối", + "horizon.extras.auto_reconnect": "Tự động kết nối lại", + "horizon.extras.ui_sound_reserve": "Giữ các kênh cho âm thanh giao diện người dùng", + "horizon.extras.music_page": "Trang âm nhạc", + "horizon.extras.mouse_tweaks": "Điều khiển tinh chỉnh chuột", + "horizon.extras.mouse_tweaks_wheel": "Bánh xe cuộn di chuyển các mục", + "horizon.extras.sort": "Nút sắp xếp", + "horizon.extras.sort_key": "Phím sắp xếp", + "horizon.extras.no_ai": "Không có AI", + "horizon.extras.agent_control": "Kiểm soát đại lý", + "horizon.extras.discord_presence": "Sự hiện diện phong phú của Discord", + "horizon.extras.splitscreen": "màn hình chia nhỏ", + "horizon.extras.chat_animation": "Trò chuyện mượt mà", + "horizon.extras.chat_indicator": "Chỉ báo tin nhắn", + "horizon.extras.wheel_cycles_settings": "Bánh xe cuộn thay đổi cài đặt", + "horizon.extras.pack_browser": "Trình duyệt gói tài nguyên", + "horizon.extras.fullbright.tooltip": "Hiển thị các khối và thực thể ở mức ánh sáng đầy đủ, ngay cả trong vùng tối.", + "horizon.extras.dynamic_lights.tooltip": "Đuốc và các nguồn sáng khác được giữ, thả hoặc đốt sẽ chiếu sáng các khối xung quanh chúng.", + "horizon.extras.own_name_tag.tooltip": "Hiển thị tên của bạn phía trên đầu ở ngôi thứ ba, như những người chơi khác nhìn thấy. Ẩn khi máy chủ ẩn tên nhóm của bạn hoặc bạn vô hình.", + "horizon.extras.hide_block_particles.tooltip": "Ẩn các mảnh vụn vỡ ra từ một khối bị vỡ và vỡ vụn ra khỏi khối bạn khai thác. Các hạt khác ở lại.", + "horizon.extras.auto_reconnect.tooltip": "Tham gia lại máy chủ sau khi mất kết nối hoặc khởi động lại, không bao giờ sau khi bị kick hoặc ban.", + "horizon.extras.ui_sound_reserve.tooltip": "Âm thanh trên thế giới để lại 16 trong số 247 kênh âm thanh miễn phí, do đó, một lượng lớn chúng (một vụ nổ lớn) không thể làm im lặng những cú nhấp chuột vào menu.", + "horizon.extras.music_page.tooltip": "Âm nhạc & Âm thanh có trang Âm nhạc...: phát bất kỳ bản nhạc tích hợp nào ngay bây giờ hoặc tắt một bản nhạc để trò chơi ngừng chọn bản nhạc đó. Không có gì thay đổi cho đến khi bạn tắt một bản nhạc.", + "horizon.extras.mouse_tweaks.tooltip": "Kéo phải đặt một vị trí trên mỗi ô, kéo trái sẽ tập hợp vật phẩm đã giữ, Shift + kéo trái sẽ di chuyển từng ô.", + "horizon.extras.mouse_tweaks_wheel.tooltip": "Xuống gửi một mục của khe sang phía bên kia, lên mang một mục trở lại.", + "horizon.extras.sort.tooltip": "Sắp xếp kho, rương, thùng, rương ender và hộp shulker theo thứ tự tab sáng tạo, hợp nhất các ngăn xếp.", + "horizon.extras.sort_key.tooltip": "Sắp xếp phần dưới con trỏ. Nhấp, sau đó nhấn một phím; Thoát khỏi ràng buộc nó.", + "horizon.extras.no_ai.tooltip": "Ẩn và tắt mọi tính năng AI: kiểm soát tác nhân, Horizon-ctl và máy chủ MCP. Công tắc của launcher cũng vậy.", + "horizon.extras.agent_control.tooltip": "Tác nhân AI của riêng bạn chỉ có thể chơi trò chơi này thông qua Horizon-ctl hoặc ứng dụng khách MCP, trên máy tính này.", + "horizon.extras.discord_presence.tooltip": "Hiển thị Playing Horizon trên hồ sơ Discord của bạn trong khi Discord chạy: menu, trình phát đơn hoặc nhiều người chơi, kích thước và thời gian chơi. Không bao giờ có tên thế giới hoặc địa chỉ máy chủ.", + "Calibrate...": "Hiệu chỉnh...", + "Calibrate Anyway...": "Hiệu chỉnh dù sao...", + "Use Automatic Setup": "Sử dụng thiết lập tự động", + "Shortcut: %s": "Phím tắt: %s", + "Next": "Tiếp theo", + "HDR Calibration %s/%s: %s": "Hiệu chỉnh HDR %s/%s: %s", + "Sets the three below full screen, one test picture at a time.": "Đặt ba hình ảnh bên dưới toàn màn hình, mỗi lần một hình ảnh thử nghiệm.", + "A key that opens this screen from the game. Not bound at first.": "Một chiếc chìa khóa mở màn hình này từ trò chơi. Lúc đầu không bị ràng buộc.", + "Your display didn't say how bright it gets: calibrate to set it up.": "Màn hình của bạn không cho biết độ sáng: hãy hiệu chỉnh để thiết lập.", + "Already set up for your display. Only calibrate if HDR looks wrong.": "Đã được thiết lập cho màn hình của bạn. Chỉ hiệu chỉnh nếu HDR có vẻ sai.", + "Puts Peak Brightness and Paper White back to your display's setup.": "Đưa Độ sáng tối đa và Giấy trắng trở lại thiết lập màn hình của bạn.", + "Set up for your display. Leave on Auto unless it looks wrong.": "Thiết lập cho màn hình của bạn. Để ở chế độ Tự động trừ khi có vẻ sai.", + "Lower it until the logo just disappears into the black.": "Hạ thấp nó cho đến khi logo biến mất thành màu đen.", + "Raise it until the logo just disappears into the bright square.": "Nâng nó lên cho đến khi logo vừa biến mất vào hình vuông sáng.", + "Make the card a white that's comfortable to look at for a long time, in the light you play in.": "Làm cho lá bài có màu trắng để bạn có thể thoải mái nhìn trong thời gian dài dưới ánh sáng bạn chơi.", + "horizon.splitscreen.profiles.forget": "quên đi", + "horizon.splitscreen.profiles.create": "Tạo", + "horizon.splitscreen.profiles.you": " - bạn", + "horizon.splitscreen.profiles.forget_named": "Quên %s", + "horizon.splitscreen.profiles.previous": "trước đó", + "horizon.splitscreen.profiles.next": "Tiếp theo", + "horizon.splitscreen.profiles.new_button": "Hồ sơ mới...", + "horizon.splitscreen.profiles.forget_title": "Quên hồ sơ?", + "horizon.splitscreen.profiles.forget_leaves": "Nó rời khỏi danh sách của trường hợp này.", + "horizon.splitscreen.profiles.forget_kept": "Tiến bộ và cài đặt thế giới được lưu giữ.", + "horizon.splitscreen.profiles.new_title": "Hồ sơ mới", + "horizon.splitscreen.profiles.name_hint": "Tên (3 đến 16 chữ cái, chữ số, _)", + "horizon.splitscreen.profiles.switch_title": "Chuyển hồ sơ", + "horizon.splitscreen.profiles.offline_note": "Hồ sơ ngoại tuyến thuộc về trường hợp này", + "horizon.splitscreen.profiles.move": "Di chuyển đến nơi bạn chơi", + "horizon.splitscreen.profiles.move_place": "Di chuyển đến nơi bạn chơi: %s", + "horizon.friends.title": "Chơi với bạn bè", + "horizon.friends.hint": "Bạn bè dán mã sau nút Bạn bè của màn hình tiêu đề, trong Kết nối Trực tiếp hoặc trên trang Play của trình khởi chạy.", + "horizon.friends.copied": "Đã sao chép", + "horizon.friends.copy_code": "Sao chép mã", + "horizon.friends.stop_sharing": "Dừng chia sẻ", + "horizon.friends.none_yet": "Chưa có bạn bè ở đây.", + "horizon.friends.here_now": "Ở đây bây giờ: %s", + "horizon.friends.share_intro": "Chia sẻ thế giới này đằng sau mã mời: nó mở ra mạng LAN và bạn bè trên internet tham gia bằng mã. Không có máy chủ của chúng tôi có liên quan.", + "horizon.friends.start_sharing": "Bắt đầu chia sẻ", + "horizon.friends.troubleshooting": "Đang khắc phục sự cố...", + "horizon.friends.stopped": "Đã dừng chia sẻ mã mời.", + "horizon.friends.short_code_changed": "Ai đó liên tục thử sai mã ngắn nên nó đã thay đổi.", + "horizon.friends.wrong_code": "Ai đó đã thử nhập sai mã.", + "horizon.friends.code_ready": "Mã mời của bạn đã sẵn sàng: Menu trò chơi, Chơi cùng bạn bè. Sao chép nó và gửi cho bạn bè của bạn.", + "horizon.friends.share_failed": "Không thể chia sẻ thế giới: %s", + "horizon.friends.finding_route": "Đang tìm cách bạn bè có thể liên hệ với bạn…", + "horizon.osk.shift": "ca", + "horizon.osk.space": "không gian", + "horizon.osk.delete": "Xóa", + "horizon.osk.type": "Loại", + "horizon.osk.symbols": "Biểu tượng", + "horizon.osk.close": "Đóng", + "horizon.extras.chat_animation.tooltip": "Một dòng trò chuyện mới trượt vào từ bên trái trong khi nó mờ dần thay vì xuất hiện nguyên vẹn.", + "horizon.extras.chat_indicator.tooltip": "Thanh màu ở bên trái dòng trò chuyện.", + "horizon.extras.wheel_cycles_settings.tooltip": "Con lăn qua một nút trong cài đặt sẽ thay đổi giá trị của nó, như trong vanilla. Tắt, bánh xe chỉ cuộn danh sách.", + "horizon.extras.pack_browser.tooltip": "Chọn Gói tài nguyên sẽ có nút Thêm để tìm kiếm Modrinth và cài đặt gói vào thư mục gói của bạn. Tắt, trò chơi không bao giờ liên lạc với Modrinth.", + "horizon.extras.splitscreen.tooltip": "Trong một thế giới, một bộ điều khiển khác có thể tham gia với tư cách là người chơi mới: nhấn A khi được yêu cầu, sau đó chọn hồ sơ và nơi chơi.", + "horizon.splitscreen.setup.monitor": "Giám sát %s", + "horizon.splitscreen.setup.monitor_unknown": "một màn hình", + "horizon.splitscreen.setup.window": "Cửa sổ %s", + "horizon.splitscreen.setup.new_window": "Cửa sổ mới", + "horizon.splitscreen.setup.fill_monitor": "Điền %s", + "horizon.splitscreen.setup.done": "Xong", + "horizon.splitscreen.setup.switch": "%s: %s", + "horizon.splitscreen.setup.on": "Bật", + "horizon.splitscreen.setup.off": "Tắt", + "horizon.splitscreen.setup.player": "Người chơi %s", + "horizon.splitscreen.setup.revert": "Hoàn nguyên", + "horizon.splitscreen.setup.apply": "Áp dụng", + "horizon.splitscreen.setup.warning.empty_main": "Không ai chơi trong Cửa sổ 1: nó ẩn", + "horizon.splitscreen.setup.warning.empty_close": "Không ai chơi trong Cửa sổ %s: nó đóng khi Áp dụng", + "horizon.splitscreen.setup.warning.empty_new": "Không ai chơi trong Window %s: nó không mở", + "horizon.splitscreen.setup.warning.on_main": "Cửa sổ %s lấp đầy màn hình của Cửa sổ 1: người chơi của nó chơi trong Cửa sổ 1", + "horizon.splitscreen.setup.warning.unplugged": "Màn hình của Cửa sổ %s không được kết nối: người chơi của nó chơi trong Cửa sổ 1", + "horizon.splitscreen.setup.status.off": "Màn hình chia nhỏ đã tắt.", + "horizon.splitscreen.setup.status.enable_hint": "Bật nó lên, sau đó nhấn nút trên bộ điều khiển khác trong thế giới.", + "horizon.splitscreen.setup.status.join_hint": "Nhấn A để tham gia và chọn một hồ sơ.", + "horizon.splitscreen.setup.status.idle": "Màn hình chia nhỏ không hoạt động", + "horizon.splitscreen.setup.status.alone": "Không có người chơi địa phương khác.", + "horizon.splitscreen.setup.status.solo_controls": "Điều khiển solo và phản hồi của bộ điều khiển không thay đổi.", + "horizon.splitscreen.setup.window_empty": "Cửa sổ %s: trống", + "horizon.splitscreen.setup.note.select": "Nhấp vào trình phát hoặc kéo trình phát đó vào cửa sổ hoặc màn hình.", + "horizon.splitscreen.setup.note.apply": "Áp dụng để chơi theo cách này, Hoàn nguyên để hoàn tác.", + "horizon.splitscreen.setup.note.place": "%s nên chơi ở đâu?", + "horizon.splitscreen.setup.this_player": "người chơi này", + "horizon.splitscreen.setup.switch_disabled": "Màn hình chia nhỏ sẽ tắt khi những người khác đã rời khỏi (menu tạm dừng của họ).", + "horizon.splitscreen.setup.window_place": "Cửa sổ %s (%s trong số %s)", + "horizon.splitscreen.setup.names": "Tên", + "horizon.splitscreen.setup.identify": "Xác định", + "horizon.splitscreen.setup.layout.two": "2 chia sẻ: %s", + "horizon.splitscreen.setup.layout.three": "3 chia sẻ: %s", + "horizon.splitscreen.setup.layout.two.0": "Tự động", + "horizon.splitscreen.setup.layout.two.1": "Bên cạnh nhau", + "horizon.splitscreen.setup.layout.two.2": "Trên và dưới", + "horizon.splitscreen.setup.layout.three.0": "Một rộng trên đầu", + "horizon.splitscreen.setup.layout.three.1": "Một người cao bên trái", + "horizon.splitscreen.setup.layout.three.2": "Bên cạnh nhau", + "horizon.splitscreen.setup.help.player": "Nhấp hoặc kéo %s để di chuyển chúng.", + "horizon.splitscreen.setup.help.layout_auto": "%s (cạnh nhau khi cửa sổ rộng). Nhấn để thay đổi.", + "horizon.splitscreen.setup.help.layout": "%s. Nhấn để thay đổi.", + "horizon.splitscreen.setup.help.switch": "Chia màn hình cho máy tính này, bật hoặc tắt.", + "horizon.splitscreen.setup.help.identify": "Chế độ xem của mỗi người chơi hiển thị cửa sổ đó.", + "horizon.splitscreen.setup.help.names": "Tên của mỗi người chơi ở góc nhìn của họ.", + "horizon.splitscreen.setup.help.revert": "Hoàn tác những thay đổi chưa được áp dụng.", + "horizon.splitscreen.setup.help.apply": "Chơi theo cách bản đồ hiển thị.", + "horizon.splitscreen.setup.help.unchanged": "Vẫn chưa có gì thay đổi.", + "horizon.splitscreen.setup.give_up_pad": "Bỏ cuộc", + "horizon.splitscreen.prompt.controller_connected": "Đã kết nối bộ điều khiển", + "horizon.splitscreen.prompt.controller_disconnected": "Bộ điều khiển bị ngắt kết nối", + "horizon.splitscreen.prompt.controller_disconnected.hint": "Kết nối lại hoặc nhấn nút trên thiết bị khác", + "horizon.splitscreen.prompt.join.one": "%s muốn tham gia", + "horizon.splitscreen.prompt.join.many": "%s người điều khiển muốn tham gia", + "horizon.splitscreen.prompt.join.yes": "Tham gia", + "horizon.splitscreen.prompt.join.as_p1": "Chơi như P1", + "horizon.splitscreen.prompt.join.no": "Không", + "horizon.splitscreen.prompt.lost": "%s: bộ điều khiển bị ngắt kết nối", + "horizon.splitscreen.prompt.lost.use_another": "Sử dụng cái khác", + "horizon.splitscreen.prompt.lost.leave": "Rời khỏi", + "horizon.splitscreen.setup.help.give_up_pad": "Bộ điều khiển của bạn ngừng điều khiển bạn và được đề nghị tham gia (A).", + "horizon.splitscreen.setup.note.held_at": "%s đến %s: A thả ở đây, B đặt lại.", + "horizon.splitscreen.setup.note.held": "%s nhặt lên: trái/phải nhặt ở đâu, A đánh rơi, B đặt lại.", + "Hides models behind opaque blocks. Async checks off-thread; entities tick.": "Ẩn các mô hình đằng sau các khối mờ đục. Async kiểm tra ngoài luồng; thực thể đánh dấu.", + "Block Entities": "Khối thực thể", + "Shulker Boxes": "Hộp Shulker", + "Reuses settled boxes; lid movement stays animated.": "Tái sử dụng các hộp đã được giải quyết; chuyển động của nắp vẫn hoạt hình.", + "Signs": "Dấu hiệu", + "Reuses sign text until text, light, or font changes.": "Tái sử dụng văn bản ký tên cho đến khi văn bản, ánh sáng hoặc phông chữ thay đổi.", + "Decorated Pots": "Chậu trang trí", + "Reuses still pots; break wobble and sherd changes redraw.": "Tái sử dụng chậu; phá vỡ sự lung lay và thay đổi mảnh ghép vẽ lại.", + "Bells": "chuông", + "Reuses still bells; ringing stays animated.": "Tái sử dụng vẫn chuông; chuông vẫn hoạt hình.", + "Chests": "Rương", + "Reuses closed chests; moving lids stay animated.": "Tái sử dụng các rương đã đóng; nắp di chuyển vẫn hoạt hình.", + "Banners": "Biểu ngữ", + "Reuses poles; flags and pattern layers still update.": "Tái sử dụng cột; cờ và các lớp mẫu vẫn cập nhật.", + "Copper Golem Statues": "Tượng Golem bằng đồng", + "Reuses statue geometry until its block state changes.": "Tái sử dụng hình học của bức tượng cho đến khi trạng thái khối của nó thay đổi.", + "Leaf Culling": "Loại bỏ lá", + "Every leaf face. Vanilla's fancy leaves.": "Mỗi mặt lá. Những chiếc lá lạ mắt của vani.", + "Distant Plant Dither": "Hòa sắc thực vật xa xôi", + "Keeps fine plants in high-res packs from fading far away.": "Giữ cho những cây đẹp trong gói có độ phân giải cao không bị phai màu ở xa.", + "Screenshot Quality": "Chất lượng ảnh chụp màn hình", + "F2 screenshots at this many times the game's resolution. Higher takes longer.": "Ảnh chụp màn hình F2 lúc này gấp nhiều lần độ phân giải của trò chơi. Cao hơn mất nhiều thời gian hơn.", + "Frame Generation": "Tạo khung", + "Shows a made-up frame between each two real ones: smoother, a little more lag.": "Hiển thị khung hình tạo sẵn giữa hai khung hình thực: mượt mà hơn, độ trễ hơn một chút.", + "Shadow Cache": "Bộ nhớ đệm bóng tối", + "Reuses the pack shadow map when sun, view and world match. Off by default.": "Tái sử dụng bản đồ bóng gói khi mặt trời, chế độ xem và thế giới khớp với nhau. Tắt theo mặc định.", + "Find BlueMap": "Tìm BlueMap", + "On servers, finds their BlueMap web map for far terrain. Next join.": "Trên máy chủ, tìm bản đồ web BlueMap của họ cho địa hình xa. Tiếp theo tham gia.", + "BlueMap Radius": "Bán kính BlueMap", + "How far around you BlueMap tiles are downloaded. Next join.": "Khoảng cách xung quanh bạn các ô BlueMap được tải xuống. Tiếp theo tham gia.", + "Synchronous": "Đồng bộ", + "Asynchronous": "Không đồng bộ", + "Solid": "chất rắn", + "Solid Aggressive": "Rắn hung hăng", + "Hollow": "Rỗng", + "Leaves fully inside a canopy draw solid: fewer see-through layers.": "Lá hoàn toàn bên trong tán cây có khả năng kéo chắc chắn: ít lớp nhìn xuyên qua hơn.", + "Leaves with one open side draw solid too: faster, chunkier edges.": "Những chiếc lá có một mặt mở cũng vẽ chắc chắn: các mép lá nhanh hơn, dày hơn.", + "Drops faces between leaves: faster, but gaps look through.": "Thả mặt giữa các lá: nhanh hơn, nhưng có khoảng trống nhìn xuyên qua.", + "Hotbar: Previous Slot": "Hotbar: Khe cắm trước đó", + "Hotbar: Next Slot": "Thanh nóng: Khe tiếp theo", + "horizon.agent.connected.one": "Đã kết nối: 1 kết nối đại lý", + "horizon.agent.connected.many": "Đã kết nối: %s kết nối đại lý", + "horizon.agent.connected.one_ago": "Đã kết nối: 1 kết nối tác nhân, lệnh cuối cùng %s s trước", + "horizon.agent.connected.many_ago": "Đã kết nối: %s kết nối đại lý, lệnh cuối cùng %s s trước", + "horizon.agent.waiting": "Đang chờ đại lý.", + "horizon.agent.off": "Tắt: đại lý không thể truy cập trò chơi này.", + "horizon.agent.session_opened": "Được mở cho phiên này bởi chương trình đã bắt đầu trò chơi.", + "horizon.agent.socket": "Ổ cắm: %s (sao chép chi tiết đường dẫn đầy đủ của nó)", + "horizon.agent.local_only": "Chỉ cục bộ: các đại lý trên máy tính này, không bao giờ trên mạng.", + "%s nits": "%s trứng chí", + "Auto (%s nits)": "Tự động (%s nits)", + "%.2f nits": "%.2f trứng chí", + "Hides models behind opaque blocks. Entities update. Off with custom packs.": "Ẩn các mô hình đằng sau các khối mờ đục. Cập nhật thực thể. Tắt với các gói tùy chỉnh.", + "horizon.extras.repro_keys": "Phím tắt ghi âm", + "horizon.extras.repro_keys.tooltip": "F3+R bắt đầu hoặc dừng ghi lại và F3+E ghi gói của nó. Tắt theo mặc định: bản ghi sẽ sao chép thế giới.", + "horizon.agent.record_session": "Bắt đầu phiên ghi âm", + "horizon.agent.record_stop": "Dừng ghi phiên", + "horizon.agent.export_repro": "Xuất gói Repro", + "horizon.repro.started": "Quá trình ghi bắt đầu; F3+R dừng nó và ghi gói.", + "horizon.repro.stopped": "Đã dừng ghi: %s", + "horizon.repro.bundle": "Gói tái bản: %s", + "horizon.repro.error": "Đại diện: %s", + "horizon.repro.no_recording": "Chưa có bản ghi nào để xuất.", + "horizon.repro.replay_started": "Đã bắt đầu phát lại: %s", + "horizon.pack.add": "+", + "horizon.pack.addInfo": "Thêm gói tài nguyên từ Modrinth", + "horizon.pack.addWorking": "Hỏi Modrinth...", + "horizon.pack.addNone": "Không tìm thấy gói tài nguyên nào", + "horizon.pack.addTitle": "Thêm gói tài nguyên", + "horizon.pack.install": "cài đặt", + "horizon.pack.installing": "Đang cài đặt", + "horizon.pack.installed": "Đã cài đặt", + "horizon.pack.search": "Tìm kiếm", + "horizon.pack.searchHint": "Tìm kiếm Modrinth...", + "horizon.pack.filters": "Bộ lọc", + "horizon.pack.filter.realistic": "thực tế", + "horizon.pack.filter.simplistic": "đơn giản", + "horizon.pack.filter.vanillaLike": "Giống vani", + "horizon.pack.filter.x16": "16x", + "horizon.pack.filter.x32": "32x", + "horizon.pack.filter.x64": "64x", + "horizon.pack.addFailed": "Không thể thêm gói: %s", + "horizon.extras.header.cosmetics": "Mỹ phẩm", + "horizon.extras.cosmetics_mine": "Mỹ phẩm của tôi", + "horizon.extras.cosmetics_mine.tooltip": "Ẩn: mọi người chơi Horizon đều nhìn thấy bạn mà không có mỹ phẩm, bao gồm cả bạn. Công tắc tương tự như Tủ quần áo của bệ phóng.", + "horizon.extras.cosmetics_others": "Mỹ phẩm của người chơi khác", + "horizon.extras.cosmetics_others.tooltip": "Những gì người chơi Horizon khác mặc: mọi thứ, chỉ kiểu thẻ tên của họ hoặc không có gì. Ẩn, trò chơi không bao giờ hỏi họ mặc gì.", + "horizon.extras.cosmetics_auras": "Hào quang và dấu vết của người khác", + "horizon.extras.cosmetics_auras.tooltip": "Hào quang và đường mòn mà người chơi khác mặc. Tắt theo mặc định.", + "horizon.extras.cosmetics.shown": "Đã hiển thị", + "horizon.extras.cosmetics.hidden": "Ẩn", + "horizon.extras.cosmetics.name_tags": "Chỉ gắn thẻ tên" +} From d8e6f2b3546b7fb8ea82145590102e639cc6f76b Mon Sep 17 00:00:00 2001 From: dontstopgorkingit <268053046+dontstopgorkingit@users.noreply.github.com> Date: Tue, 3 Nov 2026 16:22:51 +0100 Subject: [PATCH 14/70] =?UTF-8?q?Add=20=E0=B9=84=E0=B8=97=E0=B8=A2=20(th?= =?UTF-8?q?=5Fth)=20game=20translation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bundles Horizon's own ไทย strings so th_th players see translated menus and options instead of the English fallback. Co-Authored-By: DeepSeek V4.1 Flash Free --- crates/horizon-client-core/src/lang.rs | 3 + .../assets/horizon/lang/th_th.json | 508 ++++++++++++++++++ 2 files changed, 511 insertions(+) create mode 100644 crates/horizon-client/assets/horizon/lang/th_th.json diff --git a/crates/horizon-client-core/src/lang.rs b/crates/horizon-client-core/src/lang.rs index 9ad3c155b6..31b1d08cbe 100644 --- a/crates/horizon-client-core/src/lang.rs +++ b/crates/horizon-client-core/src/lang.rs @@ -100,6 +100,9 @@ impl ResourceSource for Bundled { "assets/horizon/lang/ur_pk.json" => { include_str!("../../horizon-client/assets/horizon/lang/ur_pk.json") } + "assets/horizon/lang/th_th.json" => { + include_str!("../../horizon-client/assets/horizon/lang/th_th.json") + } "assets/horizon/lang/de_de.json" | "assets/horizon/lang/de_at.json" => { include_str!("../../horizon-client/assets/horizon/lang/de_de.json") } diff --git a/crates/horizon-client/assets/horizon/lang/th_th.json b/crates/horizon-client/assets/horizon/lang/th_th.json new file mode 100644 index 0000000000..e6203b2d3c --- /dev/null +++ b/crates/horizon-client/assets/horizon/lang/th_th.json @@ -0,0 +1,508 @@ +{ + "horizon.options.controller": "คอนโทรลเลอร์", + "horizon.options.vibration": "การสั่นสะเทือน", + "horizon.options.adaptive_triggers": "ทริกเกอร์แบบปรับตัว", + "horizon.options.lightbar": "แถบไฟ", + "horizon.options.look_sensitivity": "ดูอ่อนไหว", + "horizon.options.invert_x": "สลับลุค X", + "horizon.options.invert_y": "สลับลุค Y", + "horizon.options.sneak_button": "ปุ่มแอบ", + "horizon.options.move_deadzone": "ย้ายเดดโซน", + "horizon.options.look_deadzone": "ดูเดดโซนสิ", + "horizon.options.button_glyphs": "ปุ่มสัญลักษณ์", + "horizon.options.menu_navigation": "การนำทางเมนู", + "horizon.options.on_screen_keyboard": "แป้นพิมพ์บนหน้าจอ", + "horizon.options.chat_delay": "แชทล่าช้า", + "horizon.options.lightbar.health": "สุขภาพ", + "horizon.options.lightbar.dimension": "มิติข้อมูล", + "horizon.options.glyphs.auto": "อัตโนมัติ", + "horizon.options.glyphs.xbox": "เอกซ์บอกซ์", + "horizon.options.glyphs.playstation": "เพลย์สเตชัน", + "horizon.options.glyphs.nintendo": "นินเทนโด", + "horizon.options.menu_focus": "โฟกัส", + "horizon.options.menu_pointer": "ตัวชี้", + "horizon.options.keyboard.auto": "อัตโนมัติ", + "horizon.options.keyboard.horizon": "ขอบฟ้า", + "horizon.options.keyboard.steam": "ไอน้ำ", + "horizon.options.unavailable": "ฟีเจอร์นี้ยังไม่มีให้บริการใน Horizon", + "horizon.options.search": "การตั้งค่าการค้นหา...", + "horizon.pages.mods": "ม็อด", + "horizon.pages.shader_packs": "เชเดอร์แพ็ก", + "horizon.pages.shader_options": "ตัวเลือกเชเดอร์", + "horizon.pages.controller": "การตั้งค่าคอนโทรลเลอร์", + "horizon.pages.controller_binds": "ตัวควบคุมผูก", + "horizon.pages.extras": "ฮอไรซอน เอ็กซ์ตร้าส์", + "horizon.pages.settings": "การตั้งค่าขอบฟ้า", + "horizon.pages.agent": "ตัวแทนเอไอ", + "horizon.split.leave": "ลาออก", + "horizon.pages.split_settings": "การตั้งค่าการแบ่งหน้าจอ", + "horizon.pages.split_profiles": "ใครกำลังเล่นอยู่?", + "horizon.pages.split_setup": "การตั้งค่าแยกหน้าจอ", + "horizon.pages.music": "ดนตรี", + "horizon.pages.music.menu": "เมนู", + "horizon.pages.music.overworld": "โอเวอร์เวิลด์", + "horizon.pages.music.creative": "สร้างสรรค์", + "horizon.pages.music.underwater": "ใต้น้ำ", + "horizon.pages.music.end": "จุดจบ", + "horizon.pages.music.boss": "บอส", + "horizon.pages.music.credits": "เครดิต", + "horizon.pages.music.overworld_biomes": "สิ่งมีชีวิตเหนือโลก", + "horizon.pages.music.nether_biomes": "นิเวศน์วิทยา", + "horizon.pages.music.end_biomes": "สิ้นสุดชีวนิเวศ", + "horizon.pages.music.other": "เพลงอื่นๆ", + "horizon.pages.music.empty": "ไม่มีแทร็กเพลง: เสียงของเกมไม่ได้โหลด", + "horizon.pages.music.tooltip": "แทร็กในตัวตามสถานการณ์: เล่นตอนนี้หรือปิดแทร็กใด ๆ เพื่อที่เกมจะหยุดเลือก", + "horizon.pages.settings.tooltip": "การตั้งค่าของ Horizon: กราฟิก คอนโทรลเลอร์ ส่วนเสริม และม็อด", + "horizon.pages.graphics.tooltip": "กราฟิกง่ายๆ: แต่ละการตั้งค่าบอกว่ามีค่าใช้จ่ายเท่าไร", + "horizon.pages.graphics_advanced.tooltip": "การตั้งค่ากราฟิกทุกรายการ รวมไปถึง Horizon แล้ว ราคาแต่ละอย่าง", + "horizon.pages.controller.tooltip": "ตัวควบคุม: ปุ่ม แท่ง การสั่น และการนำทางเมนู", + "horizon.pages.extras.tooltip": "ตัวเลือกเพิ่มเติม ปิดทั้งหมดตามค่าเริ่มต้น: เกมจะคงอยู่จนกว่าคุณจะเปิด", + "horizon.pages.agent.tooltip": "ให้ตัวแทน AI ของคุณเล่น: ไคลเอนต์ Horizon-ctl และ MCP บนคอมพิวเตอร์เครื่องนี้", + "horizon.pages.split_profiles.tooltip": "ใครเล่น: โปรไฟล์ที่เก็บไว้ในโฟลเดอร์เกมนี้", + "horizon.pages.split_setup.tooltip": "หน้าต่างและจอภาพและใครเล่นที่ไหน", + "horizon.pages.shader_packs.tooltip": "ชุด Shader จากโฟลเดอร์ shaderpacks: ของ Horizon และที่อยู่ในรูปแบบ shaders/ หนึ่งวิ่งในแต่ละครั้ง", + "horizon.pages.mods.tooltip": "Mods ที่สร้างขึ้นสำหรับ Horizon จากโฟลเดอร์ Horizon-Mods แต่ละอันทำงานในแซนด์บ็อกซ์และปิดอยู่จนกว่าคุณจะเปิดใช้งาน", + "horizon.pages.open.graphics": "กราฟิก...", + "horizon.pages.open.graphics_advanced": "กราฟิกขั้นสูง...", + "horizon.pages.open.shader_packs": "เชเดอร์แพ็ค...", + "horizon.pages.open.controller": "การตั้งค่าตัวควบคุม...", + "horizon.pages.open.split_setup": "แยกหน้าจอ...", + "horizon.pages.open.extras": "อุปกรณ์เสริม...", + "horizon.pages.open.mods": "ม็อด...", + "horizon.pages.open.agent": "ตัวแทนเอไอ...", + "horizon.pages.open.horizon_graphics": "ฮอไรซอน กราฟฟิก...", + "horizon.pages.open.controller_binds": "คอนโทรลเลอร์ผูก...", + "horizon.pages.open.horizon_settings": "การตั้งค่าขอบฟ้า...", + "horizon.pages.open.music": "ดนตรี...", + "horizon.mods.empty": "ไม่มี mods: ใส่ไฟล์ .hmod ลงในโฟลเดอร์ Horizon-mods", + "horizon.mods.stopped": " (หยุดแล้ว)", + "horizon.mods.not_built": " (ไม่ได้สร้าง)", + "horizon.mods.dev": " (เดฟ)", + "horizon.mods.settings": "การตั้งค่า", + "horizon.mods.in_world": " (ปล่อยให้โลกเปลี่ยนแปลง)", + "horizon.mods.open_folder": "เปิดโฟลเดอร์ Mod", + "horizon.shader_packs.empty": "ไม่มีแพ็คเชเดอร์: ใส่ไว้ในโฟลเดอร์เชเดอร์แพ็ก", + "horizon.shader_packs.kind_horizon": " (ขอบฟ้า)", + "horizon.shader_options.open": "ตัวเลือกเชเดอร์...", + "horizon.shader_options.profile": "โปรไฟล์", + "horizon.shader_options.loading": "กำลังอ่านตัวเลือกของแพ็คเชเดอร์...", + "horizon.agent.copy_details": "คัดลอกรายละเอียดการเชื่อมต่อ", + "horizon.multiplayer.join": "เข้าร่วม", + "horizon.multiplayer.cancel_reconnecting": "ยกเลิกการเชื่อมต่อใหม่", + "horizon.multiplayer.join_friend": "เข้าร่วมเป็นเพื่อน", + "horizon.multiplayer.invite_code": "รหัสเชิญ", + "horizon.multiplayer.relay": "รีเลย์ (อุปกรณ์เสริม)", + "Preset": "ที่ตั้งไว้ล่วงหน้า", + "LOD Distance": "ระยะทางลอด", + "Far Detail": "รายละเอียดไกล", + "Cave Culling": "การคัดแยกถ้ำ", + "Entity Culling": "การคัดแยกเอนทิตี", + "Chunk Updates": "การอัปเดตก้อน", + "Upload Budget": "อัปโหลดงบประมาณ", + "Sky": "ท้องฟ้า", + "Fog": "หมอก", + "Weather": "สภาพอากาศ", + "Animated Textures": "พื้นผิวเคลื่อนไหว", + "Present Mode": "โหมดปัจจุบัน", + "Frame Pacing": "การเว้นจังหวะของเฟรม", + "Worker Threads": "กระทู้คนงาน", + "Resolution Scale": "ระดับความละเอียด", + "Anti-aliasing": "ต่อต้านนามแฝง", + "Upscaling": "การขยายขนาด", + "Paper White": "กระดาษขาว", + "Peak Brightness": "ความสว่างสูงสุด", + "Black Level": "ระดับสีดำ", + "UI Brightness": "ความสว่าง UI", + "Battery Mode": "โหมดแบตเตอรี่", + "Graphics API": "กราฟิกเอพีไอ", + "Translucent Batching": "การผสมแบบโปร่งแสง", + "Performance Overlay": "การซ้อนทับประสิทธิภาพ", + "Full Detail Distance": "ระยะทางรายละเอียดเต็ม", + "On": "เปิด", + "Off": "ปิด", + "Unlimited": "ไม่จำกัด", + "Auto": "อัตโนมัติ", + "Custom": "กำหนดเอง", + "Performance": "ประสิทธิภาพ", + "Balanced": "สมดุล", + "Quality": "คุณภาพ", + "Ultra": "อัลตร้า", + "Ultra Performance": "ประสิทธิภาพขั้นสูงสุด", + "Native": "พื้นเมือง", + "Full": "เต็ม", + "Reduced": "ลดลง", + "Efficient": "มีประสิทธิภาพ", + "Precise": "แม่นยำ", + "Auto (VSync)": "อัตโนมัติ (VSync)", + "FIFO": "FIFO", + "Mailbox": "ตู้ไปรษณีย์", + "Immediate": "ทันที", + "Vulkan": "วัลแคน", + "DirectX 12": "ไดเร็คเอ็กซ์ 12", + "OpenGL": "OpenGL", + "FPS and Graph": "FPS และกราฟ", + "FPS": "เฟรมต่อวินาที", + "TAA": "สทท", + "FXAA": "FXAA", + "No cost": "ไม่มีค่าใช้จ่าย", + "Low cost": "ต้นทุนต่ำ", + "Medium cost": "ต้นทุนปานกลาง", + "High cost": "ค่าใช้จ่ายสูง", + "Saves time": "ประหยัดเวลา", + "HDR": "เอชดีอาร์", + "Graphics": "กราฟิก", + "Done": "เสร็จแล้ว", + "This feature is not yet available in Horizon.": "ฟีเจอร์นี้ยังไม่มีให้บริการใน Horizon", + "Your display or system doesn't offer HDR output.": "จอแสดงผลหรือระบบของคุณไม่มีเอาต์พุต HDR", + "Turn HDR on to use it.": "เปิด HDR เพื่อใช้งาน", + "Your GPU or graphics API doesn't support it.": "GPU หรือกราฟิก API ของคุณไม่รองรับ", + "%s chunks": "%s ชิ้น", + "%s per frame": "%s ต่อเฟรม", + "%s MiB/frame": "%s MiB/เฟรม", + "%s KiB/frame": "%s KiB/เฟรม", + "Auto (%s)": "อัตโนมัติ (%s)", + "Full-detail terrain range. LOD Distance can extend local worlds farther.": "ช่วงภูมิประเทศที่มีรายละเอียดครบถ้วน ระยะทาง LOD สามารถขยายโลกในท้องถิ่นให้ไกลออกไป", + "Coarse distant terrain in local worlds. Integrated GPUs stop at 128 chunks.": "ภูมิประเทศอันห่างไกลที่หยาบในโลกท้องถิ่น GPU ในตัวหยุดที่ 128 ชิ้น", + "Reduced draws far terrain coarser: faster on this integrated GPU.": "ลดการดึงภูมิประเทศระยะไกลที่หยาบยิ่งขึ้น: เร็วขึ้นบน GPU ในตัวนี้", + "Reduced draws far terrain coarser, for GPUs it slows down.": "ลดการดึงภูมิประเทศที่ไกลออกไปให้หยาบขึ้น สำหรับ GPU มันจะช้าลง", + "Field of view. Wider shows more terrain at once.": "สาขาการมองเห็น กว้างขึ้นแสดงภูมิประเทศได้มากขึ้นในคราวเดียว", + "Caps frames per second; a cap saves power and heat.": "แคปเฟรมต่อวินาที ฝาปิดช่วยประหยัดพลังงานและความร้อน", + "Waits for the display's refresh: no tearing, a little latency.": "รอการรีเฟรชหน้าจอ: ไม่มีรอยขาด, เวลาแฝงเล็กน้อย", + "Size of menus and the HUD.": "ขนาดของเมนูและ HUD", + "Sets the options below together. Changing one makes it Custom.": "ตั้งค่าตัวเลือกด้านล่างพร้อมกัน การเปลี่ยนอันหนึ่งทำให้เป็นแบบกำหนดเอง", + "Lava, fire and sunlight shine brighter than white. Needs an HDR display.": "ลาวา ไฟ และแสงแดดส่องสว่างยิ่งกว่าสีขาว จำเป็นต้องมีจอแสดงผล HDR", + "Your display's darkest black. 0 for OLED; LCDs glow a little.": "จอแสดงผลของคุณมีสีดำเข้มที่สุด 0 สำหรับ OLED; LCD เรืองแสงเล็กน้อย", + "How bright highlights get. Auto: the peak your system reports.": "ไฮไลท์จะสว่างขนาดไหน อัตโนมัติ: จุดสูงสุดที่ระบบของคุณรายงาน", + "How bright white paper and menus look. Auto: your desktop's white.": "กระดาษขาวและเมนูดูสว่างแค่ไหน อัตโนมัติ: เดสก์ท็อปของคุณเป็นสีขาว", + "How bright the HUD and menus are, against paper white.": "HUD และเมนูมีความสว่างเพียงใด เมื่อเทียบกับกระดาษสีขาว", + "How far mobs, crops and machines keep working. CPU time.": "ฝูงชน พืชผล และเครื่องจักรยังคงทำงานต่อไปได้ไกลแค่ไหน เวลาซีพียู", + "How far away mobs and items are drawn, as a share of normal.": "จะมีการดึง mobs และไอเท็มออกไปไกลแค่ไหนซึ่งเป็นเรื่องปกติ", + "Skips terrain hidden behind closed sections. Off costs a lot.": "ข้ามภูมิประเทศที่ซ่อนอยู่หลังส่วนที่ปิด ออกค่าใช้จ่ายเยอะมาก", + "Hides entities behind opaque blocks.": "ซ่อนเอนทิตีไว้หลังบล็อกทึบแสง", + "No entity occlusion culling.": "ไม่มีการคัดแยกเอนทิตี", + "CPU occlusion test runs this frame.": "การทดสอบการบดเคี้ยวของ CPU รันเฟรมนี้", + "Occlusion checks run on a worker thread.": "การตรวจสอบการบดเคี้ยวรันบนเธรดของผู้ปฏิบัติงาน", + "Meshed sections uploaded per frame. Lower is smoother while loading.": "ส่วนที่ซ้อนกันที่อัปโหลดต่อเฟรม ช่วงล่างนุ่มนวลกว่าขณะโหลด", + "Soft shadows in corners. Costs chunk building time only.": "มีเงาอ่อนๆ ตามมุม ต้นทุนเวลาสร้างก้อนเท่านั้น", + "Smaller copies of block textures for distant terrain: less shimmer.": "พื้นผิวบล็อกที่มีขนาดเล็กลงสำหรับภูมิประเทศระยะไกล: มีแสงแวววาวน้อยลง", + "Blends grass and water colours across biomes when building chunks.": "ผสมหญ้าและสีน้ำทั่วทั้งชีวนิเวศเมื่อสร้างชิ้นส่วน", + "Cloud layer: off, flat (fast) or 3D (fancy).": "เลเยอร์คลาวด์: ปิด, แบน (เร็ว) หรือ 3D (แฟนซี)", + "How far clouds reach, in chunks.": "เมฆไปไกลแค่ไหนเป็นชิ้น ๆ", + "Draws the sky, sun, moon and stars.": "วาดภาพท้องฟ้า พระอาทิตย์ พระจันทร์ และดวงดาว", + "Distance fog. Off shows the edge of the loaded world.": "หมอกห่าง. ปิดแสดงขอบของโลกที่โหลด", + "Draws rain and snow.": "ดึงดูดฝนและหิมะ", + "How far rain and snow fall around you.": "ฝนและหิมะตกรอบตัวคุณไกลแค่ไหน", + "How many particles effects spawn.": "จำนวนอนุภาคที่ส่งผลต่อการวางไข่", + "Round shadows under mobs and items.": "เงากลมๆ ใต้ม็อบและไอเท็ม", + "Leaves with see-through gaps. Off draws them solid.": "ใบไม้มีช่องว่างที่มองเห็นได้ ปิดดึงพวกเขาแข็ง", + "Sorts water and glass more exactly behind each other.": "จัดเรียงน้ำและแก้วตามหลังกันมากขึ้น", + "Which chunk rebuilds wait for the frame: none, nearby or yours.": "ส่วนไหนที่สร้างใหม่รอเฟรมอยู่: ไม่มีเลย ใกล้เคียงหรือของคุณ", + "Animates water, lava, fire and other moving textures.": "ทำให้น้ำ ลาวา ไฟ และพื้นผิวเคลื่อนไหวอื่นๆ เคลื่อนไหวได้", + "World pixels per screen pixel. Below 100% is faster on the GPU.": "พิกเซลโลกต่อพิกเซลหน้าจอ ต่ำกว่า 100% จะเร็วกว่าบน GPU", + "Smooths jagged edges. FXAA: softer. TAA: smoothest, moving things may trail.": "ปรับขอบหยักให้เรียบ FXAA: นุ่มนวลกว่า TAA: สิ่งของที่เคลื่อนไหวและราบรื่นที่สุดอาจเคลื่อนตัวได้", + "Renders the world smaller and rebuilds it with TAA. Faster, softer.": "ทำให้โลกเล็กลงและสร้างใหม่ด้วย TAA เร็วขึ้นนุ่มนวลขึ้น", + "HDR output on an HDR display: lava, fire and sunlight shine brighter.": "เอาต์พุต HDR บนจอแสดงผล HDR: ลาวา ไฟ และแสงแดดส่องสว่างยิ่งขึ้น", + "How frames reach the screen while VSync is off.": "วิธีที่เฟรมเข้าถึงหน้าจอในขณะที่ VSync ปิดอยู่", + "Efficient sleeps until the next frame; Precise spins, like vanilla.": "นอนหลับได้อย่างมีประสิทธิภาพจนถึงเฟรมถัดไป การหมุนที่แม่นยำราวกับวานิลลา", + "Fills the screen (borderless).": "เติมเต็มหน้าจอ (ไร้ขอบ)", + "Brightens dark places.": "ทำให้บริเวณที่มืดสว่างขึ้น", + "Lowers the frame rate when minimised, or idle too.": "ลดอัตราเฟรมเมื่อย่อเล็กสุดหรือไม่ได้ใช้งานด้วย", + "Sways the view while walking.": "ชมวิวระหว่างเดิน", + "Fades newly loaded chunks in.": "จางหายไปชิ้นที่เพิ่งโหลดเข้ามา", + "Darkens the screen's edges.": "ทำให้ขอบหน้าจอมืดลง", + "Shows when the world saves.": "แสดงเมื่อโลกกอบกู้", + "Shows attack cooldown.": "แสดงคูลดาวน์การโจมตี", + "60 FPS cap (30 in menus or unfocused), half the workers: less power.": "สูงสุด 60 FPS (30 ในเมนูหรือไม่ได้โฟกัส) คนงานครึ่งหนึ่ง: พลังงานน้อยลง", + "Threads that generate, light and mesh chunks. Next start.": "ด้ายที่สร้างแสงและเป็นชิ้นตาข่าย เริ่มต่อไป.", + "Vulkan, then DirectX 12 (Windows) or OpenGL (Linux) where it fails. Next start.": "Vulkan ตามด้วย DirectX 12 (Windows) หรือ OpenGL (Linux) ในกรณีที่ใช้งานไม่ได้ เริ่มต่อไป.", + "Water and glass in one buffer: fewer draw calls, a bit more VRAM. Next start.": "น้ำและแก้วในบัฟเฟอร์เดียว: การโทรน้อยลง, VRAM เพิ่มขึ้นเล็กน้อย เริ่มต่อไป.", + "Mesh data sent to the GPU per frame. Lower is smoother while loading.": "ข้อมูล Mesh ถูกส่งไปยัง GPU ต่อเฟรม ช่วงล่างนุ่มนวลกว่าขณะโหลด", + "Frame rate and frame times over the game, with a graph.": "อัตราเฟรมและเฟรมไทม์ตลอดทั้งเกม พร้อมกราฟ", + "horizon.multiplayer.finding_friend": "ค้นหาโลกของเพื่อนของคุณ...", + "horizon.multiplayer.not_signed_in": "เซิร์ฟเวอร์นี้อยู่ในโหมดออนไลน์ ลงชื่อเข้าใช้ด้วยบัญชี Microsoft ของคุณใน Horizon Launcher เพื่อเข้าร่วม", + "horizon.multiplayer.invalid_address": "ที่อยู่เซิร์ฟเวอร์ไม่ถูกต้อง: %s", + "horizon.multiplayer.connected_friend_direct": "เชื่อมต่อโดยตรงกับเพื่อนของคุณ...", + "horizon.multiplayer.connected_friend_relay": "เชื่อมต่อกับเพื่อนของคุณผ่านรีเลย์...", + "General": "ทั่วไป", + "Advanced": "ขั้นสูง", + "Undo": "เลิกทำ", + "Search options": "ตัวเลือกการค้นหา", + "Shortcut": "ทางลัด", + "Distance": "ระยะทาง", + "Display": "จอแสดงผล", + "Interface": "อินเทอร์เฟซ", + "Sky and weather": "ท้องฟ้าและสภาพอากาศ", + "Lighting and entities": "แสงสว่างและเอนทิตี", + "Textures": "พื้นผิว", + "Image": "รูปภาพ", + "Chunk loading": "กำลังโหลดก้อน", + "Culling": "การคัดแยก", + "Power": "พลัง", + "Frames": "เฟรม", + "Overlay": "โอเวอร์เลย์", + "Output": "เอาท์พุต", + "Brightness": "ความสว่าง", + "How far you see, the window and the HUD.": "คุณมองเห็นหน้าต่างและ HUD ไกลแค่ไหน", + "The sky and weather, lighting, textures and the image.": "ท้องฟ้าและสภาพอากาศ แสง พื้นผิว และภาพ", + "Chunk loading, culling and power use.": "การโหลดก้อน การคัดแยก และการใช้พลังงาน", + "How frames reach the screen, and the performance overlay.": "วิธีที่เฟรมเข้าถึงหน้าจอ และการแสดงภาพซ้อนทับ", + "Brighter-than-white output on an HDR display.": "เอาต์พุตที่สว่างกว่าสีขาวบนจอแสดงผล HDR", + "Results for \"%s\"": "ผลลัพธ์สำหรับ \"%s\"", + "No settings match.": "ไม่มีการตั้งค่าที่ตรงกัน", + "horizon.title.not_affiliated": "ไม่มีส่วนเกี่ยวข้องกับ Mojang หรือ Microsoft", + "horizon.extras.header.lighting": "แสงสว่าง", + "horizon.extras.header.third_person": "บุคคลที่สาม", + "horizon.extras.header.particles": "อนุภาค", + "horizon.extras.header.inventory": "สินค้าคงคลัง", + "horizon.extras.header.chat": "แชท", + "horizon.extras.header.multiplayer": "ผู้เล่นหลายคน", + "horizon.extras.header.sound": "เสียง", + "horizon.extras.header.menus": "เมนู", + "horizon.extras.fullbright": "ฟูลไบรท์", + "horizon.extras.dynamic_lights": "ไฟแบบไดนามิก", + "horizon.extras.own_name_tag": "ป้ายชื่อของตัวเอง", + "horizon.extras.hide_block_particles": "ซ่อนอนุภาคตัวแบ่งบล็อก", + "horizon.extras.auto_reconnect": "เชื่อมต่อใหม่อัตโนมัติ", + "horizon.extras.ui_sound_reserve": "เก็บช่องสำหรับเสียง UI", + "horizon.extras.music_page": "หน้าเพลง", + "horizon.extras.mouse_tweaks": "การควบคุมการปรับแต่งเมาส์", + "horizon.extras.mouse_tweaks_wheel": "ล้อเลื่อนจะย้ายรายการต่างๆ", + "horizon.extras.sort": "ปุ่มเรียงลำดับ", + "horizon.extras.sort_key": "คีย์การเรียงลำดับ", + "horizon.extras.no_ai": "ไม่มีเอไอ", + "horizon.extras.agent_control": "การควบคุมตัวแทน", + "horizon.extras.discord_presence": "ไม่ลงรอยกัน Rich Presence", + "horizon.extras.splitscreen": "แยกหน้าจอ", + "horizon.extras.chat_animation": "แชทได้อย่างราบรื่น", + "horizon.extras.chat_indicator": "ตัวบ่งชี้ข้อความ", + "horizon.extras.wheel_cycles_settings": "ล้อเลื่อนเปลี่ยนการตั้งค่า", + "horizon.extras.pack_browser": "เบราว์เซอร์แพ็คทรัพยากร", + "horizon.extras.fullbright.tooltip": "แสดงบล็อกและเอนทิตีด้วยแสงเต็มที่ แม้ในที่มืด", + "horizon.extras.dynamic_lights.tooltip": "คบเพลิงและแหล่งกำเนิดแสงอื่นๆ ถือ ทิ้ง หรือจุดไฟให้บล็อกที่อยู่รอบตัวพวกเขา", + "horizon.extras.own_name_tag.tooltip": "แสดงชื่อของคุณเหนือหัวของคุณในบุคคลที่สามตามที่ผู้เล่นคนอื่นเห็น ซ่อนเมื่อเซิร์ฟเวอร์ซ่อนชื่อทีมของคุณหรือคุณมองไม่เห็น", + "horizon.extras.hide_block_particles.tooltip": "ซ่อนอนุภาคเศษซากที่แตกออกจากบล็อกที่แตกหักและแตกออกจากบล็อกที่คุณขุด อนุภาคอื่นๆ ยังคงอยู่", + "horizon.extras.auto_reconnect.tooltip": "เข้าร่วมเซิร์ฟเวอร์อีกครั้งหลังจากการเชื่อมต่อขาดหายไปหรือการรีสตาร์ท ไม่เคยหลังจากการเตะหรือแบน", + "horizon.extras.ui_sound_reserve.tooltip": "เสียงในโลกนี้ปล่อยให้ช่องเสียง 16 ช่องจาก 247 ช่องฟรี ดังนั้นช่องเสียงที่มีอยู่มากมาย (การระเบิดครั้งใหญ่) จึงไม่สามารถปิดเสียงการคลิกเมนูได้", + "horizon.extras.music_page.tooltip": "Music & Sounds รับหน้าเพลง...: เล่นแทร็กในตัวทันที หรือปิดหนึ่งแทร็กเพื่อให้เกมหยุดเลือกเพลง ไม่มีอะไรเปลี่ยนแปลงจนกว่าคุณจะปิดแทร็ก", + "horizon.extras.mouse_tweaks.tooltip": "ลากขวาวางหนึ่งรายการต่อช่อง การลากซ้ายรวบรวมรายการที่ค้างไว้ Shift + ลากซ้ายจะย้ายทุกช่อง", + "horizon.extras.mouse_tweaks_wheel.tooltip": "ลงส่งรายการหนึ่งของช่องไปอีกด้านหนึ่ง ขึ้นนำรายการหนึ่งกลับมา", + "horizon.extras.sort.tooltip": "จัดเรียงสินค้าคงคลัง หีบ บาร์เรล หีบเอนเดอร์ และกล่อง shulker ตามลำดับแท็บสร้างสรรค์ การรวมสแต็ค", + "horizon.extras.sort_key.tooltip": "จัดเรียงส่วนที่อยู่ใต้เคอร์เซอร์ คลิก จากนั้นกดปุ่ม หลบหนีปลดมันออก", + "horizon.extras.no_ai.tooltip": "ซ่อนและปิดฟีเจอร์ AI ทั้งหมด: การควบคุมตัวแทน, Horizon-ctl และเซิร์ฟเวอร์ MCP สวิตช์ของตัวเรียกใช้งานด้วย", + "horizon.extras.agent_control.tooltip": "เจ้าหน้าที่ AI ของคุณสามารถเล่นเกมนี้ได้ผ่าน Horizon-ctl หรือไคลเอนต์ MCP บนคอมพิวเตอร์เครื่องนี้เท่านั้น", + "horizon.extras.discord_presence.tooltip": "แสดง Playing Horizon บนโปรไฟล์ Discord ของคุณในขณะที่ Discord ทำงาน: เมนู ผู้เล่นเดี่ยวหรือผู้เล่นหลายคน มิติข้อมูลและเวลาที่เล่น ไม่เคยเป็นชื่อของโลกหรือที่อยู่ของเซิร์ฟเวอร์", + "Calibrate...": "ปรับเทียบ...", + "Calibrate Anyway...": "ปรับเทียบต่อไป...", + "Use Automatic Setup": "ใช้การตั้งค่าอัตโนมัติ", + "Shortcut: %s": "ทางลัด: %s", + "Next": "ถัดไป", + "HDR Calibration %s/%s: %s": "การปรับเทียบ HDR %s/%s: %s", + "Sets the three below full screen, one test picture at a time.": "ตั้งค่าสามภาพด้านล่างแบบเต็มหน้าจอ ครั้งละหนึ่งภาพทดสอบ", + "A key that opens this screen from the game. Not bound at first.": "กุญแจที่ใช้เปิดหน้าจอนี้จากเกม ตอนแรกไม่ได้ผูกมัด..", + "Your display didn't say how bright it gets: calibrate to set it up.": "จอแสดงผลของคุณไม่ได้บอกว่าสว่างแค่ไหน: ปรับเทียบเพื่อตั้งค่า", + "Already set up for your display. Only calibrate if HDR looks wrong.": "ตั้งค่าการแสดงผลของคุณเรียบร้อยแล้ว ปรับเทียบเฉพาะในกรณีที่ HDR ดูผิดปกติ", + "Puts Peak Brightness and Paper White back to your display's setup.": "ปรับความสว่างสูงสุดและสีขาวกระดาษกลับไปที่การตั้งค่าจอแสดงผลของคุณ", + "Set up for your display. Leave on Auto unless it looks wrong.": "ตั้งค่าสำหรับจอแสดงผลของคุณ ปล่อยให้เป็นอัตโนมัติเว้นแต่จะดูผิด", + "Lower it until the logo just disappears into the black.": "ลดระดับลงจนกระทั่งโลโก้หายไปจนกลายเป็นสีดำ", + "Raise it until the logo just disappears into the bright square.": "ยกขึ้นจนกระทั่งโลโก้หายไปในสี่เหลี่ยมจัตุรัสสว่างๆ", + "Make the card a white that's comfortable to look at for a long time, in the light you play in.": "ทำให้การ์ดเป็นสีขาวที่มองได้สบายตาเป็นเวลานานในแสงที่คุณเล่น", + "horizon.splitscreen.profiles.forget": "ลืม", + "horizon.splitscreen.profiles.create": "สร้าง", + "horizon.splitscreen.profiles.you": " - คุณ", + "horizon.splitscreen.profiles.forget_named": "ลืม %s", + "horizon.splitscreen.profiles.previous": "ก่อนหน้า", + "horizon.splitscreen.profiles.next": "ถัดไป", + "horizon.splitscreen.profiles.new_button": "โปรไฟล์ใหม่...", + "horizon.splitscreen.profiles.forget_title": "ลืมโปรไฟล์ใช่ไหม?", + "horizon.splitscreen.profiles.forget_leaves": "มันจะออกจากรายการของอินสแตนซ์นี้", + "horizon.splitscreen.profiles.forget_kept": "ความก้าวหน้าและการตั้งค่าของโลกจะถูกเก็บไว้", + "horizon.splitscreen.profiles.new_title": "โปรไฟล์ใหม่", + "horizon.splitscreen.profiles.name_hint": "ชื่อ (ตัวอักษร 3 ถึง 16 ตัว, ตัวเลข, _)", + "horizon.splitscreen.profiles.switch_title": "สลับโปรไฟล์", + "horizon.splitscreen.profiles.offline_note": "โปรไฟล์ออฟไลน์เป็นของอินสแตนซ์นี้", + "horizon.splitscreen.profiles.move": "ย้ายตำแหน่งที่คุณเล่น", + "horizon.splitscreen.profiles.move_place": "ย้ายไปที่ที่คุณเล่น: %s", + "horizon.friends.title": "เล่นกับเพื่อน", + "horizon.friends.hint": "เพื่อนวางโค้ดไว้หลังปุ่มเพื่อนของหน้าจอชื่อเรื่อง ในการเชื่อมต่อโดยตรง หรือบนหน้าเล่นของตัวเรียกใช้งาน", + "horizon.friends.copied": "คัดลอกแล้ว", + "horizon.friends.copy_code": "คัดลอกรหัส", + "horizon.friends.stop_sharing": "หยุดการแบ่งปัน", + "horizon.friends.none_yet": "ยังไม่มีเพื่อนที่นี่", + "horizon.friends.here_now": "ที่นี่ตอนนี้: %s", + "horizon.friends.share_intro": "แบ่งปันโลกนี้ด้วยรหัสเชิญ: เปิดเป็น LAN และเพื่อนบนอินเทอร์เน็ตเข้าร่วมด้วยรหัส ไม่มีเซิร์ฟเวอร์ของเราเกี่ยวข้อง", + "horizon.friends.start_sharing": "เริ่มแบ่งปัน", + "horizon.friends.troubleshooting": "กำลังแก้ไขปัญหา...", + "horizon.friends.stopped": "หยุดแชร์รหัสเชิญแล้ว", + "horizon.friends.short_code_changed": "มีคนพยายามใช้รหัสสั้นผิด ดังนั้นมันจึงเปลี่ยนไป", + "horizon.friends.wrong_code": "มีคนลองใช้รหัสผิด", + "horizon.friends.code_ready": "รหัสเชิญของคุณพร้อมแล้ว: เมนูเกม เล่นกับเพื่อน ๆ คัดลอกและส่งให้เพื่อนของคุณ", + "horizon.friends.share_failed": "ไม่สามารถแบ่งปันโลกได้: %s", + "horizon.friends.finding_route": "กำลังค้นหาวิธีที่เพื่อนๆ สามารถติดต่อคุณได้...", + "horizon.osk.shift": "กะ", + "horizon.osk.space": "อวกาศ", + "horizon.osk.delete": "ลบ", + "horizon.osk.type": "ประเภท", + "horizon.osk.symbols": "สัญลักษณ์", + "horizon.osk.close": "ปิด", + "horizon.extras.chat_animation.tooltip": "บรรทัดแชทใหม่เลื่อนเข้ามาจากด้านซ้ายในขณะที่ค่อยๆ จางหายไป แทนที่จะปรากฏทั้งหมด", + "horizon.extras.chat_indicator.tooltip": "แถบสีทางด้านซ้ายของแชท", + "horizon.extras.wheel_cycles_settings.tooltip": "ล้อเลื่อนเหนือปุ่มในการตั้งค่าจะเปลี่ยนค่าเช่นเดียวกับในวานิลลา ปิด วงล้อจะเลื่อนเฉพาะรายการเท่านั้น", + "horizon.extras.pack_browser.tooltip": "เลือก Resource Packs จะได้รับปุ่มเพิ่มที่ค้นหา Modrinth และติดตั้งแพ็คลงในโฟลเดอร์แพ็คของคุณ ปิด เกมไม่เคยติดต่อกับ Modrinth", + "horizon.extras.splitscreen.tooltip": "ในโลกหนึ่ง คอนโทรลเลอร์อื่นสามารถเข้าร่วมเป็นผู้เล่นใหม่ได้ โดยกด A เมื่อระบบถาม จากนั้นเลือกโปรไฟล์และสถานที่ที่จะเล่น", + "horizon.splitscreen.setup.monitor": "มอนิเตอร์ %s", + "horizon.splitscreen.setup.monitor_unknown": "จอภาพ", + "horizon.splitscreen.setup.window": "หน้าต่าง %s", + "horizon.splitscreen.setup.new_window": "หน้าต่างใหม่", + "horizon.splitscreen.setup.fill_monitor": "กรอก %s", + "horizon.splitscreen.setup.done": "เสร็จแล้ว", + "horizon.splitscreen.setup.switch": "%s: %s", + "horizon.splitscreen.setup.on": "เปิด", + "horizon.splitscreen.setup.off": "ปิด", + "horizon.splitscreen.setup.player": "ผู้เล่น %s", + "horizon.splitscreen.setup.revert": "เปลี่ยนกลับ", + "horizon.splitscreen.setup.apply": "สมัคร", + "horizon.splitscreen.setup.warning.empty_main": "ไม่มีใครเล่นใน Window 1: มันซ่อนอยู่", + "horizon.splitscreen.setup.warning.empty_close": "ไม่มีใครเล่นใน Window %s: ปิดเมื่อสมัคร", + "horizon.splitscreen.setup.warning.empty_new": "ไม่มีใครเล่นใน Window %s: มันจะไม่เปิด", + "horizon.splitscreen.setup.warning.on_main": "Window %s เติมเต็มจอภาพของ Window 1: ผู้เล่นเล่นใน Window 1", + "horizon.splitscreen.setup.warning.unplugged": "ไม่ได้เชื่อมต่อจอภาพของ Window %s: ผู้เล่นเล่นใน Window 1", + "horizon.splitscreen.setup.status.off": "การแบ่งหน้าจอปิดอยู่", + "horizon.splitscreen.setup.status.enable_hint": "เปิดเครื่อง จากนั้นกดปุ่มบนคอนโทรลเลอร์อื่นในโลก", + "horizon.splitscreen.setup.status.join_hint": "กด A เพื่อเข้าร่วมและเลือกโปรไฟล์", + "horizon.splitscreen.setup.status.idle": "ไม่ได้ใช้งานการแบ่งหน้าจอ", + "horizon.splitscreen.setup.status.alone": "ไม่มีผู้เล่นท้องถิ่นรายอื่น", + "horizon.splitscreen.setup.status.solo_controls": "การควบคุมโซโลและการตอบสนองของคอนโทรลเลอร์ไม่มีการเปลี่ยนแปลง", + "horizon.splitscreen.setup.window_empty": "หน้าต่าง %s: ว่างเปล่า", + "horizon.splitscreen.setup.note.select": "คลิกที่เครื่องเล่น หรือลากไปที่หน้าต่างหรือจอภาพ", + "horizon.splitscreen.setup.note.apply": "สมัครเพื่อเล่นด้วยวิธีนี้ เปลี่ยนกลับเป็นเลิกทำ", + "horizon.splitscreen.setup.note.place": "%s ควรเล่นที่ไหน?", + "horizon.splitscreen.setup.this_player": "ผู้เล่นคนนี้", + "horizon.splitscreen.setup.switch_disabled": "Splitscreen จะปิดลงเมื่อคนอื่นๆ ออกไปแล้ว (เมนูหยุดชั่วคราว)", + "horizon.splitscreen.setup.window_place": "หน้าต่าง %s (%s จาก %s)", + "horizon.splitscreen.setup.names": "ชื่อ", + "horizon.splitscreen.setup.identify": "ระบุตัวตน", + "horizon.splitscreen.setup.layout.two": "2 การแบ่งปัน: %s", + "horizon.splitscreen.setup.layout.three": "3 การแบ่งปัน: %s", + "horizon.splitscreen.setup.layout.two.0": "อัตโนมัติ", + "horizon.splitscreen.setup.layout.two.1": "เคียงข้างกัน", + "horizon.splitscreen.setup.layout.two.2": "บนและล่าง", + "horizon.splitscreen.setup.layout.three.0": "ด้านบนกว้างหนึ่งอัน", + "horizon.splitscreen.setup.layout.three.1": "สูงหนึ่งทางด้านซ้าย", + "horizon.splitscreen.setup.layout.three.2": "เคียงข้างกัน", + "horizon.splitscreen.setup.help.player": "คลิกหรือลาก %s เพื่อย้าย", + "horizon.splitscreen.setup.help.layout_auto": "%s (เคียงข้างกันเมื่อหน้าต่างกว้าง) กดเพื่อเปลี่ยน", + "horizon.splitscreen.setup.help.layout": "%s. กดเพื่อเปลี่ยน", + "horizon.splitscreen.setup.help.switch": "แยกหน้าจอสำหรับคอมพิวเตอร์เครื่องนี้ เปิดหรือปิด", + "horizon.splitscreen.setup.help.identify": "มุมมองของผู้เล่นแต่ละคนจะแสดงให้เห็นว่าอยู่ในหน้าต่างใด", + "horizon.splitscreen.setup.help.names": "ชื่อผู้เล่นแต่ละคนในมุมมองของพวกเขา", + "horizon.splitscreen.setup.help.revert": "เลิกทำการเปลี่ยนแปลงที่ยังไม่ได้ใช้", + "horizon.splitscreen.setup.help.apply": "เล่นตามแผนที่แสดง", + "horizon.splitscreen.setup.help.unchanged": "ยังไม่มีอะไรเปลี่ยนแปลง", + "horizon.splitscreen.setup.give_up_pad": "ยอมแพ้แพด", + "horizon.splitscreen.prompt.controller_connected": "เชื่อมต่อคอนโทรลเลอร์แล้ว", + "horizon.splitscreen.prompt.controller_disconnected": "คอนโทรลเลอร์ถูกตัดการเชื่อมต่อ", + "horizon.splitscreen.prompt.controller_disconnected.hint": "เชื่อมต่อใหม่หรือกดปุ่มบนอีกอัน", + "horizon.splitscreen.prompt.join.one": "%s ต้องการเข้าร่วม", + "horizon.splitscreen.prompt.join.many": "%s ผู้ควบคุมต้องการเข้าร่วม", + "horizon.splitscreen.prompt.join.yes": "เข้าร่วม", + "horizon.splitscreen.prompt.join.as_p1": "เล่นเป็น P1", + "horizon.splitscreen.prompt.join.no": "ไม่", + "horizon.splitscreen.prompt.lost": "%s: คอนโทรลเลอร์ถูกตัดการเชื่อมต่อ", + "horizon.splitscreen.prompt.lost.use_another": "ใช้อันอื่น", + "horizon.splitscreen.prompt.lost.leave": "ลาออก", + "horizon.splitscreen.setup.help.give_up_pad": "ผู้ควบคุมของคุณหยุดขับรถคุณและได้รับการเสนอให้เข้าร่วม (A)", + "horizon.splitscreen.setup.note.held_at": "%s ถึง %s: หยดไว้ที่นี่ B วางมันกลับ", + "horizon.splitscreen.setup.note.held": "%s หยิบขึ้นมา: ซ้าย/ขวาเลือกโดยที่ A หยด B วางมันกลับ", + "Hides models behind opaque blocks. Async checks off-thread; entities tick.": "ซ่อนแบบจำลองไว้หลังบล็อกทึบแสง Async ตรวจสอบนอกเธรด เอนทิตีติ๊ก", + "Block Entities": "บล็อกเอนทิตี", + "Shulker Boxes": "กล่องชัลเกอร์", + "Reuses settled boxes; lid movement stays animated.": "นำกล่องที่ตัดสินแล้วกลับมาใช้ใหม่ การเคลื่อนไหวของฝายังคงเคลื่อนไหว", + "Signs": "สัญญาณ", + "Reuses sign text until text, light, or font changes.": "ใช้ข้อความเซ็นซ้ำจนกว่าข้อความ แสง หรือแบบอักษรจะเปลี่ยนไป", + "Decorated Pots": "กระถางตกแต่ง", + "Reuses still pots; break wobble and sherd changes redraw.": "นำหม้อกลับมาใช้ซ้ำ ทำลายการโยกเยกและฉีกการเปลี่ยนแปลงวาดใหม่", + "Bells": "ระฆัง", + "Reuses still bells; ringing stays animated.": "ใช้ซ้ำยังคงระฆัง; เสียงเรียกเข้ายังคงเคลื่อนไหว", + "Chests": "ทรวงอก", + "Reuses closed chests; moving lids stay animated.": "นำหีบปิดกลับมาใช้ซ้ำ ฝาที่ขยับได้จะเคลื่อนไหวได้", + "Banners": "แบนเนอร์", + "Reuses poles; flags and pattern layers still update.": "ใช้เสาซ้ำ ธงและเลเยอร์ลวดลายยังคงอัปเดตอยู่", + "Copper Golem Statues": "รูปปั้นโกเลมทองแดง", + "Reuses statue geometry until its block state changes.": "นำรูปทรงของรูปปั้นมาใช้ซ้ำจนกว่าสถานะบล็อกจะเปลี่ยนไป", + "Leaf Culling": "การคัดแยกใบ", + "Every leaf face. Vanilla's fancy leaves.": "หน้าใบไม้ทุกใบ ใบไม้แฟนซีของวานิลลา", + "Distant Plant Dither": "Dither พืชอันห่างไกล", + "Keeps fine plants in high-res packs from fading far away.": "เก็บรักษาต้นไม้ที่สวยงามไว้ในแพ็คที่มีความละเอียดสูงไม่ให้ซีดจางไปในระยะไกล", + "Screenshot Quality": "คุณภาพของภาพหน้าจอ", + "F2 screenshots at this many times the game's resolution. Higher takes longer.": "ภาพหน้าจอ F2 หลายครั้งตามความละเอียดของเกม สูงกว่าใช้เวลานานกว่า", + "Frame Generation": "การสร้างเฟรม", + "Shows a made-up frame between each two real ones: smoother, a little more lag.": "แสดงเฟรมที่ถูกสร้างขึ้นระหว่างเฟรมจริงสองเฟรม: นุ่มนวลกว่า แลคกว่าเล็กน้อย", + "Shadow Cache": "แคชเงา", + "Reuses the pack shadow map when sun, view and world match. Off by default.": "ใช้แผนที่เงาแพ็คซ้ำเมื่อดวงอาทิตย์ มุมมอง และโลกตรงกัน ปิดโดยค่าเริ่มต้น", + "Find BlueMap": "ค้นหาบลูแมป", + "On servers, finds their BlueMap web map for far terrain. Next join.": "บนเซิร์ฟเวอร์ ค้นหาแผนที่เว็บ BlueMap สำหรับภูมิประเทศที่ห่างไกล เข้าร่วมต่อไป.", + "BlueMap Radius": "รัศมี BlueMap", + "How far around you BlueMap tiles are downloaded. Next join.": "ดาวน์โหลดแผ่น BlueMap รอบตัวคุณไปไกลแค่ไหน เข้าร่วมต่อไป.", + "Synchronous": "ซิงโครนัส", + "Asynchronous": "แบบอะซิงโครนัส", + "Solid": "แข็ง", + "Solid Aggressive": "แข็งก้าวร้าว", + "Hollow": "ฮอลโลว์", + "Leaves fully inside a canopy draw solid: fewer see-through layers.": "ทิ้งไว้ในทรงพุ่มจนเต็มและดึงเป็นของแข็ง: ชั้นที่มองเห็นทะลุได้น้อยลง", + "Leaves with one open side draw solid too: faster, chunkier edges.": "ใบไม้ที่มีด้านเปิดด้านหนึ่งจะดึงให้แข็งเช่นกัน: ขอบจะหนาขึ้นและเร็วขึ้น", + "Drops faces between leaves: faster, but gaps look through.": "หยดหน้าระหว่างใบไม้: เร็วขึ้น แต่มีช่องว่างมองผ่าน", + "Hotbar: Previous Slot": "Hotbar: ช่องก่อนหน้า", + "Hotbar: Next Slot": "แถบด่วน: สล็อตถัดไป", + "horizon.agent.connected.one": "เชื่อมต่อแล้ว: 1 การเชื่อมต่อตัวแทน", + "horizon.agent.connected.many": "เชื่อมต่อแล้ว: %s การเชื่อมต่อตัวแทน", + "horizon.agent.connected.one_ago": "เชื่อมต่อแล้ว: การเชื่อมต่อตัวแทน 1 รายการ คำสั่งสุดท้าย %s s ที่แล้ว", + "horizon.agent.connected.many_ago": "เชื่อมต่อแล้ว: %s การเชื่อมต่อตัวแทน คำสั่งสุดท้าย %s s ที่แล้ว", + "horizon.agent.waiting": "รอตัวแทน.", + "horizon.agent.off": "ปิด: เจ้าหน้าที่ไม่สามารถเข้าถึงเกมนี้ได้", + "horizon.agent.session_opened": "เปิดสำหรับเซสชั่นนี้โดยโปรแกรมที่เริ่มเกม", + "horizon.agent.socket": "ซ็อกเก็ต: %s (คัดลอกรายละเอียดเพื่อดูเส้นทางแบบเต็ม)", + "horizon.agent.local_only": "ภายในเครื่องเท่านั้น: ตัวแทนบนคอมพิวเตอร์เครื่องนี้ ไม่ใช่เครือข่าย", + "%s nits": "%s ไนท์", + "Auto (%s nits)": "อัตโนมัติ (%s นิต)", + "%.2f nits": "%.2f ไนท์", + "Hides models behind opaque blocks. Entities update. Off with custom packs.": "ซ่อนแบบจำลองไว้หลังบล็อกทึบแสง อัปเดตเอนทิตี ปิดท้ายด้วยแพ็กแบบกำหนดเอง", + "horizon.extras.repro_keys": "ทางลัดการบันทึก", + "horizon.extras.repro_keys.tooltip": "F3+R เริ่มหรือหยุดการบันทึกซ้ำ และ F3+E เขียนบันเดิลของมัน ปิดตามค่าเริ่มต้น: การบันทึกจะคัดลอกโลก", + "horizon.agent.record_session": "เริ่มเซสชันการบันทึก", + "horizon.agent.record_stop": "หยุดเซสชันการบันทึก", + "horizon.agent.export_repro": "ส่งออกชุด Repro", + "horizon.repro.started": "เริ่มการบันทึกแล้ว F3+R หยุดมันและเขียนบันเดิล", + "horizon.repro.stopped": "การบันทึกหยุดลง: %s", + "horizon.repro.bundle": "ชุดจำลอง: %s", + "horizon.repro.error": "ทำซ้ำ: %s", + "horizon.repro.no_recording": "ยังไม่มีการบันทึกที่จะส่งออก", + "horizon.repro.replay_started": "เริ่มเล่นซ้ำ: %s", + "horizon.pack.add": "+", + "horizon.pack.addInfo": "เพิ่มชุดทรัพยากรจาก Modrinth", + "horizon.pack.addWorking": "ถามโมดรินธ์...", + "horizon.pack.addNone": "ไม่พบชุดทรัพยากร", + "horizon.pack.addTitle": "เพิ่มชุดทรัพยากร", + "horizon.pack.install": "ติดตั้ง", + "horizon.pack.installing": "กำลังติดตั้ง", + "horizon.pack.installed": "ติดตั้งแล้ว", + "horizon.pack.search": "ค้นหา", + "horizon.pack.searchHint": "ค้นหา Modrinth...", + "horizon.pack.filters": "ตัวกรอง", + "horizon.pack.filter.realistic": "สมจริง", + "horizon.pack.filter.simplistic": "เรียบง่าย", + "horizon.pack.filter.vanillaLike": "เหมือนวานิลลา", + "horizon.pack.filter.x16": "16x", + "horizon.pack.filter.x32": "32x", + "horizon.pack.filter.x64": "64x", + "horizon.pack.addFailed": "ไม่สามารถเพิ่มแพ็กได้: %s", + "horizon.extras.header.cosmetics": "เครื่องสำอาง", + "horizon.extras.cosmetics_mine": "เครื่องสำอางของฉัน", + "horizon.extras.cosmetics_mine.tooltip": "ซ่อนเร้น: ผู้เล่น Horizon ทุกคนมองเห็นคุณโดยไม่ได้แต่งหน้า รวมไปถึงคุณด้วย สวิตช์แบบเดียวกับตู้เสื้อผ้าของตัวเรียกใช้งาน", + "horizon.extras.cosmetics_others": "เครื่องสำอางของผู้เล่นคนอื่น", + "horizon.extras.cosmetics_others.tooltip": "ชุดที่ผู้เล่น Horizon คนอื่นๆ ใส่: ทุกอย่าง เฉพาะรูปแบบป้ายชื่อของพวกเขา หรือไม่ใส่เลย ซ่อนเร้นเกมไม่เคยถามว่าพวกเขาสวมอะไร", + "horizon.extras.cosmetics_auras": "ออร่าและเส้นทางของผู้อื่น", + "horizon.extras.cosmetics_auras.tooltip": "ออร่าและเส้นทางที่ผู้เล่นคนอื่นสวมใส่ ปิดโดยค่าเริ่มต้น", + "horizon.extras.cosmetics.shown": "แสดงแล้ว", + "horizon.extras.cosmetics.hidden": "ซ่อนเร้น", + "horizon.extras.cosmetics.name_tags": "ป้ายชื่อเท่านั้น" +} From b9558afaa6c481ac927c651d9eb4640c6cd0b6c9 Mon Sep 17 00:00:00 2001 From: dontstopgorkingit <268053046+dontstopgorkingit@users.noreply.github.com> Date: Tue, 3 Nov 2026 16:27:04 +0100 Subject: [PATCH 15/70] Add Japanese (ja_jp) game translation Bundles Horizon's own Japanese strings so ja_jp players see translated menus and options instead of the English fallback. Co-Authored-By: DeepSeek V4.1 Flash Free --- crates/horizon-client-core/src/lang.rs | 3 + .../assets/horizon/lang/ja_jp.json | 508 ++++++++++++++++++ 2 files changed, 511 insertions(+) create mode 100644 crates/horizon-client/assets/horizon/lang/ja_jp.json diff --git a/crates/horizon-client-core/src/lang.rs b/crates/horizon-client-core/src/lang.rs index 9ad3c155b6..eb2e45dc6f 100644 --- a/crates/horizon-client-core/src/lang.rs +++ b/crates/horizon-client-core/src/lang.rs @@ -100,6 +100,9 @@ impl ResourceSource for Bundled { "assets/horizon/lang/ur_pk.json" => { include_str!("../../horizon-client/assets/horizon/lang/ur_pk.json") } + "assets/horizon/lang/ja_jp.json" => { + include_str!("../../horizon-client/assets/horizon/lang/ja_jp.json") + } "assets/horizon/lang/de_de.json" | "assets/horizon/lang/de_at.json" => { include_str!("../../horizon-client/assets/horizon/lang/de_de.json") } diff --git a/crates/horizon-client/assets/horizon/lang/ja_jp.json b/crates/horizon-client/assets/horizon/lang/ja_jp.json new file mode 100644 index 0000000000..03d898fef4 --- /dev/null +++ b/crates/horizon-client/assets/horizon/lang/ja_jp.json @@ -0,0 +1,508 @@ +{ + "horizon.options.controller": "コントローラー", + "horizon.options.vibration": "振動", + "horizon.options.adaptive_triggers": "アダプティブトリガー", + "horizon.options.lightbar": "ライトバー", + "horizon.options.look_sensitivity": "見た目の感度", + "horizon.options.invert_x": "反転ルック X", + "horizon.options.invert_y": "反転ルック Y", + "horizon.options.sneak_button": "スニークボタン", + "horizon.options.move_deadzone": "デッドゾーンの移動", + "horizon.options.look_deadzone": "ルックデッドゾーン", + "horizon.options.button_glyphs": "ボタンのグリフ", + "horizon.options.menu_navigation": "メニューナビゲーション", + "horizon.options.on_screen_keyboard": "オンスクリーンキーボード", + "horizon.options.chat_delay": "チャットの遅延", + "horizon.options.lightbar.health": "健康", + "horizon.options.lightbar.dimension": "次元", + "horizon.options.glyphs.auto": "自動", + "horizon.options.glyphs.xbox": "Xbox", + "horizon.options.glyphs.playstation": "プレイステーション", + "horizon.options.glyphs.nintendo": "任天堂", + "horizon.options.menu_focus": "フォーカス", + "horizon.options.menu_pointer": "ポインタ", + "horizon.options.keyboard.auto": "自動", + "horizon.options.keyboard.horizon": "ホライズン", + "horizon.options.keyboard.steam": "蒸気", + "horizon.options.unavailable": "この機能は Horizon ではまだ利用できません。", + "horizon.options.search": "検索設定...", + "horizon.pages.mods": "改造", + "horizon.pages.shader_packs": "シェーダーパック", + "horizon.pages.shader_options": "シェーダオプション", + "horizon.pages.controller": "コントローラーの設定", + "horizon.pages.controller_binds": "コントローラーのバインド", + "horizon.pages.extras": "ホライゾン エクストラ", + "horizon.pages.settings": "ホライズン設定", + "horizon.pages.agent": "AIエージェント", + "horizon.split.leave": "休暇を取る", + "horizon.pages.split_settings": "分割画面設定", + "horizon.pages.split_profiles": "誰が遊んでるの?", + "horizon.pages.split_setup": "分割画面のセットアップ", + "horizon.pages.music": "音楽", + "horizon.pages.music.menu": "メニュー", + "horizon.pages.music.overworld": "オーバーワールド", + "horizon.pages.music.creative": "クリエイティブ", + "horizon.pages.music.underwater": "水中", + "horizon.pages.music.end": "終わり", + "horizon.pages.music.boss": "ボス", + "horizon.pages.music.credits": "クレジット", + "horizon.pages.music.overworld_biomes": "オーバーワールドのバイオーム", + "horizon.pages.music.nether_biomes": "ネザーバイオーム", + "horizon.pages.music.end_biomes": "エンドバイオーム", + "horizon.pages.music.other": "その他の音楽", + "horizon.pages.music.empty": "音楽トラックがありません: ゲームのサウンドが読み込まれていません。", + "horizon.pages.music.tooltip": "状況別の内蔵トラック: 今すぐ 1 つを再生するか、ゲームが選択を停止するようにいずれかをオフにします。", + "horizon.pages.settings.tooltip": "Horizon 独自の設定: グラフィックス、コントローラー、エクストラ、MOD。", + "horizon.pages.graphics.tooltip": "グラフィックス、簡単に言うと、各設定にどれだけのコストがかかるかを示します。", + "horizon.pages.graphics_advanced.tooltip": "Horizon を含むすべてのグラフィック設定とそれぞれの費用。", + "horizon.pages.controller.tooltip": "コントローラー: ボタン、スティック、振動、メニュー ナビゲーション。", + "horizon.pages.extras.tooltip": "オプションの追加機能。デフォルトではすべてオフになっています。いずれかをオンにするまで、ゲームはバニラのままです。", + "horizon.pages.agent.tooltip": "独自の AI エージェントを実行します: このコンピューター上の Horizon-ctl クライアントと MCP クライアント。", + "horizon.pages.split_profiles.tooltip": "プレイする人: このゲーム フォルダーに保存されているプロフィール。", + "horizon.pages.split_setup.tooltip": "窓やモニター、そして誰がどこでプレイするか。", + "horizon.pages.shader_packs.tooltip": "shaderpacks フォルダーのシェーダー パック: Horizo​​n 独自のものと、shaders/ 形式のもの。一度に 1 つずつ実行されます。", + "horizon.pages.mods.tooltip": "Horizon 用に作成された Mod (horizon-mods フォルダーから)。それぞれサンドボックス内で実行され、オンになるまでオフのままになります。", + "horizon.pages.open.graphics": "グラフィックス...", + "horizon.pages.open.graphics_advanced": "高度なグラフィックス...", + "horizon.pages.open.shader_packs": "シェーダーパック...", + "horizon.pages.open.controller": "コントローラー設定...", + "horizon.pages.open.split_setup": "画面分割...", + "horizon.pages.open.extras": "エクストラ...", + "horizon.pages.open.mods": "改造...", + "horizon.pages.open.agent": "AIエージェント...", + "horizon.pages.open.horizon_graphics": "ホライゾングラフィックス...", + "horizon.pages.open.controller_binds": "コントローラーのバインド...", + "horizon.pages.open.horizon_settings": "水平線設定...", + "horizon.pages.open.music": "音楽...", + "horizon.mods.empty": "MODなし: .hmodファイルをhorizon-modsフォルダーに置きます", + "horizon.mods.stopped": " (停止中)", + "horizon.mods.not_built": " (構築されていません)", + "horizon.mods.dev": " (開発)", + "horizon.mods.settings": "設定", + "horizon.mods.in_world": " (世界の変化に任せて)", + "horizon.mods.open_folder": "Modフォルダーを開く", + "horizon.shader_packs.empty": "シェーダー パックはありません。シェーダー パック フォルダーに入れてください。", + "horizon.shader_packs.kind_horizon": " (地平線)", + "horizon.shader_options.open": "シェーダオプション...", + "horizon.shader_options.profile": "プロフィール", + "horizon.shader_options.loading": "シェーダー パックのオプションを読んでいます...", + "horizon.agent.copy_details": "接続詳細のコピー", + "horizon.multiplayer.join": "参加する", + "horizon.multiplayer.cancel_reconnecting": "再接続のキャンセル", + "horizon.multiplayer.join_friend": "友達に加わる", + "horizon.multiplayer.invite_code": "招待コード", + "horizon.multiplayer.relay": "リレー(オプション)", + "Preset": "プリセット", + "LOD Distance": "LOD距離", + "Far Detail": "遠くの詳細", + "Cave Culling": "洞窟の淘汰", + "Entity Culling": "エンティティのカリング", + "Chunk Updates": "チャンクの更新", + "Upload Budget": "予算のアップロード", + "Sky": "空", + "Fog": "霧", + "Weather": "天気", + "Animated Textures": "アニメーションテクスチャ", + "Present Mode": "プレゼントモード", + "Frame Pacing": "フレームペーシング", + "Worker Threads": "ワーカースレッド", + "Resolution Scale": "解像度スケール", + "Anti-aliasing": "アンチエイリアシング", + "Upscaling": "アップスケーリング", + "Paper White": "ペーパーホワイト", + "Peak Brightness": "ピーク輝度", + "Black Level": "黒レベル", + "UI Brightness": "UIの明るさ", + "Battery Mode": "バッテリーモード", + "Graphics API": "グラフィックスAPI", + "Translucent Batching": "半透明のバッチ処理", + "Performance Overlay": "パフォーマンスオーバーレイ", + "Full Detail Distance": "全詳細距離", + "On": "オン", + "Off": "オフ", + "Unlimited": "無制限", + "Auto": "自動", + "Custom": "カスタム", + "Performance": "パフォーマンス", + "Balanced": "バランスの取れた", + "Quality": "品質", + "Ultra": "ウルトラ", + "Ultra Performance": "ウルトラパフォーマンス", + "Native": "ネイティブ", + "Full": "フル", + "Reduced": "減少", + "Efficient": "効率的", + "Precise": "正確な", + "Auto (VSync)": "自動 (垂直同期)", + "FIFO": "FIFO", + "Mailbox": "メールボックス", + "Immediate": "即時", + "Vulkan": "バルカン", + "DirectX 12": "ダイレクトX12", + "OpenGL": "OpenGL", + "FPS and Graph": "FPSとグラフ", + "FPS": "FPS", + "TAA": "TAA", + "FXAA": "FXAA", + "No cost": "費用はかかりません", + "Low cost": "低コスト", + "Medium cost": "中コスト", + "High cost": "高コスト", + "Saves time": "時間を節約します", + "HDR": "HDR", + "Graphics": "グラフィックス", + "Done": "完了", + "This feature is not yet available in Horizon.": "この機能は Horizon ではまだ利用できません。", + "Your display or system doesn't offer HDR output.": "お使いのディスプレイまたはシステムは HDR 出力を提供しません。", + "Turn HDR on to use it.": "HDR をオンにして使用します。", + "Your GPU or graphics API doesn't support it.": "GPU またはグラフィックス API はそれをサポートしていません。", + "%s chunks": "%s チャンク", + "%s per frame": "フレームあたり%s", + "%s MiB/frame": "%s MiB/フレーム", + "%s KiB/frame": "%s KiB/フレーム", + "Auto (%s)": "自動 (%s)", + "Full-detail terrain range. LOD Distance can extend local worlds farther.": "フルディテールの地形範囲。 LOD ディスタンスを使用すると、ローカル ワールドをさらに遠くに拡張できます。", + "Coarse distant terrain in local worlds. Integrated GPUs stop at 128 chunks.": "ローカルワールドの粗い遠くの地形。統合 GPU は 128 チャンクで停止します。", + "Reduced draws far terrain coarser: faster on this integrated GPU.": "遠くの地形の描画を減らすと、より粗く、この統合された GPU ではより速く描画されます。", + "Reduced draws far terrain coarser, for GPUs it slows down.": "縮小すると、遠くの地形の描画が粗くなり、GPU の場合は速度が低下します。", + "Field of view. Wider shows more terrain at once.": "視野。幅を広くすると、より多くの地形が一度に表示されます。", + "Caps frames per second; a cap saves power and heat.": "1 秒あたりのフレーム数を制限します。キャップは電力と熱を節約します。", + "Waits for the display's refresh: no tearing, a little latency.": "ディスプレイの更新を待ちます。ティアリングはありませんが、待ち時間は少しあります。", + "Size of menus and the HUD.": "メニューと HUD のサイズ。", + "Sets the options below together. Changing one makes it Custom.": "以下のオプションをまとめて設定します。どれかを変更するとカスタムになります。", + "Lava, fire and sunlight shine brighter than white. Needs an HDR display.": "溶岩、火、太陽光は白よりも明るく輝きます。 HDRディスプレイが必要です。", + "Your display's darkest black. 0 for OLED; LCDs glow a little.": "ディスプレイの中で最も暗い黒。 OLEDの場合は0。液晶が少し光ります。", + "How bright highlights get. Auto: the peak your system reports.": "ハイライトがどれだけ明るくなるか。自動: システムが報告するピーク。", + "How bright white paper and menus look. Auto: your desktop's white.": "白い紙とメニューがいかに明るく見えるか。自動: デスクトップが白になります。", + "How bright the HUD and menus are, against paper white.": "紙の白に対する HUD とメニューの明るさ。", + "How far mobs, crops and machines keep working. CPU time.": "暴徒、作物、機械がどこまで機能し続けるか。 CPU時間。", + "How far away mobs and items are drawn, as a share of normal.": "通常の割合として、Mob とアイテムが描画される距離。", + "Skips terrain hidden behind closed sections. Off costs a lot.": "閉じたセクションの後ろに隠れている地形をスキップします。オフには多額の費用がかかります。", + "Hides entities behind opaque blocks.": "エンティティを不透明なブロックの後ろに隠します。", + "No entity occlusion culling.": "エンティティ オクルージョン カリングはありません。", + "CPU occlusion test runs this frame.": "CPU オクルージョン テストはこのフレームを実行します。", + "Occlusion checks run on a worker thread.": "オクルージョン チェックはワーカー スレッドで実行されます。", + "Meshed sections uploaded per frame. Lower is smoother while loading.": "メッシュ化されたセクションはフレームごとにアップロードされます。ローディング時は下のほうがスムーズです。", + "Soft shadows in corners. Costs chunk building time only.": "コーナーの柔らかい影。チャンクの構築時間のみがかかります。", + "Smaller copies of block textures for distant terrain: less shimmer.": "遠くの地形のブロック テクスチャの小さいコピー: きらめきが少なくなります。", + "Blends grass and water colours across biomes when building chunks.": "チャンクを構築するときに、バイオーム全体で草と水の色をブレンドします。", + "Cloud layer: off, flat (fast) or 3D (fancy).": "クラウドレイヤー: オフ、フラット (高速) または 3D (ファンシー)。", + "How far clouds reach, in chunks.": "雲が塊ごとにどこまで届くか。", + "Draws the sky, sun, moon and stars.": "空、太陽、月、星を描きます。", + "Distance fog. Off shows the edge of the loaded world.": "距離霧。オフは、読み込まれたワールドの端を示します。", + "Draws rain and snow.": "雨と雪を描きます。", + "How far rain and snow fall around you.": "あなたの周囲に雨や雪がどれだけ降るのか。", + "How many particles effects spawn.": "パーティクル エフェクトのスポーン数。", + "Round shadows under mobs and items.": "Mob とアイテムの下の丸い影。", + "Leaves with see-through gaps. Off draws them solid.": "隙間が透けて見える葉。オフではしっかりと描画されます。", + "Sorts water and glass more exactly behind each other.": "水とガラスをより正確に前後に並べます。", + "Which chunk rebuilds wait for the frame: none, nearby or yours.": "どのチャンクの再構築がフレームを待機するか: なし、近くのチャンク、または自分のチャンク。", + "Animates water, lava, fire and other moving textures.": "水、溶岩、火、その他の動くテクスチャをアニメーション化します。", + "World pixels per screen pixel. Below 100% is faster on the GPU.": "画面ピクセルごとのワールド ピクセル。 100% 未満の場合、GPU での速度が速くなります。", + "Smooths jagged edges. FXAA: softer. TAA: smoothest, moving things may trail.": "ギザギザのエッジを滑らかにします。 FXAA: 柔らかめ。 TAA: 最もスムーズですが、動いているものは尾を引く可能性があります。", + "Renders the world smaller and rebuilds it with TAA. Faster, softer.": "世界を小さくレンダリングし、TAA で再構築します。より速く、よりソフトに。", + "HDR output on an HDR display: lava, fire and sunlight shine brighter.": "HDR ディスプレイ上の HDR 出力: 溶岩、火、太陽光がより明るく輝きます。", + "How frames reach the screen while VSync is off.": "VSync がオフのときにフレームが画面に到達する方法。", + "Efficient sleeps until the next frame; Precise spins, like vanilla.": "次のフレームまで効率的にスリープします。バニラのような正確なスピン。", + "Fills the screen (borderless).": "画面いっぱい(フチなし)に表示します。", + "Brightens dark places.": "暗い場所を明るくします。", + "Lowers the frame rate when minimised, or idle too.": "最小化またはアイドル時にもフレーム レートを下げます。", + "Sways the view while walking.": "歩いていると景色が揺れます。", + "Fades newly loaded chunks in.": "新しくロードされたチャンクをフェードインします。", + "Darkens the screen's edges.": "画面の端を暗くします。", + "Shows when the world saves.": "世界が救われるときを示します。", + "Shows attack cooldown.": "攻撃のクールダウンを表示します。", + "60 FPS cap (30 in menus or unfocused), half the workers: less power.": "60 FPS の上限 (メニューまたはフォーカスされていない場合は 30)、ワーカーの半分: 電力が減少します。", + "Threads that generate, light and mesh chunks. Next start.": "チャンクを生成、ライト、メッシュするスレッド。次のスタート。", + "Vulkan, then DirectX 12 (Windows) or OpenGL (Linux) where it fails. Next start.": "Vulkan、次に DirectX 12 (Windows) または OpenGL (Linux) で失敗します。次のスタート。", + "Water and glass in one buffer: fewer draw calls, a bit more VRAM. Next start.": "1 つのバッファーに水とガラス: ドローコールが減り、VRAM が少し増えます。次のスタート。", + "Mesh data sent to the GPU per frame. Lower is smoother while loading.": "フレームごとに GPU に送信されるメッシュ データ。ローディング時は下のほうがスムーズです。", + "Frame rate and frame times over the game, with a graph.": "ゲーム全体のフレーム レートとフレーム時間をグラフで表示します。", + "horizon.multiplayer.finding_friend": "友達の世界を探しています...", + "horizon.multiplayer.not_signed_in": "このサーバーはオンライン モードです。 Horizo​​n ランチャーに Microsoft アカウントを使用してサインインして、それに参加します。", + "horizon.multiplayer.invalid_address": "無効なサーバーアドレス: %s", + "horizon.multiplayer.connected_friend_direct": "友達と直接つながります...", + "horizon.multiplayer.connected_friend_relay": "リレーを通じて友達とつながっています...", + "General": "一般", + "Advanced": "上級者向け", + "Undo": "元に戻す", + "Search options": "検索オプション", + "Shortcut": "ショートカット", + "Distance": "距離", + "Display": "ディスプレイ", + "Interface": "インターフェース", + "Sky and weather": "空と天気", + "Lighting and entities": "照明とエンティティ", + "Textures": "テクスチャ", + "Image": "画像", + "Chunk loading": "チャンクロード", + "Culling": "淘汰", + "Power": "パワー", + "Frames": "フレーム", + "Overlay": "オーバーレイ", + "Output": "出力", + "Brightness": "明るさ", + "How far you see, the window and the HUD.": "窓とHUDがどこまで見えるか。", + "The sky and weather, lighting, textures and the image.": "空と天気、照明、テクスチャ、画像。", + "Chunk loading, culling and power use.": "チャンクのロード、カリング、および電力の使用。", + "How frames reach the screen, and the performance overlay.": "フレームが画面に到達する方法とパフォーマンス オーバーレイ。", + "Brighter-than-white output on an HDR display.": "HDR ディスプレイ上の白よりも明るい出力。", + "Results for \"%s\"": "「%s」の結果", + "No settings match.": "一致する設定がありません。", + "horizon.title.not_affiliated": "Mojang や Microsoft とは関係ありません", + "horizon.extras.header.lighting": "照明", + "horizon.extras.header.third_person": "第三者", + "horizon.extras.header.particles": "粒子", + "horizon.extras.header.inventory": "在庫", + "horizon.extras.header.chat": "チャット", + "horizon.extras.header.multiplayer": "マルチプレイヤー", + "horizon.extras.header.sound": "サウンド", + "horizon.extras.header.menus": "メニュー", + "horizon.extras.fullbright": "フルブライト", + "horizon.extras.dynamic_lights": "ダイナミックライト", + "horizon.extras.own_name_tag": "自分だけのネームタグ", + "horizon.extras.hide_block_particles": "ブロックブレイクパーティクルを非表示にする", + "horizon.extras.auto_reconnect": "自動再接続", + "horizon.extras.ui_sound_reserve": "UI サウンドのチャンネルを維持する", + "horizon.extras.music_page": "音楽ページ", + "horizon.extras.mouse_tweaks": "マウス調整コントロール", + "horizon.extras.mouse_tweaks_wheel": "スクロール ホイールで項目を移動します", + "horizon.extras.sort": "並べ替えボタン", + "horizon.extras.sort_key": "ソートキー", + "horizon.extras.no_ai": "AIなし", + "horizon.extras.agent_control": "エージェント制御", + "horizon.extras.discord_presence": "Discord のリッチなプレゼンス", + "horizon.extras.splitscreen": "分割画面", + "horizon.extras.chat_animation": "スムーズなチャット", + "horizon.extras.chat_indicator": "メッセージインジケーター", + "horizon.extras.wheel_cycles_settings": "スクロール ホイールで設定を変更します", + "horizon.extras.pack_browser": "リソースパックブラウザ", + "horizon.extras.fullbright.tooltip": "暗い場所でもブロックやエンティティを完全な光で表示します。", + "horizon.extras.dynamic_lights.tooltip": "トーチやその他の光源を持ったり、落としたり、火をつけたりすると、周囲のブロックが点灯します。", + "horizon.extras.own_name_tag.tooltip": "他のプレイヤーと同じように、三人称で自分の名前が頭上に表示されます。サーバーがチームの名前を隠している場合、またはあなたが表示されていない場合は、非表示になります。", + "horizon.extras.hide_block_particles.tooltip": "壊れたブロックから飛び出し、採掘したブロックから崩れ落ちる破片の粒子を隠します。他の粒子はそのまま残ります。", + "horizon.extras.auto_reconnect.tooltip": "キックや禁止の後ではなく、接続の喪失または再起動後にサーバーに再参加します。", + "horizon.extras.ui_sound_reserve.tooltip": "世界中のサウンドは 247 サウンド チャンネルのうち 16 チャンネルを解放しているため、それらの洪水 (大爆発) がメニュー クリックを沈黙させることはできません。", + "horizon.extras.music_page.tooltip": "Music & Sounds に Music... ページが表示されます。内蔵トラックを今すぐ再生するか、ゲームがトラックを選択しないように 1 つをオフにします。トラックをオフにするまでは何も変わりません。", + "horizon.extras.mouse_tweaks.tooltip": "右ドラッグでスロットごとに 1 つずつ配置し、左ドラッグで保持しているアイテムを収集し、Shift + 左ドラッグでスロットごとに移動します。", + "horizon.extras.mouse_tweaks_wheel.tooltip": "Down はスロットの 1 つの項目を反対側に送り、Up は 1 つの項目を戻します。", + "horizon.extras.sort.tooltip": "インベントリ、チェスト、バレル、エンダーチェスト、シュルカーボックスをクリエイティブなタブオーダーで並べ替え、スタックを結合します。", + "horizon.extras.sort_key.tooltip": "カーソル下の部分を並べ替えます。クリックしてキーを押します。エスケープするとバインドが解除されます。", + "horizon.extras.no_ai.tooltip": "すべての AI 機能 (エージェント コントロール、Horizon-ctl、MCP サーバー) を非表示にしてオフにします。ランチャーのスイッチも。", + "horizon.extras.agent_control.tooltip": "独自の AI エージェントは、このコンピューター上でのみ、horizon-ctl または MCP クライアントを通じてこのゲームをプレイできます。", + "horizon.extras.discord_presence.tooltip": "Discord の実行中に、Discord プロフィールに Playing Horizon が表示されます: メニュー、シングル プレーヤーまたはマルチプレーヤー、ディメンション、および再生時間が表示されます。決して世界の名前やサーバーのアドレスではありません。", + "Calibrate...": "校正...", + "Calibrate Anyway...": "とにかく校正してください...", + "Use Automatic Setup": "自動セットアップを使用する", + "Shortcut: %s": "ショートカット: %s", + "Next": "次へ", + "HDR Calibration %s/%s: %s": "HDR キャリブレーション %s/%s: %s", + "Sets the three below full screen, one test picture at a time.": "フルスクリーンの下の 3 つを、一度に 1 つのテスト画像を設定します。", + "A key that opens this screen from the game. Not bound at first.": "ゲームからこの画面を開くキー。最初は縛られてない。", + "Your display didn't say how bright it gets: calibrate to set it up.": "ディスプレイにはどのくらい明るくなるかは記載されていません。調整して設定してください。", + "Already set up for your display. Only calibrate if HDR looks wrong.": "ディスプレイ用にすでにセットアップされています。 HDR が間違っていると思われる場合にのみ調整してください。", + "Puts Peak Brightness and Paper White back to your display's setup.": "ピークの明るさとペーパー ホワイトをディスプレイの設定に戻します。", + "Set up for your display. Leave on Auto unless it looks wrong.": "ディスプレイに合わせて設定します。問題がなければ、[自動] のままにしておきます。", + "Lower it until the logo just disappears into the black.": "ロゴが真っ黒に消えるまで下げます。", + "Raise it until the logo just disappears into the bright square.": "ロゴが明るい四角形に消えるまで上げます。", + "Make the card a white that's comfortable to look at for a long time, in the light you play in.": "プレイする光の下で、カードを長時間見ても快適な白にします。", + "horizon.splitscreen.profiles.forget": "忘れる", + "horizon.splitscreen.profiles.create": "作成", + "horizon.splitscreen.profiles.you": " - あなた", + "horizon.splitscreen.profiles.forget_named": "%sは忘れてください", + "horizon.splitscreen.profiles.previous": "前へ", + "horizon.splitscreen.profiles.next": "次へ", + "horizon.splitscreen.profiles.new_button": "新しいプロフィール...", + "horizon.splitscreen.profiles.forget_title": "プロフィールを忘れましたか?", + "horizon.splitscreen.profiles.forget_leaves": "このインスタンスのリストを残します。", + "horizon.splitscreen.profiles.forget_kept": "ワールドの進行状況と設定は保持されます。", + "horizon.splitscreen.profiles.new_title": "新しいプロフィール", + "horizon.splitscreen.profiles.name_hint": "お名前(3~16文字の英数字、_)", + "horizon.splitscreen.profiles.switch_title": "プロファイルの切り替え", + "horizon.splitscreen.profiles.offline_note": "オフライン プロファイルはこのインスタンスに属します", + "horizon.splitscreen.profiles.move": "遊ぶ場所を移動する", + "horizon.splitscreen.profiles.move_place": "プレイする場所を移動: %s", + "horizon.friends.title": "友達と遊ぶ", + "horizon.friends.hint": "フレンドは、タイトル画面のフレンドボタンの後、ダイレクト接続、またはランチャーのプレイページにコードを貼り付けます。", + "horizon.friends.copied": "コピーされました", + "horizon.friends.copy_code": "コードをコピーする", + "horizon.friends.stop_sharing": "共有を停止する", + "horizon.friends.none_yet": "ここにはまだ友達がいません。", + "horizon.friends.here_now": "今ここ: %s", + "horizon.friends.share_intro": "招待コードを使用してこの世界を共有します。コードは LAN に開かれ、インターネット上の友人はコードを使用して参加します。弊社のサーバーは関与しておりません。", + "horizon.friends.start_sharing": "共有を開始する", + "horizon.friends.troubleshooting": "トラブルシューティング中...", + "horizon.friends.stopped": "招待コードの共有を停止しました。", + "horizon.friends.short_code_changed": "誰かが間違ったショートコードを試し続けたため、コードが変更されました。", + "horizon.friends.wrong_code": "誰かが間違ったコードを試みました。", + "horizon.friends.code_ready": "招待コードの準備が整いました: ゲーム メニュー、友達とプレイ。コピーして友達に送信してください。", + "horizon.friends.share_failed": "世界を共有できませんでした: %s", + "horizon.friends.finding_route": "友達があなたに連絡する方法を調べています…", + "horizon.osk.shift": "シフト", + "horizon.osk.space": "宇宙", + "horizon.osk.delete": "削除", + "horizon.osk.type": "種類", + "horizon.osk.symbols": "記号", + "horizon.osk.close": "閉じる", + "horizon.extras.chat_animation.tooltip": "新しいチャット ラインは全体として表示されるのではなく、フェードインしながら左側からスライドして表示されます。", + "horizon.extras.chat_indicator.tooltip": "チャットラインの左側にある色付きのバー。", + "horizon.extras.wheel_cycles_settings.tooltip": "バニラと同様に、設定内のボタン上でホイールをスクロールすると、その値が変更されます。オフの場合、ホイールはリストのみをスクロールします。", + "horizon.extras.pack_browser.tooltip": "[リソース パック] を選択すると、Modrinth を検索してパック フォルダーにパックをインストールする [追加] ボタンが表示されます。オフ、ゲームは決してモドリンスに接触しません。", + "horizon.extras.splitscreen.tooltip": "ワールドでは、別のコントローラーが新しいプレーヤーとして参加できます。メッセージが表示されたら A を押し、プロフィールとプレイする場所を選択します。", + "horizon.splitscreen.setup.monitor": "モニター%s", + "horizon.splitscreen.setup.monitor_unknown": "モニター", + "horizon.splitscreen.setup.window": "ウィンドウ%s", + "horizon.splitscreen.setup.new_window": "新しいウィンドウ", + "horizon.splitscreen.setup.fill_monitor": "%s を入力してください", + "horizon.splitscreen.setup.done": "完了", + "horizon.splitscreen.setup.switch": "%s: %s", + "horizon.splitscreen.setup.on": "オン", + "horizon.splitscreen.setup.off": "オフ", + "horizon.splitscreen.setup.player": "プレーヤー%s", + "horizon.splitscreen.setup.revert": "元に戻す", + "horizon.splitscreen.setup.apply": "申し込む", + "horizon.splitscreen.setup.warning.empty_main": "ウィンドウ 1 では誰もプレイしません。ウィンドウ 1 は非表示になります。", + "horizon.splitscreen.setup.warning.empty_close": "ウィンドウ %s では誰もプレイしません: 適用時に閉じます", + "horizon.splitscreen.setup.warning.empty_new": "Window %s では誰もプレイしていません: 開きません", + "horizon.splitscreen.setup.warning.on_main": "ウィンドウ %s がウィンドウ 1 のモニターに表示されます。プレイヤーはウィンドウ 1 でプレイします。", + "horizon.splitscreen.setup.warning.unplugged": "Window %s のモニターが接続されていません。そのプレイヤーは Window 1 でプレイします。", + "horizon.splitscreen.setup.status.off": "画面分割がオフになっています。", + "horizon.splitscreen.setup.status.enable_hint": "それをオンにして、ワールド内の別のコントローラーのボタンを押します。", + "horizon.splitscreen.setup.status.join_hint": "A を押して参加し、プロフィールを選択します。", + "horizon.splitscreen.setup.status.idle": "分割画面のアイドル状態", + "horizon.splitscreen.setup.status.alone": "他に地元選手はいない。", + "horizon.splitscreen.setup.status.solo_controls": "ソロコントロールとコントローラーフィードバックは変更されません。", + "horizon.splitscreen.setup.window_empty": "ウィンドウ %s: 空", + "horizon.splitscreen.setup.note.select": "プレーヤーをクリックするか、ウィンドウまたはモニターにドラッグします。", + "horizon.splitscreen.setup.note.apply": "この方法で再生するには適用し、元に戻すには戻るを選択します。", + "horizon.splitscreen.setup.note.place": "%s はどこでプレイすべきですか?", + "horizon.splitscreen.setup.this_player": "この選手", + "horizon.splitscreen.setup.switch_disabled": "他の人が退席すると (一時停止メニュー)、分割画面はオフになります。", + "horizon.splitscreen.setup.window_place": "ウィンドウ %s (%s の %s)", + "horizon.splitscreen.setup.names": "名前", + "horizon.splitscreen.setup.identify": "特定する", + "horizon.splitscreen.setup.layout.two": "2 共有: %s", + "horizon.splitscreen.setup.layout.three": "3 共有: %s", + "horizon.splitscreen.setup.layout.two.0": "自動", + "horizon.splitscreen.setup.layout.two.1": "並んで", + "horizon.splitscreen.setup.layout.two.2": "上と下", + "horizon.splitscreen.setup.layout.three.0": "上にワイドが1つ", + "horizon.splitscreen.setup.layout.three.1": "左側の背の高い人", + "horizon.splitscreen.setup.layout.three.2": "並んで", + "horizon.splitscreen.setup.help.player": "%s をクリックまたはドラッグして移動します。", + "horizon.splitscreen.setup.help.layout_auto": "%s (ウィンドウが広い場合は横に並べて表示)。を押して変更します。", + "horizon.splitscreen.setup.help.layout": "%s。を押して変更します。", + "horizon.splitscreen.setup.help.switch": "このコンピュータの画面分割 (オンまたはオフ)。", + "horizon.splitscreen.setup.help.identify": "各プレイヤーのビューには、どのウィンドウにいるかが表示されます。", + "horizon.splitscreen.setup.help.names": "各プレイヤーの名前が視界の隅に表示されます。", + "horizon.splitscreen.setup.help.revert": "まだ適用されていない変更を元に戻します。", + "horizon.splitscreen.setup.help.apply": "マップに表示されている方法でプレイしてください。", + "horizon.splitscreen.setup.help.unchanged": "まだ何も変わっていません。", + "horizon.splitscreen.setup.give_up_pad": "ギブアップパッド", + "horizon.splitscreen.prompt.controller_connected": "コントローラーが接続されています", + "horizon.splitscreen.prompt.controller_disconnected": "コントローラーが切断されました", + "horizon.splitscreen.prompt.controller_disconnected.hint": "再接続するか、別のボタンを押してください", + "horizon.splitscreen.prompt.join.one": "%s さんは参加を希望しています", + "horizon.splitscreen.prompt.join.many": "%s コントローラーが参加を希望しています", + "horizon.splitscreen.prompt.join.yes": "参加する", + "horizon.splitscreen.prompt.join.as_p1": "P1としてプレイする", + "horizon.splitscreen.prompt.join.no": "いいえ", + "horizon.splitscreen.prompt.lost": "%s: コントローラーが切断されました", + "horizon.splitscreen.prompt.lost.use_another": "別のものを使用する", + "horizon.splitscreen.prompt.lost.leave": "休暇を取る", + "horizon.splitscreen.setup.help.give_up_pad": "コントローラーは運転を停止し、(A) に参加するよう勧められます。", + "horizon.splitscreen.setup.note.held_at": "%s から %s: A がここにドロップし、B が元に戻します。", + "horizon.splitscreen.setup.note.held": "%s を拾った: 左/右がどこにピックし、A がドロップし、B が元に戻します。", + "Hides models behind opaque blocks. Async checks off-thread; entities tick.": "モデルを不透明なブロックの後ろに隠します。非同期チェックはオフスレッドで行われます。エンティティがティックします。", + "Block Entities": "ブロックエンティティ", + "Shulker Boxes": "シュルカーボックス", + "Reuses settled boxes; lid movement stays animated.": "固定されたボックスを再利用します。蓋の動きはアニメーションのままです。", + "Signs": "標識", + "Reuses sign text until text, light, or font changes.": "テキスト、ライト、またはフォントが変更されるまで、署名テキストを再利用します。", + "Decorated Pots": "装飾鉢", + "Reuses still pots; break wobble and sherd changes redraw.": "蒸留器を再利用します。ぐらつきを解消し、シャードの変更を再描画します。", + "Bells": "ベル", + "Reuses still bells; ringing stays animated.": "静止ベルを再利用します。呼び出し音はアニメーションのままになります。", + "Chests": "チェスト", + "Reuses closed chests; moving lids stay animated.": "閉じたチェストを再利用します。動くまぶたはアニメーションを維持します。", + "Banners": "バナー", + "Reuses poles; flags and pattern layers still update.": "ポールを再利用します。フラグとパターンレイヤーは引き続き更新されます。", + "Copper Golem Statues": "銅のゴーレム像", + "Reuses statue geometry until its block state changes.": "ブロックの状態が変わるまで、彫像ジオメトリを再利用します。", + "Leaf Culling": "葉の間引き", + "Every leaf face. Vanilla's fancy leaves.": "すべての葉の顔。バニラのファンシーな葉っぱ。", + "Distant Plant Dither": "遠くの植物のディザー", + "Keeps fine plants in high-res packs from fading far away.": "高解像度パック内の立派な植物を遠く離れた場所で色褪せるのを防ぎます。", + "Screenshot Quality": "スクリーンショットの品質", + "F2 screenshots at this many times the game's resolution. Higher takes longer.": "F2 キーを押すと、ゲームの解像度の何倍もの解像度でスクリーンショットが撮影されます。高いほど時間がかかります。", + "Frame Generation": "フレーム生成", + "Shows a made-up frame between each two real ones: smoother, a little more lag.": "2 つの実際のフレームの間に構成されたフレームを表示します。よりスムーズで、少し遅れが生じます。", + "Shadow Cache": "シャドウキャッシュ", + "Reuses the pack shadow map when sun, view and world match. Off by default.": "太陽、ビュー、ワールドが一致する場合、パック シャドウ マップを再利用します。デフォルトではオフです。", + "Find BlueMap": "ブルーマップを探す", + "On servers, finds their BlueMap web map for far terrain. Next join.": "サーバー上で、遠方の地形用の BlueMap Web マップを検索します。次に参加します。", + "BlueMap Radius": "ブルーマップの半径", + "How far around you BlueMap tiles are downloaded. Next join.": "BlueMap タイルがダウンロードされる周囲の距離。次に参加します。", + "Synchronous": "同期", + "Asynchronous": "非同期", + "Solid": "固体", + "Solid Aggressive": "ソリッドアグレッシブ", + "Hollow": "中空", + "Leaves fully inside a canopy draw solid: fewer see-through layers.": "樹冠の内側に葉が完全に描画されるため、透けて見えるレイヤーが少なくなります。", + "Leaves with one open side draw solid too: faster, chunkier edges.": "片側が開いた葉もしっかりと描画され、エッジがより速く、より分厚くなります。", + "Drops faces between leaves: faster, but gaps look through.": "葉の間に面をドロップします: 速度は速くなりますが、隙間が透けて見えます。", + "Hotbar: Previous Slot": "ホットバー: 前のスロット", + "Hotbar: Next Slot": "ホットバー: 次のスロット", + "horizon.agent.connected.one": "接続済み: 1 つのエージェント接続", + "horizon.agent.connected.many": "接続済み: %s エージェント接続", + "horizon.agent.connected.one_ago": "接続済み: 1 エージェント接続、最後のコマンドは %s 秒前", + "horizon.agent.connected.many_ago": "接続済み: %s エージェント接続、最後のコマンド %s 秒前", + "horizon.agent.waiting": "エージェントを待っています。", + "horizon.agent.off": "オフ: エージェントはこのゲームにアクセスできません。", + "horizon.agent.session_opened": "ゲームを開始したプログラムによってこのセッション用に開かれました。", + "horizon.agent.socket": "ソケット: %s (フルパスの詳細をコピーします)", + "horizon.agent.local_only": "ローカルのみ: このコンピュータ上にエージェントがあり、ネットワーク上には存在しません。", + "%s nits": "%sニット", + "Auto (%s nits)": "自動 (%s ニット)", + "%.2f nits": "%.2fニット", + "Hides models behind opaque blocks. Entities update. Off with custom packs.": "モデルを不透明なブロックの後ろに隠します。エンティティが更新されます。カスタムパックでオフ。", + "horizon.extras.repro_keys": "録音のショートカット", + "horizon.extras.repro_keys.tooltip": "F3+R は再現録画を開始または停止し、F3+E はそのバンドルを書き込みます。デフォルトではオフ: 録音は世界をコピーします。", + "horizon.agent.record_session": "録音セッションの開始", + "horizon.agent.record_stop": "セッションの記録を停止", + "horizon.agent.export_repro": "レプロバンドルのエクスポート", + "horizon.repro.started": "録音が開始されました。 F3+R で停止し、バンドルを書き込みます。", + "horizon.repro.stopped": "記録が停止されました: %s", + "horizon.repro.bundle": "再現バンドル: %s", + "horizon.repro.error": "再現: %s", + "horizon.repro.no_recording": "エクスポートする録音がまだありません。", + "horizon.repro.replay_started": "リプレイ開始: %s", + "horizon.pack.add": "+", + "horizon.pack.addInfo": "Modrinth からリソース パックを追加する", + "horizon.pack.addWorking": "モドリンスに聞いてみると…", + "horizon.pack.addNone": "リソース パックが見つかりません", + "horizon.pack.addTitle": "リソースパックを追加する", + "horizon.pack.install": "インストール", + "horizon.pack.installing": "インストール中", + "horizon.pack.installed": "インストール済み", + "horizon.pack.search": "検索", + "horizon.pack.searchHint": "モドリンスを検索...", + "horizon.pack.filters": "フィルター", + "horizon.pack.filter.realistic": "現実的な", + "horizon.pack.filter.simplistic": "単純化した", + "horizon.pack.filter.vanillaLike": "バニラっぽい", + "horizon.pack.filter.x16": "16倍", + "horizon.pack.filter.x32": "32倍", + "horizon.pack.filter.x64": "64倍", + "horizon.pack.addFailed": "パックを追加できませんでした: %s", + "horizon.extras.header.cosmetics": "化粧品", + "horizon.extras.cosmetics_mine": "私の化粧品", + "horizon.extras.cosmetics_mine.tooltip": "非表示: すべての Horizon プレイヤーは、あなたも含め、化粧品を着用していないあなたを見ます。ランチャーのワードローブと同じスイッチ。", + "horizon.extras.cosmetics_others": "他のプレイヤーの化粧品", + "horizon.extras.cosmetics_others.tooltip": "他の Horizon プレイヤーが着ているもの: すべて、名札のスタイルのみ、または何も着ていません。隠されていますが、ゲームでは彼らが何を着ているかは尋ねられません。", + "horizon.extras.cosmetics_auras": "他人のオーラと軌跡", + "horizon.extras.cosmetics_auras.tooltip": "他のプレイヤーが身に着けているオーラと軌跡。デフォルトではオフです。", + "horizon.extras.cosmetics.shown": "示されている", + "horizon.extras.cosmetics.hidden": "隠された", + "horizon.extras.cosmetics.name_tags": "ネームタグのみ" +} From 2c12bd8e05462d55c5438f6c8ed2e20e43726521 Mon Sep 17 00:00:00 2001 From: dontstopgorkingit <268053046+dontstopgorkingit@users.noreply.github.com> Date: Tue, 3 Nov 2026 16:27:14 +0100 Subject: [PATCH 16/70] Add Arabic (ar_sa) game translation Bundles Horizon's own Arabic strings so ar_sa players see translated menus and options instead of the English fallback. Co-Authored-By: DeepSeek V4.1 Flash Free --- crates/horizon-client-core/src/lang.rs | 3 + .../assets/horizon/lang/ar_sa.json | 508 ++++++++++++++++++ 2 files changed, 511 insertions(+) create mode 100644 crates/horizon-client/assets/horizon/lang/ar_sa.json diff --git a/crates/horizon-client-core/src/lang.rs b/crates/horizon-client-core/src/lang.rs index 9ad3c155b6..018984673c 100644 --- a/crates/horizon-client-core/src/lang.rs +++ b/crates/horizon-client-core/src/lang.rs @@ -100,6 +100,9 @@ impl ResourceSource for Bundled { "assets/horizon/lang/ur_pk.json" => { include_str!("../../horizon-client/assets/horizon/lang/ur_pk.json") } + "assets/horizon/lang/ar_sa.json" => { + include_str!("../../horizon-client/assets/horizon/lang/ar_sa.json") + } "assets/horizon/lang/de_de.json" | "assets/horizon/lang/de_at.json" => { include_str!("../../horizon-client/assets/horizon/lang/de_de.json") } diff --git a/crates/horizon-client/assets/horizon/lang/ar_sa.json b/crates/horizon-client/assets/horizon/lang/ar_sa.json new file mode 100644 index 0000000000..f951bc1c4e --- /dev/null +++ b/crates/horizon-client/assets/horizon/lang/ar_sa.json @@ -0,0 +1,508 @@ +{ + "horizon.options.controller": "المراقب المالي", + "horizon.options.vibration": "الاهتزاز", + "horizon.options.adaptive_triggers": "المشغلات التكيفية", + "horizon.options.lightbar": "الشريط الضوئي", + "horizon.options.look_sensitivity": "نظرة حساسية", + "horizon.options.invert_x": "عكس النظرة X", + "horizon.options.invert_y": "عكس نظرة Y", + "horizon.options.sneak_button": "زر التسلل", + "horizon.options.move_deadzone": "تحرك المنطقة الميتة", + "horizon.options.look_deadzone": "انظر المنطقة الميتة", + "horizon.options.button_glyphs": "الحروف الرسومية للأزرار", + "horizon.options.menu_navigation": "التنقل في القائمة", + "horizon.options.on_screen_keyboard": "لوحة المفاتيح على الشاشة", + "horizon.options.chat_delay": "تأخير الدردشة", + "horizon.options.lightbar.health": "الصحة", + "horizon.options.lightbar.dimension": "البعد", + "horizon.options.glyphs.auto": "تلقائي", + "horizon.options.glyphs.xbox": "اكس بوكس", + "horizon.options.glyphs.playstation": "بلاي ستيشن", + "horizon.options.glyphs.nintendo": "نينتندو", + "horizon.options.menu_focus": "التركيز", + "horizon.options.menu_pointer": "المؤشر", + "horizon.options.keyboard.auto": "تلقائي", + "horizon.options.keyboard.horizon": "الأفق", + "horizon.options.keyboard.steam": "البخار", + "horizon.options.unavailable": "هذه الميزة غير متوفرة بعد في Horizon.", + "horizon.options.search": "إعدادات البحث...", + "horizon.pages.mods": "تعديل", + "horizon.pages.shader_packs": "حزم شادر", + "horizon.pages.shader_options": "خيارات التظليل", + "horizon.pages.controller": "إعدادات وحدة التحكم", + "horizon.pages.controller_binds": "ربط وحدة التحكم", + "horizon.pages.extras": "إضافات الأفق", + "horizon.pages.settings": "إعدادات الأفق", + "horizon.pages.agent": "وكيل منظمة العفو الدولية", + "horizon.split.leave": "غادر", + "horizon.pages.split_settings": "إعدادات تقسيم الشاشة", + "horizon.pages.split_profiles": "من يلعب؟", + "horizon.pages.split_setup": "إعداد تقسيم الشاشة", + "horizon.pages.music": "موسيقى", + "horizon.pages.music.menu": "القائمة", + "horizon.pages.music.overworld": "العالم الخارجي", + "horizon.pages.music.creative": "إبداعي", + "horizon.pages.music.underwater": "تحت الماء", + "horizon.pages.music.end": "النهاية", + "horizon.pages.music.boss": "رئيس", + "horizon.pages.music.credits": "الاعتمادات", + "horizon.pages.music.overworld_biomes": "المناطق الأحيائية في العالم الخارجي", + "horizon.pages.music.nether_biomes": "المناطق الأحيائية السفلى", + "horizon.pages.music.end_biomes": "نهاية المناطق الأحيائية", + "horizon.pages.music.other": "موسيقى أخرى", + "horizon.pages.music.empty": "لا توجد مقطوعات موسيقية: لا يتم تحميل أصوات اللعبة.", + "horizon.pages.music.tooltip": "المسارات المضمنة، حسب الموقف: العب واحدة الآن، أو قم بإيقاف تشغيل أي منها حتى تتوقف اللعبة عن اختيارها.", + "horizon.pages.settings.tooltip": "إعدادات Horizon الخاصة: الرسومات ووحدات التحكم والإضافات والتعديلات.", + "horizon.pages.graphics.tooltip": "الرسومات ببساطة: كل إعداد يوضح تكلفته.", + "horizon.pages.graphics_advanced.tooltip": "كل إعدادات الرسومات، بما في ذلك Horizon، وتكلفة كل منها.", + "horizon.pages.controller.tooltip": "وحدات التحكم: الأزرار والعصي والاهتزاز والتنقل في القائمة.", + "horizon.pages.extras.tooltip": "الإضافات الاختيارية، كلها متوقفة بشكل افتراضي: تظل اللعبة عادية حتى تقوم بتشغيلها.", + "horizon.pages.agent.tooltip": "اسمح لوكيل الذكاء الاصطناعي الخاص بك باللعب: عملاء Horizon-ctl وMCP على هذا الكمبيوتر.", + "horizon.pages.split_profiles.tooltip": "من يلعب: ملف تعريف محفوظ في مجلد اللعبة هذا.", + "horizon.pages.split_setup.tooltip": "النوافذ والشاشات ومن يلعب أين.", + "horizon.pages.shader_packs.tooltip": "حزم Shader من مجلد Shaderpacks: الخاصة بشركة Horizon وتلك الموجودة في تنسيق التظليل/. واحد يعمل في وقت واحد.", + "horizon.pages.mods.tooltip": "التعديلات المعدة لـ Horizon، من مجلد Horizon-mods. يعمل كل منها في وضع الحماية ويظل مغلقًا حتى تقوم بتشغيله.", + "horizon.pages.open.graphics": "الرسومات...", + "horizon.pages.open.graphics_advanced": "رسومات متقدمة...", + "horizon.pages.open.shader_packs": "حزم التظليل...", + "horizon.pages.open.controller": "إعدادات وحدة التحكم...", + "horizon.pages.open.split_setup": "شاشة مقسمة...", + "horizon.pages.open.extras": "إضافات...", + "horizon.pages.open.mods": "تعديل...", + "horizon.pages.open.agent": "وكيل الذكاء الاصطناعي...", + "horizon.pages.open.horizon_graphics": "رسومات الأفق...", + "horizon.pages.open.controller_binds": "ربط وحدة التحكم...", + "horizon.pages.open.horizon_settings": "إعدادات الأفق...", + "horizon.pages.open.music": "موسيقى...", + "horizon.mods.empty": "لا توجد تعديلات: ضع ملفات .hmod في مجلد Horizon-mods", + "horizon.mods.stopped": " (متوقف)", + "horizon.mods.not_built": " (لم يتم بناؤه)", + "horizon.mods.dev": " (ديف)", + "horizon.mods.settings": "الإعدادات", + "horizon.mods.in_world": " (اترك العالم ليتغير)", + "horizon.mods.open_folder": "افتح مجلد التعديل", + "horizon.shader_packs.empty": "لا توجد حزم تظليل: ضعها في مجلدshaderpacks", + "horizon.shader_packs.kind_horizon": " (الأفق)", + "horizon.shader_options.open": "خيارات التظليل...", + "horizon.shader_options.profile": "الملف الشخصي", + "horizon.shader_options.loading": "قراءة خيارات حزمة التظليل...", + "horizon.agent.copy_details": "نسخ تفاصيل الاتصال", + "horizon.multiplayer.join": "انضم", + "horizon.multiplayer.cancel_reconnecting": "إلغاء إعادة الاتصال", + "horizon.multiplayer.join_friend": "انضم إلى صديق", + "horizon.multiplayer.invite_code": "رمز الدعوة", + "horizon.multiplayer.relay": "التتابع (اختياري)", + "Preset": "محددة مسبقا", + "LOD Distance": "مسافة اللد", + "Far Detail": "تفاصيل بعيدة", + "Cave Culling": "إعدام الكهف", + "Entity Culling": "إعدام الكيان", + "Chunk Updates": "تحديثات القطعة", + "Upload Budget": "تحميل الميزانية", + "Sky": "السماء", + "Fog": "ضباب", + "Weather": "الطقس", + "Animated Textures": "القوام المتحركة", + "Present Mode": "الوضع الحالي", + "Frame Pacing": "سرعة الإطار", + "Worker Threads": "خيوط العمال", + "Resolution Scale": "مقياس القرار", + "Anti-aliasing": "مكافحة التعرج", + "Upscaling": "الارتقاء", + "Paper White": "ورقة بيضاء", + "Peak Brightness": "ذروة السطوع", + "Black Level": "المستوى الأسود", + "UI Brightness": "سطوع واجهة المستخدم", + "Battery Mode": "وضع البطارية", + "Graphics API": "واجهة برمجة تطبيقات الرسومات", + "Translucent Batching": "الخلط الشفاف", + "Performance Overlay": "تراكب الأداء", + "Full Detail Distance": "مسافة التفاصيل الكاملة", + "On": "على", + "Off": "إيقاف", + "Unlimited": "غير محدود", + "Auto": "تلقائي", + "Custom": "مخصص", + "Performance": "الأداء", + "Balanced": "متوازن", + "Quality": "الجودة", + "Ultra": "الترا", + "Ultra Performance": "أداء فائق", + "Native": "أصلي", + "Full": "كامل", + "Reduced": "مخفض", + "Efficient": "كفاءة", + "Precise": "دقيق", + "Auto (VSync)": "تلقائي (VSync)", + "FIFO": "يصرف أولاً", + "Mailbox": "صندوق البريد", + "Immediate": "فوري", + "Vulkan": "فولكان", + "DirectX 12": "دايركت اكس 12", + "OpenGL": "برنامج OpenGL", + "FPS and Graph": "FPS والرسم البياني", + "FPS": "إطارا في الثانية", + "TAA": "تأ", + "FXAA": "فكسا", + "No cost": "لا تكلفة", + "Low cost": "تكلفة منخفضة", + "Medium cost": "تكلفة متوسطة", + "High cost": "تكلفة عالية", + "Saves time": "يوفر الوقت", + "HDR": "تقرير التنمية البشرية", + "Graphics": "الرسومات", + "Done": "تم", + "This feature is not yet available in Horizon.": "هذه الميزة غير متوفرة بعد في Horizon.", + "Your display or system doesn't offer HDR output.": "لا توفر شاشتك أو نظامك مخرجات HDR.", + "Turn HDR on to use it.": "قم بتشغيل HDR لاستخدامه.", + "Your GPU or graphics API doesn't support it.": "وحدة معالجة الرسومات (GPU) أو واجهة برمجة تطبيقات الرسومات الخاصة بك لا تدعمها.", + "%s chunks": "%s قطع", + "%s per frame": "%s لكل إطار", + "%s MiB/frame": "%s MiB/الإطار", + "%s KiB/frame": "%s كيلو بايت/الإطار", + "Auto (%s)": "تلقائي (%s)", + "Full-detail terrain range. LOD Distance can extend local worlds farther.": "نطاق التضاريس كامل التفاصيل. يمكن لمسافة LOD أن تمتد إلى عوالم محلية أبعد.", + "Coarse distant terrain in local worlds. Integrated GPUs stop at 128 chunks.": "التضاريس البعيدة الخشنة في العوالم المحلية. تتوقف وحدات معالجة الرسومات المدمجة عند 128 قطعة.", + "Reduced draws far terrain coarser: faster on this integrated GPU.": "تم تقليل الرسم على التضاريس البعيدة: بشكل أسرع على وحدة معالجة الرسومات المدمجة هذه.", + "Reduced draws far terrain coarser, for GPUs it slows down.": "يتم تقليل الرسوم على التضاريس البعيدة بشكل أكثر خشونة، أما بالنسبة لوحدات معالجة الرسومات فإنها تبطئ.", + "Field of view. Wider shows more terrain at once.": "مجال الرؤية. يُظهر العرض الأوسع المزيد من التضاريس في وقت واحد.", + "Caps frames per second; a cap saves power and heat.": "قبعات الإطارات في الثانية الواحدة؛ غطاء يوفر الطاقة والحرارة.", + "Waits for the display's refresh: no tearing, a little latency.": "في انتظار تحديث الشاشة: بدون تمزق، وقليل من زمن الوصول.", + "Size of menus and the HUD.": "حجم القوائم وHUD.", + "Sets the options below together. Changing one makes it Custom.": "يضبط الخيارات أدناه معًا. تغيير واحد يجعله مخصصًا.", + "Lava, fire and sunlight shine brighter than white. Needs an HDR display.": "الحمم البركانية والنار وأشعة الشمس تتألق أكثر من اللون الأبيض. يحتاج إلى شاشة HDR.", + "Your display's darkest black. 0 for OLED; LCDs glow a little.": "اللون الأسود الداكن لشاشتك. 0 لـ OLED؛ تتوهج شاشات LCD قليلاً.", + "How bright highlights get. Auto: the peak your system reports.": "كيف تحصل على النقاط البارزة الساطعة. تلقائي: ذروة تقارير النظام الخاص بك.", + "How bright white paper and menus look. Auto: your desktop's white.": "كيف تبدو الورق والقوائم البيضاء الزاهية. تلقائي: سطح المكتب الخاص بك باللون الأبيض.", + "How bright the HUD and menus are, against paper white.": "مدى سطوع شاشة HUD والقوائم مقابل الورق الأبيض.", + "How far mobs, crops and machines keep working. CPU time.": "إلى أي مدى يستمر الغوغاء والمحاصيل والآلات في العمل. وقت وحدة المعالجة المركزية.", + "How far away mobs and items are drawn, as a share of normal.": "إلى أي مدى يتم رسم الغوغاء والعناصر، كنسبة من المعدل الطبيعي.", + "Skips terrain hidden behind closed sections. Off costs a lot.": "يتخطى التضاريس المخفية خلف الأقسام المغلقة. قبالة تكاليف الكثير.", + "Hides entities behind opaque blocks.": "يخفي الكيانات خلف الكتل غير الشفافة.", + "No entity occlusion culling.": "لا يوجد إعدام انسداد الكيان.", + "CPU occlusion test runs this frame.": "يقوم اختبار انسداد وحدة المعالجة المركزية بتشغيل هذا الإطار.", + "Occlusion checks run on a worker thread.": "يتم تشغيل عمليات فحص الانسداد على مؤشر ترابط عامل.", + "Meshed sections uploaded per frame. Lower is smoother while loading.": "تم تحميل المقاطع المتشابكة لكل إطار. الجزء السفلي أكثر سلاسة أثناء التحميل.", + "Soft shadows in corners. Costs chunk building time only.": "ظلال ناعمة في الزوايا. تكاليف بناء قطعة قطعة فقط.", + "Smaller copies of block textures for distant terrain: less shimmer.": "نسخ أصغر من أنسجة الكتل للتضاريس البعيدة: أقل وميضًا.", + "Blends grass and water colours across biomes when building chunks.": "يمزج ألوان العشب والماء عبر المناطق الأحيائية عند بناء القطع.", + "Cloud layer: off, flat (fast) or 3D (fancy).": "طبقة السحابة: معطلة، مسطحة (سريعة) أو ثلاثية الأبعاد (فاخرة).", + "How far clouds reach, in chunks.": "إلى أي مدى تصل السحب، في قطع.", + "Draws the sky, sun, moon and stars.": "يرسم السماء والشمس والقمر والنجوم.", + "Distance fog. Off shows the edge of the loaded world.": "ضباب المسافة. يظهر Off حافة العالم المحمل.", + "Draws rain and snow.": "يرسم المطر والثلج.", + "How far rain and snow fall around you.": "إلى أي مدى تسقط الأمطار والثلوج من حولك.", + "How many particles effects spawn.": "كم عدد الجسيمات التي تفرخ الآثار.", + "Round shadows under mobs and items.": "ظلال مستديرة تحت الغوغاء والعناصر.", + "Leaves with see-through gaps. Off draws them solid.": "الأوراق بها فجوات شفافة. قبالة يرسمهم الصلبة.", + "Sorts water and glass more exactly behind each other.": "يقوم بفرز الماء والزجاج بشكل أكثر دقة خلف بعضهما البعض.", + "Which chunk rebuilds wait for the frame: none, nearby or yours.": "أي قطعة سيتم إعادة بنائها تنتظر الإطار: لا شيء، قريب أو خاص بك.", + "Animates water, lava, fire and other moving textures.": "ينعش الماء والحمم والنار وغيرها من القوام المتحرك.", + "World pixels per screen pixel. Below 100% is faster on the GPU.": "بكسل العالم لكل بكسل الشاشة. أقل من 100% أسرع على وحدة معالجة الرسومات.", + "Smooths jagged edges. FXAA: softer. TAA: smoothest, moving things may trail.": "ينعم الحواف الخشنة. FXAA: أكثر ليونة. TAA: قد تتبع الأشياء الأكثر سلاسة وتحريكًا.", + "Renders the world smaller and rebuilds it with TAA. Faster, softer.": "يجعل العالم أصغر حجمًا ويعيد بنائه باستخدام TAA. أسرع وأكثر ليونة.", + "HDR output on an HDR display: lava, fire and sunlight shine brighter.": "إخراج HDR على شاشة HDR: تتألق الحمم البركانية والنار وأشعة الشمس بشكل أكثر سطوعًا.", + "How frames reach the screen while VSync is off.": "كيفية وصول الإطارات إلى الشاشة أثناء إيقاف تشغيل VSync.", + "Efficient sleeps until the next frame; Precise spins, like vanilla.": "ينام بكفاءة حتى الإطار التالي؛ يدور بدقة، مثل الفانيليا.", + "Fills the screen (borderless).": "يملأ الشاشة (بلا حدود).", + "Brightens dark places.": "يضيء الأماكن الداكنة.", + "Lowers the frame rate when minimised, or idle too.": "يخفض معدل الإطارات عند تصغيره أو في وضع الخمول أيضًا.", + "Sways the view while walking.": "يتأرجح المنظر أثناء المشي.", + "Fades newly loaded chunks in.": "يتلاشى القطع المحملة حديثًا.", + "Darkens the screen's edges.": "لتغميق حواف الشاشة.", + "Shows when the world saves.": "يظهر عندما ينقذ العالم.", + "Shows attack cooldown.": "يظهر تباطؤ الهجوم.", + "60 FPS cap (30 in menus or unfocused), half the workers: less power.": "60 إطارًا في الثانية (30 في القوائم أو غير مركزة)، نصف العمال: طاقة أقل.", + "Threads that generate, light and mesh chunks. Next start.": "الخيوط التي تولد القطع الخفيفة والشبكية. البداية التالية.", + "Vulkan, then DirectX 12 (Windows) or OpenGL (Linux) where it fails. Next start.": "Vulkan، ثم DirectX 12 (Windows) أو OpenGL (Linux) حيث يفشل. البداية التالية.", + "Water and glass in one buffer: fewer draw calls, a bit more VRAM. Next start.": "الماء والزجاج في مخزن مؤقت واحد: عدد أقل من مكالمات السحب، والمزيد من VRAM. البداية التالية.", + "Mesh data sent to the GPU per frame. Lower is smoother while loading.": "يتم إرسال بيانات الشبكة إلى وحدة معالجة الرسومات لكل إطار. الجزء السفلي أكثر سلاسة أثناء التحميل.", + "Frame rate and frame times over the game, with a graph.": "معدل الإطارات وأوقات الإطار خلال اللعبة، مع رسم بياني.", + "horizon.multiplayer.finding_friend": "البحث عن عالم صديقك...", + "horizon.multiplayer.not_signed_in": "هذا الخادم في وضع الاتصال بالإنترنت. قم بتسجيل الدخول باستخدام حساب Microsoft الخاص بك في Horizon Launcher للانضمام إليه.", + "horizon.multiplayer.invalid_address": "عنوان الخادم غير صالح: %s", + "horizon.multiplayer.connected_friend_direct": "تواصل مباشرة مع صديقك..", + "horizon.multiplayer.connected_friend_relay": "متصل بصديقك من خلال التتابع...", + "General": "عام", + "Advanced": "متقدم", + "Undo": "تراجع", + "Search options": "خيارات البحث", + "Shortcut": "الاختصار", + "Distance": "المسافة", + "Display": "عرض", + "Interface": "واجهة", + "Sky and weather": "السماء والطقس", + "Lighting and entities": "الإضاءة والكيانات", + "Textures": "القوام", + "Image": "صورة", + "Chunk loading": "تحميل قطعة", + "Culling": "إعدام", + "Power": "القوة", + "Frames": "إطارات", + "Overlay": "تراكب", + "Output": "الإخراج", + "Brightness": "السطوع", + "How far you see, the window and the HUD.": "إلى أي مدى ترى النافذة وشاشة HUD.", + "The sky and weather, lighting, textures and the image.": "السماء والطقس والإضاءة والقوام والصورة.", + "Chunk loading, culling and power use.": "تحميل القطع وإعدامها واستخدام الطاقة.", + "How frames reach the screen, and the performance overlay.": "كيفية وصول الإطارات إلى الشاشة وتراكب الأداء.", + "Brighter-than-white output on an HDR display.": "إخراج أكثر سطوعًا من اللون الأبيض على شاشة HDR.", + "Results for \"%s\"": "نتائج ل \"%s\"", + "No settings match.": "لا توجد إعدادات متطابقة.", + "horizon.title.not_affiliated": "لا ينتمي إلى Mojang أو Microsoft", + "horizon.extras.header.lighting": "الإضاءة", + "horizon.extras.header.third_person": "شخص ثالث", + "horizon.extras.header.particles": "الجسيمات", + "horizon.extras.header.inventory": "المخزون", + "horizon.extras.header.chat": "الدردشة", + "horizon.extras.header.multiplayer": "متعددة اللاعبين", + "horizon.extras.header.sound": "الصوت", + "horizon.extras.header.menus": "القوائم", + "horizon.extras.fullbright": "فولبرايت", + "horizon.extras.dynamic_lights": "أضواء ديناميكية", + "horizon.extras.own_name_tag": "علامة الاسم الخاصة", + "horizon.extras.hide_block_particles": "إخفاء جزيئات كسر الكتلة", + "horizon.extras.auto_reconnect": "إعادة الاتصال التلقائي", + "horizon.extras.ui_sound_reserve": "احتفظ بقنوات لأصوات واجهة المستخدم", + "horizon.extras.music_page": "صفحة الموسيقى", + "horizon.extras.mouse_tweaks": "الضوابط بتعديل الماوس", + "horizon.extras.mouse_tweaks_wheel": "عجلة التمرير تنقل العناصر", + "horizon.extras.sort": "أزرار الفرز", + "horizon.extras.sort_key": "مفتاح الفرز", + "horizon.extras.no_ai": "لا يوجد ذكاء اصطناعي", + "horizon.extras.agent_control": "مراقبة الوكيل", + "horizon.extras.discord_presence": "وجود الخلاف الغني", + "horizon.extras.splitscreen": "تقسيم الشاشة", + "horizon.extras.chat_animation": "دردشة سلسة", + "horizon.extras.chat_indicator": "مؤشر الرسالة", + "horizon.extras.wheel_cycles_settings": "عجلة التمرير تغير الإعدادات", + "horizon.extras.pack_browser": "متصفح حزمة الموارد", + "horizon.extras.fullbright.tooltip": "إظهار الكتل والكيانات في الضوء الكامل، حتى في المناطق المظلمة.", + "horizon.extras.dynamic_lights.tooltip": "تم حمل المشاعل ومصادر الضوء الأخرى أو إسقاطها أو إشعال النار فيها على الكتل المحيطة بها.", + "horizon.extras.own_name_tag.tooltip": "يظهر اسمك فوق رأسك بصيغة الغائب، كما يراه اللاعبون الآخرون. يكون مخفيًا عندما يخفي الخادم أسماء فريقك أو عندما تكون غير مرئي.", + "horizon.extras.hide_block_particles.tooltip": "يخفي جزيئات الحطام التي تنفجر من كتلة مكسورة وتتفتت من تلك التي قمت بتعدينها. وتبقى الجزيئات الأخرى.", + "horizon.extras.auto_reconnect.tooltip": "إعادة الانضمام إلى الخادم بعد انقطاع الاتصال أو إعادة التشغيل، وليس بعد ركلة أو حظر أبدًا.", + "horizon.extras.ui_sound_reserve.tooltip": "تترك الأصوات في العالم 16 قناة صوتية من أصل 247 قناة مجانية، لذا فإن طوفانًا منها (انفجار كبير) لا يمكنه إسكات نقرات القائمة.", + "horizon.extras.music_page.tooltip": "تحصل الموسيقى والأصوات على صفحة موسيقى...: قم بتشغيل أي مسار مضمن الآن، أو قم بإيقاف تشغيله حتى تتوقف اللعبة عن اختياره. لا شيء يتغير حتى تقوم بإيقاف تشغيل المسار.", + "horizon.extras.mouse_tweaks.tooltip": "يؤدي السحب الأيمن إلى وضع عنصر واحد في كل فتحة، بينما يقوم السحب الأيسر بتجميع العنصر المحفوظ، بينما يقوم Shift + السحب الأيسر بنقل كل فتحة.", + "horizon.extras.mouse_tweaks_wheel.tooltip": "يرسل الجزء السفلي عنصرًا واحدًا من الفتحة إلى الجانب الآخر، بينما يقوم الجزء العلوي بإحضار عنصر واحد مرة أخرى.", + "horizon.extras.sort.tooltip": "يقوم بفرز المخزون والصناديق والبراميل وصناديق النهاية وصناديق الشولكر بترتيب علامات تبويب إبداعية، ودمج الأكوام.", + "horizon.extras.sort_key.tooltip": "فرز الجزء الموجود تحت المؤشر. انقر، ثم اضغط على مفتاح؛ الهروب يفككه.", + "horizon.extras.no_ai.tooltip": "يخفي ويوقف تشغيل كل ميزات الذكاء الاصطناعي: التحكم بالوكيل، Horizon-ctl وخوادم MCP. مفتاح المشغل أيضًا.", + "horizon.extras.agent_control.tooltip": "يمكن لوكيل الذكاء الاصطناعي الخاص بك لعب هذه اللعبة من خلال Horizon-ctl أو عميل MCP، على هذا الكمبيوتر فقط.", + "horizon.extras.discord_presence.tooltip": "يعرض Playing Horizon على ملف تعريف Discord الخاص بك أثناء تشغيل Discord: القوائم، أو اللاعب الفردي أو المتعدد، والبعد ووقت اللعب. لا يوجد أبدًا اسم عالمي أو عنوان خادم.", + "Calibrate...": "معايرة...", + "Calibrate Anyway...": "معايرة على أية حال...", + "Use Automatic Setup": "استخدم الإعداد التلقائي", + "Shortcut: %s": "الاختصار: %s", + "Next": "التالي", + "HDR Calibration %s/%s: %s": "معايرة HDR %s/%s: %s", + "Sets the three below full screen, one test picture at a time.": "لتعيين الصور الثلاثة أدناه بملء الشاشة، صورة اختبارية واحدة في كل مرة.", + "A key that opens this screen from the game. Not bound at first.": "المفتاح الذي يفتح هذه الشاشة من اللعبة. غير ملزمة في البداية.", + "Your display didn't say how bright it gets: calibrate to set it up.": "لم توضح شاشتك مدى سطوعها: قم بالمعايرة لإعدادها.", + "Already set up for your display. Only calibrate if HDR looks wrong.": "تم إعداده بالفعل للعرض الخاص بك. قم بالمعايرة فقط إذا كان تقرير HDR يبدو خاطئًا.", + "Puts Peak Brightness and Paper White back to your display's setup.": "يعيد ذروة السطوع والورق الأبيض إلى إعداد شاشتك.", + "Set up for your display. Leave on Auto unless it looks wrong.": "قم بإعداد العرض الخاص بك. اتركه على الوضع التلقائي ما لم يبدو خاطئًا.", + "Lower it until the logo just disappears into the black.": "قم بخفضه حتى يختفي الشعار باللون الأسود.", + "Raise it until the logo just disappears into the bright square.": "ارفعه حتى يختفي الشعار في المربع المشرق.", + "Make the card a white that's comfortable to look at for a long time, in the light you play in.": "اجعل البطاقة بيضاء اللون بحيث تكون مريحة عند النظر إليها لفترة طويلة، في الضوء الذي تلعب فيه.", + "horizon.splitscreen.profiles.forget": "ننسى", + "horizon.splitscreen.profiles.create": "إنشاء", + "horizon.splitscreen.profiles.you": " - أنت", + "horizon.splitscreen.profiles.forget_named": "ننسى %s", + "horizon.splitscreen.profiles.previous": "السابق", + "horizon.splitscreen.profiles.next": "التالي", + "horizon.splitscreen.profiles.new_button": "ملف تعريف جديد...", + "horizon.splitscreen.profiles.forget_title": "هل نسيت الملف الشخصي؟", + "horizon.splitscreen.profiles.forget_leaves": "فإنه يترك قائمة هذا المثيل.", + "horizon.splitscreen.profiles.forget_kept": "يتم الاحتفاظ بالتقدم العالمي والإعدادات.", + "horizon.splitscreen.profiles.new_title": "ملف تعريف جديد", + "horizon.splitscreen.profiles.name_hint": "الاسم (من 3 إلى 16 حرفًا ورقمًا _)", + "horizon.splitscreen.profiles.switch_title": "تبديل الملف الشخصي", + "horizon.splitscreen.profiles.offline_note": "تنتمي الملفات الشخصية غير المتصلة بالإنترنت إلى هذه الحالة", + "horizon.splitscreen.profiles.move": "تحرك حيث تلعب", + "horizon.splitscreen.profiles.move_place": "تحرك حيث تلعب: %s", + "horizon.friends.title": "العب مع الأصدقاء", + "horizon.friends.hint": "يقوم الأصدقاء بلصق الرمز بعد زر الأصدقاء على شاشة العنوان، أو في الاتصال المباشر، أو على صفحة التشغيل الخاصة بالمشغل.", + "horizon.friends.copied": "منقول", + "horizon.friends.copy_code": "نسخ الرمز", + "horizon.friends.stop_sharing": "توقف عن المشاركة", + "horizon.friends.none_yet": "لا يوجد أصدقاء هنا بعد.", + "horizon.friends.here_now": "هنا الآن: %s", + "horizon.friends.share_intro": "شارك هذا العالم خلف رمز الدعوة: فهو يفتح على شبكة LAN، وينضم الأصدقاء على الإنترنت باستخدام الرمز. لا يوجد خادم خاص بنا متورط.", + "horizon.friends.start_sharing": "ابدأ المشاركة", + "horizon.friends.troubleshooting": "استكشاف الأخطاء وإصلاحها...", + "horizon.friends.stopped": "تم إيقاف مشاركة رمز الدعوة.", + "horizon.friends.short_code_changed": "استمر شخص ما في تجربة رمز قصير خاطئ، لذلك تغير.", + "horizon.friends.wrong_code": "حاول شخص ما رمزا خاطئا.", + "horizon.friends.code_ready": "رمز الدعوة الخاص بك جاهز: قائمة الألعاب، العب مع الأصدقاء. انسخها وأرسلها إلى أصدقائك.", + "horizon.friends.share_failed": "لا يمكن مشاركة العالم: %s", + "horizon.friends.finding_route": "التعرف على كيفية وصول الأصدقاء إليك...", + "horizon.osk.shift": "التحول", + "horizon.osk.space": "الفضاء", + "horizon.osk.delete": "حذف", + "horizon.osk.type": "اكتب", + "horizon.osk.symbols": "الرموز", + "horizon.osk.close": "إغلاق", + "horizon.extras.chat_animation.tooltip": "ينزلق خط الدردشة الجديد من اليسار بينما يتلاشى للداخل، بدلاً من أن يظهر كاملاً.", + "horizon.extras.chat_indicator.tooltip": "الشريط الملون الموجود على يسار خط الدردشة.", + "horizon.extras.wheel_cycles_settings.tooltip": "عجلة التمرير فوق زر في الإعدادات تغير قيمته، كما هو الحال في الفانيليا. مع إيقاف التشغيل، تقوم العجلة بتمرير القائمة فقط.", + "horizon.extras.pack_browser.tooltip": "تحديد حزم الموارد يحصل على زر \"إضافة\" الذي يبحث في Modrinth ويقوم بتثبيت حزمة في مجلد الحزم الخاص بك. مع إيقاف التشغيل، لن تتصل اللعبة أبدًا بـ Modrinth.", + "horizon.extras.splitscreen.tooltip": "في عالم ما، يمكن لوحدة تحكم أخرى الانضمام كلاعب جديد: اضغط على A عندما يُطلب منك ذلك، ثم اختر ملفًا شخصيًا ومكان اللعب.", + "horizon.splitscreen.setup.monitor": "مراقب %s", + "horizon.splitscreen.setup.monitor_unknown": "شاشة", + "horizon.splitscreen.setup.window": "نافذة %s", + "horizon.splitscreen.setup.new_window": "نافذة جديدة", + "horizon.splitscreen.setup.fill_monitor": "املأ %s", + "horizon.splitscreen.setup.done": "تم", + "horizon.splitscreen.setup.switch": "%s: %s", + "horizon.splitscreen.setup.on": "على", + "horizon.splitscreen.setup.off": "إيقاف", + "horizon.splitscreen.setup.player": "اللاعب %s", + "horizon.splitscreen.setup.revert": "العودة", + "horizon.splitscreen.setup.apply": "تطبيق", + "horizon.splitscreen.setup.warning.empty_main": "لا أحد يلعب في النافذة 1: إنه يخفي", + "horizon.splitscreen.setup.warning.empty_close": "لا أحد يلعب في النافذة %s: يتم إغلاقها عند تطبيق", + "horizon.splitscreen.setup.warning.empty_new": "لا أحد يلعب في النافذة %s: لن يتم فتحها", + "horizon.splitscreen.setup.warning.on_main": "النافذة %s تملأ شاشة النافذة 1: يلعب لاعبوها في النافذة 1", + "horizon.splitscreen.setup.warning.unplugged": "شاشة النافذة %s غير متصلة: يتم تشغيل مشغلاتها في النافذة 1", + "horizon.splitscreen.setup.status.off": "تقسيم الشاشة معطل.", + "horizon.splitscreen.setup.status.enable_hint": "قم بتشغيله، ثم اضغط على زر على وحدة تحكم أخرى في العالم.", + "horizon.splitscreen.setup.status.join_hint": "اضغط على A للانضمام واختيار ملف التعريف.", + "horizon.splitscreen.setup.status.idle": "تقسيم الشاشة خاملاً", + "horizon.splitscreen.setup.status.alone": "لا يوجد لاعبين محليين آخرين.", + "horizon.splitscreen.setup.status.solo_controls": "لم تتغير عناصر التحكم الفردية وملاحظات وحدة التحكم.", + "horizon.splitscreen.setup.window_empty": "النافذة %s: فارغة", + "horizon.splitscreen.setup.note.select": "انقر فوق أحد اللاعبين، أو اسحبه إلى نافذة أو شاشة.", + "horizon.splitscreen.setup.note.apply": "تقدم للعب بهذه الطريقة، ثم ارجع للتراجع.", + "horizon.splitscreen.setup.note.place": "أين يجب أن يلعب %s؟", + "horizon.splitscreen.setup.this_player": "هذا اللاعب", + "horizon.splitscreen.setup.switch_disabled": "يتم إيقاف تشغيل الشاشة المنقسمة بمجرد مغادرة الآخرين (قائمة الإيقاف المؤقت الخاصة بهم).", + "horizon.splitscreen.setup.window_place": "النافذة %s (%s من %s)", + "horizon.splitscreen.setup.names": "الأسماء", + "horizon.splitscreen.setup.identify": "تحديد", + "horizon.splitscreen.setup.layout.two": "2 المشاركة: %s", + "horizon.splitscreen.setup.layout.three": "3 المشاركة: %s", + "horizon.splitscreen.setup.layout.two.0": "تلقائي", + "horizon.splitscreen.setup.layout.two.1": "جنبا إلى جنب", + "horizon.splitscreen.setup.layout.two.2": "أعلى وأسفل", + "horizon.splitscreen.setup.layout.three.0": "واحدة واسعة في الأعلى", + "horizon.splitscreen.setup.layout.three.1": "واحد طويل القامة على اليسار", + "horizon.splitscreen.setup.layout.three.2": "جنبا إلى جنب", + "horizon.splitscreen.setup.help.player": "انقر أو اسحب %s لتحريكها.", + "horizon.splitscreen.setup.help.layout_auto": "%s (جنبًا إلى جنب عندما تكون النافذة واسعة). اضغط للتغيير.", + "horizon.splitscreen.setup.help.layout": "%s. اضغط للتغيير.", + "horizon.splitscreen.setup.help.switch": "تقسيم الشاشة لهذا الكمبيوتر، أو إيقاف تشغيله.", + "horizon.splitscreen.setup.help.identify": "تُظهر طريقة عرض كل لاعب النافذة التي يوجد بها.", + "horizon.splitscreen.setup.help.names": "اسم كل لاعب في زاوية رؤيته.", + "horizon.splitscreen.setup.help.revert": "التراجع عن التغييرات التي لم يتم تطبيقها بعد.", + "horizon.splitscreen.setup.help.apply": "العب بالطريقة التي تظهر بها الخريطة.", + "horizon.splitscreen.setup.help.unchanged": "لم يتغير شيء بعد.", + "horizon.splitscreen.setup.give_up_pad": "التخلي عن الوسادة", + "horizon.splitscreen.prompt.controller_connected": "وحدة التحكم متصلة", + "horizon.splitscreen.prompt.controller_disconnected": "وحدة التحكم مفصولة", + "horizon.splitscreen.prompt.controller_disconnected.hint": "أعد توصيله، أو اضغط على زر على آخر", + "horizon.splitscreen.prompt.join.one": "%s يريد الانضمام", + "horizon.splitscreen.prompt.join.many": "%s وحدات التحكم تريد الانضمام", + "horizon.splitscreen.prompt.join.yes": "انضم", + "horizon.splitscreen.prompt.join.as_p1": "العب بشخصية P1", + "horizon.splitscreen.prompt.join.no": "لا", + "horizon.splitscreen.prompt.lost": "%s: تم فصل وحدة التحكم", + "horizon.splitscreen.prompt.lost.use_another": "استخدم آخر", + "horizon.splitscreen.prompt.lost.leave": "غادر", + "horizon.splitscreen.setup.help.give_up_pad": "تتوقف وحدة التحكم الخاصة بك عن قيادتك ويُعرض عليك الانضمام (أ).", + "horizon.splitscreen.setup.note.held_at": "%s إلى %s: يسقطها A هنا، ويعيدها B.", + "horizon.splitscreen.setup.note.held": "%s تم الالتقاط: يسار/يمين يختار المكان، يسقط A، ويعيده B.", + "Hides models behind opaque blocks. Async checks off-thread; entities tick.": "يخفي النماذج خلف الكتل المعتمة. غير متزامن يتحقق من خارج الموضوع؛ علامة الكيانات.", + "Block Entities": "حظر الكيانات", + "Shulker Boxes": "صناديق شوكر", + "Reuses settled boxes; lid movement stays animated.": "إعادة استخدام الصناديق المستقرة؛ تبقى حركة الغطاء متحركة.", + "Signs": "علامات", + "Reuses sign text until text, light, or font changes.": "يعيد استخدام نص التوقيع حتى يتغير النص أو الضوء أو الخط.", + "Decorated Pots": "الأواني المزخرفة", + "Reuses still pots; break wobble and sherd changes redraw.": "إعادة استخدام الأواني الثابتة؛ كسر تمايل وتغييرات الكسر إعادة رسم.", + "Bells": "أجراس", + "Reuses still bells; ringing stays animated.": "إعادة استخدام الأجراس الثابتة؛ يبقى الرنين متحركًا.", + "Chests": "الصناديق", + "Reuses closed chests; moving lids stay animated.": "إعادة استخدام الصناديق المغلقة؛ الأغطية المتحركة تبقى متحركة.", + "Banners": "لافتات", + "Reuses poles; flags and pattern layers still update.": "إعادة استخدام الأعمدة؛ لا يزال يتم تحديث الأعلام وطبقات الأنماط.", + "Copper Golem Statues": "تماثيل النحاس جوليم", + "Reuses statue geometry until its block state changes.": "يعيد استخدام هندسة التمثال حتى تتغير حالة الكتلة الخاصة به.", + "Leaf Culling": "إعدام الأوراق", + "Every leaf face. Vanilla's fancy leaves.": "وجه كل ورقة. أوراق الفانيليا الفاخرة.", + "Distant Plant Dither": "ثبات النبات البعيد", + "Keeps fine plants in high-res packs from fading far away.": "يحافظ على النباتات الجميلة في عبوات عالية الدقة من البهتان بعيدًا.", + "Screenshot Quality": "جودة لقطة الشاشة", + "F2 screenshots at this many times the game's resolution. Higher takes longer.": "لقطات شاشة F2 بهذا دقة اللعبة عدة مرات. أعلى يستغرق وقتا أطول.", + "Frame Generation": "جيل الإطار", + "Shows a made-up frame between each two real ones: smoother, a little more lag.": "يُظهر إطارًا مكوّنًا بين كل إطارين حقيقيين: أكثر سلاسة وتأخرًا قليلًا.", + "Shadow Cache": "ذاكرة التخزين المؤقت الظل", + "Reuses the pack shadow map when sun, view and world match. Off by default.": "يعيد استخدام خريطة ظل الحزمة عندما تتطابق الشمس والعرض والعالم. إيقاف بشكل افتراضي.", + "Find BlueMap": "ابحث عن بلو ماب", + "On servers, finds their BlueMap web map for far terrain. Next join.": "على الخوادم، يتم العثور على خريطة الويب BlueMap الخاصة بهم للتضاريس البعيدة. الانضمام التالي.", + "BlueMap Radius": "نصف قطر الخريطة الزرقاء", + "How far around you BlueMap tiles are downloaded. Next join.": "إلى أي مدى يتم تنزيل بلاط BlueMap من حولك. الانضمام التالي.", + "Synchronous": "متزامن", + "Asynchronous": "غير متزامن", + "Solid": "صلب", + "Solid Aggressive": "العدوانية الصلبة", + "Hollow": "جوفاء", + "Leaves fully inside a canopy draw solid: fewer see-through layers.": "يتم رسم الأوراق بالكامل داخل المظلة بشكل صلب: طبقات شفافة أقل.", + "Leaves with one open side draw solid too: faster, chunkier edges.": "الأوراق ذات جانب واحد مفتوح ترسم بشكل صلب أيضًا: حواف أسرع وأكثر كثافة.", + "Drops faces between leaves: faster, but gaps look through.": "يسقط الوجوه بين الأوراق: بشكل أسرع، لكن الفجوات تبدو من خلالها.", + "Hotbar: Previous Slot": "Hotbar: الفتحة السابقة", + "Hotbar: Next Slot": "Hotbar: الفتحة التالية", + "horizon.agent.connected.one": "متصل: اتصال وكيل واحد", + "horizon.agent.connected.many": "متصل: %s اتصالات الوكيل", + "horizon.agent.connected.one_ago": "متصل: اتصال وكيل واحد، آخر أمر %s مضت", + "horizon.agent.connected.many_ago": "متصل: %s اتصالات الوكيل، آخر أمر %s مضت", + "horizon.agent.waiting": "في انتظار وكيل.", + "horizon.agent.off": "إيقاف: لا يمكن للعملاء الوصول إلى هذه اللعبة.", + "horizon.agent.session_opened": "تم فتحه لهذه الجلسة بواسطة البرنامج الذي بدأ اللعبة.", + "horizon.agent.socket": "المقبس: %s (انسخ التفاصيل لمساره الكامل)", + "horizon.agent.local_only": "محلي فقط: الوكلاء على هذا الكمبيوتر، وليس الشبكة أبدًا.", + "%s nits": "%s القمل", + "Auto (%s nits)": "تلقائي (%s شمعة في المتر المربع)", + "%.2f nits": "%.2f القمل", + "Hides models behind opaque blocks. Entities update. Off with custom packs.": "يخفي النماذج خلف الكتل المعتمة. تحديث الكيانات مع حزم مخصصة.", + "horizon.extras.repro_keys": "تسجيل الاختصارات", + "horizon.extras.repro_keys.tooltip": "يقوم F3+R ببدء التسجيل النسخي أو إيقافه ويقوم F3+E بكتابة الحزمة الخاصة به. متوقف بشكل افتراضي: تسجيل ينسخ العالم.", + "horizon.agent.record_session": "ابدأ جلسة التسجيل", + "horizon.agent.record_stop": "إيقاف جلسة التسجيل", + "horizon.agent.export_repro": "تصدير حزمة النسخ المتماثل", + "horizon.repro.started": "بدأ التسجيل؛ F3+R يوقفه ويكتب الحزمة.", + "horizon.repro.stopped": "توقف التسجيل: %s", + "horizon.repro.bundle": "حزمة النسخ: %s", + "horizon.repro.error": "استنساخ: %s", + "horizon.repro.no_recording": "لا يوجد تسجيل للتصدير حتى الآن.", + "horizon.repro.replay_started": "بدأت إعادة التشغيل: %s", + "horizon.pack.add": "+", + "horizon.pack.addInfo": "إضافة حزمة موارد من Modrinth", + "horizon.pack.addWorking": "يسأل مودرنث...", + "horizon.pack.addNone": "لم يتم العثور على حزم الموارد", + "horizon.pack.addTitle": "أضف حزمة الموارد", + "horizon.pack.install": "تثبيت", + "horizon.pack.installing": "التثبيت", + "horizon.pack.installed": "تم التثبيت", + "horizon.pack.search": "بحث", + "horizon.pack.searchHint": "بحث مودرينث...", + "horizon.pack.filters": "المرشحات", + "horizon.pack.filter.realistic": "واقعية", + "horizon.pack.filter.simplistic": "تبسيط", + "horizon.pack.filter.vanillaLike": "تشبه الفانيليا", + "horizon.pack.filter.x16": "16x", + "horizon.pack.filter.x32": "32x", + "horizon.pack.filter.x64": "64x", + "horizon.pack.addFailed": "لا يمكن إضافة الحزمة: %s", + "horizon.extras.header.cosmetics": "مستحضرات التجميل", + "horizon.extras.cosmetics_mine": "مستحضرات التجميل الخاصة بي", + "horizon.extras.cosmetics_mine.tooltip": "مخفي: يراك كل لاعب في Horizon بدون مستحضرات التجميل الخاصة بك، بما في ذلك أنت. نفس مفتاح خزانة المشغل.", + "horizon.extras.cosmetics_others": "مستحضرات التجميل للاعبين الآخرين", + "horizon.extras.cosmetics_others.tooltip": "ما يرتديه لاعبو Horizon الآخرون: كل شيء، فقط أنماط بطاقة الاسم الخاصة بهم، أو لا شيء. مخفيًا، اللعبة لا تسأل أبدًا عما يرتدونه.", + "horizon.extras.cosmetics_auras": "هالات ومسارات الآخرين", + "horizon.extras.cosmetics_auras.tooltip": "الهالات والمسارات التي يرتديها اللاعبون الآخرون. إيقاف بشكل افتراضي.", + "horizon.extras.cosmetics.shown": "معروض", + "horizon.extras.cosmetics.hidden": "مخفي", + "horizon.extras.cosmetics.name_tags": "علامات الاسم فقط" +} From cb4573aeb9ef55bfa5b2f1d8cfa8b9a3c2b19760 Mon Sep 17 00:00:00 2001 From: dontstopgorkingit <268053046+dontstopgorkingit@users.noreply.github.com> Date: Tue, 3 Nov 2026 16:28:22 +0100 Subject: [PATCH 17/70] Add Brazilian Portuguese (pt_br) game translation Bundles Horizon's own Brazilian Portuguese strings so pt_br players see translated menus and options instead of the English fallback. Co-Authored-By: DeepSeek V4.1 Flash Free --- crates/horizon-client-core/src/lang.rs | 3 + .../assets/horizon/lang/pt_br.json | 508 ++++++++++++++++++ 2 files changed, 511 insertions(+) create mode 100644 crates/horizon-client/assets/horizon/lang/pt_br.json diff --git a/crates/horizon-client-core/src/lang.rs b/crates/horizon-client-core/src/lang.rs index 9ad3c155b6..472cfcd2b3 100644 --- a/crates/horizon-client-core/src/lang.rs +++ b/crates/horizon-client-core/src/lang.rs @@ -100,6 +100,9 @@ impl ResourceSource for Bundled { "assets/horizon/lang/ur_pk.json" => { include_str!("../../horizon-client/assets/horizon/lang/ur_pk.json") } + "assets/horizon/lang/pt_br.json" => { + include_str!("../../horizon-client/assets/horizon/lang/pt_br.json") + } "assets/horizon/lang/de_de.json" | "assets/horizon/lang/de_at.json" => { include_str!("../../horizon-client/assets/horizon/lang/de_de.json") } diff --git a/crates/horizon-client/assets/horizon/lang/pt_br.json b/crates/horizon-client/assets/horizon/lang/pt_br.json new file mode 100644 index 0000000000..edfa649ff0 --- /dev/null +++ b/crates/horizon-client/assets/horizon/lang/pt_br.json @@ -0,0 +1,508 @@ +{ + "horizon.options.controller": "Controlador", + "horizon.options.vibration": "Vibração", + "horizon.options.adaptive_triggers": "Gatilhos adaptativos", + "horizon.options.lightbar": "Barra de luzes", + "horizon.options.look_sensitivity": "Sensibilidade visual", + "horizon.options.invert_x": "Olhar Invertido X", + "horizon.options.invert_y": "Olhar Invertido Y", + "horizon.options.sneak_button": "Botão furtivo", + "horizon.options.move_deadzone": "Mover zona morta", + "horizon.options.look_deadzone": "Veja a zona morta", + "horizon.options.button_glyphs": "Glifos de botão", + "horizon.options.menu_navigation": "Navegação no menu", + "horizon.options.on_screen_keyboard": "Teclado na tela", + "horizon.options.chat_delay": "Atraso no bate-papo", + "horizon.options.lightbar.health": "Saúde", + "horizon.options.lightbar.dimension": "Dimensão", + "horizon.options.glyphs.auto": "Automático", + "horizon.options.glyphs.xbox": "Xbox", + "horizon.options.glyphs.playstation": "Playstation", + "horizon.options.glyphs.nintendo": "Nintendo", + "horizon.options.menu_focus": "Foco", + "horizon.options.menu_pointer": "Ponteiro", + "horizon.options.keyboard.auto": "Automático", + "horizon.options.keyboard.horizon": "Horizonte", + "horizon.options.keyboard.steam": "Vapor", + "horizon.options.unavailable": "Este recurso ainda não está disponível no Horizon.", + "horizon.options.search": "Configurações de pesquisa...", + "horizon.pages.mods": "Modificações", + "horizon.pages.shader_packs": "Pacotes de sombreadores", + "horizon.pages.shader_options": "Opções de sombreamento", + "horizon.pages.controller": "Configurações do controlador", + "horizon.pages.controller_binds": "Ligações de controlador", + "horizon.pages.extras": "Extras Horizonte", + "horizon.pages.settings": "Configurações do horizonte", + "horizon.pages.agent": "Agente de IA", + "horizon.split.leave": "Sair", + "horizon.pages.split_settings": "Configurações de tela dividida", + "horizon.pages.split_profiles": "Quem está jogando?", + "horizon.pages.split_setup": "Configuração de tela dividida", + "horizon.pages.music": "Música", + "horizon.pages.music.menu": "Cardápio", + "horizon.pages.music.overworld": "Mundo superior", + "horizon.pages.music.creative": "Criativo", + "horizon.pages.music.underwater": "Subaquático", + "horizon.pages.music.end": "O Fim", + "horizon.pages.music.boss": "Chefe", + "horizon.pages.music.credits": "Créditos", + "horizon.pages.music.overworld_biomes": "Biomas do mundo superior", + "horizon.pages.music.nether_biomes": "Biomas inferiores", + "horizon.pages.music.end_biomes": "Fim dos biomas", + "horizon.pages.music.other": "Outras músicas", + "horizon.pages.music.empty": "Sem faixas de música: os sons do jogo não são carregados.", + "horizon.pages.music.tooltip": "As faixas integradas, por situação: toque uma agora ou desligue alguma para que o jogo pare de selecioná-la.", + "horizon.pages.settings.tooltip": "Configurações próprias do Horizon: gráficos, controladores, extras e mods.", + "horizon.pages.graphics.tooltip": "Gráficos, simplesmente: cada configuração diz quanto custa.", + "horizon.pages.graphics_advanced.tooltip": "Todas as configurações gráficas, incluindo Horizon, com o custo de cada uma.", + "horizon.pages.controller.tooltip": "Controladores: seus botões, manípulos, vibração e navegação no menu.", + "horizon.pages.extras.tooltip": "Adições opcionais, todas desativadas por padrão: o jogo permanece básico até você ligar um.", + "horizon.pages.agent.tooltip": "Deixe seu próprio agente de IA jogar: clientes Horizon-ctl e MCP neste computador.", + "horizon.pages.split_profiles.tooltip": "Quem joga: um perfil mantido nesta pasta do jogo.", + "horizon.pages.split_setup.tooltip": "As janelas e monitores, e quem joga onde.", + "horizon.pages.shader_packs.tooltip": "Shader packs da pasta shaderpacks: próprios do Horizon e aqueles no formato shaders/. Um corre de cada vez.", + "horizon.pages.mods.tooltip": "Mods feitos para Horizon, da pasta Horizon-mods. Cada um é executado em uma sandbox e permanece desligado até você ligá-lo.", + "horizon.pages.open.graphics": "Gráficos...", + "horizon.pages.open.graphics_advanced": "Gráficos avançados...", + "horizon.pages.open.shader_packs": "Pacotes de sombreadores...", + "horizon.pages.open.controller": "Configurações do controlador...", + "horizon.pages.open.split_setup": "Tela dividida...", + "horizon.pages.open.extras": "Extras...", + "horizon.pages.open.mods": "Modos...", + "horizon.pages.open.agent": "Agente de IA...", + "horizon.pages.open.horizon_graphics": "Gráficos Horizonte...", + "horizon.pages.open.controller_binds": "Ligações do controlador...", + "horizon.pages.open.horizon_settings": "Configurações do horizonte...", + "horizon.pages.open.music": "Música...", + "horizon.mods.empty": "Sem mods: coloque os arquivos .hmod na pasta horizonte-mods", + "horizon.mods.stopped": " (Parado)", + "horizon.mods.not_built": " (Não construído)", + "horizon.mods.dev": " (Desenvolvedor)", + "horizon.mods.settings": "Configurações", + "horizon.mods.in_world": " (deixe o mundo mudar)", + "horizon.mods.open_folder": "Abra a pasta Mod", + "horizon.shader_packs.empty": "Sem pacotes de shader: coloque-os na pasta shaderpacks", + "horizon.shader_packs.kind_horizon": " (Horizonte)", + "horizon.shader_options.open": "Opções de sombreamento...", + "horizon.shader_options.profile": "Perfil", + "horizon.shader_options.loading": "Lendo as opções do pacote de shaders...", + "horizon.agent.copy_details": "Copiar detalhes da conexão", + "horizon.multiplayer.join": "Junte-se", + "horizon.multiplayer.cancel_reconnecting": "Cancelar reconexão", + "horizon.multiplayer.join_friend": "Junte-se a um amigo", + "horizon.multiplayer.invite_code": "Código de convite", + "horizon.multiplayer.relay": "Relé (opcional)", + "Preset": "Predefinido", + "LOD Distance": "Distância de LOD", + "Far Detail": "Detalhe distante", + "Cave Culling": "Abate em Caverna", + "Entity Culling": "Seleção de entidade", + "Chunk Updates": "Atualizações de blocos", + "Upload Budget": "Carregar orçamento", + "Sky": "Céu", + "Fog": "Nevoeiro", + "Weather": "Tempo", + "Animated Textures": "Texturas Animadas", + "Present Mode": "Modo Presente", + "Frame Pacing": "Ritmo de quadro", + "Worker Threads": "Threads de trabalho", + "Resolution Scale": "Escala de resolução", + "Anti-aliasing": "Anti-aliasing", + "Upscaling": "Aumento de escala", + "Paper White": "Papel Branco", + "Peak Brightness": "Brilho máximo", + "Black Level": "Nível de preto", + "UI Brightness": "Brilho da IU", + "Battery Mode": "Modo Bateria", + "Graphics API": "API gráfica", + "Translucent Batching": "Lote Translúcido", + "Performance Overlay": "Sobreposição de desempenho", + "Full Detail Distance": "Distância detalhada completa", + "On": "Ligado", + "Off": "Desligado", + "Unlimited": "Ilimitado", + "Auto": "Automático", + "Custom": "Personalizado", + "Performance": "Desempenho", + "Balanced": "Equilibrado", + "Quality": "Qualidade", + "Ultra": "Ultra", + "Ultra Performance": "Ultradesempenho", + "Native": "Nativo", + "Full": "Completo", + "Reduced": "Reduzido", + "Efficient": "Eficiente", + "Precise": "Preciso", + "Auto (VSync)": "Automático (VSync)", + "FIFO": "FIFO", + "Mailbox": "Caixa de correio", + "Immediate": "Imediato", + "Vulkan": "Vulcano", + "DirectX 12": "DirectX12", + "OpenGL": "OpenGL", + "FPS and Graph": "FPS e gráfico", + "FPS": "FPS", + "TAA": "TAA", + "FXAA": "FXAA", + "No cost": "Sem custo", + "Low cost": "Baixo custo", + "Medium cost": "Custo médio", + "High cost": "Alto custo", + "Saves time": "Economiza tempo", + "HDR": "HDR", + "Graphics": "Gráficos", + "Done": "Concluído", + "This feature is not yet available in Horizon.": "Este recurso ainda não está disponível no Horizon.", + "Your display or system doesn't offer HDR output.": "Seu monitor ou sistema não oferece saída HDR.", + "Turn HDR on to use it.": "Ative o HDR para usá-lo.", + "Your GPU or graphics API doesn't support it.": "Sua GPU ou API gráfica não oferece suporte.", + "%s chunks": "%s pedaços", + "%s per frame": "%s por quadro", + "%s MiB/frame": "%s MiB/quadro", + "%s KiB/frame": "%s KiB/quadro", + "Auto (%s)": "Automático (%s)", + "Full-detail terrain range. LOD Distance can extend local worlds farther.": "Gama de terreno com todos os detalhes. A distância LOD pode estender os mundos locais ainda mais.", + "Coarse distant terrain in local worlds. Integrated GPUs stop at 128 chunks.": "Terreno áspero e distante em mundos locais. As GPUs integradas param em 128 pedaços.", + "Reduced draws far terrain coarser: faster on this integrated GPU.": "Redução de desenhos em terrenos mais grosseiros: mais rápido nesta GPU integrada.", + "Reduced draws far terrain coarser, for GPUs it slows down.": "Reduzido atrai terrenos muito mais grosseiros, para GPUs ele fica mais lento.", + "Field of view. Wider shows more terrain at once.": "Campo de visão. Mais amplo mostra mais terreno ao mesmo tempo.", + "Caps frames per second; a cap saves power and heat.": "Limita quadros por segundo; uma tampa economiza energia e calor.", + "Waits for the display's refresh: no tearing, a little latency.": "Aguarda a atualização da tela: sem rasgos, um pouco de latência.", + "Size of menus and the HUD.": "Tamanho dos menus e do HUD.", + "Sets the options below together. Changing one makes it Custom.": "Define as opções abaixo juntas. Alterar um torna-o personalizado.", + "Lava, fire and sunlight shine brighter than white. Needs an HDR display.": "Lava, fogo e luz solar brilham mais que o branco. Precisa de uma tela HDR.", + "Your display's darkest black. 0 for OLED; LCDs glow a little.": "O preto mais escuro da sua tela. 0 para OLED; Os LCDs brilham um pouco.", + "How bright highlights get. Auto: the peak your system reports.": "Como os destaques ficam brilhantes. Automático: o pico relatado pelo seu sistema.", + "How bright white paper and menus look. Auto: your desktop's white.": "Como ficam os menus e o papel branco brilhante. Automático: sua área de trabalho fica branca.", + "How bright the HUD and menus are, against paper white.": "Quão brilhantes são o HUD e os menus, em contraste com o branco do papel.", + "How far mobs, crops and machines keep working. CPU time.": "Até onde mobs, colheitas e máquinas continuam trabalhando. Tempo de CPU.", + "How far away mobs and items are drawn, as a share of normal.": "A que distância os mobs e os itens são atraídos, em proporção ao normal.", + "Skips terrain hidden behind closed sections. Off costs a lot.": "Ignora terreno escondido atrás de seções fechadas. Fora custa muito.", + "Hides entities behind opaque blocks.": "Oculta entidades atrás de blocos opacos.", + "No entity occlusion culling.": "Nenhuma seleção de oclusão de entidade.", + "CPU occlusion test runs this frame.": "O teste de oclusão da CPU executa este quadro.", + "Occlusion checks run on a worker thread.": "As verificações de oclusão são executadas em um thread de trabalho.", + "Meshed sections uploaded per frame. Lower is smoother while loading.": "Seções em malha carregadas por quadro. Lower é mais suave durante o carregamento.", + "Soft shadows in corners. Costs chunk building time only.": "Sombras suaves nos cantos. Custa apenas o tempo de construção.", + "Smaller copies of block textures for distant terrain: less shimmer.": "Cópias menores de texturas de bloco para terrenos distantes: menos brilho.", + "Blends grass and water colours across biomes when building chunks.": "Mistura cores de grama e água em biomas ao construir pedaços.", + "Cloud layer: off, flat (fast) or 3D (fancy).": "Camada de nuvem: desativada, plana (rápida) ou 3D (extravagante).", + "How far clouds reach, in chunks.": "Quão longe as nuvens chegam, em pedaços.", + "Draws the sky, sun, moon and stars.": "Desenha o céu, o sol, a lua e as estrelas.", + "Distance fog. Off shows the edge of the loaded world.": "Nevoeiro à distância. Off mostra o limite do mundo carregado.", + "Draws rain and snow.": "Desenha chuva e neve.", + "How far rain and snow fall around you.": "Quão longe a chuva e a neve caem ao seu redor.", + "How many particles effects spawn.": "Quantos efeitos de partículas aparecem.", + "Round shadows under mobs and items.": "Sombras redondas sob mobs e itens.", + "Leaves with see-through gaps. Off draws them solid.": "Folhas com lacunas transparentes. Off os desenha sólidos.", + "Sorts water and glass more exactly behind each other.": "Classifica a água e o copo de maneira mais exata, um atrás do outro.", + "Which chunk rebuilds wait for the frame: none, nearby or yours.": "Quais pedaços são reconstruídos aguardando o quadro: nenhum, próximo ou seu.", + "Animates water, lava, fire and other moving textures.": "Anima água, lava, fogo e outras texturas em movimento.", + "World pixels per screen pixel. Below 100% is faster on the GPU.": "Pixels mundiais por pixel da tela. Abaixo de 100% é mais rápido na GPU.", + "Smooths jagged edges. FXAA: softer. TAA: smoothest, moving things may trail.": "Suaviza bordas irregulares. FXAA: mais suave. TAA: coisas mais suaves e em movimento podem deixar rastros.", + "Renders the world smaller and rebuilds it with TAA. Faster, softer.": "Torna o mundo menor e o reconstrói com TAA. Mais rápido, mais suave.", + "HDR output on an HDR display: lava, fire and sunlight shine brighter.": "Saída HDR em uma tela HDR: lava, fogo e luz solar brilham mais intensamente.", + "How frames reach the screen while VSync is off.": "Como os frames chegam à tela enquanto o VSync está desligado.", + "Efficient sleeps until the next frame; Precise spins, like vanilla.": "Eficiente dorme até o próximo quadro; Giros precisos, como baunilha.", + "Fills the screen (borderless).": "Preenche a tela (sem bordas).", + "Brightens dark places.": "Ilumina locais escuros.", + "Lowers the frame rate when minimised, or idle too.": "Reduz a taxa de quadros quando minimizado ou também inativo.", + "Sways the view while walking.": "Balança a visão enquanto caminha.", + "Fades newly loaded chunks in.": "Desaparece os pedaços recém-carregados.", + "Darkens the screen's edges.": "Escurece as bordas da tela.", + "Shows when the world saves.": "Mostra quando o mundo salva.", + "Shows attack cooldown.": "Mostra o tempo de espera do ataque.", + "60 FPS cap (30 in menus or unfocused), half the workers: less power.": "Limite de 60 FPS (30 em menus ou sem foco), metade dos trabalhadores: menos energia.", + "Threads that generate, light and mesh chunks. Next start.": "Fios que geram pedaços leves e de malha. Próximo começo.", + "Vulkan, then DirectX 12 (Windows) or OpenGL (Linux) where it fails. Next start.": "Vulkan, depois DirectX 12 (Windows) ou OpenGL (Linux) onde falha. Próximo começo.", + "Water and glass in one buffer: fewer draw calls, a bit more VRAM. Next start.": "Água e vidro em um buffer: menos chamadas de desenho, um pouco mais de VRAM. Próximo começo.", + "Mesh data sent to the GPU per frame. Lower is smoother while loading.": "Dados de malha enviados para a GPU por quadro. Lower é mais suave durante o carregamento.", + "Frame rate and frame times over the game, with a graph.": "Taxa de quadros e tempos de quadros ao longo do jogo, com gráfico.", + "horizon.multiplayer.finding_friend": "Encontrando o mundo do seu amigo...", + "horizon.multiplayer.not_signed_in": "Este servidor está em modo online. Faça login com sua conta da Microsoft no inicializador do Horizon para ingressar.", + "horizon.multiplayer.invalid_address": "Endereço de servidor inválido: %s", + "horizon.multiplayer.connected_friend_direct": "Conectado diretamente ao seu amigo...", + "horizon.multiplayer.connected_friend_relay": "Conectado ao seu amigo através do relé...", + "General": "Geral", + "Advanced": "Avançado", + "Undo": "Desfazer", + "Search options": "Opções de pesquisa", + "Shortcut": "Atalho", + "Distance": "Distância", + "Display": "Exibição", + "Interface": "Interface", + "Sky and weather": "Céu e clima", + "Lighting and entities": "Iluminação e entidades", + "Textures": "Texturas", + "Image": "Imagem", + "Chunk loading": "Carregamento de pedaços", + "Culling": "Abate", + "Power": "Poder", + "Frames": "Molduras", + "Overlay": "Sobreposição", + "Output": "Saída", + "Brightness": "Brilho", + "How far you see, the window and the HUD.": "Quão longe você vê, a janela e o HUD.", + "The sky and weather, lighting, textures and the image.": "O céu e o clima, a iluminação, as texturas e a imagem.", + "Chunk loading, culling and power use.": "Carregamento de pedaços, seleção e uso de energia.", + "How frames reach the screen, and the performance overlay.": "Como os frames chegam à tela e a sobreposição de desempenho.", + "Brighter-than-white output on an HDR display.": "Saída mais brilhante que o branco em uma tela HDR.", + "Results for \"%s\"": "Resultados para \"%s\"", + "No settings match.": "Nenhuma configuração corresponde.", + "horizon.title.not_affiliated": "Não afiliado à Mojang ou Microsoft", + "horizon.extras.header.lighting": "Iluminação", + "horizon.extras.header.third_person": "Terceira pessoa", + "horizon.extras.header.particles": "Partículas", + "horizon.extras.header.inventory": "Inventário", + "horizon.extras.header.chat": "Bate-papo", + "horizon.extras.header.multiplayer": "Multijogador", + "horizon.extras.header.sound": "Som", + "horizon.extras.header.menus": "Cardápios", + "horizon.extras.fullbright": "Totalmente brilhante", + "horizon.extras.dynamic_lights": "Luzes dinâmicas", + "horizon.extras.own_name_tag": "Crachá próprio", + "horizon.extras.hide_block_particles": "Ocultar partículas de quebra de bloco", + "horizon.extras.auto_reconnect": "Reconectar automaticamente", + "horizon.extras.ui_sound_reserve": "Mantenha canais para sons da IU", + "horizon.extras.music_page": "Página de música", + "horizon.extras.mouse_tweaks": "Controles de ajustes do mouse", + "horizon.extras.mouse_tweaks_wheel": "A roda de rolagem move os itens", + "horizon.extras.sort": "Botões de classificação", + "horizon.extras.sort_key": "Chave de classificação", + "horizon.extras.no_ai": "Sem IA", + "horizon.extras.agent_control": "Controle de Agente", + "horizon.extras.discord_presence": "Presença rica em discórdia", + "horizon.extras.splitscreen": "Tela dividida", + "horizon.extras.chat_animation": "Bate-papo tranquilo", + "horizon.extras.chat_indicator": "Indicador de mensagem", + "horizon.extras.wheel_cycles_settings": "A roda de rolagem altera as configurações", + "horizon.extras.pack_browser": "Navegador de pacote de recursos", + "horizon.extras.fullbright.tooltip": "Mostre blocos e entidades em plena luz, mesmo em áreas escuras.", + "horizon.extras.dynamic_lights.tooltip": "Tochas e outras fontes de luz seguradas, deixadas cair ou em chamas iluminam os blocos ao seu redor.", + "horizon.extras.own_name_tag.tooltip": "Mostra seu nome acima de sua cabeça em terceira pessoa, como os outros jogadores o veem. Oculto quando o servidor oculta os nomes da sua equipe ou você fica invisível.", + "horizon.extras.hide_block_particles.tooltip": "Esconde as partículas de detritos que explodem de um bloco quebrado e se desintegram daquele que você extraiu. Outras partículas permanecem.", + "horizon.extras.auto_reconnect.tooltip": "Volta a um servidor após uma perda de conexão ou reinicialização, nunca após um kick ou ban.", + "horizon.extras.ui_sound_reserve.tooltip": "Os sons do mundo deixam 16 dos 247 canais de som livres, então uma enxurrada deles (uma grande explosão) não consegue silenciar os cliques no menu.", + "horizon.extras.music_page.tooltip": "Música e Sons recebe uma página Música...: reproduza qualquer faixa integrada agora ou desative uma para que o jogo pare de selecioná-la. Nada muda até que você desligue uma faixa.", + "horizon.extras.mouse_tweaks.tooltip": "Arrastar com o botão direito posiciona um por slot, arrastar com a esquerda reúne o item retido, Shift + arrastar com a esquerda move cada slot.", + "horizon.extras.mouse_tweaks_wheel.tooltip": "Para baixo envia um item do slot para o outro lado, para cima traz um de volta.", + "horizon.extras.sort.tooltip": "Classifica o inventário, baús, barris, baús finais e caixas shulker em ordem de tabulação criativa, mesclando pilhas.", + "horizon.extras.sort_key.tooltip": "Classifica a peça sob o cursor. Clique e pressione uma tecla; A fuga o desvincula.", + "horizon.extras.no_ai.tooltip": "Oculta e desativa todos os recursos de IA: controle de agente, horizonte-ctl e servidores MCP. O interruptor do lançador também.", + "horizon.extras.agent_control.tooltip": "Seu próprio agente de IA pode jogar este jogo por meio do horizonte-ctl ou de um cliente MCP, apenas neste computador.", + "horizon.extras.discord_presence.tooltip": "Mostra Jogando Horizon em seu perfil do Discord enquanto o Discord é executado: menus, single player ou multiplayer, a dimensão e o tempo de jogo. Nunca o nome de um mundo ou o endereço de um servidor.", + "Calibrate...": "Calibrar...", + "Calibrate Anyway...": "Calibrar de qualquer maneira...", + "Use Automatic Setup": "Usar configuração automática", + "Shortcut: %s": "Atalho: %s", + "Next": "Próximo", + "HDR Calibration %s/%s: %s": "Calibração HDR %s/%s: %s", + "Sets the three below full screen, one test picture at a time.": "Define as três imagens abaixo em tela cheia, uma imagem de teste por vez.", + "A key that opens this screen from the game. Not bound at first.": "Uma chave que abre esta tela do jogo. Não vinculado a princípio.", + "Your display didn't say how bright it gets: calibrate to set it up.": "Sua tela não informou o quão brilhante ela fica: calibre para configurá-la.", + "Already set up for your display. Only calibrate if HDR looks wrong.": "Já configurado para seu display. Calibre apenas se o HDR parecer errado.", + "Puts Peak Brightness and Paper White back to your display's setup.": "Coloca o brilho máximo e o branco do papel de volta na configuração do seu monitor.", + "Set up for your display. Leave on Auto unless it looks wrong.": "Configure para sua exibição. Deixe em Auto, a menos que pareça errado.", + "Lower it until the logo just disappears into the black.": "Abaixe-o até que o logotipo desapareça no preto.", + "Raise it until the logo just disappears into the bright square.": "Levante-o até que o logotipo desapareça no quadrado brilhante.", + "Make the card a white that's comfortable to look at for a long time, in the light you play in.": "Faça o cartão com um branco que seja confortável de olhar por muito tempo, na luz em que você joga.", + "horizon.splitscreen.profiles.forget": "Esqueça", + "horizon.splitscreen.profiles.create": "Criar", + "horizon.splitscreen.profiles.you": " - você", + "horizon.splitscreen.profiles.forget_named": "Esqueça %s", + "horizon.splitscreen.profiles.previous": "Anterior", + "horizon.splitscreen.profiles.next": "Próximo", + "horizon.splitscreen.profiles.new_button": "Novo perfil...", + "horizon.splitscreen.profiles.forget_title": "Esqueceu o perfil?", + "horizon.splitscreen.profiles.forget_leaves": "Ele sai da lista desta instância.", + "horizon.splitscreen.profiles.forget_kept": "O progresso e as configurações mundiais são mantidos.", + "horizon.splitscreen.profiles.new_title": "Novo perfil", + "horizon.splitscreen.profiles.name_hint": "Nome (3 a 16 letras, dígitos, _)", + "horizon.splitscreen.profiles.switch_title": "Mudar perfil", + "horizon.splitscreen.profiles.offline_note": "Perfis off-line pertencem a esta instância", + "horizon.splitscreen.profiles.move": "Mova-se para onde você joga", + "horizon.splitscreen.profiles.move_place": "Mova-se para onde você joga: %s", + "horizon.friends.title": "Jogue com amigos", + "horizon.friends.hint": "Amigos colam o código após o botão Amigos da tela de título, no Direct Connection ou na página Play do inicializador.", + "horizon.friends.copied": "Copiado", + "horizon.friends.copy_code": "Copiar código", + "horizon.friends.stop_sharing": "Pare de compartilhar", + "horizon.friends.none_yet": "Nenhum amigo aqui ainda.", + "horizon.friends.here_now": "Aqui agora: %s", + "horizon.friends.share_intro": "Compartilhe este mundo por meio de um código de convite: ele abre para LAN e amigos na internet entram com o código. Nenhum servidor nosso está envolvido.", + "horizon.friends.start_sharing": "Comece a compartilhar", + "horizon.friends.troubleshooting": "Solução de problemas...", + "horizon.friends.stopped": "Parou de compartilhar o código de convite.", + "horizon.friends.short_code_changed": "Alguém continuou tentando um código curto errado, então ele mudou.", + "horizon.friends.wrong_code": "Alguém tentou um código errado.", + "horizon.friends.code_ready": "Seu código de convite está pronto: Menu do Jogo, Jogue com Amigos. Copie e envie para seus amigos.", + "horizon.friends.share_failed": "Não foi possível compartilhar o mundo: %s", + "horizon.friends.finding_route": "Descobrir como os amigos podem entrar em contato com você…", + "horizon.osk.shift": "Mudança", + "horizon.osk.space": "Espaço", + "horizon.osk.delete": "Excluir", + "horizon.osk.type": "Tipo", + "horizon.osk.symbols": "Símbolos", + "horizon.osk.close": "Fechar", + "horizon.extras.chat_animation.tooltip": "Uma nova linha de bate-papo aparece da esquerda enquanto desaparece, em vez de aparecer inteira.", + "horizon.extras.chat_indicator.tooltip": "A barra colorida à esquerda de uma linha de bate-papo.", + "horizon.extras.wheel_cycles_settings.tooltip": "A roda de rolagem sobre um botão nas configurações altera seu valor, como no vanilla. Desligado, a roda apenas rola a lista.", + "horizon.extras.pack_browser.tooltip": "Select Resource Packs obtém um botão Adicionar que pesquisa Modrinth e instala um pacote em sua pasta de pacotes. Desligado, o jogo nunca entra em contato com Modrinth.", + "horizon.extras.splitscreen.tooltip": "Num mundo, outro controlador pode entrar como novo jogador: pressione A quando solicitado e escolha um perfil e onde jogar.", + "horizon.splitscreen.setup.monitor": "Monitorar %s", + "horizon.splitscreen.setup.monitor_unknown": "um monitor", + "horizon.splitscreen.setup.window": "Janela %s", + "horizon.splitscreen.setup.new_window": "Nova janela", + "horizon.splitscreen.setup.fill_monitor": "Preencha %s", + "horizon.splitscreen.setup.done": "Concluído", + "horizon.splitscreen.setup.switch": "%s: %s", + "horizon.splitscreen.setup.on": "Ligado", + "horizon.splitscreen.setup.off": "Desligado", + "horizon.splitscreen.setup.player": "Jogador %s", + "horizon.splitscreen.setup.revert": "Reverter", + "horizon.splitscreen.setup.apply": "Aplicar", + "horizon.splitscreen.setup.warning.empty_main": "Ninguém brinca na Janela 1: ela se esconde", + "horizon.splitscreen.setup.warning.empty_close": "Ninguém joga na janela %s: ela fecha no Apply", + "horizon.splitscreen.setup.warning.empty_new": "Ninguém joga na janela %s: ela não abre", + "horizon.splitscreen.setup.warning.on_main": "A janela %s preenche o monitor da Janela 1: seus jogadores jogam na Janela 1", + "horizon.splitscreen.setup.warning.unplugged": "O monitor da janela %s não está conectado: seus jogadores jogam na janela 1", + "horizon.splitscreen.setup.status.off": "A tela dividida está desativada.", + "horizon.splitscreen.setup.status.enable_hint": "Ligue-o e pressione um botão em outro controlador em um mundo.", + "horizon.splitscreen.setup.status.join_hint": "Pressione A para entrar e escolher um perfil.", + "horizon.splitscreen.setup.status.idle": "Tela dividida inativa", + "horizon.splitscreen.setup.status.alone": "Nenhum outro jogador local.", + "horizon.splitscreen.setup.status.solo_controls": "Os controles Solo e o feedback do controlador permanecem inalterados.", + "horizon.splitscreen.setup.window_empty": "Janela %s: vazia", + "horizon.splitscreen.setup.note.select": "Clique em um player ou arraste-o para uma janela ou monitor.", + "horizon.splitscreen.setup.note.apply": "Inscreva-se para jogar desta forma, Reverta para desfazer.", + "horizon.splitscreen.setup.note.place": "Onde %s deveria jogar?", + "horizon.splitscreen.setup.this_player": "este jogador", + "horizon.splitscreen.setup.switch_disabled": "A tela dividida é desativada quando os outros saem (menu de pausa).", + "horizon.splitscreen.setup.window_place": "Janela %s (%s de %s)", + "horizon.splitscreen.setup.names": "Nomes", + "horizon.splitscreen.setup.identify": "Identificar", + "horizon.splitscreen.setup.layout.two": "2 compartilhamento: %s", + "horizon.splitscreen.setup.layout.three": "3 compartilhamento: %s", + "horizon.splitscreen.setup.layout.two.0": "Automático", + "horizon.splitscreen.setup.layout.two.1": "Lado a lado", + "horizon.splitscreen.setup.layout.two.2": "Superior e inferior", + "horizon.splitscreen.setup.layout.three.0": "Um largo no topo", + "horizon.splitscreen.setup.layout.three.1": "Um alto à esquerda", + "horizon.splitscreen.setup.layout.three.2": "Lado a lado", + "horizon.splitscreen.setup.help.player": "Clique ou arraste %s para movê-los.", + "horizon.splitscreen.setup.help.layout_auto": "%s (lado a lado quando a janela é larga). Pressione para alterar.", + "horizon.splitscreen.setup.help.layout": "%s. Pressione para alterar.", + "horizon.splitscreen.setup.help.switch": "Tela dividida para este computador, ligada ou desligada.", + "horizon.splitscreen.setup.help.identify": "A visualização de cada jogador mostra em qual janela ele está.", + "horizon.splitscreen.setup.help.names": "O nome de cada jogador no canto da visão.", + "horizon.splitscreen.setup.help.revert": "Desfaça as alterações ainda não aplicadas.", + "horizon.splitscreen.setup.help.apply": "Jogue da maneira que o mapa mostra.", + "horizon.splitscreen.setup.help.unchanged": "Nada mudou ainda.", + "horizon.splitscreen.setup.give_up_pad": "Almofada de desistência", + "horizon.splitscreen.prompt.controller_connected": "Controlador conectado", + "horizon.splitscreen.prompt.controller_disconnected": "Controlador desconectado", + "horizon.splitscreen.prompt.controller_disconnected.hint": "Reconecte-o ou pressione um botão em outro", + "horizon.splitscreen.prompt.join.one": "%s quer participar", + "horizon.splitscreen.prompt.join.many": "%s controladores desejam participar", + "horizon.splitscreen.prompt.join.yes": "Junte-se", + "horizon.splitscreen.prompt.join.as_p1": "Jogue como P1", + "horizon.splitscreen.prompt.join.no": "Não", + "horizon.splitscreen.prompt.lost": "%s: controlador desconectado", + "horizon.splitscreen.prompt.lost.use_another": "Use outro", + "horizon.splitscreen.prompt.lost.leave": "Sair", + "horizon.splitscreen.setup.help.give_up_pad": "Seu controlador para de dirigir você e é convidado a entrar (A).", + "horizon.splitscreen.setup.note.held_at": "%s a %s: A deixa cair aqui, B coloca de volta.", + "horizon.splitscreen.setup.note.held": "%s pegou: esquerda/direita escolhe onde, A deixa cair, B coloca de volta.", + "Hides models behind opaque blocks. Async checks off-thread; entities tick.": "Oculta modelos atrás de blocos opacos. Async verifica fora do thread; entidades marcam.", + "Block Entities": "Bloquear entidades", + "Shulker Boxes": "Caixas Shulker", + "Reuses settled boxes; lid movement stays animated.": "Reutiliza caixas assentadas; o movimento da tampa permanece animado.", + "Signs": "Sinais", + "Reuses sign text until text, light, or font changes.": "Reutiliza o texto do sinal até que o texto, a luz ou a fonte sejam alterados.", + "Decorated Pots": "Vasos Decorados", + "Reuses still pots; break wobble and sherd changes redraw.": "Reaproveita potes imóveis; quebrar oscilação e mudanças de fragmento redesenhar.", + "Bells": "Sinos", + "Reuses still bells; ringing stays animated.": "Reutiliza ainda sinos; o toque permanece animado.", + "Chests": "Baús", + "Reuses closed chests; moving lids stay animated.": "Reutiliza baús fechados; as tampas móveis permanecem animadas.", + "Banners": "Bandeiras", + "Reuses poles; flags and pattern layers still update.": "Reutiliza postes; sinalizadores e camadas de padrão ainda são atualizados.", + "Copper Golem Statues": "Estátuas de Golem de Cobre", + "Reuses statue geometry until its block state changes.": "Reutiliza a geometria da estátua até que o estado do bloco mude.", + "Leaf Culling": "Abate de folhas", + "Every leaf face. Vanilla's fancy leaves.": "Cada rosto de folha. Folhas elegantes de baunilha.", + "Distant Plant Dither": "Vibração de plantas distantes", + "Keeps fine plants in high-res packs from fading far away.": "Evita que plantas finas em embalagens de alta resolução desapareçam ao longe.", + "Screenshot Quality": "Qualidade da captura de tela", + "F2 screenshots at this many times the game's resolution. Higher takes longer.": "Capturas de tela F2 com muitas vezes a resolução do jogo. Maior leva mais tempo.", + "Frame Generation": "Geração de quadros", + "Shows a made-up frame between each two real ones: smoother, a little more lag.": "Mostra um quadro composto entre cada dois quadros reais: mais suave, um pouco mais de atraso.", + "Shadow Cache": "Cache de sombra", + "Reuses the pack shadow map when sun, view and world match. Off by default.": "Reutiliza o mapa de sombras do pacote quando o sol, a visão e o mundo correspondem. Desativado por padrão.", + "Find BlueMap": "Encontre o BlueMap", + "On servers, finds their BlueMap web map for far terrain. Next join.": "Nos servidores, encontra seu mapa da web BlueMap para terrenos distantes. Próxima adesão.", + "BlueMap Radius": "Raio BlueMap", + "How far around you BlueMap tiles are downloaded. Next join.": "A que distância ao seu redor os blocos do BlueMap são baixados. Próxima adesão.", + "Synchronous": "Síncrono", + "Asynchronous": "Assíncrono", + "Solid": "Sólido", + "Solid Aggressive": "Sólido Agressivo", + "Hollow": "Oco", + "Leaves fully inside a canopy draw solid: fewer see-through layers.": "As folhas totalmente dentro de um dossel ficam sólidas: menos camadas transparentes.", + "Leaves with one open side draw solid too: faster, chunkier edges.": "Folhas com um lado aberto também ficam sólidas: bordas mais rápidas e grossas.", + "Drops faces between leaves: faster, but gaps look through.": "Deixa cair as faces entre as folhas: mais rápido, mas as lacunas são visíveis.", + "Hotbar: Previous Slot": "Hotbar: slot anterior", + "Hotbar: Next Slot": "Hotbar: próximo slot", + "horizon.agent.connected.one": "Conectado: 1 conexão de agente", + "horizon.agent.connected.many": "Conectado: %s conexões de agente", + "horizon.agent.connected.one_ago": "Conectado: 1 conexão de agente, último comando há %s s", + "horizon.agent.connected.many_ago": "Conectado: %s conexões de agente, último comando há %s s", + "horizon.agent.waiting": "Esperando por um agente.", + "horizon.agent.off": "Desativado: os agentes não podem acessar este jogo.", + "horizon.agent.session_opened": "Aberto para esta sessão pelo programa que iniciou o jogo.", + "horizon.agent.socket": "Socket: %s (copie os detalhes do caminho completo)", + "horizon.agent.local_only": "Somente local: agentes neste computador, nunca na rede.", + "%s nits": "%s lêndeas", + "Auto (%s nits)": "Automático (%s lêndeas)", + "%.2f nits": "%.2f lêndeas", + "Hides models behind opaque blocks. Entities update. Off with custom packs.": "Oculta modelos atrás de blocos opacos. Atualização de entidades. Saia com pacotes personalizados.", + "horizon.extras.repro_keys": "Atalhos de gravação", + "horizon.extras.repro_keys.tooltip": "F3+R inicia ou interrompe uma gravação de reprodução e F3+E grava seu pacote. Desativado por padrão: uma gravação copia o mundo.", + "horizon.agent.record_session": "Iniciar sessão de gravação", + "horizon.agent.record_stop": "Parar a sessão de gravação", + "horizon.agent.export_repro": "Exportar pacote de reprodução", + "horizon.repro.started": "A gravação começou; F3+R interrompe e grava o pacote.", + "horizon.repro.stopped": "Gravação interrompida: %s", + "horizon.repro.bundle": "Pacote de reprodução: %s", + "horizon.repro.error": "Reprodução: %s", + "horizon.repro.no_recording": "Ainda não há gravação para exportar.", + "horizon.repro.replay_started": "Repetição iniciada: %s", + "horizon.pack.add": "+", + "horizon.pack.addInfo": "Adicione um pacote de recursos do Modrinth", + "horizon.pack.addWorking": "Perguntando a Modrinth...", + "horizon.pack.addNone": "Nenhum pacote de recursos encontrado", + "horizon.pack.addTitle": "Adicionar um pacote de recursos", + "horizon.pack.install": "Instalar", + "horizon.pack.installing": "Instalando", + "horizon.pack.installed": "Instalado", + "horizon.pack.search": "Pesquisar", + "horizon.pack.searchHint": "ProcurarModrinth...", + "horizon.pack.filters": "Filtros", + "horizon.pack.filter.realistic": "Realista", + "horizon.pack.filter.simplistic": "Simplista", + "horizon.pack.filter.vanillaLike": "Semelhante à baunilha", + "horizon.pack.filter.x16": "16x", + "horizon.pack.filter.x32": "32x", + "horizon.pack.filter.x64": "64x", + "horizon.pack.addFailed": "O pacote não pôde ser adicionado: %s", + "horizon.extras.header.cosmetics": "Cosméticos", + "horizon.extras.cosmetics_mine": "Meus cosméticos", + "horizon.extras.cosmetics_mine.tooltip": "Oculto: todo jogador do Horizon vê você sem seus cosméticos, inclusive você. A mesma opção do guarda-roupa do lançador.", + "horizon.extras.cosmetics_others": "Cosméticos de outros jogadores", + "horizon.extras.cosmetics_others.tooltip": "O que os outros jogadores do Horizon usam: tudo, apenas os estilos dos crachás ou nada. Escondido, o jogo nunca pergunta o que eles vestem.", + "horizon.extras.cosmetics_auras": "Auras e trilhas de outros", + "horizon.extras.cosmetics_auras.tooltip": "Auras e trilhas que outros jogadores usam. Desativado por padrão.", + "horizon.extras.cosmetics.shown": "Mostrado", + "horizon.extras.cosmetics.hidden": "Oculto", + "horizon.extras.cosmetics.name_tags": "Somente tags de nome" +} From 4698f8f423f6e80956308b0f06a9f200378c86eb Mon Sep 17 00:00:00 2001 From: dontstopgorkingit <268053046+dontstopgorkingit@users.noreply.github.com> Date: Tue, 3 Nov 2026 16:34:52 +0100 Subject: [PATCH 18/70] =?UTF-8?q?Add=20=C4=8Ce=C5=A1tina=20(cs=5Fcz)=20gam?= =?UTF-8?q?e=20translation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bundles Horizon's own Čeština strings so cs_cz players see translated menus and options instead of the English fallback. Co-Authored-By: DeepSeek V4.1 Flash Free --- crates/horizon-client-core/src/lang.rs | 3 + .../assets/horizon/lang/cs_cz.json | 508 ++++++++++++++++++ 2 files changed, 511 insertions(+) create mode 100644 crates/horizon-client/assets/horizon/lang/cs_cz.json diff --git a/crates/horizon-client-core/src/lang.rs b/crates/horizon-client-core/src/lang.rs index 9ad3c155b6..1aaa4ae2df 100644 --- a/crates/horizon-client-core/src/lang.rs +++ b/crates/horizon-client-core/src/lang.rs @@ -100,6 +100,9 @@ impl ResourceSource for Bundled { "assets/horizon/lang/ur_pk.json" => { include_str!("../../horizon-client/assets/horizon/lang/ur_pk.json") } + "assets/horizon/lang/cs_cz.json" => { + include_str!("../../horizon-client/assets/horizon/lang/cs_cz.json") + } "assets/horizon/lang/de_de.json" | "assets/horizon/lang/de_at.json" => { include_str!("../../horizon-client/assets/horizon/lang/de_de.json") } diff --git a/crates/horizon-client/assets/horizon/lang/cs_cz.json b/crates/horizon-client/assets/horizon/lang/cs_cz.json new file mode 100644 index 0000000000..58c9ba3416 --- /dev/null +++ b/crates/horizon-client/assets/horizon/lang/cs_cz.json @@ -0,0 +1,508 @@ +{ + "horizon.options.controller": "Ovladač", + "horizon.options.vibration": "Vibrace", + "horizon.options.adaptive_triggers": "Adaptivní spouštěče", + "horizon.options.lightbar": "Světelná lišta", + "horizon.options.look_sensitivity": "Citlivost pohledu", + "horizon.options.invert_x": "Invertovat vzhled X", + "horizon.options.invert_y": "Invertovat vzhled Y", + "horizon.options.sneak_button": "Tlačítko Sneak", + "horizon.options.move_deadzone": "Přesunout mrtvou zónu", + "horizon.options.look_deadzone": "Podívejte se na Deadzone", + "horizon.options.button_glyphs": "Glyfy tlačítek", + "horizon.options.menu_navigation": "Navigace v menu", + "horizon.options.on_screen_keyboard": "Klávesnice na obrazovce", + "horizon.options.chat_delay": "Zpoždění chatu", + "horizon.options.lightbar.health": "Zdraví", + "horizon.options.lightbar.dimension": "Dimenze", + "horizon.options.glyphs.auto": "Auto", + "horizon.options.glyphs.xbox": "Xbox", + "horizon.options.glyphs.playstation": "PlayStation", + "horizon.options.glyphs.nintendo": "Nintendo", + "horizon.options.menu_focus": "Zaměřte se", + "horizon.options.menu_pointer": "Ukazatel", + "horizon.options.keyboard.auto": "Auto", + "horizon.options.keyboard.horizon": "Horizont", + "horizon.options.keyboard.steam": "Pára", + "horizon.options.unavailable": "Tato funkce zatím není v Horizon k dispozici.", + "horizon.options.search": "Nastavení vyhledávání...", + "horizon.pages.mods": "Mods", + "horizon.pages.shader_packs": "Shader Pack", + "horizon.pages.shader_options": "Možnosti stínování", + "horizon.pages.controller": "Nastavení ovladače", + "horizon.pages.controller_binds": "Controller Binds", + "horizon.pages.extras": "Horizon Extras", + "horizon.pages.settings": "Nastavení horizontu", + "horizon.pages.agent": "Agent AI", + "horizon.split.leave": "Odejděte", + "horizon.pages.split_settings": "Nastavení rozdělené obrazovky", + "horizon.pages.split_profiles": "kdo hraje?", + "horizon.pages.split_setup": "Nastavení rozdělené obrazovky", + "horizon.pages.music": "Hudba", + "horizon.pages.music.menu": "Menu", + "horizon.pages.music.overworld": "Overworld", + "horizon.pages.music.creative": "Kreativní", + "horizon.pages.music.underwater": "Pod vodou", + "horizon.pages.music.end": "Konec", + "horizon.pages.music.boss": "šéfe", + "horizon.pages.music.credits": "Kredity", + "horizon.pages.music.overworld_biomes": "Nadsvětové biomy", + "horizon.pages.music.nether_biomes": "Nether biomy", + "horizon.pages.music.end_biomes": "Ukončete biomy", + "horizon.pages.music.other": "Jiná hudba", + "horizon.pages.music.empty": "Žádné hudební stopy: zvuky hry se nenačtou.", + "horizon.pages.music.tooltip": "Vestavěné stopy podle situace: zahrajte si jednu hned, nebo kteroukoli vypněte, aby ji hra přestala vybírat.", + "horizon.pages.settings.tooltip": "Vlastní nastavení Horizon: grafika, ovladače, doplňky a mody.", + "horizon.pages.graphics.tooltip": "Grafika, jednoduše: každé nastavení říká, kolik to stojí.", + "horizon.pages.graphics_advanced.tooltip": "Každé grafické nastavení, včetně Horizon, s tím, co každé stojí.", + "horizon.pages.controller.tooltip": "Ovladače: jejich tlačítka, páčky, vibrace a navigace v menu.", + "horizon.pages.extras.tooltip": "Volitelné doplňky, všechny ve výchozím nastavení vypnuté: hra zůstane vanilková, dokud jeden nezapnete.", + "horizon.pages.agent.tooltip": "Nechte hrát svého vlastního agenta AI: klienty horizon-ctl a MCP na tomto počítači.", + "horizon.pages.split_profiles.tooltip": "Kdo hraje: profil uložený v této složce hry.", + "horizon.pages.split_setup.tooltip": "Okna a monitory a kdo kde hraje.", + "horizon.pages.shader_packs.tooltip": "Shader packy ze složky shaderpacks: vlastní Horizon a ty ve formátu shaders/. Jeden běží najednou.", + "horizon.pages.mods.tooltip": "Mody vytvořené pro Horizon ze složky horizon-mods. Každá běží v pískovišti a zůstane vypnutá, dokud ji nezapnete.", + "horizon.pages.open.graphics": "grafika...", + "horizon.pages.open.graphics_advanced": "Pokročilá grafika...", + "horizon.pages.open.shader_packs": "Shader Pack...", + "horizon.pages.open.controller": "Nastavení ovladače...", + "horizon.pages.open.split_setup": "Rozdělená obrazovka...", + "horizon.pages.open.extras": "Extra...", + "horizon.pages.open.mods": "Modifikace...", + "horizon.pages.open.agent": "AI agent...", + "horizon.pages.open.horizon_graphics": "Horizon Graphics...", + "horizon.pages.open.controller_binds": "Ovladač se váže...", + "horizon.pages.open.horizon_settings": "Nastavení horizontu...", + "horizon.pages.open.music": "hudba...", + "horizon.mods.empty": "Žádné mody: vložte soubory .hmod do složky horizon-mods", + "horizon.mods.stopped": " (Zastaveno)", + "horizon.mods.not_built": " (Nepostaveno)", + "horizon.mods.dev": " (vývoj)", + "horizon.mods.settings": "Nastavení", + "horizon.mods.in_world": " (nechat svět změnit)", + "horizon.mods.open_folder": "Otevřete složku Mod", + "horizon.shader_packs.empty": "Žádné balíčky shaderů: vložte je do složky shaderpacks", + "horizon.shader_packs.kind_horizon": " (Horizont)", + "horizon.shader_options.open": "Možnosti stínování...", + "horizon.shader_options.profile": "Profil", + "horizon.shader_options.loading": "Čtení možností sady shaderů...", + "horizon.agent.copy_details": "Kopírovat podrobnosti o připojení", + "horizon.multiplayer.join": "Připojte se", + "horizon.multiplayer.cancel_reconnecting": "Zrušit opětovné připojení", + "horizon.multiplayer.join_friend": "Přidejte se k příteli", + "horizon.multiplayer.invite_code": "Kód pozvánky", + "horizon.multiplayer.relay": "relé (volitelné)", + "Preset": "Přednastaveno", + "LOD Distance": "LOD Vzdálenost", + "Far Detail": "Daleký detail", + "Cave Culling": "Cave Culling", + "Entity Culling": "Vyřazení entit", + "Chunk Updates": "Aktualizace bloků", + "Upload Budget": "Nahrát rozpočet", + "Sky": "nebe", + "Fog": "mlha", + "Weather": "Počasí", + "Animated Textures": "Animované textury", + "Present Mode": "Současný režim", + "Frame Pacing": "Frame Pacing", + "Worker Threads": "Pracovní vlákna", + "Resolution Scale": "Měřítko rozlišení", + "Anti-aliasing": "Anti-aliasing", + "Upscaling": "Upscaling", + "Paper White": "Bílý papír", + "Peak Brightness": "Špičkový jas", + "Black Level": "Úroveň černé", + "UI Brightness": "Jas uživatelského rozhraní", + "Battery Mode": "Režim baterie", + "Graphics API": "Grafické rozhraní API", + "Translucent Batching": "Průsvitné dávkování", + "Performance Overlay": "Překryvný výkon", + "Full Detail Distance": "Úplná podrobná vzdálenost", + "On": "Zapnuto", + "Off": "Vypnuto", + "Unlimited": "Neomezené", + "Auto": "Auto", + "Custom": "Vlastní", + "Performance": "Výkon", + "Balanced": "Vyvážený", + "Quality": "Kvalita", + "Ultra": "Ultra", + "Ultra Performance": "Ultra výkon", + "Native": "Nativní", + "Full": "Plný", + "Reduced": "Snížená", + "Efficient": "Efektivní", + "Precise": "Přesný", + "Auto (VSync)": "Auto (VSync)", + "FIFO": "FIFO", + "Mailbox": "Poštovní schránka", + "Immediate": "Okamžitě", + "Vulkan": "Vulkan", + "DirectX 12": "DirectX 12", + "OpenGL": "OpenGL", + "FPS and Graph": "FPS a graf", + "FPS": "FPS", + "TAA": "TAA", + "FXAA": "FXAA", + "No cost": "Žádné náklady", + "Low cost": "Nízká cena", + "Medium cost": "Střední náklady", + "High cost": "Vysoká cena", + "Saves time": "Šetří čas", + "HDR": "HDR", + "Graphics": "Grafika", + "Done": "Hotovo", + "This feature is not yet available in Horizon.": "Tato funkce zatím není v Horizon k dispozici.", + "Your display or system doesn't offer HDR output.": "Váš displej nebo systém nenabízí výstup HDR.", + "Turn HDR on to use it.": "Chcete-li jej používat, zapněte HDR.", + "Your GPU or graphics API doesn't support it.": "Vaše GPU nebo grafické rozhraní API to nepodporuje.", + "%s chunks": "%s kousky", + "%s per frame": "%s na snímek", + "%s MiB/frame": "%s MiB/snímek", + "%s KiB/frame": "%s KiB/snímek", + "Auto (%s)": "Auto (%s)", + "Full-detail terrain range. LOD Distance can extend local worlds farther.": "Úplný rozsah terénu. LOD Distance může rozšířit místní světy dále.", + "Coarse distant terrain in local worlds. Integrated GPUs stop at 128 chunks.": "Hrubý vzdálený terén v místních světech. Integrované GPU se zastaví na 128 blocích.", + "Reduced draws far terrain coarser: faster on this integrated GPU.": "Snížené vykreslování daleko hrubšího terénu: rychlejší na tomto integrovaném GPU.", + "Reduced draws far terrain coarser, for GPUs it slows down.": "Snížené vykresluje daleko hrubší terén, u GPU se zpomaluje.", + "Field of view. Wider shows more terrain at once.": "Zorné pole. Širší zobrazuje více terénu najednou.", + "Caps frames per second; a cap saves power and heat.": "Počet snímků za sekundu; čepice šetří energii a teplo.", + "Waits for the display's refresh: no tearing, a little latency.": "Čeká na obnovení displeje: žádné trhání, malá latence.", + "Size of menus and the HUD.": "Velikost menu a HUD.", + "Sets the options below together. Changing one makes it Custom.": "Nastaví společně níže uvedené možnosti. Změnou jednoho se stane vlastní.", + "Lava, fire and sunlight shine brighter than white. Needs an HDR display.": "Láva, oheň a sluneční světlo září jasněji než bílé. Vyžaduje HDR displej.", + "Your display's darkest black. 0 for OLED; LCDs glow a little.": "Váš displej je nejtmavší černý. 0 pro OLED; LCD trochu svítí.", + "How bright highlights get. Auto: the peak your system reports.": "Jak se získá jasný melír. Auto: vrchol, který váš systém hlásí.", + "How bright white paper and menus look. Auto: your desktop's white.": "Jak vypadají zářivě bílé papíry a nabídky. Auto: vaše plocha je bílá.", + "How bright the HUD and menus are, against paper white.": "Jak jasný je HUD a nabídky oproti bílé na papíře.", + "How far mobs, crops and machines keep working. CPU time.": "Jak dalece davy, plodiny a stroje fungují. CPU čas.", + "How far away mobs and items are drawn, as a share of normal.": "Jak daleko jsou mobové a předměty nakresleny jako podíl normálu.", + "Skips terrain hidden behind closed sections. Off costs a lot.": "Přeskočí terén skrytý za uzavřenými úseky. Vypnutí stojí hodně.", + "Hides entities behind opaque blocks.": "Skryje entity za neprůhlednými bloky.", + "No entity occlusion culling.": "Žádné vyřazení okluze entity.", + "CPU occlusion test runs this frame.": "Test okluze CPU spustí tento rámec.", + "Occlusion checks run on a worker thread.": "Kontroly okluze běží na pracovním vláknu.", + "Meshed sections uploaded per frame. Lower is smoother while loading.": "Síťované sekce nahrané na snímek. Nižší je při načítání hladší.", + "Soft shadows in corners. Costs chunk building time only.": "Jemné stíny v rozích. Stojí jen kus času výstavby.", + "Smaller copies of block textures for distant terrain: less shimmer.": "Menší kopie textur bloků pro vzdálený terén: méně třpytu.", + "Blends grass and water colours across biomes when building chunks.": "Při stavbě kousků mísí barvy trávy a vody napříč biomy.", + "Cloud layer: off, flat (fast) or 3D (fancy).": "Cloudová vrstva: vypnutá, plochá (rychlá) nebo 3D (efektní).", + "How far clouds reach, in chunks.": "Jak daleko dosahují mraky, v kouscích.", + "Draws the sky, sun, moon and stars.": "Kreslí oblohu, slunce, měsíc a hvězdy.", + "Distance fog. Off shows the edge of the loaded world.": "Vzdálená mlha. Vypnuto ukazuje okraj načteného světa.", + "Draws rain and snow.": "Přitahuje déšť a sníh.", + "How far rain and snow fall around you.": "Jak daleko kolem vás padá déšť a sníh.", + "How many particles effects spawn.": "Kolik částic se vytvoří.", + "Round shadows under mobs and items.": "Kulaté stíny pod moby a předměty.", + "Leaves with see-through gaps. Off draws them solid.": "Listy s průhlednými mezerami. Off je vykreslí pevně.", + "Sorts water and glass more exactly behind each other.": "Třídí vodu a sklo přesněji za sebou.", + "Which chunk rebuilds wait for the frame: none, nearby or yours.": "Který kus přestavby čeká na rám: žádný, poblíž nebo váš.", + "Animates water, lava, fire and other moving textures.": "Animuje vodu, lávu, oheň a další pohyblivé textury.", + "World pixels per screen pixel. Below 100% is faster on the GPU.": "Světové pixely na pixel obrazovky. Pod 100 % je rychlejší na GPU.", + "Smooths jagged edges. FXAA: softer. TAA: smoothest, moving things may trail.": "Vyhlazuje zubaté okraje. FXAA: měkčí. TAA: nejhladší, pohyblivé věci se mohou táhnout.", + "Renders the world smaller and rebuilds it with TAA. Faster, softer.": "Zmenší svět a přestaví ho pomocí TAA. Rychlejší, měkčí.", + "HDR output on an HDR display: lava, fire and sunlight shine brighter.": "Výstup HDR na displeji HDR: láva, oheň a sluneční světlo září jasněji.", + "How frames reach the screen while VSync is off.": "Jak se snímky dostanou na obrazovku, když je VSync vypnutá.", + "Efficient sleeps until the next frame; Precise spins, like vanilla.": "Efektivní režim spánku až do dalšího snímku; Přesná rotace, jako vanilka.", + "Fills the screen (borderless).": "Vyplní obrazovku (bez okrajů).", + "Brightens dark places.": "Rozjasňuje tmavá místa.", + "Lowers the frame rate when minimised, or idle too.": "Při minimalizaci nebo nečinnosti sníží snímkovou frekvenci.", + "Sways the view while walking.": "Při chůzi kývá výhled.", + "Fades newly loaded chunks in.": "Nově načtené kousky zmizí.", + "Darkens the screen's edges.": "Ztmaví okraje obrazovky.", + "Shows when the world saves.": "Ukazuje, kdy svět zachraňuje.", + "Shows attack cooldown.": "Ukazuje cooldown útoku.", + "60 FPS cap (30 in menus or unfocused), half the workers: less power.": "60 snímků za sekundu (30 v nabídkách nebo nezaostřené), polovina pracovníků: méně energie.", + "Threads that generate, light and mesh chunks. Next start.": "Vlákna, která generují, osvětlují a propojují kousky. Další start.", + "Vulkan, then DirectX 12 (Windows) or OpenGL (Linux) where it fails. Next start.": "Vulkan, pak DirectX 12 (Windows) nebo OpenGL (Linux), kde selže. Další start.", + "Water and glass in one buffer: fewer draw calls, a bit more VRAM. Next start.": "Voda a sklo v jedné vyrovnávací paměti: méně remízových volání, o něco více VRAM. Další start.", + "Mesh data sent to the GPU per frame. Lower is smoother while loading.": "Data sítě odesílaná do GPU na snímek. Nižší je při načítání hladší.", + "Frame rate and frame times over the game, with a graph.": "Frekvence snímků a časy snímků během hry s grafem.", + "horizon.multiplayer.finding_friend": "Hledání světa svého přítele...", + "horizon.multiplayer.not_signed_in": "Tento server je v online režimu. Přihlaste se pomocí svého účtu Microsoft ve spouštěči Horizon a připojte se k němu.", + "horizon.multiplayer.invalid_address": "Neplatná adresa serveru: %s", + "horizon.multiplayer.connected_friend_direct": "Přímé spojení s vaším přítelem...", + "horizon.multiplayer.connected_friend_relay": "Připojeno k vašemu příteli přes relé...", + "General": "Generál", + "Advanced": "Pokročilé", + "Undo": "Vrátit zpět", + "Search options": "Možnosti vyhledávání", + "Shortcut": "Zkratka", + "Distance": "Vzdálenost", + "Display": "Displej", + "Interface": "Rozhraní", + "Sky and weather": "Obloha a počasí", + "Lighting and entities": "Osvětlení a entity", + "Textures": "Textury", + "Image": "Obrázek", + "Chunk loading": "Načítání kusů", + "Culling": "Porážení", + "Power": "Moc", + "Frames": "Rámečky", + "Overlay": "Překryvná vrstva", + "Output": "Výstup", + "Brightness": "Jas", + "How far you see, the window and the HUD.": "Jak daleko vidíte, okno a HUD.", + "The sky and weather, lighting, textures and the image.": "Obloha a počasí, osvětlení, textury a obraz.", + "Chunk loading, culling and power use.": "Nakládání, utracení a spotřeba energie.", + "How frames reach the screen, and the performance overlay.": "Jak se snímky dostanou na obrazovku a překryvný výkon.", + "Brighter-than-white output on an HDR display.": "Výstup jasnější než bílý na displeji HDR.", + "Results for \"%s\"": "Výsledky pro „%s“", + "No settings match.": "Žádné nastavení neodpovídá.", + "horizon.title.not_affiliated": "Není spojen s Mojang nebo Microsoft", + "horizon.extras.header.lighting": "Osvětlení", + "horizon.extras.header.third_person": "Třetí osoba", + "horizon.extras.header.particles": "Částice", + "horizon.extras.header.inventory": "Inventář", + "horizon.extras.header.chat": "Chat", + "horizon.extras.header.multiplayer": "Multiplayer", + "horizon.extras.header.sound": "Zvuk", + "horizon.extras.header.menus": "Menu", + "horizon.extras.fullbright": "Fullbright", + "horizon.extras.dynamic_lights": "Dynamická světla", + "horizon.extras.own_name_tag": "Vlastní jmenovka", + "horizon.extras.hide_block_particles": "Skryjte částice pro rozbití bloku", + "horizon.extras.auto_reconnect": "Automatické opětovné připojení", + "horizon.extras.ui_sound_reserve": "Ponechat kanály pro zvuky uživatelského rozhraní", + "horizon.extras.music_page": "Hudební stránka", + "horizon.extras.mouse_tweaks": "Ovládání myši Tweaks", + "horizon.extras.mouse_tweaks_wheel": "Rolovací kolečko posouvá položky", + "horizon.extras.sort": "Tlačítka řazení", + "horizon.extras.sort_key": "Klíč řazení", + "horizon.extras.no_ai": "Žádná umělá inteligence", + "horizon.extras.agent_control": "Kontrola agentů", + "horizon.extras.discord_presence": "Neshoda bohatá přítomnost", + "horizon.extras.splitscreen": "Splitscreen", + "horizon.extras.chat_animation": "Hladký chat", + "horizon.extras.chat_indicator": "Indikátor zprávy", + "horizon.extras.wheel_cycles_settings": "Rolovací kolečko mění nastavení", + "horizon.extras.pack_browser": "Prohlížeč balíčku zdrojů", + "horizon.extras.fullbright.tooltip": "Ukažte bloky a entity při plném osvětlení, dokonce i v tmavých oblastech.", + "horizon.extras.dynamic_lights.tooltip": "Pochodně a jiné světelné zdroje držené, shozené nebo v plamenech osvětlují bloky kolem nich.", + "horizon.extras.own_name_tag.tooltip": "Zobrazuje vaše jméno nad vaší hlavou ve třetí osobě, jak to vidí ostatní hráči. Skryté, když server skryje jména vašeho týmu nebo jste neviditelní.", + "horizon.extras.hide_block_particles.tooltip": "Skryje částečky trosek, které prasknou z rozbitého bloku a rozpadnou se z toho, který vytěžíte. Ostatní částice zůstávají.", + "horizon.extras.auto_reconnect.tooltip": "Znovu se připojí k serveru po ztrátě připojení nebo restartu, nikdy po kopu nebo banu.", + "horizon.extras.ui_sound_reserve.tooltip": "Zvuky na světě nechávají 16 z 247 zvukových kanálů volných, takže jejich záplava (velká exploze) nemůže umlčet kliknutí na nabídku.", + "horizon.extras.music_page.tooltip": "Music & Sounds dostane stránku Hudba...: přehrajte libovolnou vestavěnou stopu hned, nebo jednu vypněte, aby ji hra přestala vybírat. Nic se nezmění, dokud stopu nevypnete.", + "horizon.extras.mouse_tweaks.tooltip": "Tažením doprava umístíte jednu na každý slot, tažením doleva shromažďujete zadržený předmět, Shift + tažením doleva posunete každý slot.", + "horizon.extras.mouse_tweaks_wheel.tooltip": "Dolů pošle jednu položku slotu na druhou stranu, nahoru jednu vrátí zpět.", + "horizon.extras.sort.tooltip": "Třídí inventář, truhly, sudy, ender truhly a shulker boxy v kreativním pořadí karet a slučuje hromádky.", + "horizon.extras.sort_key.tooltip": "Seřadí část pod kurzorem. Klikněte a poté stiskněte klávesu; Escape to rozváže.", + "horizon.extras.no_ai.tooltip": "Skryje a vypne všechny funkce AI: ovládání agenta, horizon-ctl a servery MCP. Vypínač spouštěče také.", + "horizon.extras.agent_control.tooltip": "Váš vlastní AI agent může hrát tuto hru prostřednictvím horizon-ctl nebo klienta MCP pouze na tomto počítači.", + "horizon.extras.discord_presence.tooltip": "Zobrazuje Playing Horizon na vašem Discord profilu, zatímco Discord běží: nabídky, single player nebo multiplayer, dimenze a hraný čas. Nikdy jméno světa nebo adresa serveru.", + "Calibrate...": "Kalibrovat...", + "Calibrate Anyway...": "Přesto kalibrovat...", + "Use Automatic Setup": "Použijte Automatické nastavení", + "Shortcut: %s": "Zkratka: %s", + "Next": "Další", + "HDR Calibration %s/%s: %s": "Kalibrace HDR %s/%s: %s", + "Sets the three below full screen, one test picture at a time.": "Nastaví tři pod celou obrazovkou, vždy jeden testovací obrázek.", + "A key that opens this screen from the game. Not bound at first.": "Klíč, který otevře tuto obrazovku ze hry. Zpočátku bez vazby.", + "Your display didn't say how bright it gets: calibrate to set it up.": "Váš displej neříkal, jak jasný je: zkalibrujte jej, abyste jej nastavili.", + "Already set up for your display. Only calibrate if HDR looks wrong.": "Již nastaveno pro váš displej. Kalibrujte pouze v případě, že HDR vypadá špatně.", + "Puts Peak Brightness and Paper White back to your display's setup.": "Vrátí maximální jas a papírovou bílou zpět do nastavení vašeho displeje.", + "Set up for your display. Leave on Auto unless it looks wrong.": "Nastavte pro svůj displej. Nechte na Auto, pokud to nevypadá špatně.", + "Lower it until the logo just disappears into the black.": "Snižte jej, dokud logo nezmizí v černé barvě.", + "Raise it until the logo just disappears into the bright square.": "Zvedněte jej, dokud logo nezmizí ve světlém čtverci.", + "Make the card a white that's comfortable to look at for a long time, in the light you play in.": "Udělejte z karty bílou, na kterou se budete pohodlně dívat po dlouhou dobu ve světle, ve kterém hrajete.", + "horizon.splitscreen.profiles.forget": "Zapomeňte", + "horizon.splitscreen.profiles.create": "Vytvořit", + "horizon.splitscreen.profiles.you": " - vy", + "horizon.splitscreen.profiles.forget_named": "Zapomenout %s", + "horizon.splitscreen.profiles.previous": "Předchozí", + "horizon.splitscreen.profiles.next": "Další", + "horizon.splitscreen.profiles.new_button": "Nový profil...", + "horizon.splitscreen.profiles.forget_title": "Zapomenout profil?", + "horizon.splitscreen.profiles.forget_leaves": "Opustí seznam této instance.", + "horizon.splitscreen.profiles.forget_kept": "Světový pokrok a nastavení jsou zachovány.", + "horizon.splitscreen.profiles.new_title": "Nový profil", + "horizon.splitscreen.profiles.name_hint": "Jméno (3 až 16 písmen, číslic, _)", + "horizon.splitscreen.profiles.switch_title": "Přepnout profil", + "horizon.splitscreen.profiles.offline_note": "Offline profily patří k této instanci", + "horizon.splitscreen.profiles.move": "Pohybujte se tam, kde hrajete", + "horizon.splitscreen.profiles.move_place": "Přesuňte se, kde hrajete: %s", + "horizon.friends.title": "Hrajte s přáteli", + "horizon.friends.hint": "Přátelé vloží kód za tlačítko Přátelé na titulní obrazovce, do Přímého připojení nebo na stránku Play spouštěče.", + "horizon.friends.copied": "Zkopírováno", + "horizon.friends.copy_code": "Kopírovat kód", + "horizon.friends.stop_sharing": "Přestat sdílet", + "horizon.friends.none_yet": "Zatím tu nejsou žádní přátelé.", + "horizon.friends.here_now": "Tady teď: %s", + "horizon.friends.share_intro": "Sdílejte tento svět pomocí zvacího kódu: otevře se na LAN a přátelé na internetu se připojí pomocí kódu. Není zapojen žádný náš server.", + "horizon.friends.start_sharing": "Začněte sdílet", + "horizon.friends.troubleshooting": "Odstraňování problémů...", + "horizon.friends.stopped": "Sdílení kódu pozvánky bylo zastaveno.", + "horizon.friends.short_code_changed": "Někdo neustále zkoušel špatný krátký kód, takže se to změnilo.", + "horizon.friends.wrong_code": "Někdo zkusil špatný kód.", + "horizon.friends.code_ready": "Váš zvací kód je připraven: Herní menu, Hrajte s přáteli. Zkopírujte jej a pošlete svým přátelům.", + "horizon.friends.share_failed": "Nepodařilo se sdílet svět: %s", + "horizon.friends.finding_route": "Zjištění, jak vás mohou přátelé kontaktovat…", + "horizon.osk.shift": "Shift", + "horizon.osk.space": "Prostor", + "horizon.osk.delete": "Smazat", + "horizon.osk.type": "Typ", + "horizon.osk.symbols": "Symboly", + "horizon.osk.close": "Zavřít", + "horizon.extras.chat_animation.tooltip": "Nová čára chatu se vsune zleva, zatímco se mizí, místo aby vypadala celá.", + "horizon.extras.chat_indicator.tooltip": "Barevný pruh nalevo od chatovací linky.", + "horizon.extras.wheel_cycles_settings.tooltip": "Rolovací kolečko nad tlačítkem v nastavení mění jeho hodnotu, jako u vanilky. Vypnuto, kolečko pouze posouvá seznam.", + "horizon.extras.pack_browser.tooltip": "Select Resource Packs dostane tlačítko Přidat, které prohledá Modrinth a nainstaluje balíček do vaší složky balíčků. Vypnuto, hra nikdy nekontaktuje Modrinth.", + "horizon.extras.splitscreen.tooltip": "Ve světě se může jako nový hráč připojit další ovladač: stiskněte A, když se zeptá, pak vyberte profil a kde hrát.", + "horizon.splitscreen.setup.monitor": "Monitor %s", + "horizon.splitscreen.setup.monitor_unknown": "monitor", + "horizon.splitscreen.setup.window": "okno %s", + "horizon.splitscreen.setup.new_window": "Nové okno", + "horizon.splitscreen.setup.fill_monitor": "Vyplňte %s", + "horizon.splitscreen.setup.done": "Hotovo", + "horizon.splitscreen.setup.switch": "%s: %s", + "horizon.splitscreen.setup.on": "Zapnuto", + "horizon.splitscreen.setup.off": "Vypnuto", + "horizon.splitscreen.setup.player": "Hráč %s", + "horizon.splitscreen.setup.revert": "Vrátit zpět", + "horizon.splitscreen.setup.apply": "Použít", + "horizon.splitscreen.setup.warning.empty_main": "V okně 1 nikdo nehraje: skrývá se", + "horizon.splitscreen.setup.warning.empty_close": "V okně %s nikdo nehraje: zavře se při Použít", + "horizon.splitscreen.setup.warning.empty_new": "V okně %s nikdo nehraje: neotevře se", + "horizon.splitscreen.setup.warning.on_main": "Okno %s vyplní monitor okna 1: jeho hráči hrají v okně 1", + "horizon.splitscreen.setup.warning.unplugged": "Monitor okna %s není připojen: jeho hráči hrají v okně 1", + "horizon.splitscreen.setup.status.off": "Splitscreen je vypnutý.", + "horizon.splitscreen.setup.status.enable_hint": "Zapněte jej a poté stiskněte tlačítko na jiném ovladači na světě.", + "horizon.splitscreen.setup.status.join_hint": "Stisknutím tlačítka A se připojíte a vyberete profil.", + "horizon.splitscreen.setup.status.idle": "Splitscreen nečinný", + "horizon.splitscreen.setup.status.alone": "Žádní další místní hráči.", + "horizon.splitscreen.setup.status.solo_controls": "Solo ovládací prvky a zpětná vazba regulátoru se nemění.", + "horizon.splitscreen.setup.window_empty": "Okno %s: prázdné", + "horizon.splitscreen.setup.note.select": "Klikněte na přehrávač nebo jej přetáhněte do okna nebo na monitor.", + "horizon.splitscreen.setup.note.apply": "Použít pro přehrávání tímto způsobem, Vrátit pro vrácení zpět.", + "horizon.splitscreen.setup.note.place": "Kde by měl %s hrát?", + "horizon.splitscreen.setup.this_player": "tohoto hráče", + "horizon.splitscreen.setup.switch_disabled": "Splitscreen se vypne, jakmile ostatní odejdou (jejich nabídka pozastavení).", + "horizon.splitscreen.setup.window_place": "Okno %s (%s z %s)", + "horizon.splitscreen.setup.names": "Jména", + "horizon.splitscreen.setup.identify": "Identifikovat", + "horizon.splitscreen.setup.layout.two": "2 sdílení: %s", + "horizon.splitscreen.setup.layout.three": "3 sdílení: %s", + "horizon.splitscreen.setup.layout.two.0": "Auto", + "horizon.splitscreen.setup.layout.two.1": "Bok po boku", + "horizon.splitscreen.setup.layout.two.2": "Nahoře a dole", + "horizon.splitscreen.setup.layout.three.0": "Jeden široký nahoře", + "horizon.splitscreen.setup.layout.three.1": "Jeden vysoký vlevo", + "horizon.splitscreen.setup.layout.three.2": "Bok po boku", + "horizon.splitscreen.setup.help.player": "Kliknutím nebo přetažením %s je přesunete.", + "horizon.splitscreen.setup.help.layout_auto": "%s (vedle sebe, když je okno široké). Stiskněte pro změnu.", + "horizon.splitscreen.setup.help.layout": "%s. Stiskněte pro změnu.", + "horizon.splitscreen.setup.help.switch": "Rozdělená obrazovka pro tento počítač, zapnutá nebo vypnutá.", + "horizon.splitscreen.setup.help.identify": "Pohled každého hráče ukazuje, ve kterém okně se nachází.", + "horizon.splitscreen.setup.help.names": "Jméno každého hráče v rohu jeho pohledu.", + "horizon.splitscreen.setup.help.revert": "Vraťte zpět změny, které dosud nebyly použity.", + "horizon.splitscreen.setup.help.apply": "Hrajte tak, jak ukazuje mapa.", + "horizon.splitscreen.setup.help.unchanged": "Zatím se nic nezměnilo.", + "horizon.splitscreen.setup.give_up_pad": "Give Up Pad", + "horizon.splitscreen.prompt.controller_connected": "Ovladač připojen", + "horizon.splitscreen.prompt.controller_disconnected": "Ovladač odpojen", + "horizon.splitscreen.prompt.controller_disconnected.hint": "Znovu jej připojte nebo stiskněte tlačítko na jiném", + "horizon.splitscreen.prompt.join.one": "%s se chce připojit", + "horizon.splitscreen.prompt.join.many": "%s kontroloři se chtějí připojit", + "horizon.splitscreen.prompt.join.yes": "Připojte se", + "horizon.splitscreen.prompt.join.as_p1": "Hrajte jako P1", + "horizon.splitscreen.prompt.join.no": "ne", + "horizon.splitscreen.prompt.lost": "%s: ovladač odpojen", + "horizon.splitscreen.prompt.lost.use_another": "Použijte jiný", + "horizon.splitscreen.prompt.lost.leave": "Odejděte", + "horizon.splitscreen.setup.help.give_up_pad": "Váš ovladač vás přestane řídit a je mu nabídnuto připojení (A).", + "horizon.splitscreen.setup.note.held_at": "%s až %s: A to sem hodí, B to vrátí.", + "horizon.splitscreen.setup.note.held": "%s zvedl: vlevo/vpravo vybírá tam, kde A spadne, B to vrátí zpět.", + "Hides models behind opaque blocks. Async checks off-thread; entities tick.": "Skryje modely za neprůhledné bloky. Async kontroluje off-thread; entity klíštěte.", + "Block Entities": "Blokovat entity", + "Shulker Boxes": "Krabice Shulker", + "Reuses settled boxes; lid movement stays animated.": "Znovu používá usazené krabice; pohyb víka zůstává animovaný.", + "Signs": "Známky", + "Reuses sign text until text, light, or font changes.": "Znovu používá podepsaný text, dokud se nezmění text, světlo nebo písmo.", + "Decorated Pots": "Zdobené hrnce", + "Reuses still pots; break wobble and sherd changes redraw.": "Znovu používá nehybné hrnce; break wobble and sherd changes redraw.", + "Bells": "Zvony", + "Reuses still bells; ringing stays animated.": "Znovu používá stále zvony; vyzvánění zůstává animované.", + "Chests": "Truhly", + "Reuses closed chests; moving lids stay animated.": "Znovu používá uzavřené truhly; pohyblivá víčka zůstávají animovaná.", + "Banners": "Bannery", + "Reuses poles; flags and pattern layers still update.": "Znovu používá tyče; příznaky a vrstvy vzorů se stále aktualizují.", + "Copper Golem Statues": "Sochy měděných golemů", + "Reuses statue geometry until its block state changes.": "Znovu používá geometrii sochy, dokud se její stav bloku nezmění.", + "Leaf Culling": "Vyřazování listů", + "Every leaf face. Vanilla's fancy leaves.": "Tvář každého listu. Vanilkovy efektní listy.", + "Distant Plant Dither": "Distant Plant Dither", + "Keeps fine plants in high-res packs from fading far away.": "Chrání jemné rostliny v balíčcích s vysokým rozlišením před vyblednutím.", + "Screenshot Quality": "Kvalita snímku obrazovky", + "F2 screenshots at this many times the game's resolution. Higher takes longer.": "F2 screenshoty v tomto mnohonásobku rozlišení hry. Vyšší trvá déle.", + "Frame Generation": "Generování snímků", + "Shows a made-up frame between each two real ones: smoother, a little more lag.": "Zobrazuje vytvořený rám mezi každým dvěma skutečnými: hladší, trochu více zpoždění.", + "Shadow Cache": "Stínová mezipaměť", + "Reuses the pack shadow map when sun, view and world match. Off by default.": "Znovu použije mapu stínu balíčku, když se slunce, pohled a svět shodují. Ve výchozím nastavení vypnuto.", + "Find BlueMap": "Najděte BlueMap", + "On servers, finds their BlueMap web map for far terrain. Next join.": "Na serverech najde jejich webovou mapu BlueMap pro vzdálený terén. Další připojení.", + "BlueMap Radius": "BlueMap Radius", + "How far around you BlueMap tiles are downloaded. Next join.": "Jak daleko ve vašem okolí jsou staženy dlaždice BlueMap. Další připojení.", + "Synchronous": "Synchronní", + "Asynchronous": "Asynchronní", + "Solid": "Pevné", + "Solid Aggressive": "Solidní agresivní", + "Hollow": "Dutý", + "Leaves fully inside a canopy draw solid: fewer see-through layers.": "Listy plně uvnitř baldachýnu kreslí pevně: méně průhledných vrstev.", + "Leaves with one open side draw solid too: faster, chunkier edges.": "Listy s jednou otevřenou stranou se také kreslí pevně: rychlejší, robustnější okraje.", + "Drops faces between leaves: faster, but gaps look through.": "Klesá obličeje mezi listy: rychlejší, ale prohlížejí mezery.", + "Hotbar: Previous Slot": "Hotbar: Předchozí slot", + "Hotbar: Next Slot": "Hotbar: Další slot", + "horizon.agent.connected.one": "Připojeno: 1 připojení agenta", + "horizon.agent.connected.many": "Připojeno: %s připojení agentů", + "horizon.agent.connected.one_ago": "Připojeno: 1 připojení agenta, poslední příkaz před %s s", + "horizon.agent.connected.many_ago": "Připojeno: %s připojení agentů, poslední příkaz před %s s", + "horizon.agent.waiting": "Čekání na agenta.", + "horizon.agent.off": "Vypnuto: agenti se k této hře nedostanou.", + "horizon.agent.session_opened": "Otevřeno pro tuto relaci programem, který spustil hru.", + "horizon.agent.socket": "Socket: %s (zkopírujte podrobnosti pro jeho úplnou cestu)", + "horizon.agent.local_only": "Pouze místní: agenti na tomto počítači, nikdy v síti.", + "%s nits": "%s hnid", + "Auto (%s nits)": "Auto (%s nits)", + "%.2f nits": "%.2f hnid", + "Hides models behind opaque blocks. Entities update. Off with custom packs.": "Skryje modely za neprůhledné bloky. Aktualizace entit. Vypnuto s vlastními balíčky.", + "horizon.extras.repro_keys": "Zkratky nahrávání", + "horizon.extras.repro_keys.tooltip": "F3+R spustí nebo zastaví repro záznam a F3+E zapíše jeho svazek. Ve výchozím nastavení vypnuto: nahrávka zkopíruje svět.", + "horizon.agent.record_session": "Spusťte záznam relace", + "horizon.agent.record_stop": "Zastavit záznam relace", + "horizon.agent.export_repro": "Export Repro Bundle", + "horizon.repro.started": "Nahrávání zahájeno; F3+R to zastaví a zapíše svazek.", + "horizon.repro.stopped": "Nahrávání zastaveno: %s", + "horizon.repro.bundle": "Repro balíček: %s", + "horizon.repro.error": "Repro: %s", + "horizon.repro.no_recording": "Zatím není k dispozici žádná nahrávka k exportu.", + "horizon.repro.replay_started": "Přehrávání zahájeno: %s", + "horizon.pack.add": "+", + "horizon.pack.addInfo": "Přidejte zdrojový balíček z Modrinth", + "horizon.pack.addWorking": "Ptát se Modrintha...", + "horizon.pack.addNone": "Nebyly nalezeny žádné balíčky zdrojů", + "horizon.pack.addTitle": "Přidejte Resource Pack", + "horizon.pack.install": "Instalovat", + "horizon.pack.installing": "Instalace", + "horizon.pack.installed": "Instalováno", + "horizon.pack.search": "Hledat", + "horizon.pack.searchHint": "Hledat Modrinth...", + "horizon.pack.filters": "Filtry", + "horizon.pack.filter.realistic": "Realistické", + "horizon.pack.filter.simplistic": "Zjednodušené", + "horizon.pack.filter.vanillaLike": "Vanilkové", + "horizon.pack.filter.x16": "16x", + "horizon.pack.filter.x32": "32x", + "horizon.pack.filter.x64": "64x", + "horizon.pack.addFailed": "Balíček nelze přidat: %s", + "horizon.extras.header.cosmetics": "Kosmetika", + "horizon.extras.cosmetics_mine": "Moje kosmetika", + "horizon.extras.cosmetics_mine.tooltip": "Skryté: každý hráč Horizon vás vidí bez vaší kosmetiky, včetně vás. Stejný vypínač jako skříň odpalovacího zařízení.", + "horizon.extras.cosmetics_others": "Kosmetika ostatních hráčů", + "horizon.extras.cosmetics_others.tooltip": "Co nosí ostatní hráči Horizon: všechno, jen styly jmenovek nebo nic. Skryto, hra se nikdy neptá, co nosí.", + "horizon.extras.cosmetics_auras": "Aury a stezky ostatních", + "horizon.extras.cosmetics_auras.tooltip": "Aury a stezky, které nosí ostatní hráči. Ve výchozím nastavení vypnuto.", + "horizon.extras.cosmetics.shown": "Zobrazeno", + "horizon.extras.cosmetics.hidden": "Skrytá", + "horizon.extras.cosmetics.name_tags": "Pouze jmenovky" +} From d4052f7c5c9d2c6a5601683ac42ede674148aa60 Mon Sep 17 00:00:00 2001 From: dontstopgorkingit <268053046+dontstopgorkingit@users.noreply.github.com> Date: Tue, 3 Nov 2026 16:35:24 +0100 Subject: [PATCH 19/70] Add Svenska (sv_se) game translation Bundles Horizon's own Svenska strings so sv_se players see translated menus and options instead of the English fallback. Co-Authored-By: DeepSeek V4.1 Flash Free --- crates/horizon-client-core/src/lang.rs | 3 + .../assets/horizon/lang/sv_se.json | 508 ++++++++++++++++++ 2 files changed, 511 insertions(+) create mode 100644 crates/horizon-client/assets/horizon/lang/sv_se.json diff --git a/crates/horizon-client-core/src/lang.rs b/crates/horizon-client-core/src/lang.rs index 9ad3c155b6..6d09331781 100644 --- a/crates/horizon-client-core/src/lang.rs +++ b/crates/horizon-client-core/src/lang.rs @@ -100,6 +100,9 @@ impl ResourceSource for Bundled { "assets/horizon/lang/ur_pk.json" => { include_str!("../../horizon-client/assets/horizon/lang/ur_pk.json") } + "assets/horizon/lang/sv_se.json" => { + include_str!("../../horizon-client/assets/horizon/lang/sv_se.json") + } "assets/horizon/lang/de_de.json" | "assets/horizon/lang/de_at.json" => { include_str!("../../horizon-client/assets/horizon/lang/de_de.json") } diff --git a/crates/horizon-client/assets/horizon/lang/sv_se.json b/crates/horizon-client/assets/horizon/lang/sv_se.json new file mode 100644 index 0000000000..30f9e91835 --- /dev/null +++ b/crates/horizon-client/assets/horizon/lang/sv_se.json @@ -0,0 +1,508 @@ +{ + "horizon.options.controller": "Styrenhet", + "horizon.options.vibration": "Vibration", + "horizon.options.adaptive_triggers": "Adaptiva triggers", + "horizon.options.lightbar": "Ljusfält", + "horizon.options.look_sensitivity": "Utseende Känslighet", + "horizon.options.invert_x": "Invertera Look X", + "horizon.options.invert_y": "Invertera Look Y", + "horizon.options.sneak_button": "Smygknapp", + "horizon.options.move_deadzone": "Flytta dödzon", + "horizon.options.look_deadzone": "Titta på Deadzone", + "horizon.options.button_glyphs": "Knapp Glyfer", + "horizon.options.menu_navigation": "Menynavigering", + "horizon.options.on_screen_keyboard": "Skärmtangentbord", + "horizon.options.chat_delay": "Chattfördröjning", + "horizon.options.lightbar.health": "Hälsa", + "horizon.options.lightbar.dimension": "Dimension", + "horizon.options.glyphs.auto": "Auto", + "horizon.options.glyphs.xbox": "Xbox", + "horizon.options.glyphs.playstation": "PlayStation", + "horizon.options.glyphs.nintendo": "Nintendo", + "horizon.options.menu_focus": "Fokusera", + "horizon.options.menu_pointer": "Pekare", + "horizon.options.keyboard.auto": "Auto", + "horizon.options.keyboard.horizon": "Horisont", + "horizon.options.keyboard.steam": "Ånga", + "horizon.options.unavailable": "Den här funktionen är ännu inte tillgänglig i Horizon.", + "horizon.options.search": "Sökinställningar...", + "horizon.pages.mods": "Mods", + "horizon.pages.shader_packs": "Shader-paket", + "horizon.pages.shader_options": "Skuggningsalternativ", + "horizon.pages.controller": "Kontrollinställningar", + "horizon.pages.controller_binds": "Controller binder", + "horizon.pages.extras": "Horizon Extras", + "horizon.pages.settings": "Horisontinställningar", + "horizon.pages.agent": "AI-agent", + "horizon.split.leave": "Lämna", + "horizon.pages.split_settings": "Inställningar för delad skärm", + "horizon.pages.split_profiles": "Vem spelar?", + "horizon.pages.split_setup": "Inställning av delad skärm", + "horizon.pages.music": "Musik", + "horizon.pages.music.menu": "Meny", + "horizon.pages.music.overworld": "Övervärlden", + "horizon.pages.music.creative": "Kreativt", + "horizon.pages.music.underwater": "Under vattnet", + "horizon.pages.music.end": "Slutet", + "horizon.pages.music.boss": "Boss", + "horizon.pages.music.credits": "Krediter", + "horizon.pages.music.overworld_biomes": "Övervärldsbiomer", + "horizon.pages.music.nether_biomes": "Nedre biomer", + "horizon.pages.music.end_biomes": "Sluta biomer", + "horizon.pages.music.other": "Annan musik", + "horizon.pages.music.empty": "Inga musikspår: spelets ljud laddas inte.", + "horizon.pages.music.tooltip": "De inbyggda spåren, efter situation: spela ett nu, eller stäng av något så att spelet slutar välja det.", + "horizon.pages.settings.tooltip": "Horizons egna inställningar: grafik, kontroller, extrafunktioner och mods.", + "horizon.pages.graphics.tooltip": "Grafik, helt enkelt: varje inställning säger vad den kostar.", + "horizon.pages.graphics_advanced.tooltip": "Varje grafikinställning, Horizons ingår, med vad varje kostar.", + "horizon.pages.controller.tooltip": "Styrenheter: deras knappar, spakar, vibrationer och menynavigering.", + "horizon.pages.extras.tooltip": "Valfria tillägg, alla avstängda som standard: spelet förblir vanilj tills du slår på ett.", + "horizon.pages.agent.tooltip": "Låt din egen AI-agent spela: horizon-ctl och MCP-klienter på den här datorn.", + "horizon.pages.split_profiles.tooltip": "Vem spelar: en profil som finns i den här spelmappen.", + "horizon.pages.split_setup.tooltip": "Fönstren och bildskärmarna, och vem spelar var.", + "horizon.pages.shader_packs.tooltip": "Shader-paket från shaderpacks-mappen: Horizons egna och de i shaders/-formatet. En springer i taget.", + "horizon.pages.mods.tooltip": "Mods gjorda för Horizon, från mappen horizon-mods. Varje körs i en sandlåda och förblir avstängd tills du slår på den.", + "horizon.pages.open.graphics": "Grafik...", + "horizon.pages.open.graphics_advanced": "Avancerad grafik...", + "horizon.pages.open.shader_packs": "Shader-paket...", + "horizon.pages.open.controller": "Kontrollinställningar...", + "horizon.pages.open.split_setup": "Delad skärm...", + "horizon.pages.open.extras": "Extra...", + "horizon.pages.open.mods": "Mods...", + "horizon.pages.open.agent": "AI-agent...", + "horizon.pages.open.horizon_graphics": "Horisont grafik...", + "horizon.pages.open.controller_binds": "Styrenheten binder...", + "horizon.pages.open.horizon_settings": "Horisontinställningar...", + "horizon.pages.open.music": "Musik...", + "horizon.mods.empty": "Inga mods: lägg .hmod-filer i mappen horizon-mods", + "horizon.mods.stopped": " (Stoppade)", + "horizon.mods.not_built": " (Ej byggd)", + "horizon.mods.dev": " (Dev)", + "horizon.mods.settings": "Inställningar", + "horizon.mods.in_world": " (låt världen förändras)", + "horizon.mods.open_folder": "Öppna Mod-mappen", + "horizon.shader_packs.empty": "Inga shader-paket: lägg dem i shaderpacks-mappen", + "horizon.shader_packs.kind_horizon": " (Horizon)", + "horizon.shader_options.open": "Skuggningsalternativ...", + "horizon.shader_options.profile": "Profil", + "horizon.shader_options.loading": "Läser shader-paketets alternativ...", + "horizon.agent.copy_details": "Kopiera anslutningsinformation", + "horizon.multiplayer.join": "Gå med", + "horizon.multiplayer.cancel_reconnecting": "Avbryt Återansluter", + "horizon.multiplayer.join_friend": "Gå med i en vän", + "horizon.multiplayer.invite_code": "Inbjudningskod", + "horizon.multiplayer.relay": "Relä (valfritt)", + "Preset": "Förinställd", + "LOD Distance": "LOD Avstånd", + "Far Detail": "Lång detalj", + "Cave Culling": "Grottavlivning", + "Entity Culling": "Entity Culling", + "Chunk Updates": "Bituppdateringar", + "Upload Budget": "Ladda upp budget", + "Sky": "Sky", + "Fog": "Dimma", + "Weather": "Väder", + "Animated Textures": "Animerade texturer", + "Present Mode": "Presentationsläge", + "Frame Pacing": "Frame Pacing", + "Worker Threads": "Arbetstrådar", + "Resolution Scale": "Upplösningsskala", + "Anti-aliasing": "Kantutjämning", + "Upscaling": "Uppskalning", + "Paper White": "Papper Vit", + "Peak Brightness": "Högsta ljusstyrka", + "Black Level": "Svart nivå", + "UI Brightness": "UI-ljusstyrka", + "Battery Mode": "Batteriläge", + "Graphics API": "Grafik API", + "Translucent Batching": "Genomskinlig batchning", + "Performance Overlay": "Performance Overlay", + "Full Detail Distance": "Fullständig detalj avstånd", + "On": "På", + "Off": "Av", + "Unlimited": "Obegränsad", + "Auto": "Auto", + "Custom": "Anpassad", + "Performance": "Prestanda", + "Balanced": "Balanserad", + "Quality": "Kvalitet", + "Ultra": "Ultra", + "Ultra Performance": "Ultraprestanda", + "Native": "Infödd", + "Full": "Full", + "Reduced": "Minskad", + "Efficient": "Effektiv", + "Precise": "Exakt", + "Auto (VSync)": "Auto (VSync)", + "FIFO": "FIFO", + "Mailbox": "Brevlåda", + "Immediate": "Omedelbart", + "Vulkan": "Vulkan", + "DirectX 12": "DirectX 12", + "OpenGL": "OpenGL", + "FPS and Graph": "FPS och graf", + "FPS": "FPS", + "TAA": "TAA", + "FXAA": "FXAA", + "No cost": "Ingen kostnad", + "Low cost": "Låg kostnad", + "Medium cost": "Medium kostnad", + "High cost": "Hög kostnad", + "Saves time": "Sparar tid", + "HDR": "HDR", + "Graphics": "Grafik", + "Done": "Klart", + "This feature is not yet available in Horizon.": "Den här funktionen är ännu inte tillgänglig i Horizon.", + "Your display or system doesn't offer HDR output.": "Din bildskärm eller ditt system erbjuder inte HDR-utgång.", + "Turn HDR on to use it.": "Slå på HDR för att använda den.", + "Your GPU or graphics API doesn't support it.": "Din GPU eller grafik-API stöder det inte.", + "%s chunks": "%s bitar", + "%s per frame": "%s per bildruta", + "%s MiB/frame": "%s MiB/bildruta", + "%s KiB/frame": "%s KiB/ram", + "Auto (%s)": "Auto (%s)", + "Full-detail terrain range. LOD Distance can extend local worlds farther.": "Terrängområde med fullständiga detaljer. LOD Distance kan sträcka lokala världar längre.", + "Coarse distant terrain in local worlds. Integrated GPUs stop at 128 chunks.": "Grov avlägsen terräng i lokala världar. Integrerade GPU:er stannar vid 128 bitar.", + "Reduced draws far terrain coarser: faster on this integrated GPU.": "Minskat drar långt grövre terräng: snabbare med denna integrerade GPU.", + "Reduced draws far terrain coarser, for GPUs it slows down.": "Minskad drar mycket grövre terräng, för GPU:er saktar den ner.", + "Field of view. Wider shows more terrain at once.": "Synfält. Bredare visar mer terräng på en gång.", + "Caps frames per second; a cap saves power and heat.": "Kapar bildrutor per sekund; ett lock sparar ström och värme.", + "Waits for the display's refresh: no tearing, a little latency.": "Väntar på skärmens uppdatering: ingen rivning, lite latens.", + "Size of menus and the HUD.": "Storlek på menyer och HUD.", + "Sets the options below together. Changing one makes it Custom.": "Ställer in alternativen nedan tillsammans. Att ändra en gör det Custom.", + "Lava, fire and sunlight shine brighter than white. Needs an HDR display.": "Lava, eld och solljus lyser starkare än vitt. Behöver en HDR-skärm.", + "Your display's darkest black. 0 for OLED; LCDs glow a little.": "Din skärm är mörkast svart. 0 för OLED; LCD-skärmar lyser lite.", + "How bright highlights get. Auto: the peak your system reports.": "Hur ljusa höjdpunkter blir. Auto: den topp som ditt system rapporterar.", + "How bright white paper and menus look. Auto: your desktop's white.": "Så ljust vitt papper och menyer ser ut. Auto: ditt skrivbord är vitt.", + "How bright the HUD and menus are, against paper white.": "Hur ljusa HUD och menyer är, mot pappersvitt.", + "How far mobs, crops and machines keep working. CPU time.": "Hur långt hopar, grödor och maskiner fortsätter att arbeta. CPU-tid.", + "How far away mobs and items are drawn, as a share of normal.": "Hur långt bort mobs och föremål dras, som andel av normala.", + "Skips terrain hidden behind closed sections. Off costs a lot.": "Hoppar över terräng gömd bakom stängda sektioner. Off kostar mycket.", + "Hides entities behind opaque blocks.": "Döljer enheter bakom ogenomskinliga block.", + "No entity occlusion culling.": "Ingen entitetsocklusion utslaktning.", + "CPU occlusion test runs this frame.": "CPU-ocklusionstest kör denna ram.", + "Occlusion checks run on a worker thread.": "Ocklusionskontroller körs på en arbetstråd.", + "Meshed sections uploaded per frame. Lower is smoother while loading.": "Meshed sektioner uppladdade per bildruta. Lägre är smidigare vid lastning.", + "Soft shadows in corners. Costs chunk building time only.": "Mjuka skuggor i hörnen. Kostar bara en del byggtid.", + "Smaller copies of block textures for distant terrain: less shimmer.": "Mindre kopior av blocktexturer för avlägsen terräng: mindre skimmer.", + "Blends grass and water colours across biomes when building chunks.": "Blandar gräs och vattenfärger över biomer när du bygger bitar.", + "Cloud layer: off, flat (fast) or 3D (fancy).": "Molnlager: av, platt (snabb) eller 3D (fancy).", + "How far clouds reach, in chunks.": "Hur långt molnen når, i bitar.", + "Draws the sky, sun, moon and stars.": "Ritar himlen, solen, månen och stjärnorna.", + "Distance fog. Off shows the edge of the loaded world.": "Distansdimma. Off visar kanten på den laddade världen.", + "Draws rain and snow.": "Ritar regn och snö.", + "How far rain and snow fall around you.": "Hur långt regn och snö faller omkring dig.", + "How many particles effects spawn.": "Hur många partiklar effekter spawn.", + "Round shadows under mobs and items.": "Runda skuggor under mobs och föremål.", + "Leaves with see-through gaps. Off draws them solid.": "Blad med genomskinliga mellanrum. Off drar dem fast.", + "Sorts water and glass more exactly behind each other.": "Sorterar vatten och glas mer exakt efter varandra.", + "Which chunk rebuilds wait for the frame: none, nearby or yours.": "Vilken chunk-ombyggnad väntar på ramen: ingen, i närheten eller din.", + "Animates water, lava, fire and other moving textures.": "Animerar vatten, lava, eld och andra rörliga texturer.", + "World pixels per screen pixel. Below 100% is faster on the GPU.": "Världspixlar per skärmpixel. Under 100% är snabbare på GPU.", + "Smooths jagged edges. FXAA: softer. TAA: smoothest, moving things may trail.": "Jämnar ut taggiga kanter. FXAA: mjukare. TAA: smidigaste, rörliga saker kan spåra.", + "Renders the world smaller and rebuilds it with TAA. Faster, softer.": "Gör världen mindre och bygger om den med TAA. Snabbare, mjukare.", + "HDR output on an HDR display: lava, fire and sunlight shine brighter.": "HDR-utgång på en HDR-skärm: lava, eld och solljus lyser starkare.", + "How frames reach the screen while VSync is off.": "Hur ramar når skärmen medan VSync är avstängt.", + "Efficient sleeps until the next frame; Precise spins, like vanilla.": "Effektiv sömn till nästa bildruta; Exakt snurr, som vanilj.", + "Fills the screen (borderless).": "Fyller skärmen (kantlös).", + "Brightens dark places.": "Ljusar upp mörka platser.", + "Lowers the frame rate when minimised, or idle too.": "Sänker bildfrekvensen när den är minimerad, eller inaktiv också.", + "Sways the view while walking.": "Svänger utsikten när du går.", + "Fades newly loaded chunks in.": "Tonar in nyladdade bitar.", + "Darkens the screen's edges.": "Gör skärmens kanter mörkare.", + "Shows when the world saves.": "Visar när världen räddar.", + "Shows attack cooldown.": "Visar nedkylning av attacken.", + "60 FPS cap (30 in menus or unfocused), half the workers: less power.": "60 FPS cap (30 i menyer eller ofokuserad), hälften av arbetarna: mindre kraft.", + "Threads that generate, light and mesh chunks. Next start.": "Trådar som genererar, lätta och maska bitar. Nästa start.", + "Vulkan, then DirectX 12 (Windows) or OpenGL (Linux) where it fails. Next start.": "Vulkan, sedan DirectX 12 (Windows) eller OpenGL (Linux) där det misslyckas. Nästa start.", + "Water and glass in one buffer: fewer draw calls, a bit more VRAM. Next start.": "Vatten och glas i en buffert: färre dragsamtal, lite mer VRAM. Nästa start.", + "Mesh data sent to the GPU per frame. Lower is smoother while loading.": "Mesh-data skickas till GPU:n per bildruta. Lägre är smidigare vid lastning.", + "Frame rate and frame times over the game, with a graph.": "Bildfrekvens och bildtider över spelet, med en graf.", + "horizon.multiplayer.finding_friend": "Att hitta din väns värld...", + "horizon.multiplayer.not_signed_in": "Denna server är i onlineläge. Logga in med ditt Microsoft-konto i Horizon launcher för att gå med i det.", + "horizon.multiplayer.invalid_address": "Ogiltig serveradress: %s", + "horizon.multiplayer.connected_friend_direct": "Ansluten direkt till din vän...", + "horizon.multiplayer.connected_friend_relay": "Ansluten till din vän via reläet...", + "General": "Allmänt", + "Advanced": "Avancerat", + "Undo": "Ångra", + "Search options": "Sökalternativ", + "Shortcut": "Genväg", + "Distance": "Avstånd", + "Display": "Display", + "Interface": "Gränssnitt", + "Sky and weather": "Himmel och väder", + "Lighting and entities": "Belysning och enheter", + "Textures": "Texturer", + "Image": "Bild", + "Chunk loading": "Chunk laddning", + "Culling": "Avlivning", + "Power": "Kraft", + "Frames": "Ramar", + "Overlay": "Överlägg", + "Output": "Utgång", + "Brightness": "Ljusstyrka", + "How far you see, the window and the HUD.": "Hur långt du ser, fönstret och HUD.", + "The sky and weather, lighting, textures and the image.": "Himlen och väder, ljus, texturer och bilden.", + "Chunk loading, culling and power use.": "Chunk loading, utslaktning och kraftanvändning.", + "How frames reach the screen, and the performance overlay.": "Hur ramar når skärmen och prestandaöverlägget.", + "Brighter-than-white output on an HDR display.": "Ljusare än vit utgång på en HDR-skärm.", + "Results for \"%s\"": "Resultat för \"%s\"", + "No settings match.": "Inga inställningar matchar.", + "horizon.title.not_affiliated": "Ej ansluten till Mojang eller Microsoft", + "horizon.extras.header.lighting": "Belysning", + "horizon.extras.header.third_person": "Tredje person", + "horizon.extras.header.particles": "Partiklar", + "horizon.extras.header.inventory": "Inventering", + "horizon.extras.header.chat": "Chatta", + "horizon.extras.header.multiplayer": "Multiplayer", + "horizon.extras.header.sound": "Ljud", + "horizon.extras.header.menus": "Menyer", + "horizon.extras.fullbright": "Fullbright", + "horizon.extras.dynamic_lights": "Dynamiska lampor", + "horizon.extras.own_name_tag": "Egen namnskylt", + "horizon.extras.hide_block_particles": "Göm blockbrytande partiklar", + "horizon.extras.auto_reconnect": "Återanslut automatiskt", + "horizon.extras.ui_sound_reserve": "Behåll kanaler för UI-ljud", + "horizon.extras.music_page": "Musiksida", + "horizon.extras.mouse_tweaks": "Mouse Tweaks kontroller", + "horizon.extras.mouse_tweaks_wheel": "Scrollhjul flyttar objekt", + "horizon.extras.sort": "Sorteringsknappar", + "horizon.extras.sort_key": "Sorteringsnyckel", + "horizon.extras.no_ai": "Ingen AI", + "horizon.extras.agent_control": "Agentkontroll", + "horizon.extras.discord_presence": "Discord rik närvaro", + "horizon.extras.splitscreen": "Delad skärm", + "horizon.extras.chat_animation": "Smidig chatt", + "horizon.extras.chat_indicator": "Meddelandeindikator", + "horizon.extras.wheel_cycles_settings": "Skrollhjul ändrar inställningar", + "horizon.extras.pack_browser": "Resurspaket webbläsare", + "horizon.extras.fullbright.tooltip": "Visa block och enheter i fullt ljus, även i mörka områden.", + "horizon.extras.dynamic_lights.tooltip": "Facklor och andra ljuskällor som hålls, tappas eller brinner tänder blocken runt dem.", + "horizon.extras.own_name_tag.tooltip": "Visar ditt namn ovanför ditt huvud i tredje person, som andra spelare ser det. Dold när servern döljer ditt lags namn eller om du är osynlig.", + "horizon.extras.hide_block_particles.tooltip": "Döljer skräppartiklarna som spricker från ett trasigt block och smulas av det du minar. Andra partiklar stannar kvar.", + "horizon.extras.auto_reconnect.tooltip": "Återansluter till en server efter en förlorad anslutning eller en omstart, aldrig efter en kick eller förbud.", + "horizon.extras.ui_sound_reserve.tooltip": "Ljud i världen lämnar 16 av de 247 ljudkanalerna fria, så en flod av dem (en stor explosion) kan inte tysta menyklick.", + "horizon.extras.music_page.tooltip": "Musik och ljud får en Musik...-sida: spela valfritt inbyggt spår nu, eller stäng av ett så att spelet slutar välja det. Ingenting förändras förrän du stänger av ett spår.", + "horizon.extras.mouse_tweaks.tooltip": "Höger-dra placerar en per plats, vänster-dra samlar ihop det hållna objektet, Shift + vänster-dra flyttar varje plats.", + "horizon.extras.mouse_tweaks_wheel.tooltip": "Ner skickar ett objekt i facket till den andra sidan, upp tar tillbaka ett.", + "horizon.extras.sort.tooltip": "Sorterar inventering, kistor, fat, ändkistor och shulkerboxar i kreativ flikordning, slår samman stackar.", + "horizon.extras.sort_key.tooltip": "Sorterar delen under markören. Klicka och tryck sedan på en tangent; Escape frigör det.", + "horizon.extras.no_ai.tooltip": "Döljer och stänger av alla AI-funktioner: agentkontroll, horizon-ctl och MCP-servrarna. Launcherns omkopplare också.", + "horizon.extras.agent_control.tooltip": "Din egen AI-agent kan spela det här spelet via horizon-ctl eller en MCP-klient, endast på den här datorn.", + "horizon.extras.discord_presence.tooltip": "Visar Playing Horizon på din Discord-profil medan Discord körs: menyer, singelspelare eller multiplayer, dimensionen och spelad tid. Aldrig en världsnamn eller en serveradress.", + "Calibrate...": "Kalibrera...", + "Calibrate Anyway...": "Kalibrera ändå...", + "Use Automatic Setup": "Använd automatisk inställning", + "Shortcut: %s": "Genväg: %s", + "Next": "Nästa", + "HDR Calibration %s/%s: %s": "HDR-kalibrering %s/%s: %s", + "Sets the three below full screen, one test picture at a time.": "Ställer in de tre nedanför helskärm, en testbild i taget.", + "A key that opens this screen from the game. Not bound at first.": "En nyckel som öppnar den här skärmen från spelet. Inte bunden till en början.", + "Your display didn't say how bright it gets: calibrate to set it up.": "Din skärm sa inte hur ljus den blir: kalibrera för att ställa in den.", + "Already set up for your display. Only calibrate if HDR looks wrong.": "Redan konfigurerat för din skärm. Kalibrera bara om HDR ser fel ut.", + "Puts Peak Brightness and Paper White back to your display's setup.": "Återställer Peak Brightness och Paper White till skärmens inställningar.", + "Set up for your display. Leave on Auto unless it looks wrong.": "Ställ in för din skärm. Lämna på Auto om det inte ser fel ut.", + "Lower it until the logo just disappears into the black.": "Sänk den tills logotypen precis försvinner i det svarta.", + "Raise it until the logo just disappears into the bright square.": "Höj den tills logotypen precis försvinner i den ljusa fyrkanten.", + "Make the card a white that's comfortable to look at for a long time, in the light you play in.": "Gör kortet vitt som är bekvämt att titta på länge, i ljuset du spelar i.", + "horizon.splitscreen.profiles.forget": "Glöm", + "horizon.splitscreen.profiles.create": "Skapa", + "horizon.splitscreen.profiles.you": " - du", + "horizon.splitscreen.profiles.forget_named": "Glöm %s", + "horizon.splitscreen.profiles.previous": "Föregående", + "horizon.splitscreen.profiles.next": "Nästa", + "horizon.splitscreen.profiles.new_button": "Ny profil...", + "horizon.splitscreen.profiles.forget_title": "Glömt profilen?", + "horizon.splitscreen.profiles.forget_leaves": "Den lämnar denna instanss lista.", + "horizon.splitscreen.profiles.forget_kept": "Världens framsteg och inställningar behålls.", + "horizon.splitscreen.profiles.new_title": "Ny profil", + "horizon.splitscreen.profiles.name_hint": "Namn (3 till 16 bokstäver, siffror, _)", + "horizon.splitscreen.profiles.switch_title": "Byt profil", + "horizon.splitscreen.profiles.offline_note": "Offlineprofiler tillhör denna instans", + "horizon.splitscreen.profiles.move": "Flytta dit du spelar", + "horizon.splitscreen.profiles.move_place": "Flytta dit du spelar: %s", + "horizon.friends.title": "Spela med vänner", + "horizon.friends.hint": "Vänner klistrar in koden efter titelskärmens Vänner-knapp, i direktanslutning eller på startprogrammets spelsida.", + "horizon.friends.copied": "Kopierade", + "horizon.friends.copy_code": "Kopiera kod", + "horizon.friends.stop_sharing": "Sluta dela", + "horizon.friends.none_yet": "Inga vänner här än.", + "horizon.friends.here_now": "Här nu: %s", + "horizon.friends.share_intro": "Dela denna värld bakom en inbjudningskod: den öppnas till LAN och vänner på internet går med med koden. Ingen av vår server är inblandad.", + "horizon.friends.start_sharing": "Börja dela", + "horizon.friends.troubleshooting": "Felsökning...", + "horizon.friends.stopped": "Slutade dela inbjudningskoden.", + "horizon.friends.short_code_changed": "Någon fortsatte att försöka med en felaktig kortkod, så det ändrades.", + "horizon.friends.wrong_code": "Någon försökte med fel kod.", + "horizon.friends.code_ready": "Din inbjudningskod är klar: Spelmeny, Spela med vänner. Kopiera den och skicka den till dina vänner.", + "horizon.friends.share_failed": "Kunde inte dela världen: %s", + "horizon.friends.finding_route": "Hitta hur vänner kan nå dig...", + "horizon.osk.shift": "Skift", + "horizon.osk.space": "Utrymme", + "horizon.osk.delete": "Ta bort", + "horizon.osk.type": "Typ", + "horizon.osk.symbols": "Symboler", + "horizon.osk.close": "Stäng", + "horizon.extras.chat_animation.tooltip": "En ny chattlinje glider in från vänster medan den tonar in, istället för att se hel ut.", + "horizon.extras.chat_indicator.tooltip": "Den färgade stapeln till vänster om en chattlinje.", + "horizon.extras.wheel_cycles_settings.tooltip": "Scrollhjulet över en knapp i inställningarna ändrar dess värde, som i vanilj. Av, hjulet rullar bara i listan.", + "horizon.extras.pack_browser.tooltip": "Select Resource Packs får en Lägg till-knapp som söker efter Modrinth och installerar ett paket i din pack-mapp. Av, spelet kontaktar aldrig Modrinth.", + "horizon.extras.splitscreen.tooltip": "I en värld kan en annan kontroller gå med som en ny spelare: tryck på A när den frågar, välj sedan en profil och var du vill spela.", + "horizon.splitscreen.setup.monitor": "Övervaka %s", + "horizon.splitscreen.setup.monitor_unknown": "en monitor", + "horizon.splitscreen.setup.window": "Fönster %s", + "horizon.splitscreen.setup.new_window": "Nytt fönster", + "horizon.splitscreen.setup.fill_monitor": "Fyll %s", + "horizon.splitscreen.setup.done": "Klart", + "horizon.splitscreen.setup.switch": "%s: %s", + "horizon.splitscreen.setup.on": "På", + "horizon.splitscreen.setup.off": "Av", + "horizon.splitscreen.setup.player": "Spelare %s", + "horizon.splitscreen.setup.revert": "Återgå", + "horizon.splitscreen.setup.apply": "Ansök", + "horizon.splitscreen.setup.warning.empty_main": "Ingen spelar i fönster 1: det gömmer sig", + "horizon.splitscreen.setup.warning.empty_close": "Ingen spelar i fönster %s: det stängs vid Apply", + "horizon.splitscreen.setup.warning.empty_new": "Ingen spelar i fönster %s: det öppnas inte", + "horizon.splitscreen.setup.warning.on_main": "Fönster %s fyller fönster 1:s skärm: dess spelare spelar i fönster 1", + "horizon.splitscreen.setup.warning.unplugged": "Fönster %ss bildskärm är inte ansluten: dess spelare spelar i fönster 1", + "horizon.splitscreen.setup.status.off": "Delad skärm är avstängd.", + "horizon.splitscreen.setup.status.enable_hint": "Slå på den och tryck sedan på en knapp på en annan handkontroll i en värld.", + "horizon.splitscreen.setup.status.join_hint": "Tryck på A för att gå med och välja en profil.", + "horizon.splitscreen.setup.status.idle": "Delad skärm inaktiv", + "horizon.splitscreen.setup.status.alone": "Inga andra lokala spelare.", + "horizon.splitscreen.setup.status.solo_controls": "Solokontroller och controller-feedback är oförändrade.", + "horizon.splitscreen.setup.window_empty": "Fönster %s: tomt", + "horizon.splitscreen.setup.note.select": "Klicka på en spelare eller dra den till ett fönster eller en bildskärm.", + "horizon.splitscreen.setup.note.apply": "Ansök om att spela på detta sätt, Återställ för att ångra.", + "horizon.splitscreen.setup.note.place": "Var ska %s spela?", + "horizon.splitscreen.setup.this_player": "denna spelare", + "horizon.splitscreen.setup.switch_disabled": "Delad skärm stängs av när de andra har lämnat (deras pausmeny).", + "horizon.splitscreen.setup.window_place": "Fönster %s (%s av %s)", + "horizon.splitscreen.setup.names": "Namn", + "horizon.splitscreen.setup.identify": "Identifiera", + "horizon.splitscreen.setup.layout.two": "2 delar: %s", + "horizon.splitscreen.setup.layout.three": "3 delar: %s", + "horizon.splitscreen.setup.layout.two.0": "Auto", + "horizon.splitscreen.setup.layout.two.1": "Sida vid sida", + "horizon.splitscreen.setup.layout.two.2": "Topp och botten", + "horizon.splitscreen.setup.layout.three.0": "En bred på toppen", + "horizon.splitscreen.setup.layout.three.1": "En hög till vänster", + "horizon.splitscreen.setup.layout.three.2": "Sida vid sida", + "horizon.splitscreen.setup.help.player": "Klicka eller dra %s för att flytta dem.", + "horizon.splitscreen.setup.help.layout_auto": "%s (sida vid sida när fönstret är brett). Tryck för att ändra.", + "horizon.splitscreen.setup.help.layout": "%s. Tryck för att ändra.", + "horizon.splitscreen.setup.help.switch": "Delad skärm för den här datorn, på eller av.", + "horizon.splitscreen.setup.help.identify": "Varje spelares vy visar vilket fönster de befinner sig i.", + "horizon.splitscreen.setup.help.names": "Varje spelares namn i hörnet av deras vy.", + "horizon.splitscreen.setup.help.revert": "Ångra ändringar som inte har tillämpats ännu.", + "horizon.splitscreen.setup.help.apply": "Spela som kartan visar.", + "horizon.splitscreen.setup.help.unchanged": "Inget förändrats ännu.", + "horizon.splitscreen.setup.give_up_pad": "Ge upp Pad", + "horizon.splitscreen.prompt.controller_connected": "Styrenhet ansluten", + "horizon.splitscreen.prompt.controller_disconnected": "Styrenheten frånkopplad", + "horizon.splitscreen.prompt.controller_disconnected.hint": "Anslut den igen eller tryck på en knapp på en annan", + "horizon.splitscreen.prompt.join.one": "%s vill gå med", + "horizon.splitscreen.prompt.join.many": "%s kontroller vill gå med", + "horizon.splitscreen.prompt.join.yes": "Gå med", + "horizon.splitscreen.prompt.join.as_p1": "Spela som P1", + "horizon.splitscreen.prompt.join.no": "Nej", + "horizon.splitscreen.prompt.lost": "%s: styrenheten frånkopplad", + "horizon.splitscreen.prompt.lost.use_another": "Använd en annan", + "horizon.splitscreen.prompt.lost.leave": "Lämna", + "horizon.splitscreen.setup.help.give_up_pad": "Din handkontroll slutar köra dig och erbjuds att gå med (A).", + "horizon.splitscreen.setup.note.held_at": "%s till %s: A släpper den här, B lägger tillbaka den.", + "horizon.splitscreen.setup.note.held": "%s plockas upp: vänster/höger väljer var, A tappar, B lägger tillbaka den.", + "Hides models behind opaque blocks. Async checks off-thread; entities tick.": "Döljer modeller bakom ogenomskinliga block. Async kontrollerar off-thread; enheter bockar.", + "Block Entities": "Blockera enheter", + "Shulker Boxes": "Shulker lådor", + "Reuses settled boxes; lid movement stays animated.": "Återanvänder utfällda lådor; lockets rörelse förblir animerad.", + "Signs": "Tecken", + "Reuses sign text until text, light, or font changes.": "Återanvänder teckentext tills text, ljus eller teckensnitt ändras.", + "Decorated Pots": "Dekorerade krukor", + "Reuses still pots; break wobble and sherd changes redraw.": "Återanvänder fortfarande krukor; bryta wobble och skärbyten rita om.", + "Bells": "Klockor", + "Reuses still bells; ringing stays animated.": "Återanvänder stilla klockor; ringsignalen förblir animerad.", + "Chests": "kistor", + "Reuses closed chests; moving lids stay animated.": "Återanvänder stängda kistor; rörliga lock förblir animerade.", + "Banners": "Banderoller", + "Reuses poles; flags and pattern layers still update.": "Återanvänder stolpar; flaggor och mönsterlager uppdateras fortfarande.", + "Copper Golem Statues": "Koppar Golem statyer", + "Reuses statue geometry until its block state changes.": "Återanvänder statygeometri tills dess blocktillstånd ändras.", + "Leaf Culling": "Avverkning av löv", + "Every leaf face. Vanilla's fancy leaves.": "Varje löv ansikte. Vaniljs fina blad.", + "Distant Plant Dither": "Avlägsen Plant Dither", + "Keeps fine plants in high-res packs from fading far away.": "Håller fina växter i högupplösta förpackningar från att blekna långt borta.", + "Screenshot Quality": "Skärmbildskvalitet", + "F2 screenshots at this many times the game's resolution. Higher takes longer.": "F2-skärmdumpar med så här många gånger spelets upplösning. Högre tar längre tid.", + "Frame Generation": "Frame Generation", + "Shows a made-up frame between each two real ones: smoother, a little more lag.": "Visar en påhittad ram mellan vardera två riktiga: mjukare, lite mer fördröjning.", + "Shadow Cache": "Shadow Cache", + "Reuses the pack shadow map when sun, view and world match. Off by default.": "Återanvänder packskuggkartan när sol, utsikt och värld matchar. Av som standard.", + "Find BlueMap": "Hitta BlueMap", + "On servers, finds their BlueMap web map for far terrain. Next join.": "På servrar, hittar deras BlueMap webbkarta för långt terräng. Gå med nästa.", + "BlueMap Radius": "BlueMap Radie", + "How far around you BlueMap tiles are downloaded. Next join.": "Hur långt runt dig BlueMap-plattor laddas ner. Gå med nästa.", + "Synchronous": "Synkron", + "Asynchronous": "Asynkron", + "Solid": "Solid", + "Solid Aggressive": "Solid Aggressiv", + "Hollow": "Ihålig", + "Leaves fully inside a canopy draw solid: fewer see-through layers.": "Bladen helt inuti en kapell drar fast: färre genomskinliga lager.", + "Leaves with one open side draw solid too: faster, chunkier edges.": "Blad med en öppen sida drar också fast: snabbare, tjockare kanter.", + "Drops faces between leaves: faster, but gaps look through.": "Tappar ansikten mellan bladen: snabbare, men luckor ser igenom.", + "Hotbar: Previous Slot": "Hotbar: Tidigare spelautomat", + "Hotbar: Next Slot": "Hotbar: Nästa slot", + "horizon.agent.connected.one": "Ansluten: 1 agentanslutning", + "horizon.agent.connected.many": "Ansluten: %s agentanslutningar", + "horizon.agent.connected.one_ago": "Ansluten: 1 agentanslutning, senaste kommandot för %s s sedan", + "horizon.agent.connected.many_ago": "Ansluten: %s agentanslutningar, senaste kommandot för %s s sedan", + "horizon.agent.waiting": "Väntar på en agent.", + "horizon.agent.off": "Av: agenter kan inte nå det här spelet.", + "horizon.agent.session_opened": "Öppnades för denna session av programmet som startade spelet.", + "horizon.agent.socket": "Socket: %s (kopiera detaljerna för dess fullständiga sökväg)", + "horizon.agent.local_only": "Endast lokalt: agenter på den här datorn, aldrig nätverket.", + "%s nits": "%s nits", + "Auto (%s nits)": "Auto (%s nits)", + "%.2f nits": "%.2f nits", + "Hides models behind opaque blocks. Entities update. Off with custom packs.": "Döljer modeller bakom ogenomskinliga block. Entitetsuppdatering. Av med anpassade förpackningar.", + "horizon.extras.repro_keys": "Inspelningsgenvägar", + "horizon.extras.repro_keys.tooltip": "F3+R startar eller stoppar en repro-inspelning och F3+E skriver sitt paket. Av som standard: en inspelning kopierar världen.", + "horizon.agent.record_session": "Starta inspelningssession", + "horizon.agent.record_stop": "Stoppa inspelningssession", + "horizon.agent.export_repro": "Exportera Repro-paket", + "horizon.repro.started": "Inspelning startade; F3+R stoppar det och skriver paketet.", + "horizon.repro.stopped": "Inspelning stoppad: %s", + "horizon.repro.bundle": "Repro-paket: %s", + "horizon.repro.error": "Repro: %s", + "horizon.repro.no_recording": "Det finns ingen inspelning att exportera än.", + "horizon.repro.replay_started": "Omspelning startade: %s", + "horizon.pack.add": "+", + "horizon.pack.addInfo": "Lägg till ett resurspaket från Modrinth", + "horizon.pack.addWorking": "Frågar Modrinth...", + "horizon.pack.addNone": "Inga resurspaket hittades", + "horizon.pack.addTitle": "Lägg till ett resurspaket", + "horizon.pack.install": "Installera", + "horizon.pack.installing": "Installerar", + "horizon.pack.installed": "Installerad", + "horizon.pack.search": "Sök", + "horizon.pack.searchHint": "Sök i Modrinth...", + "horizon.pack.filters": "Filter", + "horizon.pack.filter.realistic": "Realistiskt", + "horizon.pack.filter.simplistic": "Förenklat", + "horizon.pack.filter.vanillaLike": "Vaniljliknande", + "horizon.pack.filter.x16": "16x", + "horizon.pack.filter.x32": "32x", + "horizon.pack.filter.x64": "64x", + "horizon.pack.addFailed": "Paketet kunde inte läggas till: %s", + "horizon.extras.header.cosmetics": "Kosmetika", + "horizon.extras.cosmetics_mine": "Min kosmetika", + "horizon.extras.cosmetics_mine.tooltip": "Dolt: alla Horizon-spelare ser dig utan din kosmetika, inklusive du. Samma switch som bärraketens garderob.", + "horizon.extras.cosmetics_others": "Andra spelares kosmetika", + "horizon.extras.cosmetics_others.tooltip": "Vad andra Horizon-spelare bär: allt, bara deras namnetikettstilar eller ingenting. Dolt, spelet frågar aldrig vad de har på sig.", + "horizon.extras.cosmetics_auras": "Andras auror och spår", + "horizon.extras.cosmetics_auras.tooltip": "Auror och spår som andra spelare bär. Av som standard.", + "horizon.extras.cosmetics.shown": "Visas", + "horizon.extras.cosmetics.hidden": "Dold", + "horizon.extras.cosmetics.name_tags": "Endast namnlappar" +} From 8236aa329f1c9ff742730bfcf072cad21bfd4cb1 Mon Sep 17 00:00:00 2001 From: dontstopgorkingit <268053046+dontstopgorkingit@users.noreply.github.com> Date: Tue, 3 Nov 2026 16:35:53 +0100 Subject: [PATCH 20/70] =?UTF-8?q?Add=20=CE=95=CE=BB=CE=BB=CE=B7=CE=BD?= =?UTF-8?q?=CE=B9=CE=BA=CE=AC=20(el=5Fgr)=20game=20translation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bundles Horizon's own Ελληνικά strings so el_gr players see translated menus and options instead of the English fallback. Co-Authored-By: DeepSeek V4.1 Flash Free --- crates/horizon-client-core/src/lang.rs | 3 + .../assets/horizon/lang/el_gr.json | 508 ++++++++++++++++++ 2 files changed, 511 insertions(+) create mode 100644 crates/horizon-client/assets/horizon/lang/el_gr.json diff --git a/crates/horizon-client-core/src/lang.rs b/crates/horizon-client-core/src/lang.rs index 9ad3c155b6..fd43821f42 100644 --- a/crates/horizon-client-core/src/lang.rs +++ b/crates/horizon-client-core/src/lang.rs @@ -100,6 +100,9 @@ impl ResourceSource for Bundled { "assets/horizon/lang/ur_pk.json" => { include_str!("../../horizon-client/assets/horizon/lang/ur_pk.json") } + "assets/horizon/lang/el_gr.json" => { + include_str!("../../horizon-client/assets/horizon/lang/el_gr.json") + } "assets/horizon/lang/de_de.json" | "assets/horizon/lang/de_at.json" => { include_str!("../../horizon-client/assets/horizon/lang/de_de.json") } diff --git a/crates/horizon-client/assets/horizon/lang/el_gr.json b/crates/horizon-client/assets/horizon/lang/el_gr.json new file mode 100644 index 0000000000..c60e874fc8 --- /dev/null +++ b/crates/horizon-client/assets/horizon/lang/el_gr.json @@ -0,0 +1,508 @@ +{ + "horizon.options.controller": "Ελεγκτής", + "horizon.options.vibration": "Δόνηση", + "horizon.options.adaptive_triggers": "Προσαρμοστικοί ενεργοποιητές", + "horizon.options.lightbar": "Lightbar", + "horizon.options.look_sensitivity": "Ευαισθησία εμφάνισης", + "horizon.options.invert_x": "Invert Look X", + "horizon.options.invert_y": "Invert Look Y", + "horizon.options.sneak_button": "Sneak Button", + "horizon.options.move_deadzone": "Μετακίνηση Deadzone", + "horizon.options.look_deadzone": "Δείτε το Deadzone", + "horizon.options.button_glyphs": "Γλυφικά κουμπιών", + "horizon.options.menu_navigation": "Πλοήγηση μενού", + "horizon.options.on_screen_keyboard": "Πληκτρολόγιο οθόνης", + "horizon.options.chat_delay": "Καθυστέρηση συνομιλίας", + "horizon.options.lightbar.health": "Υγεία", + "horizon.options.lightbar.dimension": "Διάσταση", + "horizon.options.glyphs.auto": "Αυτόματο", + "horizon.options.glyphs.xbox": "Xbox", + "horizon.options.glyphs.playstation": "PlayStation", + "horizon.options.glyphs.nintendo": "Nintendo", + "horizon.options.menu_focus": "Εστίαση", + "horizon.options.menu_pointer": "Δείκτης", + "horizon.options.keyboard.auto": "Αυτόματο", + "horizon.options.keyboard.horizon": "Horizon", + "horizon.options.keyboard.steam": "Steam", + "horizon.options.unavailable": "Αυτή η δυνατότητα δεν είναι ακόμη διαθέσιμη στο Horizon.", + "horizon.options.search": "Ρυθμίσεις αναζήτησης...", + "horizon.pages.mods": "Mods", + "horizon.pages.shader_packs": "Πακέτα Shader", + "horizon.pages.shader_options": "Επιλογές Shader", + "horizon.pages.controller": "Ρυθμίσεις ελεγκτή", + "horizon.pages.controller_binds": "Δεσμοί ελεγκτή", + "horizon.pages.extras": "Horizon Extras", + "horizon.pages.settings": "Ρυθμίσεις Horizon", + "horizon.pages.agent": "Πράκτορας AI", + "horizon.split.leave": "Φύγε", + "horizon.pages.split_settings": "Ρυθμίσεις Splitscreen", + "horizon.pages.split_profiles": "Ποιος παίζει;", + "horizon.pages.split_setup": "Ρύθμιση Splitscreen", + "horizon.pages.music": "Μουσική", + "horizon.pages.music.menu": "Μενού", + "horizon.pages.music.overworld": "Υπερκόσμος", + "horizon.pages.music.creative": "Δημιουργικό", + "horizon.pages.music.underwater": "Υποβρύχια", + "horizon.pages.music.end": "Το Τέλος", + "horizon.pages.music.boss": "Αφεντικό", + "horizon.pages.music.credits": "Πιστώσεις", + "horizon.pages.music.overworld_biomes": "Υπερκόσμια βιώματα", + "horizon.pages.music.nether_biomes": "Ούτε βιώματα", + "horizon.pages.music.end_biomes": "Τελικοί βιομοί", + "horizon.pages.music.other": "Άλλη μουσική", + "horizon.pages.music.empty": "Χωρίς μουσικά κομμάτια: οι ήχοι του παιχνιδιού δεν φορτώνονται.", + "horizon.pages.music.tooltip": "Τα ενσωματωμένα κομμάτια, ανά περίπτωση: παίξτε ένα τώρα ή απενεργοποιήστε οποιοδήποτε, ώστε το παιχνίδι να σταματήσει να το επιλέγει.", + "horizon.pages.settings.tooltip": "Οι ρυθμίσεις του Horizon: γραφικά, χειριστήρια, πρόσθετα και mods.", + "horizon.pages.graphics.tooltip": "Γραφικά, απλά: κάθε ρύθμιση λέει τι κοστίζει.", + "horizon.pages.graphics_advanced.tooltip": "Κάθε ρύθμιση γραφικών, συμπεριλαμβανομένου του Horizon, με το κόστος του καθενός.", + "horizon.pages.controller.tooltip": "Χειριστήρια: τα κουμπιά, οι μοχλοί, οι κραδασμοί και η πλοήγηση στο μενού τους.", + "horizon.pages.extras.tooltip": "Προαιρετικές προσθήκες, όλες απενεργοποιημένες από προεπιλογή: το παιχνίδι παραμένει βανίλια μέχρι να το ενεργοποιήσετε.", + "horizon.pages.agent.tooltip": "Αφήστε τον δικό σας πράκτορα AI να παίξει: horizon-ctl και MCP πελάτες σε αυτόν τον υπολογιστή.", + "horizon.pages.split_profiles.tooltip": "Ποιος παίζει: ένα προφίλ που διατηρείται σε αυτόν τον φάκελο παιχνιδιού.", + "horizon.pages.split_setup.tooltip": "Τα παράθυρα και οι οθόνες και ποιος παίζει πού.", + "horizon.pages.shader_packs.tooltip": "Πακέτα Shader από το φάκελο shaderpacks: Τα δικά του Horizon και αυτά σε μορφή shaders/. Τρέχει ένας κάθε φορά.", + "horizon.pages.mods.tooltip": "Mods που δημιουργήθηκαν για το Horizon, από το φάκελο horizon-mods. Κάθε ένα τρέχει σε ένα sandbox και παραμένει απενεργοποιημένο μέχρι να το ενεργοποιήσετε.", + "horizon.pages.open.graphics": "Γραφικά...", + "horizon.pages.open.graphics_advanced": "Προηγμένα γραφικά...", + "horizon.pages.open.shader_packs": "Πακέτα Shader...", + "horizon.pages.open.controller": "Ρυθμίσεις ελεγκτή...", + "horizon.pages.open.split_setup": "Διαίρεση οθόνης...", + "horizon.pages.open.extras": "Έξτρα...", + "horizon.pages.open.mods": "Mods...", + "horizon.pages.open.agent": "Πράκτορας AI...", + "horizon.pages.open.horizon_graphics": "Horizon Graphics...", + "horizon.pages.open.controller_binds": "Ο ελεγκτής δεσμεύει...", + "horizon.pages.open.horizon_settings": "Ρυθμίσεις Horizon...", + "horizon.pages.open.music": "Μουσική...", + "horizon.mods.empty": "Χωρίς mods: τοποθετήστε τα αρχεία .hmod στο φάκελο horizon-mods", + "horizon.mods.stopped": " (Σταμάτησε)", + "horizon.mods.not_built": " (Δεν έχει κατασκευαστεί)", + "horizon.mods.dev": " (Dev)", + "horizon.mods.settings": "Ρυθμίσεις", + "horizon.mods.in_world": " (άσε τον κόσμο να αλλάξει)", + "horizon.mods.open_folder": "Ανοίξτε το φάκελο Mod", + "horizon.shader_packs.empty": "Χωρίς πακέτα shader: τοποθετήστε τα στο φάκελο shaderpacks", + "horizon.shader_packs.kind_horizon": " (Ορίζοντας)", + "horizon.shader_options.open": "Επιλογές Shader...", + "horizon.shader_options.profile": "Προφίλ", + "horizon.shader_options.loading": "Διαβάζοντας τις επιλογές του πακέτου shader...", + "horizon.agent.copy_details": "Αντιγραφή στοιχείων σύνδεσης", + "horizon.multiplayer.join": "Εγγραφείτε", + "horizon.multiplayer.cancel_reconnecting": "Ακύρωση επανασύνδεσης", + "horizon.multiplayer.join_friend": "Γίνετε μέλος ενός φίλου", + "horizon.multiplayer.invite_code": "Κωδικός πρόσκλησης", + "horizon.multiplayer.relay": "Ρελέ (προαιρετικό)", + "Preset": "Προκαθορισμένη", + "LOD Distance": "Απόσταση LOD", + "Far Detail": "Μακρινή λεπτομέρεια", + "Cave Culling": "Cave Culling", + "Entity Culling": "Σφαγή οντοτήτων", + "Chunk Updates": "Ενημερώσεις κομματιών", + "Upload Budget": "Μεταφόρτωση προϋπολογισμού", + "Sky": "Ουρανός", + "Fog": "Ομίχλη", + "Weather": "Καιρός", + "Animated Textures": "Κινούμενες υφές", + "Present Mode": "Παρούσα λειτουργία", + "Frame Pacing": "Βηματοδότηση καρέ", + "Worker Threads": "Εργατικά νήματα", + "Resolution Scale": "Κλίμακα Ανάλυσης", + "Anti-aliasing": "Anti-aliasing", + "Upscaling": "Αναβάθμιση", + "Paper White": "Λευκό χαρτί", + "Peak Brightness": "Μέγιστη φωτεινότητα", + "Black Level": "Μαύρο Επίπεδο", + "UI Brightness": "Φωτεινότητα διεπαφής χρήστη", + "Battery Mode": "Λειτουργία μπαταρίας", + "Graphics API": "API γραφικών", + "Translucent Batching": "Ημιδιαφανές παρτίδες", + "Performance Overlay": "Επικάλυψη απόδοσης", + "Full Detail Distance": "Απόσταση πλήρους λεπτομέρειας", + "On": "Ενεργό", + "Off": "Απενεργοποίηση", + "Unlimited": "Απεριόριστο", + "Auto": "Αυτόματο", + "Custom": "Προσαρμοσμένο", + "Performance": "Απόδοση", + "Balanced": "Ισορροπημένο", + "Quality": "Ποιότητα", + "Ultra": "Ultra", + "Ultra Performance": "Ultra Performance", + "Native": "Εγγενής", + "Full": "Γεμάτη", + "Reduced": "Μειώθηκε", + "Efficient": "Αποτελεσματική", + "Precise": "Ακριβές", + "Auto (VSync)": "Αυτόματο (VSync)", + "FIFO": "FIFO", + "Mailbox": "Γραμματοκιβώτιο", + "Immediate": "Άμεση", + "Vulkan": "Vulkan", + "DirectX 12": "DirectX 12", + "OpenGL": "OpenGL", + "FPS and Graph": "FPS και Γράφημα", + "FPS": "FPS", + "TAA": "ΤΑΑ", + "FXAA": "FXAA", + "No cost": "Χωρίς κόστος", + "Low cost": "Χαμηλό κόστος", + "Medium cost": "Μεσαίου κόστους", + "High cost": "Υψηλό κόστος", + "Saves time": "Εξοικονομεί χρόνο", + "HDR": "HDR", + "Graphics": "Γραφικά", + "Done": "Έγινε", + "This feature is not yet available in Horizon.": "Αυτή η δυνατότητα δεν είναι ακόμη διαθέσιμη στο Horizon.", + "Your display or system doesn't offer HDR output.": "Η οθόνη ή το σύστημά σας δεν προσφέρει έξοδο HDR.", + "Turn HDR on to use it.": "Ενεργοποιήστε το HDR για να το χρησιμοποιήσετε.", + "Your GPU or graphics API doesn't support it.": "Η GPU ή το API γραφικών σας δεν το υποστηρίζουν.", + "%s chunks": "%s κομμάτια", + "%s per frame": "%s ανά πλαίσιο", + "%s MiB/frame": "%s MiB/πλαίσιο", + "%s KiB/frame": "%s KiB/πλαίσιο", + "Auto (%s)": "Αυτόματο (%s)", + "Full-detail terrain range. LOD Distance can extend local worlds farther.": "Εύρος εδάφους με πλήρη λεπτομέρεια. Η απόσταση LOD μπορεί να επεκτείνει τους τοπικούς κόσμους μακρύτερα.", + "Coarse distant terrain in local worlds. Integrated GPUs stop at 128 chunks.": "Χοντρό μακρινό έδαφος σε τοπικούς κόσμους. Οι ενσωματωμένες GPU σταματούν στα 128 κομμάτια.", + "Reduced draws far terrain coarser: faster on this integrated GPU.": "Μειωμένες έλξεις πολύ πιο χοντρό έδαφος: πιο γρήγορα σε αυτήν την ενσωματωμένη GPU.", + "Reduced draws far terrain coarser, for GPUs it slows down.": "Οι μειωμένες έλξεις πολύ πιο τραχύ εδάφους, για τις GPU επιβραδύνουν.", + "Field of view. Wider shows more terrain at once.": "Οπτικό πεδίο. Το ευρύτερο δείχνει περισσότερο έδαφος ταυτόχρονα.", + "Caps frames per second; a cap saves power and heat.": "Καπάκια καρέ ανά δευτερόλεπτο. ένα καπάκι εξοικονομεί ενέργεια και θερμότητα.", + "Waits for the display's refresh: no tearing, a little latency.": "Περιμένει για την ανανέωση της οθόνης: χωρίς σκίσιμο, λίγο λανθάνουσα κατάσταση.", + "Size of menus and the HUD.": "Το μέγεθος των μενού και το HUD.", + "Sets the options below together. Changing one makes it Custom.": "Ρυθμίζει τις παρακάτω επιλογές μαζί. Η αλλαγή ενός το καθιστά Προσαρμοσμένο.", + "Lava, fire and sunlight shine brighter than white. Needs an HDR display.": "Η λάβα, η φωτιά και το φως του ήλιου λάμπουν πιο φωτεινά από το λευκό. Χρειάζεται οθόνη HDR.", + "Your display's darkest black. 0 for OLED; LCDs glow a little.": "Η οθόνη σας είναι το πιο σκούρο μαύρο. 0 για OLED? Οι LCD λάμπουν λίγο.", + "How bright highlights get. Auto: the peak your system reports.": "Πόσο φωτεινά σημεία αποκτούν. Auto: η κορύφωση που αναφέρει το σύστημά σας.", + "How bright white paper and menus look. Auto: your desktop's white.": "Πόσο φωτεινό φαίνεται το λευκό χαρτί και τα μενού. Αυτόματο: η επιφάνεια εργασίας σας είναι λευκή.", + "How bright the HUD and menus are, against paper white.": "Πόσο φωτεινά είναι τα HUD και τα μενού, σε σχέση με το λευκό χαρτί.", + "How far mobs, crops and machines keep working. CPU time.": "Πόσο μακριά συνεχίζουν να λειτουργούν όχλοι, καλλιέργειες και μηχανές. Χρόνος CPU.", + "How far away mobs and items are drawn, as a share of normal.": "Πόσο μακριά κληρώνονται όχλοι και αντικείμενα, ως ποσοστό του κανονικού.", + "Skips terrain hidden behind closed sections. Off costs a lot.": "Παρακάμπτει το έδαφος που κρύβεται πίσω από κλειστά τμήματα. Το off κοστίζει πολύ.", + "Hides entities behind opaque blocks.": "Κρύβει οντότητες πίσω από αδιαφανή μπλοκ.", + "No entity occlusion culling.": "Δεν υπάρχει σφαγή απόφραξης οντοτήτων.", + "CPU occlusion test runs this frame.": "Η δοκιμή απόφραξης CPU εκτελεί αυτό το πλαίσιο.", + "Occlusion checks run on a worker thread.": "Οι έλεγχοι απόφραξης εκτελούνται σε ένα νήμα εργασίας.", + "Meshed sections uploaded per frame. Lower is smoother while loading.": "Διχτυωτές τομές μεταφορτώθηκαν ανά πλαίσιο. Το Lower είναι πιο ομαλό κατά τη φόρτωση.", + "Soft shadows in corners. Costs chunk building time only.": "Απαλές σκιές στις γωνίες. Κόστος μόνο τμηματικός χρόνος κατασκευής.", + "Smaller copies of block textures for distant terrain: less shimmer.": "Μικρότερα αντίγραφα υφής μπλοκ για μακρινό έδαφος: λιγότερη λάμψη.", + "Blends grass and water colours across biomes when building chunks.": "Αναμειγνύει γρασίδι και χρώματα νερού στα biomes κατά την κατασκευή κομματιών.", + "Cloud layer: off, flat (fast) or 3D (fancy).": "Στρώμα σύννεφου: απενεργοποιημένο, επίπεδο (γρήγορο) ή 3D (φανταχτερό).", + "How far clouds reach, in chunks.": "Πόσο μακριά φτάνουν τα σύννεφα, σε κομμάτια.", + "Draws the sky, sun, moon and stars.": "Ζωγραφίζει τον ουρανό, τον ήλιο, το φεγγάρι και τα αστέρια.", + "Distance fog. Off shows the edge of the loaded world.": "Ομίχλη από απόσταση. Το Off δείχνει την άκρη του φορτωμένου κόσμου.", + "Draws rain and snow.": "Ζωγραφίζει βροχή και χιόνι.", + "How far rain and snow fall around you.": "Πόσο μακριά βρέχει και χιόνι πέφτει γύρω σας.", + "How many particles effects spawn.": "Πόσα αποτελέσματα σωματιδίων γεννιούνται.", + "Round shadows under mobs and items.": "Στρογγυλές σκιές κάτω από όχλους και αντικείμενα.", + "Leaves with see-through gaps. Off draws them solid.": "Φύλλα με διαφανή κενά. Off τους τραβάει στερεά.", + "Sorts water and glass more exactly behind each other.": "Ταξινομεί το νερό και το ποτήρι με μεγαλύτερη ακρίβεια το ένα πίσω από το άλλο.", + "Which chunk rebuilds wait for the frame: none, nearby or yours.": "Ποιο κομμάτι ανακατασκευάζεται περιμένει το πλαίσιο: κανένα, κοντά ή δικό σας.", + "Animates water, lava, fire and other moving textures.": "Ζωντανεύει νερό, λάβα, φωτιά και άλλες κινούμενες υφές.", + "World pixels per screen pixel. Below 100% is faster on the GPU.": "Παγκόσμια εικονοστοιχεία ανά εικονοστοιχείο οθόνης. Κάτω από το 100% είναι πιο γρήγορο στη GPU.", + "Smooths jagged edges. FXAA: softer. TAA: smoothest, moving things may trail.": "Λειαίνει τις οδοντωτές άκρες. FXAA: πιο μαλακό. ΤΑΑ: τα πιο ομαλά, κινούμενα πράγματα μπορεί να ακολουθούν.", + "Renders the world smaller and rebuilds it with TAA. Faster, softer.": "Καθιστά τον κόσμο μικρότερο και τον ξαναχτίζει με ΤΑΑ. Πιο γρήγορα, πιο μαλακά.", + "HDR output on an HDR display: lava, fire and sunlight shine brighter.": "Έξοδος HDR σε οθόνη HDR: η λάβα, η φωτιά και το φως του ήλιου λάμπουν πιο έντονα.", + "How frames reach the screen while VSync is off.": "Πώς τα καρέ φτάνουν στην οθόνη ενώ το VSync είναι απενεργοποιημένο.", + "Efficient sleeps until the next frame; Precise spins, like vanilla.": "Αποτελεσματικοί ύπνοι μέχρι το επόμενο καρέ. Ακριβές περιστροφές, όπως η βανίλια.", + "Fills the screen (borderless).": "Γεμίζει την οθόνη (χωρίς περιθώρια).", + "Brightens dark places.": "Φωτίζει τα σκοτεινά μέρη.", + "Lowers the frame rate when minimised, or idle too.": "Μειώνει τον ρυθμό καρέ όταν είναι ελαχιστοποιημένος ή και σε αδράνεια.", + "Sways the view while walking.": "Κουνάει τη θέα ενώ περπατάτε.", + "Fades newly loaded chunks in.": "Ξεθωριάζει τα πρόσφατα φορτωμένα κομμάτια.", + "Darkens the screen's edges.": "Σκουραίνει τα άκρα της οθόνης.", + "Shows when the world saves.": "Δείχνει όταν ο κόσμος σώζει.", + "Shows attack cooldown.": "Εμφανίζει ψύξη επίθεσης.", + "60 FPS cap (30 in menus or unfocused), half the workers: less power.": "Καπάκι 60 FPS (30 σε μενού ή χωρίς εστίαση), οι μισοί εργαζόμενοι: λιγότερη ισχύς.", + "Threads that generate, light and mesh chunks. Next start.": "Κλωστές που δημιουργούν, φωτίζουν και πλένουν κομμάτια. Επόμενη αρχή.", + "Vulkan, then DirectX 12 (Windows) or OpenGL (Linux) where it fails. Next start.": "Vulkan και μετά DirectX 12 (Windows) ή OpenGL (Linux) όπου αποτυγχάνει. Επόμενη αρχή.", + "Water and glass in one buffer: fewer draw calls, a bit more VRAM. Next start.": "Νερό και ποτήρι σε ένα buffer: λιγότερες κλήσεις κλήσεων, λίγο περισσότερη VRAM. Επόμενη αρχή.", + "Mesh data sent to the GPU per frame. Lower is smoother while loading.": "Τα δεδομένα πλέγματος αποστέλλονται στη GPU ανά πλαίσιο. Το Lower είναι πιο ομαλό κατά τη φόρτωση.", + "Frame rate and frame times over the game, with a graph.": "Ρυθμός καρέ και χρόνοι καρέ κατά τη διάρκεια του παιχνιδιού, με ένα γράφημα.", + "horizon.multiplayer.finding_friend": "Βρες τον κόσμο του φίλου σου...", + "horizon.multiplayer.not_signed_in": "Αυτός ο διακομιστής είναι σε λειτουργία online. Συνδεθείτε με τον λογαριασμό σας Microsoft στο πρόγραμμα εκκίνησης Horizon για να εγγραφείτε.", + "horizon.multiplayer.invalid_address": "Μη έγκυρη διεύθυνση διακομιστή: %s", + "horizon.multiplayer.connected_friend_direct": "Συνδέθηκε απευθείας με τον φίλο σας...", + "horizon.multiplayer.connected_friend_relay": "Συνδέθηκε με τον φίλο σας μέσω του ρελέ...", + "General": "Στρατηγός", + "Advanced": "Προχωρημένο", + "Undo": "Αναίρεση", + "Search options": "Επιλογές αναζήτησης", + "Shortcut": "Συντόμευση", + "Distance": "Απόσταση", + "Display": "Εμφάνιση", + "Interface": "Διασύνδεση", + "Sky and weather": "Ουρανός και καιρός", + "Lighting and entities": "Φωτισμός και οντότητες", + "Textures": "Υφές", + "Image": "Εικόνα", + "Chunk loading": "Φόρτωση κομματιού", + "Culling": "Σφαγή", + "Power": "Δύναμη", + "Frames": "Κορνίζες", + "Overlay": "Επικάλυψη", + "Output": "Έξοδος", + "Brightness": "Φωτεινότητα", + "How far you see, the window and the HUD.": "Πόσο μακριά βλέπετε, το παράθυρο και το HUD.", + "The sky and weather, lighting, textures and the image.": "Ο ουρανός και ο καιρός, ο φωτισμός, οι υφές και η εικόνα.", + "Chunk loading, culling and power use.": "Φόρτωση κομματιών, σφαγή και χρήση ενέργειας.", + "How frames reach the screen, and the performance overlay.": "Πώς φτάνουν τα καρέ στην οθόνη και η επικάλυψη απόδοσης.", + "Brighter-than-white output on an HDR display.": "Έξοδος φωτεινότερη από το λευκό σε οθόνη HDR.", + "Results for \"%s\"": "Αποτελέσματα για \"%s\"", + "No settings match.": "Δεν ταιριάζουν ρυθμίσεις.", + "horizon.title.not_affiliated": "Δεν συνδέεται με τη Mojang ή τη Microsoft", + "horizon.extras.header.lighting": "Φωτισμός", + "horizon.extras.header.third_person": "Τρίτο πρόσωπο", + "horizon.extras.header.particles": "Σωματίδια", + "horizon.extras.header.inventory": "Απογραφή", + "horizon.extras.header.chat": "Συνομιλία", + "horizon.extras.header.multiplayer": "Multiplayer", + "horizon.extras.header.sound": "Ήχος", + "horizon.extras.header.menus": "Μενού", + "horizon.extras.fullbright": "Fullbright", + "horizon.extras.dynamic_lights": "Δυναμικά φώτα", + "horizon.extras.own_name_tag": "Δική ετικέτα ονόματος", + "horizon.extras.hide_block_particles": "Απόκρυψη σωματιδίων θραύσης μπλοκ", + "horizon.extras.auto_reconnect": "Αυτόματη επανασύνδεση", + "horizon.extras.ui_sound_reserve": "Διατηρήστε τα κανάλια για ήχους διεπαφής χρήστη", + "horizon.extras.music_page": "Σελίδα μουσικής", + "horizon.extras.mouse_tweaks": "Στοιχεία ελέγχου Mouse Tweaks", + "horizon.extras.mouse_tweaks_wheel": "Ο τροχός κύλισης μετακινεί στοιχεία", + "horizon.extras.sort": "Κουμπιά ταξινόμησης", + "horizon.extras.sort_key": "Πλήκτρο ταξινόμησης", + "horizon.extras.no_ai": "Όχι AI", + "horizon.extras.agent_control": "Έλεγχος πράκτορα", + "horizon.extras.discord_presence": "Discord Πλούσια Παρουσία", + "horizon.extras.splitscreen": "Splitscreen", + "horizon.extras.chat_animation": "Ομαλή συνομιλία", + "horizon.extras.chat_indicator": "Ένδειξη μηνύματος", + "horizon.extras.wheel_cycles_settings": "Ο τροχός κύλισης αλλάζει τις ρυθμίσεις", + "horizon.extras.pack_browser": "Πρόγραμμα περιήγησης πακέτου πόρων", + "horizon.extras.fullbright.tooltip": "Εμφάνιση μπλοκ και οντοτήτων σε πλήρη φωτισμό, ακόμη και σε σκοτεινές περιοχές.", + "horizon.extras.dynamic_lights.tooltip": "Πυρσοί και άλλες πηγές φωτός που συγκρατούνται, πέφτουν ή καίγονται ανάβουν τα μπλοκ γύρω τους.", + "horizon.extras.own_name_tag.tooltip": "Δείχνει το όνομά σας πάνω από το κεφάλι σας σε τρίτο πρόσωπο, όπως το βλέπουν άλλοι παίκτες. Κρύβεται όταν ο διακομιστής κρύβει τα ονόματα της ομάδας σας ή όταν είστε αόρατοι.", + "horizon.extras.hide_block_particles.tooltip": "Κρύβει τα σωματίδια των συντριμμιών που σκάνε από ένα σπασμένο μπλοκ και θρυμματίζονται από αυτό που εξορύσσετε. Άλλα σωματίδια παραμένουν.", + "horizon.extras.auto_reconnect.tooltip": "Επανέρχεται σε έναν διακομιστή μετά από απώλεια σύνδεσης ή επανεκκίνηση, ποτέ μετά από κλωτσιά ή αποκλεισμό.", + "horizon.extras.ui_sound_reserve.tooltip": "Οι ήχοι στον κόσμο αφήνουν ελεύθερα 16 από τα 247 κανάλια ήχου, έτσι μια πλημμύρα από αυτά (μια μεγάλη έκρηξη) δεν μπορεί να σιγήσει τα κλικ του μενού.", + "horizon.extras.music_page.tooltip": "Το Music & Sounds αποκτά μια σελίδα Μουσική...: παίξτε οποιοδήποτε ενσωματωμένο κομμάτι τώρα ή απενεργοποιήστε ένα, ώστε το παιχνίδι να σταματήσει να το επιλέγει. Τίποτα δεν αλλάζει μέχρι να απενεργοποιήσετε ένα κομμάτι.", + "horizon.extras.mouse_tweaks.tooltip": "Δεξιά σύρετε ένα ανά υποδοχή, σύρετε αριστερά συγκεντρώνετε το στοιχείο που κρατάτε, Shift + σύρετε αριστερά μετακινείτε κάθε υποδοχή.", + "horizon.extras.mouse_tweaks_wheel.tooltip": "Το Down στέλνει ένα στοιχείο της υποδοχής στην άλλη πλευρά, το επάνω φέρνει ένα πίσω.", + "horizon.extras.sort.tooltip": "Ταξινομεί το απόθεμα, τα κιβώτια, τα βαρέλια, τα κιβώτια τελικής επεξεργασίας και τα κουτιά shulker κατά σειρά δημιουργικών καρτελών, συγχωνεύοντας στοίβες.", + "horizon.extras.sort_key.tooltip": "Ταξινομεί το τμήμα κάτω από τον κέρσορα. Κάντε κλικ και μετά πατήστε ένα πλήκτρο. Η απόδραση το λύνει.", + "horizon.extras.no_ai.tooltip": "Αποκρύπτει και απενεργοποιεί κάθε δυνατότητα AI: έλεγχος πράκτορα, horizon-ctl και διακομιστές MCP. Ο διακόπτης του εκτοξευτή επίσης.", + "horizon.extras.agent_control.tooltip": "Ο δικός σας πράκτορας AI μπορεί να παίξει αυτό το παιχνίδι μέσω του horizon-ctl ή ενός προγράμματος-πελάτη MCP, μόνο σε αυτόν τον υπολογιστή.", + "horizon.extras.discord_presence.tooltip": "Εμφανίζει το Playing Horizon στο προφίλ σας Discord ενώ εκτελείται το Discord: μενού, για έναν παίκτη ή για πολλούς παίκτες, τη διάσταση και την ώρα αναπαραγωγής. Ποτέ το όνομα ενός κόσμου ή η διεύθυνση ενός διακομιστή.", + "Calibrate...": "Βαθμονόμηση...", + "Calibrate Anyway...": "Βαθμονόμηση πάντως...", + "Use Automatic Setup": "Χρησιμοποιήστε την Αυτόματη Ρύθμιση", + "Shortcut: %s": "Συντόμευση: %s", + "Next": "Επόμενο", + "HDR Calibration %s/%s: %s": "Βαθμονόμηση HDR %s/%s: %s", + "Sets the three below full screen, one test picture at a time.": "Ορίζει τις τρεις παρακάτω πλήρη οθόνη, μία δοκιμαστική εικόνα τη φορά.", + "A key that opens this screen from the game. Not bound at first.": "Ένα κλειδί που ανοίγει αυτήν την οθόνη από το παιχνίδι. Δεν δεσμεύεται στην αρχή.", + "Your display didn't say how bright it gets: calibrate to set it up.": "Η οθόνη σας δεν έλεγε πόσο φωτεινή γίνεται: βαθμονομήστε για να τη ρυθμίσετε.", + "Already set up for your display. Only calibrate if HDR looks wrong.": "Έχει ήδη ρυθμιστεί για την οθόνη σας. Βαθμονόμηση μόνο εάν το HDR φαίνεται λάθος.", + "Puts Peak Brightness and Paper White back to your display's setup.": "Επαναφέρει το Peak Brightness και το Paper White στη ρύθμιση της οθόνης σας.", + "Set up for your display. Leave on Auto unless it looks wrong.": "Ρύθμιση για την οθόνη σας. Αφήστε το \"Αυτόματο\" εκτός εάν φαίνεται λάθος.", + "Lower it until the logo just disappears into the black.": "Χαμηλώστε το μέχρι να εξαφανιστεί το λογότυπο στο μαύρο.", + "Raise it until the logo just disappears into the bright square.": "Σηκώστε το μέχρι να εξαφανιστεί το λογότυπο στο φωτεινό τετράγωνο.", + "Make the card a white that's comfortable to look at for a long time, in the light you play in.": "Κάντε την κάρτα λευκή που είναι άνετη για να την κοιτάτε για πολλή ώρα, στο φως που παίζετε.", + "horizon.splitscreen.profiles.forget": "Ξεχάστε", + "horizon.splitscreen.profiles.create": "Δημιουργία", + "horizon.splitscreen.profiles.you": " - εσύ", + "horizon.splitscreen.profiles.forget_named": "Ξεχάστε %s", + "horizon.splitscreen.profiles.previous": "Προηγούμενο", + "horizon.splitscreen.profiles.next": "Επόμενο", + "horizon.splitscreen.profiles.new_button": "Νέο Προφίλ...", + "horizon.splitscreen.profiles.forget_title": "Ξεχάστε το προφίλ;", + "horizon.splitscreen.profiles.forget_leaves": "Φεύγει από τη λίστα αυτής της περίπτωσης.", + "horizon.splitscreen.profiles.forget_kept": "Η παγκόσμια πρόοδος και οι ρυθμίσεις διατηρούνται.", + "horizon.splitscreen.profiles.new_title": "Νέο Προφίλ", + "horizon.splitscreen.profiles.name_hint": "Όνομα (3 έως 16 γράμματα, ψηφία, _)", + "horizon.splitscreen.profiles.switch_title": "Αλλαγή προφίλ", + "horizon.splitscreen.profiles.offline_note": "Τα προφίλ εκτός σύνδεσης ανήκουν σε αυτήν την περίπτωση", + "horizon.splitscreen.profiles.move": "Μετακινηθείτε όπου παίζετε", + "horizon.splitscreen.profiles.move_place": "Μετακινηθείτε όπου παίζετε: %s", + "horizon.friends.title": "Παίξτε με φίλους", + "horizon.friends.hint": "Οι φίλοι επικολλούν τον κώδικα μετά το κουμπί Φίλοι της οθόνης τίτλου, στην Άμεση σύνδεση ή στη σελίδα Αναπαραγωγή του προγράμματος εκκίνησης.", + "horizon.friends.copied": "Αντιγράφηκε", + "horizon.friends.copy_code": "Αντιγραφή Κωδικού", + "horizon.friends.stop_sharing": "Διακοπή κοινής χρήσης", + "horizon.friends.none_yet": "Δεν υπάρχουν φίλοι εδώ ακόμα.", + "horizon.friends.here_now": "Εδώ τώρα: %s", + "horizon.friends.share_intro": "Μοιραστείτε αυτόν τον κόσμο πίσω από έναν κωδικό πρόσκλησης: ανοίγει σε LAN και οι φίλοι στο Διαδίκτυο συμμετέχουν με τον κωδικό. Κανένας διακομιστής μας δεν εμπλέκεται.", + "horizon.friends.start_sharing": "Ξεκινήστε την κοινή χρήση", + "horizon.friends.troubleshooting": "Αντιμετώπιση προβλημάτων...", + "horizon.friends.stopped": "Σταμάτησε η κοινή χρήση του κωδικού πρόσκλησης.", + "horizon.friends.short_code_changed": "Κάποιος συνέχισε να δοκιμάζει έναν λάθος σύντομο κωδικό, οπότε άλλαξε.", + "horizon.friends.wrong_code": "Κάποιος δοκίμασε λάθος κωδικό.", + "horizon.friends.code_ready": "Ο κωδικός πρόσκλησής σας είναι έτοιμος: Μενού παιχνιδιού, Παίξτε με φίλους. Αντιγράψτε το και στείλτε το στους φίλους σας.", + "horizon.friends.share_failed": "Δεν μπορούσα να μοιραστώ τον κόσμο: %s", + "horizon.friends.finding_route": "Βρείτε πώς μπορούν να σας φτάσουν οι φίλοι…", + "horizon.osk.shift": "Μετατόπιση", + "horizon.osk.space": "Διάστημα", + "horizon.osk.delete": "Διαγραφή", + "horizon.osk.type": "Τύπος", + "horizon.osk.symbols": "Σύμβολα", + "horizon.osk.close": "Κλείσιμο", + "horizon.extras.chat_animation.tooltip": "Μια νέα γραμμή συνομιλίας ολισθαίνει από τα αριστερά ενώ σβήνει, αντί να εμφανίζεται ολόκληρη.", + "horizon.extras.chat_indicator.tooltip": "Η έγχρωμη γραμμή στα αριστερά μιας γραμμής συνομιλίας.", + "horizon.extras.wheel_cycles_settings.tooltip": "Ο τροχός κύλισης πάνω από ένα κουμπί στις ρυθμίσεις αλλάζει την τιμή του, όπως στη βανίλια. Ανενεργό, ο τροχός κάνει κύλιση μόνο στη λίστα.", + "horizon.extras.pack_browser.tooltip": "Το Select Resource Packs παίρνει ένα κουμπί Προσθήκη που αναζητά το Modrinth και εγκαθιστά ένα πακέτο στο φάκελο των πακέτων σας. Εκτός, το παιχνίδι δεν έρχεται ποτέ σε επαφή με τη Modrinth.", + "horizon.extras.splitscreen.tooltip": "Σε έναν κόσμο, ένας άλλος ελεγκτής μπορεί να εγγραφεί ως νέος παίκτης: πατήστε A όταν σας ζητήσει, μετά επιλέξτε ένα προφίλ και πού θα παίξετε.", + "horizon.splitscreen.setup.monitor": "Οθόνη %s", + "horizon.splitscreen.setup.monitor_unknown": "μια οθόνη", + "horizon.splitscreen.setup.window": "Παράθυρο %s", + "horizon.splitscreen.setup.new_window": "Νέο παράθυρο", + "horizon.splitscreen.setup.fill_monitor": "Γέμισμα %s", + "horizon.splitscreen.setup.done": "Έγινε", + "horizon.splitscreen.setup.switch": "%s: %s", + "horizon.splitscreen.setup.on": "Ενεργό", + "horizon.splitscreen.setup.off": "Απενεργοποίηση", + "horizon.splitscreen.setup.player": "Παίκτης %s", + "horizon.splitscreen.setup.revert": "Επαναφορά", + "horizon.splitscreen.setup.apply": "Εφαρμόστε", + "horizon.splitscreen.setup.warning.empty_main": "Κανείς δεν παίζει στο Παράθυρο 1: κρύβεται", + "horizon.splitscreen.setup.warning.empty_close": "Κανείς δεν παίζει στο Παράθυρο %s: κλείνει στην Εφαρμογή", + "horizon.splitscreen.setup.warning.empty_new": "Κανείς δεν παίζει στο Παράθυρο %s: δεν ανοίγει", + "horizon.splitscreen.setup.warning.on_main": "Το παράθυρο %s γεμίζει την οθόνη του παραθύρου 1: οι παίκτες του παίζουν στο Παράθυρο 1", + "horizon.splitscreen.setup.warning.unplugged": "Η οθόνη του παραθύρου %s δεν είναι συνδεδεμένη: οι παίκτες του παίζουν στο Παράθυρο 1", + "horizon.splitscreen.setup.status.off": "Η διαχωριστική οθόνη είναι απενεργοποιημένη.", + "horizon.splitscreen.setup.status.enable_hint": "Ενεργοποιήστε το και, στη συνέχεια, πατήστε ένα κουμπί σε άλλο χειριστήριο σε έναν κόσμο.", + "horizon.splitscreen.setup.status.join_hint": "Πατήστε A για να εγγραφείτε και να επιλέξετε ένα προφίλ.", + "horizon.splitscreen.setup.status.idle": "Splitscreen σε αδράνεια", + "horizon.splitscreen.setup.status.alone": "Δεν υπάρχουν άλλοι τοπικοί παίκτες.", + "horizon.splitscreen.setup.status.solo_controls": "Τα σόλο χειριστήρια και τα σχόλια του ελεγκτή παραμένουν αμετάβλητα.", + "horizon.splitscreen.setup.window_empty": "Παράθυρο %s: κενό", + "horizon.splitscreen.setup.note.select": "Κάντε κλικ σε ένα πρόγραμμα αναπαραγωγής ή σύρετέ το σε ένα παράθυρο ή μια οθόνη.", + "horizon.splitscreen.setup.note.apply": "Εφαρμογή για αναπαραγωγή με αυτόν τον τρόπο, Επαναφορά για αναίρεση.", + "horizon.splitscreen.setup.note.place": "Πού πρέπει να παίξει ο %s;", + "horizon.splitscreen.setup.this_player": "αυτός ο παίκτης", + "horizon.splitscreen.setup.switch_disabled": "Το Splitscreen απενεργοποιείται μόλις αποχωρήσουν οι υπόλοιποι (μενού παύσης).", + "horizon.splitscreen.setup.window_place": "Παράθυρο %s (%s από %s)", + "horizon.splitscreen.setup.names": "Ονόματα", + "horizon.splitscreen.setup.identify": "Προσδιορίστε", + "horizon.splitscreen.setup.layout.two": "2 κοινή χρήση: %s", + "horizon.splitscreen.setup.layout.three": "3 κοινή χρήση: %s", + "horizon.splitscreen.setup.layout.two.0": "Αυτόματο", + "horizon.splitscreen.setup.layout.two.1": "Δίπλα δίπλα", + "horizon.splitscreen.setup.layout.two.2": "Πάνω και κάτω", + "horizon.splitscreen.setup.layout.three.0": "Ένα φαρδύ από πάνω", + "horizon.splitscreen.setup.layout.three.1": "Ένας ψηλός στα αριστερά", + "horizon.splitscreen.setup.layout.three.2": "Δίπλα δίπλα", + "horizon.splitscreen.setup.help.player": "Κάντε κλικ ή σύρετε %s για να τα μετακινήσετε.", + "horizon.splitscreen.setup.help.layout_auto": "%s (δίπλα όταν το παράθυρο είναι φαρδύ). Πατήστε για αλλαγή.", + "horizon.splitscreen.setup.help.layout": "%s. Πατήστε για αλλαγή.", + "horizon.splitscreen.setup.help.switch": "Διαχωρισμένη οθόνη για αυτόν τον υπολογιστή, ενεργοποιημένη ή απενεργοποιημένη.", + "horizon.splitscreen.setup.help.identify": "Η προβολή κάθε παίκτη δείχνει σε ποιο παράθυρο βρίσκεται.", + "horizon.splitscreen.setup.help.names": "Το όνομα κάθε παίκτη στη γωνία της όψης του.", + "horizon.splitscreen.setup.help.revert": "Αναίρεση των αλλαγών που δεν έχουν εφαρμοστεί ακόμα.", + "horizon.splitscreen.setup.help.apply": "Παίξτε με τον τρόπο που δείχνει ο χάρτης.", + "horizon.splitscreen.setup.help.unchanged": "Τίποτα δεν έχει αλλάξει ακόμα.", + "horizon.splitscreen.setup.give_up_pad": "Give Up Pad", + "horizon.splitscreen.prompt.controller_connected": "Ο ελεγκτής είναι συνδεδεμένος", + "horizon.splitscreen.prompt.controller_disconnected": "Ο ελεγκτής αποσυνδέθηκε", + "horizon.splitscreen.prompt.controller_disconnected.hint": "Συνδέστε το ξανά ή πατήστε ένα κουμπί σε άλλο", + "horizon.splitscreen.prompt.join.one": "Ο %s θέλει να συμμετάσχει", + "horizon.splitscreen.prompt.join.many": "Οι ελεγκτές %s θέλουν να συμμετάσχουν", + "horizon.splitscreen.prompt.join.yes": "Εγγραφείτε", + "horizon.splitscreen.prompt.join.as_p1": "Παίξτε ως P1", + "horizon.splitscreen.prompt.join.no": "Όχι", + "horizon.splitscreen.prompt.lost": "%s: ο ελεγκτής αποσυνδέθηκε", + "horizon.splitscreen.prompt.lost.use_another": "Χρησιμοποιήστε άλλο", + "horizon.splitscreen.prompt.lost.leave": "Φύγε", + "horizon.splitscreen.setup.help.give_up_pad": "Ο ελεγκτής σας σταματά να σας οδηγεί και του προσφέρεται να συμμετάσχει (A).", + "horizon.splitscreen.setup.note.held_at": "%s σε %s: Ο Α το ρίχνει εδώ, ο Β το βάζει πίσω.", + "horizon.splitscreen.setup.note.held": "%s σήκωσε: αριστερά/δεξιά διαλέγει πού, ο Α πέφτει, ο Β το βάζει πίσω.", + "Hides models behind opaque blocks. Async checks off-thread; entities tick.": "Κρύβει μοντέλα πίσω από αδιαφανή μπλοκ. Ασύγχρονοι έλεγχοι εκτός νήματος. οντότητες τικ.", + "Block Entities": "Αποκλεισμός οντοτήτων", + "Shulker Boxes": "Κουτιά Shulker", + "Reuses settled boxes; lid movement stays animated.": "Επαναχρησιμοποιεί τα καθιζημένα κουτιά. Η κίνηση του καπακιού παραμένει κινούμενη.", + "Signs": "Σημάδια", + "Reuses sign text until text, light, or font changes.": "Επαναχρησιμοποιεί το κείμενο της πινακίδας μέχρι να αλλάξει το κείμενο, το φως ή η γραμματοσειρά.", + "Decorated Pots": "Διακοσμημένες γλάστρες", + "Reuses still pots; break wobble and sherd changes redraw.": "Επαναχρησιμοποιεί γλάστρες. σπάσιμο ταλάντευση και όστρακα αλλαγές εκ νέου σχεδίαση.", + "Bells": "Καμπάνες", + "Reuses still bells; ringing stays animated.": "Επαναχρησιμοποιεί ακίνητα κουδούνια. Το κουδούνισμα παραμένει κινούμενο.", + "Chests": "Σεντούκια", + "Reuses closed chests; moving lids stay animated.": "Επαναχρησιμοποιεί τα κλειστά σεντούκια. Τα κινούμενα καπάκια παραμένουν κινούμενα.", + "Banners": "Πανό", + "Reuses poles; flags and pattern layers still update.": "Επαναχρησιμοποιεί τους πόλους. Οι σημαίες και τα επίπεδα μοτίβων εξακολουθούν να ενημερώνονται.", + "Copper Golem Statues": "Χάλκινα αγάλματα Golem", + "Reuses statue geometry until its block state changes.": "Επαναχρησιμοποιεί τη γεωμετρία του αγάλματος μέχρι να αλλάξει η κατάσταση μπλοκ.", + "Leaf Culling": "Αποκοπή φύλλων", + "Every leaf face. Vanilla's fancy leaves.": "Κάθε πρόσωπο φύλλου. Φανταχτά φύλλα βανίλιας.", + "Distant Plant Dither": "Μακρινό Φυτό Dither", + "Keeps fine plants in high-res packs from fading far away.": "Διατηρεί τα εκλεκτά φυτά σε συσκευασίες υψηλής ανάλυσης από το να ξεθωριάσουν μακριά.", + "Screenshot Quality": "Ποιότητα στιγμιότυπου οθόνης", + "F2 screenshots at this many times the game's resolution. Higher takes longer.": "Στιγμιότυπα οθόνης F2 σε αυτό πολλές φορές την ανάλυση του παιχνιδιού. Το υψηλότερο απαιτεί περισσότερο χρόνο.", + "Frame Generation": "Γενιά πλαισίων", + "Shows a made-up frame between each two real ones: smoother, a little more lag.": "Εμφανίζει ένα φτιαγμένο καρέ ανάμεσα σε καθένα από τα δύο πραγματικά: πιο ομαλό, λίγο μεγαλύτερη καθυστέρηση.", + "Shadow Cache": "Shadow Cache", + "Reuses the pack shadow map when sun, view and world match. Off by default.": "Επαναχρησιμοποιεί τον χάρτη σκιάς πακέτου όταν ο ήλιος, η θέα και ο κόσμος ταιριάζουν. Απενεργοποίηση από προεπιλογή.", + "Find BlueMap": "Βρείτε το BlueMap", + "On servers, finds their BlueMap web map for far terrain. Next join.": "Στους διακομιστές, βρίσκει τον ιστό χάρτη τους BlueMap για μακρινό έδαφος. Επόμενη συμμετοχή.", + "BlueMap Radius": "BlueMap Radius", + "How far around you BlueMap tiles are downloaded. Next join.": "Πόσο μακριά γίνεται λήψη των πλακιδίων BlueMap. Επόμενη συμμετοχή.", + "Synchronous": "Σύγχρονη", + "Asynchronous": "Ασύγχρονη", + "Solid": "Στερεά", + "Solid Aggressive": "Στερεά επιθετικά", + "Hollow": "Κούφιο", + "Leaves fully inside a canopy draw solid: fewer see-through layers.": "Τα φύλλα πλήρως μέσα σε ένα θόλο τραβούν στερεά: λιγότερα διαφανή στρώματα.", + "Leaves with one open side draw solid too: faster, chunkier edges.": "Τα φύλλα με μια ανοιχτή πλευρά τραβούν επίσης στερεά: πιο γρήγορες, πιο χοντρές άκρες.", + "Drops faces between leaves: faster, but gaps look through.": "Πέφτει όψεις ανάμεσα στα φύλλα: πιο γρήγορα, αλλά τα κενά φαίνονται μέσα.", + "Hotbar: Previous Slot": "Hotbar: Προηγούμενη υποδοχή", + "Hotbar: Next Slot": "Hotbar: Επόμενη κουλοχέρη", + "horizon.agent.connected.one": "Συνδεδεμένο: 1 σύνδεση πράκτορα", + "horizon.agent.connected.many": "Συνδεδεμένοι: %s συνδέσεις πρακτόρων", + "horizon.agent.connected.one_ago": "Συνδεδεμένο: 1 σύνδεση πράκτορα, τελευταία εντολή πριν από %s s", + "horizon.agent.connected.many_ago": "Συνδέθηκε: %s συνδέσεις πράκτορα, τελευταία εντολή %s πριν", + "horizon.agent.waiting": "Περιμένοντας έναν πράκτορα.", + "horizon.agent.off": "Off: οι πράκτορες δεν μπορούν να φτάσουν σε αυτό το παιχνίδι.", + "horizon.agent.session_opened": "Άνοιξε για αυτήν την περίοδο λειτουργίας από το πρόγραμμα που ξεκίνησε το παιχνίδι.", + "horizon.agent.socket": "Υποδοχή: %s (αντιγράψτε τα στοιχεία για την πλήρη διαδρομή του)", + "horizon.agent.local_only": "Μόνο τοπικά: πράκτορες σε αυτόν τον υπολογιστή, ποτέ στο δίκτυο.", + "%s nits": "%s κόνιδες", + "Auto (%s nits)": "Αυτόματο (%s nits)", + "%.2f nits": "%.2f κόνιδες", + "Hides models behind opaque blocks. Entities update. Off with custom packs.": "Κρύβει μοντέλα πίσω από αδιαφανή μπλοκ. Ενημέρωση οντοτήτων. Εκτός με προσαρμοσμένα πακέτα.", + "horizon.extras.repro_keys": "Συντομεύσεις εγγραφής", + "horizon.extras.repro_keys.tooltip": "Το F3+R ξεκινά ή σταματά μια επαναληπτική εγγραφή και το F3+E γράφει το πακέτο του. Απενεργοποίηση από προεπιλογή: μια εγγραφή αντιγράφει τον κόσμο.", + "horizon.agent.record_session": "Έναρξη εγγραφής συνεδρίας", + "horizon.agent.record_stop": "Διακοπή εγγραφής συνεδρίας", + "horizon.agent.export_repro": "Εξαγωγή Repro Bundle", + "horizon.repro.started": "Η εγγραφή ξεκίνησε. Το F3+R το σταματά και γράφει το bundle.", + "horizon.repro.stopped": "Η εγγραφή σταμάτησε: %s", + "horizon.repro.bundle": "Πακέτο Repro: %s", + "horizon.repro.error": "Repro: %s", + "horizon.repro.no_recording": "Δεν υπάρχει ακόμα εγγραφή για εξαγωγή.", + "horizon.repro.replay_started": "Έναρξη επανάληψης: %s", + "horizon.pack.add": "+", + "horizon.pack.addInfo": "Προσθέστε ένα πακέτο πόρων από το Modrinth", + "horizon.pack.addWorking": "Ρωτώντας τον Modrinth...", + "horizon.pack.addNone": "Δεν βρέθηκαν πακέτα πόρων", + "horizon.pack.addTitle": "Προσθέστε ένα πακέτο πόρων", + "horizon.pack.install": "Εγκατάσταση", + "horizon.pack.installing": "Εγκατάσταση", + "horizon.pack.installed": "Εγκατεστημένο", + "horizon.pack.search": "Αναζήτηση", + "horizon.pack.searchHint": "Αναζήτηση στο Modrinth...", + "horizon.pack.filters": "Φίλτρα", + "horizon.pack.filter.realistic": "Ρεαλιστική", + "horizon.pack.filter.simplistic": "Απλουστευτική", + "horizon.pack.filter.vanillaLike": "Σαν βανίλια", + "horizon.pack.filter.x16": "16x", + "horizon.pack.filter.x32": "32x", + "horizon.pack.filter.x64": "64x", + "horizon.pack.addFailed": "Δεν ήταν δυνατή η προσθήκη του πακέτου: %s", + "horizon.extras.header.cosmetics": "Καλλυντικά", + "horizon.extras.cosmetics_mine": "Τα καλλυντικά μου", + "horizon.extras.cosmetics_mine.tooltip": "Κρυφό: κάθε παίκτης του Horizon σας βλέπει χωρίς τα καλλυντικά σας, συμπεριλαμβανομένων εσείς. Ο ίδιος διακόπτης με την ντουλάπα του εκτοξευτή.", + "horizon.extras.cosmetics_others": "Καλλυντικά άλλων παικτών", + "horizon.extras.cosmetics_others.tooltip": "Τι φοράνε οι άλλοι παίκτες του Horizon: τα πάντα, μόνο τα στυλ των ετικετών τους ή τίποτα. Κρυφά, το παιχνίδι δεν ρωτά ποτέ τι φοράνε.", + "horizon.extras.cosmetics_auras": "Οι αύρες και τα μονοπάτια των άλλων", + "horizon.extras.cosmetics_auras.tooltip": "Αύρες και μονοπάτια φορούν άλλοι παίκτες. Απενεργοποίηση από προεπιλογή.", + "horizon.extras.cosmetics.shown": "Εμφανίζεται", + "horizon.extras.cosmetics.hidden": "Κρυφό", + "horizon.extras.cosmetics.name_tags": "Μόνο ετικέτες ονομάτων" +} From 110726c5f28425387eefbe0f34d7c06ed38a80f7 Mon Sep 17 00:00:00 2001 From: HrafnaValkyrja Date: Tue, 3 Nov 2026 11:30:45 -0500 Subject: [PATCH 21/70] Entity saves: Fire starts at 0, summoned flags survive, every living entity saves its speed instance Entity.remainingFireTicks starts at 0, so the shared base no longer writes -1. Orbs and projectiles kept only Tags and Item from a summon; Silent, Glowing, Invulnerable, CustomName and CustomNameVisible are kept too. AttributeMap.pack saves the movement_speed instance every living entity makes on its first tick (LivingEntity.removeFrost), not only zombies and piglins. Co-Authored-By: Claude Sonnet 5.5 --- crates/horizon-client/src/entity_nbt.rs | 52 +++++++++++++++++++---- crates/horizon-client/src/game/persist.rs | 13 ++++++ 2 files changed, 56 insertions(+), 9 deletions(-) diff --git a/crates/horizon-client/src/entity_nbt.rs b/crates/horizon-client/src/entity_nbt.rs index e2012142cf..79c4213825 100644 --- a/crates/horizon-client/src/entity_nbt.rs +++ b/crates/horizon-client/src/entity_nbt.rs @@ -79,7 +79,8 @@ impl Base<'_> { } if let Tag::Compound(map) = &mut tag { for (key, value) in [ - ("Fire", Tag::Short(-1)), + // Entity.remainingFireTicks starts at 0 (-1 was the old default). + ("Fire", Tag::Short(0)), ("Air", Tag::Short(300)), ("Invulnerable", Tag::Byte(0)), ("PortalCooldown", Tag::Int(0)), @@ -1139,15 +1140,14 @@ pub fn mob_to_nbt( // Zombie and Piglin.setBaby (even for an adult) the speed, Rabbit.setVariant // the attack damage. use crate::mobs::finalize::Attr; - let made = if crate::mobs::doors::is_zombie(species) || species == crate::mobs::Species::Piglin - { - Some(Attr::MovementSpeed) - } else if species == crate::mobs::Species::Rabbit { - Some(Attr::AttackDamage) + // Every other living entity's first tick makes the movement_speed instance + // (LivingEntity.removeFrost reads it through getAttribute). + let made = if species == crate::mobs::Species::Rabbit { + vec![Attr::MovementSpeed, Attr::AttackDamage] } else { - None + vec![Attr::MovementSpeed] }; - if let Some(attr) = made { + for attr in made { let base = crate::mobs::finalize::base_value(m, attr); let mut list = match map.get(&"attributes".into()) { Some(Tag::List(l)) => l.clone(), @@ -3194,7 +3194,15 @@ pub fn armor_stand_to_nbt(a: &ArmorStand, uuid: [i32; 4], raw: Option<&Tag>) -> ("AbsorptionAmount", Tag::Float(0)), ("FallFlying", Tag::Byte(0)), ("current_impulse_context_reset_grace_time", Tag::Int(0)), - ("attributes", Tag::List(Vec::new())), + // AttributeMap.pack: the movement_speed instance every living + // entity's first tick makes (removeFrost), at the registry default. + ( + "attributes", + Tag::List(vec![Tag::compound([ + ("id", string("minecraft:movement_speed")), + ("base", Tag::Double(0.7f64.to_bits())), + ])]), + ), ( "Brain", Tag::compound([("memories", Tag::Compound(Compound::new()))]), @@ -4133,6 +4141,32 @@ mod tests { assert_eq!(number(tag.get("Health")), Some(5)); } #[test] + fn entities_without_fire_save_zero_and_a_mob_saves_its_speed_instance() { + // Entity.remainingFireTicks starts at 0; LivingEntity.removeFrost makes + // the movement_speed instance AttributeMap.pack then saves. + let orb = ExperienceOrb { + join: Default::default(), + no_gravity: false, + id: 0, + position: Vec3::ZERO, + previous: Vec3::ZERO, + velocity: Vec3::ZERO, + value: 1, + age: 0, + on_ground: false, + count: 1, + ticks: 0, + health: 5, + }; + let tag = orb_to_nbt(&orb, [0; 4]); + assert_eq!(tag.get("Fire"), Some(&Tag::Short(0))); + let stand = armor_stand_to_nbt(&ArmorStand::new(1, Vec3::ZERO, 0.0), [0; 4], None); + let Some(Tag::List(attrs)) = stand.get("attributes") else { + panic!("no attributes"); + }; + assert_eq!(attrs.len(), 1); + } + #[test] fn orbs_keep_their_count() { let o = ExperienceOrb { join: Default::default(), diff --git a/crates/horizon-client/src/game/persist.rs b/crates/horizon-client/src/game/persist.rs index 802b0e2738..4bec5a94ef 100644 --- a/crates/horizon-client/src/game/persist.rs +++ b/crates/horizon-client/src/game/persist.rs @@ -1201,6 +1201,19 @@ impl Game<'_> { if let Some(item @ Tag::Compound(_)) = tag.get("Item") { map.insert("Item".into(), item.clone()); } + // Entity.saveWithoutId's optional fields Horizon models nowhere for + // these entities, kept as loaded (written only when set). + for key in [ + "Silent", + "Glowing", + "Invulnerable", + "CustomName", + "CustomNameVisible", + ] { + if let Some(v) = tag.get(key) { + map.insert(key.into(), v.clone()); + } + } if !map.is_empty() { self.persist.raw.insert(id, Tag::Compound(map)); } From ada0c3374fa6228be895b9c04761a9122702860e Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:36:50 +0100 Subject: [PATCH 22/70] Management harness: move operator level ids to 220-229 They clashed with #8108 (spawn-protection radius), which uses 150-159. Co-Authored-By: Claude Opus 5.5 --- tools/test_management_protocol_parity.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tools/test_management_protocol_parity.py b/tools/test_management_protocol_parity.py index 1947ad78e6..a1c02069a2 100644 --- a/tools/test_management_protocol_parity.py +++ b/tools/test_management_protocol_parity.py @@ -145,15 +145,15 @@ MESSAGES = [ '{"jsonrpc":"2.0","id":52,"method":"minecraft:serversettings/game_mode"}', '{"jsonrpc":"2.0","id":53,"method":"minecraft:serversettings/game_mode/set","params":["spectator"]}', '{"jsonrpc":"2.0","id":54,"method":"minecraft:serversettings/game_mode"}', - '{"jsonrpc":"2.0","id":150,"method":"minecraft:serversettings/operator_user_permission_level"}', - '{"jsonrpc":"2.0","id":151,"method":"minecraft:serversettings/operator_user_permission_level/set","params":[2]}', - '{"jsonrpc":"2.0","id":152,"method":"minecraft:serversettings/operator_user_permission_level"}', - '{"jsonrpc":"2.0","id":153,"method":"minecraft:serversettings/operator_user_permission_level/set","params":[0]}', - '{"jsonrpc":"2.0","id":154,"method":"minecraft:serversettings/operator_user_permission_level"}', - '{"jsonrpc":"2.0","id":155,"method":"minecraft:serversettings/operator_user_permission_level/set","params":["yes"]}', - '{"jsonrpc":"2.0","id":156,"method":"minecraft:serversettings/operator_user_permission_level"}', - '{"jsonrpc":"2.0","id":157,"method":"minecraft:serversettings/operator_user_permission_level/set","params":[2]}', - '{"jsonrpc":"2.0","id":158,"method":"minecraft:serversettings/operator_user_permission_level"}', + '{"jsonrpc":"2.0","id":220,"method":"minecraft:serversettings/operator_user_permission_level"}', + '{"jsonrpc":"2.0","id":221,"method":"minecraft:serversettings/operator_user_permission_level/set","params":[2]}', + '{"jsonrpc":"2.0","id":222,"method":"minecraft:serversettings/operator_user_permission_level"}', + '{"jsonrpc":"2.0","id":223,"method":"minecraft:serversettings/operator_user_permission_level/set","params":[0]}', + '{"jsonrpc":"2.0","id":224,"method":"minecraft:serversettings/operator_user_permission_level"}', + '{"jsonrpc":"2.0","id":225,"method":"minecraft:serversettings/operator_user_permission_level/set","params":["yes"]}', + '{"jsonrpc":"2.0","id":226,"method":"minecraft:serversettings/operator_user_permission_level"}', + '{"jsonrpc":"2.0","id":227,"method":"minecraft:serversettings/operator_user_permission_level/set","params":[2]}', + '{"jsonrpc":"2.0","id":228,"method":"minecraft:serversettings/operator_user_permission_level"}', '{"jsonrpc":"2.0","id":55,"method":"minecraft:serversettings/force_game_mode"}', '{"jsonrpc":"2.0","id":56,"method":"minecraft:serversettings/force_game_mode/set","params":[true]}', '{"jsonrpc":"2.0","id":57,"method":"minecraft:serversettings/force_game_mode"}', @@ -579,7 +579,7 @@ def main(): if not isinstance(reply, dict) or 'method' not in reply or 'id' in reply: break sides[side]['restarted_allow_flight'] = reply - ws.send('{"jsonrpc":"2.0","id":159,"method":"minecraft:serversettings/operator_user_permission_level"}') + ws.send('{"jsonrpc":"2.0","id":229,"method":"minecraft:serversettings/operator_user_permission_level"}') while True: reply = normal(ws.receive(timeout=60)) if not isinstance(reply, dict) or 'method' not in reply or 'id' in reply: @@ -662,7 +662,7 @@ def main(): if not horizon['saved_config_operator_user_permission_level']: failures.append('Horizon did not save operator permission level in server.toml') if vanilla['restarted_operator_user_permission_level'] != horizon['restarted_operator_user_permission_level'] or \ - vanilla['restarted_operator_user_permission_level'] != {'jsonrpc': '2.0', 'id': 159, 'result': 2}: + vanilla['restarted_operator_user_permission_level'] != {'jsonrpc': '2.0', 'id': 229, 'result': 2}: failures.append(f"restarted operator permission level: vanilla {vanilla['restarted_operator_user_permission_level']!r}, Horizon {horizon['restarted_operator_user_permission_level']!r}") if vanilla['saved_allow_flight'] != horizon['saved_allow_flight'] or vanilla['saved_allow_flight'] != 'true': failures.append(f"saved allow-flight: vanilla {vanilla['saved_allow_flight']!r}, Horizon {horizon['saved_allow_flight']!r}") From 3a93bcc3b64e0d3981fc335aa8d8587edb26b5a3 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:40:29 +0100 Subject: [PATCH 23/70] it_it: keep the name Horizon untranslated The table translated the name Horizon as the word horizon (or dropped stray zero-width spaces into it). Co-Authored-By: Claude Opus 5.5 --- crates/horizon-client/assets/horizon/lang/it_it.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/it_it.json b/crates/horizon-client/assets/horizon/lang/it_it.json index 95bd11a418..7a5ab7964f 100644 --- a/crates/horizon-client/assets/horizon/lang/it_it.json +++ b/crates/horizon-client/assets/horizon/lang/it_it.json @@ -22,7 +22,7 @@ "horizon.options.menu_focus": "Concentrarsi", "horizon.options.menu_pointer": "Puntatore", "horizon.options.keyboard.auto": "Automatico", - "horizon.options.keyboard.horizon": "Orizzonte", + "horizon.options.keyboard.horizon": "Horizon", "horizon.options.keyboard.steam": "Vapore", "horizon.options.unavailable": "Questa funzionalità non è ancora disponibile in Horizon.", "horizon.options.search": "Cerca impostazioni...", @@ -31,8 +31,8 @@ "horizon.pages.shader_options": "Opzioni dello shader", "horizon.pages.controller": "Impostazioni del controller", "horizon.pages.controller_binds": "Il controller si lega", - "horizon.pages.extras": "Extra Orizzonte", - "horizon.pages.settings": "Impostazioni dell'orizzonte", + "horizon.pages.extras": "Extra di Horizon", + "horizon.pages.settings": "Impostazioni di Horizon", "horizon.pages.agent": "Agente dell'IA", "horizon.split.leave": "Lascia", "horizon.pages.split_settings": "Impostazioni schermo diviso", @@ -70,9 +70,9 @@ "horizon.pages.open.extras": "Extra...", "horizon.pages.open.mods": "Mod...", "horizon.pages.open.agent": "Agente dell'IA...", - "horizon.pages.open.horizon_graphics": "Grafica dell'orizzonte...", + "horizon.pages.open.horizon_graphics": "Grafica di Horizon...", "horizon.pages.open.controller_binds": "Il controller si lega...", - "horizon.pages.open.horizon_settings": "Impostazioni dell'orizzonte...", + "horizon.pages.open.horizon_settings": "Impostazioni di Horizon...", "horizon.pages.open.music": "Musica...", "horizon.mods.empty": "Nessuna mod: inserisci i file .hmod nella cartella Horizon-Mods", "horizon.mods.stopped": " (Fermato)", @@ -82,7 +82,7 @@ "horizon.mods.in_world": " (lasciare che il mondo cambi)", "horizon.mods.open_folder": "Apri la cartella Mod", "horizon.shader_packs.empty": "Nessun pacchetto shader: inseriscili nella cartella shaderpacks", - "horizon.shader_packs.kind_horizon": " (Orizzonte)", + "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "Opzioni shader...", "horizon.shader_options.profile": "Profilo", "horizon.shader_options.loading": "Leggendo le opzioni del pacchetto shader...", From a9e0496cc574ab6df950cc212d911a460440fd5d Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:40:31 +0100 Subject: [PATCH 24/70] nl_nl: keep the name Horizon untranslated The table translated the name Horizon as the word horizon (or dropped stray zero-width spaces into it). Co-Authored-By: Claude Opus 5.5 --- crates/horizon-client/assets/horizon/lang/nl_nl.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/nl_nl.json b/crates/horizon-client/assets/horizon/lang/nl_nl.json index 019446595a..2ceefb82e8 100644 --- a/crates/horizon-client/assets/horizon/lang/nl_nl.json +++ b/crates/horizon-client/assets/horizon/lang/nl_nl.json @@ -290,7 +290,7 @@ "horizon.extras.sort_key.tooltip": "Sorteert het gedeelte onder de cursor. Klik en druk vervolgens op een toets; Ontsnappen maakt het los.", "horizon.extras.no_ai.tooltip": "Verbergt en schakelt elke AI-functie uit: agentcontrole, horizon-ctl en de MCP-servers. De schakelaar van de draagraket ook.", "horizon.extras.agent_control.tooltip": "Je eigen AI-agent kan dit spel alleen op deze computer spelen via horizon-ctl of een MCP-client.", - "horizon.extras.discord_presence.tooltip": "Toont Speelhorizon op je Discord-profiel terwijl Discord actief is: menu's, singleplayer of multiplayer, de dimensie en de gespeelde tijd. Nooit een wereldnaam of een serveradres.", + "horizon.extras.discord_presence.tooltip": "Toont 'Speelt Horizon' op je Discord-profiel terwijl Discord actief is: menu's, singleplayer of multiplayer, de dimensie en de gespeelde tijd. Nooit een wereldnaam of een serveradres.", "Calibrate...": "Kalibreer...", "Calibrate Anyway...": "Hoe dan ook kalibreren...", "Use Automatic Setup": "Gebruik automatische configuratie", @@ -499,7 +499,7 @@ "horizon.extras.cosmetics_mine": "Mijn cosmetica", "horizon.extras.cosmetics_mine.tooltip": "Verborgen: elke Horizon-speler ziet je zonder je cosmetica, inclusief jij. Dezelfde schakelaar als de kledingkast van de draagraket.", "horizon.extras.cosmetics_others": "Cosmetica van andere spelers", - "horizon.extras.cosmetics_others.tooltip": "Wat andere Horizon-spelers dragen: alles, alleen hun naamplaatjestijlen, of niets. Verborgen vraagt ​​het spel nooit wat ze dragen.", + "horizon.extras.cosmetics_others.tooltip": "Wat andere Horizon-spelers dragen: alles, alleen hun naamplaatjestijlen, of niets. Verborgen vraagt het spel nooit wat ze dragen.", "horizon.extras.cosmetics_auras": "De aura's en sporen van anderen", "horizon.extras.cosmetics_auras.tooltip": "Aura's en sporen die andere spelers dragen. Standaard uitgeschakeld.", "horizon.extras.cosmetics.shown": "Getoond", From b56cb1e293c0b64397cfa22efbe262f93145d976 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:40:32 +0100 Subject: [PATCH 25/70] vi_vn: keep the name Horizon untranslated The table translated the name Horizon as the word horizon (or dropped stray zero-width spaces into it). Co-Authored-By: Claude Opus 5.5 --- crates/horizon-client/assets/horizon/lang/vi_vn.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/vi_vn.json b/crates/horizon-client/assets/horizon/lang/vi_vn.json index b07e6284b2..37439e08bb 100644 --- a/crates/horizon-client/assets/horizon/lang/vi_vn.json +++ b/crates/horizon-client/assets/horizon/lang/vi_vn.json @@ -22,7 +22,7 @@ "horizon.options.menu_focus": "Tập trung", "horizon.options.menu_pointer": "Con trỏ", "horizon.options.keyboard.auto": "Tự động", - "horizon.options.keyboard.horizon": "Đường chân trời", + "horizon.options.keyboard.horizon": "Horizon", "horizon.options.keyboard.steam": "hơi nước", "horizon.options.unavailable": "Tính năng này chưa có ở Horizon.", "horizon.options.search": "Cài đặt tìm kiếm...", @@ -32,7 +32,7 @@ "horizon.pages.controller": "Cài đặt bộ điều khiển", "horizon.pages.controller_binds": "Liên kết điều khiển", "horizon.pages.extras": "Tiện ích bổ sung của Horizon", - "horizon.pages.settings": "Cài đặt đường chân trời", + "horizon.pages.settings": "Cài đặt Horizon", "horizon.pages.agent": "Đặc vụ AI", "horizon.split.leave": "Rời khỏi", "horizon.pages.split_settings": "Cài đặt chia đôi màn hình", @@ -70,9 +70,9 @@ "horizon.pages.open.extras": "Tiện ích bổ sung...", "horizon.pages.open.mods": "Mod...", "horizon.pages.open.agent": "Đặc vụ AI...", - "horizon.pages.open.horizon_graphics": "Đồ họa chân trời...", + "horizon.pages.open.horizon_graphics": "Đồ họa Horizon...", "horizon.pages.open.controller_binds": "Bộ điều khiển liên kết...", - "horizon.pages.open.horizon_settings": "Cài đặt đường chân trời...", + "horizon.pages.open.horizon_settings": "Cài đặt Horizon...", "horizon.pages.open.music": "Âm nhạc...", "horizon.mods.empty": "Không có mod: đặt tệp .hmod vào thư mục Horizon-mods", "horizon.mods.stopped": " (Đã dừng)", @@ -82,7 +82,7 @@ "horizon.mods.in_world": " (để thế giới thay đổi)", "horizon.mods.open_folder": "Mở thư mục Mod", "horizon.shader_packs.empty": "Không có gói shader: đặt chúng vào thư mục shaderpacks", - "horizon.shader_packs.kind_horizon": " (Chân trời)", + "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "Tùy chọn đổ bóng...", "horizon.shader_options.profile": "Hồ sơ", "horizon.shader_options.loading": "Đọc các tùy chọn của gói đổ bóng...", From 76654ac3b67a539f187d7b8685bdf529394ab3b9 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:40:33 +0100 Subject: [PATCH 26/70] th_th: keep the name Horizon untranslated The table translated the name Horizon as the word horizon (or dropped stray zero-width spaces into it). Co-Authored-By: Claude Opus 5.5 --- crates/horizon-client/assets/horizon/lang/th_th.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/th_th.json b/crates/horizon-client/assets/horizon/lang/th_th.json index e6203b2d3c..1f7151c431 100644 --- a/crates/horizon-client/assets/horizon/lang/th_th.json +++ b/crates/horizon-client/assets/horizon/lang/th_th.json @@ -22,7 +22,7 @@ "horizon.options.menu_focus": "โฟกัส", "horizon.options.menu_pointer": "ตัวชี้", "horizon.options.keyboard.auto": "อัตโนมัติ", - "horizon.options.keyboard.horizon": "ขอบฟ้า", + "horizon.options.keyboard.horizon": "Horizon", "horizon.options.keyboard.steam": "ไอน้ำ", "horizon.options.unavailable": "ฟีเจอร์นี้ยังไม่มีให้บริการใน Horizon", "horizon.options.search": "การตั้งค่าการค้นหา...", @@ -31,8 +31,8 @@ "horizon.pages.shader_options": "ตัวเลือกเชเดอร์", "horizon.pages.controller": "การตั้งค่าคอนโทรลเลอร์", "horizon.pages.controller_binds": "ตัวควบคุมผูก", - "horizon.pages.extras": "ฮอไรซอน เอ็กซ์ตร้าส์", - "horizon.pages.settings": "การตั้งค่าขอบฟ้า", + "horizon.pages.extras": "ส่วนเสริม Horizon", + "horizon.pages.settings": "การตั้งค่า Horizon", "horizon.pages.agent": "ตัวแทนเอไอ", "horizon.split.leave": "ลาออก", "horizon.pages.split_settings": "การตั้งค่าการแบ่งหน้าจอ", @@ -70,9 +70,9 @@ "horizon.pages.open.extras": "อุปกรณ์เสริม...", "horizon.pages.open.mods": "ม็อด...", "horizon.pages.open.agent": "ตัวแทนเอไอ...", - "horizon.pages.open.horizon_graphics": "ฮอไรซอน กราฟฟิก...", + "horizon.pages.open.horizon_graphics": "กราฟิก Horizon...", "horizon.pages.open.controller_binds": "คอนโทรลเลอร์ผูก...", - "horizon.pages.open.horizon_settings": "การตั้งค่าขอบฟ้า...", + "horizon.pages.open.horizon_settings": "การตั้งค่า Horizon...", "horizon.pages.open.music": "ดนตรี...", "horizon.mods.empty": "ไม่มี mods: ใส่ไฟล์ .hmod ลงในโฟลเดอร์ Horizon-mods", "horizon.mods.stopped": " (หยุดแล้ว)", @@ -82,7 +82,7 @@ "horizon.mods.in_world": " (ปล่อยให้โลกเปลี่ยนแปลง)", "horizon.mods.open_folder": "เปิดโฟลเดอร์ Mod", "horizon.shader_packs.empty": "ไม่มีแพ็คเชเดอร์: ใส่ไว้ในโฟลเดอร์เชเดอร์แพ็ก", - "horizon.shader_packs.kind_horizon": " (ขอบฟ้า)", + "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "ตัวเลือกเชเดอร์...", "horizon.shader_options.profile": "โปรไฟล์", "horizon.shader_options.loading": "กำลังอ่านตัวเลือกของแพ็คเชเดอร์...", From f2ab85d7daec6a2cbb18f70bd2f13c57aa0c40ee Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:40:34 +0100 Subject: [PATCH 27/70] ja_jp: keep the name Horizon untranslated The table translated the name Horizon as the word horizon (or dropped stray zero-width spaces into it). Co-Authored-By: Claude Opus 5.5 --- .../assets/horizon/lang/ja_jp.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/ja_jp.json b/crates/horizon-client/assets/horizon/lang/ja_jp.json index 03d898fef4..d5f6222993 100644 --- a/crates/horizon-client/assets/horizon/lang/ja_jp.json +++ b/crates/horizon-client/assets/horizon/lang/ja_jp.json @@ -22,7 +22,7 @@ "horizon.options.menu_focus": "フォーカス", "horizon.options.menu_pointer": "ポインタ", "horizon.options.keyboard.auto": "自動", - "horizon.options.keyboard.horizon": "ホライズン", + "horizon.options.keyboard.horizon": "Horizon", "horizon.options.keyboard.steam": "蒸気", "horizon.options.unavailable": "この機能は Horizon ではまだ利用できません。", "horizon.options.search": "検索設定...", @@ -31,8 +31,8 @@ "horizon.pages.shader_options": "シェーダオプション", "horizon.pages.controller": "コントローラーの設定", "horizon.pages.controller_binds": "コントローラーのバインド", - "horizon.pages.extras": "ホライゾン エクストラ", - "horizon.pages.settings": "ホライズン設定", + "horizon.pages.extras": "Horizon エクストラ", + "horizon.pages.settings": "Horizon 設定", "horizon.pages.agent": "AIエージェント", "horizon.split.leave": "休暇を取る", "horizon.pages.split_settings": "分割画面設定", @@ -60,7 +60,7 @@ "horizon.pages.agent.tooltip": "独自の AI エージェントを実行します: このコンピューター上の Horizon-ctl クライアントと MCP クライアント。", "horizon.pages.split_profiles.tooltip": "プレイする人: このゲーム フォルダーに保存されているプロフィール。", "horizon.pages.split_setup.tooltip": "窓やモニター、そして誰がどこでプレイするか。", - "horizon.pages.shader_packs.tooltip": "shaderpacks フォルダーのシェーダー パック: Horizo​​n 独自のものと、shaders/ 形式のもの。一度に 1 つずつ実行されます。", + "horizon.pages.shader_packs.tooltip": "shaderpacks フォルダーのシェーダー パック: Horizon 独自のものと、shaders/ 形式のもの。一度に 1 つずつ実行されます。", "horizon.pages.mods.tooltip": "Horizon 用に作成された Mod (horizon-mods フォルダーから)。それぞれサンドボックス内で実行され、オンになるまでオフのままになります。", "horizon.pages.open.graphics": "グラフィックス...", "horizon.pages.open.graphics_advanced": "高度なグラフィックス...", @@ -70,9 +70,9 @@ "horizon.pages.open.extras": "エクストラ...", "horizon.pages.open.mods": "改造...", "horizon.pages.open.agent": "AIエージェント...", - "horizon.pages.open.horizon_graphics": "ホライゾングラフィックス...", + "horizon.pages.open.horizon_graphics": "Horizon グラフィックス...", "horizon.pages.open.controller_binds": "コントローラーのバインド...", - "horizon.pages.open.horizon_settings": "水平線設定...", + "horizon.pages.open.horizon_settings": "Horizon 設定...", "horizon.pages.open.music": "音楽...", "horizon.mods.empty": "MODなし: .hmodファイルをhorizon-modsフォルダーに置きます", "horizon.mods.stopped": " (停止中)", @@ -82,7 +82,7 @@ "horizon.mods.in_world": " (世界の変化に任せて)", "horizon.mods.open_folder": "Modフォルダーを開く", "horizon.shader_packs.empty": "シェーダー パックはありません。シェーダー パック フォルダーに入れてください。", - "horizon.shader_packs.kind_horizon": " (地平線)", + "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "シェーダオプション...", "horizon.shader_options.profile": "プロフィール", "horizon.shader_options.loading": "シェーダー パックのオプションを読んでいます...", @@ -219,7 +219,7 @@ "Mesh data sent to the GPU per frame. Lower is smoother while loading.": "フレームごとに GPU に送信されるメッシュ データ。ローディング時は下のほうがスムーズです。", "Frame rate and frame times over the game, with a graph.": "ゲーム全体のフレーム レートとフレーム時間をグラフで表示します。", "horizon.multiplayer.finding_friend": "友達の世界を探しています...", - "horizon.multiplayer.not_signed_in": "このサーバーはオンライン モードです。 Horizo​​n ランチャーに Microsoft アカウントを使用してサインインして、それに参加します。", + "horizon.multiplayer.not_signed_in": "このサーバーはオンライン モードです。 Horizon ランチャーに Microsoft アカウントを使用してサインインして、それに参加します。", "horizon.multiplayer.invalid_address": "無効なサーバーアドレス: %s", "horizon.multiplayer.connected_friend_direct": "友達と直接つながります...", "horizon.multiplayer.connected_friend_relay": "リレーを通じて友達とつながっています...", From b2cd4ad7d6bdfa228fe2783833fc0198cea5967b Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:40:35 +0100 Subject: [PATCH 28/70] ar_sa: keep the name Horizon untranslated The table translated the name Horizon as the word horizon (or dropped stray zero-width spaces into it). Co-Authored-By: Claude Opus 5.5 --- crates/horizon-client/assets/horizon/lang/ar_sa.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/ar_sa.json b/crates/horizon-client/assets/horizon/lang/ar_sa.json index f951bc1c4e..873f1f4b24 100644 --- a/crates/horizon-client/assets/horizon/lang/ar_sa.json +++ b/crates/horizon-client/assets/horizon/lang/ar_sa.json @@ -22,7 +22,7 @@ "horizon.options.menu_focus": "التركيز", "horizon.options.menu_pointer": "المؤشر", "horizon.options.keyboard.auto": "تلقائي", - "horizon.options.keyboard.horizon": "الأفق", + "horizon.options.keyboard.horizon": "Horizon", "horizon.options.keyboard.steam": "البخار", "horizon.options.unavailable": "هذه الميزة غير متوفرة بعد في Horizon.", "horizon.options.search": "إعدادات البحث...", @@ -31,8 +31,8 @@ "horizon.pages.shader_options": "خيارات التظليل", "horizon.pages.controller": "إعدادات وحدة التحكم", "horizon.pages.controller_binds": "ربط وحدة التحكم", - "horizon.pages.extras": "إضافات الأفق", - "horizon.pages.settings": "إعدادات الأفق", + "horizon.pages.extras": "إضافات Horizon", + "horizon.pages.settings": "إعدادات Horizon", "horizon.pages.agent": "وكيل منظمة العفو الدولية", "horizon.split.leave": "غادر", "horizon.pages.split_settings": "إعدادات تقسيم الشاشة", @@ -70,9 +70,9 @@ "horizon.pages.open.extras": "إضافات...", "horizon.pages.open.mods": "تعديل...", "horizon.pages.open.agent": "وكيل الذكاء الاصطناعي...", - "horizon.pages.open.horizon_graphics": "رسومات الأفق...", + "horizon.pages.open.horizon_graphics": "رسومات Horizon...", "horizon.pages.open.controller_binds": "ربط وحدة التحكم...", - "horizon.pages.open.horizon_settings": "إعدادات الأفق...", + "horizon.pages.open.horizon_settings": "إعدادات Horizon...", "horizon.pages.open.music": "موسيقى...", "horizon.mods.empty": "لا توجد تعديلات: ضع ملفات .hmod في مجلد Horizon-mods", "horizon.mods.stopped": " (متوقف)", @@ -82,7 +82,7 @@ "horizon.mods.in_world": " (اترك العالم ليتغير)", "horizon.mods.open_folder": "افتح مجلد التعديل", "horizon.shader_packs.empty": "لا توجد حزم تظليل: ضعها في مجلدshaderpacks", - "horizon.shader_packs.kind_horizon": " (الأفق)", + "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "خيارات التظليل...", "horizon.shader_options.profile": "الملف الشخصي", "horizon.shader_options.loading": "قراءة خيارات حزمة التظليل...", From e5310a4bf09f1437f68f6970407971141acf71a6 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:40:36 +0100 Subject: [PATCH 29/70] pt_br: keep the name Horizon untranslated The table translated the name Horizon as the word horizon (or dropped stray zero-width spaces into it). Co-Authored-By: Claude Opus 5.5 --- crates/horizon-client/assets/horizon/lang/pt_br.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/pt_br.json b/crates/horizon-client/assets/horizon/lang/pt_br.json index edfa649ff0..4dbf7b414d 100644 --- a/crates/horizon-client/assets/horizon/lang/pt_br.json +++ b/crates/horizon-client/assets/horizon/lang/pt_br.json @@ -32,7 +32,7 @@ "horizon.pages.controller": "Configurações do controlador", "horizon.pages.controller_binds": "Ligações de controlador", "horizon.pages.extras": "Extras Horizonte", - "horizon.pages.settings": "Configurações do horizonte", + "horizon.pages.settings": "Configurações do Horizon", "horizon.pages.agent": "Agente de IA", "horizon.split.leave": "Sair", "horizon.pages.split_settings": "Configurações de tela dividida", @@ -72,7 +72,7 @@ "horizon.pages.open.agent": "Agente de IA...", "horizon.pages.open.horizon_graphics": "Gráficos Horizonte...", "horizon.pages.open.controller_binds": "Ligações do controlador...", - "horizon.pages.open.horizon_settings": "Configurações do horizonte...", + "horizon.pages.open.horizon_settings": "Configurações do Horizon...", "horizon.pages.open.music": "Música...", "horizon.mods.empty": "Sem mods: coloque os arquivos .hmod na pasta horizonte-mods", "horizon.mods.stopped": " (Parado)", From 2f5141eb46a47f7e5e19f603ef0a8de36b5f2464 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:40:37 +0100 Subject: [PATCH 30/70] cs_cz: keep the name Horizon untranslated The table translated the name Horizon as the word horizon (or dropped stray zero-width spaces into it). Co-Authored-By: Claude Opus 5.5 --- crates/horizon-client/assets/horizon/lang/cs_cz.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/cs_cz.json b/crates/horizon-client/assets/horizon/lang/cs_cz.json index 58c9ba3416..f088797c08 100644 --- a/crates/horizon-client/assets/horizon/lang/cs_cz.json +++ b/crates/horizon-client/assets/horizon/lang/cs_cz.json @@ -32,7 +32,7 @@ "horizon.pages.controller": "Nastavení ovladače", "horizon.pages.controller_binds": "Controller Binds", "horizon.pages.extras": "Horizon Extras", - "horizon.pages.settings": "Nastavení horizontu", + "horizon.pages.settings": "Nastavení Horizonu", "horizon.pages.agent": "Agent AI", "horizon.split.leave": "Odejděte", "horizon.pages.split_settings": "Nastavení rozdělené obrazovky", @@ -72,7 +72,7 @@ "horizon.pages.open.agent": "AI agent...", "horizon.pages.open.horizon_graphics": "Horizon Graphics...", "horizon.pages.open.controller_binds": "Ovladač se váže...", - "horizon.pages.open.horizon_settings": "Nastavení horizontu...", + "horizon.pages.open.horizon_settings": "Nastavení Horizonu...", "horizon.pages.open.music": "hudba...", "horizon.mods.empty": "Žádné mody: vložte soubory .hmod do složky horizon-mods", "horizon.mods.stopped": " (Zastaveno)", From 3fec1f53e77e4c126739c4325de5af681cfb5184 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:40:38 +0100 Subject: [PATCH 31/70] sv_se: keep the name Horizon untranslated The table translated the name Horizon as the word horizon (or dropped stray zero-width spaces into it). Co-Authored-By: Claude Opus 5.5 --- crates/horizon-client/assets/horizon/lang/sv_se.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/sv_se.json b/crates/horizon-client/assets/horizon/lang/sv_se.json index 30f9e91835..0a1ae66fd1 100644 --- a/crates/horizon-client/assets/horizon/lang/sv_se.json +++ b/crates/horizon-client/assets/horizon/lang/sv_se.json @@ -22,7 +22,7 @@ "horizon.options.menu_focus": "Fokusera", "horizon.options.menu_pointer": "Pekare", "horizon.options.keyboard.auto": "Auto", - "horizon.options.keyboard.horizon": "Horisont", + "horizon.options.keyboard.horizon": "Horizon", "horizon.options.keyboard.steam": "Ånga", "horizon.options.unavailable": "Den här funktionen är ännu inte tillgänglig i Horizon.", "horizon.options.search": "Sökinställningar...", @@ -32,7 +32,7 @@ "horizon.pages.controller": "Kontrollinställningar", "horizon.pages.controller_binds": "Controller binder", "horizon.pages.extras": "Horizon Extras", - "horizon.pages.settings": "Horisontinställningar", + "horizon.pages.settings": "Horizon-inställningar", "horizon.pages.agent": "AI-agent", "horizon.split.leave": "Lämna", "horizon.pages.split_settings": "Inställningar för delad skärm", @@ -70,9 +70,9 @@ "horizon.pages.open.extras": "Extra...", "horizon.pages.open.mods": "Mods...", "horizon.pages.open.agent": "AI-agent...", - "horizon.pages.open.horizon_graphics": "Horisont grafik...", + "horizon.pages.open.horizon_graphics": "Horizon-grafik...", "horizon.pages.open.controller_binds": "Styrenheten binder...", - "horizon.pages.open.horizon_settings": "Horisontinställningar...", + "horizon.pages.open.horizon_settings": "Horizon-inställningar...", "horizon.pages.open.music": "Musik...", "horizon.mods.empty": "Inga mods: lägg .hmod-filer i mappen horizon-mods", "horizon.mods.stopped": " (Stoppade)", From 7fe3549887815dafdd20e222bf795990da43aae0 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:40:40 +0100 Subject: [PATCH 32/70] el_gr: keep the name Horizon untranslated The table translated the name Horizon as the word horizon (or dropped stray zero-width spaces into it). Co-Authored-By: Claude Opus 5.5 --- crates/horizon-client/assets/horizon/lang/el_gr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/horizon-client/assets/horizon/lang/el_gr.json b/crates/horizon-client/assets/horizon/lang/el_gr.json index c60e874fc8..b7d49ddade 100644 --- a/crates/horizon-client/assets/horizon/lang/el_gr.json +++ b/crates/horizon-client/assets/horizon/lang/el_gr.json @@ -82,7 +82,7 @@ "horizon.mods.in_world": " (άσε τον κόσμο να αλλάξει)", "horizon.mods.open_folder": "Ανοίξτε το φάκελο Mod", "horizon.shader_packs.empty": "Χωρίς πακέτα shader: τοποθετήστε τα στο φάκελο shaderpacks", - "horizon.shader_packs.kind_horizon": " (Ορίζοντας)", + "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "Επιλογές Shader...", "horizon.shader_options.profile": "Προφίλ", "horizon.shader_options.loading": "Διαβάζοντας τις επιλογές του πακέτου shader...", From 8a6441c63d02c8442d30cfdfc9780792ac842ebf Mon Sep 17 00:00:00 2001 From: gork <268053046+dontstopgorkingit@users.noreply.github.com> Date: Tue, 3 Nov 2026 18:28:46 +0100 Subject: [PATCH 33/70] docs: improve user-server docs readability and references Co-Authored-By: Claude Code --- docs/hosting.md | 4 ++-- docs/owners.md | 2 +- docs/server.md | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/hosting.md b/docs/hosting.md index 85d528f851..d92f8c71ba 100644 --- a/docs/hosting.md +++ b/docs/hosting.md @@ -3,14 +3,14 @@ `horizon-server` hosts a Minecraft Java Edition 26.3 server with Horizon's own game as the engine: one native program, no Java, one settings file, a command line, and a web panel. Vanilla 26.3 clients and Horizon clients can join it. This page covers what works on `main` today and says plainly what doesn't yet. The design and the -plan are in [docs/server.md](https://github.com/horizon-rust/horizon/blob/main/docs/server.md). +plan are in [server.md](server.md). ## Before you start - **Online mode checks accounts** (release v2026.10.17.07 and newer). With `online_mode = true`, the default, every player joins with their own account, as on a vanilla server: vanilla players signed in with the official Minecraft launcher, Horizon players with the Microsoft account they signed in with in Horizon's - launcher ([docs/microsoft-account.md](https://github.com/horizon-rust/horizon/blob/main/docs/microsoft-account.md)). + launcher ([microsoft-account.md](microsoft-account.md)). - **Names you add are accounts** (release v2026.10.17.14 and newer). `init --player`, `horizon-server whitelist add` and `op`, and the console's `whitelist add`, `op` and `ban` look a name up the way vanilla does: players already seen (kept in `usercache.json`), then Mojang's profile service. In online mode a name diff --git a/docs/owners.md b/docs/owners.md index c678915912..fba54c1d90 100644 --- a/docs/owners.md +++ b/docs/owners.md @@ -75,7 +75,7 @@ These belong to `horizon-server`, not to the game: ## Planned: limiting a server to Horizon clients -The design (`docs/design.md`, section 6 of horizon-rust/horizon-server) adds one more setting. It is not in +The design ([server-next.md](server-next.md#6-who-can-join), section 6) adds one more setting. It is not in `server.toml` yet. ```toml diff --git a/docs/server.md b/docs/server.md index b992aa51eb..daff62bd05 100644 --- a/docs/server.md +++ b/docs/server.md @@ -7,8 +7,7 @@ should beat vanilla, Paper and Fabric + Lithium on TPS/MSPT, RAM, CPU, chunk gen Gameplay stays vanilla: there are no Paper-style rule changes unless the owner turns one on. This page covers what the server does today (measured), the design of `horizon-server`, and what ships for the -first working version (2026-10-23). The owner's guide is docs/hosting.md, also at -https://playhorizon.dev/server. +first working version (2026-10-23). The owner's guide is [docs/hosting.md](hosting.md). ## 1. Today From c85c4baf4a13c103638f5dc938312e7158e6c496 Mon Sep 17 00:00:00 2001 From: gork <268053046+dontstopgorkingit@users.noreply.github.com> Date: Tue, 3 Nov 2026 18:29:07 +0100 Subject: [PATCH 34/70] docs: tidy formatting in native-client Co-Authored-By: Claude Code --- docs/native-client.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/native-client.md b/docs/native-client.md index 853a16b8f5..31a9ccf123 100644 --- a/docs/native-client.md +++ b/docs/native-client.md @@ -838,7 +838,6 @@ without an error. Both views were inspected. The seven client tests and all-target client Clippy also passed. These checks do not establish full vanilla gameplay or final Linux release acceptance on the target machine. - ## Pending attribute updates The resident simulation now dispatches pending attribute callbacks after movement From fdb1cf468883f22ff2e56d407dcbffeb82ec3b2c Mon Sep 17 00:00:00 2001 From: gork <268053046+dontstopgorkingit@users.noreply.github.com> Date: Tue, 3 Nov 2026 18:29:22 +0100 Subject: [PATCH 35/70] docs: add contents to server-levels Co-Authored-By: Claude Code --- docs/server-levels.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/server-levels.md b/docs/server-levels.md index bba8048b33..14b78de9b0 100644 --- a/docs/server-levels.md +++ b/docs/server-levels.md @@ -5,6 +5,15 @@ Horizon's server does the same. That covers the dedicated server and single play (`Game::serving`, the default since #1114). So a LAN world's host and each guest can be in different dimensions at the same time. +## Contents + +- [How the single-level `Game` maps onto vanilla's levels](#how-the-single-level-game-maps-onto-vanillas-levels) +- [One code path for both](#one-code-path-for-both) +- [Cost of an extra level](#cost-of-an-extra-level) +- [Saving](#saving) +- [What's checked](#whats-checked) +- [Not done yet](#not-done-yet) + ## How the single-level `Game` maps onto vanilla's levels The game's tick code reads one level: the one held in `Game`'s own fields (the world, its streaming From e5ce84bc954010ed81041edec5c6d102056ba778 Mon Sep 17 00:00:00 2001 From: MSedgeMC <151820093+MSedgeMC@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:31:07 +0000 Subject: [PATCH 36/70] An effect a mob refuses is never added LivingEntity.addEffect asks canBeAffected before it stores the instance, and that rule had no port: Horizon stored whatever it was handed, so a spider and a nautilus took poison, a wither and a wither skeleton took the wither effect, a parched took weakness, and every undead mob listed poison and regeneration it can never be ticked by. can_be_affected now answers it the way the jar does. Five classes narrow it first: Spider.canBeAffected (CaveSpider with it) and AbstractNautilus refuse poison, WitherBoss and WitherSkeleton refuse the wither effect, Parched refuses weakness. The three entity type tags answer for the rest: immune_to_infested keeps infested off a silverfish, immune_to_oozing keeps oozing off a slime, and ignores_poison_and_regen, which is #minecraft:undead, keeps poison and regeneration off the undead. add_effect checks it before the absorption modifier, as vanilla does before the map lookup. WitherRoseBlock.entityInside no longer spells the wither mobs' refusal out itself; the effect it asks for is refused inside addEffect, which is where vanilla refuses it. --- crates/horizon-client/src/mobs.rs | 30 ++++++++++++++++++++++++++++ crates/horizon-client/src/mobs/ai.rs | 10 +++------- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/crates/horizon-client/src/mobs.rs b/crates/horizon-client/src/mobs.rs index 5ce47303e8..0a6990c353 100644 --- a/crates/horizon-client/src/mobs.rs +++ b/crates/horizon-client/src/mobs.rs @@ -3499,8 +3499,38 @@ impl Mob { self.heal(heal); } } + /// `LivingEntity.canBeAffected`: whether an effect of this kind may be added at + /// all, asked by `addEffect` before it stores anything. Five classes narrow the + /// rule first — a spider (a cave spider with it) and a nautilus refuse poison, a + /// wither and a wither skeleton the wither effect, a parched weakness — and the + /// entity type tags answer for the rest: `immune_to_infested` keeps infested off + /// a silverfish, `immune_to_oozing` keeps oozing off a slime, and + /// `ignores_poison_and_regen` (which is `#minecraft:undead`) keeps poison and + /// regeneration off a zombie, a skeleton, a phantom, a wither and the rest. + pub fn can_be_affected(&self, effect: &'static str) -> bool { + let effect = horizon_client_core::potions::namespaced(effect); + let refused = match self.species() { + Species::Spider | Species::CaveSpider | Species::Nautilus | Species::ZombieNautilus => { + effect == "minecraft:poison" + } + Species::Wither | Species::WitherSkeleton => effect == "minecraft:wither", + Species::Parched => effect == "minecraft:weakness", + Species::Silverfish => effect == "minecraft:infested", + Species::Slime => effect == "minecraft:oozing", + _ => false, + }; + if refused { + return false; + } + !(self.kind.flags.undead && matches!(effect, "minecraft:poison" | "minecraft:regeneration")) + } pub fn add_effect(&mut self, effect: &'static str, ticks: i32, amplifier: i32) { let effect = horizon_client_core::potions::namespaced(effect); + // LivingEntity.addEffect: an effect the mob refuses is never added, so it + // never joins the list the client draws or an effect tick reads. + if !self.can_be_affected(effect) { + return; + } // AbsorptionMobEffect.addAttributeModifiers: at least 4 hearts-halves per level. if effect == "minecraft:absorption" && self diff --git a/crates/horizon-client/src/mobs/ai.rs b/crates/horizon-client/src/mobs/ai.rs index 9f8f87331d..d21cac2d64 100644 --- a/crates/horizon-client/src/mobs/ai.rs +++ b/crates/horizon-client/src/mobs/ai.rs @@ -2630,13 +2630,9 @@ fn flower_contact_effects(m: &mut Mob, w: &MobWorld) { "minecraft:wither_rose" => { // World difficulty, not the regional one, and // isInvulnerableTo(wither) (the invulnerable - // flag, not the hit timer); WitherBoss and - // WitherSkeleton refuse the effect - // (`canBeAffected`). - if w.difficulty.base != 0 - && !m.invulnerable_flag - && !matches!(m.species(), Species::Wither | Species::WitherSkeleton) - { + // flag, not the hit timer); a wither and a wither + // skeleton refuse the effect in `addEffect`. + if w.difficulty.base != 0 && !m.invulnerable_flag { m.add_effect("minecraft:wither", 40, 0); } } From 3f89e00503adb22e1babab5d47d6d7abb72473e8 Mon Sep 17 00:00:00 2001 From: MSedgeMC <151820093+MSedgeMC@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:31:11 +0000 Subject: [PATCH 37/70] Test the effects a mob's type refuses Mob::add_effect on real types from the extracted data: a zombie, a skeleton, a phantom, a zombie horse and a wither never list poison or regeneration (the ignores_poison_and_regen tag is #minecraft:undead) while strength lands on each of them; a silverfish refuses infested and a slime oozing, a magma cube takes oozing; a spider, a cave spider and a nautilus refuse poison where a cow takes it; a wither and a wither skeleton refuse the wither effect a zombie takes; a parched refuses weakness and takes slowness. The test goes through the list add_effect builds, which is what the client draws and what the effect tick reads, and fails without the canBeAffected gate: the refused effect is listed instead of absent. --- crates/horizon-client/src/mobs.rs | 88 +++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/crates/horizon-client/src/mobs.rs b/crates/horizon-client/src/mobs.rs index 0a6990c353..93d716712d 100644 --- a/crates/horizon-client/src/mobs.rs +++ b/crates/horizon-client/src/mobs.rs @@ -4902,4 +4902,92 @@ mod totem_tests { ); } } +#[cfg(test)] +mod effect_refusal_tests { + use super::*; + + /// A mob of a real type, from the extracted data (`entity-types.json`), so the + /// `undead`, `MobCategory` and species facts are the ones the game has. + fn mob(types: &MobTypes, id: &str) -> Mob { + let kind = Arc::new(types.types.get(id).expect(id).clone()); + Mob::new(1, kind, Vec3::new(0.0, 64.0, 0.0), 0.0) + } + /// `LivingEntity.addEffect` asks `canBeAffected` before it stores anything: an + /// effect the mob's type refuses never joins the list, so the cloud on its head, + /// the `/effect` reply and an effect tick never see it. The refused ones are the + /// `ignores_poison_and_regen` tag (which is `#minecraft:undead`), a silverfish's + /// infested and a slime's oozing, plus the five classes that override the rule. + #[test] + fn an_effect_the_mobs_type_refuses_is_never_added() { + let root = std::path::Path::new(env!("CARGO_MANIFEST_DIR")) + .join("../../.local/horizon-client") + .join(horizon_core::VANILLA_VERSION); + if !root.join("entity-types.json").exists() { + return; + } + let types = MobTypes::load_for_server(&root).unwrap(); + let refused = |id: &str, effect: &'static str| { + let mut m = mob(&types, id); + m.add_effect(effect, 200, 0); + let listed = m.has_effect(effect); + (listed, m.extra.effects.len()) + }; + // `#minecraft:undead` is the `ignores_poison_and_regen` tag: a zombie, a + // skeleton and a phantom turn both poison and regeneration away. + for undead in [ + "minecraft:zombie", + "minecraft:skeleton", + "minecraft:phantom", + "minecraft:zombie_horse", + "minecraft:wither", + ] { + for effect in ["minecraft:poison", "minecraft:regeneration"] { + assert_eq!(refused(undead, effect), (false, 0), "{undead} {effect}"); + } + // Every other effect still lands on it. + assert_eq!(refused(undead, "minecraft:strength"), (true, 1), "{undead}"); + } + // The tag's other two effects, each refused by the one type in it. + assert_eq!( + refused("minecraft:silverfish", "minecraft:infested"), + (false, 0) + ); + assert_eq!( + refused("minecraft:silverfish", "minecraft:poison"), + (true, 1) + ); + assert_eq!(refused("minecraft:slime", "minecraft:oozing"), (false, 0)); + // A magma cube is not in `immune_to_oozing`, so oozing takes. + assert_eq!( + refused("minecraft:magma_cube", "minecraft:oozing"), + (true, 1) + ); + // Spider.canBeAffected and CaveSpider's inheritance: poison is refused, and a + // nautilus refuses it too (AbstractNautilus.canBeAffected), the zombie one + // through the same override, an ordinary mob not at all. + for spider in [ + "minecraft:spider", + "minecraft:cave_spider", + "minecraft:nautilus", + ] { + assert_eq!(refused(spider, "minecraft:poison"), (false, 0), "{spider}"); + } + assert_eq!(refused("minecraft:cow", "minecraft:poison"), (true, 1)); + // WitherBoss.canBeAffected and WitherSkeleton.canBeAffected: the wither + // effect only, which a zombie takes. + for wither in ["minecraft:wither", "minecraft:wither_skeleton"] { + assert_eq!(refused(wither, "minecraft:wither"), (false, 0), "{wither}"); + } + assert_eq!(refused("minecraft:zombie", "minecraft:wither"), (true, 1)); + // Parched.canBeAffected: weakness only, slowness takes. + assert_eq!( + refused("minecraft:parched", "minecraft:weakness"), + (false, 0) + ); + assert_eq!( + refused("minecraft:parched", "minecraft:slowness"), + (true, 1) + ); + } +} crate::impl_joined!(Mob); From b499414bfa14dd97a0fa40cf78d79f2b638bc66b Mon Sep 17 00:00:00 2001 From: MSedgeMC <151820093+MSedgeMC@users.noreply.github.com> Date: Tue, 3 Nov 2026 17:31:40 +0000 Subject: [PATCH 38/70] port_map: the effect refusal names its arm canBeAffected was in no verdict file, so the ledger ranked it unported; it is Mob::can_be_affected now, one row on LivingEntity and one on each class that overrides it. --- tools/port_map/classes-01.tsv | 1 + tools/port_map/game-006.tsv | 1 + tools/port_map/game-013.tsv | 1 + tools/port_map/game2-001.tsv | 1 + tools/port_map/game2-004.tsv | 2 ++ 5 files changed, 6 insertions(+) diff --git a/tools/port_map/classes-01.tsv b/tools/port_map/classes-01.tsv index 31d0d13c7a..75533aa874 100644 --- a/tools/port_map/classes-01.tsv +++ b/tools/port_map/classes-01.tsv @@ -68,6 +68,7 @@ StartAdmiringItemIfSeen.create inline crates/horizon-client/src/game/piglins.rs: StopAdmiringIfItemTooFarAway.create inline crates/horizon-client/src/mobs/piglin.rs::Memories::admire_seen the 9 block test on NEAREST_VISIBLE_WANTED_ITEM (squared 81) while the off hand holds what is admired, folded into the admire memory tick StopAdmiringIfTiredOfTryingToReachItem.create inline crates/horizon-client/src/mobs/piglin.rs::Memories::admire_seen the 200 tick TIME_TRYING_TO_REACH_ADMIRE_ITEM countdown that ends the admire, then DISABLE_WALK_TO_ADMIRE_ITEM for 200 Parched.getArrow inline crates/horizon-client/src/mobs/undead.rs::perform_ranged_attack Parched arrows carry weakness for 600 ticks +Parched.canBeAffected port crates/horizon-client/src/mobs.rs::Mob::can_be_affected weakness only, so weakness arrows a parched fires still land on others Stray.checkStraySpawnRules port crates/horizon-client/src/mobs/spawn_rules.rs::check_spawn_rules S::Stray arm: powder snow skipped, sky must be visible Stray.getArrow inline crates/horizon-client/src/mobs/undead.rs::perform_ranged_attack Stray arrows carry slowness for 600 ticks CaveSpider.getVehicleAttachmentPoint port crates/horizon-client/src/mobs/riders.rs::vehicle_attachment 0.21875 of the scale when the vehicle's box is no wider than the spider's; the wider case falls to the type default diff --git a/tools/port_map/game-006.tsv b/tools/port_map/game-006.tsv index db6b81af1b..6f4b82aa38 100644 --- a/tools/port_map/game-006.tsv +++ b/tools/port_map/game-006.tsv @@ -30,6 +30,7 @@ LinearInterpolationHandler.create inline crates/horizon-client/src/game/remote.r LinearInterpolationHandler.startInterpolating inline crates/horizon-client/src/game/remote.rs::Game::move_entity target kept as Lerp with steps 3 LinearInterpolationHandler.doInterpolate inline crates/horizon-client/src/game/remote.rs::Game::tick_remote_entities gap: minor: position eased by 1/steps; a boat's or minecart's yaw is set at once, not eased LivingEntity. port crates/horizon-client/src/mobs.rs::Mob::new box, health, random yaw +LivingEntity.canBeAffected port crates/horizon-client/src/mobs.rs::Mob::can_be_affected the three tags (immune_to_infested, immune_to_oozing, ignores_poison_and_regen which is #minecraft:undead) then the class overrides below; asked by addEffect before anything is stored LivingEntity.defineSynchedData port crates/horizon-client/src/game/lan.rs::mob_meta gap: player: arrow count (12) and stinger count (13) are never kept or sent, so arrows and bee stingers do not stay stuck in a body LivingEntity.hasLandedInLiquid port crates/horizon-world/src/living_fall.rs::ImpulseContext::landed_in_liquid water or lava with getDeltaMovement().y below 9.9999997E-6, from the guest move loop; the grace time still defers it LivingEntity.getDimensions port crates/horizon-client/src/mobs/living.rs::dims getDefaultDimensions(pose).scale(getScale()) for every living entity: the type's box (a class's baby, size or dig dims) with width, height and eye height all times minecraft:scale; a sleeper's 0.2 SLEEPING_DIMENSIONS comes before the scale diff --git a/tools/port_map/game-013.tsv b/tools/port_map/game-013.tsv index 7ac998c38f..569be46916 100644 --- a/tools/port_map/game-013.tsv +++ b/tools/port_map/game-013.tsv @@ -1,4 +1,5 @@ AbstractNautilus.createAttributes skip:data attributes come from the entity type table (MobType in mobs.rs) +AbstractNautilus.canBeAffected port crates/horizon-client/src/mobs.rs::Mob::can_be_affected poison, for the nautilus and its zombie AbstractNautilus.checkNautilusSpawnRules port crates/horizon-client/src/mobs/spawn_rules.rs::check_spawn_rules S::Nautilus arm: sea level minus 25 to minus 5, water below and above; only the nautilus has a placement (the zombie nautilus has none of its own) AbstractNautilus.canUseSlot port crates/horizon-client/src/game/dispenser.rs::mob_can_use_slot saddle and body slots need an alive, grown, tame nautilus AbstractNautilus.canDispenserEquipIntoSlot port crates/horizon-client/src/game/dispenser.rs::mob_can_dispenser_equip body and saddle always, other slots only with pick_up_loot diff --git a/tools/port_map/game2-001.tsv b/tools/port_map/game2-001.tsv index f861cf357a..440badeb84 100644 --- a/tools/port_map/game2-001.tsv +++ b/tools/port_map/game2-001.tsv @@ -72,6 +72,7 @@ DragonStrafePlayerPhase.navigateToNextPathNode port crates/horizon-client/src/ga DragonStrafePlayerPhase.begin inline crates/horizon-client/src/game/dragon.rs::Game::tick_phase fresh strafe state (charge 0, no path or target) when entered EnderDragonPhaseManager.getPhase skip:java lazy cache of phase instances; Horizon phases are enum values WitherBoss.createNavigation port crates/horizon-client/src/mobs/wither.rs::register gap: minor: door and float flags are not set here +WitherBoss.canBeAffected port crates/horizon-client/src/mobs.rs::Mob::can_be_affected the wither effect; the wither rose's own refusal is now that one WitherBoss.registerGoals port crates/horizon-client/src/mobs/wither.rs::register WitherBoss.defineSynchedData port crates/horizon-client/src/game/lan.rs::mob_meta gap: minor: only heads A and B are synced; the invulnerable counter is sent at index 19, the slot of target C WitherBoss.readAdditionalSaveData port crates/horizon-client/src/entity_nbt.rs::mob_from_nbt Invul read; boss bar name not checked here diff --git a/tools/port_map/game2-004.tsv b/tools/port_map/game2-004.tsv index 56328a13c3..502cddb077 100644 --- a/tools/port_map/game2-004.tsv +++ b/tools/port_map/game2-004.tsv @@ -98,10 +98,12 @@ Bogged.getArrow port crates/horizon-client/src/mobs/undead.rs::perform_ranged_at Bogged.shear port crates/horizon-client/src/game/creatures.rs::Game::interact_shear_mob shear sound, sheared flag, shearing loot, game event Bogged.spawnShearedMushrooms port crates/horizon-client/src/game/creatures.rs::Game::interact_shear_mob drops the shearing/bogged loot table at the mob's height WitherSkeleton.registerGoals port crates/horizon-client/src/mobs/undead.rs::register piglin and piglin brute target at priority 3, then the skeleton goals +WitherSkeleton.canBeAffected port crates/horizon-client/src/mobs.rs::Mob::can_be_affected the wither effect, over #minecraft:undead's poison and regeneration WitherSkeleton.canHoldItem port crates/horizon-client/src/mobs/equip.rs::wants_to_pick_up the wither_skeleton_disliked_weapons tag is refused WitherSkeleton.finalizeSpawn port crates/horizon-client/src/mobs/finalize.rs::Ctx::skeleton attack damage 4 for wither skeletons WitherSkeleton.getArrow port crates/horizon-client/src/mobs/undead.rs::perform_ranged_attack the arrow the bow made is `igniteForSeconds(100)` before the shot, so a wither skeleton's arrow burns for 2000 ticks Spider.registerGoals port crates/horizon-client/src/mobs/hostile.rs::register spider goals: leap at target and the spider melee that gives up in bright light +Spider.canBeAffected port crates/horizon-client/src/mobs.rs::Mob::can_be_affected poison, and CaveSpider takes the same arm by inheritance Spider.isClimbing skip:other getter; Horizon reads the mob's climbing field Spider.setClimbing inline crates/horizon-client/src/mobs/ai.rs::ai_step climbing set from the horizontal collision each tick Spider.getVehicleAttachmentPoint port crates/horizon-client/src/mobs/riders.rs::passenger_attachment gap: minor: always the spider's fixed seat; vanilla uses a lower seat for riders narrower than the spider From 659cce3abaf9f41f7faf7e7377970b28ed0156b5 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 18:43:08 +0100 Subject: [PATCH 39/70] launcher: Maximum memory in the Edit dialog, Overview's leftover rows (dark) The glass look keeps an instance's Maximum memory in its Edit dialog: a SettingRow under the icon, with the mockup's Slider (as Settings' Glass and Blur), the box in MB and the saved line. It sets the instance being edited, not the selected one. Home's Overview no longer shows it there. Overview drops the Microsoft account and Playing offline rows in the glass look: its top bar has Sign in with Microsoft and says Offline. Co-Authored-By: Claude Opus 5.5 --- launcher/src/glass_instance.rs | 4 + launcher/src/launch_page.rs | 141 ++++++++++++++++++++++++++++++++- launcher/src/main.rs | 10 ++- 3 files changed, 149 insertions(+), 6 deletions(-) diff --git a/launcher/src/glass_instance.rs b/launcher/src/glass_instance.rs index f9fcbd5df5..106979e87c 100644 --- a/launcher/src/glass_instance.rs +++ b/launcher/src/glass_instance.rs @@ -654,6 +654,10 @@ impl Launcher { div().flex().gap(px(10.)).child(name).child(group), )); body = body.child(self.icon_choice(editing, kind, cx)); + // The memory it may use, kept with the instance (not in the mockup, kept here). + if editing.is_some() { + body = body.children(self.glass_memory_row(cx)); + } div() .flex() .flex_col() diff --git a/launcher/src/launch_page.rs b/launcher/src/launch_page.rs index 56784dd135..88c83f1396 100644 --- a/launcher/src/launch_page.rs +++ b/launcher/src/launch_page.rs @@ -130,9 +130,23 @@ impl Launcher { self.reload_instances(); } + /// The instance the memory row sets: the one being edited while its dialog is open, else the + /// selected one. + fn memory_instance(&self) -> Option { + match self + .instances + .dialog + .as_ref() + .and_then(|d| d.editing.as_ref()) + { + Some(id) => self.instances.list.iter().find(|i| &i.id == id).cloned(), + None => self.selected_instance().cloned(), + } + } + /// The value under the pointer. Saving waits until the mouse comes up. fn pick_memory(&mut self, at: Point, cx: &mut Context) { - let Some(instance) = self.selected_instance().cloned() else { + let Some(instance) = self.memory_instance() else { return; }; let slider = &mut self.memory_slider; @@ -159,7 +173,7 @@ impl Launcher { let Some(memory) = self.memory_slider.dragging.take() else { return; }; - let Some(id) = self.selected_instance().map(|i| i.id.clone()) else { + let Some(id) = self.memory_instance().map(|i| i.id) else { return; }; self.save_memory(&id, memory); @@ -354,6 +368,129 @@ impl Launcher { ) } + /// Maximum memory in the glass look: a `SettingRow` of the instance's Edit dialog, the name + /// and what it does on the left, the mockup's `Slider` (as Settings' Glass and Blur) and the + /// box in MB on the right. Saved to the instance as it is set, as on Home. + pub(super) fn glass_memory_row(&mut self, cx: &mut Context) -> Option
    { + use crate::glass_ui as ui; + const TRACK: f32 = 208.; + let instance = self.memory_instance()?; + let total = self.memory_slider.total(); + let area = self.memory_slider.area.clone(); + let memory = self + .memory_slider + .dragging + .unwrap_or_else(|| Self::saved_memory(&instance)); + self.sync_memory_box(&instance.id, memory); + let typed = launch::parse_memory(self.servers.value(Field::MemoryLimit)); + let memory = match (self.servers.has_focus(Field::MemoryLimit), typed) { + (true, Ok(typed)) => typed, + _ => memory, + }; + let f = launch::memory_fraction(memory, total).clamp(0., 1.); + let about = match instance.java { + Some(_) => "How much memory Java may use (-Xmx). Set it too low and the game can crash.", + None => "The game stays under this. Very low values make it slower, and it crashes only if it can't run at all. Change it while playing with /ramlimit.", + }; + let track = div() + .id("instance-memory") + .relative() + .flex() + .flex_none() + .items_center() + .w(px(TRACK)) + .h(px(24.)) + .cursor_pointer() + .child( + canvas(move |bounds, _, _| area.set(Some(bounds)), |_, _, _, _| {}) + .absolute() + .size_full(), + ) + .child( + div() + .h(px(4.)) + .w_full() + .rounded_full() + .overflow_hidden() + .bg(ui::white(0.12)) + .child( + div() + .h_full() + .w(relative(f)) + .rounded_full() + .bg(ui::color(ui::look().accent_soft)), + ), + ) + .child( + div() + .absolute() + .left(px(f * (TRACK - 16.))) + .size(px(16.)) + .rounded_full() + .bg(gpui::white()), + ) + .on_mouse_down( + MouseButton::Left, + cx.listener(|this, ev: &MouseDownEvent, _, cx| this.pick_memory(ev.position, cx)), + ) + .on_mouse_move(cx.listener(|this, ev: &MouseMoveEvent, _, cx| { + if ev.pressed_button == Some(MouseButton::Left) + && this.memory_slider.dragging.is_some() + { + this.pick_memory(ev.position, cx); + } + })) + .on_mouse_up( + MouseButton::Left, + cx.listener(|this, _: &MouseUpEvent, _, cx| this.finish_memory(cx)), + ) + .on_mouse_up_out( + MouseButton::Left, + cx.listener(|this, _: &MouseUpEvent, _, cx| this.finish_memory(cx)), + ); + let unit = (memory.is_some() || self.servers.has_focus(Field::MemoryLimit)) + .then(|| ui::text(13., FontWeight::NORMAL, 0.6).child("MB")); + let input = self.field(Field::MemoryLimit, tr("No limit"), 96., cx); + let result = self.memory_slider.saved.as_ref().map(|s| match s { + MemorySaved::Ok(Some(mb)) => div().child(trf( + "Saved: the next Play uses at most {mb} MB.", + &[("mb", &mb.to_string())], + )), + MemorySaved::Ok(None) => div().child(tr("Saved: no memory limit on the next Play.")), + MemorySaved::Invalid => div() + .text_color(ui::color(horizon_theme::glass::DANGER)) + .child(tr( + "Type a number of MB like 4096, or 4gb, or leave it empty for no limit.", + )), + MemorySaved::Error(e) => div() + .text_color(ui::color(horizon_theme::glass::DANGER)) + .child(e.clone()), + }); + let note = div() + .flex() + .flex_col() + .gap(px(4.)) + .child(tr(about)) + .children(result); + Some( + ui::setting_row( + tr("Maximum memory"), + Some(note.into_any_element()), + Some( + div() + .flex() + .items_center() + .gap(px(12.)) + .child(track) + .child(input) + .children(unit) + .into_any_element(), + ), + ) + .px_0(), + ) + } + /// The Linux switches this computer can use: GameMode and MangoHud when installed, the /// dedicated GPU with two cards. fn linux_switches(&self, cx: &mut Context) -> Option
    { diff --git a/launcher/src/main.rs b/launcher/src/main.rs index 79adabc4e4..518d9d7d3f 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -3190,7 +3190,8 @@ impl Launcher { .children((!t.dark).then(|| self.instance_row(1, cx)).flatten()) .children(self.export_panel(cx)) .children(self.launch_panel(cx)) - .children(self.memory_row(cx)); + // The glass look keeps Maximum memory in the instance's Edit dialog. + .children((!t.dark).then(|| self.memory_row(cx)).flatten()); rows = match &java { Some(java) => rows.child(index_row( 2, @@ -3226,9 +3227,10 @@ impl Launcher { &t, )), }; - { - // The top bar shows who plays; a row only when there is something to do about it: - // no account that owns the game (Play needs one), or offline. + // The top bar shows who plays; a row only when there is something to do about it: no + // account that owns the game (Play needs one), or offline. The glass look's top bar has + // Sign in with Microsoft and says Offline itself. + if !t.dark { if self.owner_shown() == Some(false) { rows = rows.child(index_row( 5, From 367c94e36d4470ffc1c98f89e3b0d701312d1e49 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 18:53:48 +0100 Subject: [PATCH 40/70] launcher: the instance dialog's default name, dates and import, as the mockup's MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A new instance starts named as the mockup's defaultName says: "My Horizon" for a Horizon one (Java ones already had "Vanilla 26.3" / "Fabric 26.3"), following its kind until the player types a name. A default name already taken gets a number ("My Horizon 2"), so Create no longer fails on it. The glass dialog's Nightlies read "Nov 1" (formatDay), not 2026-11-01, and Edit offers Import a modpack… as the mockup's Edit does. Co-Authored-By: Claude Opus 5.5 --- launcher/lang/ar.json | 3 +- launcher/lang/de.json | 3 +- launcher/lang/es.json | 3 +- launcher/lang/fr.json | 3 +- launcher/lang/hi.json | 3 +- launcher/lang/hr.json | 3 +- launcher/lang/id.json | 3 +- launcher/lang/ja.json | 3 +- launcher/lang/ko.json | 3 +- launcher/lang/pl.json | 3 +- launcher/lang/pt-br.json | 3 +- launcher/lang/pt.json | 3 +- launcher/lang/ru.json | 3 +- launcher/lang/tr.json | 3 +- launcher/lang/uk.json | 3 +- launcher/lang/zh.json | 3 +- launcher/src/glass_instance.rs | 57 +++++++++++++++++----------------- launcher/src/instances_page.rs | 5 +++ launcher/src/new_instance.rs | 40 +++++++++++++++++++++--- 19 files changed, 101 insertions(+), 49 deletions(-) diff --git a/launcher/lang/ar.json b/launcher/lang/ar.json index da598db734..d4a2c82e86 100644 --- a/launcher/lang/ar.json +++ b/launcher/lang/ar.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "تم حذف {name}", "Launcher settings are back to their defaults": "عادت إعدادات المشغّل إلى قيمها الافتراضية", "Opened {path}": "تم فتح {path}", - "Saved {name}": "تم حفظ {name}" + "Saved {name}": "تم حفظ {name}", + "My Horizon": "Horizon الخاص بي" } diff --git a/launcher/lang/de.json b/launcher/lang/de.json index 86c5879110..ee7fdc1bfd 100644 --- a/launcher/lang/de.json +++ b/launcher/lang/de.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "{name} gelöscht", "Launcher settings are back to their defaults": "Die Launcher-Einstellungen sind wieder auf Standard", "Opened {path}": "{path} geöffnet", - "Saved {name}": "{name} gespeichert" + "Saved {name}": "{name} gespeichert", + "My Horizon": "Mein Horizon" } diff --git a/launcher/lang/es.json b/launcher/lang/es.json index 37cf647bed..8523840f76 100644 --- a/launcher/lang/es.json +++ b/launcher/lang/es.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "{name} eliminado", "Launcher settings are back to their defaults": "Los ajustes del launcher vuelven a sus valores predeterminados", "Opened {path}": "Abierto: {path}", - "Saved {name}": "{name} guardado" + "Saved {name}": "{name} guardado", + "My Horizon": "Mi Horizon" } diff --git a/launcher/lang/fr.json b/launcher/lang/fr.json index f7f9cce37c..a0bf2383c4 100644 --- a/launcher/lang/fr.json +++ b/launcher/lang/fr.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "{name} supprimée", "Launcher settings are back to their defaults": "Les réglages du launcher sont revenus à leurs valeurs par défaut", "Opened {path}": "Ouvert : {path}", - "Saved {name}": "{name} enregistrée" + "Saved {name}": "{name} enregistrée", + "My Horizon": "Mon Horizon" } diff --git a/launcher/lang/hi.json b/launcher/lang/hi.json index e4496102e7..d572a495c4 100644 --- a/launcher/lang/hi.json +++ b/launcher/lang/hi.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "{name} हटाया गया", "Launcher settings are back to their defaults": "लॉन्चर की सेटिंग्स डिफ़ॉल्ट पर लौट आईं", "Opened {path}": "खोला गया: {path}", - "Saved {name}": "{name} सहेजा गया" + "Saved {name}": "{name} सहेजा गया", + "My Horizon": "मेरा Horizon" } diff --git a/launcher/lang/hr.json b/launcher/lang/hr.json index 0ee98fc841..41f52cdaf9 100644 --- a/launcher/lang/hr.json +++ b/launcher/lang/hr.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "{name} je izbrisan", "Launcher settings are back to their defaults": "Postavke pokretača vraćene su na zadane", "Opened {path}": "Otvoreno: {path}", - "Saved {name}": "{name} je spremljen" + "Saved {name}": "{name} je spremljen", + "My Horizon": "Moj Horizon" } diff --git a/launcher/lang/id.json b/launcher/lang/id.json index 557c22d918..35c1f776de 100644 --- a/launcher/lang/id.json +++ b/launcher/lang/id.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "{name} dihapus", "Launcher settings are back to their defaults": "Pengaturan launcher kembali ke bawaan", "Opened {path}": "Dibuka: {path}", - "Saved {name}": "{name} disimpan" + "Saved {name}": "{name} disimpan", + "My Horizon": "Horizon Saya" } diff --git a/launcher/lang/ja.json b/launcher/lang/ja.json index f715f4da59..647c7369ec 100644 --- a/launcher/lang/ja.json +++ b/launcher/lang/ja.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "{name} を削除しました", "Launcher settings are back to their defaults": "ランチャーの設定を初期設定に戻しました", "Opened {path}": "開きました: {path}", - "Saved {name}": "{name} を保存しました" + "Saved {name}": "{name} を保存しました", + "My Horizon": "マイ Horizon" } diff --git a/launcher/lang/ko.json b/launcher/lang/ko.json index b3f48339d9..9f7f0e5475 100644 --- a/launcher/lang/ko.json +++ b/launcher/lang/ko.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "{name}을(를) 삭제했습니다", "Launcher settings are back to their defaults": "런처 설정이 기본값으로 돌아갔습니다", "Opened {path}": "열었음: {path}", - "Saved {name}": "{name}을(를) 저장했습니다" + "Saved {name}": "{name}을(를) 저장했습니다", + "My Horizon": "내 Horizon" } diff --git a/launcher/lang/pl.json b/launcher/lang/pl.json index e064e62fea..7027a7d283 100644 --- a/launcher/lang/pl.json +++ b/launcher/lang/pl.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "Usunięto {name}", "Launcher settings are back to their defaults": "Ustawienia launchera wróciły do domyślnych", "Opened {path}": "Otwarto: {path}", - "Saved {name}": "Zapisano {name}" + "Saved {name}": "Zapisano {name}", + "My Horizon": "Mój Horizon" } diff --git a/launcher/lang/pt-br.json b/launcher/lang/pt-br.json index 0d518796c1..c778251619 100644 --- a/launcher/lang/pt-br.json +++ b/launcher/lang/pt-br.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "{name} excluída", "Launcher settings are back to their defaults": "As configurações do launcher voltaram ao padrão", "Opened {path}": "Aberto: {path}", - "Saved {name}": "{name} salva" + "Saved {name}": "{name} salva", + "My Horizon": "Meu Horizon" } diff --git a/launcher/lang/pt.json b/launcher/lang/pt.json index 37278faa24..79e15aa245 100644 --- a/launcher/lang/pt.json +++ b/launcher/lang/pt.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "{name} eliminada", "Launcher settings are back to their defaults": "As definições do launcher voltaram às predefinições", "Opened {path}": "Aberto: {path}", - "Saved {name}": "{name} guardada" + "Saved {name}": "{name} guardada", + "My Horizon": "O meu Horizon" } diff --git a/launcher/lang/ru.json b/launcher/lang/ru.json index 18147a65d7..441b52464b 100644 --- a/launcher/lang/ru.json +++ b/launcher/lang/ru.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "{name} удалена", "Launcher settings are back to their defaults": "Настройки лаунчера сброшены по умолчанию", "Opened {path}": "Открыто: {path}", - "Saved {name}": "{name} сохранена" + "Saved {name}": "{name} сохранена", + "My Horizon": "Мой Horizon" } diff --git a/launcher/lang/tr.json b/launcher/lang/tr.json index 07c66a705a..f2e951e3de 100644 --- a/launcher/lang/tr.json +++ b/launcher/lang/tr.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "{name} silindi", "Launcher settings are back to their defaults": "Başlatıcı ayarları varsayılanlara döndü", "Opened {path}": "Açıldı: {path}", - "Saved {name}": "{name} kaydedildi" + "Saved {name}": "{name} kaydedildi", + "My Horizon": "Horizon'ım" } diff --git a/launcher/lang/uk.json b/launcher/lang/uk.json index 47794aa1ac..838ec3cfb8 100644 --- a/launcher/lang/uk.json +++ b/launcher/lang/uk.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "{name} видалено", "Launcher settings are back to their defaults": "Налаштування лаунчера скинуто до типових", "Opened {path}": "Відкрито: {path}", - "Saved {name}": "{name} збережено" + "Saved {name}": "{name} збережено", + "My Horizon": "Мій Horizon" } diff --git a/launcher/lang/zh.json b/launcher/lang/zh.json index e8f2262f3b..71be5b9ebe 100644 --- a/launcher/lang/zh.json +++ b/launcher/lang/zh.json @@ -1072,5 +1072,6 @@ "Deleted {name}": "已删除 {name}", "Launcher settings are back to their defaults": "启动器设置已恢复默认", "Opened {path}": "已打开 {path}", - "Saved {name}": "已保存 {name}" + "Saved {name}": "已保存 {name}", + "My Horizon": "我的 Horizon" } diff --git a/launcher/src/glass_instance.rs b/launcher/src/glass_instance.rs index 106979e87c..17bbade23e 100644 --- a/launcher/src/glass_instance.rs +++ b/launcher/src/glass_instance.rs @@ -453,33 +453,33 @@ impl Launcher { })) }); } - // A modpack becomes an instance by being imported, on the Mods page. - let import = (editing.is_none() && !self.instances.dialog.as_ref().is_some_and(|d| d.busy)) - .then(|| { - keyboard( - div() - .id("instance-import") - .flex() - .items_center() - .gap(px(10.)) - .h(px(40.)) - .px(px(8.)) - .rounded(px(radius::CONTROL)) - .cursor_pointer() - .font_family(horizon_theme::glass::FONT) - .text_size(px(14.)) - .text_color(white(ink::BODY)) - .hover(|s| s.bg(white(fill::ROW_HOVER)).text_color(white(ink::FULL))) - .child(ui::icon("package-01", 18., white(ink::BODY))) - .child(tr("Import a modpack…")), - &t, - ) - .on_click(cx.listener(|this, _: &ClickEvent, _, cx| { - this.instances.dialog = None; - this.show_modpack(None); - cx.notify(); - })) - }); + // A modpack becomes an instance by being imported, on the Mods page. Edit offers it too, + // as the mockup's does. + let import = (!self.instances.dialog.as_ref().is_some_and(|d| d.busy)).then(|| { + keyboard( + div() + .id("instance-import") + .flex() + .items_center() + .gap(px(10.)) + .h(px(40.)) + .px(px(8.)) + .rounded(px(radius::CONTROL)) + .cursor_pointer() + .font_family(horizon_theme::glass::FONT) + .text_size(px(14.)) + .text_color(white(ink::BODY)) + .hover(|s| s.bg(white(fill::ROW_HOVER)).text_color(white(ink::FULL))) + .child(ui::icon("package-01", 18., white(ink::BODY))) + .child(tr("Import a modpack…")), + &t, + ) + .on_click(cx.listener(|this, _: &ClickEvent, _, cx| { + this.instances.dialog = None; + this.show_modpack(None); + cx.notify(); + })) + }); div() .id("instance-aside") .flex() @@ -786,7 +786,8 @@ impl Launcher { .map(|tag| { let latest = follows.as_ref() == Some(&tag); let on = chosen.as_ref() == Some(&tag); - let date = horizon_launcher::nightly::date_of(&tag).map(str::to_string); + let date = horizon_launcher::nightly::date_of(&tag) + .map(|d| glass_versions::published(d, "")); let pick = tag.clone(); list_choice(format!("horizon-version-{tag}"), on, &t) .py(px(12.)) diff --git a/launcher/src/instances_page.rs b/launcher/src/instances_page.rs index 4daa22b1c7..96d0659d92 100644 --- a/launcher/src/instances_page.rs +++ b/launcher/src/instances_page.rs @@ -265,6 +265,7 @@ impl Launcher { /// Opens the dialog for a new instance, or for changing `editing`. pub(super) fn open_instance_dialog(&mut self, editing: Option) { + let editing_one = editing.is_some(); let (name, group) = editing .as_ref() .map(|i| (i.name.clone(), i.group.clone().unwrap_or_default())) @@ -284,6 +285,10 @@ impl Launcher { java: Default::default(), }); self.servers.text(Field::InstanceVersion).set(String::new()); + // A new one starts with the name it would get ("My Horizon"), until the player types one. + if !editing_one { + self.change(|_| {}); + } } /// Opens the dialog for a copy of the selected instance, named after it. diff --git a/launcher/src/new_instance.rs b/launcher/src/new_instance.rs index 59229fc225..25d7bfc817 100644 --- a/launcher/src/new_instance.rs +++ b/launcher/src/new_instance.rs @@ -60,6 +60,19 @@ impl JavaChoice { } } +/// `base`, or "base 2", "base 3"… when an instance already has it (names ignore case, as +/// `instances::create` does). +fn free_name(base: String, taken: &[&str]) -> String { + let free = |n: &String| !taken.iter().any(|t| t.eq_ignore_ascii_case(n)); + if free(&base) { + return base; + } + (2..) + .map(|n| format!("{base} {n}")) + .find(free) + .unwrap_or(base) +} + /// Mojang's list as the dialog has it. #[derive(Default)] pub(super) enum VersionList { @@ -75,17 +88,25 @@ impl Launcher { self.instances.dialog.as_mut().map(|d| &mut d.java) } - /// The name a new Java instance gets for what it plays now. + /// The name a new instance gets for what it plays now (the mockup's `defaultName`): "My + /// Horizon", "Vanilla 1.21.4", "Fabric 1.21.4", numbered past the ones already taken. fn default_name(&self) -> Option { let j = &self.instances.dialog.as_ref()?.java; let versions = match &self.instances.versions { VersionList::Ready(v) => Some(v), _ => None, }; - (j.kind != NewKind::Horizon) - .then(|| j.minecraft(versions)) - .flatten() - .map(|mc| j.default_name(&mc)) + let base = match j.kind { + NewKind::Horizon => tr("My Horizon").to_string(), + _ => j.default_name(&j.minecraft(versions)?), + }; + let taken: Vec<&str> = self + .instances + .list + .iter() + .map(|i| i.name.as_str()) + .collect(); + Some(free_name(base, &taken)) } /// Changes what the new instance plays. Its name follows while it is the one the dialog gave @@ -358,4 +379,13 @@ mod tests { choice.version = Some("1.20.1".into()); assert_eq!(choice.minecraft(None).as_deref(), Some("1.20.1")); } + + #[test] + fn a_default_name_skips_the_ones_taken() { + assert_eq!(free_name("My Horizon".into(), &["Horizon"]), "My Horizon"); + assert_eq!( + free_name("My Horizon".into(), &["my horizon", "My Horizon 2"]), + "My Horizon 3" + ); + } } From 4a6dc38a2693338c2cb26dcdaeb3ea17b6b46cf3 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:03:14 +0100 Subject: [PATCH 41/70] it_it: drop English copies, name the controller options As #8385 did for its tables: entries equal to en_us are dropped (the game falls back to en_us per key), and the six controller options, which the table had as verbs (look at the deadzone, invert appearance), are option names now. Co-Authored-By: Claude Opus 5.5 --- .../assets/horizon/lang/it_it.json | 30 ++++--------------- 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/it_it.json b/crates/horizon-client/assets/horizon/lang/it_it.json index 7a5ab7964f..52980b76ea 100644 --- a/crates/horizon-client/assets/horizon/lang/it_it.json +++ b/crates/horizon-client/assets/horizon/lang/it_it.json @@ -3,12 +3,12 @@ "horizon.options.vibration": "Vibrazione", "horizon.options.adaptive_triggers": "Trigger adattivi", "horizon.options.lightbar": "Barra luminosa", - "horizon.options.look_sensitivity": "Look Sensitivity", - "horizon.options.invert_x": "Inverti sguardo X", - "horizon.options.invert_y": "Inverti sguardo Y", - "horizon.options.sneak_button": "Pulsante furtivo", - "horizon.options.move_deadzone": "Sposta la zona morta", - "horizon.options.look_deadzone": "Guarda Zona morta", + "horizon.options.look_sensitivity": "Sensibilità visuale", + "horizon.options.invert_x": "Inverti visuale X", + "horizon.options.invert_y": "Inverti visuale Y", + "horizon.options.sneak_button": "Pulsante per accovacciarsi", + "horizon.options.move_deadzone": "Zona morta del movimento", + "horizon.options.look_deadzone": "Zona morta della visuale", "horizon.options.button_glyphs": "Glifi dei pulsanti", "horizon.options.menu_navigation": "Navigazione nel menu", "horizon.options.on_screen_keyboard": "Tastiera su schermo", @@ -16,13 +16,9 @@ "horizon.options.lightbar.health": "Salute", "horizon.options.lightbar.dimension": "Dimensione", "horizon.options.glyphs.auto": "Automatico", - "horizon.options.glyphs.xbox": "Xbox", - "horizon.options.glyphs.playstation": "PlayStation", - "horizon.options.glyphs.nintendo": "Nintendo", "horizon.options.menu_focus": "Concentrarsi", "horizon.options.menu_pointer": "Puntatore", "horizon.options.keyboard.auto": "Automatico", - "horizon.options.keyboard.horizon": "Horizon", "horizon.options.keyboard.steam": "Vapore", "horizon.options.unavailable": "Questa funzionalità non è ancora disponibile in Horizon.", "horizon.options.search": "Cerca impostazioni...", @@ -82,7 +78,6 @@ "horizon.mods.in_world": " (lasciare che il mondo cambi)", "horizon.mods.open_folder": "Apri la cartella Mod", "horizon.shader_packs.empty": "Nessun pacchetto shader: inseriscili nella cartella shaderpacks", - "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "Opzioni shader...", "horizon.shader_options.profile": "Profilo", "horizon.shader_options.loading": "Leggendo le opzioni del pacchetto shader...", @@ -108,7 +103,6 @@ "Worker Threads": "Discussioni sui lavoratori", "Resolution Scale": "Scala di risoluzione", "Anti-aliasing": "Anti-alias", - "Upscaling": "Upscaling", "Paper White": "Carta Bianca", "Peak Brightness": "Luminosità massima", "Black Level": "Livello nero", @@ -126,7 +120,6 @@ "Performance": "Prestazioni", "Balanced": "Equilibrato", "Quality": "Qualità", - "Ultra": "Ultra", "Ultra Performance": "Prestazioni ultra", "Native": "Nativo", "Full": "Pieno", @@ -134,22 +127,17 @@ "Efficient": "Efficiente", "Precise": "Preciso", "Auto (VSync)": "Automatico (sincronizzazione verticale)", - "FIFO": "FIFO", "Mailbox": "Cassetta postale", "Immediate": "Immediato", "Vulkan": "Vulcano", "DirectX 12": "DirectX12", - "OpenGL": "OpenGL", "FPS and Graph": "FPS e grafico", - "FPS": "FPS", "TAA": "TAAA", - "FXAA": "FXAA", "No cost": "Nessun costo", "Low cost": "Basso costo", "Medium cost": "Costo medio", "High cost": "Costo elevato", "Saves time": "Risparmia tempo", - "HDR": "HDR", "Graphics": "Grafica", "Done": "Fatto", "This feature is not yet available in Horizon.": "Questa funzionalità non è ancora disponibile in Horizon.", @@ -355,7 +343,6 @@ "horizon.splitscreen.setup.new_window": "Nuova finestra", "horizon.splitscreen.setup.fill_monitor": "Riempi %s", "horizon.splitscreen.setup.done": "Fatto", - "horizon.splitscreen.setup.switch": "%s: %s", "horizon.splitscreen.setup.on": "Su", "horizon.splitscreen.setup.off": "Spento", "horizon.splitscreen.setup.player": "Giocatore %s", @@ -406,7 +393,6 @@ "horizon.splitscreen.prompt.join.many": "%s controllori vogliono unirsi", "horizon.splitscreen.prompt.join.yes": "Partecipa", "horizon.splitscreen.prompt.join.as_p1": "Gioca come P1", - "horizon.splitscreen.prompt.join.no": "No", "horizon.splitscreen.prompt.lost": "%s: controller disconnesso", "horizon.splitscreen.prompt.lost.use_another": "Usane un altro", "horizon.splitscreen.prompt.lost.leave": "Lascia", @@ -477,7 +463,6 @@ "horizon.repro.error": "Riproduzione: %s", "horizon.repro.no_recording": "Non c'è ancora alcuna registrazione da esportare.", "horizon.repro.replay_started": "Replay iniziato: %s", - "horizon.pack.add": "+", "horizon.pack.addInfo": "Aggiungi un pacchetto di risorse da Modrinth", "horizon.pack.addWorking": "Chiedendo a Modrinth...", "horizon.pack.addNone": "Nessun pacchetto di risorse trovato", @@ -491,9 +476,6 @@ "horizon.pack.filter.realistic": "Realistico", "horizon.pack.filter.simplistic": "Semplicistico", "horizon.pack.filter.vanillaLike": "Simile alla vaniglia", - "horizon.pack.filter.x16": "16x", - "horizon.pack.filter.x32": "32x", - "horizon.pack.filter.x64": "64x", "horizon.pack.addFailed": "Impossibile aggiungere il pacchetto: %s", "horizon.extras.header.cosmetics": "Cosmetici", "horizon.extras.cosmetics_mine": "I miei cosmetici", From 1fd627c94c94b5d9a42b0785534ab5d50794463d Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:03:14 +0100 Subject: [PATCH 42/70] nl_nl: drop English copies, name the controller options As #8385 did for its tables: entries equal to en_us are dropped (the game falls back to en_us per key), and the six controller options, which the table had as verbs (look at the deadzone, invert appearance), are option names now. Co-Authored-By: Claude Opus 5.5 --- .../assets/horizon/lang/nl_nl.json | 44 +++---------------- 1 file changed, 6 insertions(+), 38 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/nl_nl.json b/crates/horizon-client/assets/horizon/lang/nl_nl.json index 2ceefb82e8..d5d9329e49 100644 --- a/crates/horizon-client/assets/horizon/lang/nl_nl.json +++ b/crates/horizon-client/assets/horizon/lang/nl_nl.json @@ -3,12 +3,12 @@ "horizon.options.vibration": "Trillingen", "horizon.options.adaptive_triggers": "Adaptieve triggers", "horizon.options.lightbar": "Lichtbalk", - "horizon.options.look_sensitivity": "Kijk Gevoeligheid", - "horizon.options.invert_x": "Kijk X omkeren", - "horizon.options.invert_y": "Kijk omkeren Y", - "horizon.options.sneak_button": "Sneak-knop", - "horizon.options.move_deadzone": "Verplaats dode zone", - "horizon.options.look_deadzone": "Kijk Deadzone", + "horizon.options.look_sensitivity": "Kijkgevoeligheid", + "horizon.options.invert_x": "Kijkrichting X omkeren", + "horizon.options.invert_y": "Kijkrichting Y omkeren", + "horizon.options.sneak_button": "Sluipknop", + "horizon.options.move_deadzone": "Dode zone voor bewegen", + "horizon.options.look_deadzone": "Dode zone voor kijken", "horizon.options.button_glyphs": "Knop-glyphs", "horizon.options.menu_navigation": "Menunavigatie", "horizon.options.on_screen_keyboard": "Schermtoetsenbord", @@ -16,17 +16,11 @@ "horizon.options.lightbar.health": "Gezondheid", "horizon.options.lightbar.dimension": "Afmeting", "horizon.options.glyphs.auto": "Automatisch", - "horizon.options.glyphs.xbox": "Xbox", - "horizon.options.glyphs.playstation": "PlayStation", - "horizon.options.glyphs.nintendo": "Nintendo", - "horizon.options.menu_focus": "Focus", "horizon.options.menu_pointer": "Aanwijzer", "horizon.options.keyboard.auto": "Automatisch", - "horizon.options.keyboard.horizon": "Horizon", "horizon.options.keyboard.steam": "Stoom", "horizon.options.unavailable": "Deze functie is nog niet beschikbaar in Horizon.", "horizon.options.search": "Zoekinstellingen...", - "horizon.pages.mods": "Mods", "horizon.pages.shader_packs": "Shader-pakketten", "horizon.pages.shader_options": "Shader-opties", "horizon.pages.controller": "Controllerinstellingen", @@ -68,7 +62,6 @@ "horizon.pages.open.controller": "Controllerinstellingen...", "horizon.pages.open.split_setup": "Gesplitst scherm...", "horizon.pages.open.extras": "Extra's...", - "horizon.pages.open.mods": "Mods...", "horizon.pages.open.agent": "AI-agent...", "horizon.pages.open.horizon_graphics": "Horizon-afbeeldingen...", "horizon.pages.open.controller_binds": "Controller bindt...", @@ -82,7 +75,6 @@ "horizon.mods.in_world": " (Laat de wereld veranderen)", "horizon.mods.open_folder": "Open de Mod-map", "horizon.shader_packs.empty": "Geen shader packs: plaats ze in de map shaderpacks", - "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "Shader-opties...", "horizon.shader_options.profile": "Profiel", "horizon.shader_options.loading": "De opties van het shader-pakket lezen...", @@ -107,7 +99,6 @@ "Frame Pacing": "Frametempo", "Worker Threads": "Werknemersdraden", "Resolution Scale": "Resolutieschaal", - "Anti-aliasing": "Anti-aliasing", "Upscaling": "Opschaling", "Paper White": "Papier Wit", "Peak Brightness": "Piekhelderheid", @@ -126,7 +117,6 @@ "Performance": "Prestaties", "Balanced": "Evenwichtig", "Quality": "Kwaliteit", - "Ultra": "Ultra", "Ultra Performance": "Ultra-prestaties", "Native": "Inheems", "Full": "Vol", @@ -134,22 +124,15 @@ "Efficient": "Efficiënt", "Precise": "Nauwkeurig", "Auto (VSync)": "Automatisch (VSync)", - "FIFO": "FIFO", "Mailbox": "Postbus", "Immediate": "Onmiddellijk", "Vulkan": "Vulkaan", - "DirectX 12": "DirectX 12", - "OpenGL": "OpenGL", "FPS and Graph": "FPS en grafiek", - "FPS": "FPS", - "TAA": "TAA", - "FXAA": "FXAA", "No cost": "Geen kosten", "Low cost": "Lage kosten", "Medium cost": "Middelmatige kosten", "High cost": "Hoge kosten", "Saves time": "Bespaart tijd", - "HDR": "HDR", "Graphics": "Grafisch", "Done": "Klaar", "This feature is not yet available in Horizon.": "Deze functie is nog niet beschikbaar in Horizon.", @@ -158,8 +141,6 @@ "Your GPU or graphics API doesn't support it.": "Uw GPU of grafische API ondersteunt dit niet.", "%s chunks": "%s brokken", "%s per frame": "%s per kader", - "%s MiB/frame": "%s MiB/frame", - "%s KiB/frame": "%s KiB/frame", "Auto (%s)": "Automatisch (%s)", "Full-detail terrain range. LOD Distance can extend local worlds farther.": "Volledig gedetailleerd terreinbereik. LOD Distance kan lokale werelden verder uitbreiden.", "Coarse distant terrain in local worlds. Integrated GPUs stop at 128 chunks.": "Grof afgelegen terrein in lokale werelden. Geïntegreerde GPU's stoppen bij 128 chunks.", @@ -230,7 +211,6 @@ "Shortcut": "Snelkoppeling", "Distance": "Afstand", "Display": "Weergave", - "Interface": "Interface", "Sky and weather": "Hemel en weer", "Lighting and entities": "Verlichting en entiteiten", "Textures": "Texturen", @@ -239,7 +219,6 @@ "Culling": "Ruimen", "Power": "Macht", "Frames": "Lijsten", - "Overlay": "Overlay", "Output": "Uitvoer", "Brightness": "Helderheid", "How far you see, the window and the HUD.": "Hoe ver je kunt kijken, het raam en de HUD.", @@ -255,7 +234,6 @@ "horizon.extras.header.particles": "Deeltjes", "horizon.extras.header.inventory": "Inventaris", "horizon.extras.header.chat": "Chatten", - "horizon.extras.header.multiplayer": "Multiplayer", "horizon.extras.header.sound": "Geluid", "horizon.extras.header.menus": "Menu's", "horizon.extras.fullbright": "Volledig helder", @@ -349,13 +327,11 @@ "horizon.extras.wheel_cycles_settings.tooltip": "Het scrollwiel boven een knop in de instellingen verandert de waarde, zoals in vanille. Uit: het wiel scrollt alleen door de lijst.", "horizon.extras.pack_browser.tooltip": "Select Resource Packs krijgt een knop Toevoegen die Modrinth doorzoekt en een pakket in uw packs-map installeert. Uit: het spel maakt nooit contact met Modrinth.", "horizon.extras.splitscreen.tooltip": "In een wereld kan een andere controller meedoen als nieuwe speler: druk op A wanneer dit wordt gevraagd, kies vervolgens een profiel en waar je wilt spelen.", - "horizon.splitscreen.setup.monitor": "Monitor %s", "horizon.splitscreen.setup.monitor_unknown": "een monitor", "horizon.splitscreen.setup.window": "Raam %s", "horizon.splitscreen.setup.new_window": "Nieuw venster", "horizon.splitscreen.setup.fill_monitor": "Vul %s", "horizon.splitscreen.setup.done": "Klaar", - "horizon.splitscreen.setup.switch": "%s: %s", "horizon.splitscreen.setup.on": "Aan", "horizon.splitscreen.setup.off": "Uit", "horizon.splitscreen.setup.player": "Speler %s", @@ -425,7 +401,6 @@ "Reuses still bells; ringing stays animated.": "Hergebruikt nog steeds bellen; beltoon blijft geanimeerd.", "Chests": "Kisten", "Reuses closed chests; moving lids stay animated.": "Hergebruik gesloten kisten; bewegende deksels blijven geanimeerd.", - "Banners": "Banners", "Reuses poles; flags and pattern layers still update.": "Hergebruik stokken; vlaggen en patroonlagen worden nog steeds bijgewerkt.", "Copper Golem Statues": "Koperen Golem-beelden", "Reuses statue geometry until its block state changes.": "Hergebruikt de geometrie van het standbeeld totdat de blokstatus verandert.", @@ -462,9 +437,7 @@ "horizon.agent.session_opened": "Voor deze sessie geopend door het programma waarmee het spel is gestart.", "horizon.agent.socket": "Socket: %s (kopieer de details voor het volledige pad)", "horizon.agent.local_only": "Alleen lokaal: agenten op deze computer, nooit op het netwerk.", - "%s nits": "%s nits", "Auto (%s nits)": "Automatisch (%s nits)", - "%.2f nits": "%.2f nits", "Hides models behind opaque blocks. Entities update. Off with custom packs.": "Verbergt modellen achter ondoorzichtige blokken. Entiteiten bijgewerkt. Weg met aangepaste pakketten.", "horizon.extras.repro_keys": "Snelkoppelingen voor opnemen", "horizon.extras.repro_keys.tooltip": "F3+R start of stopt een repro-opname en F3+E schrijft zijn bundel. Standaard uitgeschakeld: een opname kopieert de wereld.", @@ -477,7 +450,6 @@ "horizon.repro.error": "Reproductie: %s", "horizon.repro.no_recording": "Er is nog geen opname om te exporteren.", "horizon.repro.replay_started": "Herhaling gestart: %s", - "horizon.pack.add": "+", "horizon.pack.addInfo": "Voeg een resourcepakket van Modrinth toe", "horizon.pack.addWorking": "Modrinth gevraagd...", "horizon.pack.addNone": "Geen bronpakketten gevonden", @@ -487,13 +459,9 @@ "horizon.pack.installed": "Geïnstalleerd", "horizon.pack.search": "Zoeken", "horizon.pack.searchHint": "Zoek Modrinth...", - "horizon.pack.filters": "Filters", "horizon.pack.filter.realistic": "Realistisch", "horizon.pack.filter.simplistic": "Simplistisch", "horizon.pack.filter.vanillaLike": "Vanille-achtig", - "horizon.pack.filter.x16": "16x", - "horizon.pack.filter.x32": "32x", - "horizon.pack.filter.x64": "64x", "horizon.pack.addFailed": "Het pakket kon niet worden toegevoegd: %s", "horizon.extras.header.cosmetics": "Cosmetica", "horizon.extras.cosmetics_mine": "Mijn cosmetica", From 92f74d3be4e8232ebbec25a6916fdb92aca789d9 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:03:15 +0100 Subject: [PATCH 43/70] vi_vn: drop English copies, name the controller options As #8385 did for its tables: entries equal to en_us are dropped (the game falls back to en_us per key), and the six controller options, which the table had as verbs (look at the deadzone, invert appearance), are option names now. Co-Authored-By: Claude Opus 5.5 --- .../assets/horizon/lang/vi_vn.json | 31 ++++--------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/vi_vn.json b/crates/horizon-client/assets/horizon/lang/vi_vn.json index 37439e08bb..ff9fccb062 100644 --- a/crates/horizon-client/assets/horizon/lang/vi_vn.json +++ b/crates/horizon-client/assets/horizon/lang/vi_vn.json @@ -3,12 +3,12 @@ "horizon.options.vibration": "Rung", "horizon.options.adaptive_triggers": "Trình kích hoạt thích ứng", "horizon.options.lightbar": "thanh đèn", - "horizon.options.look_sensitivity": "Nhìn độ nhạy", - "horizon.options.invert_x": "Đảo ngược cái nhìn X", - "horizon.options.invert_y": "Đảo ngược cái nhìn Y", - "horizon.options.sneak_button": "Nút lén", - "horizon.options.move_deadzone": "Di chuyển vùng chết", - "horizon.options.look_deadzone": "Nhìn vùng chết", + "horizon.options.look_sensitivity": "Độ nhạy góc nhìn", + "horizon.options.invert_x": "Đảo trục nhìn X", + "horizon.options.invert_y": "Đảo trục nhìn Y", + "horizon.options.sneak_button": "Nút lén lút", + "horizon.options.move_deadzone": "Vùng chết di chuyển", + "horizon.options.look_deadzone": "Vùng chết góc nhìn", "horizon.options.button_glyphs": "Biểu tượng nút", "horizon.options.menu_navigation": "Điều hướng menu", "horizon.options.on_screen_keyboard": "Bàn phím ảo", @@ -16,13 +16,9 @@ "horizon.options.lightbar.health": "sức khỏe", "horizon.options.lightbar.dimension": "Kích thước", "horizon.options.glyphs.auto": "Tự động", - "horizon.options.glyphs.xbox": "Xbox", - "horizon.options.glyphs.playstation": "PlayStation", - "horizon.options.glyphs.nintendo": "Nintendo", "horizon.options.menu_focus": "Tập trung", "horizon.options.menu_pointer": "Con trỏ", "horizon.options.keyboard.auto": "Tự động", - "horizon.options.keyboard.horizon": "Horizon", "horizon.options.keyboard.steam": "hơi nước", "horizon.options.unavailable": "Tính năng này chưa có ở Horizon.", "horizon.options.search": "Cài đặt tìm kiếm...", @@ -82,7 +78,6 @@ "horizon.mods.in_world": " (để thế giới thay đổi)", "horizon.mods.open_folder": "Mở thư mục Mod", "horizon.shader_packs.empty": "Không có gói shader: đặt chúng vào thư mục shaderpacks", - "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "Tùy chọn đổ bóng...", "horizon.shader_options.profile": "Hồ sơ", "horizon.shader_options.loading": "Đọc các tùy chọn của gói đổ bóng...", @@ -134,22 +129,14 @@ "Efficient": "Hiệu quả", "Precise": "Chính xác", "Auto (VSync)": "Tự động (VSync)", - "FIFO": "FIFO", "Mailbox": "Hộp thư", "Immediate": "ngay lập tức", - "Vulkan": "Vulkan", - "DirectX 12": "DirectX 12", - "OpenGL": "OpenGL", "FPS and Graph": "FPS và đồ thị", - "FPS": "FPS", - "TAA": "TAA", - "FXAA": "FXAA", "No cost": "Không mất phí", "Low cost": "Chi phí thấp", "Medium cost": "Chi phí trung bình", "High cost": "Chi phí cao", "Saves time": "Tiết kiệm thời gian", - "HDR": "HDR", "Graphics": "đồ họa", "Done": "Xong", "This feature is not yet available in Horizon.": "Tính năng này chưa có ở Horizon.", @@ -258,7 +245,6 @@ "horizon.extras.header.multiplayer": "Nhiều người chơi", "horizon.extras.header.sound": "Âm thanh", "horizon.extras.header.menus": "Thực đơn", - "horizon.extras.fullbright": "Fullbright", "horizon.extras.dynamic_lights": "Đèn năng động", "horizon.extras.own_name_tag": "Thẻ tên riêng", "horizon.extras.hide_block_particles": "Ẩn các hạt phá khối", @@ -355,7 +341,6 @@ "horizon.splitscreen.setup.new_window": "Cửa sổ mới", "horizon.splitscreen.setup.fill_monitor": "Điền %s", "horizon.splitscreen.setup.done": "Xong", - "horizon.splitscreen.setup.switch": "%s: %s", "horizon.splitscreen.setup.on": "Bật", "horizon.splitscreen.setup.off": "Tắt", "horizon.splitscreen.setup.player": "Người chơi %s", @@ -477,7 +462,6 @@ "horizon.repro.error": "Đại diện: %s", "horizon.repro.no_recording": "Chưa có bản ghi nào để xuất.", "horizon.repro.replay_started": "Đã bắt đầu phát lại: %s", - "horizon.pack.add": "+", "horizon.pack.addInfo": "Thêm gói tài nguyên từ Modrinth", "horizon.pack.addWorking": "Hỏi Modrinth...", "horizon.pack.addNone": "Không tìm thấy gói tài nguyên nào", @@ -491,9 +475,6 @@ "horizon.pack.filter.realistic": "thực tế", "horizon.pack.filter.simplistic": "đơn giản", "horizon.pack.filter.vanillaLike": "Giống vani", - "horizon.pack.filter.x16": "16x", - "horizon.pack.filter.x32": "32x", - "horizon.pack.filter.x64": "64x", "horizon.pack.addFailed": "Không thể thêm gói: %s", "horizon.extras.header.cosmetics": "Mỹ phẩm", "horizon.extras.cosmetics_mine": "Mỹ phẩm của tôi", From 4ae086ce49946f1dc953a8bf3c4d232cffa9442f Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:03:15 +0100 Subject: [PATCH 44/70] th_th: drop English copies, name the controller options As #8385 did for its tables: entries equal to en_us are dropped (the game falls back to en_us per key), and the six controller options, which the table had as verbs (look at the deadzone, invert appearance), are option names now. Co-Authored-By: Claude Opus 5.5 --- .../assets/horizon/lang/th_th.json | 22 +++++-------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/th_th.json b/crates/horizon-client/assets/horizon/lang/th_th.json index 1f7151c431..946460648a 100644 --- a/crates/horizon-client/assets/horizon/lang/th_th.json +++ b/crates/horizon-client/assets/horizon/lang/th_th.json @@ -3,12 +3,12 @@ "horizon.options.vibration": "การสั่นสะเทือน", "horizon.options.adaptive_triggers": "ทริกเกอร์แบบปรับตัว", "horizon.options.lightbar": "แถบไฟ", - "horizon.options.look_sensitivity": "ดูอ่อนไหว", - "horizon.options.invert_x": "สลับลุค X", - "horizon.options.invert_y": "สลับลุค Y", - "horizon.options.sneak_button": "ปุ่มแอบ", - "horizon.options.move_deadzone": "ย้ายเดดโซน", - "horizon.options.look_deadzone": "ดูเดดโซนสิ", + "horizon.options.look_sensitivity": "ความไวในการมอง", + "horizon.options.invert_x": "กลับแกน X การมอง", + "horizon.options.invert_y": "กลับแกน Y การมอง", + "horizon.options.sneak_button": "ปุ่มย่อง", + "horizon.options.move_deadzone": "เดดโซนการเคลื่อนที่", + "horizon.options.look_deadzone": "เดดโซนการมอง", "horizon.options.button_glyphs": "ปุ่มสัญลักษณ์", "horizon.options.menu_navigation": "การนำทางเมนู", "horizon.options.on_screen_keyboard": "แป้นพิมพ์บนหน้าจอ", @@ -22,7 +22,6 @@ "horizon.options.menu_focus": "โฟกัส", "horizon.options.menu_pointer": "ตัวชี้", "horizon.options.keyboard.auto": "อัตโนมัติ", - "horizon.options.keyboard.horizon": "Horizon", "horizon.options.keyboard.steam": "ไอน้ำ", "horizon.options.unavailable": "ฟีเจอร์นี้ยังไม่มีให้บริการใน Horizon", "horizon.options.search": "การตั้งค่าการค้นหา...", @@ -82,7 +81,6 @@ "horizon.mods.in_world": " (ปล่อยให้โลกเปลี่ยนแปลง)", "horizon.mods.open_folder": "เปิดโฟลเดอร์ Mod", "horizon.shader_packs.empty": "ไม่มีแพ็คเชเดอร์: ใส่ไว้ในโฟลเดอร์เชเดอร์แพ็ก", - "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "ตัวเลือกเชเดอร์...", "horizon.shader_options.profile": "โปรไฟล์", "horizon.shader_options.loading": "กำลังอ่านตัวเลือกของแพ็คเชเดอร์...", @@ -134,16 +132,13 @@ "Efficient": "มีประสิทธิภาพ", "Precise": "แม่นยำ", "Auto (VSync)": "อัตโนมัติ (VSync)", - "FIFO": "FIFO", "Mailbox": "ตู้ไปรษณีย์", "Immediate": "ทันที", "Vulkan": "วัลแคน", "DirectX 12": "ไดเร็คเอ็กซ์ 12", - "OpenGL": "OpenGL", "FPS and Graph": "FPS และกราฟ", "FPS": "เฟรมต่อวินาที", "TAA": "สทท", - "FXAA": "FXAA", "No cost": "ไม่มีค่าใช้จ่าย", "Low cost": "ต้นทุนต่ำ", "Medium cost": "ต้นทุนปานกลาง", @@ -355,7 +350,6 @@ "horizon.splitscreen.setup.new_window": "หน้าต่างใหม่", "horizon.splitscreen.setup.fill_monitor": "กรอก %s", "horizon.splitscreen.setup.done": "เสร็จแล้ว", - "horizon.splitscreen.setup.switch": "%s: %s", "horizon.splitscreen.setup.on": "เปิด", "horizon.splitscreen.setup.off": "ปิด", "horizon.splitscreen.setup.player": "ผู้เล่น %s", @@ -477,7 +471,6 @@ "horizon.repro.error": "ทำซ้ำ: %s", "horizon.repro.no_recording": "ยังไม่มีการบันทึกที่จะส่งออก", "horizon.repro.replay_started": "เริ่มเล่นซ้ำ: %s", - "horizon.pack.add": "+", "horizon.pack.addInfo": "เพิ่มชุดทรัพยากรจาก Modrinth", "horizon.pack.addWorking": "ถามโมดรินธ์...", "horizon.pack.addNone": "ไม่พบชุดทรัพยากร", @@ -491,9 +484,6 @@ "horizon.pack.filter.realistic": "สมจริง", "horizon.pack.filter.simplistic": "เรียบง่าย", "horizon.pack.filter.vanillaLike": "เหมือนวานิลลา", - "horizon.pack.filter.x16": "16x", - "horizon.pack.filter.x32": "32x", - "horizon.pack.filter.x64": "64x", "horizon.pack.addFailed": "ไม่สามารถเพิ่มแพ็กได้: %s", "horizon.extras.header.cosmetics": "เครื่องสำอาง", "horizon.extras.cosmetics_mine": "เครื่องสำอางของฉัน", From eca4c2d566b46eb330809b83a801f162a0c503d8 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:03:16 +0100 Subject: [PATCH 45/70] ja_jp: drop English copies, name the controller options As #8385 did for its tables: entries equal to en_us are dropped (the game falls back to en_us per key), and the six controller options, which the table had as verbs (look at the deadzone, invert appearance), are option names now. Co-Authored-By: Claude Opus 5.5 --- .../assets/horizon/lang/ja_jp.json | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/ja_jp.json b/crates/horizon-client/assets/horizon/lang/ja_jp.json index d5f6222993..c0a9f94364 100644 --- a/crates/horizon-client/assets/horizon/lang/ja_jp.json +++ b/crates/horizon-client/assets/horizon/lang/ja_jp.json @@ -3,12 +3,12 @@ "horizon.options.vibration": "振動", "horizon.options.adaptive_triggers": "アダプティブトリガー", "horizon.options.lightbar": "ライトバー", - "horizon.options.look_sensitivity": "見た目の感度", - "horizon.options.invert_x": "反転ルック X", - "horizon.options.invert_y": "反転ルック Y", + "horizon.options.look_sensitivity": "視点感度", + "horizon.options.invert_x": "視点X反転", + "horizon.options.invert_y": "視点Y反転", "horizon.options.sneak_button": "スニークボタン", - "horizon.options.move_deadzone": "デッドゾーンの移動", - "horizon.options.look_deadzone": "ルックデッドゾーン", + "horizon.options.move_deadzone": "移動のデッドゾーン", + "horizon.options.look_deadzone": "視点のデッドゾーン", "horizon.options.button_glyphs": "ボタンのグリフ", "horizon.options.menu_navigation": "メニューナビゲーション", "horizon.options.on_screen_keyboard": "オンスクリーンキーボード", @@ -16,13 +16,11 @@ "horizon.options.lightbar.health": "健康", "horizon.options.lightbar.dimension": "次元", "horizon.options.glyphs.auto": "自動", - "horizon.options.glyphs.xbox": "Xbox", "horizon.options.glyphs.playstation": "プレイステーション", "horizon.options.glyphs.nintendo": "任天堂", "horizon.options.menu_focus": "フォーカス", "horizon.options.menu_pointer": "ポインタ", "horizon.options.keyboard.auto": "自動", - "horizon.options.keyboard.horizon": "Horizon", "horizon.options.keyboard.steam": "蒸気", "horizon.options.unavailable": "この機能は Horizon ではまだ利用できません。", "horizon.options.search": "検索設定...", @@ -82,7 +80,6 @@ "horizon.mods.in_world": " (世界の変化に任せて)", "horizon.mods.open_folder": "Modフォルダーを開く", "horizon.shader_packs.empty": "シェーダー パックはありません。シェーダー パック フォルダーに入れてください。", - "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "シェーダオプション...", "horizon.shader_options.profile": "プロフィール", "horizon.shader_options.loading": "シェーダー パックのオプションを読んでいます...", @@ -134,22 +131,16 @@ "Efficient": "効率的", "Precise": "正確な", "Auto (VSync)": "自動 (垂直同期)", - "FIFO": "FIFO", "Mailbox": "メールボックス", "Immediate": "即時", "Vulkan": "バルカン", "DirectX 12": "ダイレクトX12", - "OpenGL": "OpenGL", "FPS and Graph": "FPSとグラフ", - "FPS": "FPS", - "TAA": "TAA", - "FXAA": "FXAA", "No cost": "費用はかかりません", "Low cost": "低コスト", "Medium cost": "中コスト", "High cost": "高コスト", "Saves time": "時間を節約します", - "HDR": "HDR", "Graphics": "グラフィックス", "Done": "完了", "This feature is not yet available in Horizon.": "この機能は Horizon ではまだ利用できません。", @@ -355,7 +346,6 @@ "horizon.splitscreen.setup.new_window": "新しいウィンドウ", "horizon.splitscreen.setup.fill_monitor": "%s を入力してください", "horizon.splitscreen.setup.done": "完了", - "horizon.splitscreen.setup.switch": "%s: %s", "horizon.splitscreen.setup.on": "オン", "horizon.splitscreen.setup.off": "オフ", "horizon.splitscreen.setup.player": "プレーヤー%s", @@ -477,7 +467,6 @@ "horizon.repro.error": "再現: %s", "horizon.repro.no_recording": "エクスポートする録音がまだありません。", "horizon.repro.replay_started": "リプレイ開始: %s", - "horizon.pack.add": "+", "horizon.pack.addInfo": "Modrinth からリソース パックを追加する", "horizon.pack.addWorking": "モドリンスに聞いてみると…", "horizon.pack.addNone": "リソース パックが見つかりません", From 9949f2c975fdce3ffacb651e126d999e4ecf0137 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:03:17 +0100 Subject: [PATCH 46/70] ar_sa: drop English copies, name the controller options As #8385 did for its tables: entries equal to en_us are dropped (the game falls back to en_us per key), and the six controller options, which the table had as verbs (look at the deadzone, invert appearance), are option names now. Co-Authored-By: Claude Opus 5.5 --- .../assets/horizon/lang/ar_sa.json | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/ar_sa.json b/crates/horizon-client/assets/horizon/lang/ar_sa.json index 873f1f4b24..c666b22fd0 100644 --- a/crates/horizon-client/assets/horizon/lang/ar_sa.json +++ b/crates/horizon-client/assets/horizon/lang/ar_sa.json @@ -3,12 +3,12 @@ "horizon.options.vibration": "الاهتزاز", "horizon.options.adaptive_triggers": "المشغلات التكيفية", "horizon.options.lightbar": "الشريط الضوئي", - "horizon.options.look_sensitivity": "نظرة حساسية", - "horizon.options.invert_x": "عكس النظرة X", - "horizon.options.invert_y": "عكس نظرة Y", + "horizon.options.look_sensitivity": "حساسية النظر", + "horizon.options.invert_x": "عكس محور النظر X", + "horizon.options.invert_y": "عكس محور النظر Y", "horizon.options.sneak_button": "زر التسلل", - "horizon.options.move_deadzone": "تحرك المنطقة الميتة", - "horizon.options.look_deadzone": "انظر المنطقة الميتة", + "horizon.options.move_deadzone": "المنطقة الميتة للحركة", + "horizon.options.look_deadzone": "المنطقة الميتة للنظر", "horizon.options.button_glyphs": "الحروف الرسومية للأزرار", "horizon.options.menu_navigation": "التنقل في القائمة", "horizon.options.on_screen_keyboard": "لوحة المفاتيح على الشاشة", @@ -22,7 +22,6 @@ "horizon.options.menu_focus": "التركيز", "horizon.options.menu_pointer": "المؤشر", "horizon.options.keyboard.auto": "تلقائي", - "horizon.options.keyboard.horizon": "Horizon", "horizon.options.keyboard.steam": "البخار", "horizon.options.unavailable": "هذه الميزة غير متوفرة بعد في Horizon.", "horizon.options.search": "إعدادات البحث...", @@ -82,7 +81,6 @@ "horizon.mods.in_world": " (اترك العالم ليتغير)", "horizon.mods.open_folder": "افتح مجلد التعديل", "horizon.shader_packs.empty": "لا توجد حزم تظليل: ضعها في مجلدshaderpacks", - "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "خيارات التظليل...", "horizon.shader_options.profile": "الملف الشخصي", "horizon.shader_options.loading": "قراءة خيارات حزمة التظليل...", @@ -355,7 +353,6 @@ "horizon.splitscreen.setup.new_window": "نافذة جديدة", "horizon.splitscreen.setup.fill_monitor": "املأ %s", "horizon.splitscreen.setup.done": "تم", - "horizon.splitscreen.setup.switch": "%s: %s", "horizon.splitscreen.setup.on": "على", "horizon.splitscreen.setup.off": "إيقاف", "horizon.splitscreen.setup.player": "اللاعب %s", @@ -477,7 +474,6 @@ "horizon.repro.error": "استنساخ: %s", "horizon.repro.no_recording": "لا يوجد تسجيل للتصدير حتى الآن.", "horizon.repro.replay_started": "بدأت إعادة التشغيل: %s", - "horizon.pack.add": "+", "horizon.pack.addInfo": "إضافة حزمة موارد من Modrinth", "horizon.pack.addWorking": "يسأل مودرنث...", "horizon.pack.addNone": "لم يتم العثور على حزم الموارد", @@ -491,9 +487,6 @@ "horizon.pack.filter.realistic": "واقعية", "horizon.pack.filter.simplistic": "تبسيط", "horizon.pack.filter.vanillaLike": "تشبه الفانيليا", - "horizon.pack.filter.x16": "16x", - "horizon.pack.filter.x32": "32x", - "horizon.pack.filter.x64": "64x", "horizon.pack.addFailed": "لا يمكن إضافة الحزمة: %s", "horizon.extras.header.cosmetics": "مستحضرات التجميل", "horizon.extras.cosmetics_mine": "مستحضرات التجميل الخاصة بي", From ccc94b6bbee50659570f289606fdafc134c10363 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:03:17 +0100 Subject: [PATCH 47/70] pt_br: drop English copies, name the controller options As #8385 did for its tables: entries equal to en_us are dropped (the game falls back to en_us per key), and the six controller options, which the table had as verbs (look at the deadzone, invert appearance), are option names now. Co-Authored-By: Claude Opus 5.5 --- .../assets/horizon/lang/pt_br.json | 29 ++++--------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/pt_br.json b/crates/horizon-client/assets/horizon/lang/pt_br.json index 4dbf7b414d..ee862f8b58 100644 --- a/crates/horizon-client/assets/horizon/lang/pt_br.json +++ b/crates/horizon-client/assets/horizon/lang/pt_br.json @@ -3,12 +3,12 @@ "horizon.options.vibration": "Vibração", "horizon.options.adaptive_triggers": "Gatilhos adaptativos", "horizon.options.lightbar": "Barra de luzes", - "horizon.options.look_sensitivity": "Sensibilidade visual", - "horizon.options.invert_x": "Olhar Invertido X", - "horizon.options.invert_y": "Olhar Invertido Y", - "horizon.options.sneak_button": "Botão furtivo", - "horizon.options.move_deadzone": "Mover zona morta", - "horizon.options.look_deadzone": "Veja a zona morta", + "horizon.options.look_sensitivity": "Sensibilidade da câmera", + "horizon.options.invert_x": "Inverter câmera X", + "horizon.options.invert_y": "Inverter câmera Y", + "horizon.options.sneak_button": "Botão de agachar", + "horizon.options.move_deadzone": "Zona morta do movimento", + "horizon.options.look_deadzone": "Zona morta da câmera", "horizon.options.button_glyphs": "Glifos de botão", "horizon.options.menu_navigation": "Navegação no menu", "horizon.options.on_screen_keyboard": "Teclado na tela", @@ -16,9 +16,7 @@ "horizon.options.lightbar.health": "Saúde", "horizon.options.lightbar.dimension": "Dimensão", "horizon.options.glyphs.auto": "Automático", - "horizon.options.glyphs.xbox": "Xbox", "horizon.options.glyphs.playstation": "Playstation", - "horizon.options.glyphs.nintendo": "Nintendo", "horizon.options.menu_focus": "Foco", "horizon.options.menu_pointer": "Ponteiro", "horizon.options.keyboard.auto": "Automático", @@ -67,7 +65,6 @@ "horizon.pages.open.shader_packs": "Pacotes de sombreadores...", "horizon.pages.open.controller": "Configurações do controlador...", "horizon.pages.open.split_setup": "Tela dividida...", - "horizon.pages.open.extras": "Extras...", "horizon.pages.open.mods": "Modos...", "horizon.pages.open.agent": "Agente de IA...", "horizon.pages.open.horizon_graphics": "Gráficos Horizonte...", @@ -107,7 +104,6 @@ "Frame Pacing": "Ritmo de quadro", "Worker Threads": "Threads de trabalho", "Resolution Scale": "Escala de resolução", - "Anti-aliasing": "Anti-aliasing", "Upscaling": "Aumento de escala", "Paper White": "Papel Branco", "Peak Brightness": "Brilho máximo", @@ -126,7 +122,6 @@ "Performance": "Desempenho", "Balanced": "Equilibrado", "Quality": "Qualidade", - "Ultra": "Ultra", "Ultra Performance": "Ultradesempenho", "Native": "Nativo", "Full": "Completo", @@ -134,22 +129,16 @@ "Efficient": "Eficiente", "Precise": "Preciso", "Auto (VSync)": "Automático (VSync)", - "FIFO": "FIFO", "Mailbox": "Caixa de correio", "Immediate": "Imediato", "Vulkan": "Vulcano", "DirectX 12": "DirectX12", - "OpenGL": "OpenGL", "FPS and Graph": "FPS e gráfico", - "FPS": "FPS", - "TAA": "TAA", - "FXAA": "FXAA", "No cost": "Sem custo", "Low cost": "Baixo custo", "Medium cost": "Custo médio", "High cost": "Alto custo", "Saves time": "Economiza tempo", - "HDR": "HDR", "Graphics": "Gráficos", "Done": "Concluído", "This feature is not yet available in Horizon.": "Este recurso ainda não está disponível no Horizon.", @@ -230,7 +219,6 @@ "Shortcut": "Atalho", "Distance": "Distância", "Display": "Exibição", - "Interface": "Interface", "Sky and weather": "Céu e clima", "Lighting and entities": "Iluminação e entidades", "Textures": "Texturas", @@ -355,7 +343,6 @@ "horizon.splitscreen.setup.new_window": "Nova janela", "horizon.splitscreen.setup.fill_monitor": "Preencha %s", "horizon.splitscreen.setup.done": "Concluído", - "horizon.splitscreen.setup.switch": "%s: %s", "horizon.splitscreen.setup.on": "Ligado", "horizon.splitscreen.setup.off": "Desligado", "horizon.splitscreen.setup.player": "Jogador %s", @@ -477,7 +464,6 @@ "horizon.repro.error": "Reprodução: %s", "horizon.repro.no_recording": "Ainda não há gravação para exportar.", "horizon.repro.replay_started": "Repetição iniciada: %s", - "horizon.pack.add": "+", "horizon.pack.addInfo": "Adicione um pacote de recursos do Modrinth", "horizon.pack.addWorking": "Perguntando a Modrinth...", "horizon.pack.addNone": "Nenhum pacote de recursos encontrado", @@ -491,9 +477,6 @@ "horizon.pack.filter.realistic": "Realista", "horizon.pack.filter.simplistic": "Simplista", "horizon.pack.filter.vanillaLike": "Semelhante à baunilha", - "horizon.pack.filter.x16": "16x", - "horizon.pack.filter.x32": "32x", - "horizon.pack.filter.x64": "64x", "horizon.pack.addFailed": "O pacote não pôde ser adicionado: %s", "horizon.extras.header.cosmetics": "Cosméticos", "horizon.extras.cosmetics_mine": "Meus cosméticos", From 405cccee3411a9ac6fa5d4fc660c0b1a16256ecc Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:03:18 +0100 Subject: [PATCH 48/70] cs_cz: drop English copies, name the controller options As #8385 did for its tables: entries equal to en_us are dropped (the game falls back to en_us per key), and the six controller options, which the table had as verbs (look at the deadzone, invert appearance), are option names now. Co-Authored-By: Claude Opus 5.5 --- .../assets/horizon/lang/cs_cz.json | 55 ++----------------- 1 file changed, 5 insertions(+), 50 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/cs_cz.json b/crates/horizon-client/assets/horizon/lang/cs_cz.json index f088797c08..036a200082 100644 --- a/crates/horizon-client/assets/horizon/lang/cs_cz.json +++ b/crates/horizon-client/assets/horizon/lang/cs_cz.json @@ -4,34 +4,26 @@ "horizon.options.adaptive_triggers": "Adaptivní spouštěče", "horizon.options.lightbar": "Světelná lišta", "horizon.options.look_sensitivity": "Citlivost pohledu", - "horizon.options.invert_x": "Invertovat vzhled X", - "horizon.options.invert_y": "Invertovat vzhled Y", - "horizon.options.sneak_button": "Tlačítko Sneak", - "horizon.options.move_deadzone": "Přesunout mrtvou zónu", - "horizon.options.look_deadzone": "Podívejte se na Deadzone", + "horizon.options.invert_x": "Invertovat pohled X", + "horizon.options.invert_y": "Invertovat pohled Y", + "horizon.options.sneak_button": "Tlačítko plížení", + "horizon.options.move_deadzone": "Mrtvá zóna pohybu", + "horizon.options.look_deadzone": "Mrtvá zóna pohledu", "horizon.options.button_glyphs": "Glyfy tlačítek", "horizon.options.menu_navigation": "Navigace v menu", "horizon.options.on_screen_keyboard": "Klávesnice na obrazovce", "horizon.options.chat_delay": "Zpoždění chatu", "horizon.options.lightbar.health": "Zdraví", "horizon.options.lightbar.dimension": "Dimenze", - "horizon.options.glyphs.auto": "Auto", - "horizon.options.glyphs.xbox": "Xbox", - "horizon.options.glyphs.playstation": "PlayStation", - "horizon.options.glyphs.nintendo": "Nintendo", "horizon.options.menu_focus": "Zaměřte se", "horizon.options.menu_pointer": "Ukazatel", - "horizon.options.keyboard.auto": "Auto", "horizon.options.keyboard.horizon": "Horizont", "horizon.options.keyboard.steam": "Pára", "horizon.options.unavailable": "Tato funkce zatím není v Horizon k dispozici.", "horizon.options.search": "Nastavení vyhledávání...", - "horizon.pages.mods": "Mods", "horizon.pages.shader_packs": "Shader Pack", "horizon.pages.shader_options": "Možnosti stínování", "horizon.pages.controller": "Nastavení ovladače", - "horizon.pages.controller_binds": "Controller Binds", - "horizon.pages.extras": "Horizon Extras", "horizon.pages.settings": "Nastavení Horizonu", "horizon.pages.agent": "Agent AI", "horizon.split.leave": "Odejděte", @@ -39,8 +31,6 @@ "horizon.pages.split_profiles": "kdo hraje?", "horizon.pages.split_setup": "Nastavení rozdělené obrazovky", "horizon.pages.music": "Hudba", - "horizon.pages.music.menu": "Menu", - "horizon.pages.music.overworld": "Overworld", "horizon.pages.music.creative": "Kreativní", "horizon.pages.music.underwater": "Pod vodou", "horizon.pages.music.end": "Konec", @@ -70,7 +60,6 @@ "horizon.pages.open.extras": "Extra...", "horizon.pages.open.mods": "Modifikace...", "horizon.pages.open.agent": "AI agent...", - "horizon.pages.open.horizon_graphics": "Horizon Graphics...", "horizon.pages.open.controller_binds": "Ovladač se váže...", "horizon.pages.open.horizon_settings": "Nastavení Horizonu...", "horizon.pages.open.music": "hudba...", @@ -95,7 +84,6 @@ "Preset": "Přednastaveno", "LOD Distance": "LOD Vzdálenost", "Far Detail": "Daleký detail", - "Cave Culling": "Cave Culling", "Entity Culling": "Vyřazení entit", "Chunk Updates": "Aktualizace bloků", "Upload Budget": "Nahrát rozpočet", @@ -104,11 +92,8 @@ "Weather": "Počasí", "Animated Textures": "Animované textury", "Present Mode": "Současný režim", - "Frame Pacing": "Frame Pacing", "Worker Threads": "Pracovní vlákna", "Resolution Scale": "Měřítko rozlišení", - "Anti-aliasing": "Anti-aliasing", - "Upscaling": "Upscaling", "Paper White": "Bílý papír", "Peak Brightness": "Špičkový jas", "Black Level": "Úroveň černé", @@ -121,35 +106,24 @@ "On": "Zapnuto", "Off": "Vypnuto", "Unlimited": "Neomezené", - "Auto": "Auto", "Custom": "Vlastní", "Performance": "Výkon", "Balanced": "Vyvážený", "Quality": "Kvalita", - "Ultra": "Ultra", "Ultra Performance": "Ultra výkon", "Native": "Nativní", "Full": "Plný", "Reduced": "Snížená", "Efficient": "Efektivní", "Precise": "Přesný", - "Auto (VSync)": "Auto (VSync)", - "FIFO": "FIFO", "Mailbox": "Poštovní schránka", "Immediate": "Okamžitě", - "Vulkan": "Vulkan", - "DirectX 12": "DirectX 12", - "OpenGL": "OpenGL", "FPS and Graph": "FPS a graf", - "FPS": "FPS", - "TAA": "TAA", - "FXAA": "FXAA", "No cost": "Žádné náklady", "Low cost": "Nízká cena", "Medium cost": "Střední náklady", "High cost": "Vysoká cena", "Saves time": "Šetří čas", - "HDR": "HDR", "Graphics": "Grafika", "Done": "Hotovo", "This feature is not yet available in Horizon.": "Tato funkce zatím není v Horizon k dispozici.", @@ -160,7 +134,6 @@ "%s per frame": "%s na snímek", "%s MiB/frame": "%s MiB/snímek", "%s KiB/frame": "%s KiB/snímek", - "Auto (%s)": "Auto (%s)", "Full-detail terrain range. LOD Distance can extend local worlds farther.": "Úplný rozsah terénu. LOD Distance může rozšířit místní světy dále.", "Coarse distant terrain in local worlds. Integrated GPUs stop at 128 chunks.": "Hrubý vzdálený terén v místních světech. Integrované GPU se zastaví na 128 blocích.", "Reduced draws far terrain coarser: faster on this integrated GPU.": "Snížené vykreslování daleko hrubšího terénu: rychlejší na tomto integrovaném GPU.", @@ -254,11 +227,8 @@ "horizon.extras.header.third_person": "Třetí osoba", "horizon.extras.header.particles": "Částice", "horizon.extras.header.inventory": "Inventář", - "horizon.extras.header.chat": "Chat", - "horizon.extras.header.multiplayer": "Multiplayer", "horizon.extras.header.sound": "Zvuk", "horizon.extras.header.menus": "Menu", - "horizon.extras.fullbright": "Fullbright", "horizon.extras.dynamic_lights": "Dynamická světla", "horizon.extras.own_name_tag": "Vlastní jmenovka", "horizon.extras.hide_block_particles": "Skryjte částice pro rozbití bloku", @@ -272,7 +242,6 @@ "horizon.extras.no_ai": "Žádná umělá inteligence", "horizon.extras.agent_control": "Kontrola agentů", "horizon.extras.discord_presence": "Neshoda bohatá přítomnost", - "horizon.extras.splitscreen": "Splitscreen", "horizon.extras.chat_animation": "Hladký chat", "horizon.extras.chat_indicator": "Indikátor zprávy", "horizon.extras.wheel_cycles_settings": "Rolovací kolečko mění nastavení", @@ -338,7 +307,6 @@ "horizon.friends.code_ready": "Váš zvací kód je připraven: Herní menu, Hrajte s přáteli. Zkopírujte jej a pošlete svým přátelům.", "horizon.friends.share_failed": "Nepodařilo se sdílet svět: %s", "horizon.friends.finding_route": "Zjištění, jak vás mohou přátelé kontaktovat…", - "horizon.osk.shift": "Shift", "horizon.osk.space": "Prostor", "horizon.osk.delete": "Smazat", "horizon.osk.type": "Typ", @@ -349,13 +317,11 @@ "horizon.extras.wheel_cycles_settings.tooltip": "Rolovací kolečko nad tlačítkem v nastavení mění jeho hodnotu, jako u vanilky. Vypnuto, kolečko pouze posouvá seznam.", "horizon.extras.pack_browser.tooltip": "Select Resource Packs dostane tlačítko Přidat, které prohledá Modrinth a nainstaluje balíček do vaší složky balíčků. Vypnuto, hra nikdy nekontaktuje Modrinth.", "horizon.extras.splitscreen.tooltip": "Ve světě se může jako nový hráč připojit další ovladač: stiskněte A, když se zeptá, pak vyberte profil a kde hrát.", - "horizon.splitscreen.setup.monitor": "Monitor %s", "horizon.splitscreen.setup.monitor_unknown": "monitor", "horizon.splitscreen.setup.window": "okno %s", "horizon.splitscreen.setup.new_window": "Nové okno", "horizon.splitscreen.setup.fill_monitor": "Vyplňte %s", "horizon.splitscreen.setup.done": "Hotovo", - "horizon.splitscreen.setup.switch": "%s: %s", "horizon.splitscreen.setup.on": "Zapnuto", "horizon.splitscreen.setup.off": "Vypnuto", "horizon.splitscreen.setup.player": "Hráč %s", @@ -383,7 +349,6 @@ "horizon.splitscreen.setup.identify": "Identifikovat", "horizon.splitscreen.setup.layout.two": "2 sdílení: %s", "horizon.splitscreen.setup.layout.three": "3 sdílení: %s", - "horizon.splitscreen.setup.layout.two.0": "Auto", "horizon.splitscreen.setup.layout.two.1": "Bok po boku", "horizon.splitscreen.setup.layout.two.2": "Nahoře a dole", "horizon.splitscreen.setup.layout.three.0": "Jeden široký nahoře", @@ -398,7 +363,6 @@ "horizon.splitscreen.setup.help.revert": "Vraťte zpět změny, které dosud nebyly použity.", "horizon.splitscreen.setup.help.apply": "Hrajte tak, jak ukazuje mapa.", "horizon.splitscreen.setup.help.unchanged": "Zatím se nic nezměnilo.", - "horizon.splitscreen.setup.give_up_pad": "Give Up Pad", "horizon.splitscreen.prompt.controller_connected": "Ovladač připojen", "horizon.splitscreen.prompt.controller_disconnected": "Ovladač odpojen", "horizon.splitscreen.prompt.controller_disconnected.hint": "Znovu jej připojte nebo stiskněte tlačítko na jiném", @@ -431,7 +395,6 @@ "Reuses statue geometry until its block state changes.": "Znovu používá geometrii sochy, dokud se její stav bloku nezmění.", "Leaf Culling": "Vyřazování listů", "Every leaf face. Vanilla's fancy leaves.": "Tvář každého listu. Vanilkovy efektní listy.", - "Distant Plant Dither": "Distant Plant Dither", "Keeps fine plants in high-res packs from fading far away.": "Chrání jemné rostliny v balíčcích s vysokým rozlišením před vyblednutím.", "Screenshot Quality": "Kvalita snímku obrazovky", "F2 screenshots at this many times the game's resolution. Higher takes longer.": "F2 screenshoty v tomto mnohonásobku rozlišení hry. Vyšší trvá déle.", @@ -441,7 +404,6 @@ "Reuses the pack shadow map when sun, view and world match. Off by default.": "Znovu použije mapu stínu balíčku, když se slunce, pohled a svět shodují. Ve výchozím nastavení vypnuto.", "Find BlueMap": "Najděte BlueMap", "On servers, finds their BlueMap web map for far terrain. Next join.": "Na serverech najde jejich webovou mapu BlueMap pro vzdálený terén. Další připojení.", - "BlueMap Radius": "BlueMap Radius", "How far around you BlueMap tiles are downloaded. Next join.": "Jak daleko ve vašem okolí jsou staženy dlaždice BlueMap. Další připojení.", "Synchronous": "Synchronní", "Asynchronous": "Asynchronní", @@ -463,21 +425,17 @@ "horizon.agent.socket": "Socket: %s (zkopírujte podrobnosti pro jeho úplnou cestu)", "horizon.agent.local_only": "Pouze místní: agenti na tomto počítači, nikdy v síti.", "%s nits": "%s hnid", - "Auto (%s nits)": "Auto (%s nits)", "%.2f nits": "%.2f hnid", "Hides models behind opaque blocks. Entities update. Off with custom packs.": "Skryje modely za neprůhledné bloky. Aktualizace entit. Vypnuto s vlastními balíčky.", "horizon.extras.repro_keys": "Zkratky nahrávání", "horizon.extras.repro_keys.tooltip": "F3+R spustí nebo zastaví repro záznam a F3+E zapíše jeho svazek. Ve výchozím nastavení vypnuto: nahrávka zkopíruje svět.", "horizon.agent.record_session": "Spusťte záznam relace", "horizon.agent.record_stop": "Zastavit záznam relace", - "horizon.agent.export_repro": "Export Repro Bundle", "horizon.repro.started": "Nahrávání zahájeno; F3+R to zastaví a zapíše svazek.", "horizon.repro.stopped": "Nahrávání zastaveno: %s", "horizon.repro.bundle": "Repro balíček: %s", - "horizon.repro.error": "Repro: %s", "horizon.repro.no_recording": "Zatím není k dispozici žádná nahrávka k exportu.", "horizon.repro.replay_started": "Přehrávání zahájeno: %s", - "horizon.pack.add": "+", "horizon.pack.addInfo": "Přidejte zdrojový balíček z Modrinth", "horizon.pack.addWorking": "Ptát se Modrintha...", "horizon.pack.addNone": "Nebyly nalezeny žádné balíčky zdrojů", @@ -491,9 +449,6 @@ "horizon.pack.filter.realistic": "Realistické", "horizon.pack.filter.simplistic": "Zjednodušené", "horizon.pack.filter.vanillaLike": "Vanilkové", - "horizon.pack.filter.x16": "16x", - "horizon.pack.filter.x32": "32x", - "horizon.pack.filter.x64": "64x", "horizon.pack.addFailed": "Balíček nelze přidat: %s", "horizon.extras.header.cosmetics": "Kosmetika", "horizon.extras.cosmetics_mine": "Moje kosmetika", From 64fda24b0395c3c6550d3627ee2f6b077cd7ec8e Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:03:18 +0100 Subject: [PATCH 49/70] sv_se: drop English copies, name the controller options As #8385 did for its tables: entries equal to en_us are dropped (the game falls back to en_us per key), and the six controller options, which the table had as verbs (look at the deadzone, invert appearance), are option names now. Co-Authored-By: Claude Opus 5.5 --- .../assets/horizon/lang/sv_se.json | 57 ++----------------- 1 file changed, 5 insertions(+), 52 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/sv_se.json b/crates/horizon-client/assets/horizon/lang/sv_se.json index 0a1ae66fd1..c1294bd538 100644 --- a/crates/horizon-client/assets/horizon/lang/sv_se.json +++ b/crates/horizon-client/assets/horizon/lang/sv_se.json @@ -1,37 +1,27 @@ { "horizon.options.controller": "Styrenhet", - "horizon.options.vibration": "Vibration", "horizon.options.adaptive_triggers": "Adaptiva triggers", "horizon.options.lightbar": "Ljusfält", - "horizon.options.look_sensitivity": "Utseende Känslighet", - "horizon.options.invert_x": "Invertera Look X", - "horizon.options.invert_y": "Invertera Look Y", + "horizon.options.look_sensitivity": "Siktkänslighet", + "horizon.options.invert_x": "Invertera sikt X", + "horizon.options.invert_y": "Invertera sikt Y", "horizon.options.sneak_button": "Smygknapp", - "horizon.options.move_deadzone": "Flytta dödzon", - "horizon.options.look_deadzone": "Titta på Deadzone", + "horizon.options.move_deadzone": "Dödzon för rörelse", + "horizon.options.look_deadzone": "Dödzon för sikt", "horizon.options.button_glyphs": "Knapp Glyfer", "horizon.options.menu_navigation": "Menynavigering", "horizon.options.on_screen_keyboard": "Skärmtangentbord", "horizon.options.chat_delay": "Chattfördröjning", "horizon.options.lightbar.health": "Hälsa", - "horizon.options.lightbar.dimension": "Dimension", - "horizon.options.glyphs.auto": "Auto", - "horizon.options.glyphs.xbox": "Xbox", - "horizon.options.glyphs.playstation": "PlayStation", - "horizon.options.glyphs.nintendo": "Nintendo", "horizon.options.menu_focus": "Fokusera", "horizon.options.menu_pointer": "Pekare", - "horizon.options.keyboard.auto": "Auto", - "horizon.options.keyboard.horizon": "Horizon", "horizon.options.keyboard.steam": "Ånga", "horizon.options.unavailable": "Den här funktionen är ännu inte tillgänglig i Horizon.", "horizon.options.search": "Sökinställningar...", - "horizon.pages.mods": "Mods", "horizon.pages.shader_packs": "Shader-paket", "horizon.pages.shader_options": "Skuggningsalternativ", "horizon.pages.controller": "Kontrollinställningar", "horizon.pages.controller_binds": "Controller binder", - "horizon.pages.extras": "Horizon Extras", "horizon.pages.settings": "Horizon-inställningar", "horizon.pages.agent": "AI-agent", "horizon.split.leave": "Lämna", @@ -44,7 +34,6 @@ "horizon.pages.music.creative": "Kreativt", "horizon.pages.music.underwater": "Under vattnet", "horizon.pages.music.end": "Slutet", - "horizon.pages.music.boss": "Boss", "horizon.pages.music.credits": "Krediter", "horizon.pages.music.overworld_biomes": "Övervärldsbiomer", "horizon.pages.music.nether_biomes": "Nedre biomer", @@ -68,7 +57,6 @@ "horizon.pages.open.controller": "Kontrollinställningar...", "horizon.pages.open.split_setup": "Delad skärm...", "horizon.pages.open.extras": "Extra...", - "horizon.pages.open.mods": "Mods...", "horizon.pages.open.agent": "AI-agent...", "horizon.pages.open.horizon_graphics": "Horizon-grafik...", "horizon.pages.open.controller_binds": "Styrenheten binder...", @@ -77,12 +65,10 @@ "horizon.mods.empty": "Inga mods: lägg .hmod-filer i mappen horizon-mods", "horizon.mods.stopped": " (Stoppade)", "horizon.mods.not_built": " (Ej byggd)", - "horizon.mods.dev": " (Dev)", "horizon.mods.settings": "Inställningar", "horizon.mods.in_world": " (låt världen förändras)", "horizon.mods.open_folder": "Öppna Mod-mappen", "horizon.shader_packs.empty": "Inga shader-paket: lägg dem i shaderpacks-mappen", - "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "Skuggningsalternativ...", "horizon.shader_options.profile": "Profil", "horizon.shader_options.loading": "Läser shader-paketets alternativ...", @@ -96,15 +82,12 @@ "LOD Distance": "LOD Avstånd", "Far Detail": "Lång detalj", "Cave Culling": "Grottavlivning", - "Entity Culling": "Entity Culling", "Chunk Updates": "Bituppdateringar", "Upload Budget": "Ladda upp budget", - "Sky": "Sky", "Fog": "Dimma", "Weather": "Väder", "Animated Textures": "Animerade texturer", "Present Mode": "Presentationsläge", - "Frame Pacing": "Frame Pacing", "Worker Threads": "Arbetstrådar", "Resolution Scale": "Upplösningsskala", "Anti-aliasing": "Kantutjämning", @@ -116,40 +99,27 @@ "Battery Mode": "Batteriläge", "Graphics API": "Grafik API", "Translucent Batching": "Genomskinlig batchning", - "Performance Overlay": "Performance Overlay", "Full Detail Distance": "Fullständig detalj avstånd", "On": "På", "Off": "Av", "Unlimited": "Obegränsad", - "Auto": "Auto", "Custom": "Anpassad", "Performance": "Prestanda", "Balanced": "Balanserad", "Quality": "Kvalitet", - "Ultra": "Ultra", "Ultra Performance": "Ultraprestanda", "Native": "Infödd", - "Full": "Full", "Reduced": "Minskad", "Efficient": "Effektiv", "Precise": "Exakt", - "Auto (VSync)": "Auto (VSync)", - "FIFO": "FIFO", "Mailbox": "Brevlåda", "Immediate": "Omedelbart", - "Vulkan": "Vulkan", - "DirectX 12": "DirectX 12", - "OpenGL": "OpenGL", "FPS and Graph": "FPS och graf", - "FPS": "FPS", - "TAA": "TAA", - "FXAA": "FXAA", "No cost": "Ingen kostnad", "Low cost": "Låg kostnad", "Medium cost": "Medium kostnad", "High cost": "Hög kostnad", "Saves time": "Sparar tid", - "HDR": "HDR", "Graphics": "Grafik", "Done": "Klart", "This feature is not yet available in Horizon.": "Den här funktionen är ännu inte tillgänglig i Horizon.", @@ -160,7 +130,6 @@ "%s per frame": "%s per bildruta", "%s MiB/frame": "%s MiB/bildruta", "%s KiB/frame": "%s KiB/ram", - "Auto (%s)": "Auto (%s)", "Full-detail terrain range. LOD Distance can extend local worlds farther.": "Terrängområde med fullständiga detaljer. LOD Distance kan sträcka lokala världar längre.", "Coarse distant terrain in local worlds. Integrated GPUs stop at 128 chunks.": "Grov avlägsen terräng i lokala världar. Integrerade GPU:er stannar vid 128 bitar.", "Reduced draws far terrain coarser: faster on this integrated GPU.": "Minskat drar långt grövre terräng: snabbare med denna integrerade GPU.", @@ -229,7 +198,6 @@ "Search options": "Sökalternativ", "Shortcut": "Genväg", "Distance": "Avstånd", - "Display": "Display", "Interface": "Gränssnitt", "Sky and weather": "Himmel och väder", "Lighting and entities": "Belysning och enheter", @@ -255,10 +223,8 @@ "horizon.extras.header.particles": "Partiklar", "horizon.extras.header.inventory": "Inventering", "horizon.extras.header.chat": "Chatta", - "horizon.extras.header.multiplayer": "Multiplayer", "horizon.extras.header.sound": "Ljud", "horizon.extras.header.menus": "Menyer", - "horizon.extras.fullbright": "Fullbright", "horizon.extras.dynamic_lights": "Dynamiska lampor", "horizon.extras.own_name_tag": "Egen namnskylt", "horizon.extras.hide_block_particles": "Göm blockbrytande partiklar", @@ -355,7 +321,6 @@ "horizon.splitscreen.setup.new_window": "Nytt fönster", "horizon.splitscreen.setup.fill_monitor": "Fyll %s", "horizon.splitscreen.setup.done": "Klart", - "horizon.splitscreen.setup.switch": "%s: %s", "horizon.splitscreen.setup.on": "På", "horizon.splitscreen.setup.off": "Av", "horizon.splitscreen.setup.player": "Spelare %s", @@ -383,7 +348,6 @@ "horizon.splitscreen.setup.identify": "Identifiera", "horizon.splitscreen.setup.layout.two": "2 delar: %s", "horizon.splitscreen.setup.layout.three": "3 delar: %s", - "horizon.splitscreen.setup.layout.two.0": "Auto", "horizon.splitscreen.setup.layout.two.1": "Sida vid sida", "horizon.splitscreen.setup.layout.two.2": "Topp och botten", "horizon.splitscreen.setup.layout.three.0": "En bred på toppen", @@ -435,9 +399,7 @@ "Keeps fine plants in high-res packs from fading far away.": "Håller fina växter i högupplösta förpackningar från att blekna långt borta.", "Screenshot Quality": "Skärmbildskvalitet", "F2 screenshots at this many times the game's resolution. Higher takes longer.": "F2-skärmdumpar med så här många gånger spelets upplösning. Högre tar längre tid.", - "Frame Generation": "Frame Generation", "Shows a made-up frame between each two real ones: smoother, a little more lag.": "Visar en påhittad ram mellan vardera två riktiga: mjukare, lite mer fördröjning.", - "Shadow Cache": "Shadow Cache", "Reuses the pack shadow map when sun, view and world match. Off by default.": "Återanvänder packskuggkartan när sol, utsikt och värld matchar. Av som standard.", "Find BlueMap": "Hitta BlueMap", "On servers, finds their BlueMap web map for far terrain. Next join.": "På servrar, hittar deras BlueMap webbkarta för långt terräng. Gå med nästa.", @@ -445,7 +407,6 @@ "How far around you BlueMap tiles are downloaded. Next join.": "Hur långt runt dig BlueMap-plattor laddas ner. Gå med nästa.", "Synchronous": "Synkron", "Asynchronous": "Asynkron", - "Solid": "Solid", "Solid Aggressive": "Solid Aggressiv", "Hollow": "Ihålig", "Leaves fully inside a canopy draw solid: fewer see-through layers.": "Bladen helt inuti en kapell drar fast: färre genomskinliga lager.", @@ -462,9 +423,6 @@ "horizon.agent.session_opened": "Öppnades för denna session av programmet som startade spelet.", "horizon.agent.socket": "Socket: %s (kopiera detaljerna för dess fullständiga sökväg)", "horizon.agent.local_only": "Endast lokalt: agenter på den här datorn, aldrig nätverket.", - "%s nits": "%s nits", - "Auto (%s nits)": "Auto (%s nits)", - "%.2f nits": "%.2f nits", "Hides models behind opaque blocks. Entities update. Off with custom packs.": "Döljer modeller bakom ogenomskinliga block. Entitetsuppdatering. Av med anpassade förpackningar.", "horizon.extras.repro_keys": "Inspelningsgenvägar", "horizon.extras.repro_keys.tooltip": "F3+R startar eller stoppar en repro-inspelning och F3+E skriver sitt paket. Av som standard: en inspelning kopierar världen.", @@ -474,10 +432,8 @@ "horizon.repro.started": "Inspelning startade; F3+R stoppar det och skriver paketet.", "horizon.repro.stopped": "Inspelning stoppad: %s", "horizon.repro.bundle": "Repro-paket: %s", - "horizon.repro.error": "Repro: %s", "horizon.repro.no_recording": "Det finns ingen inspelning att exportera än.", "horizon.repro.replay_started": "Omspelning startade: %s", - "horizon.pack.add": "+", "horizon.pack.addInfo": "Lägg till ett resurspaket från Modrinth", "horizon.pack.addWorking": "Frågar Modrinth...", "horizon.pack.addNone": "Inga resurspaket hittades", @@ -491,9 +447,6 @@ "horizon.pack.filter.realistic": "Realistiskt", "horizon.pack.filter.simplistic": "Förenklat", "horizon.pack.filter.vanillaLike": "Vaniljliknande", - "horizon.pack.filter.x16": "16x", - "horizon.pack.filter.x32": "32x", - "horizon.pack.filter.x64": "64x", "horizon.pack.addFailed": "Paketet kunde inte läggas till: %s", "horizon.extras.header.cosmetics": "Kosmetika", "horizon.extras.cosmetics_mine": "Min kosmetika", From 8d7c8e6b02d70fdfe1c9e80043ec2f2bcd5571c2 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:03:19 +0100 Subject: [PATCH 50/70] el_gr: drop English copies, name the controller options As #8385 did for its tables: entries equal to en_us are dropped (the game falls back to en_us per key), and the six controller options, which the table had as verbs (look at the deadzone, invert appearance), are option names now. Co-Authored-By: Claude Opus 5.5 --- .../assets/horizon/lang/el_gr.json | 47 +++---------------- 1 file changed, 6 insertions(+), 41 deletions(-) diff --git a/crates/horizon-client/assets/horizon/lang/el_gr.json b/crates/horizon-client/assets/horizon/lang/el_gr.json index b7d49ddade..3b5a2db407 100644 --- a/crates/horizon-client/assets/horizon/lang/el_gr.json +++ b/crates/horizon-client/assets/horizon/lang/el_gr.json @@ -2,13 +2,12 @@ "horizon.options.controller": "Ελεγκτής", "horizon.options.vibration": "Δόνηση", "horizon.options.adaptive_triggers": "Προσαρμοστικοί ενεργοποιητές", - "horizon.options.lightbar": "Lightbar", - "horizon.options.look_sensitivity": "Ευαισθησία εμφάνισης", - "horizon.options.invert_x": "Invert Look X", - "horizon.options.invert_y": "Invert Look Y", - "horizon.options.sneak_button": "Sneak Button", - "horizon.options.move_deadzone": "Μετακίνηση Deadzone", - "horizon.options.look_deadzone": "Δείτε το Deadzone", + "horizon.options.look_sensitivity": "Ευαισθησία κάμερας", + "horizon.options.invert_x": "Αντιστροφή κάμερας X", + "horizon.options.invert_y": "Αντιστροφή κάμερας Y", + "horizon.options.sneak_button": "Κουμπί σκυψίματος", + "horizon.options.move_deadzone": "Νεκρή ζώνη κίνησης", + "horizon.options.look_deadzone": "Νεκρή ζώνη κάμερας", "horizon.options.button_glyphs": "Γλυφικά κουμπιών", "horizon.options.menu_navigation": "Πλοήγηση μενού", "horizon.options.on_screen_keyboard": "Πληκτρολόγιο οθόνης", @@ -16,22 +15,15 @@ "horizon.options.lightbar.health": "Υγεία", "horizon.options.lightbar.dimension": "Διάσταση", "horizon.options.glyphs.auto": "Αυτόματο", - "horizon.options.glyphs.xbox": "Xbox", - "horizon.options.glyphs.playstation": "PlayStation", - "horizon.options.glyphs.nintendo": "Nintendo", "horizon.options.menu_focus": "Εστίαση", "horizon.options.menu_pointer": "Δείκτης", "horizon.options.keyboard.auto": "Αυτόματο", - "horizon.options.keyboard.horizon": "Horizon", - "horizon.options.keyboard.steam": "Steam", "horizon.options.unavailable": "Αυτή η δυνατότητα δεν είναι ακόμη διαθέσιμη στο Horizon.", "horizon.options.search": "Ρυθμίσεις αναζήτησης...", - "horizon.pages.mods": "Mods", "horizon.pages.shader_packs": "Πακέτα Shader", "horizon.pages.shader_options": "Επιλογές Shader", "horizon.pages.controller": "Ρυθμίσεις ελεγκτή", "horizon.pages.controller_binds": "Δεσμοί ελεγκτή", - "horizon.pages.extras": "Horizon Extras", "horizon.pages.settings": "Ρυθμίσεις Horizon", "horizon.pages.agent": "Πράκτορας AI", "horizon.split.leave": "Φύγε", @@ -68,21 +60,17 @@ "horizon.pages.open.controller": "Ρυθμίσεις ελεγκτή...", "horizon.pages.open.split_setup": "Διαίρεση οθόνης...", "horizon.pages.open.extras": "Έξτρα...", - "horizon.pages.open.mods": "Mods...", "horizon.pages.open.agent": "Πράκτορας AI...", - "horizon.pages.open.horizon_graphics": "Horizon Graphics...", "horizon.pages.open.controller_binds": "Ο ελεγκτής δεσμεύει...", "horizon.pages.open.horizon_settings": "Ρυθμίσεις Horizon...", "horizon.pages.open.music": "Μουσική...", "horizon.mods.empty": "Χωρίς mods: τοποθετήστε τα αρχεία .hmod στο φάκελο horizon-mods", "horizon.mods.stopped": " (Σταμάτησε)", "horizon.mods.not_built": " (Δεν έχει κατασκευαστεί)", - "horizon.mods.dev": " (Dev)", "horizon.mods.settings": "Ρυθμίσεις", "horizon.mods.in_world": " (άσε τον κόσμο να αλλάξει)", "horizon.mods.open_folder": "Ανοίξτε το φάκελο Mod", "horizon.shader_packs.empty": "Χωρίς πακέτα shader: τοποθετήστε τα στο φάκελο shaderpacks", - "horizon.shader_packs.kind_horizon": " (Horizon)", "horizon.shader_options.open": "Επιλογές Shader...", "horizon.shader_options.profile": "Προφίλ", "horizon.shader_options.loading": "Διαβάζοντας τις επιλογές του πακέτου shader...", @@ -95,7 +83,6 @@ "Preset": "Προκαθορισμένη", "LOD Distance": "Απόσταση LOD", "Far Detail": "Μακρινή λεπτομέρεια", - "Cave Culling": "Cave Culling", "Entity Culling": "Σφαγή οντοτήτων", "Chunk Updates": "Ενημερώσεις κομματιών", "Upload Budget": "Μεταφόρτωση προϋπολογισμού", @@ -107,7 +94,6 @@ "Frame Pacing": "Βηματοδότηση καρέ", "Worker Threads": "Εργατικά νήματα", "Resolution Scale": "Κλίμακα Ανάλυσης", - "Anti-aliasing": "Anti-aliasing", "Upscaling": "Αναβάθμιση", "Paper White": "Λευκό χαρτί", "Peak Brightness": "Μέγιστη φωτεινότητα", @@ -126,30 +112,21 @@ "Performance": "Απόδοση", "Balanced": "Ισορροπημένο", "Quality": "Ποιότητα", - "Ultra": "Ultra", - "Ultra Performance": "Ultra Performance", "Native": "Εγγενής", "Full": "Γεμάτη", "Reduced": "Μειώθηκε", "Efficient": "Αποτελεσματική", "Precise": "Ακριβές", "Auto (VSync)": "Αυτόματο (VSync)", - "FIFO": "FIFO", "Mailbox": "Γραμματοκιβώτιο", "Immediate": "Άμεση", - "Vulkan": "Vulkan", - "DirectX 12": "DirectX 12", - "OpenGL": "OpenGL", "FPS and Graph": "FPS και Γράφημα", - "FPS": "FPS", "TAA": "ΤΑΑ", - "FXAA": "FXAA", "No cost": "Χωρίς κόστος", "Low cost": "Χαμηλό κόστος", "Medium cost": "Μεσαίου κόστους", "High cost": "Υψηλό κόστος", "Saves time": "Εξοικονομεί χρόνο", - "HDR": "HDR", "Graphics": "Γραφικά", "Done": "Έγινε", "This feature is not yet available in Horizon.": "Αυτή η δυνατότητα δεν είναι ακόμη διαθέσιμη στο Horizon.", @@ -255,10 +232,8 @@ "horizon.extras.header.particles": "Σωματίδια", "horizon.extras.header.inventory": "Απογραφή", "horizon.extras.header.chat": "Συνομιλία", - "horizon.extras.header.multiplayer": "Multiplayer", "horizon.extras.header.sound": "Ήχος", "horizon.extras.header.menus": "Μενού", - "horizon.extras.fullbright": "Fullbright", "horizon.extras.dynamic_lights": "Δυναμικά φώτα", "horizon.extras.own_name_tag": "Δική ετικέτα ονόματος", "horizon.extras.hide_block_particles": "Απόκρυψη σωματιδίων θραύσης μπλοκ", @@ -272,7 +247,6 @@ "horizon.extras.no_ai": "Όχι AI", "horizon.extras.agent_control": "Έλεγχος πράκτορα", "horizon.extras.discord_presence": "Discord Πλούσια Παρουσία", - "horizon.extras.splitscreen": "Splitscreen", "horizon.extras.chat_animation": "Ομαλή συνομιλία", "horizon.extras.chat_indicator": "Ένδειξη μηνύματος", "horizon.extras.wheel_cycles_settings": "Ο τροχός κύλισης αλλάζει τις ρυθμίσεις", @@ -355,7 +329,6 @@ "horizon.splitscreen.setup.new_window": "Νέο παράθυρο", "horizon.splitscreen.setup.fill_monitor": "Γέμισμα %s", "horizon.splitscreen.setup.done": "Έγινε", - "horizon.splitscreen.setup.switch": "%s: %s", "horizon.splitscreen.setup.on": "Ενεργό", "horizon.splitscreen.setup.off": "Απενεργοποίηση", "horizon.splitscreen.setup.player": "Παίκτης %s", @@ -398,7 +371,6 @@ "horizon.splitscreen.setup.help.revert": "Αναίρεση των αλλαγών που δεν έχουν εφαρμοστεί ακόμα.", "horizon.splitscreen.setup.help.apply": "Παίξτε με τον τρόπο που δείχνει ο χάρτης.", "horizon.splitscreen.setup.help.unchanged": "Τίποτα δεν έχει αλλάξει ακόμα.", - "horizon.splitscreen.setup.give_up_pad": "Give Up Pad", "horizon.splitscreen.prompt.controller_connected": "Ο ελεγκτής είναι συνδεδεμένος", "horizon.splitscreen.prompt.controller_disconnected": "Ο ελεγκτής αποσυνδέθηκε", "horizon.splitscreen.prompt.controller_disconnected.hint": "Συνδέστε το ξανά ή πατήστε ένα κουμπί σε άλλο", @@ -437,11 +409,9 @@ "F2 screenshots at this many times the game's resolution. Higher takes longer.": "Στιγμιότυπα οθόνης F2 σε αυτό πολλές φορές την ανάλυση του παιχνιδιού. Το υψηλότερο απαιτεί περισσότερο χρόνο.", "Frame Generation": "Γενιά πλαισίων", "Shows a made-up frame between each two real ones: smoother, a little more lag.": "Εμφανίζει ένα φτιαγμένο καρέ ανάμεσα σε καθένα από τα δύο πραγματικά: πιο ομαλό, λίγο μεγαλύτερη καθυστέρηση.", - "Shadow Cache": "Shadow Cache", "Reuses the pack shadow map when sun, view and world match. Off by default.": "Επαναχρησιμοποιεί τον χάρτη σκιάς πακέτου όταν ο ήλιος, η θέα και ο κόσμος ταιριάζουν. Απενεργοποίηση από προεπιλογή.", "Find BlueMap": "Βρείτε το BlueMap", "On servers, finds their BlueMap web map for far terrain. Next join.": "Στους διακομιστές, βρίσκει τον ιστό χάρτη τους BlueMap για μακρινό έδαφος. Επόμενη συμμετοχή.", - "BlueMap Radius": "BlueMap Radius", "How far around you BlueMap tiles are downloaded. Next join.": "Πόσο μακριά γίνεται λήψη των πλακιδίων BlueMap. Επόμενη συμμετοχή.", "Synchronous": "Σύγχρονη", "Asynchronous": "Ασύγχρονη", @@ -474,10 +444,8 @@ "horizon.repro.started": "Η εγγραφή ξεκίνησε. Το F3+R το σταματά και γράφει το bundle.", "horizon.repro.stopped": "Η εγγραφή σταμάτησε: %s", "horizon.repro.bundle": "Πακέτο Repro: %s", - "horizon.repro.error": "Repro: %s", "horizon.repro.no_recording": "Δεν υπάρχει ακόμα εγγραφή για εξαγωγή.", "horizon.repro.replay_started": "Έναρξη επανάληψης: %s", - "horizon.pack.add": "+", "horizon.pack.addInfo": "Προσθέστε ένα πακέτο πόρων από το Modrinth", "horizon.pack.addWorking": "Ρωτώντας τον Modrinth...", "horizon.pack.addNone": "Δεν βρέθηκαν πακέτα πόρων", @@ -491,9 +459,6 @@ "horizon.pack.filter.realistic": "Ρεαλιστική", "horizon.pack.filter.simplistic": "Απλουστευτική", "horizon.pack.filter.vanillaLike": "Σαν βανίλια", - "horizon.pack.filter.x16": "16x", - "horizon.pack.filter.x32": "32x", - "horizon.pack.filter.x64": "64x", "horizon.pack.addFailed": "Δεν ήταν δυνατή η προσθήκη του πακέτου: %s", "horizon.extras.header.cosmetics": "Καλλυντικά", "horizon.extras.cosmetics_mine": "Τα καλλυντικά μου", From 394871bceefed2a03e30c68fa9a3db1cfe44820c Mon Sep 17 00:00:00 2001 From: MSedgeMC <151820093+MSedgeMC@users.noreply.github.com> Date: Tue, 3 Nov 2026 18:02:10 +0000 Subject: [PATCH 51/70] A squid and a bat step without a sound Entity.getMovementEmission decides which movement sounds a type makes, and both callers of it were short a few types. Silverfish, endermites, guardians, elder guardians and breezes were already answered with EVENTS, so their footfalls and swim strokes stayed quiet; a squid, a glow squid and a bat also answer EVENTS in the jar and were heard here, and a squid's beached flop walked the stone under it at 0.15 of the block's step volume. The list now holds all eight, and the walking path asks it too: movement emission played the footstep regardless, so only step_sound's own silent arm kept the five quiet, and a squid, which has no playStepSound override and so takes the block's, was never in it. The step game event still follows for an EVENTS type, as Entity.vibrationAndSoundEffectsFromBlock sends it. Silverfish and endermite now name the step sound their own playStepSound asks for (entity.silverfish.step, entity.endermite.step at 0.15) and are silenced by the emission, which is where the jar silences them; the silent arm keeps the types whose override is an empty body: the fish, the nautilus pair, allays, bees, happy ghasts. --- crates/horizon-client/src/mobs/ai.rs | 30 +++++++++++++++--------- crates/horizon-client/src/mobs/living.rs | 7 +++++- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/crates/horizon-client/src/mobs/ai.rs b/crates/horizon-client/src/mobs/ai.rs index 9f8f87331d..2080aa5959 100644 --- a/crates/horizon-client/src/mobs/ai.rs +++ b/crates/horizon-client/src/mobs/ai.rs @@ -2742,17 +2742,24 @@ fn tick_effects(m: &mut Mob, mods: Option<&dyn super::ModEffectTicks>) { .retain(|h| m.extra.effects.iter().any(|e| e.0 == *h)); } -/// `Entity.getMovementEmission` is not NONE (silverfish, endermites, -/// shulkers, guardians and breezes emit only events, no step sounds). +/// `Entity.getMovementEmission` is not NONE: only a shulker moves without +/// emitting anything at all, neither events nor sounds. pub fn emits_movement(m: &Mob) -> bool { !matches!(m.species(), Species::Shulker) } -/// The movement emission includes sounds. +/// `Entity.getMovementEmission` includes sounds (`MovementEmission.ALL`): a +/// silverfish, an endermite, a bat, a squid and a glow squid, a guardian, an +/// elder guardian and a breeze answer `EVENTS`, which keeps their footfalls and +/// swim strokes quiet while `Entity.vibrationAndSoundEffectsFromBlock` still +/// sends the step game event. Every other type is `ALL`. pub fn movement_sounds(m: &Mob) -> bool { !matches!( m.species(), Species::Silverfish | Species::Endermite + | Species::Bat + | Species::Squid + | Species::GlowSquid | Species::Guardian | Species::ElderGuardian | Species::Breeze @@ -2769,9 +2776,10 @@ pub fn step_sound( let baby = m.is_baby(); let quiet = |s: &'static str| Some((s, 0.15, 1.0)); match m.species() { - // Silent footsteps, or only movement events. + // `playStepSound` overridden with an empty body: a fish, an allay, a bee, + // a happy ghast and a nautilus have no footfall of their own, so the + // block's step sound is not taken either. S::Allay - | S::Bat | S::Bee | S::Cod | S::Salmon @@ -2780,12 +2788,7 @@ pub fn step_sound( | S::Tadpole | S::HappyGhast | S::Nautilus - | S::ZombieNautilus - | S::Silverfish - | S::Endermite - | S::Guardian - | S::ElderGuardian - | S::Breeze => None, + | S::ZombieNautilus => None, S::Armadillo => quiet("entity.armadillo.step"), S::Chicken | S::Cow | S::Pig | S::Wolf => { super::finalize::variant_sound(m, "step").and_then(quiet) @@ -2813,6 +2816,11 @@ pub fn step_sound( S::Parched => quiet("entity.parched.step"), S::WitherSkeleton => quiet("entity.wither_skeleton.step"), S::Spider | S::CaveSpider => quiet("entity.spider.step"), + // Silverfish.playStepSound and Endermite.playStepSound: both ask for + // their own step at 15%, though neither type's movement emission plays + // it (`movement_sounds`). + S::Silverfish => quiet("entity.silverfish.step"), + S::Endermite => quiet("entity.endermite.step"), S::Zombie | S::ZombifiedPiglin => quiet("entity.zombie.step"), S::Husk => quiet("entity.husk.step"), S::Drowned => quiet("entity.drowned.step"), diff --git a/crates/horizon-client/src/mobs/living.rs b/crates/horizon-client/src/mobs/living.rs index 10c802b145..70c91cd432 100644 --- a/crates/horizon-client/src/mobs/living.rs +++ b/crates/horizon-client/src/mobs/living.rs @@ -857,12 +857,17 @@ impl Mob { && (self.on_ground || climbable) && !self.fluids_swimming(); if produced { + // `getMovementEmission().emitsSounds()`: the footfall is played + // only for a type whose emission is `ALL`, while the step game + // event below is sent by `EVENTS` types too. + let heard = super::ai::movement_sounds(self); if super::equine::hoof_steps(self.species()) { - if !self.silent { + if heard && !self.silent { super::equine::play_step(self, w, legacy, legacy_state, events); } } else if let Some((sound, volume, pitch)) = super::ai::step_sound(self, w, legacy, legacy_state) + && heard && !self.silent { let at = [self.position.x, self.position.y, self.position.z]; From 93bfa12f6fd5fe9a03d41d03c3e5df3e0ad80983 Mon Sep 17 00:00:00 2001 From: MSedgeMC <151820093+MSedgeMC@users.noreply.github.com> Date: Tue, 3 Nov 2026 18:02:10 +0000 Subject: [PATCH 52/70] Test the squid, glow squid and bat that step silently Mob::movement_emission on real types standing on stone: one step's walk from a squid, a glow squid and a bat sends the minecraft:step game event with no sound, a silverfish sends the event and no sound for the entity.silverfish.step its own playStepSound names, a sheep walking the same block is heard at entity.sheep.step volume 0.15 and pitch 1.0, and a shulker, whose emission is NONE, sends nothing at all. The test walks through movement_emission, the path Entity.move calls, and fails without the three types in movement_sounds: the squid plays block.stone.step at 0.15. --- crates/horizon-client/src/mobs/living.rs | 64 ++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/crates/horizon-client/src/mobs/living.rs b/crates/horizon-client/src/mobs/living.rs index 70c91cd432..41316d1703 100644 --- a/crates/horizon-client/src/mobs/living.rs +++ b/crates/horizon-client/src/mobs/living.rs @@ -2513,4 +2513,68 @@ mod tests { } }); } + /// `Entity.applyMovementEmissionAndPlaySound` asks `getMovementEmission`: + /// a squid, a glow squid and a bat answer `EVENTS`, so a beached squid + /// flopping across stone sends the `minecraft:step` game event and no + /// sound, where a sheep walking the same block is heard at the block's + /// step volume times 0.15. A silverfish's own `playStepSound` names + /// `entity.silverfish.step` and is never heard either, and a shulker, whose + /// emission is `NONE`, sends nothing at all. + #[test] + fn a_squid_and_a_bat_step_without_a_sound() { + let build = |world: &mut crate::world::World, + registry: &horizon_world::registry::BlockRegistry| { + world.chunks.insert( + (0, 0), + std::sync::Arc::new(crate::chunk::Chunk::empty(0, 0)), + ); + let id = registry.default_state("minecraft:stone").unwrap(); + for x in 0..=8 { + for z in 0..=8 { + world.set(x, 0, z, id).unwrap(); + } + } + }; + crate::mobs::world::with_built_test_world(&[], build, |w, types| { + // One step's worth of walking: 2 blocks times the 0.6 factor, over + // the 1.0 the first step waits for. + let walk = |id: &str| { + let kind = std::sync::Arc::new(types.types[id].clone()); + let mut m = Mob::new(1, kind, Vec3::new(0.5, 1.0, 0.5), 0.0); + m.on_ground = true; + m.supporting = Some([0, 0, 0]); + let mut events = Vec::new(); + m.movement_emission(w, Vec3::new(2.0, 0.0, 0.0), &mut events); + events + }; + let heard = |events: &[MobEvent]| { + events.iter().find_map(|e| match e { + MobEvent::Sound(sound, _, volume, pitch) => Some((*sound, *volume, *pitch)), + _ => None, + }) + }; + let stepped = |events: &[MobEvent]| { + events + .iter() + .any(|e| matches!(e, MobEvent::GameEvent { event, .. } if *event == "minecraft:step")) + }; + for quiet in ["minecraft:squid", "minecraft:glow_squid", "minecraft:bat"] { + let events = walk(quiet); + assert_eq!(heard(&events), None, "{quiet} is silent"); + assert!(stepped(&events), "{quiet} still sends the step event"); + } + // A silverfish asks for its own step sound and its type's emission + // never plays it. + let events = walk("minecraft:silverfish"); + assert_eq!(heard(&events), None); + assert!(stepped(&events)); + // The same walk from a type whose emission is ALL is heard. + let events = walk("minecraft:sheep"); + assert_eq!(heard(&events), Some(("entity.sheep.step", 0.15, 1.0))); + // Shulker.getMovementEmission is NONE: not even the event. + let events = walk("minecraft:shulker"); + assert_eq!(heard(&events), None); + assert!(!stepped(&events), "a shulker emits nothing"); + }); + } } From 2d66c0cccc4f0f92b828af3540913f17cdda32a1 Mon Sep 17 00:00:00 2001 From: MSedgeMC <151820093+MSedgeMC@users.noreply.github.com> Date: Tue, 3 Nov 2026 18:02:26 +0000 Subject: [PATCH 53/70] port_map: the movement emission names its port getMovementEmission had no row, so a lane reading the ledger saw the whole rule as unported; it is movement_sounds on Entity and on the two mobs that carry the override. --- tools/port_map/game-005.tsv | 1 + tools/port_map/game-010.tsv | 1 + tools/port_map/game2-001.tsv | 1 + 3 files changed, 3 insertions(+) diff --git a/tools/port_map/game-005.tsv b/tools/port_map/game-005.tsv index aee7e3e53c..0af4436942 100644 --- a/tools/port_map/game-005.tsv +++ b/tools/port_map/game-005.tsv @@ -1,4 +1,5 @@ Entity. port crates/horizon-client/src/mobs.rs::Mob::new mobs only; players and projectiles are built by their own structs and the synched defaults (flags, air, name, pose) are plain fields +Entity.getMovementEmission port crates/horizon-client/src/mobs/ai.rs::movement_sounds EVENTS for silverfish, endermite, bats, squids, glow squids, guardians, elder guardians and breezes (game events, no sounds), NONE for a shulker (ai.rs::emits_movement), ALL for every other type Entity.isColliding missing minor: a block change that a server refuses and that comes back inside the player does not snap the player to the position of the prediction (end_predictions only restores the block) Entity.canInteractWithLevel inline crates/horizon-client/src/mobs/leash.rs::tick gap: minor: only the leashed mob's life is tested (a dead one drops its lead); a dead or spectating holder is not tested Entity.unRide inline crates/horizon-client/src/game/consume.rs::Game::stop_riding gap: minor: the player's half (boat, minecart or mob mount); riders of a vehicle are let go by sync_riders and eject_boat_mobs diff --git a/tools/port_map/game-010.tsv b/tools/port_map/game-010.tsv index 6d049102d5..4804e2dc29 100644 --- a/tools/port_map/game-010.tsv +++ b/tools/port_map/game-010.tsv @@ -103,6 +103,7 @@ PoiSection.Packed.unpack skip:other POI files are not loaded into sections PoiTypes.registerBlockStates inline crates/horizon-client/src/save.rs::poi_type state to POI type and max tickets in one match PoiTypes.bootstrap port crates/horizon-client/src/save.rs::poi_type every POI type with its tickets (bed heads of the sixteen colours only, cauldrons, bell 32); villagers use villager_brain::state_poi for jobs, beds and bell Bat.isFlapping port crates/horizon-client/src/game/sculk.rs::flaps an awake bat flaps every tenth tick, and the movement pass posts minecraft:flap when the block below is air (a bee, every other tick in the air, shares the same fn) +Bat.getMovementEmission port crates/horizon-client/src/mobs/ai.rs::movement_sounds EVENTS Bat.getAmbientSound inline crates/horizon-client/src/mobs/ai.rs::play_ambient Species::Bat arm: a resting bat is silent three times in four Bat.isResting port crates/horizon-client/src/mobs/bat.rs::resting Bat.addAdditionalSaveData port crates/horizon-client/src/entity_nbt.rs::mob_to_nbt BatFlags byte, bit 0 resting diff --git a/tools/port_map/game2-001.tsv b/tools/port_map/game2-001.tsv index f861cf357a..0563fb2166 100644 --- a/tools/port_map/game2-001.tsv +++ b/tools/port_map/game2-001.tsv @@ -13,6 +13,7 @@ SnifferAi.Searching.canStillUse port crates/horizon-client/src/mobs/animal_brain SnifferAi.Searching.stop port crates/horizon-client/src/mobs/animal_brain.rs::B::do_stop SnifferAi.Sniffing.stop port crates/horizon-client/src/mobs/animal_brain.rs::B::do_stop Squid.registerGoals port crates/horizon-client/src/mobs/aquatic.rs::register +Squid.getMovementEmission port crates/horizon-client/src/mobs/ai.rs::movement_sounds EVENTS: the flop of a beached squid sends the step game event and no sound Squid.rotateVector inline crates/horizon-client/src/mobs/aquatic.rs::spawn_ink xRot then yRot of the body angles, inside spawn_ink Squid.finalizeSpawn port crates/horizon-client/src/mobs/finalize.rs::Ctx::finalize S::Squid arm: ageable group with 0.05 baby chance Turtle.defineSynchedData port crates/horizon-client/src/game/lan.rs::mob_meta HAS_EGG and LAYING_EGG as entity metadata 18 and 19 From 3f9417521f9fc2527a406b3948d3b3c9dda79ddc Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:14:29 +0100 Subject: [PATCH 54/70] RAM limit: step down before the limit on Windows too, never page the game out On Windows a RAM limit was a hard working set limit (SetProcessWorkingSetSizeEx with QUOTA_LIMITS_HARDWS_MAX_ENABLE): Windows kept the game under it by moving what it used least to the page file, and the game only stepped down once it was already slow and faulting hard. Players saw a low limit make the game slow instead of making it hold less (#6651, #6652). Windows now does what Linux and macOS do: once a second the game compares its working set with the limit and, past nine tenths of it, turns far terrain off and lowers the render distance in use until it fits. The system cap, the page fault pressure, the frozen-game check and the frame clock that fed it are gone. The limit stays opt-in (no launcher value, no limit), and HORIZON_MEMORY_HARD_MB is unchanged. Co-Authored-By: Claude Opus 5.5 --- crates/horizon-client/src/game.rs | 1 - crates/horizon-client/src/game/ram_limit.rs | 2 +- crates/horizon-client/src/ram_limit.rs | 40 +--- crates/horizon-threads/src/memory_limit.rs | 206 +++----------------- docs/native-client.md | 16 +- 5 files changed, 36 insertions(+), 229 deletions(-) diff --git a/crates/horizon-client/src/game.rs b/crates/horizon-client/src/game.rs index 3f4dbbf66d..a2a90a32db 100644 --- a/crates/horizon-client/src/game.rs +++ b/crates/horizon-client/src/game.rs @@ -18394,7 +18394,6 @@ impl Game<'_> { self.frame_stats.record_gpu(&r.gpu_times); r.gpu_times.clear(); } - horizon_client::ram_limit::frame(); self.limit_frame(); self.pause = self.pauses_game(); if let Some(server) = &self.integrated { diff --git a/crates/horizon-client/src/game/ram_limit.rs b/crates/horizon-client/src/game/ram_limit.rs index 6355d8bf13..d98666fab3 100644 --- a/crates/horizon-client/src/game/ram_limit.rs +++ b/crates/horizon-client/src/game/ram_limit.rs @@ -27,7 +27,7 @@ impl Game<'_> { return; }; let has_far = self.settings.horizon.lod_distance > 0; - let pressure = ram_limit::pressure(limit, self.fps); + let pressure = ram_limit::pressure(limit); // Every ten seconds, what the limit sees: a report can show the trace. if self.ticks.is_multiple_of(200) { let (commit, _) = horizon_threads::allocator_commit(); diff --git a/crates/horizon-client/src/ram_limit.rs b/crates/horizon-client/src/ram_limit.rs index 2a7fc45fe0..8a9ca13f3e 100644 --- a/crates/horizon-client/src/ram_limit.rs +++ b/crates/horizon-client/src/ram_limit.rs @@ -1,7 +1,7 @@ //! The player's RAM limit: from the launcher's slider at the start (`HORIZON_MEMORY_LIMIT_MB`), and //! `/ramlimit` while the game runs. The window answers that command itself, so it works on any -//! server. On Windows the system holds the game under the limit (`horizon_threads::memory_limit`). -//! Under pressure, [`Governor`] turns far terrain off and lowers the render distance in use, never +//! server. Under pressure, before the game reaches the limit (`horizon_threads::memory_limit`), +//! on every system, [`Governor`] turns far terrain off and lowers the render distance in use, never //! the option the player saved, and gives them back when there is room. Only a game that can't run //! under the limit at all ends with a crash report. use horizon_threads::capped; @@ -127,17 +127,8 @@ pub fn used() -> Option { memory_limit::resident_bytes() } -/// See [`memory_limit::frame`]. -pub fn frame() { - memory_limit::frame(); -} - -/// A game this slow, faulting hard under a cap the system enforces, is short of memory. -const SLOW_FPS: f32 = 30.; - -/// See [`memory_limit::pressure`]. Under a cap the system enforces the game is already under the -/// limit, so nothing the player sees goes unless the game is slow as well. -pub fn pressure(limit: u64, fps: f32) -> Pressure { +/// See [`memory_limit::pressure`]. +pub fn pressure(limit: u64) -> Pressure { if capped::limit().is_some() { // A hard ceiling is a budget of its own: what the process commits // decides, and a smooth frame does not excuse holding more. Shedding @@ -149,15 +140,7 @@ pub fn pressure(limit: u64, fps: f32) -> Pressure { memory_limit::pressure_of_commit(commit, limit) }); } - let pressure = memory_limit::pressure(limit); - needed(pressure, memory_limit::system_enforced(), fps) -} - -fn needed(pressure: Pressure, enforced: bool, fps: f32) -> Pressure { - match pressure { - Pressure::Over { .. } if enforced && fps >= SLOW_FPS => Pressure::Steady, - pressure => pressure, - } + memory_limit::pressure(limit) } /// See [`memory_limit::can_shrink`]. @@ -302,19 +285,6 @@ pub fn run(command: &str) -> Option { mod tests { use super::*; - #[test] - fn under_a_cap_the_system_enforces_only_a_slow_game_gives_anything_up() { - const OVER: Pressure = Pressure::Over { keep: 0.8 }; - assert_eq!(needed(OVER, true, 200.), Pressure::Steady); - assert_eq!(needed(OVER, true, 12.), OVER); - assert_eq!( - needed(OVER, false, 200.), - OVER, - "nothing else holds this game under" - ); - assert_eq!(needed(Pressure::Room, true, 12.), Pressure::Room); - } - const FAR_OVER: Pressure = Pressure::Over { keep: 0.125 }; const OVER: Pressure = Pressure::Over { keep: 0.8 }; diff --git a/crates/horizon-threads/src/memory_limit.rs b/crates/horizon-threads/src/memory_limit.rs index 41ecb4d3c5..26f4e7ab92 100644 --- a/crates/horizon-threads/src/memory_limit.rs +++ b/crates/horizon-threads/src/memory_limit.rs @@ -1,16 +1,14 @@ //! The player's cap on the memory the game holds, and the last resort behind it. //! -//! On Windows the system enforces it: a hard working set limit never lets the game hold more in -//! RAM, and moves what it used least out instead of failing, so a low cap costs speed. Elsewhere -//! no such limit exists, and the game keeps itself under the cap by holding less -//! (`horizon_client::ram_limit`, which reads [`pressure`]). +//! On every system the game keeps itself under the cap by holding less, before it reaches it +//! (`horizon_client::ram_limit`, which reads [`pressure`]). Nothing asks the system to page the +//! game out: on Windows a hard working set limit did, and a low cap made the game slow instead of +//! making it hold less. //! //! A watcher thread reads the process's resident memory and, over the cap, gives free pages back. //! Only when the game has nothing left to give up ([`can_shrink`] has stopped being called) and -//! stays over for [`GRACE`] does it call the game's `exceeded`. A cap the system enforces can't be -//! gone over, so there the sign is a game frozen by it: no [`frame`] for [`STALL`] while it faults -//! hard. No thread runs until a cap is set, and there is no lowest cap: one the game can't live -//! under ends the game. +//! stays over for [`GRACE`] does it call the game's `exceeded`. No thread runs until a cap is set, +//! and there is no lowest cap: one the game can't live under ends the game. use std::sync::atomic::{AtomicU64, Ordering}; use std::sync::{Once, OnceLock}; use std::time::{Duration, Instant}; @@ -20,12 +18,6 @@ const EVERY: Duration = Duration::from_secs(1); /// How long the game may stay over the cap with nothing left to give up: a world's first chunks, /// or a burst the last step down has not freed yet, pass within it. pub const GRACE: Duration = Duration::from_secs(20); -/// How long a game may draw nothing while faulting hard under a cap the system enforces. -pub const STALL: Duration = Duration::from_secs(60); -/// Page faults a second that say a game drawing nothing is busy fetching memory back, not just -/// minimized or waiting. -#[cfg_attr(not(windows), allow(dead_code))] -const STALL_FAULTS: f64 = 20_000.; /// How long one [`can_shrink`] counts for. const SHRINK_WORD: Duration = Duration::from_secs(5); @@ -34,18 +26,11 @@ static WATCHER: Once = Once::new(); static STARTED: OnceLock = OnceLock::new(); /// Until when, in milliseconds since [`STARTED`], the game says it can still shrink. static SHRINKS_UNTIL: AtomicU64 = AtomicU64::new(0); -/// When the last [`frame`] was, in milliseconds since [`STARTED`]. -static LAST_FRAME: AtomicU64 = AtomicU64::new(0); fn since_start() -> u64 { STARTED.get_or_init(Instant::now).elapsed().as_millis() as u64 } -/// The game drew a frame. -pub fn frame() { - LAST_FRAME.store(since_start(), Ordering::Relaxed); -} - /// The game can still hold less. Said again every second while that is true, so it ends by itself /// when the world closes. pub fn can_shrink() { @@ -57,23 +42,18 @@ pub fn can_shrink() { /// the game can't get under the cap; only the first call's function is kept. pub fn set(limit: Option, exceeded: fn(u64, u64)) { LIMIT.store(limit.unwrap_or(NONE), Ordering::Relaxed); - // A new cap gets the whole of STALL. - frame(); - system_cap(limit); if limit.is_some() { WATCHER.call_once(|| { let watcher = std::thread::Builder::new() .name("Memory limit".into()) .spawn(move || { let mut over = Over::default(); - let mut faults = Faults::default(); loop { std::thread::sleep(EVERY); - let per_second = faults.per_second(); let limit = get(); over.follow(limit); if let Some(limit) = limit { - check(&mut over, per_second, limit, exceeded); + check(&mut over, limit, exceeded); } } }); @@ -101,7 +81,7 @@ pub enum Pressure { Steady, } -/// Against a cap nothing enforces: what the game holds. It should act before it gets there. +/// What the game holds against the cap: it should act before it gets there. fn pressure_of_usage(used: u64, limit: u64) -> Pressure { if used > limit / 10 * 9 { Pressure::Over { @@ -114,25 +94,8 @@ fn pressure_of_usage(used: u64, limit: u64) -> Pressure { } } -/// Under a cap the system enforces the game sits at the cap whether it needs the memory or not, so -/// usage says nothing: how often it has to fetch back what was moved out does. Measured on a real -/// game loading chunks at 30 frames a second: 30,000-50,000 page faults a second with no cap or any -/// cap down to 500 MB, 140,000 at 300 MB, 290,000 at 150 MB. Loading chunks fast faults a lot too, -/// so `horizon_client::ram_limit` also asks whether frames are suffering. -#[cfg_attr(not(windows), allow(dead_code))] -fn pressure_of_faults(per_second: f64) -> Pressure { - if per_second > 200_000. { - Pressure::Over { keep: 0.8 } - } else if per_second < 75_000. { - Pressure::Room - } else { - Pressure::Steady - } -} - -/// Against a hard ceiling, what the process commits is the budget: the working set sits at its -/// cap whatever the game needs, and page faults only say how hard it pages, not how much it -/// holds. A ceiling counts every page the process committed, the renderer's own included. +/// Against a hard ceiling, what the process commits is the budget, not what stays in RAM: a +/// ceiling counts every page the process committed, the renderer's own included. pub fn pressure_of_commit(commit: u64, limit: u64) -> Pressure { if commit > limit / 10 * 9 { Pressure::Over { @@ -145,27 +108,11 @@ pub fn pressure_of_commit(commit: u64, limit: u64) -> Pressure { } } -/// How tight memory is under `limit`. Reads a difference since the last call: call it once a -/// second, from one place. +/// How tight memory is under `limit`: what the game holds in RAM against it. pub fn pressure(limit: u64) -> Pressure { - #[cfg(windows)] - if SYSTEM_CAP.load(Ordering::Relaxed) { - // The first reading has nothing to compare with. - static FAULTS: std::sync::Mutex = std::sync::Mutex::new(Faults::new()); - let per_second = FAULTS.lock().ok().and_then(|mut f| f.per_second()); - return per_second.map_or(Pressure::Steady, pressure_of_faults); - } resident_bytes().map_or(Pressure::Steady, |used| pressure_of_usage(used, limit)) } -/// Whether the system itself holds the game under the cap. -pub fn system_enforced() -> bool { - #[cfg(windows)] - return SYSTEM_CAP.load(Ordering::Relaxed); - #[cfg(not(windows))] - false -} - /// How long the game has been over the cap with nothing left to give up. #[derive(Default)] struct Over { @@ -192,12 +139,7 @@ impl Over { } } -/// Whether a game has frozen under a cap the system enforces. -fn frozen(no_frame_for: Duration, faults_per_second: f64) -> bool { - no_frame_for >= STALL && faults_per_second >= STALL_FAULTS -} - -fn check(state: &mut Over, faults: Option, limit: u64, exceeded: fn(u64, u64)) { +fn check(state: &mut Over, limit: u64, exceeded: fn(u64, u64)) { // A hard ceiling counts what the process committed, the renderer's own // pages included, since that is the number the player set. let hard = crate::capped::limit().is_some(); @@ -209,17 +151,6 @@ fn check(state: &mut Over, faults: Option, limit: u64, exceeded: fn(u64, u6 let Some(mut used) = measured else { return; }; - // A cap the system enforces can't be gone over, so there the sign is a game - // frozen by it. A hard ceiling can be gone over, and says so. - if system_enforced() && !hard { - let no_frame_for = since_start().saturating_sub(LAST_FRAME.load(Ordering::Relaxed)); - if frozen(Duration::from_millis(no_frame_for), faults.unwrap_or(0.)) { - // The report has to be written, which a frozen game can't do under the cap. - system_cap(None); - exceeded(used, limit); - } - return; - } if used > limit { crate::release_free_memory(); used = if hard { @@ -234,47 +165,6 @@ fn check(state: &mut Over, faults: Option, limit: u64, exceeded: fn(u64, u6 } } -/// Whether the system is enforcing the cap. -#[cfg(windows)] -static SYSTEM_CAP: std::sync::atomic::AtomicBool = std::sync::atomic::AtomicBool::new(false); - -/// Sets the system's hard limit on the working set, or lifts it. Refused (a cap below what the -/// system allows), the watcher treats the game as any other that can't get under its cap. -#[cfg(windows)] -fn system_cap(limit: Option) { - use windows_sys::Win32::System::Memory::{ - QUOTA_LIMITS_HARDWS_MAX_DISABLE, QUOTA_LIMITS_HARDWS_MAX_ENABLE, - QUOTA_LIMITS_HARDWS_MIN_DISABLE, SetProcessWorkingSetSizeEx, - }; - use windows_sys::Win32::System::Threading::GetCurrentProcess; - const MINIMUM: u64 = 16 << 20; - // Windows' own defaults for a process, with the limit lifted. - let (low, high, flags) = match limit { - Some(limit) => ( - MINIMUM.min(limit / 2) as usize, - usize::try_from(limit).unwrap_or(usize::MAX), - QUOTA_LIMITS_HARDWS_MAX_ENABLE | QUOTA_LIMITS_HARDWS_MIN_DISABLE, - ), - None => ( - 200 << 10, - 1380 << 10, - QUOTA_LIMITS_HARDWS_MAX_DISABLE | QUOTA_LIMITS_HARDWS_MIN_DISABLE, - ), - }; - // SAFETY: passes plain values; the current process's pseudo-handle needs no closing. - let done = unsafe { SetProcessWorkingSetSizeEx(GetCurrentProcess(), low, high, flags) != 0 }; - if !done { - eprintln!( - "Windows refused the memory limit: {}", - std::io::Error::last_os_error() - ); - } - SYSTEM_CAP.store(done && limit.is_some(), Ordering::Relaxed); -} - -#[cfg(not(windows))] -fn system_cap(_limit: Option) {} - /// The process's memory counters. #[cfg(windows)] fn counters() -> Option { @@ -292,35 +182,6 @@ fn counters() -> Option, -} - -impl Faults { - #[cfg(windows)] - const fn new() -> Self { - Faults { last: None } - } - - /// Page faults a second since the last call; none on the first, or where they aren't known. - #[cfg(windows)] - fn per_second(&mut self) -> Option { - let faults = counters()?.PageFaultCount; - let now = Instant::now(); - let before = self.last.replace((now, faults))?; - let seconds = now.duration_since(before.0).as_secs_f64(); - (seconds > 0.).then(|| f64::from(faults.wrapping_sub(before.1)) / seconds) - } - - #[cfg(not(windows))] - fn per_second(&mut self) -> Option { - None - } -} - /// The memory this process holds in RAM, in bytes. #[cfg(windows)] pub fn resident_bytes() -> Option { @@ -400,40 +261,17 @@ mod tests { } #[test] - fn page_faults_say_how_tight_a_cap_the_system_enforces_is() { - assert_eq!(pressure_of_faults(50_000.), Pressure::Room); - assert_eq!(pressure_of_faults(140_000.), Pressure::Steady); - assert!(matches!( - pressure_of_faults(290_000.), - Pressure::Over { .. } - )); - } - - #[cfg(windows)] - #[test] - fn the_system_holds_the_game_under_a_cap_and_lifting_it_lets_memory_back() { + fn every_system_steps_down_before_its_cap() { let _alone = WORKING_SET.lock().unwrap(); - const SIZE: usize = 256 << 20; - const CAP: u64 = 128 << 20; - let mut block = vec![1u8; SIZE]; - system_cap(Some(CAP)); - block.iter_mut().step_by(4096).for_each(|b| *b = 2); - let capped = resident_bytes().unwrap(); - assert!(capped <= CAP, "{capped} bytes under a cap of {CAP}"); - system_cap(None); - block.iter_mut().step_by(4096).for_each(|b| *b = 3); - let lifted = resident_bytes().unwrap(); - std::hint::black_box(&block); - assert!(lifted > CAP, "{lifted} bytes with the cap lifted"); - } - - #[test] - fn only_drawing_nothing_while_faulting_hard_counts_as_frozen() { - assert!(frozen(STALL, STALL_FAULTS * 10.)); - // Slow but drawing, as at 1 frame a second. - assert!(!frozen(Duration::from_secs(1), STALL_FAULTS * 10.)); - // Minimized or waiting: no frames, and no memory being fetched back. - assert!(!frozen(STALL * 10, 100.)); + let used = resident_bytes().unwrap(); + // Under a cap at half what it holds, the game is told to hold less, on Windows as + // elsewhere: nothing pages it out to meet the cap instead. + let Pressure::Over { keep } = pressure(used / 2) else { + panic!("holding {used} bytes is over a cap of half that"); + }; + assert!(keep < 0.5, "{keep}"); + // Far below the cap it may hold more again. + assert_eq!(pressure(used.saturating_mul(4)), Pressure::Room); } #[test] diff --git a/docs/native-client.md b/docs/native-client.md index 853a16b8f5..532f83b142 100644 --- a/docs/native-client.md +++ b/docs/native-client.md @@ -245,14 +245,14 @@ presentation, so `bench` reports what is on screen. ### RAM limit -`HORIZON_MEMORY_LIMIT_MB` (the launcher sets it) and `/ramlimit`, `/ramlimit `, `/ramlimit off` limit -the RAM the game holds; the command lasts until the game closes and works on any server, as the window -answers it. On Windows the system enforces the limit with a hard working set limit, so memory the game -uses least moves out of RAM and a low limit costs speed. If the game is also slow and faulting hard, far -terrain goes off and the render distance in use drops, never the saved option, and both come back when -there is room. Linux and macOS have no such limit: there the game steps down before it reaches the limit. -The game ends with a crash report only when it can't run under the limit: on Windows no frame for a minute -while faulting hard, elsewhere 20 seconds over the limit with nothing left to give up. +`HORIZON_MEMORY_LIMIT_MB` (the launcher sets it when the player picks a value; there is none by default) +and `/ramlimit`, `/ramlimit `, `/ramlimit off` limit the RAM the game holds; the command lasts until +the game closes and works on any server, as the window answers it. Once a second the game compares what +it holds in RAM with the limit and, past nine tenths of it, turns far terrain off and then lowers the +render distance in use, never the saved option, until it fits; both come back when there is room. This +is the same on Windows, Linux and macOS: nothing asks the system to page the game out to meet the limit. +The game ends with a crash report only when it can't run under the limit: 20 seconds over it with nothing +left to give up. **`HORIZON_MEMORY_HARD_MB` / `/ramlimit hard `** is the other contract, the one `-Xmx` gives Java: a budget for the memory the process commits, not only for the part that stays in RAM. Nothing is From a05ca96bc3db802c4857590243a485063f66f6c2 Mon Sep 17 00:00:00 2001 From: MSedgeMC <151820093+MSedgeMC@users.noreply.github.com> Date: Tue, 3 Nov 2026 18:17:27 +0000 Subject: [PATCH 55/70] fix: a baby parrot keeps the plain voice pitch Parrot.getVoicePitch is its own getPitch(random), the plain 1.0 +- 0.2 range, whatever the parrot's age: public float getVoicePitch(); 0: aload_0 1: getfield #390 // Field random:Lnet/minecraft/util/RandomSource; 4: invokestatic #349 // Method getPitch:(Lnet/minecraft/util/RandomSource;)F 7: freturn public static float getPitch(RandomSource); 0: aload_0 1: nextFloat 6: aload_0 7: nextFloat 12: fsub 13: ldc 0.2f 16: fmul 17: fconst_1 18: fadd 19: freturn LivingEntity.getVoicePitch, which Mob::voice_pitch ports, returns 1.5 +- 0.2 for any baby, so a baby parrot's ambient, hurt and death sounds were played a fifth higher than vanilla's. The two draws are the same, so nothing else moves. --- crates/horizon-client/src/mobs.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crates/horizon-client/src/mobs.rs b/crates/horizon-client/src/mobs.rs index 51b705be43..794b68e4d6 100644 --- a/crates/horizon-client/src/mobs.rs +++ b/crates/horizon-client/src/mobs.rs @@ -3561,6 +3561,11 @@ impl Mob { if self.species() == Species::HappyGhast { return 1.0; } + // Parrot.getVoicePitch: `getPitch(random)`, the plain range, so a baby + // parrot does not take the 1.5 that AgeableMob raises a baby by. + if self.species() == Species::Parrot { + return (self.random.next_float() - self.random.next_float()) * 0.2 + 1.0; + } // ZombieVillager.getVoicePitch: babies are 2.0, not 1.5. let baby = if self.species() == Species::ZombieVillager { 2.0 From 214535c9e71454b97513d35fb13a037f5da078d0 Mon Sep 17 00:00:00 2001 From: MSedgeMC <151820093+MSedgeMC@users.noreply.github.com> Date: Tue, 3 Nov 2026 18:17:28 +0000 Subject: [PATCH 56/70] test: a baby parrot's voice stays in the plain pitch range The parrot is built from the test mob kind, so the test needs no extracted data and runs everywhere: 64 draws of a baby parrot's voice pitch stay inside 0.8..=1.2 and average 1.0, where a baby chicken keeps LivingEntity's 1.5. --- crates/horizon-client/src/mobs/parrot.rs | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/crates/horizon-client/src/mobs/parrot.rs b/crates/horizon-client/src/mobs/parrot.rs index f1a42916e3..70b2302ba5 100644 --- a/crates/horizon-client/src/mobs/parrot.rs +++ b/crates/horizon-client/src/mobs/parrot.rs @@ -314,6 +314,34 @@ mod tests { assert!(m.ai.goals.has("ParrotWander")); } + /// `Parrot.getVoicePitch` is `getPitch(random)`, the plain 1.0 ± 0.2, and + /// `getPitch` takes no age into account: a baby parrot does not get the + /// 1.5 that `LivingEntity.getVoicePitch` raises every other baby's voice + /// by. A baby chicken is the control. + #[test] + fn a_baby_parrot_keeps_the_plain_voice_pitch() { + let mut parrot = parrot(); + parrot.extra.age = -24_000; + assert!(parrot.is_baby()); + let mut baby = parrot.clone(); + let pitches: Vec = (0..64).map(|_| baby.voice_pitch()).collect(); + assert!( + pitches.iter().all(|p| (0.8..=1.2).contains(p)), + "{pitches:?}" + ); + // It is not a constant: the two draws move it around 1.0. + assert!(pitches.iter().any(|&p| p != pitches[0])); + assert!((pitches.iter().sum::() / pitches.len() as f32 - 1.0).abs() < 0.1); + + let mut k = (*kind()).clone(); + k.id = "minecraft:chicken".into(); + k.species = Species::Chicken; + let mut chicken = Mob::new(1, Arc::new(k), Vec3::ZERO, 0.0); + chicken.extra.age = -24_000; + let raised: Vec = (0..64).map(|_| chicken.voice_pitch()).collect(); + assert!(raised.iter().all(|p| (1.3..=1.7).contains(p)), "{raised:?}"); + } + /// `Parrot.calculateFlapping`: in the air the wings beat and a fall is /// slowed to 0.6; on the ground or a shoulder they fold. #[test] From bac2dbb5add2957089b95fe248c3bbf0177292f6 Mon Sep 17 00:00:00 2001 From: MSedgeMC <151820093+MSedgeMC@users.noreply.github.com> Date: Tue, 3 Nov 2026 18:17:28 +0000 Subject: [PATCH 57/70] port_map: Parrot.getVoicePitch names voice_pitch --- tools/port_map/game-013.tsv | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/port_map/game-013.tsv b/tools/port_map/game-013.tsv index 7ac998c38f..dde296ac6d 100644 --- a/tools/port_map/game-013.tsv +++ b/tools/port_map/game-013.tsv @@ -61,6 +61,7 @@ Parrot.checkParrotSpawnRules port crates/horizon-client/src/mobs/spawn_rules.rs: Parrot.isFlapping port crates/horizon-client/src/mobs/parrot.rs::process_flapping strict flyDist > nextFlap, used by air movement and live Game flap dispatch Parrot.onFlap port crates/horizon-client/src/mobs/parrot.rs::process_flapping the wing-beat sound at 0.15 and nextFlap Parrot.hurtServer port crates/horizon-client/src/mobs/tame.rs::stand_when_hurt +Parrot.getVoicePitch port crates/horizon-client/src/mobs.rs::voice_pitch getPitch(random): 1.0 +- 0.2 with no baby bump, where LivingEntity raises a baby to 1.5 Parrot.get skip:other reads the variant as a data component for predicates; Horizon has no entity component view Parrot.applyImplicitComponent missing minor: a spawn egg's parrot_variant component is not applied (only bucketed mobs read item components) Parrot.defineSynchedData skip:other synched variant id; Horizon keeps it in extra.variant (remote_mob_data.rs reads index 20) From 0c8be8e9f9e6e2f0859f8e4df394372498171e3d Mon Sep 17 00:00:00 2001 From: HrafnaValkyrja Date: Tue, 3 Nov 2026 13:20:15 -0500 Subject: [PATCH 58/70] Only mobs and boats keep a leash tag Vanilla only makes Mob and AbstractBoat Leashable; other kinds summoned with a leash tag kept and saved it. Drop it on load. Part of #8024. Co-Authored-By: Claude Sonnet 5.5 --- crates/horizon-client/src/game/persist.rs | 40 +++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/crates/horizon-client/src/game/persist.rs b/crates/horizon-client/src/game/persist.rs index 802b0e2738..d0f741247c 100644 --- a/crates/horizon-client/src/game/persist.rs +++ b/crates/horizon-client/src/game/persist.rs @@ -352,6 +352,8 @@ impl Game<'_> { // Whatever was added since the last tick joins before this one. self.native_joins_flush(false, 0); let kind = entity_nbt::kind(&tag).unwrap_or_default(); + let is_mob = self.res.mob_types().contains_key(kind.as_str()); + drop_unleashable_leash(&mut tag, &kind, is_mob); let uuid = entity_nbt::uuid(&tag); if uuid.is_some_and(|u| self.restored_vehicle(u).is_some()) { continue; @@ -1860,12 +1862,50 @@ fn vehicle_tree(root: u32, mounts: &[(u32, Option)]) -> Vec { tree } +/// Only a Mob or an AbstractBoat is Leashable: any other kind never reads +/// `leash`, so a summoned or loaded tag must not be kept and saved. +fn drop_unleashable_leash(tag: &mut Tag, kind: &str, is_mob: bool) { + if !is_mob + && super::boats::any_boat_wood(kind).is_none() + && let Tag::Compound(c) = tag + { + c.remove(&"leash".into()); + } +} #[cfg(test)] mod tests { use super::*; const MOUNT: [i32; 4] = [1, 2, 3, 4]; + #[test] + fn only_mobs_and_boats_keep_a_leash_tag() { + let with_leash = |kind: &str| { + let mut t = entity(kind); + if let Tag::Compound(c) = &mut t { + c.insert("leash".into(), Tag::IntArray(vec![6, 100, 0])); + } + t + }; + let has = |t: &Tag| t.get("leash").is_some(); + for kind in [ + "minecraft:armor_stand", + "minecraft:minecart", + "minecraft:tnt", + "minecraft:item", + ] { + let mut t = with_leash(kind); + drop_unleashable_leash(&mut t, kind, false); + assert!(!has(&t), "{kind}"); + } + let mut cow = with_leash("minecraft:cow"); + drop_unleashable_leash(&mut cow, "minecraft:cow", true); + assert!(has(&cow)); + let mut boat = with_leash("minecraft:oak_boat"); + drop_unleashable_leash(&mut boat, "minecraft:oak_boat", false); + assert!(has(&boat)); + } + fn entity(kind: &str) -> Tag { Tag::compound([("id", Tag::String(kind.into()))]) } From bfe0be195c0e3436c17750c351cc5db5d36d55f6 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:34:17 +0100 Subject: [PATCH 59/70] CI: run every job that can on our runners The bots move to a shared horizon-light label (8 light runners on playhorizon, from 2), and triage command, mojang republish and nightly build's answer join them. checks' verify and launcher, mod-registry, telemetry-server and the pack bench run on the desktop's isolated horizon-checks runners, forks included: main's pushes and the pull requests whose number ends in 0-2 by default (GitHub's pool keeps the others, so both work at once), every one with SELF_HOSTED_CI=all, none with light (desktop paused) or off (everything back to GitHub). Jobs with a secret or a token that can push, publish or start workflows stay on GitHub: tests/test_ci_runners.py pins it. playhorizon's job hook now also drops a checkout's .git past 4 GB: each light runner's held 6822 packs, 50 GB. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/cancel-on-close.yml | 4 +- .github/workflows/ci.yml | 28 ++++-- .github/workflows/claim-command.yml | 8 +- .github/workflows/mod-registry.yml | 5 +- .github/workflows/mojang-republish.yml | 3 +- .github/workflows/nightly-build.yml | 3 +- .github/workflows/overlap-note.yml | 4 +- .github/workflows/pack-bench.yml | 17 +++- .github/workflows/pr-labels.yml | 4 +- .github/workflows/telemetry-server.yml | 5 +- .github/workflows/triage-command.yml | 3 +- docs/README.md | 2 +- docs/ci-runners.md | 121 +++++++++++++++---------- docs/release-flow.md | 2 +- tests/test_ci_runners.py | 120 ++++++++++++++++++------ tools/ci/checks-runners.sh | 31 +++++-- 16 files changed, 246 insertions(+), 114 deletions(-) diff --git a/.github/workflows/cancel-on-close.yml b/.github/workflows/cancel-on-close.yml index 28343115f3..6e170f2c93 100644 --- a/.github/workflows/cancel-on-close.yml +++ b/.github/workflows/cancel-on-close.yml @@ -9,9 +9,9 @@ permissions: actions: write jobs: cancel: - # One of playhorizon's small runners, out of GitHub's shared pool: no checkout, no code of the pull request + # One of our small runners (horizon-light), out of GitHub's pool: no checkout, no code of the pull request # (docs/ci-runners.md). SELF_HOSTED_CI=off: GitHub's runners. - runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "playhorizon-light"]') || 'ubuntu-latest' }} + runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "horizon-light"]') || 'ubuntu-latest' }} steps: - name: Cancel the pull request's unfinished runs env: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1e828eca13..7edf0f2cd8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,13 +27,18 @@ jobs: # One job, not one per check: each job takes a runner from the organisation's shared pool, and with every pull request # and every merge to main starting this workflow, three jobs a run left the pool's queue tens of minutes deep. # - # Where: GitHub's runners. With the repository variable SELF_HOSTED_CI=all (for when that pool is full: their 4 CPUs - # are about one GitHub runner, docs/ci-runners.md), main's pushes and this repository's own pull requests run on - # playhorizon's checks runners (label playhorizon-ci); a fork's pull request never does (and the runners refuse it - # themselves). There the build folder persists (CARGO_TARGET_DIR, outside the checkout), so the apt packages, - # Python and the Rust cache steps are GitHub's only. + # Where (docs/ci-runners.md): our checks runners (label horizon-checks: the desktop's, an isolated user, so a fork's + # pull request runs there too) take main's pushes and the pull requests whose number ends in 0, 1 or 2; GitHub's + # runners take the others, so both pools work at once. The repository variable SELF_HOSTED_CI moves them: `all` + # every job to ours, `light` (the desktop paused) or `off` every job to GitHub's. On ours the build folder persists + # (CARGO_TARGET_DIR, outside the checkout), so the apt packages, Python and the Rust cache steps are GitHub's only. verify: - runs-on: ${{ vars.SELF_HOSTED_CI == 'all' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && fromJSON('["self-hosted", "linux", "playhorizon-ci"]') || 'ubuntu-latest' }} + runs-on: >- + ${{ vars.SELF_HOSTED_CI != 'off' && vars.SELF_HOSTED_CI != 'light' && (vars.SELF_HOSTED_CI == 'all' || + github.event_name != 'pull_request' || endsWith(format('{0}', github.event.pull_request.number), '0') || + endsWith(format('{0}', github.event.pull_request.number), '1') || + endsWith(format('{0}', github.event.pull_request.number), '2')) && + fromJSON('["self-hosted", "linux", "horizon-checks"]') || 'ubuntu-latest' }} timeout-minutes: 45 steps: - uses: actions/checkout@v4 @@ -104,7 +109,12 @@ jobs: # changes it or a crate it builds is checked here, and so is every push to main: two pull requests can each pass # alone and break it together (#2059 and the registry ratings did, 2026-10-26). launcher: - runs-on: ${{ vars.SELF_HOSTED_CI == 'all' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && fromJSON('["self-hosted", "linux", "playhorizon-ci"]') || 'ubuntu-latest' }} + runs-on: >- + ${{ vars.SELF_HOSTED_CI != 'off' && vars.SELF_HOSTED_CI != 'light' && (vars.SELF_HOSTED_CI == 'all' || + github.event_name != 'pull_request' || endsWith(format('{0}', github.event.pull_request.number), '0') || + endsWith(format('{0}', github.event.pull_request.number), '1') || + endsWith(format('{0}', github.event.pull_request.number), '2')) && + fromJSON('["self-hosted", "linux", "horizon-checks"]') || 'ubuntu-latest' }} timeout-minutes: 45 steps: - uses: actions/checkout@v4 @@ -145,8 +155,8 @@ jobs: # a harness, an oracle, a probe or the runner, or carries the run-parity label (run-parity.yml, when it is added). parity-scope: if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository - # A git diff of this repository's own branch: one of playhorizon's small runners (docs/ci-runners.md). - runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "playhorizon-light"]') || 'ubuntu-latest' }} + # A git diff of this repository's own branch: one of our small runners (horizon-light, docs/ci-runners.md). + runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "horizon-light"]') || 'ubuntu-latest' }} outputs: run: ${{ steps.scope.outputs.run }} steps: diff --git a/.github/workflows/claim-command.yml b/.github/workflows/claim-command.yml index 511f2331e0..e57774f0f4 100644 --- a/.github/workflows/claim-command.yml +++ b/.github/workflows/claim-command.yml @@ -29,8 +29,8 @@ jobs: # the skipped runs of ordinary comments must not cancel a waiting one. concurrency: group: claim-${{ github.event.issue.number }} - # One of playhorizon's small runners, out of GitHub's shared pool: main's script only (docs/ci-runners.md). - runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "playhorizon-light"]') || 'ubuntu-latest' }} + # One of our small runners (horizon-light), out of GitHub's pool: main's script only (docs/ci-runners.md). + runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "horizon-light"]') || 'ubuntu-latest' }} timeout-minutes: 5 permissions: contents: read @@ -56,8 +56,8 @@ jobs: run: python3 tools/ci/claim_command.py command release: if: github.event_name != 'issue_comment' && github.repository == 'horizon-rust/horizon' - # One of playhorizon's small runners, out of GitHub's shared pool: main's script only (docs/ci-runners.md). - runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "playhorizon-light"]') || 'ubuntu-latest' }} + # One of our small runners (horizon-light), out of GitHub's pool: main's script only (docs/ci-runners.md). + runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "horizon-light"]') || 'ubuntu-latest' }} timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/mod-registry.yml b/.github/workflows/mod-registry.yml index 0f252bb682..cc5455b649 100644 --- a/.github/workflows/mod-registry.yml +++ b/.github/workflows/mod-registry.yml @@ -17,7 +17,8 @@ permissions: contents: read jobs: check: - runs-on: ubuntu-latest + # Our checks runners (label horizon-checks, docs/ci-runners.md); SELF_HOSTED_CI=light or off: GitHub's. + runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && vars.SELF_HOSTED_CI != 'light' && fromJSON('["self-hosted", "linux", "horizon-checks"]') || 'ubuntu-latest' }} timeout-minutes: 20 defaults: run: @@ -25,7 +26,9 @@ jobs: steps: - uses: actions/checkout@v4 - run: rustup toolchain install stable --profile minimal --component rustfmt --component clippy + # Ours keep their build folder between jobs. - uses: Swatinem/rust-cache@v2 + if: runner.environment == 'github-hosted' with: workspaces: crates/horizon-mod-registry save-if: ${{ github.ref == 'refs/heads/main' }} diff --git a/.github/workflows/mojang-republish.yml b/.github/workflows/mojang-republish.yml index 3abb01c3c2..070b8d5605 100644 --- a/.github/workflows/mojang-republish.yml +++ b/.github/workflows/mojang-republish.yml @@ -21,7 +21,8 @@ concurrency: jobs: check: - runs-on: ubuntu-latest + # One of our small runners (label horizon-light, docs/ci-runners.md): main's script, Mojang's public manifest. + runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "horizon-light"]') || 'ubuntu-latest' }} timeout-minutes: 10 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index c93024e42f..2eed03c06c 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -253,7 +253,8 @@ jobs: # Tells the thread that asked for this build how it ended. A conflict `pick` already explained there. needs: [pick, build, sign, publish] if: always() && inputs.issue != '' && needs.pick.result == 'success' - runs-on: ubuntu-latest + # One comment, no checkout and no secret: one of our small runners (label horizon-light, docs/ci-runners.md). + runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "horizon-light"]') || 'ubuntu-latest' }} timeout-minutes: 5 permissions: issues: write diff --git a/.github/workflows/overlap-note.yml b/.github/workflows/overlap-note.yml index bfa6a04466..0478b4a6ca 100644 --- a/.github/workflows/overlap-note.yml +++ b/.github/workflows/overlap-note.yml @@ -19,9 +19,9 @@ jobs: concurrency: group: overlap-note-${{ github.event.pull_request.number }} cancel-in-progress: true - # One of playhorizon's small runners, out of GitHub's shared pool: it runs main's script only (above), so a fork's + # One of our small runners (horizon-light), out of GitHub's pool: it runs main's script only (above), so a fork's # pull request runs none of its code there (docs/ci-runners.md). SELF_HOSTED_CI=off: GitHub's runners. - runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "playhorizon-light"]') || 'ubuntu-latest' }} + runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "horizon-light"]') || 'ubuntu-latest' }} timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/pack-bench.yml b/.github/workflows/pack-bench.yml index 3fb1e1671d..0046844fb7 100644 --- a/.github/workflows/pack-bench.yml +++ b/.github/workflows/pack-bench.yml @@ -22,17 +22,24 @@ env: jobs: bench: - runs-on: ubuntu-latest + # Our checks runners (label horizon-checks, docs/ci-runners.md): the branch and the base on the same machine, as + # the comparison needs. SELF_HOSTED_CI=light or off: GitHub's. + runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && vars.SELF_HOSTED_CI != 'light' && fromJSON('["self-hosted", "linux", "horizon-checks"]') || 'ubuntu-latest' }} timeout-minutes: 90 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install Rust and the ALSA and udev headers + env: + HOSTED: ${{ runner.environment == 'github-hosted' }} run: | - sudo apt-get update && sudo apt-get install -y --no-install-recommends libasound2-dev libudev-dev + if [ "$HOSTED" = true ]; then + sudo apt-get update && sudo apt-get install -y --no-install-recommends libasound2-dev libudev-dev + fi rustup toolchain install stable --profile minimal - uses: Swatinem/rust-cache@v2 + if: runner.environment == 'github-hosted' with: shared-key: pack-bench - name: Bench the branch @@ -46,11 +53,15 @@ jobs: SCALE: ${{ inputs.scale || '1' }} run: | git fetch https://github.com/horizon-rust/horizon.git "$BASE" + # Our runners keep the folder beside the checkout between jobs. + git worktree remove --force ../base 2> /dev/null || rm -rf ../base + git worktree prune git worktree add ../base FETCH_HEAD cp crates/horizon-client-render/examples/pack_load_bench.rs ../base/crates/horizon-client-render/examples/ # A bench row that times a function the base lacks keeps it from building there: then # the branch's own rows compare the two ways. - (cd ../base && CARGO_TARGET_DIR="$GITHUB_WORKSPACE/target" cargo run --profile fast -p horizon-client-render \ + target=${CARGO_TARGET_DIR:-$GITHUB_WORKSPACE/target} + (cd ../base && CARGO_TARGET_DIR="$target" cargo run --profile fast -p horizon-client-render \ --example pack_load_bench -- --scale "$SCALE") > base.md \ || echo "The bench does not build on the base." > base.md - name: Summary diff --git a/.github/workflows/pr-labels.yml b/.github/workflows/pr-labels.yml index 0a032cabbe..9adaa0ea88 100644 --- a/.github/workflows/pr-labels.yml +++ b/.github/workflows/pr-labels.yml @@ -16,9 +16,9 @@ jobs: label: # Title-only edits change nothing: skip them before a runner starts. if: github.event.action != 'edited' || github.event.changes.body != null - # One of playhorizon's small runners, out of GitHub's shared pool: it runs main's script only (above), so a fork's + # One of our small runners (horizon-light), out of GitHub's pool: it runs main's script only (above), so a fork's # pull request runs none of its code there (docs/ci-runners.md). SELF_HOSTED_CI=off: GitHub's runners. - runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "playhorizon-light"]') || 'ubuntu-latest' }} + runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "horizon-light"]') || 'ubuntu-latest' }} timeout-minutes: 5 permissions: contents: read diff --git a/.github/workflows/telemetry-server.yml b/.github/workflows/telemetry-server.yml index e543721f92..7b46e1da97 100644 --- a/.github/workflows/telemetry-server.yml +++ b/.github/workflows/telemetry-server.yml @@ -17,7 +17,8 @@ permissions: contents: read jobs: check: - runs-on: ubuntu-latest + # Our checks runners (label horizon-checks, docs/ci-runners.md); SELF_HOSTED_CI=light or off: GitHub's. + runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && vars.SELF_HOSTED_CI != 'light' && fromJSON('["self-hosted", "linux", "horizon-checks"]') || 'ubuntu-latest' }} timeout-minutes: 20 defaults: run: @@ -25,7 +26,9 @@ jobs: steps: - uses: actions/checkout@v4 - run: rustup toolchain install stable --profile minimal --component rustfmt --component clippy + # Ours keep their build folder between jobs. - uses: Swatinem/rust-cache@v2 + if: runner.environment == 'github-hosted' with: workspaces: crates/horizon-telemetry-server save-if: ${{ github.ref == 'refs/heads/main' }} diff --git a/.github/workflows/triage-command.yml b/.github/workflows/triage-command.yml index 938bbc337b..540468f4c3 100644 --- a/.github/workflows/triage-command.yml +++ b/.github/workflows/triage-command.yml @@ -21,7 +21,8 @@ jobs: startsWith(github.event.comment.body, '/reopen') || startsWith(github.event.comment.body, '/label') || startsWith(github.event.comment.body, '/unlabel')) - runs-on: ubuntu-latest + # One of our small runners (label horizon-light, docs/ci-runners.md): main's script only, as above. + runs-on: ${{ vars.SELF_HOSTED_CI != 'off' && fromJSON('["self-hosted", "linux", "horizon-light"]') || 'ubuntu-latest' }} timeout-minutes: 5 permissions: contents: read diff --git a/docs/README.md b/docs/README.md index 3febb38d83..46854a11cd 100644 --- a/docs/README.md +++ b/docs/README.md @@ -37,7 +37,7 @@ To play, use [the launcher](../launcher/README.md); the project site is [playhor - [Rust rewrite status](rust-parity.md): completion criteria, how to reproduce the validation, and per-area scope. - [Parity workflow](parity-workflow.md): `tools/parity.py`, the gate, other machines, merging. -- [CI runners](ci-runners.md): which jobs run on GitHub's runners and which on ours (playhorizon, the Mac mini), and why a fork's pull request never runs on ours. +- [CI runners](ci-runners.md): which jobs run on GitHub's runners and which on ours (the desktop, playhorizon, the Mac mini), the `SELF_HOSTED_CI` switch, and where a fork's pull request may run. - Area notes: [block behaviours and ticking](parity/blocks.md), [section meshing](parity/meshing.md). - [Port ledger](port-ledger.md): `tools/port_ledger.py`, every vanilla method next to the Rust functions that port it, both ways, with the gaps where a port isn't wired like vanilla. - [Version ports](version-ports.md): how a new Minecraft release is detected, diffed against the pinned one and ported, and what stays manual. diff --git a/docs/ci-runners.md b/docs/ci-runners.md index 5efb92ef42..fdc2863eec 100644 --- a/docs/ci-runners.md +++ b/docs/ci-runners.md @@ -1,66 +1,71 @@ # CI runners GitHub gives the organisation 20 hosted jobs at a time, shared by every pull request, every push to main and the -bots. On 2026-10-31 that pool ran ~12 jobs on average with 400+ runs queued and every job waited 20–25 minutes for a -runner, while its work took 0.3–4 minutes. A quarter of that pool's time went to bots that run for seconds; those -run on our own machines now, and the heavy checks can follow when the pool is full. +bots. On 2026-11-03 that pool had 283–351 jobs waiting (median wait 43–55 minutes) for jobs that work 1–18 +minutes, and the bots' two small runners had 327–371 waiting. Since then (the maintainer's decision: "use everything +we have to the max") every job that can runs on our own machines, and GitHub's pool keeps only what can't move. | Runner | Machine | Labels | Takes | | --- | --- | --- | --- | -| `playhorizon-ci-1`, `playhorizon-ci-2` | playhorizon (partner's server, 8 vCPU) | `playhorizon-ci` | Only with `SELF_HOSTED_CI=all`: `checks`' `verify` and `launcher` for main's pushes and this repository's own pull requests | -| `playhorizon-light-1`, `playhorizon-light-2` | playhorizon | `playhorizon-light` | The bots that run main's own scripts: `pr labels`, `overlap note`, `cancel-on-close`, `claim command`, and `checks`' `parity-scope` | -| `playhorizon-horizon` | playhorizon | `horizon-game`, `playhorizon` | Parity ([release-flow.md](release-flow.md#the-parity-job)) | +| `ludodesktop-checks-1`…`-3` | ludodesktop (the maintainer's desktop, 24 threads), isolated user `gha` | `horizon-checks` | `checks`' `verify` and `launcher` (main's pushes, and the pull requests whose number ends in 0, 1 or 2, forks included), `mod-registry`, `telemetry-server`, `pack load bench` | +| `playhorizon-light-1`…`-8` | playhorizon (partner's server, 8 vCPU) | `horizon-light`, `playhorizon-light` | The bots that run main's own scripts: `pr labels`, `overlap note`, `cancel-on-close`, `claim command`, `triage command`, `mojang republish`, `nightly build`'s `answer`, and `checks`' `parity-scope` | +| `playhorizon-ci-1`, `playhorizon-ci-2` | playhorizon | `playhorizon-ci` | Nothing routed since 2026-11-03 (they took `checks` of this repository's own pull requests with the old `SELF_HOSTED_CI=all`) | +| `playhorizon-horizon`, `ludodesktop-horizon`, `ludodesktop-parity-2` | playhorizon, ludodesktop | `horizon-game` | Parity ([release-flow.md](release-flow.md#the-parity-job)) | | `ludovics-mac-mini*` | Mac mini | `horizon-game`, `horizon-parity-main`, `horizon-release`, `horizon-nightly` | Parity, parity-main, macOS builds, releases | -Everything else stays on GitHub's runners: `checks` by default, a fork's pull request always, the Windows and Linux -builds, and every job that holds a secret (signing, publishing: the partner keeps hypervisor access to playhorizon). +The desktop's runners are declared in the maintainer's NixOS configuration (his private fleet repository, +`nixos/ludodesktop/horizon-runner.nix`), not installed from here; playhorizon's by `tools/ci/checks-runners.sh`. + +## What stays on GitHub, and why + +- **Every job that holds a secret, or whose token can push, tag, publish or start workflows** (`contents: write`, + `actions: write`): `release`'s and `launcher`'s `decide` (they choose the commit a release builds and start the + build), `nightly build`'s `pick`, `sign` and `publish`, `launcher`'s `sign` and `publish`, `nightly command` (it + writes the set of pull requests the Nightly holds), `native hook stamp` (it pushes a branch). playhorizon is a + partner's server that the partner can reach, and a checks runner keeps what a fork's job left behind: neither may + decide or sign what players download. `tests/test_ci_runners.py` pins it. +- **Release builds**: Linux on `ubuntu-22.04` (players' binaries must link against its older glibc; our Linux + machines have newer ones), Windows on `windows-latest` (no Windows machine). macOS builds already run on the Mac + mini. +- **Seven of ten pull requests' `verify` and `launcher`** (number ending in 3–9): three runners can't take + ~90 `checks` runs an hour alone (each brings `verify`, 10–18 minutes of work on GitHub, and `launcher`, 1–11), + so both pools work at once. `SELF_HOSTED_CI=all` sends them all to ours. ## Which jobs, and when -The repository variable `SELF_HOSTED_CI` decides: +The repository variable `SELF_HOSTED_CI` decides, from the next job queued (queued jobs keep the runner they asked +for): -| `SELF_HOSTED_CI` | Bots (`playhorizon-light`) | `checks` of main and same-repository pull requests (`playhorizon-ci`) | +| `SELF_HOSTED_CI` | Bots (`horizon-light`) | `checks`, `mod-registry`, `telemetry-server`, `pack load bench` (`horizon-checks`) | | --- | --- | --- | -| unset (default) | playhorizon | GitHub | -| `all` | playhorizon | playhorizon | -| `off` | GitHub | GitHub | +| unset (default) | ours | ours for main's pushes and the pull requests ending in 0–2; GitHub's for the others (`verify`, `launcher`); ours for the rest | +| `all` | ours | ours, every pull request | +| `light` | ours | GitHub's: the desktop is paused | +| `off` | GitHub's | GitHub's: everything back, in one switch | -`gh variable set SELF_HOSTED_CI --body all --repo horizon-rust/horizon` (or `off`; `gh variable delete` for the -default) takes effect from the next run; queued jobs keep the runner they asked for. +```sh +gh variable set SELF_HOSTED_CI --body light --repo horizon-rust/horizon # or all, off +gh variable delete SELF_HOSTED_CI --repo horizon-rust/horizon # the default +``` -Why the checks stay on GitHub by default: the checks runners have CPUs 4–7, shared with the parity runner, about -one GitHub runner's worth. With every same-repository pull request on them (#5415, 2026-10-31 20:25–20:45 UTC), 19 -jobs waited there, the oldest 18 minutes, while GitHub's pool, rid of the bots, ran 9–12 of its 20 jobs with nothing -waiting. Use `all` when GitHub's pool is full again (hosted jobs waiting tens of minutes) and playhorizon is quiet. -Set `off` when playhorizon is down or moves: the bots would wait for it. +Set `light` when the desktop is paused (the maintainer uses it), `off` when playhorizon is down or moves: the bots +would wait for it. Back to the default when they return. -## How long +## Forks -Measured 2026-10-31 on #5415, with playhorizon's parity runner busy on the same CPUs (load ~15–20): +A fork's pull request is code nobody here wrote. It may run on the checks runners only: -| Job | GitHub's runners: wait + work | playhorizon: wait + work | -| --- | --- | --- | -| `verify` (Rust changed) | 20–25 min + ~8 min (clippy 2.4, tests 4.2, Python 1.3) | ~0 + 10.5 min (clippy 3.7, tests 5.0, Python 1.7) | -| `launcher` (launcher changed) | 20–25 min + 2.1 min | ~0 + 2.5 min | -| a bot (`pr labels`, `overlap note`...) | 20–26 min + 0.3–0.9 min | ~0 + seconds | - -The work is ~30% slower here (4 CPUs shared with parity, against a GitHub runner's 4 of its own), up to 16 minutes -for `verify` when the machine is loaded (load ~30). That pays only while GitHub's pool makes jobs wait longer than -that. A runner's first build of a workspace is cold: ~14 min for `verify`, ~11 for `launcher`. - -## Forks never run here - -A fork's pull request is code nobody here wrote. Three locks keep it off our runners: - -1. The workflows pick the runner by event: `checks` sends a `pull_request` to playhorizon only when - `github.event.pull_request.head.repo.full_name == github.repository` (and `SELF_HOSTED_CI=all`), else to - `ubuntu-latest`. The bots run on - `pull_request_target`, `issue_comment` and `schedule`, which always run main's workflow and main's scripts, never - the pull request's (each workflow's header says how). `tests/test_ci_runners.py` pins both. -2. A fork's pull request runs its *own* copy of the workflows, so it could name these labels anyway. Before every - job, the runners' `job-started.sh` (`ACTIONS_RUNNER_HOOK_JOB_STARTED`) fails any pull request event whose head - repository isn't this one, before a line of it is on disk. -3. The repository asks a maintainer to approve the runs of every outside contributor's pull request (Settings → +1. The checks runners are an isolated system user on the desktop (`gha`: no sudo, no logins, no SSH keys, `/home` + invisible, the rest of the system read-only, no GPU or device), and their jobs' tokens write nothing and see no + secret (`tests/test_ci_runners.py`). +2. The light runners take main's own scripts only: the bots run on `pull_request_target`, `issue_comment`, + `schedule` and main's pushes, which always run main's workflow and main's scripts, never the pull request's + (each workflow's header says how); `checks`' `parity-scope` only for this repository's own branches. The test + pins both. +3. A fork's pull request runs its *own* copy of the workflows, so it could name the light labels anyway. Before + every job, playhorizon's runners' `job-started.sh` (`ACTIONS_RUNNER_HOOK_JOB_STARTED`) fails any pull request + event whose head repository isn't this one, before a line of it is on disk. +4. The repository asks a maintainer to approve the runs of every outside contributor's pull request (Settings → Actions → "Require approval for all external contributors"). ## On playhorizon @@ -75,14 +80,30 @@ ssh ludovic@playhorizon 'bash ~/horizon-install/checks-runners.sh status' ``` - Each runner is a systemd user service (`horizon-runner-ci-`, `horizon-runner-light-`) in - `~/.actions-runners/horizon-{ci,light}-`, with its own work folder and `HOME`. + `~/.actions-runners/horizon-{ci,light}-`, with its own work folder and `HOME`. `LIGHT_RUNNERS` (default 8) and + `CI_RUNNERS` (default 2) say how many. - All of them run nice and pinned to CPUs 4–7, inside `horizon-ci.slice` (the CPU quota and memory cap of all CI on the machine, `linux-runner.sh`). The checks runners have their own `horizon-ci-checks.slice` (memory ≤ 16 GB). CPUs 0–3 stay for `tools/remote.sh` runs, benchmarks and the servers. +- `job-started.sh`, before every job: refuses a fork's pull request; empties a cargo build folder over 40 GB + (`MAX_TARGET_GB`); drops a checkout's `.git` over 4 GB (`MAX_GIT_GB`), which the checkout then clones again. Every + job's fetch adds a pack and nothing repacks them: on 2026-11-03 each light runner's checkout held 6822 packs, 50 GB. - The checks runners share one cargo home (`~/.actions-runners/ci-shared/cargo`: registry and git sources). Each has - its own rustup home and its own build folder (`CARGO_TARGET_DIR`, outside the checkout, so the checkout's clean - keeps it): a run rebuilds only what changed. `CARGO_BUILD_JOBS=4`. `job-started.sh` empties a build folder over - 40 GB (`MAX_TARGET_GB`) before the job. -- No sccache: each build folder already holds the dependencies, and the host's shared cache is the remote runs'. + its own rustup home and its own build folder (`CARGO_TARGET_DIR`, outside the checkout). `CARGO_BUILD_JOBS=4`. - Python is the host's 3.13 (`ci-shared/bin/python3`); the apt packages the jobs need are installed by the script, so the jobs skip their `apt-get`, `setup-python` and Rust cache steps there (`runner.environment == 'github-hosted'`). + +## On the desktop + +`gha.slice` holds every runner there (parity and checks): CPU and I/O weight 20, 22 of the 24 threads (12 while the +CPU is at 92 °C or more), memory 24 GB soft / 26 GB hard. Each checks runner has `CARGO_BUILD_JOBS=6`, its own +build folder (`/var/lib/gha/checks-/target`, kept between jobs, emptied past 30 GB before the runner starts), its +own rustup and cargo homes, Python 3.13, gh (no login), the libraries the game and GPUI link against, and its own +Xvfb with Mesa's software Vulkan. They run all the time; the maintainer pauses them when he uses the desktop: + +```sh +ssh desktop 'sudo -n touch /var/lib/gha-control/pause && sudo -n systemctl stop gha-runners.target' # pause +ssh desktop 'sudo -n rm -f /var/lib/gha-control/pause && sudo -n systemctl start gha-runners.target' # resume +``` + +With the desktop paused, set `SELF_HOSTED_CI=light`, or `checks` waits for it. diff --git a/docs/release-flow.md b/docs/release-flow.md index 4a584b0234..b1aad12ece 100644 --- a/docs/release-flow.md +++ b/docs/release-flow.md @@ -13,7 +13,7 @@ reopened; labels never start it): | Job | Runs on | What | Time | | --- | --- | --- | --- | -| `verify` | GitHub `ubuntu-latest`; with `SELF_HOSTED_CI=all`, playhorizon's checks runners for main's pushes and this repository's own pull requests, never a fork's ([CI runners](ci-runners.md)) | Public-tree check, Python tests, rustfmt, clippy with warnings denied, Rust tests, one after another in one job (one runner from the organisation's shared pool per run). Dependencies and the workspace build come from a cache saved by main's runs (GitHub) or the runner's own build folder (playhorizon) | ~8 min | +| `verify` | Our checks runners (label `horizon-checks`, the desktop's) for main's pushes and the pull requests whose number ends in 0–2, forks included; GitHub `ubuntu-latest` for the others. `SELF_HOSTED_CI` moves them: `all` all to ours, `light` or `off` all to GitHub ([CI runners](ci-runners.md)) | Public-tree check, Python tests, rustfmt, clippy with warnings denied, Rust tests, one after another in one job. Dependencies and the workspace build come from a cache saved by main's runs (GitHub) or the runner's own build folder (ours) | ~8 min | | `parity / parity` | A runner with the label `horizon-game`: the Mac mini's and playhorizon's (below) | Only for a change to a harness, an oracle, a probe or the runner (or the `run-parity` label): the vanilla harnesses the change can affect (`tools/parity.py --changed `). Other pull requests skip it: [parity-main](#parity-on-main) checks them on main | seconds when nothing is affected; minutes per affected harness | Pushes to main run `verify` only; the nightly audit covers main's harnesses. diff --git a/tests/test_ci_runners.py b/tests/test_ci_runners.py index efaafd16c6..aeb8055691 100644 --- a/tests/test_ci_runners.py +++ b/tests/test_ci_runners.py @@ -1,12 +1,22 @@ -"""playhorizon's checks runners (docs/ci-runners.md) never run a fork's pull request.""" +"""Which jobs may run on our own runners (docs/ci-runners.md). + +- horizon-light (playhorizon's and other small runners, which refuse a fork's pull request): main's own scripts only. +- horizon-checks (isolated runners that take any pull request, forks included): no secret and no token that writes. +- Neither takes a job that holds a secret or whose token can push, publish or start workflows: playhorizon is a + partner's server, and a checks runner keeps what a fork's job left behind. +""" import re import unittest from pathlib import Path ROOT = Path(__file__).resolve().parents[1] WORKFLOWS = ROOT / ".github/workflows" -LABELS = ("playhorizon-ci", "playhorizon-light") +LIGHT = ("horizon-light", "playhorizon-light", "playhorizon-ci") +CHECKS = ("horizon-checks",) FORK_GUARD = "github.event.pull_request.head.repo.full_name == github.repository" +TRUSTED_WRITES = re.compile(r"^\s*(contents|actions|packages|id-token|deployments|attestations): write", re.M) +# actions: write can start workflows too; cancel-on-close needs it to cancel runs and runs no checkout at all. +CANCELS_RUNS = {"cancel-on-close.yml cancel"} def jobs(text): @@ -22,31 +32,89 @@ def triggers(text): return set(re.findall(r"^ ([a-z_]+):", on.group(1), re.M)) if on else set() -class ChecksRunnerTests(unittest.TestCase): - def test_self_hosted_jobs_never_take_a_fork_pull_request(self): - routed = 0 - for path in sorted(WORKFLOWS.glob("*.yml")): - text = path.read_text() - on = triggers(text) - for name, block in jobs(text): - runs_on = next((l for l in block.splitlines() if l.strip().startswith("runs-on:")), "") - if not any(label in runs_on for label in LABELS): - continue - routed += 1 - where = f"{path.name} {name}" - # The switch back to GitHub's runners. - self.assertTrue("vars.SELF_HOSTED_CI != 'off'" in runs_on or "vars.SELF_HOSTED_CI == 'all'" in runs_on, - where) - self.assertIn("'ubuntu-latest'", runs_on, where) - if "pull_request" in on: - job_if = next((l for l in block.splitlines() if l.strip().startswith("if:")), "") - self.assertTrue(FORK_GUARD in runs_on or FORK_GUARD in job_if, f"{where}: a fork's pull request") - if "pull_request_target" in on: - # main's code only: every checkout is main's. - self.assertEqual(block.count("uses: actions/checkout"), block.count("ref: main"), where) - self.assertGreaterEqual(routed, 3) +def runs_on(block): + """The job's runs-on value, a folded (`>-`) one included.""" + lines = block.splitlines() + for i, line in enumerate(lines): + if line.strip().startswith("runs-on:"): + value = line.split("runs-on:", 1)[1].strip() + if value in (">-", ">", "|"): + indent = len(line) - len(line.lstrip()) + 2 + # The folded lines right under it. + folded = [] + for l in lines[i + 1:]: + if not l.startswith(" " * indent): + break + folded.append(l.strip()) + value = " ".join(folded) + return value + return "" - def test_the_runners_refuse_forks_themselves(self): + +def routed(): + """(where, triggers, workflow text, job block, runs-on, pools) for every job that can run on our runners.""" + for path in sorted(WORKFLOWS.glob("*.yml")): + text = path.read_text() + on = triggers(text) + for name, block in jobs(text): + value = runs_on(block) + pools = {pool for pool, labels in (("light", LIGHT), ("checks", CHECKS)) + if any(f'"{label}"' in value for label in labels)} + if pools: + yield f"{path.name} {name}", on, text, block, value, pools + + +class OwnRunnerTests(unittest.TestCase): + def test_every_job_on_our_runners_can_go_back_to_github(self): + count = 0 + for where, _, _, _, value, pools in routed(): + count += 1 + self.assertIn("vars.SELF_HOSTED_CI != 'off'", value, where) + self.assertTrue(value.endswith("|| 'ubuntu-latest' }}"), where) + if "checks" in pools: + # The desktop paused: every checks job back to GitHub, the bots stay. + self.assertIn("vars.SELF_HOSTED_CI != 'light'", value, where) + self.assertGreaterEqual(count, 10) + + def test_light_runners_take_main_code_only(self): + for where, on, _, block, _, pools in routed(): + if "light" not in pools: + continue + if "pull_request" in on: + job_if = next((l for l in block.splitlines() if l.strip().startswith("if:")), "") + self.assertIn(FORK_GUARD, job_if, f"{where}: a fork's pull request") + if "pull_request_target" in on: + # main's code only: every checkout is main's. + self.assertEqual(block.count("uses: actions/checkout"), block.count("ref: main"), where) + + def test_no_secret_or_writing_token_on_our_runners(self): + for where, _, text, block, _, pools in routed(): + self.assertNotIn("secrets.", block, where) + self.assertNotIn("environment:", block, where) + head = text.split("\njobs:\n", 1)[0] + for part in (block, head): + writes = {m.group(1) for m in TRUSTED_WRITES.finditer(part)} + if where in CANCELS_RUNS: + writes -= {"actions"} + self.assertNotIn("actions/checkout", block, where) + self.assertEqual(writes, set(), where) + if "checks" in pools: + # A checks runner keeps what a fork's job left: its jobs' tokens write nothing at all. + self.assertNotRegex(block, r":\s*write", where) + self.assertNotRegex(head, r":\s*write", where) + + def test_checks_split_between_both_pools(self): + ci = (WORKFLOWS / "ci.yml").read_text() + verify = dict(jobs(ci))["verify"] + value = runs_on(verify) + # Main's pushes on ours; a pull request by the last digit of its number unless SELF_HOSTED_CI=all. + self.assertIn("github.event_name != 'pull_request'", value) + self.assertIn("vars.SELF_HOSTED_CI == 'all'", value) + self.assertIn("endsWith(format('{0}', github.event.pull_request.number), '0')", value) + self.assertNotIn(FORK_GUARD, value) + self.assertEqual(value, runs_on(dict(jobs(ci))["launcher"])) + + def test_the_light_runners_refuse_forks_themselves(self): script = (ROOT / "tools/ci/checks-runners.sh").read_text() self.assertIn("ACTIONS_RUNNER_HOOK_JOB_STARTED=$shared/job-started.sh", script) self.assertIn('.pull_request.head.repo.full_name // "unknown"', script) diff --git a/tools/ci/checks-runners.sh b/tools/ci/checks-runners.sh index 0f9cfd3e2d..2345dffe3e 100644 --- a/tools/ci/checks-runners.sh +++ b/tools/ci/checks-runners.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# The checks runners on playhorizon (the partner's Linux server, docs/ci-runners.md): GitHub's 20 hosted jobs at a -# time are shared by every pull request, so the same-repository ones and main's pushes run here instead. +# The bots' runners and two checks runners on playhorizon (the partner's Linux server, docs/ci-runners.md): GitHub's +# 20 hosted jobs at a time are shared by every pull request and every bot, so the bots run here instead. # # bash tools/ci/checks-runners.sh install < token # register (token on stdin), install, start; again to update # bash tools/ci/checks-runners.sh status @@ -11,15 +11,19 @@ # ssh ludovic@playhorizon 'bash ~/horizon-install/checks-runners.sh install' # # Two kinds of runner, each a systemd user service in ~/.actions-runners/: -# - horizon-ci- (label playhorizon-ci, CI_RUNNERS of them, default 2): ci.yml's verify and launcher jobs. Each has +# - horizon-ci- (label playhorizon-ci, CI_RUNNERS of them, default 2): this repository's own verify and launcher +# jobs (no workflow routes them here since 2026-11-03: the desktop's horizon-checks runners take them). Each has # its own work folder, rustup home and cargo target folder (outside the checkout, so the checkout's clean leaves it), # and they share one cargo home (registry and git sources). -# - horizon-light- (label playhorizon-light, LIGHT_RUNNERS, default 2): the bots that run main's own scripts on -# pull_request_target and comment events (pr labels, overlap note, cancel-on-close, claim command). No Rust. +# - horizon-light- (labels playhorizon-light and horizon-light, LIGHT_RUNNERS, default 8): the bots that run main's +# own scripts on pull_request_target, comment, schedule and main's push events (pr labels, overlap note, +# cancel-on-close, claim command...). No Rust. Their jobs last seconds, so they are many; horizon-light is the label +# the workflows ask for. # All of them run nice, pinned to CPUs 4-7 inside horizon-ci.slice (linux-runner.sh: CPU quota and memory cap for # all CI on the machine), so CPUs 0-3 stay for tools/remote.sh runs, benchmarks and the servers. -# Before every job, ci-shared/job-started.sh fails a job from a fork's pull request (whatever its workflow file says) -# and empties a cargo target folder grown past MAX_TARGET_GB. +# Before every job, ci-shared/job-started.sh fails a job from a fork's pull request (whatever its workflow file says), +# empties a cargo target folder grown past MAX_TARGET_GB and drops a checkout's .git grown past MAX_GIT_GB (every +# fetch adds a pack and nothing repacks them: 6822 packs, 50 GB, in each light runner's checkout on 2026-11-03). set -euo pipefail repo=horizon-rust/horizon base=$HOME/.actions-runners @@ -27,13 +31,13 @@ shared=$base/ci-shared units=${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user version=2.338.0 sha=af4b794c1bc41d73d40535e3fe092a39f9679cd8d965954c2aca25a05ca41d32 -ci=${CI_RUNNERS:-2} light=${LIGHT_RUNNERS:-2} cpus=${RUNNER_CPU_LIST:-4-7} jobs=${CI_JOBS:-4} +ci=${CI_RUNNERS:-2} light=${LIGHT_RUNNERS:-8} cpus=${RUNNER_CPU_LIST:-4-7} jobs=${CI_JOBS:-4} packages="build-essential pkg-config git curl jq gh libasound2-dev libudev-dev libxkbcommon-x11-dev libwayland-dev libx11-xcb-dev libfontconfig-dev libvulkan-dev" runners() { for i in $(seq 1 "$ci"); do echo "horizon-ci-$i playhorizon-ci"; done - for i in $(seq 1 "$light"); do echo "horizon-light-$i playhorizon-light"; done + for i in $(seq 1 "$light"); do echo "horizon-light-$i playhorizon-light,horizon-light"; done } shared_files() { @@ -64,6 +68,15 @@ if [ -n "${CARGO_TARGET_DIR:-}" ] && [ -d "$CARGO_TARGET_DIR" ]; then rm -rf "${CARGO_TARGET_DIR:?}" fi fi +# The checkout's history: actions/checkout fetches into the same .git every job and never repacks. Without .git it +# clones again (and replaces the rest of the folder). +if [ -n "${GITHUB_WORKSPACE:-}" ] && [ -d "$GITHUB_WORKSPACE/.git" ]; then + size=$(du -s --block-size=1G "$GITHUB_WORKSPACE/.git" | cut -f1) + if [ "$size" -gt "${MAX_GIT_GB:-4}" ]; then + echo "Checkout's .git at ${size} GB (over ${MAX_GIT_GB:-4}): removed, this job clones again" + rm -rf "${GITHUB_WORKSPACE:?}/.git" + fi +fi EOF chmod +x "$shared/job-started.sh" } From 64c8c8b399c1b7467ccdf2cda3f9d06ff422ccab Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:38:52 +0100 Subject: [PATCH 60/70] CI: a default Rust toolchain for verify's Python tests on our runners The desktop's checks runners have their own rustup homes with no default toolchain, and some Python tests run a bare rustc before the Rust step installs one (25 tests failed on ludodesktop-checks-3). Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7edf0f2cd8..b322366040 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,6 +68,13 @@ jobs: else python tools/check_public_tree.py --history fi + # Some Python tests compile Rust with a bare `rustc`: GitHub's image has a default toolchain, our runners' own + # rustup homes may not. + - name: Default Rust toolchain for the Python tests + if: runner.environment != 'github-hosted' + run: | + rustup toolchain install stable --profile minimal --component rustfmt --component clippy + rustup default stable - name: Test offline research tooling run: python -m unittest discover -s tests -v - name: Install Rust toolchain and the ALSA and udev headers the client links against From ae6600f7a546a3cf1158a1c5e8ad23d5fb556ccd Mon Sep 17 00:00:00 2001 From: mattiaemolo Date: Tue, 3 Nov 2026 19:39:32 +0100 Subject: [PATCH 61/70] fix(lan): a spectator no longer opens a container's lid ChestBlockEntity.startOpen returns early for a spectator, and so does stopOpen (BarrelBlockEntity and ShulkerBoxBlockEntity the same), so a spectator never joins ContainerOpenersCounter. The guest open path counted one anyway: the lid opened, the open sound played for everyone around, and the close path then skipped the spectator, leaving the lid stuck open. Count an opener only for a player who is not a spectator. tools/lan_e2e.py gains a spectator-container check: the menu opens, the lid stays shut and neither the open nor the close sound is heard, on both sides. Fixes #8517 Co-Authored-By: DeepSeek V4.1 Flash Free --- crates/horizon-client/src/game/lan_actions.rs | 6 ++- tools/lan_e2e.py | 41 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/crates/horizon-client/src/game/lan_actions.rs b/crates/horizon-client/src/game/lan_actions.rs index e2e7104d2d..c8e6d42f52 100644 --- a/crates/horizon-client/src/game/lan_actions.rs +++ b/crates/horizon-client/src/game/lan_actions.rs @@ -1364,7 +1364,11 @@ impl Game<'_> { // around, the opener included (`playSound(null, …)`, which the capture // relay sends on to the guests). Without it the host's copy never // learned of the open, so a guest's box opened silently. - if counts_openers && self.container_openers_changed(pos, true) { + // A spectator never joins the openers (`startOpen` returns on + // `player.isSpectator()`): its menu opens but the lid stays shut, no + // sound plays, and `stopOpen` has nothing to decrement, which is why + // the count must not be raised here either (#8517). + if counts_openers && !spectator && self.container_openers_changed(pos, true) { self.container_edge_sound(pos, true); } true diff --git a/tools/lan_e2e.py b/tools/lan_e2e.py index 6f66b4d110..5d79b23062 100755 --- a/tools/lan_e2e.py +++ b/tools/lan_e2e.py @@ -12755,5 +12755,46 @@ CHECKS += ['damage-attacker'] CHECK_FNS['damage-attacker'] = check_damage_attacker +def check_spectator_container(host, guest, out): + """A spectator inspects a container without its lid, its sound or a lid left open (#8517). + + `ChestBlockEntity.startOpen` returns at once for a spectator, and + `stopOpen` skips it the same way, so `ContainerOpenersCounter` never counts + one: the menu opens (a spectator does look inside), while the lid, its + block event and the open and close sounds stay away and nothing is left + open when the menu closes. + """ + opened_sound, closed_sound = 'minecraft:block.chest.open', 'minecraft:block.chest.close' + x, y, z = (int(v // 1) for v in pos_of(guest)) + chest = (x, y, z + 2) + guest('command', command=f'setblock {chest[0]} {chest[1]} {chest[2]} minecraft:chest') + guest('command', command='gamemode spectator') + guest.wait(10) + before = {g.name: (heard(g, opened_sound), heard(g, closed_sound)) for g in (host, guest)} + try: + guest.raw('interact', *chest) + screen = guest.raw('wait-for', 'screen', 'container', '--timeout', 10) + guest.wait(20) + opened = {'guest': lid(guest, chest), 'host': lid(host, chest)} + guest.shot(out, 'spectator-container-open') + guest.raw('key', 'esc', 'tap') + guest.wait(20) + closed = {'guest': lid(guest, chest), 'host': lid(host, chest)} + finally: + guest('command', command='gamemode survival') + guest('command', command=f'setblock {chest[0]} {chest[1]} {chest[2]} minecraft:air') + after = {g.name: (heard(g, opened_sound), heard(g, closed_sound)) for g in (host, guest)} + sounds = {name: (after[name][0] - before[name][0], after[name][1] - before[name][1]) for name in after} + assert screen, 'the spectator did not get the container screen' + assert all(v < 0.1 for v in opened.values()), f'the lid while a spectator looked inside: {opened}' + assert all(v < 0.1 for v in closed.values()), f'the lid after the spectator closed it: {closed}' + assert not any(any(heard_at) for heard_at in sounds.values()), f'the sounds a spectator caused: {sounds}' + return {'opened': opened, 'closed': closed, 'sounds': sounds} + + +CHECKS += ['spectator-container'] +CHECK_FNS['spectator-container'] = check_spectator_container + + if __name__ == '__main__': main() From ecdc236ba751ddfe52a8c9fb811d4063cde764fa Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:55:07 +0100 Subject: [PATCH 62/70] CI: 12 light runners on playhorizon overlap note fetches up to 40 other pull requests' heads and takes 1-8 minutes there; the bursts of pushes left 350 bot jobs waiting for 8 runners. Co-Authored-By: Claude Opus 5.5 --- docs/ci-runners.md | 4 ++-- tools/ci/checks-runners.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/ci-runners.md b/docs/ci-runners.md index fdc2863eec..a636bf60ae 100644 --- a/docs/ci-runners.md +++ b/docs/ci-runners.md @@ -8,7 +8,7 @@ we have to the max") every job that can runs on our own machines, and GitHub's p | Runner | Machine | Labels | Takes | | --- | --- | --- | --- | | `ludodesktop-checks-1`…`-3` | ludodesktop (the maintainer's desktop, 24 threads), isolated user `gha` | `horizon-checks` | `checks`' `verify` and `launcher` (main's pushes, and the pull requests whose number ends in 0, 1 or 2, forks included), `mod-registry`, `telemetry-server`, `pack load bench` | -| `playhorizon-light-1`…`-8` | playhorizon (partner's server, 8 vCPU) | `horizon-light`, `playhorizon-light` | The bots that run main's own scripts: `pr labels`, `overlap note`, `cancel-on-close`, `claim command`, `triage command`, `mojang republish`, `nightly build`'s `answer`, and `checks`' `parity-scope` | +| `playhorizon-light-1`…`-12` | playhorizon (partner's server, 8 vCPU) | `horizon-light`, `playhorizon-light` | The bots that run main's own scripts: `pr labels`, `overlap note`, `cancel-on-close`, `claim command`, `triage command`, `mojang republish`, `nightly build`'s `answer`, and `checks`' `parity-scope` | | `playhorizon-ci-1`, `playhorizon-ci-2` | playhorizon | `playhorizon-ci` | Nothing routed since 2026-11-03 (they took `checks` of this repository's own pull requests with the old `SELF_HOSTED_CI=all`) | | `playhorizon-horizon`, `ludodesktop-horizon`, `ludodesktop-parity-2` | playhorizon, ludodesktop | `horizon-game` | Parity ([release-flow.md](release-flow.md#the-parity-job)) | | `ludovics-mac-mini*` | Mac mini | `horizon-game`, `horizon-parity-main`, `horizon-release`, `horizon-nightly` | Parity, parity-main, macOS builds, releases | @@ -80,7 +80,7 @@ ssh ludovic@playhorizon 'bash ~/horizon-install/checks-runners.sh status' ``` - Each runner is a systemd user service (`horizon-runner-ci-`, `horizon-runner-light-`) in - `~/.actions-runners/horizon-{ci,light}-`, with its own work folder and `HOME`. `LIGHT_RUNNERS` (default 8) and + `~/.actions-runners/horizon-{ci,light}-`, with its own work folder and `HOME`. `LIGHT_RUNNERS` (default 12) and `CI_RUNNERS` (default 2) say how many. - All of them run nice and pinned to CPUs 4–7, inside `horizon-ci.slice` (the CPU quota and memory cap of all CI on the machine, `linux-runner.sh`). The checks runners have their own `horizon-ci-checks.slice` (memory ≤ 16 GB). diff --git a/tools/ci/checks-runners.sh b/tools/ci/checks-runners.sh index 2345dffe3e..68c1669f57 100644 --- a/tools/ci/checks-runners.sh +++ b/tools/ci/checks-runners.sh @@ -15,7 +15,7 @@ # jobs (no workflow routes them here since 2026-11-03: the desktop's horizon-checks runners take them). Each has # its own work folder, rustup home and cargo target folder (outside the checkout, so the checkout's clean leaves it), # and they share one cargo home (registry and git sources). -# - horizon-light- (labels playhorizon-light and horizon-light, LIGHT_RUNNERS, default 8): the bots that run main's +# - horizon-light- (labels playhorizon-light and horizon-light, LIGHT_RUNNERS, default 12): the bots that run main's # own scripts on pull_request_target, comment, schedule and main's push events (pr labels, overlap note, # cancel-on-close, claim command...). No Rust. Their jobs last seconds, so they are many; horizon-light is the label # the workflows ask for. @@ -31,7 +31,7 @@ shared=$base/ci-shared units=${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user version=2.338.0 sha=af4b794c1bc41d73d40535e3fe092a39f9679cd8d965954c2aca25a05ca41d32 -ci=${CI_RUNNERS:-2} light=${LIGHT_RUNNERS:-8} cpus=${RUNNER_CPU_LIST:-4-7} jobs=${CI_JOBS:-4} +ci=${CI_RUNNERS:-2} light=${LIGHT_RUNNERS:-12} cpus=${RUNNER_CPU_LIST:-4-7} jobs=${CI_JOBS:-4} packages="build-essential pkg-config git curl jq gh libasound2-dev libudev-dev libxkbcommon-x11-dev libwayland-dev libx11-xcb-dev libfontconfig-dev libvulkan-dev" From 0ecf7783f626b5b49d6612ba16d8e9c2e4aa8397 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 20:07:55 +0100 Subject: [PATCH 63/70] CI: the desktop takes the pull requests ending in 0 or 1; main's pushes stay on GitHub Three runners give ~180 runner-minutes an hour against ~100 checks runs an hour (21 of them main's pushes, which also save the Rust cache GitHub's pull request runs read): a fifth of the pull requests fills them. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ci.yml | 17 ++++++++--------- docs/ci-runners.md | 12 +++++++----- docs/release-flow.md | 2 +- tests/test_ci_runners.py | 4 ++-- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b322366040..11346f794d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,16 +28,16 @@ jobs: # and every merge to main starting this workflow, three jobs a run left the pool's queue tens of minutes deep. # # Where (docs/ci-runners.md): our checks runners (label horizon-checks: the desktop's, an isolated user, so a fork's - # pull request runs there too) take main's pushes and the pull requests whose number ends in 0, 1 or 2; GitHub's - # runners take the others, so both pools work at once. The repository variable SELF_HOSTED_CI moves them: `all` - # every job to ours, `light` (the desktop paused) or `off` every job to GitHub's. On ours the build folder persists + # pull request runs there too) take the pull requests whose number ends in 0 or 1, about what their three runners + # can do; GitHub's runners take the others and main's pushes (which also save the Rust cache GitHub's pull request + # runs read), so both pools work at once. The repository variable SELF_HOSTED_CI moves them: `all` every job to + # ours, `light` (the desktop paused) or `off` every job to GitHub's. On ours the build folder persists # (CARGO_TARGET_DIR, outside the checkout), so the apt packages, Python and the Rust cache steps are GitHub's only. verify: runs-on: >- ${{ vars.SELF_HOSTED_CI != 'off' && vars.SELF_HOSTED_CI != 'light' && (vars.SELF_HOSTED_CI == 'all' || - github.event_name != 'pull_request' || endsWith(format('{0}', github.event.pull_request.number), '0') || - endsWith(format('{0}', github.event.pull_request.number), '1') || - endsWith(format('{0}', github.event.pull_request.number), '2')) && + github.event_name == 'pull_request' && (endsWith(format('{0}', github.event.pull_request.number), '0') || + endsWith(format('{0}', github.event.pull_request.number), '1'))) && fromJSON('["self-hosted", "linux", "horizon-checks"]') || 'ubuntu-latest' }} timeout-minutes: 45 steps: @@ -118,9 +118,8 @@ jobs: launcher: runs-on: >- ${{ vars.SELF_HOSTED_CI != 'off' && vars.SELF_HOSTED_CI != 'light' && (vars.SELF_HOSTED_CI == 'all' || - github.event_name != 'pull_request' || endsWith(format('{0}', github.event.pull_request.number), '0') || - endsWith(format('{0}', github.event.pull_request.number), '1') || - endsWith(format('{0}', github.event.pull_request.number), '2')) && + github.event_name == 'pull_request' && (endsWith(format('{0}', github.event.pull_request.number), '0') || + endsWith(format('{0}', github.event.pull_request.number), '1'))) && fromJSON('["self-hosted", "linux", "horizon-checks"]') || 'ubuntu-latest' }} timeout-minutes: 45 steps: diff --git a/docs/ci-runners.md b/docs/ci-runners.md index a636bf60ae..67628d3058 100644 --- a/docs/ci-runners.md +++ b/docs/ci-runners.md @@ -7,7 +7,7 @@ we have to the max") every job that can runs on our own machines, and GitHub's p | Runner | Machine | Labels | Takes | | --- | --- | --- | --- | -| `ludodesktop-checks-1`…`-3` | ludodesktop (the maintainer's desktop, 24 threads), isolated user `gha` | `horizon-checks` | `checks`' `verify` and `launcher` (main's pushes, and the pull requests whose number ends in 0, 1 or 2, forks included), `mod-registry`, `telemetry-server`, `pack load bench` | +| `ludodesktop-checks-1`…`-3` | ludodesktop (the maintainer's desktop, 24 threads), isolated user `gha` | `horizon-checks` | `checks`' `verify` and `launcher` for the pull requests whose number ends in 0 or 1, forks included, `mod-registry`, `telemetry-server`, `pack load bench` | | `playhorizon-light-1`…`-12` | playhorizon (partner's server, 8 vCPU) | `horizon-light`, `playhorizon-light` | The bots that run main's own scripts: `pr labels`, `overlap note`, `cancel-on-close`, `claim command`, `triage command`, `mojang republish`, `nightly build`'s `answer`, and `checks`' `parity-scope` | | `playhorizon-ci-1`, `playhorizon-ci-2` | playhorizon | `playhorizon-ci` | Nothing routed since 2026-11-03 (they took `checks` of this repository's own pull requests with the old `SELF_HOSTED_CI=all`) | | `playhorizon-horizon`, `ludodesktop-horizon`, `ludodesktop-parity-2` | playhorizon, ludodesktop | `horizon-game` | Parity ([release-flow.md](release-flow.md#the-parity-job)) | @@ -27,9 +27,11 @@ The desktop's runners are declared in the maintainer's NixOS configuration (his - **Release builds**: Linux on `ubuntu-22.04` (players' binaries must link against its older glibc; our Linux machines have newer ones), Windows on `windows-latest` (no Windows machine). macOS builds already run on the Mac mini. -- **Seven of ten pull requests' `verify` and `launcher`** (number ending in 3–9): three runners can't take - ~90 `checks` runs an hour alone (each brings `verify`, 10–18 minutes of work on GitHub, and `launcher`, 1–11), - so both pools work at once. `SELF_HOSTED_CI=all` sends them all to ours. +- **Main's pushes and eight of ten pull requests' `verify` and `launcher`** (number ending in 2–9): `checks` runs + ~100 times an hour (2026-11-03: 21 pushes to main and 76 pull request runs an hour), each with `verify` (10–18 + minutes of work on GitHub, 11–13 on a desktop runner with a cold build folder) and `launcher` (1–11). Three + runners give ~180 runner-minutes an hour: about the fifth of the pull requests they take. Main's pushes also save + the Rust cache GitHub's runs of pull requests read. `SELF_HOSTED_CI=all` sends them all to ours. ## Which jobs, and when @@ -38,7 +40,7 @@ for): | `SELF_HOSTED_CI` | Bots (`horizon-light`) | `checks`, `mod-registry`, `telemetry-server`, `pack load bench` (`horizon-checks`) | | --- | --- | --- | -| unset (default) | ours | ours for main's pushes and the pull requests ending in 0–2; GitHub's for the others (`verify`, `launcher`); ours for the rest | +| unset (default) | ours | `verify`, `launcher`: ours for the pull requests ending in 0 or 1, GitHub's for the others and main's pushes; the rest ours | | `all` | ours | ours, every pull request | | `light` | ours | GitHub's: the desktop is paused | | `off` | GitHub's | GitHub's: everything back, in one switch | diff --git a/docs/release-flow.md b/docs/release-flow.md index b1aad12ece..f02623052a 100644 --- a/docs/release-flow.md +++ b/docs/release-flow.md @@ -13,7 +13,7 @@ reopened; labels never start it): | Job | Runs on | What | Time | | --- | --- | --- | --- | -| `verify` | Our checks runners (label `horizon-checks`, the desktop's) for main's pushes and the pull requests whose number ends in 0–2, forks included; GitHub `ubuntu-latest` for the others. `SELF_HOSTED_CI` moves them: `all` all to ours, `light` or `off` all to GitHub ([CI runners](ci-runners.md)) | Public-tree check, Python tests, rustfmt, clippy with warnings denied, Rust tests, one after another in one job. Dependencies and the workspace build come from a cache saved by main's runs (GitHub) or the runner's own build folder (ours) | ~8 min | +| `verify` | Our checks runners (label `horizon-checks`, the desktop's) for the pull requests whose number ends in 0 or 1, forks included; GitHub `ubuntu-latest` for the others and main's pushes. `SELF_HOSTED_CI` moves them: `all` all to ours, `light` or `off` all to GitHub ([CI runners](ci-runners.md)) | Public-tree check, Python tests, rustfmt, clippy with warnings denied, Rust tests, one after another in one job. Dependencies and the workspace build come from a cache saved by main's runs (GitHub) or the runner's own build folder (ours) | ~8 min | | `parity / parity` | A runner with the label `horizon-game`: the Mac mini's and playhorizon's (below) | Only for a change to a harness, an oracle, a probe or the runner (or the `run-parity` label): the vanilla harnesses the change can affect (`tools/parity.py --changed `). Other pull requests skip it: [parity-main](#parity-on-main) checks them on main | seconds when nothing is affected; minutes per affected harness | Pushes to main run `verify` only; the nightly audit covers main's harnesses. diff --git a/tests/test_ci_runners.py b/tests/test_ci_runners.py index aeb8055691..3f76540433 100644 --- a/tests/test_ci_runners.py +++ b/tests/test_ci_runners.py @@ -107,8 +107,8 @@ class OwnRunnerTests(unittest.TestCase): ci = (WORKFLOWS / "ci.yml").read_text() verify = dict(jobs(ci))["verify"] value = runs_on(verify) - # Main's pushes on ours; a pull request by the last digit of its number unless SELF_HOSTED_CI=all. - self.assertIn("github.event_name != 'pull_request'", value) + # A pull request by the last digit of its number unless SELF_HOSTED_CI=all; main's pushes keep GitHub's cache. + self.assertIn("github.event_name == 'pull_request' && (", value) self.assertIn("vars.SELF_HOSTED_CI == 'all'", value) self.assertIn("endsWith(format('{0}', github.event.pull_request.number), '0')", value) self.assertNotIn(FORK_GUARD, value) From fd7962f45178d1440af8749a853bcb40f417c949 Mon Sep 17 00:00:00 2001 From: Kacpherek Date: Tue, 3 Nov 2026 18:44:13 +0100 Subject: [PATCH 64/70] Count floating far-terrain cells per level on a real save An ignored census test samples the tiles each far level draws around a camera, from saved chunks and the seed as the far sampler gives them, and counts components of drawn cells that touch neither the world's bottom nor the tile's halo. --- crates/horizon-client/src/save.rs | 242 ++++++++++++++++++++++++++++++ 1 file changed, 242 insertions(+) diff --git a/crates/horizon-client/src/save.rs b/crates/horizon-client/src/save.rs index 144a2f5b3f..1bec3675e3 100644 --- a/crates/horizon-client/src/save.rs +++ b/crates/horizon-client/src/save.rs @@ -7689,3 +7689,245 @@ mod tests { } } } + +/// Far-terrain floating-cell census on a real save: `HORIZON_TEST_RESOURCES` +/// (prepared data), `HORIZON_FAR_SAVE` (a world folder), `HORIZON_FAR_SEED` +/// and `HORIZON_FAR_AT` ("x,z", the camera). Samples the tiles each level +/// draws around the camera as the far sampler gives them (saved chunks up to +/// 16 blocks a cell, the seed beyond) and counts components of drawn cells +/// that touch neither the world's bottom nor the tile's halo. +#[cfg(test)] +mod far_census { + use super::*; + use crate::lod::Column; + use crate::streaming::ChunkGenerator; + + #[derive(Default, Debug)] + struct Census { + tiles: usize, + floating: usize, + cells: usize, + kinds: std::collections::BTreeMap<&'static str, usize>, + water_over_air: usize, + } + + fn kind(name: &str) -> &'static str { + if name.ends_with("_leaves") { + "leaves" + } else if name.ends_with("_log") || name.ends_with("_wood") || name.contains("stem") { + "log" + } else if name == "minecraft:water" || name == "minecraft:lava" { + "fluid" + } else if name.contains("snow") || name.contains("ice") { + "snow/ice" + } else { + "ground" + } + } + + /// `columns`: `side` x `side`, the outer ring a halo. + fn count( + columns: &[Column], + side: usize, + name: &dyn Fn(horizon_world::registry::BlockStateId) -> String, + out: &mut Census, + origin: (i32, i32, i32), + ) { + // Runs of touching spans, per column: (min, max, top state). + let runs: Vec> = columns + .iter() + .map(|column| { + let mut runs: Vec<(i16, i16, _)> = Vec::new(); + for span in column.spans.iter().filter(|s| s.min < s.max) { + match runs.last_mut() { + Some(run) if run.1 == span.min => { + run.1 = span.max; + run.2 = span.state; + } + _ => runs.push((span.min, span.max, span.state)), + } + } + runs + }) + .collect(); + let mut first = Vec::with_capacity(runs.len()); + let mut total = 0; + for column in &runs { + first.push(total); + total += column.len(); + } + let mut parent: Vec = (0..total).collect(); + fn find(parent: &mut [usize], mut i: usize) -> usize { + while parent[i] != i { + parent[i] = parent[parent[i]]; + i = parent[i]; + } + i + } + let union = |parent: &mut Vec, a: usize, b: usize| { + let (a, b) = (find(parent, a), find(parent, b)); + if a != b { + parent[a] = b; + } + }; + for z in 0..side { + for x in 0..side { + let i = z * side + x; + for j in [ + (x + 1 < side).then(|| i + 1), + (z + 1 < side).then(|| i + side), + ] + .into_iter() + .flatten() + { + for (a, &(lo, hi, _)) in runs[i].iter().enumerate() { + for (b, &(other_lo, other_hi, _)) in runs[j].iter().enumerate() { + // Cells meeting at an edge (an acacia's + // diagonal branch) look joined too. + if lo <= other_hi && other_lo <= hi { + union(&mut parent, first[i] + a, first[j] + b); + } + } + } + } + } + } + // Per component: grounded, touches the halo, cells, top state. + let mut grounded = vec![false; total]; + let mut halo = vec![false; total]; + let mut cells = vec![0usize; total]; + let mut top = vec![None; total]; + let mut at = vec![(0, 0); total]; + for z in 0..side { + for x in 0..side { + let i = z * side + x; + let ring = x == 0 || z == 0 || x + 1 == side || z + 1 == side; + for (a, &(lo, hi, state)) in runs[i].iter().enumerate() { + let root = find(&mut parent, first[i] + a); + grounded[root] |= i32::from(lo) <= crate::chunk::MIN_Y; + halo[root] |= ring; + cells[root] += 1; + if top[root].is_none_or(|(y, _)| hi > y) { + top[root] = Some((hi, state)); + at[root] = ( + origin.0 + x as i32 * origin.2, + origin.1 + z as i32 * origin.2, + ); + } + } + if !ring { + let spans = &columns[i].spans; + for (k, span) in spans.iter().enumerate() { + let n = name(span.state); + if kind(&n) == "fluid" && (k == 0 || spans[k - 1].max < span.min) { + out.water_over_air += 1; + if std::env::var_os("HORIZON_FAR_DEBUG").is_some() { + println!( + " fluid over air at {} {} y {}..{} {n}", + origin.0 + x as i32 * origin.2, + origin.1 + z as i32 * origin.2, + span.min, + span.max + ); + } + } + } + } + } + } + for root in 0..total { + if find(&mut parent, root) != root || grounded[root] || halo[root] { + continue; + } + out.floating += 1; + out.cells += cells[root]; + let (y, state) = top[root].unwrap(); + *out.kinds.entry(kind(&name(state))).or_default() += 1; + if std::env::var_os("HORIZON_FAR_DEBUG").is_some() { + println!( + " floating at {:?} top {y} {} ({} cells)", + at[root], + name(state), + cells[root] + ); + } + } + } + + #[test] + #[ignore = "requires prepared data and a save (see the module docs)"] + fn far_floating_cells_per_level() { + let var = |name: &str| std::env::var(name).unwrap_or_else(|_| panic!("{name}")); + let root = PathBuf::from(var("HORIZON_TEST_RESOURCES")); + let world = PathBuf::from(var("HORIZON_FAR_SAVE")); + let seed: i64 = var("HORIZON_FAR_SEED").parse().unwrap(); + let at: Vec = var("HORIZON_FAR_AT") + .split(',') + .map(|n| n.trim().parse().unwrap()) + .collect(); + let assets = Arc::new(crate::assets::Assets::load(&root).expect("assets")); + let biomes = Arc::new(Biomes::load(&root).expect("biomes")); + let registry = assets.registry; + let terrain = Arc::new( + crate::vanillagen::VanillaTerrain::new(&root.join("worldgen"), registry, &biomes, seed) + .expect("terrain"), + ); + let save = Arc::new(SaveDir::new( + world.join("dimensions/minecraft/overworld"), + LevelShape::OVERWORLD, + )); + let generator = Arc::new(Persistent { + inner: terrain, + save: save.clone(), + registry: assets.clone(), + biomes: biomes.clone(), + }); + let mut sampler = ChunkGenerator::lod_sampler(generator); + let name = |state| { + registry + .state(state) + .map_or_else(String::new, |s| s.name.to_string()) + }; + let limit: usize = std::env::var("HORIZON_FAR_TILES") + .ok() + .and_then(|n| n.parse().ok()) + .unwrap_or(48); + for level in 1..=6u8 { + let size = 16 << level; + let width = size / 16; + // The ring this level is drawn in (`Plan::visit` splits a tile + // closer than 8 of its widths). + let (near, far) = (8 * size, 16 * size); + let mut tiles = Vec::new(); + for tz in (at[1] - far).div_euclid(size)..=(at[1] + far).div_euclid(size) { + for tx in (at[0] - far).div_euclid(size)..=(at[0] + far).div_euclid(size) { + let (cx, cz) = (tx * size + size / 2, tz * size + size / 2); + let d = (((cx - at[0]) as f64).powi(2) + ((cz - at[1]) as f64).powi(2)).sqrt(); + if d >= f64::from(near) && d < f64::from(far) { + tiles.push((tx, tz)); + } + } + } + let step = tiles.len().div_ceil(limit).max(1); + let mut saved = Census::default(); + let mut seeded = Census::default(); + let started = std::time::Instant::now(); + for &(tx, tz) in tiles.iter().step_by(step) { + let (x, z) = (tx * size - width, tz * size - width); + let columns = sampler.grid(x, z, width, 18); + let all_saved = width <= SAVED_LOD_STRIDE + && (x.div_euclid(16)..=(x + 18 * width - 1).div_euclid(16)).all(|cx| { + (z.div_euclid(16)..=(z + 18 * width - 1).div_euclid(16)) + .all(|cz| save.lod_surfaces_shared(cx, cz, &assets, &biomes).is_some()) + }); + let out = if all_saved { &mut saved } else { &mut seeded }; + out.tiles += 1; + count(&columns, 18, &name, out, (x, z, width)); + } + println!( + "level {level} (cells {width}, {near}..{far} blocks, {:.1}s): saved {saved:?} | seed {seeded:?}", + started.elapsed().as_secs_f32() + ); + } + } +} From a7274ef8336e7cc8c042f18accd834422940a84a Mon Sep 17 00:00:00 2001 From: Kacpherek Date: Tue, 3 Nov 2026 18:52:54 +0100 Subject: [PATCH 65/70] Keep far terrain joined to the ground at every cell width Far cells hung in the air: crowns over air, slabs of snow, sheets that the fog turned pale. Three sources, all now joined to the ground: - Reduced columns drew a height only where most of the footprint held a block, so trunks (one column of 16 or 256) vanished under the crowns they hold up. A height is now drawn where any column holds a block, in the material most of them hold: what touches the ground in the chunk touches it at every width. - Seed-estimated trees in wide cells drew a crown with no trunk, one block or more over the ground. A cell's own tree now stands on a trunk and a crown from a neighbouring trunk reaches the ground. - Wide seed cells are one point of the terrain: an overhang's lip or a cave roof stood for the whole cell, and the aquifer-less sample put water in caves under sea level. Under the top solid span such a column is now ground. On "New World (1)", 47 tiles a level around the player: floating components per level 1..6 went from 24, 326, 325, 43, 150, 213 to 0, 0, 1, 0, 0, 0 (the one left floats in the saved chunk itself). --- crates/horizon-client-render/src/lod.rs | 27 ++++++++----- crates/horizon-client/src/vanillagen/lod.rs | 40 +++++++++++++++++++ .../src/vanillagen/lod/vegetation.rs | 20 ++++++++-- 3 files changed, 74 insertions(+), 13 deletions(-) diff --git a/crates/horizon-client-render/src/lod.rs b/crates/horizon-client-render/src/lod.rs index 3e7afe894c..9d5f0f33ac 100644 --- a/crates/horizon-client-render/src/lod.rs +++ b/crates/horizon-client-render/src/lod.rs @@ -196,7 +196,11 @@ pub struct Column { } impl Column { /// Reduce an entire horizontal footprint, rather than inflating its corner - /// column (a single leaf used to become a whole distant tree-sized slab). + /// column. A height is drawn where any column of the footprint holds a + /// block there, in the material most of them hold: anything joined to + /// the ground stays joined at every width. Drawing only heights most of + /// the footprint held dropped trunks (one column of 16 or 256) under the + /// crowns they hold up, and the crowns hung in the air as slabs. pub fn reduced(columns: &[Column; 256], x: usize, z: usize, width: usize) -> Self { if width == 1 { return columns[z * 16 + x].clone(); @@ -220,7 +224,7 @@ impl Column { let mut bottom = MIN_Y as i16; for (y, material, change) in events { if bottom < y { - if occupied * 2 >= (width * width) as i32 + if occupied > 0 && let Some(&((state, biome), _)) = votes.iter().max_by_key(|&(material, count)| { (*count, std::cmp::Reverse((material.0.0, material.1))) @@ -3308,7 +3312,7 @@ mod tests { assert_eq!(kelp.surface.unwrap().height, 40); } #[test] - fn coarse_voxels_reduce_the_area_instead_of_inflating_one_leaf() { + fn coarse_voxels_keep_what_any_column_holds_so_crowns_stay_on_trunks() { let span = |min, max, state| Span { min, max, @@ -3320,8 +3324,8 @@ mod tests { surface: None, spans: vec![span(0, 4, 1)].into(), }); - columns[0].spans.push(span(8, 10, 2)); - assert_eq!(Column::reduced(&columns, 0, 0, 4).spans, [span(0, 4, 1)]); + // One trunk column under a crown over the whole footprint. + columns[0].spans.push(span(4, 12, 2)); for z in 0..4 { for x in 0..4 { columns[z * 16 + x].spans.push(span(12, 14, 3)); @@ -3329,17 +3333,20 @@ mod tests { } assert_eq!( Column::reduced(&columns, 0, 0, 4).spans, - [span(0, 4, 1), span(12, 14, 3)] + [span(0, 4, 1), span(4, 12, 2), span(12, 14, 3)] ); assert_eq!(Column::reduced(&columns, 0, 0, 1), columns[0]); let reduced = ReducedColumns::new(Arc::new(columns)); assert_eq!( - reduced.get(0, 0, 1).spans, - [span(0, 4, 1), span(8, 10, 2), span(12, 14, 3)] + reduced.get(0, 0, 4).spans, + [span(0, 4, 1), span(4, 12, 2), span(12, 14, 3)] ); - assert_eq!(reduced.get(0, 0, 4).spans, [span(0, 4, 1), span(12, 14, 3)]); assert_eq!(reduced.get(4, 8, 4).spans, [span(0, 4, 1)]); - assert_eq!(reduced.get(0, 0, 16).spans, [span(0, 4, 1)]); + assert_eq!( + reduced.get(0, 0, 16).spans, + [span(0, 4, 1), span(4, 12, 2), span(12, 14, 3)], + "a crown over one corner of a wide cell still sits on its trunk" + ); } /// Detail read before a refresh over its chunk is dropped (asked /// again); elsewhere, or read after, it is kept. diff --git a/crates/horizon-client/src/vanillagen/lod.rs b/crates/horizon-client/src/vanillagen/lod.rs index a9ebe5d33f..d0f2527442 100644 --- a/crates/horizon-client/src/vanillagen/lod.rs +++ b/crates/horizon-client/src/vanillagen/lod.rs @@ -385,6 +385,42 @@ fn shade_sky(column: &mut Column, states: &GenBlockStates) { column.spans = shaded.into(); } +/// A wide cell's column is one point of the terrain: a cave, an overhang's +/// lip or the water an aquifer-less sample puts in caves under sea level stood +/// for the whole cell, a slab hanging over air or a band of water in a cliff +/// once its neighbours were lower. Under the top solid span the column is +/// ground: gaps take the span below, buried fluids the ground under them. +fn fill_under_surface(column: &mut Column, fluid: impl Fn(BlockStateId) -> bool) { + let Some(top) = column.spans.iter().rposition(|span| !fluid(span.state)) else { + return; + }; + let Some(ground) = column.spans[..=top].iter().find(|span| !fluid(span.state)) else { + return; + }; + let mut state = ground.state; + let mut filled = Column { + surface: column.surface, + spans: crate::lod::Spans::with_capacity(column.spans.len()), + }; + for (index, &span) in column.spans.iter().enumerate() { + let mut span = span; + if index <= top { + if fluid(span.state) { + span.state = state; + } else { + state = span.state; + } + if let Some(below) = filled.spans.last_mut() + && below.max < span.min + { + below.max = span.min; + } + } + filled.push(span); + } + *column = filled; +} + /// A whole tile inside visited chunks needs no density work at all. This /// used to evaluate the lattice first and throw all of it away in the per-cell /// cache check below. @@ -599,6 +635,10 @@ impl VanillaLodSampler { } let nether = self.generator.dimension == "minecraft:the_nether"; let light = if nether { 0 } else { 240 }; + if width > 1 && self.generator.dimension == "minecraft:overworld" { + let states = self.generator.generator.data().block_states(); + fill_under_surface(&mut column, |state| states.get(state).has_fluid()); + } self.vegetation.apply(&mut column, x, z, width, light); self.islands.apply(&mut column, x, z, width, light); if !nether { diff --git a/crates/horizon-client/src/vanillagen/lod/vegetation.rs b/crates/horizon-client/src/vanillagen/lod/vegetation.rs index e1e6ee8b3b..0d460d77b3 100644 --- a/crates/horizon-client/src/vanillagen/lod/vegetation.rs +++ b/crates/horizon-client/src/vanillagen/lod/vegetation.rs @@ -350,11 +350,13 @@ impl Vegetation { .exp(); if coverage >= 0.25 { let height = tree.height + ((n >> 32) & 1) as i32; + // The cell's representative tree stands in it: its trunk + // is drawn under the crown. best = Some(( surface.height + height.max(4), surface.height + height.max(4) - tree.radius * 2, *tree, - false, + true, )); } } else { @@ -377,14 +379,26 @@ impl Vegetation { let cap = ((tree.radius.pow(2) - d2) as f32).sqrt().ceil() as i32; let top = surface.height + height + cap.min(2); let bottom = surface.height + height - tree.radius; + // `x`, `z` are the cell's centre: its trunk is the + // cell's if it stands anywhere in the cell. + let (x0, z0) = (x - width / 2, z - width / 2); + let inside = (x0..x0 + width).contains(&tx) && (z0..z0 + width).contains(&tz); if best.as_ref().is_none_or(|&(y, _, _, _)| top > y) { - best = Some((top, bottom, tree, x == tx && z == tz)); + best = Some((top, bottom, tree, inside)); } } } } if let Some((top, bottom, tree, trunk)) = best { - let bottom = bottom.max(surface.height + 1); + // In a cell wider than a block, a crown whose trunk stands in + // another cell reaches down to the ground, as reducing real + // chunks fills it (`Column::reduced`): a crown over air read from + // afar as a box hanging in the sky. Single blocks keep the gap. + let bottom = if trunk || width == 1 { + bottom.max(surface.height + 1) + } else { + surface.height + }; if trunk { column.push(Span { min: surface.height as i16, From b8a348f56dacc5617980b6e4a9005af126b823b8 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 20:28:44 +0100 Subject: [PATCH 66/70] CI: playhorizon's job hook keeps a checkout's .git under 2 GB and a day of runner logs 12 light runners' checkouts grew 2.8 GB of packs and 1.3 GB of diagnostic logs each in an hour: 46 GB of the disk. Co-Authored-By: Claude Opus 5.5 --- docs/ci-runners.md | 3 ++- tools/ci/checks-runners.sh | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/ci-runners.md b/docs/ci-runners.md index 67628d3058..72fdfde155 100644 --- a/docs/ci-runners.md +++ b/docs/ci-runners.md @@ -88,7 +88,8 @@ ssh ludovic@playhorizon 'bash ~/horizon-install/checks-runners.sh status' the machine, `linux-runner.sh`). The checks runners have their own `horizon-ci-checks.slice` (memory ≤ 16 GB). CPUs 0–3 stay for `tools/remote.sh` runs, benchmarks and the servers. - `job-started.sh`, before every job: refuses a fork's pull request; empties a cargo build folder over 40 GB - (`MAX_TARGET_GB`); drops a checkout's `.git` over 4 GB (`MAX_GIT_GB`), which the checkout then clones again. Every + (`MAX_TARGET_GB`); drops a checkout's `.git` over 2 GB (`MAX_GIT_GB`), which the checkout then clones again; removes the + runner's diagnostic logs older than a day. Every job's fetch adds a pack and nothing repacks them: on 2026-11-03 each light runner's checkout held 6822 packs, 50 GB. - The checks runners share one cargo home (`~/.actions-runners/ci-shared/cargo`: registry and git sources). Each has its own rustup home and its own build folder (`CARGO_TARGET_DIR`, outside the checkout). `CARGO_BUILD_JOBS=4`. diff --git a/tools/ci/checks-runners.sh b/tools/ci/checks-runners.sh index 68c1669f57..43bd691dbe 100644 --- a/tools/ci/checks-runners.sh +++ b/tools/ci/checks-runners.sh @@ -72,11 +72,15 @@ fi # clones again (and replaces the rest of the folder). if [ -n "${GITHUB_WORKSPACE:-}" ] && [ -d "$GITHUB_WORKSPACE/.git" ]; then size=$(du -s --block-size=1G "$GITHUB_WORKSPACE/.git" | cut -f1) - if [ "$size" -gt "${MAX_GIT_GB:-4}" ]; then - echo "Checkout's .git at ${size} GB (over ${MAX_GIT_GB:-4}): removed, this job clones again" + if [ "$size" -gt "${MAX_GIT_GB:-2}" ]; then + echo "Checkout's .git at ${size} GB (over ${MAX_GIT_GB:-2}): removed, this job clones again" rm -rf "${GITHUB_WORKSPACE:?}/.git" fi fi +# The runner's own diagnostic logs (a file per job, 1.3 GB a light runner in an hour on 2026-11-03): a day's worth. +if [ -n "${RUNNER_WORKSPACE:-}" ] && [ -d "$RUNNER_WORKSPACE/../../_diag" ]; then + find "$RUNNER_WORKSPACE/../../_diag" -maxdepth 1 -type f -name '*.log' -mmin +1440 -delete 2>/dev/null || true +fi EOF chmod +x "$shared/job-started.sh" } From 6e2d33a2670705e6581d5bea2af915707207742e Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 20:32:38 +0100 Subject: [PATCH 67/70] CI: verify on our runners sees no GPU, as on GitHub's The desktop's checks runners have Mesa's software Vulkan (for parity), so verify ran GPU tests there that return early on GitHub's runners, and one of them flakes on lavapipe (#8627): two of three runs on ludodesktop-checks-2 failed. WGPU_BACKEND=dx12 (no such backend on Linux) gives the tests no adapter there too. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ci.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 11346f794d..fd8e9196f2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,13 +68,16 @@ jobs: else python tools/check_public_tree.py --history fi - # Some Python tests compile Rust with a bare `rustc`: GitHub's image has a default toolchain, our runners' own - # rustup homes may not. - - name: Default Rust toolchain for the Python tests + # Our runners as GitHub's: some Python tests compile Rust with a bare `rustc` (GitHub's image has a default + # toolchain, our runners' own rustup homes may not), and the GPU tests find no adapter there, so they return + # early. Ours have Mesa's software Vulkan for parity; a backend Linux lacks keeps the tests from it, so a pull + # request's verify doesn't depend on which pool took it (#8627: a GPU test that flakes on lavapipe). + - name: Our runners as GitHub's (a default Rust toolchain, no GPU) if: runner.environment != 'github-hosted' run: | rustup toolchain install stable --profile minimal --component rustfmt --component clippy rustup default stable + echo "WGPU_BACKEND=dx12" >> "$GITHUB_ENV" - name: Test offline research tooling run: python -m unittest discover -s tests -v - name: Install Rust toolchain and the ALSA and udev headers the client links against From 4a9d204be7659d8ed7f9fb69e906a712e2780a8b Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 21:22:15 +0100 Subject: [PATCH 68/70] pack_post: give the composite test's Resources its rgb field #8131 added Resources::rgb and #8065 added a test initializer without it; both merged, so main's horizon-client-render tests no longer compile. Co-Authored-By: Claude Opus 5.5 --- crates/horizon-client-render/src/gfx/pack_post.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/horizon-client-render/src/gfx/pack_post.rs b/crates/horizon-client-render/src/gfx/pack_post.rs index c705a2c921..3d5c024790 100644 --- a/crates/horizon-client-render/src/gfx/pack_post.rs +++ b/crates/horizon-client-render/src/gfx/pack_post.rs @@ -4774,6 +4774,7 @@ mod tests { indices: None, gpu: Gpu::of(&adapter, device.features()), storable: 0, + rgb: 0, released: std::cell::Cell::new(("", 0)), stand_ins: &stand_ins, }; From f722c0c72ced70ba3b2e336d9c250960899b5e09 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 21:48:40 +0100 Subject: [PATCH 69/70] render tests: audit visbuffer.wgsl's assembly, keep the spans switch to one test at a time - inter_stage_tests: visbuffer.wgsl (#7054) only compiles after terrain.wgsl, so the audit failed on main. It now checks the module the renderer builds (terrain.wgsl + visbuffer.wgsl), which stays within the 15 inter-stage variables. - spans: laps_time_consecutive_steps turns spans on for every thread, so notes_keep_the_slowest_steps, running beside it, recorded the note it expects left out. Both take one lock now. Co-Authored-By: Claude Opus 5.5 --- .../src/gfx/inter_stage_tests.rs | 5 +++++ crates/horizon-client-render/src/spans.rs | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/crates/horizon-client-render/src/gfx/inter_stage_tests.rs b/crates/horizon-client-render/src/gfx/inter_stage_tests.rs index 1250a18477..9e55410c23 100644 --- a/crates/horizon-client-render/src/gfx/inter_stage_tests.rs +++ b/crates/horizon-client-render/src/gfx/inter_stage_tests.rs @@ -123,6 +123,11 @@ fn composed() -> Vec<(&'static str, Vec<&'static str>, String)> { + include_str!("../oit.wgsl") + include_str!("../oit_world.wgsl"), ), + ( + "visibility buffer", + vec!["terrain.wgsl", "visbuffer.wgsl"], + include_str!("../terrain.wgsl").to_owned() + include_str!("../visbuffer.wgsl"), + ), ( "improved transparency world border", vec!["border.wgsl", "oit.wgsl", "oit_border.wgsl"], diff --git a/crates/horizon-client-render/src/spans.rs b/crates/horizon-client-render/src/spans.rs index 1309e9963f..bafcb17e2d 100644 --- a/crates/horizon-client-render/src/spans.rs +++ b/crates/horizon-client-render/src/spans.rs @@ -441,11 +441,21 @@ pub mod startup { #[cfg(test)] mod tests { use super::Span; + use std::sync::{Mutex, MutexGuard}; + + /// Spans on for every thread ([`super::enable`]) is process-wide: a test that turns them on + /// would make another, run beside it, record what it expects left out. Those tests take + /// this lock. + fn spans_switch() -> MutexGuard<'static, ()> { + static SWITCH: Mutex<()> = Mutex::new(()); + SWITCH.lock().unwrap_or_else(|e| e.into_inner()) + } /// A slow tick's notes are its slowest steps, slowest first; short steps and steps on a /// thread that records no spans leave none. #[test] fn notes_keep_the_slowest_steps() { + let _switch = spans_switch(); super::record_here(false); super::note(500.0, || "unrecorded".into()); assert!(super::take_notes().is_empty()); @@ -577,6 +587,7 @@ mod tests { /// Laps record the steps between them while spans are on, and nothing while off. #[test] fn laps_time_consecutive_steps() { + let _switch = spans_switch(); let _ = super::take(); let mut off = super::laps(); off.lap("unseen"); From 367b20268dacb3c6fc2b73af18f5e5439ffd9045 Mon Sep 17 00:00:00 2001 From: Ludovic Marie <136255825+ludovic111@users.noreply.github.com> Date: Tue, 3 Nov 2026 22:03:49 +0100 Subject: [PATCH 70/70] shader API reference: the anti-aliasing section comes from the generator #8186 wrote its Anti-aliasing section into docs/api/shaders-reference.md, which horizon_shader_api::reference::markdown generates, so main's the_reference_is_up_to_date failed. The section is now generated, and the doc is unchanged. Co-Authored-By: Claude Opus 5.5 --- crates/horizon-shader-api/src/reference.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/crates/horizon-shader-api/src/reference.rs b/crates/horizon-shader-api/src/reference.rs index 96e0d22296..caf2999f5c 100644 --- a/crates/horizon-shader-api/src/reference.rs +++ b/crates/horizon-shader-api/src/reference.rs @@ -113,6 +113,16 @@ pub fn markdown() -> String { } out += "## The frame\n\n"; out += &table(&Frame::WGSL, Some(Frame::OFFSETS)); + out += "## Anti-aliasing\n\n\ + While a pack's `[[post]]` chain draws the frame, the player's anti-aliasing settings do not run: `taa`, `fxaa`\n\ + and `upscaling` in `horizon-graphics.txt` have no effect, and the frame's projection is never jittered, because the\n\ + last post pass draws the picture itself and Horizon's own resolve, which does TAA, FXAA and TAA upscaling, is the\n\ + step it replaces. The world is still rendered at `resolutionScale` before the pack reads it.\n\n\ + A pack that wants smooth edges draws them itself, in a post pass: a spatial filter (FXAA, SMAA and the like) works on\n\ + `previous` as it is. A temporal pass cannot do what TAA does here, even though `history` and\n\ + `frame.previous_view_projection` give it the last frame: nothing moves the camera by a fraction of a texel from one\n\ + frame to the next, so a still camera gives it the same picture twice and there is no sub-pixel detail to gather.\n\n\ + Without a pack the settings apply as the player set them.\n\n"; out += &format!( "## Options\n\n\ Each `[[options]]` entry sets the WGSL `override` of the same name when the pipelines are built:\n\n\