diff --git a/core/src/io/anuke/mindustry/content/Blocks.java b/core/src/io/anuke/mindustry/content/Blocks.java index ca406f594d..34da7fcb10 100644 --- a/core/src/io/anuke/mindustry/content/Blocks.java +++ b/core/src/io/anuke/mindustry/content/Blocks.java @@ -87,6 +87,7 @@ public class Blocks implements ContentList{ air = new Floor("air"){{ alwaysReplace = true; + hasShadow = false; } public void draw(Tile tile){} @@ -735,6 +736,7 @@ public class Blocks implements ContentList{ shockMine = new ShockMine("shock-mine"){{ requirements(Category.effect, ItemStack.with(Items.lead, 50, Items.silicon, 25)); + hasShadow = false; health = 40; damage = 11; tileDamage = 7f; @@ -1096,7 +1098,7 @@ public class Blocks implements ContentList{ }}; unloader = new Unloader("unloader"){{ - requirements(Category.distribution, ItemStack.with(Items.titanium, 50, Items.silicon, 60)); + requirements(Category.effect, ItemStack.with(Items.titanium, 50, Items.silicon, 60)); speed = 7f; }}; diff --git a/core/src/io/anuke/mindustry/graphics/BlockRenderer.java b/core/src/io/anuke/mindustry/graphics/BlockRenderer.java index e23a45ad26..01f6ee818b 100644 --- a/core/src/io/anuke/mindustry/graphics/BlockRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/BlockRenderer.java @@ -57,7 +57,7 @@ public class BlockRenderer{ for(int x = 0; x < world.width(); x++){ for(int y = 0; y < world.height(); y++){ Tile tile = world.rawTile(x, y); - if(tile.block() != Blocks.air){ + if(tile.block().hasShadow){ Fill.rect(tile.x + 0.5f, tile.y + 0.5f, 1, 1); } } @@ -125,7 +125,11 @@ public class BlockRenderer{ Draw.proj().setOrtho(0, 0, shadows.getWidth(), shadows.getHeight()); for(Tile tile : shadowEvents){ - Draw.color(tile.block() == Blocks.air ? Color.WHITE : shadowColor); + //clear it first + Draw.color(Color.WHITE); + Fill.rect(tile.x + 0.5f, tile.y + 0.5f, 1, 1); + //then draw the shadow + Draw.color(!tile.block().hasShadow ? Color.WHITE : shadowColor); Fill.rect(tile.x + 0.5f, tile.y + 0.5f, 1, 1); } @@ -186,7 +190,6 @@ public class BlockRenderer{ } if(block.expanded || !expanded){ - addRequest(tile, Layer.shadow); if(block.layer != null && block.isLayer(tile)){ addRequest(tile, block.layer); @@ -227,9 +230,7 @@ public class BlockRenderer{ BlockRequest req = requests.get(iterateidx); Block block = req.tile.block(); - if(req.layer == Layer.shadow){ - block.drawShadow(req.tile); - }else if(req.layer == Layer.block){ + if(req.layer == Layer.block){ block.draw(req.tile); if(block.synthetic() && req.tile.getTeam() != player.getTeam()){ block.drawTeam(req.tile); diff --git a/core/src/io/anuke/mindustry/graphics/Layer.java b/core/src/io/anuke/mindustry/graphics/Layer.java index 493a13deba..8a3571d51a 100644 --- a/core/src/io/anuke/mindustry/graphics/Layer.java +++ b/core/src/io/anuke/mindustry/graphics/Layer.java @@ -1,8 +1,6 @@ package io.anuke.mindustry.graphics; public enum Layer{ - /**Drawn under everything.*/ - shadow, /**Base block layer.*/ block, /**for placement*/ diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index 65056aacc0..af923331ec 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -95,6 +95,8 @@ public class Block extends BlockStorage{ public boolean canOverdrive = true; /**Whether the icon region has an outline added.*/ public boolean outlineIcon = false; + /**Whether this block has a shadow under it.*/ + public boolean hasShadow = true; /**Cost of constructing this block.*/ public ItemStack[] buildRequirements = new ItemStack[]{}; @@ -230,10 +232,6 @@ public class Block extends BlockStorage{ Draw.rect(region, tile.drawx(), tile.drawy(), rotate ? tile.getRotation() * 90 : 0); } - public void drawShadow(Tile tile){ - draw(tile); - } - public void drawTeam(Tile tile){ Draw.color(tile.getTeam().color); Draw.rect("block-border", tile.drawx() - size * tilesize/2f + 4, tile.drawy() - size * tilesize/2f + 4); diff --git a/core/src/io/anuke/mindustry/world/blocks/BlockPart.java b/core/src/io/anuke/mindustry/world/blocks/BlockPart.java index 512b39df20..307d567d88 100644 --- a/core/src/io/anuke/mindustry/world/blocks/BlockPart.java +++ b/core/src/io/anuke/mindustry/world/blocks/BlockPart.java @@ -38,11 +38,6 @@ public class BlockPart extends Block{ //do nothing } - @Override - public void drawShadow(Tile tile){ - //also do nothing - } - @Override public boolean isSolidFor(Tile tile){ return tile.getLinked() == null diff --git a/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java b/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java index 07a93fc6c1..033c1c815a 100644 --- a/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java @@ -158,12 +158,6 @@ public class BuildBlock extends Block{ } } - @Override - public void drawShadow(Tile tile){ - //don't - //TODO maybe do - } - @Override public TileEntity newEntity(){ return new BuildEntity(); diff --git a/core/src/io/anuke/mindustry/world/blocks/TreeBlock.java b/core/src/io/anuke/mindustry/world/blocks/TreeBlock.java index 60534c8be0..1aa7a8a6e9 100644 --- a/core/src/io/anuke/mindustry/world/blocks/TreeBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/TreeBlock.java @@ -19,12 +19,6 @@ public class TreeBlock extends Block{ @Override public void draw(Tile tile){} - @Override - public void drawShadow(Tile tile){ - Draw.rect(region, tile.drawx(), tile.drawy(), Mathf.randomSeed(tile.pos(), 0, 4) * 90); - Draw.rect(region, tile.drawx() - shadowOffset, tile.drawy() - shadowOffset, Mathf.randomSeed(tile.pos(), 0, 4) * 90); - } - @Override public void drawLayer(Tile tile){ Draw.rect(region, tile.drawx(), tile.drawy(), Mathf.randomSeed(tile.pos(), 0, 4) * 90);