SculkSpreader 5.46.0
Spreads sculk from a sculk catalyst with the experience of the mobs dying near it: port of Java's SculkSpreader (level spreader), its charge cursors and the sculk behaviours of sculk, sculk veins and other blocks (SculkBlock, SculkVeinBlock, SculkBehaviour.DEFAULT), including the sculk vein MultifaceSpreader.
Differences: sculk veins are not waterlogged on the server, so the spread skips water; random numbers come from mt_rand() instead of the level's random source.
Constants
ADDITIONAL_DECAY_RATE
public const ADDITIONAL_DECAY_RATE = 5CHARGE_DECAY_RATE
public const CHARGE_DECAY_RATE = 10GROWTH_SPAWN_COST
public const GROWTH_SPAWN_COST = 10MAX_CHARGE
public const MAX_CHARGE = 1000MAX_CURSORS
public const MAX_CURSORS = 32MAX_CURSOR_DISTANCE
public const MAX_CURSOR_DISTANCE = 1024MAX_GROWTH_RATE_RADIUS
public const MAX_GROWTH_RATE_RADIUS = 24NO_GROWTH_RADIUS
public const NO_GROWTH_RADIUS = 4SHRIEKER_PLACEMENT_RATE
public const SHRIEKER_PLACEMENT_RATE = 11Methods
addCursors()
public function addCursors(int $x, int $y, int $z, int $charge) : voidAdds charge cursors at the given position: one per 1000 charge, at most 32 cursors in total.
clear()
public function clear() : voidgetCursors()
public function getCursors() : arrayhasCursors()
public function hasCursors() : boolisSculkReplaceable()
public static function isSculkReplaceable(\pocketmine\block\Block $block) : boolBlocks that sculk veins turn into sculk (Java tag sculk_replaceable).
updateCursors()
public function updateCursors(\pocketmine\world\World $world, int $ox, int $oy, int $oz) : voidMoves every cursor one step (Java SculkSpreader.updateCursors() with spreadVeins = true); called every tick by the catalyst at the given origin. Cursors on the same block are merged.
