Many various fixes
This commit is contained in:
@@ -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 |
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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){
|
||||||
|
|||||||
@@ -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){
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user