diff --git a/core/assets-raw/sprites/ui/icons/icon-items-none.png b/core/assets-raw/sprites/ui/icons/icon-items-none.png new file mode 100644 index 0000000000..3bfe694cda Binary files /dev/null and b/core/assets-raw/sprites/ui/icons/icon-items-none.png differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index b2359b537e..5aa1190131 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -118,98 +118,98 @@ core index: -1 junction rotate: false - xy: 506, 55 + xy: 516, 65 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit rotate: false - xy: 516, 65 + xy: 526, 75 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit-arrow rotate: false - xy: 526, 75 + xy: 516, 55 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit-bridge rotate: false - xy: 516, 55 + xy: 526, 65 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit-end rotate: false - xy: 526, 65 + xy: 536, 75 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor rotate: false - xy: 536, 75 + xy: 526, 55 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-arrow rotate: false - xy: 526, 55 + xy: 536, 65 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-bridge rotate: false - xy: 536, 65 + xy: 536, 55 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-end rotate: false - xy: 536, 55 + xy: 506, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidjunction rotate: false - xy: 145, 36 + xy: 145, 26 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter rotate: false - xy: 145, 26 + xy: 145, 16 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-bottom rotate: false - xy: 145, 16 + xy: 145, 6 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-liquid rotate: false - xy: 145, 6 + xy: 155, 58 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-top rotate: false - xy: 155, 58 + xy: 165, 58 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -244,77 +244,77 @@ multiplexer index: -1 overflowgate rotate: false - xy: 165, 28 + xy: 175, 38 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 poweredconveyor rotate: false - xy: 185, 48 + xy: 205, 58 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 poweredconveyormove rotate: false - xy: 205, 58 + xy: 155, 8 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulseconduit-bottom rotate: false - xy: 185, 38 + xy: 195, 48 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulseconduit-top rotate: false - xy: 195, 48 + xy: 215, 58 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 router rotate: false - xy: 185, 8 + xy: 195, 18 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sortedunloader rotate: false - xy: 235, 5 + xy: 245, 15 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sorter rotate: false - xy: 245, 15 + xy: 255, 25 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 splitter rotate: false - xy: 265, 35 + xy: 275, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelconveyor rotate: false - xy: 275, 45 + xy: 245, 5 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelconveyormove rotate: false - xy: 245, 5 + xy: 255, 15 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -328,7 +328,7 @@ teleporter-top index: -1 unloader rotate: false - xy: 325, 35 + xy: 335, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -580,28 +580,28 @@ rockshadow2 index: -1 iron1 rotate: false - xy: 857, 423 + xy: 867, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron2 rotate: false - xy: 867, 423 + xy: 877, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron3 rotate: false - xy: 877, 423 + xy: 887, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lava rotate: false - xy: 506, 45 + xy: 516, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -615,63 +615,63 @@ lavaedge index: -1 lead1 rotate: false - xy: 526, 45 + xy: 536, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lead2 rotate: false - xy: 536, 45 + xy: 145, 56 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lead3 rotate: false - xy: 145, 56 + xy: 145, 46 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor1 rotate: false - xy: 175, 58 + xy: 155, 38 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor2 rotate: false - xy: 155, 38 + xy: 165, 48 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor3 rotate: false - xy: 165, 48 + xy: 185, 58 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor4 rotate: false - xy: 185, 58 + xy: 155, 28 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor5 rotate: false - xy: 155, 28 + xy: 165, 38 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor6 rotate: false - xy: 165, 38 + xy: 175, 48 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -685,14 +685,14 @@ metalflooredge index: -1 mossblock rotate: false - xy: 175, 48 + xy: 195, 58 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 oil rotate: false - xy: 195, 58 + xy: 155, 18 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -706,56 +706,56 @@ oiledge index: -1 rock1 rotate: false - xy: 205, 38 + xy: 215, 48 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rock2 rotate: false - xy: 215, 48 + xy: 185, 8 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand1 rotate: false - xy: 215, 38 + xy: 195, 8 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand2 rotate: false - xy: 195, 8 + xy: 205, 18 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand3 rotate: false - xy: 205, 18 + xy: 215, 28 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock1 rotate: false - xy: 215, 28 + xy: 205, 8 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock2 rotate: false - xy: 205, 8 + xy: 215, 18 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock3 rotate: false - xy: 215, 18 + xy: 215, 8 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -769,56 +769,56 @@ sandedge index: -1 shrub rotate: false - xy: 225, 2 + xy: 235, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shrubshadow rotate: false - xy: 235, 45 + xy: 235, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow1 rotate: false - xy: 235, 25 + xy: 245, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow2 rotate: false - xy: 245, 35 + xy: 255, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow3 rotate: false - xy: 255, 45 + xy: 235, 15 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock1 rotate: false - xy: 235, 15 + xy: 245, 25 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock2 rotate: false - xy: 245, 25 + xy: 255, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock3 rotate: false - xy: 255, 35 + xy: 265, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -832,7 +832,7 @@ snowedge index: -1 space rotate: false - xy: 255, 25 + xy: 265, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -846,42 +846,42 @@ spaceedge index: -1 stone1 rotate: false - xy: 255, 5 + xy: 265, 15 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone2 rotate: false - xy: 265, 15 + xy: 275, 25 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone3 rotate: false - xy: 275, 25 + xy: 285, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock1 rotate: false - xy: 285, 35 + xy: 295, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock2 rotate: false - xy: 295, 45 + xy: 265, 5 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock3 rotate: false - xy: 265, 5 + xy: 275, 15 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -895,49 +895,49 @@ stoneedge index: -1 thorium1 rotate: false - xy: 275, 5 + xy: 285, 15 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 thorium2 rotate: false - xy: 285, 15 + xy: 295, 25 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 thorium3 rotate: false - xy: 295, 25 + xy: 305, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium1 rotate: false - xy: 305, 35 + xy: 315, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium2 rotate: false - xy: 315, 45 + xy: 285, 5 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium3 rotate: false - xy: 285, 5 + xy: 295, 15 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water rotate: false - xy: 315, 15 + xy: 325, 25 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1014,7 +1014,7 @@ nuclearreactor-shadow index: -1 playerspawn rotate: false - xy: 175, 38 + xy: 185, 48 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1203,7 +1203,7 @@ largesolarpanel index: -1 liquidcombustiongenerator rotate: false - xy: 145, 46 + xy: 145, 36 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1231,14 +1231,14 @@ nuclearreactor-lights index: -1 powerinfinite rotate: false - xy: 155, 8 + xy: 165, 18 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 powernode rotate: false - xy: 165, 18 + xy: 175, 28 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1259,28 +1259,28 @@ powernodelarge-shadow index: -1 powervoid rotate: false - xy: 175, 28 + xy: 185, 38 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rtgenerator rotate: false - xy: 195, 18 + xy: 205, 28 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rtgenerator-top rotate: false - xy: 205, 28 + xy: 215, 38 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shieldgenerator rotate: false - xy: 225, 42 + xy: 225, 32 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1294,7 +1294,7 @@ shieldprojector index: -1 solarpanel rotate: false - xy: 265, 45 + xy: 235, 5 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1315,7 +1315,7 @@ teleporter-top index: -1 thermalgenerator rotate: false - xy: 305, 45 + xy: 275, 5 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1441,49 +1441,49 @@ fluxpump index: -1 incinerator rotate: false - xy: 847, 423 + xy: 857, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 irondrill rotate: false - xy: 887, 424 + xy: 897, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 irondrill-rotator rotate: false - xy: 897, 424 + xy: 907, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumdrill-rotator rotate: false - xy: 897, 424 + xy: 907, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 irondrill-top rotate: false - xy: 907, 424 + xy: 917, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 itemsource rotate: false - xy: 506, 65 + xy: 516, 75 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 itemvoid rotate: false - xy: 516, 75 + xy: 506, 55 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1511,21 +1511,21 @@ laserdrill-top index: -1 lavasmelter rotate: false - xy: 516, 45 + xy: 526, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidsource rotate: false - xy: 165, 58 + xy: 155, 48 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 melter rotate: false - xy: 155, 48 + xy: 175, 58 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1588,7 +1588,7 @@ oilextractor-top index: -1 oilrefinery rotate: false - xy: 155, 18 + xy: 165, 28 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1672,63 +1672,63 @@ siliconsmelter-top index: -1 pulverizer rotate: false - xy: 215, 58 + xy: 165, 8 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 165, 8 + xy: 175, 18 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pump rotate: false - xy: 175, 18 + xy: 185, 28 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 reinforceddrill rotate: false - xy: 185, 28 + xy: 195, 38 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 reinforceddrill-rotator rotate: false - xy: 195, 38 + xy: 205, 48 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 reinforceddrill-top rotate: false - xy: 205, 48 + xy: 175, 8 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 separator rotate: false - xy: 215, 8 + xy: 225, 52 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 225, 52 + xy: 225, 42 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 siliconextractor rotate: false - xy: 235, 35 + xy: 245, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1742,56 +1742,56 @@ siliconsmelter index: -1 smelter rotate: false - xy: 245, 45 + xy: 235, 25 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steeldrill rotate: false - xy: 255, 15 + xy: 265, 25 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steeldrill-rotator rotate: false - xy: 265, 25 + xy: 275, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steeldrill-top rotate: false - xy: 275, 35 + xy: 285, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stonedrill rotate: false - xy: 275, 15 + xy: 285, 25 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneformer rotate: false - xy: 285, 25 + xy: 295, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumdrill rotate: false - xy: 295, 15 + xy: 305, 25 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumdrill-top rotate: false - xy: 305, 25 + xy: 315, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2064,21 +2064,21 @@ walkerfactory-top-open index: -1 repairpoint rotate: false - xy: 175, 8 + xy: 185, 18 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 repairpoint-turret rotate: false - xy: 185, 18 + xy: 195, 28 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 resupplypoint rotate: false - xy: 195, 28 + xy: 205, 38 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2134,14 +2134,14 @@ duriumwall-large index: -1 ironwall rotate: false - xy: 917, 424 + xy: 927, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelwall rotate: false - xy: 285, 45 + xy: 255, 5 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2155,21 +2155,21 @@ steelwall-large index: -1 stonewall rotate: false - xy: 295, 35 + xy: 305, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumshieldwall rotate: false - xy: 315, 35 + xy: 325, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumwall rotate: false - xy: 325, 45 + xy: 295, 5 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2267,7 +2267,7 @@ shell-back index: -1 shot rotate: false - xy: 225, 12 + xy: 225, 2 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2281,7 +2281,7 @@ transfer index: -1 transfer-arrow rotate: false - xy: 295, 5 + xy: 305, 15 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2295,91 +2295,91 @@ transfer-end index: -1 item-biomatter rotate: false - xy: 927, 424 + xy: 937, 424 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-coal rotate: false - xy: 937, 424 + xy: 947, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-densealloy rotate: false - xy: 947, 425 + xy: 957, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-iron rotate: false - xy: 957, 425 + xy: 967, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-lead rotate: false - xy: 967, 425 + xy: 977, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-plastic rotate: false - xy: 977, 425 + xy: 987, 427 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-rdx rotate: false - xy: 987, 427 + xy: 997, 427 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-sand rotate: false - xy: 997, 427 + xy: 507, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 507, 85 + xy: 517, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-steel rotate: false - xy: 517, 85 + xy: 527, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-stone rotate: false - xy: 527, 85 + xy: 537, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 537, 85 + xy: 506, 75 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 506, 75 + xy: 506, 65 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2868,6 +2868,13 @@ icon-itch.io orig: 14, 14 offset: 0, 0 index: -1 +icon-items-none + rotate: false + xy: 847, 423 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 icon-line rotate: false xy: 277, 99 @@ -3470,42 +3477,42 @@ clustergun-equip index: -1 shockgun rotate: false - xy: 225, 32 + xy: 225, 22 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shockgun-equip rotate: false - xy: 225, 22 + xy: 225, 12 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster rotate: false - xy: 305, 15 + xy: 315, 25 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster-equip rotate: false - xy: 315, 25 + xy: 325, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan rotate: false - xy: 335, 45 + xy: 305, 5 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan-equip rotate: false - xy: 305, 5 + xy: 315, 15 size: 8, 8 orig: 8, 8 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index b59e80334c..6f3d6d71ca 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/src/io/anuke/mindustry/entities/ItemTransfer.java b/core/src/io/anuke/mindustry/entities/ItemTransfer.java index 4de4d99628..5a834d0f87 100644 --- a/core/src/io/anuke/mindustry/entities/ItemTransfer.java +++ b/core/src/io/anuke/mindustry/entities/ItemTransfer.java @@ -1,5 +1,6 @@ package io.anuke.mindustry.entities; +import com.badlogic.gdx.math.Interpolation; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Pools; import io.anuke.mindustry.Vars; @@ -7,6 +8,10 @@ import io.anuke.mindustry.type.Item; import io.anuke.ucore.entities.Entity; import io.anuke.ucore.entities.TimedEntity; import io.anuke.ucore.function.Callable; +import io.anuke.ucore.graphics.Draw; +import io.anuke.ucore.graphics.Fill; +import io.anuke.ucore.graphics.Lines; +import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Position; public class ItemTransfer extends TimedEntity{ @@ -14,6 +19,7 @@ public class ItemTransfer extends TimedEntity{ private Vector2 current = new Vector2(); private Vector2 tovec = new Vector2(); private Item item; + private float seed; private Position to; private Callable done; @@ -24,6 +30,7 @@ public class ItemTransfer extends TimedEntity{ tr.to = to; tr.done = done; tr.lifetime = 60f; + tr.seed = Mathf.range(1f); tr.add(); } @@ -42,19 +49,33 @@ public class ItemTransfer extends TimedEntity{ @Override public void removed() { + done.run(); Pools.free(this); } @Override public void update() { super.update(); - current.set(from).lerp(tovec.set(to.getX(), to.getY()), fin()); + current.set(from).interpolate(tovec.set(to.getX(), to.getY()), fin(), Interpolation.pow3); + current.add(tovec.set(to.getX(), to.getY()).sub(from).nor().rotate90(1).scl(seed * fslope() * 10f)); set(current.x, current.y); } @Override public void draw() { + float length = fslope()*6f; + float angle = current.set(x, y).sub(from).angle(); + Draw.color("accent"); + Lines.stroke(fslope()*2f); + Lines.circle(x, y, fslope()*2f); + Lines.lineAngleCenter(x, y, angle, length); + Lines.lineAngle(x, y, angle, fout()*6f); + + Draw.color(item.color); + Fill.circle(x, y, fslope()*1.5f); + + Draw.reset(); } @Override diff --git a/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java index a11ee592a3..60d93a4185 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java @@ -15,7 +15,6 @@ import io.anuke.ucore.core.Graphics; import io.anuke.ucore.core.Inputs; import io.anuke.ucore.core.Timers; import io.anuke.ucore.function.BooleanProvider; -import io.anuke.ucore.function.Callable; import io.anuke.ucore.scene.Group; import io.anuke.ucore.scene.event.HandCursorListener; import io.anuke.ucore.scene.event.Touchable; @@ -24,7 +23,6 @@ import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Strings; import static io.anuke.mindustry.Vars.state; -import static io.anuke.mindustry.Vars.tilesize; public class BlockInventoryFragment implements Fragment { private Table table; @@ -122,10 +120,9 @@ public class BlockInventoryFragment implements Fragment { int sent = Mathf.clamp(amount/3, 1, 8); int per = Math.min(amount/sent, 5); int[] soFar = {amount}; - Vector2 v = image.localToStageCoordinates(new Vector2(image.getWidth() / 2f, image.getHeight() / 2f)); for(int j = 0; j < sent; j ++){ boolean all = j == sent-1; - Timers.run(j*5, () -> move(item, tile, () -> { + Timers.run(j*5, () -> ItemTransfer.create(item, tile.drawx(), tile.drawy(), player, () -> { player.inventory.addItem(item, all ? soFar[0] : per); soFar[0] -= per; })); @@ -139,16 +136,12 @@ public class BlockInventoryFragment implements Fragment { } if(row == 0){ - table.add("[LIGHT_GRAY]"); + table.addImage("icon-items-none").color(Color.LIGHT_GRAY); } updateTablePosition(); } - private void move(Item item, Tile tile, Callable c){ - ItemTransfer.create(item, tile.drawx(), tile.drawy(), input.player, c); - } - private String round(float f){ f = (int)f; if(f >= 1000){ @@ -159,9 +152,9 @@ public class BlockInventoryFragment implements Fragment { } private void updateTablePosition(){ - Vector2 v = Graphics.screen(tile.drawx() + tile.block().size*tilesize/2f, tile.drawy() + tile.block().size*tilesize/2f); + Vector2 v = Graphics.screen(tile.drawx(), tile.drawy()); table.pack(); - table.setPosition(v.x, v.y, Align.topLeft); + table.setPosition(v.x, v.y, Align.center); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/storage/CoreBlock.java b/core/src/io/anuke/mindustry/world/blocks/types/storage/CoreBlock.java index 58d8b20618..fea2685031 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/storage/CoreBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/storage/CoreBlock.java @@ -1,6 +1,7 @@ package io.anuke.mindustry.world.blocks.types.storage; import com.badlogic.gdx.math.Rectangle; +import io.anuke.mindustry.entities.ItemTransfer; import io.anuke.mindustry.entities.Unit; import io.anuke.mindustry.entities.Units; import io.anuke.mindustry.net.Net; @@ -83,7 +84,7 @@ public class CoreBlock extends StorageBlock { if(tile.entity.items.items[i] > 0 && unit.acceptsAmmo(item)){ tile.entity.items.items[i] --; unit.addAmmo(item); - //new ItemTransferEffect(item, tile.drawx(), tile.drawy(), unit).add(); + ItemTransfer.create(item, tile.drawx(), tile.drawy(), unit, () -> {}); return; } }