1111 < link rel ="stylesheet " href ="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap ">
1212 < link rel ="stylesheet " href ="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css ">
1313 < link rel ="stylesheet " href ="https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.19.0/css/mdb.min.css ">
14- < link rel ="stylesheet " href ="css/main.css ">
14+ < link rel ="stylesheet " href ="css/main.css?11 ">
1515 </ div >
1616
1717 < div js >
2525 </ head >
2626 < body >
2727 < canvas id ="c "> </ canvas >
28+ < div class ="initLoading ">
29+ < img src ="assets/images/loadingx.gif " class ="loadingBar ">
30+ </ div >
2831 < div class ="gui ">
2932 < div class ="inventoryBar "> </ div >
3033 < div class ="gameMenu ">
@@ -75,17 +78,20 @@ <h3>Gra zatrzymana</h3>
7578 </ svg >
7679 </ div >
7780 </ div >
81+
7882 < script type ="module ">
7983
8084import * as THREE from './module/build/three.module.js' ;
8185import { BufferGeometryUtils } from './module/jsm/utils/BufferGeometryUtils.js' ;
8286import { SkeletonUtils } from './module/jsm/utils/SkeletonUtils.js' ;
8387import { FBXLoader } from './module/jsm/loaders/FBXLoader.js' ;
8488import Stats from './module/jsm/libs/stats.module.js' ;
89+ import { Tools } from './module/tools.js' ;
8590
8691
8792var canvas , renderer , scene , camera , stats , raycaster ,
88- gameState = "menu" , world , cube , FPC , socket , playerObject , textureAtlasMapping , materials , parameters ;
93+ gameState = "menu" , world , cube , FPC , socket ,
94+ playerObject , textureAtlasMapping , materials , parameters ;
8995
9096
9197class Terrain {
@@ -434,6 +440,7 @@ <h3>Gra zatrzymana</h3>
434440 // console.log(id)
435441 if ( voxels [ id ] != world . getVoxel ( ...id . split ( ":" ) ) ) {
436442 world . setVoxel ( ...id . split ( ":" ) , voxels [ id ] ) ;
443+
437444 }
438445 } )
439446 }
@@ -692,8 +699,6 @@ <h3>Gra zatrzymana</h3>
692699 } ) ;
693700 scene = new THREE . Scene ( ) ;
694701 scene . background = new THREE . Color ( "lightblue" ) ;
695- const density = 0.01 ;
696- // scene.fog = new THREE.FogExp2(new THREE.Color(0xb0b0b0), density);
697702 camera = new THREE . PerspectiveCamera ( 75 , 2 , 0.1 , 1000 ) ;
698703 camera . rotation . order = "YXZ"
699704 camera . position . set ( 26 , 26 , 26 )
@@ -708,7 +713,7 @@ <h3>Gra zatrzymana</h3>
708713 scene . add ( directionalLight ) ;
709714 raycaster = new THREE . Raycaster ( ) ;
710715
711- var loader = new FBXLoader ( ) ;
716+
712717 var textureLoader = new THREE . TextureLoader ( ) ;
713718 }
714719
@@ -758,14 +763,32 @@ <h3>Gra zatrzymana</h3>
758763
759764 //Load models
760765 {
761- loader . load ( 'assets/models/clouds/clouds.fbx' , function ( object ) {
766+ var manager = new THREE . LoadingManager ( ) ;
767+ // manager.onStart = function ( url, itemsLoaded, itemsTotal ) {
768+ // console.log( 'Started loading file: ' + url + '.\nLoaded ' + itemsLoaded + ' of ' + itemsTotal + ' files.' );
769+ // };
770+
771+ manager . onLoad = function ( ) {
772+ console . log ( 'Loading complete!' ) ;
773+ } ;
774+ // manager.onProgress = function ( url, itemsLoaded, itemsTotal ) {
775+ // console.log( 'Loading file: ' + url + '.\nLoaded ' + itemsLoaded + ' of ' + itemsTotal + ' files.' );
776+ // };
777+
778+ // manager.onError = function ( url ) {
779+ // console.log( 'There was an error loading ' + url );
780+ // };
781+
782+
783+ var fbxl = new FBXLoader ( manager ) ;
784+ fbxl . load ( 'assets/models/clouds/clouds.fbx' , function ( object ) {
762785 object . scale . x = 0.1
763786 object . scale . y = 0.1
764787 object . scale . z = 0.1
765788 object . position . y = 100
766789 scene . add ( object ) ;
767790 } ) ;
768- loader . load ( 'assets/models/ghast/ghast.fbx' , function ( object ) {
791+ fbxl . load ( 'assets/models/ghast/ghast.fbx' , function ( object ) {
769792 var texturex = new THREE . TextureLoader ( ) . load ( 'assets/textures/ghast.png' ) ;
770793 texturex . magFilter = THREE . NearestFilter ;
771794 object . children [ 0 ] . children [ 0 ] . scale . set ( 0.01 , 0.01 , 0.01 )
@@ -779,7 +802,7 @@ <h3>Gra zatrzymana</h3>
779802 scene . add ( ghast2 )
780803 ghast2 . position . set ( 3 , 0 , 0 )
781804 } ) ;
782- loader . load ( 'assets/models/player/player.fbx' , function ( object ) {
805+ fbxl . load ( 'assets/models/player/player.fbx' , function ( object ) {
783806 var texturex = new THREE . TextureLoader ( ) . load ( 'assets/textures/steve.png' ) ;
784807 // console.log("Creating new player:"+p)
785808 texturex . magFilter = THREE . NearestFilter ;
@@ -798,7 +821,7 @@ <h3>Gra zatrzymana</h3>
798821 $ . get ( "assets/textureMapping.json" , function ( textureMapping ) {
799822 textureAtlasMapping = textureMapping
800823 } )
801- var texture = new THREE . TextureLoader ( ) . load ( 'assets/textures/textureAtlas.png' ) ;
824+ var texture = new THREE . TextureLoader ( manager ) . load ( 'assets/textures/textureAtlas.png' ) ;
802825 texture . magFilter = THREE . NearestFilter ;
803826
804827 var worldMaterial = new THREE . MeshLambertMaterial ( {
@@ -812,9 +835,44 @@ <h3>Gra zatrzymana</h3>
812835 textureCols : 27 ,
813836 cellSize : 16 ,
814837 } )
815- $ . get ( `assets/blocks.json?${ uuidv4 ( ) } ` , function ( blocks ) {
838+ $ . get ( `assets/blocks.json?${ Tools . uuidv4 ( ) } ` , function ( blocks ) {
816839 world . blocks = blocks
817- loadBlocksModels ( )
840+ var modelsNumber = 0 ;
841+ var modelsLoaded = 0 ;
842+ var modelsToLoad = [ ] ;
843+ var blocks = world . blocks
844+ Object . keys ( blocks ) . forEach ( function ( p ) {
845+ if ( ! blocks [ p ] . isBlock && p != 0 ) {
846+ var modelPath = `assets/models/${ blocks [ p ] . model } ` ;
847+ modelsNumber ++ ;
848+ modelsToLoad . push ( blocks [ p ] )
849+ }
850+ } )
851+ // console.table(modelsToLoad)
852+ for ( var i = 0 ; i < modelsToLoad . length ; i ++ ) {
853+ ( function ( ) {
854+ var block = modelsToLoad [ i ] ;
855+ fbxl . load ( `assets/models/${ block . model } ` , function ( object ) {
856+ var geometry = object . children [ 0 ] . geometry ;
857+ if ( block . name == "anvil" ) {
858+ geometry . rotateX ( - Math . PI / 2 )
859+ geometry . translate ( 0 , 0.17 , 0 )
860+ geometry . translate ( 0 , - 0.25 , 0 )
861+ }
862+ if ( block . name == "fire" ) {
863+ geometry . rotateX ( - Math . PI / 2 )
864+ geometry . scale ( 0.5 , 0.5 , 0.5 )
865+ // geometry.translate(0,0.25,0)
866+ // geometry.translate(0,-0.25,0)
867+ }
868+ world . saveModel ( geometry , block . name )
869+ modelsLoaded ++ ;
870+ if ( modelsLoaded == modelsNumber ) {
871+ console . log ( "DONE! Models loaded!" )
872+ }
873+ } ) ;
874+ } ) ( ) ;
875+ }
818876 } )
819877 }
820878
@@ -830,9 +888,9 @@ <h3>Gra zatrzymana</h3>
830888 textureMapping :textureMappingX
831889 } )
832890 var savedTextures = [ ]
833- for ( var i = 0 ; i < 500 ; i ++ ) {
891+ for ( var i = 0 ; i < 10 ; i ++ ) {
834892 var t = atlasCreator . gen ( i ) . toDataURL ( ) ;
835- var tekstura = new THREE . TextureLoader ( ) . load ( t , function ( textu ) {
893+ var tekstura = new THREE . TextureLoader ( manager ) . load ( t , function ( textu ) {
836894
837895
838896 // worldMaterial.map=tekstura
@@ -849,22 +907,11 @@ <h3>Gra zatrzymana</h3>
849907 try {
850908 q . remove ( )
851909 } catch ( e ) { }
852- // q=atlasCreator.gen(tickq)
853910 tickq ++ ;
854- var tekst = savedTextures [ tickq % 500 ] ;
911+ var tekst = savedTextures [ tickq % 9 ] ;
855912 worldMaterial . map = tekst
856913
857914 worldMaterial . map . needsUpdate = true ;
858- // var tekstura=new THREE.TextureLoader().load(q.toDataURL(),function (text){
859- // // tekstura.magFilter = THREE.NearestFilter;
860- // // worldMaterial.map=tekstura
861-
862- // // worldMaterial.map.needsUpdate=true;
863- // });
864-
865- // world.textureAtlas=new THREE.TextureLoader().load(q.toDataURL());
866- // world.textureAtlas.magFilter = THREE.NearestFilter;
867- // $("body").append(q)
868915 } , 100 )
869916
870917 } )
@@ -875,11 +922,9 @@ <h3>Gra zatrzymana</h3>
875922
876923 //Socket io
877924 {
878- socket = io . connect ( "https ://d93db05c1da1.ngrok.io/ " ) ;
925+ socket = io . connect ( "http ://localhost:35565 " ) ;
879926 socket . on ( "connect" , ( ) => {
880927 console . log ( "Połączono z serverem!" )
881- socket . emit ( "siemka" , "siemka" )
882-
883928 } )
884929 socket . on ( "blockUpdate" , function ( block ) {
885930 world . setVoxel ( ...block )
@@ -908,9 +953,9 @@ <h3>Gra zatrzymana</h3>
908953 } )
909954 socket . on ( "firstLoad" , function ( v ) {
910955 console . log ( "Otrzymano pakiet świata!" )
911-
956+ // console.log(v)
912957 world . replaceWorld ( v )
913-
958+ $ ( ".initLoading" ) . css ( "display" , "none" )
914959 } )
915960 }
916961
@@ -1024,56 +1069,8 @@ <h3>Gra zatrzymana</h3>
10241069}
10251070
10261071
1027- function loadBlocksModels ( f ) {
1028- var modelsNumber = 0 ;
1029- var modelsLoaded = 0 ;
1030- var modelsToLoad = [ ] ;
1031- var loader = new FBXLoader ( ) ;
1032- var blocks = world . blocks
1033- Object . keys ( blocks ) . forEach ( function ( p ) {
1034- if ( ! blocks [ p ] . isBlock && p != 0 ) {
1035- var modelPath = `assets/models/${ blocks [ p ] . model } ` ;
1036- modelsNumber ++ ;
1037- modelsToLoad . push ( blocks [ p ] )
1038- }
1039- } )
1040- // console.table(modelsToLoad)
1041- for ( var i = 0 ; i < modelsToLoad . length ; i ++ ) {
1042- ( function ( ) {
1043- var block = modelsToLoad [ i ] ;
1044- loader . load ( `assets/models/${ block . model } ` , function ( object ) {
1045- var geometry = object . children [ 0 ] . geometry ;
1046- if ( block . name == "anvil" ) {
1047- geometry . rotateX ( - Math . PI / 2 )
1048- geometry . translate ( 0 , 0.17 , 0 )
1049- geometry . translate ( 0 , - 0.25 , 0 )
1050- }
1051- if ( block . name == "fire" ) {
1052- geometry . rotateX ( - Math . PI / 2 )
1053- geometry . scale ( 0.5 , 0.5 , 0.5 )
1054- // geometry.translate(0,0.25,0)
1055- // geometry.translate(0,-0.25,0)
1056- }
1057- world . saveModel ( geometry , block . name )
1058- modelsLoaded ++ ;
1059- if ( modelsLoaded == modelsNumber ) {
1060- // console.log("DONE! Models loaded!")
1061- if ( f != null ) {
1062- f ( ) ;
1063- }
1064- }
1065- } ) ;
1066- } ) ( ) ;
1067- }
1068- }
10691072
10701073
1071- function uuidv4 ( ) {
1072- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' . replace ( / [ x y ] / g, function ( c ) {
1073- var r = Math . random ( ) * 16 | 0 , v = c == 'x' ? r : ( r & 0x3 | 0x8 ) ;
1074- return v . toString ( 16 ) ;
1075- } ) ;
1076- }
10771074
10781075
10791076function animate ( ) {
0 commit comments