BuildVisibility non-enum / Canvas is now shown

This commit is contained in:
Anuken
2022-09-23 12:27:44 -04:00
parent 710fd3484f
commit 8b9cbc2c7c
6 changed files with 36 additions and 15 deletions

View File

@@ -119,11 +119,21 @@ public class CommandAI extends AIController{
}
}
boolean noBoost = true;
if(targetPos != null){
boolean move = true;
vecOut.set(targetPos);
if(unit.isGrounded()){
//boosting units with RTS controls are incredibly buggy and hard to use. there's no clear way for units to know where to land to approach or attack something
boolean tryBoosting = false;//unit.type.canBoost && (attackTarget == null || !unit.within(attackTarget, unit.type.range));
//noBoost = false;
if(tryBoosting){
unit.updateBoosting(true);
}
if(unit.isGrounded() && !tryBoosting){
move = Vars.controlPath.getPathPosition(unit, pathId, targetPos, vecOut);
}
@@ -175,6 +185,10 @@ public class CommandAI extends AIController{
}else if(target != null){
faceTarget();
}
if(noBoost){
unit.updateBoosting(false);
}
}
@Override

View File

@@ -5801,7 +5801,7 @@ public class Blocks{
}};
canvas = new CanvasBlock("canvas"){{
requirements(Category.logic, BuildVisibility.debugOnly, with(Items.silicon, 50));
requirements(Category.logic, BuildVisibility.shown, with(Items.silicon, 40, Items.graphite, 10));
canvasSize = 12;
padding = 7f / 4f * 2f;

View File

@@ -63,6 +63,10 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
}
public void updateBoosting(boolean boost){
elevation = Mathf.approachDelta(elevation, type.canBoost ? Mathf.num(boost || onSolid() || (isFlying() && !canLand())) : 0f, type.riseSpeed);
}
/** Move based on preferred unit movement type. */
public void movePref(Vec2 movement){
if(type.omniMovement){

View File

@@ -80,6 +80,7 @@ public class ContentParser{
put(Blending.class, (type, data) -> field(Blending.class, data));
put(CacheLayer.class, (type, data) -> field(CacheLayer.class, data));
put(Attribute.class, (type, data) -> Attribute.get(data.asString()));
put(BuildVisibility.class, (type, data) -> field(BuildVisibility.class, data));
put(Schematic.class, (type, data) -> {
Object result = fieldOpt(Loadouts.class, data);
if(result != null){

View File

@@ -21,7 +21,7 @@ import static mindustry.Vars.*;
public class CanvasBlock extends Block{
public float padding = 0f;
public int canvasSize = 8;
public int[] palette = {0x634b7dff, 0xc45d9f_ff, 0xe39aac_ff, 0xf0dab1_ff, 0x6461c2_ff, 0x2ba9b4_ff, 0x93d4b5_ff, 0xf0f6e8_ff};
public int[] palette = {0x634b7d_ff, 0xc45d9f_ff, 0xe39aac_ff, 0xf0dab1_ff, 0x6461c2_ff, 0x2ba9b4_ff, 0x93d4b5_ff, 0xf0f6e8_ff};
public int bitsPerPixel;
public IntIntMap colorToIndex = new IntIntMap();

View File

@@ -4,17 +4,19 @@ import arc.func.*;
import mindustry.*;
import mindustry.content.*;
public enum BuildVisibility{
hidden(() -> false),
shown(() -> true),
debugOnly(() -> false),
editorOnly(() -> Vars.state.rules.editor),
sandboxOnly(() -> Vars.state == null || Vars.state.rules.infiniteResources),
campaignOnly(() -> Vars.state == null || Vars.state.isCampaign()),
lightingOnly(() -> Vars.state == null || Vars.state.rules.lighting || Vars.state.isCampaign()),
berylliumOnly(() -> !Vars.state.rules.hiddenBuildItems.contains(Items.beryllium)),
ammoOnly(() -> Vars.state == null || Vars.state.rules.unitAmmo),
fogOnly(() -> Vars.state == null || Vars.state.rules.fog || Vars.state.rules.editor);
public class BuildVisibility{
public static final BuildVisibility
hidden = new BuildVisibility(() -> false),
shown = new BuildVisibility(() -> true),
debugOnly = new BuildVisibility(() -> false),
editorOnly = new BuildVisibility(() -> Vars.state.rules.editor),
sandboxOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.infiniteResources),
campaignOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.isCampaign()),
lightingOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.lighting || Vars.state.isCampaign()),
berylliumOnly = new BuildVisibility(() -> !Vars.state.rules.hiddenBuildItems.contains(Items.beryllium)),
ammoOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.unitAmmo),
fogOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.fog || Vars.state.rules.editor);
private final Boolp visible;
@@ -22,7 +24,7 @@ public enum BuildVisibility{
return visible.get();
}
BuildVisibility(Boolp visible){
public BuildVisibility(Boolp visible){
this.visible = visible;
}
}