diff --git a/core/assets-raw/sprites/units/dagger.png b/core/assets-raw/sprites/units/dagger.png index 25fb15a197..a99eedc521 100644 Binary files a/core/assets-raw/sprites/units/dagger.png and b/core/assets-raw/sprites/units/dagger.png differ diff --git a/core/assets-raw/sprites/units/power-cell.png b/core/assets-raw/sprites/units/power-cell.png index 933442c7a0..5a288ada35 100644 Binary files a/core/assets-raw/sprites/units/power-cell.png and b/core/assets-raw/sprites/units/power-cell.png differ diff --git a/core/assets-raw/sprites/units/wraith.png b/core/assets-raw/sprites/units/wraith.png index 28ab23c33a..6f21bb6869 100644 Binary files a/core/assets-raw/sprites/units/wraith.png and b/core/assets-raw/sprites/units/wraith.png differ diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 8c07a6539c..741afc6c19 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 ccf6a6737d..038990e873 100644 Binary files a/core/assets/sprites/sprites2.png and b/core/assets/sprites/sprites2.png differ diff --git a/core/src/mindustry/entities/AllDefs.java b/core/src/mindustry/entities/AllDefs.java index 090218ef40..318b1b0b85 100644 --- a/core/src/mindustry/entities/AllDefs.java +++ b/core/src/mindustry/entities/AllDefs.java @@ -5,7 +5,7 @@ import mindustry.gen.*; class AllDefs{ - @GroupDef(Entityc.class) + @GroupDef(value = Entityc.class, mapping = true) class all{ } diff --git a/core/src/mindustry/game/Team.java b/core/src/mindustry/game/Team.java index 7d74ed5a60..465fb7d556 100644 --- a/core/src/mindustry/game/Team.java +++ b/core/src/mindustry/game/Team.java @@ -24,7 +24,7 @@ public class Team implements Comparable{ public final static Team derelict = new Team(0, "derelict", Color.valueOf("4d4e58")), sharded = new Team(1, "sharded", Pal.accent.cpy()), - crux = new Team(2, "crux", Color.valueOf("e82d2d")), + crux = new Team(2, "crux", Color.valueOf("f25555")), green = new Team(3, "green", Color.valueOf("4dd98b")), purple = new Team(4, "purple", Color.valueOf("9a4bdf")), blue = new Team(5, "blue", Color.royal.cpy()); diff --git a/core/src/mindustry/graphics/MinimapRenderer.java b/core/src/mindustry/graphics/MinimapRenderer.java index e48650174e..a7b85b330a 100644 --- a/core/src/mindustry/graphics/MinimapRenderer.java +++ b/core/src/mindustry/graphics/MinimapRenderer.java @@ -93,7 +93,7 @@ public class MinimapRenderer implements Disposable{ Draw.mixcol(unit.team().color, 1f); float scale = Scl.scl(1f) / 2f * scaling * 32f; - Draw.rect(unit.type().region, x + rx, y + ry, scale, scale, unit.rotation() - 90); + Draw.rect(unit.type().icon(Cicon.full), x + rx, y + ry, scale, scale, unit.rotation() - 90); Draw.reset(); //only disable player names in multiplayer diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 76e07f806a..6049ae9fd8 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -185,7 +185,7 @@ public class UnitType extends UnlockableContent{ public void drawEngine(Unitc unit){ if(!unit.isFlying()) return; - Draw.color(engineColor); + Draw.color(unit.team().color, Color.white, 0f); Fill.circle( unit.x() + Angles.trnsx(unit.rotation() + 180, engineOffset), unit.y() + Angles.trnsy(unit.rotation() + 180, engineOffset), diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 8a0cdc7d3f..576ee932d4 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -509,42 +509,39 @@ public class Block extends UnlockableContent{ } protected void initEntity(){ + //attempt to find the first declared class and use it as the entity type + try{ + Class current = getClass(); + + if(current.isAnonymousClass()){ + current = current.getSuperclass(); + } + + while(entityType == null && Block.class.isAssignableFrom(current)){ + //first class that is subclass of Tilec + Class type = Structs.find(current.getDeclaredClasses(), t -> Tilec.class.isAssignableFrom(t) && !t.isInterface()); + if(type != null){ + //these are inner classes, so they have an implicit parameter generated + Constructor cons = (Constructor)type.getDeclaredConstructor(type.getDeclaringClass()); + entityType = () -> { + try{ + return cons.newInstance(this); + }catch(Exception e){ + throw new RuntimeException(e); + } + }; + } + + //scan through every superclass looking for it + current = current.getSuperclass(); + } + + }catch(Throwable ignored){ + } + if(entityType == null){ - - //attempt to find the first declared class and use it as the entity type - try{ - Class current = getClass(); - - if(current.isAnonymousClass()){ - current = current.getSuperclass(); - } - - while(entityType == null && Block.class.isAssignableFrom(current)){ - //first class that is subclass of Tilec - Class type = Structs.find(current.getDeclaredClasses(), t -> Tilec.class.isAssignableFrom(t) && !t.isInterface()); - if(type != null){ - //these are inner classes, so they have an implicit parameter generated - Constructor cons = (Constructor)type.getDeclaredConstructor(type.getDeclaringClass()); - entityType = () -> { - try{ - return cons.newInstance(this); - }catch(Exception e){ - throw new RuntimeException(e); - } - }; - } - - //scan through every superclass looking for it - current = current.getSuperclass(); - } - - }catch(Throwable ignored){ - } - - if(entityType == null){ - //assign default value - entityType = TileEntity::create; - } + //assign default value + entityType = TileEntity::create; } } diff --git a/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java b/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java index ff4318adc7..0deb3e6983 100644 --- a/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/PayloadConveyor.java @@ -16,7 +16,6 @@ import mindustry.world.blocks.payloads.*; import static mindustry.Vars.*; -//TODO rename public class PayloadConveyor extends Block{ public float moveTime = 70f; public TextureRegion topRegion, edgeRegion; @@ -103,6 +102,7 @@ public class PayloadConveyor extends Block{ //trigger update forward next.updateTile(); + //TODO add self to queue of next conveyor, then check if this conveyor was selected next frame - selection happens deterministically if(next.acceptPayload(this, item)){ //move forward. next.handlePayload(this, item); @@ -110,7 +110,7 @@ public class PayloadConveyor extends Block{ } }else if(!blocked){ //dump item forward - float trnext = size * tilesize / 2f, cx = Geometry.d4(rotation()).x, cy = Geometry.d4(rotation()).y, rot = rotation() * 90; + float trnext = size * tilesize / 2f, cx = Geometry.d4(rotation()).x, cy = Geometry.d4(rotation()).y; if(item.dump(x + cx * trnext, y + cy * trnext, rotation() * 90)){ item = null;