minecraft.bend fails
raw source on the hub · import 0xc517d5d3635f5bc3ec47170caccaebf0/minecraft.bend as Minecraft
7 imports
import Base import ./blocks.bend as B import ./world.bend as W import ./render.bend as R import ./player.bend as PL import ./physics.bend as PH import ./mobs.bend as MB
Types
type Edit source · line 33 · raw
Data
E@idx:U32 -> @val:U32 -> Edit
type Acc source · line 36 · raw
Data
A@fw:Bool -> @back:Bool -> @left:Bool -> @right:Bool -> @jump:Bool -> @down:Bool -> @brk:Bool -> @plc:Bool -> @flytog:Bool -> @spr:Bool -> @snk:Bool -> @atk:Bool -> @hot:U32 -> @quit:Bool -> @yaw_d:F32 -> @pitch_d:F32 -> Acc
type State source · line 39 · raw
Data
S@seed:U32 -> @px:F32 -> @py:F32 -> @pz:F32 -> @yaw:F32 -> @pitch:F32 -> @vy:F32 -> @og:Bool -> @fly:Bool -> @hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @edits:List<&2, Edit> -> @hp:U32 -> @food:U32 -> @hurt:U32 -> @mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @tickn:U32 -> @time:F32 -> State
Definitions
def MC.quality source · line 60 · raw
Nat
---------------- resolution ----------------
The display backend walks the Image quadtree on the GPU, one thread per
screen pixel, down to depth k = ceil_pow2(max(win_w, win_h)). Two regimes:
- depth < k: each rendered pixel magnifies to 2^(k-depth) screen pixels
(free integer upscale, chunky retro look).
- depth >= k: 1:1 pixels (depth > k wastes rays point-picking tl).
So: match depth to the window (2^depth >= max(w,h), minimal) for 1:1, or
render small for speed and let the backend upscale.
CPU cost ~= leaves * raymarch: 128^2 ~60fps, 256^2 ~15fps, 512^2 ~4fps.
PRESETS (edit quality/win_w/win_h together):
Smooth: 7n / 128 / 128 (60fps CPU)
Balanced: 8n / 256 / 256 (~15fps CPU)
Big: 9n / 512 / 512 (~4fps CPU, needs GPU for realtime)
1080p: 9n / 1920 / 1080 (512 render upscaled x4, chunky 1080p)
FullHD: 11n / 1920 / 1080 (true 1:1 1080p, GPU ! only, experimental)
GPU NOTE: replace MC.build with MC.build! inside frame_q to run the whole
quadtree build on the GPU (needs clang 19+, Metal on Mac / CUDA on Linux).
Untested here (no GPU in this box) — keep the CPU path as fallback.
def MC.win_w source · line 63 · raw
U32
def MC.win_h source · line 66 · raw
U32
def MC.acc_empty source · line 71 · raw
Acc
def MC.set_fw source · line 74 · raw
@a:Acc -> @v:Bool -> Acc
def MC.set_back source · line 79 · raw
@a:Acc -> @v:Bool -> Acc
def MC.set_left source · line 84 · raw
@a:Acc -> @v:Bool -> Acc
def MC.set_right source · line 89 · raw
@a:Acc -> @v:Bool -> Acc
def MC.set_jump source · line 94 · raw
@a:Acc -> @v:Bool -> Acc
def MC.set_down source · line 99 · raw
@a:Acc -> @v:Bool -> Acc
def MC.set_brk source · line 104 · raw
@a:Acc -> @v:Bool -> Acc
def MC.set_plc source · line 109 · raw
@a:Acc -> @v:Bool -> Acc
def MC.set_flytog source · line 114 · raw
@a:Acc -> @v:Bool -> Acc
def MC.set_spr source · line 119 · raw
@a:Acc -> @v:Bool -> Acc
def MC.set_snk source · line 124 · raw
@a:Acc -> @v:Bool -> Acc
def MC.set_atk source · line 129 · raw
@a:Acc -> @v:Bool -> Acc
def MC.set_hot source · line 134 · raw
@a:Acc -> @v:U32 -> Acc
def MC.set_quit source · line 139 · raw
@a:Acc -> @v:Bool -> Acc
def MC.add_look source · line 144 · raw
@a:Acc -> @dx:F32 -> @dy:F32 -> Acc
def MC.is_fw source · line 150 · raw
@+c:U32 -> Bool
Local movement predicates: WASD only (arrows are look keys here).
def MC.is_back source · line 153 · raw
@+c:U32 -> Bool
def MC.is_left source · line 156 · raw
@+c:U32 -> Bool
def MC.is_right source · line 159 · raw
@+c:U32 -> Bool
def MC.is_lookL source · line 163 · raw
@+c:U32 -> Bool
Look keys: JLIK + arrows. Linux arrows are 37-40, Mac arrows 63232-63235.
def MC.is_lookR source · line 166 · raw
@+c:U32 -> Bool
def MC.is_lookU source · line 169 · raw
@+c:U32 -> Bool
def MC.is_lookD source · line 172 · raw
@+c:U32 -> Bool
def MC.kd_hot9 source · line 176 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
key-down chain (each link: match on Bool param, never computed).
def MC.kd_hot8 source · line 183 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_hot7 source · line 190 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_hot6 source · line 197 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_hot5 source · line 204 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_hot4 source · line 211 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_hot3 source · line 218 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_hot2 source · line 225 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_hot1 source · line 232 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_quit source · line 239 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_snk source · line 246 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_spr source · line 253 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_atk source · line 260 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_fly source · line 267 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_plc source · line 274 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_brk source · line 281 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_down source · line 288 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_jump source · line 295 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_lookD source · line 302 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_lookU source · line 309 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_lookR source · line 316 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_lookL source · line 323 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_right source · line 330 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_left source · line 337 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_back source · line 344 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd_fw source · line 351 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.kd source · line 358 · raw
@a:Acc -> @+c:U32 -> Acc
def MC.ku_jump source · line 363 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
key-up: clear held movement flags.
def MC.ku_look source · line 370 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.ku_snk source · line 377 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.ku_spr source · line 384 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.ku_right source · line 391 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.ku_left source · line 398 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.ku_back source · line 405 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.ku_fw source · line 412 · raw
@on:Bool -> @a:Acc -> @+c:U32 -> Acc
def MC.ku source · line 419 · raw
@a:Acc -> @+c:U32 -> Acc
def MC.key source · line 423 · raw
@a:Acc -> @c:U32 -> @down:Bool -> Acc
def MC.mb_plc source · line 430 · raw
@on:Bool -> @a:Acc -> Acc
def MC.mb_brk source · line 437 · raw
@on:Bool -> @a:Acc -> @btn:U32 -> Acc
def MC.mouse source · line 444 · raw
@a:Acc -> @+btn:U32 -> @down:Bool -> Acc
def MC.press source · line 451 · raw
@a:Acc -> @e:Event -> Acc
def MC.fold source · line 462 · raw
@events:List<&1, Event> -> @acc:Acc -> Acc
def MC.edit_miss source · line 471 · raw
Pair(U32, Bool)
def MC.edit_hit source · line 474 · raw
@v:U32 -> Pair(U32, Bool)
def MC.edit_pick source · line 477 · raw
@eq:Bool -> @v:U32 -> @pv:U32 -> @pf:Bool -> Pair(U32, Bool)
def MC.edit_combine source · line 484 · raw
@eq:Bool -> @v:U32 -> @prev:Pair(U32, Bool) -> Pair(U32, Bool)
def MC.edit_head source · line 488 · raw
@h:Edit -> @+t:List<&2, Edit> -> @+idx:U32 -> @prev:Pair(U32, Bool) -> Pair(U32, Bool)
def MC.edit_lookup source · line 493 · raw
@+edits:List<&2, Edit> -> @+idx:U32 -> Pair(U32, Bool)
def MC.elen source · line 500 · raw
@fuel:Nat -> @+edits:List<&2, Edit> -> U32
def MC.push_go source · line 509 · raw
@ok:Bool -> @+edits:List<&2, Edit> -> @idx:U32 -> @v:U32 -> List<&2, Edit>
def MC.push source · line 516 · raw
@+edits:List<&2, Edit> -> @idx:U32 -> @v:U32 -> List<&2, Edit>
def MC.flat_idx source · line 521 · raw
@x:U32 -> @y:U32 -> @z:U32 -> U32
def MC.tree_lo source · line 528 · raw
@lo:Bool -> U32
Per-column tree approximation: trunk h+1..h+2, canopy h+3..h+4.
def MC.tree_hi source · line 535 · raw
@hi:Bool -> @lo:Bool -> U32
def MC.tree_voxel source · line 542 · raw
@+y:U32 -> @+h:U32 -> U32
def MC.tree_pick source · line 545 · raw
@is_tree:Bool -> @+seed:U32 -> @+x:U32 -> @+y:U32 -> @+z:U32 -> @+h:U32 -> U32
def MC.terrain source · line 552 · raw
@+seed:U32 -> @+x:U32 -> @+y:U32 -> @+z:U32 -> U32
def MC.voxel_pick source · line 556 · raw
@hit:Bool -> @v:U32 -> @+seed:U32 -> @+x:U32 -> @+y:U32 -> @+z:U32 -> U32
def MC.voxel_found source · line 563 · raw
@found:Pair(U32, Bool) -> @+seed:U32 -> @+x:U32 -> @+y:U32 -> @+z:U32 -> U32
def MC.voxel_oob source · line 567 · raw
@oob:Bool -> @+seed:U32 -> @+edits:List<&2, Edit> -> @+x:U32 -> @+y:U32 -> @+z:U32 -> U32
def MC.voxel source · line 574 · raw
@+seed:U32 -> @+edits:List<&2, Edit> -> @+x:U32 -> @+y:U32 -> @+z:U32 -> U32
def MC.eye_water source · line 577 · raw
@+seed:U32 -> @+edits:List<&2, Edit> -> @px:F32 -> @py:F32 -> @pz:F32 -> Bool
def MC.face_x source · line 583 · raw
@pos:Bool -> U32
Face id from dominant ray axis (0 top,1 bottom,2 +x,3 -x,4 +z,5 -z).
def MC.face_y source · line 590 · raw
@pos:Bool -> U32
def MC.face_z source · line 597 · raw
@pos:Bool -> U32
def MC.face_yz source · line 604 · raw
@y_dom:Bool -> @+dy:F32 -> @+dz:F32 -> U32
def MC.face_pick source · line 611 · raw
@x_dom:Bool -> @y_dom:Bool -> @+dx:F32 -> @+dy:F32 -> @+dz:F32 -> U32
def MC.face_of source · line 618 · raw
@+dx:F32 -> @+dy:F32 -> @+dz:F32 -> U32
def MC.sky_fin source · line 624 · raw
@cloud:Bool -> @sun:U32 -> U32
def MC.sky_at source · line 631 · raw
@+dx:F32 -> @+dy:F32 -> @+dz:F32 -> @+time:F32 -> @x:F32 -> @z:F32 -> U32
def MC.tex_hash source · line 634 · raw
@+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+face:U32 -> U32
def MC.tex_br source · line 641 · raw
@h:U32 -> F32
def MC.tex_scale source · line 644 · raw
@+color:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+face:U32 -> U32
def MC.daylight source · line 650 · raw
@+time:F32 -> F32
def MC.day_scale source · line 656 · raw
@+color:U32 -> @+time:F32 -> U32
def MC.frac source · line 667 · raw
@+a:F32 -> F32
def MC.tex_uv_go source · line 670 · raw
@top:Bool -> @side_x:Bool -> @+hx:F32 -> @+hy:F32 -> @+hz:F32 -> Pair(F32, F32)
def MC.tex_uv source · line 679 · raw
@+face:U32 -> @+hx:F32 -> @+hy:F32 -> @+hz:F32 -> Pair(F32, F32)
def MC.pick2 source · line 682 · raw
@on:Bool -> @a:U32 -> @b:U32 -> U32
def MC.checker source · line 689 · raw
@tu:U32 -> @tv:U32 -> @a:U32 -> @b:U32 -> U32
def MC.pat_grass_side source · line 692 · raw
@top_row:Bool -> @tu:U32 -> @tv:U32 -> U32
def MC.pat_grass source · line 699 · raw
@top:Bool -> @bot:Bool -> @+tu:U32 -> @+tv:U32 -> U32
def MC.pat_mortar source · line 708 · raw
@tu:U32 -> @tv:U32 -> U32
def MC.pat_wood source · line 711 · raw
@tu:U32 -> U32
def MC.pat_dither source · line 714 · raw
@tu:U32 -> @tv:U32 -> @ix:U32 -> @iz:U32 -> @a:U32 -> @b:U32 -> U32
def MC.pat11 source · line 717 · raw
@eq:Bool -> @+bid:U32 -> @+tu:U32 -> @+tv:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+face:U32 -> U32
def MC.pat10 source · line 724 · raw
@eq:Bool -> @+bid:U32 -> @+tu:U32 -> @+tv:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+face:U32 -> U32
def MC.pat09 source · line 731 · raw
@eq:Bool -> @+bid:U32 -> @+tu:U32 -> @+tv:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+face:U32 -> U32
def MC.pat08 source · line 738 · raw
@eq:Bool -> @+bid:U32 -> @+tu:U32 -> @+tv:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+face:U32 -> U32
def MC.pat07 source · line 745 · raw
@eq:Bool -> @+bid:U32 -> @+tu:U32 -> @+tv:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+face:U32 -> U32
def MC.pat06 source · line 752 · raw
@eq:Bool -> @+bid:U32 -> @+tu:U32 -> @+tv:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+face:U32 -> U32
def MC.pat05 source · line 759 · raw
@eq:Bool -> @+bid:U32 -> @+tu:U32 -> @+tv:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+face:U32 -> U32
def MC.pat04 source · line 766 · raw
@eq:Bool -> @+bid:U32 -> @+tu:U32 -> @+tv:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+face:U32 -> U32
def MC.pat03 source · line 773 · raw
@eq:Bool -> @+bid:U32 -> @+tu:U32 -> @+tv:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+face:U32 -> U32
def MC.pat02 source · line 780 · raw
@eq:Bool -> @+bid:U32 -> @+tu:U32 -> @+tv:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+face:U32 -> U32
def MC.pat01 source · line 787 · raw
@eq:Bool -> @+bid:U32 -> @+tu:U32 -> @+tv:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+face:U32 -> U32
def MC.pat source · line 794 · raw
@+bid:U32 -> @+face:U32 -> @tu:U32 -> @tv:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> U32
def MC.texel_go source · line 797 · raw
@uv:Pair(F32, F32) -> @+bid:U32 -> @+face:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> U32
def MC.texel source · line 801 · raw
@+bid:U32 -> @+face:U32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+hx:F32 -> @+hy:F32 -> @+hz:F32 -> U32
def MC.hit_shade source · line 804 · raw
@+bid:U32 -> @+steps:U32 -> @+dx:F32 -> @+dy:F32 -> @+dz:F32 -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+hx:F32 -> @+hy:F32 -> @+hz:F32 -> @+time:F32 -> U32
def MC.march source · line 813 · raw
@fuel:Nat -> @+seed:U32 -> @+edits:List<&2, Edit> -> @ox:F32 -> @oy:F32 -> @oz:F32 -> @+dx:F32 -> @+dy:F32 -> @+dz:F32 -> @bid:U32 -> @empty:Bool -> @+ix:U32 -> @+iy:U32 -> @+iz:U32 -> @+steps:U32 -> @+time:F32 -> U32
Single self-recursive raymarcher (Bend forbids mutual recursion, so the step/hit/march trio is one def). bid/empty ride along as params, seeded with (0, True) by pixel_go; each step computes the next pair as call args.
def MC.cross source · line 833 · raw
@on:Bool -> @c:U32 -> U32
def MC.slot_block8 source · line 840 · raw
@s:U32 -> U32
def MC.slot_block7 source · line 843 · raw
@eq:Bool -> @+s:U32 -> U32
def MC.slot_block6 source · line 850 · raw
@eq:Bool -> @+s:U32 -> U32
def MC.slot_block5 source · line 857 · raw
@eq:Bool -> @+s:U32 -> U32
def MC.slot_block4 source · line 864 · raw
@eq:Bool -> @+s:U32 -> U32
def MC.slot_block3 source · line 871 · raw
@eq:Bool -> @+s:U32 -> U32
def MC.slot_block2 source · line 878 · raw
@eq:Bool -> @+s:U32 -> U32
def MC.slot_block1 source · line 885 · raw
@eq:Bool -> @+s:U32 -> U32
def MC.slot_block source · line 893 · raw
@+s:U32 -> U32
Mirrors PL.Hotbar.default slots [1,3,4,9,6,5,10,11,2].
def MC.slot_color source · line 896 · raw
@x:U32 -> @sel:U32 -> U32
def MC.hud_go source · line 900 · raw
@is_hud:Bool -> @x:U32 -> @sel:U32 -> @vcolor:U32 -> U32
def MC.hud_bar source · line 907 · raw
U32
def MC.heart_top source · line 910 · raw
U32
def MC.heart_bot source · line 913 · raw
U32
def MC.half_w source · line 916 · raw
U32
def MC.cell_w source · line 919 · raw
U32
def MC.mob_pick source · line 923 · raw
@hit:Bool -> @color:U32 -> @prev:Pair(U32, Bool) -> Pair(U32, Bool)
Mob billboard: first mob whose 3D direction aligns with the ray.
def MC.mob_test source · line 930 · raw
@dist2:F32 -> @dot:F32 -> @color:U32 -> @prev:Pair(U32, Bool) -> Pair(U32, Bool)
def MC.mob_dot_len source · line 933 · raw
@ok:Bool -> @vx:F32 -> @vy:F32 -> @vz:F32 -> @+d2:F32 -> @+dx:F32 -> @+dy:F32 -> @+dz:F32 -> @id:U32 -> @prev:Pair(U32, Bool) -> Pair(U32, Bool)
def MC.mob_dot_go source · line 941 · raw
@m:0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob -> @ox:F32 -> @oy:F32 -> @oz:F32 -> @+dx:F32 -> @+dy:F32 -> @+dz:F32 -> @prev:Pair(U32, Bool) -> Pair(U32, Bool)
def MC.mob_dot source · line 950 · raw
@+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+ox:F32 -> @+oy:F32 -> @+oz:F32 -> @+dx:F32 -> @+dy:F32 -> @+dz:F32 -> Pair(U32, Bool)
def MC.heart_ok source · line 957 · raw
@valid:Bool -> @full:Bool -> @base:U32 -> U32
def MC.heart_dot source · line 968 · raw
@+i:U32 -> @hp:U32 -> @base:U32 -> U32
def MC.food_dot source · line 971 · raw
@+j:U32 -> @food:U32 -> @base:U32 -> U32
def MC.hearts_side source · line 974 · raw
@left:Bool -> @x:U32 -> @hp:U32 -> @food:U32 -> @base:U32 -> U32
def MC.post_hearts source · line 981 · raw
@is_row:Bool -> @+x:U32 -> @hp:U32 -> @food:U32 -> @base:U32 -> U32
def MC.post_flash source · line 988 · raw
@base:U32 -> @hurt:U32 -> U32
def MC.post_water source · line 991 · raw
@uw:Bool -> @c:U32 -> U32
def MC.pixel_post source · line 998 · raw
@+x:U32 -> @+y:U32 -> @+sel:U32 -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+uw:Bool -> @base:U32 -> U32
def MC.pixel_pick source · line 1004 · raw
@hit:Bool -> @mc:U32 -> @+seed:U32 -> @+edits:List<&2, Edit> -> @ox:F32 -> @oy:F32 -> @oz:F32 -> @+dx:F32 -> @+dy:F32 -> @+dz:F32 -> @+x:U32 -> @+y:U32 -> @+sel:U32 -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+uw:Bool -> @+time:F32 -> U32
def MC.pixel_mob source · line 1011 · raw
@mhit:Pair(U32, Bool) -> @+seed:U32 -> @+edits:List<&2, Edit> -> @ox:F32 -> @oy:F32 -> @oz:F32 -> @+dx:F32 -> @+dy:F32 -> @+dz:F32 -> @+x:U32 -> @+y:U32 -> @+sel:U32 -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+uw:Bool -> @+time:F32 -> U32
def MC.pixel_go source · line 1015 · raw
@+seed:U32 -> @+edits:List<&2, Edit> -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @r:0xc517d5d3635f5bc3ec47170caccaebf0/render.Ray -> @+x:U32 -> @+y:U32 -> @+sel:U32 -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+uw:Bool -> @+time:F32 -> U32
def MC.pixel source · line 1020 · raw
@+seed:U32 -> @+edits:List<&2, Edit> -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+cam:0xc517d5d3635f5bc3ec47170caccaebf0/render.Cam -> @+x:U32 -> @+y:U32 -> @+sel:U32 -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+uw:Bool -> @+time:F32 -> U32
def MC.build source · line 1023 · raw
@+seed:U32 -> @+edits:List<&2, Edit> -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+cam:0xc517d5d3635f5bc3ec47170caccaebf0/render.Cam -> @+size:Nat -> @+x0:U32 -> @+y0:U32 -> @+sel:U32 -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+uw:Bool -> @+time:F32 -> Image
def MC.frame source · line 1035 · raw
@+seed:U32 -> @+edits:List<&2, Edit> -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+cam:0xc517d5d3635f5bc3ec47170caccaebf0/render.Cam -> @+sel:U32 -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+uw:Bool -> @+time:F32 -> Image
def MC.view_cam source · line 1040 · raw
@+seed:U32 -> @+px:F32 -> @+py:F32 -> @+pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> @+vy:F32 -> @+og:Bool -> @+fly:Bool -> @+hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @+edits:List<&2, Edit> -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+tickn:U32 -> @+time:F32 -> @sel:U32 -> @uw:Bool -> @cam:0xc517d5d3635f5bc3ec47170caccaebf0/render.Cam -> Pair(State, Image)
def MC.view_go source · line 1043 · raw
@+seed:U32 -> @+px:F32 -> @+py:F32 -> @+pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> @+vy:F32 -> @+og:Bool -> @+fly:Bool -> @+hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @+edits:List<&2, Edit> -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+tickn:U32 -> @+time:F32 -> @sel:U32 -> Pair(State, Image)
def view source · line 1046 · raw
@state:State -> Pair(State, Image)
def MC.cap_x source · line 1053 · raw
@lt:Bool -> @ux:U32 -> U32
def MC.clamp_xz source · line 1060 · raw
@v:F32 -> U32
def MC.ground_y source · line 1064 · raw
@+seed:U32 -> @px:F32 -> @pz:F32 -> F32
def MC.do_look source · line 1067 · raw
@s:State -> @dx:F32 -> @dy:F32 -> State
def MC.hot_go source · line 1072 · raw
@lt:Bool -> @hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @hot:U32 -> 0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar
def MC.do_hot source · line 1079 · raw
@s:State -> @+hot:U32 -> State
def MC.move_apply source · line 1084 · raw
@s:State -> @dx:F32 -> @dz:F32 -> State
def MC.do_strafe source · line 1089 · raw
@s:State -> @+side:F32 -> State
def MC.spd_snk source · line 1096 · raw
@snk:Bool -> F32
def MC.spd_pick source · line 1103 · raw
@spr:Bool -> @snk:Bool -> F32
def MC.spd source · line 1110 · raw
@spr:Bool -> @snk:Bool -> F32
def MC.mv_side source · line 1113 · raw
@l:Bool -> @r:Bool -> @spd:F32 -> F32
def MC.mv_fwd source · line 1124 · raw
@f:Bool -> @b:Bool -> @spd:F32 -> F32
def MC.do_move source · line 1135 · raw
@s:State -> @f:Bool -> @b:Bool -> @l:Bool -> @r:Bool -> @+spd:F32 -> State
def MC.fly_go source · line 1146 · raw
@fly:Bool -> @s:State -> State
def MC.do_fly source · line 1155 · raw
@s:State -> @tog:Bool -> State
def MC.jump_og source · line 1158 · raw
@og:Bool -> @s:State -> State
def MC.jump_ground source · line 1167 · raw
@jump:Bool -> @s:State -> State
def MC.jump_ud source · line 1176 · raw
@jump:Bool -> @down:Bool -> @s:State -> State
def MC.jump_fly source · line 1191 · raw
@fly:Bool -> @s:State -> @jump:Bool -> @down:Bool -> State
def MC.do_jump source · line 1200 · raw
@s:State -> @jump:Bool -> @down:Bool -> State
def MC.term_v source · line 1205 · raw
@lt:Bool -> @v:F32 -> F32
def MC.hp_go source · line 1212 · raw
@ok:Bool -> @hp:U32 -> @dmg:U32 -> U32
def MC.hp_sub source · line 1219 · raw
@+hp:U32 -> @+dmg:U32 -> U32
def MC.landed_hp source · line 1222 · raw
@no_dmg:Bool -> @+seed:U32 -> @px:F32 -> @pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> @+fly:Bool -> @+hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @+edits:List<&2, Edit> -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+tickn:U32 -> @+time:F32 -> @gy:F32 -> @dmg:U32 -> State
def MC.landed source · line 1229 · raw
@land:Bool -> @+seed:U32 -> @px:F32 -> @pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> @+fly:Bool -> @+hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @+edits:List<&2, Edit> -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+tickn:U32 -> @+time:F32 -> @new_py:F32 -> @new_vy:F32 -> @gy:F32 -> @v2:F32 -> State
def MC.fall_step source · line 1237 · raw
@+seed:U32 -> @+px:F32 -> @+py:F32 -> @+pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> @+vy:F32 -> @+fly:Bool -> @+hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @+edits:List<&2, Edit> -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+tickn:U32 -> @+time:F32 -> State
def MC.phys_fly source · line 1243 · raw
@fly:Bool -> @+seed:U32 -> @px:F32 -> @py:F32 -> @pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> @vy:F32 -> @+hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @+edits:List<&2, Edit> -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+tickn:U32 -> @+time:F32 -> State
def MC.do_phys source · line 1250 · raw
@s:State -> State
def MC.march_idx source · line 1257 · raw
@fuel:Nat -> @ex:F32 -> @ey:F32 -> @ez:F32 -> @fx:F32 -> @fy:F32 -> @fz:F32 -> U32
def MC.target_idx source · line 1267 · raw
@px:F32 -> @py:F32 -> @pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> U32
def MC.brk_go source · line 1276 · raw
@ok:Bool -> @+edits:List<&2, Edit> -> @idx:U32 -> List<&2, Edit>
def MC.brk_fin source · line 1283 · raw
@ok:Bool -> @+seed:U32 -> @+px:F32 -> @+py:F32 -> @+pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> @+vy:F32 -> @+og:Bool -> @+fly:Bool -> @+hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @+edits:List<&2, Edit> -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+tickn:U32 -> @+time:F32 -> @idx:U32 -> State
def MC.brk_with source · line 1286 · raw
@+seed:U32 -> @+px:F32 -> @+py:F32 -> @+pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> @+vy:F32 -> @+og:Bool -> @+fly:Bool -> @+hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @+edits:List<&2, Edit> -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+tickn:U32 -> @+time:F32 -> State
def MC.do_break source · line 1295 · raw
@s:State -> State
def MC.plc_go source · line 1300 · raw
@empty:Bool -> @+edits:List<&2, Edit> -> @idx:U32 -> @blk:U32 -> List<&2, Edit>
def MC.plc_fin source · line 1307 · raw
@empty:Bool -> @+seed:U32 -> @+px:F32 -> @+py:F32 -> @+pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> @+vy:F32 -> @+og:Bool -> @+fly:Bool -> @+hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @+edits:List<&2, Edit> -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+tickn:U32 -> @+time:F32 -> @idx:U32 -> State
def MC.plc_with source · line 1310 · raw
@+seed:U32 -> @+px:F32 -> @+py:F32 -> @+pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> @+vy:F32 -> @+og:Bool -> @+fly:Bool -> @+hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @+edits:List<&2, Edit> -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+tickn:U32 -> @+time:F32 -> State
def MC.do_place source · line 1319 · raw
@s:State -> State
def MC.time_wrap source · line 1324 · raw
@ge:Bool -> @t:F32 -> F32
def MC.do_time source · line 1331 · raw
@s:State -> State
def MC.night source · line 1339 · raw
@+time:F32 -> Bool
def MC.adopt source · line 1342 · raw
@l:List<&1, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob>
def MC.step_one_go source · line 1349 · raw
@dead:Bool -> @nm:0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob -> @rec:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob>
def MC.step_mobs source · line 1356 · raw
@+l:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+px:F32 -> @+pz:F32 -> @+night:Bool -> @+tick:U32 -> List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob>
def MC.atk_hit source · line 1364 · raw
@close:Bool -> @m:0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob -> @rec:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob>
def MC.atk_one source · line 1371 · raw
@m:0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob -> @+px:F32 -> @+py:F32 -> @+pz:F32 -> @rec:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob>
def MC.attack_mobs source · line 1381 · raw
@+l:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+px:F32 -> @+py:F32 -> @+pz:F32 -> List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob>
def MC.atk_go source · line 1388 · raw
@atk:Bool -> @+seed:U32 -> @+px:F32 -> @+py:F32 -> @+pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> @+vy:F32 -> @+og:Bool -> @+fly:Bool -> @+hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @+edits:List<&2, Edit> -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+tickn:U32 -> @+time:F32 -> State
def MC.do_atk source · line 1395 · raw
@s:State -> @atk:Bool -> State
def MC.food_pick source · line 1402 · raw
@drain:Bool -> @food:U32 -> U32
def MC.do_food source · line 1409 · raw
@s:State -> @moving:Bool -> State
def MC.regen_pick source · line 1414 · raw
@grow:Bool -> @hp:U32 -> U32
def MC.do_regen source · line 1421 · raw
@s:State -> State
def MC.starve_go source · line 1426 · raw
@starving:Bool -> @+seed:U32 -> @+px:F32 -> @+py:F32 -> @+pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> @+vy:F32 -> @+og:Bool -> @+fly:Bool -> @+hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @+edits:List<&2, Edit> -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+tickn:U32 -> @+time:F32 -> State
def MC.do_starve source · line 1433 · raw
@s:State -> State
def MC.hurt_pick source · line 1438 · raw
@fading:Bool -> @hurt:U32 -> U32
def MC.do_hurt source · line 1445 · raw
@s:State -> State
def MC.do_tickn source · line 1450 · raw
@s:State -> State
def MC.death_go source · line 1455 · raw
@dead:Bool -> @+seed:U32 -> @+px:F32 -> @+py:F32 -> @+pz:F32 -> @+yaw:F32 -> @+pitch:F32 -> @+vy:F32 -> @+og:Bool -> @+fly:Bool -> @+hb:0xc517d5d3635f5bc3ec47170caccaebf0/player.Hotbar -> @+edits:List<&2, Edit> -> @+hp:U32 -> @+food:U32 -> @+hurt:U32 -> @+mobs:List<&2, 0xc517d5d3635f5bc3ec47170caccaebf0/mobs.Mob> -> @+tickn:U32 -> @+time:F32 -> State
def MC.do_death source · line 1463 · raw
@s:State -> State
def MC.do_mobs source · line 1468 · raw
@s:State -> State
def MC.a_break source · line 1475 · raw
@do_it:Bool -> @s:State -> State
def MC.a_place source · line 1482 · raw
@do_it:Bool -> @s:State -> State
def MC.apply source · line 1489 · raw
@+fw:Bool -> @+back:Bool -> @+left:Bool -> @+right:Bool -> @jump:Bool -> @down:Bool -> @brk:Bool -> @plc:Bool -> @flytog:Bool -> @spr:Bool -> @snk:Bool -> @atk:Bool -> @hot:U32 -> @yd:F32 -> @pd:F32 -> @s:State -> State
def MC.tq source · line 1493 · raw
@quit:Bool -> @fw:Bool -> @back:Bool -> @left:Bool -> @right:Bool -> @jump:Bool -> @down:Bool -> @brk:Bool -> @plc:Bool -> @flytog:Bool -> @spr:Bool -> @snk:Bool -> @atk:Bool -> @hot:U32 -> @yd:F32 -> @pd:F32 -> @s:State -> IO(Maybe<&1, State>)
def MC.tick_go source · line 1500 · raw
@a:Acc -> @s:State -> IO(Maybe<&1, State>)
def tick source · line 1505 · raw
@events:List<&1, Event> -> @state:State -> IO(Maybe<&1, State>)
def MC.spawn_go source · line 1510 · raw
@+seed:U32 -> @gy:F32 -> State
def MC.spawn source · line 1513 · raw
@seed:U32 -> State
def main source · line 1517 · raw
IO(Unit)