up3
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
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
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package entity
|
||||
|
||||
import (
|
||||
"github.com/df-mc/dragonfly/server/item"
|
||||
"github.com/df-mc/dragonfly/server/item/enchantment"
|
||||
"github.com/df-mc/dragonfly/server/item/potion"
|
||||
"github.com/df-mc/dragonfly/server/world"
|
||||
)
|
||||
|
||||
// DefaultRegistry is a world.EntityRegistry that registers all default entities
|
||||
// implemented by Dragonfly.
|
||||
var DefaultRegistry = conf.New([]world.EntityType{
|
||||
AreaEffectCloudType,
|
||||
ArrowType,
|
||||
BottleOfEnchantingType,
|
||||
EggType,
|
||||
EnderPearlType,
|
||||
ExperienceOrbType,
|
||||
FallingBlockType,
|
||||
FireworkType,
|
||||
ItemType,
|
||||
LightningType,
|
||||
LingeringPotionType,
|
||||
SnowballType,
|
||||
SplashPotionType,
|
||||
TNTType,
|
||||
TextType,
|
||||
})
|
||||
|
||||
var conf = world.EntityRegistryConfig{
|
||||
TNT: NewTNT,
|
||||
Egg: NewEgg,
|
||||
Snowball: NewSnowball,
|
||||
BottleOfEnchanting: NewBottleOfEnchanting,
|
||||
EnderPearl: NewEnderPearl,
|
||||
FallingBlock: NewFallingBlock,
|
||||
Lightning: NewLightning,
|
||||
Firework: func(opts world.EntitySpawnOpts, firework world.Item, owner world.Entity, sidewaysVelocityMultiplier, upwardsAcceleration float64, attached bool) *world.EntityHandle {
|
||||
return newFirework(opts, firework.(item.Firework), owner, sidewaysVelocityMultiplier, upwardsAcceleration, attached)
|
||||
},
|
||||
Item: func(opts world.EntitySpawnOpts, it any) *world.EntityHandle {
|
||||
return NewItem(opts, it.(item.Stack))
|
||||
},
|
||||
LingeringPotion: func(opts world.EntitySpawnOpts, t any, owner world.Entity) *world.EntityHandle {
|
||||
return NewLingeringPotion(opts, t.(potion.Potion), owner)
|
||||
},
|
||||
SplashPotion: func(opts world.EntitySpawnOpts, t any, owner world.Entity) *world.EntityHandle {
|
||||
return NewSplashPotion(opts, t.(potion.Potion), owner)
|
||||
},
|
||||
Arrow: func(opts world.EntitySpawnOpts, arrow world.ArrowSpawnConfig) *world.EntityHandle {
|
||||
tip := arrow.Tip.(potion.Potion)
|
||||
conf := arrowConf
|
||||
conf.Damage, conf.Potion, conf.Owner = arrow.Damage, tip, arrow.Owner.H()
|
||||
conf.KnockBackForceAddend = float64(arrow.PunchLevel) * enchantment.Punch.KnockBackMultiplier()
|
||||
conf.DisablePickup = arrow.DisablePickup
|
||||
if arrow.ObtainArrowOnPickup {
|
||||
conf.PickupItem = item.NewStack(item.Arrow{Tip: tip}, 1)
|
||||
}
|
||||
conf.Critical = arrow.Critical
|
||||
conf.PiercingLevel = arrow.PiercingLevel
|
||||
return opts.New(ArrowType, conf)
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user