From cf1fb98d5c36c9ecc1814354a83215113d0d7703 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 9 May 2022 17:33:43 -0400 Subject: [PATCH] Misc bugfixes --- .../sprites/units/precept-treads.png | Bin 483 -> 492 bytes core/assets-raw/sprites/units/precept.png | Bin 2904 -> 2943 bytes core/src/mindustry/content/UnitTypes.java | 10 +-------- .../mindustry/entities/comp/BuildingComp.java | 4 ++-- core/src/mindustry/world/Block.java | 1 + .../world/blocks/distribution/DuctRouter.java | 19 +++++++++++++++--- 6 files changed, 20 insertions(+), 14 deletions(-) diff --git a/core/assets-raw/sprites/units/precept-treads.png b/core/assets-raw/sprites/units/precept-treads.png index 913546e37671608b7127456d971e346aee21941d..916cd739e56d69842836e2c65b258676246e5c5b 100644 GIT binary patch delta 371 zcmaFN{Dyggczq8C8v_Hw_VnDl3=9m6#X;^)4C~IxykuZtT;}QG7*a9k?cI&OhXX_$ zE;dLoX(cdZsgxx|l{t8wWoXg5$)r^!-Tmj!>SD1C_3Pr2ZIADkWq<&KxvMXlZ@BjM z?&0qzUeE7qUs<>L^+odo|Aj349#}L!X6X~Q@O!Xh_C;><4cGoYzI*|sX5w5)mLI?V zNKD+NS#P(04`1!v&3XU-ZCg2!6QcSozg12|jG3^Edcm9ng-pjeVT|0m3x-vP7v;TX z>x3wU+hEc7IH%;uOoWvdjgOaAAO3%R=YB{saTGSAR$jzKbLh* G2~7Y!exl3( delta 351 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 literal 2904 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 diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index e8f1d4d792..58390ecb37 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -2568,14 +2568,6 @@ public class UnitTypes{ Lines.line(e.x, e.y, v.x, v.y); }); }); - - pointEffectSpace = 8f; - - if(false) - pointEffect = new Effect(20, e -> { - color(e.color); - Fill.poly(e.x, e.y, 3, 4f * e.fout(), e.rotation); - }).layer(Layer.bullet - 0.001f); }}; }}); }}; @@ -2588,7 +2580,7 @@ public class UnitTypes{ health = 4500; armor = 10f; itemCapacity = 0; - treadRects = new Rect[]{new Rect(16 - 60f, 38 - 60f, 30, 75), new Rect(44 - 60f, 7 - 60f, 17, 60)}; + treadRects = new Rect[]{new Rect(16 - 60f, 48 - 70f, 30, 75), new Rect(44 - 60f, 17 - 70f, 17, 60)}; researchCostMultiplier = 0f; weapons.add(new Weapon("precept-weapon"){{ diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index d425f8e580..04d8467e8d 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -63,7 +63,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, transient Tile tile; transient Block block; transient Seq proximity = new Seq<>(6); - transient byte cdump; + transient int cdump; transient int rotation; transient float payloadRotation; transient String lastAccessed; @@ -992,7 +992,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, } public void incrementDump(int prox){ - cdump = (byte)((cdump + 1) % prox); + cdump = ((cdump + 1) % prox); } /** Used for dumping items. */ diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index eea8429354..cf2aeca15a 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -448,6 +448,7 @@ public class Block extends UnlockableContent implements Senseable{ /** Drawn when placing and when hovering over. */ public void drawOverlay(float x, float y, int rotation){ } + public float sumAttribute(@Nullable Attribute attr, int x, int y){ if(attr == null) return 0; Tile tile = world.tile(x, y); diff --git a/core/src/mindustry/world/blocks/distribution/DuctRouter.java b/core/src/mindustry/world/blocks/distribution/DuctRouter.java index ff2d65ae34..d16ac68342 100644 --- a/core/src/mindustry/world/blocks/distribution/DuctRouter.java +++ b/core/src/mindustry/world/blocks/distribution/DuctRouter.java @@ -47,7 +47,7 @@ public class DuctRouter extends Block{ public void setStats(){ super.setStats(); - stats.add(Stat.itemsMoved, 60f / speed, StatUnit.itemsSecond); + stats.add(Stat.itemsMoved, 60f / speed * itemCapacity, StatUnit.itemsSecond); } @Override @@ -78,6 +78,8 @@ public class DuctRouter extends Block{ public float progress; public @Nullable Item current; + protected int acceptors; + @Override public void draw(){ Draw.rect(region, x, y); @@ -99,8 +101,7 @@ public class DuctRouter extends Block{ var target = target(); if(target != null){ target.handleItem(this, current); - int mod = sortItem != null && current != sortItem ? 2 : 3; - cdump = (byte)((cdump + 1) % mod); + cdump = ((cdump + 1) % acceptors); items.remove(current, 1); current = null; progress %= (1f - 1f/speed); @@ -124,6 +125,18 @@ public class DuctRouter extends Block{ public Building target(){ if(current == null) return null; + acceptors = 0; + + //TODO this is horrible. + for(int i = -1; i <= 1; i++){ + int dir = Mathf.mod(rotation + i, 4); + if(sortItem != null && (current == sortItem) != (dir == rotation)) continue; + Building other = nearby(dir); + if(other != null && other.team == team && other.acceptItem(this, current)){ + acceptors ++; + } + } + for(int i = -1; i <= 1; i++){ int dir = Mathf.mod(rotation + (((i + cdump + 1) % 3) - 1), 4); if(sortItem != null && (current == sortItem) != (dir == rotation)) continue;