diff --git a/core/assets/sprites/fallback/sprites.png b/core/assets/sprites/fallback/sprites.png index 9b0e0dced6..0ac9ae0e72 100644 Binary files a/core/assets/sprites/fallback/sprites.png and b/core/assets/sprites/fallback/sprites.png differ diff --git a/core/assets/sprites/fallback/sprites2.png b/core/assets/sprites/fallback/sprites2.png index 361598cb34..0d87820cf5 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/sprites3.png b/core/assets/sprites/fallback/sprites3.png index 16d451396d..d7621ba8ac 100644 Binary files a/core/assets/sprites/fallback/sprites3.png and b/core/assets/sprites/fallback/sprites3.png differ diff --git a/core/assets/sprites/fallback/sprites4.png b/core/assets/sprites/fallback/sprites4.png index 29757ee91a..340afcfeb1 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/sprites5.png b/core/assets/sprites/fallback/sprites5.png index 04a20e93af..69ee2ace6b 100644 Binary files a/core/assets/sprites/fallback/sprites5.png and b/core/assets/sprites/fallback/sprites5.png differ diff --git a/core/assets/sprites/fallback/sprites6.png b/core/assets/sprites/fallback/sprites6.png index 2970060990..95d69da677 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 9f574ed7f2..449c7250a1 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 c08db32f04..82523b7c54 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 6aa2eaf340..54a7288fc8 100644 Binary files a/core/assets/sprites/sprites2.png and b/core/assets/sprites/sprites2.png differ diff --git a/core/assets/sprites/sprites3.png b/core/assets/sprites/sprites3.png index 64ad51443a..39ce589d42 100644 Binary files a/core/assets/sprites/sprites3.png and b/core/assets/sprites/sprites3.png differ diff --git a/core/assets/sprites/sprites4.png b/core/assets/sprites/sprites4.png index 46a9c3cbf8..0b9c292c05 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 13382f36e5..7995912815 100644 Binary files a/core/assets/sprites/sprites5.png and b/core/assets/sprites/sprites5.png differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index abe911716b..d43d8356a8 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -1014,7 +1014,7 @@ public class Blocks implements ContentList{ thermalPump = new Pump("thermal-pump"){{ requirements(Category.liquid, with(Items.copper, 80, Items.metaglass, 90, Items.silicon, 30, Items.titanium, 40, Items.thorium, 35)); pumpAmount = 0.22f; - consumes.power(1f); + consumes.power(1.3f); liquidCapacity = 40f; hasPower = true; size = 3; @@ -1687,11 +1687,11 @@ public class Blocks implements ContentList{ //region units groundFactory = new UnitFactory("ground-factory"){{ - requirements(Category.units, with(Items.copper, 30, Items.lead, 70)); + requirements(Category.units, with(Items.copper, 50, Items.lead, 120, Items.silicon, 80)); plans = new UnitPlan[]{ - new UnitPlan(UnitTypes.dagger, 200f, with(Items.silicon, 10, Items.lead, 10)), - new UnitPlan(UnitTypes.crawler, 200f, with(Items.silicon, 10, Items.blastCompound, 10)), - new UnitPlan(UnitTypes.nova, 200f, with(Items.silicon, 20, Items.lead, 20, Items.titanium, 20)), + new UnitPlan(UnitTypes.dagger, 60f * 20, with(Items.silicon, 10, Items.lead, 10)), + new UnitPlan(UnitTypes.crawler, 60f * 15, with(Items.silicon, 10, Items.blastCompound, 10)), + new UnitPlan(UnitTypes.nova, 60f * 40, with(Items.silicon, 30, Items.lead, 20, Items.titanium, 20)), }; size = 3; consumes.power(1.2f); @@ -1700,8 +1700,8 @@ public class Blocks implements ContentList{ airFactory = new UnitFactory("air-factory"){{ requirements(Category.units, with(Items.copper, 30, Items.lead, 70)); plans = new UnitPlan[]{ - new UnitPlan(UnitTypes.flare, 200f, with(Items.silicon, 10)), - new UnitPlan(UnitTypes.mono, 200f, with(Items.silicon, 15, Items.lead, 15)), + new UnitPlan(UnitTypes.flare, 60f * 15, with(Items.silicon, 10)), + new UnitPlan(UnitTypes.mono, 60f * 35, with(Items.silicon, 30, Items.lead, 15)), }; size = 3; consumes.power(1.2f); @@ -1710,7 +1710,7 @@ public class Blocks implements ContentList{ navalFactory = new UnitFactory("naval-factory"){{ requirements(Category.units, with(Items.copper, 30, Items.lead, 70)); plans = new UnitPlan[]{ - new UnitPlan(UnitTypes.risse, 200f, with(Items.silicon, 20, Items.metaglass, 25)), + new UnitPlan(UnitTypes.risse, 60f * 30f, with(Items.silicon, 20, Items.metaglass, 25)), }; size = 3; requiresWater = true; @@ -1724,7 +1724,7 @@ public class Blocks implements ContentList{ consumes.power(3f); consumes.items(with(Items.silicon, 40, Items.graphite, 40)); - constructTime = 60f * 5f; + constructTime = 60f * 10f; upgrades = new UnitType[][]{ {UnitTypes.nova, UnitTypes.quasar}, @@ -1743,7 +1743,7 @@ public class Blocks implements ContentList{ consumes.power(6f); consumes.items(with(Items.silicon, 130, Items.titanium, 80, Items.metaglass, 30)); - constructTime = 60f * 15f; + constructTime = 60f * 30f; upgrades = new UnitType[][]{ {UnitTypes.horizon, UnitTypes.zenith}, @@ -1763,7 +1763,7 @@ public class Blocks implements ContentList{ consumes.items(with(Items.silicon, 200, Items.titanium, 200, Items.surgealloy, 240)); consumes.liquid(Liquids.cryofluid, 1f); - constructTime = 60f * 60f; + constructTime = 60f * 60f * 1.5f; upgrades = new UnitType[][]{ {UnitTypes.zenith, UnitTypes.antumbra}, @@ -1778,7 +1778,7 @@ public class Blocks implements ContentList{ consumes.items(with(Items.silicon, 300, Items.plastanium, 300, Items.surgealloy, 300, Items.phasefabric, 250)); consumes.liquid(Liquids.cryofluid, 3f); - constructTime = 60f * 60f * 3; + constructTime = 60f * 60f * 4; upgrades = new UnitType[][]{ {UnitTypes.antumbra, UnitTypes.eclipse}, diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 84d67ffd72..aa80b61182 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -569,6 +569,8 @@ public class UnitTypes implements ContentList{ mineTier = 1; mineSpeed = 2.5f; + //no weapon, mining only + /* weapons.add(new Weapon(){{ y = 1.5f; x = 0f; @@ -582,7 +584,7 @@ public class UnitTypes implements ContentList{ bullet = new HealBulletType(5.2f, 10){{ healPercent = 4f; }}; - }}); + }});*/ }}; poly = new UnitType("poly"){{ diff --git a/core/src/mindustry/world/modules/ItemModule.java b/core/src/mindustry/world/modules/ItemModule.java index c358b42e2d..09824a112b 100644 --- a/core/src/mindustry/world/modules/ItemModule.java +++ b/core/src/mindustry/world/modules/ItemModule.java @@ -72,7 +72,7 @@ public class ItemModule extends BlockModule{ cacheSums[i] = 0; if(updateFlow){ - displayFlow[i] = flow[i].hasEnoughData() ? flow[i].mean() : -1; + displayFlow[i] = flow[i].hasEnoughData() ? flow[i].mean() / Time.delta : -1; } } }else{ @@ -88,7 +88,7 @@ public class ItemModule extends BlockModule{ public float getFlowRate(Item item){ if(flow == null) return -1f; - return displayFlow[item.id] * 60 / Time.delta; + return displayFlow[item.id] * 60; } public boolean hasFlowItem(Item item){ diff --git a/core/src/mindustry/world/modules/LiquidModule.java b/core/src/mindustry/world/modules/LiquidModule.java index 0a2e244c59..8725f78fa4 100644 --- a/core/src/mindustry/world/modules/LiquidModule.java +++ b/core/src/mindustry/world/modules/LiquidModule.java @@ -29,7 +29,7 @@ public class LiquidModule extends BlockModule{ flow.add(lastAdded); lastAdded = 0; if(currentFlowRate < 0 || flowTimer.get(updateInterval)){ - currentFlowRate = flow.hasEnoughData() ? flow.mean() : -1f; + currentFlowRate = flow.hasEnoughData() ? flow.mean() / Time.delta : -1f; } }else{ currentFlowRate = -1f; @@ -39,7 +39,7 @@ public class LiquidModule extends BlockModule{ /** @return current liquid's flow rate in u/s; any value < 0 means 'not ready'. */ public float getFlowRate(){ - return currentFlowRate * 60 / Time.delta; + return currentFlowRate * 60; } public float smoothAmount(){ diff --git a/tools/build.gradle b/tools/build.gradle index b56bb4e12e..1b45dd95c0 100644 --- a/tools/build.gradle +++ b/tools/build.gradle @@ -16,6 +16,9 @@ import java.util.concurrent.TimeUnit def genFolder = "../core/assets-raw/sprites_out/generated/" def doAntialias = !project.hasProperty("disableAntialias") def colorMap = new IntMap>(), colorIndexMap = new IntIntMap() +//on my machine, I have a native Nim AA implementation that is ~10x faster +//it's not compiled for other platforms so they don't get it +def useFastAA = System.getProperty("user.name") == "anuke" def transformColors = { List> list -> list.each{ colors -> @@ -38,6 +41,11 @@ transformColors([["a387ea", "8a73c6", "5c5e9f"], ["6e7080", "989aa4", "b0bac0"], def antialias = { File file -> if(!doAntialias) return + if(useFastAA){ + "antialias ${file.absolutePath}".execute().waitFor() + return + } + def image = ImageIO.read(file) def out = ImageIO.read(file) def getRGB = { int ix, int iy -> @@ -354,6 +362,7 @@ task pack(dependsOn: classes){ } ExecutorService executor = Executors.newFixedThreadPool(16) + long ms = System.currentTimeMillis() //antialias everything except UI elements fileTree(dir: '../core/assets-raw/sprites_out/', include: "**/*.png").visit{ file -> @@ -371,6 +380,8 @@ task pack(dependsOn: classes){ e.printStackTrace() } + println "Time taken for AA: ${(System.currentTimeMillis() - ms) / 1000f}" + println("\n\nPacking normal 4096 sprites...\n\n") //pack normal sprites