mirror of
https://github.com/Anuken/Mindustry.git
synced 2026-01-13 21:02:44 -08:00
Prepared for 3.3 beta release
This commit is contained in:
parent
9542f74c14
commit
0b71dcecc0
6 changed files with 139 additions and 81 deletions
|
|
@ -130,6 +130,15 @@ text.respawn=Respawning in
|
|||
text.error.title=[crimson]An error has occured
|
||||
text.error.crashmessage=[SCARLET]An unexpected error has occured, which would have caused a crash. []Please report the exact circumstances under which this error occured to the developer: \n[ORANGE]anukendev@gmail.com[]
|
||||
text.error.crashtitle=An error has occured
|
||||
text.mode.break=Break mode: {0}
|
||||
text.mode.place=Place mode: {0}
|
||||
placemode.hold.name=line
|
||||
placemode.areadelete.name=area
|
||||
placemode.touchdelete.name=touch
|
||||
placemode.holddelete.name=hold
|
||||
placemode.none.name=none
|
||||
placemode.touch.name=touch
|
||||
placemode.cursor.name=cursor
|
||||
text.blocks.extrainfo=[accent]extra block info:
|
||||
text.blocks.blockinfo=Block Info
|
||||
text.blocks.powercapacity=Power Capacity
|
||||
|
|
@ -211,7 +220,7 @@ map.spiral.name=spiral
|
|||
map.tutorial.name=tutorial
|
||||
tutorial.intro.text=[yellow]Welcome to the tutorial.[] To begin, press 'next'.
|
||||
tutorial.moveDesktop.text=To move, use the [orange][[WASD][] keys. Hold [orange]shift[] to boost. Hold [orange]CTRL[] while using the [orange]scrollwheel[] to zoom in or out.
|
||||
tutorial.shoot.text=Use your mouse to aim, hold [orange]left mouse button[] to shootInternal. Try practicing on the [yellow]target[].
|
||||
tutorial.shoot.text=Use your mouse to aim, hold [orange]left mouse button[] to shoot. Try practicing on the [yellow]target[].
|
||||
tutorial.moveAndroid.text=To pan the view, drag one finger across the screen. Pinch and drag to zoom in or out.
|
||||
tutorial.placeSelect.text=Try selecting a [yellow]conveyor[] from the block menu in the bottom right.
|
||||
tutorial.placeConveyorDesktop.text=Use the [orange][[scrollwheel][] to rotate the conveyor to face [orange]forwards[], then place it in the [yellow]marked location[] using the [orange][[left mouse button][].
|
||||
|
|
@ -250,7 +259,7 @@ tutorial.laserMore.text=You can check how much power a block has by hovering ove
|
|||
tutorial.healingTurret.text=This laser can be used to power a [lime]repair turret[]. Place one here.
|
||||
tutorial.healingTurretExplain.text=As long as it has power, this turret will [lime]repair nearby blocks.[] When playing, make sure you get one in your base as quickly as possible!
|
||||
tutorial.smeltery.text=Many blocks require [orange]steel[] to make, which requires a [orange]smelter[] to craft. Place one here.
|
||||
tutorial.smelterySetup.text=This smelter will now produce [orange]steel[] from the input coal and iron.
|
||||
tutorial.smelterySetup.text=This smelter will now produce [orange]steel[] from the input iron, using coal as fuel.
|
||||
tutorial.end.text=And that concludes the tutorial! Good luck!
|
||||
keybind.move_x.name=move_x
|
||||
keybind.move_y.name=move_y
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import com.badlogic.gdx.math.GridPoint2;
|
|||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.core.GameState.State;
|
||||
import io.anuke.mindustry.resource.Item;
|
||||
import io.anuke.mindustry.resource.Weapon;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.world.blocks.*;
|
||||
|
|
@ -374,6 +373,8 @@ public class Tutorial{
|
|||
androidOnly = true;
|
||||
}
|
||||
},
|
||||
//TODO re-add tutorial on weapons
|
||||
/*
|
||||
purchaseWeapons{
|
||||
{
|
||||
desktopOnly = true;
|
||||
|
|
@ -397,7 +398,7 @@ public class Tutorial{
|
|||
Vars.ui.hudfrag.updateWeapons();
|
||||
}
|
||||
}
|
||||
},
|
||||
},*/
|
||||
spawnWave{
|
||||
float warmup = 0f;
|
||||
{
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ public abstract class InputHandler extends InputAdapter{
|
|||
public int rotation;
|
||||
public PlaceMode placeMode = android ? PlaceMode.cursor : PlaceMode.hold;
|
||||
public PlaceMode breakMode = android ? PlaceMode.none : PlaceMode.holdDelete;
|
||||
public PlaceMode lastPlaceMode = placeMode;
|
||||
|
||||
public abstract void update();
|
||||
public abstract float getCursorX();
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import io.anuke.ucore.core.Draw;
|
|||
import io.anuke.ucore.core.Inputs;
|
||||
import io.anuke.ucore.core.Timers;
|
||||
import io.anuke.ucore.scene.utils.Cursors;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
import io.anuke.ucore.util.Mathf;
|
||||
import io.anuke.ucore.util.Tmp;
|
||||
|
||||
|
|
@ -393,4 +394,9 @@ public enum PlaceMode{
|
|||
public void tapped(int x, int y){
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return Bundles.get("placemode."+name().toLowerCase()+".name");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package io.anuke.mindustry.ui.fragments;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
||||
|
|
@ -81,7 +80,12 @@ public class ChatFragment extends Table implements Fragment{
|
|||
add(chatfield).padBottom(offsety).padLeft(offsetx).growX().padRight(offsetx).height(28);
|
||||
|
||||
if(Vars.android) {
|
||||
addImageButton("icon-arrow-right", 14 * 2, this::toggle).size(50f, 55f).visible(() -> chatOpen);
|
||||
marginBottom(110f);
|
||||
marginRight(240f);
|
||||
}
|
||||
|
||||
if(Vars.android) {
|
||||
addImageButton("icon-arrow-right", 14 * 2, this::toggle).size(46f, 51f).visible(() -> chatOpen).pad(2f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -91,7 +95,7 @@ public class ChatFragment extends Table implements Fragment{
|
|||
batch.setColor(shadowColor);
|
||||
|
||||
if(chatOpen)
|
||||
batch.draw(skin.getRegion("white"), offsetx, chatfield.getY(), Gdx.graphics.getWidth()-offsetx*2, chatfield.getHeight()-1);
|
||||
batch.draw(skin.getRegion("white"), offsetx, chatfield.getY(), chatfield.getWidth() + 15f, chatfield.getHeight()-1);
|
||||
|
||||
//font.getData().down = Unit.dp.scl(-21.5f);
|
||||
//font.getData().lineHeight = 22f;
|
||||
|
|
@ -106,7 +110,7 @@ public class ChatFragment extends Table implements Fragment{
|
|||
|
||||
batch.setColor(shadowColor);
|
||||
|
||||
float theight = offsety + spacing;
|
||||
float theight = offsety + spacing + getMarginBottom();
|
||||
for(int i = 0; i < messagesShown && i < messages.size && i < fadetime; i ++){
|
||||
|
||||
layout.setText(font, messages.get(i).formattedMessage, Color.WHITE, textWidth, Align.bottomLeft, true);
|
||||
|
|
|
|||
|
|
@ -11,18 +11,22 @@ import io.anuke.mindustry.input.PlaceMode;
|
|||
import io.anuke.ucore.core.Core;
|
||||
import io.anuke.ucore.scene.actions.Actions;
|
||||
import io.anuke.ucore.scene.builders.imagebutton;
|
||||
import io.anuke.ucore.scene.builders.label;
|
||||
import io.anuke.ucore.scene.builders.table;
|
||||
import io.anuke.ucore.scene.event.Touchable;
|
||||
import io.anuke.ucore.scene.ui.ButtonGroup;
|
||||
import io.anuke.ucore.scene.ui.ImageButton;
|
||||
import io.anuke.ucore.scene.ui.Label;
|
||||
import io.anuke.ucore.scene.ui.layout.Table;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
import io.anuke.ucore.util.Mathf;
|
||||
|
||||
import static io.anuke.mindustry.Vars.control;
|
||||
|
||||
public class PlacementFragment implements Fragment{
|
||||
boolean shown = false;
|
||||
Table breaktable, next;
|
||||
boolean shown = false, placing = false;
|
||||
Table breaktable, next, container;
|
||||
Label modelabel;
|
||||
|
||||
public void build(){
|
||||
if(!Vars.android) return;
|
||||
|
|
@ -30,6 +34,7 @@ public class PlacementFragment implements Fragment{
|
|||
InputHandler input = control.getInput();
|
||||
|
||||
float s = 50f;
|
||||
float translation = 54f;
|
||||
|
||||
new table(){{
|
||||
visible(() -> !GameState.is(State.menu));
|
||||
|
|
@ -41,6 +46,20 @@ public class PlacementFragment implements Fragment{
|
|||
ButtonGroup<ImageButton> breakGroup = new ButtonGroup<>();
|
||||
|
||||
update(t -> {
|
||||
if((input.recipe == null) == placing){
|
||||
float i = 0.1f;
|
||||
Interpolation n = Interpolation.pow3Out;
|
||||
if(input.recipe == null){
|
||||
placing = false;
|
||||
container.clearActions();
|
||||
container.actions(Actions.translateBy(0, -(container.getTranslation().y + translation), i, n));
|
||||
}else{
|
||||
placing = true;
|
||||
container.clearActions();
|
||||
container.actions(Actions.translateBy(0, -(container.getTranslation().y), i, n));
|
||||
input.placeMode = input.lastPlaceMode;
|
||||
}
|
||||
}
|
||||
|
||||
if(!input.placeMode.delete){
|
||||
placeGroup.setMinCheckCount(1);
|
||||
|
|
@ -72,95 +91,113 @@ public class PlacementFragment implements Fragment{
|
|||
}
|
||||
});
|
||||
|
||||
new table(){{
|
||||
visible(() -> input.recipe != null);
|
||||
touchable(Touchable.enabled);
|
||||
container = new table(){{
|
||||
modelabel = new label("").get();
|
||||
|
||||
aleft();
|
||||
row();
|
||||
|
||||
new table("pane"){{
|
||||
margin(5f);
|
||||
new table() {{
|
||||
abottom();
|
||||
aleft();
|
||||
|
||||
defaults().size(s, s + 4).padBottom(-5.5f);
|
||||
height(s + 5 + 4);
|
||||
|
||||
Color color = Color.GRAY;
|
||||
|
||||
new imagebutton("icon-cancel", 14*3, ()->{
|
||||
input.recipe = null;
|
||||
}).imageColor(color)
|
||||
.visible(()->input.recipe != null);
|
||||
|
||||
for(PlaceMode mode : PlaceMode.values()){
|
||||
if(!mode.shown || mode.delete) continue;
|
||||
|
||||
new imagebutton("icon-" + mode.name(), "toggle", 10*3, ()->{
|
||||
control.getInput().resetCursor();
|
||||
input.placeMode = mode;
|
||||
}).group(placeGroup).get().setName(mode.name());
|
||||
}
|
||||
|
||||
new imagebutton("icon-arrow", 14*3, ()->{
|
||||
input.rotation = Mathf.mod(input.rotation + 1, 4);
|
||||
}).imageColor(color).visible(() -> input.recipe != null).update(image ->{
|
||||
image.getImage().setRotation(input.rotation *90);
|
||||
image.getImage().setOrigin(Align.center);
|
||||
});
|
||||
|
||||
}}.padBottom(-5).left().end();
|
||||
}}.left().end();
|
||||
|
||||
row();
|
||||
|
||||
new table(){{
|
||||
abottom();
|
||||
aleft();
|
||||
|
||||
height(s+5+4);
|
||||
|
||||
next = new table("pane"){{
|
||||
margin(5f);
|
||||
|
||||
defaults().padBottom(-5.5f);
|
||||
|
||||
new imagebutton("icon-arrow-right", 10 * 3, () -> {
|
||||
toggle(!shown);
|
||||
}).update(l -> l.getStyle().imageUp = Core.skin.getDrawable(shown ? "icon-arrow-left" : "icon-" + input.breakMode.name())).size(s, s+4);
|
||||
|
||||
}}.end().get();
|
||||
|
||||
breaktable = new table("pane"){{
|
||||
visible(() -> shown);
|
||||
margin(5f);
|
||||
marginLeft(0f);
|
||||
touchable(Touchable.enabled);
|
||||
aleft();
|
||||
|
||||
defaults().size(s, s+4);
|
||||
|
||||
for(PlaceMode mode : PlaceMode.values()){
|
||||
if(!mode.shown || !mode.delete) continue;
|
||||
next = new table("pane") {{
|
||||
margin(5f);
|
||||
|
||||
defaults().padBottom(-5.5f);
|
||||
|
||||
new imagebutton("icon-" + mode.name(), "toggle", 10*3, ()->{
|
||||
control.getInput().resetCursor();
|
||||
input.breakMode = mode;
|
||||
if(!mode.both) input.placeMode = mode;
|
||||
}).group(breakGroup).get().setName(mode.name());
|
||||
}
|
||||
new imagebutton("icon-arrow-right", 10 * 3, () -> {
|
||||
toggle(!shown);
|
||||
}).update(l -> l.getStyle().imageUp = Core.skin.getDrawable(shown ? "icon-arrow-left" : "icon-" + input.breakMode.name())).size(s, s + 4);
|
||||
|
||||
}}.end().get();
|
||||
|
||||
breaktable = new table("pane") {{
|
||||
visible(() -> shown);
|
||||
margin(5f);
|
||||
marginLeft(0f);
|
||||
touchable(Touchable.enabled);
|
||||
aleft();
|
||||
|
||||
defaults().size(s, s + 4);
|
||||
|
||||
for (PlaceMode mode : PlaceMode.values()) {
|
||||
if (!mode.shown || !mode.delete) continue;
|
||||
|
||||
defaults().padBottom(-5.5f);
|
||||
|
||||
new imagebutton("icon-" + mode.name(), "toggle", 10 * 3, () -> {
|
||||
control.getInput().resetCursor();
|
||||
input.breakMode = mode;
|
||||
if (!mode.both) input.placeMode = mode;
|
||||
modeText(Bundles.format("text.mode.break", mode.toString()));
|
||||
}).group(breakGroup).get().setName(mode.name());
|
||||
}
|
||||
|
||||
}}.end().get();
|
||||
|
||||
breaktable.getParent().swapActor(breaktable, next);
|
||||
|
||||
breaktable.getTranslation().set(-breaktable.getPrefWidth(), 0);
|
||||
|
||||
}}.end().get();
|
||||
|
||||
breaktable.getParent().swapActor(breaktable, next);
|
||||
row();
|
||||
|
||||
breaktable.getTranslation().set(-breaktable.getPrefWidth(), 0);
|
||||
new table() {{
|
||||
touchable(Touchable.enabled);
|
||||
|
||||
aleft();
|
||||
|
||||
new table("pane") {{
|
||||
margin(5f);
|
||||
aleft();
|
||||
|
||||
defaults().size(s, s + 4).padBottom(-5.5f);
|
||||
|
||||
Color color = Color.GRAY;
|
||||
|
||||
new imagebutton("icon-cancel", 14 * 3, () -> {
|
||||
input.recipe = null;
|
||||
}).imageColor(color)
|
||||
.visible(() -> input.recipe != null);
|
||||
|
||||
for (PlaceMode mode : PlaceMode.values()) {
|
||||
if (!mode.shown || mode.delete) continue;
|
||||
|
||||
new imagebutton("icon-" + mode.name(), "toggle", 10 * 3, () -> {
|
||||
control.getInput().resetCursor();
|
||||
input.placeMode = mode;
|
||||
input.lastPlaceMode = mode;
|
||||
modeText(Bundles.format("text.mode.place", mode.toString()));
|
||||
}).group(placeGroup).get().setName(mode.name());
|
||||
}
|
||||
|
||||
new imagebutton("icon-arrow", 14 * 3, () -> {
|
||||
input.rotation = Mathf.mod(input.rotation + 1, 4);
|
||||
}).imageColor(color).visible(() -> input.recipe != null).update(image -> {
|
||||
image.getImage().setRotation(input.rotation * 90);
|
||||
image.getImage().setOrigin(Align.center);
|
||||
});
|
||||
|
||||
}}.left().end();
|
||||
}}.left().end();
|
||||
|
||||
}}.end().get();
|
||||
|
||||
container.setTranslation(0, -translation);
|
||||
|
||||
}}.end();
|
||||
}
|
||||
|
||||
private void modeText(String text){
|
||||
modelabel.setText(text);
|
||||
modelabel.clearActions();
|
||||
modelabel.setColor(Color.WHITE);
|
||||
modelabel.actions(Actions.fadeOut(5f, Interpolation.fade));
|
||||
}
|
||||
|
||||
private void toggle(boolean show){
|
||||
float dur = 0.3f;
|
||||
Interpolation in = Interpolation.pow3Out;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue