QtCraft API C++ classes QML types Handbook

QcBlockSimulation Class

The per-tick block simulation of the server: queued neighbour updates (connections, lost support, starting falls through QcServerFallingBlocks, fire that lost its place going out) and liquid flow. More...

Header: #include <server/blocks/QcBlockSimulation.h>

Public Functions

void processBlockUpdates()
void processLiquids()
void setIgnition(QcFireIgnition *ignition)

Static Public Members

const int maxBlockUpdatesPerTick

Detailed Description

Member Function Documentation

void QcBlockSimulation::processBlockUpdates()

Re-derives connections and breaks blocks that lost their support, within the tick budget. Positions in unloaded chunks wait until the chunk loads again.

void QcBlockSimulation::processLiquids()

Runs the due flow steps of liquids within their budget (decision E-054).

void QcBlockSimulation::setIgnition(QcFireIgnition *ignition)

Sets ignition, with which lava that gets a block update may light fire next to it (decision E-393).

Member Variable Documentation

const int QcBlockSimulation::maxBlockUpdatesPerTick

Neighbour updates (connections, lost support) processed per tick at most by default (QcServerLimits::blockUpdatesPerTick); the rest waits for the next tick, so a long chain of falling torches never stalls the server. Updates caused by players go first; those of commands (/fill) and their cascades use what is left.