100 lines
3.1 KiB
Go
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) {}
|