~/bend-docscommunity

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

type Player source · line 6 · raw

Data

type Input source · line 9 · raw

Data

type Ctrl source · line 12 · raw

Data

type Hotbar source · line 15 · raw

Data

type Slot source · line 18 · raw

Data

type Inv source · line 21 · raw

Data

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.

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