mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-07-20 12:47:37 +07:00
Added warning text on first startup, tutorial stub text, desc fixes
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
text.about=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\nOriginally an entry in the [orange]GDL[] Metal Monstrosity Jam.\n\nCredits:\n- SFX made with [YELLOW]bfxr[]\n- Music made by [GREEN]a beat a day[]\n\nSpecial thanks to:\n- [coral]MitchellFJN[]: extensive playtesting and feedback\n- [sky]Luxray5474[]: wiki work, code contributions\n- [lime]Epowerj[]: code build system, icon\n- All the beta testers on itch.io and Google Play\n
|
text.about=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
|
||||||
text.credits=Credits
|
text.credits=Credits
|
||||||
text.discord=Join the mindustry discord!
|
text.discord=Join the mindustry discord!
|
||||||
text.changes=[SCARLET]Attention!\n[]Some important game mechanics have been changed.\n\n- [accent]Teleporters[] now use power.\n- [accent]Smelteries[] and [accent]crucibles[] now have a maximum item capacity.\n- [accent]Crucibles[] now require coal as fuel.
|
text.changes=[SCARLET]Attention!\n[]Some important game mechanics have been changed.\n\n- [accent]Teleporters[] now use power.\n- [accent]Smelteries[] and [accent]crucibles[] now have a maximum item capacity.\n- [accent]Crucibles[] now require coal as fuel.
|
||||||
@ -271,6 +271,7 @@ text.blocks.maxpowergeneration=Max Power Generation
|
|||||||
text.blocks.powertransferspeed=Power Transfer
|
text.blocks.powertransferspeed=Power Transfer
|
||||||
text.blocks.craftspeed=Production Speed
|
text.blocks.craftspeed=Production Speed
|
||||||
text.blocks.inputliquid=Input Liquid
|
text.blocks.inputliquid=Input Liquid
|
||||||
|
text.blocks.inputliquidaux=Aux Liquid
|
||||||
text.blocks.inputitem=Input Item
|
text.blocks.inputitem=Input Item
|
||||||
text.blocks.inputitems=Input Items
|
text.blocks.inputitems=Input Items
|
||||||
text.blocks.outputitem=Output Item
|
text.blocks.outputitem=Output Item
|
||||||
|
@ -85,6 +85,8 @@ public class TurretBlocks extends BlockList implements ContentList {
|
|||||||
recoil = 2f;
|
recoil = 2f;
|
||||||
reload = 130f;
|
reload = 130f;
|
||||||
cooldown = 0.03f;
|
cooldown = 0.03f;
|
||||||
|
powerUsed = 20f;
|
||||||
|
powerCapacity = 60f;
|
||||||
shootEffect = ShootFx.lancerLaserShoot;
|
shootEffect = ShootFx.lancerLaserShoot;
|
||||||
smokeEffect = ShootFx.lancerLaserShootSmoke;
|
smokeEffect = ShootFx.lancerLaserShootSmoke;
|
||||||
chargeEffect = ShootFx.lancerLaserCharge;
|
chargeEffect = ShootFx.lancerLaserCharge;
|
||||||
|
@ -21,10 +21,10 @@ import io.anuke.mindustry.io.Map;
|
|||||||
import io.anuke.mindustry.io.Saves;
|
import io.anuke.mindustry.io.Saves;
|
||||||
import io.anuke.mindustry.net.Net;
|
import io.anuke.mindustry.net.Net;
|
||||||
import io.anuke.mindustry.type.Recipe;
|
import io.anuke.mindustry.type.Recipe;
|
||||||
|
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
|
||||||
import io.anuke.ucore.core.*;
|
import io.anuke.ucore.core.*;
|
||||||
import io.anuke.ucore.entities.Entities;
|
import io.anuke.ucore.entities.Entities;
|
||||||
import io.anuke.ucore.entities.EntityPhysics;
|
import io.anuke.ucore.entities.EntityPhysics;
|
||||||
import io.anuke.ucore.input.InputProxy;
|
|
||||||
import io.anuke.ucore.modules.Module;
|
import io.anuke.ucore.modules.Module;
|
||||||
import io.anuke.ucore.util.Atlas;
|
import io.anuke.ucore.util.Atlas;
|
||||||
|
|
||||||
@ -46,7 +46,6 @@ public class Control extends Module{
|
|||||||
private ObjectMap<Sound, Long> soundMap = new ObjectMap<>();
|
private ObjectMap<Sound, Long> soundMap = new ObjectMap<>();
|
||||||
|
|
||||||
private Throwable error;
|
private Throwable error;
|
||||||
private InputProxy proxy;
|
|
||||||
private Input gdxInput;
|
private Input gdxInput;
|
||||||
|
|
||||||
public Control(){
|
public Control(){
|
||||||
@ -69,30 +68,6 @@ public class Control extends Module{
|
|||||||
|
|
||||||
gdxInput = Gdx.input;
|
gdxInput = Gdx.input;
|
||||||
|
|
||||||
proxy = new InputProxy(Gdx.input){
|
|
||||||
@Override
|
|
||||||
public int getX(int pointer) {
|
|
||||||
return pointer >= inputs.length ? super.getX(pointer) : (int)inputs[pointer].getMouseX();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getY(int pointer) {
|
|
||||||
return pointer >= inputs.length ? super.getY(pointer) : (int)inputs[pointer].getMouseY();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getX() {
|
|
||||||
return (int)inputs[0].getMouseX();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getY() {
|
|
||||||
return (int)inputs[0].getMouseY();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
//Gdx.input = proxy;
|
|
||||||
|
|
||||||
Sounds.load("shoot.mp3", "place.mp3", "explosion.mp3", "enemyshoot.mp3",
|
Sounds.load("shoot.mp3", "place.mp3", "explosion.mp3", "enemyshoot.mp3",
|
||||||
"corexplode.mp3", "break.mp3", "spawn.mp3", "flame.mp3", "die.mp3",
|
"corexplode.mp3", "break.mp3", "spawn.mp3", "flame.mp3", "die.mp3",
|
||||||
"respawn.mp3", "purchase.mp3", "flame2.mp3", "bigshot.mp3", "laser.mp3", "lasershot.mp3",
|
"respawn.mp3", "purchase.mp3", "flame2.mp3", "bigshot.mp3", "laser.mp3", "lasershot.mp3",
|
||||||
@ -261,15 +236,14 @@ public class Control extends Module{
|
|||||||
public void playMap(Map map){
|
public void playMap(Map map){
|
||||||
ui.loadfrag.show();
|
ui.loadfrag.show();
|
||||||
|
|
||||||
Timers.run(5f, () -> {
|
Timers.run(5f, () ->
|
||||||
threads.run(() -> {
|
threads.run(() -> {
|
||||||
logic.reset();
|
logic.reset();
|
||||||
world.loadMap(map);
|
world.loadMap(map);
|
||||||
logic.play();
|
logic.play();
|
||||||
|
|
||||||
Gdx.app.postRunnable(ui.loadfrag::hide);
|
Gdx.app.postRunnable(ui.loadfrag::hide);
|
||||||
});
|
}));
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isHighScore(){
|
public boolean isHighScore(){
|
||||||
@ -317,6 +291,20 @@ public class Control extends Module{
|
|||||||
EntityPhysics.initPhysics();
|
EntityPhysics.initPhysics();
|
||||||
|
|
||||||
Platform.instance.updateRPC();
|
Platform.instance.updateRPC();
|
||||||
|
|
||||||
|
if(!Settings.has("4.0-warning")){
|
||||||
|
Settings.putBool("4.0-warning", true);
|
||||||
|
|
||||||
|
Timers.runTask(5f, () -> {
|
||||||
|
FloatingDialog dialog = new FloatingDialog("[orange]WARNING![]");
|
||||||
|
dialog.buttons().addButton("$text.ok", dialog::hide).size(100f, 60f);
|
||||||
|
dialog.content().add("The beta version you are about to play should be considered very unstable, and is [accent]not representative of the final 4.0 release.[]\n\n " +
|
||||||
|
"A large portion of content is still unimplemented. \nAll current art and UI is temporary, and will be re-drawn before release. " +
|
||||||
|
"\n\n[accent]Saves and maps may be corrupted without warning between updates.[] You have been warned!").wrap().width(500f);
|
||||||
|
dialog.show();
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**Called from main logic thread.*/
|
/**Called from main logic thread.*/
|
||||||
|
@ -58,9 +58,8 @@ public class MenuFragment implements Fragment{
|
|||||||
|
|
||||||
new imagebutton("icon-play-2", isize, ui.levels::show).text("$text.play").padTop(4f);
|
new imagebutton("icon-play-2", isize, ui.levels::show).text("$text.play").padTop(4f);
|
||||||
|
|
||||||
new imagebutton("icon-tutorial", isize, () -> {
|
new imagebutton("icon-tutorial", isize, () -> ui.showInfo("The tutorial is currently not yet implemented."))
|
||||||
|
.text("$text.tutorial").padTop(4f);
|
||||||
}).text("$text.tutorial").padTop(4f);
|
|
||||||
|
|
||||||
new imagebutton("icon-load", isize, ui.load::show).text("$text.load").padTop(4f);
|
new imagebutton("icon-load", isize, ui.load::show).text("$text.load").padTop(4f);
|
||||||
|
|
||||||
@ -125,7 +124,8 @@ public class MenuFragment implements Fragment{
|
|||||||
ui.showInfo("$text.multiplayer.web");
|
ui.showInfo("$text.multiplayer.web");
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
dialog.content().add(new MenuButton("icon-tutorial", "$text.tutorial", ()-> {}));
|
|
||||||
|
dialog.content().add(new MenuButton("icon-tutorial", "$text.tutorial", ()-> ui.showInfo("The tutorial is currently not yet implemented.")));
|
||||||
|
|
||||||
dialog.content().row();
|
dialog.content().row();
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import io.anuke.mindustry.content.Liquids;
|
|||||||
import io.anuke.mindustry.entities.TileEntity;
|
import io.anuke.mindustry.entities.TileEntity;
|
||||||
import io.anuke.mindustry.type.Liquid;
|
import io.anuke.mindustry.type.Liquid;
|
||||||
import io.anuke.mindustry.world.Tile;
|
import io.anuke.mindustry.world.Tile;
|
||||||
|
import io.anuke.mindustry.world.meta.BlockStat;
|
||||||
import io.anuke.ucore.core.Timers;
|
import io.anuke.ucore.core.Timers;
|
||||||
|
|
||||||
public class TurbineGenerator extends BurnerGenerator {
|
public class TurbineGenerator extends BurnerGenerator {
|
||||||
@ -15,6 +16,13 @@ public class TurbineGenerator extends BurnerGenerator {
|
|||||||
super(name);
|
super(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setStats() {
|
||||||
|
super.setStats();
|
||||||
|
|
||||||
|
stats.add(BlockStat.inputLiquidAux, auxLiquid);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(Tile tile) {
|
public void update(Tile tile) {
|
||||||
TurbineEntity entity = tile.entity();
|
TurbineEntity entity = tile.entity();
|
||||||
|
@ -40,7 +40,7 @@ public class Cultivator extends Drill {
|
|||||||
|
|
||||||
stats.remove(BlockStat.drillTier);
|
stats.remove(BlockStat.drillTier);
|
||||||
stats.add(BlockStat.drillTier, table -> {
|
stats.add(BlockStat.drillTier, table -> {
|
||||||
table.addImage("grass1").size(8*3);
|
table.addImage("grass1").size(8*3).padBottom(3).padTop(3);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,7 +118,6 @@ public class Drill extends Block{
|
|||||||
@Override
|
@Override
|
||||||
public void setStats(){
|
public void setStats(){
|
||||||
super.setStats();
|
super.setStats();
|
||||||
//TODO add drill speed stats
|
|
||||||
|
|
||||||
stats.add(BlockStat.drillTier, table -> {
|
stats.add(BlockStat.drillTier, table -> {
|
||||||
Array<Item> list = new Array<>();
|
Array<Item> list = new Array<>();
|
||||||
@ -131,16 +130,22 @@ public class Drill extends Block{
|
|||||||
|
|
||||||
for (int i = 0; i < list.size; i++) {
|
for (int i = 0; i < list.size; i++) {
|
||||||
Item item = list.get(i);
|
Item item = list.get(i);
|
||||||
table.addImage(item.name + "1").size(8*3).padRight(2).padLeft(2);
|
table.addImage(item.name + "1").size(8*3).padRight(2).padLeft(2).padTop(3).padBottom(3);
|
||||||
if(i != list.size - 1){
|
if(i != list.size - 1){
|
||||||
table.add("/");
|
table.add("/");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
stats.add(BlockStat.drillSpeed, 60f/drillTime, StatUnit.itemsSecond);
|
stats.add(BlockStat.drillSpeed, 60f/drillTime, StatUnit.itemsSecond);
|
||||||
|
|
||||||
if(inputLiquid != null){
|
if(inputLiquid != null){
|
||||||
stats.add(BlockStat.inputLiquid, inputLiquid);
|
stats.add(BlockStat.inputLiquid, inputLiquid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(hasPower){
|
||||||
|
stats.add(BlockStat.powerUse, powerUse*60f, StatUnit.powerSecond);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -22,6 +22,7 @@ public enum BlockStat {
|
|||||||
maxPowerGeneration(StatCategory.power),
|
maxPowerGeneration(StatCategory.power),
|
||||||
|
|
||||||
inputLiquid(StatCategory.crafting),
|
inputLiquid(StatCategory.crafting),
|
||||||
|
inputLiquidAux(StatCategory.crafting),
|
||||||
liquidUse(StatCategory.crafting),
|
liquidUse(StatCategory.crafting),
|
||||||
inputItem(StatCategory.crafting),
|
inputItem(StatCategory.crafting),
|
||||||
inputItems(StatCategory.crafting),
|
inputItems(StatCategory.crafting),
|
||||||
|
Reference in New Issue
Block a user