diff --git a/assets/hbm/models/cel_prime_battery.obj b/assets/hbm/models/cel_prime_battery.obj new file mode 100644 index 000000000..504947834 --- /dev/null +++ b/assets/hbm/models/cel_prime_battery.obj @@ -0,0 +1,127 @@ +# Blender v2.76 (sub 0) OBJ File: 'cel_prime_battery.blend' +# www.blender.org +o Cube.004_Cube.005 +v -0.500000 0.000000 -1.500000 +v -0.500000 5.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v 1.500000 4.000000 -1.500000 +v -0.500000 0.000000 1.500000 +v -0.500000 5.000000 1.500000 +v 1.500000 0.000000 1.500000 +v 1.500000 4.000000 1.500000 +v 1.500000 3.800000 -1.350000 +v 1.500000 0.200000 -1.350000 +v 1.500000 3.800000 1.350000 +v 1.500000 0.200000 1.350000 +v 0.500000 3.800000 -1.350000 +v 0.500000 0.200000 -1.350000 +v 0.500000 3.800000 1.350000 +v 0.500000 0.200000 1.350000 +v 1.500000 0.200000 1.099999 +v 1.500000 1.600000 1.099999 +v 0.500000 0.200000 1.100000 +v 0.500000 1.600000 1.100000 +v 1.500000 0.200000 0.100000 +v 1.500000 1.600000 0.100000 +v 0.500000 0.200000 0.100000 +v 0.500000 1.600000 0.100000 +v 1.500000 0.200000 -0.100001 +v 1.500000 1.600000 -0.100001 +v 0.500000 0.200000 -0.100000 +v 0.500000 1.600000 -0.100000 +v 1.500000 0.200000 -1.100001 +v 1.500000 1.600000 -1.100001 +v 0.500000 0.200000 -1.100000 +v 0.500000 1.600000 -1.100000 +v 1.500000 1.700000 -0.100001 +v 1.500000 3.100000 -0.100001 +v 0.500000 1.700000 -0.100000 +v 0.500000 3.100000 -0.100000 +v 1.500000 1.700000 -1.100001 +v 1.500000 3.100000 -1.100001 +v 0.500000 1.700000 -1.100000 +v 0.500000 3.100000 -1.100000 +v 1.500000 1.700000 1.099999 +v 1.500000 3.100000 1.099999 +v 0.500000 1.700000 1.100000 +v 0.500000 3.100000 1.100000 +v 1.500000 1.700000 0.100000 +v 1.500000 3.100000 0.100000 +v 0.500000 1.700000 0.100000 +v 0.500000 3.100000 0.100000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 -0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.447200 0.894400 0.000000 +vn 0.000000 1.000000 0.000000 +s off +f 4//1 3//1 1//1 +f 3//2 10//2 12//2 +f 8//3 6//3 5//3 +f 2//4 1//4 5//4 +f 3//5 7//5 5//5 +f 8//6 4//6 2//6 +f 10//7 14//7 16//7 +f 8//2 11//2 9//2 +f 4//2 9//2 10//2 +f 7//2 12//2 11//2 +f 15//2 16//2 14//2 +f 11//5 15//5 13//5 +f 12//1 16//1 15//1 +f 9//3 13//3 14//3 +f 20//3 19//3 17//3 +f 24//4 23//4 19//4 +f 22//1 21//1 23//1 +f 18//2 17//2 21//2 +f 19//5 23//5 21//5 +f 22//7 24//7 20//7 +f 28//3 27//3 25//3 +f 30//1 29//1 31//1 +f 26//2 25//2 29//2 +f 32//7 28//7 26//7 +f 36//3 35//3 33//3 +f 38//1 37//1 39//1 +f 34//2 33//2 37//2 +f 40//7 36//7 34//7 +f 44//3 43//3 41//3 +f 46//1 45//1 47//1 +f 42//2 41//2 45//2 +f 46//7 48//7 44//7 +f 43//5 47//5 45//5 +f 39//5 37//5 33//5 +f 2//1 4//1 1//1 +f 7//2 3//2 12//2 +f 7//3 8//3 5//3 +f 6//4 2//4 5//4 +f 1//5 3//5 5//5 +f 6//6 8//6 2//6 +f 12//7 10//7 16//7 +f 4//2 8//2 9//2 +f 3//2 4//2 10//2 +f 8//2 7//2 11//2 +f 13//2 15//2 14//2 +f 9//5 11//5 13//5 +f 11//1 12//1 15//1 +f 10//3 9//3 14//3 +f 18//3 20//3 17//3 +f 20//4 24//4 19//4 +f 24//1 22//1 23//1 +f 22//2 18//2 21//2 +f 17//5 19//5 21//5 +f 18//7 22//7 20//7 +f 26//3 28//3 25//3 +f 32//1 30//1 31//1 +f 30//2 26//2 29//2 +f 30//7 32//7 26//7 +f 34//3 36//3 33//3 +f 40//1 38//1 39//1 +f 38//2 34//2 37//2 +f 38//7 40//7 34//7 +f 42//3 44//3 41//3 +f 48//1 46//1 47//1 +f 46//2 42//2 45//2 +f 42//7 46//7 44//7 +f 41//5 43//5 45//5 +f 35//5 39//5 33//5 diff --git a/assets/hbm/models/cel_prime_port.obj b/assets/hbm/models/cel_prime_port.obj new file mode 100644 index 000000000..300372f6b --- /dev/null +++ b/assets/hbm/models/cel_prime_port.obj @@ -0,0 +1,75 @@ +# Blender v2.76 (sub 0) OBJ File: 'cel_prime_port.blend' +# www.blender.org +o Cube.002_Cube.003 +v -0.500000 0.000000 -1.500000 +v -0.500000 5.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v 1.500000 4.000000 -1.500000 +v -0.500000 0.000000 1.500000 +v -0.500000 5.000000 1.500000 +v 1.500000 0.000000 1.500000 +v 1.500000 4.000000 1.500000 +v 1.400000 0.343750 -0.156250 +v 1.400000 0.656250 -0.156250 +v 1.400000 0.343750 0.156250 +v 1.400000 0.656250 0.156250 +v 1.500000 0.050000 -0.450000 +v 1.500000 0.950000 -0.450000 +v 1.500000 0.050000 0.450000 +v 1.500000 0.950000 0.450000 +v 1.400000 0.050000 0.450000 +v 1.400000 0.050000 -0.450000 +v 1.400000 0.950000 -0.450000 +v 1.400000 0.950000 0.450000 +v 1.500000 0.343750 0.156250 +v 1.500000 0.343750 -0.156250 +v 1.500000 0.656250 -0.156250 +v 1.500000 0.656250 0.156250 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.447200 0.894400 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 1.000000 0.000000 +s off +f 4//1 3//1 1//1 +f 8//2 6//2 5//2 +f 2//3 1//3 5//3 +f 3//4 7//4 5//4 +f 8//5 4//5 2//5 +f 11//3 12//3 10//3 +f 16//4 20//4 19//4 +f 3//6 13//6 15//6 +f 7//6 15//6 16//6 +f 14//6 13//6 3//6 +f 16//6 14//6 4//6 +f 19//6 20//6 17//6 +f 13//7 18//7 17//7 +f 15//1 17//1 20//1 +f 14//2 19//2 18//2 +f 23//6 24//6 21//6 +f 12//7 24//7 23//7 +f 9//4 22//4 21//4 +f 11//2 21//2 24//2 +f 10//1 23//1 22//1 +f 2//1 4//1 1//1 +f 7//2 8//2 5//2 +f 6//3 2//3 5//3 +f 1//4 3//4 5//4 +f 6//5 8//5 2//5 +f 9//3 11//3 10//3 +f 14//4 16//4 19//4 +f 7//6 3//6 15//6 +f 8//6 7//6 16//6 +f 4//6 14//6 3//6 +f 8//6 16//6 4//6 +f 18//6 19//6 17//6 +f 15//7 13//7 17//7 +f 16//1 15//1 20//1 +f 13//2 14//2 18//2 +f 22//6 23//6 21//6 +f 10//7 12//7 23//7 +f 11//4 9//4 21//4 +f 12//2 11//2 24//2 +f 9//1 10//1 22//1 diff --git a/assets/hbm/models/cel_prime_tanks.obj b/assets/hbm/models/cel_prime_tanks.obj new file mode 100644 index 000000000..2b060d409 --- /dev/null +++ b/assets/hbm/models/cel_prime_tanks.obj @@ -0,0 +1,151 @@ +# Blender v2.76 (sub 0) OBJ File: 'cel_prime_tanks.blend' +# www.blender.org +o Cube.003_Cube.004 +v -0.500000 0.000000 -1.500000 +v -0.500000 5.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v 1.500000 4.000000 -1.500000 +v -0.500000 0.000000 1.500000 +v -0.500000 5.000000 1.500000 +v 1.500000 0.000000 1.500000 +v 1.500000 4.000000 1.500000 +v 1.500000 3.800000 -1.350000 +v 1.500000 0.200000 -1.350000 +v 1.500000 3.800000 1.350000 +v 1.500000 0.200000 1.350000 +v 0.000000 3.800000 -1.350000 +v 0.000000 0.200000 -1.350000 +v 0.000000 3.800000 1.350000 +v 0.000000 0.200000 1.350000 +v 0.750000 3.800000 -1.100000 +v 0.750000 0.200000 -1.100000 +v 0.750000 0.200000 0.100000 +v 0.750000 3.800000 0.100000 +v 1.103553 0.200000 0.246447 +v 1.103553 3.800000 0.246447 +v 1.250000 0.200000 0.600000 +v 1.250000 3.800000 0.600000 +v 1.103553 0.200000 0.953553 +v 1.103553 3.800000 0.953553 +v 0.750000 0.200000 1.100000 +v 0.750000 3.800000 1.100000 +v 0.396446 0.200000 0.953553 +v 0.396446 3.800000 0.953553 +v 0.250000 0.200000 0.600000 +v 0.250000 3.800000 0.600000 +v 0.396446 0.200000 0.246447 +v 0.396446 3.800000 0.246447 +v 1.103553 0.200000 -0.953553 +v 1.103553 3.800000 -0.953553 +v 1.250000 0.200000 -0.600000 +v 1.250000 3.800000 -0.600000 +v 1.103553 0.200000 -0.246447 +v 1.103553 3.800000 -0.246447 +v 0.750000 0.200000 -0.100000 +v 0.750000 3.800000 -0.100000 +v 0.396446 0.200000 -0.246447 +v 0.396446 3.800000 -0.246447 +v 0.250000 0.200000 -0.600000 +v 0.250000 3.800000 -0.600000 +v 0.396446 0.200000 -0.953553 +v 0.396446 3.800000 -0.953553 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.447200 0.894400 0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.923900 0.000000 0.382700 +vn 0.382700 0.000000 -0.923900 +vn -0.382700 0.000000 0.923900 +vn 0.923900 0.000000 -0.382700 +vn 0.382700 0.000000 0.923900 +vn 0.923900 0.000000 0.382700 +vn -0.923900 0.000000 -0.382700 +vn -0.382700 0.000000 -0.923900 +s off +f 4//1 3//1 1//1 +f 7//2 12//2 11//2 +f 8//3 6//3 5//3 +f 2//4 1//4 5//4 +f 3//5 7//5 5//5 +f 8//6 4//6 2//6 +f 12//1 16//1 15//1 +f 3//2 10//2 12//2 +f 8//2 11//2 9//2 +f 4//2 9//2 10//2 +f 15//2 16//2 14//2 +f 9//3 13//3 14//3 +f 10//7 14//7 16//7 +f 11//5 15//5 13//5 +f 44//8 46//8 45//8 +f 20//9 22//9 21//9 +f 42//10 44//10 43//10 +f 22//11 24//11 23//11 +f 40//12 42//12 41//12 +f 24//13 26//13 25//13 +f 39//5 45//5 47//5 +f 38//13 40//13 39//13 +f 26//12 28//12 27//12 +f 46//14 48//14 47//14 +f 36//11 38//11 37//11 +f 28//10 30//10 29//10 +f 48//15 17//15 18//15 +f 17//9 36//9 35//9 +f 30//8 32//8 31//8 +f 32//7 28//7 24//7 +f 34//15 20//15 19//15 +f 32//14 34//14 33//14 +f 46//7 42//7 17//7 +f 25//5 31//5 33//5 +f 2//1 4//1 1//1 +f 8//2 7//2 11//2 +f 7//3 8//3 5//3 +f 6//4 2//4 5//4 +f 1//5 3//5 5//5 +f 6//6 8//6 2//6 +f 11//1 12//1 15//1 +f 7//2 3//2 12//2 +f 4//2 8//2 9//2 +f 3//2 4//2 10//2 +f 13//2 15//2 14//2 +f 10//3 9//3 14//3 +f 12//7 10//7 16//7 +f 9//5 11//5 13//5 +f 43//8 44//8 45//8 +f 19//9 20//9 21//9 +f 41//10 42//10 43//10 +f 21//11 22//11 23//11 +f 39//12 40//12 41//12 +f 23//13 24//13 25//13 +f 47//5 18//5 39//5 +f 35//5 37//5 39//5 +f 39//5 41//5 43//5 +f 43//5 45//5 39//5 +f 18//5 35//5 39//5 +f 37//13 38//13 39//13 +f 25//12 26//12 27//12 +f 45//14 46//14 47//14 +f 35//11 36//11 37//11 +f 27//10 28//10 29//10 +f 47//15 48//15 18//15 +f 18//9 17//9 35//9 +f 29//8 30//8 31//8 +f 24//7 22//7 32//7 +f 20//7 34//7 32//7 +f 32//7 30//7 28//7 +f 28//7 26//7 24//7 +f 22//7 20//7 32//7 +f 33//15 34//15 19//15 +f 31//14 32//14 33//14 +f 38//7 36//7 17//7 +f 17//7 48//7 46//7 +f 46//7 44//7 42//7 +f 42//7 40//7 38//7 +f 38//7 17//7 42//7 +f 33//5 19//5 21//5 +f 21//5 23//5 25//5 +f 25//5 27//5 29//5 +f 29//5 31//5 25//5 +f 33//5 21//5 25//5 diff --git a/assets/hbm/models/cel_prime_terminal.obj b/assets/hbm/models/cel_prime_terminal.obj new file mode 100644 index 000000000..e17e2e075 --- /dev/null +++ b/assets/hbm/models/cel_prime_terminal.obj @@ -0,0 +1,77 @@ +# Blender v2.76 (sub 0) OBJ File: 'cel_prime_terminal.blend' +# www.blender.org +o Cube.001_Cube.002 +v -0.500000 0.000000 -1.500000 +v -0.500000 5.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v 1.500000 4.000000 -1.500000 +v -0.500000 0.000000 1.500000 +v -0.500000 5.000000 1.500000 +v 1.500000 0.000000 1.500000 +v 1.500000 4.000000 1.500000 +v 1.500000 1.500000 -0.500000 +v 1.500000 2.500000 -0.500000 +v 1.750000 1.500000 -0.500000 +v 1.750000 2.500000 -0.500000 +v 1.500000 1.500000 0.500000 +v 1.500000 2.500000 0.500000 +v 1.750000 1.500000 0.500000 +v 1.750000 2.500000 0.500000 +v 1.750000 1.250000 -0.500000 +v 1.500000 1.250000 -0.500000 +v 1.750000 1.250000 0.500000 +v 1.500000 1.250000 0.500000 +v 2.250000 1.300000 0.500000 +v 2.250000 1.300000 -0.500000 +v 2.250000 1.050000 0.500000 +v 2.250000 1.050000 -0.500000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 -0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.447200 0.894400 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.371400 0.928500 0.000000 +vn -0.371400 -0.928500 0.000000 +s off +f 4//1 3//1 1//1 +f 8//2 7//2 3//2 +f 8//3 6//3 5//3 +f 2//4 1//4 5//4 +f 3//5 7//5 5//5 +f 8//6 4//6 2//6 +f 12//1 11//1 9//1 +f 16//2 15//2 11//2 +f 14//3 13//3 15//3 +f 10//4 9//4 13//4 +f 11//1 17//1 18//1 +f 16//7 12//7 10//7 +f 17//5 19//5 20//5 +f 19//3 23//3 21//3 +f 9//4 18//4 20//4 +f 13//3 20//3 19//3 +f 21//2 23//2 24//2 +f 17//1 11//1 22//1 +f 15//8 21//8 22//8 +f 17//9 24//9 23//9 +f 2//1 4//1 1//1 +f 4//2 8//2 3//2 +f 7//3 8//3 5//3 +f 6//4 2//4 5//4 +f 1//5 3//5 5//5 +f 6//6 8//6 2//6 +f 10//1 12//1 9//1 +f 12//2 16//2 11//2 +f 16//3 14//3 15//3 +f 14//4 10//4 13//4 +f 9//1 11//1 18//1 +f 14//7 16//7 10//7 +f 18//5 17//5 20//5 +f 15//3 19//3 21//3 +f 13//4 9//4 20//4 +f 15//3 13//3 19//3 +f 22//2 21//2 24//2 +f 24//1 17//1 22//1 +f 11//8 15//8 22//8 +f 19//9 17//9 23//9 diff --git a/assets/hbm/models/cel_prime_tower.obj b/assets/hbm/models/cel_prime_tower.obj new file mode 100644 index 000000000..e05e1bcad --- /dev/null +++ b/assets/hbm/models/cel_prime_tower.obj @@ -0,0 +1,281 @@ +# Blender v2.76 (sub 0) OBJ File: 'cel_prime_tower.blend' +# www.blender.org +o Cube_Cube.001 +v 1.500000 0.000000 1.500000 +v 1.500000 5.000000 1.500000 +v 1.500000 0.000000 -1.500000 +v 1.500000 5.000000 -1.500000 +v -1.500000 0.000000 1.500000 +v -1.500000 5.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v -1.500000 5.000000 -1.500000 +v 1.500000 4.750000 1.350000 +v 1.500000 0.250000 1.350000 +v 1.500000 0.250000 -1.350000 +v 1.500000 4.750000 -1.350000 +v 1.350000 4.750000 -1.500000 +v 1.350000 0.250000 -1.500000 +v -1.350000 0.250000 -1.500000 +v -1.350000 4.750000 -1.500000 +v -1.500000 4.750000 -1.350000 +v -1.500000 0.250000 -1.350000 +v -1.500000 0.250000 1.350000 +v -1.500000 4.750000 1.350000 +v -1.350000 4.750000 1.500000 +v -1.350000 0.250000 1.500000 +v 1.350000 0.250000 1.500000 +v 1.350000 4.750000 1.500000 +v 1.350000 4.750000 1.350000 +v 1.350000 0.250000 1.350000 +v 1.350000 0.250000 -1.350000 +v 1.350000 4.750000 -1.350000 +v 1.350000 4.750000 -1.350000 +v 1.350000 0.250000 -1.350000 +v -1.350000 0.250000 -1.350000 +v -1.350000 4.750000 -1.350000 +v -1.350000 4.750000 -1.350000 +v -1.350000 0.250000 -1.350000 +v -1.350000 0.250000 1.350000 +v -1.350000 4.750000 1.350000 +v -1.350000 4.750000 1.350000 +v -1.350000 0.250000 1.350000 +v 1.350000 0.250000 1.350000 +v 1.350000 4.750000 1.350000 +v -1.000000 7.000000 1.000000 +v 1.000000 7.000000 1.000000 +v -1.000000 7.000000 -1.000000 +v 1.000000 7.000000 -1.000000 +v 0.265165 8.000000 -0.265165 +v -0.000000 8.000000 -0.375000 +v 0.000000 8.000000 -0.500000 +v 0.000000 12.000000 -0.500000 +v 0.353553 8.000000 -0.353553 +v 0.353553 12.000000 -0.353553 +v 0.500000 8.000000 0.000000 +v 0.500000 12.000000 0.000000 +v 0.353553 8.000000 0.353553 +v 0.353553 12.000000 0.353553 +v -0.000000 8.000000 0.500000 +v -0.000000 12.000000 0.500000 +v -0.353553 8.000000 0.353553 +v -0.353553 12.000000 0.353553 +v -0.500000 8.000000 -0.000000 +v -0.500000 12.000000 -0.000000 +v -0.353553 8.000000 -0.353553 +v -0.353553 12.000000 -0.353553 +v 0.265165 12.000000 -0.265165 +v -0.000000 12.000000 -0.375000 +v 0.375000 8.000000 0.000000 +v 0.375000 12.000000 0.000000 +v 0.265165 8.000000 0.265165 +v 0.265165 12.000000 0.265165 +v -0.000000 8.000000 0.375000 +v -0.000000 12.000000 0.375000 +v -0.265165 8.000000 0.265165 +v -0.265165 12.000000 0.265165 +v -0.375000 8.000000 -0.000000 +v -0.375000 12.000000 -0.000000 +v -0.265165 8.000000 -0.265165 +v -0.265165 12.000000 -0.265165 +v -0.500000 7.000000 -0.500000 +v -0.500000 10.000000 -0.500000 +v -0.500000 7.000000 -1.000000 +v -0.500000 10.500000 -1.000000 +v 0.500000 7.000000 -0.500000 +v 0.500000 10.000000 -0.500000 +v 0.500000 7.000000 -1.000000 +v 0.500000 10.500000 -1.000000 +v -0.500000 10.353554 -0.146447 +v -0.500000 10.853554 -0.646447 +v 0.500000 10.853554 -0.646447 +v 0.500000 10.353554 -0.146447 +vn 0.000000 -1.000000 0.000000 +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.970100 0.242500 0.000000 +vn 0.000000 0.242500 -0.970100 +vn -0.970100 0.242500 0.000000 +vn 0.000000 0.242500 0.970100 +vn 0.382700 0.000000 -0.923900 +vn 0.923900 0.000000 -0.382700 +vn 0.923900 0.000000 0.382700 +vn 0.382700 0.000000 0.923900 +vn -0.382700 0.000000 0.923900 +vn -0.923900 0.000000 0.382700 +vn -0.382700 0.000000 -0.923900 +vn -0.923900 0.000000 -0.382700 +vn 0.000000 0.707100 -0.707100 +vn 0.000000 0.707100 0.707100 +vn 0.000000 -0.707100 0.707100 +s off +f 5//1 7//1 3//1 +f 10//2 9//2 2//2 +f 11//2 10//2 1//2 +f 12//2 11//2 3//2 +f 9//2 12//2 4//2 +f 14//3 13//3 4//3 +f 15//3 14//3 3//3 +f 16//3 15//3 7//3 +f 13//3 16//3 8//3 +f 18//4 17//4 8//4 +f 19//4 18//4 7//4 +f 20//4 19//4 5//4 +f 17//4 20//4 6//4 +f 22//5 21//5 6//5 +f 23//5 22//5 5//5 +f 24//5 23//5 1//5 +f 21//5 24//5 2//5 +f 26//2 27//2 28//2 +f 26//3 25//3 9//3 +f 27//6 26//6 10//6 +f 28//5 27//5 11//5 +f 25//1 28//1 12//1 +f 30//3 31//3 32//3 +f 30//4 29//4 13//4 +f 31//6 30//6 14//6 +f 32//2 31//2 15//2 +f 29//1 32//1 16//1 +f 34//4 35//4 36//4 +f 34//5 33//5 17//5 +f 35//6 34//6 18//6 +f 36//3 35//3 19//3 +f 33//1 36//1 20//1 +f 38//5 39//5 40//5 +f 38//2 37//2 21//2 +f 39//6 38//6 22//6 +f 40//4 39//4 23//4 +f 37//1 40//1 24//1 +f 42//6 44//6 43//6 +f 44//7 42//7 2//7 +f 43//8 44//8 4//8 +f 41//9 43//9 8//9 +f 42//10 41//10 6//10 +f 56//6 70//6 72//6 +f 52//6 66//6 68//6 +f 48//11 50//11 49//11 +f 55//1 69//1 67//1 +f 47//1 46//1 75//1 +f 50//12 52//12 51//12 +f 49//1 45//1 46//1 +f 59//1 73//1 71//1 +f 52//13 54//13 53//13 +f 62//6 76//6 64//6 +f 51//1 53//1 67//1 +f 54//14 56//14 55//14 +f 57//1 71//1 69//1 +f 76//14 75//14 46//14 +f 56//15 58//15 57//15 +f 51//1 65//1 45//1 +f 74//13 73//13 75//13 +f 58//16 60//16 59//16 +f 60//6 74//6 76//6 +f 62//17 48//17 47//17 +f 60//18 62//18 61//18 +f 50//6 63//6 66//6 +f 60//6 58//6 72//6 +f 54//6 68//6 70//6 +f 59//1 61//1 75//1 +f 48//6 64//6 63//6 +f 64//15 46//15 45//15 +f 63//16 45//16 65//16 +f 66//18 65//18 67//18 +f 68//17 67//17 69//17 +f 70//11 69//11 71//11 +f 72//12 71//12 73//12 +f 78//4 80//4 79//4 +f 84//3 83//3 79//3 +f 82//2 81//2 83//2 +f 78//5 77//5 81//5 +f 79//1 83//1 81//1 +f 80//19 86//19 87//19 +f 87//20 86//20 85//20 +f 84//2 87//2 88//2 +f 80//4 78//4 85//4 +f 82//21 88//21 85//21 +f 1//1 5//1 3//1 +f 1//2 10//2 2//2 +f 3//2 11//2 1//2 +f 4//2 12//2 3//2 +f 2//2 9//2 4//2 +f 3//3 14//3 4//3 +f 7//3 15//3 3//3 +f 8//3 16//3 7//3 +f 4//3 13//3 8//3 +f 7//4 18//4 8//4 +f 5//4 19//4 7//4 +f 6//4 20//4 5//4 +f 8//4 17//4 6//4 +f 5//5 22//5 6//5 +f 1//5 23//5 5//5 +f 2//5 24//5 1//5 +f 6//5 21//5 2//5 +f 25//2 26//2 28//2 +f 10//3 26//3 9//3 +f 11//6 27//6 10//6 +f 12//5 28//5 11//5 +f 9//1 25//1 12//1 +f 29//3 30//3 32//3 +f 14//4 30//4 13//4 +f 15//6 31//6 14//6 +f 16//2 32//2 15//2 +f 13//1 29//1 16//1 +f 33//4 34//4 36//4 +f 18//5 34//5 17//5 +f 19//6 35//6 18//6 +f 20//3 36//3 19//3 +f 17//1 33//1 20//1 +f 37//5 38//5 40//5 +f 22//2 38//2 21//2 +f 23//6 39//6 22//6 +f 24//4 40//4 23//4 +f 21//1 37//1 24//1 +f 41//6 42//6 43//6 +f 4//7 44//7 2//7 +f 8//8 43//8 4//8 +f 6//9 41//9 8//9 +f 2//10 42//10 6//10 +f 58//6 56//6 72//6 +f 54//6 52//6 68//6 +f 47//11 48//11 49//11 +f 53//1 55//1 67//1 +f 61//1 47//1 75//1 +f 49//12 50//12 51//12 +f 47//1 49//1 46//1 +f 57//1 59//1 71//1 +f 51//13 52//13 53//13 +f 48//6 62//6 64//6 +f 65//1 51//1 67//1 +f 53//14 54//14 55//14 +f 55//1 57//1 69//1 +f 64//14 76//14 46//14 +f 55//15 56//15 57//15 +f 49//1 51//1 45//1 +f 76//13 74//13 75//13 +f 57//16 58//16 59//16 +f 62//6 60//6 76//6 +f 61//17 62//17 47//17 +f 59//18 60//18 61//18 +f 52//6 50//6 66//6 +f 74//6 60//6 72//6 +f 56//6 54//6 70//6 +f 73//1 59//1 75//1 +f 50//6 48//6 63//6 +f 63//15 64//15 45//15 +f 66//16 63//16 65//16 +f 68//18 66//18 67//18 +f 70//17 68//17 69//17 +f 72//11 70//11 71//11 +f 74//12 72//12 73//12 +f 77//4 78//4 79//4 +f 80//3 84//3 79//3 +f 84//2 82//2 83//2 +f 82//5 78//5 81//5 +f 77//1 79//1 81//1 +f 84//19 80//19 87//19 +f 88//20 87//20 85//20 +f 82//2 84//2 88//2 +f 86//4 80//4 85//4 +f 78//21 82//21 85//21 diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index 75bccf829..c79b7e4ed 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -219,6 +219,13 @@ public class ModBlocks { public static Block bomb_multi; public static final int guiID_bomb_multi = 10; + public static Block cel_prime; + public static final int guiID_cel_prime = 62; + public static Block cel_prime_terminal; + public static Block cel_prime_battery; + public static Block cel_prime_port; + public static Block cel_prime_tanks; + public static Block machine_difurnace_off; public static Block machine_difurnace_on; public static final int guiID_test_difurnace = 1; @@ -626,6 +633,12 @@ public class ModBlocks { nuke_custom = new NukeCustom(Material.iron).setBlockName("nuke_custom").setCreativeTab(MainRegistry.tabNuke).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":custom"); nuke_solinium = new NukeSolinium(Material.iron).setBlockName("nuke_solinium").setCreativeTab(MainRegistry.tabNuke).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_solinium"); nuke_n2 = new NukeN2(Material.iron).setBlockName("nuke_n2").setCreativeTab(MainRegistry.tabNuke).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n2"); + + cel_prime = new CelPrime(Material.iron).setBlockName("cel_prime").setCreativeTab(MainRegistry.tabNuke).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime"); + cel_prime_terminal = new CelPrimePart(Material.iron).setBlockName("cel_prime_terminal").setCreativeTab(MainRegistry.tabNuke).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime_terminal"); + cel_prime_battery = new CelPrimePart(Material.iron).setBlockName("cel_prime_battery").setCreativeTab(MainRegistry.tabNuke).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime_battery"); + cel_prime_port = new CelPrimePart(Material.iron).setBlockName("cel_prime_port").setCreativeTab(MainRegistry.tabNuke).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime_port"); + cel_prime_tanks = new CelPrimePart(Material.iron).setBlockName("cel_prime_tanks").setCreativeTab(MainRegistry.tabNuke).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime_tanks"); bomb_multi = new BombMulti(Material.iron).setBlockName("bomb_multi").setCreativeTab(MainRegistry.tabNuke).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi1"); //bomb_multi_large = new BombMultiLarge(Material.iron).setBlockName("bomb_multi_large").setCreativeTab(MainRegistry.tabNuke).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi_large"); @@ -1017,6 +1030,13 @@ public class ModBlocks { GameRegistry.registerBlock(turret_cwis, turret_cwis.getUnlocalizedName()); GameRegistry.registerBlock(turret_cheapo, turret_cheapo.getUnlocalizedName()); + //Wot + GameRegistry.registerBlock(cel_prime, cel_prime.getUnlocalizedName()); + GameRegistry.registerBlock(cel_prime_terminal, cel_prime_terminal.getUnlocalizedName()); + GameRegistry.registerBlock(cel_prime_battery, cel_prime_battery.getUnlocalizedName()); + GameRegistry.registerBlock(cel_prime_port, cel_prime_port.getUnlocalizedName()); + GameRegistry.registerBlock(cel_prime_tanks, cel_prime_tanks.getUnlocalizedName()); + //Block Bombs GameRegistry.registerBlock(flame_war, flame_war.getUnlocalizedName()); GameRegistry.registerBlock(float_bomb, float_bomb.getUnlocalizedName()); diff --git a/com/hbm/blocks/bomb/CelPrime.java b/com/hbm/blocks/bomb/CelPrime.java new file mode 100644 index 000000000..a9d2c5d5d --- /dev/null +++ b/com/hbm/blocks/bomb/CelPrime.java @@ -0,0 +1,84 @@ +package com.hbm.blocks.bomb; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.bomb.TileEntityCelPrime; +import com.hbm.tileentity.bomb.TileEntityNukeN2; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class CelPrime extends BlockContainer { + + public CelPrime(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityCelPrime(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) + { + return true; + } else if(!player.isSneaking()) + { + TileEntityCelPrime entity = (TileEntityCelPrime) world.getTileEntity(x, y, z); + if(entity != null) + { + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_cel_prime, world, x, y, z); + } + return true; + } else { + return false; + } + } + + @Override + public int getRenderType(){ + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) + { + world.setBlockMetadataWithNotify(x, y, z, 5, 2); + } + if(i == 1) + { + world.setBlockMetadataWithNotify(x, y, z, 3, 2); + } + if(i == 2) + { + world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } + if(i == 3) + { + world.setBlockMetadataWithNotify(x, y, z, 2, 2); + } + } + +} diff --git a/com/hbm/blocks/bomb/CelPrimePart.java b/com/hbm/blocks/bomb/CelPrimePart.java new file mode 100644 index 000000000..a78fdd945 --- /dev/null +++ b/com/hbm/blocks/bomb/CelPrimePart.java @@ -0,0 +1,77 @@ +package com.hbm.blocks.bomb; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.bomb.TileEntityCelPrime; +import com.hbm.tileentity.bomb.TileEntityCelPrimeBattery; +import com.hbm.tileentity.bomb.TileEntityCelPrimePort; +import com.hbm.tileentity.bomb.TileEntityCelPrimeTanks; +import com.hbm.tileentity.bomb.TileEntityCelPrimeTerminal; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class CelPrimePart extends BlockContainer { + + public CelPrimePart(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + if(this == ModBlocks.cel_prime_terminal) + return new TileEntityCelPrimeTerminal(); + if(this == ModBlocks.cel_prime_battery) + return new TileEntityCelPrimeBattery(); + if(this == ModBlocks.cel_prime_port) + return new TileEntityCelPrimePort(); + if(this == ModBlocks.cel_prime_tanks) + return new TileEntityCelPrimeTanks(); + + return null; + } + + @Override + public int getRenderType(){ + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) + { + world.setBlockMetadataWithNotify(x, y, z, 5, 2); + } + if(i == 1) + { + world.setBlockMetadataWithNotify(x, y, z, 3, 2); + } + if(i == 2) + { + world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } + if(i == 3) + { + world.setBlockMetadataWithNotify(x, y, z, 2, 2); + } + } +} diff --git a/com/hbm/handler/GUIHandler.java b/com/hbm/handler/GUIHandler.java index f4b581f36..025984a6a 100644 --- a/com/hbm/handler/GUIHandler.java +++ b/com/hbm/handler/GUIHandler.java @@ -6,6 +6,7 @@ import com.hbm.inventory.gui.*; import com.hbm.items.ModItems; import com.hbm.tileentity.*; import com.hbm.tileentity.bomb.TileEntityBombMulti; +import com.hbm.tileentity.bomb.TileEntityCelPrime; import com.hbm.tileentity.bomb.TileEntityLaunchPad; import com.hbm.tileentity.bomb.TileEntityNukeBoy; import com.hbm.tileentity.bomb.TileEntityNukeCustom; @@ -608,6 +609,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_cel_prime: + { + if(entity instanceof TileEntityCelPrime) + { + return new ContainerCelPrime(player.inventory, (TileEntityCelPrime) entity); + } + return null; + } } return null; } @@ -1149,6 +1159,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_cel_prime: + { + if(entity instanceof TileEntityCelPrime) + { + return new GUICelPrime(player.inventory, (TileEntityCelPrime) entity); + } + return null; + } } } else { //CLIENTONLY GUIS diff --git a/com/hbm/inventory/container/ContainerCelPrime.java b/com/hbm/inventory/container/ContainerCelPrime.java new file mode 100644 index 000000000..906efe2c9 --- /dev/null +++ b/com/hbm/inventory/container/ContainerCelPrime.java @@ -0,0 +1,66 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.bomb.TileEntityCelPrime; +import com.hbm.tileentity.bomb.TileEntityNukeSolinium; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCelPrime extends Container { + +private TileEntityCelPrime nukeSol; + + public ContainerCelPrime(InventoryPlayer invPlayer, TileEntityCelPrime tedf) { + + nukeSol = tedf; + + this.addSlotToContainer(new Slot(tedf, 0, 44, 158)); + this.addSlotToContainer(new Slot(tedf, 1, 80, 158)); + + for(int i = 0; i < 9; i++) + { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) + { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if (var4 != null && var4.getHasStack()) + { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if (par2 <= 10) { + if (!this.mergeItemStack(var5, 11, this.inventorySlots.size(), true)) + { + return null; + } + } else { + return null; + } + + if (var5.stackSize == 0) + { + var4.putStack((ItemStack) null); + } + else + { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return nukeSol.isUseableByPlayer(player); + } +} diff --git a/com/hbm/inventory/gui/GUICelPrime.java b/com/hbm/inventory/gui/GUICelPrime.java new file mode 100644 index 000000000..fc732c6a0 --- /dev/null +++ b/com/hbm/inventory/gui/GUICelPrime.java @@ -0,0 +1,50 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCelPrime; +import com.hbm.inventory.container.ContainerNukeSolinium; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.bomb.TileEntityCelPrime; +import com.hbm.tileentity.bomb.TileEntityNukeSolinium; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUICelPrime extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/celprime_cmd_alt_thirdslot.png"); + private TileEntityCelPrime testNuke; + + public GUICelPrime(InventoryPlayer invPlayer, TileEntityCelPrime tedf) { + super(new ContainerCelPrime(invPlayer, tedf)); + testNuke = tedf; + + this.xSize = 176; + this.ySize = 222; + } + + @Override + protected void drawGuiContainerForegroundLayer( int i, int j) { + String name = this.testNuke.hasCustomInventoryName() ? this.testNuke.getInventoryName() : I18n.format(this.testNuke.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2 + 56, 4210752); + + GL11.glScalef(0.5F, 0.5F, 0.5F); + for(int k = 0; k < testNuke.cmd.length; k++) + this.fontRendererObj.drawString(testNuke.cmd[k], 36, 50 + (12 * k), 65280); + GL11.glScalef(2F, 2F, 2F); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 9831aa94f..57c7a58df 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -60,8 +60,24 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeCustom.class, new RenderNukeCustom()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeSolinium.class, new RenderNukeSolinium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeN2.class, new RenderNukeN2()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCentrifuge.class, new RenderCentrifuge()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeMan.class, new RenderNukeMan()); + + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretHeavy.class, new RenderHeavyTurret()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretRocket.class, new RenderRocketTurret()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretLight.class, new RenderLightTurret()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretFlamer.class, new RenderFlamerTurret()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretTau.class, new RenderTauTurret()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretSpitfire.class, new RenderSpitfireTurret()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretCIWS.class, new RenderCIWSTurret()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretCheapo.class, new RenderCheapoTurret()); + + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCelPrime.class, new RenderCelPrimeTower()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCelPrimeTerminal.class, new RenderCelPrimePart()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCelPrimeBattery.class, new RenderCelPrimePart()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCelPrimePort.class, new RenderCelPrimePart()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCelPrimeTanks.class, new RenderCelPrimePart()); + + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCentrifuge.class, new RenderCentrifuge()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineUF6Tank.class, new RenderUF6Tank()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePuF6Tank.class, new RenderPuF6Tank()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineIGenerator.class, new RenderIGenerator()); @@ -73,14 +89,6 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemplant.class, new RenderChemplant()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFluidTank.class, new RenderFluidTank()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRefinery.class, new RenderRefinery()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretHeavy.class, new RenderHeavyTurret()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretRocket.class, new RenderRocketTurret()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretLight.class, new RenderLightTurret()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretFlamer.class, new RenderFlamerTurret()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretTau.class, new RenderTauTurret()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretSpitfire.class, new RenderSpitfireTurret()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretCIWS.class, new RenderCIWSTurret()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretCheapo.class, new RenderCheapoTurret()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpjack.class, new RenderPumpjack()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineTurbofan.class, new RenderTurbofan()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePress.class, new RenderPress()); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 6d133525c..4297ea72d 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -164,6 +164,11 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.potion.PotionEffectTaint; import com.hbm.render.util.HmfModelLoader; import com.hbm.tileentity.bomb.TileEntityBombMulti; +import com.hbm.tileentity.bomb.TileEntityCelPrime; +import com.hbm.tileentity.bomb.TileEntityCelPrimeBattery; +import com.hbm.tileentity.bomb.TileEntityCelPrimePort; +import com.hbm.tileentity.bomb.TileEntityCelPrimeTanks; +import com.hbm.tileentity.bomb.TileEntityCelPrimeTerminal; import com.hbm.tileentity.bomb.TileEntityCrashedBomb; import com.hbm.tileentity.bomb.TileEntityLaunchPad; import com.hbm.tileentity.bomb.TileEntityNukeBoy; @@ -592,6 +597,11 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityTurretCheapo.class, "tileentity_turret_cheapo"); GameRegistry.registerTileEntity(TileEntityNukeSolinium.class, "tileentity_nuke_solinium"); GameRegistry.registerTileEntity(TileEntityNukeN2.class, "tileentity_nuke_n2"); + GameRegistry.registerTileEntity(TileEntityCelPrime.class, "tileentity_cel_prime"); + GameRegistry.registerTileEntity(TileEntityCelPrimeTerminal.class, "tileentity_cel_prime_access"); + GameRegistry.registerTileEntity(TileEntityCelPrimeBattery.class, "tileentity_cel_prime_energy"); + GameRegistry.registerTileEntity(TileEntityCelPrimePort.class, "tileentity_cel_prime_connector"); + GameRegistry.registerTileEntity(TileEntityCelPrimeTanks.class, "tileentity_cel_prime_storage"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 2a8035d72..4430498ba 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -70,6 +70,13 @@ public class ResourceManager { public static final IModelCustom bomb_solinium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ufp.obj")); public static final IModelCustom n2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/n2.obj")); + //Cel-Prime + public static final IModelCustom cp_tower = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_tower.obj")); + public static final IModelCustom cp_terminal = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_terminal.obj")); + public static final IModelCustom cp_battery = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_battery.obj")); + public static final IModelCustom cp_tanks = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_tanks.obj")); + public static final IModelCustom cp_port = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_port.obj")); + ////Textures TEs public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); diff --git a/com/hbm/render/tileentity/RenderCelPrimePart.java b/com/hbm/render/tileentity/RenderCelPrimePart.java new file mode 100644 index 000000000..d86e405ef --- /dev/null +++ b/com/hbm/render/tileentity/RenderCelPrimePart.java @@ -0,0 +1,61 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.bomb.TileEntityCelPrimeBattery; +import com.hbm.tileentity.bomb.TileEntityCelPrimePort; +import com.hbm.tileentity.bomb.TileEntityCelPrimeTanks; +import com.hbm.tileentity.bomb.TileEntityCelPrimeTerminal; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderCelPrimePart extends TileEntitySpecialRenderer { + + public RenderCelPrimePart() { } + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + GL11.glRotatef(90, 0F, 1F, 0F); + + switch(tileEntity.getBlockMetadata()) + { + case 2: + GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: + GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: + GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: + GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + if(tileEntity instanceof TileEntityCelPrimeTerminal) { + bindTexture(ResourceManager.universal); + ResourceManager.cp_terminal.renderAll(); + } + if(tileEntity instanceof TileEntityCelPrimeBattery) { + bindTexture(ResourceManager.universal); + ResourceManager.cp_battery.renderAll(); + } + if(tileEntity instanceof TileEntityCelPrimePort) { + bindTexture(ResourceManager.universal); + ResourceManager.cp_port.renderAll(); + } + if(tileEntity instanceof TileEntityCelPrimeTanks) { + bindTexture(ResourceManager.universal); + ResourceManager.cp_tanks.renderAll(); + } + + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } +} diff --git a/com/hbm/render/tileentity/RenderCelPrimeTower.java b/com/hbm/render/tileentity/RenderCelPrimeTower.java new file mode 100644 index 000000000..d717f7855 --- /dev/null +++ b/com/hbm/render/tileentity/RenderCelPrimeTower.java @@ -0,0 +1,43 @@ +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 RenderCelPrimeTower extends TileEntitySpecialRenderer { + + public RenderCelPrimeTower() { } + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + GL11.glRotatef(90, 0F, 1F, 0F); + + switch(tileEntity.getBlockMetadata()) + { + case 2: + GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: + GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: + GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: + GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + bindTexture(ResourceManager.universal); + ResourceManager.cp_tower.renderAll(); + + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } +} diff --git a/com/hbm/tileentity/bomb/TileEntityCelPrime.java b/com/hbm/tileentity/bomb/TileEntityCelPrime.java new file mode 100644 index 000000000..310586c84 --- /dev/null +++ b/com/hbm/tileentity/bomb/TileEntityCelPrime.java @@ -0,0 +1,279 @@ +package com.hbm.tileentity.bomb; + +import com.hbm.items.ModItems; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityCelPrime extends TileEntity implements ISidedInventory { + + public ItemStack slots[]; + private String customName; + public String[] cmd; + private int bootStatus = 0; + private int bootRequired = 10; + private int bootDelay; + + public TileEntityCelPrime() { + slots = new ItemStack[2]; + cmd = new String[18]; + bootDelay = 100; + } + + @Override + public int getSizeInventory() { + return slots.length; + } + + @Override + public ItemStack getStackInSlot(int i) { + return slots[i]; + } + + @Override + public ItemStack decrStackSize(int i, int j) { + if(slots[i] != null) + { + if(slots[i].stackSize <= j) + { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } + ItemStack itemStack1 = slots[i].splitStack(j); + if (slots[i].stackSize == 0) + { + slots[i] = null; + } + + return itemStack1; + } else { + return null; + } + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if(slots[i] != null) + { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) + { + itemStack.stackSize = getInventoryStackLimit(); + } + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.customName : "container.celPrime"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.customName != null && this.customName.length() > 0; + } + + public void setCustomName(String name) { + this.customName = name; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) + { + return false; + }else{ + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; + } + } + + @Override + public void openInventory() { + + } + + @Override + public void closeInventory() { + + } + + @Override + public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) { + return false; + } + + @Override + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + return null; + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack); + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return j != 0 || i != 1 || itemStack.getItem() == Items.bucket; + } + + @Override + public void updateEntity() { + + if(!hasBooted()) { + if(bootDelay > 0) { + bootDelay--; + } else { + bootDelay = 100; + printMsgFromBoot(); + bootStatus++; + } + } + } + + private boolean hasBooted() { + return this.bootStatus == this.bootRequired; + } + + private void printMsgFromBoot() { + + switch(bootStatus) { + case 0: + appendText("*** Crusader Mainframe Mark 3 ***"); + appendText("(C) 2077 CMC International"); + break; + case 1: + appendText(""); + appendText("ReiOS v6.24"); + appendText("64k RAM System"); + appendText("334077 KB free space"); + break; + case 2: + appendText("No external PCI devices found!"); + appendText(""); + appendText("Self-test in progres..."); + break; + case 3: + appendText("Hardware self-test successful!"); + appendText(""); + appendText("Establishing network uplink..."); + break; + case 4: + appendText("Uplink established!"); + appendText("Connecting to TOR circuit..."); + break; + case 5: + appendText("Connected nodes: 1/3"); + break; + case 6: + appendText("Connected nodes: 2/3"); + break; + case 7: + appendText("Connected nodes: 3/3"); + appendText("Connection successful!"); + appendText(""); + appendText("Checking for updates..."); + break; + case 8: + appendText("Software already up-to-date."); + break; + case 9: + appendText("All systems ready!"); + break; + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); + slots = new ItemStack[getSizeInventory()]; + + for(int i = 0; i < list.tagCount(); i++) + { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if(b0 >= 0 && b0 < slots.length) + { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + NBTTagList list = new NBTTagList(); + + for(int i = 0; i < slots.length; i++) + { + if(slots[i] != null) + { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte)i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } + + private void fillCmd() { + + for(int i = 0; i < cmd.length; i++) { + if(cmd[i] == null) + cmd[i] = ""; + } + } + + private void appendText(String text) { + + for(int i = 0; i < cmd.length; i++) { + if(cmd[i] == null) { + cmd[i] = text; + return; + } + } + + for(int i = 1; i < cmd.length; i++) { + cmd[i - 1] = cmd[i]; + } + + cmd[cmd.length - 1] = text; + } + + @Override + public AxisAlignedBB getRenderBoundingBox() { + return TileEntity.INFINITE_EXTENT_AABB; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() + { + return 65536.0D; + } +} diff --git a/com/hbm/tileentity/bomb/TileEntityCelPrimeBattery.java b/com/hbm/tileentity/bomb/TileEntityCelPrimeBattery.java new file mode 100644 index 000000000..16fd515ff --- /dev/null +++ b/com/hbm/tileentity/bomb/TileEntityCelPrimeBattery.java @@ -0,0 +1,7 @@ +package com.hbm.tileentity.bomb; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityCelPrimeBattery extends TileEntity { + +} diff --git a/com/hbm/tileentity/bomb/TileEntityCelPrimePort.java b/com/hbm/tileentity/bomb/TileEntityCelPrimePort.java new file mode 100644 index 000000000..19ea8a1d8 --- /dev/null +++ b/com/hbm/tileentity/bomb/TileEntityCelPrimePort.java @@ -0,0 +1,7 @@ +package com.hbm.tileentity.bomb; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityCelPrimePort extends TileEntity { + +} diff --git a/com/hbm/tileentity/bomb/TileEntityCelPrimeTanks.java b/com/hbm/tileentity/bomb/TileEntityCelPrimeTanks.java new file mode 100644 index 000000000..e595e4d91 --- /dev/null +++ b/com/hbm/tileentity/bomb/TileEntityCelPrimeTanks.java @@ -0,0 +1,7 @@ +package com.hbm.tileentity.bomb; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityCelPrimeTanks extends TileEntity { + +} diff --git a/com/hbm/tileentity/bomb/TileEntityCelPrimeTerminal.java b/com/hbm/tileentity/bomb/TileEntityCelPrimeTerminal.java new file mode 100644 index 000000000..d760ce2e4 --- /dev/null +++ b/com/hbm/tileentity/bomb/TileEntityCelPrimeTerminal.java @@ -0,0 +1,7 @@ +package com.hbm.tileentity.bomb; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityCelPrimeTerminal extends TileEntity { + +}