390 throw std::runtime_error(
"Unable to create particle with id: " + std::to_string(
static_cast<int>(particle_type_)) +
".");
396#if PROTOCOL_VERSION > 392
399#if PROTOCOL_VERSION > 756
402#if PROTOCOL_VERSION > 765
405#if PROTOCOL_VERSION > 767
408 Option = std::make_shared<BlockParticleOption>();
411 Option = std::make_shared<DustParticleOption>();
414 Option = std::make_shared<ItemParticleOption>();
416#if PROTOCOL_VERSION > 754
418 Option = std::make_shared<DustColorTransitionOption>();
421 Option = std::make_shared<VibrationParticleOption>();
424#if PROTOCOL_VERSION > 758
426 Option = std::make_shared<SculkChargeParticleOption>();
429 Option = std::make_shared<ShriekParticleOption>();
432#if PROTOCOL_VERSION > 765
434#if PROTOCOL_VERSION > 769
437#if PROTOCOL_VERSION > 772
440 Option = std::make_shared<ColorParticleOption>();
443#if PROTOCOL_VERSION > 767
445 Option = std::make_shared<TrailParticleOption>();
448#if PROTOCOL_VERSION > 772
450 Option = std::make_shared<PowerParticleOption>();
454 Option = std::make_shared<SpellParticleOption>();
457#if PROTOCOL_VERSION > 775
460 Option = std::make_shared<GeyserBaseParticleOptions>();
464 Option = std::make_shared<GeyserParticleOptions>();
468 case ParticleType::Blockcrack:
469 case ParticleType::Blockdust:
471 Option = std::make_shared<BlockParticleOption>();
473 case ParticleType::Iconcrack:
474 Option = std::make_shared<IconcrackParticleOption>();
478 Option = std::make_shared<EmptyParticleOption>();
Particle & SetParticleType(const ProtocolCraft::ParticleType particle_type_)
std::string_view GetName() const