MCPcopy Create free account
hub / github.com/cuberite/cuberite / DropBlock

Method DropBlock

src/Blocks/BlockHandler.cpp:352–377  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

350
351
352void cBlockHandler::DropBlock(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cBlockPluginInterface & a_BlockPluginInterface, cEntity * a_Digger, int a_BlockX, int a_BlockY, int a_BlockZ)
353{
354 cItems Pickups;
355 NIBBLETYPE Meta = a_ChunkInterface.GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ);
356 ConvertToPickups(Pickups, Meta);
357
358 // Allow plugins to modify the pickups:
359 a_BlockPluginInterface.CallHookBlockToPickups(a_Digger, a_BlockX, a_BlockY, a_BlockZ, m_BlockType, Meta, Pickups);
360
361 if (!Pickups.empty())
362 {
363 MTRand r1;
364
365 // Mid-block position first
366 double MicroX, MicroY, MicroZ;
367 MicroX = a_BlockX + 0.5;
368 MicroY = a_BlockY + 0.5;
369 MicroZ = a_BlockZ + 0.5;
370
371 // Add random offset second
372 MicroX += r1.rand(1) - 0.5;
373 MicroZ += r1.rand(1) - 0.5;
374
375 a_WorldInterface.SpawnItemPickups(Pickups, MicroX, MicroY, MicroZ);
376 }
377}
378
379
380

Callers 6

ExtendPistonMethod · 0.45
SpreadToNeighborMethod · 0.45
PlaceFluidMethod · 0.45
OnBlockDestroyedMethod · 0.45
OnDiggingBlockMethod · 0.45

Calls 5

emptyMethod · 0.80
randMethod · 0.80
SpawnItemPickupsMethod · 0.80
GetBlockMetaMethod · 0.45

Tested by

no test coverage detected