Paste #43682: Untitled Paste

Date: 2017/08/20 15:50:43 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


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 
        }