mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
new bullet models, relic bomb model and texture, gunbase packets
This commit is contained in:
parent
0e51769e05
commit
6519d80655
535
assets/hbm/models/bale.obj
Normal file
535
assets/hbm/models/bale.obj
Normal file
@ -0,0 +1,535 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'bale.blend'
|
||||
# www.blender.org
|
||||
o Cylinder
|
||||
v 0.000000 1.000000 -0.500000
|
||||
v 0.000000 1.000000 0.750000
|
||||
v 0.250000 0.933013 -0.500000
|
||||
v 0.250000 0.933013 0.750000
|
||||
v 0.433013 0.750000 -0.500000
|
||||
v 0.433013 0.750000 0.750000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v 0.500000 0.500000 0.750000
|
||||
v 0.433013 0.250000 -0.500000
|
||||
v 0.433013 0.250000 0.750000
|
||||
v 0.250000 0.066987 -0.500000
|
||||
v 0.250000 0.066987 0.750000
|
||||
v 0.000000 -0.000000 -0.500000
|
||||
v 0.000000 0.000000 0.750000
|
||||
v -0.250000 0.066987 -0.500000
|
||||
v -0.250000 0.066987 0.750000
|
||||
v -0.433013 0.250000 -0.500000
|
||||
v -0.433013 0.250000 0.750000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
v -0.500000 0.500000 0.750000
|
||||
v -0.433013 0.750000 -0.500000
|
||||
v -0.433013 0.750000 0.750000
|
||||
v -0.250000 0.933012 -0.500000
|
||||
v -0.250000 0.933013 0.750000
|
||||
v 0.187500 0.824760 1.000000
|
||||
v 0.000000 0.875000 1.000000
|
||||
v 0.324760 0.687500 1.000000
|
||||
v 0.375000 0.500000 1.000000
|
||||
v 0.324760 0.312500 1.000000
|
||||
v 0.187500 0.175241 1.000000
|
||||
v 0.000000 0.125000 1.000000
|
||||
v -0.187500 0.175241 1.000000
|
||||
v -0.324759 0.312500 1.000000
|
||||
v -0.375000 0.500000 1.000000
|
||||
v -0.324760 0.687500 1.000000
|
||||
v -0.187500 0.824759 1.000000
|
||||
v 0.000000 0.500000 1.150000
|
||||
v 0.000000 0.825000 -1.150000
|
||||
v 0.162500 0.781458 -1.150000
|
||||
v 0.281458 0.662500 -1.150000
|
||||
v 0.325000 0.500000 -1.150000
|
||||
v 0.281458 0.337500 -1.150000
|
||||
v 0.162500 0.218542 -1.150000
|
||||
v 0.000000 0.175000 -1.150000
|
||||
v -0.162500 0.218542 -1.150000
|
||||
v -0.281458 0.337500 -1.150000
|
||||
v -0.325000 0.500000 -1.150000
|
||||
v -0.281458 0.662500 -1.150000
|
||||
v -0.162500 0.781458 -1.150000
|
||||
v -0.500000 0.075000 -0.950000
|
||||
v 0.500000 0.075000 -0.950000
|
||||
v -0.500000 0.925000 -0.950000
|
||||
v 0.500000 0.925000 -0.950000
|
||||
v -0.425000 0.000000 -0.950000
|
||||
v 0.425000 0.000000 -0.950000
|
||||
v -0.425000 1.000000 -0.950000
|
||||
v 0.425000 1.000000 -0.950000
|
||||
v -0.425000 0.925000 -0.950000
|
||||
v 0.425000 0.925000 -0.950000
|
||||
v -0.425000 0.075000 -0.950000
|
||||
v 0.425000 0.075000 -0.950000
|
||||
v -0.500000 0.925000 -1.200000
|
||||
v -0.500000 0.075000 -1.200000
|
||||
v 0.425000 0.925000 -1.200000
|
||||
v 0.425000 0.075000 -1.200000
|
||||
v 0.500000 0.075000 -1.200000
|
||||
v 0.500000 0.925000 -1.200000
|
||||
v -0.425000 0.925000 -1.200000
|
||||
v -0.425000 0.075000 -1.200000
|
||||
v -0.425000 -0.000000 -1.200000
|
||||
v 0.425000 -0.000000 -1.200000
|
||||
v 0.425000 1.000000 -1.200000
|
||||
v -0.425000 1.000000 -1.200000
|
||||
v -0.459619 0.075736 -1.000000
|
||||
v 0.424264 0.959619 -1.000000
|
||||
v -0.459619 0.075736 -1.150000
|
||||
v 0.424264 0.959619 -1.150000
|
||||
v -0.424264 0.040381 -1.000000
|
||||
v 0.459619 0.924264 -1.000000
|
||||
v -0.424264 0.040381 -1.150000
|
||||
v 0.459619 0.924264 -1.150000
|
||||
v 0.000000 0.825000 -1.200000
|
||||
v 0.162500 0.781458 -1.200000
|
||||
v 0.281458 0.662500 -1.200000
|
||||
v 0.325000 0.500000 -1.200000
|
||||
v 0.281458 0.337500 -1.200000
|
||||
v 0.162500 0.218542 -1.200000
|
||||
v 0.000000 0.175000 -1.200000
|
||||
v -0.162500 0.218542 -1.200000
|
||||
v -0.281458 0.337500 -1.200000
|
||||
v -0.325000 0.500000 -1.200000
|
||||
v -0.281458 0.662500 -1.200000
|
||||
v -0.162500 0.781458 -1.200000
|
||||
v -0.424264 0.959619 -1.000000
|
||||
v 0.459619 0.075736 -1.000000
|
||||
v -0.424264 0.959619 -1.150000
|
||||
v 0.459619 0.075736 -1.150000
|
||||
v -0.459619 0.924264 -1.000000
|
||||
v 0.424264 0.040381 -1.000000
|
||||
v -0.459619 0.924264 -1.150000
|
||||
v 0.424264 0.040381 -1.150000
|
||||
vt 0.788698 0.361775
|
||||
vt 0.510343 0.361775
|
||||
vt 0.510343 0.304140
|
||||
vt 0.510343 0.246505
|
||||
vt 0.788698 0.246505
|
||||
vt 0.510343 0.188870
|
||||
vt 0.788698 0.188870
|
||||
vt 0.510343 0.131235
|
||||
vt 0.510343 0.073600
|
||||
vt 0.788698 0.073600
|
||||
vt 0.510343 0.015964
|
||||
vt 0.788698 0.015964
|
||||
vt 0.788698 0.707585
|
||||
vt 0.510343 0.707585
|
||||
vt 0.510343 0.649950
|
||||
vt 0.788698 0.649950
|
||||
vt 0.510343 0.592315
|
||||
vt 0.510343 0.534680
|
||||
vt 0.788698 0.534680
|
||||
vt 0.510343 0.477045
|
||||
vt 0.788698 0.477045
|
||||
vt 0.448519 0.124030
|
||||
vt 0.448519 0.080804
|
||||
vt 0.510343 0.419410
|
||||
vt 0.788698 0.419410
|
||||
vt 0.938258 0.198956
|
||||
vt 0.938258 0.236419
|
||||
vt 0.448519 0.181665
|
||||
vt 0.448519 0.138439
|
||||
vt 0.448519 0.412206
|
||||
vt 0.448519 0.354571
|
||||
vt 0.448519 0.311344
|
||||
vt 0.448519 0.239300
|
||||
vt 0.448519 0.196074
|
||||
vt 0.448519 0.469841
|
||||
vt 0.448519 0.296935
|
||||
vt 0.448519 0.253709
|
||||
vt 0.448519 0.527476
|
||||
vt 0.448519 0.484250
|
||||
vt 0.448519 0.585111
|
||||
vt 0.448519 0.541885
|
||||
vt 0.448519 0.642746
|
||||
vt 0.448519 0.599520
|
||||
vt 0.448519 0.700381
|
||||
vt 0.448519 0.657155
|
||||
vt 0.448519 0.066395
|
||||
vt 0.361215 0.678768
|
||||
vt 0.361214 0.621133
|
||||
vt 0.361215 0.563498
|
||||
vt 0.361215 0.505863
|
||||
vt 0.361215 0.448228
|
||||
vt 0.448519 0.426615
|
||||
vt 0.361215 0.390593
|
||||
vt 0.448519 0.368979
|
||||
vt 0.361215 0.332957
|
||||
vt 0.448519 0.023169
|
||||
vt 0.361215 0.044782
|
||||
vt 0.361214 0.102417
|
||||
vt 0.361215 0.160052
|
||||
vt 0.361215 0.217687
|
||||
vt 0.361215 0.275322
|
||||
vt 0.938258 0.141321
|
||||
vt 0.949392 0.141321
|
||||
vt 0.949392 0.178784
|
||||
vt 0.938258 0.429496
|
||||
vt 0.938258 0.466959
|
||||
vt 0.788698 0.304140
|
||||
vt 0.938258 0.256591
|
||||
vt 0.938258 0.487131
|
||||
vt 0.788698 0.592315
|
||||
vt 0.938258 0.544766
|
||||
vt 0.938258 0.602401
|
||||
vt 0.938258 0.639864
|
||||
vt 0.938258 0.660037
|
||||
vt 0.938258 0.697499
|
||||
vt 0.938258 0.026051
|
||||
vt 0.938258 0.063514
|
||||
vt 0.938258 0.083686
|
||||
vt 0.938258 0.121149
|
||||
vt 0.788698 0.131235
|
||||
vt 0.938258 0.178784
|
||||
vt 0.938258 0.371861
|
||||
vt 0.938258 0.409324
|
||||
vt 0.938258 0.314226
|
||||
vt 0.938258 0.351689
|
||||
vt 0.680346 0.943229
|
||||
vt 0.680346 0.959931
|
||||
vt 0.491064 0.959931
|
||||
vt 0.680346 0.753947
|
||||
vt 0.491064 0.753947
|
||||
vt 0.491064 0.737246
|
||||
vt 0.491064 0.943229
|
||||
vt 0.474362 0.943229
|
||||
vt 0.474362 0.753947
|
||||
vt 0.697047 0.753947
|
||||
vt 0.680346 0.737246
|
||||
vt 0.697047 0.943229
|
||||
vt 0.932691 0.959931
|
||||
vt 0.743409 0.959931
|
||||
vt 0.743409 0.943229
|
||||
vt 0.932691 0.737246
|
||||
vt 0.932691 0.753947
|
||||
vt 0.743409 0.753947
|
||||
vt 0.949392 0.753947
|
||||
vt 0.949392 0.943229
|
||||
vt 0.932691 0.943229
|
||||
vt 0.726707 0.753947
|
||||
vt 0.743409 0.737246
|
||||
vt 0.726707 0.943229
|
||||
vt 0.190552 0.394528
|
||||
vt 0.190552 0.205246
|
||||
vt 0.246223 0.205246
|
||||
vt 0.331554 0.228866
|
||||
vt 0.275883 0.228866
|
||||
vt 0.275883 0.205247
|
||||
vt 0.331554 0.418148
|
||||
vt 0.275883 0.418148
|
||||
vt 0.331554 0.631049
|
||||
vt 0.275883 0.631049
|
||||
vt 0.275883 0.441767
|
||||
vt 0.190551 0.015964
|
||||
vt 0.246223 0.015964
|
||||
vt 0.331554 0.867570
|
||||
vt 0.275883 0.867570
|
||||
vt 0.275883 0.843951
|
||||
vt 0.190552 0.583811
|
||||
vt 0.246223 0.583811
|
||||
vt 0.246223 0.773093
|
||||
vt 0.331554 0.654669
|
||||
vt 0.275883 0.654669
|
||||
vt 0.331554 0.205247
|
||||
vt 0.275883 0.015964
|
||||
vt 0.331554 0.843951
|
||||
vt 0.331554 0.441767
|
||||
vt 0.246223 0.394528
|
||||
vt 0.053199 0.941767
|
||||
vt 0.331554 0.941767
|
||||
vt 0.331554 0.975170
|
||||
vt 0.053199 0.930633
|
||||
vt 0.331554 0.930633
|
||||
vt 0.053198 0.897230
|
||||
vt 0.331554 0.897230
|
||||
vt 0.053199 0.975170
|
||||
vt 0.331554 0.986304
|
||||
vt 0.127488 0.015964
|
||||
vt 0.127488 0.294321
|
||||
vt 0.116354 0.294321
|
||||
vt 0.116354 0.015964
|
||||
vt 0.082952 0.294321
|
||||
vt 0.039809 0.445063
|
||||
vt 0.142160 0.342712
|
||||
vt 0.160891 0.412619
|
||||
vt 0.949392 0.429496
|
||||
vt 0.949392 0.466959
|
||||
vt 0.949392 0.314226
|
||||
vt 0.949392 0.351689
|
||||
vt 0.949392 0.602401
|
||||
vt 0.949392 0.639864
|
||||
vt 0.949392 0.083686
|
||||
vt 0.949392 0.121149
|
||||
vt 0.949392 0.371861
|
||||
vt 0.949392 0.409324
|
||||
vt 0.949392 0.256591
|
||||
vt 0.949392 0.294054
|
||||
vt 0.949392 0.544766
|
||||
vt 0.949392 0.582229
|
||||
vt 0.949392 0.026051
|
||||
vt 0.949392 0.198956
|
||||
vt 0.949392 0.236419
|
||||
vt 0.949392 0.487131
|
||||
vt 0.949392 0.524594
|
||||
vt 0.949392 0.660037
|
||||
vt 0.949392 0.697499
|
||||
vt 0.160891 0.015964
|
||||
vt 0.160891 0.294321
|
||||
vt 0.082951 0.015964
|
||||
vt 0.071817 0.294321
|
||||
vt 0.938258 0.294054
|
||||
vt 0.938258 0.524594
|
||||
vt 0.938258 0.582229
|
||||
vt 0.190551 0.773093
|
||||
vt 0.331554 0.015964
|
||||
vt 0.053199 0.986304
|
||||
vt 0.142160 0.445063
|
||||
vt 0.109716 0.463794
|
||||
vt 0.072253 0.463794
|
||||
vt 0.021078 0.412619
|
||||
vt 0.021078 0.375156
|
||||
vt 0.039809 0.342712
|
||||
vt 0.072253 0.323981
|
||||
vt 0.109716 0.323981
|
||||
vt 0.160891 0.375156
|
||||
vt 0.949392 0.063513
|
||||
vt 0.071817 0.015964
|
||||
vn 0.258800 0.965900 0.000000
|
||||
vn 0.707100 0.707100 0.000000
|
||||
vn 0.965900 0.258800 0.000000
|
||||
vn 0.965900 -0.258800 0.000000
|
||||
vn 0.707100 -0.707100 0.000000
|
||||
vn 0.258800 -0.965900 0.000000
|
||||
vn -0.258800 -0.965900 0.000000
|
||||
vn -0.707100 -0.707100 0.000000
|
||||
vn -0.965900 -0.258800 0.000000
|
||||
vn -0.965900 0.258800 -0.000000
|
||||
vn 0.636700 -0.636700 0.434900
|
||||
vn -0.258800 0.965900 -0.000000
|
||||
vn -0.707100 0.707100 -0.000000
|
||||
vn 0.934800 0.250500 -0.251700
|
||||
vn 0.869800 -0.233100 0.434900
|
||||
vn -0.233100 0.869800 0.434900
|
||||
vn 0.233100 0.869800 0.434900
|
||||
vn 0.869800 0.233100 0.434900
|
||||
vn -0.636700 0.636700 0.434900
|
||||
vn 0.636700 0.636700 0.434900
|
||||
vn -0.869800 0.233100 0.434900
|
||||
vn -0.869800 -0.233100 0.434900
|
||||
vn -0.636700 -0.636700 0.434900
|
||||
vn -0.233100 -0.869800 0.434900
|
||||
vn 0.233100 -0.869800 0.434900
|
||||
vn -0.099000 -0.369600 0.923900
|
||||
vn -0.270500 -0.270500 0.923900
|
||||
vn -0.369600 -0.099000 0.923900
|
||||
vn -0.369600 0.099000 0.923900
|
||||
vn -0.270500 0.270500 0.923900
|
||||
vn -0.099000 0.369600 0.923900
|
||||
vn 0.099000 0.369600 0.923900
|
||||
vn 0.099000 -0.369600 0.923900
|
||||
vn 0.270500 -0.270500 0.923900
|
||||
vn 0.369600 -0.099000 0.923900
|
||||
vn 0.369600 0.099000 0.923900
|
||||
vn 0.270500 0.270500 0.923900
|
||||
vn -0.684300 0.684300 -0.251700
|
||||
vn 0.684300 0.684300 -0.251700
|
||||
vn -0.934800 0.250500 -0.251700
|
||||
vn -0.934800 -0.250500 -0.251700
|
||||
vn -0.684300 -0.684300 -0.251700
|
||||
vn -0.250500 -0.934800 -0.251700
|
||||
vn 0.250500 -0.934800 -0.251700
|
||||
vn 0.684300 -0.684300 -0.251700
|
||||
vn 0.934800 -0.250500 -0.251700
|
||||
vn -0.250500 0.934800 -0.251700
|
||||
vn 0.250500 0.934800 -0.251700
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.000000 -0.000000 -1.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 -1.000000 0.000000
|
||||
s off
|
||||
f 1/1/1 2/2/1 4/3/1
|
||||
f 4/3/2 6/4/2 5/5/2
|
||||
f 5/5/3 6/4/3 8/6/3
|
||||
f 7/7/4 8/6/4 10/8/4
|
||||
f 10/8/5 12/9/5 11/10/5
|
||||
f 12/9/6 14/11/6 13/12/6
|
||||
f 13/13/7 14/14/7 16/15/7
|
||||
f 15/16/8 16/15/8 18/17/8
|
||||
f 18/17/9 20/18/9 19/19/9
|
||||
f 20/18/10 22/20/10 21/21/10
|
||||
f 10/8/11 29/22/11 30/23/11
|
||||
f 24/24/12 2/2/12 1/1/12
|
||||
f 22/20/13 24/24/13 23/25/13
|
||||
f 7/7/14 41/26/14 40/27/14
|
||||
f 8/6/15 28/28/15 29/29/15
|
||||
f 2/2/16 24/24/16 36/30/16
|
||||
f 2/2/17 26/31/17 25/32/17
|
||||
f 6/4/18 27/33/18 28/34/18
|
||||
f 24/24/19 22/20/19 35/35/19
|
||||
f 4/3/20 25/36/20 27/37/20
|
||||
f 20/18/21 34/38/21 35/39/21
|
||||
f 18/17/22 33/40/22 34/41/22
|
||||
f 16/15/23 32/42/23 33/43/23
|
||||
f 14/14/24 31/44/24 32/45/24
|
||||
f 14/11/25 12/9/25 30/46/25
|
||||
f 31/44/26 37/47/26 32/45/26
|
||||
f 32/42/27 37/48/27 33/43/27
|
||||
f 33/40/28 37/49/28 34/41/28
|
||||
f 34/38/29 37/50/29 35/39/29
|
||||
f 35/35/30 37/51/30 36/52/30
|
||||
f 36/30/31 37/53/31 26/54/31
|
||||
f 26/31/32 37/55/32 25/32/32
|
||||
f 31/56/33 30/46/33 37/57/33
|
||||
f 29/22/34 37/58/34 30/23/34
|
||||
f 28/28/35 37/59/35 29/29/35
|
||||
f 27/33/36 37/60/36 28/34/36
|
||||
f 25/36/37 37/61/37 27/37/37
|
||||
f 42/62/4 86/63/4 85/64/4
|
||||
f 23/25/38 49/65/38 48/66/38
|
||||
f 3/67/39 5/5/39 40/68/39
|
||||
f 19/19/40 21/21/40 48/69/40
|
||||
f 17/70/41 19/19/41 47/71/41
|
||||
f 17/70/42 46/72/42 45/73/42
|
||||
f 15/16/43 45/74/43 44/75/43
|
||||
f 13/12/44 44/76/44 43/77/44
|
||||
f 11/10/45 43/78/45 42/79/45
|
||||
f 9/80/46 42/62/46 41/81/46
|
||||
f 1/1/47 38/82/47 49/83/47
|
||||
f 3/67/48 39/84/48 38/85/48
|
||||
f 61/86/49 51/87/49 53/88/49
|
||||
f 60/89/49 58/90/49 52/91/49
|
||||
f 59/92/49 57/93/49 56/94/49
|
||||
f 53/88/49 57/93/49 59/92/49
|
||||
f 56/94/49 52/91/49 58/90/49
|
||||
f 54/95/49 60/89/49 50/96/49
|
||||
f 51/87/49 61/86/49 55/97/49
|
||||
f 60/89/49 54/95/49 55/97/49
|
||||
f 67/98/50 66/99/50 65/100/50
|
||||
f 62/101/50 68/102/50 69/103/50
|
||||
f 73/104/50 72/105/50 64/106/50
|
||||
f 67/98/50 64/106/50 72/105/50
|
||||
f 73/104/50 68/102/50 62/101/50
|
||||
f 70/107/50 63/108/50 69/103/50
|
||||
f 66/99/50 71/109/50 65/100/50
|
||||
f 71/109/50 70/107/50 69/103/50
|
||||
f 58/110/51 60/111/51 69/112/51
|
||||
f 50/113/8 63/114/8 70/115/8
|
||||
f 52/116/52 62/117/52 63/114/52
|
||||
f 57/118/53 72/119/53 73/120/53
|
||||
f 61/121/53 65/122/53 69/112/53
|
||||
f 55/123/5 71/124/5 66/125/5
|
||||
f 59/126/52 64/127/52 65/128/52
|
||||
f 53/129/2 67/130/2 72/119/2
|
||||
f 54/131/54 70/115/54 71/132/54
|
||||
f 53/129/51 51/133/51 66/125/51
|
||||
f 56/134/13 73/120/13 62/117/13
|
||||
f 58/110/54 68/135/54 64/127/54
|
||||
f 77/136/13 76/137/13 74/138/13
|
||||
f 81/139/50 80/140/50 76/137/50
|
||||
f 79/141/5 78/142/5 80/140/5
|
||||
f 75/143/49 74/138/49 78/144/49
|
||||
f 101/145/50 100/146/50 96/147/50
|
||||
f 97/148/2 96/147/2 94/149/2
|
||||
f 85/150/50 91/151/50 93/152/50
|
||||
f 49/65/13 93/153/13 92/154/13
|
||||
f 39/84/1 83/155/1 82/156/1
|
||||
f 46/72/8 90/157/8 89/158/8
|
||||
f 43/78/5 87/159/5 86/160/5
|
||||
f 38/82/12 82/161/12 93/162/12
|
||||
f 40/68/2 84/163/2 83/164/2
|
||||
f 47/71/9 91/165/9 90/166/9
|
||||
f 43/77/6 44/76/6 88/167/6
|
||||
f 41/26/3 85/168/3 84/169/3
|
||||
f 48/69/10 92/170/10 91/171/10
|
||||
f 45/74/7 89/172/7 88/173/7
|
||||
f 99/174/8 98/175/8 100/146/8
|
||||
f 95/176/49 94/149/49 98/177/49
|
||||
f 3/67/1 1/1/1 4/3/1
|
||||
f 3/67/2 4/3/2 5/5/2
|
||||
f 7/7/3 5/5/3 8/6/3
|
||||
f 9/80/4 7/7/4 10/8/4
|
||||
f 9/80/5 10/8/5 11/10/5
|
||||
f 11/10/6 12/9/6 13/12/6
|
||||
f 15/16/7 13/13/7 16/15/7
|
||||
f 17/70/8 15/16/8 18/17/8
|
||||
f 17/70/9 18/17/9 19/19/9
|
||||
f 19/19/10 20/18/10 21/21/10
|
||||
f 12/9/11 10/8/11 30/23/11
|
||||
f 23/25/12 24/24/12 1/1/12
|
||||
f 21/21/13 22/20/13 23/25/13
|
||||
f 5/5/14 7/7/14 40/27/14
|
||||
f 10/8/15 8/6/15 29/29/15
|
||||
f 26/54/16 2/2/16 36/30/16
|
||||
f 4/3/17 2/2/17 25/32/17
|
||||
f 8/6/18 6/4/18 28/34/18
|
||||
f 36/52/19 24/24/19 35/35/19
|
||||
f 6/4/20 4/3/20 27/37/20
|
||||
f 22/20/21 20/18/21 35/39/21
|
||||
f 20/18/22 18/17/22 34/41/22
|
||||
f 18/17/23 16/15/23 33/43/23
|
||||
f 16/15/24 14/14/24 32/45/24
|
||||
f 31/56/25 14/11/25 30/46/25
|
||||
f 41/81/4 42/62/4 85/64/4
|
||||
f 21/21/38 23/25/38 48/66/38
|
||||
f 39/178/39 3/67/39 40/68/39
|
||||
f 47/179/40 19/19/40 48/69/40
|
||||
f 46/180/41 17/70/41 47/71/41
|
||||
f 15/16/42 17/70/42 45/73/42
|
||||
f 13/13/43 15/16/43 44/75/43
|
||||
f 11/10/44 13/12/44 43/77/44
|
||||
f 9/80/45 11/10/45 42/79/45
|
||||
f 7/7/46 9/80/46 41/81/46
|
||||
f 23/25/47 1/1/47 49/83/47
|
||||
f 1/1/48 3/67/48 38/85/48
|
||||
f 59/92/49 61/86/49 53/88/49
|
||||
f 50/96/49 60/89/49 52/91/49
|
||||
f 58/90/49 59/92/49 56/94/49
|
||||
f 61/86/49 60/89/49 55/97/49
|
||||
f 64/106/50 67/98/50 65/100/50
|
||||
f 63/108/50 62/101/50 69/103/50
|
||||
f 68/102/50 73/104/50 64/106/50
|
||||
f 65/100/50 71/109/50 69/103/50
|
||||
f 68/135/51 58/110/51 69/112/51
|
||||
f 54/131/8 50/113/8 70/115/8
|
||||
f 50/113/52 52/116/52 63/114/52
|
||||
f 56/134/53 57/118/53 73/120/53
|
||||
f 60/111/53 61/121/53 69/112/53
|
||||
f 51/133/5 55/123/5 66/125/5
|
||||
f 61/181/52 59/126/52 65/128/52
|
||||
f 57/118/2 53/129/2 72/119/2
|
||||
f 55/182/54 54/131/54 71/132/54
|
||||
f 67/130/51 53/129/51 66/125/51
|
||||
f 52/116/13 56/134/13 62/117/13
|
||||
f 59/126/54 58/110/54 64/127/54
|
||||
f 75/143/13 77/136/13 74/138/13
|
||||
f 77/136/50 81/139/50 76/137/50
|
||||
f 81/139/5 79/141/5 80/140/5
|
||||
f 79/183/49 75/143/49 78/144/49
|
||||
f 97/148/50 101/145/50 96/147/50
|
||||
f 95/176/2 97/148/2 94/149/2
|
||||
f 93/152/50 82/184/50 85/150/50
|
||||
f 83/185/50 84/186/50 85/150/50
|
||||
f 85/150/50 86/187/50 87/188/50
|
||||
f 87/188/50 88/189/50 89/190/50
|
||||
f 89/190/50 90/191/50 91/151/50
|
||||
f 91/151/50 92/192/50 93/152/50
|
||||
f 82/184/50 83/185/50 85/150/50
|
||||
f 85/150/50 87/188/50 89/190/50
|
||||
f 89/190/50 91/151/50 85/150/50
|
||||
f 48/66/13 49/65/13 92/154/13
|
||||
f 38/85/1 39/84/1 82/156/1
|
||||
f 45/73/8 46/72/8 89/158/8
|
||||
f 42/79/5 43/78/5 86/160/5
|
||||
f 49/83/12 38/82/12 93/162/12
|
||||
f 39/178/2 40/68/2 83/164/2
|
||||
f 46/180/9 47/71/9 90/166/9
|
||||
f 87/193/6 43/77/6 88/167/6
|
||||
f 40/27/3 41/26/3 84/169/3
|
||||
f 47/179/10 48/69/10 91/171/10
|
||||
f 44/75/7 45/74/7 88/173/7
|
||||
f 101/145/8 99/174/8 100/146/8
|
||||
f 99/194/49 95/176/49 98/177/49
|
||||
BIN
assets/hbm/textures/models/bale.png
Normal file
BIN
assets/hbm/textures/models/bale.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
@ -1,26 +1,90 @@
|
||||
package com.hbm.entity.projectile;
|
||||
|
||||
import com.hbm.handler.BulletConfiguration;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.IProjectile;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class EntityBulletBase extends Entity implements IProjectile {
|
||||
|
||||
private BulletConfiguration config;
|
||||
private EntityLivingBase shooter;
|
||||
|
||||
public EntityBulletBase(World p_i1582_1_) {
|
||||
super(p_i1582_1_);
|
||||
private EntityBulletBase(World world) { super(world); }
|
||||
|
||||
private EntityBulletBase(World world, BulletConfiguration config) {
|
||||
super(world);
|
||||
this.config = config;
|
||||
|
||||
this.setSize(0.5F, 0.5F);
|
||||
}
|
||||
|
||||
public EntityBulletBase(World world, BulletConfiguration config, EntityLivingBase entity, float vel) {
|
||||
super(world);
|
||||
this.config = config;
|
||||
shooter = entity;
|
||||
|
||||
this.setLocationAndAngles(entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ, entity.rotationYaw, entity.rotationPitch);
|
||||
|
||||
this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F;
|
||||
this.posY -= 0.10000000149011612D;
|
||||
this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F;
|
||||
this.setPosition(this.posX, this.posY, this.posZ);
|
||||
|
||||
this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI);
|
||||
this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI);
|
||||
this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI));
|
||||
|
||||
this.setSize(0.5F, 0.5F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_,
|
||||
float p_70186_8_) {
|
||||
// TODO Auto-generated method stub
|
||||
public void setThrowableHeading(double moX, double moY, double moZ, float mult1, float mult2) {
|
||||
|
||||
float deviation = 0;
|
||||
|
||||
if(config != null)
|
||||
deviation = config.spread;
|
||||
|
||||
float f2 = MathHelper.sqrt_double(moX * moX + moY * moY + moZ * moZ);
|
||||
moX /= f2;
|
||||
moY /= f2;
|
||||
moZ /= f2;
|
||||
moX += this.rand.nextGaussian() * /*(this.rand.nextBoolean() ? -1 : 1) **/ deviation * mult2;
|
||||
moY += this.rand.nextGaussian() * /*(this.rand.nextBoolean() ? -1 : 1) **/ deviation * mult2;
|
||||
moZ += this.rand.nextGaussian() * /*(this.rand.nextBoolean() ? -1 : 1) **/ deviation * mult2;
|
||||
moX *= mult1;
|
||||
moY *= mult1;
|
||||
moZ *= mult1;
|
||||
this.motionX = moX;
|
||||
this.motionY = moY;
|
||||
this.motionZ = moZ;
|
||||
|
||||
float f3 = MathHelper.sqrt_double(moX * moX + moZ * moZ);
|
||||
this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(moX, moZ) * 180.0D / Math.PI);
|
||||
this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(moY, f3) * 180.0D / Math.PI);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void entityInit() {
|
||||
// TODO Auto-generated method stub
|
||||
//style
|
||||
this.dataWatcher.addObject(16, Byte.valueOf((byte) 0));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate() {
|
||||
|
||||
super.onUpdate();
|
||||
|
||||
if(config == null) {
|
||||
this.setDead();
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -1,11 +1,16 @@
|
||||
package com.hbm.handler;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
|
||||
public class BulletConfiguration {
|
||||
|
||||
//what item this specific configuration consumes
|
||||
public Item ammo;
|
||||
//spread of bullets in gaussian range
|
||||
public float spread;
|
||||
|
||||
//damage bounds
|
||||
public float dmgMin;
|
||||
@ -13,6 +18,8 @@ public class BulletConfiguration {
|
||||
|
||||
//acceleration torwards neg Y
|
||||
public double gravity;
|
||||
//max age in ticks before despawning
|
||||
public int maxAge;
|
||||
|
||||
//whether the projectile should be able to bounce off of blocks
|
||||
public boolean doesRicochet;
|
||||
@ -25,18 +32,18 @@ public class BulletConfiguration {
|
||||
public boolean doesBreakGlass;
|
||||
|
||||
//bullet effects
|
||||
public List<PotionEffect> effects;
|
||||
public int incendiary;
|
||||
public int poison;
|
||||
public int wither;
|
||||
public int emp;
|
||||
public int stun;
|
||||
public int explosive;
|
||||
public int rainbow;
|
||||
public int nuke;
|
||||
public boolean boxcar;
|
||||
public boolean destroysBlocks;
|
||||
|
||||
//appearance for rendering
|
||||
//appearance
|
||||
public int style;
|
||||
//0: no plinking, 1: bullet plink, 2: grenade plink
|
||||
public int plink;
|
||||
|
||||
}
|
||||
|
||||
55
com/hbm/handler/GunConfigFactory.java
Normal file
55
com/hbm/handler/GunConfigFactory.java
Normal file
@ -0,0 +1,55 @@
|
||||
package com.hbm.handler;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.hbm.items.ModItems;
|
||||
|
||||
public class GunConfigFactory {
|
||||
|
||||
public static GunConfiguration getRevolverConfig() {
|
||||
|
||||
BulletConfiguration bullet = new BulletConfiguration();
|
||||
|
||||
bullet.ammo = ModItems.gun_revolver_lead_ammo;
|
||||
bullet.spread = 0F;
|
||||
bullet.dmgMin = 15;
|
||||
bullet.dmgMax = 17;
|
||||
bullet.gravity = 0D;
|
||||
bullet.maxAge = 100;
|
||||
bullet.doesRicochet = true;
|
||||
bullet.ricochetAngle = 15;
|
||||
bullet.doesPenetrate = true;
|
||||
bullet.doesBreakGlass = true;
|
||||
bullet.incendiary = 0;
|
||||
bullet.emp = 0;
|
||||
bullet.rainbow = 0;
|
||||
bullet.nuke = 0;
|
||||
bullet.boxcar = false;
|
||||
bullet.destroysBlocks = false;
|
||||
bullet.style = 0;
|
||||
bullet.plink = 1;
|
||||
|
||||
GunConfiguration config = new GunConfiguration();
|
||||
|
||||
config.rateOfFire = 20;
|
||||
config.bulletsMin = 1;
|
||||
config.bulletsMax = 1;
|
||||
config.gunMode = 0;
|
||||
config.firingMode = 0;
|
||||
config.hasReloadAnim = false;
|
||||
config.hasFiringAnim = false;
|
||||
config.hasSpinup = false;
|
||||
config.hasSpindown = false;
|
||||
config.reloadDuration = 0;
|
||||
config.firingDuration = 0;
|
||||
config.ammoCap = 6;
|
||||
config.reloadType = 1;
|
||||
config.allowsInfinity = true;
|
||||
|
||||
config.config = new ArrayList<BulletConfiguration>();
|
||||
config.config.add(bullet);
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
}
|
||||
@ -14,8 +14,6 @@ public class GunConfiguration {
|
||||
public int gunMode;
|
||||
//0 = manual, 1 = automatic
|
||||
public int firingMode;
|
||||
//spread of bullets in gaussian range
|
||||
public float spread;
|
||||
|
||||
//whether or not there is a reload delay animation
|
||||
public boolean hasReloadAnim;
|
||||
|
||||
@ -2,6 +2,7 @@ package com.hbm.items;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.handler.BucketHandler;
|
||||
import com.hbm.handler.GunConfigFactory;
|
||||
import com.hbm.items.bomb.*;
|
||||
import com.hbm.items.food.*;
|
||||
import com.hbm.items.gear.*;
|
||||
@ -2176,7 +2177,8 @@ public class ModItems {
|
||||
gun_skystinger = new GunStinger().setUnlocalizedName("gun_skystinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_skystinger");
|
||||
gun_stinger_ammo = new Item().setUnlocalizedName("gun_stinger_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger_ammo");
|
||||
gun_revolver_ammo = new Item().setUnlocalizedName("gun_revolver_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_ammo");
|
||||
gun_revolver = new GunRevolver(gun_revolver_ammo, 10, 25, false, false).setMaxDamage(500).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver");
|
||||
//gun_revolver = new GunRevolver(gun_revolver_ammo, 10, 25, false, false).setMaxDamage(500).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver");
|
||||
gun_revolver = new ItemGunBase(GunConfigFactory.getRevolverConfig()).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver");
|
||||
gun_revolver_saturnite = new GunRevolver(gun_revolver_ammo, 20, 35, false, false).setMaxDamage(2500).setUnlocalizedName("gun_revolver_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_saturnite");
|
||||
gun_revolver_iron_ammo = new Item().setUnlocalizedName("gun_revolver_iron_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_iron_ammo");
|
||||
gun_revolver_iron = new GunRevolver(gun_revolver_iron_ammo, 5, 15, false, false).setMaxDamage(100).setUnlocalizedName("gun_revolver_iron").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_iron");
|
||||
|
||||
@ -7,9 +7,12 @@ import org.lwjgl.input.Mouse;
|
||||
|
||||
import com.hbm.handler.GunConfiguration;
|
||||
import com.hbm.interfaces.IHoldableWeapon;
|
||||
import com.hbm.packet.GunButtonPacket;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import net.minecraft.client.entity.EntityClientPlayerMP;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
@ -21,6 +24,15 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
|
||||
|
||||
private GunConfiguration mainConfig;
|
||||
private GunConfiguration altConfig;
|
||||
|
||||
public ItemGunBase(GunConfiguration config) {
|
||||
mainConfig = config;
|
||||
}
|
||||
|
||||
public ItemGunBase(GunConfiguration config, GunConfiguration alt) {
|
||||
mainConfig = config;
|
||||
altConfig = alt;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
|
||||
@ -30,50 +42,62 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
|
||||
@Override
|
||||
public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrentItem) {
|
||||
|
||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||
|
||||
boolean left = getIsMouseDown(stack);
|
||||
boolean right = getIsAltDown(stack);
|
||||
|
||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT && entity instanceof EntityPlayer && world.isRemote) {
|
||||
updateClient(stack, world, (EntityPlayer)entity, slot, isCurrentItem);
|
||||
} else {
|
||||
updateServer(stack, world, (EntityPlayer)entity, slot, isCurrentItem);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void updateClient(ItemStack stack, World world, EntityPlayer entity, int slot, boolean isCurrentItem) {
|
||||
|
||||
boolean clickLeft = Mouse.isButtonDown(0);
|
||||
boolean clickRight = Mouse.isButtonDown(1);
|
||||
boolean left = getIsMouseDown(stack);
|
||||
boolean right = getIsAltDown(stack);
|
||||
|
||||
if(isCurrentItem) {
|
||||
if(left && right) {
|
||||
//TODO: stop both with packet
|
||||
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0));
|
||||
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1));
|
||||
setIsMouseDown(stack, false);
|
||||
setIsAltDown(stack, false);
|
||||
}
|
||||
|
||||
if(!left && !right) {
|
||||
if(Mouse.isButtonDown(0)) {
|
||||
//TODO: start with packet
|
||||
if(clickLeft) {
|
||||
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 0));
|
||||
setIsMouseDown(stack, true);
|
||||
} else if(Mouse.isButtonDown(0)) {
|
||||
//TODO: start with packet
|
||||
} else if(clickRight) {
|
||||
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 1));
|
||||
setIsAltDown(stack, true);
|
||||
}
|
||||
}
|
||||
|
||||
if(left && !Mouse.isButtonDown(0)) {
|
||||
//TODO: stop with packet
|
||||
if(left && !clickLeft) {
|
||||
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0));
|
||||
setIsMouseDown(stack, false);
|
||||
}
|
||||
|
||||
if(right && !Mouse.isButtonDown(1)) {
|
||||
//TODO: stop with packet
|
||||
if(right && !clickRight) {
|
||||
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1));
|
||||
setIsAltDown(stack, false);
|
||||
}
|
||||
|
||||
if(mainConfig.reloadType != 0 || (altConfig != null && altConfig.reloadType != 0)) {
|
||||
|
||||
if(Keyboard.isKeyDown(Keyboard.KEY_R)) {
|
||||
|
||||
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 2));
|
||||
setIsReloading(stack, true);
|
||||
}
|
||||
//TODO: reload with packet
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void updateServer(ItemStack stack, World world, EntityPlayer entity, int slot, boolean isCurrentItem) {
|
||||
|
||||
}
|
||||
|
||||
//called every time the gun shoots
|
||||
private void fire(ItemStack stack, World world, EntityPlayer player) {
|
||||
@ -101,6 +125,16 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
|
||||
|
||||
}
|
||||
|
||||
/*//returns main config from itemstack
|
||||
public static GunConfiguration extractConfig(ItemStack stack) {
|
||||
|
||||
if(stack != null && stack.getItem() instanceof ItemGunBase) {
|
||||
return ((ItemGunBase)stack.getItem()).mainConfig;
|
||||
}
|
||||
|
||||
return null;
|
||||
}*/
|
||||
|
||||
/// if reloading routine is active ///
|
||||
public static void setIsReloading(ItemStack stack, boolean b) {
|
||||
writeNBT(stack, "isReloading", b ? 1 : 0);
|
||||
@ -147,11 +181,11 @@ public class ItemGunBase extends Item implements IHoldableWeapon {
|
||||
}
|
||||
|
||||
/// R/W reload animation timer ///
|
||||
public static void setReloadAnim(ItemStack stack, int i) {
|
||||
public static void setReloadCycle(ItemStack stack, int i) {
|
||||
writeNBT(stack, "reload", i);
|
||||
}
|
||||
|
||||
public static int getReloadAnim(ItemStack stack) {
|
||||
public static int getReloadCycle(ItemStack stack) {
|
||||
return readNBT(stack, "reload");
|
||||
}
|
||||
|
||||
|
||||
81
com/hbm/packet/GunButtonPacket.java
Normal file
81
com/hbm/packet/GunButtonPacket.java
Normal file
@ -0,0 +1,81 @@
|
||||
package com.hbm.packet;
|
||||
|
||||
import com.hbm.explosion.ExplosionLarge;
|
||||
import com.hbm.handler.FluidTypeHandler.FluidType;
|
||||
import com.hbm.items.weapon.ItemGunBase;
|
||||
import com.hbm.saveddata.SatelliteSaveStructure;
|
||||
import com.hbm.saveddata.SatelliteSavedData;
|
||||
import com.hbm.tileentity.bomb.TileEntityTurretCIWS;
|
||||
import com.hbm.tileentity.bomb.TileEntityTurretCheapo;
|
||||
import com.hbm.tileentity.machine.TileEntityAMSBase;
|
||||
import com.hbm.tileentity.machine.TileEntityAMSEmitter;
|
||||
import com.hbm.tileentity.machine.TileEntityAMSLimiter;
|
||||
import com.hbm.tileentity.machine.TileEntityForceField;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineDiesel;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineReactorLarge;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineReactorSmall;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine;
|
||||
import com.hbm.tileentity.machine.TileEntityRadioRec;
|
||||
import com.hbm.tileentity.machine.TileEntityReactorControl;
|
||||
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessage;
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
|
||||
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class GunButtonPacket implements IMessage {
|
||||
|
||||
//true or false, whether or not the key is pressed
|
||||
boolean state;
|
||||
//0: [M1]
|
||||
//1: [M2]
|
||||
//2: [R]
|
||||
byte button;
|
||||
|
||||
public GunButtonPacket() { }
|
||||
|
||||
public GunButtonPacket(boolean m1, byte b) {
|
||||
state = m1;
|
||||
button = b;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
state = buf.readBoolean();
|
||||
button = buf.readByte();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeBoolean(state);
|
||||
buf.writeByte(button);
|
||||
}
|
||||
|
||||
public static class Handler implements IMessageHandler<GunButtonPacket, IMessage> {
|
||||
|
||||
@Override
|
||||
public IMessage onMessage(GunButtonPacket m, MessageContext ctx) {
|
||||
|
||||
EntityPlayer p = ctx.getServerHandler().playerEntity;
|
||||
|
||||
if(p.getHeldItem() != null && p.getHeldItem().getItem() instanceof ItemGunBase) {
|
||||
|
||||
switch(m.button) {
|
||||
case 0: ItemGunBase.setIsMouseDown(p.getHeldItem(), m.state); break;
|
||||
case 1: ItemGunBase.setIsAltDown(p.getHeldItem(), m.state); break;
|
||||
case 2: ItemGunBase.setIsReloading(p.getHeldItem(), true); break;
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println(m.button + ": " + m.state);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -79,6 +79,8 @@ public class PacketDispatcher {
|
||||
wrapper.registerMessage(TEFFPacket.Handler.class, TEFFPacket.class, i++, Side.CLIENT);
|
||||
//Information packet for the reactor control block
|
||||
wrapper.registerMessage(TEControlPacket.Handler.class, TEControlPacket.class, i++, Side.CLIENT);
|
||||
//Sends button information for ItemGunBase
|
||||
wrapper.registerMessage(GunButtonPacket.Handler.class, GunButtonPacket.class, i++, Side.SERVER);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.entity.Render;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
@ -40,6 +41,10 @@ public class RenderRocket extends Render {
|
||||
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/bullet.png"));
|
||||
}
|
||||
miniNuke.renderAll(0.0625F);
|
||||
|
||||
//renderFlechette();
|
||||
//renderDart();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@ -55,5 +60,216 @@ public class RenderRocket extends Render {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void renderFlechette() {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
|
||||
GL11.glScalef(1F/16F, 1F/16F, 1F/16F);
|
||||
GL11.glScalef(-1, 1, 1);
|
||||
|
||||
Tessellator tess = Tessellator.instance;
|
||||
|
||||
//back
|
||||
GL11.glColor3f(0.15F, 0.15F, 0.15F);
|
||||
tess.startDrawingQuads();
|
||||
tess.addVertex(0, 1, -1);
|
||||
tess.addVertex(0, -1, -1);
|
||||
tess.addVertex(0, -1, 1);
|
||||
tess.addVertex(0, 1, 1);
|
||||
tess.draw();
|
||||
|
||||
//base
|
||||
tess.startDrawingQuads();
|
||||
tess.addVertex(1, -0.5, -0.5);
|
||||
tess.addVertex(0, -1, -1);
|
||||
tess.addVertex(0, 1, -1);
|
||||
tess.addVertex(1, 0.5, -0.5);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawingQuads();
|
||||
tess.addVertex(0, -1, 1);
|
||||
tess.addVertex(1, -0.5, 0.5);
|
||||
tess.addVertex(1, 0.5, 0.5);
|
||||
tess.addVertex(0, 1, 1);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawingQuads();
|
||||
tess.addVertex(0, -1, -1);
|
||||
tess.addVertex(1, -0.5, -0.5);
|
||||
tess.addVertex(1, -0.5, 0.5);
|
||||
tess.addVertex(0, -1, 1);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawingQuads();
|
||||
tess.addVertex(1, 0.5, -0.5);
|
||||
tess.addVertex(0, 1, -1);
|
||||
tess.addVertex(0, 1, 1);
|
||||
tess.addVertex(1, 0.5, 0.5);
|
||||
tess.draw();
|
||||
|
||||
//pin
|
||||
tess.startDrawing(4);
|
||||
tess.addVertex(1, -0.5, -0.5);
|
||||
tess.addVertex(1, 0.5, -0.5);
|
||||
tess.addVertex(6, 0, 0);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawing(4);
|
||||
tess.addVertex(1, -0.5, 0.5);
|
||||
tess.addVertex(6, 0, 0);
|
||||
tess.addVertex(1, 0.5, 0.5);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawing(4);
|
||||
tess.addVertex(1, -0.5, -0.5);
|
||||
tess.addVertex(6, 0, 0);
|
||||
tess.addVertex(1, -0.5, 0.5);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawing(4);
|
||||
tess.addVertex(1, 0.5, -0.5);
|
||||
tess.addVertex(1, 0.5, 0.5);
|
||||
tess.addVertex(6, 0, 0);
|
||||
tess.draw();
|
||||
|
||||
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
private void renderDart() {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
|
||||
GL11.glDisable(GL11.GL_ALPHA_TEST);
|
||||
GL11.glDepthMask(false);
|
||||
|
||||
GL11.glScalef(1F/4F, 1F/8F, 1F/8F);
|
||||
GL11.glScalef(-1, 1, 1);
|
||||
|
||||
Tessellator tess = Tessellator.instance;
|
||||
|
||||
float red = 0.125F;
|
||||
float green = 0.0F;
|
||||
float blue = 1.0F;
|
||||
|
||||
//front
|
||||
tess.startDrawing(4);
|
||||
tess.setColorRGBA_F(red, green, blue, 1);
|
||||
tess.addVertex(6, 0, 0);
|
||||
tess.setColorRGBA_F(red, green, blue, 0);
|
||||
tess.addVertex(3, -1, -1);
|
||||
tess.addVertex(3, 1, -1);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawing(4);
|
||||
tess.setColorRGBA_F(red, green, blue, 0);
|
||||
tess.addVertex(3, -1, 1);
|
||||
tess.setColorRGBA_F(red, green, blue, 1);
|
||||
tess.addVertex(6, 0, 0);
|
||||
tess.setColorRGBA_F(red, green, blue, 0);
|
||||
tess.addVertex(3, 1, 1);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawing(4);
|
||||
tess.setColorRGBA_F(red, green, blue, 0);
|
||||
tess.addVertex(3, -1, -1);
|
||||
tess.setColorRGBA_F(red, green, blue, 1);
|
||||
tess.addVertex(6, 0, 0);
|
||||
tess.setColorRGBA_F(red, green, blue, 0);
|
||||
tess.addVertex(3, -1, 1);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawing(4);
|
||||
tess.setColorRGBA_F(red, green, blue, 1);
|
||||
tess.addVertex(6, 0, 0);
|
||||
tess.setColorRGBA_F(red, green, blue, 0);
|
||||
tess.addVertex(3, 1, -1);
|
||||
tess.setColorRGBA_F(red, green, blue, 0);
|
||||
tess.addVertex(3, 1, 1);
|
||||
tess.draw();
|
||||
|
||||
//mid
|
||||
tess.startDrawing(4);
|
||||
tess.setColorRGBA_F(red, green, blue, 1);
|
||||
tess.addVertex(6, 0, 0);
|
||||
tess.addVertex(4, -0.5, -0.5);
|
||||
tess.addVertex(4, 0.5, -0.5);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawing(4);
|
||||
tess.setColorRGBA_F(red, green, blue, 1);
|
||||
tess.addVertex(4, -0.5, 0.5);
|
||||
tess.addVertex(6, 0, 0);
|
||||
tess.addVertex(4, 0.5, 0.5);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawing(4);
|
||||
tess.setColorRGBA_F(red, green, blue, 1);
|
||||
tess.addVertex(4, -0.5, -0.5);
|
||||
tess.addVertex(6, 0, 0);
|
||||
tess.addVertex(4, -0.5, 0.5);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawing(4);
|
||||
tess.setColorRGBA_F(red, green, blue, 1);
|
||||
tess.addVertex(6, 0, 0);
|
||||
tess.addVertex(4, 0.5, -0.5);
|
||||
tess.addVertex(4, 0.5, 0.5);
|
||||
tess.draw();
|
||||
|
||||
//tail
|
||||
tess.startDrawingQuads();
|
||||
tess.setColorRGBA_F(red, green, blue, 1);
|
||||
tess.addVertex(4, 0.5, -0.5);
|
||||
tess.addVertex(4, 0.5, 0.5);
|
||||
tess.setColorRGBA_F(red, green, blue, 0);
|
||||
tess.addVertex(0, 0.5, 0.5);
|
||||
tess.addVertex(0, 0.5, -0.5);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawingQuads();
|
||||
tess.setColorRGBA_F(red, green, blue, 1);
|
||||
tess.addVertex(4, -0.5, -0.5);
|
||||
tess.addVertex(4, -0.5, 0.5);
|
||||
tess.setColorRGBA_F(red, green, blue, 0);
|
||||
tess.addVertex(0, -0.5, 0.5);
|
||||
tess.addVertex(0, -0.5, -0.5);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawingQuads();
|
||||
tess.setColorRGBA_F(red, green, blue, 1);
|
||||
tess.addVertex(4, -0.5, 0.5);
|
||||
tess.addVertex(4, 0.5, 0.5);
|
||||
tess.setColorRGBA_F(red, green, blue, 0);
|
||||
tess.addVertex(0, 0.5, 0.5);
|
||||
tess.addVertex(0, -0.5, 0.5);
|
||||
tess.draw();
|
||||
|
||||
tess.startDrawingQuads();
|
||||
tess.setColorRGBA_F(red, green, blue, 1);
|
||||
tess.addVertex(4, -0.5, -0.5);
|
||||
tess.addVertex(4, 0.5, -0.5);
|
||||
tess.setColorRGBA_F(red, green, blue, 0);
|
||||
tess.addVertex(0, 0.5, -0.5);
|
||||
tess.addVertex(0, -0.5, -0.5);
|
||||
tess.draw();
|
||||
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
GL11.glDepthMask(true);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user