Date: 2017/08/20 15:50:43 UTC-07:00
Type: Denizen Script
PETS_RIDE:
type: world
events:
on player right clicks entity:
- define pet <player.flag[pets.current_pet]||null>
- mount <player>|<def[pet]> <def[pet].location>
- adjust <def[pet]> has_ai:false
on player steers entity:
- define pet <player.flag[pets.current_pet]||null>
- if <context.jump> {
- if <def[pet].is_on_ground> {
- define velocity <def[velocity].add[0,0.5,0]>
}
}
- flag player pets.JumpCooldown:--
- flag player pets.TickCooldown:--
- if <player.flag[pets.TickCooldown]||0> > 0 {
- flag player pets.Forward:+:<context.forward>
- flag player pets.Sideways:+:<context.sideways>
- if <context.dismount> {
- determine cancelled
}
- queue clear
- define forward <context.forward.add[<player.flag[pets.Forward]||0>].div[<def[dividing]>]>
- define sideways <context.sideways.add[<player.flag[pets.Sideways]||0>].div[<def[dividing]>]>
- define looking <player.location.direction.vector.sub[0,<player.location.direction.vector.y>,0]>
- define velocity <def[looking].mul[<def[forward]>].add[<def[looking].rotate_around_y[<el@90.to_radians>].mul[<def[sideways]>]>]>
- flag player pets.Forward:0
- flag player pets.Sideways:0
- if <player.flag[pets.ShouldJump]||false> {
- if <def[pet].is_on_ground> && <player.flag[pets.JumpCooldown]||0> <= 0 {
- define velocity <def[velocity].add[0,0.5,0]>
- flag player pets.JumpCooldown:10
}
- flag player pets.ShouldJump:false
}