Many various fixes

This commit is contained in:
Anuken
2019-09-04 23:16:26 -04:00
parent 0a9cad2ea6
commit 0f79298c28
14 changed files with 971 additions and 938 deletions

View File

@@ -893,8 +893,8 @@ tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nBegin by[a
tutorial.drill = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nClick the drill tab in the bottom right.\nSelect the[accent] mechanical drill[]. Place it on a copper vein by clicking.\n[accent]Right-click[] to stop building. tutorial.drill = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nClick the drill tab in the bottom right.\nSelect the[accent] mechanical drill[]. Place it on a copper vein by clicking.\n[accent]Right-click[] to stop building.
tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement. tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement.
tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[] tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[]
tutorial.conveyor = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent]Hold down the mouse to place in a line.[]\nHold[accent] CTRL[] while selecting a line to place diagonally.\n\n[accent]{0}/{1} conveyors placed in line\n[accent]0/1 items delivered tutorial.conveyor = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent]Hold down the mouse to place in a line.[]\nHold[accent] CTRL[] while selecting a line to place diagonally.\n\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core.
tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]{0}/{1} conveyors placed in line\n[accent]0/1 items delivered tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core.
tutorial.turret = Once an item enters your core, it can be used for building.\nKeep in mind that not all items can be used for building.\nItems that are not used for building, such as[accent] coal[] or[accent] scrap[], cannot be put into the core.\nDefensive structures must be built to repel the[lightgray] enemy[].\nBuild a[accent] duo turret[] near your base. tutorial.turret = Once an item enters your core, it can be used for building.\nKeep in mind that not all items can be used for building.\nItems that are not used for building, such as[accent] coal[] or[accent] scrap[], cannot be put into the core.\nDefensive structures must be built to repel the[lightgray] enemy[].\nBuild a[accent] duo turret[] near your base.
tutorial.drillturret = Duo turrets require[accent] copper ammo []to shoot.\nPlace a drill near the turret.\nLead conveyors into the turret to supply it with copper.\n\n[accent]Ammo delivered: 0/1 tutorial.drillturret = Duo turrets require[accent] copper ammo []to shoot.\nPlace a drill near the turret.\nLead conveyors into the turret to supply it with copper.\n\n[accent]Ammo delivered: 0/1
tutorial.pause = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press space to pause. tutorial.pause = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press space to pause.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 574 KiB

After

Width:  |  Height:  |  Size: 566 KiB

View File

@@ -983,7 +983,6 @@ public class Blocks implements ContentList{
pulseConduit = new Conduit("pulse-conduit"){{ pulseConduit = new Conduit("pulse-conduit"){{
requirements(Category.liquid, ItemStack.with(Items.titanium, 1, Items.metaglass, 1)); requirements(Category.liquid, ItemStack.with(Items.titanium, 1, Items.metaglass, 1));
liquidCapacity = 16f; liquidCapacity = 16f;
liquidFlowFactor = 4.9f;
health = 90; health = 90;
}}; }};
@@ -1406,7 +1405,7 @@ public class Blocks implements ContentList{
}}; }};
arc = new PowerTurret("arc"){{ arc = new PowerTurret("arc"){{
requirements(Category.turret, ItemStack.with(Items.copper, 35, Items.lead, 35)); requirements(Category.turret, ItemStack.with(Items.copper, 35, Items.lead, 50));
shootType = Bullets.arc; shootType = Bullets.arc;
reload = 24f; reload = 24f;
shootCone = 40f; shootCone = 40f;

View File

@@ -186,7 +186,6 @@ public class MapEditorDialog extends Dialog implements Disposable{
clearChildren(); clearChildren();
margin(0); margin(0);
shown(this::build);
update(() -> { update(() -> {
if(Core.scene.getKeyboardFocus() instanceof Dialog && Core.scene.getKeyboardFocus() != this){ if(Core.scene.getKeyboardFocus() instanceof Dialog && Core.scene.getKeyboardFocus() != this){
@@ -228,6 +227,8 @@ public class MapEditorDialog extends Dialog implements Disposable{
platform.updateRPC(); platform.updateRPC();
if(!Core.settings.getBool("landscape")) platform.endForceLandscape(); if(!Core.settings.getBool("landscape")) platform.endForceLandscape();
}); });
shown(this::build);
} }
@Override @Override

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.entities.traits; package io.anuke.mindustry.entities.traits;
import io.anuke.arc.math.geom.Position; import io.anuke.arc.math.geom.Position;
import io.anuke.mindustry.entities.type.Player; import io.anuke.mindustry.entities.type.*;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
public interface SpawnerTrait extends TargetTrait, Position{ public interface SpawnerTrait extends TargetTrait, Position{
@@ -9,6 +9,8 @@ public interface SpawnerTrait extends TargetTrait, Position{
void updateSpawning(Player unit); void updateSpawning(Player unit);
boolean hasUnit(Unit unit);
@Override @Override
default boolean isValid(){ default boolean isValid(){
return getTile().entity instanceof SpawnerTrait; return getTile().entity instanceof SpawnerTrait;

View File

@@ -919,7 +919,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
buffer.writeInt(Color.rgba8888(color)); buffer.writeInt(Color.rgba8888(color));
buffer.writeByte(mech.id); buffer.writeByte(mech.id);
buffer.writeInt(mining == null ? noSpawner : mining.pos()); buffer.writeInt(mining == null ? noSpawner : mining.pos());
buffer.writeInt(spawner == null ? noSpawner : spawner.getTile().pos()); buffer.writeInt(spawner == null || !spawner.hasUnit(this) ? noSpawner : spawner.getTile().pos());
buffer.writeShort((short)(baseRotation * 2)); buffer.writeShort((short)(baseRotation * 2));
writeBuilding(buffer); writeBuilding(buffer);

View File

@@ -115,9 +115,7 @@ public class Tutorial{
outline("blockinfo"); outline("blockinfo");
} }
}, },
conveyor( conveyor(() -> placed(Blocks.conveyor, 2) && event("lineconfirm") && event("coreitem")){
line -> Strings.format(line, Math.min(placed(Blocks.conveyor), 2), 2),
() -> placed(Blocks.conveyor, 2) && event("lineconfirm") && event("coreitem")){
void draw(){ void draw(){
outline("category-distribution"); outline("category-distribution");
outline("block-conveyor"); outline("block-conveyor");

View File

@@ -28,7 +28,6 @@ public abstract class BlockStorage extends UnlockableContent{
public int itemCapacity = 10; public int itemCapacity = 10;
public float liquidCapacity = 10f; public float liquidCapacity = 10f;
public float liquidFlowFactor = 4.9f;
public final BlockStats stats = new BlockStats(); public final BlockStats stats = new BlockStats();
public final BlockBars bars = new BlockBars(); public final BlockBars bars = new BlockBars();

View File

@@ -11,6 +11,8 @@ import io.anuke.mindustry.world.*;
public class RespawnBlock{ public class RespawnBlock{
public static void drawRespawn(Tile tile, float heat, float progress, float time, Player player, Mech to){ public static void drawRespawn(Tile tile, float heat, float progress, float time, Player player, Mech to){
progress = Mathf.clamp(progress);
Draw.color(Pal.darkMetal); Draw.color(Pal.darkMetal);
Lines.stroke(2f * heat); Lines.stroke(2f * heat);
Fill.poly(tile.drawx(), tile.drawy(), 4, 10f * heat); Fill.poly(tile.drawx(), tile.drawy(), 4, 10f * heat);

View File

@@ -22,7 +22,6 @@ public class Pump extends LiquidBlock{
public Pump(String name){ public Pump(String name){
super(name); super(name);
layer = Layer.overlay; layer = Layer.overlay;
liquidFlowFactor = 3f;
group = BlockGroup.liquids; group = BlockGroup.liquids;
floating = true; floating = true;
} }

View File

@@ -143,6 +143,11 @@ public class CoreBlock extends StorageBlock{
float time; float time;
float heat; float heat;
@Override
public boolean hasUnit(Unit unit){
return unit == spawnPlayer;
}
@Override @Override
public void updateSpawning(Player player){ public void updateSpawning(Player player){
if(!netServer.isWaitingForPlayers() && spawnPlayer == null){ if(!netServer.isWaitingForPlayers() && spawnPlayer == null){

View File

@@ -142,6 +142,11 @@ public class MechPad extends Block{
float time; float time;
float heat; float heat;
@Override
public boolean hasUnit(Unit unit){
return unit == player;
}
@Override @Override
public void updateSpawning(Player unit){ public void updateSpawning(Player unit){
if(player == null){ if(player == null){

View File

@@ -182,6 +182,8 @@ public class ArcNetClient implements ClientProvider{
private void handleException(Exception e){ private void handleException(Exception e){
if(e instanceof ArcNetException){ if(e instanceof ArcNetException){
Core.app.post(() -> Net.showError(new IOException("mismatch"))); Core.app.post(() -> Net.showError(new IOException("mismatch")));
}else if(e instanceof ClosedChannelException){
Core.app.post(() -> Net.showError(new IOException("alreadyconnected")));
}else{ }else{
Core.app.post(() -> Net.showError(e)); Core.app.post(() -> Net.showError(e));
} }