From 7a4f56d943783e9df0e90580e6fc67115a0a0f70 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 3 Jul 2018 10:07:48 -0400 Subject: [PATCH] Additional bugfixes --- core/src/io/anuke/mindustry/entities/effect/ItemDrop.java | 2 +- .../io/anuke/mindustry/entities/traits/BuilderTrait.java | 5 +---- core/src/io/anuke/mindustry/entities/units/BaseUnit.java | 1 + core/src/io/anuke/mindustry/graphics/OverlayRenderer.java | 4 ++-- .../io/anuke/mindustry/ui/fragments/BlocksFragment.java | 6 +++++- core/src/io/anuke/mindustry/world/blocks/BuildBlock.java | 7 +++++-- .../mindustry/world/blocks/distribution/Conveyor.java | 7 +++++-- 7 files changed, 20 insertions(+), 12 deletions(-) diff --git a/core/src/io/anuke/mindustry/entities/effect/ItemDrop.java b/core/src/io/anuke/mindustry/entities/effect/ItemDrop.java index 586af7cb10..aafc8ff57a 100644 --- a/core/src/io/anuke/mindustry/entities/effect/ItemDrop.java +++ b/core/src/io/anuke/mindustry/entities/effect/ItemDrop.java @@ -181,7 +181,7 @@ public class ItemDrop extends SolidEntity implements SaveTrait, SyncTrait, DrawT } if(sinktime >= sinkLifetime){ - CallEntity.onPickup(getID()); + remove(); } }else{ sinktime = 0f; diff --git a/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java b/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java index 9cec8ef75d..65d7cfcf52 100644 --- a/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java +++ b/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java @@ -25,10 +25,7 @@ import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Fill; import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.graphics.Shapes; -import io.anuke.ucore.util.Angles; -import io.anuke.ucore.util.Geometry; -import io.anuke.ucore.util.Mathf; -import io.anuke.ucore.util.Translator; +import io.anuke.ucore.util.*; import java.util.Arrays; diff --git a/core/src/io/anuke/mindustry/entities/units/BaseUnit.java b/core/src/io/anuke/mindustry/entities/units/BaseUnit.java index 3cf444c62f..ea3aa69afc 100644 --- a/core/src/io/anuke/mindustry/entities/units/BaseUnit.java +++ b/core/src/io/anuke/mindustry/entities/units/BaseUnit.java @@ -251,6 +251,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{ if(Net.client()){ interpolate(); + status.update(this); return; } diff --git a/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java b/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java index 3feebd3807..06cdae9910 100644 --- a/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java @@ -121,11 +121,11 @@ public class OverlayRenderer { drawbars.run(); if(values[0] > 0){ - drawEncloser(target.drawx(), target.drawy() + target.block().size * tilesize/2f + 2f + values[0]/2f + (values[0] > 2 ? 1 : 0), values[0]); + drawEncloser(target.drawx(), target.drawy() + target.block().size * tilesize/2f + 2f + values[0]/2f - 0.5f + (values[0] > 2 ? 0.5f : 0), values[0]); } if(values[1] > 0){ - drawEncloser(target.drawx(), target.drawy() - target.block().size * tilesize/2f - 2f - values[1]/2f, values[1]); + drawEncloser(target.drawx(), target.drawy() - target.block().size * tilesize/2f - 2f - values[1]/2f - 0.5f, values[1]); } doDraw[0] = true; diff --git a/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java index 6f8ec1be23..7249472f78 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java @@ -259,7 +259,11 @@ public class BlocksFragment extends Fragment{ return; } } - } + }/*else{ + if(control.input(0).recipe == r){ + control.input(0).recipe = null; + } + }*/ image.setChecked(false); }); diff --git a/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java b/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java index 0abea72ab5..8b1b129cd0 100644 --- a/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java @@ -196,7 +196,6 @@ public class BuildBlock extends Block { double maxProgress = amount; for(int i = 0; i < recipe.requirements.length; i ++){ - accumulator[i] += recipe.requirements[i].amount*amount; //add amount progressed to the accumulator int required = (int)(accumulator[i]); //calculate items that are required now if(required > 0){ //if this amount is positive... @@ -205,7 +204,7 @@ public class BuildBlock extends Block { //get this as a fraction double fraction = maxUse / (double)required; - accumulator[i] -= recipe.requirements[i].amount*amount*(1-fraction); + //accumulator[i] -= recipe.requirements[i].amount*amount*(1-fraction); //move max progress down if this fraction is less than 1 maxProgress = Math.min(maxProgress, maxProgress*fraction); @@ -217,6 +216,10 @@ public class BuildBlock extends Block { //else, no items are required yet, so just keep going } + for (int i = 0; i < recipe.requirements.length; i++) { + accumulator[i] += recipe.requirements[i].amount*maxProgress; //add min amount progressed to the accumulator + } + progress += maxProgress; updated = true; } diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java index 8e2261be57..47c2de709a 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java @@ -77,8 +77,11 @@ public class Conveyor extends Block{ float x = tile.drawx(), y = tile.drawy(); if(offset % 2 == 1){ - if(point.x < 0) x += 0.5f; - if(point.y < 0) y += 0.5f; + if(point.x < 0) x += 0.75f; + if(point.y < 0) + y += 0.5f; + else if(point.y > 0) + y -= 0.5f; } Draw.rect(region1,