diff --git a/core/assets-raw/sprites/blocks/distribution/conveyor.png b/core/assets-raw/sprites/blocks/distribution/conveyor.png index 7f7f7e47d5..4dc92528b2 100644 Binary files a/core/assets-raw/sprites/blocks/distribution/conveyor.png and b/core/assets-raw/sprites/blocks/distribution/conveyor.png differ diff --git a/core/assets-raw/sprites/blocks/distribution/conveyormove.png b/core/assets-raw/sprites/blocks/distribution/conveyormove.png index 2976fc1ae9..b4de4370b9 100644 Binary files a/core/assets-raw/sprites/blocks/distribution/conveyormove.png and b/core/assets-raw/sprites/blocks/distribution/conveyormove.png differ diff --git a/core/assets-raw/sprites/blocks/environment/space.png b/core/assets-raw/sprites/blocks/environment/space.png new file mode 100644 index 0000000000..54eb43362b Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/space.png differ diff --git a/core/assets-raw/sprites/blocks/environment/spaceedge.png b/core/assets-raw/sprites/blocks/environment/spaceedge.png new file mode 100644 index 0000000000..8f0314574a Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/spaceedge.png differ diff --git a/core/assets-raw/sprites/blocks/power/teleporter-top.png b/core/assets-raw/sprites/blocks/power/teleporter-top.png new file mode 100644 index 0000000000..e5d309bac9 Binary files /dev/null and b/core/assets-raw/sprites/blocks/power/teleporter-top.png differ diff --git a/core/assets-raw/sprites/blocks/power/teleporter.png b/core/assets-raw/sprites/blocks/power/teleporter.png index ec2f0b3f14..9cd71355eb 100644 Binary files a/core/assets-raw/sprites/blocks/power/teleporter.png and b/core/assets-raw/sprites/blocks/power/teleporter.png differ diff --git a/core/assets/maps/hole.mmap b/core/assets/maps/hole.mmap new file mode 100644 index 0000000000..3742149265 Binary files /dev/null and b/core/assets/maps/hole.mmap differ diff --git a/core/assets/maps/space.mmap b/core/assets/maps/space.mmap new file mode 100644 index 0000000000..86de26f1b6 Binary files /dev/null and b/core/assets/maps/space.mmap differ diff --git a/core/assets/shaders/space.fragment b/core/assets/shaders/space.fragment new file mode 100644 index 0000000000..f2522b4fca --- /dev/null +++ b/core/assets/shaders/space.fragment @@ -0,0 +1,77 @@ +#ifdef GL_ES +precision highp float; +precision mediump int; +#endif + +#define s1 vec4(63.0, 63.0, 63.0, 255.0) / 255.0 + +uniform sampler2D u_texture; + +uniform vec2 u_center; +uniform vec2 camerapos; +uniform vec2 screensize; +uniform float time; + +varying vec4 v_color; +varying vec2 v_texCoord; + +float round(float num, float f){ + return float(int(num / f)) * f; +} + +vec3 permute(vec3 x) { return mod(((x*34.0)+1.0)*x, 289.0); } + +float snoise(vec2 v){ + const vec4 C = vec4(0.211324865405187, 0.366025403784439, + -0.577350269189626, 0.024390243902439); + vec2 i = floor(v + dot(v, C.yy) ); + vec2 x0 = v - i + dot(i, C.xx); + vec2 i1; + i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0); + vec4 x12 = x0.xyxy + C.xxzz; + x12.xy -= i1; + i = mod(i, 289.0); + vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 )) + + i.x + vec3(0.0, i1.x, 1.0 )); + vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy), + dot(x12.zw,x12.zw)), 0.0); + m = m*m ; + m = m*m ; + vec3 x = 2.0 * fract(p * C.www) - 1.0; + vec3 h = abs(x) - 0.5; + vec3 ox = floor(x + 0.5); + vec3 a0 = x - ox; + m *= 1.79284291400159 - 0.85373472095314 * ( a0*a0 + h*h ); + vec3 g; + g.x = a0.x * x0.x + h.x * x0.y; + g.yz = a0.yz * x12.xz + h.yz * x12.yw; + return 130.0 * dot(m, g); +} + +void main() { + + vec2 c = v_texCoord.xy; + vec4 color = texture2D(u_texture, c); + + vec2 v = vec2(1.0/screensize.x, 1.0/screensize.y); + ivec2 icoords = ivec2(int(c.x / v.x + camerapos.x), int(c.y / v.y + camerapos.y)); + vec2 coords = vec2(float(icoords.x), float(icoords.y)); + + float stime = time / 5.0; + + float mscl = 30.0; + float mth = 5.0; + + //if there's something actually there + if(color.a > 0.01){ + vec2 diff = camerapos + screensize/2.0 - u_center; + + float dst = mod((distance(coords, camerapos + screensize/2.0 - diff/5.0) + time * 2.0 + snoise(coords / 100.0) * 10.0), 150.0); + + if(dst < 40.0){ + color = vec4(vec3(0.2), 1.0); + } + } + + gl_FragColor = color; +} diff --git a/core/assets/shaders/space2.fragment b/core/assets/shaders/space2.fragment new file mode 100644 index 0000000000..f654d312c7 --- /dev/null +++ b/core/assets/shaders/space2.fragment @@ -0,0 +1,89 @@ +#ifdef GL_ES +precision highp float; +precision mediump int; +#endif + +uniform sampler2D u_texture; + +uniform vec2 u_center; +uniform vec2 camerapos; +uniform vec2 screensize; +uniform float time; + +varying vec4 v_color; +varying vec2 v_texCoord; + +const float tau = 6.28318530717958647692; +const float tscl = 0.5; + +// Gamma correction +#define GAMMA (2.2) + +vec3 ToLinear(vec3 col ){ + // simulate a monitor, converting colour values into light values + return pow( col, vec3(GAMMA) ); +} + +vec3 ToGamma(vec3 col ){ + // convert back into colour values, so the correct light will come out of the monitor + return pow( col, vec3(1.0/GAMMA) ); +} + +float srand(vec2 co){ + return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); +} + +vec4 Noise(ivec2 x ){ + vec2 uv = (vec2(x)+0.5)/256.0; + return vec4(srand(uv), srand(uv + vec2(10.0, 0.0)), srand(uv + vec2(10.0, 0.0)), srand(uv + vec2(10.0, 10.0))); +} + +void main(){ + vec4 resultc = texture2D(u_texture, v_texCoord.xy); + + if(resultc.a > 0.0){ + + vec2 coords = v_texCoord.xy*screensize; + + vec3 ray; + ray.xy = 2.0*(coords-screensize.xy*.5)/screensize.x; + ray.z = 1.0; + + float literallyzero = 0.000000000001; + + float offset = time/60.0*.5 * tscl + camerapos.x * u_center.x * resultc.r * literallyzero; + float speed2 = 0.3; + float speed = speed2+.1; + offset += .1; + offset *= 2.0; + + vec3 col = vec3(0.0); + + vec3 stp = ray/max(abs(ray.x),abs(ray.y)); + + vec3 pos = 2.0*stp+.5; + for ( int i=0; i < 20; i++){ + float z = Noise(ivec2(pos.xy)).x; + z = fract(z-offset); + float d = 50.0*z-pos.z; + float w = pow(max(0.0,1.0-8.0*length(fract(pos.xy)-.5)),2.0); + vec3 c = max(vec3(0),vec3(1.0-abs(d+speed2*.5)/speed,1.0-abs(d)/speed,1.0-abs(d-speed2*.5)/speed)); + col += 1.5*(1.0-z)*c*w; + pos += stp; + } + + vec3 color = ToGamma(col); + + if(color.r > 0.3 && color.b > 0.3){ + color = vec3(240.0, 245.0, 255.0) / 255.0; + }else{ + color = vec3(0.0); + } + + gl_FragColor = vec4(color,1.0); + }else{ + gl_FragColor = vec4(0.0); + } + + +} diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index df9ad0a619..4c9d135112 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -13,42 +13,42 @@ background index: -1 conduit-bottom rotate: false - xy: 947, 417 + xy: 602, 168 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduit-top rotate: false - xy: 967, 417 + xy: 622, 188 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduittunnel rotate: false - xy: 233, 34 + xy: 602, 158 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conveyor rotate: false - xy: 777, 407 + xy: 612, 168 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conveyormove rotate: false - xy: 787, 407 + xy: 622, 178 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conveyortunnel rotate: false - xy: 797, 407 + xy: 632, 188 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -62,42 +62,42 @@ core index: -1 junction rotate: false - xy: 155, 18 + xy: 463, 124 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidjunction rotate: false - xy: 373, 114 + xy: 473, 114 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter rotate: false - xy: 383, 114 + xy: 483, 124 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-bottom rotate: false - xy: 393, 113 + xy: 493, 134 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-liquid rotate: false - xy: 403, 113 + xy: 483, 114 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-top rotate: false - xy: 413, 113 + xy: 493, 124 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -125,77 +125,77 @@ liquidtank-top index: -1 multiplexer rotate: false - xy: 1003, 421 + xy: 677, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 poweredconveyor rotate: false - xy: 766, 384 + xy: 523, 143 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 poweredconveyormove rotate: false - xy: 776, 387 + xy: 513, 123 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulseconduit-bottom rotate: false - xy: 816, 387 + xy: 533, 133 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulseconduit-top rotate: false - xy: 826, 387 + xy: 543, 143 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 router rotate: false - xy: 916, 387 + xy: 563, 123 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sortedunloader rotate: false - xy: 453, 114 + xy: 807, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sorter rotate: false - xy: 463, 124 + xy: 817, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 splitter rotate: false - xy: 473, 134 + xy: 837, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelconveyor rotate: false - xy: 493, 144 + xy: 847, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelconveyormove rotate: false - xy: 463, 114 + xy: 857, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -209,84 +209,84 @@ teleporter-top index: -1 unloader rotate: false - xy: 553, 123 + xy: 846, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vault rotate: false - xy: 95, 13 + xy: 121, 13 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 vault-icon rotate: false - xy: 563, 133 + xy: 856, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weaponfactory rotate: false - xy: 136, 40 + xy: 154, 58 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 blackrock1 rotate: false - xy: 713, 315 + xy: 726, 390 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackrockshadow1 rotate: false - xy: 713, 305 + xy: 736, 390 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstone1 rotate: false - xy: 713, 295 + xy: 746, 390 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstone2 rotate: false - xy: 777, 417 + xy: 756, 394 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstone3 rotate: false - xy: 787, 417 + xy: 766, 394 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneblock1 rotate: false - xy: 797, 417 + xy: 1003, 411 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneblock2 rotate: false - xy: 807, 417 + xy: 1013, 411 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneblock3 rotate: false - xy: 817, 417 + xy: 593, 198 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -300,49 +300,49 @@ blackstoneedge index: -1 coal1 rotate: false - xy: 887, 417 + xy: 592, 178 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal2 rotate: false - xy: 897, 417 + xy: 602, 188 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal3 rotate: false - xy: 907, 417 + xy: 592, 168 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 deepwater rotate: false - xy: 817, 407 + xy: 622, 168 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt1 rotate: false - xy: 827, 407 + xy: 632, 178 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt2 rotate: false - xy: 837, 407 + xy: 642, 188 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt3 rotate: false - xy: 847, 407 + xy: 622, 158 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -356,35 +356,35 @@ dirtedge index: -1 grass1 rotate: false - xy: 927, 407 + xy: 383, 114 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grass2 rotate: false - xy: 937, 407 + xy: 393, 113 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grass3 rotate: false - xy: 947, 407 + xy: 403, 113 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassblock1 rotate: false - xy: 957, 407 + xy: 413, 113 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassblock2 rotate: false - xy: 967, 407 + xy: 677, 281 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -398,21 +398,21 @@ grassedge index: -1 ice1 rotate: false - xy: 716, 389 + xy: 687, 281 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ice2 rotate: false - xy: 726, 390 + xy: 697, 281 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ice3 rotate: false - xy: 736, 390 + xy: 756, 384 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -426,70 +426,70 @@ iceedge index: -1 icerock1 rotate: false - xy: 746, 390 + xy: 766, 384 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerock2 rotate: false - xy: 756, 394 + xy: 653, 198 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerockshadow1 rotate: false - xy: 766, 394 + xy: 652, 188 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rockshadow1 rotate: false - xy: 766, 394 + xy: 652, 188 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerockshadow2 rotate: false - xy: 776, 397 + xy: 652, 178 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rockshadow2 rotate: false - xy: 776, 397 + xy: 652, 178 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron1 rotate: false - xy: 786, 397 + xy: 652, 168 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron2 rotate: false - xy: 796, 397 + xy: 652, 158 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron3 rotate: false - xy: 806, 397 + xy: 423, 143 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lava rotate: false - xy: 165, 18 + xy: 473, 134 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -503,301 +503,315 @@ lavaedge index: -1 lead1 rotate: false - xy: 185, 18 + xy: 463, 114 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lead2 rotate: false - xy: 195, 18 + xy: 473, 124 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lead3 rotate: false - xy: 205, 18 + xy: 483, 134 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 mossblock rotate: false - xy: 697, 281 + xy: 503, 133 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 oil rotate: false - xy: 707, 281 + xy: 513, 143 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 oiledge rotate: false - xy: 609, 226 + xy: 147, 26 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 rock1 rotate: false - xy: 896, 387 + xy: 553, 123 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rock2 rotate: false - xy: 906, 387 + xy: 563, 133 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand1 rotate: false - xy: 946, 387 + xy: 523, 113 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand2 rotate: false - xy: 956, 387 + xy: 533, 113 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand3 rotate: false - xy: 966, 387 + xy: 543, 113 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock1 rotate: false - xy: 215, 18 + xy: 553, 113 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock2 rotate: false - xy: 423, 143 + xy: 563, 113 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock3 rotate: false - xy: 423, 133 + xy: 576, 146 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandedge rotate: false - xy: 623, 226 + xy: 161, 28 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 shrub rotate: false - xy: 433, 124 + xy: 583, 116 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shrubshadow rotate: false - xy: 443, 134 + xy: 596, 148 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow1 rotate: false - xy: 443, 124 + xy: 626, 148 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow2 rotate: false - xy: 453, 134 + xy: 636, 148 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow3 rotate: false - xy: 473, 144 + xy: 646, 148 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock1 rotate: false - xy: 443, 114 + xy: 656, 148 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock2 rotate: false - xy: 453, 124 + xy: 777, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock3 rotate: false - xy: 463, 134 + xy: 787, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowedge rotate: false - xy: 576, 176 + xy: 351, 93 + size: 12, 12 + orig: 12, 12 + offset: 0, 0 + index: -1 +space + rotate: false + xy: 827, 405 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +spaceedge + rotate: false + xy: 304, 79 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 stone1 rotate: false - xy: 493, 134 + xy: 907, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone2 rotate: false - xy: 483, 114 + xy: 917, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone3 rotate: false - xy: 493, 124 + xy: 927, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock1 rotate: false - xy: 493, 114 + xy: 937, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock2 rotate: false - xy: 503, 143 + xy: 947, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock3 rotate: false - xy: 503, 133 + xy: 957, 407 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneedge rotate: false - xy: 219, 30 + xy: 318, 65 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 thorium1 rotate: false - xy: 513, 123 + xy: 786, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 thorium2 rotate: false - xy: 523, 133 + xy: 796, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 thorium3 rotate: false - xy: 533, 143 + xy: 796, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium1 rotate: false - xy: 523, 123 + xy: 806, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium2 rotate: false - xy: 533, 133 + xy: 806, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium3 rotate: false - xy: 543, 143 + xy: 816, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water rotate: false - xy: 513, 113 + xy: 866, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 wateredge rotate: false - xy: 309, 93 + xy: 332, 79 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 block-middle rotate: false - xy: 857, 417 + xy: 633, 198 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pump-liquid rotate: false - xy: 857, 417 + xy: 633, 198 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 957, 417 + xy: 612, 178 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 cross-1 rotate: false - xy: 807, 407 + xy: 612, 158 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -825,35 +839,35 @@ cross-4 index: -1 enemyspawn rotate: false - xy: 897, 407 + xy: 642, 158 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 playerspawn rotate: false - xy: 756, 384 + xy: 513, 133 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ripples rotate: false - xy: 644, 277 + xy: 909, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 shadow rotate: false - xy: 644, 265 + xy: 921, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 battery rotate: false - xy: 228, 44 + xy: 967, 417 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -867,14 +881,14 @@ batterylarge index: -1 combustiongenerator rotate: false - xy: 917, 417 + xy: 602, 178 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 combustiongenerator-top rotate: false - xy: 927, 417 + xy: 612, 188 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -944,7 +958,7 @@ largesolarpanel index: -1 liquidcombustiongenerator rotate: false - xy: 363, 113 + xy: 493, 144 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -972,63 +986,63 @@ nuclearreactor-lights index: -1 powerinfinite rotate: false - xy: 786, 387 + xy: 523, 133 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 powernode rotate: false - xy: 796, 387 + xy: 533, 143 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 powernodelarge rotate: false - xy: 522, 189 + xy: 522, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 powervoid rotate: false - xy: 806, 387 + xy: 523, 123 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rtgenerator rotate: false - xy: 926, 387 + xy: 503, 113 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rtgenerator-top rotate: false - xy: 936, 387 + xy: 513, 113 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shieldgenerator rotate: false - xy: 433, 144 + xy: 573, 116 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shieldprojector rotate: false - xy: 540, 171 + xy: 558, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 solarpanel rotate: false - xy: 483, 144 + xy: 797, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1040,16 +1054,23 @@ teleporter orig: 24, 24 offset: 0, 0 index: -1 +teleporter-top + rotate: false + xy: 69, 13 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 thermalgenerator rotate: false - xy: 523, 143 + xy: 786, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 alloysmelter rotate: false - xy: 218, 44 + xy: 957, 417 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1126,126 +1147,126 @@ cryofluidmixer-liquid index: -1 cryofluidmixer-top rotate: false - xy: 121, 21 + xy: 492, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cultivator rotate: false - xy: 492, 207 + xy: 510, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 510, 207 + xy: 528, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 528, 207 + xy: 546, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 extractor rotate: false - xy: 907, 407 + xy: 363, 113 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 fluxpump rotate: false - xy: 917, 407 + xy: 373, 114 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 irondrill rotate: false - xy: 816, 397 + xy: 423, 133 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 irondrill-rotator rotate: false - xy: 826, 397 + xy: 423, 123 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumdrill-rotator rotate: false - xy: 826, 397 + xy: 423, 123 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 irondrill-top rotate: false - xy: 836, 397 + xy: 423, 113 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 itemsource rotate: false - xy: 1003, 411 + xy: 473, 144 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 itemvoid rotate: false - xy: 1013, 411 + xy: 453, 114 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserdrill rotate: false - xy: 700, 345 + xy: 695, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 laserdrill-rotator rotate: false - xy: 695, 327 + xy: 695, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 laserdrill-top rotate: false - xy: 695, 309 + xy: 720, 400 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 lavasmelter rotate: false - xy: 175, 18 + xy: 483, 144 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidsource rotate: false - xy: 677, 281 + xy: 493, 114 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 melter rotate: false - xy: 687, 281 + xy: 503, 143 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1308,7 +1329,7 @@ oilextractor-top index: -1 oilrefinery rotate: false - xy: 233, 24 + xy: 503, 123 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1343,210 +1364,210 @@ plasmadrill-top index: -1 plasticformer rotate: false - xy: 677, 291 + xy: 695, 291 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 plasticformer-top rotate: false - xy: 695, 291 + xy: 504, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 poweralloysmelter rotate: false - xy: 504, 189 + xy: 504, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 poweralloysmelter-top rotate: false - xy: 504, 171 + xy: 522, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 powersmelter rotate: false - xy: 522, 171 + xy: 540, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 powersmelter-top rotate: false - xy: 540, 189 + xy: 540, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 siliconsmelter-top rotate: false - xy: 540, 189 + xy: 540, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 pulverizer rotate: false - xy: 836, 387 + xy: 533, 123 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 846, 387 + xy: 543, 133 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pump rotate: false - xy: 856, 387 + xy: 553, 143 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 reinforceddrill rotate: false - xy: 866, 387 + xy: 543, 123 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 reinforceddrill-rotator rotate: false - xy: 876, 387 + xy: 553, 133 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 reinforceddrill-top rotate: false - xy: 886, 387 + xy: 563, 143 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 separator rotate: false - xy: 423, 123 + xy: 573, 136 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 423, 113 + xy: 573, 126 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 siliconextractor rotate: false - xy: 463, 144 + xy: 606, 148 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 siliconsmelter rotate: false - xy: 558, 189 + xy: 558, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 smelter rotate: false - xy: 433, 114 + xy: 616, 148 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steeldrill rotate: false - xy: 473, 124 + xy: 867, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steeldrill-rotator rotate: false - xy: 483, 134 + xy: 877, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steeldrill-top rotate: false - xy: 473, 114 + xy: 887, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stonedrill rotate: false - xy: 513, 143 + xy: 967, 407 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneformer rotate: false - xy: 503, 123 + xy: 776, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumdrill rotate: false - xy: 533, 123 + xy: 816, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumdrill-top rotate: false - xy: 543, 133 + xy: 826, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 waterextractor rotate: false - xy: 522, 153 + xy: 540, 153 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 waterextractor-liquid rotate: false - xy: 540, 153 + xy: 558, 153 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 waterextractor-rotator rotate: false - xy: 558, 153 + xy: 136, 58 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 waterextractor-top rotate: false - xy: 136, 58 + xy: 136, 40 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-1 rotate: false - xy: 847, 417 + xy: 623, 198 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1588,35 +1609,35 @@ chainturret index: -1 doubleturret rotate: false - xy: 877, 407 + xy: 632, 158 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 flakturret rotate: false - xy: 564, 207 + xy: 134, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 flakturret-heat rotate: false - xy: 134, 94 + xy: 134, 76 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 flakturret-panel-left rotate: false - xy: 134, 76 + xy: 152, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 flakturret-panel-right rotate: false - xy: 152, 94 + xy: 152, 76 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1658,224 +1679,224 @@ gatlingturret-heat index: -1 laserturret rotate: false - xy: 316, 57 + xy: 849, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 laserturret-heat rotate: false - xy: 328, 59 + xy: 861, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 liquidturret rotate: false - xy: 720, 400 + xy: 738, 400 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 liquidturret-liquid rotate: false - xy: 738, 400 + xy: 756, 404 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 megarepairturret rotate: false - xy: 756, 404 + xy: 985, 417 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 missileturret rotate: false - xy: 985, 417 + xy: 1003, 421 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 railgunturret rotate: false - xy: 340, 59 + xy: 873, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 railgunturret-heat rotate: false - xy: 352, 59 + xy: 885, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 repairturret rotate: false - xy: 364, 59 + xy: 897, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 teslaturret rotate: false - xy: 656, 277 + xy: 933, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 teslaturret-heat rotate: false - xy: 656, 265 + xy: 945, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 titancannon rotate: false - xy: 69, 13 + xy: 95, 13 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 flierfactory rotate: false - xy: 152, 76 + xy: 170, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 walkerfactory rotate: false - xy: 152, 76 + xy: 170, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 flierfactory-top rotate: false - xy: 170, 94 + xy: 170, 76 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 walkerfactory-top rotate: false - xy: 170, 94 + xy: 170, 76 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 flierfactory-top-open rotate: false - xy: 170, 76 + xy: 188, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 walkerfactory-top-open rotate: false - xy: 170, 76 + xy: 188, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 compositewall rotate: false - xy: 937, 417 + xy: 592, 158 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 door rotate: false - xy: 857, 407 + xy: 632, 168 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 door-large rotate: false - xy: 546, 207 + xy: 682, 363 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 682, 363 + xy: 561, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 door-open rotate: false - xy: 867, 407 + xy: 642, 178 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 duriumwall rotate: false - xy: 887, 407 + xy: 642, 168 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 duriumwall-large rotate: false - xy: 561, 225 + xy: 564, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 ironwall rotate: false - xy: 846, 397 + xy: 433, 144 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelwall rotate: false - xy: 483, 124 + xy: 897, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelwall-large rotate: false - xy: 558, 171 + xy: 504, 153 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 stonewall rotate: false - xy: 513, 133 + xy: 776, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumshieldwall rotate: false - xy: 553, 143 + xy: 826, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumwall rotate: false - xy: 543, 123 + xy: 836, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumwall-large rotate: false - xy: 504, 153 + xy: 522, 153 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1903,7 +1924,7 @@ bullet-back index: -1 casing rotate: false - xy: 1021, 433 + xy: 220, 70 size: 2, 4 orig: 2, 4 offset: 0, 0 @@ -1952,105 +1973,105 @@ shell-back index: -1 shot rotate: false - xy: 453, 144 + xy: 583, 126 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-biomatter rotate: false - xy: 856, 397 + xy: 433, 134 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-coal rotate: false - xy: 866, 397 + xy: 443, 144 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-densealloy rotate: false - xy: 876, 397 + xy: 433, 124 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-iron rotate: false - xy: 886, 397 + xy: 443, 134 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-lead rotate: false - xy: 896, 397 + xy: 453, 144 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-plastic rotate: false - xy: 906, 397 + xy: 433, 114 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-sand rotate: false - xy: 916, 397 + xy: 443, 124 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 926, 397 + xy: 453, 134 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-steel rotate: false - xy: 936, 397 + xy: 463, 144 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-stone rotate: false - xy: 946, 397 + xy: 443, 114 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 956, 397 + xy: 453, 124 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 966, 397 + xy: 463, 134 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 standard-mech rotate: false - xy: 576, 162 + xy: 304, 65 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 standard-ship rotate: false - xy: 576, 148 + xy: 318, 79 size: 12, 12 orig: 12, 12 offset: 0, 0 @@ -2198,7 +2219,7 @@ clear index: -1 cursor rotate: false - xy: 218, 70 + xy: 627, 310 size: 4, 4 orig: 4, 4 offset: 0, 0 @@ -2226,21 +2247,21 @@ controller-cursor index: -1 icon-about rotate: false - xy: 154, 60 + xy: 154, 42 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-add rotate: false - xy: 154, 44 + xy: 172, 60 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-admin rotate: false - xy: 170, 60 + xy: 188, 60 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -2254,77 +2275,77 @@ icon-admin-small index: -1 icon-areaDelete rotate: false - xy: 572, 244 + xy: 129, 1 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow rotate: false - xy: 170, 44 + xy: 204, 60 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-arrow-down rotate: false - xy: 323, 95 + xy: 141, 1 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-left rotate: false - xy: 335, 95 + xy: 572, 244 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-right rotate: false - xy: 347, 95 + xy: 147, 14 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-up rotate: false - xy: 304, 81 + xy: 332, 67 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-back rotate: false - xy: 188, 94 + xy: 188, 76 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-ban rotate: false - xy: 186, 60 + xy: 235, 111 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-cancel rotate: false - xy: 186, 44 + xy: 251, 111 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-chat rotate: false - xy: 304, 69 + xy: 346, 81 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-check rotate: false - xy: 202, 60 + xy: 267, 111 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -2352,504 +2373,504 @@ icon-close-over index: -1 icon-crafting rotate: false - xy: 316, 81 + xy: 358, 81 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-cursor rotate: false - xy: 316, 69 + xy: 638, 304 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-defense rotate: false - xy: 328, 83 + xy: 638, 292 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-dev-builds rotate: false - xy: 202, 44 + xy: 283, 111 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-discord rotate: false - xy: 139, 24 + xy: 299, 111 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-distribution rotate: false - xy: 328, 71 + xy: 650, 289 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-donate rotate: false - xy: 155, 28 + xy: 315, 107 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-dots rotate: false - xy: 171, 28 + xy: 331, 107 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-editor rotate: false - xy: 187, 28 + xy: 347, 107 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-egg rotate: false - xy: 203, 28 + xy: 584, 240 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-exit rotate: false - xy: 235, 111 + xy: 600, 240 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-file-text rotate: false - xy: 251, 111 + xy: 616, 240 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-fill rotate: false - xy: 188, 76 + xy: 206, 94 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-floppy rotate: false - xy: 267, 111 + xy: 632, 240 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-folder rotate: false - xy: 283, 111 + xy: 224, 86 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-folder-parent rotate: false - xy: 299, 111 + xy: 224, 70 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-github rotate: false - xy: 315, 107 + xy: 245, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-google-play rotate: false - xy: 331, 107 + xy: 261, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-grid rotate: false - xy: 206, 94 + xy: 206, 76 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-hold rotate: false - xy: 340, 83 + xy: 662, 289 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-holdDelete rotate: false - xy: 340, 71 + xy: 220, 58 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-home rotate: false - xy: 347, 107 + xy: 277, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-host rotate: false - xy: 584, 240 + xy: 293, 95 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-info rotate: false - xy: 352, 83 + xy: 644, 277 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-itch.io rotate: false - xy: 600, 240 + xy: 240, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-line rotate: false - xy: 206, 76 + xy: 572, 274 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-link rotate: false - xy: 616, 240 + xy: 256, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-liquid rotate: false - xy: 352, 71 + xy: 644, 265 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-load rotate: false - xy: 632, 240 + xy: 272, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-load-image rotate: false - xy: 572, 274 + xy: 572, 256 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-load-map rotate: false - xy: 572, 256 + xy: 590, 274 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-loading rotate: false - xy: 590, 274 + xy: 590, 256 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-logic rotate: false - xy: 359, 95 + xy: 656, 277 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-menu rotate: false - xy: 364, 83 + xy: 656, 265 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-menu-large rotate: false - xy: 590, 256 + xy: 608, 274 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-none rotate: false - xy: 364, 71 + xy: 713, 333 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-pause rotate: false - xy: 638, 304 + xy: 713, 321 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-pencil rotate: false - xy: 608, 274 + xy: 608, 256 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-pencil-small rotate: false - xy: 224, 86 + xy: 288, 79 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-pick rotate: false - xy: 608, 256 + xy: 620, 292 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-play rotate: false - xy: 638, 292 + xy: 713, 309 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-play-2 rotate: false - xy: 224, 70 + xy: 240, 63 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-players rotate: false - xy: 650, 289 + xy: 713, 297 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-power rotate: false - xy: 662, 289 + xy: 713, 285 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-production rotate: false - xy: 593, 198 + xy: 777, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-quit rotate: false - xy: 218, 54 + xy: 256, 63 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-redo rotate: false - xy: 620, 292 + xy: 626, 274 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-refresh rotate: false - xy: 245, 95 + xy: 272, 63 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rename rotate: false - xy: 261, 95 + xy: 288, 63 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-resize rotate: false - xy: 626, 274 + xy: 626, 256 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-rotate rotate: false - xy: 277, 95 + xy: 593, 224 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-arrow rotate: false - xy: 293, 95 + xy: 609, 224 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-left rotate: false - xy: 240, 79 + xy: 625, 224 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-right rotate: false - xy: 256, 79 + xy: 641, 224 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-save rotate: false - xy: 272, 79 + xy: 593, 208 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-save-image rotate: false - xy: 626, 256 + xy: 682, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-save-map rotate: false - xy: 682, 345 + xy: 677, 327 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-settings rotate: false - xy: 590, 186 + xy: 789, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-terrain rotate: false - xy: 677, 327 + xy: 677, 309 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-tools rotate: false - xy: 288, 79 + xy: 609, 208 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-touch rotate: false - xy: 590, 174 + xy: 801, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-touchDelete rotate: false - xy: 590, 162 + xy: 813, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-trash rotate: false - xy: 240, 63 + xy: 625, 208 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-trash-16 rotate: false - xy: 677, 309 + xy: 698, 381 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-trello rotate: false - xy: 256, 63 + xy: 641, 208 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-tutorial rotate: false - xy: 272, 63 + xy: 576, 188 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-undo rotate: false - xy: 698, 381 + xy: 700, 363 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-units rotate: false - xy: 590, 150 + xy: 825, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-weapon rotate: false - xy: 304, 57 + xy: 837, 415 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-wiki rotate: false - xy: 288, 63 + xy: 576, 172 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-zoom rotate: false - xy: 700, 363 + xy: 700, 345 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-zoom-small rotate: false - xy: 593, 224 + xy: 576, 156 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -2955,7 +2976,7 @@ slider-knob-over index: -1 slider-vertical rotate: false - xy: 763, 450 + xy: 153, 1 size: 8, 1 orig: 8, 1 offset: 0, 0 @@ -3029,119 +3050,119 @@ flier index: -1 scout rotate: false - xy: 637, 226 + xy: 309, 93 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 scout-base rotate: false - xy: 593, 210 + xy: 323, 93 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 standard-mech-base rotate: false - xy: 593, 210 + xy: 323, 93 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 scout-leg rotate: false - xy: 576, 190 + xy: 337, 93 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 standard-mech-leg rotate: false - xy: 576, 190 + xy: 337, 93 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 beam rotate: false - xy: 713, 335 + xy: 153, 4 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 beam-equip rotate: false - xy: 713, 325 + xy: 716, 389 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blaster rotate: false - xy: 827, 417 + xy: 603, 198 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blaster-equip rotate: false - xy: 837, 417 + xy: 613, 198 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 clustergun rotate: false - xy: 867, 417 + xy: 643, 198 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 clustergun-equip rotate: false - xy: 877, 417 + xy: 592, 188 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shockgun rotate: false - xy: 443, 144 + xy: 586, 146 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shockgun-equip rotate: false - xy: 433, 134 + xy: 583, 136 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster rotate: false - xy: 553, 133 + xy: 836, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster-equip rotate: false - xy: 563, 143 + xy: 846, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan rotate: false - xy: 563, 123 + xy: 856, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan-equip rotate: false - xy: 503, 113 + xy: 866, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 189aa97ef6..1a3ec61213 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/assets/version.properties b/core/assets/version.properties index e036ee57f8..d26b96c5eb 100644 --- a/core/assets/version.properties +++ b/core/assets/version.properties @@ -1,7 +1,7 @@ #Autogenerated file. Do not modify. -#Fri Apr 06 16:57:38 EDT 2018 +#Fri Apr 06 21:25:35 EDT 2018 version=release -androidBuildCode=857 +androidBuildCode=864 name=Mindustry code=3.4 build=custom build diff --git a/core/src/io/anuke/mindustry/content/blocks/Blocks.java b/core/src/io/anuke/mindustry/content/blocks/Blocks.java index e912e7d646..1627798e5d 100644 --- a/core/src/io/anuke/mindustry/content/blocks/Blocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/Blocks.java @@ -21,6 +21,11 @@ public class Blocks { blockpart = new BlockPart(), + space = new Floor("space") {{ + variants = 0; + drawLayer = DrawLayer.space; + }}, + deepwater = new Floor("deepwater") {{ variants = 0; solid = true; diff --git a/core/src/io/anuke/mindustry/core/World.java b/core/src/io/anuke/mindustry/core/World.java index 3b7bc84c74..23014bc62c 100644 --- a/core/src/io/anuke/mindustry/core/World.java +++ b/core/src/io/anuke/mindustry/core/World.java @@ -5,7 +5,6 @@ import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.ai.Pathfind; import io.anuke.mindustry.content.blocks.Blocks; -import io.anuke.mindustry.content.blocks.ProductionBlocks; import io.anuke.mindustry.io.Map; import io.anuke.mindustry.io.MapIO; import io.anuke.mindustry.io.Maps; @@ -166,7 +165,7 @@ public class World extends Module{ Entities.resizeTree(0, 0, width * tilesize, height * tilesize); - WorldGenerator.generate(tiles, MapIO.readTileData(map)); + WorldGenerator.generate(tiles, MapIO.readTileData(map, true)); } public int getSeed(){ diff --git a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java index bc73ca39ac..322bc3ab7c 100644 --- a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java +++ b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java @@ -79,7 +79,7 @@ public class MapEditorDialog extends Dialog{ ui.loadfrag.show(); Timers.run(3f, () -> { try{ - MapTileData data = MapIO.readTileData(new DataInputStream(file.read())); + MapTileData data = MapIO.readTileData(new DataInputStream(file.read()), false); editor.beginEdit(data); view.clearStack(); diff --git a/core/src/io/anuke/mindustry/graphics/DrawLayer.java b/core/src/io/anuke/mindustry/graphics/DrawLayer.java index 614450ce16..e646229559 100644 --- a/core/src/io/anuke/mindustry/graphics/DrawLayer.java +++ b/core/src/io/anuke/mindustry/graphics/DrawLayer.java @@ -43,6 +43,17 @@ public enum DrawLayer { endShader(batch, Shaders.oil); } }, + space{ + @Override + public void begin(CacheBatch batch){ + beginShader(batch); + } + + @Override + public void end(CacheBatch batch){ + endShader(batch, Shaders.space); + } + }, normal, walls; diff --git a/core/src/io/anuke/mindustry/graphics/Palette.java b/core/src/io/anuke/mindustry/graphics/Palette.java index a6f5e3e298..3ff88162c5 100644 --- a/core/src/io/anuke/mindustry/graphics/Palette.java +++ b/core/src/io/anuke/mindustry/graphics/Palette.java @@ -19,4 +19,8 @@ public class Palette { public static final Color lancerLaser = Color.valueOf("a9d8ff"); public static final Color stoneGray = Color.valueOf("8f8f8f"); + + public static final Color portalLight = Color.valueOf("9054ea"); + public static final Color portal = Color.valueOf("6344d7"); + public static final Color portalDark = Color.valueOf("3f3dac"); } diff --git a/core/src/io/anuke/mindustry/graphics/Shaders.java b/core/src/io/anuke/mindustry/graphics/Shaders.java index f8993a5fe2..88ed68d938 100644 --- a/core/src/io/anuke/mindustry/graphics/Shaders.java +++ b/core/src/io/anuke/mindustry/graphics/Shaders.java @@ -10,17 +10,34 @@ import io.anuke.ucore.core.Timers; import io.anuke.ucore.graphics.Shader; import io.anuke.ucore.scene.ui.layout.Unit; +import static io.anuke.mindustry.Vars.tilesize; +import static io.anuke.mindustry.Vars.world; + public class Shaders{ public static final Outline outline = new Outline(); public static final Shield shield = new Shield(); public static final SurfaceShader water = new SurfaceShader("water"); public static final SurfaceShader lava = new SurfaceShader("lava"); public static final SurfaceShader oil = new SurfaceShader("oil"); + public static final Space space = new Space(); public static final UnitBuild build = new UnitBuild(); public static final Shader hit = new Shader("hit", "default"); private static final Vector2 vec = new Vector2(); + public static class Space extends SurfaceShader{ + + public Space(){ + super("space2"); + } + + @Override + public void apply(){ + super.apply(); + shader.setUniformf("u_center", world.width() * tilesize/2f, world.height() * tilesize/2f); + } + } + public static class UnitBuild extends Shader{ public float progress, time; public Color color = new Color(); diff --git a/core/src/io/anuke/mindustry/io/MapIO.java b/core/src/io/anuke/mindustry/io/MapIO.java index 04d6eee9a8..520b9e5bfd 100644 --- a/core/src/io/anuke/mindustry/io/MapIO.java +++ b/core/src/io/anuke/mindustry/io/MapIO.java @@ -90,20 +90,20 @@ public class MapIO { } /**Reads tile data, skipping meta.*/ - public static MapTileData readTileData(DataInputStream stream) throws IOException { + public static MapTileData readTileData(DataInputStream stream, boolean readOnly) throws IOException { MapMeta meta = readMapMeta(stream); - return readTileData(stream, meta); + return readTileData(stream, meta, readOnly); } /**Does not skip meta. Call after reading meta.*/ - public static MapTileData readTileData(DataInputStream stream, MapMeta meta) throws IOException { + public static MapTileData readTileData(DataInputStream stream, MapMeta meta, boolean readOnly) throws IOException { byte[] bytes = new byte[stream.available()]; stream.read(bytes); - return new MapTileData(bytes, meta.width, meta.height, meta.blockMap); + return new MapTileData(bytes, meta.width, meta.height, meta.blockMap, readOnly); } /**Reads tile data, skipping meta tags.*/ - public static MapTileData readTileData(Map map){ + public static MapTileData readTileData(Map map, boolean readOnly){ try { InputStream stream; @@ -114,7 +114,7 @@ public class MapIO { } DataInputStream ds = new DataInputStream(stream); - MapTileData data = MapIO.readTileData(ds); + MapTileData data = MapIO.readTileData(ds, readOnly); ds.close(); return data; }catch (IOException e){ diff --git a/core/src/io/anuke/mindustry/io/MapTileData.java b/core/src/io/anuke/mindustry/io/MapTileData.java index b9299ad84b..8aebfa63e5 100644 --- a/core/src/io/anuke/mindustry/io/MapTileData.java +++ b/core/src/io/anuke/mindustry/io/MapTileData.java @@ -15,21 +15,34 @@ public class MapTileData { private final ByteBuffer buffer; private final TileDataMarker tile = new TileDataMarker(); private final int width, height; + private final boolean readOnly; - private final IntIntMap map; + private IntIntMap map; public MapTileData(int width, int height){ this.width = width; this.height = height; this.map = null; + this.readOnly = false; buffer = ByteBuffer.allocate(width * height * TILE_SIZE); } - public MapTileData(byte[] bytes, int width, int height, IntIntMap mapping){ + public MapTileData(byte[] bytes, int width, int height, IntIntMap mapping, boolean readOnly){ buffer = ByteBuffer.wrap(bytes); this.width = width; this.height = height; this.map = mapping; + this.readOnly = readOnly; + + if(mapping != null && !readOnly){ + for(int i = 0; i < width * height; i ++){ + read(); + buffer.position(i * TILE_SIZE); + write(); + } + buffer.position(0); + this.map = null; + } } public byte[] toArray(){ @@ -96,6 +109,7 @@ public class MapTileData { } public void write(ByteBuffer buffer){ + if(readOnly) throw new IllegalArgumentException("This data is read-only."); buffer.put(floor); buffer.put(wall); byte rt = Bits.packByte(rotation, team); diff --git a/core/src/io/anuke/mindustry/io/Maps.java b/core/src/io/anuke/mindustry/io/Maps.java index bf97474d74..14986f13e9 100644 --- a/core/src/io/anuke/mindustry/io/Maps.java +++ b/core/src/io/anuke/mindustry/io/Maps.java @@ -17,7 +17,7 @@ import static io.anuke.mindustry.Vars.mapExtension; public class Maps implements Disposable{ /**List of all built-in maps.*/ - private static final String[] defaultMapNames = {"test"}; + private static final String[] defaultMapNames = {"test", "space", "hole"}; /**Tile format version.*/ private static final int version = 0; @@ -77,7 +77,7 @@ public class Maps implements Disposable{ DataInputStream ds = new DataInputStream(file.read()); MapMeta meta = MapIO.readMapMeta(ds); Map map = new Map(file.nameWithoutExtension(), meta, custom); - if(!headless) map.texture = new Texture(MapIO.generatePixmap(MapIO.readTileData(ds, meta))); + if(!headless) map.texture = new Texture(MapIO.generatePixmap(MapIO.readTileData(ds, meta, true))); maps.put(map.name, map); allMaps.add(map); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java index bf1fa81878..e37df9e5e7 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java @@ -5,40 +5,36 @@ import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.ObjectSet; import io.anuke.mindustry.content.fx.Fx; import io.anuke.mindustry.entities.TileEntity; -import io.anuke.mindustry.net.Net; import io.anuke.mindustry.resource.Item; -import io.anuke.mindustry.world.BarType; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.PowerBlock; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Timers; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Fill; +import io.anuke.ucore.graphics.Hue; import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.scene.ui.ButtonGroup; import io.anuke.ucore.scene.ui.ImageButton; import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.ucore.util.Mathf; -import io.anuke.ucore.util.Strings; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import static io.anuke.mindustry.Vars.syncBlockState; - public class Teleporter extends PowerBlock{ - public static final Color[] colorArray = {Color.ROYAL, Color.ORANGE, Color.SCARLET, Color.FOREST, - Color.PURPLE, Color.GOLD, Color.PINK, Color.BLACK}; + public static final Color[] colorArray = {Color.ROYAL, Color.ORANGE, Color.SCARLET, Color.LIME, + Color.PURPLE, Color.GOLD, Color.PINK, Color.LIGHT_GRAY}; public static final int colors = colorArray.length; private static ObjectSet[] teleporters = new ObjectSet[colors]; + private static Color color = new Color(); private static byte lastColor = 0; private Array removal = new Array<>(); private Array returns = new Array<>(); - protected float powerPerItem = 5f; protected float warmupTime = 80f; protected Effect teleportEffect = Fx.none; @@ -55,6 +51,7 @@ public class Teleporter extends PowerBlock{ health = 80; powerCapacity = 30f; size = 3; + itemCapacity = 150; } @Override @@ -66,16 +63,9 @@ public class Teleporter extends PowerBlock{ } } - @Override - public void setBars(){ - super.setBars(); - bars.remove(BarType.inventory); - } - @Override public void setStats(){ super.setStats(); - stats.add("poweritem", Strings.toFixed(powerPerItem, 1)); } @Override @@ -89,16 +79,37 @@ public class Teleporter extends PowerBlock{ TeleporterEntity entity = tile.entity(); super.draw(tile); - - Draw.color(colorArray[entity.color]); + + Color target = colorArray[entity.color]; + float ss = 0.5f; + float bs = 0.2f; + + Draw.color(Hue.shift(Hue.multiply(color.set(target), 1, ss), 2, 0)); Draw.rect("teleporter-top", tile.drawx(), tile.drawy()); - Draw.reset(); - Draw.color(Color.WHITE); + //Draw.color(Palette.portal); + Draw.color(Hue.shift(Hue.multiply(color.set(target), 1, ss), 2, 0)); - Fill.circle(tile.drawx(), tile.drawy(), 7f); + Fill.circle(tile.drawx(), tile.drawy(), 7f + Mathf.absin(Timers.time()+55, 8f, 1f)); - Draw.color(Color.PURPLE); + //Draw.color(Palette.portalDark); + Draw.color(Hue.shift(Hue.multiply(color.set(target), 1, ss), 2, -bs)); + + Fill.circle(tile.drawx(), tile.drawy(), 2f + Mathf.absin(Timers.time(), 7f, 3f)); + + for(int i = 0; i < 11; i ++){ + Lines.swirl(tile.drawx(), tile.drawy(), + 2f + i/3f + Mathf.sin(Timers.time() - i *75, 20f + i, 3f), + 0.3f + Mathf.sin(Timers.time() + i *33, 10f + i, 0.1f), + Timers.time() * (1f + Mathf.randomSeedRange(i + 1, 1f)) + Mathf.randomSeedRange(i, 360f)); + } + + //Draw.color(Palette.portalLight); + Draw.color(Hue.shift(Hue.multiply(color.set(target), 1, ss), 2, bs)); + + Lines.stroke(2f); + Lines.circle(tile.drawx(), tile.drawy(), 7f + Mathf.absin(Timers.time()+55, 8f, 1f)); + Lines.stroke(1f); for(int i = 0; i < 11; i ++){ Lines.swirl(tile.drawx(), tile.drawy(), @@ -119,6 +130,10 @@ public class Teleporter extends PowerBlock{ if(entity.inventory.totalItems() > 0){ tryDump(tile); } + + if(entity.inventory.totalItems() == itemCapacity && entity.power.amount >= powerCapacity){ + + } } @Override @@ -135,7 +150,7 @@ public class Teleporter extends PowerBlock{ cont.margin(4); cont.marginBottom(5); - cont.add().colspan(4).height(105f); + cont.add().colspan(4).height(145f); cont.row(); for(int i = 0; i < colors; i ++){ @@ -155,26 +170,10 @@ public class Teleporter extends PowerBlock{ table.add(cont); } - @Override - public void handleItem(Item item, Tile tile, Tile source){ - TeleporterEntity entity = tile.entity(); - - Array links = findLinks(tile); - - if(links.size > 0){ - if(!syncBlockState || Net.server() || !Net.active()){ - Tile target = links.random(); - target.entity.inventory.addItem(item, 1); - } - } - - entity.power.amount -= powerPerItem; - } - @Override public boolean acceptItem(Item item, Tile tile, Tile source){ TeleporterEntity entity = tile.entity(); - return !(source.block() instanceof Teleporter) && entity.power.amount >= powerPerItem && findLinks(tile).size > 0; + return entity.inventory.totalItems() < itemCapacity; } @Override