From f276708063d7dcc4d193b6863f845ed76748ef23 Mon Sep 17 00:00:00 2001 From: poikilos <7557867+poikilos@users.noreply.github.com> Date: Thu, 10 Mar 2016 15:34:41 -0500 Subject: [PATCH] working on decachunk generation and reading --- chunkymap-regen.py | 72 ++++-- web/chunkymap.php | 237 +++++++++++++++--- .../images/arrow-wide-down.png | Bin 908 -> 954 bytes .../images/arrow-wide-left.png | Bin 904 -> 933 bytes .../images/arrow-wide-right.png | Bin 891 -> 910 bytes .../images/arrow-wide-up.png | Bin 890 -> 941 bytes .../images/chunk-blank-fancy.jpg | Bin 0 -> 567 bytes .../images/chunk-blank.jpg | Bin 0 -> 542 bytes .../images/decachunk-blank-fancy.jpg | Bin 0 -> 1168 bytes .../images/decachunk-blank.jpg | Bin 0 -> 847 bytes web/example.php | 7 +- web/update wamp www.bat | 12 + 12 files changed, 266 insertions(+), 62 deletions(-) create mode 100644 web/chunkymapdata_default/images/chunk-blank-fancy.jpg create mode 100644 web/chunkymapdata_default/images/chunk-blank.jpg create mode 100644 web/chunkymapdata_default/images/decachunk-blank-fancy.jpg create mode 100644 web/chunkymapdata_default/images/decachunk-blank.jpg create mode 100644 web/update wamp www.bat diff --git a/chunkymap-regen.py b/chunkymap-regen.py index 51b5da4..e787a70 100644 --- a/chunkymap-regen.py +++ b/chunkymap-regen.py @@ -390,7 +390,7 @@ class MTChunks: python_exe_path = None chunks = None decachunks = None - total_newly_rendered = None + rendered_this_session_count = None #region values for subprocess arguments: pixelspernode = 1 @@ -436,7 +436,7 @@ class MTChunks: def __init__(self): #formerly checkpaths() in global scope self.min_indent = " " self.decachunks = {} - self.total_newly_rendered = 0 + self.rendered_this_session_count = 0 os_name="linux" if (os.path.sep!="/"): os_name="windows" @@ -828,8 +828,8 @@ class MTChunks: return "decachunk_"+self.get_decachunk_luid_from_decachunk(decachunky_x, decachunky_z)+".jpg" def get_decachunk_luid_from_chunk(self, chunky_x, chunky_z): - decachunky_x = int(math.floor(chunky_x/10)) - decachunky_z = int(math.floor(chunky_z/10)) + decachunky_x = self.get_decachunky_coord_from_chunky_coord(chunky_x) + decachunky_z = self.get_decachunky_coord_from_chunky_coord(chunky_z) return self.get_chunk_luid(decachunky_x, decachunky_z) def get_decachunk_luid_from_decachunk(self, decachunky_x, decachunky_z): @@ -856,24 +856,31 @@ class MTChunks: def get_signal_path(self): return os.path.join(os.path.dirname(os.path.abspath(__file__)), self.get_signal_name()) + def get_decachunky_coord_from_chunky_coord(self, chunky_x): + return int(math.floor(float(chunky_x)/10.0)) + def check_decachunk_containing_chunk(self, chunky_x, chunky_z): chunk16_coord_list = list() - decachunky_x = int(math.floor(chunky_x/10)) - decachunky_z = int(math.floor(chunky_z/10)) + decachunky_x = self.get_decachunky_coord_from_chunky_coord(chunky_x) + decachunky_z = self.get_decachunky_coord_from_chunky_coord(chunky_z) chunk16x_min = decachunky_x*10 chunk16x_max = chunk16x_min + 15 # NOTE: + 15 even if negative since originally, floor was used chunk16z_min = decachunky_z*10 chunk16z_max = chunk16z_min + 15 # NOTE: + 15 even if negative since originally, floor was used + chunky_x_count=chunk16x_max-chunk16x_min+1 + chunky_z_count=chunk16z_max-chunk16z_min+1 is_any_part_queued = False - chunky_z = chunk16x_min + chunky_z = chunk16z_min + preview_strings = list() while chunky_z <= chunk16z_max: + preview_strings.append("") chunky_x = chunk16x_min - while chunky_x <= chunk16x_max: + while chunky_x <= chunk16x_max: coords = (chunky_x, chunky_z) chunk16_coord_list.append( coords ) if self.todo_index=0: + print(self.min_indent+" "+preview_strings[chunky_offset_z]) + chunky_offset_z -= 1 + print("") decachunk_folder_path = self.get_decachunk_folder_path_from_decachunk(decachunky_x, decachunky_z) if not os.path.isdir(decachunk_folder_path): os.makedirs(decachunk_folder_path) @@ -932,24 +958,27 @@ class MTChunks: def get_chunk_folder_path(self, chunky_x, chunky_z): result = None - decachunky_x = int(math.floor(chunky_x/10)) - decachunky_z = int(math.floor(chunky_z/10)) + decachunky_x = self.get_decachunky_coord_from_chunky_coord(chunky_x) + decachunky_z = self.get_decachunky_coord_from_chunky_coord(chunky_z) result = os.path.join( os.path.join(self.data_16px_path, str(decachunky_x)), str(decachunky_z) ) return result def get_decachunk_folder_path_from_chunk(self, chunky_x, chunky_z): result = None if chunky_x is not None and chunky_z is not None: - hectochunky_x = int(math.floor(chunky_x/100)) - hectochunky_x = int(math.floor(chunky_z/100)) - result = os.path.join( os.path.join(self.data_160px_path, str(hectochunky_x)), str(hectochunky_x) ) + decachunk_x = self.get_decachunky_coord_from_chunky_coord(chunky_x) + decachunk_z = self.get_decachunky_coord_from_chunky_coord(chunky_z) + #hectochunky_x = int(math.floor(chunky_x/100)) + #hectochunky_z = int(math.floor(chunky_z/100)) + #result = os.path.join( os.path.join(self.data_160px_path, str(hectochunky_x)), str(hectochunky_x) ) + result = self.get_decachunk_folder_path_from_decachunk(decachunk_x, decachunk_z) return result def get_decachunk_folder_path_from_decachunk(self, decachunky_x, decachunky_z): result = None if decachunky_x is not None and decachunky_z is not None: - hectochunky_x = int(math.floor(decachunky_x/10)) - hectochunky_x = int(math.floor(decachunky_z/10)) + hectochunky_x = int(math.floor(float(decachunky_x)/10.0)) + hectochunky_z = int(math.floor(float(decachunky_z)/10.0)) result = os.path.join( os.path.join(self.data_160px_path, str(hectochunky_x)), str(hectochunky_x) ) return result @@ -985,8 +1014,8 @@ class MTChunks: #if coords is not None: # chunky_x, chunky_z = coords tmp_path = self.get_chunk_genresults_base_path() - decachunky_x = int(math.floor(chunky_x/10)) - decachunky_z = int(math.floor(chunky_z/10)) + decachunky_x = self.get_decachunky_coord_from_chunky_coord(chunky_x) + decachunky_z = self.get_decachunky_coord_from_chunky_coord(chunky_z) tmp_path = os.path.join( os.path.join(tmp_path, str(decachunky_x)), str(decachunky_z) ) return tmp_path @@ -1186,10 +1215,11 @@ class MTChunks: self.create_chunk_folder(chunky_x, chunky_z) os.rename(tmp_png_path, dest_png_path) print(min_indent+"(moved to '"+dest_png_path+"')") - self.total_newly_rendered += 1 + self.rendered_this_session_count += 1 self.prepare_chunk_meta(chunky_x, chunky_z) # DOES load existing yml if exists self.chunks[chunk_luid].is_fresh = True self.chunks[chunk_luid].metadata["is_empty"] = False + print (min_indent+"{rendered_this_session_count:"+str(self.rendered_this_session_count)+"}") except: print (min_indent+"Could not finish moving '"+tmp_png_path+"' to '"+dest_png_path+"'") else: @@ -1515,7 +1545,7 @@ class MTChunks: this_pos = self.todo_positions[self.todo_index] chunky_x, chunky_z = this_pos chunk_luid = self.get_chunk_luid(chunky_x, chunky_z) - prev_total_newly_rendered = self.total_newly_rendered + prev_rendered_this_session_count = self.rendered_this_session_count is_present, reason_string = self.check_chunk(chunky_x, chunky_z) if is_present: @@ -1533,7 +1563,7 @@ class MTChunks: prev_len = len(self.todo_positions) self._check_map_pseudorecursion_branchfrom(chunky_x, chunky_z) #must check_decachunk_containing_chunk AFTER _check_map_pseudorecursion_branchfrom so check_decachunk_containing_chunk can see if there are more to do before rendering superchunk - if self.total_newly_rendered>prev_total_newly_rendered: + if self.rendered_this_session_count>prev_rendered_this_session_count: self.check_decachunk_containing_chunk(chunky_x, chunky_z) if self.verbose_enable: print(min_indent+"["+str(self.todo_index)+"] branching from "+str((chunky_x, chunky_z))+" (added "+str(len(self.todo_positions)-prev_len)+")") diff --git a/web/chunkymap.php b/web/chunkymap.php index 8c0e2db..6323ce1 100644 --- a/web/chunkymap.php +++ b/web/chunkymap.php @@ -250,11 +250,11 @@ function echo_map_heading_text() { // } // else echo "(missing world name)"; // } -function get_chunk_folder_path($x, $z) { +function get_chunk_folder_path_from_chunky_coords($chunky_x, $chunky_z) { global $chunkymapdata_thisworld_path; //NOTE: floor converts -.5 to -1 (and -1.5 to -2) but .5 to 0 - $decachunk_x = intval(floor($x/10)); - $decachunk_z = intval(floor($z/10)); + $decachunk_x = get_decachunky_coord_from_chunky_coord($chunky_x); + $decachunk_z = get_decachunky_coord_from_chunky_coord($chunky_z); //if ($x<0) { $decachunk_x = $x + $x%10; } //else { $decachunk_x = $x - $x%10; } //if ($z<0) { $decachunk_z = $z + $z%10; } @@ -263,17 +263,175 @@ function get_chunk_folder_path($x, $z) { return $result; } -function get_superchunk_folder_path($x, $z) { +function get_decachunk_folder_path_from_location($x, $z) { global $chunkymapdata_thisworld_path; //NOTE: floor converts -.5 to -1 (and -1.5 to -2) but .5 to 0 - $hectochunk_x = intval(floor($x/100)); - $hectochunk_z = intval(floor($z/100)); + $chunky_x = get_chunky_coord_from_location($x); + $chunky_z = get_chunky_coord_from_location($z); + $decachunky_x = get_decachunky_coord_from_chunky_coord($chunky_x); + $decachunky_z = get_decachunky_coord_from_chunky_coord($chunky_z); + $hectochunk_x = get_hectochunky_coord_from_decachunky_coord($decachunky_x); + $hectochunk_z = get_hectochunky_coord_from_decachunky_coord($decachunky_z); $result = $chunkymapdata_thisworld_path.'/160px/'.$hectochunk_x.'/'.$hectochunk_z; return $result; } +function get_decachunk_folder_path_from_decachunk($chunky_x, $chunky_z) { + global $chunkymapdata_thisworld_path; + //NOTE: floor converts -.5 to -1 (and -1.5 to -2) but .5 to 0 + $hectochunk_x = get_hectochunky_coord_from_decachunky_coord($chunky_x); + $hectochunk_z = get_hectochunky_coord_from_decachunky_coord($chunky_z); + $result = $chunkymapdata_thisworld_path.'/160px/'.$hectochunk_x.'/'.$hectochunk_z; + return $result; +} + +function get_chunky_coord_from_location($location_x) { + $chunk_x = intval($location_x/16); + return $chunk_x; +} + +function get_decachunky_coord_from_chunky_coord($chunky_x) { + return intval(floor((float)$chunky_x/10.0)); +} + +function get_hectochunky_coord_from_decachunky_coord($chunky_x) { + return intval(floor((float)$chunky_x/10.0)); +} + +function get_decachunky_coord_from_location($location_x) { + $chunk_x = get_chunky_coord_from_location($location_x); + $decachunk_x = get_decachunky_coord_from_chunky_coord($chunk_x); + return $decachunk_x; +} + +function get_decachunk_image_name_from_decachunk($x, $z) { + return "decachunk_x"."$x"."z"."$z".".jpg"; +} + +function echo_chunkymap_canvas() { + global $chunkymap_view_x; + global $chunkymap_view_z; + global $chunkymap_view_zoom_multiplier; + global $chunkymap_view_zoom_max; + global $chunkymap_view_zoom_min; + global $showplayers; + + check_world(); + global $chunkymapdata_thisworld_path; + global $world_name; + global $chunkymapdata_worlds_path; + + $x_opener="decachunk_x"; + $z_opener="z"; + $dot_and_ext = ".jpg"; + + if ($chunkymap_view_zoom_multiplier<$chunkymap_view_zoom_min) $chunkymap_view_zoom_multiplier = $chunkymap_view_zoom_min; + if ($chunkymap_view_zoom_multiplier>$chunkymap_view_zoom_max) $chunkymap_view_zoom_multiplier = $chunkymap_view_zoom_max; + + $decachunks_per_page = 1.0/$chunkymap_view_zoom_multiplier; + $view_w = (($decachunks_per_page*160.0)); + $view_h = (($decachunks_per_page*160.0)); + $view_left = (($chunkymap_view_x)) - (($view_w/2.0)); + $view_right = $view_left + $view_w; + //z is cartesian still: + $view_top = (($chunkymap_view_z)) + (($view_h/2.0)); + $view_bottom = $view_top - $view_h; + + echo_chunkymap_anchor(); + echo_chunkymap_controls(); + echo "\r\n"; + echo " ".($chunkymap_view_zoom_multiplier*100.0)."%\r\n";//(string)((int)($chunkymap_view_zoom_multiplier*100+.5)); + //"chunkymapdata/images/compass-rose.png" + //"chunkymapdata/images/start.png" + $decachunky_min_x = get_decachunky_coord_from_location($view_left); + $decachunky_min_z = get_decachunky_coord_from_location($view_bottom); + $decachunky_max_x = get_decachunky_coord_from_location($view_right); + $decachunky_max_z = get_decachunky_coord_from_location($view_top); + $decachunky_count_x = $decachunky_max_x-$decachunky_min_x+1; + $decachunky_count_z = $decachunky_max_z-$decachunky_min_z+1; + + //#region local vars + $generated_yml_path = $chunkymapdata_thisworld_path."/generated.yml"; + //#endregion local vars + + $decachunky_z=$decachunky_max_z; + //echo "
"; + //echo "$decachunky_min_x:$decachunky_max_x,$decachunky_min_z:$decachunky_max_z
"; + $td_placeholder_content=""; + $td_placeholder_content_1px=""; + echo ''."\r\n"; + echo ' '."\r\n"; + echo ' '."\r\n"; + echo " '."\r\n"; + echo ' '."\r\n"; + echo ' '."\r\n"; + $cell_perc=intval(round(100.0/$decachunky_count_x)); + echo ' '."\r\n"; + echo " '."\r\n"; + echo ' '."\r\n"; + echo " '."\r\n"; + echo ' '."\r\n"; + echo ' '."\r\n"; + echo ' '."\r\n"; + echo " '."\r\n"; + echo ' '."\r\n"; + echo ' '."\r\n"; + echo '
'."$td_placeholder_content".'".''.''."$td_placeholder_content".'
".''.''."\r\n"; + echo ' '."\r\n"; + while ($decachunky_z>=$decachunky_min_z) { + echo ' '."\r\n"; + $decachunky_x=$decachunky_min_x; + $cell_perc_remaining=100; + while ($decachunky_x<=$decachunky_max_x) { + $decachunk_file_name=get_decachunk_image_name_from_decachunk($decachunky_x, $decachunky_z); + $decachunk_file_path=get_decachunk_folder_path_from_decachunk($decachunky_x, $decachunky_z).'/'.$decachunk_file_name; + $td_content=""; + if (is_file($decachunk_file_path)) { + $td_content=""; + } + $this_cell_perc=$cell_perc; + if ($cell_perc_remaining>=$this_cell_perc) { + echo " '."\r\n"; + //echo ' '."\r\n"; + $cell_perc_remaining-=$this_cell_perc; + } + $decachunky_x+=1; + } + if ($cell_perc_remaining>0) { + $td_content=$td_placeholder_content_1px; + echo " "."\r\n"; + } + echo ' '."\r\n"; + $decachunky_z-=1; + } + echo '
"."$td_content".''."$decachunky_x,$decachunky_z".'$td_content
'."\r\n"; + echo '
".''.'
'."$td_placeholder_content".'".''.''."$td_placeholder_content".'
'."\r\n"; +} + +function check_world() { + global $chunkymapdata_thisworld_path; + global $world_name; + global $chunkymapdata_worlds_path; + if (!isset($world_name)) { + if ($handle = opendir($chunkymapdata_worlds_path)) { + while (false !== ($file_name = readdir($handle))) { + if (substr($file_name, 0, 1) != ".") { + $file_path = $chunkymapdata_worlds_path."/".$file_name; + if (is_dir($file_path)) { + $world_name=$file_name; + break; + } + } + } + closedir($handle); + } + } + if (isset($world_name)) { + $chunkymapdata_thisworld_path = $chunkymapdata_worlds_path."/".$world_name; + } +} //formerly echo_chunkymap_table -function echo_entire_chunkymap_as_chunk_table() { +function echo_chunkymap_as_chunk_table($show_all_enable) { ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); @@ -303,7 +461,7 @@ function echo_entire_chunkymap_as_chunk_table() { if ($chunkymap_view_zoom_multiplier<$chunkymap_view_zoom_min) $chunkymap_view_zoom_multiplier = $chunkymap_view_zoom_min; if ($chunkymap_view_zoom_multiplier>$chunkymap_view_zoom_max) $chunkymap_view_zoom_multiplier = $chunkymap_view_zoom_max; //$zoom_divisor = (int)(100/$chunkymap_view_zoom_multiplier); - $chunk_assoc = array(); // used for determining which chunks are on the edge, since not all generated map tiles are the same size (edge tile images are smaller and corner ones are smaller yet) + $chunk_assoc = array(); // used for storing players; and used for determining which chunks are on the edge, since not all generated map tiles are the same size (edge tile images are smaller and corner ones are smaller yet) $chunk_count = 0; $x_opener="chunk_x"; $z_opener="z"; @@ -312,29 +470,30 @@ function echo_entire_chunkymap_as_chunk_table() { $chunkz_min = 0; $chunkx_max = 0; $chunkz_max = 0; + $chunks_per_page = (1.0/$chunkymap_view_zoom_multiplier)*10; + + $view_w = (($chunks_per_page*16.0)); + $view_h = (($chunks_per_page*16.0)); + $view_left = (($chunkymap_view_x)) - (($view_w/2.0)); + $view_right = $view_left + $view_w; + //z is cartesian still: + $view_top = (($chunkymap_view_z)) + (($view_h/2.0)); + $view_bottom = $view_top - $view_h; + + if (!$show_all_enable) { + $chunkx_min=intval($view_left/$chunkymap_tile_original_w); + $chunkx_max=intval($view_right/$chunkymap_tile_original_w); + $chunkz_min=intval($view_bottom/$chunkymap_tile_original_w); + $chunkz_max=intval($view_top/$chunkymap_tile_original_w); + } global $showplayers; $players = array(); $player_count = 0; $character_icon_w=8; $character_icon_h=8; global $chunkymapdata_thisworld_path; - if (!isset($world_name)) { - if ($handle = opendir($chunkymapdata_worlds_path)) { - while (false !== ($file_name = readdir($handle))) { - if (substr($file_name, 0, 1) != ".") { - $file_path = $chunkymapdata_worlds_path."/".$file_name; - if (is_dir($file_path)) { - $world_name=$file_name; - break; - } - } - } - closedir($handle); - } - - } + check_world(); if (isset($world_name)) { - $chunkymapdata_thisworld_path = $chunkymapdata_worlds_path."/".$world_name; $generated_yml_path = $chunkymapdata_thisworld_path."/generated.yml"; if (is_file($generated_yml_path)) { $map_dict = get_dict_from_conf($generated_yml_path,":"); @@ -508,17 +667,19 @@ function echo_entire_chunkymap_as_chunk_table() { } $chunk_assoc[$chunk_luid]["is_rendered"] = true; if ($is_verbose) echo "$chunk_luid,"; - if ($x<$chunkx_min) { - $chunkx_min=(int)$x; - } - if ($x>$chunkx_max) { - $chunkx_max=(int)$x; - } - if ($z<$chunkz_min) { - $chunkz_min=(int)$z; - } - if ($z>$chunkz_max) { - $chunkz_max=(int)$z; + if ($show_all_enable) { + if ($x<$chunkx_min) { + $chunkx_min=(int)$x; + } + if ($x>$chunkx_max) { + $chunkx_max=(int)$x; + } + if ($z<$chunkz_min) { + $chunkz_min=(int)$z; + } + if ($z>$chunkz_max) { + $chunkz_max=(int)$z; + } } } else { @@ -568,7 +729,7 @@ function echo_entire_chunkymap_as_chunk_table() { $chunk_yaml_name = $x_opener.$x.$z_opener.$z.$dot_yaml; //$chunk_yaml_path = $chunkymapdata_thisworld_path.'/'.$chunk_yaml_name; //$chunk_yaml_path = $chunks_16px_path.'/'. - $chunk_yaml_path = get_chunk_folder_path($x, $z).'/'.$chunk_yaml_name; + $chunk_yaml_path = get_chunk_folder_path_from_chunky_coords($x, $z).'/'.$chunk_yaml_name; //$chunk_genresult_name = $x_opener.$x.$z_opener.$z.$genresult_suffix_then_dot_then_ext; //$chunk_genresult_path = $chunkymapdata_thisworld_path.'/'.$chunk_img_name; $td_style_suffix=""; @@ -664,7 +825,7 @@ function echo_entire_chunkymap_as_chunk_table() { echo_hold("
"); //causes child's absolute position to be relative to this div's location, as per http://www.w3schools.com/css/tryit.asp?filename=trycss_position_absolute $chunk_luid = "x".$x."z".$z; $chunk_img_name = $x_opener.$x.$z_opener.$z."$dot_and_ext"; - $chunk_img_path = get_chunk_folder_path($x, $z).'/'.$chunk_img_name; + $chunk_img_path = get_chunk_folder_path_from_chunky_coords($x, $z).'/'.$chunk_img_name; if (is_file($chunk_img_path)) { echo_hold( ""); } @@ -761,7 +922,7 @@ function echo_entire_chunkymap_as_chunk_table() { $img_style.="opacity: 0.4; filter: alpha(opacity=40);"; //filter is for IE8 and below $text_style="color:white; opacity: 0.4; filter: alpha(opacity=40);"; //filter is for IE8 and below } - echo_hold( "
$text
" ); + echo_hold( "
$text
" ); } //$position_offset_x+=$character_icon_w; } diff --git a/web/chunkymapdata_default/images/arrow-wide-down.png b/web/chunkymapdata_default/images/arrow-wide-down.png index 403ee4100ede88b842e23045a415dd9b26b80141..cd9acfe853f70548ae16a845771dcb1304fa7477 100644 GIT binary patch delta 926 zcmV;P17ZA(2f7DaiBL{Q4GJ0x0000DNk~Le0005P0000P2nGNE0HT&I9RL6T24YJ` zL;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2jBw=4_CB($z=iIK1CW~f=85-L7JJw*Hk6Xx>@8O-p zllS+_H(v<=fF>4V1VH_Hp7*V!TaspiASi#=;e4}_4uT+9WV%3oeZUBSx<~Myq$NpT zO8VT)o;&Bt7dYRKlIA51o7sVL?pLM^5JI3)BRC`J+0f8XXmD^)sZ{Ewq|Xjxc-{!k z`M$62?rvo=nISXVCx!qa1R61d4<#+cVzJQl^t8g^usS+AluD((kYs0#VRZz3-&cP$ z8rA;(zA~B29W(paIrke=2M8h1C=q-lX?|>MO!0VJq0s-g->YKiN&3{xR!$Scw8J7WaZOB2yz_lH99DaKyEZm9ZcF;aIk$42 z2v+p;^i;>NKn#J4X<-Dwh24;(QmKD*i*OjA=+k~HIa-s58;ID1?KC8=C4t5_^D zb%2c!XbjG|RWsYoX0yY^Vo|-ly)}>P?Cex16jC~!{@TnwcFz4$V-uVo9UZN?Sym#L zNF=nnx>}a>T@VCM_yqt$2sAUrKLrYNTlX*kw`>sZEf1z+#E2okDPyV$*Ks> z`M!T-1SM&Cd0EM1vJ%0cnLI!Ufkunrhv{^Buuv!*xfynKb*Z(rRa;wI17=n*v#%u0 zpL97ikw_?+OiI!NHbJ0%_-7fQ&OFciUedzI$cW+2(e03igLGKQ~mx!jp! zNCW{w2wayK{#A+L?(XiXVn_r5LI_;P82*#XKM@27A<&dDe6h2$^G!aV*ZTUp*4EaDAaFWGc%UA*B8P9Y ze|q@wZV&`ZOa%bYY%%=d@YPEI000000C=zd13)&qs$Uz&fB*mh07*qoM6N<$f?zhD AmjD0& delta 880 zcmV-$1CRW=2aE?>iBL{Q4GJ0x0000DNk~Le0001>0000M2nGNE07qPxMF0Q*24YJ` zL;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2jBw;3oj)N$>7$J zTPuG8@JU2LRA}Dq+RsbVaU93-=Xa5Y6xp@Qz$LU)T)K=JZOV+@{(o-H{mkxzN zFeZs5!kSX#DTH0Rj_}mQh9UI*R;Mo_s0{tizoB2#&DlEW$RC?Ors=`=>-J?IK8H6C zUZ3xG->>raeG~pQz+fU4e23$6E+>@qmEL)bCGT0Nj6$@N7Dr zzM0GADmJ0R;h?6bhWYvV>!xnxOx?Hv4DEI7CX-20sT4p|noj^$LiowljjUx^?YkjV zRh8A%RU8gSo2sg9s;bJdTV)h^6<79Q;wdoV^Z5vcLRIfm2A>?e(t!JF!Y`(7{I)F1 zx3aQAb91xc6M!dz@K+|2IWT`h!6yKZ3gOoh!sX@VeIXQl0`Pwz{F%vQ{Cgo3d;;*q z5DGp4cpM0SltU=^1mJNY{8mDk&1Pw7X%Tz^@I(-PUs_talg(zCo}OlEYD(}`8Tli+ z%4~c+{d(i_VK^EYlc^j$@;O$O2}dJufIimW?Fzms^A`#a(9vPA39JkN0000u diff --git a/web/chunkymapdata_default/images/arrow-wide-left.png b/web/chunkymapdata_default/images/arrow-wide-left.png index f2cf2b14490b9ed14ead6e67344462e6275340f6..f71272c641c2cfdc2754f7adc621b0a3290a7bef 100644 GIT binary patch delta 905 zcmeBRU&ERLtq$L>`7!Pr<0a;S%N!CD$Ey>&6h2cL4F4((# zGEjuGz$3Dlfq`2Xgc%uT&5-~KvX^-Jy0SlD=Hgcrl>ZmGYhtu^Ju|1Li(^Q|t+&^9 zXGfa+ozGVAhi9TUERF-gv-$ z>_;1`ug?PAJ>Fu?sjlC?lxV$8us(6@m6GJqt4}?`rhoZ8^T@@C`{sO)nWxMMv>qF% zhX_8{Tl{lT{e!*rZ|3~Ia3=1Ly5Rf2>67F{;&=YWzxOT&YTmXazrDV_-PFkF)B5+pE2r@B@h#fBcW?H&o#tuZ zq9*Bm6_Sva&feuO;wmK}F=2_vCHAjx!;{$T-il0EvUaVmufMB=@XF^_w}{ zk`uDBye8F6E3s_}u(dwK*BCu%UfSl!-v0jWch(1JWTd6JO{%k!l$)##&k*=)nk zossgZ^NT_ zCx82!i#reSdfqSPTC;wAc3z&}qKmOIe{^gQeXCJ@Vq%!lS_VYXP zzkmOhmzR}wT^ZsPc;%1St$X*vR)(Cic&=ppd+F+v8EFSCzlZOPIk%OYmzURbQdwEq zx?{Y1KZ}@czW=C&jh$WEIsfdN&~W2@vjdg}b#5*3eeQWD;Lg%)%PmzgyOu57HhE+G z!oJ7b29-ntFOseli)Y70pqnS0& zJH*7rw{F^`qmxlu8anA+tAJeW58h4R)>vD+A5GdQ z_rs{=L+P52w~y|=p}zH^wr9MFUSNFX`}fzL31TEcRTPnb{{I*&1DD0+)TQQvBs^XH KT-G@yGywpx9-Dmt delta 876 zcmZ3=-oYN-8Q|y6%O%Cdz`(%k>ERLtq{V=E0S6n9`sf17;3xeM`v`duC3I)~;uI zK#>C<|7YxL%kI6|swb@B(z`&wQF#9WhnK6evX5{4;h=jtbL)CvaoJrLdl%XXd~9u8 z#JQz4?WL3K<4vnC>D34vEt%|bYetHYsF&qtsWd)&z32CKKIbt$wYxts@9~O<)A$-$ z#Uc`riF!Eyf8`A$pTkCHCQ7&J9+gTZ80JW(*&E1lwQ{sNO}~CO&;0oD z<4b~8CK%28@$l>KeO7Hi(^>XpWM(d0ym;}0`hCYAKYa1R!_vkk$M={pyXn+Lv9Yn? z$27W}Vq;|+nC=u>I>=9RX56-Y`^=d$8GkT**&(xF^4YUzQ!l=JnaRMtWBIG7W1&oM zPcM8}@UgPvXwsQ;=a}}KU+8+hP;72iR+d(0US8g_3)_EcG`!~8V&3kiG;z_3PoIpu zy}cRMH}0#c-@2(TvA&*cjr#ahLuS#ROh(HvobYK zdhzFvO?GxR!{k-#zD|z{+IyVl1|Gf(lBn1I}Bl^$SdO{?!wuUi(h^1;cIosT|N z1c)qE*s*b=V8h+JcXywxaQgVGcD~mkhPeIjyM_1c+h-?l|MgdG=cIzA6;^YPZF{>c zNm>6!|J+AUFBLs?i%*UEcc43L!s|z>-j_>1Y%*Pc>*}Kw&sOgG#`dE3XwuA#EkCAz z@9yqC9eh00D*wsamnBl$Z~v`7enMPaJTfwpQ6jAL?1~lZPdr+_Etmb%%fFn*}|cvPI3G7C(i%8ckf=AUoKa-E}#C^VQam1MB7h==xGdWp|Qq!OKzX>Tfz6D se(`mwjeE2>bT%Ad;>JS!zy2ZrWZ}l&Til`=LD_}F)78&qol`;+07B@SaR2}S diff --git a/web/chunkymapdata_default/images/arrow-wide-right.png b/web/chunkymapdata_default/images/arrow-wide-right.png index 5fb28508a6cc102959882652fddf2baad37bdf4a..3ed484bbc64bc2958839743d2a17a2f207c9669f 100644 GIT binary patch delta 881 zcmey(*2f;*8Q|y6%O%Cdz`(%k>ERLtq$L>`7!Pr<0a;S%N!CD$Ey>&6h2cL4F4((# zGEjuGz$3Dlfq`2Xgc%uT&5-~KvX^-Jy0SlD=Hgc{Tm1g+go)8Q^`AUl978H@y}fSj zJv&h5_{aO6Uwr2rbrlfazFA8|XiK0#vyk}aDP?cZ-pdrPZjM`%{ZjjbncD}pr2!e< z^OrtQYSZ9b9-Jxb6L?W?qm7x`F_-0a_TC(SPEIfWG{?qY1!yZC@W;M>PVsjjI`?Sv zB2lLAsWKMjez{%!f8#=++KEe!@7=rCYx(6#D#<;MKJF+hFZZ>ZzrOnQqNN9NJ-Nk`uDHjp6~C^YnMEEWwk!wrln>7g^lWVGPiEt4Ac?J)(}}6qTgEg z{PWM0#oAqAw@+{0^=grNtYm54-SYRf0mUkNO4qJkd-Ac;!wc80O}lyH#tZKM*IfMy z>kH0yG9O#9bLY;SeJhVi-|+U_-m~)F%sF$eeEPIWeVW#h?tluOQO|T|G9Z-SETpsG%+#?GBq$Z7UtWt?kR`Nx)i5NOLNRtpF4MMRby)_ ztLLuRY=xRf`@O7g+_`fF=v3Xt@UM3s?~lx`U$cIFypCA+vc-!Zp9s*Ke)-OwIVyK8 zb06HV{v)3Kwtl_S!h*v5e1Bk+Oj>gDX5`Z%OV27PmV=Yq<}2*|K7Y;D-PzgMoqzw< zu3fVxqpmJ)(mOWC4?FH14+(yF#D0=VSXH$-N0WH^zmWHP|0k@Sy2Rg6py#7ID7WAN css9*0O3!=Ne&`f0DElyYy85}Sb4q9e02~vE;s5{u delta 861 zcmeBU|IHTN8Q|y6%O%Cdz`(%k>ERLtq{V=E0S6n9`sf17;3x1IhP)CY_%cty6#B)5S3))Oj(!gOP&IPGgN)KmV^q-S(t znpt;~v|;a~W1*R`5{5~;X0{x8mb+wjak=sLGyR7j8a(Ig`6bX_D17<|uWlo&SVRIk zQ4bdUFD-Lb>2jd1(cLhMRj!8`*fIiji}vdlgml|5KC_kM_ggNUurhQ{@&)@ahxts! za{cV{&$nOAQk{Kvm5|svk$K`=XKwD!Z@KUA%S83dG>}NuGLq)^ri>DEV(t+ z>(%~TzTeZ^9zOnZUNhm|>#s&OHZj{)PC1lRzpvdO2?=(=MJnpMU?|5wp(iLg(rX$(#l9jk_N|e%v}Uys&=lx^>eQbx%z?!fK? zTy^F)elI=2-pWd8{(18zJrk?XbxS7wTHoB<{4d9BbyaosX(pjgme;ReGxSTldZ*vJ z9uo9_^2wB6`g(dVUcO{ZsLajnbx~scU?jnJc58{yCd)VTgFS7x@8AD^&z?Og<>k|R zdwClI3}j~Ie(PAe?%&#kIbCTzr-1@hcc)!mHt{a^gV5C(M|++IJ7Od)cyfE7ADzEe U?`U9GKPZEEy85}Sb4q9e0K^!GDF6Tf diff --git a/web/chunkymapdata_default/images/arrow-wide-up.png b/web/chunkymapdata_default/images/arrow-wide-up.png index b80fa1f6aa1610c4776d2e00f2d148b97431fdb6..71d1766b16e94f08fc9bdbf339c911fc202001d8 100644 GIT binary patch delta 913 zcmeyxww67*Gr-TCmrII^fq{Y7)59f*fr0T5kS)o<1|%0v(~|{KY)RhkE)4%caKYZ? zlYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPNGZ(*tg-iH{=@X;1>zM^TT^vIyZoR#A z-dj0c=J?0+F4Edt7F=J>?&$o%-EZ#Urgjml+`IM;tn2rF(Gcl!T6u$&znhz@`c85_ z4wbV$B&b*W^G;H z0kX)&b%QI<|I%~0hM{0B3B^4Aetsgy4MAEz)VUVq=K3Z|Xz@6|eg8f?CFRMj-)`>i zvy&@4co>~HN{U#XtJv<=Z91A1xHQPKQ0Dyc!aahn7sX$eM9uVhwoRfgv*+gl%k3w( zfD}LSE2ykbN;))q)~sEIAT5*Xwp`P*d>$v6Y{zxDV9)a9?#|B6y2&%VmWHeh`E+cC z^7A{{%lHJG7ED&!A;i*XZfRNhxG-a7NR~^%#*cf8--RciIbK~|{dnGU&Dm$;e*exf zTYdTRU>X&|s%+FuX#?Bu7j%Rk# zkA=l~&C40?#CHiY@GH;t+yA=o#pSTl#qYar;I`?P86H%@;BV3aLC z@?pP5SJUUu#k~CW{P(q+re~j&_}s0sdGFr0=1CFjuZL=ggy>CIefj%!UpOPsyK@a| zGJ7o7hpnC;9}}}8YVAGCrtqX6o0s^Pm6h26E37O`seH~67pblKvUSON)vKy!qq654rvhVkuH51GDogWps|=s%?0F-YSJYD@<);T3K0RZT~k4XRk delta 861 zcmV-j1ETz`2l@tEiBL{Q4GJ0x0000DNk~Le0001>0000M2nGNE07qPxMF0Q*24YJ` zL;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2jBw;3or{DMdOE& zTPuG8-bqA3RA}Dq+r4WOaTo{i?=P*X1%+nSq0p4jmrUm%l)DI?8VAQF&{Yl`D}r1P zu~earp+XA|9n9u-7&1fxMv}$5=pZ+=wAYZk^ndUrNn_JE*n>39iwPQsKF<_#xo7zD z;d$-{7q<0Q1yz3)i$rArOj6_*ltzE$q6mNb#`gd~1i)G>5`9RC5Wqp=TLiEb2n3iY ziVVO8A?&Y)?uA2?LhtxCL{Vf53k&f3{V0`6I5;@CYiRmcPT)UNN(Atq;|qtwV2l9( z{C+>m;6U&-B0M}igl*e|kO2N&eDQc3rfI@7P3-UQV|seJ z3flY}?LQmUYYRc4KmKvKzwNhNfTO1U^e? z6TnuJZ#@_cvQQ}05nnQy1b}CfBCmgP0T}0U}*Z~y}i9T#u$7)U(5S_J|C*psxt`*Aprzp zk?2w{YZt(hq{yqy*ExYt8=5|p&*yK9j*entVxsLNY(RLC6Zp(|&Y#|fIVpd)+x@3& zH`=a;q{zzvHdR$cCez;4@bIwnu|gB@oKL`$XSk|mS>n;r(V5e16TX#h{R~Y{1Muwb z?p_}o8^iec_^IoOM8cV*%aS5LCxG+}=pg)QS(aF<)i5iM+`vB?y79~Y~MJW@&Zg3t0aCJIx n^w5g|*aYxJQsg(3?&urmOg{mQjgwS zJ?KMtcHLB3Y7oWQ%QAfX&o`^5`VHu`)9nBv!ihPcKfr6>40^*sKf1jhUPZ^MIrOG{Ru3zO7Vr5Y>10(*1NZY_^(7tC6Hh z9)gbJ2v>MQcuAmw=V(8?3vlgy&&6Sn(GgK@DMiv3! z)B89%H|PcxNkT)qri(U<4dKf|6hw2tLd-Dy1z<~neojE(8OsxD1kC#GixeL&JhJ%V uC|l@54$|n=JX5l`CW2hL(X@Z}haG(l&wp#x(4@q@<#3wJ?kAUzdiDt^>{>?v literal 0 HcmV?d00001 diff --git a/web/chunkymapdata_default/images/chunk-blank.jpg b/web/chunkymapdata_default/images/chunk-blank.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dad38fe9595a0317e94ecf515b93d755fce75e9d GIT binary patch literal 542 zcmb7&xc$dUMsx7t8bXiYc^G-H0+7V~xo& zQ{;KimPJ{*!nvv*a8>)-IUcbeh8SacbUYq~@gT&|eL`A1nduwT50$IJzm*=~Ef}oH zLwVAk(j%hu$9Gv-hhJNy7nGWySTjKP$UBUGnj68an8~O~2l&4MP1MppKz#u_BYN#N cVkbcD$>g&&v>eHIs{@_*P^T@hCsKgt56fgoumAu6 literal 0 HcmV?d00001 diff --git a/web/chunkymapdata_default/images/decachunk-blank-fancy.jpg b/web/chunkymapdata_default/images/decachunk-blank-fancy.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6adba69810a156a2e1f7e1192d8b7f5461264fbe GIT binary patch literal 1168 zcmb7?Yiv_x7{{OY^qltebd&eAhqfzVPob?n%gRP23ns+%0;6qMaxBKw3ue$(iUT9K z;3dS>9jP18Ah*XxcgR>U<+rpS~#=Ww$5d@t=X{FZ00NY4ekeoa-q!bt@3)RTpqzw zOoDVe9YZrFhB0|;W}D}KTVWhn8f1_)hy{X08Wt5Mz*6iV!E!@{uIMPf|J^|rzJ(GE z0s?C=0J^pAAtK`^I0gWd1m$>kyUYO{jyuJ`qa4KvBbQ?YfxvknJW%q9IN)v0&>TR9<6Iz-Y6&qWoiWgC=F~gr0b0PWa^Ubv2x>&QU{!>BxrTEt>+L}MA*f0=k#^r-z5%$;f_qwTZe6_gc7CuJ@SAUeS{<33a()mWq zE62{?8yRTSSlkKnJJGt{c71ice&}@F#KLczJHpla(+9^Ud;`hupYm62ez#^}I@!zL zKqCj=48Of+=*efMQzv_`2xZ}6c`BJ{C-LK`@AA&BO!2+psjY@OfmYr{}qkyZSoQFI*h`)#uvW@*Z*IN+v>fW>>-hc%Hp0Ekeb+UoTE(Ee17k z#U3LT^P3!jsz0e=#dGS&i65Jq-rXqFUUl!9kB=sVXspe&RFSaW?oxhuIsaBRQE51u zob7r4{<@r0NsczyKbV;ucNvYw#r35o^MmsZGhc5B2e%n5KfjuEkjI_Dqn6y_OKnqg zxwG^}qBI-3tv|E((udi`MCkgs>5|fFotw;#4sQ+O!8v<4p8u5IK4o8pkF|aozmQGL z9x(5GYSUm_uJVv!ajKgeLGTp>3%ZqpOMM2xeV;{q2!A#{iSb4T zq-sap_2h1H`R?C|Pw@@*c;3uGL|E`ce8*^ZwLDub&!^XytBdJTb8;GAF@qE$1uNrF zTB$5kdB5M&MP3vpH>RwHwya!bj2&Ay@*#v`Z+|lOlc5hjH6h70nHnfH@TDpJzZD2rDf>_nS4l^1Dg9+wT|M^6r{1A|)1|g!`S4 uL^X91;)~cirB}C8wh~ky@RZh1NH)*jHHSMG$;}S0?4Mq>M28cJc>VyD1%q_} literal 0 HcmV?d00001 diff --git a/web/example.php b/web/example.php index 9347628..93189bc 100644 --- a/web/example.php +++ b/web/example.php @@ -12,7 +12,7 @@ error_reporting(E_ALL); if (is_file('chunkymap.php')) { //echo "including..."; include_once('chunkymap.php'); - //echo "about to call echo_entire_chunkymap_as_chunk_table..."; + //echo "about to call echo_chunkymap_as_chunk_table..."; //The following is not needed, since chunkymap.php should be included above and puts all $_REQUEST array variables into $GLOBALS array //if (!isset($_REQUEST['chunkymap_view_x'])) {//if (!isset($chunkymap_view_x)) { @@ -26,9 +26,10 @@ if (is_file('chunkymap.php')) { echo ""; set_chunkymap_view($chunkymap_view_x,$chunkymap_view_z,$chunkymap_view_zoom_multiplier); echo "
"; - echo_entire_chunkymap_as_chunk_table(); + echo_chunkymap_as_chunk_table(false); + echo_chunkymap_canvas(); echo "
"; - //echo "returned from echo_entire_chunkymap_as_chunk_table."; + //echo "returned from echo_chunkymap_as_chunk_table."; } else { echo "missing chunkymap.php"; diff --git a/web/update wamp www.bat b/web/update wamp www.bat new file mode 100644 index 0000000..368f121 --- /dev/null +++ b/web/update wamp www.bat @@ -0,0 +1,12 @@ + +SET SRC_MT_WEB_PATH=%USERPROFILE%\Documents\GitHub\minetest-chunkymap\web +SET DEST_MT_WEBSITE_PATH=C:\wamp\www +copy /y "%SRC_MT_WEB_PATH%\browser.php" "%DEST_MT_WEBSITE_PATH%\" +copy /y "%SRC_MT_WEB_PATH%\chunkymap.php" "%DEST_MT_WEBSITE_PATH%\" +copy /y "%SRC_MT_WEB_PATH%\example.php" "%DEST_MT_WEBSITE_PATH%\" + +SET DEST_MT_WEBSITE_CHUNKYMAP_IMAGES_PATH=%DEST_MT_WEBSITE_PATH%\chunkymapdata\images +copy /y "%SRC_MT_WEB_PATH%\chunkymapdata_default\images\*" "%DEST_MT_WEBSITE_CHUNKYMAP_IMAGES_PATH%" + + +if NOT ["%errorlevel%"]==["0"] pause \ No newline at end of file