mining laser: shareware edition
585
assets/hbm/models/machines/mining_laser.obj
Normal file
@ -0,0 +1,585 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'mining_laser.blend'
|
||||
# www.blender.org
|
||||
o Laser
|
||||
v -0.250000 -1.500000 0.250000
|
||||
v 0.250000 -0.500000 -0.125000
|
||||
v -0.250000 -1.500000 -0.250000
|
||||
v 0.250000 -0.500000 0.125000
|
||||
v 0.250000 -1.500000 0.250000
|
||||
v -0.250000 -0.500000 -0.125000
|
||||
v 0.250000 -1.500000 -0.250000
|
||||
v -0.250000 -0.500000 0.125000
|
||||
v -0.250000 -0.750000 0.250000
|
||||
v -0.250000 -0.750000 -0.250000
|
||||
v 0.250000 -0.750000 0.250000
|
||||
v 0.250000 -0.750000 -0.250000
|
||||
v -0.062500 -0.750000 0.250000
|
||||
v -0.062500 -0.750000 -0.250000
|
||||
v 0.062500 -0.750000 0.250000
|
||||
v 0.062500 -0.750000 -0.250000
|
||||
v -0.062500 -0.500000 0.125000
|
||||
v -0.062500 -0.500000 -0.125000
|
||||
v 0.062500 -0.500000 0.125000
|
||||
v 0.062500 -0.500000 -0.125000
|
||||
v -0.062500 -1.250000 0.250000
|
||||
v -0.062500 -1.250000 -0.250000
|
||||
v 0.062500 -1.250000 0.250000
|
||||
v 0.062500 -1.250000 -0.250000
|
||||
v 0.312500 -1.000000 0.250000
|
||||
v 0.312500 -2.250000 0.250000
|
||||
v -0.000000 -2.500000 -0.125000
|
||||
v -0.000000 -1.500000 -0.125000
|
||||
v 0.088388 -2.500000 -0.088388
|
||||
v 0.088388 -1.500000 -0.088388
|
||||
v 0.125000 -2.500000 0.000000
|
||||
v 0.125000 -1.500000 0.000000
|
||||
v 0.088388 -2.500000 0.088388
|
||||
v 0.088388 -1.500000 0.088388
|
||||
v -0.000000 -2.500000 0.125000
|
||||
v -0.000000 -1.500000 0.125000
|
||||
v -0.088388 -2.500000 0.088388
|
||||
v -0.088388 -1.500000 0.088388
|
||||
v -0.125000 -2.500000 -0.000000
|
||||
v -0.125000 -1.500000 -0.000000
|
||||
v -0.088388 -2.500000 -0.088388
|
||||
v -0.088388 -1.500000 -0.088388
|
||||
v 0.312500 -2.250000 -0.250000
|
||||
v 0.312500 -1.000000 -0.250000
|
||||
v 0.375000 -2.250000 0.250000
|
||||
v 0.375000 -1.000000 0.250000
|
||||
v 0.375000 -2.250000 -0.250000
|
||||
v 0.375000 -1.000000 -0.250000
|
||||
v -0.375000 -1.000000 0.250000
|
||||
v -0.375000 -2.250000 0.250000
|
||||
v -0.375000 -2.250000 -0.250000
|
||||
v -0.375000 -1.000000 -0.250000
|
||||
v -0.312500 -2.250000 0.250000
|
||||
v -0.312500 -1.000000 0.250000
|
||||
v -0.312500 -2.250000 -0.250000
|
||||
v -0.312500 -1.000000 -0.250000
|
||||
v 0.125000 -1.250000 -0.312500
|
||||
v 0.125000 -2.250000 -0.312500
|
||||
v -0.125000 -2.250000 -0.312500
|
||||
v -0.125000 -1.250000 -0.312500
|
||||
v 0.125000 -2.250000 -0.375000
|
||||
v 0.125000 -1.250000 -0.375000
|
||||
v -0.125000 -2.250000 -0.375000
|
||||
v -0.125000 -1.250000 -0.375000
|
||||
v 0.125000 -1.250000 0.375000
|
||||
v 0.125000 -2.250000 0.375000
|
||||
v -0.125000 -2.250000 0.375000
|
||||
v -0.125000 -1.250000 0.375000
|
||||
v 0.125000 -2.250000 0.312500
|
||||
v 0.125000 -1.250000 0.312500
|
||||
v -0.125000 -2.250000 0.312500
|
||||
v -0.125000 -1.250000 0.312500
|
||||
v 0.031250 -1.500000 -0.312500
|
||||
v 0.031250 -2.125000 -0.312500
|
||||
v -0.031250 -2.125000 -0.312500
|
||||
v -0.031250 -1.500000 -0.312500
|
||||
v -0.031250 -2.125000 -0.112500
|
||||
v 0.031250 -2.125000 -0.112500
|
||||
v 0.031250 -1.500000 -0.112500
|
||||
v -0.031250 -1.500000 -0.112500
|
||||
v -0.312500 -1.500000 -0.031250
|
||||
v -0.312500 -2.125000 -0.031250
|
||||
v -0.312500 -2.125000 0.031250
|
||||
v -0.312500 -1.500000 0.031250
|
||||
v -0.112500 -2.125000 0.031250
|
||||
v -0.112500 -2.125000 -0.031250
|
||||
v -0.112500 -1.500000 -0.031250
|
||||
v -0.112500 -1.500000 0.031250
|
||||
v -0.031250 -1.500000 0.312500
|
||||
v -0.031250 -2.125000 0.312500
|
||||
v 0.031250 -2.125000 0.312500
|
||||
v 0.031250 -1.500000 0.312500
|
||||
v 0.031250 -2.125000 0.112500
|
||||
v -0.031250 -2.125000 0.112500
|
||||
v -0.031250 -1.500000 0.112500
|
||||
v 0.031250 -1.500000 0.112500
|
||||
v 0.312500 -1.500000 0.031250
|
||||
v 0.312500 -2.125000 0.031250
|
||||
v 0.312500 -2.125000 -0.031250
|
||||
v 0.312500 -1.500000 -0.031250
|
||||
v 0.112500 -2.125000 -0.031250
|
||||
v 0.112500 -2.125000 0.031250
|
||||
v 0.112500 -1.500000 0.031250
|
||||
v 0.112500 -1.500000 -0.031250
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.000000 0.447200 -0.894400
|
||||
vn 0.000000 0.447200 0.894400
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.707100 0.000000 -0.707100
|
||||
vn 0.549000 -0.630200 -0.549000
|
||||
vn 0.776400 -0.630200 0.000000
|
||||
vn 0.707100 0.000000 0.707100
|
||||
vn 0.549000 -0.630200 0.549000
|
||||
vn 0.000000 -0.630200 0.776400
|
||||
vn -0.707100 0.000000 0.707100
|
||||
vn -0.549000 -0.630200 0.549000
|
||||
vn -0.776400 -0.630200 0.000000
|
||||
vn -0.707100 0.000000 -0.707100
|
||||
vn 0.000000 -0.630200 -0.776400
|
||||
vn -0.549000 -0.630200 -0.549000
|
||||
s off
|
||||
f 4//1 2//1 20//1
|
||||
f 10//2 9//2 8//2
|
||||
f 6//1 8//1 17//1
|
||||
f 17//3 13//3 14//3
|
||||
f 3//4 7//4 5//4
|
||||
f 11//3 12//3 2//3
|
||||
f 20//2 16//2 15//2
|
||||
f 16//2 24//2 23//2
|
||||
f 21//1 23//1 24//1
|
||||
f 13//3 21//3 22//3
|
||||
f 7//3 12//3 11//3
|
||||
f 1//2 9//2 10//2
|
||||
f 18//5 14//5 10//5
|
||||
f 9//6 13//6 17//6
|
||||
f 15//6 11//6 4//6
|
||||
f 2//5 12//5 16//5
|
||||
f 12//7 7//7 24//7
|
||||
f 22//7 3//7 10//7
|
||||
f 9//8 1//8 21//8
|
||||
f 23//8 5//8 11//8
|
||||
f 23//8 21//8 1//8
|
||||
f 3//7 22//7 24//7
|
||||
f 64//1 60//1 57//1
|
||||
f 48//1 44//1 25//1
|
||||
f 59//4 63//4 61//4
|
||||
f 43//4 47//4 45//4
|
||||
f 56//7 55//7 51//7
|
||||
f 25//8 26//8 45//8
|
||||
f 54//3 53//3 55//3
|
||||
f 46//3 45//3 47//3
|
||||
f 49//8 50//8 53//8
|
||||
f 48//7 47//7 43//7
|
||||
f 51//4 55//4 53//4
|
||||
f 44//2 43//2 26//2
|
||||
f 52//2 51//2 50//2
|
||||
f 56//1 52//1 49//1
|
||||
f 33//4 37//4 41//4
|
||||
f 72//2 71//2 67//2
|
||||
f 57//3 58//3 61//3
|
||||
f 70//7 69//7 71//7
|
||||
f 62//7 61//7 63//7
|
||||
f 65//3 66//3 69//3
|
||||
f 64//2 63//2 59//2
|
||||
f 67//4 71//4 69//4
|
||||
f 60//8 59//8 58//8
|
||||
f 68//8 67//8 66//8
|
||||
f 72//1 68//1 65//1
|
||||
f 81//7 87//7 86//7
|
||||
f 84//1 88//1 87//1
|
||||
f 73//3 79//3 78//3
|
||||
f 73//1 76//1 80//1
|
||||
f 75//2 77//2 80//2
|
||||
f 74//4 78//4 77//4
|
||||
f 83//8 85//8 88//8
|
||||
f 82//4 86//4 85//4
|
||||
f 89//2 95//2 94//2
|
||||
f 92//1 96//1 95//1
|
||||
f 91//3 93//3 96//3
|
||||
f 91//4 90//4 94//4
|
||||
f 97//8 103//8 102//8
|
||||
f 100//1 104//1 103//1
|
||||
f 99//7 101//7 104//7
|
||||
f 98//4 102//4 101//4
|
||||
f 19//1 4//1 20//1
|
||||
f 6//2 10//2 8//2
|
||||
f 18//1 6//1 17//1
|
||||
f 18//3 17//3 14//3
|
||||
f 1//4 3//4 5//4
|
||||
f 4//3 11//3 2//3
|
||||
f 19//2 20//2 15//2
|
||||
f 15//2 16//2 23//2
|
||||
f 22//1 21//1 24//1
|
||||
f 14//3 13//3 22//3
|
||||
f 5//3 7//3 11//3
|
||||
f 3//2 1//2 10//2
|
||||
f 6//5 18//5 10//5
|
||||
f 8//6 9//6 17//6
|
||||
f 19//6 15//6 4//6
|
||||
f 20//5 2//5 16//5
|
||||
f 16//7 12//7 24//7
|
||||
f 14//7 22//7 10//7
|
||||
f 13//8 9//8 21//8
|
||||
f 15//8 23//8 11//8
|
||||
f 5//8 23//8 1//8
|
||||
f 7//7 3//7 24//7
|
||||
f 62//1 64//1 57//1
|
||||
f 46//1 48//1 25//1
|
||||
f 58//4 59//4 61//4
|
||||
f 26//4 43//4 45//4
|
||||
f 52//7 56//7 51//7
|
||||
f 46//8 25//8 45//8
|
||||
f 56//3 54//3 55//3
|
||||
f 48//3 46//3 47//3
|
||||
f 54//8 49//8 53//8
|
||||
f 44//7 48//7 43//7
|
||||
f 50//4 51//4 53//4
|
||||
f 25//2 44//2 26//2
|
||||
f 49//2 52//2 50//2
|
||||
f 54//1 56//1 49//1
|
||||
f 41//4 27//4 29//4
|
||||
f 29//4 31//4 41//4
|
||||
f 33//4 35//4 37//4
|
||||
f 37//4 39//4 41//4
|
||||
f 41//4 31//4 33//4
|
||||
f 68//2 72//2 67//2
|
||||
f 62//3 57//3 61//3
|
||||
f 72//7 70//7 71//7
|
||||
f 64//7 62//7 63//7
|
||||
f 70//3 65//3 69//3
|
||||
f 60//2 64//2 59//2
|
||||
f 66//4 67//4 69//4
|
||||
f 57//8 60//8 58//8
|
||||
f 65//8 68//8 66//8
|
||||
f 70//1 72//1 65//1
|
||||
f 82//7 81//7 86//7
|
||||
f 81//1 84//1 87//1
|
||||
f 74//3 73//3 78//3
|
||||
f 79//1 73//1 80//1
|
||||
f 76//2 75//2 80//2
|
||||
f 75//4 74//4 77//4
|
||||
f 84//8 83//8 88//8
|
||||
f 83//4 82//4 85//4
|
||||
f 90//2 89//2 94//2
|
||||
f 89//1 92//1 95//1
|
||||
f 92//3 91//3 96//3
|
||||
f 93//4 91//4 94//4
|
||||
f 98//8 97//8 102//8
|
||||
f 97//1 100//1 103//1
|
||||
f 100//7 99//7 104//7
|
||||
f 99//4 98//4 101//4
|
||||
s 1
|
||||
f 28//7 30//9 29//10
|
||||
f 30//9 32//3 31//11
|
||||
f 32//3 34//12 33//13
|
||||
f 34//12 36//8 35//14
|
||||
f 36//8 38//15 37//16
|
||||
f 38//15 40//2 39//17
|
||||
f 42//18 28//7 27//19
|
||||
f 40//2 42//18 41//20
|
||||
f 27//19 28//7 29//10
|
||||
f 29//10 30//9 31//11
|
||||
f 31//11 32//3 33//13
|
||||
f 33//13 34//12 35//14
|
||||
f 35//14 36//8 37//16
|
||||
f 37//16 38//15 39//17
|
||||
f 41//20 42//18 27//19
|
||||
f 39//17 40//2 41//20
|
||||
o Pivot
|
||||
v 0.000000 -0.125000 -0.500000
|
||||
v 0.000000 0.000000 -0.500000
|
||||
v 0.191342 -0.125000 -0.461940
|
||||
v 0.191342 0.000000 -0.461940
|
||||
v 0.353553 -0.125000 -0.353553
|
||||
v 0.353553 0.000000 -0.353553
|
||||
v 0.461940 -0.125000 -0.191342
|
||||
v 0.461940 0.000000 -0.191342
|
||||
v 0.500000 -0.125000 0.000000
|
||||
v 0.500000 0.000000 0.000000
|
||||
v 0.461940 -0.125000 0.191342
|
||||
v 0.461940 0.000000 0.191342
|
||||
v 0.353553 -0.125000 0.353553
|
||||
v 0.353553 0.000000 0.353553
|
||||
v 0.191342 -0.125000 0.461940
|
||||
v 0.191342 0.000000 0.461940
|
||||
v 0.000000 -0.125000 0.500000
|
||||
v 0.000000 0.000000 0.500000
|
||||
v -0.191342 -0.125000 0.461940
|
||||
v -0.191342 0.000000 0.461940
|
||||
v -0.353553 -0.125000 0.353554
|
||||
v -0.353553 0.000000 0.353554
|
||||
v -0.461940 -0.125000 0.191342
|
||||
v -0.461940 0.000000 0.191342
|
||||
v -0.500000 -0.125000 -0.000000
|
||||
v -0.500000 0.000000 -0.000000
|
||||
v -0.461940 -0.125000 -0.191342
|
||||
v -0.461940 0.000000 -0.191342
|
||||
v -0.353553 -0.125000 -0.353554
|
||||
v -0.353553 0.000000 -0.353554
|
||||
v -0.191341 -0.125000 -0.461940
|
||||
v -0.191341 0.000000 -0.461940
|
||||
v -0.062500 -1.000000 -0.250000
|
||||
v 0.062500 -1.000000 -0.250000
|
||||
v -0.062500 -1.176777 -0.176777
|
||||
v 0.062500 -1.176777 -0.176777
|
||||
v -0.062500 -1.250000 0.000000
|
||||
v 0.062500 -1.250000 0.000000
|
||||
v -0.062500 -1.176777 0.176777
|
||||
v 0.062500 -1.176777 0.176777
|
||||
v -0.062500 -1.000000 0.250000
|
||||
v 0.062500 -1.000000 0.250000
|
||||
v 0.062500 -0.500000 0.250000
|
||||
v -0.062500 -0.500000 0.250000
|
||||
v 0.062500 -0.500000 -0.250000
|
||||
v -0.062500 -0.500000 -0.250000
|
||||
v 0.000000 -0.125000 -0.312500
|
||||
v -0.220971 -0.125000 -0.220971
|
||||
v -0.312500 -0.125000 0.000000
|
||||
v -0.220971 -0.125000 0.220971
|
||||
v 0.000000 -0.125000 0.312500
|
||||
v 0.220971 -0.125000 0.220971
|
||||
v 0.312500 -0.125000 -0.000000
|
||||
v 0.220971 -0.125000 -0.220971
|
||||
v -0.220971 -0.500000 -0.220971
|
||||
v -0.000000 -0.500000 -0.312500
|
||||
v -0.312500 -0.500000 0.000000
|
||||
v -0.220971 -0.500000 0.220971
|
||||
v 0.000000 -0.500000 0.312500
|
||||
v 0.220971 -0.500000 0.220971
|
||||
v 0.312500 -0.500000 -0.000000
|
||||
v 0.220971 -0.500000 -0.220971
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn -1.000000 -0.000000 0.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn 0.382700 0.000000 -0.923900
|
||||
vn 0.285500 -0.665700 -0.689400
|
||||
vn 0.707100 0.000000 -0.707100
|
||||
vn 0.527600 -0.665700 -0.527600
|
||||
vn 0.923900 0.000000 -0.382700
|
||||
vn 0.689400 -0.665700 -0.285500
|
||||
vn 0.746200 -0.665700 0.000000
|
||||
vn 0.923900 0.000000 0.382700
|
||||
vn 0.689400 -0.665700 0.285500
|
||||
vn 0.707100 0.000000 0.707100
|
||||
vn 0.527600 -0.665700 0.527600
|
||||
vn 0.382700 0.000000 0.923900
|
||||
vn 0.285500 -0.665700 0.689400
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.000000 -0.665700 0.746200
|
||||
vn -0.382700 0.000000 0.923900
|
||||
vn -0.285500 -0.665700 0.689400
|
||||
vn -0.707100 0.000000 0.707100
|
||||
vn -0.527600 -0.665700 0.527600
|
||||
vn -0.923900 0.000000 0.382700
|
||||
vn -0.689400 -0.665700 0.285500
|
||||
vn -0.746200 -0.665700 0.000000
|
||||
vn -0.923900 0.000000 -0.382700
|
||||
vn -0.689400 -0.665700 -0.285500
|
||||
vn -0.707100 0.000000 -0.707100
|
||||
vn -0.527600 -0.665700 -0.527600
|
||||
vn -0.382700 0.000000 -0.923900
|
||||
vn 0.000000 -0.665700 -0.746200
|
||||
vn -0.285500 -0.665700 -0.689400
|
||||
vn 0.665700 -0.145600 -0.731900
|
||||
vn 0.630200 -0.549000 -0.549000
|
||||
vn -0.630200 -0.549000 -0.549000
|
||||
vn 0.630200 -0.776400 0.000000
|
||||
vn -0.630200 -0.776400 0.000000
|
||||
vn 0.630200 -0.549000 0.549000
|
||||
vn -0.630200 -0.549000 0.549000
|
||||
vn 0.665700 -0.145600 0.731900
|
||||
vn -0.665700 -0.145600 0.731900
|
||||
vn -0.665700 -0.145600 -0.731900
|
||||
vn 0.000000 -0.630200 0.776400
|
||||
vn 0.549000 -0.630200 0.549000
|
||||
vn -0.776400 -0.630200 0.000000
|
||||
vn -0.549000 -0.630200 0.549000
|
||||
vn 0.000000 -0.630200 -0.776400
|
||||
vn -0.549000 -0.630200 -0.549000
|
||||
vn 0.549000 -0.630200 -0.549000
|
||||
vn 0.776400 -0.630200 0.000000
|
||||
s off
|
||||
f 119//21 127//21 111//21
|
||||
f 139//22 145//22 137//22
|
||||
f 138//23 146//23 144//23
|
||||
f 165//21 162//21 161//21
|
||||
f 135//21 105//21 107//21
|
||||
f 107//21 109//21 135//21
|
||||
f 111//21 113//21 115//21
|
||||
f 115//21 117//21 111//21
|
||||
f 119//21 121//21 127//21
|
||||
f 123//21 125//21 127//21
|
||||
f 127//21 129//21 131//21
|
||||
f 131//21 133//21 135//21
|
||||
f 135//21 109//21 111//21
|
||||
f 111//21 117//21 119//21
|
||||
f 121//21 123//21 127//21
|
||||
f 127//21 131//21 135//21
|
||||
f 135//21 111//21 127//21
|
||||
f 150//22 137//22 148//22
|
||||
f 139//22 141//22 143//22
|
||||
f 143//22 145//22 139//22
|
||||
f 148//22 137//22 145//22
|
||||
f 142//23 140//23 138//23
|
||||
f 138//23 149//23 147//23
|
||||
f 147//23 146//23 138//23
|
||||
f 144//23 142//23 138//23
|
||||
f 161//21 159//21 160//21
|
||||
f 160//21 166//21 161//21
|
||||
f 165//21 164//21 163//21
|
||||
f 163//21 162//21 165//21
|
||||
f 161//21 166//21 165//21
|
||||
s 1
|
||||
f 106//24 108//25 107//26
|
||||
f 108//25 110//27 109//28
|
||||
f 110//27 112//29 111//30
|
||||
f 112//29 114//23 113//31
|
||||
f 114//23 116//32 115//33
|
||||
f 116//32 118//34 117//35
|
||||
f 118//34 120//36 119//37
|
||||
f 120//36 122//38 121//39
|
||||
f 122//38 124//40 123//41
|
||||
f 124//40 126//42 125//43
|
||||
f 126//42 128//44 127//45
|
||||
f 128//44 130//22 129//46
|
||||
f 130//22 132//47 131//48
|
||||
f 132//47 134//49 133//50
|
||||
f 136//51 106//24 105//52
|
||||
f 134//49 136//51 135//53
|
||||
f 138//54 140//55 139//56
|
||||
f 140//55 142//57 141//58
|
||||
f 142//57 144//59 143//60
|
||||
f 144//59 146//61 145//62
|
||||
f 137//63 150//49 149//27
|
||||
f 146//61 147//34 148//42
|
||||
f 155//38 163//64 164//65
|
||||
f 153//22 161//66 162//67
|
||||
f 151//24 160//68 159//69
|
||||
f 158//27 166//70 160//68
|
||||
f 156//34 164//65 165//71
|
||||
f 154//42 162//67 163//64
|
||||
f 152//49 159//69 161//66
|
||||
f 157//23 165//71 166//70
|
||||
f 105//52 106//24 107//26
|
||||
f 107//26 108//25 109//28
|
||||
f 109//28 110//27 111//30
|
||||
f 111//30 112//29 113//31
|
||||
f 113//31 114//23 115//33
|
||||
f 115//33 116//32 117//35
|
||||
f 117//35 118//34 119//37
|
||||
f 119//37 120//36 121//39
|
||||
f 121//39 122//38 123//41
|
||||
f 123//41 124//40 125//43
|
||||
f 125//43 126//42 127//45
|
||||
f 127//45 128//44 129//46
|
||||
f 129//46 130//22 131//48
|
||||
f 131//48 132//47 133//50
|
||||
f 135//53 136//51 105//52
|
||||
f 133//50 134//49 135//53
|
||||
f 137//63 138//54 139//56
|
||||
f 139//56 140//55 141//58
|
||||
f 141//58 142//57 143//60
|
||||
f 143//60 144//59 145//62
|
||||
f 138//54 137//63 149//27
|
||||
f 145//62 146//61 148//42
|
||||
f 156//34 155//38 164//65
|
||||
f 154//42 153//22 162//67
|
||||
f 152//49 151//24 159//69
|
||||
f 151//24 158//27 160//68
|
||||
f 157//23 156//34 165//71
|
||||
f 155//38 154//42 163//64
|
||||
f 153//22 152//49 161//66
|
||||
f 158//27 157//23 166//70
|
||||
o Base
|
||||
v -1.500000 3.000000 0.500000
|
||||
v -1.500000 3.000000 -0.500000
|
||||
v -1.500000 0.000000 -0.500000
|
||||
v -1.500000 0.000000 0.500000
|
||||
v -0.500000 3.000000 -1.500000
|
||||
v 0.500000 3.000000 -1.500000
|
||||
v 0.500000 0.000000 -1.500000
|
||||
v -0.500000 0.000000 -1.500000
|
||||
v 1.500000 3.000000 -0.500000
|
||||
v 1.500000 3.000000 0.500000
|
||||
v 1.500000 0.000000 0.500000
|
||||
v 1.500000 0.000000 -0.500000
|
||||
v 0.500000 3.000000 1.500000
|
||||
v -0.500000 3.000000 1.500000
|
||||
v -0.500000 0.000000 1.500000
|
||||
v 0.500000 0.000000 1.500000
|
||||
v -1.000000 3.000000 -0.500000
|
||||
v -1.000000 3.000000 0.500000
|
||||
v -1.000000 0.000000 -0.500000
|
||||
v -1.000000 0.000000 0.500000
|
||||
v 0.500000 3.000000 -1.000000
|
||||
v -0.500000 3.000000 -1.000000
|
||||
v 0.500000 0.000000 -1.000000
|
||||
v -0.500000 0.000000 -1.000000
|
||||
v 1.000000 3.000000 0.500000
|
||||
v 1.000000 3.000000 -0.500000
|
||||
v 1.000000 0.000000 0.500000
|
||||
v 1.000000 0.000000 -0.500000
|
||||
v -0.500000 3.000000 1.000000
|
||||
v 0.500000 3.000000 1.000000
|
||||
v -0.500000 0.000000 1.000000
|
||||
v 0.500000 0.000000 1.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn -0.707100 0.000000 -0.707100
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.707100 0.000000 0.707100
|
||||
vn -0.707100 0.000000 0.707100
|
||||
vn 0.707100 0.000000 -0.707100
|
||||
s off
|
||||
f 191//72 187//72 183//72
|
||||
f 183//73 188//73 190//73
|
||||
f 168//74 169//74 170//74
|
||||
f 168//72 167//72 184//72
|
||||
f 169//75 168//75 183//75
|
||||
f 170//76 169//76 185//76
|
||||
f 167//77 170//77 186//77
|
||||
f 172//75 173//75 174//75
|
||||
f 172//72 171//72 188//72
|
||||
f 173//78 172//78 187//78
|
||||
f 174//76 173//76 189//76
|
||||
f 171//74 174//74 190//74
|
||||
f 176//78 177//78 178//78
|
||||
f 176//72 175//72 192//72
|
||||
f 177//77 176//77 191//77
|
||||
f 178//76 177//76 193//76
|
||||
f 175//75 178//75 194//75
|
||||
f 180//77 181//77 182//77
|
||||
f 180//72 179//72 196//72
|
||||
f 181//74 180//74 195//74
|
||||
f 182//76 181//76 197//76
|
||||
f 179//78 182//78 198//78
|
||||
f 198//79 193//79 191//79
|
||||
f 189//76 193//76 197//76
|
||||
f 186//80 197//80 195//80
|
||||
f 194//81 189//81 187//81
|
||||
f 183//72 184//72 195//72
|
||||
f 195//72 196//72 191//72
|
||||
f 191//72 192//72 187//72
|
||||
f 187//72 188//72 183//72
|
||||
f 183//72 195//72 191//72
|
||||
f 185//73 183//73 190//73
|
||||
f 167//74 168//74 170//74
|
||||
f 183//72 168//72 184//72
|
||||
f 185//75 169//75 183//75
|
||||
f 186//76 170//76 185//76
|
||||
f 184//77 167//77 186//77
|
||||
f 171//75 172//75 174//75
|
||||
f 187//72 172//72 188//72
|
||||
f 189//78 173//78 187//78
|
||||
f 190//76 174//76 189//76
|
||||
f 188//74 171//74 190//74
|
||||
f 175//78 176//78 178//78
|
||||
f 191//72 176//72 192//72
|
||||
f 193//77 177//77 191//77
|
||||
f 194//76 178//76 193//76
|
||||
f 192//75 175//75 194//75
|
||||
f 179//77 180//77 182//77
|
||||
f 195//72 180//72 196//72
|
||||
f 197//74 181//74 195//74
|
||||
f 198//76 182//76 197//76
|
||||
f 196//78 179//78 198//78
|
||||
f 196//79 198//79 191//79
|
||||
f 197//76 186//76 185//76
|
||||
f 185//76 190//76 189//76
|
||||
f 189//76 194//76 193//76
|
||||
f 193//76 198//76 197//76
|
||||
f 197//76 185//76 189//76
|
||||
f 184//80 186//80 195//80
|
||||
f 192//81 194//81 187//81
|
||||
10474
assets/hbm/models/reactors/iter.obj
Normal file
|
Before Width: | Height: | Size: 348 B After Width: | Height: | Size: 513 B |
BIN
assets/hbm/textures/blocks/struct_iter_core.png
Normal file
|
After Width: | Height: | Size: 539 B |
BIN
assets/hbm/textures/gui/machine/gui_laser_miner.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@ -461,6 +461,7 @@ public class ModBlocks {
|
||||
public static Block struct_launcher_core;
|
||||
public static Block struct_launcher_core_large;
|
||||
public static Block struct_soyuz_core;
|
||||
public static Block struct_iter_core;
|
||||
|
||||
public static Block factory_titanium_hull;
|
||||
public static Block factory_titanium_furnace;
|
||||
@ -596,6 +597,9 @@ public class ModBlocks {
|
||||
public static Block drill_pipe;
|
||||
public static final int guiID_machine_drill = 45;
|
||||
|
||||
public static Block machine_mining_laser;
|
||||
public static final int guiID_mining_laser = 45;
|
||||
|
||||
public static Block machine_assembler;
|
||||
public static final int guiID_machine_assembler = 48;
|
||||
|
||||
@ -1126,6 +1130,7 @@ public class ModBlocks {
|
||||
struct_launcher_core = new BlockStruct(Material.iron).setBlockName("struct_launcher_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_launcher_core");
|
||||
struct_launcher_core_large = new BlockStruct(Material.iron).setBlockName("struct_launcher_core_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_launcher_core_large");
|
||||
struct_soyuz_core = new BlockSoyuzStruct(Material.iron).setBlockName("struct_soyuz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_soyuz_core");
|
||||
struct_iter_core = new BlockITERStruct(Material.iron).setBlockName("struct_iter_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_iter_core");
|
||||
|
||||
factory_titanium_hull = new BlockGeneric(Material.iron).setBlockName("factory_titanium_hull").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_hull");
|
||||
factory_titanium_furnace = new FactoryHatch(Material.iron).setBlockName("factory_titanium_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_furnace");
|
||||
@ -1144,7 +1149,7 @@ public class ModBlocks {
|
||||
reactor_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_conductor_top").setBlockName("reactor_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_conductor_side");
|
||||
reactor_computer = new ReactorCore(Material.iron).setBlockName("reactor_computer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_computer");
|
||||
|
||||
fusion_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":block_steel").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_conductor_side_alt3");
|
||||
fusion_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":deco_steel").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_conductor_side_alt3");
|
||||
fusion_center = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_center_top_alt").setBlockName("fusion_center").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_center_side_alt");
|
||||
fusion_motor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_motor_top_alt").setBlockName("fusion_motor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_motor_side_alt");
|
||||
fusion_heater = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_heater_top").setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side");
|
||||
@ -1260,6 +1265,7 @@ public class ModBlocks {
|
||||
machine_refinery = new MachineRefinery(Material.iron).setBlockName("machine_refinery").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_refinery");
|
||||
machine_drill = new MachineMiningDrill(Material.iron).setBlockName("machine_drill").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_drill");
|
||||
drill_pipe = new BlockNoDrop(Material.iron).setBlockName("drill_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":drill_pipe");
|
||||
machine_mining_laser = new MachineMiningLaser(Material.iron).setBlockName("machine_mining_laser").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_mining_laser");
|
||||
machine_assembler = new MachineAssembler(Material.iron).setBlockName("machine_assembler").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_assembler");
|
||||
machine_chemplant = new MachineChemplant(Material.iron).setBlockName("machine_chemplant").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_chemplant");
|
||||
machine_fluidtank = new MachineFluidTank(Material.iron).setBlockName("machine_fluidtank").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fluidtank");
|
||||
@ -1785,6 +1791,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(machine_flare, machine_flare.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_refinery, machine_refinery.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_drill, machine_drill.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_mining_laser, machine_mining_laser.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_turbofan, machine_turbofan.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_schrabidium_transmutator, machine_schrabidium_transmutator.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_combine_factory, machine_combine_factory.getUnlocalizedName());
|
||||
@ -1808,6 +1815,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(struct_launcher_core, struct_launcher_core.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(struct_launcher_core_large, struct_launcher_core_large.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(struct_soyuz_core, struct_soyuz_core.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(struct_iter_core, struct_iter_core.getUnlocalizedName());
|
||||
|
||||
//Absorbers
|
||||
GameRegistry.registerBlock(absorber, absorber.getUnlocalizedName());
|
||||
|
||||
25
com/hbm/blocks/machine/BlockITERStruct.java
Normal file
@ -0,0 +1,25 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.tileentity.machine.TileEntityITERStruct;
|
||||
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockITERStruct extends BlockContainer {
|
||||
|
||||
public BlockITERStruct(Material mat) {
|
||||
super(mat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityITERStruct();
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -22,5 +22,4 @@ public class BlockSoyuzStruct extends BlockContainer {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
34
com/hbm/blocks/machine/MachineMiningLaser.java
Normal file
@ -0,0 +1,34 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineMiningLaser;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class MachineMiningLaser extends BlockDummyable {
|
||||
|
||||
public MachineMiningLaser(Material mat) {
|
||||
super(mat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int meta) {
|
||||
|
||||
if(meta >= ForgeDirection.UNKNOWN.ordinal())
|
||||
return new TileEntityMachineMiningLaser();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[] {2, 0, 1, 1, 1, 1};
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffset() {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@ -357,7 +357,7 @@ public class EntityBulletBase extends Entity implements IProjectile {
|
||||
|
||||
if(worldObj.isRemote && !config.vPFX.isEmpty()) {
|
||||
|
||||
double motion = Vec3.createVectorHelper(-motionX, -motionY, -motionZ).lengthVector();
|
||||
double motion = Math.min(Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector(), 0.1);
|
||||
|
||||
for(double d = 0; d < 1; d += 1 / motion) {
|
||||
|
||||
|
||||
@ -128,6 +128,7 @@ public class ClientProxy extends ServerProxy
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOilWell.class, new RenderDerrick());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineGasFlare.class, new RenderGasFlare());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningDrill.class, new RenderMiningDrill());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningLaser.class, new RenderLaserMiner());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssembler.class, new RenderAssembler());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemplant.class, new RenderChemplant());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFluidTank.class, new RenderFluidTank());
|
||||
@ -360,6 +361,7 @@ public class ClientProxy extends ServerProxy
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityStructureMarker.class, new RenderStructureMaker());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMultiblock.class, new RenderMultiblock());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzStruct.class, new RenderSoyuzMultiblock());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITERStruct.class, new RenderITERMultiblock());
|
||||
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter());
|
||||
|
||||
@ -561,6 +561,8 @@ public class MainRegistry
|
||||
GameRegistry.registerTileEntity(TileEntitySoyuzCapsule.class, "tileentity_soyuz_capsule");
|
||||
GameRegistry.registerTileEntity(TileEntityMachineCrystallizer.class, "tileentity_acidomatic");
|
||||
GameRegistry.registerTileEntity(TileEntitySoyuzStruct.class, "tileentity_soyuz_struct");
|
||||
GameRegistry.registerTileEntity(TileEntityITERStruct.class, "tileentity_iter_struct");
|
||||
GameRegistry.registerTileEntity(TileEntityMachineMiningLaser.class, "tileentity_mining_laser");
|
||||
|
||||
EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true);
|
||||
EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true);
|
||||
|
||||
@ -69,6 +69,9 @@ public class ResourceManager {
|
||||
//Centrifuge
|
||||
public static final IModelCustom centrifuge_new = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/centrifuge_new.obj"));
|
||||
|
||||
//Lase Miner
|
||||
public static final IModelCustom mining_laser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_laser.obj"));
|
||||
|
||||
//Anti Mass Spectrometer
|
||||
public static final IModelCustom ams_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_base.obj"));
|
||||
public static final IModelCustom ams_emitter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_emitter.obj"));
|
||||
@ -92,8 +95,11 @@ public class ResourceManager {
|
||||
public static final IModelCustom radgen_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rad_gen_rotor.obj"));
|
||||
|
||||
//Small Reactor
|
||||
public static final IModelCustom reactor_small_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/reactor_small_base.obj"));
|
||||
public static final IModelCustom reactor_small_rods = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/reactor_small_rods.obj"));
|
||||
public static final IModelCustom reactor_small_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/reactors/reactor_small_base.obj"));
|
||||
public static final IModelCustom reactor_small_rods = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/reactors/reactor_small_rods.obj"));
|
||||
|
||||
//ITER
|
||||
public static final IModelCustom iter = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/iter.obj"));
|
||||
|
||||
//Radar
|
||||
public static final IModelCustom radar_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj"));
|
||||
@ -233,6 +239,16 @@ public class ResourceManager {
|
||||
public static final ResourceLocation reactor_small_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/reactor_small_base.png");
|
||||
public static final ResourceLocation reactor_small_rods_tex = new ResourceLocation(RefStrings.MODID, "textures/models/reactor_small_rods.png");
|
||||
|
||||
//ITER
|
||||
public static final ResourceLocation iter_glass = new ResourceLocation(RefStrings.MODID, "textures/models/iter/glass.png");
|
||||
public static final ResourceLocation iter_microwave = new ResourceLocation(RefStrings.MODID, "textures/models/iter/microwave.png");
|
||||
public static final ResourceLocation iter_motor = new ResourceLocation(RefStrings.MODID, "textures/models/iter/motor.png");
|
||||
public static final ResourceLocation iter_plasma = new ResourceLocation(RefStrings.MODID, "textures/models/iter/plasma.png");
|
||||
public static final ResourceLocation iter_rails = new ResourceLocation(RefStrings.MODID, "textures/models/iter/rails.png");
|
||||
public static final ResourceLocation iter_solenoid = new ResourceLocation(RefStrings.MODID, "textures/models/iter/solenoid.png");
|
||||
public static final ResourceLocation iter_toroidal = new ResourceLocation(RefStrings.MODID, "textures/models/iter/toroidal.png");
|
||||
public static final ResourceLocation iter_torus = new ResourceLocation(RefStrings.MODID, "textures/models/iter/torus.png");
|
||||
|
||||
//Radar
|
||||
public static final ResourceLocation radar_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radar_base.png");
|
||||
public static final ResourceLocation radar_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radar_head.png");
|
||||
|
||||
49
com/hbm/render/tileentity/RenderITERMultiblock.java
Normal file
@ -0,0 +1,49 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class RenderITERMultiblock extends TileEntitySpecialRenderer {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glTranslatef((float)x + 0.5F, (float)y, (float)z + 0.5F);
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.iter_glass);
|
||||
ResourceManager.iter.renderPart("Windows");
|
||||
bindTexture(ResourceManager.iter_motor);
|
||||
ResourceManager.iter.renderPart("Motors");
|
||||
bindTexture(ResourceManager.iter_rails);
|
||||
ResourceManager.iter.renderPart("Rails");
|
||||
bindTexture(ResourceManager.iter_toroidal);
|
||||
ResourceManager.iter.renderPart("Toroidal");
|
||||
bindTexture(ResourceManager.iter_torus);
|
||||
ResourceManager.iter.renderPart("Torus");
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(System.currentTimeMillis() / 5D % 360, 0, 1, 0);
|
||||
bindTexture(ResourceManager.iter_solenoid);
|
||||
ResourceManager.iter.renderPart("Solenoid");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(System.currentTimeMillis() / 50D % 360, 0, 1, 0);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
bindTexture(ResourceManager.iter_plasma);
|
||||
ResourceManager.iter.renderPart("Plasma");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
}
|
||||
81
com/hbm/render/tileentity/RenderLaserMiner.java
Normal file
@ -0,0 +1,81 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.util.BeamPronter;
|
||||
import com.hbm.render.util.BeamPronter.EnumBeamType;
|
||||
import com.hbm.render.util.BeamPronter.EnumWaveType;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineMiningLaser;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.Vec3;
|
||||
|
||||
public class RenderLaserMiner extends TileEntitySpecialRenderer {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interpolation) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5, y, z + 0.5);
|
||||
|
||||
TileEntityMachineMiningLaser laser = (TileEntityMachineMiningLaser)te;
|
||||
|
||||
double tx = (laser.targetX - laser.lastTargetX) * interpolation + laser.lastTargetX;
|
||||
double ty = (laser.targetY - laser.lastTargetY) * interpolation + laser.lastTargetY;
|
||||
double tz = (laser.targetZ - laser.lastTargetZ) * interpolation + laser.lastTargetZ;
|
||||
double vx = tx - laser.xCoord;
|
||||
double vy = ty - laser.yCoord + 1.5;
|
||||
double vz = tz - laser.zCoord;
|
||||
|
||||
Vec3 nVec = Vec3.createVectorHelper(vx, vy, vz);
|
||||
nVec = nVec.normalize();
|
||||
|
||||
double d = 1.5D;
|
||||
nVec.xCoord *= d;
|
||||
nVec.yCoord *= d;
|
||||
nVec.zCoord *= d;
|
||||
|
||||
Vec3 vec = Vec3.createVectorHelper(vx - nVec.xCoord, vy - nVec.yCoord, vz - nVec.zCoord);
|
||||
|
||||
double length = vec.lengthVector();
|
||||
double yaw = Math.toDegrees(Math.atan2(vec.xCoord, vec.zCoord));
|
||||
double sqrt = MathHelper.sqrt_double(vec.xCoord * vec.xCoord + vec.zCoord * vec.zCoord);
|
||||
double pitch = Math.toDegrees(Math.atan2(vec.yCoord, sqrt));
|
||||
//turns out using tan(vec.yCoord, length) was inaccurate,
|
||||
//the emitter wouldn't match the laser perfectly when pointing down
|
||||
|
||||
bindTexture(ResourceManager.universal);
|
||||
ResourceManager.mining_laser.renderPart("Base");
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(yaw, 0, 1, 0);
|
||||
ResourceManager.mining_laser.renderPart("Pivot");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(yaw, 0, 1, 0);
|
||||
GL11.glTranslated(0, -1, 0);
|
||||
GL11.glRotated(pitch + 90, -1, 0, 0);
|
||||
GL11.glTranslated(0, 1, 0);
|
||||
ResourceManager.mining_laser.renderPart("Laser");
|
||||
GL11.glPopMatrix();
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
|
||||
if(laser.beam) {
|
||||
length = vec.lengthVector();
|
||||
GL11.glTranslated(nVec.xCoord, nVec.yCoord - 1, nVec.zCoord);
|
||||
int range = (int)Math.ceil(length * 0.5);
|
||||
//BeamPronter.prontBeam(vec, EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xa00000, 0xa00000, 0, 1, 0F, 8, 0.0625F);
|
||||
BeamPronter.prontBeam(vec, EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xa00000, 0xa00000, (int)te.getWorldObj().getTotalWorldTime() * -25 % 360, range * 2, 0.125F, 4, 0.0625F);
|
||||
BeamPronter.prontBeam(vec, EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xa00000, 0xa00000, (int)te.getWorldObj().getTotalWorldTime() * -25 % 360 + 120, range * 2, 0.125F, 4, 0.0625F);
|
||||
BeamPronter.prontBeam(vec, EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xa00000, 0xa00000, (int)te.getWorldObj().getTotalWorldTime() * -25 % 360 + 240, range * 2, 0.125F, 4, 0.0625F);
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
}
|
||||
@ -23,6 +23,7 @@ public class BeamPronter {
|
||||
public static void prontBeam(Vec3 skeleton, EnumWaveType wave, EnumBeamType beam, int outerColor, int innerColor, int start, int segments, float size, int layers, float thickness) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glDepthMask(false);
|
||||
|
||||
float sYaw = (float)(Math.atan2(skeleton.xCoord, skeleton.zCoord) * 180F / Math.PI);
|
||||
float sqrt = MathHelper.sqrt_double(skeleton.xCoord * skeleton.xCoord + skeleton.zCoord * skeleton.zCoord);
|
||||
@ -141,6 +142,7 @@ public class BeamPronter {
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glPopMatrix();
|
||||
GL11.glDepthMask(true);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
36
com/hbm/tileentity/machine/TileEntityITERStruct.java
Normal file
@ -0,0 +1,36 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
|
||||
public class TileEntityITERStruct extends TileEntity {
|
||||
|
||||
int age;
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(worldObj.isRemote)
|
||||
return;
|
||||
|
||||
age++;
|
||||
|
||||
if(age < 20)
|
||||
return;
|
||||
|
||||
age = 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
return TileEntity.INFINITE_EXTENT_AABB;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared() {
|
||||
return 65536.0D;
|
||||
}
|
||||
}
|
||||
184
com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java
Normal file
@ -0,0 +1,184 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
|
||||
public class TileEntityMachineMiningLaser extends TileEntityMachineBase {
|
||||
|
||||
public long power;
|
||||
public static final long maxPower = 1000000;
|
||||
public static final int consumption = 10000;
|
||||
|
||||
public int targetX;
|
||||
public int targetY;
|
||||
public int targetZ;
|
||||
public int lastTargetX;
|
||||
public int lastTargetY;
|
||||
public int lastTargetZ;
|
||||
public boolean beam;
|
||||
boolean lock = false;
|
||||
double breakProgress;
|
||||
|
||||
public TileEntityMachineMiningLaser() {
|
||||
super(30);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "container.miningLaser";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
power = Library.chargeTEFromItems(slots, 0, power, maxPower);
|
||||
|
||||
//reset progress if the position changes
|
||||
if(lastTargetX != targetX ||
|
||||
lastTargetY != targetY ||
|
||||
lastTargetZ != targetZ)
|
||||
breakProgress = 0;
|
||||
|
||||
//set last positions for interpolation and the like
|
||||
lastTargetX = targetX;
|
||||
lastTargetY = targetY;
|
||||
lastTargetZ = targetZ;
|
||||
|
||||
for(int i = 0; i < 1; i++) {
|
||||
if(targetY <= 0)
|
||||
targetY = yCoord -1;
|
||||
|
||||
scan();
|
||||
|
||||
if(beam && canBreak(worldObj.getBlock(targetX, targetY, targetZ))) {
|
||||
|
||||
breakProgress += getSpeed();
|
||||
|
||||
if(breakProgress < 1) {
|
||||
worldObj.destroyBlockInWorldPartially(-1, targetX, targetY, targetZ, (int) Math.floor(breakProgress * 10));
|
||||
} else {
|
||||
worldObj.func_147480_a(targetX, targetY, targetZ, false);
|
||||
breakProgress = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setInteger("lastX", lastTargetX);
|
||||
data.setInteger("lastY", lastTargetY);
|
||||
data.setInteger("lastZ", lastTargetZ);
|
||||
data.setInteger("x", targetX);
|
||||
data.setInteger("y", targetY);
|
||||
data.setInteger("z", targetZ);
|
||||
data.setBoolean("beam", beam);
|
||||
|
||||
this.networkPack(data, 250);
|
||||
}
|
||||
}
|
||||
|
||||
public void networkUnpack(NBTTagCompound data) {
|
||||
|
||||
this.lastTargetX = data.getInteger("lastX");
|
||||
this.lastTargetY = data.getInteger("lastY");
|
||||
this.lastTargetZ = data.getInteger("lastZ");
|
||||
this.targetX = data.getInteger("x");
|
||||
this.targetY = data.getInteger("y");
|
||||
this.targetZ = data.getInteger("z");
|
||||
this.beam = data.getBoolean("beam");
|
||||
}
|
||||
|
||||
public double getSpeed() {
|
||||
|
||||
float hardness = worldObj.getBlock(targetX, targetY, targetZ).getBlockHardness(worldObj, targetX, targetY, targetZ) * 10;
|
||||
|
||||
if(hardness == 0)
|
||||
return 1;
|
||||
|
||||
return 1 / hardness;
|
||||
}
|
||||
|
||||
public void scan() {
|
||||
|
||||
int range = getRange();
|
||||
|
||||
for(int x = -range; x <= range; x++) {
|
||||
for(int z = -range; z <= range; z++) {
|
||||
|
||||
if(canBreak(worldObj.getBlock(x + xCoord, targetY, z + zCoord))) {
|
||||
targetX = x + xCoord;
|
||||
targetZ = z + zCoord;
|
||||
beam = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
beam = false;
|
||||
targetY--;
|
||||
}
|
||||
|
||||
private boolean canBreak(Block block) {
|
||||
return block != Blocks.air && block != Blocks.water && block != Blocks.flowing_water;
|
||||
}
|
||||
|
||||
/*public int targetHeight(int x, int z) {
|
||||
|
||||
for(int y = yCoord - 1; y > 0; y--) {
|
||||
|
||||
if(worldObj.getBlock(x, y, z) != Blocks.air)
|
||||
return y;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}*/
|
||||
|
||||
public int getRange() {
|
||||
|
||||
return 20;
|
||||
|
||||
/*int range = 1;
|
||||
|
||||
for(int i = 1; i < 9; i++) {
|
||||
|
||||
if(slots[i] != null) {
|
||||
|
||||
if(slots[i].getItem() == ModItems.upgrade_effect_1)
|
||||
range += 2;
|
||||
else if(slots[i].getItem() == ModItems.upgrade_effect_2)
|
||||
range += 4;
|
||||
else if(slots[i].getItem() == ModItems.upgrade_effect_3)
|
||||
range += 6;
|
||||
}
|
||||
}
|
||||
|
||||
return Math.min(range, 26);*/
|
||||
}
|
||||
|
||||
public int getWidth() {
|
||||
|
||||
return 1 + getRange() * 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
return TileEntity.INFINITE_EXTENT_AABB;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared()
|
||||
{
|
||||
return 65536.0D;
|
||||
}
|
||||
|
||||
}
|
||||