@@ -70,6 +70,10 @@ export class PopupMarker extends Marker {
7070 return true ;
7171 }
7272
73+ static blockClipboardFormat = ( pos , isHires ) => isHires ? `${ pos . x } ${ pos . y } ${ pos . z } ` : `${ pos . x } ${ pos . z } ` ;
74+ static chunkClipboardFormat = ( pos , isHires ) => isHires ? `${ pos . x } ${ pos . y } ${ pos . z } ` : `${ pos . x } ${ pos . z } ` ;
75+ static regionClipboardFormat = pos => `r.${ pos . x } .${ pos . z } .mca`
76+
7377 onMapInteraction = evt => {
7478 let isHires = true ;
7579 let int = evt . detail . hiresHit ;
@@ -96,7 +100,9 @@ export class PopupMarker extends Marker {
96100
97101 if ( isHires ) {
98102 this . element . innerHTML = `
99- <div class="group">
103+ <div class="group"
104+ data-tooltip="${ i18n . t ( "blockTooltip.clipboard" ) } "
105+ onclick="navigator.clipboard.writeText('${ PopupMarker . blockClipboardFormat ( this . position , true ) } ')" >
100106 <div class="label">${ i18n . t ( "blockTooltip.block" ) } :</div>
101107 <div class="content">
102108 <div class="entry"><span class="label">x: </span><span class="value">${ this . position . x } </span></div>
@@ -107,7 +113,9 @@ export class PopupMarker extends Marker {
107113 ` ;
108114 } else {
109115 this . element . innerHTML = `
110- <div class="group">
116+ <div class="group"
117+ data-tooltip="${ i18n . t ( "blockTooltip.clipboard" ) } "
118+ onclick="navigator.clipboard.writeText('${ PopupMarker . blockClipboardFormat ( this . position , false ) } ')" >
111119 <div class="label">${ i18n . t ( "blockTooltip.position" ) } :</div>
112120 <div class="content">
113121 <div class="entry"><span class="label">x: </span><span class="value">${ this . position . x } </span></div>
@@ -122,18 +130,40 @@ export class PopupMarker extends Marker {
122130 let regionCoords = new Vector2 ( this . position . x , this . position . z ) . divideScalar ( 512 ) . floor ( ) ;
123131 let regionFile = `r.${ regionCoords . x } .${ regionCoords . y } .mca` ;
124132
125- this . element . innerHTML += `
126- <hr>
127- <div class="group">
128- <div class="label">${ i18n . t ( "blockTooltip.chunk" ) } :</div>
129- <div class="content">
130- <div class="entry"><span class="label">x: </span><span class="value">${ chunkCoords . x } </span></div>
131- <div class="entry"><span class="label">y: </span><span class="value">${ chunkCoords . y } </span></div>
132- <div class="entry"><span class="label">z: </span><span class="value">${ chunkCoords . z } </span></div>
133+ if ( isHires ) {
134+ this . element . innerHTML += `
135+ <hr>
136+ <div class="group"
137+ data-tooltip="${ i18n . t ( "blockTooltip.clipboard" ) } "
138+ onclick="navigator.clipboard.writeText('${ PopupMarker . chunkClipboardFormat ( chunkCoords , true ) } ')" >
139+ <div class="label">${ i18n . t ( "blockTooltip.chunk" ) } :</div>
140+ <div class="content">
141+ <div class="entry"><span class="label">x: </span><span class="value">${ chunkCoords . x } </span></div>
142+ <div class="entry"><span class="label">y: </span><span class="value">${ chunkCoords . y } </span></div>
143+ <div class="entry"><span class="label">z: </span><span class="value">${ chunkCoords . z } </span></div>
144+ </div>
133145 </div>
134- </div>
146+ ` ;
147+ } else {
148+ this . element . innerHTML += `
149+ <hr>
150+ <div class="group"
151+ data-tooltip="${ i18n . t ( "blockTooltip.clipboard" ) } "
152+ onclick="navigator.clipboard.writeText('${ PopupMarker . chunkClipboardFormat ( chunkCoords , false ) } ')" >
153+ <div class="label">${ i18n . t ( "blockTooltip.chunk" ) } :</div>
154+ <div class="content">
155+ <div class="entry"><span class="label">x: </span><span class="value">${ chunkCoords . x } </span></div>
156+ <div class="entry"><span class="label">z: </span><span class="value">${ chunkCoords . z } </span></div>
157+ </div>
158+ </div>
159+ ` ;
160+ }
161+
162+ this . element . innerHTML += `
135163 <hr>
136- <div class="group">
164+ <div class="group"
165+ data-tooltip="${ i18n . t ( "blockTooltip.clipboard" ) } "
166+ onclick="navigator.clipboard.writeText('${ PopupMarker . regionClipboardFormat ( regionCoords ) } ')" >
137167 <div class="label">${ i18n . t ( "blockTooltip.region.region" ) } :</div>
138168 <div class="content">
139169 <div class="entry"><span class="label">x: </span><span class="value">${ regionCoords . x } </span></div>
0 commit comments