diff --git a/core/assets-raw/sprites/ui/logic-node.png b/core/assets-raw/sprites/ui/logic-node.png index 91bf499794..d361e63600 100644 Binary files a/core/assets-raw/sprites/ui/logic-node.png and b/core/assets-raw/sprites/ui/logic-node.png differ diff --git a/core/assets/sprites/fallback/sprites4.png b/core/assets/sprites/fallback/sprites4.png index 1e5bf14706..9d442d1745 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/sprites7.png b/core/assets/sprites/fallback/sprites7.png index c349a50adb..1f6afb9b14 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/sprites2.png b/core/assets/sprites/sprites2.png index 90372a24f1..5735565e8e 100644 Binary files a/core/assets/sprites/sprites2.png and b/core/assets/sprites/sprites2.png differ diff --git a/core/assets/sprites/sprites5.png b/core/assets/sprites/sprites5.png index 9ed9602dcf..70f62a79f9 100644 Binary files a/core/assets/sprites/sprites5.png and b/core/assets/sprites/sprites5.png differ diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index 34b4e99e8a..d875c76833 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -41,7 +41,7 @@ public class Vars implements Loadable{ /** Maximum schematic size.*/ public static final int maxSchematicSize = 32; /** All schematic base64 starts with this string.*/ - public static final String schematicBaseStart ="bXNjaAB"; + public static final String schematicBaseStart ="bXNjaA"; /** IO buffer size. */ public static final int bufferSize = 8192; /** global charset, since Android doesn't support the Charsets class */ diff --git a/core/src/mindustry/entities/comp/ElevationMoveComp.java b/core/src/mindustry/entities/comp/ElevationMoveComp.java index af4b58571d..fed4885d37 100644 --- a/core/src/mindustry/entities/comp/ElevationMoveComp.java +++ b/core/src/mindustry/entities/comp/ElevationMoveComp.java @@ -2,8 +2,9 @@ package mindustry.entities.comp; import mindustry.annotations.Annotations.*; import mindustry.gen.*; +import mindustry.world.*; -import static mindustry.Vars.collisions; +import static mindustry.Vars.*; @Component abstract class ElevationMoveComp implements Velc, Posc, Flyingc, Hitboxc{ @@ -20,4 +21,13 @@ abstract class ElevationMoveComp implements Velc, Posc, Flyingc, Hitboxc{ } } + @Override + public void update(){ + Tile tile = tileOn(); + + if(!net.client() && tile != null && tile.solid() && !isFlying()){ + kill(); + } + } + } diff --git a/core/src/mindustry/game/Schematics.java b/core/src/mindustry/game/Schematics.java index e8924ce7bb..95cbece27f 100644 --- a/core/src/mindustry/game/Schematics.java +++ b/core/src/mindustry/game/Schematics.java @@ -42,7 +42,6 @@ import static mindustry.Vars.*; public class Schematics implements Loadable{ private static final Schematic tmpSchem = new Schematic(new Seq<>(), new StringMap(), 0, 0); private static final Schematic tmpSchem2 = new Schematic(new Seq<>(), new StringMap(), 0, 0); - public static final String base64Header = "bXNjaAB"; private static final byte[] header = {'m', 's', 'c', 'h'}; private static final byte version = 1; diff --git a/core/src/mindustry/logic/LogicCanvas.java b/core/src/mindustry/logic/LogicCanvas.java index 6e0aede376..429d65c3cf 100644 --- a/core/src/mindustry/logic/LogicCanvas.java +++ b/core/src/mindustry/logic/LogicCanvas.java @@ -16,6 +16,7 @@ import mindustry.ui.*; public class LogicCanvas extends WidgetGroup{ private static final Color backgroundCol = Color.black, gridCol = Pal.accent.cpy().mul(0.2f); + private static final Color outCol = Pal.place, inCol = Pal.remove; private Seq nodes = new Seq<>(); @@ -75,20 +76,21 @@ public class LogicCanvas extends WidgetGroup{ t.add("Node").style(Styles.outlineLabel).color(color); t.add().growX(); t.button(Icon.cancel, Styles.onlyi, () -> { - + //TODO disconnect things + remove(); }); - }).growX().padBottom(5); + }).growX().padBottom(6); row(); - defaults().size(190, 36); + defaults().height(30); for(NodeField field : fields){ - add(field).color(color); + add(field).align(field.input ? Align.left : Align.right); row(); } - marginBottom(5); + marginBottom(7); addListener(new InputListener(){ float lastx, lasty; @@ -132,14 +134,20 @@ public class LogicCanvas extends WidgetGroup{ NodeField(boolean input, String name){ this.input = input; + setColor(input ? inCol : outCol); + + float marg = 24f; + if(input){ addIcon(); left(); + marginRight(marg); }else{ right(); + marginLeft(marg); } - add(name).padLeft(5).padRight(5).style(Styles.outlineLabel); + add(name).padLeft(5).padRight(5).style(Styles.outlineLabel).color(color); if(!input){ addIcon(); @@ -153,7 +161,8 @@ public class LogicCanvas extends WidgetGroup{ }).size(s); button = c.get(); - c.update(i -> i.getStyle().imageUpColor = color); + button.userObject = this; + button.getStyle().imageUpColor = color; float pad = s/2f - 3f; @@ -163,12 +172,5 @@ public class LogicCanvas extends WidgetGroup{ c.padRight(-pad); } } - - @Override - public void setColor(Color color){ - super.setColor(color); - - button.getStyle().imageUpColor = color; - } } } diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index cf343cce8f..b3f7036dca 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -45,7 +45,7 @@ public class ContentParser{ return result; }else{ String str = data.asString(); - if(str.startsWith(Schematics.base64Header)){ + if(str.startsWith(Vars.schematicBaseStart)){ return Schematics.readBase64(str); }else{ return Schematics.read(Vars.tree.get("schematics/" + str + "." + Vars.schematicExtension)); diff --git a/core/src/mindustry/world/blocks/power/PowerNode.java b/core/src/mindustry/world/blocks/power/PowerNode.java index 443ace7aae..b9698b7813 100644 --- a/core/src/mindustry/world/blocks/power/PowerNode.java +++ b/core/src/mindustry/world/blocks/power/PowerNode.java @@ -40,6 +40,7 @@ public class PowerNode extends PowerBlock{ configurable = true; consumesPower = false; outputsPower = false; + config(Integer.class, (entity, value) -> { PowerModule power = entity.power; Building other = world.build(value); @@ -80,12 +81,20 @@ public class PowerNode extends PowerBlock{ config(Point2[].class, (tile, value) -> { tile.power.links.clear(); + + IntSeq old = new IntSeq(tile.power.links); + + //clear old + for(int i = 0; i < old.size; i++){ + int cur = old.get(i); + configurations.get(Integer.class).get(tile, cur); + } + + //set new for(Point2 p : value){ - if(tile.power.links.size < maxNodes){ - tile.power.links.add(Point2.pack(p.x + tile.tileX(), p.y + tile.tileY())); - } + int newPos = Point2.pack(p.x + tile.tileX(), p.y + tile.tileY()); + configurations.get(Integer.class).get(tile, newPos); } - tile.updatePowerGraph(); }); }