Block icon rework / Dynamic icon generation / Tech tree tweaks
This commit is contained in:
@@ -15,6 +15,7 @@ import io.anuke.mindustry.input.PlaceUtils.NormalizeDrawResult;
|
||||
import io.anuke.mindustry.input.PlaceUtils.NormalizeResult;
|
||||
import io.anuke.mindustry.net.Net;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.mindustry.world.Block.Icon;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
|
||||
import static io.anuke.mindustry.Vars.*;
|
||||
@@ -45,13 +46,10 @@ public class DesktopInput extends InputHandler{
|
||||
if(validPlace(x, y, block, rotation)){
|
||||
Draw.color();
|
||||
|
||||
TextureRegion[] regions = block.getBlockIcon();
|
||||
|
||||
for(TextureRegion region : regions){
|
||||
Draw.rect(region, x * tilesize + block.offset(), y * tilesize + block.offset(),
|
||||
region.getWidth() * selectScale * Draw.scl,
|
||||
region.getHeight() * selectScale * Draw.scl, block.rotate ? rotation * 90 : 0);
|
||||
}
|
||||
TextureRegion region = block.icon(Icon.full);
|
||||
Draw.rect(region, x * tilesize + block.offset(), y * tilesize + block.offset(),
|
||||
region.getWidth() * selectScale * Draw.scl,
|
||||
region.getHeight() * selectScale * Draw.scl, block.rotate ? rotation * 90 : 0);
|
||||
}else{
|
||||
Draw.color(Palette.removeBack);
|
||||
Lines.square(x * tilesize + block.offset(), y * tilesize + block.offset() - 1, block.size * tilesize / 2f);
|
||||
|
||||
@@ -231,9 +231,9 @@ public abstract class InputHandler implements InputProcessor{
|
||||
|
||||
boolean canMine(Tile tile){
|
||||
return !Core.scene.hasMouse()
|
||||
&& tile.floor().drops != null && tile.floor().drops.item.hardness <= player.mech.drillPower
|
||||
&& tile.floor().itemDrop != null && tile.floor().itemDrop.hardness <= player.mech.drillPower
|
||||
&& !tile.floor().playerUnmineable
|
||||
&& player.inventory.canAcceptItem(tile.floor().drops.item)
|
||||
&& player.inventory.canAcceptItem(tile.floor().itemDrop)
|
||||
&& tile.block() == Blocks.air && player.dst(tile.worldx(), tile.worldy()) <= Player.mineDistance;
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ import io.anuke.mindustry.input.PlaceUtils.NormalizeResult;
|
||||
import io.anuke.mindustry.type.Recipe;
|
||||
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.mindustry.world.Block.Icon;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
|
||||
import static io.anuke.mindustry.Vars.*;
|
||||
@@ -171,17 +172,15 @@ public class MobileInput extends InputHandler implements GestureListener{
|
||||
if(!request.remove){
|
||||
//draw placing request
|
||||
float offset = request.recipe.result.offset();
|
||||
TextureRegion[] regions = request.recipe.result.getBlockIcon();
|
||||
TextureRegion region = request.recipe.result.icon(Icon.full);
|
||||
|
||||
Draw.alpha(Mathf.clamp((1f - request.scale) / 0.5f));
|
||||
Draw.tint(Color.WHITE, Palette.breakInvalid, request.redness);
|
||||
|
||||
for(TextureRegion region : regions){
|
||||
Draw.rect(region, tile.worldx() + offset, tile.worldy() + offset,
|
||||
region.getWidth() * request.scale * Draw.scl,
|
||||
region.getHeight() * request.scale * Draw.scl,
|
||||
request.recipe.result.rotate ? request.rotation * 90 : 0);
|
||||
}
|
||||
Draw.rect(region, tile.worldx() + offset, tile.worldy() + offset,
|
||||
region.getWidth() * request.scale * Draw.scl,
|
||||
region.getHeight() * request.scale * Draw.scl,
|
||||
request.recipe.result.rotate ? request.rotation * 90 : 0);
|
||||
}else{
|
||||
float rad = (tile.block().size * tilesize / 2f - 1) * request.scale;
|
||||
Draw.alpha(0f);
|
||||
@@ -343,14 +342,12 @@ public class MobileInput extends InputHandler implements GestureListener{
|
||||
if(!checkOverlapPlacement(x, y, recipe.result) && validPlace(x, y, recipe.result, result.rotation)){
|
||||
Draw.color();
|
||||
|
||||
TextureRegion[] regions = recipe.result.getBlockIcon();
|
||||
TextureRegion region = recipe.result.icon(Icon.full);
|
||||
|
||||
for(TextureRegion region : regions){
|
||||
Draw.rect(region, x * tilesize + recipe.result.offset(), y * tilesize + recipe.result.offset(),
|
||||
region.getWidth() * lineScale * Draw.scl,
|
||||
region.getHeight() * lineScale * Draw.scl,
|
||||
recipe.result.rotate ? result.rotation * 90 : 0);
|
||||
}
|
||||
Draw.rect(region, x * tilesize + recipe.result.offset(), y * tilesize + recipe.result.offset(),
|
||||
region.getWidth() * lineScale * Draw.scl,
|
||||
region.getHeight() * lineScale * Draw.scl,
|
||||
recipe.result.rotate ? result.rotation * 90 : 0);
|
||||
}else{
|
||||
Draw.color(Palette.removeBack);
|
||||
Lines.square(x * tilesize + recipe.result.offset(), y * tilesize + recipe.result.offset() - 1, recipe.result.size * tilesize / 2f);
|
||||
|
||||
Reference in New Issue
Block a user