Kaynağa Gözat

fix: roof hide

xzw 10 ay önce
ebeveyn
işleme
4565a8631f

+ 4 - 2
scene/public/static/js/main_2020_show.js

@@ -6345,7 +6345,7 @@ window.Modernizr = function(n, e, t) {
                 he.on(ue.CLOSED, l),
                 fe.on(ge.CLOSED, l),
                 Q.labels.enabled && Object.keys(e.labels).length,
-                e.floors.length <= 1 || !je.floors.visible ? je.floors.visible = !1 : (y(e, t),
+                (!settings.extractFloor || !settings.extractFloor[number]) && e.floors.length <= 1 || !je.floors.visible ? je.floors.visible = !1 : (y(e, t),
                 C(e.currentFloor, n.mode)),
                 getQueryVariable('m') === '372'&& (je.floors.visible = 1, y(e,t)),
                 r(),
@@ -18960,7 +18960,9 @@ window.Modernizr = function(n, e, t) {
             this.conservativeBoundingBox.max.y = a.lowerMedian(this.collider.children.map(function(e) {
                 return e.geometry.boundingBox.max.y
             }), 5),
-            this.colliderBuilder = null
+            if(!settings.extractFloor || !settings.extractFloor[window.number]){
+                this.colliderBuilder = null
+            }
         }
         ,
         n.prototype.toShortString = function() {

+ 24 - 1
scene/public/static/js/manage.js

@@ -108,6 +108,12 @@ var settings = {
             max: '4k',  //放大最大
         }
     }, //可以稍后自行修改
+    
+    
+    
+    extractFloor : { //提取一部分chunk作为新的floor,该floor不在楼层列表里显示,一般用于飞出后隐藏屋顶
+        'KJ-t-tHpdpKvb0ew' : [1,2,3,4,5,6,7,8], //第0层的第1,2,3个chunk是屋顶 
+    }
 }
 
 
@@ -1698,7 +1704,24 @@ function initByTHREE(THREE){
                 }    
                 
             } */
-     
+            if(settings.extractFloor){
+                let data = settings.extractFloor[number]
+                if(data){ 
+                
+                    let roof = new player.model.floors.list[0].constructor(player.model, player.model.floors.length);//放在第三层 隐藏起来
+                    roof.build()
+                    player.model.floors.add(roof)
+                    
+                    for(let i=0;i<data.length;i++){
+                        let chunk = player.model.chunks[data[i]]
+                        let oldFloor = chunk.parent
+                        roof.addChunk(chunk)
+                        let index = oldFloor.chunks.indexOf(chunk)
+                        oldFloor.chunks.splice(index,1)
+                    }
+                } 
+                
+            }
             
         }