Documentation ¶
Index ¶
- func DirectionVector(e world.Entity) mgl64.Vec3
- func EyePosition(e world.Entity) mgl64.Vec3
- func Facing(e world.Entity) cube.Direction
- type Arrow
- func (a *Arrow) BBox() cube.BBox
- func (a *Arrow) BaseDamage() float64
- func (t *Arrow) Close() error
- func (a *Arrow) CollisionPos() (cube.Pos, bool)
- func (a *Arrow) Critical() bool
- func (a *Arrow) DecodeNBT(data map[string]any) any
- func (a *Arrow) DisallowPickup()
- func (a *Arrow) EncodeEntity() string
- func (a *Arrow) EncodeNBT() map[string]any
- func (a *Arrow) Name() string
- func (a *Arrow) New(pos, vel mgl64.Vec3, yaw, pitch float64, owner world.Entity, ...) world.Entity
- func (a *Arrow) Owner() world.Entity
- func (t *Arrow) Position() mgl64.Vec3
- func (a *Arrow) Rotation() (float64, float64)
- func (a *Arrow) SetBaseDamage(baseDamage float64)
- func (a *Arrow) SetCritical()
- func (t *Arrow) SetVelocity(v mgl64.Vec3)
- func (a *Arrow) Tick(w *world.World, current int64)
- func (a *Arrow) Tip() potion.Potion
- func (a *Arrow) VanishOnPickup()
- func (t *Arrow) Velocity() mgl64.Vec3
- func (t *Arrow) World() *world.World
- type ArrowShakeAction
- type Collector
- type CriticalHitAction
- type DeathAction
- type EatAction
- type EffectManager
- type EnderPearl
- func (e *EnderPearl) BBox() cube.BBox
- func (t *EnderPearl) Close() error
- func (e *EnderPearl) DecodeNBT(data map[string]any) any
- func (e *EnderPearl) EncodeEntity() string
- func (e *EnderPearl) EncodeNBT() map[string]any
- func (e *EnderPearl) Name() string
- func (e *EnderPearl) New(pos, vel mgl64.Vec3, yaw, pitch float64) world.Entity
- func (e *EnderPearl) Own(owner world.Entity)
- func (e *EnderPearl) Owner() world.Entity
- func (t *EnderPearl) Position() mgl64.Vec3
- func (e *EnderPearl) Rotation() (float64, float64)
- func (t *EnderPearl) SetVelocity(v mgl64.Vec3)
- func (e *EnderPearl) Tick(w *world.World, current int64)
- func (t *EnderPearl) Velocity() mgl64.Vec3
- func (t *EnderPearl) World() *world.World
- type ExperienceManager
- func (e *ExperienceManager) Add(amount int) (level int, progress float64)
- func (e *ExperienceManager) Experience() int
- func (e *ExperienceManager) Level() int
- func (e *ExperienceManager) Progress() float64
- func (e *ExperienceManager) Remove(amount int) (level int, progress float64)
- func (e *ExperienceManager) Reset()
- func (e *ExperienceManager) SetLevel(level int)
- func (e *ExperienceManager) SetProgress(progress float64)
- type ExperienceOrb
- func (*ExperienceOrb) BBox() cube.BBox
- func (t *ExperienceOrb) Close() error
- func (e *ExperienceOrb) DecodeNBT(data map[string]any) any
- func (*ExperienceOrb) EncodeEntity() string
- func (e *ExperienceOrb) EncodeNBT() map[string]any
- func (e *ExperienceOrb) Experience() int
- func (*ExperienceOrb) Name() string
- func (t *ExperienceOrb) Position() mgl64.Vec3
- func (t *ExperienceOrb) Rotation() (float64, float64)
- func (t *ExperienceOrb) SetVelocity(v mgl64.Vec3)
- func (e *ExperienceOrb) Tick(w *world.World, current int64)
- func (t *ExperienceOrb) Velocity() mgl64.Vec3
- func (t *ExperienceOrb) World() *world.World
- type Eyed
- type FallingBlock
- func (f *FallingBlock) BBox() cube.BBox
- func (f *FallingBlock) Block() world.Block
- func (t *FallingBlock) Close() error
- func (f *FallingBlock) DecodeNBT(data map[string]any) any
- func (f *FallingBlock) EncodeEntity() string
- func (f *FallingBlock) EncodeNBT() map[string]any
- func (f *FallingBlock) Name() string
- func (t *FallingBlock) Position() mgl64.Vec3
- func (t *FallingBlock) Rotation() (float64, float64)
- func (t *FallingBlock) SetVelocity(v mgl64.Vec3)
- func (f *FallingBlock) Tick(w *world.World, _ int64)
- func (t *FallingBlock) Velocity() mgl64.Vec3
- func (t *FallingBlock) World() *world.World
- type Flammable
- type HealthManager
- type HurtAction
- type Item
- func (it *Item) BBox() cube.BBox
- func (t *Item) Close() error
- func (it *Item) DecodeNBT(data map[string]any) any
- func (it *Item) EncodeEntity() string
- func (it *Item) EncodeNBT() map[string]any
- func (it *Item) Item() item.Stack
- func (it *Item) Name() string
- func (t *Item) Position() mgl64.Vec3
- func (t *Item) Rotation() (float64, float64)
- func (it *Item) SetPickupDelay(d time.Duration)
- func (t *Item) SetVelocity(v mgl64.Vec3)
- func (it *Item) Tick(w *world.World, current int64)
- func (t *Item) Velocity() mgl64.Vec3
- func (t *Item) World() *world.World
- type Lightning
- func (Lightning) BBox() cube.BBox
- func (li *Lightning) Close() error
- func (li *Lightning) DecodeNBT(map[string]any) any
- func (li *Lightning) EncodeEntity() string
- func (li *Lightning) EncodeNBT() map[string]any
- func (li *Lightning) Name() string
- func (li *Lightning) New(pos mgl64.Vec3) world.Entity
- func (Lightning) OnGround() bool
- func (li *Lightning) Position() mgl64.Vec3
- func (li *Lightning) Rotation() (yaw, pitch float64)
- func (li *Lightning) Tick(w *world.World, _ int64)
- func (li *Lightning) World() *world.World
- type Living
- type Movement
- type MovementComputer
- type PickedUpAction
- type ProjectileComputer
- type Snowball
- func (s *Snowball) BBox() cube.BBox
- func (t *Snowball) Close() error
- func (s *Snowball) DecodeNBT(data map[string]any) any
- func (s *Snowball) EncodeEntity() string
- func (s *Snowball) EncodeNBT() map[string]any
- func (s *Snowball) Name() string
- func (s *Snowball) New(pos, vel mgl64.Vec3, yaw, pitch float64) world.Entity
- func (s *Snowball) Own(owner world.Entity)
- func (s *Snowball) Owner() world.Entity
- func (t *Snowball) Position() mgl64.Vec3
- func (s *Snowball) Rotation() (float64, float64)
- func (t *Snowball) SetVelocity(v mgl64.Vec3)
- func (s *Snowball) Tick(w *world.World, current int64)
- func (t *Snowball) Velocity() mgl64.Vec3
- func (t *Snowball) World() *world.World
- type Solidifiable
- type SplashPotion
- func (s *SplashPotion) BBox() cube.BBox
- func (t *SplashPotion) Close() error
- func (s *SplashPotion) DecodeNBT(data map[string]any) any
- func (s *SplashPotion) EncodeEntity() string
- func (s *SplashPotion) EncodeNBT() map[string]any
- func (s *SplashPotion) Name() string
- func (s *SplashPotion) New(pos, vel mgl64.Vec3, yaw, pitch float64, t potion.Potion) world.Entity
- func (s *SplashPotion) Own(owner world.Entity)
- func (s *SplashPotion) Owner() world.Entity
- func (t *SplashPotion) Position() mgl64.Vec3
- func (s *SplashPotion) Rotation() (float64, float64)
- func (t *SplashPotion) SetVelocity(v mgl64.Vec3)
- func (s *SplashPotion) Tick(w *world.World, current int64)
- func (s *SplashPotion) Type() potion.Potion
- func (t *SplashPotion) Velocity() mgl64.Vec3
- func (t *SplashPotion) World() *world.World
- type SwingArmAction
- type Text
- func (t *Text) BBox() cube.BBox
- func (t *Text) Close() error
- func (t *Text) DecodeNBT(data map[string]any) any
- func (t *Text) EncodeEntity() string
- func (t *Text) EncodeNBT() map[string]any
- func (t *Text) Immobile() bool
- func (t *Text) Name() string
- func (t *Text) NameTag() string
- func (t *Text) Position() mgl64.Vec3
- func (t *Text) Rotation() (float64, float64)
- func (t *Text) SetText(text string)
- func (t *Text) SetVelocity(v mgl64.Vec3)
- func (t *Text) Text() string
- func (t *Text) Velocity() mgl64.Vec3
- func (t *Text) World() *world.World
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DirectionVector ¶
DirectionVector returns a vector that describes the direction of the entity passed. The length of the Vec3 returned is always 1.
func EyePosition ¶
EyePosition returns the position of the eyes of the entity if the entity implements entity.Eyed, or the actual position if it doesn't.
Types ¶
type Arrow ¶ added in v0.6.0
type Arrow struct {
// contains filtered or unexported fields
}
Arrow is used as ammunition for bows, crossbows, and dispensers. Arrows can be modified to imbue status effects on players and mobs.
func NewArrow ¶ added in v0.6.0
NewArrow creates a new Arrow and returns it. It is equivalent to calling NewTippedArrow with `potion.Potion{}` as tip.
func NewTippedArrow ¶ added in v0.6.0
func NewTippedArrow(pos mgl64.Vec3, yaw, pitch float64, owner world.Entity, tip potion.Potion) *Arrow
NewTippedArrow creates a new Arrow with a potion effect added to an entity when hit. The Arrow's base damage may be changed by calling Arrow.SetBaseDamage. It is 2.0 by default.
func (*Arrow) BaseDamage ¶ added in v0.6.0
BaseDamage returns the base damage the arrow will deal, before accounting for velocity.
func (*Arrow) Close ¶ added in v0.6.0
func (t *Arrow) Close() error
Close closes the transform and removes the associated entity from the world.
func (*Arrow) CollisionPos ¶ added in v0.6.0
CollisionPos returns the position of the block the arrow collided with. If the arrow has not collided with any blocks, it returns false for it's second parameter.
func (*Arrow) Critical ¶ added in v0.6.0
Critical returns the critical state of the arrow, which can result in more damage and extra particles while in air.
func (*Arrow) DecodeNBT ¶ added in v0.6.0
DecodeNBT decodes the properties in a map to an Arrow and returns a new Arrow entity.
func (*Arrow) DisallowPickup ¶ added in v0.6.0
func (a *Arrow) DisallowPickup()
DisallowPickup prevents the Arrow from being picked up by any entity.
func (*Arrow) EncodeNBT ¶ added in v0.6.0
EncodeNBT encodes the Arrow entity's properties as a map and returns it.
func (*Arrow) New ¶ added in v0.6.0
func (a *Arrow) New(pos, vel mgl64.Vec3, yaw, pitch float64, owner world.Entity, critical, disallowPickup, obtainArrowOnPickup bool, tip potion.Potion) world.Entity
New creates and returns an Arrow with the position, velocity, yaw, and pitch provided. It doesn't spawn the Arrow by itself.
func (*Arrow) Owner ¶ added in v0.6.0
Owner returns the world.Entity that fired the Arrow, or nil if it did not have any.
func (*Arrow) SetBaseDamage ¶ added in v0.6.0
SetBaseDamage sets the base damage the arrow will deal, before accounting for velocity.
func (*Arrow) SetCritical ¶ added in v0.6.0
func (a *Arrow) SetCritical()
SetCritical sets the critical state of the arrow to true, which can result in more damage and extra particles while in air.
func (*Arrow) SetVelocity ¶ added in v0.6.0
SetVelocity sets the velocity of the entity. The values in the Vec3 passed represent the speed on that axis in blocks/tick.
func (*Arrow) Tip ¶ added in v0.6.0
Tip returns the potion effect at the tip of the arrow, applied on impact to an entity. This also causes the arrow to show effect particles until it is removed.
func (*Arrow) VanishOnPickup ¶ added in v0.6.0
func (a *Arrow) VanishOnPickup()
VanishOnPickup makes the Arrow vanish on pickup, giving the entity that picked it up no arrow item.
type ArrowShakeAction ¶ added in v0.6.0
type ArrowShakeAction struct { // Duration is the duration of the shake. Duration time.Duration // contains filtered or unexported fields }
ArrowShakeAction makes an arrow entity display a shaking animation for the given duration.
func (ArrowShakeAction) EntityAction ¶ added in v0.6.0
func (ArrowShakeAction) EntityAction()
type Collector ¶
type Collector interface { world.Entity // Collect collects the stack passed. It is called if the Collector is standing near an item entity that // may be picked up. // The count of items collected from the stack n is returned. Collect(stack item.Stack) (n int) // GameMode returns the gamemode of the collector. GameMode() world.GameMode }
Collector represents an entity in the world that is able to collect an item, typically an entity such as a player or a zombie.
type CriticalHitAction ¶ added in v0.6.0
type CriticalHitAction struct {
// contains filtered or unexported fields
}
CriticalHitAction is a world.EntityAction that makes an entity display critical hit particles. This will show stars around the entity.
func (CriticalHitAction) EntityAction ¶ added in v0.6.0
func (CriticalHitAction) EntityAction()
type DeathAction ¶ added in v0.6.0
type DeathAction struct {
// contains filtered or unexported fields
}
DeathAction is a world.EntityAction that makes an entity display the death animation. After this animation, the entity disappears from viewers watching it.
func (DeathAction) EntityAction ¶ added in v0.6.0
func (DeathAction) EntityAction()
type EatAction ¶ added in v0.6.0
type EatAction struct {
// contains filtered or unexported fields
}
EatAction is a world.EntityAction that makes an entity display the eating particles at its mouth to viewers with the item in its hand being eaten.
func (EatAction) EntityAction ¶ added in v0.6.0
func (EatAction) EntityAction()
type EffectManager ¶
type EffectManager struct {
// contains filtered or unexported fields
}
EffectManager manages the effects of an entity. The effect manager will only store effects that last for a specific duration. Instant effects are applied instantly and not stored.
func NewEffectManager ¶
func NewEffectManager() *EffectManager
NewEffectManager creates and returns a new initialised EffectManager.
func (*EffectManager) Add ¶
Add adds an effect to the manager. If the effect is instant, it is applied to the Living entity passed immediately. If not, the effect is added to the EffectManager and is applied to the entity every time the Tick method is called. Effect levels of 0 or below will not do anything. Effect returns the final effect it added to the entity. That might be the effect passed or an effect with a higher level/duration than the one passed. Add panics if the effect has a negative duration or level.
func (*EffectManager) Effect ¶ added in v0.5.0
Effect returns the effect instance and true if the entity has the effect. If not found, it will return an empty effect instance and false.
func (*EffectManager) Effects ¶
func (m *EffectManager) Effects() []effect.Effect
Effects returns a list of all effects currently present in the effect manager. This will never include effects that have expired.
func (*EffectManager) Remove ¶
func (m *EffectManager) Remove(e effect.Type, entity Living)
Remove removes any Effect present in the EffectManager with the type of the effect passed.
func (*EffectManager) Tick ¶
func (m *EffectManager) Tick(entity Living)
Tick ticks the EffectManager, applying all of its effects to the Living entity passed when applicable and removing expired effects.
type EnderPearl ¶ added in v0.5.0
type EnderPearl struct {
// contains filtered or unexported fields
}
EnderPearl is a smooth, greenish-blue item used to teleport and to make an eye of ender.
func NewEnderPearl ¶ added in v0.5.0
NewEnderPearl ...
func (*EnderPearl) Close ¶ added in v0.5.0
func (t *EnderPearl) Close() error
Close closes the transform and removes the associated entity from the world.
func (*EnderPearl) DecodeNBT ¶ added in v0.5.0
func (e *EnderPearl) DecodeNBT(data map[string]any) any
DecodeNBT decodes the properties in a map to a EnderPearl and returns a new EnderPearl entity.
func (*EnderPearl) EncodeEntity ¶ added in v0.5.0
func (e *EnderPearl) EncodeEntity() string
EncodeEntity ...
func (*EnderPearl) EncodeNBT ¶ added in v0.5.0
func (e *EnderPearl) EncodeNBT() map[string]any
EncodeNBT encodes the EnderPearl entity's properties as a map and returns it.
func (*EnderPearl) New ¶ added in v0.5.0
New creates an ender pearl with the position, velocity, yaw, and pitch provided. It doesn't spawn the ender pearl, only returns it.
func (*EnderPearl) Rotation ¶ added in v0.5.0
func (e *EnderPearl) Rotation() (float64, float64)
Rotation ...
func (*EnderPearl) SetVelocity ¶ added in v0.5.0
SetVelocity sets the velocity of the entity. The values in the Vec3 passed represent the speed on that axis in blocks/tick.
func (*EnderPearl) Tick ¶ added in v0.5.0
func (e *EnderPearl) Tick(w *world.World, current int64)
Tick ...
type ExperienceManager ¶ added in v0.7.0
type ExperienceManager struct {
// contains filtered or unexported fields
}
ExperienceManager manages experience and levels for entities, and provides functions to add, remove, and calculate experience needed for upcoming levels.
func NewExperienceManager ¶ added in v0.7.0
func NewExperienceManager() *ExperienceManager
NewExperienceManager returns a new ExperienceManager with no experience.
func (*ExperienceManager) Add ¶ added in v0.7.0
func (e *ExperienceManager) Add(amount int) (level int, progress float64)
Add adds experience to the total experience and recalculates the level and progress if necessary.
func (*ExperienceManager) Experience ¶ added in v0.7.0
func (e *ExperienceManager) Experience() int
Experience returns the amount of experience the manager currently has.
func (*ExperienceManager) Level ¶ added in v0.7.0
func (e *ExperienceManager) Level() int
Level returns the current experience level.
func (*ExperienceManager) Progress ¶ added in v0.7.0
func (e *ExperienceManager) Progress() float64
Progress returns the progress towards the next level.
func (*ExperienceManager) Remove ¶ added in v0.7.0
func (e *ExperienceManager) Remove(amount int) (level int, progress float64)
Remove removes experience from the total experience and recalculates the level and progress if necessary.
func (*ExperienceManager) Reset ¶ added in v0.7.0
func (e *ExperienceManager) Reset()
Reset resets the total experience, level, and progress of the manager to zero.
func (*ExperienceManager) SetLevel ¶ added in v0.7.0
func (e *ExperienceManager) SetLevel(level int)
SetLevel sets the level of the manager.
func (*ExperienceManager) SetProgress ¶ added in v0.7.0
func (e *ExperienceManager) SetProgress(progress float64)
SetProgress sets the progress of the manager.
type ExperienceOrb ¶ added in v0.7.0
type ExperienceOrb struct {
// contains filtered or unexported fields
}
ExperienceOrb is an entity that carries a varying amount of experience. These can be collected by nearby players, and are then added to the player's own experience.
func NewExperienceOrb ¶ added in v0.7.0
func NewExperienceOrb(pos mgl64.Vec3, xp int) *ExperienceOrb
NewExperienceOrb creates a new experience orb and returns it.
func NewExperienceOrbs ¶ added in v0.7.0
func NewExperienceOrbs(pos mgl64.Vec3, amount int) (orbs []*ExperienceOrb)
NewExperienceOrbs takes in a position and an amount and automatically splits the amount into multiple orbs, returning a slice of the created orbs.
func (*ExperienceOrb) Close ¶ added in v0.7.0
func (t *ExperienceOrb) Close() error
Close closes the transform and removes the associated entity from the world.
func (*ExperienceOrb) DecodeNBT ¶ added in v0.7.0
func (e *ExperienceOrb) DecodeNBT(data map[string]any) any
DecodeNBT decodes the properties in a map to an Item and returns a new Item entity.
func (*ExperienceOrb) EncodeEntity ¶ added in v0.7.0
func (*ExperienceOrb) EncodeEntity() string
EncodeEntity ...
func (*ExperienceOrb) EncodeNBT ¶ added in v0.7.0
func (e *ExperienceOrb) EncodeNBT() map[string]any
EncodeNBT encodes the Item entity's properties as a map and returns it.
func (*ExperienceOrb) Experience ¶ added in v0.7.0
func (e *ExperienceOrb) Experience() int
Experience returns the amount of experience the orb carries.
func (*ExperienceOrb) Position ¶ added in v0.7.0
Position returns the current position of the entity.
func (*ExperienceOrb) SetVelocity ¶ added in v0.7.0
SetVelocity sets the velocity of the entity. The values in the Vec3 passed represent the speed on that axis in blocks/tick.
func (*ExperienceOrb) Tick ¶ added in v0.7.0
func (e *ExperienceOrb) Tick(w *world.World, current int64)
Tick ...
type Eyed ¶
type Eyed interface { // EyeHeight returns the offset from their base position that the eyes of an entity are found at. EyeHeight() float64 }
Eyed represents an entity that has eyes.
type FallingBlock ¶
type FallingBlock struct {
// contains filtered or unexported fields
}
FallingBlock is the entity form of a block that appears when a gravity-affected block loses its support.
func NewFallingBlock ¶
func NewFallingBlock(block world.Block, pos mgl64.Vec3) *FallingBlock
NewFallingBlock ...
func (*FallingBlock) Close ¶
func (t *FallingBlock) Close() error
Close closes the transform and removes the associated entity from the world.
func (*FallingBlock) DecodeNBT ¶ added in v0.2.0
func (f *FallingBlock) DecodeNBT(data map[string]any) any
DecodeNBT decodes the relevant data from the entity NBT passed and returns a new FallingBlock entity.
func (*FallingBlock) EncodeNBT ¶ added in v0.2.0
func (f *FallingBlock) EncodeNBT() map[string]any
EncodeNBT encodes the FallingBlock entity to a map that can be encoded for NBT.
func (*FallingBlock) SetVelocity ¶
SetVelocity sets the velocity of the entity. The values in the Vec3 passed represent the speed on that axis in blocks/tick.
type Flammable ¶
type Flammable interface { // FireProof is whether the entity is currently fireproof. FireProof() bool // OnFireDuration returns duration of fire in ticks. OnFireDuration() time.Duration // SetOnFire sets the entity on fire for the specified duration. SetOnFire(duration time.Duration) // Extinguish extinguishes the entity. Extinguish() }
Flammable is an interface for entities that can be set on fire.
type HealthManager ¶
type HealthManager struct {
// contains filtered or unexported fields
}
HealthManager handles the health of an entity.
func NewHealthManager ¶
func NewHealthManager() *HealthManager
NewHealthManager returns a new health manager with a default of 20 health and max health.
func (*HealthManager) AddHealth ¶
func (m *HealthManager) AddHealth(health float64)
AddHealth adds a given amount of health points to the player. If the health added to the current health exceeds the max, health will be set to the max. If the health is instead negative and results in a health lower than 0, the final health will be 0.
func (*HealthManager) Health ¶
func (m *HealthManager) Health() float64
Health returns the current health of an entity.
func (*HealthManager) MaxHealth ¶
func (m *HealthManager) MaxHealth() float64
MaxHealth returns the maximum health of the entity.
func (*HealthManager) SetMaxHealth ¶
func (m *HealthManager) SetMaxHealth(max float64)
SetMaxHealth changes the max health of an entity to the maximum passed. If the maximum is set to 0 or lower, SetMaxHealth will default to a value of 1.
type HurtAction ¶ added in v0.6.0
type HurtAction struct {
// contains filtered or unexported fields
}
HurtAction is a world.EntityAction that makes an entity display the animation for being hurt. The entity will be shown as red for a short duration.
func (HurtAction) EntityAction ¶ added in v0.6.0
func (HurtAction) EntityAction()
type Item ¶
type Item struct {
// contains filtered or unexported fields
}
Item represents an item entity which may be added to the world. Players and several humanoid entities such as zombies are able to pick up these entities so that the items are added to their inventory.
func NewItem ¶
NewItem creates a new item entity using the item stack passed. The item entity will be positioned at the position passed. If the stack's count exceeds its max count, the count of the stack will be changed to the maximum.
func (*Item) Close ¶
func (t *Item) Close() error
Close closes the transform and removes the associated entity from the world.
func (*Item) DecodeNBT ¶ added in v0.2.0
DecodeNBT decodes the properties in a map to an Item and returns a new Item entity.
func (*Item) EncodeNBT ¶ added in v0.2.0
EncodeNBT encodes the Item entity's properties as a map and returns it.
func (*Item) SetPickupDelay ¶
SetPickupDelay sets a delay passed until the item can be picked up. If d is negative or d.Seconds()*20 higher than math.MaxInt16, the item will never be able to be picked up.
func (*Item) SetVelocity ¶
SetVelocity sets the velocity of the entity. The values in the Vec3 passed represent the speed on that axis in blocks/tick.
type Lightning ¶ added in v0.3.0
type Lightning struct {
// contains filtered or unexported fields
}
Lightning is a lethal element to thunderstorms. Lightning momentarily increases the skylight's brightness to slightly greater than full daylight.
func NewLightning ¶ added in v0.3.0
NewLightning creates a lightning entity. The lightning entity will be positioned at the position passed.
func (*Lightning) EncodeEntity ¶ added in v0.3.0
EncodeEntity ...
func (*Lightning) New ¶ added in v0.4.0
New strikes the Lightning at a specific position in a new world.
func (*Lightning) Position ¶ added in v0.3.0
Position returns the current position of the lightning entity.
type Living ¶
type Living interface { world.Entity // Health returns the health of the entity. Health() float64 // MaxHealth returns the maximum health of the entity. MaxHealth() float64 // SetMaxHealth changes the maximum health of the entity to the value passed. SetMaxHealth(v float64) // Dead checks if the entity is considered dead. True is returned if the health of the entity is equal to or // lower than 0. Dead() bool // AttackImmune checks if the entity is currently immune to entity attacks. Entities typically turn // immune for half a second after being attacked. AttackImmune() bool // Hurt hurts the entity for a given amount of damage. The source passed represents the cause of the // damage, for example damage.SourceEntityAttack if the entity is attacked by another entity. // If the final damage exceeds the health that the entity currently has, the entity is killed. // Hurt returns the final amount of damage dealt to the Living entity and returns whether the Living entity // was vulnerable to the damage at all. Hurt(damage float64, src damage.Source) (n float64, vulnerable bool) // Heal heals the entity for a given amount of health. The source passed represents the cause of the // healing, for example healing.SourceFood if the entity healed by having a full food bar. If the health // added to the original health exceeds the entity's max health, Heal may not add the full amount. Heal(health float64, src healing.Source) // KnockBack knocks the entity back with a given force and height. A source is passed which indicates the // source of the velocity, typically the position of an attacking entity. The source is used to calculate // the direction which the entity should be knocked back in. KnockBack(src mgl64.Vec3, force, height float64) // AddEffect adds an entity.Effect to the entity. If the effect is instant, it is applied to the entity // immediately. If not, the effect is applied to the entity every time the Tick method is called. // AddEffect will overwrite any effects present if the level of the effect is higher than the existing one, or // if the effects' levels are equal and the new effect has a longer duration. AddEffect(e effect.Effect) // RemoveEffect removes any effect that might currently be active on the entity. RemoveEffect(e effect.Type) // Effects returns any effect currently applied to the entity. The returned effects are guaranteed not to have // expired when returned. Effects() []effect.Effect // Speed returns the current speed of the living entity. The default value is different for each entity. Speed() float64 // SetSpeed sets the speed of an entity to a new value. SetSpeed(float64) }
Living represents an entity that is alive and that has health. It is able to take damage and will die upon taking fatal damage.
type Movement ¶ added in v0.4.1
type Movement struct {
// contains filtered or unexported fields
}
Movement represents the movement of a world.Entity as a result of a call to MovementComputer.TickMovement. The resulting position and velocity can be obtained by calling Position and Velocity. These can be sent to viewers by calling Send.
func (*Movement) Position ¶ added in v0.4.1
Position returns the position as a result of the Movement as an mgl64.Vec3.
func (*Movement) Rotation ¶ added in v0.4.1
Rotation returns the rotation, yaw and pitch, of the entity after the Movement.
type MovementComputer ¶
type MovementComputer struct {
Gravity, Drag float64
DragBeforeGravity bool
// contains filtered or unexported fields
}
MovementComputer is used to compute movement of an entity. When constructed, the Gravity of the entity the movement is computed for must be passed.
func (*MovementComputer) OnGround ¶
func (c *MovementComputer) OnGround() bool
OnGround checks if the entity that this computer calculates is currently on the ground.
func (*MovementComputer) TickMovement ¶ added in v0.2.0
func (c *MovementComputer) TickMovement(e world.Entity, pos, vel mgl64.Vec3, yaw, pitch float64) *Movement
TickMovement performs a movement tick on an entity. Velocity is applied and changed according to the values of its Drag and Gravity. The new position of the entity after movement is returned. The resulting Movement can be sent to viewers by calling Movement.Send.
type PickedUpAction ¶ added in v0.6.0
type PickedUpAction struct { // Collector is the entity that collected the item. Collector world.Entity // contains filtered or unexported fields }
PickedUpAction is a world.EntityAction that makes an item get picked up by a collector. After this animation, the item disappears from viewers watching it.
func (PickedUpAction) EntityAction ¶ added in v0.6.0
func (PickedUpAction) EntityAction()
type ProjectileComputer ¶ added in v0.4.0
type ProjectileComputer struct {
*MovementComputer
}
ProjectileComputer is used to compute movement of a projectile. When constructed, a MovementComputer must be passed.
func (*ProjectileComputer) TickMovement ¶ added in v0.4.0
func (c *ProjectileComputer) TickMovement(e world.Entity, pos, vel mgl64.Vec3, yaw, pitch float64, ignored func(world.Entity) bool) (*Movement, trace.Result)
TickMovement performs a movement tick on a projectile. Velocity is applied and changed according to the values of its Drag and Gravity. A ray trace is performed to see if the projectile has collided with any block or entity, the ray trace result is returned. The resulting Movement can be sent to viewers by calling Movement.Send.
type Snowball ¶ added in v0.4.0
type Snowball struct {
// contains filtered or unexported fields
}
Snowball is a throwable projectile which damages entities on impact.
func NewSnowball ¶ added in v0.4.0
NewSnowball ...
func (*Snowball) Close ¶ added in v0.4.0
func (t *Snowball) Close() error
Close closes the transform and removes the associated entity from the world.
func (*Snowball) DecodeNBT ¶ added in v0.4.0
DecodeNBT decodes the properties in a map to a Snowball and returns a new Snowball entity.
func (*Snowball) EncodeEntity ¶ added in v0.4.0
EncodeEntity ...
func (*Snowball) EncodeNBT ¶ added in v0.4.0
EncodeNBT encodes the Snowball entity's properties as a map and returns it.
func (*Snowball) New ¶ added in v0.4.0
New creates a snowball with the position, velocity, yaw, and pitch provided. It doesn't spawn the snowball, only returns it.
func (*Snowball) SetVelocity ¶ added in v0.4.0
SetVelocity sets the velocity of the entity. The values in the Vec3 passed represent the speed on that axis in blocks/tick.
type Solidifiable ¶
type Solidifiable interface { // Solidifies returns whether the falling block can solidify at the position it is currently in. If so, // the block will immediately stop falling. Solidifies(pos cube.Pos, w *world.World) bool }
Solidifiable represents a block that can solidify by specific adjacent blocks. An example is concrete powder, which can turn into concrete by touching water.
type SplashPotion ¶ added in v0.5.0
type SplashPotion struct {
// contains filtered or unexported fields
}
SplashPotion is an item that grants effects when thrown.
func NewSplashPotion ¶ added in v0.5.0
func NewSplashPotion(pos mgl64.Vec3, yaw, pitch float64, owner world.Entity, t potion.Potion) *SplashPotion
NewSplashPotion ...
func (*SplashPotion) Close ¶ added in v0.5.0
func (t *SplashPotion) Close() error
Close closes the transform and removes the associated entity from the world.
func (*SplashPotion) DecodeNBT ¶ added in v0.5.0
func (s *SplashPotion) DecodeNBT(data map[string]any) any
DecodeNBT decodes the properties in a map to a SplashPotion and returns a new SplashPotion entity.
func (*SplashPotion) EncodeEntity ¶ added in v0.5.0
func (s *SplashPotion) EncodeEntity() string
EncodeEntity ...
func (*SplashPotion) EncodeNBT ¶ added in v0.5.0
func (s *SplashPotion) EncodeNBT() map[string]any
EncodeNBT encodes the SplashPotion entity's properties as a map and returns it.
func (*SplashPotion) New ¶ added in v0.5.0
New creates a SplashPotion with the position, velocity, yaw, and pitch provided. It doesn't spawn the SplashPotion, only returns it.
func (*SplashPotion) Position ¶ added in v0.5.0
Position returns the current position of the entity.
func (*SplashPotion) Rotation ¶ added in v0.5.0
func (s *SplashPotion) Rotation() (float64, float64)
Rotation ...
func (*SplashPotion) SetVelocity ¶ added in v0.5.0
SetVelocity sets the velocity of the entity. The values in the Vec3 passed represent the speed on that axis in blocks/tick.
func (*SplashPotion) Tick ¶ added in v0.5.0
func (s *SplashPotion) Tick(w *world.World, current int64)
Tick ...
func (*SplashPotion) Type ¶ added in v0.5.0
func (s *SplashPotion) Type() potion.Potion
Type returns the type of potion the splash potion will grant effects for when thrown.
type SwingArmAction ¶ added in v0.6.0
type SwingArmAction struct {
// contains filtered or unexported fields
}
SwingArmAction is a world.EntityAction that makes an entity or player swing its arm.
func (SwingArmAction) EntityAction ¶ added in v0.6.0
func (SwingArmAction) EntityAction()
type Text ¶ added in v0.2.0
type Text struct {
// contains filtered or unexported fields
}
Text is an entity that only displays floating text. The entity is otherwise invisible and cannot be moved.
func NewText ¶ added in v0.2.0
NewText creates and returns a new Text entity with the text and position provided.
func (*Text) BBox ¶ added in v0.7.0
BBox returns an empty physics.BBox so that players cannot interact with the entity.
func (*Text) Close ¶ added in v0.2.0
func (t *Text) Close() error
Close closes the transform and removes the associated entity from the world.
func (*Text) DecodeNBT ¶ added in v0.2.0
DecodeNBT decodes the data passed to create and return a new Text entity.
func (*Text) EncodeEntity ¶ added in v0.2.0
EncodeEntity returns the ID for falling blocks.
func (*Text) EncodeNBT ¶ added in v0.2.0
EncodeNBT encodes the Text entity to a map representation that can be encoded to NBT.
func (*Text) Name ¶ added in v0.2.0
Name returns the name of the text entity, including the text written on it.
func (*Text) NameTag ¶ added in v0.2.0
NameTag returns the designated text of the entity. It is an alias for the Text function.
func (*Text) SetVelocity ¶ added in v0.2.0
SetVelocity sets the velocity of the entity. The values in the Vec3 passed represent the speed on that axis in blocks/tick.