Merge
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
package io.anuke.mindustry.maps;
|
||||
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.utils.ObjectMap;
|
||||
import io.anuke.ucore.function.Supplier;
|
||||
import io.anuke.arc.graphics.Texture;
|
||||
import io.anuke.arc.collection.ObjectMap;
|
||||
import io.anuke.arc.function.Supplier;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.anuke.mindustry.maps;
|
||||
|
||||
import com.badlogic.gdx.utils.IntIntMap;
|
||||
import com.badlogic.gdx.utils.ObjectMap;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
import io.anuke.arc.Core;
|
||||
import io.anuke.arc.collection.IntIntMap;
|
||||
import io.anuke.arc.collection.ObjectMap;
|
||||
|
||||
public class MapMeta{
|
||||
public final int version;
|
||||
@@ -31,7 +31,7 @@ public class MapMeta{
|
||||
}
|
||||
|
||||
public String tag(String name){
|
||||
return tags.containsKey(name) && !tags.get(name).trim().isEmpty() ? tags.get(name): Bundles.get("text.unknown");
|
||||
return tags.containsKey(name) && !tags.get(name).trim().isEmpty() ? tags.get(name): Core.bundle.get("text.unknown");
|
||||
}
|
||||
|
||||
public boolean hasOreGen(){
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package io.anuke.mindustry.maps;
|
||||
|
||||
import com.badlogic.gdx.utils.IntIntMap;
|
||||
import io.anuke.arc.collection.IntIntMap;
|
||||
import io.anuke.arc.util.Pack;
|
||||
import io.anuke.arc.util.Structs;
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.content.blocks.Blocks;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.ucore.util.Bits;
|
||||
import io.anuke.ucore.util.Structs;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
@@ -73,7 +73,7 @@ public class MapTileData{
|
||||
|
||||
if(Structs.inBounds(worldx, worldy, width, height) && !(dx + offsetx == 0 && dy + offsety == 0)){
|
||||
write(worldx, worldy, DataPosition.wall, Blocks.blockpart.id);
|
||||
write(worldx, worldy, DataPosition.link, Bits.packByte((byte) (dx + offsetx + 8), (byte) (dy + offsety + 8)));
|
||||
write(worldx, worldy, DataPosition.link, Pack.byteByte((byte) (dx + offsetx + 8), (byte) (dy + offsety + 8)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -154,8 +154,8 @@ public class MapTileData{
|
||||
link = buffer.get();
|
||||
byte rt = buffer.get();
|
||||
elevation = buffer.get();
|
||||
rotation = Bits.getLeftByte(rt);
|
||||
team = Bits.getRightByte(rt);
|
||||
rotation = Pack.leftByte(rt);
|
||||
team = Pack.rightByte(rt);
|
||||
|
||||
if(map != null){
|
||||
floor = (byte) map.get(floor, Blocks.stone.id);
|
||||
@@ -168,7 +168,7 @@ public class MapTileData{
|
||||
buffer.put(floor);
|
||||
buffer.put(wall);
|
||||
buffer.put(link);
|
||||
buffer.put(Bits.packByte(rotation, team));
|
||||
buffer.put(Pack.byteByte(rotation, team));
|
||||
buffer.put(elevation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
package io.anuke.mindustry.maps;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.files.FileHandle;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.Disposable;
|
||||
import com.badlogic.gdx.utils.ObjectMap;
|
||||
import io.anuke.arc.Core;
|
||||
import io.anuke.arc.files.FileHandle;
|
||||
import io.anuke.arc.graphics.Texture;
|
||||
import io.anuke.arc.collection.Array;
|
||||
import io.anuke.arc.util.Disposable;
|
||||
import io.anuke.arc.collection.ObjectMap;
|
||||
import io.anuke.mindustry.io.MapIO;
|
||||
import io.anuke.ucore.function.Supplier;
|
||||
import io.anuke.ucore.util.Log;
|
||||
import io.anuke.ucore.util.ThreadArray;
|
||||
import io.anuke.arc.function.Supplier;
|
||||
import io.anuke.arc.util.Log;
|
||||
|
||||
import java.io.DataInputStream;
|
||||
import java.io.IOException;
|
||||
@@ -26,9 +25,9 @@ public class Maps implements Disposable{
|
||||
/**Maps map names to the real maps.*/
|
||||
private ObjectMap<String, Map> maps = new ObjectMap<>();
|
||||
/**All maps stored in an ordered array.*/
|
||||
private Array<Map> allMaps = new ThreadArray<>();
|
||||
private Array<Map> allMaps = new Array<>();
|
||||
/**Temporary array used for returning things.*/
|
||||
private Array<Map> returnArray = new ThreadArray<>();
|
||||
private Array<Map> returnArray = new Array<>();
|
||||
|
||||
/**Returns a list of all maps, including custom ones.*/
|
||||
public Array<Map> all(){
|
||||
@@ -62,7 +61,7 @@ public class Maps implements Disposable{
|
||||
public void load(){
|
||||
try {
|
||||
for (String name : defaultMapNames) {
|
||||
FileHandle file = Gdx.files.internal("maps/" + name + "." + mapExtension);
|
||||
FileHandle file = Core.files.internal("maps/" + name + "." + mapExtension);
|
||||
loadMap(file.nameWithoutExtension(), file::read, false);
|
||||
}
|
||||
}catch (IOException e){
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package io.anuke.mindustry.maps;
|
||||
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import io.anuke.annotations.Annotations.Serialize;
|
||||
import io.anuke.arc.collection.Array;
|
||||
import io.anuke.arc.graphics.Texture;
|
||||
import io.anuke.arc.util.Pack;
|
||||
import io.anuke.mindustry.game.Saves.SaveSlot;
|
||||
import io.anuke.mindustry.game.SpawnGroup;
|
||||
import io.anuke.mindustry.maps.missions.*;
|
||||
import io.anuke.mindustry.type.ItemStack;
|
||||
import io.anuke.ucore.util.Bits;
|
||||
|
||||
import static io.anuke.mindustry.Vars.control;
|
||||
import static io.anuke.mindustry.Vars.headless;
|
||||
@@ -56,7 +56,7 @@ public class Sector{
|
||||
}
|
||||
|
||||
public int getSeed(){
|
||||
return Bits.packInt(x, y);
|
||||
return pos();
|
||||
}
|
||||
|
||||
public SaveSlot getSave(){
|
||||
@@ -68,6 +68,6 @@ public class Sector{
|
||||
}
|
||||
|
||||
public int pos(){
|
||||
return Bits.packInt(x, y);
|
||||
return Pack.shortInt(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package io.anuke.mindustry.maps;
|
||||
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import io.anuke.arc.collection.Array;
|
||||
import io.anuke.arc.collection.GridMap;
|
||||
import io.anuke.mindustry.content.Items;
|
||||
import io.anuke.mindustry.content.Liquids;
|
||||
import io.anuke.mindustry.content.Mechs;
|
||||
@@ -12,8 +13,6 @@ import io.anuke.mindustry.content.blocks.UpgradeBlocks;
|
||||
import io.anuke.mindustry.entities.units.UnitCommand;
|
||||
import io.anuke.mindustry.maps.missions.*;
|
||||
import io.anuke.mindustry.type.Item;
|
||||
import io.anuke.ucore.util.GridMap;
|
||||
import io.anuke.ucore.util.Structs;
|
||||
|
||||
import static io.anuke.mindustry.Vars.mobile;
|
||||
|
||||
@@ -30,7 +29,7 @@ public class SectorPresets{
|
||||
|
||||
//command center mission
|
||||
add(new SectorPreset(0, 1,
|
||||
Structs.array(
|
||||
Array.ofRecursive(
|
||||
Missions.blockRecipe(UnitBlocks.daggerFactory),
|
||||
new UnitMission(UnitTypes.dagger),
|
||||
Missions.blockRecipe(UnitBlocks.commandCenter),
|
||||
@@ -42,7 +41,7 @@ public class SectorPresets{
|
||||
|
||||
//pad mission
|
||||
add(new SectorPreset(0, -2,
|
||||
Structs.array(
|
||||
Array.ofRecursive(
|
||||
Missions.blockRecipe(mobile ? UpgradeBlocks.alphaPad : UpgradeBlocks.dartPad),
|
||||
new MechMission(mobile ? Mechs.alpha : Mechs.dart),
|
||||
new WaveMission(15)
|
||||
@@ -51,7 +50,7 @@ public class SectorPresets{
|
||||
|
||||
//oil mission
|
||||
add(new SectorPreset(-2, 0,
|
||||
Structs.array(
|
||||
Array.ofRecursive(
|
||||
Missions.blockRecipe(ProductionBlocks.cultivator),
|
||||
Missions.blockRecipe(ProductionBlocks.waterExtractor),
|
||||
new ContentMission(Items.biomatter),
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
package io.anuke.mindustry.maps;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.graphics.Pixmap;
|
||||
import com.badlogic.gdx.graphics.Pixmap.Format;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.math.GridPoint2;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.Array.ArrayIterable;
|
||||
import com.badlogic.gdx.utils.async.AsyncExecutor;
|
||||
import io.anuke.arc.Core;
|
||||
import io.anuke.arc.collection.Array;
|
||||
import io.anuke.arc.collection.Array.ArrayIterable;
|
||||
import io.anuke.arc.collection.GridMap;
|
||||
import io.anuke.arc.graphics.Pixmap;
|
||||
import io.anuke.arc.graphics.Pixmap.Format;
|
||||
import io.anuke.arc.graphics.Texture;
|
||||
import io.anuke.arc.math.Mathf;
|
||||
import io.anuke.arc.math.geom.Geometry;
|
||||
import io.anuke.arc.math.geom.Point2;
|
||||
import io.anuke.arc.util.Log;
|
||||
import io.anuke.arc.util.Pack;
|
||||
import io.anuke.arc.util.async.AsyncExecutor;
|
||||
import io.anuke.mindustry.content.Items;
|
||||
import io.anuke.mindustry.core.GameState.State;
|
||||
import io.anuke.mindustry.game.Difficulty;
|
||||
@@ -27,8 +32,6 @@ import io.anuke.mindustry.type.Recipe.RecipeVisibility;
|
||||
import io.anuke.mindustry.world.ColorMapper;
|
||||
import io.anuke.mindustry.world.blocks.Floor;
|
||||
import io.anuke.mindustry.world.blocks.defense.Wall;
|
||||
import io.anuke.ucore.core.Settings;
|
||||
import io.anuke.ucore.util.*;
|
||||
|
||||
import static io.anuke.mindustry.Vars.*;
|
||||
|
||||
@@ -72,7 +75,7 @@ public class Sectors{
|
||||
playSector(sector);
|
||||
|
||||
if(!headless){
|
||||
threads.runGraphics(() -> ui.showError("$text.sector.corrupted"));
|
||||
ui.showError("$text.sector.corrupted");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -83,7 +86,7 @@ public class Sectors{
|
||||
}
|
||||
|
||||
public Sector get(int position){
|
||||
return grid.get(Bits.getLeftShort(position), Bits.getRightShort(position));
|
||||
return grid.get(Pack.leftShort(position), Pack.rightShort(position));
|
||||
}
|
||||
|
||||
public Iterable<Sector> getSectors(){
|
||||
@@ -112,7 +115,7 @@ public class Sectors{
|
||||
Sector sector = get(x, y);
|
||||
sector.complete = true;
|
||||
|
||||
for(GridPoint2 g : Geometry.d4){
|
||||
for(Point2 g : Geometry.d4){
|
||||
createSector(x + g.x, y + g.y);
|
||||
}
|
||||
}
|
||||
@@ -131,7 +134,7 @@ public class Sectors{
|
||||
grid.put(sector.x, sector.y, sector);
|
||||
|
||||
if(sector.texture == null){
|
||||
threads.runGraphics(() -> createTexture(sector));
|
||||
createTexture(sector);
|
||||
}
|
||||
|
||||
if(sector.missions.size == 0){
|
||||
@@ -149,7 +152,7 @@ public class Sectors{
|
||||
|
||||
grid.put(sector.x, sector.y, sector);
|
||||
|
||||
threads.runGraphics(() -> createTexture(sector));
|
||||
createTexture(sector);
|
||||
|
||||
save();
|
||||
}
|
||||
@@ -161,7 +164,7 @@ public class Sectors{
|
||||
}
|
||||
grid.clear();
|
||||
|
||||
Array<Sector> out = Settings.getObject("sector-data-2", Array.class, Array::new);
|
||||
Array<Sector> out = Core.settings.getObject("sector-data-2", Array.class, Array::new);
|
||||
|
||||
for(Sector sector : out){
|
||||
|
||||
@@ -190,8 +193,8 @@ public class Sectors{
|
||||
}
|
||||
}
|
||||
|
||||
Settings.putObject("sector-data-2", out);
|
||||
Settings.save();
|
||||
Core.settings.putObject("sector-data-2", out);
|
||||
Core.settings.save();
|
||||
}
|
||||
|
||||
private void initSector(Sector sector){
|
||||
@@ -246,14 +249,14 @@ public class Sectors{
|
||||
|
||||
Generation gen = new Generation(sector, null, sectorSize, sectorSize, null);
|
||||
|
||||
Array<GridPoint2> points = new Array<>();
|
||||
Array<Point2> points = new Array<>();
|
||||
for(Mission mission : sector.missions){
|
||||
points.addAll(mission.getSpawnPoints(gen));
|
||||
}
|
||||
|
||||
GenResult result = new GenResult();
|
||||
|
||||
for(GridPoint2 point : new ArrayIterable<>(points)){
|
||||
for(Point2 point : new ArrayIterable<>(points)){
|
||||
world.generator.generateTile(result, sector.x, sector.y, point.x, point.y, true, null, null);
|
||||
if(((Floor)result.floor).isLiquid || result.wall.solid){
|
||||
sector.missions.clear();
|
||||
@@ -307,7 +310,7 @@ public class Sectors{
|
||||
}
|
||||
}
|
||||
|
||||
Gdx.app.postRunnable(() -> {
|
||||
Core.app.post(() -> {
|
||||
sector.texture = new Texture(pixmap);
|
||||
pixmap.dispose();
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package io.anuke.mindustry.maps;
|
||||
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import io.anuke.arc.collection.Array;
|
||||
import io.anuke.mindustry.content.Items;
|
||||
import io.anuke.mindustry.content.blocks.ProductionBlocks;
|
||||
import io.anuke.mindustry.content.blocks.StorageBlocks;
|
||||
@@ -61,7 +61,7 @@ public class TutorialSector{
|
||||
new BlockMission(ProductionBlocks.mechanicalDrill).setMessage("$tutorial.generatordrill"),
|
||||
new BlockMission(PowerBlocks.powerNode).setMessage("$tutorial.node"),
|
||||
//TODO fix positions
|
||||
new ConditionMission(Bundles.get("text.mission.linknode"), () -> world.tile(54, 52).entity != null && world.tile(54, 52).entity.power != null && world.tile(54, 52).entity.power.amount >= 0.01f)
|
||||
new ConditionMission(Core.bundle.get("text.mission.linknode"), () -> world.tile(54, 52).entity != null && world.tile(54, 52).entity.power != null && world.tile(54, 52).entity.power.amount >= 0.01f)
|
||||
.setMessage("$tutorial.nodelink"),
|
||||
|
||||
new ItemMission(Items.silicon, 70).setMessage("$tutorial.silicon"),
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
package io.anuke.mindustry.maps.generation;
|
||||
|
||||
import com.badlogic.gdx.math.GridPoint2;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.IntIntMap;
|
||||
import com.badlogic.gdx.utils.Predicate;
|
||||
import io.anuke.arc.collection.Array;
|
||||
import io.anuke.arc.collection.IntIntMap;
|
||||
import io.anuke.arc.function.BiFunction;
|
||||
import io.anuke.arc.function.IntPositionConsumer;
|
||||
import io.anuke.arc.function.Predicate;
|
||||
import io.anuke.arc.function.TriFunction;
|
||||
import io.anuke.arc.math.Mathf;
|
||||
import io.anuke.arc.math.geom.Geometry;
|
||||
import io.anuke.arc.math.geom.Point2;
|
||||
import io.anuke.mindustry.content.Items;
|
||||
import io.anuke.mindustry.content.Liquids;
|
||||
import io.anuke.mindustry.content.blocks.*;
|
||||
@@ -29,11 +33,6 @@ import io.anuke.mindustry.world.blocks.power.SolarGenerator;
|
||||
import io.anuke.mindustry.world.blocks.storage.CoreBlock;
|
||||
import io.anuke.mindustry.world.blocks.storage.StorageBlock;
|
||||
import io.anuke.mindustry.world.blocks.units.UnitFactory;
|
||||
import io.anuke.ucore.function.BiFunction;
|
||||
import io.anuke.ucore.function.IntPositionConsumer;
|
||||
import io.anuke.ucore.function.TriFunction;
|
||||
import io.anuke.ucore.util.Geometry;
|
||||
import io.anuke.ucore.util.Mathf;
|
||||
|
||||
import static io.anuke.mindustry.Vars.content;
|
||||
|
||||
@@ -83,11 +82,11 @@ public class FortressGenerator{
|
||||
}
|
||||
|
||||
TriFunction<Tile, Block, Predicate<Tile>, Boolean> checker = (current, block, pred) -> {
|
||||
for(GridPoint2 point : Edges.getEdges(block.size)){
|
||||
for(Point2 point : Edges.getEdges(block.size)){
|
||||
Tile tile = gen.tile(current.x + point.x, current.y + point.y);
|
||||
if(tile != null){
|
||||
tile = tile.target();
|
||||
if(tile.getTeamID() == team.ordinal() && pred.evaluate(tile)){
|
||||
if(tile.getTeamID() == team.ordinal() && pred.test(tile)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -160,7 +159,7 @@ public class FortressGenerator{
|
||||
(x, y) -> {
|
||||
if(!gen.canPlace(x, y, wall)) return;
|
||||
|
||||
for(GridPoint2 point : Geometry.d8){
|
||||
for(Point2 point : Geometry.d8){
|
||||
Tile tile = gen.tile(x + point.x, y + point.y);
|
||||
if(tile != null){
|
||||
tile = tile.target();
|
||||
@@ -198,7 +197,7 @@ public class FortressGenerator{
|
||||
for(IntPositionConsumer i : passes){
|
||||
for(int x = 0; x < gen.width; x++){
|
||||
for(int y = 0; y < gen.height; y++){
|
||||
if(Vector2.dst(x, y, enemyX, enemyY) > coreDst){
|
||||
if(Mathf.dst(x, y, enemyX, enemyY) > coreDst){
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -211,7 +210,7 @@ public class FortressGenerator{
|
||||
Array<Block> find(Predicate<Block> pred){
|
||||
Array<Block> out = new Array<>();
|
||||
for(Block block : content.blocks()){
|
||||
if(pred.evaluate(block) && Recipe.getByResult(block) != null){
|
||||
if(pred.test(block) && Recipe.getByResult(block) != null){
|
||||
out.add(block);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
package io.anuke.mindustry.maps.generation;
|
||||
|
||||
import io.anuke.arc.math.RandomXS128;
|
||||
import io.anuke.mindustry.game.Team;
|
||||
import io.anuke.mindustry.maps.Sector;
|
||||
import io.anuke.mindustry.type.Item;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.world.blocks.production.Drill;
|
||||
import io.anuke.ucore.util.Structs;
|
||||
import io.anuke.ucore.util.SeedRandom;
|
||||
import io.anuke.arc.util.Structs;
|
||||
|
||||
public class Generation{
|
||||
public final Sector sector;
|
||||
public final Tile[][] tiles;
|
||||
public final int width, height;
|
||||
public final SeedRandom random;
|
||||
public final RandomXS128 random;
|
||||
|
||||
public Generation(Sector sector, Tile[][] tiles, int width, int height, SeedRandom random){
|
||||
public Generation(Sector sector, Tile[][] tiles, int width, int height, RandomXS128 random){
|
||||
this.sector = sector;
|
||||
this.tiles = tiles;
|
||||
this.width = width;
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
package io.anuke.mindustry.maps.generation;
|
||||
|
||||
import com.badlogic.gdx.math.GridPoint2;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.IntArray;
|
||||
import com.badlogic.gdx.utils.ObjectMap;
|
||||
import io.anuke.arc.collection.Array;
|
||||
import io.anuke.arc.collection.IntArray;
|
||||
import io.anuke.arc.collection.ObjectMap;
|
||||
import io.anuke.arc.math.Mathf;
|
||||
import io.anuke.arc.math.RandomXS128;
|
||||
import io.anuke.arc.math.geom.Geometry;
|
||||
import io.anuke.arc.math.geom.Point2;
|
||||
import io.anuke.arc.util.Structs;
|
||||
import io.anuke.arc.util.noise.RidgedPerlin;
|
||||
import io.anuke.arc.util.noise.Simplex;
|
||||
import io.anuke.mindustry.content.Items;
|
||||
import io.anuke.mindustry.content.blocks.Blocks;
|
||||
import io.anuke.mindustry.content.blocks.OreBlocks;
|
||||
@@ -21,12 +26,6 @@ import io.anuke.mindustry.world.Pos;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.world.blocks.Floor;
|
||||
import io.anuke.mindustry.world.blocks.OreBlock;
|
||||
import io.anuke.ucore.noise.RidgedPerlin;
|
||||
import io.anuke.ucore.noise.Simplex;
|
||||
import io.anuke.ucore.util.Geometry;
|
||||
import io.anuke.ucore.util.Mathf;
|
||||
import io.anuke.ucore.util.SeedRandom;
|
||||
import io.anuke.ucore.util.Structs;
|
||||
|
||||
import static io.anuke.mindustry.Vars.*;
|
||||
|
||||
@@ -39,13 +38,13 @@ public class WorldGenerator{
|
||||
private Simplex sim2 = new Simplex(baseSeed + 1);
|
||||
private Simplex sim3 = new Simplex(baseSeed + 2);
|
||||
private RidgedPerlin rid = new RidgedPerlin(baseSeed + 4, 1);
|
||||
private SeedRandom random = new SeedRandom(baseSeed + 3);
|
||||
private RandomXS128 random = new RandomXS128(baseSeed + 3);
|
||||
|
||||
private GenResult result = new GenResult();
|
||||
private ObjectMap<Block, Block> decoration;
|
||||
|
||||
public WorldGenerator(){
|
||||
decoration = Structs.map(
|
||||
decoration = ObjectMap.of(
|
||||
Blocks.grass, Blocks.shrub,
|
||||
Blocks.stone, Blocks.rock,
|
||||
Blocks.ice, Blocks.icerock,
|
||||
@@ -149,15 +148,15 @@ public class WorldGenerator{
|
||||
int sy = (short)Mathf.range(Short.MAX_VALUE/2);
|
||||
int width = 380;
|
||||
int height = 380;
|
||||
Array<GridPoint2> spawns = new Array<>();
|
||||
Array<Point2> spawns = new Array<>();
|
||||
Array<Item> ores = Item.getAllOres();
|
||||
|
||||
if(state.mode.isPvp){
|
||||
int scaling = 10;
|
||||
spawns.add(new GridPoint2(width/scaling, height/scaling));
|
||||
spawns.add(new GridPoint2(width - 1 - width/scaling, height - 1 - height/scaling));
|
||||
spawns.add(new Point2(width/scaling, height/scaling));
|
||||
spawns.add(new Point2(width - 1 - width/scaling, height - 1 - height/scaling));
|
||||
}else{
|
||||
spawns.add(new GridPoint2(width/2, height/2));
|
||||
spawns.add(new Point2(width/2, height/2));
|
||||
}
|
||||
|
||||
Tile[][] tiles = world.createTiles(width, height);
|
||||
@@ -179,7 +178,7 @@ public class WorldGenerator{
|
||||
|
||||
byte elevation = tile.getElevation();
|
||||
|
||||
for(GridPoint2 point : Geometry.d4){
|
||||
for(Point2 point : Geometry.d4){
|
||||
if(!Structs.inBounds(x + point.x, y + point.y, width, height)) continue;
|
||||
if(tiles[x + point.x][y + point.y].getElevation() < elevation){
|
||||
|
||||
@@ -220,7 +219,7 @@ public class WorldGenerator{
|
||||
ores.addAll(baseOres);
|
||||
}else{
|
||||
for(Item item : usedOres){
|
||||
ores.add(baseOres.select(entry -> entry.item == item).iterator().next());
|
||||
ores.add(baseOres.find(entry -> entry.item == item));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -249,9 +248,9 @@ public class WorldGenerator{
|
||||
|
||||
public void generateMap(Tile[][] tiles, Sector sector){
|
||||
int width = tiles.length, height = tiles[0].length;
|
||||
SeedRandom rnd = new SeedRandom(sector.getSeed());
|
||||
RandomXS128 rnd = new RandomXS128(sector.getSeed());
|
||||
Generation gena = new Generation(sector, tiles, tiles.length, tiles[0].length, rnd);
|
||||
Array<GridPoint2> spawnpoints = sector.currentMission().getSpawnPoints(gena);
|
||||
Array<Point2> spawnpoints = sector.currentMission().getSpawnPoints(gena);
|
||||
Array<Item> ores = world.sectors.getOres(sector.x, sector.y);
|
||||
|
||||
for(int x = 0; x < width; x++){
|
||||
@@ -268,7 +267,7 @@ public class WorldGenerator{
|
||||
|
||||
byte elevation = tile.getElevation();
|
||||
|
||||
for(GridPoint2 point : Geometry.d4){
|
||||
for(Point2 point : Geometry.d4){
|
||||
if(!Structs.inBounds(x + point.x, y + point.y, width, height)) continue;
|
||||
if(tiles[x + point.x][y + point.y].getElevation() < elevation){
|
||||
|
||||
@@ -317,7 +316,7 @@ public class WorldGenerator{
|
||||
* @param spawnpoints list of player spawnpoints, can be null
|
||||
* @return the GenResult passed in with its values modified
|
||||
*/
|
||||
public GenResult generateTile(GenResult result, int sectorX, int sectorY, int localX, int localY, boolean detailed, Array<GridPoint2> spawnpoints, Array<Item> ores){
|
||||
public GenResult generateTile(GenResult result, int sectorX, int sectorY, int localX, int localY, boolean detailed, Array<Point2> spawnpoints, Array<Item> ores){
|
||||
int x = sectorX * sectorSize + localX + Short.MAX_VALUE;
|
||||
int y = sectorY * sectorSize + localY + Short.MAX_VALUE;
|
||||
|
||||
@@ -338,8 +337,8 @@ public class WorldGenerator{
|
||||
float minDst = Float.MAX_VALUE;
|
||||
|
||||
if(detailed && spawnpoints != null){
|
||||
for(GridPoint2 p : spawnpoints){
|
||||
float dst = Vector2.dst2(p.x, p.y, localX, localY);
|
||||
for(Point2 p : spawnpoints){
|
||||
float dst = Mathf.dst2(p.x, p.y, localX, localY);
|
||||
minDst = Math.min(minDst, dst);
|
||||
|
||||
if(dst < lerpDst){
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
|
||||
import static io.anuke.mindustry.Vars.threads;
|
||||
import io.anuke.arc.Core;
|
||||
|
||||
/**A mission which simply runs a single action and is completed instantly.*/
|
||||
public class ActionMission extends Mission{
|
||||
@@ -17,7 +15,7 @@ public class ActionMission extends Mission{
|
||||
|
||||
@Override
|
||||
public void onComplete(){
|
||||
threads.run(runner);
|
||||
runner.run();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -27,6 +25,6 @@ public class ActionMission extends Mission{
|
||||
|
||||
@Override
|
||||
public String displayString(){
|
||||
return Bundles.get("text.loading");
|
||||
return Core.bundle.get("text.loading");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import com.badlogic.gdx.math.GridPoint2;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import io.anuke.arc.Core;
|
||||
import io.anuke.arc.collection.Array;
|
||||
import io.anuke.arc.math.geom.Point2;
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.game.GameMode;
|
||||
import io.anuke.mindustry.game.Team;
|
||||
import io.anuke.mindustry.maps.generation.FortressGenerator;
|
||||
import io.anuke.mindustry.maps.generation.Generation;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
|
||||
import static io.anuke.mindustry.Vars.*;
|
||||
import static io.anuke.mindustry.Vars.defaultTeam;
|
||||
import static io.anuke.mindustry.Vars.state;
|
||||
|
||||
public class BattleMission extends MissionWithStartingCore{
|
||||
final int spacing = 30;
|
||||
@@ -43,12 +44,12 @@ public class BattleMission extends MissionWithStartingCore{
|
||||
|
||||
@Override
|
||||
public String displayString(){
|
||||
return Bundles.get("text.mission.battle");
|
||||
return Core.bundle.get("text.mission.battle");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Array<GridPoint2> getSpawnPoints(Generation gen){
|
||||
return Array.with(new GridPoint2(50, 50), new GridPoint2(gen.width - 1 - spacing, gen.height - 1 - spacing));
|
||||
public Array<Point2> getSpawnPoints(Generation gen){
|
||||
return Array.with(new Point2(50, 50), new Point2(gen.width - 1 - spacing, gen.height - 1 - spacing));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import io.anuke.arc.Core;
|
||||
import io.anuke.arc.graphics.g2d.Draw;
|
||||
import io.anuke.arc.graphics.g2d.Lines;
|
||||
import io.anuke.arc.math.Angles;
|
||||
import io.anuke.arc.math.Mathf;
|
||||
import io.anuke.arc.util.Time;
|
||||
import io.anuke.mindustry.graphics.Palette;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.ucore.core.Timers;
|
||||
import io.anuke.ucore.graphics.Draw;
|
||||
import io.anuke.ucore.graphics.Lines;
|
||||
import io.anuke.ucore.util.Angles;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
import io.anuke.ucore.util.Mathf;
|
||||
|
||||
import static io.anuke.mindustry.Vars.players;
|
||||
import static io.anuke.mindustry.Vars.tilesize;
|
||||
import static io.anuke.mindustry.Vars.world;
|
||||
import static io.anuke.mindustry.Vars.*;
|
||||
|
||||
public class BlockLocMission extends Mission{
|
||||
private final Block block;
|
||||
@@ -36,26 +34,26 @@ public class BlockLocMission extends Mission{
|
||||
Lines.stroke(2f);
|
||||
|
||||
Draw.color(Palette.accentBack);
|
||||
Lines.square(x * tilesize + block.offset(), y * tilesize + block.offset() - 1f, block.size * tilesize/2f + 1f+ Mathf.absin(Timers.time(), 6f, 2f));
|
||||
Lines.square(x * tilesize + block.offset(), y * tilesize + block.offset() - 1f, block.size * tilesize/2f + 1f+ Mathf.absin(Time.time(), 6f, 2f));
|
||||
|
||||
Draw.color(Palette.accent);
|
||||
Lines.square(x * tilesize + block.offset(), y * tilesize + block.offset(), block.size * tilesize/2f + 1f+ Mathf.absin(Timers.time(), 6f, 2f));
|
||||
Lines.square(x * tilesize + block.offset(), y * tilesize + block.offset(), block.size * tilesize/2f + 1f+ Mathf.absin(Time.time(), 6f, 2f));
|
||||
|
||||
|
||||
if(block.rotate){
|
||||
Draw.colorl(0.4f);
|
||||
Draw.rect("icon-arrow", x * tilesize + block.offset(), y * tilesize + block.offset() - 1f, rotation*90);
|
||||
Draw.rect(Core.atlas.find("icon-arrow"), x * tilesize + block.offset(), y * tilesize + block.offset() - 1f, rotation*90);
|
||||
Draw.colorl(0.6f);
|
||||
Draw.rect("icon-arrow", x * tilesize + block.offset(), y * tilesize + block.offset(), rotation*90);
|
||||
Draw.rect(Core.atlas.find("icon-arrow"), x * tilesize + block.offset(), y * tilesize + block.offset(), rotation*90);
|
||||
}
|
||||
|
||||
float rot = players[0].angleTo(x * tilesize + block.offset(), y * tilesize + block.offset());
|
||||
float len = 12f;
|
||||
|
||||
Draw.color(Palette.accentBack);
|
||||
Draw.rect("icon-arrow", players[0].x + Angles.trnsx(rot, len), players[0].y + Angles.trnsy(rot, len), rot);
|
||||
Draw.rect(Core.atlas.find("icon-arrow"), players[0].x + Angles.trnsx(rot, len), players[0].y + Angles.trnsy(rot, len), rot);
|
||||
Draw.color(Palette.accent);
|
||||
Draw.rect("icon-arrow", players[0].x + Angles.trnsx(rot, len), players[0].y + Angles.trnsy(rot, len) + 1f, rot);
|
||||
Draw.rect(Core.atlas.find("icon-arrow"), players[0].x + Angles.trnsx(rot, len), players[0].y + Angles.trnsy(rot, len) + 1f, rot);
|
||||
|
||||
Draw.reset();
|
||||
}
|
||||
@@ -67,6 +65,6 @@ public class BlockLocMission extends Mission{
|
||||
|
||||
@Override
|
||||
public String displayString(){
|
||||
return Bundles.format("text.mission.block", block.formalName);
|
||||
return Core.bundle.format("text.mission.block", block.formalName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import io.anuke.arc.Core;
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.entities.units.BaseUnit;
|
||||
import io.anuke.mindustry.entities.units.UnitCommand;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
|
||||
public class CommandMission extends Mission{
|
||||
private final UnitCommand command;
|
||||
@@ -24,6 +24,6 @@ public class CommandMission extends Mission{
|
||||
|
||||
@Override
|
||||
public String displayString(){
|
||||
return Bundles.format("text.mission.command", command.localized());
|
||||
return Core.bundle.format("text.mission.command", command.localized());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import io.anuke.ucore.function.BooleanProvider;
|
||||
import io.anuke.arc.function.BooleanProvider;
|
||||
|
||||
public class ConditionMission extends Mission{
|
||||
private final BooleanProvider complete;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import io.anuke.arc.Core;
|
||||
import io.anuke.mindustry.game.UnlockableContent;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
|
||||
public class ContentMission extends Mission {
|
||||
private final UnlockableContent content;
|
||||
@@ -30,6 +30,6 @@ public class ContentMission extends Mission {
|
||||
|
||||
@Override
|
||||
public String displayString() {
|
||||
return Bundles.format("text.mission.create", content.localizedName());
|
||||
return Core.bundle.format("text.mission.create", content.localizedName());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import io.anuke.arc.Core;
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.entities.TileEntity;
|
||||
import io.anuke.mindustry.type.Item;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
|
||||
import static io.anuke.mindustry.Vars.state;
|
||||
|
||||
@@ -32,11 +32,11 @@ public class ItemMission extends Mission{
|
||||
public String displayString(){
|
||||
TileEntity core = Vars.players[0].getClosestCore();
|
||||
if(core == null) return "imminent doom";
|
||||
return Bundles.format("text.mission.resource", item.localizedName(), core.items.get(item), amount);
|
||||
return Core.bundle.format("text.mission.resource", item.localizedName(), core.items.get(item), amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String menuDisplayString(){
|
||||
return Bundles.format("text.mission.resource.menu", item.localizedName(), amount);
|
||||
return Core.bundle.format("text.mission.resource.menu", item.localizedName(), amount);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import com.badlogic.gdx.math.Bresenham2;
|
||||
import com.badlogic.gdx.math.GridPoint2;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import io.anuke.arc.collection.Array;
|
||||
import io.anuke.arc.math.geom.Bresenham2;
|
||||
import io.anuke.arc.math.geom.Point2;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
|
||||
public class LineBlockMission extends Mission{
|
||||
@@ -10,8 +10,8 @@ public class LineBlockMission extends Mission{
|
||||
private int completeIndex;
|
||||
|
||||
public LineBlockMission(Block block, int x1, int y1, int x2, int y2, int rotation){
|
||||
Array<GridPoint2> points = new Bresenham2().line(x1, y1, x2, y2);
|
||||
for(GridPoint2 point : points){
|
||||
Array<Point2> points = new Bresenham2().line(x1, y1, x2, y2);
|
||||
for(Point2 point : points){
|
||||
this.points.add(new BlockLocMission(block, point.x, point.y, rotation));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import io.anuke.arc.Core;
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.entities.Player;
|
||||
import io.anuke.mindustry.type.Mech;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
|
||||
public class MechMission extends Mission{
|
||||
private final Mech mech;
|
||||
@@ -24,6 +24,6 @@ public class MechMission extends Mission{
|
||||
|
||||
@Override
|
||||
public String displayString(){
|
||||
return Bundles.format("text.mission.mech", mech.localizedName());
|
||||
return Core.bundle.format("text.mission.mech", mech.localizedName());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import com.badlogic.gdx.math.GridPoint2;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import io.anuke.arc.Core;
|
||||
import io.anuke.arc.collection.Array;
|
||||
import io.anuke.arc.math.geom.Point2;
|
||||
import io.anuke.arc.scene.ui.layout.Table;
|
||||
import io.anuke.arc.util.Time;
|
||||
import io.anuke.mindustry.game.GameMode;
|
||||
import io.anuke.mindustry.game.SpawnGroup;
|
||||
import io.anuke.mindustry.game.UnlockableContent;
|
||||
import io.anuke.mindustry.maps.Sector;
|
||||
import io.anuke.mindustry.maps.generation.Generation;
|
||||
import io.anuke.ucore.core.Timers;
|
||||
import io.anuke.ucore.scene.ui.layout.Table;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
|
||||
import static io.anuke.mindustry.Vars.*;
|
||||
import static io.anuke.mindustry.Vars.headless;
|
||||
import static io.anuke.mindustry.Vars.ui;
|
||||
|
||||
public abstract class Mission{
|
||||
private String extraMessage;
|
||||
@@ -76,12 +77,12 @@ public abstract class Mission{
|
||||
}
|
||||
|
||||
public void onBegin(){
|
||||
Timers.runTask(60f, this::showMessage);
|
||||
Time.runTask(60f, this::showMessage);
|
||||
}
|
||||
|
||||
public void onComplete(){
|
||||
if(showComplete && !headless){
|
||||
threads.runGraphics(() -> ui.hudfrag.showToast("[LIGHT_GRAY]"+menuDisplayString() + ":\n" + Bundles.get("text.mission.complete")));
|
||||
ui.hudfrag.showToast("[LIGHT_GRAY]"+menuDisplayString() + ":\n" + Core.bundle.get("text.mission.complete"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +94,7 @@ public abstract class Mission{
|
||||
return new Array<>();
|
||||
}
|
||||
|
||||
public Array<GridPoint2> getSpawnPoints(Generation gen){
|
||||
public Array<Point2> getSpawnPoints(Generation gen){
|
||||
return Array.with();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import com.badlogic.gdx.math.GridPoint2;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import io.anuke.arc.math.geom.Point2;
|
||||
import io.anuke.arc.collection.Array;
|
||||
import io.anuke.mindustry.content.blocks.StorageBlocks;
|
||||
import io.anuke.mindustry.game.Team;
|
||||
import io.anuke.mindustry.maps.generation.Generation;
|
||||
@@ -11,7 +11,7 @@ import static io.anuke.mindustry.Vars.state;
|
||||
|
||||
public abstract class MissionWithStartingCore extends Mission{
|
||||
/** Stores a custom starting location for the core, or null if the default calculation (map center) shall be used. */
|
||||
private final GridPoint2 customStartingPoint;
|
||||
private final Point2 customStartingPoint;
|
||||
|
||||
/** Default constructor. Missions created this way will have a player starting core in the center of the map. */
|
||||
MissionWithStartingCore(){
|
||||
@@ -24,7 +24,7 @@ public abstract class MissionWithStartingCore extends Mission{
|
||||
* @param yCorePos The y coordinate of the custom core position.
|
||||
*/
|
||||
MissionWithStartingCore(int xCorePos, int yCorePos){
|
||||
this.customStartingPoint = new GridPoint2(xCorePos, yCorePos);
|
||||
this.customStartingPoint = new Point2(xCorePos, yCorePos);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -33,7 +33,7 @@ public abstract class MissionWithStartingCore extends Mission{
|
||||
* @param team The team to generate the core for.
|
||||
*/
|
||||
public void generateCoreAtFirstSpawnPoint(Generation gen, Team team){
|
||||
Array<GridPoint2> spawnPoints = getSpawnPoints(gen);
|
||||
Array<Point2> spawnPoints = getSpawnPoints(gen);
|
||||
if(spawnPoints == null || spawnPoints.size == 0){
|
||||
throw new IllegalArgumentException("A MissionWithStartingCore subclass did not provide a spawn point in getSpawnPoints(). However, at least one point must always be provided.");
|
||||
}
|
||||
@@ -58,9 +58,9 @@ public abstract class MissionWithStartingCore extends Mission{
|
||||
* @implNote Must return an array with at least one entry.
|
||||
*/
|
||||
@Override
|
||||
public Array<GridPoint2> getSpawnPoints(Generation gen){
|
||||
public Array<Point2> getSpawnPoints(Generation gen){
|
||||
if(this.customStartingPoint == null){
|
||||
return Array.with(new GridPoint2(gen.width / 2, gen.height / 2));
|
||||
return Array.with(new Point2(gen.width / 2, gen.height / 2));
|
||||
}else{
|
||||
return Array.with(this.customStartingPoint);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import io.anuke.arc.collection.Array;
|
||||
import io.anuke.mindustry.type.ItemStack;
|
||||
import io.anuke.mindustry.type.Recipe;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import io.anuke.arc.Core;
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.entities.units.BaseUnit;
|
||||
import io.anuke.mindustry.entities.units.UnitType;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
|
||||
public class UnitMission extends Mission{
|
||||
private final UnitType type;
|
||||
@@ -24,6 +24,6 @@ public class UnitMission extends Mission{
|
||||
|
||||
@Override
|
||||
public String displayString(){
|
||||
return Bundles.format("text.mission.unit", type.localizedName());
|
||||
return Core.bundle.format("text.mission.unit", type.localizedName());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import io.anuke.mindustry.game.GameMode;
|
||||
import io.anuke.ucore.scene.ui.layout.Table;
|
||||
import io.anuke.arc.scene.ui.layout.Table;
|
||||
|
||||
public class VictoryMission extends Mission{
|
||||
@Override
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import io.anuke.arc.Core;
|
||||
import io.anuke.arc.collection.Array;
|
||||
import io.anuke.mindustry.game.GameMode;
|
||||
import io.anuke.mindustry.game.SpawnGroup;
|
||||
import io.anuke.mindustry.game.Team;
|
||||
import io.anuke.mindustry.game.Waves;
|
||||
import io.anuke.mindustry.maps.Sector;
|
||||
import io.anuke.mindustry.maps.generation.Generation;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
|
||||
import static io.anuke.mindustry.Vars.*;
|
||||
|
||||
@@ -59,16 +59,16 @@ public class WaveMission extends MissionWithStartingCore{
|
||||
@Override
|
||||
public String displayString(){
|
||||
return state.wave > target ?
|
||||
Bundles.format(
|
||||
Core.bundle.format(
|
||||
state.enemies() > 1 ?
|
||||
"text.mission.wave.enemies" :
|
||||
"text.mission.wave.enemy", target, target, state.enemies()) :
|
||||
Bundles.format("text.mission.wave", state.wave, target, (int)(state.wavetime/60));
|
||||
Core.bundle.format("text.mission.wave", state.wave, target, (int)(state.wavetime/60));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String menuDisplayString(){
|
||||
return Bundles.format("text.mission.wave.menu", target);
|
||||
return Core.bundle.format("text.mission.wave.menu", target);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user