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
+15 -1
View File
@@ -119,11 +119,21 @@ public class CommandAI extends AIController{
} }
} }
boolean noBoost = true;
if(targetPos != null){ if(targetPos != null){
boolean move = true; boolean move = true;
vecOut.set(targetPos); 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); move = Vars.controlPath.getPathPosition(unit, pathId, targetPos, vecOut);
} }
@@ -175,6 +185,10 @@ public class CommandAI extends AIController{
}else if(target != null){ }else if(target != null){
faceTarget(); faceTarget();
} }
if(noBoost){
unit.updateBoosting(false);
}
} }
@Override @Override
+1 -1
View File
@@ -5801,7 +5801,7 @@ public class Blocks{
}}; }};
canvas = new CanvasBlock("canvas"){{ 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; canvasSize = 12;
padding = 7f / 4f * 2f; padding = 7f / 4f * 2f;
@@ -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. */ /** Move based on preferred unit movement type. */
public void movePref(Vec2 movement){ public void movePref(Vec2 movement){
if(type.omniMovement){ if(type.omniMovement){
@@ -80,6 +80,7 @@ public class ContentParser{
put(Blending.class, (type, data) -> field(Blending.class, data)); put(Blending.class, (type, data) -> field(Blending.class, data));
put(CacheLayer.class, (type, data) -> field(CacheLayer.class, data)); put(CacheLayer.class, (type, data) -> field(CacheLayer.class, data));
put(Attribute.class, (type, data) -> Attribute.get(data.asString())); put(Attribute.class, (type, data) -> Attribute.get(data.asString()));
put(BuildVisibility.class, (type, data) -> field(BuildVisibility.class, data));
put(Schematic.class, (type, data) -> { put(Schematic.class, (type, data) -> {
Object result = fieldOpt(Loadouts.class, data); Object result = fieldOpt(Loadouts.class, data);
if(result != null){ if(result != null){
@@ -21,7 +21,7 @@ import static mindustry.Vars.*;
public class CanvasBlock extends Block{ public class CanvasBlock extends Block{
public float padding = 0f; public float padding = 0f;
public int canvasSize = 8; 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 int bitsPerPixel;
public IntIntMap colorToIndex = new IntIntMap(); public IntIntMap colorToIndex = new IntIntMap();
@@ -4,17 +4,19 @@ import arc.func.*;
import mindustry.*; import mindustry.*;
import mindustry.content.*; import mindustry.content.*;
public enum BuildVisibility{ public class BuildVisibility{
hidden(() -> false), public static final BuildVisibility
shown(() -> true),
debugOnly(() -> false), hidden = new BuildVisibility(() -> false),
editorOnly(() -> Vars.state.rules.editor), shown = new BuildVisibility(() -> true),
sandboxOnly(() -> Vars.state == null || Vars.state.rules.infiniteResources), debugOnly = new BuildVisibility(() -> false),
campaignOnly(() -> Vars.state == null || Vars.state.isCampaign()), editorOnly = new BuildVisibility(() -> Vars.state.rules.editor),
lightingOnly(() -> Vars.state == null || Vars.state.rules.lighting || Vars.state.isCampaign()), sandboxOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.infiniteResources),
berylliumOnly(() -> !Vars.state.rules.hiddenBuildItems.contains(Items.beryllium)), campaignOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.isCampaign()),
ammoOnly(() -> Vars.state == null || Vars.state.rules.unitAmmo), lightingOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.lighting || Vars.state.isCampaign()),
fogOnly(() -> Vars.state == null || Vars.state.rules.fog || Vars.state.rules.editor); 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; private final Boolp visible;
@@ -22,7 +24,7 @@ public enum BuildVisibility{
return visible.get(); return visible.get();
} }
BuildVisibility(Boolp visible){ public BuildVisibility(Boolp visible){
this.visible = visible; this.visible = visible;
} }
} }