Merge branch 'master' of https://github.com/Anuken/Mindustry into map_4

This commit is contained in:
Anuken
2022-09-28 19:11:10 -04:00
125 changed files with 1537 additions and 1080 deletions

View File

@@ -8,8 +8,8 @@ import mindustry.entities.*;
import mindustry.entities.abilities.*;
import mindustry.entities.bullet.*;
import mindustry.entities.effect.*;
import mindustry.entities.part.*;
import mindustry.entities.part.DrawPart.*;
import mindustry.entities.part.*;
import mindustry.entities.pattern.*;
import mindustry.gen.*;
import mindustry.graphics.*;
@@ -1042,7 +1042,7 @@ public class Blocks{
craftTime = 10f;
hasLiquids = hasPower = true;
drawer = new DrawMulti(new DrawDefault(), new DrawLiquidRegion());
drawer = new DrawMulti(new DrawRegion("-bottom"), new DrawLiquidTile(), new DrawDefault());
consumePower(1f);
consumeItem(Items.scrap, 1);
@@ -1062,6 +1062,8 @@ public class Blocks{
consumePower(1.1f);
consumeLiquid(Liquids.slag, 4f / 60f);
drawer = new DrawMulti(new DrawRegion("-bottom"), new DrawLiquidTile(), new DrawRegion("-spinner", 3, true), new DrawDefault());
}};
disassembler = new Separator("disassembler"){{
@@ -1080,6 +1082,8 @@ public class Blocks{
consumePower(4f);
consumeItem(Items.scrap);
consumeLiquid(Liquids.slag, 0.12f);
drawer = new DrawMulti(new DrawRegion("-bottom"), new DrawLiquidTile(), new DrawRegion("-spinner", 3, true), new DrawDefault());
}};
sporePress = new GenericCrafter("spore-press"){{
@@ -2135,6 +2139,8 @@ public class Blocks{
liquidRouter = new LiquidRouter("liquid-router"){{
requirements(Category.liquid, with(Items.graphite, 4, Items.metaglass, 2));
liquidCapacity = 20f;
underBullets = true;
solid = false;
}};
liquidContainer = new LiquidRouter("liquid-container"){{
@@ -2226,6 +2232,7 @@ public class Blocks{
liquidPadding = 3f/4f;
researchCostMultiplier = 3;
underBullets = true;
solid = false;
}};
reinforcedLiquidContainer = new LiquidRouter("reinforced-liquid-container"){{
@@ -5746,7 +5753,6 @@ public class Blocks{
requirements(Category.logic, with(Items.copper, 90, Items.lead, 50, Items.silicon, 50));
instructionsPerTick = 2;
size = 1;
}};
@@ -5754,9 +5760,7 @@ public class Blocks{
requirements(Category.logic, with(Items.lead, 320, Items.silicon, 80, Items.graphite, 60, Items.thorium, 50));
instructionsPerTick = 8;
range = 8 * 22;
size = 2;
}};
@@ -5801,7 +5805,7 @@ public class Blocks{
}};
canvas = new CanvasBlock("canvas"){{
requirements(Category.logic, BuildVisibility.debugOnly, with(Items.silicon, 50));
requirements(Category.logic, BuildVisibility.shown, with(Items.silicon, 40, Items.graphite, 10));
canvasSize = 12;
padding = 7f / 4f * 2f;

View File

@@ -54,10 +54,10 @@ public class Fx{
unitSpawn = new Effect(30f, e -> {
if(!(e.data instanceof UnitType unit)) return;
float scl = 1f + e.fout() * 2f;
TextureRegion region = unit.fullIcon;
float scl = (1f + e.fout() * 2f) * region.scl();
alpha(e.fout());
mixcol(Color.white, e.fin());
@@ -67,7 +67,7 @@ public class Fx{
alpha(e.fin());
rect(region, e.x, e.y, region.width * Draw.scl * scl, region.height * Draw.scl * scl, e.rotation - 90);
rect(region, e.x, e.y, region.width * scl, region.height * scl, e.rotation - 90);
}),
unitCapKill = new Effect(80f, e -> {

View File

@@ -64,6 +64,7 @@ public class Planets{
lightDstFrom = 0.2f;
clearSectorOnLose = true;
defaultCore = Blocks.coreBastion;
iconColor = Color.valueOf("ff9266");
hiddenItems.addAll(Items.serpuloItems).removeAll(Items.erekirItems);
//TODO SHOULD there be lighting?
@@ -104,7 +105,9 @@ public class Planets{
generator = new TantrosPlanetGenerator();
meshLoader = () -> new HexMesh(this, 4);
accessible = false;
visible = false;
atmosphereColor = Color.valueOf("3db899");
iconColor = Color.valueOf("597be3");
startSector = 10;
atmosphereRadIn = -0.01f;
atmosphereRadOut = 0.3f;
@@ -114,7 +117,6 @@ public class Planets{
};
}};
//TODO hide beryllium and others on load in rules
serpulo = new Planet("serpulo", sun, 1f, 3){{
generator = new SerpuloPlanetGenerator();
meshLoader = () -> new HexMesh(this, 6);
@@ -139,6 +141,7 @@ public class Planets{
r.attributes.clear();
r.showSpawns = false;
};
iconColor = Color.valueOf("7d4dff");
atmosphereColor = Color.valueOf("3c1b8f");
atmosphereRadIn = 0.02f;
atmosphereRadOut = 0.3f;
@@ -154,10 +157,6 @@ public class Planets{
gen.carbonChance = 0.1f;
gen.ferricChance = 0f;
});
//define launch candidates after all planets initialize
//TODO how will it use the nucleus???
serpulo.launchCandidates.add(erekir);
}
private static Planet makeAsteroid(String name, Planet parent, Block base, Block tint, float tintThresh, int pieces, float scale, Cons<AsteroidGenerator> cgen){
@@ -171,11 +170,12 @@ public class Planets{
accessible = false;
clipRadius = 2f;
defaultEnv = Env.space;
icon = "commandRally";
generator = new AsteroidGenerator();
cgen.get((AsteroidGenerator)generator);
meshLoader = () -> {
iconColor = tint.mapColor;
Color tinted = tint.mapColor.cpy().a(1f - tint.mapColor.a);
Seq<GenericMesh> meshes = new Seq<>();
Color color = base.mapColor;

View File

@@ -93,6 +93,8 @@ public class TechTree{
public Seq<Objective> objectives = new Seq<>();
/** Nodes that depend on this node. */
public final Seq<TechNode> children = new Seq<>();
/** Planet associated with this tech node. Null to auto-detect, or use Serpulo if no associated planet is found. */
public @Nullable Planet planet;
public TechNode(@Nullable TechNode parent, UnlockableContent content, ItemStack[] requirements){
if(parent != null){