385 throw std::runtime_error(
"Unable to create particle with id: " + std::to_string(
static_cast<int>(particle_type_)) +
".");
391#if PROTOCOL_VERSION > 392
394#if PROTOCOL_VERSION > 756
397#if PROTOCOL_VERSION > 765
400#if PROTOCOL_VERSION > 767
403 Option = std::make_shared<BlockParticleOption>();
406 Option = std::make_shared<DustParticleOption>();
409 Option = std::make_shared<ItemParticleOption>();
411#if PROTOCOL_VERSION > 754
413 Option = std::make_shared<DustColorTransitionOption>();
416 Option = std::make_shared<VibrationParticleOption>();
419#if PROTOCOL_VERSION > 758
421 Option = std::make_shared<SculkChargeParticleOption>();
424 Option = std::make_shared<ShriekParticleOption>();
427#if PROTOCOL_VERSION > 765
429#if PROTOCOL_VERSION > 769
432#if PROTOCOL_VERSION > 772
435 Option = std::make_shared<ColorParticleOption>();
438#if PROTOCOL_VERSION > 767
440 Option = std::make_shared<TrailParticleOption>();
443#if PROTOCOL_VERSION > 772
445 Option = std::make_shared<PowerParticleOption>();
449 Option = std::make_shared<SpellParticleOption>();
452#if PROTOCOL_VERSION > 775
455 Option = std::make_shared<GeyserBaseParticleOptions>();
459 Option = std::make_shared<GeyserParticleOptions>();
463 case ParticleType::Blockcrack:
464 case ParticleType::Blockdust:
466 Option = std::make_shared<BlockParticleOption>();
468 case ParticleType::Iconcrack:
469 Option = std::make_shared<IconcrackParticleOption>();
473 Option = std::make_shared<EmptyParticleOption>();
Particle & SetParticleType(const ProtocolCraft::ParticleType particle_type_)
std::string_view GetName() const