Implemented liquid turrets with ammo / Implemented flamer turret
This commit is contained in:
BIN
core/assets-raw/sprites/blocks/production/liquidsource.png
Normal file
BIN
core/assets-raw/sprites/blocks/production/liquidsource.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 243 B |
@@ -132,70 +132,70 @@ multiplexer
|
|||||||
index: -1
|
index: -1
|
||||||
poweredconveyor
|
poweredconveyor
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 413, 103
|
xy: 572, 161
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
poweredconveyormove
|
poweredconveyormove
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 572, 161
|
xy: 582, 165
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
pulseconduit-bottom
|
pulseconduit-bottom
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 592, 160
|
xy: 592, 150
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
pulseconduit-top
|
pulseconduit-top
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 592, 150
|
xy: 582, 145
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
router
|
router
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 756, 384
|
xy: 766, 384
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
sortedunloader
|
sortedunloader
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 423, 103
|
xy: 433, 144
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
sorter
|
sorter
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 433, 144
|
xy: 443, 144
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
splitter
|
splitter
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 443, 144
|
xy: 433, 134
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
steelconveyor
|
steelconveyor
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 433, 134
|
xy: 453, 144
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
steelconveyormove
|
steelconveyormove
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 453, 144
|
xy: 433, 124
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -209,7 +209,7 @@ teleporter-top
|
|||||||
index: -1
|
index: -1
|
||||||
unloader
|
unloader
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 493, 124
|
xy: 483, 104
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -223,7 +223,7 @@ vault
|
|||||||
index: -1
|
index: -1
|
||||||
vault-icon
|
vault-icon
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 483, 104
|
xy: 493, 114
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -524,14 +524,14 @@ lead3
|
|||||||
index: -1
|
index: -1
|
||||||
mossblock
|
mossblock
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 373, 104
|
xy: 383, 104
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
oil
|
oil
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 383, 104
|
xy: 393, 103
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -545,56 +545,56 @@ oiledge
|
|||||||
index: -1
|
index: -1
|
||||||
rock1
|
rock1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 717, 281
|
xy: 678, 207
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
rock2
|
rock2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 678, 207
|
xy: 756, 384
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
sand1
|
sand1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 786, 387
|
xy: 796, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
sand2
|
sand2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 796, 387
|
xy: 806, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
sand3
|
sand3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 806, 387
|
xy: 816, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
sandblock1
|
sandblock1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 816, 387
|
xy: 826, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
sandblock2
|
sandblock2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 826, 387
|
xy: 836, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
sandblock3
|
sandblock3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 836, 387
|
xy: 846, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -608,56 +608,56 @@ sandedge
|
|||||||
index: -1
|
index: -1
|
||||||
shrub
|
shrub
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 926, 387
|
xy: 936, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
shrubshadow
|
shrubshadow
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 936, 387
|
xy: 946, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
snow1
|
snow1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 966, 387
|
xy: 681, 231
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
snow2
|
snow2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 681, 231
|
xy: 682, 221
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
snow3
|
snow3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 682, 221
|
xy: 423, 143
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
snowblock1
|
snowblock1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 423, 143
|
xy: 423, 133
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
snowblock2
|
snowblock2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 423, 133
|
xy: 423, 123
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
snowblock3
|
snowblock3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 423, 123
|
xy: 423, 113
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -671,42 +671,42 @@ snowedge
|
|||||||
index: -1
|
index: -1
|
||||||
stone1
|
stone1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 443, 124
|
xy: 453, 134
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
stone2
|
stone2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 453, 134
|
xy: 473, 144
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
stone3
|
stone3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 473, 144
|
xy: 433, 104
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
stoneblock1
|
stoneblock1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 433, 104
|
xy: 443, 114
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
stoneblock2
|
stoneblock2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 443, 114
|
xy: 453, 124
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
stoneblock3
|
stoneblock3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 453, 124
|
xy: 463, 134
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -720,49 +720,49 @@ stoneedge
|
|||||||
index: -1
|
index: -1
|
||||||
thorium1
|
thorium1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 463, 124
|
xy: 473, 134
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
thorium2
|
thorium2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 473, 134
|
xy: 493, 144
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
thorium3
|
thorium3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 493, 144
|
xy: 453, 104
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
titanium1
|
titanium1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 453, 104
|
xy: 463, 114
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
titanium2
|
titanium2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 463, 114
|
xy: 473, 124
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
titanium3
|
titanium3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 473, 124
|
xy: 483, 134
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
water
|
water
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 503, 143
|
xy: 513, 143
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -832,7 +832,7 @@ enemyspawn
|
|||||||
index: -1
|
index: -1
|
||||||
playerspawn
|
playerspawn
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 403, 103
|
xy: 413, 103
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -972,14 +972,14 @@ nuclearreactor-lights
|
|||||||
index: -1
|
index: -1
|
||||||
powerinfinite
|
powerinfinite
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 582, 165
|
xy: 572, 151
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
powernode
|
powernode
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 572, 151
|
xy: 582, 155
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -993,28 +993,28 @@ powernodelarge
|
|||||||
index: -1
|
index: -1
|
||||||
powervoid
|
powervoid
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 582, 155
|
xy: 592, 160
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
rtgenerator
|
rtgenerator
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 766, 384
|
xy: 776, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
rtgenerator-top
|
rtgenerator-top
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 776, 387
|
xy: 786, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
shieldgenerator
|
shieldgenerator
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 876, 387
|
xy: 886, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1028,7 +1028,7 @@ shieldprojector
|
|||||||
index: -1
|
index: -1
|
||||||
solarpanel
|
solarpanel
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 423, 113
|
xy: 423, 103
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1042,7 +1042,7 @@ teleporter
|
|||||||
index: -1
|
index: -1
|
||||||
thermalgenerator
|
thermalgenerator
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 453, 114
|
xy: 463, 124
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1236,13 +1236,20 @@ lavasmelter
|
|||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
melter
|
liquidsource
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 363, 103
|
xy: 363, 103
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
|
melter
|
||||||
|
rotate: false
|
||||||
|
xy: 373, 104
|
||||||
|
size: 8, 8
|
||||||
|
orig: 8, 8
|
||||||
|
offset: 0, 0
|
||||||
|
index: -1
|
||||||
nucleardrill
|
nucleardrill
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 751, 422
|
xy: 751, 422
|
||||||
@@ -1301,7 +1308,7 @@ oilextractor-top
|
|||||||
index: -1
|
index: -1
|
||||||
oilrefinery
|
oilrefinery
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 393, 103
|
xy: 403, 103
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1385,63 +1392,63 @@ siliconsmelter-top
|
|||||||
index: -1
|
index: -1
|
||||||
pulverizer
|
pulverizer
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 582, 145
|
xy: 592, 140
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
pulverizer-rotator
|
pulverizer-rotator
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 592, 140
|
xy: 677, 281
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
pump
|
pump
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 677, 281
|
xy: 687, 281
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
reinforceddrill
|
reinforceddrill
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 687, 281
|
xy: 697, 281
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
reinforceddrill-rotator
|
reinforceddrill-rotator
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 697, 281
|
xy: 707, 281
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
reinforceddrill-top
|
reinforceddrill-top
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 707, 281
|
xy: 717, 281
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
separator
|
separator
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 846, 387
|
xy: 856, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
separator-liquid
|
separator-liquid
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 856, 387
|
xy: 866, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
siliconextractor
|
siliconextractor
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 946, 387
|
xy: 956, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1455,56 +1462,56 @@ siliconsmelter
|
|||||||
index: -1
|
index: -1
|
||||||
smelter
|
smelter
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 956, 387
|
xy: 966, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
steeldrill
|
steeldrill
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 433, 124
|
xy: 443, 134
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
steeldrill-rotator
|
steeldrill-rotator
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 443, 134
|
xy: 463, 144
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
steeldrill-top
|
steeldrill-top
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 463, 144
|
xy: 433, 114
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
stonedrill
|
stonedrill
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 463, 134
|
xy: 483, 144
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
stoneformer
|
stoneformer
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 483, 144
|
xy: 443, 104
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
titaniumdrill
|
titaniumdrill
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 483, 134
|
xy: 463, 104
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
titaniumdrill-top
|
titaniumdrill-top
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 463, 104
|
xy: 473, 114
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1777,7 +1784,7 @@ ironwall
|
|||||||
index: -1
|
index: -1
|
||||||
steelwall
|
steelwall
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 433, 114
|
xy: 443, 124
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1791,21 +1798,21 @@ steelwall-large
|
|||||||
index: -1
|
index: -1
|
||||||
stonewall
|
stonewall
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 443, 104
|
xy: 453, 114
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
titaniumshieldwall
|
titaniumshieldwall
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 473, 114
|
xy: 483, 124
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
titaniumwall
|
titaniumwall
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 483, 124
|
xy: 493, 134
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1868,28 +1875,28 @@ laserfull
|
|||||||
index: -1
|
index: -1
|
||||||
shell
|
shell
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 866, 387
|
xy: 876, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
shot
|
shot
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 906, 387
|
xy: 916, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
shot-long
|
shot-long
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 916, 387
|
xy: 926, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
titanshell
|
titanshell
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 493, 134
|
xy: 473, 104
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -3043,42 +3050,42 @@ clustergun-equip
|
|||||||
index: -1
|
index: -1
|
||||||
shockgun
|
shockgun
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 886, 387
|
xy: 896, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
shockgun-equip
|
shockgun-equip
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 896, 387
|
xy: 906, 387
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
triblaster
|
triblaster
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 473, 104
|
xy: 483, 114
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
triblaster-equip
|
triblaster-equip
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 483, 114
|
xy: 493, 124
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
vulcan
|
vulcan
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 493, 114
|
xy: 493, 104
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
vulcan-equip
|
vulcan-equip
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 493, 104
|
xy: 503, 143
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 103 KiB |
@@ -1,7 +1,7 @@
|
|||||||
#Autogenerated file. Do not modify.
|
#Autogenerated file. Do not modify.
|
||||||
#Tue Apr 03 18:35:41 EDT 2018
|
#Tue Apr 03 22:20:20 EDT 2018
|
||||||
version=release
|
version=release
|
||||||
androidBuildCode=815
|
androidBuildCode=816
|
||||||
name=Mindustry
|
name=Mindustry
|
||||||
code=3.4
|
code=3.4
|
||||||
build=custom build
|
build=custom build
|
||||||
|
|||||||
@@ -6,5 +6,7 @@ import io.anuke.mindustry.resource.AmmoType;
|
|||||||
public class AmmoTypes {
|
public class AmmoTypes {
|
||||||
public static final AmmoType
|
public static final AmmoType
|
||||||
|
|
||||||
basicIron = new AmmoType(Items.iron, TurretBullets.basicIron, 5, 0.9f);
|
basicIron = new AmmoType(Items.iron, TurretBullets.basicIron, 5, 0.9f),
|
||||||
|
|
||||||
|
basicFlame = new AmmoType(Liquids.oil, TurretBullets.basicFlame, 0.3f, 0.9f);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,6 +121,7 @@ public class Recipes {
|
|||||||
|
|
||||||
new Recipe(units, DebugBlocks.itemSource, stack(Items.steel, 10)).setDebug(),
|
new Recipe(units, DebugBlocks.itemSource, stack(Items.steel, 10)).setDebug(),
|
||||||
new Recipe(units, DebugBlocks.itemVoid, stack(Items.steel, 10)).setDebug(),
|
new Recipe(units, DebugBlocks.itemVoid, stack(Items.steel, 10)).setDebug(),
|
||||||
|
new Recipe(units, DebugBlocks.liquidSource, stack(Items.steel, 10)).setDebug(),
|
||||||
new Recipe(units, DebugBlocks.powerVoid, stack(Items.steel, 10)).setDebug(),
|
new Recipe(units, DebugBlocks.powerVoid, stack(Items.steel, 10)).setDebug(),
|
||||||
new Recipe(units, DebugBlocks.powerInfinite, stack(Items.steel, 10), stack(Items.densealloy, 5)).setDebug()
|
new Recipe(units, DebugBlocks.powerInfinite, stack(Items.steel, 10), stack(Items.densealloy, 5)).setDebug()
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,11 +1,23 @@
|
|||||||
package io.anuke.mindustry.content.blocks;
|
package io.anuke.mindustry.content.blocks;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
|
import io.anuke.mindustry.content.Liquids;
|
||||||
|
import io.anuke.mindustry.entities.TileEntity;
|
||||||
import io.anuke.mindustry.resource.Item;
|
import io.anuke.mindustry.resource.Item;
|
||||||
|
import io.anuke.mindustry.resource.Liquid;
|
||||||
import io.anuke.mindustry.world.Block;
|
import io.anuke.mindustry.world.Block;
|
||||||
import io.anuke.mindustry.world.Tile;
|
import io.anuke.mindustry.world.Tile;
|
||||||
import io.anuke.mindustry.world.blocks.types.PowerBlock;
|
import io.anuke.mindustry.world.blocks.types.PowerBlock;
|
||||||
import io.anuke.mindustry.world.blocks.types.distribution.Sorter;
|
import io.anuke.mindustry.world.blocks.types.distribution.Sorter;
|
||||||
import io.anuke.mindustry.world.blocks.types.power.PowerDistributor;
|
import io.anuke.mindustry.world.blocks.types.power.PowerDistributor;
|
||||||
|
import io.anuke.ucore.graphics.Draw;
|
||||||
|
import io.anuke.ucore.scene.ui.ButtonGroup;
|
||||||
|
import io.anuke.ucore.scene.ui.ImageButton;
|
||||||
|
import io.anuke.ucore.scene.ui.layout.Table;
|
||||||
|
|
||||||
|
import java.io.DataInputStream;
|
||||||
|
import java.io.DataOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
public class DebugBlocks {
|
public class DebugBlocks {
|
||||||
public static final Block
|
public static final Block
|
||||||
@@ -43,6 +55,90 @@ public class DebugBlocks {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
liquidSource = new Block("liquidsource"){
|
||||||
|
{
|
||||||
|
update = true;
|
||||||
|
solid = true;
|
||||||
|
hasLiquids = true;
|
||||||
|
liquidCapacity = 100f;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isConfigurable(Tile tile) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update(Tile tile) {
|
||||||
|
LiquidSourceEntity entity = tile.entity();
|
||||||
|
|
||||||
|
tile.entity.liquid.amount = liquidCapacity;
|
||||||
|
tile.entity.liquid.liquid = entity.source;
|
||||||
|
tryDumpLiquid(tile);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void draw(Tile tile){
|
||||||
|
super.draw(tile);
|
||||||
|
|
||||||
|
LiquidSourceEntity entity = tile.entity();
|
||||||
|
|
||||||
|
Draw.color(entity.source.color);
|
||||||
|
Draw.rect("blank", tile.worldx(), tile.worldy(), 4f, 4f);
|
||||||
|
Draw.color();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildTable(Tile tile, Table table){
|
||||||
|
LiquidSourceEntity entity = tile.entity();
|
||||||
|
|
||||||
|
Array<Liquid> items = Liquid.getAllLiquids();
|
||||||
|
|
||||||
|
ButtonGroup<ImageButton> group = new ButtonGroup<>();
|
||||||
|
Table cont = new Table();
|
||||||
|
cont.margin(4);
|
||||||
|
cont.marginBottom(5);
|
||||||
|
|
||||||
|
cont.add().colspan(4).height(50f * (int)(items.size/4f + 1f));
|
||||||
|
cont.row();
|
||||||
|
|
||||||
|
for(int i = 0; i < items.size; i ++){
|
||||||
|
if(i == 0) continue;
|
||||||
|
final int f = i;
|
||||||
|
ImageButton button = cont.addImageButton("white", "toggle", 24, () -> {
|
||||||
|
entity.source = items.get(f);
|
||||||
|
}).size(38, 42).padBottom(-5.1f).group(group).get();
|
||||||
|
button.getStyle().imageUpColor = items.get(i).color;
|
||||||
|
button.setChecked(entity.source.id == f);
|
||||||
|
|
||||||
|
if(i%4 == 3){
|
||||||
|
cont.row();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
table.add(cont);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TileEntity getEntity(){
|
||||||
|
return new LiquidSourceEntity();
|
||||||
|
}
|
||||||
|
|
||||||
|
class LiquidSourceEntity extends TileEntity{
|
||||||
|
public Liquid source = Liquids.water;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(DataOutputStream stream) throws IOException {
|
||||||
|
stream.writeByte(source.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(DataInputStream stream) throws IOException {
|
||||||
|
source = Liquid.getByID(stream.readByte());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
itemVoid = new Block("itemvoid"){
|
itemVoid = new Block("itemvoid"){
|
||||||
{
|
{
|
||||||
update = solid = true;
|
update = solid = true;
|
||||||
|
|||||||
@@ -35,9 +35,14 @@ public class WeaponBlocks{
|
|||||||
ammoUseEffect = BulletFx.shellEjectSmall;
|
ammoUseEffect = BulletFx.shellEjectSmall;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
flameturret = new Turret("flameturret"){
|
flameturret = new LiquidTurret("flameturret"){{
|
||||||
|
ammoTypes = new AmmoType[]{AmmoTypes.basicFlame};
|
||||||
},
|
recoil = 0f;
|
||||||
|
reload = 5f;
|
||||||
|
shootCone = 50f;
|
||||||
|
shootEffect = BulletFx.shootSmallFlame;
|
||||||
|
ammoUseEffect = BulletFx.shellEjectSmall;
|
||||||
|
}},
|
||||||
|
|
||||||
railgunturret = new Turret("railgunturret"){
|
railgunturret = new Turret("railgunturret"){
|
||||||
|
|
||||||
@@ -55,9 +60,9 @@ public class WeaponBlocks{
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
magmaturret = new LiquidTurret("magmaturret") {
|
magmaturret = new LiquidTurret("magmaturret") {{
|
||||||
|
ammoTypes = new AmmoType[]{AmmoTypes.basicFlame};
|
||||||
},
|
}},
|
||||||
|
|
||||||
plasmaturret = new Turret("plasmaturret"){
|
plasmaturret = new Turret("plasmaturret"){
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package io.anuke.mindustry.content.bullets;
|
|||||||
import com.badlogic.gdx.graphics.Color;
|
import com.badlogic.gdx.graphics.Color;
|
||||||
import io.anuke.mindustry.entities.Bullet;
|
import io.anuke.mindustry.entities.Bullet;
|
||||||
import io.anuke.mindustry.entities.BulletType;
|
import io.anuke.mindustry.entities.BulletType;
|
||||||
|
import io.anuke.mindustry.graphics.fx.BulletFx;
|
||||||
|
import io.anuke.mindustry.graphics.fx.Fx;
|
||||||
import io.anuke.ucore.graphics.Draw;
|
import io.anuke.ucore.graphics.Draw;
|
||||||
|
|
||||||
public class TurretBullets {
|
public class TurretBullets {
|
||||||
@@ -15,5 +17,19 @@ public class TurretBullets {
|
|||||||
Draw.rect("bullet", b.x, b.y, 9f, 5f + b.fract()*7f, b.angle() - 90);
|
Draw.rect("bullet", b.x, b.y, 9f, 5f + b.fract()*7f, b.angle() - 90);
|
||||||
Draw.color();
|
Draw.color();
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
basicFlame = new BulletType(2f, 4) {
|
||||||
|
{
|
||||||
|
hitsize = 7f;
|
||||||
|
lifetime = 30f;
|
||||||
|
pierce = true;
|
||||||
|
drag = 0.07f;
|
||||||
|
hiteffect = BulletFx.hitFlameSmall;
|
||||||
|
despawneffect = Fx.none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void draw(Bullet b) {}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ public class ContentLoader {
|
|||||||
|
|
||||||
//units
|
//units
|
||||||
new UnitTypes(),
|
new UnitTypes(),
|
||||||
|
|
||||||
|
//ammotypes
|
||||||
|
new AmmoTypes(),
|
||||||
};
|
};
|
||||||
|
|
||||||
for(Block block : Block.getAllBlocks()){
|
for(Block block : Block.getAllBlocks()){
|
||||||
|
|||||||
@@ -1,22 +1,22 @@
|
|||||||
package io.anuke.mindustry.entities;
|
package io.anuke.mindustry.entities;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.utils.IntSet;
|
||||||
import io.anuke.mindustry.game.Team;
|
import io.anuke.mindustry.game.Team;
|
||||||
import io.anuke.mindustry.world.Tile;
|
import io.anuke.mindustry.world.Tile;
|
||||||
import io.anuke.ucore.entities.BulletEntity;
|
import io.anuke.ucore.entities.BulletEntity;
|
||||||
import io.anuke.ucore.entities.Entity;
|
import io.anuke.ucore.entities.Entity;
|
||||||
|
import io.anuke.ucore.entities.SolidEntity;
|
||||||
import io.anuke.ucore.util.Timer;
|
import io.anuke.ucore.util.Timer;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.*;
|
import static io.anuke.mindustry.Vars.*;
|
||||||
|
|
||||||
public class Bullet extends BulletEntity{
|
public class Bullet extends BulletEntity{
|
||||||
|
public IntSet collided;
|
||||||
public Timer timer = new Timer(3);
|
public Timer timer = new Timer(3);
|
||||||
public Team team;
|
public Team team;
|
||||||
|
|
||||||
public Bullet(BulletType type, Unit owner, float x, float y, float angle){
|
public Bullet(BulletType type, Unit owner, float x, float y, float angle){
|
||||||
super(type, owner, angle);
|
this(type, owner, owner.team, x, y, angle);
|
||||||
this.type = type;
|
|
||||||
this.team = owner.team;
|
|
||||||
set(x, y);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Bullet(BulletType type, Entity owner, Team team, float x, float y, float angle){
|
public Bullet(BulletType type, Entity owner, Team team, float x, float y, float angle){
|
||||||
@@ -24,6 +24,10 @@ public class Bullet extends BulletEntity{
|
|||||||
this.team = team;
|
this.team = team;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
set(x, y);
|
set(x, y);
|
||||||
|
|
||||||
|
if(type.pierce){
|
||||||
|
collided = new IntSet();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Bullet(BulletType type, Bullet parent, float x, float y, float angle){
|
public Bullet(BulletType type, Bullet parent, float x, float y, float angle){
|
||||||
@@ -45,6 +49,7 @@ public class Bullet extends BulletEntity{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public float drawSize(){
|
public float drawSize(){
|
||||||
return 8;
|
return 8;
|
||||||
}
|
}
|
||||||
@@ -53,6 +58,18 @@ public class Bullet extends BulletEntity{
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean collides(SolidEntity other){
|
||||||
|
return super.collides(other) && (!type.pierce || !collided.contains(other.id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void collision(SolidEntity other, float x, float y){
|
||||||
|
super.collision(other, x, y);
|
||||||
|
if(type.pierce)
|
||||||
|
collided.add(other.id);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(){
|
public void update(){
|
||||||
super.update();
|
super.update();
|
||||||
|
|||||||
@@ -2,26 +2,25 @@ package io.anuke.mindustry.entities;
|
|||||||
|
|
||||||
import io.anuke.mindustry.graphics.fx.BulletFx;
|
import io.anuke.mindustry.graphics.fx.BulletFx;
|
||||||
import io.anuke.ucore.core.Effects;
|
import io.anuke.ucore.core.Effects;
|
||||||
import io.anuke.ucore.core.Effects.Effect;
|
|
||||||
import io.anuke.ucore.entities.BaseBulletType;
|
import io.anuke.ucore.entities.BaseBulletType;
|
||||||
|
|
||||||
public abstract class BulletType extends BaseBulletType<Bullet>{
|
public abstract class BulletType extends BaseBulletType<Bullet>{
|
||||||
public Effect hitEffect = BulletFx.hit;
|
|
||||||
public Effect despawnEffect = BulletFx.despawn;
|
|
||||||
|
|
||||||
public BulletType(float speed, int damage){
|
public BulletType(float speed, int damage){
|
||||||
this.speed = speed;
|
this.speed = speed;
|
||||||
this.damage = damage;
|
this.damage = damage;
|
||||||
lifetime = 40f;
|
lifetime = 40f;
|
||||||
|
hiteffect = BulletFx.hitBulletSmall;
|
||||||
|
despawneffect = BulletFx.despawn;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void hit(Bullet b, float hitx, float hity){
|
public void hit(Bullet b, float hitx, float hity){
|
||||||
Effects.effect(hitEffect, hitx, hity, b.angle());
|
Effects.effect(hiteffect, hitx, hity, b.angle());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void despawned(Bullet b){
|
public void despawned(Bullet b){
|
||||||
Effects.effect(despawnEffect, b.x, b.y, b.angle());
|
Effects.effect(despawneffect, b.x, b.y, b.angle());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import io.anuke.ucore.util.Angles;
|
|||||||
import io.anuke.ucore.util.Mathf;
|
import io.anuke.ucore.util.Mathf;
|
||||||
|
|
||||||
public class BulletFx {
|
public class BulletFx {
|
||||||
|
public static Color lightFlame = Color.valueOf("ffdd55");
|
||||||
|
public static Color darkFlame = Color.valueOf("db401c");
|
||||||
public static Color lightOrange = Color.valueOf("f68021");
|
public static Color lightOrange = Color.valueOf("f68021");
|
||||||
public static Color lighterOrange = Color.valueOf("f6e096");
|
public static Color lighterOrange = Color.valueOf("f6e096");
|
||||||
|
|
||||||
@@ -33,6 +35,16 @@ public class BulletFx {
|
|||||||
Draw.reset();
|
Draw.reset();
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
shootSmallFlame = new Effect(30f, e -> {
|
||||||
|
Draw.color(lightFlame, darkFlame, Color.GRAY, e.ifract());
|
||||||
|
|
||||||
|
Angles.randLenVectors(e.id, 8, e.powfract()*26f, e.rotation, 10f, (x, y) -> {
|
||||||
|
Fill.circle(e.x + x, e.y + y, 0.65f + e.fract()*1.5f);
|
||||||
|
});
|
||||||
|
|
||||||
|
Draw.reset();
|
||||||
|
}),
|
||||||
|
|
||||||
shellEjectSmall = new Effect(30f, e -> {
|
shellEjectSmall = new Effect(30f, e -> {
|
||||||
Draw.color(lightOrange, Color.LIGHT_GRAY, Color.GRAY, e.ifract());
|
Draw.color(lightOrange, Color.LIGHT_GRAY, Color.GRAY, e.ifract());
|
||||||
Draw.alpha(e.fract());
|
Draw.alpha(e.fract());
|
||||||
@@ -45,7 +57,7 @@ public class BulletFx {
|
|||||||
Draw.color();
|
Draw.color();
|
||||||
}),
|
}),
|
||||||
|
|
||||||
hit = new Effect(14, e -> {
|
hitBulletSmall = new Effect(14, e -> {
|
||||||
Draw.color(Color.WHITE, lightOrange, e.ifract());
|
Draw.color(Color.WHITE, lightOrange, e.ifract());
|
||||||
Lines.stroke(0.5f + e.fract());
|
Lines.stroke(0.5f + e.fract());
|
||||||
|
|
||||||
@@ -57,6 +69,18 @@ public class BulletFx {
|
|||||||
Draw.reset();
|
Draw.reset();
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
hitFlameSmall = new Effect(14, e -> {
|
||||||
|
Draw.color(lightFlame, darkFlame, e.ifract());
|
||||||
|
Lines.stroke(0.5f + e.fract());
|
||||||
|
|
||||||
|
Angles.randLenVectors(e.id, 5, e.ifract()*15f, e.rotation, 50f, (x, y) -> {
|
||||||
|
float ang = Mathf.atan2(x, y);
|
||||||
|
Lines.lineAngle(e.x + x, e.y + y, ang, e.fract()*3 + 1f);
|
||||||
|
});
|
||||||
|
|
||||||
|
Draw.reset();
|
||||||
|
}),
|
||||||
|
|
||||||
despawn = new Effect(12, e -> {
|
despawn = new Effect(12, e -> {
|
||||||
Draw.color(lighterOrange, Color.GRAY, e.ifract());
|
Draw.color(lighterOrange, Color.GRAY, e.ifract());
|
||||||
Lines.stroke(e.fract());
|
Lines.stroke(e.fract());
|
||||||
|
|||||||
@@ -8,18 +8,37 @@ public class AmmoType {
|
|||||||
private static Array<AmmoType> allTypes = new Array<>();
|
private static Array<AmmoType> allTypes = new Array<>();
|
||||||
|
|
||||||
public final byte id;
|
public final byte id;
|
||||||
|
/**The item used. Always null if liquid isn't.*/
|
||||||
public final Item item;
|
public final Item item;
|
||||||
|
/**The liquid used. Always null if item isn't.*/
|
||||||
|
public final Liquid liquid;
|
||||||
|
/**The resulting bullet.*/
|
||||||
public final BulletType bullet;
|
public final BulletType bullet;
|
||||||
public final int quantityMultiplier;
|
/**For item ammo, this is amount given per ammo item.
|
||||||
|
* For liquid ammo, this is amount used per shot.*/
|
||||||
|
public final float quantityMultiplier;
|
||||||
|
/**Turret shoot speed multiplier.*/
|
||||||
public final float speedMultiplier;
|
public final float speedMultiplier;
|
||||||
|
|
||||||
public AmmoType(Item item, BulletType result, int multiplier, float speedMultiplier){
|
{
|
||||||
|
this.id = (byte)(lastID++);
|
||||||
|
allTypes.add(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AmmoType(Item item, BulletType result, float multiplier, float speedMultiplier){
|
||||||
this.item = item;
|
this.item = item;
|
||||||
|
this.liquid = null;
|
||||||
|
this.bullet = result;
|
||||||
|
this.quantityMultiplier = multiplier;
|
||||||
|
this.speedMultiplier = speedMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AmmoType(Liquid liquid, BulletType result, float multiplier, float speedMultiplier){
|
||||||
|
this.item = null;
|
||||||
|
this.liquid = liquid;
|
||||||
this.bullet = result;
|
this.bullet = result;
|
||||||
this.quantityMultiplier = multiplier;
|
this.quantityMultiplier = multiplier;
|
||||||
this.speedMultiplier = speedMultiplier;
|
this.speedMultiplier = speedMultiplier;
|
||||||
this.id = (byte)(lastID++);
|
|
||||||
allTypes.add(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Array<AmmoType> getAllTypes() {
|
public static Array<AmmoType> getAllTypes() {
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ public class Turret extends Block{
|
|||||||
|
|
||||||
if(ammoTypes != null) {
|
if(ammoTypes != null) {
|
||||||
for (AmmoType type : ammoTypes) {
|
for (AmmoType type : ammoTypes) {
|
||||||
|
if(type.item == null) continue;
|
||||||
if (ammoMap.containsKey(type.item)) {
|
if (ammoMap.containsKey(type.item)) {
|
||||||
throw new RuntimeException("Turret \"" + name + "\" has two conflicting ammo entries on item type " + type.item + "!");
|
throw new RuntimeException("Turret \"" + name + "\" has two conflicting ammo entries on item type " + type.item + "!");
|
||||||
} else {
|
} else {
|
||||||
@@ -153,9 +154,8 @@ public class Turret extends Block{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//must not be found
|
//must not be found
|
||||||
AmmoEntry entry = new AmmoEntry(type, type.quantityMultiplier);
|
AmmoEntry entry = new AmmoEntry(type, (int)type.quantityMultiplier);
|
||||||
entity.ammo.add(entry);
|
entity.ammo.add(entry);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package io.anuke.mindustry.world.blocks.types.defense.turrets;
|
||||||
|
|
||||||
|
import io.anuke.mindustry.world.blocks.types.defense.Turret;
|
||||||
|
|
||||||
|
public class ItemTurret extends Turret {
|
||||||
|
public ItemTurret(String name) {
|
||||||
|
super(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,43 +1,69 @@
|
|||||||
package io.anuke.mindustry.world.blocks.types.defense.turrets;
|
package io.anuke.mindustry.world.blocks.types.defense.turrets;
|
||||||
|
|
||||||
import io.anuke.mindustry.content.Liquids;
|
import com.badlogic.gdx.utils.ObjectMap;
|
||||||
|
import io.anuke.mindustry.resource.AmmoType;
|
||||||
import io.anuke.mindustry.resource.Item;
|
import io.anuke.mindustry.resource.Item;
|
||||||
import io.anuke.mindustry.resource.Liquid;
|
import io.anuke.mindustry.resource.Liquid;
|
||||||
|
import io.anuke.mindustry.world.BarType;
|
||||||
|
import io.anuke.mindustry.world.BlockBar;
|
||||||
import io.anuke.mindustry.world.Tile;
|
import io.anuke.mindustry.world.Tile;
|
||||||
import io.anuke.mindustry.world.blocks.types.defense.Turret;
|
import io.anuke.mindustry.world.blocks.types.defense.Turret;
|
||||||
|
|
||||||
//TODO
|
|
||||||
public abstract class LiquidTurret extends Turret {
|
public abstract class LiquidTurret extends Turret {
|
||||||
public Liquid ammoLiquid = Liquids.water;
|
protected ObjectMap<Liquid, AmmoType> liquidAmmoMap = new ObjectMap<>();
|
||||||
public float liquidCapacity = 60f;
|
|
||||||
public float liquidPerShot = 1f;
|
|
||||||
|
|
||||||
public LiquidTurret(String name) {
|
public LiquidTurret(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
hasLiquids = true;
|
hasLiquids = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setBars() {
|
||||||
|
super.setBars();
|
||||||
|
bars.remove(BarType.inventory);
|
||||||
|
bars.add(new BlockBar(BarType.liquid, true, tile -> tile.entity.liquid.amount / liquidCapacity));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AmmoType useAmmo(Tile tile){
|
||||||
|
TurretEntity entity = tile.entity();
|
||||||
|
AmmoType type = liquidAmmoMap.get(entity.liquid.liquid);
|
||||||
|
entity.liquid.amount -= type.quantityMultiplier;
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AmmoType peekAmmo(Tile tile){
|
||||||
|
return liquidAmmoMap.get(tile.entity.liquid.liquid);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasAmmo(Tile tile){
|
||||||
|
TurretEntity entity = tile.entity();
|
||||||
|
return liquidAmmoMap.get(entity.liquid.liquid) != null && entity.liquid.amount >= liquidAmmoMap.get(entity.liquid.liquid).quantityMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(){
|
||||||
|
super.init();
|
||||||
|
|
||||||
|
for (AmmoType type : ammoTypes) {
|
||||||
|
if (liquidAmmoMap.containsKey(type.liquid)) {
|
||||||
|
throw new RuntimeException("Turret \"" + name + "\" has two conflicting ammo entries on liquid type " + type.liquid + "!");
|
||||||
|
} else {
|
||||||
|
liquidAmmoMap.put(type.liquid, type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean acceptItem(Item item, Tile tile, Tile source) {
|
public boolean acceptItem(Item item, Tile tile, Tile source) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handleLiquid(Tile tile, Tile source, Liquid liquid, float amount) {
|
|
||||||
//TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
@Override
|
|
||||||
public void consumeAmmo(Tile tile){
|
|
||||||
TurretEntity entity = tile.entity();
|
|
||||||
entity.liquid.amount -= liquidPerShot;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
|
public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
|
||||||
return ammoLiquid == liquid && super.acceptLiquid(tile, source, liquid, amount);
|
return super.acceptLiquid(tile, source, liquid, amount) && liquidAmmoMap.get(liquid) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import java.io.IOException;
|
|||||||
|
|
||||||
public class LiquidModule extends BlockModule {
|
public class LiquidModule extends BlockModule {
|
||||||
public float amount;
|
public float amount;
|
||||||
|
/**Should never be null.*/
|
||||||
public Liquid liquid = Liquids.none;
|
public Liquid liquid = Liquids.none;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user