@@ -23,9 +23,12 @@ function loadAndProcessFile(file) {
23
23
createRenderCanvas ( ) ;
24
24
25
25
//Create sliders
26
- var max_y = structureLitematic . regions [ 0 ] . blocks [ 0 ] . length ;
26
+ const max_y = structureLitematic . regions [ 0 ] . blocks [ 0 ] . length ;
27
27
createRangeSliders ( max_y ) ;
28
28
29
+ const blockCounts = getMaterialList ( structureLitematic ) ;
30
+ createMaterialsList ( blockCounts ) ;
31
+
29
32
setStructure ( structureFromLitematic ( structureLitematic ) , reset_view = true ) ;
30
33
31
34
} ;
@@ -35,44 +38,59 @@ function loadAndProcessFile(file) {
35
38
36
39
}
37
40
41
+ function createMaterialsList ( blockCounts ) {
42
+ const materialList = document . getElementById ( 'materialList' ) ;
43
+
44
+ materialList . innerHTML = Object . entries ( blockCounts )
45
+ . sort ( ( [ , a ] , [ , b ] ) => b - a )
46
+ . map ( ( [ key , val ] ) => `<div class="count-item"><span>${ key . replace ( 'minecraft:' , '' ) } </span><span>${ val } </span></div>` )
47
+ //.map(([key, val]) => `<tr><td>${key}</td><td>${val}</td></tr>`)
48
+ . join ( '' ) ;
49
+ materialList . style . display = 'none' ;
50
+
51
+ const materialListButton = document . getElementById ( 'materialListButton' ) ;
52
+ materialListButton . style . display = 'block' ;
53
+ //materialListButton.onmouseover = () => materialList.style.display = 'block';
54
+ //materialListButton.onmouseout = () => materialList.style.display = 'none';
55
+
56
+ materialListButton . onclick = ( ) => materialList . style . display = materialList . style . display === 'none' ? 'block' : 'none' ;
57
+ }
58
+
38
59
function createRangeSliders ( max_y ) {
39
- const slidersDiv = document . getElementById ( 'sliders' ) ;
40
- slidersDiv . style . display = "block" ;
41
-
42
- const minSlider = document . createElement ( 'input' ) ;
43
- minSlider . type = 'range' ;
44
- minSlider . id = 'miny' ;
45
- minSlider . min = 0 ;
46
- minSlider . max = max_y ;
47
- minSlider . value = 0 ;
48
- minSlider . step = 1 ;
49
-
50
- console . log ( "max_y" ) ;
51
- console . log ( max_y ) ;
52
-
53
- const maxSlider = document . createElement ( 'input' ) ;
54
- maxSlider . type = 'range' ;
55
- maxSlider . id = 'maxy' ;
56
- maxSlider . min = 0 ;
57
- maxSlider . max = max_y ;
58
- maxSlider . value = max_y - 1 ;
59
- maxSlider . step = 1 ;
60
-
61
- var y_min = 0 ;
62
- var y_max = max_y ;
63
-
64
- minSlider . addEventListener ( 'change' , function ( e ) {
65
- y_min = e . target . value ;
66
- console . log ( y_min ) ;
67
- setStructure ( structureFromLitematic ( structureLitematic , y_min = y_min , y_max = y_max ) ) ;
68
- } ) ;
69
-
70
- maxSlider . addEventListener ( 'change' , function ( e ) {
71
- y_max = e . target . value ;
72
- console . log ( y_max ) ;
73
- setStructure ( structureFromLitematic ( structureLitematic , y_min = y_min , y_max = y_max ) ) ;
74
- } ) ;
75
-
76
- slidersDiv . appendChild ( minSlider ) ;
77
- slidersDiv . appendChild ( maxSlider ) ;
60
+ const slidersDiv = document . getElementById ( 'sliders' ) ;
61
+ slidersDiv . style . display = "block" ;
62
+
63
+ const minSlider = document . createElement ( 'input' ) ;
64
+ minSlider . type = 'range' ;
65
+ minSlider . id = 'miny' ;
66
+ minSlider . min = 0 ;
67
+ minSlider . max = max_y ;
68
+ minSlider . value = 0 ;
69
+ minSlider . step = 1 ;
70
+
71
+ const maxSlider = document . createElement ( 'input' ) ;
72
+ maxSlider . type = 'range' ;
73
+ maxSlider . id = 'maxy' ;
74
+ maxSlider . min = 0 ;
75
+ maxSlider . max = max_y ;
76
+ maxSlider . value = max_y - 1 ;
77
+ maxSlider . step = 1 ;
78
+
79
+ var y_min = 0 ;
80
+ var y_max = max_y ;
81
+
82
+ minSlider . addEventListener ( 'change' , function ( e ) {
83
+ y_min = e . target . value ;
84
+ console . log ( y_min ) ;
85
+ setStructure ( structureFromLitematic ( structureLitematic , y_min = y_min , y_max = y_max ) ) ;
86
+ } ) ;
87
+
88
+ maxSlider . addEventListener ( 'change' , function ( e ) {
89
+ y_max = e . target . value ;
90
+ console . log ( y_max ) ;
91
+ setStructure ( structureFromLitematic ( structureLitematic , y_min = y_min , y_max = y_max ) ) ;
92
+ } ) ;
93
+
94
+ slidersDiv . appendChild ( minSlider ) ;
95
+ slidersDiv . appendChild ( maxSlider ) ;
78
96
}
0 commit comments