diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index cd1418fdd..b817d3fb5 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -1,7 +1,8 @@ itemGroup.tabTest=Nuclear Tech Mod Test Tab -itemGroup.tabParts=Nuclear Tech Mod Bauteile -itemGroup.tabBlocks=Nuclear Tech Mod Blöcke -itemGroup.tabNuke=Nuclear Tech Mod Bomben +itemGroup.tabParts=NTM Ressourcen und Bauteile +itemGroup.tabBlocks=NTM Blöcke und Maschinen +itemGroup.tabNuke=NTM Bomben und Ausrüstung +itemGroup.tabMachine=NTM Vorlagen achievement.getTitanium=Es ist ein Anfang achievement.getTitanium.desc=Finde etwas Titanerz diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index d8be95c3c..94427be2e 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -1,7 +1,8 @@ itemGroup.tabTest=Nuclear Tech Mod Test Tab -itemGroup.tabParts=Nuclear Tech Mod Parts -itemGroup.tabBlocks=Nuclear Tech Mod Blocks -itemGroup.tabNuke=Nuclear Tech Mod Nukes +itemGroup.tabParts=NTM Resources and Parts +itemGroup.tabBlocks=NTM Blocks and Machines +itemGroup.tabNuke=NTM Bombs and Gear +itemGroup.tabMachine=NTM Templates achievement.getTitanium=It's A Start achievement.getTitanium.desc=Collect titanium ore diff --git a/assets/hbm/models/assembler.obj b/assets/hbm/models/assembler.obj deleted file mode 100644 index 958d78356..000000000 --- a/assets/hbm/models/assembler.obj +++ /dev/null @@ -1,1129 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'assembler.blend' -# www.blender.org -o Cylinder -v 0.000000 1.162500 -0.750000 -v 0.000000 1.537500 -0.750000 -v 0.194114 1.162500 -0.724444 -v 0.194114 1.537500 -0.724444 -v 0.375000 1.162500 -0.649519 -v 0.375000 1.537500 -0.649519 -v 0.530330 1.162500 -0.530330 -v 0.530330 1.537500 -0.530330 -v 0.649519 1.162500 -0.375000 -v 0.649519 1.537500 -0.375000 -v 0.724444 1.162500 -0.194114 -v 0.724444 1.537500 -0.194114 -v 0.750000 1.162500 -0.000000 -v 0.750000 1.537500 -0.000000 -v 0.724444 1.162500 0.194114 -v 0.724444 1.537500 0.194114 -v 0.649519 1.162500 0.375000 -v 0.649519 1.537500 0.375000 -v 0.530330 1.162500 0.530330 -v 0.530330 1.537500 0.530330 -v 0.375000 1.162500 0.649519 -v 0.375000 1.537500 0.649519 -v 0.194115 1.162500 0.724444 -v 0.194115 1.537500 0.724444 -v 0.000000 1.162500 0.750000 -v 0.000000 1.537500 0.750000 -v -0.194114 1.162500 0.724444 -v -0.194114 1.537500 0.724444 -v -0.375000 1.162500 0.649519 -v -0.375000 1.537500 0.649519 -v -0.530330 1.162500 0.530330 -v -0.530330 1.537500 0.530330 -v -0.649519 1.162500 0.375000 -v -0.649519 1.537500 0.375000 -v -0.724444 1.162500 0.194115 -v -0.724444 1.537500 0.194115 -v -0.750000 1.162500 0.000000 -v -0.750000 1.537500 0.000000 -v -0.724444 1.162500 -0.194114 -v -0.724444 1.537500 -0.194114 -v -0.649519 1.162500 -0.375000 -v -0.649519 1.537500 -0.375000 -v -0.530330 1.162500 -0.530330 -v -0.530330 1.537500 -0.530330 -v -0.375000 1.162500 -0.649519 -v -0.375000 1.537500 -0.649519 -v -0.194115 1.162500 -0.724444 -v -0.194115 1.537500 -0.724444 -v 0.000000 1.162500 -0.562500 -v 0.000000 1.537500 -0.562500 -v 0.145586 1.162500 -0.543333 -v 0.145586 1.537500 -0.543333 -v 0.281250 1.162500 -0.487139 -v 0.281250 1.537500 -0.487139 -v 0.397748 1.162500 -0.397748 -v 0.397748 1.537500 -0.397748 -v 0.487139 1.162500 -0.281250 -v 0.487139 1.537500 -0.281250 -v 0.543333 1.162500 -0.145586 -v 0.543333 1.537500 -0.145586 -v 0.562500 1.162500 -0.000000 -v 0.562500 1.537500 -0.000000 -v 0.543333 1.162500 0.145586 -v 0.543333 1.537500 0.145586 -v 0.487139 1.162500 0.281250 -v 0.487139 1.537500 0.281250 -v 0.397748 1.162500 0.397747 -v 0.397748 1.537500 0.397747 -v 0.281250 1.162500 0.487139 -v 0.281250 1.537500 0.487139 -v 0.145586 1.162500 0.543333 -v 0.145586 1.537500 0.543333 -v 0.000000 1.162500 0.562500 -v 0.000000 1.537500 0.562500 -v -0.145585 1.162500 0.543333 -v -0.145585 1.537500 0.543333 -v -0.281250 1.162500 0.487139 -v -0.281250 1.537500 0.487139 -v -0.397747 1.162500 0.397748 -v -0.397747 1.537500 0.397748 -v -0.487139 1.162500 0.281250 -v -0.487139 1.537500 0.281250 -v -0.543333 1.162500 0.145586 -v -0.543333 1.537500 0.145586 -v -0.562500 1.162500 0.000000 -v -0.562500 1.537500 0.000000 -v -0.543333 1.162500 -0.145585 -v -0.543333 1.537500 -0.145585 -v -0.487139 1.162500 -0.281250 -v -0.487139 1.537500 -0.281250 -v -0.397748 1.162500 -0.397747 -v -0.397748 1.537500 -0.397747 -v -0.281250 1.162500 -0.487139 -v -0.281250 1.537500 -0.487139 -v -0.145586 1.162500 -0.543333 -v -0.145586 1.537500 -0.543333 -v 0.000000 1.537500 -0.281250 -v 0.072793 1.537500 -0.271667 -v 0.140625 1.537500 -0.243570 -v 0.198874 1.537500 -0.198874 -v 0.243570 1.537500 -0.140625 -v 0.271667 1.537500 -0.072793 -v 0.281250 1.537500 0.000000 -v 0.271667 1.537500 0.072793 -v 0.243570 1.537500 0.140625 -v 0.198874 1.537500 0.198874 -v 0.140625 1.537500 0.243570 -v 0.072793 1.537500 0.271667 -v 0.000000 1.537500 0.281250 -v -0.072793 1.537500 0.271667 -v -0.140625 1.537500 0.243570 -v -0.198874 1.537500 0.198874 -v -0.243570 1.537500 0.140625 -v -0.271667 1.537500 0.072793 -v -0.281250 1.537500 0.000000 -v -0.271667 1.537500 -0.072793 -v -0.243570 1.537500 -0.140625 -v -0.198874 1.537500 -0.198874 -v -0.140625 1.537500 -0.243569 -v -0.072793 1.537500 -0.271667 -v 0.000000 1.287500 0.281250 -v 0.072793 1.287500 0.271667 -v 0.140625 1.287500 0.243570 -v 0.198874 1.287500 0.198874 -v 0.243570 1.287500 0.140625 -v 0.271667 1.287500 0.072793 -v 0.281250 1.287500 0.000000 -v 0.271667 1.287500 -0.072793 -v 0.243570 1.287500 -0.140625 -v 0.198874 1.287500 -0.198874 -v 0.140625 1.287500 -0.243570 -v 0.072793 1.287500 -0.271667 -v 0.000000 1.287500 -0.281250 -v -0.072793 1.287500 0.271667 -v -0.140625 1.287500 0.243570 -v -0.198874 1.287500 0.198874 -v -0.243570 1.287500 0.140625 -v -0.271667 1.287500 0.072793 -v -0.281250 1.287500 0.000000 -v -0.271667 1.287500 -0.072793 -v -0.243570 1.287500 -0.140625 -v -0.198874 1.287500 -0.198874 -v -0.140625 1.287500 -0.243569 -v -0.072793 1.287500 -0.271667 -vn 0.258800 0.000000 0.965900 -vn 0.382700 0.000000 -0.923900 -vn -0.000000 0.000000 -1.000000 -vn 0.793400 0.000000 -0.608800 -vn -0.258800 0.000000 0.965900 -vn 0.991400 0.000000 -0.130500 -vn 0.500000 0.000000 -0.866000 -vn 0.923900 0.000000 0.382700 -vn -0.707100 0.000000 0.707100 -vn 0.608800 0.000000 0.793400 -vn 0.866000 0.000000 -0.500000 -vn 0.130500 0.000000 0.991400 -vn -0.965900 0.000000 0.258800 -vn -0.382700 0.000000 0.923900 -vn 1.000000 0.000000 -0.000000 -vn -0.793400 0.000000 0.608800 -vn -0.965900 0.000000 -0.258800 -vn -0.991400 0.000000 0.130500 -vn 0.866000 0.000000 0.500000 -vn -0.923900 0.000000 -0.382700 -vn -0.707100 0.000000 -0.707100 -vn -0.608800 0.000000 -0.793400 -vn 0.000000 1.000000 -0.000000 -vn -0.130500 0.000000 -0.991400 -vn 0.500000 0.000000 0.866000 -vn 0.130500 0.000000 -0.991400 -vn -0.258800 0.000000 -0.965900 -vn 0.608800 0.000000 -0.793400 -vn 0.000000 0.000000 1.000000 -vn 0.923900 0.000000 -0.382700 -vn 0.258800 0.000000 -0.965900 -vn 0.991400 0.000000 0.130500 -vn -0.500000 0.000000 0.866000 -vn 0.793400 0.000000 0.608800 -vn 0.707100 0.000000 -0.707100 -vn 0.382700 0.000000 0.923900 -vn -0.866000 0.000000 0.500000 -vn -0.130500 0.000000 0.991400 -vn -0.500000 0.000000 -0.866000 -vn -0.608800 0.000000 0.793400 -vn 0.965900 0.000000 -0.258800 -vn -0.923900 0.000000 0.382700 -vn -1.000000 0.000000 0.000000 -vn -0.991400 0.000000 -0.130500 -vn 0.965900 0.000000 0.258800 -vn -0.793400 0.000000 -0.608800 -vn -0.866000 0.000000 -0.500000 -vn 0.707100 0.000000 0.707100 -vn -0.382700 0.000000 -0.923900 -s off -f 83//1 84//1 36//1 -f 4//2 6//2 5//2 -f 38//3 86//3 85//3 -f 8//4 10//4 9//4 -f 87//5 88//5 40//5 -f 12//6 14//6 13//6 -f 42//7 90//7 89//7 -f 16//8 18//8 17//8 -f 91//9 92//9 44//9 -f 20//10 22//10 21//10 -f 46//11 94//11 93//11 -f 24//12 26//12 25//12 -f 95//13 96//13 48//13 -f 28//14 30//14 29//14 -f 50//15 49//15 1//15 -f 32//16 34//16 33//16 -f 51//17 52//17 4//17 -f 36//18 38//18 37//18 -f 6//19 54//19 53//19 -f 40//20 42//20 41//20 -f 55//21 56//21 8//21 -f 44//22 46//22 45//22 -f 80//23 82//23 34//23 -f 48//24 2//24 1//24 -f 9//25 10//25 58//25 -f 36//23 84//23 86//23 -f 50//26 52//26 51//26 -f 60//27 12//27 11//27 -f 54//28 56//28 55//28 -f 13//29 14//29 62//29 -f 58//30 60//30 59//30 -f 64//31 16//31 15//31 -f 62//32 64//32 63//32 -f 18//33 66//33 65//33 -f 66//34 68//34 67//34 -f 67//35 68//35 20//35 -f 70//36 72//36 71//36 -f 22//37 70//37 69//37 -f 74//38 76//38 75//38 -f 34//39 82//39 81//39 -f 78//40 80//40 79//40 -f 71//41 72//41 24//41 -f 82//42 84//42 83//42 -f 26//43 74//43 73//43 -f 86//44 88//44 87//44 -f 75//45 76//45 28//45 -f 90//46 92//46 91//46 -f 30//47 78//47 77//47 -f 79//48 80//48 32//48 -f 94//49 96//49 95//49 -f 107//23 70//23 68//23 -f 76//23 78//23 30//23 -f 72//23 74//23 26//23 -f 20//23 68//23 70//23 -f 66//23 18//23 16//23 -f 60//23 62//23 14//23 -f 58//23 10//23 8//23 -f 52//23 54//23 6//23 -f 96//23 50//23 2//23 -f 44//23 92//23 94//23 -f 88//23 90//23 42//23 -f 108//23 72//23 70//23 -f 116//8 140//8 141//8 -f 105//46 125//46 124//46 -f 109//26 121//26 134//26 -f 100//16 130//16 129//16 -f 117//34 141//34 142//34 -f 110//2 134//2 135//2 -f 106//22 124//22 123//22 -f 118//10 142//10 143//10 -f 101//42 129//42 128//42 -f 111//28 135//28 136//28 -f 119//36 143//36 144//36 -f 107//49 123//49 122//49 -f 112//4 136//4 137//4 -f 102//18 128//18 127//18 -f 120//12 144//12 133//12 -f 97//38 133//38 132//38 -f 113//30 137//30 138//30 -f 108//24 122//24 121//24 -f 103//44 127//44 126//44 -f 114//6 138//6 139//6 -f 98//14 132//14 131//14 -f 115//32 139//32 140//32 -f 104//20 126//20 125//20 -f 99//40 131//40 130//40 -f 105//23 106//23 68//23 -f 64//23 104//23 105//23 -f 103//23 104//23 64//23 -f 102//23 103//23 62//23 -f 101//23 102//23 60//23 -f 100//23 101//23 58//23 -f 99//23 100//23 56//23 -f 52//23 98//23 99//23 -f 97//23 98//23 52//23 -f 120//23 97//23 50//23 -f 119//23 120//23 96//23 -f 118//23 119//23 94//23 -f 117//23 118//23 92//23 -f 116//23 117//23 90//23 -f 115//23 116//23 88//23 -f 84//23 114//23 115//23 -f 82//23 113//23 114//23 -f 112//23 113//23 82//23 -f 78//23 111//23 112//23 -f 110//23 111//23 78//23 -f 74//23 109//23 110//23 -f 108//23 109//23 74//23 -f 35//1 83//1 36//1 -f 3//2 4//2 5//2 -f 37//3 38//3 85//3 -f 7//4 8//4 9//4 -f 39//5 87//5 40//5 -f 11//6 12//6 13//6 -f 41//7 42//7 89//7 -f 15//8 16//8 17//8 -f 43//9 91//9 44//9 -f 19//10 20//10 21//10 -f 45//11 46//11 93//11 -f 23//12 24//12 25//12 -f 47//13 95//13 48//13 -f 27//14 28//14 29//14 -f 2//15 50//15 1//15 -f 31//16 32//16 33//16 -f 3//17 51//17 4//17 -f 35//18 36//18 37//18 -f 5//19 6//19 53//19 -f 39//20 40//20 41//20 -f 7//21 55//21 8//21 -f 43//22 44//22 45//22 -f 32//23 80//23 34//23 -f 47//24 48//24 1//24 -f 57//25 9//25 58//25 -f 38//23 36//23 86//23 -f 49//26 50//26 51//26 -f 59//27 60//27 11//27 -f 53//28 54//28 55//28 -f 61//29 13//29 62//29 -f 57//30 58//30 59//30 -f 63//31 64//31 15//31 -f 61//32 62//32 63//32 -f 17//33 18//33 65//33 -f 65//34 66//34 67//34 -f 19//35 67//35 20//35 -f 69//36 70//36 71//36 -f 21//37 22//37 69//37 -f 73//38 74//38 75//38 -f 33//39 34//39 81//39 -f 77//40 78//40 79//40 -f 23//41 71//41 24//41 -f 81//42 82//42 83//42 -f 25//43 26//43 73//43 -f 85//44 86//44 87//44 -f 27//45 75//45 28//45 -f 89//46 90//46 91//46 -f 29//47 30//47 77//47 -f 31//48 79//48 32//48 -f 93//49 94//49 95//49 -f 106//23 107//23 68//23 -f 28//23 76//23 30//23 -f 24//23 72//23 26//23 -f 22//23 20//23 70//23 -f 64//23 66//23 16//23 -f 12//23 60//23 14//23 -f 56//23 58//23 8//23 -f 4//23 52//23 6//23 -f 48//23 96//23 2//23 -f 46//23 44//23 94//23 -f 40//23 88//23 42//23 -f 107//23 108//23 70//23 -f 117//8 116//8 141//8 -f 106//46 105//46 124//46 -f 110//26 109//26 134//26 -f 101//16 100//16 129//16 -f 118//34 117//34 142//34 -f 111//2 110//2 135//2 -f 107//22 106//22 123//22 -f 119//10 118//10 143//10 -f 102//42 101//42 128//42 -f 112//28 111//28 136//28 -f 120//36 119//36 144//36 -f 108//49 107//49 122//49 -f 113//4 112//4 137//4 -f 103//18 102//18 127//18 -f 97//12 120//12 133//12 -f 98//38 97//38 132//38 -f 114//30 113//30 138//30 -f 109//24 108//24 121//24 -f 104//44 103//44 126//44 -f 115//6 114//6 139//6 -f 99//14 98//14 131//14 -f 116//32 115//32 140//32 -f 105//20 104//20 125//20 -f 100//40 99//40 130//40 -f 66//23 105//23 68//23 -f 66//23 64//23 105//23 -f 62//23 103//23 64//23 -f 60//23 102//23 62//23 -f 58//23 101//23 60//23 -f 56//23 100//23 58//23 -f 54//23 99//23 56//23 -f 54//23 52//23 99//23 -f 50//23 97//23 52//23 -f 96//23 120//23 50//23 -f 94//23 119//23 96//23 -f 92//23 118//23 94//23 -f 90//23 117//23 92//23 -f 88//23 116//23 90//23 -f 86//23 115//23 88//23 -f 86//23 84//23 115//23 -f 84//23 82//23 114//23 -f 80//23 112//23 82//23 -f 80//23 78//23 112//23 -f 76//23 110//23 78//23 -f 76//23 74//23 110//23 -f 72//23 108//23 74//23 -o Cube_Cube.001 -v -1.500000 0.000000 1.500000 -v -1.500000 0.250000 1.500000 -v -1.500000 0.000000 -1.500000 -v -1.500000 0.250000 -1.500000 -v 1.500000 0.000000 1.500000 -v 1.500000 0.250000 1.500000 -v 1.500000 0.000000 -1.500000 -v 1.500000 0.250000 -1.500000 -v -1.250000 0.500000 1.250000 -v -1.250000 0.500000 -1.250000 -v 1.250000 0.500000 -1.250000 -v 1.250000 0.500000 1.250000 -v 1.250000 1.000000 -1.250000 -v -1.250000 1.000000 -1.250000 -v -1.250000 1.000000 1.250000 -v 1.250000 1.000000 1.250000 -v 1.062500 1.500000 -1.062500 -v 1.062500 1.500000 1.062500 -v 1.000000 0.250000 -0.250000 -v 1.000000 0.750000 -0.250000 -v 1.000000 0.250000 -0.750000 -v 1.000000 0.750000 -0.750000 -v 2.000000 0.000000 0.000000 -v 2.000000 1.000000 0.000000 -v 2.000000 0.000000 -1.000000 -v 2.000000 1.000000 -1.000000 -v 1.500000 1.000000 -1.000000 -v 1.500000 0.000000 -1.000000 -v 1.500000 1.000000 0.000000 -v 1.500000 0.000000 0.000000 -v 2.000000 0.875000 -0.875000 -v 2.000000 0.125000 -0.875000 -v 2.000000 0.875000 -0.125000 -v 2.000000 0.125000 -0.125000 -v 1.500000 0.687500 -0.687500 -v 1.500000 0.312500 -0.687500 -v 1.500000 0.687500 -0.312500 -v 1.500000 0.312500 -0.312500 -v -1.000000 0.250000 0.750000 -v -1.000000 0.750000 0.750000 -v -1.000000 0.250000 0.250000 -v -1.000000 0.750000 0.250000 -v -2.000000 0.000000 1.000000 -v -2.000000 1.000000 1.000000 -v -2.000000 0.000000 0.000000 -v -2.000000 1.000000 0.000000 -v -1.500000 1.000000 0.000000 -v -1.500000 0.000000 0.000000 -v -1.500000 1.000000 1.000000 -v -1.500000 0.000000 1.000000 -v -2.000000 0.875000 0.125000 -v -2.000000 0.125000 0.125000 -v -2.000000 0.875000 0.875000 -v -2.000000 0.125000 0.875000 -v -1.500000 0.687500 0.312500 -v -1.500000 0.312500 0.312500 -v -1.500000 0.687500 0.687500 -v -1.500000 0.312500 0.687500 -v 0.656250 0.343750 -2.000000 -v 0.656250 0.656250 -2.000000 -v 0.343750 0.343750 -1.150000 -v 0.343750 0.656250 -1.150000 -v 0.343750 0.343750 -2.000000 -v 0.343750 0.656250 -2.000000 -v 0.656250 0.343750 -1.150000 -v 0.656250 0.656250 -1.150000 -v 0.328125 0.671875 -1.150000 -v 0.328125 0.328125 -1.150000 -v 0.671875 0.671875 -1.150000 -v 0.671875 0.328125 -1.150000 -v 0.328125 0.671875 -1.000000 -v 0.328125 0.328125 -1.000000 -v 0.671875 0.671875 -1.000000 -v 0.671875 0.328125 -1.000000 -v -0.343750 0.343750 -2.000000 -v -0.343750 0.656250 -2.000000 -v -0.656250 0.343750 -1.150000 -v -0.656250 0.656250 -1.150000 -v -0.656250 0.343750 -2.000000 -v -0.656250 0.656250 -2.000000 -v -0.343750 0.343750 -1.150000 -v -0.343750 0.656250 -1.150000 -v -0.671875 0.671875 -1.150000 -v -0.671875 0.328125 -1.150000 -v -0.328125 0.671875 -1.150000 -v -0.328125 0.328125 -1.150000 -v -0.671875 0.671875 -1.000000 -v -0.671875 0.328125 -1.000000 -v -0.328125 0.671875 -1.000000 -v -0.328125 0.328125 -1.000000 -v -0.343750 0.343750 2.000000 -v -0.343750 0.656250 2.000000 -v -0.656250 0.343750 1.150000 -v -0.656250 0.656250 1.150000 -v -0.656250 0.343750 2.000000 -v -0.656250 0.656250 2.000000 -v -0.343750 0.343750 1.150000 -v -0.343750 0.656250 1.150000 -v -0.671875 0.671875 1.150000 -v -0.671875 0.328125 1.150000 -v -0.328125 0.671875 1.150000 -v -0.328125 0.328125 1.150000 -v -0.671875 0.671875 1.000000 -v -0.671875 0.328125 1.000000 -v -0.328125 0.671875 1.000000 -v -0.328125 0.328125 1.000000 -v 0.656250 0.343750 2.000000 -v 0.656250 0.656250 2.000000 -v 0.343750 0.343750 1.150000 -v 0.343750 0.656250 1.150000 -v 0.343750 0.343750 2.000000 -v 0.343750 0.656250 2.000000 -v 0.656250 0.343750 1.150000 -v 0.656250 0.656250 1.150000 -v 0.328125 0.671875 1.150000 -v 0.328125 0.328125 1.150000 -v 0.671875 0.671875 1.150000 -v 0.671875 0.328125 1.150000 -v 0.328125 0.671875 1.000000 -v 0.328125 0.328125 1.000000 -v 0.671875 0.671875 1.000000 -v 0.671875 0.328125 1.000000 -v -1.062500 1.500000 -1.062500 -v -1.062500 1.500000 1.062500 -v 0.903125 1.500000 0.903125 -v 0.903125 1.500000 -0.903125 -v -0.903125 1.500000 -0.903125 -v -0.903125 1.500000 0.903125 -v 0.903125 1.350000 0.903125 -v 0.903125 1.350000 -0.903125 -v -0.903125 1.350000 -0.903125 -v -0.903125 1.350000 0.903125 -v 0.817113 1.500000 0.903125 -v 0.731101 1.500000 0.903125 -v 0.645089 1.500000 0.903125 -v 0.559078 1.500000 0.903125 -v 0.473066 1.500000 0.903125 -v 0.387054 1.500000 0.903125 -v 0.301042 1.500000 0.903125 -v 0.215030 1.500000 0.903125 -v 0.129018 1.500000 0.903125 -v 0.043006 1.500000 0.903125 -v -0.043006 1.500000 0.903125 -v -0.129018 1.500000 0.903125 -v -0.215030 1.500000 0.903125 -v -0.301042 1.500000 0.903125 -v -0.387054 1.500000 0.903125 -v -0.473065 1.500000 0.903125 -v -0.559077 1.500000 0.903125 -v -0.645089 1.500000 0.903125 -v -0.731101 1.500000 0.903125 -v -0.817113 1.500000 0.903125 -v 0.817113 1.750000 0.903125 -v 0.731101 1.750000 0.903125 -v 0.645089 1.750000 0.903125 -v 0.559078 1.750000 0.903125 -v 0.473066 1.750000 0.903125 -v 0.387054 1.750000 0.903125 -v 0.301042 1.750000 0.903125 -v 0.215030 1.750000 0.903125 -v 0.129018 1.750000 0.903125 -v 0.043006 1.750000 0.903125 -v -0.043006 1.750000 0.903125 -v -0.129018 1.750000 0.903125 -v -0.215030 1.750000 0.903125 -v -0.301042 1.750000 0.903125 -v -0.387054 1.750000 0.903125 -v -0.473065 1.750000 0.903125 -v -0.559077 1.750000 0.903125 -v -0.645089 1.750000 0.903125 -v -0.731101 1.750000 0.903125 -v -0.817113 1.750000 0.903125 -v 0.817113 2.000000 0.653125 -v 0.731101 2.000000 0.653125 -v 0.645089 2.000000 0.653125 -v 0.559078 2.000000 0.653125 -v 0.473066 2.000000 0.653125 -v 0.387054 2.000000 0.653125 -v 0.301042 2.000000 0.653125 -v 0.215030 2.000000 0.653125 -v 0.129018 2.000000 0.653125 -v 0.043006 2.000000 0.653125 -v -0.043006 2.000000 0.653125 -v -0.129018 2.000000 0.653125 -v -0.215030 2.000000 0.653125 -v -0.301042 2.000000 0.653125 -v -0.387054 2.000000 0.653125 -v -0.473065 2.000000 0.653125 -v -0.559077 2.000000 0.653125 -v -0.645089 2.000000 0.653125 -v -0.731101 2.000000 0.653125 -v -0.817113 2.000000 0.653125 -v -0.817113 1.500000 -0.903125 -v -0.731101 1.500000 -0.903125 -v -0.645089 1.500000 -0.903125 -v -0.559078 1.500000 -0.903125 -v -0.473066 1.500000 -0.903125 -v -0.387054 1.500000 -0.903125 -v -0.301042 1.500000 -0.903125 -v -0.215030 1.500000 -0.903125 -v -0.129018 1.500000 -0.903125 -v -0.043006 1.500000 -0.903125 -v 0.043006 1.500000 -0.903125 -v 0.129018 1.500000 -0.903125 -v 0.215030 1.500000 -0.903125 -v 0.301042 1.500000 -0.903125 -v 0.387054 1.500000 -0.903125 -v 0.473065 1.500000 -0.903125 -v 0.559077 1.500000 -0.903125 -v 0.645089 1.500000 -0.903125 -v 0.731101 1.500000 -0.903125 -v 0.817113 1.500000 -0.903125 -v -0.817113 1.750000 -0.903125 -v -0.731101 1.750000 -0.903125 -v -0.645089 1.750000 -0.903125 -v -0.559078 1.750000 -0.903125 -v -0.473066 1.750000 -0.903125 -v -0.387054 1.750000 -0.903125 -v -0.301042 1.750000 -0.903125 -v -0.215030 1.750000 -0.903125 -v -0.129018 1.750000 -0.903125 -v -0.043006 1.750000 -0.903125 -v 0.043006 1.750000 -0.903125 -v 0.129018 1.750000 -0.903125 -v 0.215030 1.750000 -0.903125 -v 0.301042 1.750000 -0.903125 -v 0.387054 1.750000 -0.903125 -v 0.473065 1.750000 -0.903125 -v 0.559077 1.750000 -0.903125 -v 0.645089 1.750000 -0.903125 -v 0.731101 1.750000 -0.903125 -v 0.817113 1.750000 -0.903125 -v -0.817113 2.000000 -0.653125 -v -0.731101 2.000000 -0.653125 -v -0.645089 2.000000 -0.653125 -v -0.559078 2.000000 -0.653125 -v -0.473066 2.000000 -0.653125 -v -0.387054 2.000000 -0.653125 -v -0.301042 2.000000 -0.653125 -v -0.215030 2.000000 -0.653125 -v -0.129018 2.000000 -0.653125 -v -0.043006 2.000000 -0.653125 -v 0.043006 2.000000 -0.653125 -v 0.129018 2.000000 -0.653125 -v 0.215030 2.000000 -0.653125 -v 0.301042 2.000000 -0.653125 -v 0.387054 2.000000 -0.653125 -v 0.473065 2.000000 -0.653125 -v 0.559077 2.000000 -0.653125 -v 0.645089 2.000000 -0.653125 -v 0.731101 2.000000 -0.653125 -v 0.817113 2.000000 -0.653125 -v 1.916667 0.250000 -1.100000 -v 1.916667 0.750000 -1.100000 -v 1.666667 0.500000 -1.100000 -v 1.916667 0.250000 0.100000 -v 1.916667 0.750000 0.100000 -v 1.666667 0.500000 0.100000 -v -1.583333 0.250000 -0.100000 -v -1.583333 0.750000 -0.100000 -v -1.833333 0.500000 -0.100000 -v -1.583333 0.250000 1.100000 -v -1.583333 0.750000 1.100000 -v -1.833333 0.500000 1.100000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.707100 0.707100 0.000000 -vn -0.707100 0.707100 0.000000 -vn 0.000000 0.707100 -0.707100 -vn 0.000000 0.707100 0.707100 -vn -0.447200 0.000000 0.894400 -vn -0.447200 0.894400 0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.447200 -0.894400 0.000000 -vn -0.447200 0.000000 -0.894400 -vn 0.351100 0.000000 -0.936300 -vn 0.351100 0.000000 0.936300 -vn 0.351100 0.936300 0.000000 -vn 0.351100 -0.936300 0.000000 -vn 0.447200 0.000000 0.894400 -vn 0.447200 0.894400 0.000000 -vn 0.447200 -0.894400 0.000000 -vn 0.447200 0.000000 -0.894400 -vn -0.351100 0.000000 -0.936300 -vn -0.351100 0.000000 0.936300 -vn -0.351100 0.936300 0.000000 -vn -0.351100 -0.936300 0.000000 -vn 0.000000 0.351100 0.936300 -vn 0.000000 0.351100 -0.936300 -vn -0.936300 0.351100 0.000000 -vn 0.936300 0.351100 0.000000 -s off -f 148//50 147//50 145//50 -f 152//51 151//51 147//51 -f 150//52 149//52 151//52 -f 146//53 145//53 149//53 -f 147//54 151//54 149//54 -f 156//55 150//55 152//55 -f 148//56 146//56 153//56 -f 152//57 148//57 154//57 -f 150//58 156//58 153//58 -f 154//51 158//51 157//51 -f 166//50 165//50 163//50 -f 170//51 169//51 172//51 -f 169//52 176//52 178//52 -f 164//59 163//59 174//59 -f 172//54 169//54 167//54 -f 171//60 166//60 164//60 -f 170//61 171//61 173//61 -f 165//62 172//62 174//62 -f 173//53 174//53 167//53 -f 171//63 172//63 165//63 -f 178//64 182//64 181//64 -f 168//52 177//52 175//52 -f 170//52 175//52 176//52 -f 167//52 178//52 177//52 -f 181//52 182//52 180//52 -f 175//65 179//65 180//65 -f 176//66 180//66 182//66 -f 177//67 181//67 179//67 -f 183//52 185//52 186//52 -f 192//51 189//51 190//51 -f 198//50 196//50 189//50 -f 194//68 183//68 184//68 -f 187//54 189//54 192//54 -f 184//69 186//69 191//69 -f 193//61 191//61 190//61 -f 194//70 192//70 185//70 -f 187//53 194//53 193//53 -f 185//71 192//71 191//71 -f 201//72 202//72 198//72 -f 195//50 197//50 188//50 -f 196//50 195//50 190//50 -f 197//50 198//50 187//50 -f 200//50 202//50 201//50 -f 200//73 199//73 195//73 -f 202//74 200//74 196//74 -f 199//75 201//75 197//75 -f 209//52 203//52 204//52 -f 209//51 214//51 212//51 -f 206//50 208//50 207//50 -f 210//61 204//61 208//61 -f 205//54 207//54 203//54 -f 204//51 203//51 207//51 -f 214//54 218//54 216//54 -f 206//51 211//51 213//51 -f 205//51 212//51 211//51 -f 210//51 213//51 214//51 -f 216//53 218//53 217//53 -f 211//61 215//61 217//61 -f 213//52 217//52 218//52 -f 212//50 216//50 215//50 -f 225//52 219//52 220//52 -f 225//51 230//51 228//51 -f 222//50 224//50 223//50 -f 226//61 220//61 224//61 -f 221//54 223//54 219//54 -f 220//51 219//51 223//51 -f 230//54 234//54 232//54 -f 222//51 227//51 229//51 -f 221//51 228//51 227//51 -f 226//51 229//51 230//51 -f 232//53 234//53 233//53 -f 227//61 231//61 233//61 -f 229//52 233//52 234//52 -f 228//50 232//50 231//50 -f 236//52 235//52 241//52 -f 244//53 246//53 241//53 -f 239//50 240//50 238//50 -f 240//61 236//61 242//61 -f 235//54 239//54 237//54 -f 239//53 235//53 236//53 -f 248//54 250//54 246//54 -f 245//53 243//53 238//53 -f 243//53 244//53 237//53 -f 246//53 245//53 242//53 -f 249//51 250//51 248//51 -f 249//61 247//61 243//61 -f 250//52 249//52 245//52 -f 247//50 248//50 244//50 -f 252//52 251//52 257//52 -f 260//53 262//53 257//53 -f 255//50 256//50 254//50 -f 256//61 252//61 258//61 -f 251//54 255//54 253//54 -f 255//53 251//53 252//53 -f 264//54 266//54 262//54 -f 261//53 259//53 254//53 -f 259//53 260//53 253//53 -f 262//53 261//53 258//53 -f 265//51 266//51 264//51 -f 265//61 263//61 259//61 -f 266//52 265//52 261//52 -f 263//50 264//50 260//50 -f 160//76 162//76 268//76 -f 156//53 160//53 159//53 -f 155//52 157//52 160//52 -f 153//50 159//50 158//50 -f 162//61 287//61 268//61 -f 158//77 267//77 161//77 -f 159//78 268//78 267//78 -f 157//79 161//79 162//79 -f 272//52 276//52 275//52 -f 267//61 347//61 161//61 -f 268//61 272//61 271//61 -f 161//61 270//61 269//61 -f 274//61 275//61 276//61 -f 270//50 274//50 273//50 -f 286//51 273//51 276//51 -f 346//53 275//53 274//53 -f 337//51 357//51 358//51 -f 339//51 359//51 360//51 -f 341//51 361//51 362//51 -f 343//51 363//51 364//51 -f 345//51 365//51 366//51 -f 347//51 367//51 368//51 -f 349//51 369//51 370//51 -f 351//51 371//51 372//51 -f 353//51 373//51 374//51 -f 355//51 375//51 376//51 -f 375//57 395//57 396//57 -f 373//57 393//57 394//57 -f 371//57 391//57 392//57 -f 369//57 389//57 390//57 -f 367//57 387//57 388//57 -f 365//57 385//57 386//57 -f 363//57 383//57 384//57 -f 361//57 381//57 382//57 -f 359//57 379//57 380//57 -f 357//57 377//57 378//57 -f 315//58 335//58 336//58 -f 313//58 333//58 334//58 -f 291//53 311//53 312//53 -f 293//53 313//53 314//53 -f 295//53 315//53 316//53 -f 289//53 309//53 310//53 -f 287//53 307//53 308//53 -f 285//53 305//53 306//53 -f 283//53 303//53 304//53 -f 281//53 301//53 302//53 -f 279//53 299//53 300//53 -f 277//53 297//53 298//53 -f 297//58 317//58 318//58 -f 299//58 319//58 320//58 -f 301//58 321//58 322//58 -f 303//58 323//58 324//58 -f 305//58 325//58 326//58 -f 307//58 327//58 328//58 -f 309//58 329//58 330//58 -f 311//58 331//58 332//58 -f 396//61 395//61 318//61 -f 394//61 393//61 320//61 -f 392//61 391//61 322//61 -f 390//61 389//61 324//61 -f 388//61 387//61 326//61 -f 386//61 385//61 328//61 -f 378//61 377//61 336//61 -f 380//61 379//61 334//61 -f 382//61 381//61 332//61 -f 384//61 383//61 330//61 -f 398//51 397//51 399//51 -f 401//53 402//53 400//53 -f 404//51 403//51 405//51 -f 407//53 408//53 406//53 -f 146//50 148//50 145//50 -f 148//51 152//51 147//51 -f 152//52 150//52 151//52 -f 150//53 146//53 149//53 -f 145//54 147//54 149//54 -f 155//55 156//55 152//55 -f 154//56 148//56 153//56 -f 155//57 152//57 154//57 -f 146//58 150//58 153//58 -f 155//51 154//51 157//51 -f 164//50 166//50 163//50 -f 171//51 170//51 172//51 -f 167//52 169//52 178//52 -f 173//59 164//59 174//59 -f 174//54 172//54 167//54 -f 173//60 171//60 164//60 -f 168//61 170//61 173//61 -f 163//62 165//62 174//62 -f 168//53 173//53 167//53 -f 166//63 171//63 165//63 -f 177//64 178//64 181//64 -f 170//52 168//52 175//52 -f 169//52 170//52 176//52 -f 168//52 167//52 177//52 -f 179//52 181//52 180//52 -f 176//65 175//65 180//65 -f 178//66 176//66 182//66 -f 175//67 177//67 179//67 -f 184//52 183//52 186//52 -f 191//51 192//51 190//51 -f 187//50 198//50 189//50 -f 193//68 194//68 184//68 -f 194//54 187//54 192//54 -f 193//69 184//69 191//69 -f 188//61 193//61 190//61 -f 183//70 194//70 185//70 -f 188//53 187//53 193//53 -f 186//71 185//71 191//71 -f 197//72 201//72 198//72 -f 190//50 195//50 188//50 -f 189//50 196//50 190//50 -f 188//50 197//50 187//50 -f 199//50 200//50 201//50 -f 196//73 200//73 195//73 -f 198//74 202//74 196//74 -f 195//75 199//75 197//75 -f 210//52 209//52 204//52 -f 205//51 209//51 212//51 -f 205//50 206//50 207//50 -f 206//61 210//61 208//61 -f 209//54 205//54 203//54 -f 208//51 204//51 207//51 -f 212//54 214//54 216//54 -f 210//51 206//51 213//51 -f 206//51 205//51 211//51 -f 209//51 210//51 214//51 -f 215//53 216//53 217//53 -f 213//61 211//61 217//61 -f 214//52 213//52 218//52 -f 211//50 212//50 215//50 -f 226//52 225//52 220//52 -f 221//51 225//51 228//51 -f 221//50 222//50 223//50 -f 222//61 226//61 224//61 -f 225//54 221//54 219//54 -f 224//51 220//51 223//51 -f 228//54 230//54 232//54 -f 226//51 222//51 229//51 -f 222//51 221//51 227//51 -f 225//51 226//51 230//51 -f 231//53 232//53 233//53 -f 229//61 227//61 233//61 -f 230//52 229//52 234//52 -f 227//50 228//50 231//50 -f 242//52 236//52 241//52 -f 237//53 244//53 241//53 -f 237//50 239//50 238//50 -f 238//61 240//61 242//61 -f 241//54 235//54 237//54 -f 240//53 239//53 236//53 -f 244//54 248//54 246//54 -f 242//53 245//53 238//53 -f 238//53 243//53 237//53 -f 241//53 246//53 242//53 -f 247//51 249//51 248//51 -f 245//61 249//61 243//61 -f 246//52 250//52 245//52 -f 243//50 247//50 244//50 -f 258//52 252//52 257//52 -f 253//53 260//53 257//53 -f 253//50 255//50 254//50 -f 254//61 256//61 258//61 -f 257//54 251//54 253//54 -f 256//53 255//53 252//53 -f 260//54 264//54 262//54 -f 258//53 261//53 254//53 -f 254//53 259//53 253//53 -f 257//53 262//53 258//53 -f 263//51 265//51 264//51 -f 261//61 265//61 259//61 -f 262//52 266//52 261//52 -f 259//50 263//50 260//50 -f 159//76 160//76 268//76 -f 153//53 156//53 159//53 -f 156//52 155//52 160//52 -f 154//50 153//50 158//50 -f 272//61 268//61 296//61 -f 162//61 269//61 277//61 -f 277//61 278//61 162//61 -f 279//61 280//61 162//61 -f 281//61 282//61 162//61 -f 283//61 284//61 162//61 -f 285//61 286//61 162//61 -f 287//61 288//61 268//61 -f 289//61 290//61 268//61 -f 291//61 292//61 268//61 -f 293//61 294//61 268//61 -f 295//61 296//61 268//61 -f 162//61 278//61 279//61 -f 295//61 268//61 294//61 -f 292//61 293//61 268//61 -f 288//61 289//61 268//61 -f 284//61 285//61 162//61 -f 280//61 281//61 162//61 -f 291//61 268//61 290//61 -f 162//61 282//61 283//61 -f 286//61 287//61 162//61 -f 157//77 158//77 161//77 -f 158//78 159//78 267//78 -f 160//79 157//79 162//79 -f 271//52 272//52 275//52 -f 270//61 161//61 356//61 -f 267//61 271//61 337//61 -f 337//61 338//61 267//61 -f 339//61 340//61 267//61 -f 341//61 342//61 267//61 -f 343//61 344//61 267//61 -f 345//61 346//61 267//61 -f 347//61 348//61 161//61 -f 349//61 350//61 161//61 -f 351//61 352//61 161//61 -f 353//61 354//61 161//61 -f 355//61 356//61 161//61 -f 267//61 338//61 339//61 -f 355//61 161//61 354//61 -f 352//61 353//61 161//61 -f 348//61 349//61 161//61 -f 344//61 345//61 267//61 -f 340//61 341//61 267//61 -f 351//61 161//61 350//61 -f 267//61 342//61 343//61 -f 346//61 347//61 267//61 -f 267//61 268//61 271//61 -f 162//61 161//61 269//61 -f 273//61 274//61 276//61 -f 269//50 270//50 273//50 -f 276//51 272//51 296//51 -f 296//51 295//51 276//51 -f 294//51 293//51 276//51 -f 292//51 291//51 276//51 -f 290//51 289//51 276//51 -f 288//51 287//51 276//51 -f 286//51 285//51 273//51 -f 284//51 283//51 273//51 -f 282//51 281//51 273//51 -f 280//51 279//51 273//51 -f 278//51 277//51 273//51 -f 269//51 273//51 277//51 -f 276//51 295//51 294//51 -f 293//51 292//51 276//51 -f 289//51 288//51 276//51 -f 285//51 284//51 273//51 -f 281//51 280//51 273//51 -f 278//51 273//51 279//51 -f 276//51 291//51 290//51 -f 287//51 286//51 276//51 -f 282//51 273//51 283//51 -f 274//53 270//53 356//53 -f 356//53 355//53 274//53 -f 354//53 353//53 274//53 -f 352//53 351//53 274//53 -f 350//53 349//53 274//53 -f 348//53 347//53 274//53 -f 346//53 345//53 275//53 -f 344//53 343//53 275//53 -f 342//53 341//53 275//53 -f 340//53 339//53 275//53 -f 338//53 337//53 275//53 -f 271//53 275//53 337//53 -f 274//53 355//53 354//53 -f 353//53 352//53 274//53 -f 349//53 348//53 274//53 -f 345//53 344//53 275//53 -f 341//53 340//53 275//53 -f 338//53 275//53 339//53 -f 274//53 351//53 350//53 -f 347//53 346//53 274//53 -f 342//53 275//53 343//53 -f 338//51 337//51 358//51 -f 340//51 339//51 360//51 -f 342//51 341//51 362//51 -f 344//51 343//51 364//51 -f 346//51 345//51 366//51 -f 348//51 347//51 368//51 -f 350//51 349//51 370//51 -f 352//51 351//51 372//51 -f 354//51 353//51 374//51 -f 356//51 355//51 376//51 -f 376//57 375//57 396//57 -f 374//57 373//57 394//57 -f 372//57 371//57 392//57 -f 370//57 369//57 390//57 -f 368//57 367//57 388//57 -f 366//57 365//57 386//57 -f 364//57 363//57 384//57 -f 362//57 361//57 382//57 -f 360//57 359//57 380//57 -f 358//57 357//57 378//57 -f 316//58 315//58 336//58 -f 314//58 313//58 334//58 -f 292//53 291//53 312//53 -f 294//53 293//53 314//53 -f 296//53 295//53 316//53 -f 290//53 289//53 310//53 -f 288//53 287//53 308//53 -f 286//53 285//53 306//53 -f 284//53 283//53 304//53 -f 282//53 281//53 302//53 -f 280//53 279//53 300//53 -f 278//53 277//53 298//53 -f 298//58 297//58 318//58 -f 300//58 299//58 320//58 -f 302//58 301//58 322//58 -f 304//58 303//58 324//58 -f 306//58 305//58 326//58 -f 308//58 307//58 328//58 -f 310//58 309//58 330//58 -f 312//58 311//58 332//58 -f 317//61 396//61 318//61 -f 319//61 394//61 320//61 -f 321//61 392//61 322//61 -f 323//61 390//61 324//61 -f 325//61 388//61 326//61 -f 327//61 386//61 328//61 -f 335//61 378//61 336//61 -f 333//61 380//61 334//61 -f 331//61 382//61 332//61 -f 329//61 384//61 330//61 diff --git a/assets/hbm/models/assembler_main.obj b/assets/hbm/models/assembler_main.obj new file mode 100644 index 000000000..0f371b213 --- /dev/null +++ b/assets/hbm/models/assembler_main.obj @@ -0,0 +1,1142 @@ +# Blender v2.76 (sub 0) OBJ File: 'assembler_main.blend' +# www.blender.org +o Cube_Cube.001 +v -1.500000 0.000000 1.500000 +v -1.500000 0.250000 1.500000 +v -1.500000 0.000000 -1.500000 +v -1.500000 0.250000 -1.500000 +v 1.500000 0.000000 1.500000 +v 1.500000 0.250000 1.500000 +v 1.500000 0.000000 -1.500000 +v 1.500000 0.250000 -1.500000 +v -1.250000 0.500000 1.250000 +v -1.250000 0.500000 -1.250000 +v 1.250000 0.500000 -1.250000 +v 1.250000 0.500000 1.250000 +v 1.250000 1.000000 -1.250000 +v -1.250000 1.000000 -1.250000 +v -1.250000 1.000000 1.250000 +v 1.250000 1.000000 1.250000 +v 1.062500 1.500000 -1.062500 +v 1.062500 1.500000 1.062500 +v 1.000000 0.250000 -0.250000 +v 1.000000 0.750000 -0.250000 +v 1.000000 0.250000 -0.750000 +v 1.000000 0.750000 -0.750000 +v 2.000000 0.000000 0.000000 +v 2.000000 1.000000 0.000000 +v 2.000000 0.000000 -1.000000 +v 2.000000 1.000000 -1.000000 +v 1.500000 1.000000 -1.000000 +v 1.500000 0.000000 -1.000000 +v 1.500000 1.000000 0.000000 +v 1.500000 0.000000 0.000000 +v 2.000000 0.875000 -0.875000 +v 2.000000 0.125000 -0.875000 +v 2.000000 0.875000 -0.125000 +v 2.000000 0.125000 -0.125000 +v 1.500000 0.687500 -0.687500 +v 1.500000 0.312500 -0.687500 +v 1.500000 0.687500 -0.312500 +v 1.500000 0.312500 -0.312500 +v -1.000000 0.250000 0.750000 +v -1.000000 0.750000 0.750000 +v -1.000000 0.250000 0.250000 +v -1.000000 0.750000 0.250000 +v -2.000000 0.000000 1.000000 +v -2.000000 1.000000 1.000000 +v -2.000000 0.000000 0.000000 +v -2.000000 1.000000 0.000000 +v -1.500000 1.000000 0.000000 +v -1.500000 0.000000 0.000000 +v -1.500000 1.000000 1.000000 +v -1.500000 0.000000 1.000000 +v -2.000000 0.875000 0.125000 +v -2.000000 0.125000 0.125000 +v -2.000000 0.875000 0.875000 +v -2.000000 0.125000 0.875000 +v -1.500000 0.687500 0.312500 +v -1.500000 0.312500 0.312500 +v -1.500000 0.687500 0.687500 +v -1.500000 0.312500 0.687500 +v 0.656250 0.343750 -2.000000 +v 0.656250 0.656250 -2.000000 +v 0.343750 0.343750 -1.150000 +v 0.343750 0.656250 -1.150000 +v 0.343750 0.343750 -2.000000 +v 0.343750 0.656250 -2.000000 +v 0.656250 0.343750 -1.150000 +v 0.656250 0.656250 -1.150000 +v 0.328125 0.671875 -1.150000 +v 0.328125 0.328125 -1.150000 +v 0.671875 0.671875 -1.150000 +v 0.671875 0.328125 -1.150000 +v 0.328125 0.671875 -1.000000 +v 0.328125 0.328125 -1.000000 +v 0.671875 0.671875 -1.000000 +v 0.671875 0.328125 -1.000000 +v -0.343750 0.343750 -2.000000 +v -0.343750 0.656250 -2.000000 +v -0.656250 0.343750 -1.150000 +v -0.656250 0.656250 -1.150000 +v -0.656250 0.343750 -2.000000 +v -0.656250 0.656250 -2.000000 +v -0.343750 0.343750 -1.150000 +v -0.343750 0.656250 -1.150000 +v -0.671875 0.671875 -1.150000 +v -0.671875 0.328125 -1.150000 +v -0.328125 0.671875 -1.150000 +v -0.328125 0.328125 -1.150000 +v -0.671875 0.671875 -1.000000 +v -0.671875 0.328125 -1.000000 +v -0.328125 0.671875 -1.000000 +v -0.328125 0.328125 -1.000000 +v -0.343750 0.343750 2.000000 +v -0.343750 0.656250 2.000000 +v -0.656250 0.343750 1.150000 +v -0.656250 0.656250 1.150000 +v -0.656250 0.343750 2.000000 +v -0.656250 0.656250 2.000000 +v -0.343750 0.343750 1.150000 +v -0.343750 0.656250 1.150000 +v -0.671875 0.671875 1.150000 +v -0.671875 0.328125 1.150000 +v -0.328125 0.671875 1.150000 +v -0.328125 0.328125 1.150000 +v -0.671875 0.671875 1.000000 +v -0.671875 0.328125 1.000000 +v -0.328125 0.671875 1.000000 +v -0.328125 0.328125 1.000000 +v 0.656250 0.343750 2.000000 +v 0.656250 0.656250 2.000000 +v 0.343750 0.343750 1.150000 +v 0.343750 0.656250 1.150000 +v 0.343750 0.343750 2.000000 +v 0.343750 0.656250 2.000000 +v 0.656250 0.343750 1.150000 +v 0.656250 0.656250 1.150000 +v 0.328125 0.671875 1.150000 +v 0.328125 0.328125 1.150000 +v 0.671875 0.671875 1.150000 +v 0.671875 0.328125 1.150000 +v 0.328125 0.671875 1.000000 +v 0.328125 0.328125 1.000000 +v 0.671875 0.671875 1.000000 +v 0.671875 0.328125 1.000000 +v -1.062500 1.500000 -1.062500 +v -1.062500 1.500000 1.062500 +v 0.903125 1.500000 0.903125 +v 0.903125 1.500000 -0.903125 +v -0.903125 1.500000 -0.903125 +v -0.903125 1.500000 0.903125 +v 0.903125 1.350000 0.903125 +v 0.903125 1.350000 -0.903125 +v -0.903125 1.350000 -0.903125 +v -0.903125 1.350000 0.903125 +v 0.817113 1.500000 0.903125 +v 0.731101 1.500000 0.903125 +v 0.645089 1.500000 0.903125 +v 0.559078 1.500000 0.903125 +v 0.473066 1.500000 0.903125 +v 0.387054 1.500000 0.903125 +v 0.301042 1.500000 0.903125 +v 0.215030 1.500000 0.903125 +v 0.129018 1.500000 0.903125 +v 0.043006 1.500000 0.903125 +v -0.043006 1.500000 0.903125 +v -0.129018 1.500000 0.903125 +v -0.215030 1.500000 0.903125 +v -0.301042 1.500000 0.903125 +v -0.387054 1.500000 0.903125 +v -0.473065 1.500000 0.903125 +v -0.559077 1.500000 0.903125 +v -0.645089 1.500000 0.903125 +v -0.731101 1.500000 0.903125 +v -0.817113 1.500000 0.903125 +v 0.817113 1.750000 0.903125 +v 0.731101 1.750000 0.903125 +v 0.645089 1.750000 0.903125 +v 0.559078 1.750000 0.903125 +v 0.473066 1.750000 0.903125 +v 0.387054 1.750000 0.903125 +v 0.301042 1.750000 0.903125 +v 0.215030 1.750000 0.903125 +v 0.129018 1.750000 0.903125 +v 0.043006 1.750000 0.903125 +v -0.043006 1.750000 0.903125 +v -0.129018 1.750000 0.903125 +v -0.215030 1.750000 0.903125 +v -0.301042 1.750000 0.903125 +v -0.387054 1.750000 0.903125 +v -0.473065 1.750000 0.903125 +v -0.559077 1.750000 0.903125 +v -0.645089 1.750000 0.903125 +v -0.731101 1.750000 0.903125 +v -0.817113 1.750000 0.903125 +v 0.817113 2.000000 0.653125 +v 0.731101 2.000000 0.653125 +v 0.645089 2.000000 0.653125 +v 0.559078 2.000000 0.653125 +v 0.473066 2.000000 0.653125 +v 0.387054 2.000000 0.653125 +v 0.301042 2.000000 0.653125 +v 0.215030 2.000000 0.653125 +v 0.129018 2.000000 0.653125 +v 0.043006 2.000000 0.653125 +v -0.043006 2.000000 0.653125 +v -0.129018 2.000000 0.653125 +v -0.215030 2.000000 0.653125 +v -0.301042 2.000000 0.653125 +v -0.387054 2.000000 0.653125 +v -0.473065 2.000000 0.653125 +v -0.559077 2.000000 0.653125 +v -0.645089 2.000000 0.653125 +v -0.731101 2.000000 0.653125 +v -0.817113 2.000000 0.653125 +v -0.817113 1.500000 -0.903125 +v -0.731101 1.500000 -0.903125 +v -0.645089 1.500000 -0.903125 +v -0.559078 1.500000 -0.903125 +v -0.473066 1.500000 -0.903125 +v -0.387054 1.500000 -0.903125 +v -0.301042 1.500000 -0.903125 +v -0.215030 1.500000 -0.903125 +v -0.129018 1.500000 -0.903125 +v -0.043006 1.500000 -0.903125 +v 0.043006 1.500000 -0.903125 +v 0.129018 1.500000 -0.903125 +v 0.215030 1.500000 -0.903125 +v 0.301042 1.500000 -0.903125 +v 0.387054 1.500000 -0.903125 +v 0.473065 1.500000 -0.903125 +v 0.559077 1.500000 -0.903125 +v 0.645089 1.500000 -0.903125 +v 0.731101 1.500000 -0.903125 +v 0.817113 1.500000 -0.903125 +v -0.817113 1.750000 -0.903125 +v -0.731101 1.750000 -0.903125 +v -0.645089 1.750000 -0.903125 +v -0.559078 1.750000 -0.903125 +v -0.473066 1.750000 -0.903125 +v -0.387054 1.750000 -0.903125 +v -0.301042 1.750000 -0.903125 +v -0.215030 1.750000 -0.903125 +v -0.129018 1.750000 -0.903125 +v -0.043006 1.750000 -0.903125 +v 0.043006 1.750000 -0.903125 +v 0.129018 1.750000 -0.903125 +v 0.215030 1.750000 -0.903125 +v 0.301042 1.750000 -0.903125 +v 0.387054 1.750000 -0.903125 +v 0.473065 1.750000 -0.903125 +v 0.559077 1.750000 -0.903125 +v 0.645089 1.750000 -0.903125 +v 0.731101 1.750000 -0.903125 +v 0.817113 1.750000 -0.903125 +v -0.817113 2.000000 -0.653125 +v -0.731101 2.000000 -0.653125 +v -0.645089 2.000000 -0.653125 +v -0.559078 2.000000 -0.653125 +v -0.473066 2.000000 -0.653125 +v -0.387054 2.000000 -0.653125 +v -0.301042 2.000000 -0.653125 +v -0.215030 2.000000 -0.653125 +v -0.129018 2.000000 -0.653125 +v -0.043006 2.000000 -0.653125 +v 0.043006 2.000000 -0.653125 +v 0.129018 2.000000 -0.653125 +v 0.215030 2.000000 -0.653125 +v 0.301042 2.000000 -0.653125 +v 0.387054 2.000000 -0.653125 +v 0.473065 2.000000 -0.653125 +v 0.559077 2.000000 -0.653125 +v 0.645089 2.000000 -0.653125 +v 0.731101 2.000000 -0.653125 +v 0.817113 2.000000 -0.653125 +v 1.916667 0.250000 -1.100000 +v 1.916667 0.750000 -1.100000 +v 1.666667 0.500000 -1.100000 +v 1.916667 0.250000 0.100000 +v 1.916667 0.750000 0.100000 +v 1.666667 0.500000 0.100000 +v -1.583333 0.250000 -0.100000 +v -1.583333 0.750000 -0.100000 +v -1.833333 0.500000 -0.100000 +v -1.583333 0.250000 1.100000 +v -1.583333 0.750000 1.100000 +v -1.833333 0.500000 1.100000 +vt 0.576309 0.460125 +vt 0.576309 0.482085 +vt 0.312788 0.482085 +vt 0.281091 0.465560 +vt 0.281091 0.487663 +vt 0.015849 0.487663 +vt 0.312788 0.535743 +vt 0.312788 0.513782 +vt 0.576309 0.513783 +vt 0.311067 0.037952 +vt 0.311067 0.015849 +vt 0.576309 0.015849 +vt 0.015849 0.015849 +vt 0.279369 0.015849 +vt 0.279369 0.279369 +vt 0.334748 0.566799 +vt 0.576309 0.535743 +vt 0.312788 0.460125 +vt 0.334748 0.429069 +vt 0.015849 0.465560 +vt 0.037952 0.434301 +vt 0.576309 0.037952 +vt 0.554205 0.069211 +vt 0.333170 0.069211 +vt 0.037952 0.390094 +vt 0.258987 0.390094 +vt 0.806630 0.015849 +vt 0.894470 0.015849 +vt 0.894470 0.059769 +vt 0.134126 0.756933 +vt 0.123146 0.767913 +vt 0.057265 0.767913 +vt 0.806630 0.445525 +vt 0.806630 0.401605 +vt 0.855734 0.379645 +vt 0.847469 0.740928 +vt 0.891389 0.740929 +vt 0.891389 0.828769 +vt 0.855734 0.228410 +vt 0.806630 0.206450 +vt 0.806630 0.162530 +vt 0.899654 0.228410 +vt 0.855734 0.140570 +vt 0.798365 0.762888 +vt 0.847469 0.828769 +vt 0.855734 0.467485 +vt 0.899654 0.379645 +vt 0.806630 0.059769 +vt 0.872510 0.108873 +vt 0.026829 0.798350 +vt 0.073735 0.814820 +vt 0.073735 0.847760 +vt 0.046285 0.905647 +vt 0.057265 0.894667 +vt 0.123145 0.894667 +vt 0.164562 0.875210 +vt 0.153582 0.864230 +vt 0.153582 0.798350 +vt 0.015849 0.787370 +vt 0.026829 0.864230 +vt 0.106675 0.814820 +vt 0.106675 0.847760 +vt 0.850550 0.587022 +vt 0.806630 0.587022 +vt 0.806630 0.499182 +vt 0.354205 0.854232 +vt 0.420085 0.854232 +vt 0.431065 0.865212 +vt 0.850550 0.260107 +vt 0.899654 0.282067 +vt 0.899654 0.325988 +vt 0.608006 0.899590 +vt 0.608006 0.811750 +vt 0.651926 0.811750 +vt 0.891389 0.643351 +vt 0.891389 0.687271 +vt 0.842285 0.709231 +vt 0.842285 0.621391 +vt 0.798365 0.709231 +vt 0.651926 0.899590 +vt 0.701030 0.833710 +vt 0.806630 0.260107 +vt 0.850550 0.347948 +vt 0.899654 0.565062 +vt 0.850550 0.499182 +vt 0.370675 0.774385 +vt 0.370675 0.807325 +vt 0.323768 0.823795 +vt 0.420085 0.727478 +vt 0.354205 0.727478 +vt 0.343225 0.716498 +vt 0.450521 0.823795 +vt 0.450521 0.757915 +vt 0.461501 0.746935 +vt 0.323768 0.757915 +vt 0.312788 0.834775 +vt 0.403615 0.807325 +vt 0.403615 0.774385 +vt 0.619264 0.360402 +vt 0.672059 0.307606 +vt 0.691469 0.327016 +vt 0.619264 0.254810 +vt 0.617323 0.254810 +vt 0.638674 0.233459 +vt 0.763675 0.254810 +vt 0.710880 0.307606 +vt 0.691469 0.288196 +vt 0.744265 0.379812 +vt 0.638674 0.235400 +vt 0.608006 0.245494 +vt 0.629357 0.224142 +vt 0.763675 0.360402 +vt 0.765616 0.360402 +vt 0.744265 0.381753 +vt 0.744265 0.235400 +vt 0.744265 0.233459 +vt 0.765616 0.254810 +vt 0.638674 0.379812 +vt 0.638674 0.381753 +vt 0.617323 0.360402 +vt 0.774933 0.369719 +vt 0.753582 0.391070 +vt 0.629357 0.391070 +vt 0.608006 0.369718 +vt 0.753582 0.224142 +vt 0.774933 0.245494 +vt 0.763675 0.046517 +vt 0.710880 0.099312 +vt 0.691469 0.079902 +vt 0.763675 0.152108 +vt 0.765616 0.152108 +vt 0.744265 0.173459 +vt 0.619264 0.152108 +vt 0.672059 0.099312 +vt 0.691469 0.118722 +vt 0.638674 0.027106 +vt 0.744265 0.171518 +vt 0.774933 0.161425 +vt 0.753582 0.182776 +vt 0.619264 0.046517 +vt 0.617323 0.046517 +vt 0.638674 0.025165 +vt 0.638674 0.171518 +vt 0.638674 0.173459 +vt 0.617323 0.152108 +vt 0.744265 0.027106 +vt 0.744265 0.025165 +vt 0.765616 0.046517 +vt 0.608006 0.037200 +vt 0.629357 0.015849 +vt 0.753582 0.015849 +vt 0.774933 0.037200 +vt 0.629357 0.182776 +vt 0.608006 0.161425 +vt 0.691469 0.525640 +vt 0.710880 0.506230 +vt 0.763675 0.559026 +vt 0.744265 0.432084 +vt 0.765616 0.453435 +vt 0.763675 0.453435 +vt 0.691469 0.486820 +vt 0.672059 0.506230 +vt 0.619264 0.453435 +vt 0.638674 0.578436 +vt 0.744265 0.434025 +vt 0.753582 0.422767 +vt 0.774933 0.444118 +vt 0.638674 0.580377 +vt 0.617323 0.559026 +vt 0.619264 0.559026 +vt 0.617323 0.453435 +vt 0.638674 0.432084 +vt 0.638674 0.434025 +vt 0.765616 0.559026 +vt 0.744265 0.580377 +vt 0.744265 0.578436 +vt 0.629357 0.589694 +vt 0.608006 0.568343 +vt 0.774933 0.568343 +vt 0.753582 0.589694 +vt 0.608006 0.444118 +vt 0.629357 0.422767 +vt 0.105061 0.608573 +vt 0.105061 0.636023 +vt 0.030397 0.636023 +vt 0.133884 0.712060 +vt 0.103689 0.712060 +vt 0.105061 0.710688 +vt 0.132511 0.636023 +vt 0.132511 0.608573 +vt 0.207176 0.608573 +vt 0.105061 0.533909 +vt 0.132511 0.710688 +vt 0.133884 0.725236 +vt 0.103689 0.725236 +vt 0.103689 0.532536 +vt 0.133884 0.532536 +vt 0.132511 0.533909 +vt 0.208548 0.607201 +vt 0.208548 0.637396 +vt 0.207176 0.636023 +vt 0.029025 0.637396 +vt 0.029025 0.607201 +vt 0.030397 0.608573 +vt 0.103689 0.519360 +vt 0.133884 0.519360 +vt 0.015849 0.637396 +vt 0.015849 0.607201 +vt 0.221724 0.607201 +vt 0.221724 0.637396 +vt 0.554205 0.113418 +vt 0.537628 0.160631 +vt 0.349748 0.160631 +vt 0.333170 0.113418 +vt 0.554349 0.566799 +vt 0.554349 0.610719 +vt 0.334748 0.610719 +vt 0.334748 0.385149 +vt 0.554349 0.385149 +vt 0.493263 0.170323 +vt 0.054530 0.342881 +vt 0.242409 0.342880 +vt 0.351218 0.338242 +vt 0.537879 0.338242 +vt 0.537879 0.657626 +vt 0.351218 0.657626 +vt 0.365217 0.324243 +vt 0.365217 0.311067 +vt 0.523879 0.311066 +vt 0.098895 0.333189 +vt 0.523879 0.324243 +vt 0.523879 0.671625 +vt 0.365217 0.671625 +vt 0.766667 0.780053 +vt 0.608006 0.780053 +vt 0.608006 0.621391 +vt 0.523879 0.684801 +vt 0.365217 0.684801 +vt 0.496673 0.170201 +vt 0.531971 0.176003 +vt 0.364530 0.192445 +vt 0.095484 0.333311 +vt 0.060187 0.327509 +vt 0.227627 0.311066 +vt 0.236623 0.984151 +vt 0.214662 0.984151 +vt 0.214662 0.976596 +vt 0.531841 0.231698 +vt 0.509881 0.231698 +vt 0.509881 0.224142 +vt 0.533562 0.943717 +vt 0.511602 0.943717 +vt 0.511602 0.936161 +vt 0.828780 0.938842 +vt 0.806820 0.938842 +vt 0.806820 0.931287 +vt 0.236623 0.944899 +vt 0.214662 0.944899 +vt 0.214662 0.937344 +vt 0.953501 0.899590 +vt 0.931541 0.899590 +vt 0.931541 0.892035 +vt 0.828780 0.978095 +vt 0.806820 0.978095 +vt 0.806820 0.970539 +vt 0.533562 0.982969 +vt 0.511602 0.982969 +vt 0.511602 0.975414 +vt 0.531841 0.270950 +vt 0.509881 0.270950 +vt 0.509881 0.263395 +vt 0.533562 0.904464 +vt 0.511602 0.904464 +vt 0.511602 0.896909 +vt 0.480545 0.904464 +vt 0.480545 0.896909 +vt 0.478824 0.270950 +vt 0.478824 0.263395 +vt 0.480546 0.982969 +vt 0.480546 0.975414 +vt 0.775764 0.978095 +vt 0.775764 0.970539 +vt 0.900485 0.899590 +vt 0.900485 0.892035 +vt 0.183606 0.944899 +vt 0.183606 0.937344 +vt 0.775764 0.938842 +vt 0.775764 0.931287 +vt 0.480546 0.943717 +vt 0.480546 0.936161 +vt 0.478824 0.231698 +vt 0.478824 0.224142 +vt 0.183606 0.984151 +vt 0.183606 0.976596 +vt 0.037809 0.976596 +vt 0.068865 0.976596 +vt 0.068865 0.984151 +vt 0.333027 0.224143 +vt 0.364083 0.224142 +vt 0.364083 0.231698 +vt 0.312788 0.936161 +vt 0.334748 0.936161 +vt 0.334748 0.943717 +vt 0.311067 0.224143 +vt 0.333027 0.231698 +vt 0.015849 0.976596 +vt 0.037809 0.984151 +vt 0.608006 0.931287 +vt 0.629966 0.931287 +vt 0.629966 0.938842 +vt 0.015849 0.937344 +vt 0.037809 0.937344 +vt 0.037809 0.944899 +vt 0.732727 0.892035 +vt 0.754687 0.892035 +vt 0.754687 0.899590 +vt 0.608006 0.970539 +vt 0.629966 0.970539 +vt 0.629966 0.978095 +vt 0.312788 0.975414 +vt 0.334748 0.975414 +vt 0.334748 0.982969 +vt 0.311067 0.263395 +vt 0.333027 0.263395 +vt 0.333027 0.270950 +vt 0.312788 0.896909 +vt 0.334748 0.896909 +vt 0.334748 0.904464 +vt 0.365804 0.896909 +vt 0.365804 0.904464 +vt 0.364083 0.263395 +vt 0.364083 0.270950 +vt 0.365804 0.975414 +vt 0.365804 0.982969 +vt 0.661022 0.970539 +vt 0.661022 0.978095 +vt 0.785744 0.892035 +vt 0.785744 0.899590 +vt 0.068865 0.937344 +vt 0.068865 0.944899 +vt 0.661022 0.931287 +vt 0.661022 0.938842 +vt 0.365804 0.936161 +vt 0.365804 0.943717 +vt 0.253421 0.638898 +vt 0.253421 0.594978 +vt 0.275381 0.616938 +vt 0.515159 0.760418 +vt 0.493199 0.738458 +vt 0.515159 0.716498 +vt 0.253421 0.714515 +vt 0.253421 0.670595 +vt 0.275381 0.692555 +vt 0.275381 0.563281 +vt 0.253421 0.541320 +vt 0.275381 0.519360 +vt 0.015849 0.279369 +vt 0.554349 0.429069 +vt 0.258987 0.434301 +vt 0.046285 0.756933 +vt 0.899654 0.140570 +vt 0.798364 0.806809 +vt 0.899654 0.467485 +vt 0.828590 0.108873 +vt 0.134125 0.905647 +vt 0.164562 0.787370 +vt 0.015849 0.875210 +vt 0.343224 0.865212 +vt 0.798364 0.621391 +vt 0.701030 0.877630 +vt 0.806630 0.347948 +vt 0.899654 0.521142 +vt 0.431065 0.716498 +vt 0.461502 0.834775 +vt 0.312788 0.746935 +vt 0.363839 0.174722 +vt 0.375834 0.174919 +vt 0.531331 0.168272 +vt 0.527282 0.168652 +vt 0.523273 0.168887 +vt 0.519466 0.169118 +vt 0.515811 0.169319 +vt 0.512310 0.169498 +vt 0.508962 0.169663 +vt 0.505764 0.169815 +vt 0.502713 0.169957 +vt 0.499748 0.170088 +vt 0.489313 0.170468 +vt 0.484693 0.170641 +vt 0.479208 0.170849 +vt 0.472561 0.171104 +vt 0.464263 0.171426 +vt 0.453455 0.171849 +vt 0.438489 0.172437 +vt 0.415776 0.173333 +vt 0.228319 0.328790 +vt 0.216323 0.328593 +vt 0.060826 0.335240 +vt 0.064875 0.334860 +vt 0.068884 0.334625 +vt 0.072692 0.334394 +vt 0.076346 0.334193 +vt 0.079847 0.334014 +vt 0.083195 0.333849 +vt 0.086393 0.333697 +vt 0.089444 0.333555 +vt 0.092409 0.333424 +vt 0.102844 0.333044 +vt 0.107464 0.332871 +vt 0.112949 0.332663 +vt 0.119596 0.332407 +vt 0.127894 0.332085 +vt 0.138702 0.331663 +vt 0.153668 0.331075 +vt 0.176381 0.330179 +vt 0.766667 0.621391 +vt 0.236623 0.976596 +vt 0.531841 0.224142 +vt 0.533562 0.936161 +vt 0.828780 0.931287 +vt 0.236623 0.937344 +vt 0.953501 0.892035 +vt 0.828780 0.970539 +vt 0.533562 0.975414 +vt 0.531841 0.263395 +vt 0.533562 0.896909 +vt 0.312788 0.943717 +vt 0.311067 0.231698 +vt 0.015849 0.984151 +vt 0.608006 0.938842 +vt 0.015849 0.944899 +vt 0.732727 0.899590 +vt 0.608006 0.978095 +vt 0.312788 0.982969 +vt 0.311067 0.270950 +vt 0.312788 0.904464 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.707100 0.707100 0.000000 +vn -0.707100 0.707100 0.000000 +vn 0.000000 0.707100 -0.707100 +vn 0.000000 0.707100 0.707100 +vn -0.447200 0.000000 0.894400 +vn -0.447200 0.894400 0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.447200 -0.894400 0.000000 +vn -0.447200 0.000000 -0.894400 +vn 0.351100 0.000000 -0.936300 +vn 0.351100 0.000000 0.936300 +vn 0.351100 0.936300 0.000000 +vn 0.351100 -0.936300 0.000000 +vn 0.447200 0.000000 0.894400 +vn 0.447200 0.894400 0.000000 +vn 0.447200 -0.894400 0.000000 +vn 0.447200 0.000000 -0.894400 +vn -0.351100 0.000000 -0.936300 +vn -0.351100 0.000000 0.936300 +vn -0.351100 0.936300 0.000000 +vn -0.351100 -0.936300 0.000000 +vn 0.000000 0.351100 0.936300 +vn 0.000000 0.351100 -0.936300 +vn -0.936300 0.351100 0.000000 +vn 0.936300 0.351100 0.000000 +s off +f 4/1/1 3/2/1 1/3/1 +f 8/4/2 7/5/2 3/6/2 +f 6/7/3 5/8/3 7/9/3 +f 2/10/4 1/11/4 5/12/4 +f 3/13/5 7/14/5 5/15/5 +f 12/16/6 6/7/6 8/17/6 +f 4/1/7 2/18/7 9/19/7 +f 8/4/8 4/20/8 10/21/8 +f 6/22/9 12/23/9 9/24/9 +f 10/21/2 14/25/2 13/26/2 +f 26/27/2 25/28/2 28/29/2 +f 25/30/3 32/31/3 34/32/3 +f 20/33/10 19/34/10 30/35/10 +f 28/36/5 25/37/5 23/38/5 +f 27/39/11 22/40/11 20/41/11 +f 26/42/12 27/39/12 29/43/12 +f 21/44/13 28/36/13 30/45/13 +f 29/46/4 30/35/4 23/47/4 +f 27/48/14 28/29/14 21/49/14 +f 34/50/15 38/51/15 37/52/15 +f 24/53/3 33/54/3 31/55/3 +f 26/56/3 31/57/3 32/58/3 +f 23/59/3 34/50/3 33/60/3 +f 37/52/3 38/51/3 36/61/3 +f 31/57/16 35/62/16 36/61/16 +f 32/31/17 36/61/17 38/51/17 +f 33/54/18 37/52/18 35/62/18 +f 48/63/2 45/64/2 46/65/2 +f 54/66/1 52/67/1 45/68/1 +f 50/69/19 39/70/19 40/71/19 +f 43/72/5 45/73/5 48/74/5 +f 40/75/20 42/76/20 47/77/20 +f 49/78/12 47/77/12 46/79/12 +f 50/80/21 48/74/21 41/81/21 +f 43/82/4 50/69/4 49/83/4 +f 41/84/22 48/63/22 47/85/22 +f 57/86/23 58/87/23 54/88/23 +f 51/89/1 53/90/1 44/91/1 +f 52/92/1 51/93/1 46/94/1 +f 53/95/1 54/88/1 43/96/1 +f 56/97/1 58/87/1 57/86/1 +f 56/97/24 55/98/24 51/93/24 +f 58/87/25 56/97/25 52/67/25 +f 55/98/26 57/86/26 53/90/26 +f 65/99/3 59/100/3 60/101/3 +f 65/102/2 70/103/2 68/104/2 +f 62/105/1 64/106/1 63/107/1 +f 66/108/12 60/101/12 64/106/12 +f 61/109/5 63/107/5 59/100/5 +f 60/101/2 59/100/2 63/107/2 +f 70/103/5 74/110/5 72/111/5 +f 62/112/2 67/113/2 69/114/2 +f 61/115/2 68/116/2 67/117/2 +f 66/118/2 69/119/2 70/120/2 +f 67/113/12 71/121/12 73/122/12 +f 69/119/3 73/123/3 74/124/3 +f 68/116/1 72/125/1 71/126/1 +f 81/127/3 75/128/3 76/129/3 +f 81/130/2 86/131/2 84/132/2 +f 78/133/1 80/134/1 79/135/1 +f 82/136/12 76/129/12 80/134/12 +f 77/137/5 79/135/5 75/128/5 +f 76/129/2 75/128/2 79/135/2 +f 86/131/5 90/138/5 88/139/5 +f 78/140/2 83/141/2 85/142/2 +f 77/143/2 84/144/2 83/145/2 +f 82/146/2 85/147/2 86/148/2 +f 83/141/12 87/149/12 89/150/12 +f 85/147/3 89/151/3 90/152/3 +f 84/144/1 88/153/1 87/154/1 +f 92/155/3 91/156/3 97/157/3 +f 100/158/4 102/159/4 97/160/4 +f 95/161/1 96/162/1 94/163/1 +f 96/162/12 92/155/12 98/164/12 +f 91/156/5 95/161/5 93/165/5 +f 95/161/4 91/156/4 92/155/4 +f 104/166/5 106/167/5 102/159/5 +f 101/168/4 99/169/4 94/170/4 +f 99/171/4 100/172/4 93/173/4 +f 102/174/4 101/175/4 98/176/4 +f 105/177/12 103/178/12 99/169/12 +f 106/179/3 105/180/3 101/175/3 +f 103/181/1 104/182/1 100/172/1 +f 108/183/3 107/184/3 113/185/3 +f 116/186/4 118/187/4 113/188/4 +f 111/189/1 112/190/1 110/191/1 +f 112/190/12 108/183/12 114/192/12 +f 107/184/5 111/189/5 109/193/5 +f 111/189/4 107/184/4 108/183/4 +f 120/194/5 122/195/5 118/187/5 +f 117/196/4 115/197/4 110/198/4 +f 115/199/4 116/200/4 109/201/4 +f 118/202/4 117/203/4 114/204/4 +f 121/205/12 119/206/12 115/197/12 +f 122/207/3 121/208/3 117/203/3 +f 119/209/1 120/210/1 116/200/1 +f 16/211/27 18/212/27 124/213/27 +f 12/23/4 16/211/4 15/214/4 +f 11/215/3 13/216/3 16/217/3 +f 9/19/1 15/218/1 14/219/1 +f 18/212/12 143/220/12 124/213/12 +f 14/25/28 123/221/28 17/222/28 +f 15/218/29 124/223/29 123/224/29 +f 13/216/30 17/225/30 18/226/30 +f 128/227/3 132/228/3 131/229/3 +f 123/221/12 203/230/12 17/222/12 +f 124/223/12 128/227/12 127/231/12 +f 17/225/12 126/232/12 125/233/12 +f 130/234/12 131/235/12 132/236/12 +f 126/232/1 130/237/1 129/238/1 +f 142/239/2 129/240/2 132/241/2 +f 202/242/4 131/243/4 130/244/4 +f 193/245/2 213/246/2 214/247/2 +f 195/248/2 215/249/2 216/250/2 +f 197/251/2 217/252/2 218/253/2 +f 199/254/2 219/255/2 220/256/2 +f 201/257/2 221/258/2 222/259/2 +f 203/260/2 223/261/2 224/262/2 +f 205/263/2 225/264/2 226/265/2 +f 207/266/2 227/267/2 228/268/2 +f 209/269/2 229/270/2 230/271/2 +f 211/272/2 231/273/2 232/274/2 +f 231/273/8 251/275/8 252/276/8 +f 229/270/8 249/277/8 250/278/8 +f 227/267/8 247/279/8 248/280/8 +f 225/264/8 245/281/8 246/282/8 +f 223/261/8 243/283/8 244/284/8 +f 221/258/8 241/285/8 242/286/8 +f 219/255/8 239/287/8 240/288/8 +f 217/252/8 237/289/8 238/290/8 +f 215/249/8 235/291/8 236/292/8 +f 213/246/8 233/293/8 234/294/8 +f 171/295/9 191/296/9 192/297/9 +f 169/298/9 189/299/9 190/300/9 +f 147/301/4 167/302/4 168/303/4 +f 149/304/4 169/298/4 170/305/4 +f 151/306/4 171/295/4 172/307/4 +f 145/308/4 165/309/4 166/310/4 +f 143/311/4 163/312/4 164/313/4 +f 141/314/4 161/315/4 162/316/4 +f 139/317/4 159/318/4 160/319/4 +f 137/320/4 157/321/4 158/322/4 +f 135/323/4 155/324/4 156/325/4 +f 133/326/4 153/327/4 154/328/4 +f 153/327/9 173/329/9 174/330/9 +f 155/324/9 175/331/9 176/332/9 +f 157/321/9 177/333/9 178/334/9 +f 159/318/9 179/335/9 180/336/9 +f 161/315/9 181/337/9 182/338/9 +f 163/312/9 183/339/9 184/340/9 +f 165/309/9 185/341/9 186/342/9 +f 167/302/9 187/343/9 188/344/9 +f 252/276/12 251/275/12 174/330/12 +f 250/278/12 249/277/12 176/332/12 +f 248/280/12 247/279/12 178/334/12 +f 246/282/12 245/281/12 180/336/12 +f 244/284/12 243/283/12 182/338/12 +f 242/286/12 241/285/12 184/340/12 +f 234/294/12 233/293/12 192/297/12 +f 236/292/12 235/291/12 190/300/12 +f 238/290/12 237/289/12 188/344/12 +f 240/288/12 239/287/12 186/342/12 +f 254/345/2 253/346/2 255/347/2 +f 257/348/4 258/349/4 256/350/4 +f 260/351/2 259/352/2 261/353/2 +f 263/354/4 264/355/4 262/356/4 +f 2/18/1 4/1/1 1/3/1 +f 4/20/2 8/4/2 3/6/2 +f 8/17/3 6/7/3 7/9/3 +f 6/22/4 2/10/4 5/12/4 +f 1/357/5 3/13/5 5/15/5 +f 11/215/6 12/16/6 8/17/6 +f 10/358/7 4/1/7 9/19/7 +f 11/359/8 8/4/8 10/21/8 +f 2/10/9 6/22/9 9/24/9 +f 11/359/2 10/21/2 13/26/2 +f 27/48/2 26/27/2 28/29/2 +f 23/360/3 25/30/3 34/32/3 +f 29/46/10 20/33/10 30/35/10 +f 30/45/5 28/36/5 23/38/5 +f 29/43/11 27/39/11 20/41/11 +f 24/361/12 26/42/12 29/43/12 +f 19/362/13 21/44/13 30/45/13 +f 24/363/4 29/46/4 23/47/4 +f 22/364/14 27/48/14 21/49/14 +f 33/60/15 34/50/15 37/52/15 +f 26/365/3 24/53/3 31/55/3 +f 25/366/3 26/56/3 32/58/3 +f 24/367/3 23/59/3 33/60/3 +f 35/62/3 37/52/3 36/61/3 +f 32/58/16 31/57/16 36/61/16 +f 34/32/17 32/31/17 38/51/17 +f 31/55/18 33/54/18 35/62/18 +f 47/85/2 48/63/2 46/65/2 +f 43/368/1 54/66/1 45/68/1 +f 49/83/19 50/69/19 40/71/19 +f 50/80/5 43/72/5 48/74/5 +f 49/78/20 40/75/20 47/77/20 +f 44/369/12 49/78/12 46/79/12 +f 39/370/21 50/80/21 41/81/21 +f 44/371/4 43/82/4 49/83/4 +f 42/372/22 41/84/22 47/85/22 +f 53/95/23 57/86/23 54/88/23 +f 46/373/1 51/89/1 44/91/1 +f 45/374/1 52/92/1 46/94/1 +f 44/375/1 53/95/1 43/96/1 +f 55/98/1 56/97/1 57/86/1 +f 52/92/24 56/97/24 51/93/24 +f 54/66/25 58/87/25 52/67/25 +f 51/89/26 55/98/26 53/90/26 +f 66/118/3 65/99/3 60/101/3 +f 61/109/2 65/102/2 68/104/2 +f 61/115/1 62/105/1 63/107/1 +f 62/112/12 66/108/12 64/106/12 +f 65/102/5 61/109/5 59/100/5 +f 64/106/2 60/101/2 63/107/2 +f 68/104/5 70/103/5 72/111/5 +f 66/108/2 62/112/2 69/114/2 +f 62/105/2 61/115/2 67/117/2 +f 65/99/2 66/118/2 70/120/2 +f 69/114/12 67/113/12 73/122/12 +f 70/120/3 69/119/3 74/124/3 +f 67/117/1 68/116/1 71/126/1 +f 82/146/3 81/127/3 76/129/3 +f 77/137/2 81/130/2 84/132/2 +f 77/143/1 78/133/1 79/135/1 +f 78/140/12 82/136/12 80/134/12 +f 81/130/5 77/137/5 75/128/5 +f 80/134/2 76/129/2 79/135/2 +f 84/132/5 86/131/5 88/139/5 +f 82/136/2 78/140/2 85/142/2 +f 78/133/2 77/143/2 83/145/2 +f 81/127/2 82/146/2 86/148/2 +f 85/142/12 83/141/12 89/150/12 +f 86/148/3 85/147/3 90/152/3 +f 83/145/1 84/144/1 87/154/1 +f 98/176/3 92/155/3 97/157/3 +f 93/165/4 100/158/4 97/160/4 +f 93/173/1 95/161/1 94/163/1 +f 94/170/12 96/162/12 98/164/12 +f 97/160/5 91/156/5 93/165/5 +f 96/162/4 95/161/4 92/155/4 +f 100/158/5 104/166/5 102/159/5 +f 98/164/4 101/168/4 94/170/4 +f 94/163/4 99/171/4 93/173/4 +f 97/157/4 102/174/4 98/176/4 +f 101/168/12 105/177/12 99/169/12 +f 102/174/3 106/179/3 101/175/3 +f 99/171/1 103/181/1 100/172/1 +f 114/204/3 108/183/3 113/185/3 +f 109/193/4 116/186/4 113/188/4 +f 109/201/1 111/189/1 110/191/1 +f 110/198/12 112/190/12 114/192/12 +f 113/188/5 107/184/5 109/193/5 +f 112/190/4 111/189/4 108/183/4 +f 116/186/5 120/194/5 118/187/5 +f 114/192/4 117/196/4 110/198/4 +f 110/191/4 115/199/4 109/201/4 +f 113/185/4 118/202/4 114/204/4 +f 117/196/12 121/205/12 115/197/12 +f 118/202/3 122/207/3 117/203/3 +f 115/199/1 119/209/1 116/200/1 +f 15/214/27 16/211/27 124/213/27 +f 9/24/4 12/23/4 15/214/4 +f 12/16/3 11/215/3 16/217/3 +f 10/358/1 9/19/1 14/219/1 +f 128/376/12 124/213/12 152/377/12 +f 18/212/12 125/378/12 133/379/12 +f 133/379/12 134/380/12 18/212/12 +f 135/381/12 136/382/12 18/212/12 +f 137/383/12 138/384/12 18/212/12 +f 139/385/12 140/386/12 18/212/12 +f 141/387/12 142/239/12 18/212/12 +f 143/220/12 144/388/12 124/213/12 +f 145/389/12 146/390/12 124/213/12 +f 147/391/12 148/392/12 124/213/12 +f 149/393/12 150/394/12 124/213/12 +f 151/395/12 152/377/12 124/213/12 +f 18/212/12 134/380/12 135/381/12 +f 151/395/12 124/213/12 150/394/12 +f 148/392/12 149/393/12 124/213/12 +f 144/388/12 145/389/12 124/213/12 +f 140/386/12 141/387/12 18/212/12 +f 136/382/12 137/383/12 18/212/12 +f 147/391/12 124/213/12 146/390/12 +f 18/212/12 138/384/12 139/385/12 +f 142/239/12 143/220/12 18/212/12 +f 13/26/28 14/25/28 17/222/28 +f 14/219/29 15/218/29 123/224/29 +f 16/217/30 13/216/30 18/226/30 +f 127/231/3 128/227/3 131/229/3 +f 126/396/12 17/222/12 212/397/12 +f 123/221/12 127/398/12 193/399/12 +f 193/399/12 194/400/12 123/221/12 +f 195/401/12 196/402/12 123/221/12 +f 197/403/12 198/404/12 123/221/12 +f 199/405/12 200/406/12 123/221/12 +f 201/407/12 202/242/12 123/221/12 +f 203/230/12 204/408/12 17/222/12 +f 205/409/12 206/410/12 17/222/12 +f 207/411/12 208/412/12 17/222/12 +f 209/413/12 210/414/12 17/222/12 +f 211/415/12 212/397/12 17/222/12 +f 123/221/12 194/400/12 195/401/12 +f 211/415/12 17/222/12 210/414/12 +f 208/412/12 209/413/12 17/222/12 +f 204/408/12 205/409/12 17/222/12 +f 200/406/12 201/407/12 123/221/12 +f 196/402/12 197/403/12 123/221/12 +f 207/411/12 17/222/12 206/410/12 +f 123/221/12 198/404/12 199/405/12 +f 202/242/12 203/230/12 123/221/12 +f 123/224/12 124/223/12 127/231/12 +f 18/226/12 17/225/12 125/233/12 +f 129/416/12 130/234/12 132/236/12 +f 125/233/1 126/232/1 129/238/1 +f 132/241/2 128/376/2 152/377/2 +f 152/377/2 151/395/2 132/241/2 +f 150/394/2 149/393/2 132/241/2 +f 148/392/2 147/391/2 132/241/2 +f 146/390/2 145/389/2 132/241/2 +f 144/388/2 143/220/2 132/241/2 +f 142/239/2 141/387/2 129/240/2 +f 140/386/2 139/385/2 129/240/2 +f 138/384/2 137/383/2 129/240/2 +f 136/382/2 135/381/2 129/240/2 +f 134/380/2 133/379/2 129/240/2 +f 125/378/2 129/240/2 133/379/2 +f 132/241/2 151/395/2 150/394/2 +f 149/393/2 148/392/2 132/241/2 +f 145/389/2 144/388/2 132/241/2 +f 141/387/2 140/386/2 129/240/2 +f 137/383/2 136/382/2 129/240/2 +f 134/380/2 129/240/2 135/381/2 +f 132/241/2 147/391/2 146/390/2 +f 143/220/2 142/239/2 132/241/2 +f 138/384/2 129/240/2 139/385/2 +f 130/244/4 126/396/4 212/397/4 +f 212/397/4 211/415/4 130/244/4 +f 210/414/4 209/413/4 130/244/4 +f 208/412/4 207/411/4 130/244/4 +f 206/410/4 205/409/4 130/244/4 +f 204/408/4 203/230/4 130/244/4 +f 202/242/4 201/407/4 131/243/4 +f 200/406/4 199/405/4 131/243/4 +f 198/404/4 197/403/4 131/243/4 +f 196/402/4 195/401/4 131/243/4 +f 194/400/4 193/399/4 131/243/4 +f 127/398/4 131/243/4 193/399/4 +f 130/244/4 211/415/4 210/414/4 +f 209/413/4 208/412/4 130/244/4 +f 205/409/4 204/408/4 130/244/4 +f 201/407/4 200/406/4 131/243/4 +f 197/403/4 196/402/4 131/243/4 +f 194/400/4 131/243/4 195/401/4 +f 130/244/4 207/411/4 206/410/4 +f 203/230/4 202/242/4 130/244/4 +f 198/404/4 131/243/4 199/405/4 +f 194/417/2 193/245/2 214/247/2 +f 196/418/2 195/248/2 216/250/2 +f 198/419/2 197/251/2 218/253/2 +f 200/420/2 199/254/2 220/256/2 +f 202/421/2 201/257/2 222/259/2 +f 204/422/2 203/260/2 224/262/2 +f 206/423/2 205/263/2 226/265/2 +f 208/424/2 207/266/2 228/268/2 +f 210/425/2 209/269/2 230/271/2 +f 212/426/2 211/272/2 232/274/2 +f 232/274/8 231/273/8 252/276/8 +f 230/271/8 229/270/8 250/278/8 +f 228/268/8 227/267/8 248/280/8 +f 226/265/8 225/264/8 246/282/8 +f 224/262/8 223/261/8 244/284/8 +f 222/259/8 221/258/8 242/286/8 +f 220/256/8 219/255/8 240/288/8 +f 218/253/8 217/252/8 238/290/8 +f 216/250/8 215/249/8 236/292/8 +f 214/247/8 213/246/8 234/294/8 +f 172/307/9 171/295/9 192/297/9 +f 170/305/9 169/298/9 190/300/9 +f 148/427/4 147/301/4 168/303/4 +f 150/428/4 149/304/4 170/305/4 +f 152/429/4 151/306/4 172/307/4 +f 146/430/4 145/308/4 166/310/4 +f 144/431/4 143/311/4 164/313/4 +f 142/432/4 141/314/4 162/316/4 +f 140/433/4 139/317/4 160/319/4 +f 138/434/4 137/320/4 158/322/4 +f 136/435/4 135/323/4 156/325/4 +f 134/436/4 133/326/4 154/328/4 +f 154/328/9 153/327/9 174/330/9 +f 156/325/9 155/324/9 176/332/9 +f 158/322/9 157/321/9 178/334/9 +f 160/319/9 159/318/9 180/336/9 +f 162/316/9 161/315/9 182/338/9 +f 164/313/9 163/312/9 184/340/9 +f 166/310/9 165/309/9 186/342/9 +f 168/303/9 167/302/9 188/344/9 +f 173/329/12 252/276/12 174/330/12 +f 175/331/12 250/278/12 176/332/12 +f 177/333/12 248/280/12 178/334/12 +f 179/335/12 246/282/12 180/336/12 +f 181/337/12 244/284/12 182/338/12 +f 183/339/12 242/286/12 184/340/12 +f 191/296/12 234/294/12 192/297/12 +f 189/299/12 236/292/12 190/300/12 +f 187/343/12 238/290/12 188/344/12 +f 185/341/12 240/288/12 186/342/12 diff --git a/assets/hbm/models/assembler_wheel.obj b/assets/hbm/models/assembler_wheel.obj new file mode 100644 index 000000000..526a71b3c --- /dev/null +++ b/assets/hbm/models/assembler_wheel.obj @@ -0,0 +1,645 @@ +# Blender v2.76 (sub 0) OBJ File: 'assembler_wheel.blend' +# www.blender.org +o Cylinder +v 0.000000 1.162500 -0.750000 +v 0.000000 1.537500 -0.750000 +v 0.194114 1.162500 -0.724444 +v 0.194114 1.537500 -0.724444 +v 0.375000 1.162500 -0.649519 +v 0.375000 1.537500 -0.649519 +v 0.530330 1.162500 -0.530330 +v 0.530330 1.537500 -0.530330 +v 0.649519 1.162500 -0.375000 +v 0.649519 1.537500 -0.375000 +v 0.724444 1.162500 -0.194114 +v 0.724444 1.537500 -0.194114 +v 0.750000 1.162500 -0.000000 +v 0.750000 1.537500 -0.000000 +v 0.724444 1.162500 0.194114 +v 0.724444 1.537500 0.194114 +v 0.649519 1.162500 0.375000 +v 0.649519 1.537500 0.375000 +v 0.530330 1.162500 0.530330 +v 0.530330 1.537500 0.530330 +v 0.375000 1.162500 0.649519 +v 0.375000 1.537500 0.649519 +v 0.194115 1.162500 0.724444 +v 0.194115 1.537500 0.724444 +v 0.000000 1.162500 0.750000 +v 0.000000 1.537500 0.750000 +v -0.194114 1.162500 0.724444 +v -0.194114 1.537500 0.724444 +v -0.375000 1.162500 0.649519 +v -0.375000 1.537500 0.649519 +v -0.530330 1.162500 0.530330 +v -0.530330 1.537500 0.530330 +v -0.649519 1.162500 0.375000 +v -0.649519 1.537500 0.375000 +v -0.724444 1.162500 0.194115 +v -0.724444 1.537500 0.194115 +v -0.750000 1.162500 0.000000 +v -0.750000 1.537500 0.000000 +v -0.724444 1.162500 -0.194114 +v -0.724444 1.537500 -0.194114 +v -0.649519 1.162500 -0.375000 +v -0.649519 1.537500 -0.375000 +v -0.530330 1.162500 -0.530330 +v -0.530330 1.537500 -0.530330 +v -0.375000 1.162500 -0.649519 +v -0.375000 1.537500 -0.649519 +v -0.194115 1.162500 -0.724444 +v -0.194115 1.537500 -0.724444 +v 0.000000 1.162500 -0.562500 +v 0.000000 1.537500 -0.562500 +v 0.145586 1.162500 -0.543333 +v 0.145586 1.537500 -0.543333 +v 0.281250 1.162500 -0.487139 +v 0.281250 1.537500 -0.487139 +v 0.397748 1.162500 -0.397748 +v 0.397748 1.537500 -0.397748 +v 0.487139 1.162500 -0.281250 +v 0.487139 1.537500 -0.281250 +v 0.543333 1.162500 -0.145586 +v 0.543333 1.537500 -0.145586 +v 0.562500 1.162500 -0.000000 +v 0.562500 1.537500 -0.000000 +v 0.543333 1.162500 0.145586 +v 0.543333 1.537500 0.145586 +v 0.487139 1.162500 0.281250 +v 0.487139 1.537500 0.281250 +v 0.397748 1.162500 0.397747 +v 0.397748 1.537500 0.397747 +v 0.281250 1.162500 0.487139 +v 0.281250 1.537500 0.487139 +v 0.145586 1.162500 0.543333 +v 0.145586 1.537500 0.543333 +v 0.000000 1.162500 0.562500 +v 0.000000 1.537500 0.562500 +v -0.145585 1.162500 0.543333 +v -0.145585 1.537500 0.543333 +v -0.281250 1.162500 0.487139 +v -0.281250 1.537500 0.487139 +v -0.397747 1.162500 0.397748 +v -0.397747 1.537500 0.397748 +v -0.487139 1.162500 0.281250 +v -0.487139 1.537500 0.281250 +v -0.543333 1.162500 0.145586 +v -0.543333 1.537500 0.145586 +v -0.562500 1.162500 0.000000 +v -0.562500 1.537500 0.000000 +v -0.543333 1.162500 -0.145585 +v -0.543333 1.537500 -0.145585 +v -0.487139 1.162500 -0.281250 +v -0.487139 1.537500 -0.281250 +v -0.397748 1.162500 -0.397747 +v -0.397748 1.537500 -0.397747 +v -0.281250 1.162500 -0.487139 +v -0.281250 1.537500 -0.487139 +v -0.145586 1.162500 -0.543333 +v -0.145586 1.537500 -0.543333 +v 0.000000 1.537500 -0.281250 +v 0.072793 1.537500 -0.271667 +v 0.140625 1.537500 -0.243570 +v 0.198874 1.537500 -0.198874 +v 0.243570 1.537500 -0.140625 +v 0.271667 1.537500 -0.072793 +v 0.281250 1.537500 0.000000 +v 0.271667 1.537500 0.072793 +v 0.243570 1.537500 0.140625 +v 0.198874 1.537500 0.198874 +v 0.140625 1.537500 0.243570 +v 0.072793 1.537500 0.271667 +v 0.000000 1.537500 0.281250 +v -0.072793 1.537500 0.271667 +v -0.140625 1.537500 0.243570 +v -0.198874 1.537500 0.198874 +v -0.243570 1.537500 0.140625 +v -0.271667 1.537500 0.072793 +v -0.281250 1.537500 0.000000 +v -0.271667 1.537500 -0.072793 +v -0.243570 1.537500 -0.140625 +v -0.198874 1.537500 -0.198874 +v -0.140625 1.537500 -0.243569 +v -0.072793 1.537500 -0.271667 +v 0.000000 1.287500 0.281250 +v 0.072793 1.287500 0.271667 +v 0.140625 1.287500 0.243570 +v 0.198874 1.287500 0.198874 +v 0.243570 1.287500 0.140625 +v 0.271667 1.287500 0.072793 +v 0.281250 1.287500 0.000000 +v 0.271667 1.287500 -0.072793 +v 0.243570 1.287500 -0.140625 +v 0.198874 1.287500 -0.198874 +v 0.140625 1.287500 -0.243570 +v 0.072793 1.287500 -0.271667 +v 0.000000 1.287500 -0.281250 +v -0.072793 1.287500 0.271667 +v -0.140625 1.287500 0.243570 +v -0.198874 1.287500 0.198874 +v -0.243570 1.287500 0.140625 +v -0.271667 1.287500 0.072793 +v -0.281250 1.287500 0.000000 +v -0.271667 1.287500 -0.072793 +v -0.243570 1.287500 -0.140625 +v -0.198874 1.287500 -0.198874 +v -0.140625 1.287500 -0.243569 +v -0.072793 1.287500 -0.271667 +vt 0.190885 0.497428 +vt 0.190885 0.622697 +vt 0.128251 0.622697 +vt 0.607699 0.748393 +vt 0.542295 0.748393 +vt 0.542295 0.623125 +vt 0.062848 0.622697 +vt 0.000214 0.622697 +vt 0.000214 0.497429 +vt 0.367975 0.748393 +vt 0.302572 0.748393 +vt 0.302572 0.623125 +vt 0.670333 0.748821 +vt 0.670333 0.874089 +vt 0.607699 0.874089 +vt 0.128251 0.748393 +vt 0.062848 0.748393 +vt 0.062848 0.623125 +vt 0.542296 0.874090 +vt 0.479662 0.874090 +vt 0.479662 0.748821 +vt 0.607699 0.999786 +vt 0.542296 0.999786 +vt 0.542296 0.874518 +vt 0.430609 0.748821 +vt 0.430609 0.874090 +vt 0.367975 0.874090 +vt 0.367975 0.999786 +vt 0.302572 0.999786 +vt 0.302572 0.874518 +vt 0.302572 0.874090 +vt 0.239938 0.874090 +vt 0.239938 0.748821 +vt 0.128251 0.999786 +vt 0.062848 0.999786 +vt 0.062848 0.874518 +vt 0.190886 0.748821 +vt 0.190886 0.874090 +vt 0.128251 0.874089 +vt 0.607699 0.622697 +vt 0.542295 0.622697 +vt 0.542295 0.497428 +vt 0.000214 0.874089 +vt 0.000214 0.748821 +vt 0.062848 0.748821 +vt 0.367975 0.622697 +vt 0.302572 0.622697 +vt 0.302572 0.497428 +vt 0.670333 0.623125 +vt 0.670333 0.748393 +vt 0.062848 0.497429 +vt 0.479661 0.748393 +vt 0.479661 0.623125 +vt 0.542296 0.748821 +vt 0.430609 0.623125 +vt 0.430609 0.748393 +vt 0.302572 0.748821 +vt 0.176700 0.075008 +vt 0.134220 0.099534 +vt 0.096090 0.049843 +vt 0.062848 0.874089 +vt 0.239938 0.748393 +vt 0.049843 0.096090 +vt 0.099534 0.134219 +vt 0.075008 0.176700 +vt 0.719385 0.748393 +vt 0.190885 0.748393 +vt 0.128251 0.623125 +vt 0.000214 0.748393 +vt 0.190885 0.623125 +vt 0.670333 0.999786 +vt 0.607699 0.874518 +vt 0.719385 0.999786 +vt 0.670333 0.874518 +vt 0.479661 0.999786 +vt 0.479661 0.874518 +vt 0.430609 0.999786 +vt 0.430609 0.874518 +vt 0.239938 0.999786 +vt 0.190885 0.999786 +vt 0.190885 0.874518 +vt 0.239938 0.874518 +vt 0.719385 0.622697 +vt 0.670333 0.622697 +vt 0.670333 0.497428 +vt 0.239938 0.622697 +vt 0.239938 0.497428 +vt 0.479661 0.622697 +vt 0.430609 0.622697 +vt 0.430609 0.497428 +vt 0.000214 0.999786 +vt 0.000214 0.874518 +vt 0.719385 0.874089 +vt 0.479661 0.497428 +vt 0.323144 0.191413 +vt 0.397680 0.134219 +vt 0.422206 0.176700 +vt 0.273133 0.062312 +vt 0.224081 0.062312 +vt 0.215906 0.000214 +vt 0.362995 0.099534 +vt 0.320514 0.075008 +vt 0.344483 0.017142 +vt 0.480073 0.152731 +vt 0.434902 0.224081 +vt 0.497000 0.215905 +vt 0.497000 0.281309 +vt 0.397680 0.362995 +vt 0.422206 0.320514 +vt 0.480073 0.344483 +vt 0.362995 0.397680 +vt 0.401124 0.447371 +vt 0.344484 0.480073 +vt 0.224081 0.434902 +vt 0.273133 0.434902 +vt 0.281309 0.497000 +vt 0.134219 0.397680 +vt 0.176700 0.422206 +vt 0.152731 0.480073 +vt 0.017142 0.344483 +vt 0.075008 0.320514 +vt 0.099534 0.362995 +vt 0.062312 0.224081 +vt 0.062312 0.273133 +vt 0.000214 0.281309 +vt 0.305801 0.174071 +vt 0.521955 0.167717 +vt 0.521955 0.084205 +vt 0.546481 0.084205 +vt 0.546481 0.335598 +vt 0.546481 0.252086 +vt 0.571007 0.252086 +vt 0.497428 0.251658 +vt 0.497428 0.168145 +vt 0.521955 0.168145 +vt 0.571007 0.083752 +vt 0.571036 0.000239 +vt 0.595562 0.000248 +vt 0.546481 0.167717 +vt 0.571007 0.084205 +vt 0.521955 0.251658 +vt 0.546481 0.168145 +vt 0.571007 0.335598 +vt 0.595533 0.252086 +vt 0.571007 0.167717 +vt 0.595533 0.084205 +vt 0.595533 0.083760 +vt 0.620088 0.000256 +vt 0.546481 0.251658 +vt 0.571007 0.168145 +vt 0.595533 0.167717 +vt 0.620059 0.084205 +vt 0.595533 0.335598 +vt 0.620059 0.252086 +vt 0.571007 0.251658 +vt 0.595533 0.168145 +vt 0.620059 0.083769 +vt 0.644614 0.000265 +vt 0.620059 0.167717 +vt 0.644585 0.084205 +vt 0.497428 0.083726 +vt 0.497457 0.000214 +vt 0.521983 0.000223 +vt 0.595533 0.251658 +vt 0.620059 0.168145 +vt 0.620059 0.335598 +vt 0.644585 0.252086 +vt 0.497428 0.335598 +vt 0.497428 0.252086 +vt 0.521955 0.252086 +vt 0.620059 0.251658 +vt 0.644585 0.168145 +vt 0.521955 0.083735 +vt 0.546510 0.000231 +vt 0.497428 0.167717 +vt 0.497428 0.084205 +vt 0.521955 0.335598 +vt 0.546481 0.083743 +vt 0.341755 0.236344 +vt 0.335407 0.212654 +vt 0.434902 0.273133 +vt 0.341755 0.260870 +vt 0.335407 0.284561 +vt 0.323144 0.305801 +vt 0.305801 0.323144 +vt 0.284561 0.335407 +vt 0.260870 0.341754 +vt 0.320514 0.422206 +vt 0.236344 0.341754 +vt 0.212654 0.335407 +vt 0.191413 0.323144 +vt 0.174071 0.305801 +vt 0.161808 0.284561 +vt 0.155460 0.260870 +vt 0.155460 0.236344 +vt 0.161808 0.212653 +vt 0.174071 0.191413 +vt 0.191413 0.174071 +vt 0.212654 0.161807 +vt 0.236344 0.155460 +vt 0.260870 0.155460 +vt 0.284561 0.161808 +vt 0.128251 0.497428 +vt 0.607699 0.623125 +vt 0.367975 0.623125 +vt 0.607699 0.748821 +vt 0.367975 0.748821 +vt 0.367975 0.874518 +vt 0.128251 0.874518 +vt 0.128251 0.748821 +vt 0.607699 0.497428 +vt 0.367975 0.497428 +vt 0.152731 0.017142 +vt 0.239938 0.623125 +vt 0.017142 0.152731 +vt 0.719385 0.623125 +vt 0.000214 0.623125 +vt 0.719385 0.874518 +vt 0.719385 0.497428 +vt 0.719385 0.748821 +vt 0.281309 0.000214 +vt 0.401124 0.049843 +vt 0.447371 0.096090 +vt 0.447371 0.401124 +vt 0.215906 0.497000 +vt 0.096090 0.447371 +vt 0.049843 0.401124 +vt 0.000214 0.215905 +vt 0.644585 0.083777 +vt 0.644585 0.167717 +vt 0.644585 0.335598 +vt 0.644585 0.251658 +vn 0.258800 0.000000 0.965900 +vn 0.382700 0.000000 -0.923900 +vn -0.000000 0.000000 -1.000000 +vn 0.793400 0.000000 -0.608800 +vn -0.258800 0.000000 0.965900 +vn 0.991400 0.000000 -0.130500 +vn 0.500000 0.000000 -0.866000 +vn 0.923900 0.000000 0.382700 +vn -0.707100 0.000000 0.707100 +vn 0.608800 0.000000 0.793400 +vn 0.866000 0.000000 -0.500000 +vn 0.130500 0.000000 0.991400 +vn -0.965900 0.000000 0.258800 +vn -0.382700 0.000000 0.923900 +vn 1.000000 0.000000 -0.000000 +vn -0.793400 0.000000 0.608800 +vn -0.965900 0.000000 -0.258800 +vn -0.991400 0.000000 0.130500 +vn 0.866000 0.000000 0.500000 +vn -0.923900 0.000000 -0.382700 +vn -0.707100 0.000000 -0.707100 +vn -0.608800 0.000000 -0.793400 +vn 0.000000 1.000000 -0.000000 +vn -0.130500 0.000000 -0.991400 +vn 0.500000 0.000000 0.866000 +vn 0.130500 0.000000 -0.991400 +vn -0.258800 0.000000 -0.965900 +vn 0.608800 0.000000 -0.793400 +vn 0.000000 0.000000 1.000000 +vn 0.923900 0.000000 -0.382700 +vn 0.258800 0.000000 -0.965900 +vn 0.991400 0.000000 0.130500 +vn -0.500000 0.000000 0.866000 +vn 0.793400 0.000000 0.608800 +vn 0.707100 0.000000 -0.707100 +vn 0.382700 0.000000 0.923900 +vn -0.866000 0.000000 0.500000 +vn -0.130500 0.000000 0.991400 +vn -0.500000 0.000000 -0.866000 +vn -0.608800 0.000000 0.793400 +vn 0.965900 0.000000 -0.258800 +vn -0.923900 0.000000 0.382700 +vn -1.000000 0.000000 0.000000 +vn -0.991400 0.000000 -0.130500 +vn 0.965900 0.000000 0.258800 +vn -0.793400 0.000000 -0.608800 +vn -0.866000 0.000000 -0.500000 +vn 0.707100 0.000000 0.707100 +vn -0.382700 0.000000 -0.923900 +s off +f 83/1/1 84/2/1 36/3/1 +f 4/4/2 6/5/2 5/6/2 +f 38/7/3 86/8/3 85/9/3 +f 8/10/4 10/11/4 9/12/4 +f 87/13/5 88/14/5 40/15/5 +f 12/16/6 14/17/6 13/18/6 +f 42/19/7 90/20/7 89/21/7 +f 16/22/8 18/23/8 17/24/8 +f 91/25/9 92/26/9 44/27/9 +f 20/28/10 22/29/10 21/30/10 +f 46/31/11 94/32/11 93/33/11 +f 24/34/12 26/35/12 25/36/12 +f 95/37/13 96/38/13 48/39/13 +f 28/40/14 30/41/14 29/42/14 +f 50/43/15 49/44/15 1/45/15 +f 32/46/16 34/47/16 33/48/16 +f 51/49/17 52/50/17 4/4/17 +f 36/3/18 38/7/18 37/51/18 +f 6/5/19 54/52/19 53/53/19 +f 40/15/20 42/19/20 41/54/20 +f 55/55/21 56/56/21 8/10/21 +f 44/27/22 46/31/22 45/57/22 +f 80/58/23 82/59/23 34/60/23 +f 48/39/24 2/61/24 1/45/24 +f 9/12/25 10/11/25 58/62/25 +f 36/63/23 84/64/23 86/65/23 +f 50/66/26 52/50/26 51/49/26 +f 60/67/27 12/16/27 11/68/27 +f 54/52/28 56/56/28 55/55/28 +f 13/18/29 14/17/29 62/69/29 +f 58/62/30 60/67/30 59/70/30 +f 64/71/31 16/22/31 15/72/31 +f 62/73/32 64/71/32 63/74/32 +f 18/23/33 66/75/33 65/76/33 +f 66/75/34 68/77/34 67/78/34 +f 67/78/35 68/77/35 20/28/35 +f 70/79/36 72/80/36 71/81/36 +f 22/29/37 70/79/37 69/82/37 +f 74/83/38 76/84/38 75/85/38 +f 34/47/39 82/86/39 81/87/39 +f 78/88/40 80/89/40 79/90/40 +f 71/81/41 72/80/41 24/34/41 +f 82/86/42 84/2/42 83/1/42 +f 26/35/43 74/91/43 73/92/43 +f 86/93/44 88/14/44 87/13/44 +f 75/85/45 76/84/45 28/40/45 +f 90/20/46 92/26/46 91/25/46 +f 30/41/47 78/88/47 77/94/47 +f 79/90/48 80/89/48 32/46/48 +f 94/32/49 96/38/49 95/37/49 +f 107/95/23 70/96/23 68/97/23 +f 76/98/23 78/99/23 30/100/23 +f 72/101/23 74/102/23 26/103/23 +f 20/104/23 68/97/23 70/96/23 +f 66/105/23 18/106/23 16/107/23 +f 60/108/23 62/109/23 14/110/23 +f 58/111/23 10/112/23 8/113/23 +f 52/114/23 54/115/23 6/116/23 +f 96/117/23 50/118/23 2/119/23 +f 44/120/23 92/121/23 94/122/23 +f 88/123/23 90/124/23 42/125/23 +f 108/126/23 72/101/23 70/96/23 +f 116/127/8 140/128/8 141/129/8 +f 105/130/46 125/131/46 124/132/46 +f 109/133/26 121/134/26 134/135/26 +f 100/136/16 130/137/16 129/138/16 +f 117/139/34 141/129/34 142/140/34 +f 110/141/2 134/135/2 135/142/2 +f 106/143/22 124/132/22 123/144/22 +f 118/145/10 142/140/10 143/146/10 +f 101/147/42 129/138/42 128/148/42 +f 111/149/28 135/142/28 136/150/28 +f 119/151/36 143/146/36 144/152/36 +f 107/153/49 123/144/49 122/154/49 +f 112/155/4 136/150/4 137/156/4 +f 102/157/18 128/148/18 127/158/18 +f 120/159/12 144/152/12 133/160/12 +f 97/161/38 133/162/38 132/163/38 +f 113/164/30 137/156/30 138/165/30 +f 108/166/24 122/154/24 121/167/24 +f 103/168/44 127/169/44 126/170/44 +f 114/171/6 138/165/6 139/172/6 +f 98/173/14 132/163/14 131/174/14 +f 115/175/32 139/176/32 140/128/32 +f 104/177/20 126/170/20 125/131/20 +f 99/178/40 131/174/40 130/137/40 +f 105/179/23 106/180/23 68/97/23 +f 64/181/23 104/182/23 105/179/23 +f 103/183/23 104/182/23 64/181/23 +f 102/184/23 103/183/23 62/109/23 +f 101/185/23 102/184/23 60/108/23 +f 100/186/23 101/185/23 58/111/23 +f 99/187/23 100/186/23 56/188/23 +f 52/114/23 98/189/23 99/187/23 +f 97/190/23 98/189/23 52/114/23 +f 120/191/23 97/190/23 50/118/23 +f 119/192/23 120/191/23 96/117/23 +f 118/193/23 119/192/23 94/122/23 +f 117/194/23 118/193/23 92/121/23 +f 116/195/23 117/194/23 90/124/23 +f 115/196/23 116/195/23 88/123/23 +f 84/64/23 114/197/23 115/196/23 +f 82/59/23 113/198/23 114/197/23 +f 112/199/23 113/198/23 82/59/23 +f 78/99/23 111/200/23 112/199/23 +f 110/201/23 111/200/23 78/99/23 +f 74/102/23 109/202/23 110/201/23 +f 108/126/23 109/202/23 74/102/23 +f 35/203/1 83/1/1 36/3/1 +f 3/204/2 4/4/2 5/6/2 +f 37/51/3 38/7/3 85/9/3 +f 7/205/4 8/10/4 9/12/4 +f 39/206/5 87/13/5 40/15/5 +f 11/68/6 12/16/6 13/18/6 +f 41/54/7 42/19/7 89/21/7 +f 15/72/8 16/22/8 17/24/8 +f 43/207/9 91/25/9 44/27/9 +f 19/208/10 20/28/10 21/30/10 +f 45/57/11 46/31/11 93/33/11 +f 23/209/12 24/34/12 25/36/12 +f 47/210/13 95/37/13 48/39/13 +f 27/211/14 28/40/14 29/42/14 +f 2/61/15 50/43/15 1/45/15 +f 31/212/16 32/46/16 33/48/16 +f 3/204/17 51/49/17 4/4/17 +f 35/203/18 36/3/18 37/51/18 +f 5/6/19 6/5/19 53/53/19 +f 39/206/20 40/15/20 41/54/20 +f 7/205/21 55/55/21 8/10/21 +f 43/207/22 44/27/22 45/57/22 +f 32/213/23 80/58/23 34/60/23 +f 47/210/24 48/39/24 1/45/24 +f 57/214/25 9/12/25 58/62/25 +f 38/215/23 36/63/23 86/65/23 +f 49/216/26 50/66/26 51/49/26 +f 59/70/27 60/67/27 11/68/27 +f 53/53/28 54/52/28 55/55/28 +f 61/217/29 13/18/29 62/69/29 +f 57/214/30 58/62/30 59/70/30 +f 63/74/31 64/71/31 15/72/31 +f 61/218/32 62/73/32 63/74/32 +f 17/24/33 18/23/33 65/76/33 +f 65/76/34 66/75/34 67/78/34 +f 19/208/35 67/78/35 20/28/35 +f 69/82/36 70/79/36 71/81/36 +f 21/30/37 22/29/37 69/82/37 +f 73/219/38 74/83/38 75/85/38 +f 33/48/39 34/47/39 81/87/39 +f 77/94/40 78/88/40 79/90/40 +f 23/209/41 71/81/41 24/34/41 +f 81/87/42 82/86/42 83/1/42 +f 25/36/43 26/35/43 73/92/43 +f 85/220/44 86/93/44 87/13/44 +f 27/211/45 75/85/45 28/40/45 +f 89/21/46 90/20/46 91/25/46 +f 29/42/47 30/41/47 77/94/47 +f 31/212/48 79/90/48 32/46/48 +f 93/33/49 94/32/49 95/37/49 +f 106/180/23 107/95/23 68/97/23 +f 28/221/23 76/98/23 30/100/23 +f 24/222/23 72/101/23 26/103/23 +f 22/223/23 20/104/23 70/96/23 +f 64/181/23 66/105/23 16/107/23 +f 12/224/23 60/108/23 14/110/23 +f 56/188/23 58/111/23 8/113/23 +f 4/225/23 52/114/23 6/116/23 +f 48/226/23 96/117/23 2/119/23 +f 46/227/23 44/120/23 94/122/23 +f 40/228/23 88/123/23 42/125/23 +f 107/95/23 108/126/23 70/96/23 +f 117/139/8 116/127/8 141/129/8 +f 106/143/46 105/130/46 124/132/46 +f 110/141/26 109/133/26 134/135/26 +f 101/147/16 100/136/16 129/138/16 +f 118/145/34 117/139/34 142/140/34 +f 111/149/2 110/141/2 135/142/2 +f 107/153/22 106/143/22 123/144/22 +f 119/151/10 118/145/10 143/146/10 +f 102/157/42 101/147/42 128/148/42 +f 112/155/28 111/149/28 136/150/28 +f 120/159/36 119/151/36 144/152/36 +f 108/166/49 107/153/49 122/154/49 +f 113/164/4 112/155/4 137/156/4 +f 103/229/18 102/157/18 127/158/18 +f 97/230/12 120/159/12 133/160/12 +f 98/173/38 97/161/38 132/163/38 +f 114/171/30 113/164/30 138/165/30 +f 109/231/24 108/166/24 121/167/24 +f 104/177/44 103/168/44 126/170/44 +f 115/232/6 114/171/6 139/172/6 +f 99/178/14 98/173/14 131/174/14 +f 116/127/32 115/175/32 140/128/32 +f 105/130/20 104/177/20 125/131/20 +f 100/136/40 99/178/40 130/137/40 +f 66/105/23 105/179/23 68/97/23 +f 66/105/23 64/181/23 105/179/23 +f 62/109/23 103/183/23 64/181/23 +f 60/108/23 102/184/23 62/109/23 +f 58/111/23 101/185/23 60/108/23 +f 56/188/23 100/186/23 58/111/23 +f 54/115/23 99/187/23 56/188/23 +f 54/115/23 52/114/23 99/187/23 +f 50/118/23 97/190/23 52/114/23 +f 96/117/23 120/191/23 50/118/23 +f 94/122/23 119/192/23 96/117/23 +f 92/121/23 118/193/23 94/122/23 +f 90/124/23 117/194/23 92/121/23 +f 88/123/23 116/195/23 90/124/23 +f 86/65/23 115/196/23 88/123/23 +f 86/65/23 84/64/23 115/196/23 +f 84/64/23 82/59/23 114/197/23 +f 80/58/23 112/199/23 82/59/23 +f 80/58/23 78/99/23 112/199/23 +f 76/98/23 110/201/23 78/99/23 +f 76/98/23 74/102/23 110/201/23 +f 72/101/23 108/126/23 74/102/23 diff --git a/assets/hbm/sounds.json b/assets/hbm/sounds.json index 8ab9dd92f..5a5b44577 100644 --- a/assets/hbm/sounds.json +++ b/assets/hbm/sounds.json @@ -6,6 +6,7 @@ "block.crateBreak": {"category": "block", "sounds": ["block/crateBreak1", "block/crateBreak2", "block/crateBreak3", "block/crateBreak4", "block/crateBreak5"]}, "block.shutdown": {"category": "block", "sounds": [{"name": "block/shutdown", "stream": false}]}, + "block.minerOperate": {"category": "block", "sounds": [{"name": "block/minerOperate", "stream": false}]}, "item.techBleep": {"category": "player", "sounds": [{"name": "tool/techBleep", "stream": false}]}, "item.techBoop": {"category": "player", "sounds": [{"name": "tool/techBoop", "stream": false}]}, diff --git a/assets/hbm/sounds/block/minerOperate.ogg b/assets/hbm/sounds/block/minerOperate.ogg new file mode 100644 index 000000000..c337318ad Binary files /dev/null and b/assets/hbm/sounds/block/minerOperate.ogg differ diff --git a/assets/hbm/textures/blocks/machine_assembler.png b/assets/hbm/textures/blocks/machine_assembler.png new file mode 100644 index 000000000..5c7acf8f6 Binary files /dev/null and b/assets/hbm/textures/blocks/machine_assembler.png differ diff --git a/assets/hbm/textures/blocks/machine_drill.png b/assets/hbm/textures/blocks/machine_drill.png new file mode 100644 index 000000000..379b7371a Binary files /dev/null and b/assets/hbm/textures/blocks/machine_drill.png differ diff --git a/assets/hbm/textures/models/assembler.png b/assets/hbm/textures/models/assembler.png new file mode 100755 index 000000000..ce7865c35 Binary files /dev/null and b/assets/hbm/textures/models/assembler.png differ diff --git a/assets/hbm/textures/models/mining_drill.png b/assets/hbm/textures/models/mining_drill.png new file mode 100755 index 000000000..78f6b2b18 Binary files /dev/null and b/assets/hbm/textures/models/mining_drill.png differ diff --git a/assets/hbm/textures/models/textureIGen.png b/assets/hbm/textures/models/textureIGen.png index 9d98179c5..5634d10b8 100755 Binary files a/assets/hbm/textures/models/textureIGen.png and b/assets/hbm/textures/models/textureIGen.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index 75724edc2..25c5cf451 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -357,23 +357,6 @@ public class ModBlocks { public static final int guiID_machine_assembler = 48; public static Block launch_pad; - public static Block launch_pad_generic; - public static Block launch_pad_incendiary; - public static Block launch_pad_cluster; - public static Block launch_pad_buster; - public static Block launch_pad_strong; - public static Block launch_pad_incendiary_strong; - public static Block launch_pad_cluster_strong; - public static Block launch_pad_buster_strong; - public static Block launch_pad_burst; - public static Block launch_pad_inferno; - public static Block launch_pad_rain; - public static Block launch_pad_drill; - public static Block launch_pad_nuclear; - public static Block launch_pad_endo; - public static Block launch_pad_exo; - public static Block launch_pad_mirv; - public static Block launch_pad_anti; public static final int guiID_launch_pad = 19; public static Block book_guide; @@ -668,23 +651,6 @@ public class ModBlocks { marker_structure = new BlockMarker(Material.iron).setBlockName("marker_structure").setHardness(0.0F).setResistance(0.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":marker_structure"); launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabNuke).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_generic = new LaunchPad(Material.iron).setBlockName("launch_pad_generic").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_incendiary = new LaunchPad(Material.iron).setBlockName("launch_pad_incendiary").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_cluster = new LaunchPad(Material.iron).setBlockName("launch_pad_cluster").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_buster = new LaunchPad(Material.iron).setBlockName("launch_pad_buster").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_strong = new LaunchPad(Material.iron).setBlockName("launch_pad_strong").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_incendiary_strong = new LaunchPad(Material.iron).setBlockName("launch_pad_incendiary_strong").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_cluster_strong = new LaunchPad(Material.iron).setBlockName("launch_pad_cluster_strong").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_buster_strong = new LaunchPad(Material.iron).setBlockName("launch_pad_buster_strong").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_burst = new LaunchPad(Material.iron).setBlockName("launch_pad_burst").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_inferno = new LaunchPad(Material.iron).setBlockName("launch_pad_inferno").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_rain = new LaunchPad(Material.iron).setBlockName("launch_pad_rain").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_drill = new LaunchPad(Material.iron).setBlockName("launch_pad_drill").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_nuclear = new LaunchPad(Material.iron).setBlockName("launch_pad_nuclear").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_endo = new LaunchPad(Material.iron).setBlockName("launch_pad_endo").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_exo = new LaunchPad(Material.iron).setBlockName("launch_pad_exo").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_mirv = new LaunchPad(Material.iron).setBlockName("launch_pad_mirv").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); - launch_pad_anti = new LaunchPad(Material.iron).setBlockName("launch_pad_anti").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); book_guide = new Guide(Material.iron).setBlockName("book_guide").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabNuke); @@ -1001,23 +967,6 @@ public class ModBlocks { //Launch Pads GameRegistry.registerBlock(launch_pad, launch_pad.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_generic, launch_pad_generic.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_incendiary, launch_pad_incendiary.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_cluster, launch_pad_cluster.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_buster, launch_pad_buster.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_strong, launch_pad_strong.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_incendiary_strong, launch_pad_incendiary_strong.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_cluster_strong, launch_pad_cluster_strong.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_buster_strong, launch_pad_buster_strong.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_burst, launch_pad_burst.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_inferno, launch_pad_inferno.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_rain, launch_pad_rain.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_drill, launch_pad_drill.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_nuclear, launch_pad_nuclear.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_endo, launch_pad_endo.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_exo, launch_pad_exo.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_mirv, launch_pad_mirv.getUnlocalizedName()); - GameRegistry.registerBlock(launch_pad_anti, launch_pad_anti.getUnlocalizedName()); //Guide GameRegistry.registerBlock(book_guide, book_guide.getUnlocalizedName()); diff --git a/com/hbm/blocks/bomb/LaunchPad.java b/com/hbm/blocks/bomb/LaunchPad.java index 595a199d0..5c3cf52a1 100644 --- a/com/hbm/blocks/bomb/LaunchPad.java +++ b/com/hbm/blocks/bomb/LaunchPad.java @@ -179,74 +179,6 @@ public class LaunchPad extends BlockContainer implements IBomb { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } } - - public static void updateBlockState(int type, World world, int x, int y, int z) { - int i = world.getBlockMetadata(x, y, z); - TileEntity entity = world.getTileEntity(x, y, z); - keepInventory = true; - - if(type == 1) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_generic); - } else if(type == 2) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_strong); - } else if(type == 3) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_cluster); - } else if(type == 4) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_nuclear); - } else if(type == 5) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_incendiary); - } else if(type == 6) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_buster); - } else if(type == 7) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_incendiary_strong); - } else if(type == 8) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_cluster_strong); - } else if(type == 9) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_buster_strong); - } else if(type == 10) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_burst); - } else if(type == 11) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_inferno); - } else if(type == 12) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_rain); - } else if(type == 13) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_drill); - } else if(type == 14) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_endo); - } else if(type == 15) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_exo); - } else if(type == 16) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_mirv); - } else if(type == 17) - { - world.setBlock(x, y, z, ModBlocks.launch_pad_anti); - } else { - world.setBlock(x, y, z, ModBlocks.launch_pad); - } - - keepInventory = false; - - if(entity != null) { - entity.validate(); - world.setTileEntity(x, y, z, entity); - } - } @Override public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) diff --git a/com/hbm/creativetabs/MachineTab.java b/com/hbm/creativetabs/MachineTab.java index b37a48ffa..8efd87229 100644 --- a/com/hbm/creativetabs/MachineTab.java +++ b/com/hbm/creativetabs/MachineTab.java @@ -11,6 +11,7 @@ public class MachineTab extends CreativeTabs { public MachineTab(int p_i1853_1_, String p_i1853_2_) { super(p_i1853_1_, p_i1853_2_); + setBackgroundImageName("item_search.png"); } @Override @@ -24,4 +25,9 @@ public class MachineTab extends CreativeTabs { return Items.iron_pickaxe; } + @Override + public boolean hasSearchBar() { + return true; + } + } diff --git a/com/hbm/handler/FluidTypeHandler.java b/com/hbm/handler/FluidTypeHandler.java index 3a5732358..3353fae93 100644 --- a/com/hbm/handler/FluidTypeHandler.java +++ b/com/hbm/handler/FluidTypeHandler.java @@ -5,8 +5,10 @@ import com.hbm.items.tool.ItemAssemblyTemplate.EnumAssemblyTemplate; public class FluidTypeHandler { public enum FluidType { - NONE(0x888888, 8947848, 0, 0), WATER(0x3333FF, 3355647, 1, 0), LAVA(0xFF3300, 16724736, 2, 0), UF6(0xD1CEBE, 13749950, 3, 0), PUF6(0x4C4C4C, 5000268, 0, 1), - DEUTERIUM(0x0000FF, 255, 1, 1), TRITIUM(0x000099, 153, 2, 1); + NONE(0x888888, 8947848, 0, 0), WATER(0x3333FF, 3355647, 1, 0), + LAVA(0xFF3300, 16724736, 2, 0), UF6(0xD1CEBE, 13749950, 3, 0), + PUF6(0x4C4C4C, 5000268, 0, 1), DEUTERIUM(0x0000FF, 255, 1, 1), + TRITIUM(0x000099, 153, 2, 1); private int color; private int msa; diff --git a/com/hbm/interfaces/IFluidContainer.java b/com/hbm/interfaces/IFluidContainer.java new file mode 100644 index 000000000..e153dc986 --- /dev/null +++ b/com/hbm/interfaces/IFluidContainer.java @@ -0,0 +1,8 @@ +package com.hbm.interfaces; + +public interface IFluidContainer { + + //Args: fill, what the fill should be set to; index, index for array if there are multiple tanks + public void setFillstate(int fill, int index); + +} diff --git a/com/hbm/inventory/FluidContainer.java b/com/hbm/inventory/FluidContainer.java new file mode 100644 index 000000000..dcd3b7663 --- /dev/null +++ b/com/hbm/inventory/FluidContainer.java @@ -0,0 +1,26 @@ +package com.hbm.inventory; + +import com.hbm.handler.FluidTypeHandler.FluidType; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class FluidContainer { + + //The full container (e.g. deuterium cell) + public ItemStack fullContainer; + //Them empty container (e.g. empty cell) + public ItemStack emptyContainer; + //The type of the contained liquid (e.g. deuterium) + public FluidType type; + //The amount of liquid stored in mB (e.g. 1000) + public int content; + + public FluidContainer(ItemStack full, ItemStack empty, FluidType type, int amount) { + fullContainer = full; + emptyContainer = empty; + this.type = type; + content = amount; + } + +} diff --git a/com/hbm/inventory/FluidContainerRegistry.java b/com/hbm/inventory/FluidContainerRegistry.java new file mode 100644 index 000000000..4f66a366f --- /dev/null +++ b/com/hbm/inventory/FluidContainerRegistry.java @@ -0,0 +1,101 @@ +package com.hbm.inventory; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.handler.FluidTypeHandler.FluidType; + +import net.minecraft.item.ItemStack; + +public class FluidContainerRegistry { + + public static final FluidContainerRegistry instance = new FluidContainerRegistry(); + + List allContainers = new ArrayList(); + + public void registerContainer(FluidContainer con) { + allContainers.add(con); + } + + /*public static boolean containsFluid(ItemStack stack, FluidType type) { + if(stack == null) + return false; + + ItemStack sta = stack.copy(); + sta.stackSize = 1; + + for(FluidContainer container : instance.allContainers) { + if(container.type == type && getEmptyContainer(sta) != null) + return container.content > 0; + } + + return false; + }*/ + + public static int getFluidContent(ItemStack stack, FluidType type) { + + if(stack == null) + return 0; + + ItemStack sta = stack.copy(); + sta.stackSize = 1; + + for(FluidContainer container : instance.allContainers) { + if(container.type.name().equals(type.name()) && getEmptyContainer(sta) != null) + return container.content; + } + + return 0; + } + + public static FluidType getFluidType(ItemStack stack) { + + if(stack == null) + return FluidType.NONE; + + ItemStack sta = stack.copy(); + sta.stackSize = 1; + + for(FluidContainer container : instance.allContainers) { + if(ItemStack.areItemStacksEqual(container.fullContainer, sta) && + ItemStack.areItemStackTagsEqual(container.fullContainer, sta)) + return container.type; + } + + return FluidType.NONE; + } + + public static ItemStack getFullContainer(ItemStack stack, FluidType type) { + if(stack == null) + return null; + + ItemStack sta = stack.copy(); + sta.stackSize = 1; + + for(FluidContainer container : instance.allContainers) { + if(ItemStack.areItemStacksEqual(container.emptyContainer, sta) && + ItemStack.areItemStackTagsEqual(container.emptyContainer, sta) && + container.type.name().equals(type.name())) + return container.fullContainer.copy(); + } + + return null; + } + + public static ItemStack getEmptyContainer(ItemStack stack) { + if(stack == null) + return null; + + ItemStack sta = stack.copy(); + sta.stackSize = 1; + + for(FluidContainer container : instance.allContainers) { + if(ItemStack.areItemStacksEqual(container.fullContainer, sta) && + ItemStack.areItemStackTagsEqual(container.fullContainer, sta)) + return container.emptyContainer.copy(); + } + + return null; + } + +} diff --git a/com/hbm/inventory/FluidTank.java b/com/hbm/inventory/FluidTank.java new file mode 100644 index 000000000..4612c356e --- /dev/null +++ b/com/hbm/inventory/FluidTank.java @@ -0,0 +1,115 @@ +package com.hbm.inventory; + +import java.util.Arrays; + +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.items.ModItems; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.TEAssemblerPacket; +import com.hbm.packet.TEFluidPacket; + +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class FluidTank { + + FluidType type; + int fluid; + int maxFluid; + public boolean takeIn = true; + public boolean letOut = false; + int index; + + public FluidTank(FluidType type, int maxFluid, int index) { + this.type = type; + this.maxFluid = maxFluid; + this.index = index; + } + + public void setFill(int i) { + fluid = i; + } + + //Called on TE update + public void updateTank(int x, int y, int z) { + + PacketDispatcher.wrapper.sendToAll(new TEFluidPacket(x, y, z, fluid, index)); + } + + //Fills tank from canisters + public void loadTank(int in, int out, ItemStack[] slots) { + + FluidType inType = FluidType.NONE; + if(slots[in] != null) { + inType = FluidContainerRegistry.getFluidType(slots[in]); + } + + if(slots[in] != null && inType.name().equals(type.name()) && fluid + FluidContainerRegistry.getFluidContent(slots[in], type) <= maxFluid) { + if(slots[out] == null) { + fluid += FluidContainerRegistry.getFluidContent(slots[in], type); + slots[out] = FluidContainerRegistry.getEmptyContainer(slots[in]); + slots[in].stackSize--; + if(slots[in].stackSize <= 0) + slots[in] = null; + } else if(slots[out] != null && slots[out].getItem() == FluidContainerRegistry.getEmptyContainer(slots[in]).getItem() && slots[out].stackSize < slots[out].getMaxStackSize()) { + fluid += FluidContainerRegistry.getFluidContent(slots[in], type); + slots[in].stackSize--; + if(slots[in].stackSize <= 0) + slots[in] = null; + slots[out].stackSize++; + } + } + } + + //Fills canisters from tank + public void unloadTank(int in, int out, ItemStack[] slots) { + + ItemStack full = null; + if(slots[in] != null) { + full = FluidContainerRegistry.getFullContainer(slots[in], type); + } + if(full == null) + return; + + if(slots[in] != null && fluid - FluidContainerRegistry.getFluidContent(full, type) >= 0) { + if(slots[out] == null) { + fluid -= FluidContainerRegistry.getFluidContent(full, type); + slots[out] = full.copy(); + slots[in].stackSize--; + if(slots[in].stackSize <= 0) + slots[in] = null; + } else if(slots[out] != null && slots[out].getItem() == FluidContainerRegistry.getFullContainer(slots[in], type).getItem() && slots[out].stackSize < slots[out].getMaxStackSize()) { + fluid -= FluidContainerRegistry.getFluidContent(full, type); + slots[in].stackSize--; + if(slots[in].stackSize <= 0) + slots[in] = null; + slots[out].stackSize++; + } + } + } + + //Used in the GUI rendering, renders correct fluid type in container with progress + public void renderTank(GuiContainer gui, int x, int y, int tx, int ty, int width, int height) { + + int i = (fluid * height) / maxFluid; + gui.drawTexturedModalRect(x, y - i, tx, ty - i, width, i); + } + + //Called by TE to save fillstate + public void writeToNBT(NBTTagCompound nbt, String s) { + nbt.setInteger(s, fluid); + nbt.setInteger(s + "_type", Arrays.asList(FluidType.values()).indexOf(type)); + nbt.setBoolean(s + "_in", takeIn); + nbt.setBoolean(s + "_out", letOut); + } + + //Called by TE to load fillstate + public void readFromNBT(NBTTagCompound nbt, String s) { + fluid = nbt.getInteger(s); + type = FluidType.getEnum(nbt.getInteger(s + "_type")); + takeIn = nbt.getBoolean(s + "_in"); + letOut = nbt.getBoolean(s + "_out"); + } + +} diff --git a/com/hbm/inventory/container/ContainerUF6Tank.java b/com/hbm/inventory/container/ContainerUF6Tank.java index f442568dd..b6d37a89f 100644 --- a/com/hbm/inventory/container/ContainerUF6Tank.java +++ b/com/hbm/inventory/container/ContainerUF6Tank.java @@ -13,11 +13,8 @@ import net.minecraft.item.ItemStack; public class ContainerUF6Tank extends Container { private TileEntityMachineUF6Tank testNuke; - private int fillState; public ContainerUF6Tank(InventoryPlayer invPlayer, TileEntityMachineUF6Tank tedf) { - fillState = 0; - testNuke = tedf; this.addSlotToContainer(new Slot(tedf, 0, 44, 17)); @@ -42,7 +39,6 @@ public class ContainerUF6Tank extends Container { @Override public void addCraftingToCrafters(ICrafting crafting) { super.addCraftingToCrafters(crafting); - crafting.sendProgressBarUpdate(this, 0, this.testNuke.fillState); } @Override @@ -85,30 +81,5 @@ public class ContainerUF6Tank extends Container { public boolean canInteractWith(EntityPlayer player) { return testNuke.isUseableByPlayer(player); } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.fillState != this.testNuke.fillState) - { - par1.sendProgressBarUpdate(this, 0, this.testNuke.fillState); - } - } - - this.fillState = this.testNuke.fillState; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 0) - { - testNuke.fillState = j; - } - } } \ No newline at end of file diff --git a/com/hbm/inventory/gui/GUIMachineUF6Tank.java b/com/hbm/inventory/gui/GUIMachineUF6Tank.java index 48bb163c3..be4738dfd 100644 --- a/com/hbm/inventory/gui/GUIMachineUF6Tank.java +++ b/com/hbm/inventory/gui/GUIMachineUF6Tank.java @@ -39,10 +39,6 @@ public class GUIMachineUF6Tank extends GuiContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(tank.fillState > 0) - { - int i1 = tank.getFillStateScaled(52); - drawTexturedModalRect(guiLeft + 80, guiTop + 69 - i1, 177, 52 - i1, 16, i1); - } + tank.tank.renderTank(this, guiLeft + 80, guiTop + 69, 177, 52, 16, 52); } } diff --git a/com/hbm/items/special/ItemAntiCheat.java b/com/hbm/items/special/ItemAntiCheat.java index df7d6ce64..7d552afa1 100644 --- a/com/hbm/items/special/ItemAntiCheat.java +++ b/com/hbm/items/special/ItemAntiCheat.java @@ -27,8 +27,9 @@ public class ItemAntiCheat extends ItemCustomLore { player.inventory.consumeInventoryItem(ModItems.nugget_euphemium); } } - - entity.attackEntityFrom(ModDamageSource.cheater, Float.POSITIVE_INFINITY); + + //entity.attackEntityFrom(ModDamageSource.cheater, Float.POSITIVE_INFINITY); + entity.attackEntityFrom(ModDamageSource.cheater, 10000); //if(!world.isRemote) // ExplosionChaos.antiCheat(world, (int)entity.posX, (int)entity.posY, (int)entity.posZ, 20); diff --git a/com/hbm/items/tool/ItemAssemblyTemplate.java b/com/hbm/items/tool/ItemAssemblyTemplate.java index a2752a3ab..5e164f34e 100644 --- a/com/hbm/items/tool/ItemAssemblyTemplate.java +++ b/com/hbm/items/tool/ItemAssemblyTemplate.java @@ -2,6 +2,7 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.MachineRecipes; import com.hbm.items.ModItems; @@ -101,6 +102,222 @@ public class ItemAssemblyTemplate extends Item { switch (enum1) { case TEST: return 200; + case MIXED_PLATE: + return 50; + case HAZMAT_CLOTH: + return 50; + case ASBESTOS_CLOTH: + return 50; + case COAL_FILTER: + return 50; + case CENTRIFUGE_ELEMENT: + return 200; + case CENTRIFUGE_TOWER: + return 150; + case DEE_MAGNET: + return 100; + case FLAT_MAGNET: + return 150; + case CYCLOTRON_TOWER: + return 300; + case REACTOR_CORE: + return 100; + case RTG_UNIT: + return 100; + case HEAT_UNIT: + return 100; + case GRAVITY_UNIT: + return 100; + case TITANIUM_DRILL: + return 100; + case TELEPAD: + return 300; + case TELEKIT: + return 200; + case GEASS_REACTOR: + return 200; + case GENERATOR_FRONT: + return 200; + case WT1_GENERIC: + return 100; + case WT2_GENERIC: + return 150; + case WT3_GENERIC: + return 200; + case WT1_FIRE: + return 100; + case WT2_FIRE: + return 150; + case WT3_FIRE: + return 200; + case WT1_CLUSTER: + return 100; + case WT2_CLUSTER: + return 150; + case WT3_CLUSTER: + return 200; + case WT1_BUSTER: + return 100; + case WT2_BUSTER: + return 150; + case WT3_BUSTER: + return 200; + case W_NUCLEAR: + return 300; + case W_MIRVLET: + return 250; + case W_MIRV: + return 500; + case W_ENDOTHERMIC: + return 300; + case W_EXOTHERMIC: + return 300; + case T1_TANK: + return 100; + case T2_TANK: + return 150; + case T3_TANK: + return 200; + case T1_THRUSTER: + return 100; + case T2_THRUSTER: + return 150; + case T3_THRUSTER: + return 200; + case CHOPPER_HEAD: + return 300; + case CHOPPER_GUN: + return 150; + case CHOPPER_BODY: + return 350; + case CHOPPER_TAIL: + return 200; + case CHOPPER_WING: + return 150; + case CHOPPER_BLADES: + return 200; + case CIRCUIT_2: + return 100; + case CIRCUIT_3: + return 150; + case RTG_PELLET: + return 50; + case WEAK_PELLET: + return 50; + case FUSION_PELLET: + return 150; + case CLUSTER_PELLETS: + return 50; + case GUN_PELLETS: + return 50; + case AUSTRALIUM_MACHINE: + return 150; + case MAGNETRON: + return 100; + case W_SP: + return 200; + case W_SHE: + return 200; + case W_SME: + return 200; + case W_SLE: + return 200; + case W_B: + return 200; + case W_N: + return 200; + case W_L: + return 200; + case W_A: + return 200; + case UPGRADE_TEMPLATE: + return 100; + case UPGRADE_RED_I: + return 200; + case UPGRADE_RED_II: + return 300; + case UPGRADE_RED_III: + return 500; + case UPGRADE_GREEN_I: + return 200; + case UPGRADE_GREEN_II: + return 300; + case UPGRADE_GREEN_III: + return 500; + case UPGRADE_BLUE_I: + return 200; + case UPGRADE_BLUE_II: + return 300; + case UPGRADE_BLUE_III: + return 500; + case UPGRADE_PURPLE_I: + return 200; + case UPGRADE_PURPLE_II: + return 300; + case UPGRADE_PURPLE_III: + return 500; + case FUSE: + return 100; + case REDCOIL_CAPACITOR: + return 200; + case TITANIUM_FILTER: + return 200; + case LITHIUM_BOX: + return 50; + case BERYLLIUM_BOX: + return 50; + case COAL_BOX: + return 50; + case COPPER_BOX: + return 50; + case PLUTONIUM_BOX: + return 50; + case THERMO_ELEMENT: + return 150; + case LIMITER: + return 150; + case ANGRY_METAL: + return 50; + case CMB_TILE: + return 100; + case CMB_BRICKS: + return 200; + case HATCH_FRAME: + return 50; + case HATCH_CONTROLLER: + return 100; + case CENTRIFUGE: + return 250; + case BREEDING_REACTOR: + return 150; + case RTG_FURNACE: + return 150; + case DIESEL_GENERATOR: + return 200; + case NUCLEAR_GENERATOR: + return 300; + case INDUSTRIAL_GENERATOR: + return 500; + case CYCLOTRON: + return 600; + case RT_GENERATOR: + return 200; + case BATTERY: + return 200; + case HE_TO_RF: + return 150; + case RF_TO_HE: + return 150; + case SHREDDER: + return 200; + case DEUTERIUM_EXTRACTOR: + return 150; + case DERRICK: + return 250; + case FLARE_STACK: + return 200; + case REFINERY: + return 150; default: return 100; } diff --git a/com/hbm/lib/Library.java b/com/hbm/lib/Library.java index 024ea8af2..548e78412 100644 --- a/com/hbm/lib/Library.java +++ b/com/hbm/lib/Library.java @@ -773,7 +773,7 @@ public class Library { } //Flut-Füll gesteuerter Energieübertragungsalgorithmus - //Flood fill controlle energy transmission algorithm + //Flood fill controlled energy transmission algorithm public static void ffgeua(int x, int y, int z, boolean newTact, ISource that, World worldObj) { Block block = worldObj.getBlock(x, y, z); TileEntity tileentity = worldObj.getTileEntity(x, y, z); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 48cfd1504..da90f55fd 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -111,8 +111,11 @@ import com.hbm.entity.projectile.EntityRubble; import com.hbm.entity.projectile.EntitySchrab; import com.hbm.entity.projectile.EntityShrapnel; import com.hbm.entity.projectile.EntitySparkBeam; +import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.handler.FuelHandler; import com.hbm.handler.GUIHandler; +import com.hbm.inventory.FluidContainer; +import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.MachineRecipes; import com.hbm.inventory.MachineRecipes.ShredderRecipe; import com.hbm.items.ModItems; @@ -784,6 +787,19 @@ public class MainRegistry recipes.overridePreSetRecipe(new ItemStack(ModItems.powder_lapis), new ItemStack(ModItems.powder_cobalt_tiny, 1)); recipes.PrintRecipes(); + + FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_oil), new ItemStack(ModItems.canister_empty), FluidType.LAVA, 1000)); + FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.cell_deuterium), new ItemStack(ModItems.cell_empty), FluidType.DEUTERIUM, 1000)); + FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.cell_tritium), new ItemStack(ModItems.cell_empty), FluidType.TRITIUM, 1000)); + FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.cell_uf6), new ItemStack(ModItems.cell_empty), FluidType.UF6, 1000)); + FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.cell_puf6), new ItemStack(ModItems.cell_empty), FluidType.PUF6, 1000)); + + /*System.out.println(FluidContainerRegistry.getEmptyContainer(new ItemStack(ModItems.cell_deuterium))); //cell_empty + System.out.println(FluidContainerRegistry.getEmptyContainer(new ItemStack(ModItems.board_copper))); //null + System.out.println(FluidContainerRegistry.getFluidContent(new ItemStack(ModItems.cell_deuterium), FluidType.DEUTERIUM)); //1000 + System.out.println(FluidContainerRegistry.getFluidContent(new ItemStack(ModItems.cell_deuterium), FluidType.WATER)); //0 + System.out.println(FluidContainerRegistry.containsFluid(new ItemStack(ModItems.cell_deuterium), FluidType.DEUTERIUM)); //true + System.out.println(FluidContainerRegistry.containsFluid(new ItemStack(ModItems.cell_deuterium), FluidType.WATER)); //false*/ } @EventHandler diff --git a/com/hbm/packet/PacketDispatcher.java b/com/hbm/packet/PacketDispatcher.java index 9f7963ae9..1b48a7d49 100644 --- a/com/hbm/packet/PacketDispatcher.java +++ b/com/hbm/packet/PacketDispatcher.java @@ -13,18 +13,28 @@ public class PacketDispatcher { public static final void registerPackets() { + int i = 0; + //Packet sent for every connected electricity pole, for wire rendering - wrapper.registerMessage(TEPylonSenderPacket.Handler.class, TEPylonSenderPacket.class, 0, Side.CLIENT); + wrapper.registerMessage(TEPylonSenderPacket.Handler.class, TEPylonSenderPacket.class, i++, Side.CLIENT); //Resets connection list in client-sided pole rendering - wrapper.registerMessage(TEPylonDestructorPacket.Handler.class, TEPylonDestructorPacket.class, 1, Side.CLIENT); + wrapper.registerMessage(TEPylonDestructorPacket.Handler.class, TEPylonDestructorPacket.class, i++, Side.CLIENT); //Flywheel rotation for industrial generator rendering - wrapper.registerMessage(TEIGeneratorPacket.Handler.class, TEIGeneratorPacket.class, 2, Side.CLIENT); + wrapper.registerMessage(TEIGeneratorPacket.Handler.class, TEIGeneratorPacket.class, i++, Side.CLIENT); //Machine type for marker rendering - wrapper.registerMessage(TEStructurePacket.Handler.class, TEStructurePacket.class, 3, Side.CLIENT); - //Mingin drill rotation for rendering - wrapper.registerMessage(TEDrillPacket.Handler.class, TEDrillPacket.class, 4, Side.CLIENT); + wrapper.registerMessage(TEStructurePacket.Handler.class, TEStructurePacket.class, i++, Side.CLIENT); + //Mining drill rotation for rendering + wrapper.registerMessage(TEDrillPacket.Handler.class, TEDrillPacket.class, i++, Side.CLIENT); + //Mining drill torque for sounds + wrapper.registerMessage(TEDrillSoundPacket.Handler.class, TEDrillSoundPacket.class, i++, Side.CLIENT); + //Assembler cog rotation for rendering + wrapper.registerMessage(TEAssemblerPacket.Handler.class, TEAssemblerPacket.class, i++, Side.CLIENT); //Fluid type for pipe rendering - wrapper.registerMessage(TEFluidPipePacket.Handler.class, TEFluidPipePacket.class, 5, Side.CLIENT); + wrapper.registerMessage(TEFluidPipePacket.Handler.class, TEFluidPipePacket.class, i++, Side.CLIENT); + //Missile type for rendering + wrapper.registerMessage(TEMissilePacket.Handler.class, TEMissilePacket.class, i++, Side.CLIENT); + //Fluid packet for GUI + wrapper.registerMessage(TEFluidPacket.Handler.class, TEFluidPacket.class, i++, Side.CLIENT); } } diff --git a/com/hbm/packet/TEAssemblerPacket.java b/com/hbm/packet/TEAssemblerPacket.java new file mode 100644 index 000000000..a599f5b39 --- /dev/null +++ b/com/hbm/packet/TEAssemblerPacket.java @@ -0,0 +1,68 @@ +package com.hbm.packet; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.tileentity.TileEntityMachineAssembler; +import com.hbm.tileentity.TileEntityMachineIGenerator; +import com.hbm.tileentity.TileEntityMachineMiningDrill; +import com.hbm.tileentity.TileEntityPylonRedWire; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.tileentity.TileEntity; + +public class TEAssemblerPacket implements IMessage { + + int x; + int y; + int z; + float spin; + + public TEAssemblerPacket() + { + + } + + public TEAssemblerPacket(int x, int y, int z, float spin) + { + this.x = x; + this.y = y; + this.z = z; + this.spin = spin; + } + + @Override + public void fromBytes(ByteBuf buf) { + x = buf.readInt(); + y = buf.readInt(); + z = buf.readInt(); + spin = buf.readFloat(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + buf.writeFloat(spin); + } + + public static class Handler implements IMessageHandler { + + @Override + public IMessage onMessage(TEAssemblerPacket m, MessageContext ctx) { + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); + + if (te != null && te instanceof TileEntityMachineAssembler) { + + TileEntityMachineAssembler gen = (TileEntityMachineAssembler) te; + gen.rotation = m.spin; + } + return null; + } + } +} diff --git a/com/hbm/packet/TEDrillSoundPacket.java b/com/hbm/packet/TEDrillSoundPacket.java new file mode 100644 index 000000000..5a27df7b4 --- /dev/null +++ b/com/hbm/packet/TEDrillSoundPacket.java @@ -0,0 +1,67 @@ +package com.hbm.packet; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.tileentity.TileEntityMachineIGenerator; +import com.hbm.tileentity.TileEntityMachineMiningDrill; +import com.hbm.tileentity.TileEntityPylonRedWire; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.tileentity.TileEntity; + +public class TEDrillSoundPacket implements IMessage { + + int x; + int y; + int z; + float spin; + + public TEDrillSoundPacket() + { + + } + + public TEDrillSoundPacket(int x, int y, int z, float spin) + { + this.x = x; + this.y = y; + this.z = z; + this.spin = spin; + } + + @Override + public void fromBytes(ByteBuf buf) { + x = buf.readInt(); + y = buf.readInt(); + z = buf.readInt(); + spin = buf.readFloat(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + buf.writeFloat(spin); + } + + public static class Handler implements IMessageHandler { + + @Override + public IMessage onMessage(TEDrillSoundPacket m, MessageContext ctx) { + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); + + if (te != null && te instanceof TileEntityMachineMiningDrill) { + + TileEntityMachineMiningDrill gen = (TileEntityMachineMiningDrill) te; + gen.torque = m.spin; + } + return null; + } + } +} diff --git a/com/hbm/packet/TEFluidPacket.java b/com/hbm/packet/TEFluidPacket.java new file mode 100644 index 000000000..25779690c --- /dev/null +++ b/com/hbm/packet/TEFluidPacket.java @@ -0,0 +1,73 @@ +package com.hbm.packet; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.interfaces.IFluidContainer; +import com.hbm.tileentity.TileEntityMachineAssembler; +import com.hbm.tileentity.TileEntityMachineIGenerator; +import com.hbm.tileentity.TileEntityMachineMiningDrill; +import com.hbm.tileentity.TileEntityPylonRedWire; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.tileentity.TileEntity; + +public class TEFluidPacket implements IMessage { + + int x; + int y; + int z; + int fill; + int index; + + public TEFluidPacket() + { + + } + + public TEFluidPacket(int x, int y, int z, int fill, int index) + { + this.x = x; + this.y = y; + this.z = z; + this.fill = fill; + this.index = index; + } + + @Override + public void fromBytes(ByteBuf buf) { + x = buf.readInt(); + y = buf.readInt(); + z = buf.readInt(); + fill = buf.readInt(); + index = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + buf.writeInt(fill); + buf.writeInt(index); + } + + public static class Handler implements IMessageHandler { + + @Override + public IMessage onMessage(TEFluidPacket m, MessageContext ctx) { + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); + + if (te != null && te instanceof IFluidContainer) { + + IFluidContainer gen = (IFluidContainer) te; + gen.setFillstate(m.fill, m.index); + } + return null; + } + } +} diff --git a/com/hbm/packet/TEMissilePacket.java b/com/hbm/packet/TEMissilePacket.java new file mode 100644 index 000000000..162acb692 --- /dev/null +++ b/com/hbm/packet/TEMissilePacket.java @@ -0,0 +1,67 @@ +package com.hbm.packet; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.tileentity.TileEntityLaunchPad; +import com.hbm.tileentity.TileEntityMachineIGenerator; +import com.hbm.tileentity.TileEntityPylonRedWire; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.tileentity.TileEntity; + +public class TEMissilePacket implements IMessage { + + int x; + int y; + int z; + int type; + + public TEMissilePacket() + { + + } + + public TEMissilePacket(int x, int y, int z, int type) + { + this.x = x; + this.y = y; + this.z = z; + this.type = type; + } + + @Override + public void fromBytes(ByteBuf buf) { + x = buf.readInt(); + y = buf.readInt(); + z = buf.readInt(); + type = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + buf.writeInt(type); + } + + public static class Handler implements IMessageHandler { + + @Override + public IMessage onMessage(TEMissilePacket m, MessageContext ctx) { + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); + + if (te != null && te instanceof TileEntityLaunchPad) { + + TileEntityLaunchPad gen = (TileEntityLaunchPad) te; + gen.state = m.type; + } + return null; + } + } +} diff --git a/com/hbm/render/tileentity/RenderAssembler.java b/com/hbm/render/tileentity/RenderAssembler.java index 7ff182ebd..c0291387c 100644 --- a/com/hbm/render/tileentity/RenderAssembler.java +++ b/com/hbm/render/tileentity/RenderAssembler.java @@ -3,6 +3,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; +import com.hbm.tileentity.TileEntityMachineAssembler; import com.hbm.tileentity.TileEntityMachineIGenerator; import com.hbm.tileentity.TileEntityMachineMiningDrill; @@ -14,15 +15,20 @@ import net.minecraftforge.client.model.IModelCustom; public class RenderAssembler extends TileEntitySpecialRenderer { - private static final ResourceLocation body = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/assembler.obj"); + private static final ResourceLocation body = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/assembler_main.obj"); + private static final ResourceLocation bolt = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/assembler_wheel.obj"); private IModelCustom bodyModel; private ResourceLocation bodyTexture; + private IModelCustom boltModel; + private ResourceLocation boltTexture; public RenderAssembler() { bodyModel = AdvancedModelLoader.loadModel(body); - bodyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); + bodyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/assembler.png"); + boltModel = AdvancedModelLoader.loadModel(bolt); + boltTexture = new ResourceLocation(RefStrings.MODID, "textures/models/textureIGenRotor.png"); } @Override @@ -54,5 +60,38 @@ public class RenderAssembler extends TileEntitySpecialRenderer { bodyModel.renderAll(); GL11.glPopMatrix(); + + renderTileEntityAt2(tileEntity, x, y, z, f); + } + + public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + switch(tileEntity.getBlockMetadata()) + { + case 2: + GL11.glTranslated(-1, 0, 0); + GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: + GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: + GL11.glTranslated(0, 0, -1); + GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: + GL11.glTranslated(-1, 0, -1); + GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + + GL11.glRotatef(((TileEntityMachineAssembler)tileEntity).rotation, 0F, 1F, 0F); + + bindTexture(boltTexture); + boltModel.renderAll(); + + GL11.glPopMatrix(); } } diff --git a/com/hbm/render/tileentity/RenderMiningDrill.java b/com/hbm/render/tileentity/RenderMiningDrill.java index 593f073b7..bc22314dd 100644 --- a/com/hbm/render/tileentity/RenderMiningDrill.java +++ b/com/hbm/render/tileentity/RenderMiningDrill.java @@ -25,7 +25,7 @@ public class RenderMiningDrill extends TileEntitySpecialRenderer { public RenderMiningDrill() { bodyModel = AdvancedModelLoader.loadModel(body); - bodyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); + bodyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/mining_drill.png"); boltModel = AdvancedModelLoader.loadModel(bolt); boltTexture = new ResourceLocation(RefStrings.MODID, "textures/models/textureIGenRotor.png"); } diff --git a/com/hbm/sound/SoundLoopMachine.java b/com/hbm/sound/SoundLoopMachine.java new file mode 100644 index 000000000..41d6ad2b6 --- /dev/null +++ b/com/hbm/sound/SoundLoopMachine.java @@ -0,0 +1,46 @@ +package com.hbm.sound; + +import net.minecraft.client.audio.ITickableSound; +import net.minecraft.client.audio.PositionedSound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; + +public class SoundLoopMachine extends PositionedSound implements ITickableSound { + boolean donePlaying = false; + TileEntity te; + + public SoundLoopMachine(ResourceLocation path, TileEntity te) { + super(path); + this.repeat = true; + this.volume = 1; + this.field_147663_c = 1; + this.xPosF = te.xCoord; + this.yPosF = te.yCoord; + this.zPosF = te.zCoord; + this.field_147665_h = 0; + this.te = te; + } + + @Override + public void update() { + if(te == null || (te != null && te.isInvalid())) + donePlaying = true; + } + + @Override + public boolean isDonePlaying() { + return this.donePlaying; + } + + public void setVolume(float f) { + volume = f; + } + + public void setPitch(float f) { + field_147663_c = f; + } + + public void stop() { + donePlaying = true; + } +} diff --git a/com/hbm/tileentity/TileEntityLaunchPad.java b/com/hbm/tileentity/TileEntityLaunchPad.java index ef51c0b42..fe2dbe327 100644 --- a/com/hbm/tileentity/TileEntityLaunchPad.java +++ b/com/hbm/tileentity/TileEntityLaunchPad.java @@ -5,6 +5,9 @@ import com.hbm.interfaces.IConductor; import com.hbm.interfaces.IConsumer; import com.hbm.items.ModItems; import com.hbm.lib.Library; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.TEFluidPipePacket; +import com.hbm.packet.TEMissilePacket; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -28,13 +31,11 @@ public class TileEntityLaunchPad extends TileEntity implements ISidedInventory, private static final int[] slots_top = new int[] {0}; private static final int[] slots_bottom = new int[] {2}; private static final int[] slots_side = new int[] {1}; + public int state = 0; public int targetX = this.xCoord + 50; public int targetZ = this.zCoord; - public int state = 0; - public int preState = 0; - private String customName; public TileEntityLaunchPad() { @@ -139,7 +140,6 @@ public class TileEntityLaunchPad extends TileEntity implements ISidedInventory, super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("items", 10); power = nbt.getInteger("power"); - state = nbt.getShort("state"); slots = new ItemStack[getSizeInventory()]; for(int i = 0; i < list.tagCount(); i++) @@ -158,7 +158,6 @@ public class TileEntityLaunchPad extends TileEntity implements ISidedInventory, super.writeToNBT(nbt); NBTTagList list = new NBTTagList(); nbt.setInteger("power", power); - nbt.setShort("state", (short) state); for(int i = 0; i < slots.length; i++) { @@ -199,193 +198,44 @@ public class TileEntityLaunchPad extends TileEntity implements ISidedInventory, power = Library.chargeTEFromItems(slots, 2, power, maxPower); - this.preState = this.state; + ItemStack stack = slots[0]; - if(this.slots[0] == null || - (this.slots[0] != null && - (this.slots[0].getItem() != ModItems.missile_generic && - this.slots[0].getItem() != ModItems.missile_strong && - this.slots[0].getItem() != ModItems.missile_cluster && - this.slots[0].getItem() != ModItems.missile_nuclear && - this.slots[0].getItem() != ModItems.missile_incendiary && - this.slots[0].getItem() != ModItems.missile_buster && - this.slots[0].getItem() != ModItems.missile_incendiary_strong && - this.slots[0].getItem() != ModItems.missile_cluster_strong && - this.slots[0].getItem() != ModItems.missile_buster_strong && - this.slots[0].getItem() != ModItems.missile_burst && - this.slots[0].getItem() != ModItems.missile_inferno && - this.slots[0].getItem() != ModItems.missile_rain && - this.slots[0].getItem() != ModItems.missile_drill && - this.slots[0].getItem() != ModItems.missile_endo && - this.slots[0].getItem() != ModItems.missile_exo && - this.slots[0].getItem() != ModItems.missile_nuclear_cluster))) - { - this.state = 0; + if(stack != null) { + if(stack.getItem() == ModItems.missile_generic) + state = 1; + if(stack.getItem() == ModItems.missile_strong) + state = 2; + if(stack.getItem() == ModItems.missile_cluster) + state = 3; + if(stack.getItem() == ModItems.missile_nuclear) + state = 4; + if(stack.getItem() == ModItems.missile_incendiary) + state = 5; + if(stack.getItem() == ModItems.missile_buster) + state = 6; + if(stack.getItem() == ModItems.missile_incendiary_strong) + state = 7; + if(stack.getItem() == ModItems.missile_cluster_strong) + state = 8; + if(stack.getItem() == ModItems.missile_buster_strong) + state = 9; + if(stack.getItem() == ModItems.missile_burst) + state = 10; + if(stack.getItem() == ModItems.missile_inferno) + state = 11; + if(stack.getItem() == ModItems.missile_rain) + state = 12; + if(stack.getItem() == ModItems.missile_drill) + state = 13; + if(stack.getItem() == ModItems.missile_endo) + state = 14; + if(stack.getItem() == ModItems.missile_exo) + state = 15; + if(stack.getItem() == ModItems.missile_nuclear_cluster) + state = 16; - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_generic) - { - this.state = 1; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_strong) - { - this.state = 2; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_cluster) - { - this.state = 3; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_nuclear) - { - this.state = 4; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_incendiary) - { - this.state = 5; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_buster) - { - this.state = 6; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_incendiary_strong) - { - this.state = 7; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_cluster_strong) - { - this.state = 8; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_buster_strong) - { - this.state = 9; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_burst) - { - this.state = 10; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_inferno) - { - this.state = 11; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_rain) - { - this.state = 12; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_drill) - { - this.state = 13; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_endo) - { - this.state = 14; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_exo) - { - this.state = 15; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - } - - if(this.slots[0] != null && this.slots[0].getItem() == ModItems.missile_nuclear_cluster) - { - this.state = 16; - - if(this.state != this.preState) - { - LaunchPad.updateBlockState(this.state, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } + if(!worldObj.isRemote) + PacketDispatcher.wrapper.sendToAll(new TEMissilePacket(xCoord, yCoord, zCoord, state)); } } diff --git a/com/hbm/tileentity/TileEntityMachineAssembler.java b/com/hbm/tileentity/TileEntityMachineAssembler.java index cd32900a8..91cc8902f 100644 --- a/com/hbm/tileentity/TileEntityMachineAssembler.java +++ b/com/hbm/tileentity/TileEntityMachineAssembler.java @@ -11,7 +11,9 @@ import com.hbm.items.special.ItemBattery; import com.hbm.items.tool.ItemAssemblyTemplate; import com.hbm.lib.Library; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.TEAssemblerPacket; import com.hbm.packet.TEDrillPacket; +import com.hbm.packet.TEIGeneratorPacket; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -37,7 +39,10 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve public static final int maxPower = 100000; public int progress; public int maxProgress = 100; + public float rotation = 0; int age = 0; + int consumption = 100; + int speed = 100; Random rand = new Random(); @@ -211,19 +216,63 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve @Override public void updateEntity() { + + this.consumption = 100; + this.speed = 100; + + for(int i = 1; i < 4; i++) { + ItemStack stack = slots[i]; + + if(stack != null) { + if(stack.getItem() == ModItems.upgrade_speed_1) { + this.speed -= 25; + this.consumption += 300; + } + if(stack.getItem() == ModItems.upgrade_speed_2) { + this.speed -= 50; + this.consumption += 600; + } + if(stack.getItem() == ModItems.upgrade_speed_3) { + this.speed -= 75; + this.consumption += 900; + } + if(stack.getItem() == ModItems.upgrade_power_1) { + this.consumption -= 30; + this.speed += 5; + } + if(stack.getItem() == ModItems.upgrade_power_2) { + this.consumption -= 60; + this.speed += 10; + } + if(stack.getItem() == ModItems.upgrade_power_3) { + this.consumption -= 90; + this.speed += 15; + } + } + } + + if(speed < 25) + speed = 25; + if(consumption < 10) + consumption = 10; if(!worldObj.isRemote) { power = Library.chargeTEFromItems(slots, 0, power, maxPower); if(MachineRecipes.getOutputFromTempate(slots[4]) != null && MachineRecipes.getRecipeFromTempate(slots[4]) != null) { - this.maxProgress = ItemAssemblyTemplate.getProcessTime(slots[4]); + this.maxProgress = (ItemAssemblyTemplate.getProcessTime(slots[4]) * speed) / 100; - if(power >= 100 && removeItems(MachineRecipes.getRecipeFromTempate(slots[4]), cloneItemStackProper(slots))) { + if(power >= consumption && removeItems(MachineRecipes.getRecipeFromTempate(slots[4]), cloneItemStackProper(slots))) { if(slots[5] == null || (slots[5] != null && slots[5].getItem() == MachineRecipes.getOutputFromTempate(slots[4]).copy().getItem()) && slots[5].stackSize + MachineRecipes.getOutputFromTempate(slots[4]).copy().stackSize <= slots[5].getMaxStackSize()) { progress++; + rotation += 5; + + if(rotation >= 360) + rotation -= 360; + if(progress >= maxProgress) { progress = 0; if(slots[5] == null) { @@ -235,7 +284,7 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve removeItems(MachineRecipes.getRecipeFromTempate(slots[4]), slots); } - power -= 100; + power -= consumption; } } else progress = 0; @@ -298,7 +347,8 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve if(tryFillAssembler(hopper, i)) break; } - + + PacketDispatcher.wrapper.sendToAll(new TEAssemblerPacket(xCoord, yCoord, zCoord, rotation)); } } diff --git a/com/hbm/tileentity/TileEntityMachineMiningDrill.java b/com/hbm/tileentity/TileEntityMachineMiningDrill.java index cf5f0151f..014062ad0 100644 --- a/com/hbm/tileentity/TileEntityMachineMiningDrill.java +++ b/com/hbm/tileentity/TileEntityMachineMiningDrill.java @@ -17,11 +17,14 @@ import com.hbm.items.special.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEDrillPacket; +import com.hbm.packet.TEDrillSoundPacket; import com.hbm.packet.TEIGeneratorPacket; +import com.hbm.sound.SoundLoopMachine; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.inventory.IInventory; @@ -33,6 +36,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityChest; import net.minecraft.tileentity.TileEntityHopper; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.fluids.BlockFluidBase; import net.minecraftforge.oredict.OreDictionary; @@ -51,6 +55,7 @@ public class TileEntityMachineMiningDrill extends TileEntity implements ISidedIn boolean flag = true; public float torque; public float rotation; + //SoundLoopMachine sound; private static final int[] slots_top = new int[] {1}; private static final int[] slots_bottom = new int[] {2, 0}; @@ -454,8 +459,23 @@ public class TileEntityMachineMiningDrill extends TileEntity implements ISidedIn rotation -= 360; PacketDispatcher.wrapper.sendToAll(new TEDrillPacket(xCoord, yCoord, zCoord, rotation)); + PacketDispatcher.wrapper.sendToAll(new TEDrillSoundPacket(xCoord, yCoord, zCoord, torque)); } + /*if(worldObj.isRemote) { + if(torque > 0) { + if(sound == null) { + sound = new SoundLoopMachine(new ResourceLocation("hbm:block.minerOperate"), this); + sound.setVolume(2.5F); + Minecraft.getMinecraft().getSoundHandler().playSound(sound); + } + } else { + if(sound != null) { + sound.stop(); + sound = null; + } + } + }*/ } public boolean tryFillContainer(IInventory inventory, int slot) { diff --git a/com/hbm/tileentity/TileEntityMachineUF6Tank.java b/com/hbm/tileentity/TileEntityMachineUF6Tank.java index 3b7913045..efac1cf4d 100644 --- a/com/hbm/tileentity/TileEntityMachineUF6Tank.java +++ b/com/hbm/tileentity/TileEntityMachineUF6Tank.java @@ -1,5 +1,8 @@ package com.hbm.tileentity; +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.interfaces.IFluidContainer; +import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; import cpw.mods.fml.relauncher.Side; @@ -13,12 +16,12 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -public class TileEntityMachineUF6Tank extends TileEntity implements ISidedInventory { +public class TileEntityMachineUF6Tank extends TileEntity implements ISidedInventory, IFluidContainer { private ItemStack slots[]; - public int fillState; - public static final int maxFill = 64 * 3; + //public static final int maxFill = 64 * 3; + public FluidTank tank; private static final int[] slots_top = new int[] {0}; private static final int[] slots_bottom = new int[] {1, 3}; @@ -28,6 +31,7 @@ public class TileEntityMachineUF6Tank extends TileEntity implements ISidedInvent public TileEntityMachineUF6Tank() { slots = new ItemStack[4]; + tank = new FluidTank(FluidType.UF6, 64000, 0); } @Override @@ -132,9 +136,10 @@ public class TileEntityMachineUF6Tank extends TileEntity implements ISidedInvent super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("items", 10); - fillState = nbt.getShort("fillState"); slots = new ItemStack[getSizeInventory()]; + tank.readFromNBT(nbt, "content"); + for(int i = 0; i < list.tagCount(); i++) { NBTTagCompound nbt1 = list.getCompoundTagAt(i); @@ -149,9 +154,10 @@ public class TileEntityMachineUF6Tank extends TileEntity implements ISidedInvent @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - nbt.setShort("fillState", (short) fillState); NBTTagList list = new NBTTagList(); + tank.writeToNBT(nbt, "content"); + for(int i = 0; i < slots.length; i++) { if(slots[i] != null) @@ -181,84 +187,14 @@ public class TileEntityMachineUF6Tank extends TileEntity implements ISidedInvent return true; } - public int getFillStateScaled(int i) { - return (fillState * i) / maxFill; - } - - public boolean canGive() { - if(slots[0] != null && slots[0].getItem() == ModItems.cell_uf6) - { - if(slots[1] == null || (slots[1] != null && slots[1].getItem() == ModItems.cell_empty && slots[1].stackSize < slots[1].getMaxStackSize())) - { - if(fillState < maxFill) - { - return true; - } - } - } - - return false; - } - - public boolean canTake() { - if(slots[2] != null && slots[2].getItem() == ModItems.cell_empty) - { - if(slots[3] == null || (slots[3] != null && slots[3].getItem() == ModItems.cell_uf6 && slots[3].stackSize < slots[3].getMaxStackSize())) - { - if(fillState > 0) - { - return true; - } - } - } - - return false; - } - @Override public void updateEntity() { if(!worldObj.isRemote) { - if(this.canGive()) - { - this.slots[0].stackSize--; - if(slots[0].stackSize <= 0) - { - slots[0] = null; - } - - this.fillState++; - - if(slots[1] != null) - { - slots[1].stackSize++; - } - else - { - slots[1] = new ItemStack(ModItems.cell_empty, 1); - } - } - - if(this.canTake()) - { - this.slots[2].stackSize--; - if(slots[2].stackSize <= 0) - { - slots[2] = null; - } - - this.fillState--; - - if(slots[3] != null) - { - slots[3].stackSize++; - } - else - { - slots[3] = new ItemStack(ModItems.cell_uf6, 1); - } - } + tank.loadTank(0, 1, slots); + tank.unloadTank(2, 3, slots); + tank.updateTank(xCoord, yCoord, zCoord); } } @@ -273,4 +209,9 @@ public class TileEntityMachineUF6Tank extends TileEntity implements ISidedInvent { return 65536.0D; } + + @Override + public void setFillstate(int fill, int index) { + tank.setFill(fill); + } } diff --git a/com/hbm/world/DesertAtom003.java b/com/hbm/world/DesertAtom003.java index e39368c5f..cec0c4975 100644 --- a/com/hbm/world/DesertAtom003.java +++ b/com/hbm/world/DesertAtom003.java @@ -373,14 +373,14 @@ public class DesertAtom003 if(tank0 instanceof TileEntityMachineUF6Tank) { TileEntityMachineUF6Tank tankuf0 = (TileEntityMachineUF6Tank)tank0; - tankuf0.fillState = rand.nextInt(tankuf0.maxFill); + //tankuf0.fillState = rand.nextInt(tankuf0.maxFill); } world.setBlock(x + 29, y + 4, z + 7, Block20, 3, 3); TileEntity tank1 = world.getTileEntity(x + 29, y + 4, z + 7); if(tank0 instanceof TileEntityMachineUF6Tank) { TileEntityMachineUF6Tank tankuf1 = (TileEntityMachineUF6Tank)tank1; - tankuf1.fillState = rand.nextInt(tankuf1.maxFill); + //tankuf1.fillState = rand.nextInt(tankuf1.maxFill); } world.setBlock(x + 30, y + 4, z + 7, Block21, 3, 3); TileEntity tank2 = world.getTileEntity(x + 30, y + 4, z + 7);