package particle import ( "image/color" "github.com/df-mc/dragonfly/server/block/cube" "github.com/df-mc/dragonfly/server/world" "github.com/df-mc/dragonfly/server/world/sound" "github.com/go-gl/mathgl/mgl64" ) // Flame is a particle shown around torches. It can have any colour specified with the Colour field. // If the colour is not specified, it will default to the normal flame particle. type Flame struct { particle // Colour is the colour of the Flame particle. Colour color.RGBA } // Dust is a particle shown for redstone. It can have any colour specified with the Colour field. // If the colour is not specified, it will default to black. type Dust struct { particle // Colour is the colour of the Dust particle. Colour color.RGBA } // BlockBreak is a particle sent when a block is broken. It represents a bunch of particles that are textured // like the block that the particle holds. type BlockBreak struct { particle // Block is the block of which particles should be shown. The particles will change depending on what // block is held. Block world.Block } // PunchBlock is a particle shown when a player is punching a block. It shows particles of a specific block // type at a particular face of a block. type PunchBlock struct { particle // Block is the block of which particles should be shown. The particles will change depending on what // block is punched. Block world.Block // Face is the face of the block that was punched. It is here that the particles will be shown. Face cube.Face } // BlockForceField is a particle that shows up as a block that turns invisible from an opaque black colour. type BlockForceField struct{ particle } // BoneMeal is a particle that shows up on bone meal usage. type BoneMeal struct { particle // Area specifies whether the particle effect should be for area. If false, // a small burst is used for minor growth. If true, a large burst is used // for significant growth. Area bool } // Note is a particle that shows up on note block interactions. type Note struct { particle // Instrument is the instrument of the note block. Instrument sound.Instrument // Pitch is the pitch of the note. Pitch int } // DragonEggTeleport is a particle that shows up when a dragon egg teleports. type DragonEggTeleport struct { particle // Diff is a Position with the values being the difference from the original position to the new position. Diff cube.Pos } // Evaporate is a particle that shows up when a water block evaporates type Evaporate struct{ particle } // WaterDrip is a particle that shows up when there is water above a block and it looks like a dripping effect. type WaterDrip struct{ particle } // LavaDrip is a particle that shows up when there is lava above a block and it looks like a dripping effect. type LavaDrip struct{ particle } // Lava is a particle that shows up randomly above lava. type Lava struct{ particle } // DustPlume is a particle that shows up when an item is successfully inserted into a decorated pot. type DustPlume struct{ particle } // particle serves as a base for all particles in this package. type particle struct{} // Spawn ... func (particle) Spawn(*world.World, mgl64.Vec3) {}