From 0e50fbf3f2639a3f97571089a55483cf86900152 Mon Sep 17 00:00:00 2001 From: Commodore64x Date: Mon, 16 Apr 2018 09:08:44 +1000 Subject: [PATCH] Fixed rendering and other issues. --- core/assets/bundles/bundle.properties | 2 +- .../mindustry/graphics/BlockRenderer.java | 19 ++++++++----------- .../io/anuke/mindustry/input/PlaceMode.java | 14 ++++++-------- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 72a00fc860..2709ee58da 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -270,7 +270,7 @@ setting.multithread.name=Multithreading setting.fps.name=Show FPS setting.vsync.name=VSync setting.lasers.name=Show Power Lasers -setting.previewopacity.name = Placing Preview Opacity +setting.previewopacity.name=Placing Preview Opacity setting.healthbars.name=Show Entity Health bars setting.pixelate.name=Pixelate Screen setting.musicvol.name=Music Volume diff --git a/core/src/io/anuke/mindustry/graphics/BlockRenderer.java b/core/src/io/anuke/mindustry/graphics/BlockRenderer.java index 4d1b962da1..6939a1e7d2 100644 --- a/core/src/io/anuke/mindustry/graphics/BlockRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/BlockRenderer.java @@ -2,6 +2,7 @@ package io.anuke.mindustry.graphics; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.Colors; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.utils.Array; @@ -17,11 +18,11 @@ import io.anuke.mindustry.world.blocks.types.production.Drill; import io.anuke.mindustry.world.blocks.types.production.Pump; import io.anuke.ucore.core.Core; import io.anuke.ucore.core.Graphics; +import io.anuke.ucore.core.Settings; import io.anuke.ucore.graphics.CacheBatch; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Mathf; -import io.anuke.ucore.core.*; import java.util.Arrays; @@ -285,8 +286,7 @@ public class BlockRenderer{ cbatch = new CacheBatch(world.width() * world.height() * 4); } - public void drawPreview(Block block, float drawx, float drawy, float rotation, float opacity) { - Draw.reset(); + public void drawPreview(Block block, float drawx, float drawy, float rotation, float opacity) { Draw.alpha(opacity); Draw.rect(block.name(), drawx, drawy, rotation); } @@ -296,15 +296,17 @@ public class BlockRenderer{ if(control.input().recipe != null && state.inventory.hasItems(control.input().recipe.requirements) && control.input().validPlace(tilex, tiley, block) && (android || control.input().cursorNear())) { - float opacity = (float)Settings.getInt("previewopacity")/100f; - if(block.isMultiblock()) { if((tiley - control.input().getBlockY()) % block.height != 0 || (tilex - control.input().getBlockX()) % block.width != 0) return; } + + float opacity = (float) Settings.getInt("previewopacity") / 100f; + Draw.color(Color.WHITE); + Draw.alpha(opacity); + if(block instanceof Turret) { - Draw.alpha(opacity); if (block.isMultiblock()) { Draw.rect("block-" + block.width + "x" + block.height, drawx, drawy); } else { @@ -314,11 +316,6 @@ public class BlockRenderer{ drawPreview(block, drawx, drawy, rotation, opacity); - Tile tile = world.tile(tilex, tiley); - if((block instanceof Drill || block instanceof Pump) && block.isLayer(tile)) { - block.drawLayer(tile); - } - Draw.reset(); } } diff --git a/core/src/io/anuke/mindustry/input/PlaceMode.java b/core/src/io/anuke/mindustry/input/PlaceMode.java index 3aaf5de822..6bfbf4e57d 100644 --- a/core/src/io/anuke/mindustry/input/PlaceMode.java +++ b/core/src/io/anuke/mindustry/input/PlaceMode.java @@ -7,7 +7,6 @@ import com.badlogic.gdx.math.Vector2; import io.anuke.mindustry.ui.fragments.ToolFragment; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.mindustry.world.blocks.types.production.Drill; import io.anuke.ucore.core.Timers; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Lines; @@ -35,6 +34,8 @@ public enum PlaceMode{ float si = MathUtils.sin(Timers.time() / 6f) + 1.5f; + renderer.getBlocks().handlePreview(control.input().recipe.result, control.input().recipe.result.rotate ? control.input().rotation * 90 : 0f, x + offset.x, y + offset.y, tilex, tiley); + Draw.color(valid ? Colors.get("place") : Colors.get("placeInvalid")); Lines.stroke(2f); Lines.crect(x + offset.x, y + offset.y, tilesize * control.input().recipe.result.width + si, @@ -42,13 +43,10 @@ public enum PlaceMode{ control.input().recipe.result.drawPlace(tilex, tiley, control.input().rotation, valid); - renderer.getBlocks().handlePreview(control.input().recipe.result, control.input().recipe.result.rotate ? control.input().rotation * 90 : 0f, x + offset.x, y + offset.y, tilex, tiley); - if(control.input().recipe.result.rotate){ Draw.color(Colors.get("placeRotate")); tr.trns(control.input().rotation * 90, 7, 0); - Lines.stroke(2f); Lines.line(x, y, x + tr.x, y + tr.y); } } @@ -277,8 +275,6 @@ public enum PlaceMode{ Draw.alpha(0.3f); Draw.crect("blank", x, y, x2 - x, y2 - y); - Draw.color(Colors.get("placeInvalid")); - int amount = 1; for(int cx = 0; cx <= Math.abs(endx - tilex); cx ++){ for(int cy = 0; cy <= Math.abs(endy - tiley); cy ++){ @@ -288,9 +284,11 @@ public enum PlaceMode{ renderer.getBlocks().handlePreview(control.input().recipe.result, control.input().recipe.result.rotate ? rotation * 90 : 0f, px * t + offset.x, py * t + offset.y, px, py); if(!control.input().validPlace(px, py, control.input().recipe.result) - || !state.inventory.hasItems(control.input().recipe.requirements, amount)) + || !state.inventory.hasItems(control.input().recipe.requirements, amount)){ + Lines.stroke(2f); + Draw.color(Colors.get("placeInvalid")); Lines.crect(px * t + offset.x, py * t + offset.y, t*block.width, t*block.height); - + } amount ++; } }