Files
mc/server/world/particle/block.go
T
TarnaWijaya 26ed99fda6
Build and deploy / Build (push) Has been cancelled
Build and deploy / Update Contributors (push) Has been cancelled
Build and deploy / Deploy (push) Has been cancelled
up3
2026-07-09 08:33:57 +08:00

100 lines
3.1 KiB
Go

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) {}