1
0
mirror of https://github.com/Anuken/Mindustry.git synced 2024-11-10 15:05:23 +03:00

Wave spawner moved / Bundle tweaks / Blank name

This commit is contained in:
Anuken 2018-11-23 13:32:17 -05:00
parent e5d6740555
commit 66c29c49e5
10 changed files with 139 additions and 126 deletions

View File

@ -1,6 +1,6 @@
text.credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet\!)
text.credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
text.credits = Credits
text.discord = Join the mindustry discord\!
text.discord = Join the mindustry discord!
text.link.discord.description = The official Mindustry discord chatroom
text.link.github.description = Game source code
text.link.dev-builds.description = Unstable development builds
@ -8,25 +8,25 @@ text.link.trello.description = Official trello board for planned features
text.link.itch.io.description = itch.io page with PC downloads and web version
text.link.google-play.description = Google Play store listing
text.link.wiki.description = Official Mindustry wiki
text.linkfail = Failed to open link\!\nThe URL has been copied to your clipboard.
text.linkfail = Failed to open link!\nThe URL has been copied to your clipboard.
text.gameover = Game Over
text.gameover.pvp = The[accent] {0}[] team is victorious\!
text.gameover.pvp = The[accent] {0}[] team is victorious!
text.sector.gameover = This sector has been lost. Re-deploy?
text.sector.retry = Retry
text.highscore = [accent]New highscore\!
text.highscore = [accent]New highscore!
text.wave.lasted = You lasted until wave [accent]{0}[].
text.level.highscore = High Score\: [accent]{0}
text.level.highscore = High Score: [accent]{0}
text.level.delete.title = Confirm Delete
text.map.delete = Are you sure you want to delete the map "[accent]{0}[]"?
text.level.select = Level Select
text.level.mode = Gamemode\:
text.level.mode = Gamemode:
text.construction.desktop = To deselect a block or stop building, [accent]use space[].
text.construction.title = Block Construction Guide
text.construction = You've just selected [accent]block construction mode[].\n\nTo begin placing, simply tap a valid location near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Shift the selection[] by holding and dragging any block in the selection.\n- [accent]Place blocks in a line[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel construction or selection[] by pressing the X at the bottom left.
text.deconstruction.title = Block Deconstruction Guide
text.deconstruction = You've just selected [accent]block deconstruction mode[].\n\nTo begin breaking, simply tap a block near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin de-constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Remove blocks in an area[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel deconstruction or selection[] by pressing the X at the bottom left.
text.showagain = Don't show again next session
text.coreattack = < Core is under attack\! >
text.coreattack = < Core is under attack! >
text.unlocks = Unlocks
text.savegame = Save Game
text.loadgame = Load Game
@ -34,19 +34,19 @@ text.joingame = Join Game
text.addplayers = Add/Remove Players
text.customgame = Custom Game
text.sectors = Sectors
text.sector = Sector\: [LIGHT_GRAY]{0}
text.sector.time = Time\: [LIGHT_GRAY]{0}
text.sector = Sector: [LIGHT_GRAY]{0}
text.sector.time = Time: [LIGHT_GRAY]{0}
text.sector.deploy = Deploy
text.sector.abandon = Abandon
text.sector.abandon.confirm = Are you sure you want to abandon all progress at this sector?\nThis cannot be undone\!
text.sector.abandon.confirm = Are you sure you want to abandon all progress at this sector?\nThis cannot be undone!
text.sector.resume = Resume
text.sector.locked = [scarlet][[Incomplete]
text.sector.unexplored = [accent][[Unexplored]
text.missions = Missions\:[LIGHT_GRAY] {0}
text.mission = Mission\:[LIGHT_GRAY] {0}
text.mission.main = Main Mission\:[LIGHT_GRAY] {0}
text.missions = Missions:[LIGHT_GRAY] {0}
text.mission = Mission:[LIGHT_GRAY] {0}
text.mission.main = Main Mission:[LIGHT_GRAY] {0}
text.mission.info = Mission Info
text.mission.complete = Mission complete\!
text.mission.complete = Mission complete!
text.mission.complete.body = Sector {0},{1} has been conquered.
text.mission.wave = Survive[accent] {0}/{1} []waves\nWave in {2}
text.mission.wave.enemies = Survive[accent] {0}/{1} []waves\n{2} Enemies
@ -54,12 +54,12 @@ text.mission.wave.enemy = Survive[accent] {0}/{1} []waves\n{2} Enemy
text.mission.wave.menu = Survive[accent] {0}[] waves
text.mission.battle = Destroy enemy core
text.mission.resource.menu = Obtain {0} x{1}
text.mission.resource = Obtain {0}\:\n[accent]{1}/{2}[]
text.mission.resource = Obtain {0}:\n[accent]{1}/{2}[]
text.mission.block = Create {0}
text.mission.unit = Create {0} Unit
text.mission.command = Send Command {0} To Units
text.mission.linknode = Link Power Node
text.mission.display = [accent]Mission\:\n[LIGHT_GRAY]{0}
text.mission.display = [accent]Mission:\n[LIGHT_GRAY]{0}
text.mission.mech = Switch to mech[accent] {0}[]
text.mission.create = Create[accent] {0}[]
text.none = <none>
@ -68,29 +68,30 @@ text.quit = Quit
text.maps = Maps
text.continue = Continue
text.nextmission = Next Mission
text.maps.none = [LIGHT_GRAY]No maps found\!
text.maps.none = [LIGHT_GRAY]No maps found!
text.about.button = About
text.name = Name\:
text.filename = File Name\:
text.unlocked = New Block Unlocked\!
text.unlocked.plural = New Blocks Unlocked\!
text.name = Player Name:
text.noname = Pick a[accent] player name[] before connecting.
text.filename = File Name:
text.unlocked = New Block Unlocked!
text.unlocked.plural = New Blocks Unlocked!
text.players = {0} players online
text.players.single = {0} player online
text.server.closing = [accent]Closing server...
text.server.kicked.kick = You have been kicked from the server\!
text.server.kicked.kick = You have been kicked from the server!
text.server.kicked.serverClose = Server closed.
text.server.kicked.sectorComplete = Sector completed.
text.server.kicked.sectorComplete.text = Your mission is complete.\nThe server will now continue at the next sector.
text.server.kicked.clientOutdated = Outdated client\! Update your game\!
text.server.kicked.serverOutdated = Outdated server\! Ask the host to update\!
text.server.kicked.clientOutdated = Outdated client! Update your game!
text.server.kicked.serverOutdated = Outdated server! Ask the host to update!
text.server.kicked.banned = You are banned on this server.
text.server.kicked.recentKick = You have been kicked recently.\nWait before connecting again.
text.server.kicked.nameInUse = There is someone with that name\nalready on this server.
text.server.kicked.nameEmpty = Your chosen name is invalid.
text.server.kicked.idInUse = You are already on this server\! Connecting with two accounts is not permitted.
text.server.kicked.idInUse = You are already on this server! Connecting with two accounts is not permitted.
text.server.kicked.customClient = This server does not support custom builds. Download an official version.
text.host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [LIGHT_GRAY]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[LIGHT_GRAY]Note\: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings.
text.join.info = Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[LIGHT_GRAY]Note\: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
text.host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [LIGHT_GRAY]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[LIGHT_GRAY]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings.
text.join.info = Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[LIGHT_GRAY]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
text.hostserver = Host Game
text.hostserver.mobile = Host\nGame
text.host = Host
@ -98,31 +99,31 @@ text.hosting = [accent]Opening server...
text.hosts.refresh = Refresh
text.hosts.discovering = Discovering LAN games
text.server.refreshing = Refreshing server
text.hosts.none = [lightgray]No local games found\!
text.hosts.none = [lightgray]No local games found!
text.host.invalid = [scarlet]Can't connect to host.
text.trace = Trace Player
text.trace.playername = Player name\: [accent]{0}
text.trace.ip = IP\: [accent]{0}
text.trace.id = Unique ID\: [accent]{0}
text.trace.android = Android Client\: [accent]{0}
text.trace.modclient = Custom Client\: [accent]{0}
text.trace.totalblocksbroken = Total blocks broken\: [accent]{0}
text.trace.structureblocksbroken = Structure blocks broken\: [accent]{0}
text.trace.lastblockbroken = Last block broken\: [accent]{0}
text.trace.totalblocksplaced = Total blocks placed\: [accent]{0}
text.trace.lastblockplaced = Last block placed\: [accent]{0}
text.invalidid = Invalid client ID\! Submit a bug report.
text.trace.playername = Player name: [accent]{0}
text.trace.ip = IP: [accent]{0}
text.trace.id = Unique ID: [accent]{0}
text.trace.android = Android Client: [accent]{0}
text.trace.modclient = Custom Client: [accent]{0}
text.trace.totalblocksbroken = Total blocks broken: [accent]{0}
text.trace.structureblocksbroken = Structure blocks broken: [accent]{0}
text.trace.lastblockbroken = Last block broken: [accent]{0}
text.trace.totalblocksplaced = Total blocks placed: [accent]{0}
text.trace.lastblockplaced = Last block placed: [accent]{0}
text.invalidid = Invalid client ID! Submit a bug report.
text.server.bans = Bans
text.server.bans.none = No banned players found\!
text.server.bans.none = No banned players found!
text.server.admins = Admins
text.server.admins.none = No admins found\!
text.server.admins.none = No admins found!
text.server.add = Add Server
text.server.delete = Are you sure you want to delete this server?
text.server.hostname = Host\: {0}
text.server.hostname = Host: {0}
text.server.edit = Edit Server
text.server.outdated = [crimson]Outdated Server\![]
text.server.outdated.client = [crimson]Outdated Client\![]
text.server.version = [lightgray]Version\: {0} {1}
text.server.outdated = [crimson]Outdated Server![]
text.server.outdated.client = [crimson]Outdated Client![]
text.server.version = [lightgray]Version: {0} {1}
text.server.custombuild = [yellow]Custom Build
text.confirmban = Are you sure you want to ban this player?
text.confirmkick = Are you sure you want to kick this player?
@ -130,45 +131,45 @@ text.confirmunban = Are you sure you want to unban this player?
text.confirmadmin = Are you sure you want to make this player an admin?
text.confirmunadmin = Are you sure you want to remove admin status from this player?
text.joingame.title = Join Game
text.joingame.ip = IP\:
text.joingame.ip = IP:
text.disconnect = Disconnected.
text.disconnect.data = Failed to load world data\!
text.disconnect.data = Failed to load world data!
text.connecting = [accent]Connecting...
text.connecting.data = [accent]Loading world data...
text.server.port = Port\:
text.server.addressinuse = Address already in use\!
text.server.invalidport = Invalid port number\!
text.server.error = [crimson]Error hosting server\: [accent]{0}
text.server.port = Port:
text.server.addressinuse = Address already in use!
text.server.invalidport = Invalid port number!
text.server.error = [crimson]Error hosting server: [accent]{0}
text.save.old = This save is for an older version of the game, and can no longer be used.\n\n[LIGHT_GRAY]Save backwards compatibility will be implemented in the full 4.0 release.
text.save.new = New Save
text.save.overwrite = Are you sure you want to overwrite\nthis save slot?
text.overwrite = Overwrite
text.save.none = No saves found\!
text.save.none = No saves found!
text.saveload = [accent]Saving...
text.savefail = Failed to save game\!
text.savefail = Failed to save game!
text.save.delete.confirm = Are you sure you want to delete this save?
text.save.delete = Delete
text.save.export = Export Save
text.save.import.invalid = [accent]This save is invalid\!
text.save.import.fail = [crimson]Failed to import save\: [accent]{0}
text.save.export.fail = [crimson]Failed to export save\: [accent]{0}
text.save.import.invalid = [accent]This save is invalid!
text.save.import.fail = [crimson]Failed to import save: [accent]{0}
text.save.export.fail = [crimson]Failed to export save: [accent]{0}
text.save.import = Import Save
text.save.newslot = Save name\:
text.save.newslot = Save name:
text.save.rename = Rename
text.save.rename.text = New name\:
text.save.rename.text = New name:
text.selectslot = Select a save.
text.slot = [accent]Slot {0}
text.save.corrupted = [accent]Save file corrupted or invalid\!\nIf you have just updated your game, this is probably a change in the save format and [scarlet]not[] a bug.
text.save.corrupted = [accent]Save file corrupted or invalid!\nIf you have just updated your game, this is probably a change in the save format and [scarlet]not[] a bug.
text.sector.corrupted = [accent]A save file for this sector was found, but loading failed.\nA new one has been created.
text.empty = <empty>
text.on = On
text.off = Off
text.save.autosave = Autosave\: {0}
text.save.map = Map\: {0}
text.save.autosave = Autosave: {0}
text.save.map = Map: {0}
text.save.wave = Wave {0}
text.save.difficulty = Difficulty\: {0}
text.save.date = Last Saved\: {0}
text.save.playtime = Playtime\: {0}
text.save.difficulty = Difficulty: {0}
text.save.date = Last Saved: {0}
text.save.playtime = Playtime: {0}
text.confirm = Confirm
text.delete = Delete
text.ok = OK
@ -180,9 +181,9 @@ text.back = Back
text.quit.confirm = Are you sure you want to quit?
text.changelog.title = Changelog
text.changelog.loading = Getting changelog...
text.changelog.error.android = [accent]Note that the changelog sometimes does not work on Android 4.4 and below\!\nThis is due to an internal Android bug.
text.changelog.error.android = [accent]Note that the changelog sometimes does not work on Android 4.4 and below!\nThis is due to an internal Android bug.
text.changelog.error.ios = [accent]The changelog is currently not supported in iOS.
text.changelog.error = [scarlet]Error getting changelog\!\nCheck your internet connection.
text.changelog.error = [scarlet]Error getting changelog!\nCheck your internet connection.
text.changelog.current = [yellow][[Current version]
text.changelog.latest = [accent][[Latest version]
text.loading = [accent]Loading...
@ -198,32 +199,32 @@ text.saveimage = Save Image
text.unknown = Unknown
text.custom = Custom
text.builtin = Built-In
text.map.delete.confirm = Are you sure you want to delete this map? This action cannot be undone\!
text.map.delete.confirm = Are you sure you want to delete this map? This action cannot be undone!
text.map.random = [accent]Random Map
text.map.nospawn = This map does not have any cores for the player to spawn in\! Add a[ROYAL] blue[] core to this map in the editor.
text.map.nospawn.pvp = This map does not have any enemy cores for player to spawn into\! Add[SCARLET] red[] cores to this map in the editor.
text.map.invalid = Error loading map\: corrupted or invalid map file.
text.map.nospawn = This map does not have any cores for the player to spawn in! Add a[ROYAL] blue[] core to this map in the editor.
text.map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[SCARLET] red[] cores to this map in the editor.
text.map.invalid = Error loading map: corrupted or invalid map file.
text.editor.brush = Brush
text.editor.slope = \\
text.editor.openin = Open In Editor
text.editor.oregen = Ore Generation
text.editor.oregen.info = Ore Generation\:
text.editor.oregen.info = Ore Generation:
text.editor.mapinfo = Map Info
text.editor.author = Author\:
text.editor.description = Description\:
text.editor.name = Name\:
text.editor.author = Author:
text.editor.description = Description:
text.editor.name = Name:
text.editor.teams = Teams
text.editor.elevation = Elevation
text.editor.errorimageload = Error loading file\:\n[accent]{0}
text.editor.errorimagesave = Error saving file\:\n[accent]{0}
text.editor.errorimageload = Error loading file:\n[accent]{0}
text.editor.errorimagesave = Error saving file:\n[accent]{0}
text.editor.generate = Generate
text.editor.resize = Resize
text.editor.loadmap = Load Map
text.editor.savemap = Save Map
text.editor.saved = Saved\!
text.editor.save.noname = Your map does not have a name\! Set one in the 'map info' menu.
text.editor.save.overwrite = Your map overwrites a built-in map\! Pick a different name in the 'map info' menu.
text.editor.import.exists = [scarlet]Unable to import\:[] a built-in map named '{0}' already exists\!
text.editor.saved = Saved!
text.editor.save.noname = Your map does not have a name! Set one in the 'map info' menu.
text.editor.save.overwrite = Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
text.editor.import.exists = [scarlet]Unable to import:[] a built-in map named '{0}' already exists!
text.editor.import = Import...
text.editor.importmap = Import Map
text.editor.importmap.description = Import an already existing map
@ -238,21 +239,21 @@ text.editor.exportimage = Export Terrain Image
text.editor.exportimage.description = Export a map image file
text.editor.loadimage = Import Terrain
text.editor.saveimage = Export Terrain
text.editor.unsaved = [scarlet]You have unsaved changes\![]\nAre you sure you want to exit?
text.editor.unsaved = [scarlet]You have unsaved changes![]\nAre you sure you want to exit?
text.editor.resizemap = Resize Map
text.editor.mapname = Map Name\:
text.editor.overwrite = [accent]Warning\!\nThis overwrites an existing map.
text.editor.overwrite.confirm = [scarlet]Warning\![] A map with this name already exists. Are you sure you want to overwrite it?
text.editor.selectmap = Select a map to load\:
text.width = Width\:
text.height = Height\:
text.editor.mapname = Map Name:
text.editor.overwrite = [accent]Warning!\nThis overwrites an existing map.
text.editor.overwrite.confirm = [scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
text.editor.selectmap = Select a map to load:
text.width = Width:
text.height = Height:
text.menu = Menu
text.play = Play
text.load = Load
text.save = Save
text.fps = FPS\: {0}
text.tps = TPS\: {0}
text.ping = Ping\: {0}ms
text.fps = FPS: {0}
text.tps = TPS: {0}
text.ping = Ping: {0}ms
text.language.restart = Please restart your game for the language settings to take effect.
text.settings = Settings
text.tutorial = Tutorial
@ -260,7 +261,7 @@ text.editor = Editor
text.mapeditor = Map Editor
text.donate = Donate
text.connectfail = [crimson]Failed to connect to server\:\n\n[accent]{0}
text.connectfail = [crimson]Failed to connect to server:\n\n[accent]{0}
text.error.unreachable = Server unreachable.\nIs the address spelled correctly?
text.error.invalidaddress = Invalid address.
text.error.timedout = Timed out!\nMake sure the host has port forwarding set up, and that the address is correct!
@ -277,8 +278,8 @@ text.settings.game = Game
text.settings.sound = Sound
text.settings.graphics = Graphics
text.settings.cleardata = Clear Game Data...
text.settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done cannot be undone\!
text.settings.clearall.confirm = [scarlet]WARNING\![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
text.settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done cannot be undone!
text.settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
text.settings.clearsectors = Clear Sectors
text.settings.clearunlocks = Clear Unlocks
text.settings.clearall = Clear All
@ -357,7 +358,7 @@ setting.difficulty.easy = easy
setting.difficulty.normal = normal
setting.difficulty.hard = hard
setting.difficulty.insane = insane
setting.difficulty.name = Difficulty\:
setting.difficulty.name = Difficulty:
setting.screenshake.name = Screen Shake
setting.effects.name = Display Effects
setting.sensitivity.name = Controller Sensitivity
@ -480,21 +481,21 @@ mech.trident-ship.weapon = Bomb Bay
mech.glaive-ship.name = Glaive
mech.glaive-ship.description = A large, well-armored gunship. Equipped with an incendiary repeater. Good acceleration and maximum speed.
mech.glaive-ship.weapon = Flame Repeater
text.item.explosiveness = [LIGHT_GRAY]Explosiveness\: {0}%
text.item.flammability = [LIGHT_GRAY]Flammability\: {0}%
text.item.radioactivity = [LIGHT_GRAY]Radioactivity\: {0}%
text.item.fluxiness = [LIGHT_GRAY]Flux Power\: {0}%
text.unit.health = [LIGHT_GRAY]Health\: {0}
text.unit.speed = [LIGHT_GRAY]Speed\: {0}
text.mech.weapon = [LIGHT_GRAY]Weapon\: {0}
text.mech.armor = [LIGHT_GRAY]Armor\: {0}
text.mech.itemcapacity = [LIGHT_GRAY]Item Capacity\: {0}
text.mech.minespeed = [LIGHT_GRAY]Mining Speed\: {0}
text.mech.minepower = [LIGHT_GRAY]Mining Power\: {0}
text.mech.ability = [LIGHT_GRAY]Ability\: {0}
text.liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity\: {0}
text.liquid.viscosity = [LIGHT_GRAY]Viscosity\: {0}
text.liquid.temperature = [LIGHT_GRAY]Temperature\: {0}
text.item.explosiveness = [LIGHT_GRAY]Explosiveness: {0}%
text.item.flammability = [LIGHT_GRAY]Flammability: {0}%
text.item.radioactivity = [LIGHT_GRAY]Radioactivity: {0}%
text.item.fluxiness = [LIGHT_GRAY]Flux Power: {0}%
text.unit.health = [LIGHT_GRAY]Health: {0}
text.unit.speed = [LIGHT_GRAY]Speed: {0}
text.mech.weapon = [LIGHT_GRAY]Weapon: {0}
text.mech.armor = [LIGHT_GRAY]Armor: {0}
text.mech.itemcapacity = [LIGHT_GRAY]Item Capacity: {0}
text.mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}
text.mech.minepower = [LIGHT_GRAY]Mining Power: {0}
text.mech.ability = [LIGHT_GRAY]Ability: {0}
text.liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
text.liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
text.liquid.temperature = [LIGHT_GRAY]Temperature: {0}
block.constructing = {0} [LIGHT_GRAY](Constructing)
block.spawn.name = Enemy Spawn
block.core.name = Core

View File

@ -182,7 +182,7 @@ public class Pathfinder{
}
}
state.spawner.checkAllQuadrants();
world.spawner.checkAllQuadrants();
}
class PathData{

View File

@ -89,7 +89,7 @@ public class Control extends Module{
"color-1", Color.rgba8888(playerColors[11]),
"color-2", Color.rgba8888(playerColors[13]),
"color-3", Color.rgba8888(playerColors[9]),
"name", "player",
"name", "",
"lastBuild", 0
);

View File

@ -1,6 +1,5 @@
package io.anuke.mindustry.core;
import io.anuke.mindustry.ai.WaveSpawner;
import io.anuke.mindustry.game.Difficulty;
import io.anuke.mindustry.game.EventType.StateChangeEvent;
import io.anuke.mindustry.game.GameMode;
@ -12,14 +11,21 @@ import static io.anuke.mindustry.Vars.unitGroups;
import static io.anuke.mindustry.Vars.waveTeam;
public class GameState{
/**Current wave number, can be anything in non-wave modes.*/
public int wave = 1;
/**Wave countdown in ticks.*/
public float wavetime;
/**Whether the game is in game over state.*/
public boolean gameOver = false;
/**The current game mode.*/
public GameMode mode = GameMode.waves;
/**The current difficulty for wave modes.*/
public Difficulty difficulty = Difficulty.normal;
public WaveSpawner spawner = new WaveSpawner();
/**Team data. Gets reset every new game.*/
public Teams teams = new Teams();
/**Number of enemies in the game; only used clientside in servers.*/
public int enemies;
/**Current game state.*/
private State state = State.menu;
public int enemies(){

View File

@ -93,7 +93,7 @@ public class Logic extends Module{
}
public void runWave(){
state.spawner.spawnEnemies();
world.spawner.spawnEnemies();
state.wave++;
state.wavetime = wavespace * state.difficulty.timeScaling;

View File

@ -5,6 +5,7 @@ import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.ObjectMap;
import io.anuke.mindustry.ai.BlockIndexer;
import io.anuke.mindustry.ai.Pathfinder;
import io.anuke.mindustry.ai.WaveSpawner;
import io.anuke.mindustry.content.blocks.Blocks;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.game.EventType.TileChangeEvent;
@ -30,6 +31,7 @@ public class World extends Module{
public final WorldGenerator generator = new WorldGenerator();
public final BlockIndexer indexer = new BlockIndexer();
public final Pathfinder pathfinder = new Pathfinder();
public final WaveSpawner spawner = new WaveSpawner();
private Map currentMap;
private Sector currentSector;

View File

@ -528,7 +528,7 @@ public class MobileInput extends InputHandler implements GestureListener{
//ignore off-screen taps
if(cursor == null || ui.hasMouse(x, y)) return false;
threads.run(() -> checkTargets(worldx, worldy));
checkTargets(worldx, worldy);
//remove if request present
if(hasRequest(cursor)){
@ -548,14 +548,13 @@ public class MobileInput extends InputHandler implements GestureListener{
consumed = true;
player.dropCarry(); //drop off unit
}else{
threads.run(() -> {
Unit unit = Units.getClosest(player.getTeam(), Graphics.world(x, y).x, Graphics.world(x, y).y, 4f, u -> !u.isFlying() && u.getMass() <= player.mech.carryWeight);
Unit unit = Units.getClosest(player.getTeam(), Graphics.world(x, y).x, Graphics.world(x, y).y, 4f, u -> !u.isFlying() && u.getMass() <= player.mech.carryWeight);
if(unit != null){
player.moveTarget = unit;
Effects.effect(Fx.select, unit.getX(), unit.getY());
}
});
if(unit != null){
consumed = true;
player.moveTarget = unit;
Effects.effect(Fx.select, unit.getX(), unit.getY());
}
}
}

View File

@ -45,7 +45,7 @@ public class Save16 extends SaveFileVersion{
content.setTemporaryMapper(readContentHeader(stream));
state.spawner.read(stream);
world.spawner.read(stream);
readEntities(stream);
@ -71,7 +71,7 @@ public class Save16 extends SaveFileVersion{
writeContentHeader(stream);
state.spawner.write(stream); //spawnes
world.spawner.write(stream); //spawnes
//--ENTITIES--

View File

@ -285,6 +285,11 @@ public class JoinDialog extends FloatingDialog{
}
void connect(String ip, int port){
if(Settings.getString("name").trim().isEmpty()){
ui.showInfo("$text.noname");
return;
}
ui.loadfrag.show("$text.connecting");
ui.loadfrag.setButton(() -> {

View File

@ -46,7 +46,7 @@ public class SectorTests{
* This is achieved by adding at least one mission which defines a spawn point.
*/
@Test
void test_sectorHasACore(){
void sectorHasACore(){
for(SectorPresets.SectorPreset preset : this.presets.getPresets().values()){
assertTrue(spawnPointIsDefined(preset.missions), "Sector at (" + preset.x + "|" + preset.y + ") contains no missions which define a spawn point. Add a battle or wave mission.");
}