QtCraft API C++ classes QML types Handbook

qc_clientcore

The client without GUI: session, prediction, meshing, light, camera, textures. More...

Namespaces

QcAdminCompletion

Completion of a command line for the admin channel's command picker (decision E-848): the command names of the catalogue for the first word, then what the parameter at the cursor takes by its usage (QcCommandSyntax): the choices, the names of the players, the structures or biomes the server names with the command (decision E-911), or the blocks, items and creatures of the content

QcAdvancementTree

Adventure guide as the tree view shows it (decision E-924), without the GUI: which advancements a player sees, how far they are with each, and where each stands, one tree per root

QcAlphaCoverage

Keeps cut-out textures (leaves, plants, torches) the same density in every mip level (decision E-300)

QcAnimator

Turns a pose into bone rotations for skeleton models and into the first-person hand motion

QcAppIcon

Application icon: a grass block with an iron pickaxe on a rounded sky tile, drawn from the game's own procedural textures, so it needs no image files

QcArmourLook

What worn armour looks like (decision E-235): for each piece its layer boxes, the boxes of the reference model (the humanoid) it covers made slightly larger and cut to the layer's heights, and its extra parts, as attachments on the bones

QcBlockForecast

Blocks the local player's actions are expected to set, as the server will set them (decision E-853): the client shows them at once and the server's acknowledgement confirms or rolls them back (QcBlockMirror)

QcBlockIcon

Inventory icon of a block state: its boxes drawn from above at an angle (top, east and south faces), textured from the atlas and shaded like the world, so stairs, slabs and fences look different from their base block

QcBoatModel

Look of a boat (decision E-920): an open hull of planks with an oarlock on each side wall, built of boxes like the other static models, pointing north (-z) and turned by the boat's yaw, and two paddles turning in the oarlocks

QcBoatRiders

Boats and their drivers as the client draws them in a frame (decision E-920): a boat where the mirror shows it (interpolated, bobbing while it floats) and its paddles rowing while its driver paddles (the boat's QcMsg::Rowing bit), and every other player who sits on a boat's driver seat drawn there facing the boat's way, their hands on the paddles in the same stroke

QcCharacterProfile

Player's character profile apart from the look itself: the colours the character screen offers, the built-in presets, random looks, and how look and presets are stored in settings.ini (decision E-231)

QcClientHealth

Client session's part of the health line (decision E-834)

QcDebugJson

Debug data as JSON (decision E-225), the same numbers the debug display shows: "client" (position, light, target, entities, chunks, memory, latency), "frame" (graphical game only: FPS and the frame phases with mean and maximum in milliseconds, meshing) and "server" (tick phases, tick, lateness, counts; once the server sent them)

QcDials

What the dials of held items show (decision E-769), as pure functions of the session's state

QcEnchantingMesher

Enchanting tables' book and runes as parts of the entity mesh (decision E-884, positions from QcEnchantingAura): the book as two quads of its atlas tile (QcRuneGlyphs::bookTile), the two halves hinged at the spine and opened towards the viewer; each rune as a quad cut from the rune pages of the texture atlas (QcRuneGlyphs), facing the viewer about the vertical and glowing in a pale violet

QcEntityCulling

Which entities a frame builds (decision E-862): only those whose box may show in the camera's view

QcEntityMesher

Builds the triangles of entities: static box models, animated skeleton models with outfits and hair, dropped items and the first-person hand

QcFigureLook

What players and items look like when drawn: shared by the world (QcEntityFrameBuilder) and the character preview, so the preview shows exactly what other players see

QcFramePhases

Number and the ids of the frame phases

QcFrustum

View-frustum culling of axis-aligned boxes (chunk sections) against the clip planes of a view-projection matrix

QcGamepadCurve

Response of QcGamepadResponse applied to sticks and triggers

QcGamepadGlyphs

How the buttons of a family are drawn in hints and named in help texts (decision E-612), as plain shapes and letters, no logos: a shape (a disc with a letter, the four PlayStation shapes, a shoulder or trigger tab, a stick, the d-pad cross with one arm lit, a diamond of four dots with one lit for the face buttons of a generic pad), its text and a colour role

QcGamepadMapping

What the pad does in the world and the arithmetic behind it (decision E-541), without state and without a session: the default bindings, the walking direction of the left stick, the turn of the right stick in one frame, the triggers as buttons and the hotbar steps of the shoulders

QcGamepadNames

Names of buttons, axes and types in the control interface and in settings ("south", "leftX", "playstation"); the lookups return nullopt for an unknown name

QcGamepadTypeDetection

Which family a pad belongs to, from its USB/Bluetooth vendor and product id and its name (decision E-540): Microsoft is Xbox, Sony PlayStation, Nintendo's Pro Controller (and the combined Joy-Cons) Switch Pro, any other Nintendo product (a single Joy-Con) Generic; without a known vendor the name decides ("Xbox", "DualSense", "DualShock", "PS4", "PS5", "Pro Controller", "Switch"; a single "Joy-Con (L)"/"(R)" is Generic), else Generic

QcGpuLimits

What the renderer learned about the GPU, for code that prepares textures in other threads (decision E-300): the largest texture edge

QcHandSwing

First-person swing (decision E-881): arm and held item move together as one rigid body, nothing bends or turns in the fist

QcHangingMesher

Draws item frames and paintings (decisions E-790, E-791): a frame as a thin board in its item's texture with the held item in front, turned by its rotation (a block item as a small cube, any other item flat); a painting as one picture tile per block (QcPaintingMotif::tileTexture) on a board whose back and edges show its back texture

QcHurtTilt

View of a hurt player tips away from the hit and back (decision E-971), like the reference's damage tilt

QcIndexPacking

Index buffers of section meshes: two bytes per index whenever every vertex can be addressed with 16 bits, otherwise four (QcPackedMesh writes them)

QcItemIconSet

Icon of every item of a content registry, keyed by item name: blocks drawn as their shape when a render table is given, everything else (and blocks with a flat icon, plants) as its texture; and the icon of every creature (QcMobIcon) under QcHandbookLinks::mobIcon(name)

QcLiquidSurface

Heights of a liquid's surface at the four top corners of its cell (decision E-885), so the surface slopes towards where the liquid flows, as in the reference game: each corner averages the surfaces of the up to four cells sharing it, sources and full cells weighing ten times as much as lower flows, open cells (air, torches, plants, thin snow; QcBlockRenderTable::Entry:: liquidMayEnter) counting as height 0 and closed cells (solid blocks, other liquids) not at all; a corner next to a full cell (liquid on top of it) is full

QcMapColors

Colours maps are drawn with (decision E-801): every block definition shows the average colour of its top face's texture as the world is drawn, so texture packs colour maps too

QcMaterialMips

Next mip level of the material atlases (decision E-908): every 2 x 2 block of texels into one

QcMaterialRules

Materials of the procedural textures (decision E-908): a surface by pattern (stone, wood, bricks, glass, metal …), refined by words of the texture's name (the metal of a block or an ore), light for the textures of light-emitting blocks, and finally the "material" object of the definition itself (a mod's texture or a pack's spec)

QcMaterialSynthesizer

Paints the material maps of one texture from its colour picture (decision E-908)

QcMobIcon

Handbook icon of a creature (decision E-944): its model standing in its rest pose, turned so that its face looks out of the icon, drawn from above at an angle like a block icon (QcBlockIcon) and scaled to fill it

QcMouseLook

Turns relative mouse motion (in points, y down) into view yaw and pitch

QcMovingLights

Finds and ranks the moving lights of a frame

QcPixelFont

5 x 7 pixel font of the text on signs (decision E-766), drawn by the game itself like its textures: printable ASCII, the German umlauts and ß, a few accented letters, € and °; any other character shows as '?'

QcPreviewActivity

When a character preview draws (decision E-231)

QcPreviewPose

Poses of the character preview: the animations to check a look with (standing with the idle sway, walking on the spot, mining) and the head following the mouse pointer

QcPreviewScene

Triangles of the character preview: the player's figure meshed exactly as the world meshes other players (QcFigureLook, QcAnimator, QcEntityMesher::appendModel), standing at the origin in full daylight, so the preview shows what other players see

QcProceduralTexture

A procedural texture definition (content/*/textures/*.json or a texture pack's spec) turned into a picture: the fields are read into a QcTextureSpec and painted at 16 x 16; larger resolutions are enlarged with the pattern's detail (QcTextureDetail, decision E-299)

QcProjectileMesher

Model of a projectile (an arrow, decision E-425): the item's icon, which lies on its diagonal from the tail at the bottom left to the head at the top right, drawn as two crossed squares whose diagonals run along the flight, so the head points where it flies and the fletching shows from every side, like the reference's arrows

QcRenderOrigin

Camera-relative rendering (decision E-883)

QcRuneGlyphs

Runes of the enchanting table (decision E-884): 40 hieroglyphs after Egyptian models (ankh, eye, water, reed, vulture, scarab, djed pillar, lotus …), drawn by the game itself like its textures and its sign font (QcPixelFont), in the blocky stroke of Pixelify Sans

QcRuneScript

How the enchanting screen writes an offer's clue (decision E-884): every letter is either readable or hidden behind a rune (QcRuneGlyphs), and the bookshelves around the table decide how many are readable: floor(letters x shelves / 15), all of them at 15

QcSessionStates

Phases of a client session's connection; the phase itself is QcSessionState (QcClientSession::State, reported by QcClientSession::stateChanged())

QcShadowCascades

Pure parts of the sun shadows (decision E-903): which light casts them, how far each cascade reaches, the light's axes and a box per cascade whose texels stay on a fixed grid of the world (texel snapping), so shadow edges do not crawl while the camera moves

QcSignTextMesher

Text on signs (decision E-766) as quads of the entity mesh: one quad per character, cut from the pixel font's pages in the texture atlas (QcPixelFont), on the front of the board in the ink of the text's colour (QcSignText::inkOf; dark by default, a dye's tone after decision E-830)

QcSky

Sky as a function of the world time and the weather

QcSpatialNavigation

Moving a focus between rectangles of a screen by direction (decision E-583): from the focused rectangle to the nearest one that lies in the direction

QcSwimmerPose

How a creature that swims in pulses (the squid, QcMobDefinition::pulse, decision E-974) holds its body in one frame: tilted by the pitch the server sends (QcCreature::tilt) about the middle of its height, its tentacles (QcMobPart::tentacle) open as it slows below the speed of a push and pulled in right after one

QcTetherMesher

Luminous threads between the children of a family and their parent (decision E-839; the Kjut, a signal and slot look): a thread from the middle of one body to the middle of the other, drawn as two crossed ribbons

QcTextureDetail

Renders a procedural texture above 16 x 16 (decision E-299): the pattern's 16 x 16 picture is enlarged in steps of two with an edge-aware pixel-art filter (Scale2x on similar colours, so diagonals and round shapes get finer steps instead of blurring), then gains detail that only the higher resolution can show: a fine grain on the surface and a bevel along strong edges (lit at the top and left, shaded at the bottom and right, also towards transparent pixels). The outlines of the enlarged picture follow its coverage alone, so the pixel variation of a thin shape cannot notch or pinch it; tools and weapons take the outline of strokes between the pixels instead (QcTextureOutline, decision E-1000)

QcTextureEmblem

Pattern "emblem" (decision E-241): pixel art from a small bitmap in the content data, on woven cloth in the primary colour

QcTextureOutline

Smooth outline of an enlarged cut-out shape (decision E-1000)

QcTexturePackLibrary

Where texture packs are found (decision E-297): built into the game (:/texturepacks/<folder>), in the player's data folder (<data>/texturepacks/<folder>) and inside installed mods (<mods>/<mod>/texturepacks/<folder>, decision E-302)

QcTexturePackLoader

Reads a texture pack folder (decision E-297) and checks everything in it at the system boundary (decision E-298): the manifest, file names (only textures/<namespace>/<name>.png|json, no links, no hidden files, so nothing outside the folder is read), the number and size of files, PNG signature, size and resolution, damaged images and a budget for decoded image memory

QcTexturePaint

Pixel helpers shared by the texture patterns of QcTextureSynthesizer

QcTextureSources

Where each texture of the atlas comes from (decision E-297): the active packs in priority order, then the content's own definition (the base 16 x 16 textures and those of mods)

QcTextureStackBuild

One switch of texture packs (decision E-301): optionally lists the pack folders again, loads the active packs that are not loaded yet, reads the previews that changed and builds the atlas for the content

QcTidyTreeLayout

A tidy layout of a tree read from left to right (decision E-924; the advancement tree): a node's column is its depth, children follow their parent in one column further right in the order of their indices, and every parent stands halfway between its first and its last child

QcUiPalette

Colours of every game screen in one place

QcUiScale

Size of the HUD and the screens (decisions E-725, E-875): the player's choice (a step from 75 % to 200 %) times the window's factor, which grows the UI with large windows, and how far that may go in a window before the UI would no longer fit

QcViewCamera

Places the camera for a view mode

QcWaterLook

Look of the water in the realistic mode (decision E-906): what does not need the GPU

QcWebHandbookAssets

Pictures and colours of the web handbook (web/handbook/data): all item icons on one sheet, so the page loads one image instead of hundreds, and the colours of the game's screens as CSS variables, so the page looks like the handbook in the game (QcUiPalette)

Classes

QcAdminCompletion::Sources

What completion takes its words from

QcAdvancementTree::Node

An advancement in the tree: where it stands and how far the player is with it

QcAdvancementTree::Tree

One tree of the guide with its size

QcAmbience

Levels (0..1) of the four ambience loops, chosen from the surroundings with simple rules: wind under the open sky (stronger up high), a cave rumble under a thick rock ceiling, water when water blocks are near, rain while it rains where the listener is (muffled under a roof, faint in a cave)

QcAmbience::Levels

(0..1) of the four ambience loops

QcAnimationClock

Time of the animated block textures in game ticks (decision E-878), advanced every frame by the frame's seconds at the server's speed (QcMsg::WorldTime::speed): smooth between ticks, faster in a /tick sprint, and standing while the server stands (pause menu, an empty server, /tick freeze; speed 0)

QcAnimator::BodyPose

Rotations of a skeleton model's bones and of its whole body in one frame

QcAnimator::BoneRotation

Rotation of a bone around its pivot in degrees

QcAnimator::HandPose

Where the first-person arm and held item sit relative to their rest position, in the camera's frame (x right, y up, z backwards) in metres, and how far arm and item are turned together about the shoulder (degrees; QcHandSwing::Angles)

QcAppIcon::IconFile

One image of a macOS .iconset

QcAtlasLayout

Geometry of the texture atlas (decision E-300)

QcAudioMixer

Software mixer: plays sample buffers as voices with their own gain, stereo position and speed, grouped into buses with a volume each, under a master volume and a mute switch

QcAudioMixer::PlayParameters

How play() starts a voice

QcAudioMixer::Voice

One playing sound

QcBlockIcon::FreeQuad

A quad of any size and place with the colour its texels are multiplied with (RGBA, 255 keeps a channel): a face of a creature's model (QcMobIcon)

QcBlockIcon::Part

One cell of a block that fills several (a bed's foot and head, decision E-885): its state's entry, drawn offset cells away from the first part

QcBlockLightEngine

Block light of all loaded chunks on the client (decision E-049): the shared QcLightEngine (decision E-389) with block light only, plus immutable section snapshots for the mesher

QcBlockLightEngine::Changes

What changed since the last takeChanges(): new snapshots of sections whose levels differ, and the sections whose meshes read a changed cell (also neighbours of changed border cells)

QcBlockLightEngine::SectionUpdate

A new snapshot of one section's light

QcBlockMirror

Blocks of the loaded chunks as the client shows them (decision E-853): what the server's world messages say and, on top, the local player's predicted block changes

QcBlockMirror::Change

What a world message changed

QcBlockPrediction

Whether the session shows the blocks of the local player's breaks and placements before the server confirms them, and the numbers of the predicted actions (decision E-853)

QcBlockRenderTable

Per-state data the mesher needs, indexed by runtime block id (block state)

QcBlockRenderTable::Cross

A pair of crossed planes (plants, saplings) spanning a box of the cell

QcBlockRenderTable::Quad

One face of a shape box, in block-local coordinates; corners are ordered like the full cube faces (0 and 1 along the bottom edge of the texture)

QcBlockRenderTable::SideRect

Rectangle on a cell side in the two coordinates that span it (see QcBlockRenderTable::axes): a0..a1 along the first axis, b0..b1 along the second

QcBlockVertex

Vertex layout shared by the mesher and the GPU pipeline: position (relative to the section's corner, QcChunkMesh::origin) and atlas coordinates as floats, shading, light and the surface as unsigned bytes (read as one UNormByte4 attribute), 24 bytes per vertex

QcBoatModel::Paddle

How a paddle lies in its oarlock, in degrees: sweep turns its outer end towards the stern (negative towards the bow), lift tilts its outer end down towards the water

QcBoatRiders::Drawn

A boat as drawn this frame: its feet (with the bob), its yaw, the moment of the paddles' stroke (QcBoatModel::rowPhase, negative at rest)

QcBoatRiders::Seat

Where a driver sits as drawn this frame: the boat, the feet on its seat (bobbing with it), the boat's yaw and the paddles' stroke

QcBoatRiders::Seated

A driver figure as drawn on its seat: its pose, its feet and the way it faces

QcBoxLegs

Legs of a creature built from static boxes (decision E-888), found in its parts, so every walking creature of the content and of mods swings its legs without naming them: a leg stands on the lowest level of the model and is at least 1.5 times as tall as it is wide and deep; a model needs at least two

QcBoxLegs::Swing

How one part moves with the walk: turned around axis through hip by the swing angle times phase (1 or -1; 0 for parts that are not legs)

QcBoxLegsCache

Legs of the box models drawn, found once per model instead of every frame

QcCamera

First-person camera

QcCampfireSmoke

Smoke rising from the lit campfires near the player (decision E-772): a list of the campfires (blocks whose campfire cooks) within radius blocks, found again every rescanTicks by looking only into the chunk sections whose palette holds such a block, and a few puffs per campfire that rise, drift and shrink in a loop

QcCapeDrive

How a figure moves, as far as its cape cares: speeds in m/s in the figure's own frame

QcCapeSwing

Swing of a cape (decision E-240): a damped spring per axis pulls the cape towards an angle that follows from the movement: lifted backwards by walking and more by sprinting, upwards when falling, pressed to the back when rising or sneaking, held off the swinging legs when walking backwards, swaying gently when standing

QcCapeTracker

Cape swings of the figures in the world (decision E-240), one per entity, advanced once per frame

QcCharacterPreset

A look saved under a name: a built-in preset or one the player saved

QcCharacterPresets

Presets of the character screen (decision E-231): the built-in ones, translated, followed by the player's own (at most QcCharacterProfile::maxPresets)

QcChunkExtras

What the server sends about the loaded chunks besides their blocks: the labels floating in them (decision E-222), the creature kinds spinning in their monster spawners (decision E-520) and the items lying on their campfires (decision E-772)

QcChunkLight

Block light levels (0..15) of one chunk as immutable section snapshots; a missing section is dark

QcChunkMesh

Triangle mesh of one chunk section

QcChunkMesher

Builds the triangle mesh of one chunk section from the boxes of every block state: hidden faces are culled, every vertex gets face shading, ambient occlusion, sky light and block light

QcClientAdmin

Client's side of the admin channel (decision E-848), part of QcClientSession: what an operator asks the server for and what came back, for the "Manage server" screen (stage 77.2) and the control interface

QcClientAdmin::Arrivals

How many chat and log lines came so far (on over their limits), and how often the list was replaced (a new history or tail, following anew): a view appends only what is new (decision E-863)

QcClientAdvancements

Local player's progress in the adventure guide as the server told it (decision E-923, QcMsg::AdvancementProgress); the definitions come with the content (QcContentRegistry::advancements)

QcClientAnvil

Anvil's screen the server opened for the local player (decision E-866): its left and right slots, the name in its field, the output and its cost as the server last sent them (state()); the player renames and takes the output

QcClientBlockScreen

A screen the server opened at a block for the local player (the anvil, the enchanting table): whether it is open, where, and the way out to the server

QcClientBlockScreenOf

A screen of the kind the server opens with the message Open, updates with the message State and closes with the message Close (either side sends Close)

QcClientDebugSubscription

Client's subscription to the server's debug data (QcMsg::DebugSubscribe, decision E-225) and what arrived of it

QcClientEnchanting

Enchanting table's screen the server opened for the local player (decision E-864): its item and lapis slots, the bookshelves that count and the three offers as the server last sent them (state()), and the offer the player takes

QcClientEntities

Client mirror of the entities the server reports, with their animation timers and the ones that play their death animation

QcClientEntity

Client mirror of an entity the server reported (QcMsg::EntitySpawn)

QcClientGameMode

Local player's game mode as the server reported it (decision E-282), with the world's adventure allow-lists in adventure mode (decision E-735), and what the client does with it: the wish to fly that goes with every input (decision E-284), the pace of instant breaking in creative mode, and the requests for catalogue items (E-283) and picked blocks (E-285)

QcClientInventory

Local player's items as the server last reported them (QcMsg::InventoryState): inventory, selected hotbar slot, worn equipment and the crafting grid with its result; and the requests that move items between these slots or craft (the server answers with a new InventoryState)

QcClientLauncher

Drawing a launcher on the client (a bow, decision E-425): the use button held with a launcher in the hand draws it, its release shoots

QcClientLogin

Client's side of the login of a network game (decision E-252): answers the server's challenge with proofs of the password and of the player's identity for this server, the content packs and the wanted view distance, and keeps what the server told about itself

QcClientLogin::Credentials

What the client proves itself with

QcClientMachineScreen

Machine or chest screen the server opened for the local player (OpenMachine, MachineState, CloseMachine): where it is (or the container minecart it belongs to), its category (empty for a storage block or cart), its slots and progress

QcClientMaps

Maps the server sent (decision E-802), part of the world mirror: per map id its picture (QcMapData), the markers of its last update and a revision that grows with every update, so a drawn image of the map can tell it is out of date

QcClientMaps::Map

One map as the client mirrors it

QcClientRiding

Minecart the local player rides (decision E-382)

QcClientSession

Client side of one connection: distributes the server's messages to its parts (the world mirror QcWorldMirror, the entity mirror, the screens), drives the local player's parts (clientcore/player: prediction, hand, animation, inventory) once per tick and sends their requests

QcClientSignEditor

Editor of a sign the server opened for the local player (decision E-766): the sign's position and lines (QcMsg::OpenSignEditor), and the lines the player writes (QcMsg::EditSign)

QcClientSounds

Sounds of a client session: the cues of the last moments (oldest first, at most recentLimit), the player's own steps and the ambience loops around them

QcClientStonecutter

Stonecutter screen the server opened for the local player (decision E-785): its input slot and the stonecutting recipe chosen for it (decision E-784) as the server last sent them, and the choices the player makes

QcClientTrading

Trading screen of a villager the server opened for the local player (decision E-414): the villager, its profession, level and experience and its offers (QcMsg::TradeState), and the trades the player asks for

QcClientVitals

What the server last told the player about themselves (QcClientSession::vitals): health and whether they burn or are dead, food, experience (decision E-398) and air under water (decision E-955)

QcClientWeather

Weather as the client shows it (decision E-395): the strengths of rain and thunder the server sent, eased so a step of a message never jumps; the climate where the player stands; the flash of the latest lightning; and the thunder still on its way (sound travels 343 m/s, so a strike 170 m away is heard half a second after its flash)

QcClientWorld

Client-side mirror of the chunks the server sent

QcClientWorld::Memory

What the blocks of the loaded chunks take (memory statistics, decision E-813)

QcControlActiveCommand

A control request that completes on a later tick

QcControlAdminCommands

Control commands of the admin channel (decision E-848), for tests and automation: admin sends one request and answers with its result and the report it brought, adminFollow chooses the topics followed, adminStatus reports what arrived of them

QcControlAim

Turns the player's view like a player moving the mouse

QcControlArguments

Typed access to the parameters of a control request

QcControlCommandTable

Control commands by name, each served by one of the command groups

QcControlContext

State the control commands share: the session, the response output, the running command and the chat lines received while it runs

QcControlEntityCommands

Control commands about entities: listing them, attacking or using an item on a creature, collecting dropped items, and riding minecarts

QcControlGamepadCommands

Control commands for virtual gamepads (decision E-540): connect and disconnect pads and set their buttons and axes, for scenario tests with a controller

QcControlInterface

Machine-readable control of a client session: newline-delimited JSON requests in, one JSON response line per request out

QcControlInventoryCommands

Control commands on the inventory and crafting: hotbar selection, slot moves, dropping and the recipe book

QcControlMachineCommands

Control commands on machine and chest screens: opening, filling, emptying, closing and their state

QcControlMovementCommands

Control commands that turn, walk and wait

QcControlReports

JSON views of the session state that control responses report

QcControlSessionCommands

Control commands about the player and the session: status, view mode, respawn, chat, sounds, loaded packs, the advancements, the debug data, the players on the server and the own look

QcControlTradeCommands

Control commands for trading with villagers (decision E-414): opening a villager's screen, listing its offers, trading and closing

QcControlWorldCommands

Control commands that query blocks and act on them: block queries, mining, using the held item on a block and lighting fire

QcDebugLineVertex

One end of a debug line: position in the world and colour (RGBA bytes)

QcDebugLines

Debug visualisations as coloured line segments in the world (decision E-225): chunk and section borders, hitboxes with the view direction, where creatures are heading, and sections that were meshed again

QcDebugOptions

What the debug display shows (decision E-225): its level, switched by the debug key, and the visualisations, each switched on its own in the debug options (like Factorio's F4)

QcDebugSnapshot

Everything the debug display, the control interface and the statistics log show, at one moment (decision E-225)

QcDebugSnapshot::Entities

Entities of the mirror by kind

QcDebugSnapshot::Frame

Only in the graphical game

QcDebugSnapshot::Target

Block under the crosshair

QcDebugSnapshot::Timing

Mean and the maximum duration of a phase since the previous snapshot

QcDebugText

Debug display's text (decision E-225), translated: one line for the compact level, the general column (position, light, target, entities, chunks, memory, server) and the time column (client frame and server tick phases, mean and maximum, aligned for a fixed-width font) for the full level

QcDeviceLossPolicy

What the game does when the graphics device is lost (decision E-963): a lost device while the realistic mode is drawn gives coolDownMs() of classic frames, a second one within repeatWindowMs of the first draws the classic look for the rest of the session

QcDials::ClockTime

Time of day the clock shows as hours and minutes, sunrise at 6:00

QcDisplayOptions

How the game window shows and how often it draws (decision E-835): the window mode, the screen it covers, the window's place in windowed mode, VSync and the frame rate limits for playing and for menus, a paused game or a window in the background

QcDropPool

Lists of precipitation drops handed to the view in turn (decision E-397): the view keeps the latest, the renderer the one it last copied, so a third is always free to be filled again and a frame allocates nothing once the lists have grown

QcEffectClock

Clock the world's animations run on (decision E-962): campfire smoke, the runes and book of the enchanting tables, creatures' limbs, glowing creatures, boats and capes

QcEffectPuff

A cube of an effect cloud as the entity frame draws it at a moment (campfire smoke, ink clouds; decision E-975): its centre and its edge length

QcEnchantingAura

What the enchanting tables near the player show in the world (decision E-884), as in the reference: a book floating above each table, turning towards the viewer and opening when the viewer comes near, and runes flying in an arc from the bookshelves that count (QcEnchantingTable) to the table

QcEnchantingAura::Book

Floating book: the middle of its spine, the direction it faces (radians about +y, 0 facing +z) and how far it is open (0 closed, 1 wide open)

QcEnchantingAura::Rune

A rune in flight: where its middle is, which rune (QcRuneGlyphs) and how large (metres)

QcEnchantingAura::Table

A table and the bookshelves that count for it

QcEntityCulling::ViewPlanes

Clip planes of a camera, for boxes relative to its eye (decision E-883)

QcEntityLight

Light of an entity: sky light (scaled by daylight in the shader) and block light, both 0..1

QcEntityMesh

Triangles of all entities of one frame (or of the first-person hand), alpha-tested

QcEntityMesher::Attachment

An extra textured box worn on a bone of a skeleton model, in model space like the bone's own boxes: it turns with the bone and takes the figure's light and hurt tint

QcEntityMesher::BlockPlacement

Where a block entity stands (its feet) and how large it is drawn

QcEntityMesher::ExtrudedSprite

A sprite with thickness: size metres across, in the local space of a flat sprite (x across and centred, y up from 0 to size), one texel thick along z and centred on z = 0

QcEntityMesher::HandView

First-person view the hand is drawn for: the camera at eye looking along yaw/pitch (degrees), and the light there

QcEntityMesher::HeldItemPainter

Draws held items, in the first-person fist and in a figure's fist

QcEntityMesher::HeldPlacement

Where a held item sits around the grip (decision E-831), resolved from the content's hold transforms (QcHoldTransform): a point of the item (a sprite one unit across, a block one unit per edge, relative to the grip) is scaled by scale, turned by rotate (degrees: Turn by y, then Rotate by x and z) and moved by translate, in metres in the frame of the fist

QcEntityMesher::ItemFrame

What a dropped item looks like this frame: alpha interpolates between the last two ticks, seconds is the client clock driving the animation, light the light at the item

QcEntityMesher::ItemLook

Appearance of an item: a small cube with the block's face textures for placeable cube blocks, otherwise a sprite of the item texture

QcEntityMesher::LyingPlacement

Where an item lies flat on a block (on a campfire, decision E-772): the middle of its underside, turned by yaw degrees, in light

QcEntityMesher::ModelLook

What a skeleton model looks like: the model, an outfit, an optional hair style and cape, the colours that tinted layers use, and a uniform scale (models are built for 1.8 m)

QcEntityMesher::PartLook

How a creature of static boxes looks this frame (decision E-480): sitting (each part moves by its QcMobPart::sitOffset) and the colours its tinted parts take (the collar: QcTint::Collar)

QcEntityMesher::Rotate

Rotation around the X axis (positive moves -Y towards -Z), then around Z (positive moves -Y towards +X) and then around Y (positive moves -Z towards +X), all in degrees

QcEntityMesher::Turn

Rotation around the Y axis by a yaw in degrees: the model faces -Z; yaw 90 faces +X

QcEntityPose

What the animator needs to know about an entity in one frame

QcEntityVertex

Vertex of creature, player, item and hand meshes: like QcBlockVertex plus a tint colour that the texture is multiplied with (outfit colours, the red flash of a hit)

QcExplosionEffects

Flash and smoke of the explosions the server told about (QcMsg::Explosion, decision E-604): each explosion leaves a few bright puffs of fire that burst out and fade fast and more puffs of smoke that drift up and shrink, all as small cubes the entity frame draws

QcExplosionEffects::Look

What a puff looks like at a moment (lookAt())

QcExplosionEffects::Shake

Camera offsets of a shake, in degrees

QcEyeHeight

Camera's height above the player's feet: it drops to QcPhysics::sneakEyeHeight while the player crouches and rises back when he stands up, at a steady speed over transitionSeconds, like the role model (decision E-961)

QcFigureLook::Dressed

A figure's look with what it wears

QcFlightLatch

Two presses of the jump key in quick succession toggle flying in creative mode (decision E-284)

QcFovEffect

Field of view widens while the player sprints and narrows again when the sprint ends, eased over a fraction of a second, like the model's "FOV effects" (decision E-280)

QcFovEffect::Movement

How the player moves this frame

QcFramePacer

Frame pacing of the game window (decision E-835): with a limit, frames start at most that many times a second, on a grid so that early or late frames do not change the rate; without one (0), every frame is due at once

QcFramedMapAtlas

Pictures of the maps in item frames (decision E-809), one texture for all of them: a grid of columns x columns tiles of QcMapData::size pixels, one per map id drawn this frame, so every framed map is drawn with the same texture and a wall of them costs one draw call

QcFramedMapAtlas::Tile

One tile as the renderer uploads it: the picture (RGBA8888, QcMapData::size squared, null for a tile never drawn) and a version that changes with every new picture

QcGameSettings

Player settings of the graphical game, stored as an INI file in the data directory

QcGameSettings::AudioVolumes

Volumes of the sound and whether it is muted, stored as audio/<key>

QcGamepadControls

A gamepad steering the player (decision E-541): the left stick walks with stepless speed, the right stick looks, the triggers mine (right, also attacks) and use (left), the shoulders step through the hotbar, the stick clicks sprint (left) and toggle sneaking (right; held while flying, where it descends), south jumps and a double tap of it toggles creative flight

QcGamepadInfo

A connected pad: the id stays the same while it is connected and is not reused by the source

QcGamepadMapping::Bindings

Default bindings (Auftrag point 40, decisions E-541 and E-580, after the console layout of the model): south jumps (double tap: creative flight), the left stick click sprints, the right stick click sneaks, the shoulders step through the hotbar; start pauses, north opens the inventory, east drops, west picks the block in view; the d-pad holds the radial menu (left), switches the camera (up), opens the chat (down) and the handbook (right); back holds the player list

QcGamepadMapping::Combo

A button combination (decision E-692): button pressed while the button of modifier is held runs action instead of the button's own action, for that whole press

QcGamepadMapping::Walk

Forward (positive) and strafe right (positive) from the shaped left stick (y positive down)

QcGamepadMenuInput

What a pad does on the screens (decision E-583), without a window: the d-pad or the left stick move the focus (held: repeated after repeatDelayMs every repeatIntervalMs), south confirms, east goes back, west and north are the secondary actions (in slot screens: one item, quick move), start, and the shoulders switch tabs; the right stick scrolls

QcGamepadProfile

How one pad steers the player (decisions E-541, E-610, E-611): dead zones, outer zone and response curve of sticks and triggers (QcGamepadResponse), the turning speed of the right stick at full deflection, whether pushing it up looks down, how far a trigger is pulled before it acts, whether the pad vibrates and the buttons of the actions

QcGamepadResponse

How raw stick and trigger values become input (decision E-540): a radial dead zone around the centre (the stick's direction is kept, only its length shrinks), an outer zone that already counts as full deflection (worn sticks do not reach 1), and a response curve (length to the power exponent: 1 linear, above 1 finer control near the centre)

QcGamepadSettings

Gamepad part of the settings (decisions E-541, E-610, E-611): the profile all pads use (standard, stored as gamepad/<key> as before), the pad models with a profile of their own (by SDL's GUID, stored as gamepadControllers/<n>/<key>, at most maxControllers) and whether the hotbar shows only the slot in the hand (radialOnly, decision E-614)

QcGamepadSettings::Controller

A pad model with its own profile; name is the pad's name when the profile was made

QcGamepadSource

Gamepads the client sees, behind one interface (decision E-540): the SDL3 backend of the game (QcSdlGamepadSource in src/app/input, polled on a Qt timer) and the virtual pads of tests and the control interface (QcVirtualGamepadSource) look the same to the input mapping

QcGamepadState

One pad's buttons and axes at one moment, normalised and independent of the backend

QcHandActions

What the local player's hand does: the block and the entity under the crosshair, mining the targeted block (survival progress and hit sounds, instant breaking in creative mode), using the held item on a block, an entity or itself, drawing and releasing a launcher (QcClientLauncher) and attacking

QcHandActions::View

What the hand reads of the session: the predicted player, its items and the entity mirror

QcHandSwing::Angles

Turn of arm and item about the shoulder in degrees, in the camera's frame: pitch positive lifts the arm (its forward end up), negative strikes down; yaw positive turns it inwards towards the crosshair; roll positive turns it in the picture's plane, counter-clockwise as seen, so the head of a tool held in the lower right corner comes down and to the left, towards the lower middle of the screen

QcHandSwing::Shape

Phases of a swing: the progress at which the wind-up ends (highest point), the strike ends (lowest point, the blow) and the recoil ends, and the pitch at those points

QcHandTimers

Progress of the own player's hand animations in one frame (QcClientSession::handTimers): switching the held item, landing and using; 0..1 while running, negative otherwise. aim is how far the hand has come to a drawn launcher (decision E-984)

QcHotbarRadial

Radial menu of the hotbar on a pad (decision E-581): held open by a button, the hotbar's slots sit on a circle, the right stick points at one and letting go of the button selects it

QcHurtTilt::Tilt

How far the view tips: pitch up and roll clockwise (the head leaning to the right), in degrees

QcInkClouds

Clouds of ink that struck squids leave in the water (decision E-974): a creature whose kind has an ink texture (QcMobDefinition::ink) and whose move says a blow struck it (QcMsg::EntityMove::struck: an attack, a projectile, an explosion; not burning, drowning or suffocation) leaves a few dark puffs around the middle of its body as drawn that drift apart, swell and shrink again within about two seconds, drawn as small cubes like the smoke of explosions

QcInkClouds::Puff

One puff of a cloud

QcKeyControls

Player's key table for QML: the rows of the controls page, the key texts of hints, key tests for screens and rebinding

QcKeyLabels

Texts the UI shows for keys and actions, in the UI language

QcKnownServers

Servers this installation trusts (decision E-872), like SSH's known_hosts: the fingerprint of each server's certificate (QcTlsFingerprint), pinned at the first connection (trust on first use) under the normalised address (keyOf(): every spelling of one address is one pin)

QcLabelProjector

Picks the world labels to draw (decision E-222): those within reach of the camera (titles from further away), in front of it and not hidden behind an opaque full block, at most maxShown of the nearest

QcLatencyProbe

Client's measurement of the round trip to the server (decision E-886): every half second a LatencyProbe, answered by the server at once with a LatencyEcho; the round trips go into a QcRoundTripStats of the last ten seconds

QcLightProbe

Sky and block light of the cells around one position, for the debug display (decision E-225): sky light shines with 15 into every cell above the highest cell of its column that stops light coming straight down (QcLightPassage) and spreads like block light, by the same rules as the mesher's light

QcLinkStats

Connection as the health line sees it (decision E-834): the round trip of player inputs (from sending one until a player state acknowledges it, so it includes up to one server tick) and the bytes of the connection

QcLinkStats::Taken

What take() hands out

QcLocalAnimation

Animation of the local player between server updates: the timers of the arm swing, using, switching the held item and landing (in ticks, negative while not running) and the distance walked for the stride

QcLocalSounds

Sounds of the local player's own movement, made on the client without a server round trip: steps on the block underfoot, jumps, landings, swimming strokes and splashes into water

QcMaterialAtlas

Material maps of the texture atlas (decision E-908): a normal atlas and a specular atlas in the labPBR encoding (QcMaterialSynthesizer), with the colour atlas's layout, so the block shader reads them at the same atlas coordinates

QcMaterialParams

Surface of one procedural texture for its material maps (decision E-908), before it is painted per texel by QcMaterialSynthesizer

QcMaterialParams::Inclusion

What the texels of a second colour get (the ore in a stone, decision E-908): the texels nearer to the definition's secondary than to its primary colour

QcMaterialSynthesizer::Colours

Colours of the definition that tell an inclusion (the ore) from its ground (the stone)

QcMaterialSynthesizer::Maps

Normal and specular maps of one tile, or one mip level of both material atlases (QcMaterialMips::halve)

QcMeshInput

Immutable snapshot of everything needed to mesh one section: the chunk and its eight neighbours (for faces and ambient occlusion across chunk borders)

QcMeshLighting

Sky and block light of the 3 x 3 chunk neighbourhood around one section, as the chunk mesher reads it

QcMeshNeighbourhood

Blocks of the 3 x 3 chunks around a section as the chunk mesher reads them (QcMeshInput), by chunk-local coordinates

QcMeshOutput

Vertex and index lists of one render layer of a chunk mesh, which the chunk mesher appends its quads to

QcMeshScheduler

Keeps section meshes in sync with the client world

QcMeshScheduler::Stats

How quickly block changes reach the screen (benchmark): time from a change until every section it made dirty has a new mesh, the largest number of sections and light jobs waiting, and the time the light thread spent

QcMouseCapture

When the mouse is captured for looking around, as a small state machine without a window: the game asks it after every change of the screens and before acting on a mouse button

QcMouseCapture::Situation

What the game is doing now, as far as the capture cares

QcMovingLight

A light that moves with what carries it (decision E-902): a torch in a hand, a glowing item on the ground, a firefly

QcMusicComposer

Background music composed from a seed: a calm piece on a pentatonic scale with a melody of varied motifs (A A' B A), a slow bass line and soft held chords, ending on the root

QcMusicComposer::Note

One note of a piece

QcMusicComposer::Piece

A composed piece

QcNetworkClient

Joins a network game (decisions E-251, E-252, E-872): connects over TLS to the address, checks the server's certificate against the pin in the known servers (pins it at the first connection), logs in with the credentials and hands over the session once the server welcomed the player

QcPackedLights

Moving lights as the shaders take them (the frame uniforms, decision E-902)

QcPackedMesh

Lists of a section mesh (QcChunkMesh) packed for the GPU into one vertex and one index range (decision E-813), which the GPU mesh store places in a page shared with other sections (decision E-820)

QcPixelFont::Glyph

Where a glyph is: its page, its cell in the page (0..3, row by row), the first column with pixels and the number of columns it takes (0 for a space)

QcPointerRadial

Hotbar's radial menu with the mouse (decision E-614): while its key is held the mouse does not turn the view but moves a pointer from the centre, and the direction of the pointer picks the slot like the pad's right stick (QcHotbarRadial)

QcPositionalVoices

Mixer voices of positional sounds with where they sound, so that their loudness and stereo position follow the listener while they play (a thunder roll or an explosion lasts seconds, and the listener turns and walks meanwhile), and at most a few voices of one sound at a time, so that dozens of sources of the same sound (flowing water all around) never pile up

QcPositionalVoices::Tracked

A voice that follows its source

QcPrecipitationDrop

One particle as the precipitation renderer draws it, an instance of 16 bytes: the lowest point of the particle, whether it is a snowflake (else a raindrop) and its opacity (decisions E-395, E-397)

QcPrecipitationField

Rain and snow around the camera (decision E-395): up to a budget of particles in a box around the eye, falling, each only where the sky is open above it

QcPrecipitationField::Particle

A falling particle

QcPrediction

Prediction of the local player: the movement intent, the inputs the server has not acknowledged yet, the predicted motion one tick ago and now, and the reconciliation with the authoritative state (corrections, decision E-257)

QcPreviewActivity::State

What the preview item knows about itself and its window

QcPreviewCamera

View of the character preview: the figure stands at the origin and turns on the spot (dragging turns it), the camera looks at it from +Z along -Z and zooms from the whole body to the head

QcPreviewHook

Test hook –preview: fixes what every character preview shows, for reproducible screenshots (one per animation, side, zoom and gaze)

QcPreviewPacer

Frame pacing of the character preview: it draws only while it is visible and at most at its frame rate, so an open screen with a preview adds a small, bounded load and a hidden one none

QcPreviewPose::Gaze

Head angles against the body in degrees: yaw positive to the figure's right, pitch positive up

QcPreviewScene::Figure

What the preview shows of the player

QcPushBodies

Creatures whose bodies push the local player (decision E-882), as the tick core of the session knows them (QcSessionCore): the latest place and pose the server sent for each, not the interpolated past the entity mirror shows (QcClientEntities). The server pushes the player with the creatures as they stand after its last tick when their input arrives; the client's newest places are about a round trip older than that. So each creature is moved on along its last step (its move between the last two places the server sent; it sends every visible creature in every tick) for as many ticks as the input leads, at most maxLeadTicks and maxLead: for creatures that stand still the prediction pushes exactly as the server does, for walking ones it misses only by how much their step changed during the round trip

QcQuadLight

Shading, sky light and block light given to all four vertices of a quad

QcQuadSurface

Normal and material written into the surface byte of a quad's vertices (decision E-390)

QcRefusalThrottle

Reports an action the game mode refused (adventure mode, decision E-735) at most once in reportTicks ticks, so that a held button does not flood the HUD with notices

QcRenderOptions

How the world is drawn (decision E-899): the classic look or the realistic render mode (stage 45) with its quality and exposure

QcRenderOptions::Materials

Material maps of the realistic mode (decision E-908): relief from the normal maps, smoothness, metal and reflectance for the sun's highlight and the sky's reflection, light of its own (maps); with lightHighlights the moving lights also make highlights

QcRenderOptions::Shadows

Sun's shadow map (decision E-903): cascades side by side in one depth texture of resolution squared tiles, reaching distance blocks from the camera, filtered with filterTaps hardware-compared lookups (1, 4 or 9) per pixel

QcRenderOptions::Water

Water of the realistic mode (decision E-906): wave octaves of the surface's normals, how far the refraction bends the picture behind it (0: straight through), the steps of the screen-space reflections (0: sky and sun only) and the strength of the caustics on the ground under shallow water (0: none)

QcRuneScript::Legibility

How much of a clue a reader can make out: its letters (no spaces) and how many of them are readable

QcRuneScript::Sign

One character of a clue as the screen draws it: a rune (its index), or the readable character (rune -1)

QcSampleBuffer

Mono PCM audio in [-1, 1]

QcScreenChoice

Picks the screen a scripted run opens its window on (–screen / QTCRAFT_SCREEN) and places the window fully inside it

QcScreenChoice::Screen

A screen as the platform describes it

QcScreenLabel

A world label as drawn this frame: where on screen (pixels from the top left), how large and how opaque

QcSectionLight

Block and sky light of the cells of one meshed section, as the mesher saw them, for shaders that read light per cell (decision E-390; today's shaders read the light baked into the vertices)

QcServerDebugMirror

What the client knows of the server's debug data (QcMsg::ServerDebug, decision E-225): the latest message and the durations of the latest ticks for the tick graph, each tick once (a message reports the ticks up to its own; those the graph already has are skipped)

QcSessionCommand

What the session asks of its tick core (QcSessionCore), in the order it asked (decision E-560)

QcSessionCommand::Close

The connection (after the messages sent before)

QcSessionCommand::PredictBlocks

Blocks the local player's action numbered sequence is expected to set, shown in the core's block mirror too (QcBlockMirror::predict, decision E-853); sent before the action

QcSessionCommand::ResetCorrections

Forget the largest correction so far (QcPrediction::resetCorrections)

QcSessionCommand::Send

A message to the server

QcSessionCommand::SetFlight

Player's wish to fly (QcClientGameMode::setFlightWanted)

QcSessionCommand::SetIntent

Movement intent for the next ticks (already cleaned, QcPrediction::setIntent)

QcSessionCommand::Start

Sends Hello and starts ticking (TickMode::Timer) or waits for tick() (TickMode::Manual)

QcSessionCore

Part of a client session that keeps time (decision E-560): the connection to the server, the ticks on the 50 ms grid (QcTickPacer) and the local player's prediction with what it needs, its own mirror of the blocks (sharing the immutable chunks, with the player's predicted blocks, decision E-853) and of the creatures that push them (QcPushBodies, decision E-882), the game mode's wish to fly and whether the player is dead

QcSessionEvent

What the session's tick core (QcSessionCore) tells the session, in one ordered stream (decision E-560): the server's messages as they arrived and, between them, the predicted ticks and the reconciliations of the local player

QcSessionEvent::Closed

Connection closed; error is the protocol error or the transport's reason (may be empty)

QcSessionEvent::Prediction

Prediction as the core holds it now, and how far the core is with the session's commands

QcSessionEvent::Received

A message of the server (every one but PlayerState, which comes as Reconciled)

QcSessionEvent::Reconciled

Server's state of the player was applied to the prediction

QcSessionEvent::Ticked

One tick ran on the core: the player was predicted (unless dead) and the input sent

QcSessionLink

Session's side of its tick core (decision E-560): owns the core and, when it ticks on a thread of its own, that thread

QcSessionThread

Thread a session's tick core runs on (decision E-560), named "session tick"

QcShadowCascade

One cascade of the shadow map: a square box in the light's space around a sphere near the camera

QcShadowCascades::Basis

Light's axes: right and up span the shadow map, toLight points to the light

QcShadowLight

Light that casts the shadows of a frame (decision E-903): the sun by day, the moon (weaker) by night, faded out near the horizon and under clouds so that the switch between them is never seen

QcSignTextCache

Text quads of the signs of the loaded chunks (decision E-766), kept from frame to frame: a sign's quads are built again only when its text or its colour (decision E-830), its block (state) or its light changes, or when the atlas they are cut from is replaced

QcSignTextMesher::Face

Front of a sign's board: the middle of the text, the direction to the right of a reader, and the direction the front faces (up is +y)

QcSkyState

Look of the sky at a moment of the day, as a pure function of the world time: colours of the dome, where sun and moon stand, the moon's phase and how visible the stars are; how far the clouds have drifted follows the world's animation clock instead (QcSky::withCloudDrift, decision E-968)

QcSnapshotBuffer

Recent server snapshots of one entity's motion, by server time (decision E-271), and its pose at any moment between them: interpolated between the two around it, extrapolated along the last movement for at most extrapolationMs past the newest one, then held

QcSnapshotBuffer::Snapshot

Motion of the entity at one moment of server time

QcSnapshotClock

Chooses the moment of server time at which the client shows other players and creatures (decision E-271)

QcSoundBank

All sounds of the content, rendered once

QcSoundCue

A sound the client should play now: from a server SoundEvent or made by the client itself (the player's steps, jumps, mining strikes)

QcSoundSpatial

Loudness and stereo position of a sound at a world position, heard from a listener's ears

QcSoundSpatial::Listener

Where the listener's ears are and which way they look

QcSoundSpatial::Placement

How a sound is heard

QcSoundSpatial::Source

A positional sound as the engine places it: where it sounds, how loud at the source (the definition's volume times the cue's) and how far it carries (the definition's range, longer for cues louder than 1, as the server sends them)

QcSoundSynthesizer

Renders sound definitions into PCM

QcSprintLatch

Whether the player sprints, from the keys, as in the model (decision E-280): a press of the sprint key while moving forward, or a double tap of the forward key, starts a sprint, which then lasts while the forward key stays held, also after the sprint key is released

QcSpriteShape

Opaque texels of an item sprite (decisions E-831, E-991): a held or dropped item is drawn as its sprite with sides one texel thick around these texels, and the hand grips it where they say

QcSpriteShape::FormCorner

A corner of the solid form: point in the local space of a sprite one unit across (x across and centred, y up from 0 to 1, z through it and centred on 0), texture in the unit square of the picture (x from the left, y from the top)

QcSpriteShape::FormQuad

A quad of the solid form: its corners counter-clockwise seen from outside and the light of the way it faces

QcSpriteShape::Side

One side of an extruded sprite, a texel long: the opaque texel and the way its side faces

QcSpriteShapes

Shapes of item sprites in a texture atlas (decision E-831), each cut from the atlas on first use, at the atlas's own resolution up to maxTexels so that sides and picture agree (decision E-991), and kept until the atlas changes

QcStatsLog

Statistics log (decision E-225): every interval one line "STATS {json}" in the log (category qtcraft.stats), with the debug data as QcDebugJson writes it, so scripts and agents read the same numbers as the debug display

QcStickVector

A stick's deflection: x positive to the right, y positive downwards, each in [-1, 1]

QcTetherMesher::Thread

One thread: from the middle of the parent's body to the middle of the child's, with the texture

QcTethers

Which parent each child of a family is tied to on the client, from frame to frame (decision E-839; the Kjut's threads, drawn by QcTetherMesher)

QcTextureAtlas

All content textures in one image with its mip levels (decision E-300)

QcTextureAtlas::TileSource

Where the tile at an index of the layout came from (decision E-908): the index of its definition in the content's textures (-1 for the placeholder and the tiles the game draws itself) and the id of the pack that gave it ("" for the content)

QcTextureAtlasOptions

Limits and settings for building a QcTextureAtlas

QcTextureDetail::Params

How much detail a pattern gains above 16 x 16

QcTexturePack

A loaded texture pack (decision E-297): its manifest and the textures it brings, keyed by the content's texture name ("qtcraft:stone")

QcTexturePackLibrary::Entry

A pack folder found by scan()

QcTexturePackLibrary::LoadedStack

A stack as loaded, and the ids that could not be loaded

QcTexturePackLibrary::Root

A folder whose subfolders are texture packs

QcTexturePackLoader::Image

A checked PNG texture: the first frame at the pack's resolution and how many frames the file had, the frames after the first at the same size (a vertical strip animates, decision E-878)

QcTexturePackLoader::Limits

Pack must keep, checked while loading

QcTexturePackManifest

Manifest texturepack.json of a texture pack (decision E-297): what the settings show and the resolution every image of the pack must have

QcTexturePackManifest::Credit

Who made (part of) the pack, for packs with material of several authors

QcTexturePackProblem

One problem found while loading a texture pack: the file it concerns (relative to the pack, "" for the pack itself) and a message

QcTextureSources::Resolved

A texture taken from the source that gives it, with its animation

QcTextureSpec

Data description of a procedurally generated block/item texture

QcTextureStackBuild::Preview

A preview image read before, with the modification time of its file

QcTextureStackBuild::Request

What one run() is asked to do

QcTextureStackBuild::Result

What one run() produced

QcTextureSynthesizer

Generates deterministic pixel-art textures from a QcTextureSpec

QcTickPacer

Due times of the client session's ticks (decision E-560): a fixed grid of one tick interval from the start, like the server's (QcTickScheduler, E-090)

QcTickTiming

Punctuality of the client session's ticks (decision E-560): how late each tick ran against its due time on the 50 ms grid, and how many due ticks never ran

QcTickTiming::Summary

Punctuality so far

QcTidyTreeLayout::Layout

Places of a tree and its size

QcTidyTreeLayout::Place

Where a node of the tree stands

QcUiPalette::ControlPair

Text and background roles of controlPalette() that controls draw together

QcUiPalette::TextPair

A text colour over its backgrounds: layers from the world upwards (the first one lies directly on the world)

QcVirtualGamepadSource

Gamepads fed from outside (decision E-540): unit tests and the control interface (gamepadConnect, gamepadSet, ...) connect pads and set their buttons and axes; the input mapping cannot tell them from real ones

QcVirtualGamepadSource::Rumble

A vibration asked for (rumble())

QcWaterFrame

What one frame's water is drawn with

QcWaterUniforms

Std140 layout of the Water block of water.frag and water_behind.frag (decision E-906)

QcWorldMirror

World as the server sends it (part of QcClientSession, decision E-717): the content, the blocks of the loaded chunks with the local player's predicted changes on top (QcBlockMirror, decision E-853; QcClientWorld, there from the content on), what the chunks carry besides their blocks (QcChunkExtras), the world time and the weather

Detailed Description

Uses qc_common and qc_network; never a server header.