Files
horizon/tools/port_map/game-001.tsv
T
rdbtCVSandClaude Opus 5.5 23f8bd4fed Remove the deprecated in-frame single-player path
Single player only runs on its server thread now. --in-frame and
--no-server-thread print a notice, and HORIZON_SERVER_THREAD is ignored.
This deletes the code that only the in-frame path reached: the window's
world loader and local player tick, its portal travel, the loading screen
and ring-by-ring streaming, and the in-frame LAN host (the host player in
the hub, its models of the guests, the reserved uuid). The world-upgrade
progress screen with its Cancel button moves to the server-thread start.
Tools, the harnesses and the docs no longer use the in-frame path.

Closes #6473

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 09:30:14 +00:00

20 KiB

1BlockDestructionProgress.equalsskip:javaidentity by breaker id; Horizon keys cracks by breaker id in a map
2BlockDestructionProgress.compareToinlinecrates/horizon-client/src/game.rs::Game::cracksthe furthest progress on a block wins (max per position)
3ChunkGenerationTask.createinlinecrates/horizon-client-render/src/streaming.rs::Streaming::schedule_generationa Job::Generate per column; neighbours are held as protos, not a claimed holder cache
4ChunkGenerationTask.runUntilWaitinlinecrates/horizon-client-render/src/streaming.rs::Streaming::updatestages advance as worker results come back, not by waiting on futures
5ChunkGenerationTask.scheduleNextLayerinlinecrates/horizon-client-render/src/streaming.rs::Streaming::updatenext stage is generate, then decorate, then finish
6ChunkGenerationTask.releaseClaimskip:othergeneration claims keep a chunk from unloading while a task reads it; Horizon checks protos out (None) to the job instead
7ChunkGenerationTask.canLoadWithoutGenerationinlinecrates/horizon-client-render/src/streaming.rs::ChunkGenerator::loadthe worker tries a saved final chunk first, else makes (or restores) a proto
8ChunkGenerationTask.getCenterskip:javaaccessor
9ChunkGenerationTask.scheduleLayerinlinecrates/horizon-client-render/src/streaming.rs::Streaming::updateone stage over the 3x3 neighbourhoods
10ChunkGenerationTask.getRadiusForLayerinlinecrates/horizon-client-render/src/streaming.rs::Ranges::marginspyramid radius is two fixed margins (generate 3, decorate 2)
11ChunkGenerationTask.scheduleChunkInLayerinlinecrates/horizon-client-render/src/streaming.rs::Streaming::updatedecorate and finish jobs are queued per column when the 3x3 is ready
12ChunkGenerationTask.waitForScheduledLayerskip:javafuture bookkeeping
13ChunkHolder.addSendDependencyskip:javafuture combinator; chunks are only sent once lit (Hub::next_batch)
14ChunkHolder.addSaveDependencyskip:javafuture combinator; saving snapshots resident chunks directly
15ChunkHolder.blockChangedportcrates/horizon-client-render/src/world.rs::World::setpushes the position to block_log; block entity only changes go through Game::mark_block_entity_updated
16ChunkHolder.sectionLightChangedportcrates/horizon-client-render/src/streaming.rs::Streaming::mark_light_changeslight_log bit per section; the unsaved mark is world.modified in the Lit result
17ChunkHolder.hasChangesToBroadcastinlinecrates/horizon-client/src/lan/hub.rs::Hub::broadcast_block_changesboth broadcast fns return early when their log is empty
18ChunkHolder.broadcastBlockEntityportcrates/horizon-client/src/lan/hub.rs::Hub::broadcast_block_changesBlockEntityData for changed positions with data the client shows
19ChunkHolder.scheduleFullChunkPromotioninlinecrates/horizon-client/src/game.rs::Game::start_ticking_chunksticking promotion unpacks saved ticks; ticket levels are read directly
20ChunkHolder.demoteFullChunkskip:otheronly tells the status listener (loading map), which Horizon reads from Streaming::latest_status
21ChunkHolder.updateFuturesinlinecrates/horizon-client/src/game.rs::Game::start_ticking_chunkspromotion to ticking on level change; demotion needs no work as Levels is read each tick
22ChunkLevel.getStatusAroundFullChunkinlinecrates/horizon-client-render/src/streaming.rs::Ranges::marginsfixed margins around the view instead of a status per distance
23ChunkLevel.byStatusskip:otherper status ticket levels; Horizon streams by distance (Ranges), not by level
24ChunkLevel.fullStatusportcrates/horizon-client/src/ticket_levels.rs::Levels::loaded_ticking31 entity ticking, 32 block ticking, 33 full as predicates on Levels
25ChunkLoadCounter.trackinlinecrates/horizon-client/src/game/integrated.rs::Game::publish_load_viewgap: minor: counts only the spawn's 7x7 chunks, not the initial forced or ticketed chunks
26ChunkLoadCounter.pendingChunksinlinecrates/horizon-client/src/game/integrated.rs::Game::publish_load_viewcounts lit chunks in the 7x7 around the spawn
27ChunkMap.<init>inlinecrates/horizon-client-render/src/streaming.rs::Streaming::newworker pool and generator; light engine and POI storage are set up elsewhere
28ChunkMap.isChunkTrackedinlinecrates/horizon-client/src/lan/hub.rs::Hub::broadcast_block_changessent_chunks.contains: in the view and already sent
29ChunkMap.getChunkQueueLevelinlinecrates/horizon-client-render/src/streaming.rs::Ranges::priorityjob priority is a distance from the centre, not a ticket level
30ChunkMap.getChunkDebugDataskip:debugchunk debug renderer text
31ChunkMap.getChunkRangeFutureinlinecrates/horizon-client-render/src/streaming.rs::Streaming::updateneighbourhood waits: 3x3 protos to decorate, 3x3 decorated to finish, 3x3 lit to mesh
32ChunkMap.debugFuturesAndCreateReportedExceptionskip:debugcrash report detail
33ChunkMap.prepareEntityTickingChunkinlinecrates/horizon-client/src/game/creatures.rs::Game::entity_ticking_areaentity ticking comes from the ticket levels alone
34ChunkMap.updateChunkSchedulinginlinecrates/horizon-client-render/src/streaming.rs::Streaming::updatecolumns past every kept range are unloaded in the update scan
35ChunkMap.onLevelChangeportcrates/horizon-client-render/src/streaming.rs::Streaming::requeuequeued jobs are ranked again when the centre moves
36ChunkMap.closeportcrates/horizon-client-render/src/streaming.rs::Streaming::dropwaits for saves in flight
37ChunkMap.saveAllChunksportcrates/horizon-client/src/game.rs::Game::save_levelmodified chunks only; wait picks the flushing form
38ChunkMap.hasWorkportcrates/horizon-client-render/src/streaming.rs::Streaming::busy
39ChunkMap.processUnloadsinlinecrates/horizon-client/src/game.rs::Game::update_worldunloaded columns: modified ones saved, entities and block entities dropped
40ChunkMap.saveChunksEagerlyinlinecrates/horizon-client-render/src/streaming.rs::Streaming::receive_generatedgap: minor: fresh chunks are marked modified and written at the next autosave or unload, not within a few ticks
41ChunkMap.scheduleUnloadinlinecrates/horizon-client/src/game.rs::Game::update_worldsave if modified, unload entities and block entities
42ChunkMap.promoteChunkMapskip:javacopy of the holder map for the main thread; Horizon has one chunk map
43ChunkMap.scheduleChunkLoadportcrates/horizon-client-render/src/streaming.rs::ChunkGenerator::loadthe Generate job loads a saved final chunk, else a proto is made
44ChunkMap.handleChunkLoadFailureinlinecrates/horizon-client/src/save.rs::SaveDir::loadgap: minor: an unreadable record gives None and the column is generated again with no failure report
45ChunkMap.createEmptyChunkinlinecrates/horizon-client-render/src/streaming.rs::Streaming::schedule_generationno saved data: the Generate job makes a fresh proto
46ChunkMap.markPositionskip:javachunk type cache for isExistingChunkFull
47ChunkMap.applyStepinlinecrates/horizon-client-render/src/streaming.rs::Streaming::newthe worker loop runs the Generate, Decorate and Finish jobs
48ChunkMap.scheduleGenerationTaskportcrates/horizon-client-render/src/streaming.rs::Streaming::schedule_generation
49ChunkMap.runGenerationTaskportcrates/horizon-client-render/src/streaming.rs::Streaming::submitqueues the job by distance
50ChunkMap.onChunkReadyToSendinlinecrates/horizon-client/src/lan/hub.rs::Hub::next_batchqueued columns are sent once lit
51ChunkMap.prepareAccessibleChunkinlinecrates/horizon-client-render/src/streaming.rs::Streaming::updatea column finishes once its 3x3 is decorated
52ChunkMap.allChunksWithAtLeastStatusinlinecrates/horizon-client/src/game/integrated.rs::Game::publish_load_viewonly the loading screen asks: lit chunks around the spawn
53ChunkMap.saveChunkIfNeededinlinecrates/horizon-client/src/game.rs::Game::save_levelthe modified set stands for the unsaved flag; autosave every 6000 ticks
54ChunkMap.isExistingChunkFullinlinecrates/horizon-client-render/src/streaming.rs::Streaming::save_checked_outprotos exist only for columns not final, so one cannot overwrite a final chunk
55ChunkMap.markChunkPendingToSendportcrates/horizon-client/src/lan/hub.rs::requeuechunks entering the view join the guest's queue, closest first
56ChunkMap.getChunkToSendinlinecrates/horizon-client/src/lan/hub.rs::Hub::next_batchonly lit columns are taken
57ChunkMap.dumpChunksskip:debugCSV chunk dump
58ChunkMap.printFutureskip:debug
59ChunkMap.readChunkportcrates/horizon-client/src/save.rs::SaveDir::read_recordreads the raw record (pending writes first); the upgrade is done when the world opens
60ChunkMap.upgradeChunkTaginlinecrates/horizon-world/src/datafix/files.rs::upgrade_world_datachunks are upgraded all at once when an older world opens, not as each is read
61ChunkMap.getChunkDataFixContextTaginlinecrates/horizon-world/src/datafix/files.rs::upgrade_world_datadimension id and generator type passed to update_chunk per dimension folder
62ChunkMap.forEachBlockTickingChunkportcrates/horizon-client/src/ticket_levels.rs::Levels::random_tickingsimulation entity ticking and a ticking chunk
63ChunkMap.anyPlayerCloseEnoughForSpawningInternalinlinecrates/horizon-client/src/game/natural_spawning.rs::Game::spawning_chunksany non-spectator within 128 blocks of the chunk centre
64ChunkMap.playerIsCloseEnoughForSpawningportcrates/horizon-client/src/game/natural_spawning.rs::close_enough_for_spawning
65ChunkMap.playerIsCloseEnoughToinlinecrates/horizon-client/src/game.rs::GameLevel::can_spread_fire_aroundthe only caller (fire spread radius), spectators left out
66ChunkMap.skipPlayerportcrates/horizon-client/src/game/game_mode.rs::loads_chunksa skipped player holds no ticket and streams no chunks; sending chunks to a spectator is unchanged
67ChunkMap.updatePlayerStatusinlinecrates/horizon-client/src/game.rs::Game::update_chunk_ticketstickets follow every player in the level each tick; a leaving guest's view is dropped by the hub
68ChunkMap.updateChunkTrackingportcrates/horizon-client/src/lan/hub.rs::Hub::update_viewa new centre or view distance (center reset) re-applies the view
69ChunkMap.applyChunkTrackingViewinlinecrates/horizon-client/src/lan/hub.rs::Hub::update_viewSetChunkCacheCenter, then forget and queue the difference
70ChunkMap.getPlayersinlinecrates/horizon-client/src/lan/hub.rs::Hub::broadcast_block_changesguests whose sent_chunks hold the column; the border form is in broadcast_light_changes
71ChunkMap.removeEntityinlinecrates/horizon-client/src/lan/entity.rs::Entities::tickentities gone from the level leave each client in one RemoveEntities at the next tick
72ChunkMap.sendToTrackingPlayersportcrates/horizon-client/src/lan/containers.rs::Hub::broadcast_neargap: minor: goes to guests within a fixed distance, not to the clients that track the entity
73ChunkMap.sendToTrackingPlayersFilteredportcrates/horizon-client/src/lan/containers.rs::Hub::broadcast_neargap: minor: only an except-one-guest filter, same distance rule
74ChunkMap.sendToTrackingPlayersAndSelfportcrates/horizon-client/src/lan/containers.rs::Hub::critical_hitthe one caller, the crit animation, goes to the attacker and the clients tracking them
75ChunkMap.isTrackedByAnyPlayerskip:debugonly the debug synchronizers ask
76ChunkMap.forEachEntityTrackedByskip:debugonly the debug synchronizers ask
77ChunkMap.resendBiomesForChunksmissingminor: /fillbiome changes the host's biomes but sends guests no ChunksBiomes packet, so LAN guests keep the old biome tints until their chunks are sent again
78ChunkMap.waitForLightBeforeSendinginlinecrates/horizon-client/src/lan/hub.rs::Hub::next_batchcolumns are sent only once lit
79ChunkMap.forEachReadyToSendChunkskip:debugonly the debug synchronizers ask
80ChunkMap.TrackedEntity.equalsskip:javaidentity by entity id; Horizon keys tracked entities by id
81ChunkMap.TrackedEntity.sendToTrackingPlayersportcrates/horizon-client/src/lan/containers.rs::Hub::broadcast_neargap: minor: distance based, see ChunkMap.sendToTrackingPlayers
82ChunkMap.TrackedEntity.sendToTrackingPlayersAndSelfportcrates/horizon-client/src/lan/containers.rs::Hub::critical_hitthe attacker plus clients tracking them
83ChunkMap.TrackedEntity.sendToTrackingPlayersFilteredportcrates/horizon-client/src/lan/containers.rs::Hub::broadcast_neargap: minor: only an except-one-guest filter
84ChunkMap.TrackedEntity.broadcastRemovedinlinecrates/horizon-client/src/lan/entity.rs::Entities::tickremoved entities leave each client in one RemoveEntities
85ChunkMap.TrackedEntity.removePlayerinlinecrates/horizon-client/src/lan/entity.rs::Entities::tickthe client's tracker loses entities out of range or level
86ChunkMap.TrackedEntity.updatePlayersportcrates/horizon-client/src/lan/entity.rs::Entities::tickgap: player: broadcastToPlayer is not checked, so a spectating player is tracked and shown to non-spectators as a normal player model
87ChunkResult.errorskip:javaresult type
88ChunkTaskDispatcher.hasWorkportcrates/horizon-client-render/src/streaming.rs::Streaming::busy
89ChunkTaskDispatcher.onLevelChangeportcrates/horizon-client-render/src/streaming.rs::Streaming::requeue
90ChunkTaskDispatcher.releasemissingminor: queued jobs of a column that lost its ticket are not cancelled; their results are dropped on arrival (Done::Proto range check)
91ChunkTaskDispatcher.submitportcrates/horizon-client-render/src/streaming.rs::Streaming::submit
92ChunkTaskDispatcher.pollTaskinlinecrates/horizon-client-render/src/streaming.rs::Streaming::neweach worker pops the most urgent job
93ChunkTaskDispatcher.scheduleForExecutioninlinecrates/horizon-client-render/src/streaming.rs::Streaming::newthe worker runs the job it popped
94ChunkTaskPriorityQueue.resortChunkTasksportcrates/horizon-client-render/src/streaming.rs::rank_again
95ChunkTaskPriorityQueue.releasemissingminor: no per column release; queued jobs stay queued until run
96ChunkTaskPriorityQueue.popinlinecrates/horizon-client-render/src/streaming.rs::Streaming::newBinaryHeap pop in the worker loop
97ChunkTracker.checkNeighborsAfterUpdateinlinecrates/horizon-client/src/ticket_levels.rs::computeclosed form: ticket level plus Chebyshev distance, rebuilt when sources change
98ChunkTracker.getComputedLevelinlinecrates/horizon-client/src/ticket_levels.rs::computelowest ticket level plus distance, per cell
99ChunkTracker.computeLevelFromNeighborinlinecrates/horizon-client/src/ticket_levels.rs::computeone level per chunk of distance
100ChunkTrackingView.differenceinlinecrates/horizon-client/src/lan/hub.rs::Hub::update_viewforget what left (scan of sent chunks), queue what entered (requeue)
101ChunkTrackingView.isWithinDistanceportcrates/horizon-client/src/lan/hub.rs::trackedbuffer 2 form; the buffer 1 form is streaming.rs in_view_distance
102ChunkTrackingView.Positioned.squareIntersectsskip:javaoptimisation that picks a box scan over a full enumeration
103ChunkTrackingView.Positioned.containsportcrates/horizon-client/src/lan/hub.rs::tracked
104ChunkTrackingView.Positioned.forEachinlinecrates/horizon-client/src/lan/hub.rs::requeueloops the view's square around the centre
105ColumnPos.asLongskip:javakey packing
106DemoModemissingminor: no demo mode: no demo timer, intro hints or five day limit (the dedicated server's --demo argument is accepted and ignored)
107DistanceManager.runAllUpdatesportcrates/horizon-client/src/ticket_levels.rs::ChunkTickets::updatelevels rebuilt when sources change
108DistanceManager.addPlayerinlinecrates/horizon-client/src/game.rs::Game::update_chunk_ticketsplayers are tickets sources each tick
109DistanceManager.removePlayerinlinecrates/horizon-client/src/game.rs::Game::update_chunk_ticketsa player gone from the level drops out of the sources
110DistanceManager.getChunkLevelportcrates/horizon-client/src/ticket_levels.rs::Levels::getloading and simulation level as a pair
111DistanceManager.updateSimulationDistanceinlinecrates/horizon-client/src/game.rs::Game::update_chunk_ticketssimulation_distance read from settings into Sources
112DistanceManager.hasPlayersNearbyinlinecrates/horizon-client/src/mobs/spawn_selection.rs::SpawnState::players_nearthe 8 chunk gate; the 5 chunk shortcut is skipped
113DistanceManager.forEachEntityTickingChunkinlinecrates/horizon-client/src/ticket_levels.rs::Levels::random_tickingthe simulation half of the random tick test
114DistanceManager.FixedPlayerDistanceChunkTracker.setLevelinlinecrates/horizon-client/src/ticket_levels.rs::computecells are filled by compute
115DistanceManager.FixedPlayerDistanceChunkTracker.havePlayerinlinecrates/horizon-client/src/game.rs::Game::update_chunk_ticketsplayers' chunks are the sources
116DistanceManager.PlayerTicketTracker.onLevelChangeinlinecrates/horizon-client/src/ticket_levels.rs::computeloading level 31 plus distance beyond the view; no throttle of 4 loads at a time
117DistanceManager.PlayerTicketTracker.updateViewDistanceinlinecrates/horizon-client/src/ticket_levels.rs::reachview distance sets how far the loading levels reach
118DistanceManager.PlayerTicketTracker.runAllUpdatesinlinecrates/horizon-client/src/ticket_levels.rs::ChunkTickets::update
119GenerationChunkHolder.scheduleChunkGenerationTaskinlinecrates/horizon-client-render/src/streaming.rs::Streaming::schedule_generationthe scan picks the columns that need a job
120GenerationChunkHolder.applyStepinlinecrates/horizon-client-render/src/streaming.rs::Streaming::updatequeues the Decorate and Finish jobs
121GenerationChunkHolder.updateHighestAllowedStatusinlinecrates/horizon-client-render/src/streaming.rs::Ranges::requestedhow far a column may be generated follows the ranges
122GenerationChunkHolder.replaceProtoChunkinlinecrates/horizon-client-render/src/streaming.rs::Streaming::receive_generatedthe proto becomes the final column
123GenerationChunkHolder.rescheduleChunkTaskinlinecrates/horizon-client-render/src/streaming.rs::GenerationScan::candidateswanted columns are scanned again when ranges change
124GenerationChunkHolder.getOrCreateFutureskip:javaper status future
125GenerationChunkHolder.failAndClearPendingFuturesBetweenskip:javafuture bookkeeping
126GenerationChunkHolder.failAndClearPendingFutureskip:javafuture bookkeeping
127GenerationChunkHolder.completeFutureskip:javafuture bookkeeping
128GenerationChunkHolder.findHighestStatusWithPendingFutureskip:javafuture bookkeeping
129GenerationChunkHolder.acquireStatusBumpskip:javafuture bookkeeping
130GenerationChunkHolder.isStatusDisallowedinlinecrates/horizon-client-render/src/streaming.rs::Ranges::requested
131GenerationChunkHolder.increaseGenerationRefCountskip:otherkeeps a chunk from saving or unloading under a task; Horizon checks protos out to the job instead
132GenerationChunkHolder.decreaseGenerationRefCountskip:othersee increaseGenerationRefCount
133GenerationChunkHolder.getChunkIfPresentUncheckedskip:javafuture lookup; Horizon reads protos and world.chunks
134GenerationChunkHolder.getLatestChunkskip:javafuture lookup; Horizon reads protos and world.chunks
135GenerationChunkHolder.getPersistedStatusskip:otherHorizon tells proto and final apart by type (SavedProto or Chunk)
136GenerationChunkHolder.getAllFuturesskip:debug
137GenerationChunkHolder.getLatestStatusportcrates/horizon-client-render/src/streaming.rs::Streaming::latest_statusfurthest step reached, for the loading map
138LoadingChunkTracker.getLevelportcrates/horizon-client/src/ticket_levels.rs::Levels::getthe loading half of the pair
139LoadingChunkTracker.setLevelinlinecrates/horizon-client/src/ticket_levels.rs::ChunkTickets::updatelevels are rebuilt when sources change
140PlayerSpawnFinder.scheduleNextportcrates/horizon-client/src/world_spawn.rs::PlayerSpawnFinder::next_candidatecoprime stride order, then the suggestion
141PlayerSpawnFinder.scheduleCandidateportcrates/horizon-client/src/game/initial_spawn.rs::Game::search_spawngap: minor: a server tick passes over candidates in unloaded chunks instead of waiting for the candidate's chunk, so a new player can stand on another spot of the radius
142SectionTracker.checkNeighborsAfterUpdateinlinecrates/horizon-client/src/game/raids.rs::sections_to_villageits only subclass is the POI village distance: Chebyshev distance in sections, 7 when farther than 6
143SectionTracker.getComputedLevelinlinecrates/horizon-client/src/game/raids.rs::sections_to_village
144SectionTracker.computeLevelFromNeighborinlinecrates/horizon-client/src/game/raids.rs::sections_to_village