diff --git a/a.out b/a.out index e5baf72..866e6c1 100755 Binary files a/a.out and b/a.out differ diff --git a/display.cmi b/display.cmi index 8bbe9e1..bd005a8 100644 Binary files a/display.cmi and b/display.cmi differ diff --git a/display.cmo b/display.cmo index 41ec53a..92afe27 100644 Binary files a/display.cmo and b/display.cmo differ diff --git a/display.ml b/display.ml index 67d0647..853a419 100644 --- a/display.ml +++ b/display.ml @@ -240,7 +240,7 @@ let draw_cube_p (cube : pt_3d array) screen_wd screen_ht fov r g b = set_line_width 5; for i = 0 to 5 do if draw_faces.(i) then begin - let light = max (0.) (1. -. (distances.(i)) /. 7.5) in + let light = max (0.) (1. -. (distances.(i)) /. 12.5) in let face_R = int_of_float ((float_of_int r) *. light) and face_G = int_of_float ((float_of_int g) *. light) and face_B = int_of_float ((float_of_int b) *. light) in @@ -513,16 +513,16 @@ let chunkify laby sz = let cubes = Hashtbl.create 300 in - let add_to_table w h d cw ch cd = + let add_to_table w h d cw ch cd r g b= (*Printf.printf "(%d, %d, %d) (%d, %d, %d)\n" w h d cw ch cd;*) match Hashtbl.find_opt cubes (cw, ch, cd) with | None -> begin - let dyna = dyn_create {cube = create_cube (w*sz) (h*sz) (d*sz) sz; red = 220; green = 220; blue = 220} in + let dyna = dyn_create {cube = create_cube (w*sz) (h*sz) (d*sz) sz; red = r; green = g; blue = b} in Hashtbl.add cubes (cw, ch, cd) dyna end | Some dyna -> begin Hashtbl.remove cubes (cw, ch, cd); - dyn_append dyna {cube = create_cube (w*sz) (h*sz) (d*sz) sz; red = 220; green = 220; blue = 220}; + dyn_append dyna {cube = create_cube (w*sz) (h*sz) (d*sz) sz; red = r; green = g; blue = b}; Hashtbl.add cubes (cw, ch, cd) dyna end in @@ -534,7 +534,7 @@ let chunkify laby sz = for i = -chunk_dist to chunk_dist do for j = -chunk_dist to chunk_dist do for k = -chunk_dist to chunk_dist do - add_to_table w h d ((w*sz)/chunk_size + i) ((h*sz)/chunk_size + j) ((d*sz)/chunk_size + k) + add_to_table w h d ((w*sz)/chunk_size + i) ((h*sz)/chunk_size + j) ((d*sz)/chunk_size + k) 220 220 220 done done done @@ -543,6 +543,17 @@ let chunkify laby sz = done done done; + for w = -10 to 10 do + for d = -10 to 10 do + for i = -chunk_dist to chunk_dist do + for j = -chunk_dist to chunk_dist do + for k = -chunk_dist to chunk_dist do + add_to_table w (-1) d ((w*sz)/chunk_size + i) (((-1)*sz)/chunk_size + j) ((d*sz)/chunk_size + k) 256 256 32 + done + done + done + done + done ; cubes ;; let cheesify (laby : tile array array array) =