Merge branch 'master' of https://github.com/Anuken/Mindustry into 7.0-features

 Conflicts:
	core/src/mindustry/content/Blocks.java
This commit is contained in:
Anuken
2021-09-04 12:26:07 -04:00
28 changed files with 80 additions and 22 deletions
@@ -91,7 +91,7 @@ public abstract class BaseProcessor extends AbstractProcessor{
} }
public static TypeName tname(String pack, String simple){ public static TypeName tname(String pack, String simple){
return ClassName.get(pack, simple ); return ClassName.get(pack, simple);
} }
public static TypeName tname(String name){ public static TypeName tname(String name){
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 524 B

Binary file not shown.
+1 -1
View File
@@ -45,7 +45,7 @@ public class Vars implements Loadable{
/** Name of current Steam player. */ /** Name of current Steam player. */
public static String steamPlayerName = ""; public static String steamPlayerName = "";
/** Default accessible content types used for player-selectable icons. */ /** Default accessible content types used for player-selectable icons. */
public static final ContentType[] defaultContentIcons = {ContentType.item, ContentType.liquid, ContentType.block}; public static final ContentType[] defaultContentIcons = {ContentType.item, ContentType.liquid, ContentType.block, ContentType.unit};
/** Wall darkness radius. */ /** Wall darkness radius. */
public static final int darkRadius = 4; public static final int darkRadius = 4;
/** Maximum extra padding around deployment schematics. */ /** Maximum extra padding around deployment schematics. */
+1 -1
View File
@@ -755,8 +755,8 @@ public class Blocks implements ContentList{
rotate = false; rotate = false;
solid = true; solid = true;
outputsLiquid = true; outputsLiquid = true;
drawer = new DrawMixer();
envEnabled = Env.any; envEnabled = Env.any;
drawer = new DrawMixer(true);
consumes.power(1f); consumes.power(1f);
consumes.item(Items.titanium); consumes.item(Items.titanium);
+1 -1
View File
@@ -288,7 +288,7 @@ public class SectorInfo{
public void eachImport(Planet planet, Cons<Sector> cons){ public void eachImport(Planet planet, Cons<Sector> cons){
for(Sector sector : planet.sectors){ for(Sector sector : planet.sectors){
Sector dest = sector.info.getRealDestination(); Sector dest = sector.info.getRealDestination();
if(sector.hasBase() && sector.info != this && dest != null && dest.info == this){ if(sector.hasBase() && sector.info != this && dest != null && dest.info == this && sector.info.anyExports()){
cons.get(sector); cons.get(sector);
} }
} }
+2
View File
@@ -77,6 +77,8 @@ public class Trail{
if(points.size >= 3){ if(points.size >= 3){
points.removeRange(0, 2); points.removeRange(0, 2);
} }
counter = 0f;
} }
} }
+6
View File
@@ -715,6 +715,7 @@ public class LExecutor{
if((base instanceof Building && timer.get(30f)) || (ai != null && ai.checkTargetTimer(this))){ if((base instanceof Building && timer.get(30f)) || (ai != null && ai.checkTargetTimer(this))){
//if any of the targets involve enemies //if any of the targets involve enemies
boolean enemies = target1 == RadarTarget.enemy || target2 == RadarTarget.enemy || target3 == RadarTarget.enemy; boolean enemies = target1 == RadarTarget.enemy || target2 == RadarTarget.enemy || target3 == RadarTarget.enemy;
boolean allies = target1 == RadarTarget.ally || target2 == RadarTarget.ally || target3 == RadarTarget.ally;
best = null; best = null;
bestValue = 0; bestValue = 0;
@@ -726,6 +727,11 @@ public class LExecutor{
find(r, range, sortDir, data.items[i].team); find(r, range, sortDir, data.items[i].team);
} }
} }
}else if(!allies){
Seq<TeamData> data = state.teams.present;
for(int i = 0; i < data.size; i++){
find(r, range, sortDir, data.items[i].team);
}
}else{ }else{
find(r, range, sortDir, r.team()); find(r, range, sortDir, r.team());
} }
+1 -1
View File
@@ -686,7 +686,7 @@ public class UnitType extends UnlockableContent{
} }
public void drawControl(Unit unit){ public void drawControl(Unit unit){
Draw.z(Layer.groundUnit - 2); Draw.z(unit.isFlying() ? Layer.flyingUnitLow : Layer.groundUnit - 2);
Draw.color(Pal.accent, Color.white, Mathf.absin(4f, 0.3f)); Draw.color(Pal.accent, Color.white, Mathf.absin(4f, 0.3f));
Lines.poly(unit.x, unit.y, 4, unit.hitSize + 1.5f); Lines.poly(unit.x, unit.y, 4, unit.hitSize + 1.5f);
@@ -24,6 +24,8 @@ import mindustry.ui.*;
import static mindustry.Vars.*; import static mindustry.Vars.*;
public class JoinDialog extends BaseDialog{ public class JoinDialog extends BaseDialog{
//TODO unused
Seq<Host> commmunityHosts = new Seq<>();
Seq<Server> servers = new Seq<>(); Seq<Server> servers = new Seq<>();
Dialog add; Dialog add;
Server renaming; Server renaming;
@@ -358,6 +360,7 @@ public class JoinDialog extends BaseDialog{
} }
void refreshCommunity(){ void refreshCommunity(){
commmunityHosts.clear();
int cur = refreshes; int cur = refreshes;
global.clear(); global.clear();
@@ -378,6 +381,8 @@ public class JoinDialog extends BaseDialog{
if(refreshes != cur) return; if(refreshes != cur) return;
res.port = resport; res.port = resport;
commmunityHosts.add(res);
//add header //add header
if(groupTable[0] == null){ if(groupTable[0] == null){
global.table(t -> groupTable[0] = t).row(); global.table(t -> groupTable[0] = t).row();
@@ -521,7 +521,10 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{
pt.button(planet.localizedName, Styles.clearTogglet, () -> { pt.button(planet.localizedName, Styles.clearTogglet, () -> {
selected = null; selected = null;
launchSector = null; launchSector = null;
renderer.planets.planet = planet; if(renderer.planets.planet != planet){
renderer.planets.planet = planet;
rebuildList();
}
settings.put("lastplanet", planet.name); settings.put("lastplanet", planet.name);
}).width(200).height(40).growX().update(bb -> bb.setChecked(renderer.planets.planet == planet)); }).width(200).height(40).growX().update(bb -> bb.setChecked(renderer.planets.planet == planet));
pt.row(); pt.row();
@@ -60,7 +60,7 @@ public class ResearchDialog extends BaseDialog{
//add global counts of each sector //add global counts of each sector
for(Planet planet : content.planets()){ for(Planet planet : content.planets()){
for(Sector sector : planet.sectors){ for(Sector sector : planet.sectors){
if(sector.hasSave() && sector.hasBase()){ if(sector.hasBase()){
ItemSeq cached = sector.items(); ItemSeq cached = sector.items();
cache.put(sector, cached); cache.put(sector, cached);
cached.each((item, amount) -> { cached.each((item, amount) -> {
@@ -155,7 +155,7 @@ public class SchematicsDialog extends BaseDialog{
}); });
buttons.button(Icon.pencil, style, () -> { buttons.button(Icon.pencil, style, () -> {
new Dialog("@schematic.rename"){{ new BaseDialog("@schematic.rename"){{
setFillParent(true); setFillParent(true);
cont.margin(30); cont.margin(30);
@@ -207,7 +207,7 @@ public class HudFragment extends Fragment{
logic.skipWave(); logic.skipWave();
} }
}).growY().fillX().right().width(40f).disabled(b -> !canSkipWave()).name("skip"); }).growY().fillX().right().width(40f).disabled(b -> !canSkipWave()).name("skip");
}).width(dsize * 5 + 4f); }).width(dsize * 5 + 4f).name("statustable");
wavesMain.row(); wavesMain.row();
@@ -90,7 +90,7 @@ public class LaserTurret extends PowerTurret{
return; return;
} }
if(reload <= 0 && (consValid() || cheating())){ if(reload <= 0 && (consValid() || cheating()) && !charging){
BulletType type = peekAmmo(); BulletType type = peekAmmo();
shoot(type); shoot(type);
@@ -40,6 +40,7 @@ public class Conduit extends LiquidBlock implements Autotiler{
floating = true; floating = true;
conveyorPlacement = true; conveyorPlacement = true;
noUpdateDisabled = true; noUpdateDisabled = true;
canOverdrive = false;
} }
@Override @Override
@@ -9,6 +9,7 @@ public class LiquidRouter extends LiquidBlock{
super(name); super(name);
noUpdateDisabled = true; noUpdateDisabled = true;
canOverdrive = false;
} }
public class LiquidRouterBuild extends LiquidBuild{ public class LiquidRouterBuild extends LiquidBuild{
@@ -29,6 +29,7 @@ public class ItemLiquidGenerator extends PowerGenerator{
public float maxLiquidGenerate = 0.4f; public float maxLiquidGenerate = 0.4f;
public Effect generateEffect = Fx.generatespark; public Effect generateEffect = Fx.generatespark;
public float generateEffectRnd = 3f;
public Effect explodeEffect = Fx.generatespark; public Effect explodeEffect = Fx.generatespark;
public Color heatColor = Color.valueOf("ff9b59"); public Color heatColor = Color.valueOf("ff9b59");
public @Load("@-top") TextureRegion topRegion; public @Load("@-top") TextureRegion topRegion;
@@ -128,12 +129,12 @@ public class ItemLiquidGenerator extends PowerGenerator{
productionEfficiency = baseLiquidEfficiency * used / maximumPossible; productionEfficiency = baseLiquidEfficiency * used / maximumPossible;
if(used > 0.001f && Mathf.chance(0.05 * delta())){ if(used > 0.001f && Mathf.chance(0.05 * delta())){
generateEffect.at(x + Mathf.range(3f), y + Mathf.range(3f)); generateEffect.at(x + Mathf.range(generateEffectRnd), y + Mathf.range(generateEffectRnd));
} }
}else if(hasItems){ }else if(hasItems){
// No liquids accepted or none supplied, try using items if accepted // No liquids accepted or none supplied, try using items if accepted
if(generateTime <= 0f && items.total() > 0){ if(generateTime <= 0f && items.total() > 0){
generateEffect.at(x + Mathf.range(3f), y + Mathf.range(3f)); generateEffect.at(x + Mathf.range(generateEffectRnd), y + Mathf.range(generateEffectRnd));
Item item = items.take(); Item item = items.take();
productionEfficiency = getItemEfficiency(item); productionEfficiency = getItemEfficiency(item);
explosiveness = item.explosiveness; explosiveness = item.explosiveness;
@@ -176,7 +176,7 @@ public class PowerGraph{
public void distributePower(float needed, float produced, boolean charged){ public void distributePower(float needed, float produced, boolean charged){
//distribute even if not needed. this is because some might be requiring power but not using it; it updates consumers //distribute even if not needed. this is because some might be requiring power but not using it; it updates consumers
float coverage = Mathf.zero(needed) && Mathf.zero(produced) && !charged ? 0f : Mathf.zero(needed) ? 1f : Math.min(1, produced / needed); float coverage = Mathf.zero(needed) && Mathf.zero(produced) && !charged && Mathf.zero(lastPowerStored) ? 0f : Mathf.zero(needed) ? 1f : Math.min(1, produced / needed);
for(Building consumer : consumers){ for(Building consumer : consumers){
Consumers consumes = consumer.block.consumes; Consumers consumes = consumer.block.consumes;
if(consumes.hasPower()){ if(consumes.hasPower()){
@@ -3,6 +3,7 @@ package mindustry.world.blocks.power;
import mindustry.type.*; import mindustry.type.*;
public class SingleTypeGenerator extends ItemLiquidGenerator{ public class SingleTypeGenerator extends ItemLiquidGenerator{
public boolean useItems = true;
public SingleTypeGenerator(String name){ public SingleTypeGenerator(String name){
super(name); super(name);
@@ -11,11 +12,11 @@ public class SingleTypeGenerator extends ItemLiquidGenerator{
@Override @Override
protected float getItemEfficiency(Item item){ protected float getItemEfficiency(Item item){
return 1f; return useItems ? 1f : 0f;
} }
@Override @Override
protected float getLiquidEfficiency(Liquid liquid){ protected float getLiquidEfficiency(Liquid liquid){
return 0f; return useItems ? 0f : 1f;
} }
} }
@@ -40,7 +40,7 @@ public class SolidPump extends Pump{
drawPotentialLinks(x, y); drawPotentialLinks(x, y);
if(attribute != null){ if(attribute != null){
drawPlaceText(Core.bundle.formatFloat("bar.efficiency", Math.max(sumAttribute(attribute, x, y) / size / size + baseEfficiency, 0f) * 100 * percentSolid(x, y), 1), x, y, valid); drawPlaceText(Core.bundle.format("bar.efficiency", Math.round(Math.max(sumAttribute(attribute, x, y) / size / size + baseEfficiency, 0f) * 100 * percentSolid(x, y))), x, y, valid);
} }
} }
+20 -1
View File
@@ -3,18 +3,36 @@ package mindustry.world.draw;
import arc.*; import arc.*;
import arc.graphics.g2d.*; import arc.graphics.g2d.*;
import mindustry.graphics.*; import mindustry.graphics.*;
import mindustry.type.*;
import mindustry.world.*; import mindustry.world.*;
import mindustry.world.blocks.production.*; import mindustry.world.blocks.production.*;
import mindustry.world.blocks.production.GenericCrafter.*; import mindustry.world.blocks.production.GenericCrafter.*;
import mindustry.world.consumers.*;
public class DrawLiquid extends DrawBlock{ public class DrawLiquid extends DrawBlock{
public TextureRegion liquid, top; public TextureRegion inLiquid, liquid, top;
public boolean useOutputSprite = false;
public DrawLiquid(){
}
public DrawLiquid(boolean useOutputSprite){
this.useOutputSprite = useOutputSprite;
}
@Override @Override
public void draw(GenericCrafterBuild build){ public void draw(GenericCrafterBuild build){
Draw.rect(build.block.region, build.x, build.y); Draw.rect(build.block.region, build.x, build.y);
GenericCrafter type = (GenericCrafter)build.block; GenericCrafter type = (GenericCrafter)build.block;
if((inLiquid.found() || useOutputSprite) && type.consumes.has(ConsumeType.liquid)){
Liquid input = type.consumes.<ConsumeLiquid>get(ConsumeType.liquid).liquid;
Drawf.liquid(useOutputSprite ? liquid : inLiquid, build.x, build.y,
build.liquids.get(input) / type.liquidCapacity,
input.color
);
}
if(type.outputLiquid != null && build.liquids.get(type.outputLiquid.liquid) > 0){ if(type.outputLiquid != null && build.liquids.get(type.outputLiquid.liquid) > 0){
Drawf.liquid(liquid, build.x, build.y, Drawf.liquid(liquid, build.x, build.y,
build.liquids.get(type.outputLiquid.liquid) / type.liquidCapacity, build.liquids.get(type.outputLiquid.liquid) / type.liquidCapacity,
@@ -29,6 +47,7 @@ public class DrawLiquid extends DrawBlock{
public void load(Block block){ public void load(Block block){
top = Core.atlas.find(block.name + "-top"); top = Core.atlas.find(block.name + "-top");
liquid = Core.atlas.find(block.name + "-liquid"); liquid = Core.atlas.find(block.name + "-liquid");
inLiquid = Core.atlas.find(block.name + "-input-liquid");
} }
@Override @Override
+21 -2
View File
@@ -2,19 +2,37 @@ package mindustry.world.draw;
import arc.*; import arc.*;
import arc.graphics.g2d.*; import arc.graphics.g2d.*;
import mindustry.graphics.*;
import mindustry.type.*;
import mindustry.world.*; import mindustry.world.*;
import mindustry.world.blocks.production.*; import mindustry.world.blocks.production.*;
import mindustry.world.blocks.production.GenericCrafter.*; import mindustry.world.blocks.production.GenericCrafter.*;
import mindustry.world.consumers.*;
public class DrawMixer extends DrawBlock{ public class DrawMixer extends DrawBlock{
public TextureRegion liquid, top, bottom; public TextureRegion inLiquid, liquid, top, bottom;
public boolean useOutputSprite;
public DrawMixer(){
}
public DrawMixer(boolean useOutputSprite){
this.useOutputSprite = useOutputSprite;
}
@Override @Override
public void draw(GenericCrafterBuild build){ public void draw(GenericCrafterBuild build){
float rotation = build.block.rotate ? build.rotdeg() : 0; float rotation = build.block.rotate ? build.rotdeg() : 0;
Draw.rect(bottom, build.x, build.y, rotation); Draw.rect(bottom, build.x, build.y, rotation);
if((inLiquid.found() || useOutputSprite) && build.block.consumes.has(ConsumeType.liquid)){
Liquid input = build.block.consumes.<ConsumeLiquid>get(ConsumeType.liquid).liquid;
Drawf.liquid(useOutputSprite ? liquid : inLiquid, build.x, build.y,
build.liquids.get(input) / build.block.liquidCapacity,
input.color
);
}
if(build.liquids.total() > 0.001f){ if(build.liquids.total() > 0.001f){
Draw.color(((GenericCrafter)build.block).outputLiquid.liquid.color); Draw.color(((GenericCrafter)build.block).outputLiquid.liquid.color);
Draw.alpha(build.liquids.get(((GenericCrafter)build.block).outputLiquid.liquid) / build.block.liquidCapacity); Draw.alpha(build.liquids.get(((GenericCrafter)build.block).outputLiquid.liquid) / build.block.liquidCapacity);
@@ -27,6 +45,7 @@ public class DrawMixer extends DrawBlock{
@Override @Override
public void load(Block block){ public void load(Block block){
inLiquid = Core.atlas.find(block.name + "-input-liquid");
liquid = Core.atlas.find(block.name + "-liquid"); liquid = Core.atlas.find(block.name + "-liquid");
top = Core.atlas.find(block.name + "-top"); top = Core.atlas.find(block.name + "-top");
bottom = Core.atlas.find(block.name + "-bottom"); bottom = Core.atlas.find(block.name + "-bottom");
+1 -1
View File
@@ -11,4 +11,4 @@ android.useAndroidX=true
#used for slow jitpack builds; TODO see if this actually works #used for slow jitpack builds; TODO see if this actually works
http.socketTimeout=80000 http.socketTimeout=80000
http.connectionTimeout=80000 http.connectionTimeout=80000
archash=dd43cacc5c5a68bd7160234a97b4fd48d9a816d7 archash=98c420de77661889ab0330a956d50721f27f33d9
+1 -1
View File
@@ -57,7 +57,7 @@
}, },
{ {
"name": "Omega", "name": "Omega",
"address": ["178.170.47.34:20204", "157.90.213.2:30308", "157.90.180.53:25738", "185.86.230.61:25578", "mindustry.me:7172"] "address": ["yeeth.mindustry.me:2004"]
}, },
{ {
"name": "md.obvilionnetwork.ru", "name": "md.obvilionnetwork.ru",
+1 -1
View File
@@ -13,7 +13,7 @@
}, },
{ {
"name": "Omega", "name": "Omega",
"address": ["yeet.mindustry.me", "yeet.mindustry.me:2345", "n3.mindustry.me:4444","n2.mindustry.me:4040", "n2.mindustry.me:4002", "n2.mindustry.me:4001", "n3.mindustry.me", "n2.mindustry.me:4004"] "address": ["yeet.mindustry.me", "yeeth.mindustry.me:2006", "yeeth.mindustry.me:2003","yeeth.mindustry.me:2002", "yeeth.mindustry.me:2001", "yeeth.mindustry.me:2007", "yeeth.mindustry.me:2005"]
}, },
{ {
"name": "MeowLand", "name": "MeowLand",