BuildVisibility non-enum / Canvas is now shown
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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){
|
||||
|
||||
@@ -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){
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user