diff --git a/core/assets-raw/sprites/blocks/logic/logic-display.png b/core/assets-raw/sprites/blocks/logic/logic-display.png index 274d5a0f52..ffb2404f09 100644 Binary files a/core/assets-raw/sprites/blocks/logic/logic-display.png and b/core/assets-raw/sprites/blocks/logic/logic-display.png differ diff --git a/core/assets-raw/sprites/blocks/logic/logic-processor.png b/core/assets-raw/sprites/blocks/logic/logic-processor.png index 7071b2b02c..7746f89935 100644 Binary files a/core/assets-raw/sprites/blocks/logic/logic-processor.png and b/core/assets-raw/sprites/blocks/logic/logic-processor.png differ diff --git a/core/assets-raw/sprites/blocks/logic/micro-processor.png b/core/assets-raw/sprites/blocks/logic/micro-processor.png index b592ad967f..2b1de7cd5f 100644 Binary files a/core/assets-raw/sprites/blocks/logic/micro-processor.png and b/core/assets-raw/sprites/blocks/logic/micro-processor.png differ diff --git a/core/assets/sprites/block_colors.png b/core/assets/sprites/block_colors.png index 70532a72de..48abe3d2f3 100644 Binary files a/core/assets/sprites/block_colors.png and b/core/assets/sprites/block_colors.png differ diff --git a/core/assets/sprites/fallback/sprites2.png b/core/assets/sprites/fallback/sprites2.png index b2f798dd69..631dd1823f 100644 Binary files a/core/assets/sprites/fallback/sprites2.png and b/core/assets/sprites/fallback/sprites2.png differ diff --git a/core/assets/sprites/fallback/sprites4.png b/core/assets/sprites/fallback/sprites4.png index eeebe8e635..92ce35e565 100644 Binary files a/core/assets/sprites/fallback/sprites4.png and b/core/assets/sprites/fallback/sprites4.png differ diff --git a/core/assets/sprites/fallback/sprites6.png b/core/assets/sprites/fallback/sprites6.png index c165f371bc..26f716975d 100644 Binary files a/core/assets/sprites/fallback/sprites6.png and b/core/assets/sprites/fallback/sprites6.png differ diff --git a/core/assets/sprites/fallback/sprites7.png b/core/assets/sprites/fallback/sprites7.png index 6529f48f8b..a0fae4bf8e 100644 Binary files a/core/assets/sprites/fallback/sprites7.png and b/core/assets/sprites/fallback/sprites7.png differ diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 7b7bf59f04..12dc1892a4 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/assets/sprites/sprites2.png b/core/assets/sprites/sprites2.png index ebad8f05ed..b2b7b35881 100644 Binary files a/core/assets/sprites/sprites2.png and b/core/assets/sprites/sprites2.png differ diff --git a/core/assets/sprites/sprites4.png b/core/assets/sprites/sprites4.png index 94eb399814..890dcb6b04 100644 Binary files a/core/assets/sprites/sprites4.png and b/core/assets/sprites/sprites4.png differ diff --git a/core/assets/sprites/sprites5.png b/core/assets/sprites/sprites5.png index 9c3117e92c..46b43470f8 100644 Binary files a/core/assets/sprites/sprites5.png and b/core/assets/sprites/sprites5.png differ diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index 6f1e6d0d68..c06c1e1a68 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -1169,6 +1169,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, @Override public double sense(LAccess sensor){ + if(sensor == LAccess.x) return x; + if(sensor == LAccess.y) return y; if(sensor == LAccess.health) return health; if(sensor == LAccess.efficiency) return efficiency(); if(sensor == LAccess.rotation) return rotation; diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index ca323206bd..68af3b28a1 100644 --- a/core/src/mindustry/entities/comp/UnitComp.java +++ b/core/src/mindustry/entities/comp/UnitComp.java @@ -73,6 +73,8 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I public double sense(LAccess sensor){ if(sensor == LAccess.totalItems) return stack().amount; if(sensor == LAccess.health) return health; + if(sensor == LAccess.x) return x; + if(sensor == LAccess.y) return y; return 0; } diff --git a/core/src/mindustry/logic/LAccess.java b/core/src/mindustry/logic/LAccess.java index ff9c4c6031..c620970b6e 100644 --- a/core/src/mindustry/logic/LAccess.java +++ b/core/src/mindustry/logic/LAccess.java @@ -18,6 +18,8 @@ public enum LAccess{ heat, efficiency, rotation, + x, + y, //values with parameters are considered controllable enabled("to"), //"to" is standard for single parameter access diff --git a/core/src/mindustry/logic/LCanvas.java b/core/src/mindustry/logic/LCanvas.java index cd4add83e9..e6c3b74b77 100644 --- a/core/src/mindustry/logic/LCanvas.java +++ b/core/src/mindustry/logic/LCanvas.java @@ -16,6 +16,7 @@ import arc.util.*; import arc.util.ArcAnnotate.*; import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.logic.LStatements.*; import mindustry.ui.*; import mindustry.ui.dialogs.*; @@ -45,6 +46,7 @@ public class LCanvas extends Table{ int i = 0; for(Prov prov : LogicIO.allStatements){ LStatement example = prov.get(); + if(example instanceof InvalidStatement) continue; t.button(example.name(), Styles.cleart, () -> { add(prov.get()); dialog.hide(); diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index 882f2ef9f2..b9afb48006 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -266,7 +266,7 @@ public class LStatements{ table.left(); - table.add(" set "); + table.add("set "); table.button(b -> { b.label(() -> type.name()); @@ -274,8 +274,7 @@ public class LStatements{ type = t; rebuild(table); }, 2, cell -> cell.size(100, 50))); - }, Styles.logict, () -> { - }).size(90, 40).color(table.color).left().padLeft(2); + }, Styles.logict, () -> {}).size(90, 40).color(table.color).left().padLeft(2); table.add(" of "); diff --git a/core/src/mindustry/logic/UnaryOp.java b/core/src/mindustry/logic/UnaryOp.java index 0230576348..4efe215871 100644 --- a/core/src/mindustry/logic/UnaryOp.java +++ b/core/src/mindustry/logic/UnaryOp.java @@ -1,5 +1,7 @@ package mindustry.logic; +import arc.math.*; + public enum UnaryOp{ negate("-", a -> -a), not("not", a -> ~(int)(a)), @@ -12,6 +14,7 @@ public enum UnaryOp{ floor("floor", Math::floor), ceil("ceil", Math::ceil), sqrt("sqrt", Math::sqrt), + rand("rand", d -> Mathf.rand.nextDouble() * d), ; public static final UnaryOp[] all = values();