diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java index bab6071abd..8d6a4e132e 100644 --- a/core/src/mindustry/core/Renderer.java +++ b/core/src/mindustry/core/Renderer.java @@ -185,7 +185,7 @@ public class Renderer implements ApplicationListener{ effectBuffer.resize(graphics.getWidth(), graphics.getHeight()); } - Draw.proj(camera.projection()); + Draw.proj(camera); beginFx(); diff --git a/core/src/mindustry/entities/def/TileComp.java b/core/src/mindustry/entities/def/TileComp.java index cafd91fcdc..59279f32c9 100644 --- a/core/src/mindustry/entities/def/TileComp.java +++ b/core/src/mindustry/entities/def/TileComp.java @@ -228,6 +228,11 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree return Time.delta() * timeScale; } + /** Efficiency * delta. */ + public float edelta(){ + return efficiency() * delta(); + } + /** Base efficiency. If this entity has non-buffered power, returns the power %, otherwise returns 1. */ public float efficiency(){ return power != null && (block.consumes.has(ConsumeType.power) && !block.consumes.getPower().buffered) ? power.status : 1f; diff --git a/core/src/mindustry/graphics/BlockRenderer.java b/core/src/mindustry/graphics/BlockRenderer.java index 4122820f7e..6b98571e7b 100644 --- a/core/src/mindustry/graphics/BlockRenderer.java +++ b/core/src/mindustry/graphics/BlockRenderer.java @@ -157,7 +157,7 @@ public class BlockRenderer implements Disposable{ shadows.end(); shadowEvents.clear(); - Draw.proj(camera.projection()); + Draw.proj(camera); } float ww = world.width() * tilesize, wh = world.height() * tilesize; diff --git a/core/src/mindustry/graphics/FloorRenderer.java b/core/src/mindustry/graphics/FloorRenderer.java index f66488a689..d3786107a7 100644 --- a/core/src/mindustry/graphics/FloorRenderer.java +++ b/core/src/mindustry/graphics/FloorRenderer.java @@ -119,7 +119,7 @@ public class FloorRenderer implements Disposable{ return; } - cbatch.setProjection(Core.camera.projection()); + cbatch.setProjection(Core.camera.mat); cbatch.beginDraw(); Gl.enable(Gl.blend); @@ -185,7 +185,7 @@ public class FloorRenderer implements Disposable{ } private void cacheChunkLayer(int cx, int cy, Chunk chunk, CacheLayer layer){ - SpriteBatch current = Core.batch; + Batch current = Core.batch; Core.batch = cbatch; //begin a new cache diff --git a/core/src/mindustry/graphics/MenuRenderer.java b/core/src/mindustry/graphics/MenuRenderer.java index 933c0de329..206c57e63b 100644 --- a/core/src/mindustry/graphics/MenuRenderer.java +++ b/core/src/mindustry/graphics/MenuRenderer.java @@ -180,7 +180,7 @@ public class MenuRenderer implements Disposable{ Draw.color(); shadows.end(); - SpriteBatch prev = Core.batch; + Batch prev = Core.batch; Core.batch = batch = new CacheBatch(new SpriteCache(width * height * 6, false)); batch.beginCache(); @@ -214,8 +214,8 @@ public class MenuRenderer implements Disposable{ mat.set(Draw.proj()); Draw.flush(); - Draw.proj(camera.projection()); - batch.setProjection(camera.projection()); + Draw.proj(camera); + batch.setProjection(camera.mat); batch.beginDraw(); batch.drawCache(cacheFloor); batch.endDraw(); diff --git a/core/src/mindustry/world/blocks/distribution/MassConveyor.java b/core/src/mindustry/world/blocks/distribution/MassConveyor.java new file mode 100644 index 0000000000..948f7a5a64 --- /dev/null +++ b/core/src/mindustry/world/blocks/distribution/MassConveyor.java @@ -0,0 +1,58 @@ +package mindustry.world.blocks.distribution; + +import arc.math.geom.*; +import arc.util.ArcAnnotate.*; +import mindustry.gen.*; +import mindustry.graphics.*; +import mindustry.world.*; + +public class MassConveyor extends Block{ + public float moveTime = 70f; + + public MassConveyor(String name){ + super(name); + + layer = Layer.overlay; + size = 3; + } + + public class MassConveyorEntity extends TileEntity{ + public Conveyable item; + public float progress; + public @Nullable Tilec next; + + @Override + public void onProximityUpdate(){ + super.onProximityUpdate(); + + next = front(); + //next block must be aligned and of the same size + if(next.block().size != size || x + Geometry.d4[rotation()].x * size != next.tileX() || y + Geometry.d4[rotation()].y * size != next.tileY()){ + next = null; + } + } + + @Override + public void updateTile(){ + progress += edelta(); + if(progress >= moveTime){ + //todo step + progress = 0; + } + } + + @Override + public void draw(){ + super.draw(); + } + + @Override + public void drawLayer(){ + + } + } + + public interface Conveyable{ + void drawConvey(float x, float y, float rotation); + } +} diff --git a/gradle.properties b/gradle.properties index 85a032e854..5ad539e335 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=3d5a2312ef867b76d996aacb9a00870899775b5e +archash=0dc4ad593d0b24c48dab44fdd4f39f2fd105fb60