player.bend fails
raw source on the hub · import 0xc517d5d3635f5bc3ec47170caccaebf0/player.bend as Player
1 import
import Base
Types
type Vec3 source · line 3 · raw
Data
V@x:F32 -> @y:F32 -> @z:F32 -> Vec3
type Player source · line 6 · raw
Data
P@pos:Vec3 -> @vel:Vec3 -> @yaw:F32 -> @pitch:F32 -> @on_ground:Bool -> @fly:Bool -> Player
type Input source · line 9 · raw
Data
I@fw:Bool -> @back:Bool -> @left:Bool -> @right:Bool -> @jump:Bool -> @down:Bool -> Input
type Ctrl source · line 12 · raw
Data
C@inp:Input -> @ldx:F32 -> @ldy:F32 -> @brk:Bool -> @plc:Bool -> @hot:U32 -> @quit:Bool -> Ctrl
type Hotbar source · line 15 · raw
Data
H@slots:List<&2, U32> -> @sel:U32 -> Hotbar
type Slot source · line 18 · raw
Data
S@block:U32 -> @count:U32 -> Slot
type Inv source · line 21 · raw
Data
Inv@items:List<&2, Slot> -> Inv
type ExCtrl source · line 713 · raw
Data
Extended controls: sprint/sneak/attack/drop. Ctrl is consumed by name elsewhere, so ExCtrl is a separate additive type with its own fold.
X@sprint:Bool -> @sneak:Bool -> @attack:Bool -> @drop:Bool -> ExCtrl
Definitions
def IsW source · line 24 · raw
@+code:U32 -> Bool
def IsA source · line 27 · raw
@+code:U32 -> Bool
def IsS source · line 30 · raw
@+code:U32 -> Bool
def IsD source · line 33 · raw
@+code:U32 -> Bool
def IsJump source · line 36 · raw
@+code:U32 -> Bool
def IsDownKey source · line 39 · raw
@+code:U32 -> Bool
def IsDownShift source · line 42 · raw
@+code:U32 -> Bool
def IsBreakKey source · line 45 · raw
@+code:U32 -> Bool
def IsPlaceKey source · line 48 · raw
@+code:U32 -> Bool
def IsFlyKey source · line 51 · raw
@+code:U32 -> Bool
def IsQuitKey source · line 54 · raw
@+code:U32 -> Bool
def IsHot1 source · line 57 · raw
@+code:U32 -> Bool
def IsHot2 source · line 60 · raw
@+code:U32 -> Bool
def IsHot3 source · line 63 · raw
@+code:U32 -> Bool
def IsHot4 source · line 66 · raw
@+code:U32 -> Bool
def IsHot5 source · line 69 · raw
@+code:U32 -> Bool
def IsHot6 source · line 72 · raw
@+code:U32 -> Bool
def IsHot7 source · line 75 · raw
@+code:U32 -> Bool
def IsHot8 source · line 78 · raw
@+code:U32 -> Bool
def IsHot9 source · line 81 · raw
@+code:U32 -> Bool
def IsBreakBtn source · line 84 · raw
@+btn:U32 -> Bool
def IsPlaceBtn source · line 87 · raw
@+btn:U32 -> Bool
def Input.empty source · line 90 · raw
Input
def Input.set_fw source · line 93 · raw
@inp:Input -> @v:Bool -> Input
def Input.set_back source · line 98 · raw
@inp:Input -> @v:Bool -> Input
def Input.set_left source · line 103 · raw
@inp:Input -> @v:Bool -> Input
def Input.set_right source · line 108 · raw
@inp:Input -> @v:Bool -> Input
def Input.set_jump source · line 113 · raw
@inp:Input -> @v:Bool -> Input
def Input.set_down source · line 118 · raw
@inp:Input -> @v:Bool -> Input
def Ctrl.empty source · line 123 · raw
Ctrl
def Ctrl.set_fw source · line 126 · raw
@ctrl:Ctrl -> @v:Bool -> Ctrl
def Ctrl.set_back source · line 133 · raw
@ctrl:Ctrl -> @v:Bool -> Ctrl
def Ctrl.set_left source · line 140 · raw
@ctrl:Ctrl -> @v:Bool -> Ctrl
def Ctrl.set_right source · line 147 · raw
@ctrl:Ctrl -> @v:Bool -> Ctrl
def Ctrl.set_jump source · line 154 · raw
@ctrl:Ctrl -> @v:Bool -> Ctrl
def Ctrl.set_down source · line 161 · raw
@ctrl:Ctrl -> @v:Bool -> Ctrl
def Ctrl.set_brk source · line 168 · raw
@ctrl:Ctrl -> @v:Bool -> Ctrl
def Ctrl.set_plc source · line 173 · raw
@ctrl:Ctrl -> @v:Bool -> Ctrl
def Ctrl.set_hot source · line 178 · raw
@ctrl:Ctrl -> @v:U32 -> Ctrl
def Ctrl.set_quit source · line 183 · raw
@ctrl:Ctrl -> @v:Bool -> Ctrl
def Ctrl.add_look_go source · line 188 · raw
@inp:Input -> @ldx:F32 -> @ldy:F32 -> @brk:Bool -> @plc:Bool -> @hot:U32 -> @quit:Bool -> @dx:F32 -> @dy:F32 -> Ctrl
def Ctrl.add_look source · line 193 · raw
@ctrl:Ctrl -> @dx:F32 -> @dy:F32 -> Ctrl
def Ctrl.key_down_base source · line 198 · raw
@ctrl:Ctrl -> @code:U32 -> Ctrl
def Ctrl.key_down_check_quit source · line 201 · raw
@is_q:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_h9 source · line 208 · raw
@is_h:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_h8 source · line 215 · raw
@is_h:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_h7 source · line 222 · raw
@is_h:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_h6 source · line 229 · raw
@is_h:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_h5 source · line 236 · raw
@is_h:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_h4 source · line 243 · raw
@is_h:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_h3 source · line 250 · raw
@is_h:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_h2 source · line 257 · raw
@is_h:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_h1 source · line 264 · raw
@is_h:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_fly source · line 271 · raw
@is_f:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_plc source · line 278 · raw
@is_p:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_brk source · line 285 · raw
@is_b:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_down source · line 292 · raw
@is_d:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_jump source · line 299 · raw
@is_j:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_d source · line 306 · raw
@is_k:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_s source · line 313 · raw
@is_k:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_a source · line 320 · raw
@is_k:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down_check_w source · line 327 · raw
@is_w:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_down source · line 334 · raw
@ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_up_base source · line 337 · raw
@ctrl:Ctrl -> @code:U32 -> Ctrl
def Ctrl.key_up_check_down source · line 340 · raw
@is_d:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_up_check_jump source · line 347 · raw
@is_j:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_up_check_d source · line 354 · raw
@is_k:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_up_check_s source · line 361 · raw
@is_k:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_up_check_a source · line 368 · raw
@is_k:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_up_check_w source · line 375 · raw
@is_w:Bool -> @ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.key_up source · line 382 · raw
@ctrl:Ctrl -> @+code:U32 -> Ctrl
def Ctrl.on_key source · line 385 · raw
@is_down:Bool -> @ctrl:Ctrl -> @code:U32 -> Ctrl
def Ctrl.mouse_base source · line 392 · raw
@ctrl:Ctrl -> @btn:U32 -> Ctrl
def Ctrl.mouse_check_plc source · line 395 · raw
@is_p:Bool -> @ctrl:Ctrl -> @btn:U32 -> Ctrl
def Ctrl.mouse_check_brk source · line 402 · raw
@is_b:Bool -> @ctrl:Ctrl -> @+btn:U32 -> Ctrl
def Ctrl.on_mouse_down source · line 409 · raw
@is_down:Bool -> @ctrl:Ctrl -> @+btn:U32 -> Ctrl
def Ctrl.on_move source · line 416 · raw
@ctrl:Ctrl -> @x:U32 -> @y:U32 -> Ctrl
def Ctrl.on_close source · line 421 · raw
@ctrl:Ctrl -> Ctrl
def Ctrl.apply source · line 424 · raw
@ctrl:Ctrl -> @e:Event -> Ctrl
def Ctrl.from_events source · line 435 · raw
@events:List<&1, Event> -> @acc:Ctrl -> Ctrl
def Player.spawn source · line 442 · raw
@px:F32 -> @py:F32 -> @pz:F32 -> Player
def Player.clamp_pitch source · line 445 · raw
@p:F32 -> @lo:F32 -> @hi:F32 -> F32
def Player.turn_go source · line 448 · raw
@pos:Vec3 -> @vel:Vec3 -> @yaw:F32 -> @pitch:F32 -> @on_ground:Bool -> @fly:Bool -> @dx:F32 -> @dy:F32 -> Player
def Player.turn source · line 453 · raw
@p:Player -> @dx:F32 -> @dy:F32 -> Player
def Player.apply_look source · line 458 · raw
@p:Player -> @ctrl:Ctrl -> Pair(Player, Ctrl)
def Player.eye_go source · line 465 · raw
@pos:Vec3 -> @vel:Vec3 -> @yaw:F32 -> @pitch:F32 -> @on_ground:Bool -> @fly:Bool -> Vec3
def Player.eye source · line 470 · raw
@p:Player -> Vec3
def Player.dir_go source · line 475 · raw
@pos:Vec3 -> @vel:Vec3 -> @+yaw:F32 -> @+pitch:F32 -> @on_ground:Bool -> @fly:Bool -> Vec3
def Player.dir source · line 481 · raw
@p:Player -> Vec3
def Player.wish_go source · line 486 · raw
@+yaw:F32 -> @fw:Bool -> @back:Bool -> @left:Bool -> @right:Bool -> Pair(F32, F32)
def Player.wish_dir source · line 501 · raw
@p:Player -> @inp:Input -> Pair(F32, F32)
def Player.toggle_fly source · line 508 · raw
@p:Player -> Player
def Player.set_fly source · line 513 · raw
@p:Player -> @v:Bool -> Player
def Hotbar.default source · line 518 · raw
Hotbar
def Hotbar.get_go source · line 521 · raw
@xs:List<&2, U32> -> @n:Nat -> Maybe<&2, U32>
def Hotbar.selected_or source · line 530 · raw
@+slots:List<&2, U32> -> @+sel:U32 -> @res:Maybe<&2, U32> -> U32
def Hotbar.selected source · line 537 · raw
@h:Hotbar -> U32
def Hotbar.select_go source · line 542 · raw
@slots:List<&2, U32> -> @sel:U32 -> @n:U32 -> Hotbar
def Hotbar.select source · line 545 · raw
@h:Hotbar -> @n:U32 -> Hotbar
def Hotbar.scroll_go source · line 550 · raw
@slots:List<&2, U32> -> @sel:U32 -> @dir:U32 -> Hotbar
def Hotbar.scroll source · line 553 · raw
@h:Hotbar -> @dir:U32 -> Hotbar
def Inv.empty source · line 558 · raw
Inv
def Inv.add_go source · line 561 · raw
@xs:List<&2, Slot> -> @+b:U32 -> @+n:U32 -> List<&2, Slot>
def Inv.add source · line 573 · raw
@inv:Inv -> @b:U32 -> @n:U32 -> Inv
def Inv.count_go source · line 578 · raw
@xs:List<&2, Slot> -> @+b:U32 -> U32
def Inv.count source · line 589 · raw
@inv:Inv -> @b:U32 -> U32
def Inv.remove_go source · line 594 · raw
@xs:List<&2, Slot> -> @+b:U32 -> @+n:U32 -> List<&2, Slot>
def Inv.remove source · line 607 · raw
@inv:Inv -> @b:U32 -> @n:U32 -> Inv
def IsSprint source · line 618 · raw
@+code:U32 -> Bool
--- Sprint/sneak/attack/drop keys (additive, explicit codes + doc) --- Sprint = Ctrl (17). Double-W not tracked; sprint is explicit Ctrl hold. Sneak = Shift (16). Note IsDownShift already includes 16 (C/c or Shift); sneak (16) is the Shift subset used for sneaking and eye height. Attack = R (82/114). Mouse break (btn 0) stays; R is keyboard attack. Drop = G (71/103).
def IsSneak source · line 621 · raw
@+code:U32 -> Bool
def IsAttack source · line 624 · raw
@+code:U32 -> Bool
def IsDrop source · line 627 · raw
@+code:U32 -> Bool
def Player.reach source · line 631 · raw
F32
Attack reach 4.5 vs build reach 6.0.
def Player.build_reach source · line 634 · raw
F32
def Player.eye_height source · line 638 · raw
@crouch:Bool -> F32
Eye height: stand 1.62, crouch 1.27.
def Player.hunger_tick source · line 646 · raw
@food:U32 -> @moving:Bool -> U32
Hunger burns 1 when moving. Heal regens 1 when fed (food > 0).
def Player.heal_go source · line 653 · raw
@hp:U32 -> @fed:Bool -> U32
def Player.heal_tick source · line 660 · raw
@hp:U32 -> @food:U32 -> U32
def Hotbar.count_go source · line 664 · raw
@xs:List<&2, U32> -> U32
Hotbar: keep 9 slots. Count / find / swap helpers.
def Hotbar.count source · line 671 · raw
@h:Hotbar -> U32
def Hotbar.find_go source · line 676 · raw
@xs:List<&2, U32> -> @+block:U32 -> @+idx:U32 -> U32
def Hotbar.find source · line 685 · raw
@h:Hotbar -> @block:U32 -> U32
def Hotbar.set_go source · line 690 · raw
@xs:List<&2, U32> -> @n:Nat -> @v:U32 -> List<&2, U32>
def Hotbar.swap_go source · line 699 · raw
@+slots:List<&2, U32> -> @+sel:U32 -> @+a:U32 -> @+b:U32 -> Hotbar
def Hotbar.swap source · line 706 · raw
@h:Hotbar -> @+a:U32 -> @+b:U32 -> Hotbar
def ExCtrl.empty source · line 716 · raw
ExCtrl
def ExCtrl.set_sprint source · line 719 · raw
@ex:ExCtrl -> @v:Bool -> ExCtrl
def ExCtrl.set_sneak source · line 724 · raw
@ex:ExCtrl -> @v:Bool -> ExCtrl
def ExCtrl.set_attack source · line 729 · raw
@ex:ExCtrl -> @v:Bool -> ExCtrl
def ExCtrl.set_drop source · line 734 · raw
@ex:ExCtrl -> @v:Bool -> ExCtrl
def ExCtrl.from_base source · line 739 · raw
@prev:ExCtrl -> @code:U32 -> ExCtrl
def ExCtrl.from_drop source · line 742 · raw
@is_d:Bool -> @prev:ExCtrl -> @+code:U32 -> @down:Bool -> ExCtrl
def ExCtrl.from_attack source · line 749 · raw
@is_a:Bool -> @prev:ExCtrl -> @+code:U32 -> @down:Bool -> ExCtrl
def ExCtrl.from_sneak source · line 756 · raw
@is_s:Bool -> @prev:ExCtrl -> @+code:U32 -> @down:Bool -> ExCtrl
def ExCtrl.from_sprint source · line 763 · raw
@is_sp:Bool -> @prev:ExCtrl -> @+code:U32 -> @down:Bool -> ExCtrl
def ExCtrl.from_key source · line 770 · raw
@+code:U32 -> @down:Bool -> @prev:ExCtrl -> ExCtrl