Cleanup + Generic cross rendering

This commit is contained in:
Anuken
2021-01-15 11:34:33 -05:00
parent bceb7b5809
commit 136c8cfcd2
7 changed files with 23 additions and 17 deletions

View File

@@ -3,6 +3,7 @@ package mindustry.input;
import arc.*; import arc.*;
import arc.Graphics.*; import arc.Graphics.*;
import arc.Graphics.Cursor.*; import arc.Graphics.Cursor.*;
import arc.graphics.*;
import arc.graphics.g2d.*; import arc.graphics.g2d.*;
import arc.math.*; import arc.math.*;
import arc.math.geom.*; import arc.math.geom.*;
@@ -160,14 +161,17 @@ public class DesktopInput extends InputHandler{
drawArrow(block, cursorX, cursorY, rotation); drawArrow(block, cursorX, cursorY, rotation);
} }
Draw.color(); Draw.color();
boolean valid = validPlace(cursorX, cursorY, block, rotation);
drawRequest(cursorX, cursorY, block, rotation); drawRequest(cursorX, cursorY, block, rotation);
block.drawPlace(cursorX, cursorY, rotation, validPlace(cursorX, cursorY, block, rotation)); block.drawPlace(cursorX, cursorY, rotation, valid);
if(block.saveConfig && block.lastConfig != null){ if(block.saveConfig){
Draw.mixcol(!valid ? Pal.breakInvalid : Color.white, (!valid ? 0.4f : 0.24f) + Mathf.absin(Time.globalTime, 6f, 0.28f));
brequest.set(cursorX, cursorY, rotation, block); brequest.set(cursorX, cursorY, rotation, block);
brequest.config = block.lastConfig; brequest.config = block.lastConfig;
block.drawRequestConfig(brequest, allRequests()); block.drawRequestConfig(brequest, allRequests());
brequest.config = null; brequest.config = null;
Draw.reset();
} }
} }
} }

View File

@@ -99,7 +99,7 @@ public class PlacementFragment extends Fragment{
if(Core.input.keyTap(Binding.pick) && player.isBuilder()){ //mouse eyedropper select if(Core.input.keyTap(Binding.pick) && player.isBuilder()){ //mouse eyedropper select
Building tile = world.buildWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y); Building tile = world.buildWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y);
Block tryRecipe = tile == null ? null : tile.block instanceof ConstructBlock ? ((ConstructBuild)tile).cblock : tile.block; Block tryRecipe = tile == null ? null : tile instanceof ConstructBuild c ? c.cblock : tile.block;
Object tryConfig = tile == null ? null : tile.config(); Object tryConfig = tile == null ? null : tile.config();
for(BuildPlan req : player.unit().plans()){ for(BuildPlan req : player.unit().plans()){

View File

@@ -426,9 +426,7 @@ public class Block extends UnlockableContent{
TextureRegion reg = getRequestRegion(req, list); TextureRegion reg = getRequestRegion(req, list);
Draw.rect(reg, req.drawx(), req.drawy(), !rotate ? 0 : req.rotation * 90); Draw.rect(reg, req.drawx(), req.drawy(), !rotate ? 0 : req.rotation * 90);
if(req.config != null){ drawRequestConfig(req, list);
drawRequestConfig(req, list);
}
} }
public TextureRegion getRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public TextureRegion getRequestRegion(BuildPlan req, Eachable<BuildPlan> list){
@@ -439,8 +437,14 @@ public class Block extends UnlockableContent{
} }
public void drawRequestConfigCenter(BuildPlan req, Object content, String region){ public void drawRequestConfigCenter(BuildPlan req, Object content, String region, boolean cross){
Color color = content instanceof Item ? ((Item)content).color : content instanceof Liquid ? ((Liquid)content).color : null; if(content == null){
if(cross){
Draw.rect("cross", req.drawx(), req.drawy());
}
return;
}
Color color = content instanceof Item i ? i.color : content instanceof Liquid l ? l.color : null;
if(color == null) return; if(color == null) return;
Draw.color(color); Draw.color(color);
@@ -448,6 +452,10 @@ public class Block extends UnlockableContent{
Draw.color(); Draw.color();
} }
public void drawRequestConfigCenter(BuildPlan req, Object content, String region){
drawRequestConfigCenter(req, content, region, false);
}
public void drawRequestConfigTop(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfigTop(BuildPlan req, Eachable<BuildPlan> list){
} }

View File

@@ -176,8 +176,6 @@ public class ItemBridge extends Block{
public void playerPlaced(Object config){ public void playerPlaced(Object config){
super.playerPlaced(config); super.playerPlaced(config);
if(config != null) return;
Tile link = findLink(tile.x, tile.y); Tile link = findLink(tile.x, tile.y);
if(linkValid(tile, link) && !proximity.contains(link.build)){ if(linkValid(tile, link) && !proximity.contains(link.build)){
link.build.configure(tile.pos()); link.build.configure(tile.pos());

View File

@@ -33,11 +33,7 @@ public class Sorter extends Block{
@Override @Override
public void drawRequestConfig(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfig(BuildPlan req, Eachable<BuildPlan> list){
if(req.config == null){ drawRequestConfigCenter(req, req.config, "center", true);
Draw.rect("cross", req.drawx(), req.drawy());
}else{
drawRequestConfigCenter(req, req.config, "center");
}
} }
@Override @Override

View File

@@ -37,7 +37,7 @@ public class ItemSource extends Block{
@Override @Override
public void drawRequestConfig(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfig(BuildPlan req, Eachable<BuildPlan> list){
drawRequestConfigCenter(req, req.config, "center"); drawRequestConfigCenter(req, req.config, "center", true);
} }
@Override @Override

View File

@@ -41,7 +41,7 @@ public class LiquidSource extends Block{
@Override @Override
public void drawRequestConfig(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfig(BuildPlan req, Eachable<BuildPlan> list){
drawRequestConfigCenter(req, req.config, "center"); drawRequestConfigCenter(req, req.config, "center", true);
} }
public class LiquidSourceBuild extends Building{ public class LiquidSourceBuild extends Building{