use crate::fields::slot::Slot;
use crate::fields::general::Position;
use minecraft_net_proc::{Field, VarIntEnum};
VarIntEnum!(Particle, {
AngryVillager,
Block: VarInt,
BlockMarker: VarInt,
Bubble,
Cloud,
Crit,
DamageIndicator,
DragonBreath,
DrippingLava,
FallingLava,
LandingLava,
DrippingWater,
FallingWater,
Dust: Dust,
DustColorTransition: DustColorTransition,
Effect,
ElderGuardian,
EnchantedHit,
Enchant,
EndRod,
EntityEffect: Int,
ExplosionEmitter,
Explosion,
Gust,
SmallGust,
GustEmitterLarge,
GustEmitterSmall,
SonicBoom,
FallingDust: VarInt,
Firework,
Fishing,
Flame,
Infested,
CherryLeaves,
PaleOakLeaves,
SculkSoul,
SculkCharge: Float,
SculkChargePop,
SoulFireFlame,
Soul,
Flash,
HappyVillager,
Composter,
Heart,
InstantEffect,
Item: Slot,
Vibration: Vibration,
Trail: Trail,
ItemSlime,
ItemCobweb,
ItemSnowball,
LargeSmoke,
Lava,
Mycelium,
Note,
Poof,
Portal,
Rain,
Smoke,
WhiteSmoke,
Sneeze,
Spit,
SquidInk,
SweeepAttack,
TotemOfUndying,
Underwater,
Splash,
Witch,
BubblePop,
CurrentDown,
BubbleColumnUp,
Nautilus,
Dolphin,
CampfireCosySmoke,
CampfireSignalSmoke,
DrippingHoney,
FallingHoney,
LandingHoney,
FallingNectar,
FallingSporeBlossom,
Ash,
CrimsonSpore,
WarpedSpore,
SporeBlossomAir,
DrippingObsidianTear,
FallingObsidianTear,
LandingObsidianTear,
ReversePortal,
WhiteAsh,
SmallFlame,
Snowflake,
DrippingDripstoneLava,
FallingDripstoneLava,
DrippingDripstoneWater,
FallingDripstoneWater,
GlowSquidInk,
Glow,
WaxOn,
WaxOff,
ElectricSpark,
Scrape,
Shriek: VarInt,
EggCrack,
DustPlume,
TrialSpawnerDetection,
TrialSpawnerDetectionOminous,
VaultConnection,
DustPillar,
OminousSpawning,
RaidOmen,
TrialOmen,
BlockCrumble: VarInt,
});
Field!(Dust, {
color: Int,
scale: Float,
});
Field!(DustColorTransition, {
from_color: Int,
to_color: Int,
scale: Float,
});
Field!(Vibration, {
position_source_type: VarInt,
block_position: Position,
entity_id: VarInt,
entity_eye_height: Float,
ticks: VarInt,
});
Field!(Trail, {
x: Double,
y: Double,
z: Double,
color: Int,
duration: VarInt,
});