Cuberite
A lightweight, fast and extensible game server for Minecraft
Namespaces | Functions | Variables
Explodinator.cpp File Reference
#include "Globals.h"
#include "BlockInfo.h"
#include "Explodinator.h"
#include "Blocks/BlockHandler.h"
#include "Blocks/ChunkInterface.h"
#include "Chunk.h"
#include "ClientHandle.h"
#include "Entities/FallingBlock.h"
#include "LineBlockTracer.h"
#include "Simulator/SandSimulator.h"
Include dependency graph for Explodinator.cpp:

Go to the source code of this file.

Namespaces

 Explodinator
 

Functions

static Vector3f Explodinator::AbsoluteToRelative (const Vector3f a_Position, const cChunkCoords a_ChunkPosition)
 Converts an absolute floating-point Position into a Chunk-relative one. More...
 
static bool Explodinator::BlockAlwaysDrops (const BLOCKTYPE a_Block)
 Returns true if block should always drop when exploded. More...
 
static float Explodinator::CalculateEntityExposure (const cChunk &a_Chunk, const cEntity &a_Entity, const Vector3f a_Position, const int a_SquareRadius)
 Calculates the approximate percentage of an Entity's bounding box that is exposed to an explosion centred at Position. More...
 
static void Explodinator::DamageBlocks (cChunk &a_Chunk, const Vector3f a_Position, const int a_Power, const bool a_Fiery, const cEntity *const a_ExplodingEntity)
 Sends out Explosion Lazors (tm) originating from the given position that destroy blocks. More...
 
static void Explodinator::DamageEntities (const cChunk &a_Chunk, const Vector3f a_Position, const int a_Power)
 Applies distance-based damage and knockback to all entities within the explosion's effect range. More...
 
static void Explodinator::DestroyBlock (cChunk &a_Chunk, const Vector3i a_Position, const int a_Power, const bool a_Fiery, const cEntity *const a_ExplodingEntity)
 Work out what should happen when an explosion destroys the given block. More...
 
static void Explodinator::DestructionTrace (cChunk *a_Chunk, Vector3f a_Origin, const Vector3f a_Direction, const int a_Power, const bool a_Fiery, float a_Intensity, const cEntity *const a_ExplodingEntity)
 Traces the path taken by one Explosion Lazor (tm) with given direction and intensity, that will destroy blocks until it is exhausted. More...
 
static float Explodinator::GetExplosionAbsorption (const BLOCKTYPE Block)
 Returns how much of an explosion Destruction Lazor's (tm) intensity the given block attenuates. More...
 
void Explodinator::Kaboom (cWorld &World, Vector3f Position, int Power, bool Fiery, const cEntity *a_ExplodingEntity)
 Creates an explosion of Power, centred at Position, with ability to set fires as provided. More...
 
static void Explodinator::LagTheClient (cChunk &a_Chunk, const Vector3f a_Position, const int a_Power)
 Sends an explosion packet to all clients in the given chunk. More...
 
static float Explodinator::RandomIntensity (MTRand &a_Random, const int a_Power)
 Returns a random intensity for an Explosion Lazor (tm) as a function of the explosion's power. More...
 
static Vector3f Explodinator::RebaseRelativePosition (const cChunkCoords a_From, const cChunkCoords a_To, const Vector3f a_Position)
 Make a From Chunk-relative Position into a To Chunk-relative position. More...
 
static void Explodinator::SetBlock (cWorld &a_World, cChunk &a_Chunk, const Vector3i a_AbsolutePosition, const Vector3i a_RelativePosition, const BLOCKTYPE a_DestroyedBlock, const BLOCKTYPE a_NewBlock, const cEntity *const a_ExplodingEntity)
 Sets the block at the given position, updating surroundings. More...
 

Variables

static const auto Explodinator::BoundingBoxStepUnit = 0.5
 
static const auto Explodinator::KnockbackFactor = 25U
 
static const auto Explodinator::StepAttenuation = 0.225f
 
static const auto Explodinator::StepUnit = 0.3f
 
static const auto Explodinator::TraceCubeSideLength = 16U