Paste #132864: MC sun position procedure

Date: 2025/04/22 17:24:08 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


Sun_Angle_Proc:
    type: procedure
    debug: false
    definitions: world
    script:
        - define ticks <[world].time>
        - if <[ticks]> >= 23250:
            - define ticks <[ticks].sub[24000].add[750]>
        - else:
            - define ticks <[ticks].add[750]>
        - define a <element[-6.62].mul[<element[10].power[-3]>]>
        - define b <element[3.09].mul[<element[10].power[-4]>]>
        - define c <element[-1.68].mul[<element[10].power[-8]>]>
        - define d <element[8.3].mul[<element[10].power[-13]>]>
        - define angle_rad <[a].add[<[b].mul[<[ticks]>]>].add[<[c].mul[<[ticks].power[2]>]>].add[<[d].mul[<[ticks].power[3]>]>]>
        - determine <[angle_rad]>

Sun_Burn:
    type: world
    debug: false
    events:
        on delta time secondly:
            - foreach <server.online_players> as:player:
                - define angle_rad <proc[Sun_Angle_Proc].context[<[player].world>]>
                - define sun_loc <[player].location.add[<location[30,0,0,<[player].world>].rotate_around_z[<[angle_rad]>]>]>
                - define points <[player].eye_location.points_between[<[sun_loc]>]>
                - playeffect effect:flame at:<[points]> offset:0,0,0 quantity:5