From 8cef351ed9f09176ff222d76089e7f0d1f70643e Mon Sep 17 00:00:00 2001 From: Commodore64x Date: Sat, 21 Apr 2018 12:44:23 +1000 Subject: [PATCH] Fixed preview for multiblocks. --- .../mindustry/graphics/BlockRenderer.java | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/core/src/io/anuke/mindustry/graphics/BlockRenderer.java b/core/src/io/anuke/mindustry/graphics/BlockRenderer.java index 6939a1e7d2..967449dfff 100644 --- a/core/src/io/anuke/mindustry/graphics/BlockRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/BlockRenderer.java @@ -2,7 +2,6 @@ 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; @@ -14,8 +13,6 @@ import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.Blocks; import io.anuke.mindustry.world.blocks.types.StaticBlock; import io.anuke.mindustry.world.blocks.types.defense.Turret; -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; @@ -23,7 +20,6 @@ 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 java.util.Arrays; import static io.anuke.mindustry.Vars.*; @@ -32,6 +28,8 @@ import static io.anuke.ucore.core.Core.camera; public class BlockRenderer{ private final static int chunksize = 32; private final static int initialRequests = 32*32; + private static float storeX = 0; + private static float storeY = 0; private int[][][] cache; private CacheBatch cbatch; @@ -296,11 +294,22 @@ 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())) { - if(block.isMultiblock()) { - if((tiley - control.input().getBlockY()) % block.height != 0 - || (tilex - control.input().getBlockX()) % block.width != 0) return; - } - + if(block.isMultiblock()) { + float halfBlockWidth = (block.width * tilesize) / 2; + float halfBlockHeight = (block.height * tilesize) / 2; + if((storeX == 0 && storeY == 0)) { + storeX = drawx; + storeY = drawy; + } + if((storeX == drawx - halfBlockWidth || storeX == drawx + halfBlockWidth || storeY == drawy - halfBlockHeight || storeY == drawy + halfBlockHeight) && + ((tiley - control.input().getBlockY()) % block.height != 0 || (tilex - control.input().getBlockX()) % block.width != 0)) { + return; + } + else { + storeX = drawx; + storeY = drawy; + } + } float opacity = (float) Settings.getInt("previewopacity") / 100f; Draw.color(Color.WHITE);