Merge remote-tracking branch 'origin/master'
85
.github/Mindustry-CodeStyle-IJ.xml
vendored
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
<code_scheme name="Default" version="173">
|
||||||
|
<option name="AUTODETECT_INDENTS" value="false" />
|
||||||
|
<option name="RIGHT_MARGIN" value="300" />
|
||||||
|
<GroovyCodeStyleSettings>
|
||||||
|
<option name="SPACE_BEFORE_CLOSURE_LBRACE" value="false" />
|
||||||
|
</GroovyCodeStyleSettings>
|
||||||
|
<JavaCodeStyleSettings>
|
||||||
|
<option name="SPACE_AROUND_TYPE_BOUNDS_IN_TYPE_PARAMETERS" value="false" />
|
||||||
|
<option name="INSERT_INNER_CLASS_IMPORTS" value="true" />
|
||||||
|
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="1" />
|
||||||
|
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="2" />
|
||||||
|
<option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
|
||||||
|
<value>
|
||||||
|
<package name="java.awt" withSubpackages="false" static="false" />
|
||||||
|
<package name="io.anuke.mindustry" withSubpackages="false" static="true" />
|
||||||
|
<package name="javax.swing" withSubpackages="false" static="false" />
|
||||||
|
</value>
|
||||||
|
</option>
|
||||||
|
<option name="JD_ALIGN_PARAM_COMMENTS" value="false" />
|
||||||
|
<option name="JD_ALIGN_EXCEPTION_COMMENTS" value="false" />
|
||||||
|
<option name="JD_ADD_BLANK_AFTER_DESCRIPTION" value="false" />
|
||||||
|
<option name="JD_DO_NOT_WRAP_ONE_LINE_COMMENTS" value="true" />
|
||||||
|
<option name="JD_KEEP_EMPTY_PARAMETER" value="false" />
|
||||||
|
<option name="JD_KEEP_EMPTY_EXCEPTION" value="false" />
|
||||||
|
<option name="JD_KEEP_EMPTY_RETURN" value="false" />
|
||||||
|
</JavaCodeStyleSettings>
|
||||||
|
<Properties>
|
||||||
|
<option name="SPACES_AROUND_KEY_VALUE_DELIMITER" value="true" />
|
||||||
|
<option name="KEEP_BLANK_LINES" value="true" />
|
||||||
|
</Properties>
|
||||||
|
<codeStyleSettings language="Groovy">
|
||||||
|
<option name="SPACE_BEFORE_IF_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_WHILE_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_FOR_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_TRY_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_CATCH_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_SWITCH_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_SYNCHRONIZED_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_CLASS_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_METHOD_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_IF_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_ELSE_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_WHILE_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_FOR_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_DO_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_SWITCH_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_TRY_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_CATCH_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_FINALLY_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_SYNCHRONIZED_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_ELSE_KEYWORD" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_WHILE_KEYWORD" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_CATCH_KEYWORD" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_FINALLY_KEYWORD" value="false" />
|
||||||
|
</codeStyleSettings>
|
||||||
|
<codeStyleSettings language="JAVA">
|
||||||
|
<option name="SPACE_AFTER_TYPE_CAST" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_IF_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_WHILE_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_FOR_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_TRY_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_CATCH_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_SWITCH_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_SYNCHRONIZED_PARENTHESES" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_CLASS_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_METHOD_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_IF_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_ELSE_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_WHILE_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_FOR_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_DO_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_SWITCH_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_TRY_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_CATCH_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_FINALLY_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_SYNCHRONIZED_LBRACE" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_ELSE_KEYWORD" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_WHILE_KEYWORD" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_CATCH_KEYWORD" value="false" />
|
||||||
|
<option name="SPACE_BEFORE_FINALLY_KEYWORD" value="false" />
|
||||||
|
<indentOptions>
|
||||||
|
<option name="CONTINUATION_INDENT_SIZE" value="0" />
|
||||||
|
</indentOptions>
|
||||||
|
</codeStyleSettings>
|
||||||
|
</code_scheme>
|
||||||
62
CONTRIBUTING.md
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
# Contributing
|
||||||
|
|
||||||
|
This is for code contributions. For translations, see [TRANSLATING](TRANSLATING.md).
|
||||||
|
|
||||||
|
## Basic Guidelines
|
||||||
|
|
||||||
|
#### Use an IDE.
|
||||||
|
Specifically, IntelliJ IDEA. Download the (free) Community Edition of it [here](https://www.jetbrains.com/idea/download/). Some people use other tools, like VS Code, but I would personally not recommend them for Java development.
|
||||||
|
|
||||||
|
#### Always test your changes.
|
||||||
|
Do not submit something without at least running the game to see if it compiles.
|
||||||
|
If you are submitting a new block, make sure it has a name and description, and that it works correctly in-game. If you are changing existing block mechanics, test them out first.
|
||||||
|
|
||||||
|
|
||||||
|
#### Do not make large changes before discussing them first.
|
||||||
|
If you are interested in adding a large mechanic/feature or changing large amounts of code, first contact me (Anuken) via [Discord](https://discord.gg/mindustry) (preferred method) or via e-mail (*anukendev@gmail.com*).
|
||||||
|
For most changes, this should not be necessary. I just want to know if you're doing something big so I can offer advice and/or make sure you're not wasting your time on it.
|
||||||
|
|
||||||
|
|
||||||
|
## Style Guidelines
|
||||||
|
|
||||||
|
#### Follow the formatting guidelines.
|
||||||
|
This means:
|
||||||
|
- No spaces around parentheses: `if(condition){`, `SomeType s = (SomeType)object`
|
||||||
|
- Same-line braces.
|
||||||
|
- 4 spaces indentation
|
||||||
|
- `camelCase`, **even for constants or enums**. Why? Because `SCREAMING_CASE` is ugly, annoying to type and does not achieve anything useful. Constants are *less* dangerous than variables, not more.
|
||||||
|
- No underscores for anything. (Yes, I know `Bindings` violates this principle, but that's for legacy reasons and really should be cleaned up some day)
|
||||||
|
|
||||||
|
Import [this style file](.github/Mindustry-CodeStyle-IJ.xml) into IntelliJ to get correct formatting when developing Mindustry.
|
||||||
|
|
||||||
|
#### Do not use incompatible Java features (java.util.function, java.awt).
|
||||||
|
Android [does not support](https://developer.android.com/studio/write/java8-support#supported_features) many of Java 8's features, such as the packages `java.util.function`, `java.util.stream` or `forEach` in collections. Do not use these in your code.
|
||||||
|
If you need to use functional interfaces, use the ones in `io.anuke.arc.func`, which are more or less the same with different naming schemes.
|
||||||
|
|
||||||
|
The same applies to any class *outside* of the standard `java.[n]io` / `java.net` / `java.util` packages: Most of them are not supported.
|
||||||
|
`java.awt` is one of these packages: do not use it, ever. It is not supported on any platform, even desktop - the entire package is removed during JRE minimization.
|
||||||
|
In general, if you are using IntelliJ, you should be warned about platform incompatiblities.
|
||||||
|
|
||||||
|
|
||||||
|
#### Use `arc` collections and classes when possible.
|
||||||
|
Instead of using `java.util.List`, `java.util.HashMap`, and other standard Java collections, use `Array`, `ObjectMap` and other equivalents from `io.anuke.arc.collection`.
|
||||||
|
Why? Because that's what the rest of the codebase uses, and the standard collections have a lot of cruft and usability issues associated with them.
|
||||||
|
In the rare case that concurrency is required, you may use the standard Java classes for that purpose (e.g. `CopyOnWriteArrayList`).
|
||||||
|
|
||||||
|
|
||||||
|
#### Avoid boxed types (Integer, Boolean)
|
||||||
|
Never create variables or collections with boxed types `Array<Integer>` or `ObjectMap<Integer, ...>`. Use the collections specialized for this task, e.g. `IntArray` and `IntMap`.
|
||||||
|
|
||||||
|
|
||||||
|
#### Do not allocate anything if possible.
|
||||||
|
Never allocate `new` objects in the main loop. If you absolutely require new objects, use `Pools` to obtain and free object instances.
|
||||||
|
Otherwise, use the `Tmp` variables for things like vector/shape operations, or create `static` variables for re-use.
|
||||||
|
If using a list, make it a static variable and clear it every time it is used. Re-use as much as possible.
|
||||||
|
|
||||||
|
#### Avoid bloated code and unnecessary getters/setters.
|
||||||
|
This is situational, but in essence what it means is to avoid using any sort of getters and setters unless absolutely necessary. Public or protected fields should suffice for most things.
|
||||||
|
If something needs to be encapsulated in the future, IntelliJ can handle it with a few clicks.
|
||||||
|
|
||||||
|
|
||||||
|
#### Do not create methods unless necessary.
|
||||||
|
Unless a block of code is very large or used in more than 1-2 places, don't split it up into a separate method. Making unnecessary methods only creates confusion, and may slightly decrease performance.
|
||||||
@@ -8,6 +8,10 @@ A sandbox tower defense game written in Java.
|
|||||||
_[Trello Board](https://trello.com/b/aE2tcUwF/mindustry-40-plans)_
|
_[Trello Board](https://trello.com/b/aE2tcUwF/mindustry-40-plans)_
|
||||||
_[Wiki](https://mindustrygame.github.io/wiki)_
|
_[Wiki](https://mindustrygame.github.io/wiki)_
|
||||||
|
|
||||||
|
### Contributing
|
||||||
|
|
||||||
|
See [CONTRIBUTING](CONTRIBUTING.md).
|
||||||
|
|
||||||
### Building
|
### Building
|
||||||
|
|
||||||
Bleeding-edge live builds are generated automatically for every commit. You can see them [here](https://github.com/Anuken/MindustryBuilds/releases). Old builds might still be on [jenkins](https://jenkins.hellomouse.net/job/mindustry/).
|
Bleeding-edge live builds are generated automatically for every commit. You can see them [here](https://github.com/Anuken/MindustryBuilds/releases). Old builds might still be on [jenkins](https://jenkins.hellomouse.net/job/mindustry/).
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ buildscript{
|
|||||||
|
|
||||||
allprojects{
|
allprojects{
|
||||||
version = 'release'
|
version = 'release'
|
||||||
apply plugin: 'maven'
|
apply plugin: 'maven-publish'
|
||||||
group = 'com.github.Anuken'
|
group = 'com.github.Anuken'
|
||||||
|
|
||||||
ext{
|
ext{
|
||||||
|
|||||||
|
After Width: | Height: | Size: 1.8 KiB |
BIN
core/assets-raw/sprites/blocks/liquid/liquid-overflow-gate.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
core/assets-raw/sprites/blocks/liquid/plated-conduit-cap.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
core/assets-raw/sprites/blocks/liquid/plated-conduit-top-0.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
core/assets-raw/sprites/blocks/liquid/plated-conduit-top-1.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
core/assets-raw/sprites/blocks/liquid/plated-conduit-top-2.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
core/assets-raw/sprites/blocks/liquid/plated-conduit-top-3.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
core/assets-raw/sprites/blocks/liquid/plated-conduit-top-4.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
core/assets-raw/sprites/blocks/liquid/plated-conduit-top-5.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
core/assets-raw/sprites/blocks/liquid/plated-conduit-top-6.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
core/assets-raw/sprites/blocks/power/diode-arrow.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
core/assets-raw/sprites/blocks/power/diode.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
core/assets-raw/sprites/blocks/power/illuminator-top.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
core/assets-raw/sprites/blocks/power/illuminator.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
core/assets-raw/sprites/effects/circle-end.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
core/assets-raw/sprites/effects/circle-mid.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 14 KiB |
BIN
core/assets-raw/sprites/ui/alpha-bg.png
Normal file
|
After Width: | Height: | Size: 754 B |
BIN
core/assets-raw/sprites/ui/icons/icon-f-droid.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
@@ -10,6 +10,7 @@ link.dev-builds.description = Unstable development builds
|
|||||||
link.trello.description = Official Trello board for planned features
|
link.trello.description = Official Trello board for planned features
|
||||||
link.itch.io.description = itch.io page with PC downloads
|
link.itch.io.description = itch.io page with PC downloads
|
||||||
link.google-play.description = Google Play store listing
|
link.google-play.description = Google Play store listing
|
||||||
|
link.f-droid.description = F-Droid catalogue listing
|
||||||
link.wiki.description = Official Mindustry wiki
|
link.wiki.description = Official Mindustry wiki
|
||||||
linkfail = Failed to open link!\nThe URL has been copied to your clipboard.
|
linkfail = Failed to open link!\nThe URL has been copied to your clipboard.
|
||||||
screenshot = Screenshot saved to {0}
|
screenshot = Screenshot saved to {0}
|
||||||
@@ -78,6 +79,7 @@ maps.browse = Browse Maps
|
|||||||
continue = Continue
|
continue = Continue
|
||||||
maps.none = [lightgray]No maps found!
|
maps.none = [lightgray]No maps found!
|
||||||
invalid = Invalid
|
invalid = Invalid
|
||||||
|
pickcolor = Pick Color
|
||||||
preparingconfig = Preparing Config
|
preparingconfig = Preparing Config
|
||||||
preparingcontent = Preparing Content
|
preparingcontent = Preparing Content
|
||||||
uploadingcontent = Uploading Content
|
uploadingcontent = Uploading Content
|
||||||
@@ -86,7 +88,7 @@ committingchanges = Comitting Changes
|
|||||||
done = Done
|
done = Done
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
|
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]No mods found!
|
||||||
@@ -103,7 +105,7 @@ mod.enable = Enable
|
|||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Import Mod
|
mod.import = Import Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Import GitHub Mod
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = This mod will be deleted.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
@@ -560,6 +562,8 @@ bar.heat = Heat
|
|||||||
bar.power = Power
|
bar.power = Power
|
||||||
bar.progress = Build Progress
|
bar.progress = Build Progress
|
||||||
bar.spawned = Units: {0}/{1}
|
bar.spawned = Units: {0}/{1}
|
||||||
|
bar.input = Input
|
||||||
|
bar.output = Output
|
||||||
|
|
||||||
bullet.damage = [stat]{0}[lightgray] damage
|
bullet.damage = [stat]{0}[lightgray] damage
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
@@ -597,7 +601,7 @@ setting.shadows.name = Shadows
|
|||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = Automatic Block Suggestions
|
||||||
setting.linear.name = Linear Filtering
|
setting.linear.name = Linear Filtering
|
||||||
setting.hints.name = Hints
|
setting.hints.name = Hints
|
||||||
setting.buildautopause.name = Auto-pause Building
|
setting.buildautopause.name = Auto-Pause Building
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Animated Water
|
||||||
setting.animatedshields.name = Animated Shields
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[lightgray] (requires restart)[]
|
setting.antialias.name = Antialias[lightgray] (requires restart)[]
|
||||||
@@ -622,10 +626,13 @@ setting.destroyedblocks.name = Display Destroyed Blocks
|
|||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
||||||
setting.sensitivity.name = Controller Sensitivity
|
setting.sensitivity.name = Controller Sensitivity
|
||||||
setting.saveinterval.name = Save Interval
|
setting.saveinterval.name = Save Interval
|
||||||
setting.seconds = {0} Seconds
|
setting.seconds = {0} seconds
|
||||||
|
setting.blockselecttimeout.name = Block Select Timeout
|
||||||
|
setting.milliseconds = {0} milliseconds
|
||||||
setting.fullscreen.name = Fullscreen
|
setting.fullscreen.name = Fullscreen
|
||||||
setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart)
|
setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart)
|
||||||
setting.fps.name = Show FPS & Ping
|
setting.fps.name = Show FPS & Ping
|
||||||
|
setting.blockselectkeys.name = Show Block Select Keys
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.pixelate.name = Pixelate[lightgray] (disables animations)
|
setting.pixelate.name = Pixelate[lightgray] (disables animations)
|
||||||
setting.minimap.name = Show Minimap
|
setting.minimap.name = Show Minimap
|
||||||
@@ -654,17 +661,35 @@ category.multiplayer.name = Multiplayer
|
|||||||
command.attack = Attack
|
command.attack = Attack
|
||||||
command.rally = Rally
|
command.rally = Rally
|
||||||
command.retreat = Retreat
|
command.retreat = Retreat
|
||||||
|
placement.blockselectkeys = \n[lightgray]Key: [{0},
|
||||||
keybind.clear_building.name = Clear Building
|
keybind.clear_building.name = Clear Building
|
||||||
keybind.press = Press a key...
|
keybind.press = Press a key...
|
||||||
keybind.press.axis = Press an axis or key...
|
keybind.press.axis = Press an axis or key...
|
||||||
keybind.screenshot.name = Map Screenshot
|
keybind.screenshot.name = Map Screenshot
|
||||||
keybind.move_x.name = Move x
|
keybind.move_x.name = Move X
|
||||||
keybind.move_y.name = Move y
|
keybind.move_y.name = Move Y
|
||||||
keybind.mouse_move.name = Follow Mouse
|
keybind.mouse_move.name = Follow Mouse
|
||||||
|
keybind.dash.name = Dash
|
||||||
keybind.schematic_select.name = Select Region
|
keybind.schematic_select.name = Select Region
|
||||||
keybind.schematic_menu.name = Schematic Menu
|
keybind.schematic_menu.name = Schematic Menu
|
||||||
keybind.schematic_flip_x.name = Flip Schematic X
|
keybind.schematic_flip_x.name = Flip Schematic X
|
||||||
keybind.schematic_flip_y.name = Flip Schematic Y
|
keybind.schematic_flip_y.name = Flip Schematic Y
|
||||||
|
keybind.category_prev.name = Previous Category
|
||||||
|
keybind.category_next.name = Next Category
|
||||||
|
keybind.block_select_left.name = Block Select Left
|
||||||
|
keybind.block_select_right.name = Block Select Right
|
||||||
|
keybind.block_select_up.name = Block Select Up
|
||||||
|
keybind.block_select_down.name = Block Select Down
|
||||||
|
keybind.block_select_01.name = Category/Block Select 1
|
||||||
|
keybind.block_select_02.name = Category/Block Select 2
|
||||||
|
keybind.block_select_03.name = Category/Block Select 3
|
||||||
|
keybind.block_select_04.name = Category/Block Select 4
|
||||||
|
keybind.block_select_05.name = Category/Block Select 5
|
||||||
|
keybind.block_select_06.name = Category/Block Select 6
|
||||||
|
keybind.block_select_07.name = Category/Block Select 7
|
||||||
|
keybind.block_select_08.name = Category/Block Select 8
|
||||||
|
keybind.block_select_09.name = Category/Block Select 9
|
||||||
|
keybind.block_select_10.name = Category/Block Select 10
|
||||||
keybind.fullscreen.name = Toggle Fullscreen
|
keybind.fullscreen.name = Toggle Fullscreen
|
||||||
keybind.select.name = Select/Shoot
|
keybind.select.name = Select/Shoot
|
||||||
keybind.diagonal_placement.name = Diagonal Placement
|
keybind.diagonal_placement.name = Diagonal Placement
|
||||||
@@ -678,18 +703,17 @@ keybind.menu.name = Menu
|
|||||||
keybind.pause.name = Pause
|
keybind.pause.name = Pause
|
||||||
keybind.pause_building.name = Pause/Resume Building
|
keybind.pause_building.name = Pause/Resume Building
|
||||||
keybind.minimap.name = Minimap
|
keybind.minimap.name = Minimap
|
||||||
keybind.dash.name = Dash
|
|
||||||
keybind.chat.name = Chat
|
keybind.chat.name = Chat
|
||||||
keybind.player_list.name = Player list
|
keybind.player_list.name = Player List
|
||||||
keybind.console.name = Console
|
keybind.console.name = Console
|
||||||
keybind.rotate.name = Rotate
|
keybind.rotate.name = Rotate
|
||||||
keybind.rotateplaced.name = Rotate Existing (Hold)
|
keybind.rotateplaced.name = Rotate Existing (Hold)
|
||||||
keybind.toggle_menus.name = Toggle menus
|
keybind.toggle_menus.name = Toggle Menus
|
||||||
keybind.chat_history_prev.name = Chat history prev
|
keybind.chat_history_prev.name = Chat History Prev
|
||||||
keybind.chat_history_next.name = Chat history next
|
keybind.chat_history_next.name = Chat History Next
|
||||||
keybind.chat_scroll.name = Chat scroll
|
keybind.chat_scroll.name = Chat Scroll
|
||||||
keybind.drop_unit.name = Drop Unit
|
keybind.drop_unit.name = Drop Unit
|
||||||
keybind.zoom_minimap.name = Zoom minimap
|
keybind.zoom_minimap.name = Zoom Minimap
|
||||||
mode.help.title = Description of modes
|
mode.help.title = Description of modes
|
||||||
mode.survival.name = Survival
|
mode.survival.name = Survival
|
||||||
mode.survival.description = The normal mode. Limited resources and automatic incoming waves.\n[gray]Requires enemy spawns in the map to play.
|
mode.survival.description = The normal mode. Limited resources and automatic incoming waves.\n[gray]Requires enemy spawns in the map to play.
|
||||||
@@ -703,6 +727,7 @@ mode.attack.description = Destroy the enemy's base. No waves.\n[gray]Requires a
|
|||||||
mode.custom = Custom Rules
|
mode.custom = Custom Rules
|
||||||
|
|
||||||
rules.infiniteresources = Infinite Resources
|
rules.infiniteresources = Infinite Resources
|
||||||
|
rules.reactorexplosions = Reactor Explosions
|
||||||
rules.wavetimer = Wave Timer
|
rules.wavetimer = Wave Timer
|
||||||
rules.waves = Waves
|
rules.waves = Waves
|
||||||
rules.attack = Attack Mode
|
rules.attack = Attack Mode
|
||||||
@@ -718,7 +743,7 @@ rules.respawntime = Respawn Time:[lightgray] (sec)
|
|||||||
rules.wavespacing = Wave Spacing:[lightgray] (sec)
|
rules.wavespacing = Wave Spacing:[lightgray] (sec)
|
||||||
rules.buildcostmultiplier = Build Cost Multiplier
|
rules.buildcostmultiplier = Build Cost Multiplier
|
||||||
rules.buildspeedmultiplier = Build Speed Multiplier
|
rules.buildspeedmultiplier = Build Speed Multiplier
|
||||||
rules.waitForWaveToEnd = Waves wait for enemies
|
rules.waitForWaveToEnd = Waves Wait for Enemies
|
||||||
rules.dropzoneradius = Drop Zone Radius:[lightgray] (tiles)
|
rules.dropzoneradius = Drop Zone Radius:[lightgray] (tiles)
|
||||||
rules.respawns = Max respawns per wave
|
rules.respawns = Max respawns per wave
|
||||||
rules.limitedRespawns = Limit Respawns
|
rules.limitedRespawns = Limit Respawns
|
||||||
@@ -728,6 +753,9 @@ rules.title.resourcesbuilding = Resources & Building
|
|||||||
rules.title.player = Players
|
rules.title.player = Players
|
||||||
rules.title.enemy = Enemies
|
rules.title.enemy = Enemies
|
||||||
rules.title.unit = Units
|
rules.title.unit = Units
|
||||||
|
rules.title.experimental = Experimental
|
||||||
|
rules.lighting = Lighting
|
||||||
|
rules.ambientlight = Ambient Light
|
||||||
|
|
||||||
content.item.name = Items
|
content.item.name = Items
|
||||||
content.liquid.name = Liquids
|
content.liquid.name = Liquids
|
||||||
@@ -889,6 +917,8 @@ block.distributor.name = Distributor
|
|||||||
block.sorter.name = Sorter
|
block.sorter.name = Sorter
|
||||||
block.inverted-sorter.name = Inverted Sorter
|
block.inverted-sorter.name = Inverted Sorter
|
||||||
block.message.name = Message
|
block.message.name = Message
|
||||||
|
block.illuminator.name = Illuminator
|
||||||
|
block.illuminator.description = A small, compact, configurable light source. Requires power to function.
|
||||||
block.overflow-gate.name = Overflow Gate
|
block.overflow-gate.name = Overflow Gate
|
||||||
block.silicon-smelter.name = Silicon Smelter
|
block.silicon-smelter.name = Silicon Smelter
|
||||||
block.phase-weaver.name = Phase Weaver
|
block.phase-weaver.name = Phase Weaver
|
||||||
@@ -902,6 +932,7 @@ block.coal-centrifuge.name = Coal Centrifuge
|
|||||||
block.power-node.name = Power Node
|
block.power-node.name = Power Node
|
||||||
block.power-node-large.name = Large Power Node
|
block.power-node-large.name = Large Power Node
|
||||||
block.surge-tower.name = Surge Tower
|
block.surge-tower.name = Surge Tower
|
||||||
|
block.diode.name = Battery Diode
|
||||||
block.battery.name = Battery
|
block.battery.name = Battery
|
||||||
block.battery-large.name = Large Battery
|
block.battery-large.name = Large Battery
|
||||||
block.combustion-generator.name = Combustion Generator
|
block.combustion-generator.name = Combustion Generator
|
||||||
@@ -954,6 +985,7 @@ block.fortress-factory.name = Fortress Mech Factory
|
|||||||
block.revenant-factory.name = Revenant Fighter Factory
|
block.revenant-factory.name = Revenant Fighter Factory
|
||||||
block.repair-point.name = Repair Point
|
block.repair-point.name = Repair Point
|
||||||
block.pulse-conduit.name = Pulse Conduit
|
block.pulse-conduit.name = Pulse Conduit
|
||||||
|
block.plated-conduit.name = Plated Conduit
|
||||||
block.phase-conduit.name = Phase Conduit
|
block.phase-conduit.name = Phase Conduit
|
||||||
block.liquid-router.name = Liquid Router
|
block.liquid-router.name = Liquid Router
|
||||||
block.liquid-tank.name = Liquid Tank
|
block.liquid-tank.name = Liquid Tank
|
||||||
@@ -1005,15 +1037,15 @@ unit.eradicator.name = Eradicator
|
|||||||
unit.lich.name = Lich
|
unit.lich.name = Lich
|
||||||
unit.reaper.name = Reaper
|
unit.reaper.name = Reaper
|
||||||
tutorial.next = [lightgray]<Tap to continue>
|
tutorial.next = [lightgray]<Tap to continue>
|
||||||
tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nUse [[WASD] to move.\n[accent]Hold [[Ctrl] while scrolling[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nUse [accent][[WASD][] to move.\n[accent]Hold [[Ctrl] while scrolling[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
||||||
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
||||||
tutorial.drill = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nClick the drill tab in the bottom right.\nSelect the[accent] mechanical drill[]. Place it on a copper vein by clicking.\n[accent]Right-click[] to stop building.
|
tutorial.drill = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nClick the drill tab in the bottom right.\nSelect the[accent] mechanical drill[]. Place it on a copper vein by clicking.\nYou can also select the drill by tapping [accent][[2][] then [accent][[1][] quickly, regardless of which tab is open.\n[accent]Right-click[] to stop building.
|
||||||
tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement.
|
tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement.
|
||||||
tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[]
|
tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[]
|
||||||
tutorial.conveyor = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent]Hold down the mouse to place in a line.[]\nHold[accent] CTRL[] while selecting a line to place diagonally.\nUse the scrollwheel to rotate blocks before placing them.\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core.
|
tutorial.conveyor = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent]Hold down the mouse to place in a line.[]\nHold[accent] CTRL[] while selecting a line to place diagonally.\nUse the scrollwheel to rotate blocks before placing them.\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core.
|
||||||
tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core.
|
tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core.
|
||||||
tutorial.turret = Once an item enters your core, it can be used for building.\nKeep in mind that not all items can be used for building.\nItems that are not used for building, such as[accent] coal[] or[accent] scrap[], cannot be put into the core.\nDefensive structures must be built to repel the[lightgray] enemy[].\nBuild a[accent] duo turret[] near your base.
|
tutorial.turret = Once an item enters your core, it can be used for building.\nKeep in mind that not all items can be used for building.\nItems that are not used for building, such as[accent] coal[] or[accent] scrap[], cannot be put into the core.\nDefensive structures must be built to repel the[lightgray] enemy[].\nBuild a[accent] duo turret[] near your base.
|
||||||
tutorial.drillturret = Duo turrets require[accent] copper ammo []to shoot.\nPlace a drill near the turret.\nLead conveyors into the turret to supply it with copper.\n\n[accent]Ammo delivered: 0/1
|
tutorial.drillturret = Duo turrets require[accent] copper ammo[] to shoot.\nPlace a drill near the turret.\nLead conveyors into the turret to supply it with copper.\n\n[accent]Ammo delivered: 0/1
|
||||||
tutorial.pause = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press space to pause.
|
tutorial.pause = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press space to pause.
|
||||||
tutorial.pause.mobile = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press this button in the top left to pause.
|
tutorial.pause.mobile = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press this button in the top left to pause.
|
||||||
tutorial.unpause = Now press space again to unpause.
|
tutorial.unpause = Now press space again to unpause.
|
||||||
@@ -1122,6 +1154,7 @@ block.rotary-pump.description = An advanced pump. Pumps more liquid, but require
|
|||||||
block.thermal-pump.description = The ultimate pump.
|
block.thermal-pump.description = The ultimate pump.
|
||||||
block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits.
|
block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits.
|
||||||
block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
|
block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
|
||||||
|
block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
|
||||||
block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. Useful for splitting the liquids from one source to multiple targets.
|
block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. Useful for splitting the liquids from one source to multiple targets.
|
||||||
block.liquid-tank.description = Stores a large amount of liquids. Use for creating buffers in situations with non-constant demand of materials or as a safeguard for cooling vital blocks.
|
block.liquid-tank.description = Stores a large amount of liquids. Use for creating buffers in situations with non-constant demand of materials or as a safeguard for cooling vital blocks.
|
||||||
block.liquid-junction.description = Acts as a bridge for two crossing conduits. Useful in situations with two different conduits carrying different liquids to different locations.
|
block.liquid-junction.description = Acts as a bridge for two crossing conduits. Useful in situations with two different conduits carrying different liquids to different locations.
|
||||||
@@ -1130,6 +1163,7 @@ block.phase-conduit.description = Advanced liquid transport block. Uses power to
|
|||||||
block.power-node.description = Transmits power to connected nodes. The node will receive power from or supply power to any adjacent blocks.
|
block.power-node.description = Transmits power to connected nodes. The node will receive power from or supply power to any adjacent blocks.
|
||||||
block.power-node-large.description = An advanced power node with greater range.
|
block.power-node-large.description = An advanced power node with greater range.
|
||||||
block.surge-tower.description = An extremely long-range power node with fewer available connections.
|
block.surge-tower.description = An extremely long-range power node with fewer available connections.
|
||||||
|
block.diode.description = Battery power can flow through this block in only one direction, but only if the other side has less power stored.
|
||||||
block.battery.description = Stores power as a buffer in times of surplus energy. Outputs power in times of deficit.
|
block.battery.description = Stores power as a buffer in times of surplus energy. Outputs power in times of deficit.
|
||||||
block.battery-large.description = Stores much more power than a regular battery.
|
block.battery-large.description = Stores much more power than a regular battery.
|
||||||
block.combustion-generator.description = Generates power by burning flammable materials, such as coal.
|
block.combustion-generator.description = Generates power by burning flammable materials, such as coal.
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Nahrávám prohlížecí soubor
|
|||||||
committingchanges = Provádím změny
|
committingchanges = Provádím změny
|
||||||
done = Hotovo
|
done = Hotovo
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]No mods found!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Enable
|
|||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Import Mod
|
mod.import = Import Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Import GitHub Mod
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = This mod will be deleted.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Uploading Preview File
|
|||||||
committingchanges = Comitting Changes
|
committingchanges = Comitting Changes
|
||||||
done = Done
|
done = Done
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]No mods found!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Enable
|
|||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Import Mod
|
mod.import = Import Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Import GitHub Mod
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = This mod will be deleted.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
@@ -1152,9 +1152,9 @@ block.spirit-factory.description = Produziert leichte Drohnen, die Erz abbauen u
|
|||||||
block.phantom-factory.description = Produziert erweiterte Drohnen, die deutlich effizienter sind als Spirit-Drohnen.
|
block.phantom-factory.description = Produziert erweiterte Drohnen, die deutlich effizienter sind als Spirit-Drohnen.
|
||||||
block.wraith-factory.description = Produziert schnelle Abfangjäger.
|
block.wraith-factory.description = Produziert schnelle Abfangjäger.
|
||||||
block.ghoul-factory.description = Produziert schwere Flächenbomber.
|
block.ghoul-factory.description = Produziert schwere Flächenbomber.
|
||||||
block.revenant-factory.description = Produziert schwere Laser-Bodeneinheiten.
|
block.revenant-factory.description = Produziert schwere Raketen basierte Flugeinheiten.
|
||||||
block.dagger-factory.description = Produziert Standard-Bodeneinheiten.
|
block.dagger-factory.description = Produziert Standard-Bodeneinheiten.
|
||||||
block.crawler-factory.description = Produces fast self-destructing swarm units.
|
block.crawler-factory.description = Produziert schnelle selbstzerstörende Schwarmeinheiten.
|
||||||
block.titan-factory.description = Produziert fortgeschrittene, gepanzerte Bodeneinheiten.
|
block.titan-factory.description = Produziert fortgeschrittene, gepanzerte Bodeneinheiten.
|
||||||
block.fortress-factory.description = Produziert schwere Artillerie-Bodeneinheiten.
|
block.fortress-factory.description = Produziert schwere Artillerie-Bodeneinheiten.
|
||||||
block.repair-point.description = Heilt durchgehend die nächste befreundete, beschädigte Einheit in der Umgebung.
|
block.repair-point.description = Heilt durchgehend die nächste befreundete, beschädigte Einheit in der Umgebung.
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Uploading Preview File
|
|||||||
committingchanges = Comitting Changes
|
committingchanges = Comitting Changes
|
||||||
done = Hecho
|
done = Hecho
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]No mods found!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Enable
|
|||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Import Mod
|
mod.import = Import Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Import GitHub Mod
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = This mod will be deleted.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Eelvaate faili üleslaadimine
|
|||||||
committingchanges = Muudatuste teostamine
|
committingchanges = Muudatuste teostamine
|
||||||
done = Valmis
|
done = Valmis
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]No mods found!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Enable
|
|||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Import Mod
|
mod.import = Import Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Import GitHub Mod
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = This mod will be deleted.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Aurrebista fitxategia igotzen
|
|||||||
committingchanges = Aldaketak aplikatzen
|
committingchanges = Aldaketak aplikatzen
|
||||||
done = Egina
|
done = Egina
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]No mods found!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Enable
|
|||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Import Mod
|
mod.import = Import Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Import GitHub Mod
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = This mod will be deleted.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Publication du fichier d'aperçu
|
|||||||
committingchanges = Validation des modifications
|
committingchanges = Validation des modifications
|
||||||
done = Fait
|
done = Fait
|
||||||
feature.unsupported = Votre appareil ne supporte pas cette fonctionnalité.
|
feature.unsupported = Votre appareil ne supporte pas cette fonctionnalité.
|
||||||
mods.alphainfo = Gardez à l'esprit que les mods sont en alpha et[scarlet] peuvent être très buggés[].\nMerci de signaler les problèmes que vous rencontrez via le Github ou le Discord Mindustry.
|
mods.alphainfo = Gardez à l'esprit que les mods sont en alpha et[scarlet] peuvent être très buggés[].\nMerci de signaler les problèmes que vous rencontrez via le GitHub ou le Discord Mindustry.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]Aucun mod trouvé!
|
mods.none = [LIGHT_GRAY]Aucun mod trouvé!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Activer
|
|||||||
mod.requiresrestart = Le jeu va maintenant s'arrêter pour appliquer les modifications du mod.
|
mod.requiresrestart = Le jeu va maintenant s'arrêter pour appliquer les modifications du mod.
|
||||||
mod.reloadrequired = [scarlet]Rechargement requis
|
mod.reloadrequired = [scarlet]Rechargement requis
|
||||||
mod.import = Importer un mod
|
mod.import = Importer un mod
|
||||||
mod.import.github = Importer un mod Github
|
mod.import.github = Importer un mod GitHub
|
||||||
mod.remove.confirm = Ce mod sera supprimé.
|
mod.remove.confirm = Ce mod sera supprimé.
|
||||||
mod.author = [LIGHT_GRAY]Auteur:[] {0}
|
mod.author = [LIGHT_GRAY]Auteur:[] {0}
|
||||||
mod.missing = Cette sauvegarde contient des mods que vous avez récemment mis à jour ou que vous avez désinstallés. Votre sauvegarde risque d'être corrompue. Êtes-vous sûr de vouloir l'importer?\n[lightgray]Mods:\n{0}
|
mod.missing = Cette sauvegarde contient des mods que vous avez récemment mis à jour ou que vous avez désinstallés. Votre sauvegarde risque d'être corrompue. Êtes-vous sûr de vouloir l'importer?\n[lightgray]Mods:\n{0}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Uploading Preview File
|
|||||||
committingchanges = Comitting Changes
|
committingchanges = Comitting Changes
|
||||||
done = Done
|
done = Done
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]No mods found!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Enable
|
|||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Import Mod
|
mod.import = Import Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Import GitHub Mod
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = This mod will be deleted.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Mengupload File Tinjauan
|
|||||||
committingchanges = Membuat Perubahan
|
committingchanges = Membuat Perubahan
|
||||||
done = Selesai
|
done = Selesai
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]No mods found!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Enable
|
|||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Import Mod
|
mod.import = Import Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Import GitHub Mod
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = This mod will be deleted.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Carico file di anteprima
|
|||||||
committingchanges = Applico le modifiche
|
committingchanges = Applico le modifiche
|
||||||
done = Fatto
|
done = Fatto
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Tieni a mente che queste mod sono in alpha, e[scarlet] possono avere molti bug[].\nRiporta tutti i problemi che trovi in Mindustry su Github o Discord.
|
mods.alphainfo = Tieni a mente che queste mod sono in alpha, e[scarlet] possono avere molti bug[].\nRiporta tutti i problemi che trovi in Mindustry su GitHub o Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]Nessuna mod trovata!
|
mods.none = [LIGHT_GRAY]Nessuna mod trovata!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Abilita
|
|||||||
mod.requiresrestart = .
|
mod.requiresrestart = .
|
||||||
mod.reloadrequired = [scarlet]Riavvio necessario
|
mod.reloadrequired = [scarlet]Riavvio necessario
|
||||||
mod.import = Importa una mod
|
mod.import = Importa una mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Import GitHub Mod
|
||||||
mod.remove.confirm = Questa mod verrà cancellata.
|
mod.remove.confirm = Questa mod verrà cancellata.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = Questo salvataggio contiene mod che hai recentemente aggiornato o non le hai piu installate. Il salvataggio può essere corrotto. sei sicuro di volerlo caricare?\n[lightgray]Mods:\n{0}
|
mod.missing = Questo salvataggio contiene mod che hai recentemente aggiornato o non le hai piu installate. Il salvataggio può essere corrotto. sei sicuro di volerlo caricare?\n[lightgray]Mods:\n{0}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = プレビューファイルをアップロードしてい
|
|||||||
committingchanges = 変更を適応中
|
committingchanges = 変更を適応中
|
||||||
done = 完了
|
done = 完了
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Mods機能は実験的なものです。[scarlet] エラーが含まれている可能性があります[]。\n 発見した問題をMindustry Githubに報告してください。
|
mods.alphainfo = Mods機能は実験的なものです。[scarlet] エラーが含まれている可能性があります[]。\n 発見した問題をMindustry GitHubに報告してください。
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]Modが見つかりませんでした!
|
mods.none = [LIGHT_GRAY]Modが見つかりませんでした!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = 有効化
|
|||||||
mod.requiresrestart = このModをインストールするためにはゲームの再起動が必要です。
|
mod.requiresrestart = このModをインストールするためにはゲームの再起動が必要です。
|
||||||
mod.reloadrequired = [scarlet]Modを有効にするには、この画面を開き直してください。
|
mod.reloadrequired = [scarlet]Modを有効にするには、この画面を開き直してください。
|
||||||
mod.import = Modをインポート
|
mod.import = Modをインポート
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Import GitHub Mod
|
||||||
mod.remove.confirm = このModを削除します。
|
mod.remove.confirm = このModを削除します。
|
||||||
mod.author = [LIGHT_GRAY]著者:[] {0}
|
mod.author = [LIGHT_GRAY]著者:[] {0}
|
||||||
mod.missing = このセーブには、アップグレードされた可能性があるModsか、ここに存在しないModsが必要です。 メモリのセーブを保存する! ロードしてもよろしいですか?\n[lightgray]MODS:\n{0}
|
mod.missing = このセーブには、アップグレードされた可能性があるModsか、ここに存在しないModsが必要です。 メモリのセーブを保存する! ロードしてもよろしいですか?\n[lightgray]MODS:\n{0}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Uploading Preview File
|
|||||||
committingchanges = Comitting Changes
|
committingchanges = Comitting Changes
|
||||||
done = Done
|
done = Done
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]No mods found!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Enable
|
|||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Import Mod
|
mod.import = Import Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Import GitHub Mod
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = This mod will be deleted.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
|
|||||||
@@ -17,29 +17,29 @@ screenshot.invalid = Kaart te groot, mogelijks te weinig geheugen voor een scree
|
|||||||
gameover = Game Over
|
gameover = Game Over
|
||||||
gameover.pvp = Het[accent] {0}[] team heeft gewonnen!
|
gameover.pvp = Het[accent] {0}[] team heeft gewonnen!
|
||||||
highscore = [accent]Nieuw record!
|
highscore = [accent]Nieuw record!
|
||||||
copied = Copied.
|
copied = Gekopieerd.
|
||||||
load.sound = Sounds
|
load.sound = Geluiden
|
||||||
load.map = Maps
|
load.map = Kaarten
|
||||||
load.image = Images
|
load.image = Images
|
||||||
load.content = Content
|
load.content = Content
|
||||||
load.system = System
|
load.system = System
|
||||||
load.mod = Mods
|
load.mod = Mods
|
||||||
schematic = Schematic
|
schematic = Blauwdruk
|
||||||
schematic.add = Save Schematic...
|
schematic.add = Blauwdruk Opslaan...
|
||||||
schematics = Schematics
|
schematics = Blauwdrukken
|
||||||
schematic.replace = A schematic by that name already exists. Replace it?
|
schematic.replace = Er bestaat al een blaudruk met deze naam. Vervangen?
|
||||||
schematic.import = Import Schematic...
|
schematic.import = Importeer Blauwdruk...
|
||||||
schematic.exportfile = Export File
|
schematic.exportfile = Exporteer Bestand
|
||||||
schematic.importfile = Import File
|
schematic.importfile = Exporteer Bestand
|
||||||
schematic.browseworkshop = Browse Workshop
|
schematic.browseworkshop = Browse Workshop
|
||||||
schematic.copy = Copy to Clipboard
|
schematic.copy = Kopieer naar Klembord
|
||||||
schematic.copy.import = Import from Clipboard
|
schematic.copy.import = Importeer vanaf Klembord
|
||||||
schematic.shareworkshop = Share on Workshop
|
schematic.shareworkshop = Deel op Workshop
|
||||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
||||||
schematic.saved = Schematic saved.
|
schematic.saved = Blauwdruk opgeslagen.
|
||||||
schematic.delete.confirm = This schematic will be utterly eradicated.
|
schematic.delete.confirm = This schematic will be utterly eradicated.
|
||||||
schematic.rename = Rename Schematic
|
schematic.rename = Blauwdruk Hernoemen
|
||||||
schematic.info = {0}x{1}, {2} blocks
|
schematic.info = {0}x{1}, {2} blokken
|
||||||
stat.wave = Je overleefde tot aanvalsgolf: [accent]{0}[].
|
stat.wave = Je overleefde tot aanvalsgolf: [accent]{0}[].
|
||||||
stat.enemiesDestroyed = Vijanden vernietigd:[accent] {0}
|
stat.enemiesDestroyed = Vijanden vernietigd:[accent] {0}
|
||||||
stat.built = Gebouwen gebouwd:[accent] {0}
|
stat.built = Gebouwen gebouwd:[accent] {0}
|
||||||
@@ -48,7 +48,7 @@ stat.deconstructed = Gebouwen afgebroken:[accent] {0}
|
|||||||
stat.delivered = Gronstoffen meegenomen:
|
stat.delivered = Gronstoffen meegenomen:
|
||||||
stat.rank = Eindresultaat: [accent]{0}
|
stat.rank = Eindresultaat: [accent]{0}
|
||||||
launcheditems = [accent]Meegenomen grondstoffen
|
launcheditems = [accent]Meegenomen grondstoffen
|
||||||
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
|
launchinfo = [unlaunched][[LAUNCH] je kern om de met blauw aangeduide voorwerpen te verkrijgen.
|
||||||
map.delete = Ben je zeker dat je de kaart "[accent]{0}[]" wilt verwijderen?
|
map.delete = Ben je zeker dat je de kaart "[accent]{0}[]" wilt verwijderen?
|
||||||
level.highscore = Beste score: [accent]{0}
|
level.highscore = Beste score: [accent]{0}
|
||||||
level.select = Selecteer level
|
level.select = Selecteer level
|
||||||
@@ -57,14 +57,14 @@ showagain = Toon dit volgende keer niet meer.
|
|||||||
coreattack = < Kern wordt aangevallen! >
|
coreattack = < Kern wordt aangevallen! >
|
||||||
nearpoint = [[ [scarlet]VERLAAT dit gebied onmiddelijk[] ]\nDirecte vernietiging...
|
nearpoint = [[ [scarlet]VERLAAT dit gebied onmiddelijk[] ]\nDirecte vernietiging...
|
||||||
database = Kern Database
|
database = Kern Database
|
||||||
savegame = opslaan
|
savegame = Opslaan
|
||||||
loadgame = openen
|
loadgame = Openen
|
||||||
joingame = Multiplayer
|
joingame = Multiplayer
|
||||||
customgame = Aangepaste versie
|
customgame = Aangepaste versie
|
||||||
newgame = Nieuw spel
|
newgame = Nieuw spel
|
||||||
none = <geen>
|
none = <geen>
|
||||||
minimap = Kaartje
|
minimap = Kaartje
|
||||||
position = Position
|
position = Positie
|
||||||
close = Sluit
|
close = Sluit
|
||||||
website = Website
|
website = Website
|
||||||
quit = Verlaat
|
quit = Verlaat
|
||||||
@@ -74,40 +74,40 @@ maps.browse = Browse Maps
|
|||||||
continue = Ga verder
|
continue = Ga verder
|
||||||
maps.none = [LIGHT_GRAY]Geen kaarten gevonden!
|
maps.none = [LIGHT_GRAY]Geen kaarten gevonden!
|
||||||
invalid = Invalid
|
invalid = Invalid
|
||||||
preparingconfig = Preparing Config
|
preparingconfig = Config Voorbereiden
|
||||||
preparingcontent = Preparing Content
|
preparingcontent = Content Voorbereiden
|
||||||
uploadingcontent = Uploading Content
|
uploadingcontent = Content Uploaden
|
||||||
uploadingpreviewfile = Uploading Preview File
|
uploadingpreviewfile = Voorbeeldbestand Uploaden
|
||||||
committingchanges = Comitting Changes
|
committingchanges = Veranderingen Toepassen
|
||||||
done = Done
|
done = Klaar
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Uw apparaat ondersteunt deze functie niet.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]Geen mods gevonden!
|
||||||
mods.guide = Modding Guide
|
mods.guide = Handleiding tot Modding
|
||||||
mods.report = Report Bug
|
mods.report = Bug Rapporteren
|
||||||
mods.openfolder = Open Mod Folder
|
mods.openfolder = Open Mod Folder
|
||||||
mod.enabled = [lightgray]Enabled
|
mod.enabled = [lightgray]Ingeschakeld
|
||||||
mod.disabled = [scarlet]Disabled
|
mod.disabled = [scarlet]Uitgeschakeld
|
||||||
mod.disable = Disable
|
mod.disable = Schakel uit
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.delete.error = Kan mod niet verwijderen. Bestand is mogelijk in gebruik.
|
||||||
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
||||||
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
||||||
mod.enable = Enable
|
mod.enable = Enable
|
||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Herladen Vereist
|
||||||
mod.import = Import Mod
|
mod.import = Importeer Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Importeer GitHub Mod
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = Deze mod zal worden verwijderd.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Auteur:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = Dit opslagbestand bevat mods die zijn geupdate of recentelijk zijn verwijderd. Uw opslagbestand kan beschadigd geraken. Bent u zeker dat u wil verdergaan?\n[lightgray]Mods:\n{0}
|
||||||
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
|
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
|
||||||
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
|
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
|
||||||
about.button = Extra info
|
about.button = Extra info
|
||||||
name = Naam:
|
name = Naam:
|
||||||
noname = Kies eerst[accent] een naam[].
|
noname = Kies eerst[accent] een naam[].
|
||||||
filename = Bestands naam:
|
filename = Bestandsnaam:
|
||||||
unlocked = Ontgrendeld!
|
unlocked = Ontgrendeld!
|
||||||
completed = [accent]Voltooid
|
completed = [accent]Voltooid
|
||||||
techtree = Technische vooruitgang
|
techtree = Technische vooruitgang
|
||||||
|
|||||||
@@ -3,16 +3,16 @@ credits = Zasłużeni
|
|||||||
contributors = Tłumacze i pomocnicy
|
contributors = Tłumacze i pomocnicy
|
||||||
discord = Odwiedź nasz serwer Discord!
|
discord = Odwiedź nasz serwer Discord!
|
||||||
link.discord.description = Oficjalny serwer Discord Mindustry
|
link.discord.description = Oficjalny serwer Discord Mindustry
|
||||||
link.reddit.description = The Mindustry subreddit
|
link.reddit.description = Subreddit Mindustry
|
||||||
link.github.description = Kod źródłowy gry
|
link.github.description = Kod źródłowy gry
|
||||||
link.changelog.description = Informacje o aktualizacjach
|
link.changelog.description = Historia aktualizacji
|
||||||
link.dev-builds.description = Niestabilne wersje gry
|
link.dev-builds.description = Niestabilne wersje gry
|
||||||
link.trello.description = Oficjalna tablica Trello z planowanym funkcjami
|
link.trello.description = Oficjalna tablica Trello z planowanym funkcjami
|
||||||
link.itch.io.description = Strona itch.io z oficjanymi wersjami do pobrania
|
link.itch.io.description = Strona itch.io z oficjanymi wersjami do pobrania
|
||||||
link.google-play.description = Strona na sklepie Google Play
|
link.google-play.description = Strona na sklepie Google Play
|
||||||
link.wiki.description = Oficjana Wiki Mindustry
|
link.wiki.description = Oficjana Wiki Mindustry
|
||||||
linkfail = Nie udało się otworzyć linku!\nURL został skopiowany.
|
linkfail = Nie udało się otworzyć linku!\nURL został skopiowany.
|
||||||
screenshot = Zapisano zdjęcie do {0}
|
screenshot = Zapisano zdjęcie w {0}
|
||||||
screenshot.invalid = Zrzut ekranu jest zbyt duży. Najprawdopodobniej brakuje miejsca w pamięci urządzenia.
|
screenshot.invalid = Zrzut ekranu jest zbyt duży. Najprawdopodobniej brakuje miejsca w pamięci urządzenia.
|
||||||
gameover = Koniec Gry
|
gameover = Koniec Gry
|
||||||
gameover.pvp = Zwyciężyła drużyna [accent]{0}[]!
|
gameover.pvp = Zwyciężyła drużyna [accent]{0}[]!
|
||||||
@@ -24,22 +24,22 @@ load.image = Obrazy
|
|||||||
load.content = Treść
|
load.content = Treść
|
||||||
load.system = System
|
load.system = System
|
||||||
load.mod = Mody
|
load.mod = Mody
|
||||||
schematic = Schematic
|
schematic = Schemat
|
||||||
schematic.add = Save Schematic...
|
schematic.add = Zapisz schemat...
|
||||||
schematics = Schematics
|
schematics = Schematy
|
||||||
schematic.replace = A schematic by that name already exists. Replace it?
|
schematic.replace = Schemat o takiej nazwie już istnieje. Czy chcesz go zastąpić?
|
||||||
schematic.import = Import Schematic...
|
schematic.import = Importuj Schemat...
|
||||||
schematic.exportfile = Export File
|
schematic.exportfile = Eksportuj plik
|
||||||
schematic.importfile = Import File
|
schematic.importfile = Importuj plik
|
||||||
schematic.browseworkshop = Browse Workshop
|
schematic.browseworkshop = Przeglądaj Warsztat
|
||||||
schematic.copy = Copy to Clipboard
|
schematic.copy = Zapisano w schowku
|
||||||
schematic.copy.import = Import from Clipboard
|
schematic.copy.import = Importuj ze schowka
|
||||||
schematic.shareworkshop = Share on Workshop
|
schematic.shareworkshop = Podziel się na Warsztacie
|
||||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Odwróć schemat
|
||||||
schematic.saved = Schematic saved.
|
schematic.saved = Schemat zapisany.
|
||||||
schematic.delete.confirm = This schematic will be utterly eradicated.
|
schematic.delete.confirm = Ten schemat zostanie kompletnie wyeliminowany.
|
||||||
schematic.rename = Rename Schematic
|
schematic.rename = Zmień nazwę schematu
|
||||||
schematic.info = {0}x{1}, {2} blocks
|
schematic.info = {0}x{1}, {2} bloków
|
||||||
stat.wave = Fale powstrzymane:[accent] {0}
|
stat.wave = Fale powstrzymane:[accent] {0}
|
||||||
stat.enemiesDestroyed = Przeciwnicy zniszczeni:[accent] {0}
|
stat.enemiesDestroyed = Przeciwnicy zniszczeni:[accent] {0}
|
||||||
stat.built = Budynki zbudowane:[accent] {0}
|
stat.built = Budynki zbudowane:[accent] {0}
|
||||||
@@ -55,7 +55,7 @@ level.select = Wybrany poziom
|
|||||||
level.mode = Tryb gry:
|
level.mode = Tryb gry:
|
||||||
showagain = Nie pokazuj tego więcej
|
showagain = Nie pokazuj tego więcej
|
||||||
coreattack = < Rdzeń jest atakowany! >
|
coreattack = < Rdzeń jest atakowany! >
|
||||||
nearpoint = [[ [scarlet]OPUŚĆ PUNKT ZRZUTU NATYCHMIAST[] ]\nnadciąga zniszczenie
|
nearpoint = [[ [scarlet]NATYCHMIAST OPUŚĆ PUNKT ZRZUTU[] ]\nnadciąga zniszczenie
|
||||||
database = Centralna baza danych
|
database = Centralna baza danych
|
||||||
savegame = Zapisz Grę
|
savegame = Zapisz Grę
|
||||||
loadgame = Wczytaj Grę
|
loadgame = Wczytaj Grę
|
||||||
@@ -64,7 +64,7 @@ customgame = Własna Gra
|
|||||||
newgame = Nowa Gra
|
newgame = Nowa Gra
|
||||||
none = <brak>
|
none = <brak>
|
||||||
minimap = Minimapa
|
minimap = Minimapa
|
||||||
position = Position
|
position = Pozycja
|
||||||
close = Zamknij
|
close = Zamknij
|
||||||
website = Strona Gry
|
website = Strona Gry
|
||||||
quit = Wyjdź
|
quit = Wyjdź
|
||||||
@@ -80,30 +80,30 @@ uploadingcontent = Przesyłanie Zawartości
|
|||||||
uploadingpreviewfile = Przesyłanie Pliku Podglądu
|
uploadingpreviewfile = Przesyłanie Pliku Podglądu
|
||||||
committingchanges = Zatwierdzanie Zmian
|
committingchanges = Zatwierdzanie Zmian
|
||||||
done = Gotowe
|
done = Gotowe
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Twoje urządzenie nie wspiera tej funkcji.
|
||||||
mods.alphainfo = Pamiętaj, że mody są wersji alpha, i[scarlet] mogą być pełne błędów[].\nZgłaszaj wszystkie znalezione problemy na Mindustry Github lub Discord.
|
mods.alphainfo = Pamiętaj, że mody są wersji alpha, i[scarlet] mogą być pełne błędów[].\nZgłaszaj wszystkie znalezione problemy na Mindustry GitHub lub Discord.
|
||||||
mods.alpha = [scarlet](Alpha)
|
mods.alpha = [scarlet](Alpha)
|
||||||
mods = Mody
|
mods = Mody
|
||||||
mods.none = [LIGHT_GRAY]Nie znaleziono modów!
|
mods.none = [LIGHT_GRAY]Nie znaleziono modów!
|
||||||
mods.guide = Modding Guide
|
mods.guide = Poradnik do modów
|
||||||
mods.report = Report Bug
|
mods.report = Zgłoś Błąd
|
||||||
mods.openfolder = Open Mod Folder
|
mods.openfolder = Otwórz folder z modami
|
||||||
mod.enabled = [lightgray]Włączony
|
mod.enabled = [lightgray]Włączony
|
||||||
mod.disabled = [scarlet]Wyłączony
|
mod.disabled = [scarlet]Wyłączony
|
||||||
mod.disable = Disable
|
mod.disable = Wyłącz
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.delete.error = Nie udało się usunąć moda. Plik może być w użyciu.
|
||||||
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
mod.missingdependencies = [scarlet]Brakujące zależności: {0}
|
||||||
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
mod.nowdisabled = [scarlet]Brakuje zależności dla moda '{0}':[accent] {1}\n[lightgray]Najpierw trzeba ściągnąć te mody.\nMod zostanie automatycznie wyłączony.
|
||||||
mod.enable = Enable
|
mod.enable = Włącz
|
||||||
mod.requiresrestart = Gra się wyłączy aby wprowadzić zmiany moda.
|
mod.requiresrestart = Gra się wyłączy aby wprowadzić zmiany moda.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Wymagany restart
|
||||||
mod.import = Importuj Mod
|
mod.import = Importuj Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Importuj mod z GitHuba
|
||||||
mod.remove.confirm = Ten mod zostanie usunięty.
|
mod.remove.confirm = Ten mod zostanie usunięty.
|
||||||
mod.author = [LIGHT_GRAY]Autor:[] {0}
|
mod.author = [LIGHT_GRAY]Autor:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = Ten zapis zawiera mody, które zostały niedawno zaktualizowane, bądź nie są już zainstalowane. Zapis może zostać uszkodzony. Czy jesteś pewien, że chcesz go załadować?\n[lightgray]Mody:\n{0}
|
||||||
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
|
mod.preview.missing = Przed opublikowaniem tego moda na Warsztacie musisz dodać zdjęcie podglądowe.\nDodaj zdjęcie o nazwie[accent] preview.png[] do folderu moda i spróbuj jeszcze raz.
|
||||||
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
|
mod.folder.missing = Jedynie mody w formie folderów mogą się znaleźć na Warsztacie.\nBy zamienić moda w folder, wyciągnij go z archiwum, umieść w folderze i usuń archiwum. Później uruchom ponownie grę bądź załaduj ponownie mody.
|
||||||
about.button = O Grze
|
about.button = O Grze
|
||||||
name = Nazwa:
|
name = Nazwa:
|
||||||
noname = Najpierw wybierz [accent]nazwę gracza[]
|
noname = Najpierw wybierz [accent]nazwę gracza[]
|
||||||
@@ -125,7 +125,7 @@ server.kicked.clientOutdated = Nieaktualna gra! Zaktualizują ją!
|
|||||||
server.kicked.serverOutdated = Nieaktualny serwer! Poproś hosta o jego aktualizację.
|
server.kicked.serverOutdated = Nieaktualny serwer! Poproś hosta o jego aktualizację.
|
||||||
server.kicked.banned = Zostałeś zbanowany na tym serwerze.
|
server.kicked.banned = Zostałeś zbanowany na tym serwerze.
|
||||||
server.kicked.typeMismatch = Ten serwer jest niekompatybilny z twoją wersją gry.
|
server.kicked.typeMismatch = Ten serwer jest niekompatybilny z twoją wersją gry.
|
||||||
server.kicked.playerLimit = Serwer pełny. Poczekaj na wolny slot.
|
server.kicked.playerLimit = Serwer pełny. Poczekaj na wolne miejsce.
|
||||||
server.kicked.recentKick = Zostałeś niedawno wyrzucony.\nPoczekaj chwilę przed ponownym połączniem.
|
server.kicked.recentKick = Zostałeś niedawno wyrzucony.\nPoczekaj chwilę przed ponownym połączniem.
|
||||||
server.kicked.nameInUse = Ta nazwa jest już zajęta na tym serwerze.
|
server.kicked.nameInUse = Ta nazwa jest już zajęta na tym serwerze.
|
||||||
server.kicked.nameEmpty = Wybrana przez Ciebie nazwa jest nieprawidłowa.
|
server.kicked.nameEmpty = Wybrana przez Ciebie nazwa jest nieprawidłowa.
|
||||||
@@ -133,8 +133,8 @@ server.kicked.idInUse = Jesteś już na serwerze! Używanie tego samego konta na
|
|||||||
server.kicked.customClient = Ten serwer nie wspomaga wersji deweloperskich. Pobierz oficjalną wersję.
|
server.kicked.customClient = Ten serwer nie wspomaga wersji deweloperskich. Pobierz oficjalną wersję.
|
||||||
server.kicked.gameover = Koniec gry!
|
server.kicked.gameover = Koniec gry!
|
||||||
server.versions = Twoja wersja gry:[accent] {0}[]\nWersja gry serwera:[accent] {1}[]
|
server.versions = Twoja wersja gry:[accent] {0}[]\nWersja gry serwera:[accent] {1}[]
|
||||||
host.info = Przycisk [accent]host[] hostuje serwer na porcie [scarlet]6567[] i [scarlet]6568.[]\nKtokolwiek z tym samym [LIGHT_GRAY]wifi lub hotspotem[] powinien zobaczyć twój serwer.\n\nJeśli chcesz, aby każdy z twoim IP mógł dołączyć, [accent]przekierowywanie portów[] jest potrzebne.\n\n[LIGHT_GRAY]Notka:Jeśli ktokolwiek ma problem z dołączeniem do gry, upewnij się, że udostępniłeś Mindustry dostęp do sieci.
|
host.info = Przycisk [accent]host[] hostuje serwer na porcie [scarlet]6567[] i [scarlet]6568.[]\nKażdy w tej samej sieci [LIGHT_GRAY]wifi lub hotspocie[] powinien zobaczyć twój serwer.\n\nJeśli chcesz, aby każdy z twoim IP mógł dołączyć, musisz wykonać [accent]przekierowywanie portów[].\n\n[LIGHT_GRAY]Notka:Jeśli ktokolwiek ma problem z dołączeniem do gry, upewnij się, że udostępniłeś Mindustry dostęp do sieci.
|
||||||
join.info = Tutaj możesz wpisać [accent]IP serwera[], aby dołączyć lub wyszukaj [accent]serwery w lokalnej sieci[], do których chcesz dołączyć .\nGra wieloosobowa na LAN i WAN jest wspomagana.\n\n[LIGHT_GRAY]Notka: Nie ma automatycznej listy wszystkich serwerów; jeśli chcesz dołączyć przez IP, musisz zapytać się hosta o IP.
|
join.info = Tutaj możesz wpisać [accent]adres IP serwera[], aby dołączyć lub wyszukać [accent]serwerów w lokalnej sieci[], do których możesz dołączyć .\nGra wieloosobowa na LAN i WAN jest wspomagana.\n\n[LIGHT_GRAY]Notka: Nie ma automatycznej listy wszystkich serwerów; jeśli chcesz dołączyć przez IP, musisz zapytać hosta o IP.
|
||||||
hostserver = Stwórz Serwer
|
hostserver = Stwórz Serwer
|
||||||
invitefriends = Zaproś Znajomych
|
invitefriends = Zaproś Znajomych
|
||||||
hostserver.mobile = Hostuj\nGrę
|
hostserver.mobile = Hostuj\nGrę
|
||||||
@@ -217,7 +217,7 @@ warning = Uwaga.
|
|||||||
confirm = Potwierdź
|
confirm = Potwierdź
|
||||||
delete = Usuń
|
delete = Usuń
|
||||||
view.workshop = Pokaż w Warsztacie
|
view.workshop = Pokaż w Warsztacie
|
||||||
workshop.listing = Edit Workshop Listing
|
workshop.listing = Edytuj pozycję w Warsztacie
|
||||||
ok = OK
|
ok = OK
|
||||||
open = Otwórz
|
open = Otwórz
|
||||||
customize = Dostosuj
|
customize = Dostosuj
|
||||||
@@ -237,10 +237,10 @@ quit.confirm.tutorial = Czy jesteś pewien tego co robisz?\nSamouczek może zost
|
|||||||
loading = [accent]Ładowanie...
|
loading = [accent]Ładowanie...
|
||||||
reloading = [accent]Reloading Mods...
|
reloading = [accent]Reloading Mods...
|
||||||
saving = [accent]Zapisywanie...
|
saving = [accent]Zapisywanie...
|
||||||
cancelbuilding = [accent][[{0}][] to clear plan
|
cancelbuilding = [accent][[{0}][] by wyczyścić plan
|
||||||
selectschematic = [accent][[{0}][] to select+copy
|
selectschematic = [accent][[{0}][] by wybrać+skopiować
|
||||||
pausebuilding = [accent][[{0}][] to pause building
|
pausebuilding = [accent][[{0}][] by wtrzymać budowę
|
||||||
resumebuilding = [scarlet][[{0}][] to resume building
|
resumebuilding = [scarlet][[{0}][] by kontynuować budowę
|
||||||
wave = [accent]Fala {0}
|
wave = [accent]Fala {0}
|
||||||
wave.waiting = Fala za {0}
|
wave.waiting = Fala za {0}
|
||||||
wave.waveInProgress = [LIGHT_GRAY]Fala w trakcie
|
wave.waveInProgress = [LIGHT_GRAY]Fala w trakcie
|
||||||
@@ -259,18 +259,18 @@ map.nospawn = Ta mapa nie zawiera żadnego rdzenia! Dodaj [ROYAL]niebieski[] rdz
|
|||||||
map.nospawn.pvp = Ta mapa nie ma żadnego rdzenia przeciwnika, aby mogli się zrespić przeciwnicy! Dodaj[SCARLET] inny niż niebieski[] rdzeń do mapy w edytorze.
|
map.nospawn.pvp = Ta mapa nie ma żadnego rdzenia przeciwnika, aby mogli się zrespić przeciwnicy! Dodaj[SCARLET] inny niż niebieski[] rdzeń do mapy w edytorze.
|
||||||
map.nospawn.attack = Ta mapa nie ma żadnego rdzenia przeciwnika, aby można było go zaatakować! Dodaj[SCARLET] czerwony[] rdzeń do mapy w edytorze.
|
map.nospawn.attack = Ta mapa nie ma żadnego rdzenia przeciwnika, aby można było go zaatakować! Dodaj[SCARLET] czerwony[] rdzeń do mapy w edytorze.
|
||||||
map.invalid = Błąd podczas ładowania mapy: uszkodzony lub niepoprawny plik mapy.
|
map.invalid = Błąd podczas ładowania mapy: uszkodzony lub niepoprawny plik mapy.
|
||||||
workshop.update = Update Item
|
workshop.update = Aktualizuj pozycję
|
||||||
workshop.error = Error fetching workshop details: {0}
|
workshop.error = Błąd podczas wczytywania szczegółów z Warsztatu: {0}
|
||||||
map.publish.confirm = Are you sure you want to publish this map?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your maps will not show up!
|
map.publish.confirm = Czy jesteś pewien, że chcesz opublikować tę mapę?\n\n[lightgray]Najpierw upewnij się, że zgadzasz się z umową EULA Warsztatu, w przeciwnym razie twoje mapy nie będą widoczne!
|
||||||
workshop.menu = Select what you would like to do with this item.
|
workshop.menu = Wybierz co chcesz zrobić z tą pozycją.
|
||||||
workshop.info = Item Info
|
workshop.info = Informacja o pozycji
|
||||||
changelog = Changelog (optional):
|
changelog = Historia aktualizacji (opcjonalna):
|
||||||
eula = Steam EULA
|
eula = Umowa EULA Steam
|
||||||
missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked.
|
missing = Ta pozycja została przeniesiona bądź usunięta.\n[lightgray]Pozycja na Warsztacie została automatycznie odłączona.
|
||||||
publishing = [accent]Publishing...
|
publishing = [accent]Trwa publikowanie...
|
||||||
publish.confirm = Are you sure you want to publish this?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your items will not show up!
|
publish.confirm = Czy jesteś pewien, że chcesz to opublikować?\n\n[lightgray]Najpierw upewnij się, że zgadzasz się z umową EULA Warsztatu, w przeciwnym razie twoje pozycje nie będą widoczne!
|
||||||
publish.error = Error publishing item: {0}
|
publish.error = Błąd podczas publikowania pozycji: {0}
|
||||||
steam.error = Failed to initialize Steam services.\nError: {0}
|
steam.error = Nie udało się zainicjować serwisów Steam.\nBłąd: {0}
|
||||||
editor.brush = Pędzel
|
editor.brush = Pędzel
|
||||||
editor.openin = Otwórz w Edytorze
|
editor.openin = Otwórz w Edytorze
|
||||||
editor.oregen = Generacja Złóż
|
editor.oregen = Generacja Złóż
|
||||||
@@ -310,7 +310,7 @@ editor.removeunit = Usuń Jednostkę
|
|||||||
editor.teams = Drużyny
|
editor.teams = Drużyny
|
||||||
editor.errorload = Błąd podczas ładowania pliku:\n[accent]{0}
|
editor.errorload = Błąd podczas ładowania pliku:\n[accent]{0}
|
||||||
editor.errorsave = Błąd podczas zapisywania pliku:\n[accent]{0}
|
editor.errorsave = Błąd podczas zapisywania pliku:\n[accent]{0}
|
||||||
editor.errorimage = To obraz, nie mapa. Nie zmieniaj rozszeżenia spodziewając sie że to coś zmieni.\n\nJeśli chcesz zaimportować starszą mapę, użyj przycisku „importuj starszą mapę” w edytorze.
|
editor.errorimage = To obraz, nie mapa. Nie zmieniaj rozszerzenia, spodziewając się, że to coś zmieni.\n\nJeśli chcesz zaimportować starszą mapę, użyj przycisku „importuj starszą mapę” w edytorze.
|
||||||
editor.errorlegacy = Ta mapa jest zbyt stara i używa starszego formatu mapy, który nie jest już obsługiwany.
|
editor.errorlegacy = Ta mapa jest zbyt stara i używa starszego formatu mapy, który nie jest już obsługiwany.
|
||||||
editor.errornot = To nie jest plik mapy.
|
editor.errornot = To nie jest plik mapy.
|
||||||
editor.errorheader = Ten plik mapy jest nieprawidłowy lub uszkodzony.
|
editor.errorheader = Ten plik mapy jest nieprawidłowy lub uszkodzony.
|
||||||
@@ -357,7 +357,7 @@ toolmode.square = Kwadrat
|
|||||||
toolmode.square.description = Kwadratowy pędzel.
|
toolmode.square.description = Kwadratowy pędzel.
|
||||||
toolmode.eraseores = Wymaż Rudy
|
toolmode.eraseores = Wymaż Rudy
|
||||||
toolmode.eraseores.description = Usuń tylko rudy.
|
toolmode.eraseores.description = Usuń tylko rudy.
|
||||||
toolmode.fillteams = Wypełń Drużyny
|
toolmode.fillteams = Wypełnij Drużyny
|
||||||
toolmode.fillteams.description = Wypełniaj drużyny zamiast bloków.
|
toolmode.fillteams.description = Wypełniaj drużyny zamiast bloków.
|
||||||
toolmode.drawteams = Rysuj Drużyny
|
toolmode.drawteams = Rysuj Drużyny
|
||||||
toolmode.drawteams.description = Rysuj drużyny zamiast bloków.
|
toolmode.drawteams.description = Rysuj drużyny zamiast bloków.
|
||||||
@@ -411,9 +411,9 @@ abandon = Opuść
|
|||||||
abandon.text = Ta strefa i wszystkie jej surowce będą przejęte przez przeciwników.
|
abandon.text = Ta strefa i wszystkie jej surowce będą przejęte przez przeciwników.
|
||||||
locked = Zablokowane
|
locked = Zablokowane
|
||||||
complete = [LIGHT_GRAY]Ukończone:
|
complete = [LIGHT_GRAY]Ukończone:
|
||||||
requirement.wave = Reach Wave {0} in {1}
|
requirement.wave = Osiągnij falę {0} w {1}
|
||||||
requirement.core = Destroy Enemy Core in {0}
|
requirement.core = Zniszcz Rdzeń wroga w {0}
|
||||||
requirement.unlock = Unlock {0}
|
requirement.unlock = Odblokuj {0}
|
||||||
resume = Kontynuuj Strefę:\n[LIGHT_GRAY]{0}
|
resume = Kontynuuj Strefę:\n[LIGHT_GRAY]{0}
|
||||||
bestwave = [LIGHT_GRAY]Najwyższa fala: {0}
|
bestwave = [LIGHT_GRAY]Najwyższa fala: {0}
|
||||||
launch = < WYSTRZEL >
|
launch = < WYSTRZEL >
|
||||||
@@ -424,13 +424,13 @@ launch.confirm = Spowoduje to wystrzelenie wszystkich surowców w rdzeniu.\nNie
|
|||||||
launch.skip.confirm = Jeśli teraz przejdziesz do kolejnej fali, Nie biędziesz miał możliwości wystrzelenia do czasu pokonania dalszych fal.
|
launch.skip.confirm = Jeśli teraz przejdziesz do kolejnej fali, Nie biędziesz miał możliwości wystrzelenia do czasu pokonania dalszych fal.
|
||||||
uncover = Odkryj
|
uncover = Odkryj
|
||||||
configure = Skonfiguruj Ładunek
|
configure = Skonfiguruj Ładunek
|
||||||
bannedblocks = Banned Blocks
|
bannedblocks = Zabronione bloki
|
||||||
addall = Add All
|
addall = Dodaj wszystkie
|
||||||
configure.locked = [LIGHT_GRAY]Dotrzyj do fali {0}\nAby skonfigurować ładunek.
|
configure.locked = [LIGHT_GRAY]Dotrzyj do fali {0}\nAby skonfigurować ładunek.
|
||||||
configure.invalid = Ilość musi być liczbą pomiędzy 0 a {0}.
|
configure.invalid = Ilość musi być liczbą pomiędzy 0 a {0}.
|
||||||
zone.unlocked = [LIGHT_GRAY]Strefa {0} odblokowana.
|
zone.unlocked = [LIGHT_GRAY]Strefa {0} odblokowana.
|
||||||
zone.requirement.complete = Fala {0} osiągnięta:\n{1} Wymagania strefy zostały spełnione.
|
zone.requirement.complete = Fala {0} osiągnięta:\n{1} Wymagania strefy zostały spełnione.
|
||||||
zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
|
zone.config.unlocked = Ładunek odblokowany:[lightgray]\n{0}
|
||||||
zone.resources = Wykryte Zasoby:
|
zone.resources = Wykryte Zasoby:
|
||||||
zone.objective = [lightgray]Cel: [accent]{0}
|
zone.objective = [lightgray]Cel: [accent]{0}
|
||||||
zone.objective.survival = Przeżyj
|
zone.objective.survival = Przeżyj
|
||||||
@@ -487,8 +487,8 @@ settings.cleardata = Wyczyść Dane Gry...
|
|||||||
settings.clear.confirm = Czy jesteś pewien że chcesz usunąć te dane?\nPo tym nie ma powrotu!
|
settings.clear.confirm = Czy jesteś pewien że chcesz usunąć te dane?\nPo tym nie ma powrotu!
|
||||||
settings.clearall.confirm = [scarlet]UWAGA![]\nTo wykasuje wszystkie dane, włącznie z zapisanymi grami i mapami, ustawienami, i znanymi technologiami.\nKiedy naciśniesz 'ok', gra usunie wszystkie swoje dane i automatycznie wyłączy się.
|
settings.clearall.confirm = [scarlet]UWAGA![]\nTo wykasuje wszystkie dane, włącznie z zapisanymi grami i mapami, ustawienami, i znanymi technologiami.\nKiedy naciśniesz 'ok', gra usunie wszystkie swoje dane i automatycznie wyłączy się.
|
||||||
paused = [accent]< Wstrzymano >
|
paused = [accent]< Wstrzymano >
|
||||||
clear = Clear
|
clear = Wyczyść
|
||||||
banned = [scarlet]Banned
|
banned = [scarlet]Zbanowano
|
||||||
yes = Tak
|
yes = Tak
|
||||||
no = Nie
|
no = Nie
|
||||||
info.title = Informacje
|
info.title = Informacje
|
||||||
@@ -597,7 +597,7 @@ setting.difficulty.normal = Normalny
|
|||||||
setting.difficulty.hard = Trudny
|
setting.difficulty.hard = Trudny
|
||||||
setting.difficulty.insane = Szalony
|
setting.difficulty.insane = Szalony
|
||||||
setting.difficulty.name = Poziom trudności
|
setting.difficulty.name = Poziom trudności
|
||||||
setting.screenshake.name = Trzęsienie się ekranu
|
setting.screenshake.name = Wstrząsy ekranu
|
||||||
setting.effects.name = Wyświetlanie efektów
|
setting.effects.name = Wyświetlanie efektów
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = Display Destroyed Blocks
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
||||||
@@ -623,7 +623,7 @@ setting.chatopacity.name = Przezroczystość czatu
|
|||||||
setting.lasersopacity.name = Przezroczystość laserów zasilających
|
setting.lasersopacity.name = Przezroczystość laserów zasilających
|
||||||
setting.playerchat.name = Wyświetlaj czat w grze
|
setting.playerchat.name = Wyświetlaj czat w grze
|
||||||
public.confirm = Czy chcesz ustawić swoją grę jako publiczną?\n[lightgray]Można to później zmienić w Ustawienia->Gra->Widoczność Gry Publicznej.
|
public.confirm = Czy chcesz ustawić swoją grę jako publiczną?\n[lightgray]Można to później zmienić w Ustawienia->Gra->Widoczność Gry Publicznej.
|
||||||
public.beta = Note that beta versions of the game cannot make public lobbies.
|
public.beta = Wersje beta gry nie mogą tworzyć publicznych pokoi.
|
||||||
uiscale.reset = Skala interfejsu uległa zmianie.\nNaciśnij "OK" by potwierdzić zmiany.\n[scarlet]Cofanie zmian i wyjście z gry za[accent] {0}[]
|
uiscale.reset = Skala interfejsu uległa zmianie.\nNaciśnij "OK" by potwierdzić zmiany.\n[scarlet]Cofanie zmian i wyjście z gry za[accent] {0}[]
|
||||||
uiscale.cancel = Anuluj i Wyjdź
|
uiscale.cancel = Anuluj i Wyjdź
|
||||||
setting.bloom.name = Bloom
|
setting.bloom.name = Bloom
|
||||||
@@ -631,20 +631,20 @@ keybind.title = Zmień
|
|||||||
keybinds.mobile = [scarlet]Większość skrótów klawiszowych nie funkcjonuje w wersji mobilnej. Tylko podstawowe poruszanie się jest wspierane.
|
keybinds.mobile = [scarlet]Większość skrótów klawiszowych nie funkcjonuje w wersji mobilnej. Tylko podstawowe poruszanie się jest wspierane.
|
||||||
category.general.name = Ogólne
|
category.general.name = Ogólne
|
||||||
category.view.name = Wyświetl
|
category.view.name = Wyświetl
|
||||||
category.multiplayer.name = Multiplayer
|
category.multiplayer.name = Wielu graczy
|
||||||
command.attack = Atakuj
|
command.attack = Atakuj
|
||||||
command.rally = Zbierz
|
command.rally = Zbierz
|
||||||
command.retreat = Wycofaj
|
command.retreat = Wycofaj
|
||||||
keybind.clear_building.name = Clear Building
|
keybind.clear_building.name = Wyczyść budynek
|
||||||
keybind.press = Naciśnij wybrany klawisz...
|
keybind.press = Naciśnij wybrany klawisz...
|
||||||
keybind.press.axis = Naciśnij oś lub klawisz...
|
keybind.press.axis = Naciśnij oś lub klawisz...
|
||||||
keybind.screenshot.name = Zrzut ekranu mapy
|
keybind.screenshot.name = Zrzut ekranu mapy
|
||||||
keybind.move_x.name = Poruszanie w poziomie
|
keybind.move_x.name = Poruszanie w poziomie
|
||||||
keybind.move_y.name = Poruszanie w pionie
|
keybind.move_y.name = Poruszanie w pionie
|
||||||
keybind.schematic_select.name = Select Region
|
keybind.schematic_select.name = Wybierz region
|
||||||
keybind.schematic_menu.name = Schematic Menu
|
keybind.schematic_menu.name = Menu schematów
|
||||||
keybind.schematic_flip_x.name = Flip Schematic X
|
keybind.schematic_flip_x.name = Obróć schemat horyzontalnie
|
||||||
keybind.schematic_flip_y.name = Flip Schematic Y
|
keybind.schematic_flip_y.name = Obróć schemat wertykalnie
|
||||||
keybind.fullscreen.name = Przełącz Pełny Ekran
|
keybind.fullscreen.name = Przełącz Pełny Ekran
|
||||||
keybind.select.name = Zaznacz
|
keybind.select.name = Zaznacz
|
||||||
keybind.diagonal_placement.name = Budowa po skosie
|
keybind.diagonal_placement.name = Budowa po skosie
|
||||||
@@ -656,7 +656,7 @@ keybind.zoom_hold.name = Inicjator przybliżania
|
|||||||
keybind.zoom.name = Przybliżanie
|
keybind.zoom.name = Przybliżanie
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Pauza
|
keybind.pause.name = Pauza
|
||||||
keybind.pause_building.name = Pause/Resume Building
|
keybind.pause_building.name = Wstrzymaj/kontynuuj budowę
|
||||||
keybind.minimap.name = Minimapa
|
keybind.minimap.name = Minimapa
|
||||||
keybind.dash.name = Przyspieszenie
|
keybind.dash.name = Przyspieszenie
|
||||||
keybind.chat.name = Czat
|
keybind.chat.name = Czat
|
||||||
@@ -855,7 +855,7 @@ block.duo.name = Podwójne Działko
|
|||||||
block.scorch.name = Płomień
|
block.scorch.name = Płomień
|
||||||
block.scatter.name = Flak
|
block.scatter.name = Flak
|
||||||
block.hail.name = Grad
|
block.hail.name = Grad
|
||||||
block.lancer.name = Lancer
|
block.lancer.name = Lansjer
|
||||||
block.conveyor.name = Przenośnik
|
block.conveyor.name = Przenośnik
|
||||||
block.titanium-conveyor.name = Przenośnik Tytanowy
|
block.titanium-conveyor.name = Przenośnik Tytanowy
|
||||||
block.armored-conveyor.name = Przenośnik Opancerzony
|
block.armored-conveyor.name = Przenośnik Opancerzony
|
||||||
@@ -864,7 +864,7 @@ block.junction.name = Węzeł
|
|||||||
block.router.name = Rozdzielacz
|
block.router.name = Rozdzielacz
|
||||||
block.distributor.name = Dystrybutor
|
block.distributor.name = Dystrybutor
|
||||||
block.sorter.name = Sortownik
|
block.sorter.name = Sortownik
|
||||||
block.inverted-sorter.name = Inverted Sorter
|
block.inverted-sorter.name = Odwrotny Sortownik
|
||||||
block.message.name = Wiadomość
|
block.message.name = Wiadomość
|
||||||
block.overflow-gate.name = Brama Przepełnieniowa
|
block.overflow-gate.name = Brama Przepełnieniowa
|
||||||
block.silicon-smelter.name = Huta Krzemu
|
block.silicon-smelter.name = Huta Krzemu
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Enviando ficheiro de pré-visualização
|
|||||||
committingchanges = Enviando mudanças
|
committingchanges = Enviando mudanças
|
||||||
done = Feito
|
done = Feito
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]No mods found!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Ativar
|
|||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Importar Mod
|
mod.import = Importar Mod
|
||||||
mod.import.github = Importar Mod da Github
|
mod.import.github = Importar Mod da GitHub
|
||||||
mod.remove.confirm = Este mod irá ser apagado.
|
mod.remove.confirm = Este mod irá ser apagado.
|
||||||
mod.author = [LIGHT_GRAY]Autor:[] {0}
|
mod.author = [LIGHT_GRAY]Autor:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
|
|||||||
@@ -1,43 +1,43 @@
|
|||||||
credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
|
credits.text = Criado por [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
|
||||||
credits = Créditos
|
credits = Créditos
|
||||||
contributors = Tradutores e contribuidores
|
contributors = Tradutores e contribuidores
|
||||||
discord = Junte-se ao Discord do Mindustry! (Lá nós falamos em inglês)
|
discord = Junte-se ao Discord do Mindustry! (Lá nós falamos em inglês)
|
||||||
link.discord.description = O discord oficial do Mindustry
|
link.discord.description = O discord oficial do Mindustry
|
||||||
link.reddit.description = The Mindustry subreddit
|
link.reddit.description = O subreddit do Mindustry
|
||||||
link.github.description = Código fonte do jogo.
|
link.github.description = Código fonte do jogo.
|
||||||
link.changelog.description = Lista de mudanças da atualização
|
link.changelog.description = Lista de mudanças da atualização
|
||||||
link.dev-builds.description = Desenvolvimentos Instáveis
|
link.dev-builds.description = Desenvolvimentos instáveis
|
||||||
link.trello.description = Trello Oficial para Updates Planejados
|
link.trello.description = Trello oficial para atualizações planejadas
|
||||||
link.itch.io.description = Pagina da Itch.io com os Downloads
|
link.itch.io.description = Página da Itch.io com os downloads
|
||||||
link.google-play.description = Listamento do google play store
|
link.google-play.description = Página da google play store
|
||||||
link.wiki.description = Wiki oficial do Mindustry
|
link.wiki.description = Wiki oficial do Mindustry
|
||||||
linkfail = Falha ao abrir o link\nO Url foi copiado
|
linkfail = Falha ao abrir o link\nO Url foi copiado
|
||||||
screenshot = Screenshot salvo para {0}
|
screenshot = Screenshot salvo para {0}
|
||||||
screenshot.invalid = Mapa grande demais, Potencialmente sem memória suficiente para captura.
|
screenshot.invalid = Mapa grande demais, Potencialmente sem memória suficiente para captura de tela.
|
||||||
gameover = O núcleo foi destruído.
|
gameover = O núcleo foi destruído.
|
||||||
gameover.pvp = O time[accent] {0}[] ganhou!
|
gameover.pvp = O time[accent] {0}[] ganhou!
|
||||||
highscore = [YELLOW]Novo recorde!
|
highscore = [YELLOW]Novo recorde!
|
||||||
copied = Copied.
|
copied = Copiado
|
||||||
load.sound = Sons
|
load.sound = Sons
|
||||||
load.map = Mapas
|
load.map = Mapas
|
||||||
load.image = Imagens
|
load.image = Imagens
|
||||||
load.content = Conteúdo
|
load.content = Conteúdo
|
||||||
load.system = Sistema
|
load.system = Sistema
|
||||||
load.mod = Mods
|
load.mod = Mods
|
||||||
schematic = Schematic
|
schematic = Esquema
|
||||||
schematic.add = Save Schematic...
|
schematic.add = Salvar Esquema...
|
||||||
schematics = Schematics
|
schematics = Esquemas
|
||||||
schematic.replace = A schematic by that name already exists. Replace it?
|
schematic.replace = Um Esquema com esse nome já existe. Substituí-lo?
|
||||||
schematic.import = Import Schematic...
|
schematic.import = Importar Esquema...
|
||||||
schematic.exportfile = Export File
|
schematic.exportfile = Exportar arquivo
|
||||||
schematic.importfile = Import File
|
schematic.importfile = Importar arquivo
|
||||||
schematic.browseworkshop = Browse Workshop
|
schematic.browseworkshop = Navegar pela Oficina
|
||||||
schematic.copy = Copy to Clipboard
|
schematic.copy = Copiar para a área de transferência
|
||||||
schematic.copy.import = Import from Clipboard
|
schematic.copy.import = Importar da área de transferência
|
||||||
schematic.shareworkshop = Share on Workshop
|
schematic.shareworkshop = Compartilhar na Oficina
|
||||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Virar o Esquema
|
||||||
schematic.saved = Schematic saved.
|
schematic.saved = Esquema salvo.
|
||||||
schematic.delete.confirm = This schematic will be utterly eradicated.
|
schematic.delete.confirm = Esse Esquema será totalmente erradicado.
|
||||||
schematic.rename = Rename Schematic
|
schematic.rename = Rename Schematic
|
||||||
schematic.info = {0}x{1}, {2} blocks
|
schematic.info = {0}x{1}, {2} blocks
|
||||||
stat.wave = Hordas derrotadas:[accent] {0}
|
stat.wave = Hordas derrotadas:[accent] {0}
|
||||||
@@ -46,9 +46,9 @@ stat.built = Construções construídas:[accent] {0}
|
|||||||
stat.destroyed = Construções destruídas:[accent] {0}
|
stat.destroyed = Construções destruídas:[accent] {0}
|
||||||
stat.deconstructed = Construções desconstruídas:[accent] {0}
|
stat.deconstructed = Construções desconstruídas:[accent] {0}
|
||||||
stat.delivered = Recursos lançados:
|
stat.delivered = Recursos lançados:
|
||||||
stat.rank = Rank Final: [accent]{0}
|
stat.rank = Classificação Final: [accent]{0}
|
||||||
launcheditems = [accent]Itens lançados
|
launcheditems = [accent]Itens lançados
|
||||||
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
|
launchinfo = [unlaunched][[LANCE] seu núcleo para obter os itens indicados em azul.
|
||||||
map.delete = Certeza que quer deletar o mapa "[accent]{0}[]"?
|
map.delete = Certeza que quer deletar o mapa "[accent]{0}[]"?
|
||||||
level.highscore = Melhor\npontuação: [accent] {0}
|
level.highscore = Melhor\npontuação: [accent] {0}
|
||||||
level.select = Seleção de Fase
|
level.select = Seleção de Fase
|
||||||
@@ -56,11 +56,11 @@ level.mode = Modo de Jogo:
|
|||||||
showagain = Não mostrar na proxima sessão
|
showagain = Não mostrar na proxima sessão
|
||||||
coreattack = < O núcleo está sobre ataque! >
|
coreattack = < O núcleo está sobre ataque! >
|
||||||
nearpoint = [[ [scarlet]SAIA DO PONTO DE SPAWN IMEDIATAMENTE[] ]\nANIQUILAÇÃO IMINENTE
|
nearpoint = [[ [scarlet]SAIA DO PONTO DE SPAWN IMEDIATAMENTE[] ]\nANIQUILAÇÃO IMINENTE
|
||||||
database = banco do núcleo
|
database = Banco de dados
|
||||||
savegame = Salvar Jogo
|
savegame = Salvar Jogo
|
||||||
loadgame = Carregar Jogo
|
loadgame = Carregar Jogo
|
||||||
joingame = Entrar no Jogo
|
joingame = Entrar no Jogo
|
||||||
customgame = Jogo Customi-/nzado
|
customgame = Jogo Customi-\nzado
|
||||||
newgame = Novo Jogo
|
newgame = Novo Jogo
|
||||||
none = <nenhum>
|
none = <nenhum>
|
||||||
minimap = Mini-Mapa
|
minimap = Mini-Mapa
|
||||||
@@ -77,63 +77,63 @@ invalid = Inválido
|
|||||||
preparingconfig = Preparando configuração
|
preparingconfig = Preparando configuração
|
||||||
preparingcontent = Preparando conteúdo
|
preparingcontent = Preparando conteúdo
|
||||||
uploadingcontent = Fazendo upload do conteúdo
|
uploadingcontent = Fazendo upload do conteúdo
|
||||||
uploadingpreviewfile = Fazendo upload do arquivo de pré visualização
|
uploadingpreviewfile = Fazendo upload do arquivo de pré-visualização
|
||||||
committingchanges = Enviando mudanças
|
committingchanges = Enviando mudanças
|
||||||
done = Feito
|
done = Feito
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Seu dispositivo não suporta essa função.
|
||||||
mods.alphainfo = Mantenha em mente que os mods estão em Alpha, e[scarlet] talvez sejam bem bugados[].\nReporte quaisquer problemas no Discord ou Github do Mindustry.
|
mods.alphainfo = Mantenha em mente que os mods estão em Alpha, e[scarlet] talvez sejam bem bugados[].\nReporte quaisquer problemas no Discord ou GitHub do Mindustry.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]Nenhum Mod encontrado!
|
||||||
mods.guide = Modding Guide
|
mods.guide = Guia de Mods
|
||||||
mods.report = Report Bug
|
mods.report = Reportar um Bug
|
||||||
mods.openfolder = Open Mod Folder
|
mods.openfolder = Abrir pasta de Mods
|
||||||
mod.enabled = [lightgray]Enabled
|
mod.enabled = [lightgray]Ativado
|
||||||
mod.disabled = [scarlet]Disabled
|
mod.disabled = [scarlet]Desativado
|
||||||
mod.disable = Disable
|
mod.disable = Desativar
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.delete.error = Incapaz de deletar o Mod. O arquivo talvez esteja em uso.
|
||||||
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
mod.missingdependencies = [scarlet]Dependências ausentes: {0}
|
||||||
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
mod.nowdisabled = [scarlet]O Mod '{0}' está com dependências ausentes :[accent] {1}\n[lightgray]Esses Mods precisam ser baixados primeiro.\nEsse Mod será desativado automaticamente.
|
||||||
mod.enable = Enable
|
mod.enable = Ativar
|
||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = O jogo irá fechar para aplicar as mudanças do Mod.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Recarregamento necessário
|
||||||
mod.import = Import Mod
|
mod.import = Importar Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Importar Mod do GitHub
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = Esse Mod será deletado.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = Esse jogo salvo foi criado antes de você atualizar ou desinstalar um mod. O jogo salvo pode se corromper. Você tem certeza que quer carregar?\n[lightgray]Mods:\n{0}
|
||||||
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
|
mod.preview.missing = Antes de publicar esse mod na Oficina, você deve adicionar uma imagem de pré-visualização.\nColoque uma imagem com o nome[accent] preview.png[] na pasta do Mod e tente novamente.
|
||||||
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
|
mod.folder.missing = Somente Mods no formato de pasta serão publicados na Oficina.\nPara converter qualquer Mod em uma pasta, Simplesmente descompacte seu arquivo numa pasta e delete a compactação antiga, então reinicie seu jogo ou recarregue os Mods.
|
||||||
about.button = Sobre
|
about.button = Sobre
|
||||||
name = Nome:
|
name = Nome:
|
||||||
noname = Escolha[accent] um nome[] primeiro.
|
noname = Escolha[accent] um nome[] primeiro.
|
||||||
filename = Nome do arquivo:
|
filename = Nome do arquivo:
|
||||||
unlocked = Novo bloco Desbloqueado!
|
unlocked = Novo bloco desbloqueado!
|
||||||
completed = [accent]Completado
|
completed = [accent]Completado
|
||||||
techtree = Árvore de tecnologia
|
techtree = Árvore de tecnologia
|
||||||
research.list = [LIGHT_GRAY]Pesquise:
|
research.list = [LIGHT_GRAY]Pesquise:
|
||||||
research = Pesquisa
|
research = Pesquisar
|
||||||
researched = [LIGHT_GRAY]{0} pesquisado.
|
researched = [LIGHT_GRAY]{0} Pesquisado.
|
||||||
players = {0} Jogadores Ativos
|
players = {0} Jogadores Ativos
|
||||||
players.single = {0} Jogador Ativo
|
players.single = {0} Jogador Ativo
|
||||||
server.closing = [accent]Fechando servidor...
|
server.closing = [accent]Fechando servidor...
|
||||||
server.kicked.kick = Voce foi expulso do servidor!
|
server.kicked.kick = Você foi expulso do servidor!
|
||||||
server.kicked.whitelist = Você não está na lista branca do servidor.
|
server.kicked.whitelist = Você não está na lista branca do servidor.
|
||||||
server.kicked.serverClose = Servidor Fechado.
|
server.kicked.serverClose = Servidor Fechado.
|
||||||
server.kicked.vote = Você foi expulso desse servidor. Adeus.
|
server.kicked.vote = Você foi expulso desse servidor. Adeus.
|
||||||
server.kicked.clientOutdated = Cliente desatualizado! Atualize seu jogo!
|
server.kicked.clientOutdated = Cliente desatualizado! Atualize seu jogo!
|
||||||
server.kicked.serverOutdated = Servidor desatualiado! Peça ao dono para atualizar!
|
server.kicked.serverOutdated = Servidor desatualizado! Peça ao dono para atualizar!
|
||||||
server.kicked.banned = Você foi banido do servidor.
|
server.kicked.banned = Você foi banido do servidor.
|
||||||
server.kicked.typeMismatch = Este servidor não é compatível com a sua versão.
|
server.kicked.typeMismatch = Este servidor não é compatível com a sua versão.
|
||||||
server.kicked.playerLimit = Este servidor está cheio. Espere por uma vaga.
|
server.kicked.playerLimit = Este servidor está cheio. Espere por uma vaga.
|
||||||
server.kicked.recentKick = Voce foi expulso recentemente.\nEspere para conectar de novo.
|
server.kicked.recentKick = Voce foi expulso recentemente.\nEspere para se conectar de novo.
|
||||||
server.kicked.nameInUse = Este nome já está sendo usado\nneste servidor.
|
server.kicked.nameInUse = Este nome já está sendo usado\nneste servidor.
|
||||||
server.kicked.nameEmpty = Você deve ter pelo menos uma letra ou número no nome.
|
server.kicked.nameEmpty = Você deve ter pelo menos uma letra ou número no nome.
|
||||||
server.kicked.idInUse = Você ja está neste servidor! Conectar com duas contas não é permitido.
|
server.kicked.idInUse = Você ja está neste servidor! Conectar com duas contas não é permitido.
|
||||||
server.kicked.customClient = Este servidor não suporta versões customizadas. Baixe a versão original.
|
server.kicked.customClient = Este servidor não suporta versões customizadas. Baixe a versão original.
|
||||||
server.kicked.gameover = Fim de jogo!
|
server.kicked.gameover = Fim de jogo!
|
||||||
server.versions = Sua versão:[accent] {0}[]\nVersão do servidor:[accent] {1}[]
|
server.versions = Sua versão:[accent] {0}[]\nVersão do servidor:[accent] {1}[]
|
||||||
host.info = The [accent]Hospedar[]Botão Hospeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [LIGHT_GRAY]Wi-fi Ou Internet local[] Pode ver este servidor na lista de servidores.\n\nSe voce quer poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é requerido.\n\n[LIGHT_GRAY]Note: Se alguem esta com problemas em conectar no seu servidor lan, Tenha certeza que deixou mindustry Acessar sua internet local nas configurações de firewall
|
host.info = The [accent]Hospedar[]Botão Hospeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [LIGHT_GRAY]Wi-fi Ou Internet local[] Pode ver este servidor na lista de servidores.\n\nSe voce quer poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é requerido.\n\n[LIGHT_GRAY]Note: Se alguém esta com problemas em conectar no seu servidor lan, Tenha certeza que deixou mindustry Acessar sua internet local nas configurações de firewall
|
||||||
join.info = Aqui, você pode entar em um [accent]IP de servidor[] para conectar, ou descobrir [accent]servidores[] da rede local.\nAmbos os servidores LAN e WAN são suportados.\n\n[LIGHT_GRAY]Note: Não há uma lista de servidores automáticos; Se você quer conectar ao IP de alguém, você precisa pedir o IP ao anfitrião.
|
join.info = Aqui, você pode entar em um [accent]IP de servidor[] para conectar, ou descobrir [accent]servidores[] da rede local.\nAmbos os servidores LAN e WAN são suportados.\n\n[LIGHT_GRAY]Note: Não há uma lista de servidores automáticos; Se você quer conectar ao IP de alguém, você precisa pedir o IP ao anfitrião.
|
||||||
hostserver = Hospedar servidor
|
hostserver = Hospedar servidor
|
||||||
invitefriends = Convidar amigos
|
invitefriends = Convidar amigos
|
||||||
@@ -201,8 +201,8 @@ save.newslot = Nome do salvamento:
|
|||||||
save.rename = Renomear
|
save.rename = Renomear
|
||||||
save.rename.text = Novo jogo:
|
save.rename.text = Novo jogo:
|
||||||
selectslot = Selecione um lugar para salvar.
|
selectslot = Selecione um lugar para salvar.
|
||||||
slot = [accent]Slot {0}
|
slot = [accent]Conexões {0}
|
||||||
editmessage = Edit Message
|
editmessage = Editar Mensagem
|
||||||
save.corrupted = [accent]Arquivo corrompido ou inválido!
|
save.corrupted = [accent]Arquivo corrompido ou inválido!
|
||||||
empty = <vazio>
|
empty = <vazio>
|
||||||
on = Ligado
|
on = Ligado
|
||||||
@@ -216,8 +216,8 @@ save.playtime = Tempo De Jogo: {0}
|
|||||||
warning = Aviso.
|
warning = Aviso.
|
||||||
confirm = Confirmar
|
confirm = Confirmar
|
||||||
delete = Excluir
|
delete = Excluir
|
||||||
view.workshop = Ver na oficina
|
view.workshop = Ver na Oficina
|
||||||
workshop.listing = Edit Workshop Listing
|
workshop.listing = Editar a lista da Oficina
|
||||||
ok = OK
|
ok = OK
|
||||||
open = Abrir
|
open = Abrir
|
||||||
customize = Customizar
|
customize = Customizar
|
||||||
@@ -235,12 +235,12 @@ classic.export.text = [accent]Mindustry[] acabou de ter uma grande atualização
|
|||||||
quit.confirm = Você tem certeza que quer sair?
|
quit.confirm = Você tem certeza que quer sair?
|
||||||
quit.confirm.tutorial = Você tem certeza você sabe o que você esta fazendo?\nO tutorial pode ser refeito nas [accent] Configurações->Jogo->Refazer Tutorial.[]
|
quit.confirm.tutorial = Você tem certeza você sabe o que você esta fazendo?\nO tutorial pode ser refeito nas [accent] Configurações->Jogo->Refazer Tutorial.[]
|
||||||
loading = [accent]Carregando...
|
loading = [accent]Carregando...
|
||||||
reloading = [accent]Reloading Mods...
|
reloading = [accent]Recarregando Mods...
|
||||||
saving = [accent]Salvando...
|
saving = [accent]Salvando...
|
||||||
cancelbuilding = [accent][[{0}][] to clear plan
|
cancelbuilding = [accent][[{0}][] para cancelar a construção
|
||||||
selectschematic = [accent][[{0}][] to select+copy
|
selectschematic = [accent][[{0}][] para selecionar+copiar
|
||||||
pausebuilding = [accent][[{0}][] to pause building
|
pausebuilding = [accent][[{0}][] para parar a construção
|
||||||
resumebuilding = [scarlet][[{0}][] to resume building
|
resumebuilding = [scarlet][[{0}][] para continuar a construção
|
||||||
wave = [accent]Horda {0}
|
wave = [accent]Horda {0}
|
||||||
wave.waiting = Horda em {0}
|
wave.waiting = Horda em {0}
|
||||||
wave.waveInProgress = [LIGHT_GRAY]Horda Em Progresso
|
wave.waveInProgress = [LIGHT_GRAY]Horda Em Progresso
|
||||||
@@ -259,18 +259,18 @@ map.nospawn = Este mapa não possui nenhum núcleo para o jogador nascer! Adicio
|
|||||||
map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione[SCARLET] Núcleos vermelhos[] no mapa no editor.
|
map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione[SCARLET] Núcleos vermelhos[] no mapa no editor.
|
||||||
map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! coloque[SCARLET] Núcleos[] vermelhos no editor.
|
map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! coloque[SCARLET] Núcleos[] vermelhos no editor.
|
||||||
map.invalid = Erro ao carregar o mapa: Arquivo de mapa invalido ou corrupto.
|
map.invalid = Erro ao carregar o mapa: Arquivo de mapa invalido ou corrupto.
|
||||||
workshop.update = Update Item
|
workshop.update = Atualizar Item
|
||||||
workshop.error = Error fetching workshop details: {0}
|
workshop.error = Erro buscando os detalhes da Oficina: {0}
|
||||||
map.publish.confirm = Você tem certeza de que quer publicar este mapa?\n\n[lightgray]Tenha certeza de que você concorda com o EULA da oficina primeiro, ou seus mapas não serão mostrados!
|
map.publish.confirm = Você tem certeza de que quer publicar este mapa?\n\n[lightgray]Tenha certeza de que você concorda com o EULA da oficina primeiro, ou seus mapas não serão mostrados!
|
||||||
workshop.menu = Select what you would like to do with this item.
|
workshop.menu = Selecione oquê você gostaria de fazer com esse Item.
|
||||||
workshop.info = Item Info
|
workshop.info = Informação do Item
|
||||||
changelog = Changelog (optional):
|
changelog = Changelog (optional):
|
||||||
eula = EULA do Steam
|
eula = EULA da Steam
|
||||||
missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked.
|
missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked.
|
||||||
publishing = [accent]Publishing...
|
publishing = [accent]Publishing...
|
||||||
publish.confirm = Are you sure you want to publish this?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your items will not show up!
|
publish.confirm = você tem certeza de que quer publicar isso?\n\n[lightgray]Primeiramente tenha certeza de que você concorda com o EULA da Oficina, ou seus itens não irão aparecer!
|
||||||
publish.error = Error publishing item: {0}
|
publish.error = Erro publicando o Item: {0}
|
||||||
steam.error = Failed to initialize Steam services.\nError: {0}
|
steam.error = Falha em iniciar os serviços da Steam.\nError: {0}
|
||||||
editor.brush = Pincel
|
editor.brush = Pincel
|
||||||
editor.openin = Abrir no Editor
|
editor.openin = Abrir no Editor
|
||||||
editor.oregen = Geração de minério
|
editor.oregen = Geração de minério
|
||||||
@@ -283,7 +283,7 @@ editor.waves = Hordas:
|
|||||||
editor.rules = Regras:
|
editor.rules = Regras:
|
||||||
editor.generation = Geração:
|
editor.generation = Geração:
|
||||||
editor.ingame = Editar em jogo
|
editor.ingame = Editar em jogo
|
||||||
editor.publish.workshop = Publicar na oficina
|
editor.publish.workshop = Publicar na Oficina
|
||||||
editor.newmap = Novo mapa
|
editor.newmap = Novo mapa
|
||||||
workshop = Oficina
|
workshop = Oficina
|
||||||
waves.title = Hordas
|
waves.title = Hordas
|
||||||
@@ -294,7 +294,7 @@ waves.waves = Hordas(s)
|
|||||||
waves.perspawn = por spawn
|
waves.perspawn = por spawn
|
||||||
waves.to = para
|
waves.to = para
|
||||||
waves.boss = Chefe
|
waves.boss = Chefe
|
||||||
waves.preview = Pré visualizar
|
waves.preview = Pré-visualizar
|
||||||
waves.edit = Editar...
|
waves.edit = Editar...
|
||||||
waves.copy = Copiar para área de transferência
|
waves.copy = Copiar para área de transferência
|
||||||
waves.load = Carregar da área de transferência
|
waves.load = Carregar da área de transferência
|
||||||
@@ -396,13 +396,13 @@ width = Largura:
|
|||||||
height = Altura:
|
height = Altura:
|
||||||
menu = Menu
|
menu = Menu
|
||||||
play = Jogar
|
play = Jogar
|
||||||
campaign = Campa-/nnha
|
campaign = Campa-\nnha
|
||||||
load = Carregar
|
load = Carregar
|
||||||
save = Salvar
|
save = Salvar
|
||||||
fps = FPS: {0}
|
fps = FPS: {0}
|
||||||
ping = Ping: {0}ms
|
ping = Ping: {0}ms
|
||||||
language.restart = Por favor, reinicie seu jogo para a tradução tomar efeito.
|
language.restart = Por favor, reinicie seu jogo para a tradução tomar efeito.
|
||||||
settings = Configu-/nrações
|
settings = Configu-\nrações
|
||||||
tutorial = Tutorial
|
tutorial = Tutorial
|
||||||
tutorial.retake = Refazer Tutorial
|
tutorial.retake = Refazer Tutorial
|
||||||
editor = Editor
|
editor = Editor
|
||||||
@@ -411,9 +411,9 @@ abandon = Abandonar
|
|||||||
abandon.text = Esta zona e todos os seus recursos serão perdidos para o inimigo.
|
abandon.text = Esta zona e todos os seus recursos serão perdidos para o inimigo.
|
||||||
locked = Trancado
|
locked = Trancado
|
||||||
complete = [LIGHT_GRAY]Completo:
|
complete = [LIGHT_GRAY]Completo:
|
||||||
requirement.wave = Reach Wave {0} in {1}
|
requirement.wave = Alcançar a Horda {0} em {1}
|
||||||
requirement.core = Destroy Enemy Core in {0}
|
requirement.core = Destruir o núcleo inimigo em {0}
|
||||||
requirement.unlock = Unlock {0}
|
requirement.unlock = Desbloquear {0}
|
||||||
resume = Resumir Zona:\n[LIGHT_GRAY]{0}
|
resume = Resumir Zona:\n[LIGHT_GRAY]{0}
|
||||||
bestwave = [LIGHT_GRAY]Melhor: {0}
|
bestwave = [LIGHT_GRAY]Melhor: {0}
|
||||||
launch = Lançar
|
launch = Lançar
|
||||||
@@ -425,18 +425,18 @@ launch.skip.confirm = Se você pular a horda agora, você não será capaz de la
|
|||||||
uncover = Descobrir
|
uncover = Descobrir
|
||||||
configure = Configurar carregamento
|
configure = Configurar carregamento
|
||||||
bannedblocks = Blocos Banidos
|
bannedblocks = Blocos Banidos
|
||||||
addall = Add All
|
addall = Adicionar Todos
|
||||||
configure.locked = [LIGHT_GRAY]Alcançe a horda {0}\npara configurar o carregamento.
|
configure.locked = [LIGHT_GRAY]Alcançe a horda {0}\npara configurar o carregamento.
|
||||||
configure.invalid = A quantidade deve ser um número entre 0 e {0}.
|
configure.invalid = A quantidade deve ser um número entre 0 e {0}.
|
||||||
zone.unlocked = [LIGHT_GRAY]{0} Desbloqueado.
|
zone.unlocked = [LIGHT_GRAY]{0} Desbloqueado.
|
||||||
zone.requirement.complete = Horda {0} alcançada:\n{1} Requerimentos da zona alcançada.
|
zone.requirement.complete = Horda {0} alcançada:\n{1} Requerimentos da zona alcançada.
|
||||||
zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
|
zone.config.unlocked = Equipamento desbloqueado:[lightgray]\n{0}
|
||||||
zone.resources = Recursos detectados:
|
zone.resources = Recursos detectados:
|
||||||
zone.objective = [lightgray]Objetivo: [accent]{0}
|
zone.objective = [lightgray]Objetivo: [accent]{0}
|
||||||
zone.objective.survival = Sobreviver
|
zone.objective.survival = Sobreviver
|
||||||
zone.objective.attack = Destruir o núcleo inimigo
|
zone.objective.attack = Destruir o núcleo inimigo
|
||||||
add = Adicionar...
|
add = Adicionar...
|
||||||
boss.health = Saúde do chefe
|
boss.health = Vida do chefe
|
||||||
connectfail = [crimson]Falha ao entrar no servidor: [accent]{0}
|
connectfail = [crimson]Falha ao entrar no servidor: [accent]{0}
|
||||||
error.unreachable = Servidor inalcançável.
|
error.unreachable = Servidor inalcançável.
|
||||||
error.invalidaddress = Endereço inválido.
|
error.invalidaddress = Endereço inválido.
|
||||||
@@ -475,7 +475,7 @@ zone.nuclearComplex.description = Uma antiga instalação para produção e proc
|
|||||||
zone.fungalPass.description = Uma area de transição entre montanhas altas e baixas, terras cheias de esporos. Uma pequena base de reconhecimento inimiga está localizada aqui.\nDestrua-a.\nUse as unidades crawler e dagger. Destrua os dois núcleos.
|
zone.fungalPass.description = Uma area de transição entre montanhas altas e baixas, terras cheias de esporos. Uma pequena base de reconhecimento inimiga está localizada aqui.\nDestrua-a.\nUse as unidades crawler e dagger. Destrua os dois núcleos.
|
||||||
zone.impact0078.description = <insert description here>
|
zone.impact0078.description = <insert description here>
|
||||||
zone.crags.description = <insert description here>
|
zone.crags.description = <insert description here>
|
||||||
settings.language = Linguagem
|
settings.language = Idioma
|
||||||
settings.data = Dados do jogo
|
settings.data = Dados do jogo
|
||||||
settings.reset = Restaurar Padrões
|
settings.reset = Restaurar Padrões
|
||||||
settings.rebind = Religar
|
settings.rebind = Religar
|
||||||
@@ -485,7 +485,7 @@ settings.sound = Som
|
|||||||
settings.graphics = Gráficos
|
settings.graphics = Gráficos
|
||||||
settings.cleardata = Apagar dados...
|
settings.cleardata = Apagar dados...
|
||||||
settings.clear.confirm = Certeza que quer limpar a os dados?\nOque é feito não pode ser desfeito!
|
settings.clear.confirm = Certeza que quer limpar a os dados?\nOque é feito não pode ser desfeito!
|
||||||
settings.clearall.confirm = [scarlet]Aviso![]\nIsso vai limpar toda a data, Incluindo saves, mapas, Keybinds e desbloqueados.\nQuando apertar 'ok' Vai apagar toda a data e sair automaticamente.
|
settings.clearall.confirm = [scarlet]Aviso![]\nIsso vai limpar todo os arquivos, Incluindo jogos salvos, mapas, Keybinds e desbloqueados.\nQuando apertar 'ok' todos os arquivos serão apagados e o jogo irá sair automaticamente.
|
||||||
paused = Pausado
|
paused = Pausado
|
||||||
clear = Clear
|
clear = Clear
|
||||||
banned = [scarlet]Banido
|
banned = [scarlet]Banido
|
||||||
@@ -501,10 +501,10 @@ block.unknown = [LIGHT_GRAY]???
|
|||||||
blocks.powercapacity = Capacidade de Energia
|
blocks.powercapacity = Capacidade de Energia
|
||||||
blocks.powershot = Energia/tiro
|
blocks.powershot = Energia/tiro
|
||||||
blocks.damage = Dano
|
blocks.damage = Dano
|
||||||
blocks.targetsair = Mirar no ar
|
blocks.targetsair = Mira no ar
|
||||||
blocks.targetsground = Mirar no chão
|
blocks.targetsground = Mira no chão
|
||||||
blocks.itemsmoved = Velocidade de movimento
|
blocks.itemsmoved = Velocidade de movimento
|
||||||
blocks.launchtime = Tempo entre tiros
|
blocks.launchtime = Tempo entre Disparos.
|
||||||
blocks.shootrange = Alcance
|
blocks.shootrange = Alcance
|
||||||
blocks.size = Tamanho
|
blocks.size = Tamanho
|
||||||
blocks.liquidcapacity = Capacidade de Líquido
|
blocks.liquidcapacity = Capacidade de Líquido
|
||||||
@@ -519,8 +519,8 @@ blocks.repairtime = Tempo de reparo total do bloco
|
|||||||
blocks.speedincrease = Aumento de velocidade
|
blocks.speedincrease = Aumento de velocidade
|
||||||
blocks.range = Distância
|
blocks.range = Distância
|
||||||
blocks.drilltier = Furáveis
|
blocks.drilltier = Furáveis
|
||||||
blocks.drillspeed = Velocidade da broca base
|
blocks.drillspeed = Velocidade base da Broca
|
||||||
blocks.boosteffect = Efeito do Boost
|
blocks.boosteffect = Efeito do Impulso
|
||||||
blocks.maxunits = Máximo de unidades ativas
|
blocks.maxunits = Máximo de unidades ativas
|
||||||
blocks.health = Saúde
|
blocks.health = Saúde
|
||||||
blocks.buildtime = Tempo de construção
|
blocks.buildtime = Tempo de construção
|
||||||
@@ -530,8 +530,8 @@ blocks.shots = Tiros
|
|||||||
blocks.reload = Tiros por segundo
|
blocks.reload = Tiros por segundo
|
||||||
blocks.ammo = Munição
|
blocks.ammo = Munição
|
||||||
bar.drilltierreq = Broca melhor necessária.
|
bar.drilltierreq = Broca melhor necessária.
|
||||||
bar.drillspeed = Velocidade da broca: {0}/s
|
bar.drillspeed = Velocidade da Broca: {0}/s
|
||||||
bar.pumpspeed = Pump Speed: {0}/s
|
bar.pumpspeed = Velocidade da Bomna: {0}/s
|
||||||
bar.efficiency = Eficiência: {0}%
|
bar.efficiency = Eficiência: {0}%
|
||||||
bar.powerbalance = Energia: {0}
|
bar.powerbalance = Energia: {0}
|
||||||
bar.powerstored = Armazenada: {0}/{1}
|
bar.powerstored = Armazenada: {0}/{1}
|
||||||
@@ -544,7 +544,7 @@ bar.heat = Aquecimento
|
|||||||
bar.power = Poder
|
bar.power = Poder
|
||||||
bar.progress = Progresso da construção
|
bar.progress = Progresso da construção
|
||||||
bar.spawned = Unidades: {0}/{1}
|
bar.spawned = Unidades: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dano
|
bullet.damage = [stat]{0}[lightgray] Dano
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] Dano em área ~[stat] {1}[lightgray] Blocos
|
bullet.splashdamage = [stat]{0}[lightgray] Dano em área ~[stat] {1}[lightgray] Blocos
|
||||||
bullet.incendiary = [stat]Incendiário
|
bullet.incendiary = [stat]Incendiário
|
||||||
bullet.homing = [stat]Guiado
|
bullet.homing = [stat]Guiado
|
||||||
@@ -578,7 +578,7 @@ setting.landscape.name = Travar panorama
|
|||||||
setting.shadows.name = Sombras
|
setting.shadows.name = Sombras
|
||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = Automatic Block Suggestions
|
||||||
setting.linear.name = Filtragem linear
|
setting.linear.name = Filtragem linear
|
||||||
setting.hints.name = Hints
|
setting.hints.name = Dicas
|
||||||
setting.animatedwater.name = Água animada
|
setting.animatedwater.name = Água animada
|
||||||
setting.animatedshields.name = Escudos animados
|
setting.animatedshields.name = Escudos animados
|
||||||
setting.antialias.name = Filtro suavizante[LIGHT_GRAY] (reinicialização requerida)[]
|
setting.antialias.name = Filtro suavizante[LIGHT_GRAY] (reinicialização requerida)[]
|
||||||
@@ -599,10 +599,10 @@ setting.difficulty.insane = Insano
|
|||||||
setting.difficulty.name = Dificuldade
|
setting.difficulty.name = Dificuldade
|
||||||
setting.screenshake.name = Balanço da Tela
|
setting.screenshake.name = Balanço da Tela
|
||||||
setting.effects.name = Efeitos
|
setting.effects.name = Efeitos
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = Mostrar Blocos Destruídos
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = Posicionamento do localizador do Transportador
|
||||||
setting.sensitivity.name = Sensibilidade do Controle
|
setting.sensitivity.name = Sensibilidade do Controle
|
||||||
setting.saveinterval.name = Intervalo de autosalvamento
|
setting.saveinterval.name = Intervalo de Auto Salvamento
|
||||||
setting.seconds = {0} Segundos
|
setting.seconds = {0} Segundos
|
||||||
setting.fullscreen.name = Tela Cheia
|
setting.fullscreen.name = Tela Cheia
|
||||||
setting.borderlesswindow.name = Janela sem borda[LIGHT_GRAY] (Pode precisar reiniciar)
|
setting.borderlesswindow.name = Janela sem borda[LIGHT_GRAY] (Pode precisar reiniciar)
|
||||||
@@ -610,19 +610,19 @@ setting.fps.name = Mostrar FPS
|
|||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.pixelate.name = Pixelizado [LIGHT_GRAY](Pode diminuir a performace)
|
setting.pixelate.name = Pixelizado [LIGHT_GRAY](Pode diminuir a performace)
|
||||||
setting.minimap.name = Mostrar minimapa
|
setting.minimap.name = Mostrar minimapa
|
||||||
setting.position.name = Show Player Position
|
setting.position.name = Mostrar a posição do Jogador
|
||||||
setting.musicvol.name = Volume da Música
|
setting.musicvol.name = Volume da Música
|
||||||
setting.ambientvol.name = Volume do ambiente
|
setting.ambientvol.name = Volume do Ambiente
|
||||||
setting.mutemusic.name = Desligar Música
|
setting.mutemusic.name = Desligar Música
|
||||||
setting.sfxvol.name = Volume de Efeitos
|
setting.sfxvol.name = Volume de Efeitos
|
||||||
setting.mutesound.name = Desligar Som
|
setting.mutesound.name = Desligar Som
|
||||||
setting.crashreport.name = Enviar denuncias de crash anonimas
|
setting.crashreport.name = Enviar denúncias anônimas de erros
|
||||||
setting.savecreate.name = Criar salvamentos automaticamente
|
setting.savecreate.name = Criar salvamentos automaticamente
|
||||||
setting.publichost.name = Visibilidade do jogo público
|
setting.publichost.name = Visibilidade do jogo público
|
||||||
setting.chatopacity.name = Opacidade do chat
|
setting.chatopacity.name = Opacidade do chat
|
||||||
setting.lasersopacity.name = Power Laser Opacity
|
setting.lasersopacity.name = Opacidade do laser
|
||||||
setting.playerchat.name = Mostrar chat em jogo
|
setting.playerchat.name = Mostrar chat em jogo
|
||||||
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
|
public.confirm = Você quer fazer sua partida pública?\n[accent]Qualquer um será capaz de entrar na sua partida.\n[lightgray]Isso pode ser mudado depois em Configurações->Jogo->Visibilidade da partida pública.
|
||||||
public.beta = Note that beta versions of the game cannot make public lobbies.
|
public.beta = Note that beta versions of the game cannot make public lobbies.
|
||||||
uiscale.reset = A escala da IU foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] settings...
|
uiscale.reset = A escala da IU foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] settings...
|
||||||
uiscale.cancel = Cancelar e sair
|
uiscale.cancel = Cancelar e sair
|
||||||
@@ -641,10 +641,10 @@ keybind.press.axis = Pressione uma Axis ou tecla...
|
|||||||
keybind.screenshot.name = Captura do mapa
|
keybind.screenshot.name = Captura do mapa
|
||||||
keybind.move_x.name = mover_x
|
keybind.move_x.name = mover_x
|
||||||
keybind.move_y.name = mover_y
|
keybind.move_y.name = mover_y
|
||||||
keybind.schematic_select.name = Select Region
|
keybind.schematic_select.name = Selecionar região
|
||||||
keybind.schematic_menu.name = Schematic Menu
|
keybind.schematic_menu.name = Menu de Esquemas
|
||||||
keybind.schematic_flip_x.name = Flip Schematic X
|
keybind.schematic_flip_x.name = girar o Esquema X
|
||||||
keybind.schematic_flip_y.name = Flip Schematic Y
|
keybind.schematic_flip_y.name = girar o Esquema Y
|
||||||
keybind.fullscreen.name = Alterar tela cheia
|
keybind.fullscreen.name = Alterar tela cheia
|
||||||
keybind.select.name = selecionar
|
keybind.select.name = selecionar
|
||||||
keybind.diagonal_placement.name = Colocação diagonal
|
keybind.diagonal_placement.name = Colocação diagonal
|
||||||
@@ -652,18 +652,18 @@ keybind.pick.name = Pegar bloco
|
|||||||
keybind.break_block.name = Quebrar bloco
|
keybind.break_block.name = Quebrar bloco
|
||||||
keybind.deselect.name = Deselecionar
|
keybind.deselect.name = Deselecionar
|
||||||
keybind.shoot.name = Atirar
|
keybind.shoot.name = Atirar
|
||||||
keybind.zoom_hold.name = segurar_zoom
|
keybind.zoom_hold.name = segurar Zoom
|
||||||
keybind.zoom.name = Zoom
|
keybind.zoom.name = Zoom
|
||||||
keybind.menu.name = Menu
|
keybind.menu.name = Menu
|
||||||
keybind.pause.name = Pausar
|
keybind.pause.name = Pausar
|
||||||
keybind.pause_building.name = Pause/Resume Building
|
keybind.pause_building.name = Parar/Resumir a construção
|
||||||
keybind.minimap.name = Minimapa
|
keybind.minimap.name = Minimapa
|
||||||
keybind.dash.name = Correr
|
keybind.dash.name = Correr
|
||||||
keybind.chat.name = Conversa
|
keybind.chat.name = Conversa
|
||||||
keybind.player_list.name = Lista_de_jogadores
|
keybind.player_list.name = Lista_de_jogadores
|
||||||
keybind.console.name = console
|
keybind.console.name = Console
|
||||||
keybind.rotate.name = Girar
|
keybind.rotate.name = Girar
|
||||||
keybind.rotateplaced.name = Rotate Existing (Hold)
|
keybind.rotateplaced.name = Girar (Segure)
|
||||||
keybind.toggle_menus.name = Ativar menus
|
keybind.toggle_menus.name = Ativar menus
|
||||||
keybind.chat_history_prev.name = Historico do chat anterior
|
keybind.chat_history_prev.name = Historico do chat anterior
|
||||||
keybind.chat_history_next.name = Historico do proximo chat
|
keybind.chat_history_next.name = Historico do proximo chat
|
||||||
@@ -781,11 +781,11 @@ block.rock.name = Rocha
|
|||||||
block.snowrock.name = Rocha com neve
|
block.snowrock.name = Rocha com neve
|
||||||
block.snow-pine.name = Pinheiro com neve
|
block.snow-pine.name = Pinheiro com neve
|
||||||
block.shale.name = Xisto
|
block.shale.name = Xisto
|
||||||
block.shale-boulder.name = Pedra de xisto
|
block.shale-boulder.name = Pedra de Xisto
|
||||||
block.moss.name = Musgo
|
block.moss.name = Musgo
|
||||||
block.shrubs.name = Arbusto
|
block.shrubs.name = Arbusto
|
||||||
block.spore-moss.name = Musgo de esporos
|
block.spore-moss.name = Musgo de Esporos
|
||||||
block.shalerocks.name = Rohas de xisto
|
block.shalerocks.name = Rochas de Xisto
|
||||||
block.scrap-wall.name = Muro de sucata
|
block.scrap-wall.name = Muro de sucata
|
||||||
block.scrap-wall-large.name = Muro grande de sucata
|
block.scrap-wall-large.name = Muro grande de sucata
|
||||||
block.scrap-wall-huge.name = Muro enorme de sucata
|
block.scrap-wall-huge.name = Muro enorme de sucata
|
||||||
@@ -839,16 +839,16 @@ block.ignarock.name = Rocha ígnea
|
|||||||
block.hotrock.name = Rocha quente
|
block.hotrock.name = Rocha quente
|
||||||
block.magmarock.name = Rocha de magma
|
block.magmarock.name = Rocha de magma
|
||||||
block.cliffs.name = Colinas
|
block.cliffs.name = Colinas
|
||||||
block.copper-wall.name = Parede de Cobre
|
block.copper-wall.name = Muro de Cobre
|
||||||
block.copper-wall-large.name = Parede de Cobre Grande
|
block.copper-wall-large.name = Muro de Cobre Grande
|
||||||
block.titanium-wall.name = Parede de titânio
|
block.titanium-wall.name = Muro de Titânio
|
||||||
block.titanium-wall-large.name = Parede de titânio grande
|
block.titanium-wall-large.name = Muro de Titânio grande
|
||||||
block.plastanium-wall.name = Plastanium Wall
|
block.plastanium-wall.name = Muro de Plastânio Grande
|
||||||
block.plastanium-wall-large.name = Large Plastanium Wall
|
block.plastanium-wall-large.name = Muro de Plastânio Grande
|
||||||
block.phase-wall.name = Parede de fase
|
block.phase-wall.name = Muro de Fase
|
||||||
block.phase-wall-large.name = Parde de fase grande
|
block.phase-wall-large.name = Muro de Fase Grande
|
||||||
block.thorium-wall.name = Parede de tório
|
block.thorium-wall.name = Muro de Tório
|
||||||
block.thorium-wall-large.name = Parede de tório grande
|
block.thorium-wall-large.name = Muro de Tório Grande
|
||||||
block.door.name = Porta
|
block.door.name = Porta
|
||||||
block.door-large.name = Porta Grande
|
block.door-large.name = Porta Grande
|
||||||
block.duo.name = Dupla
|
block.duo.name = Dupla
|
||||||
@@ -864,7 +864,7 @@ block.junction.name = Junção
|
|||||||
block.router.name = Roteador
|
block.router.name = Roteador
|
||||||
block.distributor.name = Distribuidor
|
block.distributor.name = Distribuidor
|
||||||
block.sorter.name = Ordenador
|
block.sorter.name = Ordenador
|
||||||
block.inverted-sorter.name = Inverted Sorter
|
block.inverted-sorter.name = Ordenador Invertido
|
||||||
block.message.name = Mensagem
|
block.message.name = Mensagem
|
||||||
block.overflow-gate.name = Portão Sobrecarregado
|
block.overflow-gate.name = Portão Sobrecarregado
|
||||||
block.silicon-smelter.name = Fundidora de silicio
|
block.silicon-smelter.name = Fundidora de silicio
|
||||||
@@ -917,7 +917,7 @@ block.pyratite-mixer.name = Misturador de Piratita
|
|||||||
block.blast-mixer.name = Misturador de Explosão
|
block.blast-mixer.name = Misturador de Explosão
|
||||||
block.solar-panel.name = Painel Solar
|
block.solar-panel.name = Painel Solar
|
||||||
block.solar-panel-large.name = Painel Solar Grande
|
block.solar-panel-large.name = Painel Solar Grande
|
||||||
block.oil-extractor.name = Extrator de petróleo
|
block.oil-extractor.name = Extrator de Petróleo
|
||||||
block.command-center.name = Centro de comando
|
block.command-center.name = Centro de comando
|
||||||
block.draug-factory.name = Fábrica de drone de mineração Draug
|
block.draug-factory.name = Fábrica de drone de mineração Draug
|
||||||
block.spirit-factory.name = Fábrica de drone de reparo Spirit
|
block.spirit-factory.name = Fábrica de drone de reparo Spirit
|
||||||
@@ -960,12 +960,12 @@ block.container.name = Contâiner
|
|||||||
block.launch-pad.name = Plataforma de lançamento
|
block.launch-pad.name = Plataforma de lançamento
|
||||||
block.launch-pad-large.name = Plataforma de lançamento grande
|
block.launch-pad-large.name = Plataforma de lançamento grande
|
||||||
team.blue.name = Azul
|
team.blue.name = Azul
|
||||||
team.crux.name = Vermelho
|
team.crux.name = Vermelha
|
||||||
team.sharded.name = orange
|
team.sharded.name = Estilhaçada
|
||||||
team.orange.name = Laranja
|
team.orange.name = Laranja
|
||||||
team.derelict.name = derelict
|
team.derelict.name = Abandonada
|
||||||
team.green.name = Verde
|
team.green.name = Verde
|
||||||
team.purple.name = Roxo
|
team.purple.name = Roxa
|
||||||
unit.spirit.name = Drone Spirit
|
unit.spirit.name = Drone Spirit
|
||||||
unit.draug.name = Drone minerador Draug
|
unit.draug.name = Drone minerador Draug
|
||||||
unit.phantom.name = Drone Phantom
|
unit.phantom.name = Drone Phantom
|
||||||
@@ -975,7 +975,7 @@ unit.titan.name = Titan
|
|||||||
unit.ghoul.name = Bombardeiro Ghoul
|
unit.ghoul.name = Bombardeiro Ghoul
|
||||||
unit.wraith.name = Lutador Wraith
|
unit.wraith.name = Lutador Wraith
|
||||||
unit.fortress.name = Fortaleza
|
unit.fortress.name = Fortaleza
|
||||||
unit.revenant.name = Fantasma
|
unit.revenant.name = Revenã
|
||||||
unit.eruptor.name = Eruptor
|
unit.eruptor.name = Eruptor
|
||||||
unit.chaos-array.name = Arraia do caos
|
unit.chaos-array.name = Arraia do caos
|
||||||
unit.eradicator.name = Erradicador
|
unit.eradicator.name = Erradicador
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Выгрузка файла предпросмотра
|
|||||||
committingchanges = Внесение изменений
|
committingchanges = Внесение изменений
|
||||||
done = Готово
|
done = Готово
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Имейте в виду, что модификации находятся в альфа-версии и могут содержать много ошибок[]. Докладывайте о любых проблемах, которые Вы найдете в Mindustry Github или Discord.
|
mods.alphainfo = Имейте в виду, что модификации находятся в альфа-версии и могут содержать много ошибок[]. Докладывайте о любых проблемах, которые Вы найдете в Mindustry GitHub или Discord.
|
||||||
mods.alpha = [accent](Альфа)
|
mods.alpha = [accent](Альфа)
|
||||||
mods = Модификации
|
mods = Модификации
|
||||||
mods.none = [LIGHT_GRAY]Модификации не найдены!
|
mods.none = [LIGHT_GRAY]Модификации не найдены!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Включить
|
|||||||
mod.requiresrestart = Теперь игра закроется, чтобы применить изменения в модификациях.
|
mod.requiresrestart = Теперь игра закроется, чтобы применить изменения в модификациях.
|
||||||
mod.reloadrequired = [scarlet]Необходим перезапуск
|
mod.reloadrequired = [scarlet]Необходим перезапуск
|
||||||
mod.import = Импортировать модификацию
|
mod.import = Импортировать модификацию
|
||||||
mod.import.github = Импортировать модификацию с Github
|
mod.import.github = Импортировать модификацию с GitHub
|
||||||
mod.remove.confirm = Этот мод будет удалён.
|
mod.remove.confirm = Этот мод будет удалён.
|
||||||
mod.author = [LIGHT_GRAY]Автор:[] {0}
|
mod.author = [LIGHT_GRAY]Автор:[] {0}
|
||||||
mod.missing = Это сохранение содержит модификацию, которое Вы недавно обновили или оно больше не установлено. Может случиться повреждение сохранения. Вы уверены, что хотите загрузить его?\n[lightgray]Модификации:\n{0}
|
mod.missing = Это сохранение содержит модификацию, которое Вы недавно обновили или оно больше не установлено. Может случиться повреждение сохранения. Вы уверены, что хотите загрузить его?\n[lightgray]Модификации:\n{0}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Laddar upp förhandsgranskningsfil
|
|||||||
committingchanges = Comitting Changes
|
committingchanges = Comitting Changes
|
||||||
done = Klar
|
done = Klar
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]No mods found!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Enable
|
|||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Import Mod
|
mod.import = Import Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Import GitHub Mod
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = This mod will be deleted.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Uploading Preview File
|
|||||||
committingchanges = Comitting Changes
|
committingchanges = Comitting Changes
|
||||||
done = Done
|
done = Done
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord.
|
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Mods
|
mods = Mods
|
||||||
mods.none = [LIGHT_GRAY]No mods found!
|
mods.none = [LIGHT_GRAY]No mods found!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Enable
|
|||||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||||
mod.reloadrequired = [scarlet]Reload Required
|
mod.reloadrequired = [scarlet]Reload Required
|
||||||
mod.import = Import Mod
|
mod.import = Import Mod
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Import GitHub Mod
|
||||||
mod.remove.confirm = This mod will be deleted.
|
mod.remove.confirm = This mod will be deleted.
|
||||||
mod.author = [LIGHT_GRAY]Author:[] {0}
|
mod.author = [LIGHT_GRAY]Author:[] {0}
|
||||||
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ uploadingpreviewfile = Önizleme Dosyası Yükleniyor
|
|||||||
committingchanges = Değişiklikler Uygulanıyor
|
committingchanges = Değişiklikler Uygulanıyor
|
||||||
done = Bitti
|
done = Bitti
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Your device does not support this feature.
|
||||||
mods.alphainfo = Modların alfa aşamasında olduğunu ve [scarlet]oldukça hatalı olabileceklerini[] unutmayın.\nBulduğunuz sorunları Mindustry Github'ı veya Discord'una bildirin.
|
mods.alphainfo = Modların alfa aşamasında olduğunu ve [scarlet]oldukça hatalı olabileceklerini[] unutmayın.\nBulduğunuz sorunları Mindustry GitHub'ı veya Discord'una bildirin.
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = Modlar
|
mods = Modlar
|
||||||
mods.none = [LIGHT_GRAY]Hiç mod bulunamadı!
|
mods.none = [LIGHT_GRAY]Hiç mod bulunamadı!
|
||||||
@@ -98,7 +98,7 @@ mod.enable = Etkinleştir
|
|||||||
mod.requiresrestart = Oyun mod değişikliklerini uygulamak için kapatılacak.
|
mod.requiresrestart = Oyun mod değişikliklerini uygulamak için kapatılacak.
|
||||||
mod.reloadrequired = [scarlet]Yeniden Yükleme Gerekli
|
mod.reloadrequired = [scarlet]Yeniden Yükleme Gerekli
|
||||||
mod.import = Mod İçeri Aktar
|
mod.import = Mod İçeri Aktar
|
||||||
mod.import.github = Github Modu İçeri Aktar
|
mod.import.github = GitHub Modu İçeri Aktar
|
||||||
mod.remove.confirm = Bu mod silinecek.
|
mod.remove.confirm = Bu mod silinecek.
|
||||||
mod.author = [LIGHT_GRAY]Yayıncı:[] {0}
|
mod.author = [LIGHT_GRAY]Yayıncı:[] {0}
|
||||||
mod.missing = Bu kayıt yakın zamanda güncellediğiniz ya da artık yüklü olmayan modlar içermekte. Kayıt bozulmaları yaşanabilir. Kaydı yüklemek istediğinizden emin misiniz?\n[lightgray]Modlar:\n{0}
|
mod.missing = Bu kayıt yakın zamanda güncellediğiniz ya da artık yüklü olmayan modlar içermekte. Kayıt bozulmaları yaşanabilir. Kaydı yüklemek istediğinizden emin misiniz?\n[lightgray]Modlar:\n{0}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ credits = Творці
|
|||||||
contributors = Перекладачі та помічники
|
contributors = Перекладачі та помічники
|
||||||
discord = Приєднуйтесь до Mindustry Discord!
|
discord = Приєднуйтесь до Mindustry Discord!
|
||||||
link.discord.description = Офіційний Discord сервер Mindustry
|
link.discord.description = Офіційний Discord сервер Mindustry
|
||||||
link.reddit.description = Гілка Mindustry на Reddit
|
link.reddit.description = Спільнота Mindustry на Reddit
|
||||||
link.github.description = Вихідний код гри
|
link.github.description = Вихідний код гри
|
||||||
link.changelog.description = Список змін
|
link.changelog.description = Список змін
|
||||||
link.dev-builds.description = Нестабільні версії
|
link.dev-builds.description = Нестабільні версії
|
||||||
@@ -25,17 +25,17 @@ load.content = Зміст
|
|||||||
load.system = Система
|
load.system = Система
|
||||||
load.mod = Модифікації
|
load.mod = Модифікації
|
||||||
schematic = Схема
|
schematic = Схема
|
||||||
schematic.add = Зберегти схему...
|
schematic.add = Зберегти схему…
|
||||||
schematics = Схеми
|
schematics = Схеми
|
||||||
schematic.replace = Схема з такою ж назвою вже існує. Замінити її?
|
schematic.replace = Схема з такою ж назвою вже існує. Замінити її?
|
||||||
schematic.import = Імпортувати схему...
|
schematic.import = Імпортувати схему…
|
||||||
schematic.exportfile = Експортувати файл
|
schematic.exportfile = Експортувати файл
|
||||||
schematic.importfile = Імпортувати файл
|
schematic.importfile = Імпортувати файл
|
||||||
schematic.browseworkshop = Переглянути в Майстерні
|
schematic.browseworkshop = Переглянути в Майстерні
|
||||||
schematic.copy = Копіювати в буфер обміну
|
schematic.copy = Копіювати в буфер обміну
|
||||||
schematic.copy.import = Імпортувати з клавіатури
|
schematic.copy.import = Імпортувати з клавіатури
|
||||||
schematic.shareworkshop = Поширити в Майстерні
|
schematic.shareworkshop = Поширити в Майстерні
|
||||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Відобразити схему
|
||||||
schematic.saved = Схема збережена.
|
schematic.saved = Схема збережена.
|
||||||
schematic.delete.confirm = Ця схема буде повністю випалена.
|
schematic.delete.confirm = Ця схема буде повністю випалена.
|
||||||
schematic.rename = Перейменувати схему.
|
schematic.rename = Перейменувати схему.
|
||||||
@@ -48,7 +48,7 @@ stat.deconstructed = Будівель декоструйовано[accent] {0}
|
|||||||
stat.delivered = Ресурсів запущено:
|
stat.delivered = Ресурсів запущено:
|
||||||
stat.rank = Фінальний рахунок: [accent]{0}
|
stat.rank = Фінальний рахунок: [accent]{0}
|
||||||
launcheditems = [accent]Запущені предмети
|
launcheditems = [accent]Запущені предмети
|
||||||
launchinfo = [unlaunched][[LAUNCH] ваше ядро для отримання предметів позначено синім кольором.
|
launchinfo = [unlaunched]Натисніть на кнопку «[[ЗАПУСК]», щоб ваше ядро отримало предмети, які виділені синім кольором.
|
||||||
map.delete = Ви впевнені, що хочете видалити мапу «[accent]{0}[]»?
|
map.delete = Ви впевнені, що хочете видалити мапу «[accent]{0}[]»?
|
||||||
level.highscore = Рекорд: [accent]{0}
|
level.highscore = Рекорд: [accent]{0}
|
||||||
level.select = Вибір мапи
|
level.select = Вибір мапи
|
||||||
@@ -80,25 +80,25 @@ uploadingcontent = Вивантаження вмісту
|
|||||||
uploadingpreviewfile = Вивантаження файлу передперегляду
|
uploadingpreviewfile = Вивантаження файлу передперегляду
|
||||||
committingchanges = Здійснення змін
|
committingchanges = Здійснення змін
|
||||||
done = Зроблено
|
done = Зроблено
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = Ваш пристрій не підтримує цю особливість.
|
||||||
mods.alphainfo = Майте на увазі, що модифікації знаходяться в альфі, і [scarlet]можуть бути дуже глючними[].\nПовідомте про будь-які проблеми, які ви знайдете до Mindustry Github або Discord.
|
mods.alphainfo = Майте на увазі, що модифікації знаходяться в альфі, і [scarlet]можуть бути дуже глючними[].\nПовідомте про будь-які проблеми, які ви знайдете до Mindustry GitHub або Discord.
|
||||||
mods.alpha = [scarlet](Альфа)
|
mods.alpha = [scarlet](Альфа)
|
||||||
mods = Модифікації
|
mods = Модифікації
|
||||||
mods.none = [LIGHT_GRAY]Модифікацій не знайдено!
|
mods.none = [LIGHT_GRAY]Модифікацій не знайдено!
|
||||||
mods.guide = Посібник зі створення модифицій
|
mods.guide = Посібник зі створення модифицій
|
||||||
mods.report = Повідомити про ваду
|
mods.report = Повідомити про ваду
|
||||||
mods.openfolder = Open Mod Folder
|
mods.openfolder = Відкрити теку модифікацій
|
||||||
mod.enabled = [lightgray]Увімкнено
|
mod.enabled = [lightgray]Увімкнено
|
||||||
mod.disabled = [scarlet]Вимкнено
|
mod.disabled = [scarlet]Вимкнено
|
||||||
mod.disable = Вимкнути
|
mod.disable = Вимкнути
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.delete.error = Неможливо видалити модифікацію. Файл, можливо, використовується.
|
||||||
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
mod.missingdependencies = [scarlet]Відсутні залежності: {0}
|
||||||
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
mod.nowdisabled = [scarlet]Модифікації '{0}' не вистачає залежностей:[accent] {1}\n[lightgray]Ці модифікації потрібно завантажити спочатку.\nЦя модифікація буду автоматично вимкнена.
|
||||||
mod.enable = Увімкнути
|
mod.enable = Увімкнути
|
||||||
mod.requiresrestart = А тепер гра закриється, щоб застосувати зміни модифікацій.
|
mod.requiresrestart = А тепер гра закриється, щоб застосувати зміни модифікацій.
|
||||||
mod.reloadrequired = [scarlet]Потрібно перезавантаження
|
mod.reloadrequired = [scarlet]Потрібно перезавантаження
|
||||||
mod.import = Імпортувати модифікацію
|
mod.import = Імпортувати модифікацію
|
||||||
mod.import.github = Import Github Mod
|
mod.import.github = Імпортувати модификацію з Ґітгаб
|
||||||
mod.remove.confirm = Цю модифікацію буде видалено.
|
mod.remove.confirm = Цю модифікацію буде видалено.
|
||||||
mod.author = [LIGHT_GRAY]Автор:[] {0}
|
mod.author = [LIGHT_GRAY]Автор:[] {0}
|
||||||
mod.missing = Це збереження містить модифікації, які ви нещодавно оновили або більше не встановлювали. Збереження може зіпсуватися. Ви впевнені, що хочете завантажити його?\n[lightgray]Модифікації:\n{0}
|
mod.missing = Це збереження містить модифікації, які ви нещодавно оновили або більше не встановлювали. Збереження може зіпсуватися. Ви впевнені, що хочете завантажити його?\n[lightgray]Модифікації:\n{0}
|
||||||
@@ -229,13 +229,13 @@ data.export = Експортувати дані
|
|||||||
data.import = Импортувати дані
|
data.import = Импортувати дані
|
||||||
data.exported = Дані імпортовано.
|
data.exported = Дані імпортовано.
|
||||||
data.invalid = Це не дійсні ігрові дані.
|
data.invalid = Це не дійсні ігрові дані.
|
||||||
data.import.confirm = Імпорт зовнішніх даних видалить[scarlet] ВСІ[] ваші поточні ігрові дані.\n[accent]Це неможливо скасувати![]\n\nЩойно дані імпортуються, гра негайно закриється.
|
data.import.confirm = Імпорт зовнішніх даних перезапише[scarlet] ВСІ[] ваші поточні ігрові дані.\n[accent]Це неможливо скасувати![]\n\nЩойно дані імпортуються, гра негайно закриється.
|
||||||
classic.export = Експортувати класичні дані
|
classic.export = Експортувати класичні дані
|
||||||
classic.export.text = Класичне (версія 3.5 збірка 40) збереження або мапа були знайдені. Ви хочете експортувати ці дані в домашню теку телефону, для використання у застосунку Mindustry Classic?
|
classic.export.text = Класичне (версія 3.5 збірка 40) збереження або мапа були знайдені. Ви хочете експортувати ці дані в домашню теку телефону, для використання у застосунку Mindustry Classic?
|
||||||
quit.confirm = Ви впевнені, що хочете вийти?
|
quit.confirm = Ви впевнені, що хочете вийти?
|
||||||
quit.confirm.tutorial = Ви впевнені, що хочете вийти з навчання?
|
quit.confirm.tutorial = Ви впевнені, що хочете вийти з навчання?
|
||||||
loading = [accent]Завантаження…
|
loading = [accent]Завантаження…
|
||||||
reloading = [accent]Reloading Mods...
|
reloading = [accent]Перезавантаження модифікацій…
|
||||||
saving = [accent]Збереження…
|
saving = [accent]Збереження…
|
||||||
cancelbuilding = [accent][[{0}][] to clear plan
|
cancelbuilding = [accent][[{0}][] to clear plan
|
||||||
selectschematic = [accent][[{0}][] to select+copy
|
selectschematic = [accent][[{0}][] to select+copy
|
||||||
@@ -259,18 +259,18 @@ map.nospawn = Ця мапа не має жодного ядра для появ
|
|||||||
map.nospawn.pvp = У цієї мапи немає ворожих ядер, в яких гравець може з’явитися! Додайте [SCARLET]не помаранчеве[] ядро до цієї мапи в редакторі.
|
map.nospawn.pvp = У цієї мапи немає ворожих ядер, в яких гравець може з’явитися! Додайте [SCARLET]не помаранчеве[] ядро до цієї мапи в редакторі.
|
||||||
map.nospawn.attack = У цієї мапи немає ворожих ядер, в яких гравець може з’явитися! Додайте [SCARLET]червоне[] ядро до цієї мапи в редакторі.
|
map.nospawn.attack = У цієї мапи немає ворожих ядер, в яких гравець може з’явитися! Додайте [SCARLET]червоне[] ядро до цієї мапи в редакторі.
|
||||||
map.invalid = Помилка завантаження мапи: пошкоджений або невірний файл мапи.
|
map.invalid = Помилка завантаження мапи: пошкоджений або невірний файл мапи.
|
||||||
workshop.update = Update Item
|
workshop.update = Оновити предмет
|
||||||
workshop.error = Error fetching workshop details: {0}
|
workshop.error = Помилка при отриманні інформації з Майстерні: {0}
|
||||||
map.publish.confirm = Ви дійсно хочете опублікувати цю мапу?\n\n[lightgray]Переконайтеся, що спершу ви згодні з Ліцензійною угодою Steam, або ваші мапи не з’являться!
|
map.publish.confirm = Ви дійсно хочете опублікувати цю мапу?\n\n[lightgray]Переконайтеся, що спершу ви згодні з Ліцензійною угодою Steam, або ваші мапи не з’являться!
|
||||||
workshop.menu = Select what you would like to do with this item.
|
workshop.menu = Виберіть, що ви хочете зробити з цим предметом.
|
||||||
workshop.info = Item Info
|
workshop.info = Інформація про предмет
|
||||||
changelog = Changelog (optional):
|
changelog = Журнал змін (за бажанням):
|
||||||
eula = Ліцензійна угода
|
eula = Ліцензійна угода
|
||||||
missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked.
|
missing = Цей предмет було видалено або переміщено.\n[lightgray]Список Майстерні тепер автоматично від’єднано.
|
||||||
publishing = [accent]Publishing...
|
publishing = [accent]Публікація…
|
||||||
publish.confirm = Are you sure you want to publish this?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your items will not show up!
|
publish.confirm = Ви дійсно хочете опублікувати це?\n\n[lightgray]Переконайтеся, що ви спочатку погоджуєтеся з EULA Майстерні, або ваші предмети не з’являться!
|
||||||
publish.error = Error publishing item: {0}
|
publish.error = Сталася помилка при публікації предмета: {0}
|
||||||
steam.error = Failed to initialize Steam services.\nError: {0}
|
steam.error = Не вдалося ініціалізувати сервіси Steam.\nПомилка: {0}
|
||||||
editor.brush = Пензлик
|
editor.brush = Пензлик
|
||||||
editor.openin = Відкрити в редакторі
|
editor.openin = Відкрити в редакторі
|
||||||
editor.oregen = Генерація руд
|
editor.oregen = Генерація руд
|
||||||
@@ -302,7 +302,7 @@ waves.invalid = Недійсні хвилі у буфері обміну.
|
|||||||
waves.copied = Хвилі скопійовані.
|
waves.copied = Хвилі скопійовані.
|
||||||
waves.none = Вороги не були встановлені.\nЗазначимо, що пусті хвилі будуть автоматично замінені звичайною хвилею.
|
waves.none = Вороги не були встановлені.\nЗазначимо, що пусті хвилі будуть автоматично замінені звичайною хвилею.
|
||||||
editor.default = [lightgray]<За замовчуванням>
|
editor.default = [lightgray]<За замовчуванням>
|
||||||
details = Деталі...
|
details = Деталі…
|
||||||
edit = Редагувати…
|
edit = Редагувати…
|
||||||
editor.name = Назва:
|
editor.name = Назва:
|
||||||
editor.spawn = Створити бойову одиницю
|
editor.spawn = Створити бойову одиницю
|
||||||
@@ -509,7 +509,7 @@ blocks.shootrange = Діапазон дії
|
|||||||
blocks.size = Розмір
|
blocks.size = Розмір
|
||||||
blocks.liquidcapacity = Місткість рідини
|
blocks.liquidcapacity = Місткість рідини
|
||||||
blocks.powerrange = Діапазон передачі енергії
|
blocks.powerrange = Діапазон передачі енергії
|
||||||
blocks.powerconnections = Max Connections
|
blocks.powerconnections = Максимальна кількість з’єднань
|
||||||
blocks.poweruse = Енергії використовує
|
blocks.poweruse = Енергії використовує
|
||||||
blocks.powerdamage = Енергія/урон
|
blocks.powerdamage = Енергія/урон
|
||||||
blocks.itemcapacity = Місткість предметів
|
blocks.itemcapacity = Місткість предметів
|
||||||
@@ -523,17 +523,17 @@ blocks.drillspeed = Базова швидкість буріння
|
|||||||
blocks.boosteffect = Прискорювальний ефект
|
blocks.boosteffect = Прискорювальний ефект
|
||||||
blocks.maxunits = Максимальна кількість активних одиниць
|
blocks.maxunits = Максимальна кількість активних одиниць
|
||||||
blocks.health = Здоров’я
|
blocks.health = Здоров’я
|
||||||
blocks.buildtime = Час будівництва
|
blocks.buildtime = Час будування
|
||||||
blocks.buildcost = Вартість будування
|
blocks.buildcost = Вартість будування
|
||||||
blocks.inaccuracy = Розкид
|
blocks.inaccuracy = Розкид
|
||||||
blocks.shots = Постріли
|
blocks.shots = Постріли
|
||||||
blocks.reload = Постріли/секунду
|
blocks.reload = Постріли/секунду
|
||||||
blocks.ammo = Боєприпаси
|
blocks.ammo = Боєприпаси
|
||||||
bar.drilltierreq = Потребується кращий бур
|
bar.drilltierreq = Потребується кращий бур
|
||||||
bar.drillspeed = Швидкість буріння: {0}/с
|
bar.drillspeed = Швидкість буріння: {0} за с.
|
||||||
bar.pumpspeed = Pump Speed: {0}/s
|
bar.pumpspeed = Швидкість викачування: {0} за с.
|
||||||
bar.efficiency = Ефективність: {0}%
|
bar.efficiency = Ефективність: {0}%
|
||||||
bar.powerbalance = Енергія: {0}/с
|
bar.powerbalance = Енергія: {0} за с.
|
||||||
bar.powerstored = Зберігає: {0}/{1}
|
bar.powerstored = Зберігає: {0}/{1}
|
||||||
bar.poweramount = Енергія: {0}
|
bar.poweramount = Енергія: {0}
|
||||||
bar.poweroutput = Вихідна енергія: {0}
|
bar.poweroutput = Вихідна енергія: {0}
|
||||||
@@ -542,7 +542,7 @@ bar.capacity = Місткість: {0}
|
|||||||
bar.liquid = Рідина
|
bar.liquid = Рідина
|
||||||
bar.heat = Нагрівання
|
bar.heat = Нагрівання
|
||||||
bar.power = Енергія
|
bar.power = Енергія
|
||||||
bar.progress = Хід будівництва
|
bar.progress = Хід будування
|
||||||
bar.spawned = Бойов. од.: {0}/{1}
|
bar.spawned = Бойов. од.: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] шкода
|
bullet.damage = [stat]{0}[lightgray] шкода
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] шкода по ділянці ~[stat] {1}[lightgray] блок.
|
bullet.splashdamage = [stat]{0}[lightgray] шкода по ділянці ~[stat] {1}[lightgray] блок.
|
||||||
@@ -556,27 +556,27 @@ bullet.tarred = [stat]дьогтьовий
|
|||||||
bullet.multiplier = [stat]{0}[lightgray]x патронів
|
bullet.multiplier = [stat]{0}[lightgray]x патронів
|
||||||
bullet.reload = [stat]{0}[lightgray]x швидкість перезаряджання
|
bullet.reload = [stat]{0}[lightgray]x швидкість перезаряджання
|
||||||
unit.blocks = блоки
|
unit.blocks = блоки
|
||||||
unit.powersecond = одиниць енергії/секунду
|
unit.powersecond = одиниць енергії за секунду
|
||||||
unit.liquidsecond = рідких одиниць/секунду
|
unit.liquidsecond = одиниць рідини за секунду
|
||||||
unit.itemssecond = предметів/секунду
|
unit.itemssecond = предметів за секунду
|
||||||
unit.liquidunits = рідинних одиниць
|
unit.liquidunits = одиниць рідини
|
||||||
unit.powerunits = енергетичних одиниць
|
unit.powerunits = одиниць енергії
|
||||||
unit.degrees = град.
|
unit.degrees = град.
|
||||||
unit.seconds = сек.
|
unit.seconds = с
|
||||||
unit.persecond = /сек
|
unit.persecond = за секунду
|
||||||
unit.timesspeed = x швидкість
|
unit.timesspeed = x швидкість
|
||||||
unit.percent = %
|
unit.percent = %
|
||||||
unit.items = предм.
|
unit.items = предм.
|
||||||
category.general = Загальні
|
category.general = Загальне
|
||||||
category.power = Енергетичні
|
category.power = Енергія
|
||||||
category.liquids = Рідини
|
category.liquids = Рідини
|
||||||
category.items = Предмети
|
category.items = Предмети
|
||||||
category.crafting = Введення/виведення
|
category.crafting = Виробництво
|
||||||
category.shooting = Стрільба
|
category.shooting = Стрільба
|
||||||
category.optional = Додаткові поліпшення
|
category.optional = Додаткові поліпшення
|
||||||
setting.landscape.name = Тільки альбомний(гозинтальний) режим
|
setting.landscape.name = Тільки альбомний(гозинтальний) режим
|
||||||
setting.shadows.name = Тіні
|
setting.shadows.name = Тіні
|
||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = Пропозиції щодо автоматичної заміни блоків
|
||||||
setting.linear.name = Лінійна фільтрація
|
setting.linear.name = Лінійна фільтрація
|
||||||
setting.hints.name = Hints
|
setting.hints.name = Hints
|
||||||
setting.animatedwater.name = Анімована вода
|
setting.animatedwater.name = Анімована вода
|
||||||
@@ -599,18 +599,18 @@ setting.difficulty.insane = Неможлива
|
|||||||
setting.difficulty.name = Складність:
|
setting.difficulty.name = Складність:
|
||||||
setting.screenshake.name = Тряска екрану
|
setting.screenshake.name = Тряска екрану
|
||||||
setting.effects.name = Ефекти
|
setting.effects.name = Ефекти
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = Показувати зруйновані блоки
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = Пошук шляху для встановлення конвейерівConveyor Placement Pathfinding
|
||||||
setting.sensitivity.name = Чутливість контролера
|
setting.sensitivity.name = Чутливість контролера
|
||||||
setting.saveinterval.name = Інтервал збереження
|
setting.saveinterval.name = Інтервал збереження
|
||||||
setting.seconds = {0} сек.
|
setting.seconds = {0} с
|
||||||
setting.fullscreen.name = Повноекранний режим
|
setting.fullscreen.name = Повноекранний режим
|
||||||
setting.borderlesswindow.name = Вікно без полів[lightgray] (може потребувати перезапуску)
|
setting.borderlesswindow.name = Вікно без полів[lightgray] (може потребувати перезапуску)
|
||||||
setting.fps.name = Показувати FPS
|
setting.fps.name = Показувати FPS і затримку до сервера
|
||||||
setting.vsync.name = Вертикальна синхронізація
|
setting.vsync.name = Вертикальна синхронізація
|
||||||
setting.pixelate.name = Пікселізація[lightgray] (вимикає анімації)
|
setting.pixelate.name = Пікселізація[lightgray] (вимикає анімації)
|
||||||
setting.minimap.name = Показувати міні-мапу
|
setting.minimap.name = Показувати міні-мапу
|
||||||
setting.position.name = Show Player Position
|
setting.position.name = Показувати координати гравця
|
||||||
setting.musicvol.name = Гучність музики
|
setting.musicvol.name = Гучність музики
|
||||||
setting.ambientvol.name = Звуки навколишнього середовища
|
setting.ambientvol.name = Звуки навколишнього середовища
|
||||||
setting.mutemusic.name = Заглушити музику
|
setting.mutemusic.name = Заглушити музику
|
||||||
@@ -635,16 +635,16 @@ category.multiplayer.name = Мережева гра
|
|||||||
command.attack = Атакувати
|
command.attack = Атакувати
|
||||||
command.rally = Точка збору
|
command.rally = Точка збору
|
||||||
command.retreat = Відступити
|
command.retreat = Відступити
|
||||||
keybind.clear_building.name = Clear Building
|
keybind.clear_building.name = Очистити план будування
|
||||||
keybind.press = Натисніть клавішу…
|
keybind.press = Натисніть клавішу…
|
||||||
keybind.press.axis = Натисніть клавішу…
|
keybind.press.axis = Натисніть клавішу…
|
||||||
keybind.screenshot.name = Зняток мапи
|
keybind.screenshot.name = Зняток мапи
|
||||||
keybind.move_x.name = Рух по осі x
|
keybind.move_x.name = Рух по осі X
|
||||||
keybind.move_y.name = Рух по осі y
|
keybind.move_y.name = Рух по осі Y
|
||||||
keybind.schematic_select.name = Select Region
|
keybind.schematic_select.name = Вибрати ділянку
|
||||||
keybind.schematic_menu.name = Schematic Menu
|
keybind.schematic_menu.name = Меню схем
|
||||||
keybind.schematic_flip_x.name = Flip Schematic X
|
keybind.schematic_flip_x.name = Відобразити по осі X
|
||||||
keybind.schematic_flip_y.name = Flip Schematic Y
|
keybind.schematic_flip_y.name = Відобразити по осі Y
|
||||||
keybind.fullscreen.name = Повноекранний
|
keybind.fullscreen.name = Повноекранний
|
||||||
keybind.select.name = Вибір/Постріл
|
keybind.select.name = Вибір/Постріл
|
||||||
keybind.diagonal_placement.name = Діагональне розміщення
|
keybind.diagonal_placement.name = Діагональне розміщення
|
||||||
@@ -656,14 +656,14 @@ keybind.zoom_hold.name = Керування масштабом
|
|||||||
keybind.zoom.name = Приблизити
|
keybind.zoom.name = Приблизити
|
||||||
keybind.menu.name = Меню
|
keybind.menu.name = Меню
|
||||||
keybind.pause.name = Пауза
|
keybind.pause.name = Пауза
|
||||||
keybind.pause_building.name = Pause/Resume Building
|
keybind.pause_building.name = Призупинити/Продовжити будування
|
||||||
keybind.minimap.name = Мінімапа
|
keybind.minimap.name = Мінімапа
|
||||||
keybind.dash.name = Прискоритися/Літати
|
keybind.dash.name = Прискоритися & летіітати
|
||||||
keybind.chat.name = Чат
|
keybind.chat.name = Чат
|
||||||
keybind.player_list.name = Список гравців
|
keybind.player_list.name = Список гравців
|
||||||
keybind.console.name = Консоль
|
keybind.console.name = Консоль
|
||||||
keybind.rotate.name = Обертати
|
keybind.rotate.name = Обертати
|
||||||
keybind.rotateplaced.name = Обертати існуюче (утримуйте)
|
keybind.rotateplaced.name = Обертати існуюче (прокручуйте)
|
||||||
keybind.toggle_menus.name = Меню перемикання
|
keybind.toggle_menus.name = Меню перемикання
|
||||||
keybind.chat_history_prev.name = Попередня історія чату
|
keybind.chat_history_prev.name = Попередня історія чату
|
||||||
keybind.chat_history_next.name = Наступна історія чату
|
keybind.chat_history_next.name = Наступна історія чату
|
||||||
@@ -695,7 +695,7 @@ rules.unitdamagemultiplier = Множник шкоди бойових одини
|
|||||||
rules.enemycorebuildradius = Радіус захисту для ворожого ядра:[lightgray] (блоків)
|
rules.enemycorebuildradius = Радіус захисту для ворожого ядра:[lightgray] (блоків)
|
||||||
rules.respawntime = Час відродження:[lightgray] (sec)
|
rules.respawntime = Час відродження:[lightgray] (sec)
|
||||||
rules.wavespacing = Інтервал хвиль:[lightgray] (sec)
|
rules.wavespacing = Інтервал хвиль:[lightgray] (sec)
|
||||||
rules.buildcostmultiplier = Множник затрат на будівництво
|
rules.buildcostmultiplier = Множник затрат на будування
|
||||||
rules.buildspeedmultiplier = Множник швидкості будування
|
rules.buildspeedmultiplier = Множник швидкості будування
|
||||||
rules.waitForWaveToEnd = Хвилі чекають на ворогів
|
rules.waitForWaveToEnd = Хвилі чекають на ворогів
|
||||||
rules.dropzoneradius = Радіус зони висадки:[lightgray] (блоків)
|
rules.dropzoneradius = Радіус зони висадки:[lightgray] (блоків)
|
||||||
@@ -703,7 +703,7 @@ rules.respawns = Максимальна кількість відроджень
|
|||||||
rules.limitedRespawns = Обмеження відроджень
|
rules.limitedRespawns = Обмеження відроджень
|
||||||
rules.title.waves = Хвилі
|
rules.title.waves = Хвилі
|
||||||
rules.title.respawns = Відродження
|
rules.title.respawns = Відродження
|
||||||
rules.title.resourcesbuilding = Ресурси & будівництво
|
rules.title.resourcesbuilding = Ресурси & будування
|
||||||
rules.title.player = Гравці
|
rules.title.player = Гравці
|
||||||
rules.title.enemy = Вороги
|
rules.title.enemy = Вороги
|
||||||
rules.title.unit = Бойов. од.
|
rules.title.unit = Бойов. од.
|
||||||
@@ -836,15 +836,15 @@ block.dark-panel-5.name = Темна панель 5
|
|||||||
block.dark-panel-6.name = Темна панель 6
|
block.dark-panel-6.name = Темна панель 6
|
||||||
block.dark-metal.name = Темний метал
|
block.dark-metal.name = Темний метал
|
||||||
block.ignarock.name = Магматичні гірські породи
|
block.ignarock.name = Магматичні гірські породи
|
||||||
block.hotrock.name = Гарячий Камінь
|
block.hotrock.name = Гарячий камінь
|
||||||
block.magmarock.name = Магмовий камінь
|
block.magmarock.name = Магмовий камінь
|
||||||
block.cliffs.name = Скелі
|
block.cliffs.name = Скелі
|
||||||
block.copper-wall.name = Мідна стіна
|
block.copper-wall.name = Мідна стіна
|
||||||
block.copper-wall-large.name = Велика мідна стіна
|
block.copper-wall-large.name = Велика мідна стіна
|
||||||
block.titanium-wall.name = Титанова стіна
|
block.titanium-wall.name = Титанова стіна
|
||||||
block.titanium-wall-large.name = Велика титанова стіна
|
block.titanium-wall-large.name = Велика титанова стіна
|
||||||
block.plastanium-wall.name = Plastanium Wall
|
block.plastanium-wall.name = Пластанієва стіна
|
||||||
block.plastanium-wall-large.name = Large Plastanium Wall
|
block.plastanium-wall-large.name = Велика пластанієва стіна
|
||||||
block.phase-wall.name = Фазова стіна
|
block.phase-wall.name = Фазова стіна
|
||||||
block.phase-wall-large.name = Велика фазова стіна
|
block.phase-wall-large.name = Велика фазова стіна
|
||||||
block.thorium-wall.name = Торієва стіна
|
block.thorium-wall.name = Торієва стіна
|
||||||
@@ -899,11 +899,11 @@ block.omega-mech-pad.name = Реконструктор «Омега»
|
|||||||
block.tau-mech-pad.name = Реконструктор «Тау»
|
block.tau-mech-pad.name = Реконструктор «Тау»
|
||||||
block.conduit.name = Трубопровід
|
block.conduit.name = Трубопровід
|
||||||
block.mechanical-pump.name = Механічна помпа
|
block.mechanical-pump.name = Механічна помпа
|
||||||
block.item-source.name = Джерело предметів
|
block.item-source.name = Нескінченне джерело предметів
|
||||||
block.item-void.name = Предметний вакуум
|
block.item-void.name = Предметний вакуум
|
||||||
block.liquid-source.name = Рідке джерело
|
block.liquid-source.name = Нескінченне джерело рідин
|
||||||
block.power-void.name = Енергетичний вакуум
|
block.power-void.name = Енергетичний вакуум
|
||||||
block.power-source.name = Джерело енергії
|
block.power-source.name = Нескінченне джерело енергії
|
||||||
block.unloader.name = Розвантажувач
|
block.unloader.name = Розвантажувач
|
||||||
block.vault.name = Сховище
|
block.vault.name = Сховище
|
||||||
block.wave.name = Хвиля
|
block.wave.name = Хвиля
|
||||||
@@ -982,8 +982,8 @@ unit.eradicator.name = Випалювач
|
|||||||
unit.lich.name = Лич
|
unit.lich.name = Лич
|
||||||
unit.reaper.name = Жнець
|
unit.reaper.name = Жнець
|
||||||
tutorial.next = [lightgray]<Натисніть для продовження>
|
tutorial.next = [lightgray]<Натисніть для продовження>
|
||||||
tutorial.intro = Ви розпочали[scarlet] навчання по Mindustry.[]\nРозпочність з[accent] видобування міді[]. Використовуйте [[WASD] для руху.\n[accent] Утримуйте [[Ctrl] під час прокрутки миші[] для приближення і віддалення. Наблизьтесь, а потім натисність на мідну жилу біля вашого ядра, щоб зробити це.\n\n[accent]{0}/{1} міді
|
tutorial.intro = Ви розпочали[scarlet] навчання по Mindustry.[]\nРозпочніть з[accent] видобування міді[]. Використовуйте [[WASD] для руху.\n[accent] Утримуйте [[Ctrl] під час прокрутки миші[] для приближення і віддалення. Наблизьтесь, а потім натисність на мідну жилу біля вашого ядра, щоб зробити це.\n\n[accent]{0}/{1} міді
|
||||||
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
tutorial.intro.mobile = Ви розпочали[scarlet] навчання по Mindustry.[]\nПроведіть екраном, щоб рухатися.\n[accent] Зведіть або розведіть 2 пальця [] для приближення і віддалення відповідно.\nз[accent] видобування міді.[] Наблизьтесь, а потім натисність на мідну жилу біля вашого ядра, щоб зробити це.\n\n[accent]{0}/{1} міді
|
||||||
tutorial.drill = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисніть на вкладку свердла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням.\n[accent]Натисніть ПКМ[], щоб зупинити будування.
|
tutorial.drill = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисніть на вкладку свердла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням.\n[accent]Натисніть ПКМ[], щоб зупинити будування.
|
||||||
tutorial.drill.mobile = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисність на вкладку сведла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням, потім натисність на [accent] галочку[] нижче, щоб підтвердити розміщення to confirm your selection.\nPress the[accent] X button[] to cancel placement.
|
tutorial.drill.mobile = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисність на вкладку сведла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням, потім натисність на [accent] галочку[] нижче, щоб підтвердити розміщення to confirm your selection.\nPress the[accent] X button[] to cancel placement.
|
||||||
tutorial.blockinfo = Кожен блок має різні характеристики. Кожний бур може видобувати тільки певні руди.\nЩоб переглянути інформацію та характеристики блока,[accent] натисність на кнопку «?», коли Ви вибрали блок у меню будування.[]\n\n[accent]Перегляньте характеристику Механічного бура прямо зараз.[]
|
tutorial.blockinfo = Кожен блок має різні характеристики. Кожний бур може видобувати тільки певні руди.\nЩоб переглянути інформацію та характеристики блока,[accent] натисність на кнопку «?», коли Ви вибрали блок у меню будування.[]\n\n[accent]Перегляньте характеристику Механічного бура прямо зараз.[]
|
||||||
@@ -991,8 +991,8 @@ tutorial.conveyor = [accent]Конвеєри[] використовуються
|
|||||||
tutorial.conveyor.mobile = [accent]Конвеєри[] використовується для транспортування предметів до ядра.\nЗробіть лінію конвеєрів від бура до ядра.\n[accent] Розмістить у лінію, утримуючи палець кілька секунд[] і тягніть у напрямку, який Ви вибрали.\nВикористовуйте колесо прокрутки, щоб обертати блоки перед їх розміщенням\n[accent]{0}/{1} конвеєрів, які розміщені в лінію\n[accent]0/1 предмет доставлено
|
tutorial.conveyor.mobile = [accent]Конвеєри[] використовується для транспортування предметів до ядра.\nЗробіть лінію конвеєрів від бура до ядра.\n[accent] Розмістить у лінію, утримуючи палець кілька секунд[] і тягніть у напрямку, який Ви вибрали.\nВикористовуйте колесо прокрутки, щоб обертати блоки перед їх розміщенням\n[accent]{0}/{1} конвеєрів, які розміщені в лінію\n[accent]0/1 предмет доставлено
|
||||||
tutorial.turret = Оборонні споруди повинні бути побудовані для відбиття[lightgray] ворогів[].\nПобудуйте[accent] башточку «Подвійна»[] біля вашої бази.
|
tutorial.turret = Оборонні споруди повинні бути побудовані для відбиття[lightgray] ворогів[].\nПобудуйте[accent] башточку «Подвійна»[] біля вашої бази.
|
||||||
tutorial.drillturret = «Подвійна» потребує [accent] мідні боєприпаси []для стрільби.\nРозмістіть бур біля башточки\nПроведіть конвеєри до башточки, щоб заповнити її боєприпасами.\n\n[accent]Доставлено боєприпасів: 0/1
|
tutorial.drillturret = «Подвійна» потребує [accent] мідні боєприпаси []для стрільби.\nРозмістіть бур біля башточки\nПроведіть конвеєри до башточки, щоб заповнити її боєприпасами.\n\n[accent]Доставлено боєприпасів: 0/1
|
||||||
tutorial.pause = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будівництво під час паузи.\n\n[accent]Натисність пробіл для павзи.tutorial.launch
|
tutorial.pause = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]Натисність пробіл для павзи.tutorial.launch
|
||||||
tutorial.pause.mobile = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будівництво під час паузи.\n\n[accent]атисніть кнопку зліва вгорі для павзи.
|
tutorial.pause.mobile = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]атисніть кнопку зліва вгорі для павзи.
|
||||||
tutorial.unpause = Тепер натисність пробіл, щоб зняти павзу.
|
tutorial.unpause = Тепер натисність пробіл, щоб зняти павзу.
|
||||||
tutorial.unpause.mobile = Тепер натисність туди ще раз, щоб зняти павзу.
|
tutorial.unpause.mobile = Тепер натисність туди ще раз, щоб зняти павзу.
|
||||||
tutorial.breaking = Блоки часто повинні бути знищені.\n[accent]Утримуючи ПКМ[] Ви знищите всі виділені блоки.[]\n\n[accent]Необхідно знищити всі стіни з металобрухту ліворуч від вашого ядра використовуючи видалення у зоні.
|
tutorial.breaking = Блоки часто повинні бути знищені.\n[accent]Утримуючи ПКМ[] Ви знищите всі виділені блоки.[]\n\n[accent]Необхідно знищити всі стіни з металобрухту ліворуч від вашого ядра використовуючи видалення у зоні.
|
||||||
@@ -1022,17 +1022,17 @@ liquid.water.description = Найкорисніша рідина. Зазвича
|
|||||||
liquid.slag.description = Різні види розплавленого металу змішуються між собою. Може бути відокремлений від складових корисних копалин або розпорошений на ворожі частини як зброя.
|
liquid.slag.description = Різні види розплавленого металу змішуються між собою. Може бути відокремлений від складових корисних копалин або розпорошений на ворожі частини як зброя.
|
||||||
liquid.oil.description = Рідина, яка використовується у виробництві сучасних матеріалів. Може бути перетворена в вугілля в якості палива або використана як куля.
|
liquid.oil.description = Рідина, яка використовується у виробництві сучасних матеріалів. Може бути перетворена в вугілля в якості палива або використана як куля.
|
||||||
liquid.cryofluid.description = Інертна, не роз’їдаюча рідина, створена з води та титану. Володіє надзвичайно високою пропускною спроможністю. Широко використовується в якості охолоджуючої рідини.
|
liquid.cryofluid.description = Інертна, не роз’їдаюча рідина, створена з води та титану. Володіє надзвичайно високою пропускною спроможністю. Широко використовується в якості охолоджуючої рідини.
|
||||||
mech.alpha-mech.description = Стандартний керований мех. Заснований на бойовій одиниці «Кинджал», з оновленими бронею та можливостями будівництва. Наносить більше шкоди, ніж «Дротик».
|
mech.alpha-mech.description = Стандартний керований мех. Заснований на бойовій одиниці «Кинджал», з оновленими бронею та можливостями будування. Наносить більше шкоди, ніж «Дротик».
|
||||||
mech.delta-mech.description = Швидкий, легкоброньований мех, зроблений для тактики «атакуй і біжи». Наносить мало шкоди будівлям, але може дуже швидко вбити великі групи підрозділів противника своєю дуговою блискавкою.
|
mech.delta-mech.description = Швидкий, легкоброньований мех, зроблений для тактики «атакуй і біжи». Наносить мало шкоди будівлям, але може дуже швидко вбити великі групи підрозділів противника своєю дуговою блискавкою.
|
||||||
mech.tau-mech.description = Мех підтримки. Ремонтує союзні блоки, стріляючи по них. Може зцілювати союзників у радіусі його ремонтної здатності.
|
mech.tau-mech.description = Мех підтримки. Ремонтує союзні блоки, стріляючи по них. Може зцілювати союзників у радіусі його ремонтної здатності.
|
||||||
mech.omega-mech.description = Об’ємний і добре броньований мех, зроблений для фронтових штурмів. Його броня може перекрити до 90% пошкоджень, що надходять.
|
mech.omega-mech.description = Об’ємний і добре броньований мех, зроблений для фронтових штурмів. Його броня може перекрити до 90% пошкоджень, що надходять.
|
||||||
mech.dart-ship.description = Стандартний корабель управління. Розумно швидкий і легкий, але має мало наступальних можливостей і низьку швидкість видобутку.
|
mech.dart-ship.description = Стандартний корабель управління. Розумно швидкий і легкий, але має мало наступальних можливостей і низьку швидкість видобутку.
|
||||||
mech.javelin-ship.description = Корабель для стратегії атакуй та біжи». Хоча спочатку він повільний, потім вже може розганятися до великих швидкостей і літати над ворожими форпостами, завдаючи великої кількості шкоди своїми блискавками та ракетами.
|
mech.javelin-ship.description = Корабель для стратегії атакуй та біжи». Хоча спочатку він повільний, потім вже може розганятися до великих швидкостей і літати над ворожими форпостами, завдаючи великої кількості шкоди своїми блискавками та ракетами.
|
||||||
mech.trident-ship.description = Важкий бомбардувальник, побудований для будівництва та знищення ворожих укріплень. Дуже добре броньований.
|
mech.trident-ship.description = Важкий бомбардувальник, побудований для будування та знищення ворожих укріплень. Дуже добре броньований.
|
||||||
mech.glaive-ship.description = Великий, добре броньований бойовий корабель. Оснащений запальним ретранслятором. Високо маневрений.
|
mech.glaive-ship.description = Великий, добре броньований бойовий корабель. Оснащений запальним ретранслятором. Високо маневрений.
|
||||||
unit.draug.description = Примітивний дрон, який добуває ресурси. Дешевий для виробництва. Автоматично видобуває мідь і свинець поблизу. Доставляє видобуті ресурси до найближчого ядра.
|
unit.draug.description = Примітивний дрон, який добуває ресурси. Дешевий для виробництва. Автоматично видобуває мідь і свинець поблизу. Доставляє видобуті ресурси до найближчого ядра.
|
||||||
unit.spirit.description = Модифікований «Драугр», призначений для ремонту замість видобутку. Автоматично відновлює будь-які пошкоджені блоки.
|
unit.spirit.description = Модифікований «Драугр», призначений для ремонту замість видобутку. Автоматично відновлює будь-які пошкоджені блоки.
|
||||||
unit.phantom.description = Вдосконалений безпілотник. Йде за користувачами. Допомагає в будівництві блоків.
|
unit.phantom.description = Вдосконалений безпілотник. Йде за користувачами. Допомагає в будуванні блоків.
|
||||||
unit.dagger.description = Базовий мех(бойова одиниця). Дешевий у виробництві. Нездоланні при використанні в натовпі.
|
unit.dagger.description = Базовий мех(бойова одиниця). Дешевий у виробництві. Нездоланні при використанні в натовпі.
|
||||||
unit.crawler.description = Наземна одиниця, що складається зі стертої рами з високими вибуховими речовинами, прив’язаними зверху. Не особливо міцний. Вибухає при контакті з ворогами.
|
unit.crawler.description = Наземна одиниця, що складається зі стертої рами з високими вибуховими речовинами, прив’язаними зверху. Не особливо міцний. Вибухає при контакті з ворогами.
|
||||||
unit.titan.description = Вдосконалений броньований наземний блок. Нападає як на наземні, так і повітряні цілі. Оснащений двома мініатюрними вогнеметами класу Випалювач.
|
unit.titan.description = Вдосконалений броньований наземний блок. Нападає як на наземні, так і повітряні цілі. Оснащений двома мініатюрними вогнеметами класу Випалювач.
|
||||||
@@ -1067,8 +1067,8 @@ block.copper-wall.description = Дешевий захисний блок.\nКо
|
|||||||
block.copper-wall-large.description = Дешевий захисний блок.\nКорисна для захисту ядра та башточок у перші кілька хвиль.\nОхоплює кілька плиток.
|
block.copper-wall-large.description = Дешевий захисний блок.\nКорисна для захисту ядра та башточок у перші кілька хвиль.\nОхоплює кілька плиток.
|
||||||
block.titanium-wall.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів.
|
block.titanium-wall.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів.
|
||||||
block.titanium-wall-large.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів.\nОхоплює кілька плиток.
|
block.titanium-wall-large.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів.\nОхоплює кілька плиток.
|
||||||
block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.
|
block.plastanium-wall.description = Особливий тип стіни, який поглинає електричні дуги і блокує автоматичні з'єднання енергетичних вузлів.
|
||||||
block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles.
|
block.plastanium-wall-large.description = Особливий тип стіни, який поглинає електричні дуги і блокує автоматичні з'єднання вузлів живлення.\nОхоплює кілька плиток.
|
||||||
block.thorium-wall.description = Сильний захисний блок.\nГідний захист від ворогів.
|
block.thorium-wall.description = Сильний захисний блок.\nГідний захист від ворогів.
|
||||||
block.thorium-wall-large.description = Сильний захисний блок.\nГідний захист від ворогів.\nОхоплює кілька плиток.
|
block.thorium-wall-large.description = Сильний захисний блок.\nГідний захист від ворогів.\nОхоплює кілька плиток.
|
||||||
block.phase-wall.description = Стіна, покрита спеціальним світловідбиваючим складом, який базується на фазовій тканині. Відхиляє більшість куль при ударі.
|
block.phase-wall.description = Стіна, покрита спеціальним світловідбиваючим складом, який базується на фазовій тканині. Відхиляє більшість куль при ударі.
|
||||||
@@ -1104,7 +1104,7 @@ block.liquid-junction.description = Діє як міст для двох кан
|
|||||||
block.bridge-conduit.description = Розширений блок транспортування рідини. Дозволяє транспортувати рідину до 3 плиток будь-якої місцевості чи будівлі.
|
block.bridge-conduit.description = Розширений блок транспортування рідини. Дозволяє транспортувати рідину до 3 плиток будь-якої місцевості чи будівлі.
|
||||||
block.phase-conduit.description = Розширений блок транспортування рідини. Використовує енергію для транспортування рідин до підключеного фазового каналу через декілька плиток.
|
block.phase-conduit.description = Розширений блок транспортування рідини. Використовує енергію для транспортування рідин до підключеного фазового каналу через декілька плиток.
|
||||||
block.power-node.description = Передає живлення на підключені вузли. Вузол буде отримувати живлення від будь-яких сусідніх блоків або подавати живлення до них.
|
block.power-node.description = Передає живлення на підключені вузли. Вузол буде отримувати живлення від будь-яких сусідніх блоків або подавати живлення до них.
|
||||||
block.power-node-large.description = Удосконалений вузол живлення з більшим діапазоном і більшою кількістю підключень.
|
block.power-node-large.description = Удосконалений вузол живлення з більшим діапазоном.
|
||||||
block.surge-tower.description = Надзвичайно дальний вузол живлення з меншою кількістю доступних з’єднань.
|
block.surge-tower.description = Надзвичайно дальний вузол живлення з меншою кількістю доступних з’єднань.
|
||||||
block.battery.description = Зберігає енергію як буфер в часи надлишкової енергії. Виводить енергію у періоди дефіциту.
|
block.battery.description = Зберігає енергію як буфер в часи надлишкової енергії. Виводить енергію у періоди дефіциту.
|
||||||
block.battery-large.description = Зберігає набагато більше енергії, ніж звичайний акумулятор.
|
block.battery-large.description = Зберігає набагато більше енергії, ніж звичайний акумулятор.
|
||||||
|
|||||||
@@ -1,37 +1,39 @@
|
|||||||
credits.text = 由[ROYAL]Anuken[]开发 - [SKY]anukendev@gmail.com[]
|
credits.text = 作者[ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
|
||||||
credits = 致谢
|
credits = 致谢
|
||||||
contributors = 译者和贡献者
|
contributors = 翻译者和贡献者
|
||||||
discord = 加入 Mindustry 的 Discord!
|
discord = 加入 Mindustry 的 Discord!
|
||||||
link.discord.description = 官方 Mindustry Discord 聊天室
|
link.discord.description = Mindustry 官方的 Discord 聊天室
|
||||||
link.reddit.description = The Mindustry subreddit
|
link.reddit.description = Mindustry 的 reddit 板块
|
||||||
link.github.description = 游戏源码
|
link.github.description = 游戏源代码
|
||||||
link.changelog.description = 更新列表
|
link.changelog.description = 更新日志
|
||||||
link.dev-builds.description = 不稳定开发版
|
link.dev-builds.description = 不稳定的开发版本
|
||||||
link.trello.description = Trello board 上的官方计划表
|
link.trello.description = 官方列于 Trello 的功能计划表
|
||||||
link.itch.io.description = PC版下载和网页版(itch.io)
|
link.itch.io.description = itch.io 上的 PC 版下载
|
||||||
link.google-play.description = 从谷歌商店获取安卓版
|
link.google-play.description = Google Play 页面
|
||||||
link.wiki.description = 官方 Mindustry 维基
|
link.wiki.description = Mindustry 官方 Wiki
|
||||||
linkfail = 打开链接失败!\n网址已经复制到剪贴板。
|
linkfail = 打开链接失败!\n网址已复制到您的剪贴板。
|
||||||
screenshot = 屏幕截图已放在 {0}
|
screenshot = 屏幕截图已保存到 {0}
|
||||||
screenshot.invalid = 地图太大,可能没有足够的内存用于截图。
|
screenshot.invalid = 地图太大,可能没有足够的内存用于截图。
|
||||||
gameover = 你的核心被摧毁了!
|
gameover = 你的核心被摧毁了!
|
||||||
gameover.pvp = [accent] {0}[]队获胜!
|
gameover.pvp = [accent] {0}[]队获胜!
|
||||||
highscore = [accent]新纪录!
|
highscore = [accent]新纪录!
|
||||||
copied = 已复制。
|
copied = 已复制。
|
||||||
|
|
||||||
load.sound = 音乐加载中
|
load.sound = 音乐加载中
|
||||||
load.map = 地图加载中
|
load.map = 地图加载中
|
||||||
load.image = 图片加载中
|
load.image = 图片加载中
|
||||||
load.content = 内容加载中
|
load.content = 内容加载中
|
||||||
load.system = 系统加载中
|
load.system = 系统加载中
|
||||||
load.mod = 模组加载中
|
load.mod = 模组加载中
|
||||||
|
|
||||||
schematic = 蓝图
|
schematic = 蓝图
|
||||||
schematic.add = 保存蓝图中……
|
schematic.add = 保存蓝图…
|
||||||
schematics = 蓝图
|
schematics = 蓝图
|
||||||
schematic.replace = A schematic by that name already exists. Replace it?
|
schematic.replace = 此名称的蓝图已存在,是否覆盖?
|
||||||
schematic.import = 导入蓝图中……
|
schematic.import = 导入蓝图…
|
||||||
schematic.exportfile = 导出文件
|
schematic.exportfile = 导出文件
|
||||||
schematic.importfile = 导入蓝图
|
schematic.importfile = 导入蓝图
|
||||||
schematic.browseworkshop = 流览创意工坊
|
schematic.browseworkshop = 浏览创意工坊
|
||||||
schematic.copy = 复制蓝图到剪贴板
|
schematic.copy = 复制蓝图到剪贴板
|
||||||
schematic.copy.import = 从剪贴板导入蓝图
|
schematic.copy.import = 从剪贴板导入蓝图
|
||||||
schematic.shareworkshop = 在创意工坊上分享蓝图
|
schematic.shareworkshop = 在创意工坊上分享蓝图
|
||||||
@@ -39,23 +41,25 @@ schematic.flip = [accent][[{0}][]/[accent][[{1}][]:翻转蓝图
|
|||||||
schematic.saved = 蓝图已保存。
|
schematic.saved = 蓝图已保存。
|
||||||
schematic.delete.confirm = 确认删除蓝图?
|
schematic.delete.confirm = 确认删除蓝图?
|
||||||
schematic.rename = 重命名蓝图
|
schematic.rename = 重命名蓝图
|
||||||
schematic.info = {0}x{1}, {2} 方块
|
schematic.info = {0}x{1},{2} 个方块
|
||||||
stat.wave = 战胜的波数:[accent]{0}
|
|
||||||
stat.enemiesDestroyed = 消灭的敌人:[accent]{0}
|
stat.wave = 防守波数:[accent]{0}
|
||||||
stat.built = 建造的建筑:[accent]{0}
|
stat.enemiesDestroyed = 消灭敌人:[accent]{0}
|
||||||
stat.destroyed = 摧毁的建筑:[accent]{0}
|
stat.built = 建造建筑:[accent]{0}
|
||||||
stat.deconstructed = 拆除的建筑:[accent]{0}
|
stat.destroyed = 摧毁建筑:[accent]{0}
|
||||||
stat.delivered = 发射的资源:
|
stat.deconstructed = 拆除建筑:[accent]{0}
|
||||||
stat.rank = 最终等级:[accent]{0}
|
stat.delivered = 运走资源:
|
||||||
launcheditems = [accent]发射的资源
|
stat.rank = 最终评级:[accent]{0}
|
||||||
launchinfo = [unlaunched][[LAUNCH] 你的核心将会获得用蓝色标识出来的资源.
|
|
||||||
map.delete = 确定要删除名为 "[accent]{0}[]" 的地图吗?
|
launcheditems = [accent]装运的资源
|
||||||
|
launchinfo = [unlaunched][[LAUNCH] 你的核心将获得用蓝色标识出的资源。
|
||||||
|
map.delete = 确定要删除“[accent]{0}[]”地图吗?
|
||||||
level.highscore = 最高分:[accent]{0}
|
level.highscore = 最高分:[accent]{0}
|
||||||
level.select = 选择关卡
|
level.select = 选择关卡
|
||||||
level.mode = 游戏模式:
|
level.mode = 游戏模式:
|
||||||
showagain = 下次不再显示
|
showagain = 下次不再显示
|
||||||
coreattack = < 核心正在受到攻击!>
|
coreattack = < 核心正在受到攻击!>
|
||||||
nearpoint = [[ [scarlet]立即离开敌人出生点[] ]\n将被全部清除
|
nearpoint = [[ [scarlet]立即离开敌人出生点[] ]\n即将被摧毁
|
||||||
database = 核心数据库
|
database = 核心数据库
|
||||||
savegame = 保存游戏
|
savegame = 保存游戏
|
||||||
loadgame = 载入游戏
|
loadgame = 载入游戏
|
||||||
@@ -68,42 +72,45 @@ position = 位置
|
|||||||
close = 关闭
|
close = 关闭
|
||||||
website = 官网
|
website = 官网
|
||||||
quit = 退出
|
quit = 退出
|
||||||
save.quit = Save & Quit
|
save.quit = 保存并退出
|
||||||
maps = 地图
|
maps = 地图
|
||||||
maps.browse = 浏览地图
|
maps.browse = 浏览地图
|
||||||
continue = 继续
|
continue = 继续
|
||||||
maps.none = [LIGHT_GRAY]没有找到地图!
|
maps.none = [lightgray]没有找到任何地图!
|
||||||
invalid = 无效
|
invalid = 无效
|
||||||
|
pickcolor = 选择颜色
|
||||||
preparingconfig = 正在准备配置
|
preparingconfig = 正在准备配置
|
||||||
preparingcontent = 正在准备内容
|
preparingcontent = 正在准备内容
|
||||||
uploadingcontent = 正在上传内容
|
uploadingcontent = 正在上传内容
|
||||||
uploadingpreviewfile = 正在上传预览文件
|
uploadingpreviewfile = 正在上传预览文件
|
||||||
committingchanges = 提交更改
|
committingchanges = 正在提交更改
|
||||||
done = 已完成
|
done = 已完成
|
||||||
feature.unsupported = Your device does not support this feature.
|
feature.unsupported = 您的设备不支持此功能。
|
||||||
mods.alphainfo = 请注意在测试版本中的模组[scarlet]可能有缺陷[]。\n在 Mindustry Github 或 Discord上报告你发现的问题。
|
|
||||||
mods.alpha = [accent](测试版)
|
mods.alphainfo = 请注意,测试版本(alpha)中的模组(mods)[scarlet]很容易存在缺陷[]。\n在 Mindustry 的 GitHub 或 Discord 上报告你发现的问题。
|
||||||
|
mods.alpha = [accent](Alpha)
|
||||||
mods = 模组
|
mods = 模组
|
||||||
mods.none = [LIGHT_GRAY]无模组!
|
mods.none = [LIGHT_GRAY]没有找到模组!
|
||||||
mods.guide = 模组教程
|
mods.guide = 模组教程
|
||||||
mods.report = 报告 Bug
|
mods.report = 报告 Bug
|
||||||
mods.openfolder = Open Mod Folder
|
mods.openfolder = 打开模组文件夹
|
||||||
mod.enabled = [lightgray]已启用
|
mod.enabled = [lightgray]已启用
|
||||||
mod.disabled = [scarlet]已禁用
|
mod.disabled = [scarlet]已禁用
|
||||||
mod.disable = 禁用
|
mod.disable = 禁用
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.delete.error = 无法删除模组。可能文件被占用。
|
||||||
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
mod.missingdependencies = [scarlet]缺少依赖条件:{0}
|
||||||
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
mod.nowdisabled = [scarlet]“{0}”模组缺少依赖条件:[accent] {1}\n[lightgray]需要先下载上述模组。\n此模组现在将自动禁用。
|
||||||
mod.enable = 启用
|
mod.enable = 启用
|
||||||
mod.requiresrestart = 需要重启使模组生效。
|
mod.requiresrestart = 需要重启使模组生效。
|
||||||
mod.reloadrequired = [scarlet]需要重启
|
mod.reloadrequired = [scarlet]需要重启
|
||||||
mod.import = 导入模组
|
mod.import = 导入模组
|
||||||
mod.import.github = 导入 Github 模组
|
mod.import.github = 导入 GitHub 模组
|
||||||
mod.remove.confirm = 此模组将被删除。
|
mod.remove.confirm = 此模组将被删除。
|
||||||
mod.author = [LIGHT_GRAY]作者:[] {0}
|
mod.author = [LIGHT_GRAY]作者:[] {0}
|
||||||
mod.missing = 此存档包含更新后的模组或不再使用的模组。存档可能会损坏。确定要加载它吗?\n[lightgray]模组:\n{0}
|
mod.missing = 此存档包含您最近已更新或者现在未安装的模组。存档可能会损坏。确定要加载它吗?\n[lightgray]模组:\n{0}
|
||||||
mod.preview.missing = 在创意工坊中发布此模组之前,必须添加图像预览。\n请将名为[accent] preview.png[] 的图像放入模组文件夹,然后重试。
|
mod.preview.missing = 在创意工坊中发布此模组前,您必须添加一则预览图像。\n请将名为[accent] preview.png[] 的图像放入模组文件夹,然后重试。
|
||||||
mod.folder.missing = 只有文件夹形式的模组才能在创意工坊上发布。\n若要将任何模组转换为文件夹,只需将其文件解压缩到文件夹中并删除旧压缩包,然后重新启动游戏或重新加载模组。
|
mod.folder.missing = 只有文件夹形式的模组能在创意工坊上发布。\n若要将任何模组转换为文件夹,只需将其文件解压缩到文件夹中并删除旧压缩包,然后重新启动游戏或重新加载模组。
|
||||||
|
|
||||||
about.button = 关于
|
about.button = 关于
|
||||||
name = 名字:
|
name = 名字:
|
||||||
noname = 先取一个[accent]玩家名[]。
|
noname = 先取一个[accent]玩家名[]。
|
||||||
@@ -111,12 +118,12 @@ filename = 文件名:
|
|||||||
unlocked = 新方块已解锁!
|
unlocked = 新方块已解锁!
|
||||||
completed = [accent]己研究
|
completed = [accent]己研究
|
||||||
techtree = 科技树
|
techtree = 科技树
|
||||||
research.list = [LIGHT_GRAY]研究:
|
research.list = [lightgray]研究:
|
||||||
research = 研究
|
research = 研究
|
||||||
researched = [LIGHT_GRAY]{0}己研究。
|
researched = [lightgray]{0}己研究。
|
||||||
players = {0} 玩家在线
|
players = {0} 位玩家在线
|
||||||
players.single = {0}玩家在线
|
players.single = {0} 位玩家在线
|
||||||
server.closing = [accent]正在关闭服务器……
|
server.closing = [accent]服务器关闭…
|
||||||
server.kicked.kick = 你被踢出了服务器。
|
server.kicked.kick = 你被踢出了服务器。
|
||||||
server.kicked.whitelist = 你不在白名单中。
|
server.kicked.whitelist = 你不在白名单中。
|
||||||
server.kicked.serverClose = 服务器已关闭。
|
server.kicked.serverClose = 服务器已关闭。
|
||||||
@@ -133,13 +140,13 @@ server.kicked.idInUse = 你已在这个服务器上!不允许用两个账号
|
|||||||
server.kicked.customClient = 这个服务器不支持自定义版本。请下载官方版本。
|
server.kicked.customClient = 这个服务器不支持自定义版本。请下载官方版本。
|
||||||
server.kicked.gameover = 游戏结束!
|
server.kicked.gameover = 游戏结束!
|
||||||
server.versions = 客户端版本:[accent] {0}[]\n服务器版本:[accent] {1}[]
|
server.versions = 客户端版本:[accent] {0}[]\n服务器版本:[accent] {1}[]
|
||||||
host.info = [accent]创建局域网游戏[]按钮会在[scarlet] 6567 []端口运行一个服务器。[]\n任何在同一个[LIGHT_GRAY] Wi-Fi 或本地网络[]下的人应该都可以在服务器列表中看到你的服务器。\n\n如果你想让别人在任何地方都能通过 IP 地址连接,你需要设定[accent]端口转发[]。\n\n[LIGHT_GRAY]注意:如果某人无法连接到你的局域网游戏,请确保你在防火墙设置里允许了 Mindustry 访问本地网络。
|
host.info = [accent]创建局域网游戏[]按钮会在[scarlet] 6567 []端口运行一个服务器。[]\n任何在同一个[lightgray] Wi-Fi 或本地网络[]下的人应该都可以在服务器列表中看到你的服务器。\n\n如果你想让别人在任何地方都能通过 IP 地址连接,你需要设定[accent]端口转发[]。\n\n[lightgray]注意:如果某人无法连接到你的局域网游戏,请确保你在防火墙设置里允许了 Mindustry 访问本地网络。
|
||||||
join.info = 此时,可以输入[accent]服务器的 IP 地址[]来连接,或寻找[accent]本地网络[]中的服务器来连接。\n局域网或广域网多人游戏都支持。\n\n[LIGHT_GRAY]注意:没有全球服务器列表;如果你想通过 IP 地址连接某个服务器,你需要向房主询问 IP 地址。
|
join.info = 您可以输入[accent]服务器的 IP 地址[]来连接,或寻找[accent]本地网络[]中的服务器来连接。\n支持局域网或广域网的多人游戏。\n\n[lightgray]注意:没有全球服务器列表;如果你想通过 IP 地址连接某个服务器,你需要向房主询问 IP 地址。
|
||||||
hostserver = 创建服务器
|
hostserver = 创建服务器
|
||||||
invitefriends = 邀请朋友
|
invitefriends = 邀请朋友
|
||||||
hostserver.mobile = 创建\n服务器
|
hostserver.mobile = 创建\n服务器
|
||||||
host = 创建
|
host = 创建
|
||||||
hosting = [accent]正在打开服务器……
|
hosting = [accent]正在开启服务器…
|
||||||
hosts.refresh = 刷新
|
hosts.refresh = 刷新
|
||||||
hosts.discovering = 正在搜索局域网服务器
|
hosts.discovering = 正在搜索局域网服务器
|
||||||
hosts.discovering.any = 正在搜索服务器
|
hosts.discovering.any = 正在搜索服务器
|
||||||
@@ -178,8 +185,8 @@ disconnect.closed = 连接关闭。
|
|||||||
disconnect.timeout = 连接超时。
|
disconnect.timeout = 连接超时。
|
||||||
disconnect.data = 读取服务器数据失败!
|
disconnect.data = 读取服务器数据失败!
|
||||||
cantconnect = 无法加入([accent]{0}[])。
|
cantconnect = 无法加入([accent]{0}[])。
|
||||||
connecting = [accent]连接中……
|
connecting = [accent]连接中…
|
||||||
connecting.data = [accent]加载中……
|
connecting.data = [accent]加载中…
|
||||||
server.port = 端口:
|
server.port = 端口:
|
||||||
server.addressinuse = 地址已在使用!
|
server.addressinuse = 地址已在使用!
|
||||||
server.invalidport = 无效的端口!
|
server.invalidport = 无效的端口!
|
||||||
@@ -188,7 +195,7 @@ save.new = 新存档
|
|||||||
save.overwrite = 你确定你要覆盖这个存档吗?
|
save.overwrite = 你确定你要覆盖这个存档吗?
|
||||||
overwrite = 覆盖
|
overwrite = 覆盖
|
||||||
save.none = 没有找到存档!
|
save.none = 没有找到存档!
|
||||||
saveload = [accent]正在保存……
|
saveload = [accent]正在保存…
|
||||||
savefail = 保存失败!
|
savefail = 保存失败!
|
||||||
save.delete.confirm = 你确定你要删除这个存档吗?
|
save.delete.confirm = 你确定你要删除这个存档吗?
|
||||||
save.delete = 删除
|
save.delete = 删除
|
||||||
@@ -202,7 +209,7 @@ save.rename = 重命名
|
|||||||
save.rename.text = 新名称:
|
save.rename.text = 新名称:
|
||||||
selectslot = 选择一个存档。
|
selectslot = 选择一个存档。
|
||||||
slot = [accent]存档位 {0}
|
slot = [accent]存档位 {0}
|
||||||
editmessage = Edit Message
|
editmessage = 编辑消息
|
||||||
save.corrupted = [accent]存档损坏或无效!\n如果你刚刚升级了游戏,那么这可能是因为存档格式改变了,而[scarlet]不是[] bug 。
|
save.corrupted = [accent]存档损坏或无效!\n如果你刚刚升级了游戏,那么这可能是因为存档格式改变了,而[scarlet]不是[] bug 。
|
||||||
empty = < 空 >
|
empty = < 空 >
|
||||||
on = 开
|
on = 开
|
||||||
@@ -233,21 +240,21 @@ data.import.confirm = 导入外部游戏数据将覆盖本地[scarlet]全部[]
|
|||||||
classic.export = 导出老版本数据
|
classic.export = 导出老版本数据
|
||||||
classic.export.text = [accent]Mindustry []已经有了一个重要的更新。\n检测到此为老版本(v3.5 build 40)的存档或地图。是否要将这些保存导出到手机的主文件夹中,以便在 Mindustry 老版本应用程序中使用?
|
classic.export.text = [accent]Mindustry []已经有了一个重要的更新。\n检测到此为老版本(v3.5 build 40)的存档或地图。是否要将这些保存导出到手机的主文件夹中,以便在 Mindustry 老版本应用程序中使用?
|
||||||
quit.confirm = 确定退出?
|
quit.confirm = 确定退出?
|
||||||
quit.confirm.tutorial = 你确定要跳过教程?\n教程可以通过[accent]设置->游戏->重新游玩教程[]来再次游玩。
|
quit.confirm.tutorial = 确定要跳过教程?\n您可以通过[accent]设置->游戏->重玩教程[]来重玩教程。
|
||||||
loading = [accent]加载中……
|
loading = [accent]加载中…
|
||||||
reloading = [accent]重载模组中……
|
reloading = [accent]重载模组中…
|
||||||
saving = [accent]保存中……
|
saving = [accent]保存中…
|
||||||
cancelbuilding = [accent][[{0}][]来清除规划
|
cancelbuilding = [accent][[{0}][]来清除规划
|
||||||
selectschematic = [accent][[{0}][]来选择复制
|
selectschematic = [accent][[{0}][]来选择复制
|
||||||
pausebuilding = [accent][[{0}][]来暂停建造
|
pausebuilding = [accent][[{0}][]来暂停建造
|
||||||
resumebuilding = [scarlet][[{0}][]来恢复建造
|
resumebuilding = [scarlet][[{0}][]来恢复建造
|
||||||
wave = [accent]波次{0}
|
wave = [accent]第{0}波
|
||||||
wave.waiting = [LIGHT_GRAY]下一波将在{0}秒后到来
|
wave.waiting = [lightgray]下一波倒计时:{0}秒
|
||||||
wave.waveInProgress = [LIGHT_GRAY]波次进行中
|
wave.waveInProgress = [lightgray]波次袭来
|
||||||
waiting = [LIGHT_GRAY]等待中……
|
waiting = [lightgray]等待中…
|
||||||
waiting.players = 等待玩家中……
|
waiting.players = 等待玩家中…
|
||||||
wave.enemies = [LIGHT_GRAY]剩余 {0} 个敌人
|
wave.enemies = [lightgray]剩余 {0} 个敌人
|
||||||
wave.enemy = [LIGHT_GRAY]剩余 {0} 个敌人
|
wave.enemy = [lightgray]剩余 {0} 个敌人
|
||||||
loadimage = 加载图片
|
loadimage = 加载图片
|
||||||
saveimage = 保存图片
|
saveimage = 保存图片
|
||||||
unknown = 未知
|
unknown = 未知
|
||||||
@@ -262,15 +269,15 @@ map.invalid = 地图载入错误:地图文件可能已经损坏。
|
|||||||
workshop.update = 更新地图
|
workshop.update = 更新地图
|
||||||
workshop.error = 获取创意工坊详细信息时出错:{0}
|
workshop.error = 获取创意工坊详细信息时出错:{0}
|
||||||
map.publish.confirm = 确定上传此地图?\n\n[lightgray]确定你同意 Steam 创意工坊的最终用户许可协议,否则你的地图将不会被展示!
|
map.publish.confirm = 确定上传此地图?\n\n[lightgray]确定你同意 Steam 创意工坊的最终用户许可协议,否则你的地图将不会被展示!
|
||||||
workshop.menu = Select what you would like to do with this item.
|
workshop.menu = 选择此项目的目的。
|
||||||
workshop.info = Item Info
|
workshop.info = 项目信息
|
||||||
changelog = Changelog (optional):
|
changelog = 更新日志(可选):
|
||||||
eula = Steam 最终用户许可协议
|
eula = Steam 最终用户许可协议
|
||||||
missing = 地图已被删除或移动。\n[lightgray]链接已在创意工坊中被删除。
|
missing = 此项目已被删除或转移。\n[lightgray]链接已在创意工坊中被删除。
|
||||||
publishing = [accent]Publishing...
|
publishing = [accent]正在发布...
|
||||||
publish.confirm = Are you sure you want to publish this?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your items will not show up!
|
publish.confirm = 确定发布?\n\n[lightgray]请确认您已经同意创意工坊的最终用户许可协议,否则您的项目不会展示!
|
||||||
publish.error = Error publishing item: {0}
|
publish.error = 发布项目出错:{0}
|
||||||
steam.error = Failed to initialize Steam services.\nError: {0}
|
steam.error = 初始化 Steam 服务失败。\n错误:{0}
|
||||||
editor.brush = 笔刷
|
editor.brush = 笔刷
|
||||||
editor.openin = 在编辑器中打开
|
editor.openin = 在编辑器中打开
|
||||||
editor.oregen = 矿石的生成
|
editor.oregen = 矿石的生成
|
||||||
@@ -278,7 +285,7 @@ editor.oregen.info = 矿石的生成:
|
|||||||
editor.mapinfo = 地图信息
|
editor.mapinfo = 地图信息
|
||||||
editor.author = 作者:
|
editor.author = 作者:
|
||||||
editor.description = 描述:
|
editor.description = 描述:
|
||||||
editor.nodescription = 地图必须要有不少于4个字符的描述才能上传。
|
editor.nodescription = 地图发布前,描述不得少于4个字符。
|
||||||
editor.waves = 波数:
|
editor.waves = 波数:
|
||||||
editor.rules = 规则:
|
editor.rules = 规则:
|
||||||
editor.generation = 筛选器:
|
editor.generation = 筛选器:
|
||||||
@@ -295,26 +302,26 @@ waves.perspawn = 每次生成
|
|||||||
waves.to = 至
|
waves.to = 至
|
||||||
waves.boss = BOSS
|
waves.boss = BOSS
|
||||||
waves.preview = 预览
|
waves.preview = 预览
|
||||||
waves.edit = 编辑……
|
waves.edit = 编辑…
|
||||||
waves.copy = 复制到剪贴板
|
waves.copy = 复制到剪贴板
|
||||||
waves.load = 从剪贴板读取
|
waves.load = 从剪贴板读取
|
||||||
waves.invalid = 剪贴板中无效的波次信息。
|
waves.invalid = 剪贴板中的波次信息无效。
|
||||||
waves.copied = 波次信息已复制。
|
waves.copied = 波次信息已复制。
|
||||||
waves.none = 无自定义敌人。\n请注意,空布局将自动替换为默认布局。
|
waves.none = 没有定义敌人。\n请注意,空布局将自动替换为默认布局。
|
||||||
editor.default = [LIGHT_GRAY]<默认>
|
editor.default = [lightgray]<默认>
|
||||||
details = 详情……
|
details = 详情…
|
||||||
edit = 编辑……
|
edit = 编辑…
|
||||||
editor.name = 名称:
|
editor.name = 名称:
|
||||||
editor.spawn = 生成单位
|
editor.spawn = 生成单位
|
||||||
editor.removeunit = 移除单位
|
editor.removeunit = 移除单位
|
||||||
editor.teams = 队伍
|
editor.teams = 队伍
|
||||||
editor.errorload = 读取文件时出现错误:\n[accent]{0}
|
editor.errorload = 读取文件出错:\n[accent]{0}
|
||||||
editor.errorsave = 保存文件时出现错误:\n[accent]{0}
|
editor.errorsave = 保存文件出错:\n[accent]{0}
|
||||||
editor.errorimage = 这是一幅图片,不是地图。请不要更改文件的扩展名来导入。\n\n如果你想导入地图,请在编辑器中使用“导入地图”这一按钮。
|
editor.errorimage = 这是一幅图片,不是地图。请不要更改文件的扩展名来导入。\n\n如果你想导入地图,请在编辑器中使用“导入地图”按钮。
|
||||||
editor.errorlegacy = 此地图太旧,而旧的地图格式不再受支持了。
|
editor.errorlegacy = 此地图太旧了,旧的地图格式已不再支持。
|
||||||
editor.errornot = 这不是地图文件。
|
editor.errornot = 这不是地图文件。
|
||||||
editor.errorheader = 此地图文件已失效或损坏。
|
editor.errorheader = 此地图文件无效或已损坏。
|
||||||
editor.errorname = 地图没有被定义的名称。是否需要加载存档文件?
|
editor.errorname = 地图没有定义名称。是否要加载一个存档文件?
|
||||||
editor.update = 更新
|
editor.update = 更新
|
||||||
editor.randomize = 随机化
|
editor.randomize = 随机化
|
||||||
editor.apply = 应用
|
editor.apply = 应用
|
||||||
@@ -324,16 +331,16 @@ editor.loadmap = 载入地图
|
|||||||
editor.savemap = 保存地图
|
editor.savemap = 保存地图
|
||||||
editor.saved = 已保存!
|
editor.saved = 已保存!
|
||||||
editor.save.noname = 你的地图没有名字!在“地图信息”菜单里设置一个。
|
editor.save.noname = 你的地图没有名字!在“地图信息”菜单里设置一个。
|
||||||
editor.save.overwrite = 你的地图覆盖了一个内建的地图!在“地图信息”菜单里重新设置一个不同的名称。
|
editor.save.overwrite = 你的地图覆盖了一个内置的地图!在“地图信息”菜单里重新设置一个不同的名称。
|
||||||
editor.import.exists = [scarlet]无法导入:[]名为‘{0}’的内建地图已存在!
|
editor.import.exists = [scarlet]无法导入:[]存在名为“{0}”的内置地图!
|
||||||
editor.import = 导入……
|
editor.import = 导入…
|
||||||
editor.importmap = 导入地图
|
editor.importmap = 导入地图
|
||||||
editor.importmap.description = 导入一个已经存在的地图
|
editor.importmap.description = 导入一个已经存在的地图
|
||||||
editor.importfile = 导入文件
|
editor.importfile = 导入文件
|
||||||
editor.importfile.description = 导入一个外置的地图文件
|
editor.importfile.description = 导入一个外置的地图文件
|
||||||
editor.importimage = 导入地形图像
|
editor.importimage = 导入地形图像
|
||||||
editor.importimage.description = 导入一个外置的地图图像文件
|
editor.importimage.description = 导入一个外置的地图图像文件
|
||||||
editor.export = 导出……
|
editor.export = 导出…
|
||||||
editor.exportfile = 导出文件
|
editor.exportfile = 导出文件
|
||||||
editor.exportfile.description = 导出一个地图文件
|
editor.exportfile.description = 导出一个地图文件
|
||||||
editor.exportimage = 导出一个地形文件
|
editor.exportimage = 导出一个地形文件
|
||||||
@@ -347,6 +354,7 @@ editor.overwrite = [accent]警告!\n这将会覆盖一个已经存在的地图
|
|||||||
editor.overwrite.confirm = [scarlet]警告![]存在同名地图。你确定你想要覆盖?
|
editor.overwrite.confirm = [scarlet]警告![]存在同名地图。你确定你想要覆盖?
|
||||||
editor.exists = 已经存在同名地图。
|
editor.exists = 已经存在同名地图。
|
||||||
editor.selectmap = 选择一个地图加载:
|
editor.selectmap = 选择一个地图加载:
|
||||||
|
|
||||||
toolmode.replace = 替换
|
toolmode.replace = 替换
|
||||||
toolmode.replace.description = 仅在实心块上绘制。
|
toolmode.replace.description = 仅在实心块上绘制。
|
||||||
toolmode.replaceall = 全部替换
|
toolmode.replaceall = 全部替换
|
||||||
@@ -361,7 +369,8 @@ toolmode.fillteams = 填充团队
|
|||||||
toolmode.fillteams.description = 填充团队而不是方块。
|
toolmode.fillteams.description = 填充团队而不是方块。
|
||||||
toolmode.drawteams = 绘制团队
|
toolmode.drawteams = 绘制团队
|
||||||
toolmode.drawteams.description = 绘制团队而不是方块。
|
toolmode.drawteams.description = 绘制团队而不是方块。
|
||||||
filters.empty = [LIGHT_GRAY]没有筛选器!用下方的按钮添加一个。
|
|
||||||
|
filters.empty = [lightgray]没有筛选器!用下方的按钮添加一个。
|
||||||
filter.distort = 扭曲程度
|
filter.distort = 扭曲程度
|
||||||
filter.noise = 波动程度
|
filter.noise = 波动程度
|
||||||
filter.median = 平均数
|
filter.median = 平均数
|
||||||
@@ -392,6 +401,7 @@ filter.option.floor2 = 二重地面
|
|||||||
filter.option.threshold2 = 二重阈值
|
filter.option.threshold2 = 二重阈值
|
||||||
filter.option.radius = 半径大小
|
filter.option.radius = 半径大小
|
||||||
filter.option.percentile = 百分比
|
filter.option.percentile = 百分比
|
||||||
|
|
||||||
width = 宽度:
|
width = 宽度:
|
||||||
height = 高度:
|
height = 高度:
|
||||||
menu = 菜单
|
menu = 菜单
|
||||||
@@ -404,49 +414,50 @@ ping = 延迟:{0}毫秒
|
|||||||
language.restart = 为了使语言设置生效请重启游戏。
|
language.restart = 为了使语言设置生效请重启游戏。
|
||||||
settings = 设置
|
settings = 设置
|
||||||
tutorial = 教程
|
tutorial = 教程
|
||||||
tutorial.retake = 重新游玩教程
|
tutorial.retake = 重玩教程
|
||||||
editor = 编辑器
|
editor = 编辑器
|
||||||
mapeditor = 地图编辑器
|
mapeditor = 地图编辑器
|
||||||
|
|
||||||
abandon = 放弃
|
abandon = 放弃
|
||||||
abandon.text = 这个区域及其资源会被敌人重置。
|
abandon.text = 这个区域及其资源会被敌人重置。
|
||||||
locked = 已锁定
|
locked = 已锁定
|
||||||
complete = [LIGHT_GRAY]完成:
|
complete = [lightgray]完成:
|
||||||
requirement.wave = Reach Wave {0} in {1}
|
requirement.wave = {1}中的第{0}波次
|
||||||
requirement.core = 在{0}中摧毁敌方核心
|
requirement.core = 在{0}中摧毁敌方核心
|
||||||
requirement.unlock = 解锁{0}
|
requirement.unlock = 解锁{0}
|
||||||
resume = 暂停:\n[LIGHT_GRAY]{0}
|
resume = 暂停:\n[lightgray]{0}
|
||||||
bestwave = [LIGHT_GRAY]最高波次:{0}
|
bestwave = [lightgray]最高波次:{0}
|
||||||
launch = < 发射 >
|
launch = < 发射 >
|
||||||
launch.title = 发射成功
|
launch.title = 发射成功
|
||||||
launch.next = [LIGHT_GRAY]下一个发射机会在第 {0} 波
|
launch.next = [lightgray]下个发射窗口在第{0}波
|
||||||
launch.unable2 = [scarlet]无法发射[]
|
launch.unable2 = [scarlet]无法发射[]
|
||||||
launch.confirm = 您将发射核心中所有资源。\n此地图将重置。
|
launch.confirm = 您将装载并发射核心中的所有资源。\n此地图将重置,无法回到此基地。
|
||||||
launch.skip.confirm = 如果你现在跳过,在后来的波次前你将无法发射。
|
launch.skip.confirm = 如果现在跳过,在下一个发射窗口到来前,您都无法发射。
|
||||||
uncover = 解锁
|
uncover = 解锁
|
||||||
configure = 设定发射资源数量
|
configure = 设定装运的数量
|
||||||
bannedblocks = 禁用方块
|
bannedblocks = 禁用方块
|
||||||
addall = 添加所有
|
addall = 添加所有
|
||||||
configure.locked = [LIGHT_GRAY]到达第{0}波\n才能设定发射资源。
|
configure.locked = [lightgray]完成{0}\n解锁装运配置。
|
||||||
configure.invalid = 数量必须是0到{0}之间的数字。
|
configure.invalid = 数量必须是0到{0}之间的数字。
|
||||||
zone.unlocked = [LIGHT_GRAY]{0} 已解锁。
|
zone.unlocked = [lightgray]{0} 已解锁。
|
||||||
zone.requirement.complete = 已达到第{0}波。\n达到解锁{1}的需求。
|
zone.requirement.complete = 完成{0}。\n达成解锁{1}的需求。
|
||||||
zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
|
zone.config.unlocked = 资源装运已解锁:[lightgray]\n{0}
|
||||||
zone.resources = 地图中的资源:
|
zone.resources = 地图中的资源:
|
||||||
zone.objective = [lightgray]目标:[accent]{0}
|
zone.objective = [lightgray]目标:[accent]{0}
|
||||||
zone.objective.survival = 生存
|
zone.objective.survival = 生存
|
||||||
zone.objective.attack = 摧毁敌方核心
|
zone.objective.attack = 摧毁敌方核心
|
||||||
add = 添加……
|
add = 添加…
|
||||||
boss.health = BOSS 生命值
|
boss.health = BOSS 生命值
|
||||||
connectfail = [crimson]服务器连接失败:[accent]{0}
|
connectfail = [crimson]服务器连接失败:[accent]{0}
|
||||||
error.unreachable = 服务器无法访问。\n确定输对地址了吗?
|
error.unreachable = 无法访问服务器。\n确定输对地址了吗?
|
||||||
error.invalidaddress = 地址无效。
|
error.invalidaddress = 地址无效。
|
||||||
error.timedout = 连接超时!\n确保服务器设置了端口转发,并且地址正确!
|
error.timedout = 连接超时!\n请确认服务器设置了端口转发且地址无误!
|
||||||
error.mismatch = 不匹配。\n可能是客户端/服务器版本不匹配。\n请确保客户端和服务器都是最新的版本!
|
error.mismatch = 数据包错误。\n可能是客户端/服务器的版本不匹配。\n请确保客户端和服务器都是最新的版本!
|
||||||
error.alreadyconnected = 已连接。
|
error.alreadyconnected = 已连接。
|
||||||
error.mapnotfound = 找不到地图文件!
|
error.mapnotfound = 找不到地图文件!
|
||||||
error.io = 网络 I/O 错误。
|
error.io = 网络 I/O 错误。
|
||||||
error.any = 未知网络错误。
|
error.any = 未知网络错误。
|
||||||
error.bloom = 未能初始化特效。\n您的设备可能不支持它。
|
error.bloom = 未能初始化特效。\n您的设备可能不支持。
|
||||||
zone.groundZero.name = 零号地区
|
zone.groundZero.name = 零号地区
|
||||||
zone.desertWastes.name = 荒芜沙漠
|
zone.desertWastes.name = 荒芜沙漠
|
||||||
zone.craters.name = 陨石带
|
zone.craters.name = 陨石带
|
||||||
@@ -461,31 +472,33 @@ zone.saltFlats.name = 盐碱荒滩
|
|||||||
zone.impact0078.name = 0078号冲击
|
zone.impact0078.name = 0078号冲击
|
||||||
zone.crags.name = 悬崖
|
zone.crags.name = 悬崖
|
||||||
zone.fungalPass.name = 真菌通道
|
zone.fungalPass.name = 真菌通道
|
||||||
zone.groundZero.description = 重新开始的最佳位置。这儿敌人威胁很小,资源少。\n尽可能收集多的铅和铜。\n行动。
|
|
||||||
zone.frozenForest.description = 即使在这里,靠近山脉的地方,孢子也已经扩散。寒冷的温度不可能永远容纳它们。\n\n此行动须投入电力。建造燃烧发电机并学会使用修理者。
|
zone.groundZero.description = 踏上旅程的最佳位置。这儿的敌人威胁很小,但资源也少。\n收集尽可能多的铅和铜。\n出发吧!
|
||||||
zone.desertWastes.description = 这些废料规模巨大,难以预测,并且与废弃的结构交错在一起。\n此地区有煤矿存在,燃烧它以获取动力或合成石墨。\n\n[lightgray]无法保证此着陆位置。
|
zone.frozenForest.description = 即使是靠近山脉的这里,孢子也已经扩散。他们不能长期停留在寒冷的温度中。\n\n开始运用电力。建造燃烧发电机并学会使用修理者。
|
||||||
|
zone.desertWastes.description = 这里的废料规模庞大、难以预测,并与废弃的结构交织在一起。\n此地区有煤矿存在,燃烧它以获取动力或合成石墨。\n\n[lightgray]无法保证此着陆位置。
|
||||||
zone.saltFlats.description = 在沙漠的郊区有盐滩。在这个地方几乎找不到资源。\n\n敌人在这里建立了一个资源存储区。摧毁他们的核心。不要留下任何东西。
|
zone.saltFlats.description = 在沙漠的郊区有盐滩。在这个地方几乎找不到资源。\n\n敌人在这里建立了一个资源存储区。摧毁他们的核心。不要留下任何东西。
|
||||||
zone.craters.description = 水在这个火山口积聚,这是旧战争的遗迹。夺下该区域。收集沙子来冶炼玻璃。用水泵抽水来加速炮塔和钻头。
|
zone.craters.description = 水在这个火山口积聚,这是旧战争的遗迹。夺下该区域。收集沙子来冶炼玻璃。用水泵抽水来加速炮塔和钻头。
|
||||||
zone.ruinousShores.description = 穿过荒地,就是海岸线。这个地方曾经建造了一个海岸防御线。但现在所剩无几,只有最基本的防御结构仍然毫发无损,其他一切都被摧毁了。\n继续向外扩展。继续研究科技。
|
zone.ruinousShores.description = 穿过荒地,就是海岸线。这个地方曾经建造了一个海岸防御线。但现在所剩无几,只有最基本的防御结构仍然毫发无损,其他一切都被摧毁了。\n继续向外扩展。继续研究科技。
|
||||||
zone.stainedMountains.description = 在更远的内陆地区是山脉,但这里没有被孢子污染。\n在这一地区分布着丰富的钛,学习如何使用它。\n\n这里敌人的存在更大。不要给他们时间派出最强的部队。
|
zone.stainedMountains.description = 在更远的内陆地区是山脉,但这里没有被孢子污染。\n在这一地区分布着丰富的钛,学习如何使用它。\n\n这里敌人的存在更大。不要给他们时间派出最强的部队。
|
||||||
zone.overgrowth.description = 这个地区靠近孢子的来源,因此生长过度。\n敌人在这里建立了一个前哨站。建造尖刀单位来摧毁它并找回丢失的东西。
|
zone.overgrowth.description = 这个地区靠近孢子的来源,因此生长过度。\n敌人在这里建立了一个前哨站。建造尖刀单位来摧毁它并找回丢失的东西。
|
||||||
zone.tarFields.description = 位于山脉和沙漠之间的产油区的郊区是少数几个有可用石油储量的地区之一。\n尽管被废弃,但附近仍有一些危险的敌军。不要低估它们。\n\n[lightgray]如果可能,研究石油加工技术。
|
zone.tarFields.description = 位于山脉和沙漠之间的产油区的郊区是少数几个有可用石油储量的地区之一。\n尽管被废弃,但附近仍有一些危险的敌军。不要低估他们。\n\n[lightgray]如果可能,研究石油加工技术。
|
||||||
zone.desolateRift.description = 非常危险的区域。这儿资源丰富但空间小。敌人十分危险。尽快离开,不要被敌人的攻击间隔太长所愚弄。
|
zone.desolateRift.description = 非常危险的区域。这儿资源丰富但空间小。敌人十分危险。尽快离开,不要被敌人的攻击间隔太长所愚弄。
|
||||||
zone.nuclearComplex.description = 以前生产和加工钍的设施已变成废墟。\n[lightgray]研究钍及其多种用途。\n\n敌人在这里大量存在,不断消灭入侵者。
|
zone.nuclearComplex.description = 以前生产和加工钍的设施已变成废墟。\n[lightgray]研究钍及其多种用途。\n\n敌人在这里大量存在,不断消灭入侵者。
|
||||||
zone.fungalPass.description = 介于高山和低矮孢子丛生的土地之间的过渡地带。这里有一个小型的敌方侦察基地。\n侦察它。\n使用尖刀和爬行者单位来摧毁两个核心。
|
zone.fungalPass.description = 介于高山和低矮孢子丛生的土地之间的过渡地带。这里有一个小型的敌方侦察基地。\n侦察它。\n使用尖刀和爬行者单位来摧毁两个核心。
|
||||||
zone.impact0078.description = <在此处插入说明>
|
zone.impact0078.description = <描述空缺>
|
||||||
zone.crags.description = <在此处插入说明>
|
zone.crags.description = <描述空缺>
|
||||||
|
|
||||||
settings.language = 语言
|
settings.language = 语言
|
||||||
settings.data = 游戏数据
|
settings.data = 游戏数据
|
||||||
settings.reset = 恢复默认
|
settings.reset = 恢复默认设置
|
||||||
settings.rebind = 重新绑定
|
settings.rebind = 重新绑定
|
||||||
settings.controls = 控制
|
settings.controls = 控制
|
||||||
settings.game = 游戏
|
settings.game = 游戏
|
||||||
settings.sound = 声音
|
settings.sound = 声音
|
||||||
settings.graphics = 图像
|
settings.graphics = 图像
|
||||||
settings.cleardata = 清除游戏数据……
|
settings.cleardata = 清除游戏数据…
|
||||||
settings.clear.confirm = 您确定要清除数据吗?\n这个操作无法撤销!
|
settings.clear.confirm = 您确定要清除此数据?\n此操作无法撤销!
|
||||||
settings.clearall.confirm = [scarlet]警告![]\n这将清除所有数据,包括存档、地图、解锁和绑定键。\n按「是」后,游戏将删除所有数据并自动退出。
|
settings.clearall.confirm = [scarlet]警告![]\n这将清除所有数据,包括存档、地图、解锁和按键绑定。\n按「是」后,游戏将删除所有数据并自动退出。
|
||||||
paused = [accent]< 暂停 >
|
paused = [accent]< 暂停 >
|
||||||
clear = 清除
|
clear = 清除
|
||||||
banned = [scarlet]已禁止
|
banned = [scarlet]已禁止
|
||||||
@@ -496,8 +509,8 @@ error.title = [crimson]发生了一个错误
|
|||||||
error.crashtitle = 发生了一个错误
|
error.crashtitle = 发生了一个错误
|
||||||
blocks.input = 输入
|
blocks.input = 输入
|
||||||
blocks.output = 输出
|
blocks.output = 输出
|
||||||
blocks.booster = 加成物品/液体
|
blocks.booster = 增强物品/液体
|
||||||
block.unknown = [LIGHT_GRAY]???
|
block.unknown = [lightgray]???
|
||||||
blocks.powercapacity = 能量容量
|
blocks.powercapacity = 能量容量
|
||||||
blocks.powershot = 能量/发射
|
blocks.powershot = 能量/发射
|
||||||
blocks.damage = 伤害
|
blocks.damage = 伤害
|
||||||
@@ -509,7 +522,7 @@ blocks.shootrange = 范围
|
|||||||
blocks.size = 尺寸
|
blocks.size = 尺寸
|
||||||
blocks.liquidcapacity = 液体容量
|
blocks.liquidcapacity = 液体容量
|
||||||
blocks.powerrange = 能量范围
|
blocks.powerrange = 能量范围
|
||||||
blocks.powerconnections = Max Connections
|
blocks.powerconnections = 最多连接
|
||||||
blocks.poweruse = 能量使用
|
blocks.poweruse = 能量使用
|
||||||
blocks.powerdamage = 功率/损伤
|
blocks.powerdamage = 功率/损伤
|
||||||
blocks.itemcapacity = 物品容量
|
blocks.itemcapacity = 物品容量
|
||||||
@@ -520,7 +533,7 @@ blocks.speedincrease = 提速
|
|||||||
blocks.range = 范围
|
blocks.range = 范围
|
||||||
blocks.drilltier = 可钻探矿物
|
blocks.drilltier = 可钻探矿物
|
||||||
blocks.drillspeed = 基础钻探速度
|
blocks.drillspeed = 基础钻探速度
|
||||||
blocks.boosteffect = 加成影响
|
blocks.boosteffect = 增强效果
|
||||||
blocks.maxunits = 最大单位数量
|
blocks.maxunits = 最大单位数量
|
||||||
blocks.health = 生命值
|
blocks.health = 生命值
|
||||||
blocks.buildtime = 建造时间
|
blocks.buildtime = 建造时间
|
||||||
@@ -528,10 +541,10 @@ blocks.buildcost = 建造花费
|
|||||||
blocks.inaccuracy = 误差
|
blocks.inaccuracy = 误差
|
||||||
blocks.shots = 发射数
|
blocks.shots = 发射数
|
||||||
blocks.reload = 每秒发射数
|
blocks.reload = 每秒发射数
|
||||||
blocks.ammo = 子弹
|
blocks.ammo = 弹药
|
||||||
bar.drilltierreq = 需要更好的钻头
|
bar.drilltierreq = 需要更好的钻头
|
||||||
bar.drillspeed = 挖掘速度:{0}/s
|
bar.drillspeed = 挖掘速度:{0}/秒
|
||||||
bar.pumpspeed = Pump Speed: {0}/s
|
bar.pumpspeed = 泵压速度:{0}/秒
|
||||||
bar.efficiency = 效率:{0}%
|
bar.efficiency = 效率:{0}%
|
||||||
bar.powerbalance = 能量:{0}/秒
|
bar.powerbalance = 能量:{0}/秒
|
||||||
bar.powerstored = 储能:{0}/{1}
|
bar.powerstored = 储能:{0}/{1}
|
||||||
@@ -544,6 +557,8 @@ bar.heat = 热量
|
|||||||
bar.power = 电力
|
bar.power = 电力
|
||||||
bar.progress = 制造进度
|
bar.progress = 制造进度
|
||||||
bar.spawned = 单位数量:{0}/{1}
|
bar.spawned = 单位数量:{0}/{1}
|
||||||
|
bar.input = 输入
|
||||||
|
bar.output = 输出
|
||||||
bullet.damage = [stat]{0}[lightgray] 伤害
|
bullet.damage = [stat]{0}[lightgray] 伤害
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
|
bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
|
||||||
bullet.incendiary = [stat] 燃烧
|
bullet.incendiary = [stat] 燃烧
|
||||||
@@ -553,7 +568,7 @@ bullet.frag = [stat] 分裂
|
|||||||
bullet.knockback = [stat]{0}[lightgray] 击退
|
bullet.knockback = [stat]{0}[lightgray] 击退
|
||||||
bullet.freezing = [stat] 冰冻
|
bullet.freezing = [stat] 冰冻
|
||||||
bullet.tarred = [stat] 减速
|
bullet.tarred = [stat] 减速
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x 子弹数量
|
bullet.multiplier = [stat]{0}[lightgray]x 弹药数量
|
||||||
bullet.reload = [stat]{0}[lightgray]x 装弹
|
bullet.reload = [stat]{0}[lightgray]x 装弹
|
||||||
unit.blocks = 方块
|
unit.blocks = 方块
|
||||||
unit.powersecond = 能量单位/秒
|
unit.powersecond = 能量单位/秒
|
||||||
@@ -573,15 +588,16 @@ category.liquids = 液体
|
|||||||
category.items = 物品
|
category.items = 物品
|
||||||
category.crafting = 制造
|
category.crafting = 制造
|
||||||
category.shooting = 发射
|
category.shooting = 发射
|
||||||
category.optional = 可选的增强物品
|
category.optional = 可选的增强
|
||||||
setting.landscape.name = 锁定横屏
|
setting.landscape.name = 锁定横屏
|
||||||
setting.shadows.name = 影子
|
setting.shadows.name = 影子
|
||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = 自动推荐块
|
||||||
setting.linear.name = 抗锯齿
|
setting.linear.name = 抗锯齿
|
||||||
setting.hints.name = 提示
|
setting.hints.name = 提示
|
||||||
|
setting.buildautopause.name = 自动暂停建造
|
||||||
setting.animatedwater.name = 流动的水
|
setting.animatedwater.name = 流动的水
|
||||||
setting.animatedshields.name = 动态画面
|
setting.animatedshields.name = 动态画面
|
||||||
setting.antialias.name = 抗锯齿[LIGHT_GRAY](需要重新启动)[]
|
setting.antialias.name = 抗锯齿[lightgray](需要重新启动)[]
|
||||||
setting.indicators.name = 队友指示器
|
setting.indicators.name = 队友指示器
|
||||||
setting.autotarget.name = 自动射击
|
setting.autotarget.name = 自动射击
|
||||||
setting.keyboard.name = 鼠标+键盘操控
|
setting.keyboard.name = 鼠标+键盘操控
|
||||||
@@ -589,7 +605,7 @@ setting.touchscreen.name = 触屏操控
|
|||||||
setting.fpscap.name = 最大FPS
|
setting.fpscap.name = 最大FPS
|
||||||
setting.fpscap.none = 无
|
setting.fpscap.none = 无
|
||||||
setting.fpscap.text = {0} FPS
|
setting.fpscap.text = {0} FPS
|
||||||
setting.uiscale.name = UI缩放比例[lightgray](需要重新启动)[]
|
setting.uiscale.name = UI缩放比例[lightgray](需要重新启动)[]
|
||||||
setting.swapdiagonal.name = 自动铺设
|
setting.swapdiagonal.name = 自动铺设
|
||||||
setting.difficulty.training = 训练
|
setting.difficulty.training = 训练
|
||||||
setting.difficulty.easy = 简单
|
setting.difficulty.easy = 简单
|
||||||
@@ -599,48 +615,49 @@ setting.difficulty.insane = 疯狂
|
|||||||
setting.difficulty.name = 难度:
|
setting.difficulty.name = 难度:
|
||||||
setting.screenshake.name = 屏幕抖动
|
setting.screenshake.name = 屏幕抖动
|
||||||
setting.effects.name = 显示效果
|
setting.effects.name = 显示效果
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = 显示摧毁的块
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = 传送带放置寻路
|
||||||
setting.sensitivity.name = 控制器灵敏度
|
setting.sensitivity.name = 控制器灵敏度
|
||||||
setting.saveinterval.name = 自动保存间隔
|
setting.saveinterval.name = 自动保存间隔
|
||||||
setting.seconds = {0} 秒
|
setting.seconds = {0} 秒
|
||||||
setting.fullscreen.name = 全屏
|
setting.fullscreen.name = 全屏
|
||||||
setting.borderlesswindow.name = 无边框窗口[LIGHT_GRAY] (可能需要重启)
|
setting.borderlesswindow.name = 无边框窗口[lightgray](可能需要重启)
|
||||||
setting.fps.name = 显示 FPS
|
setting.fps.name = 显示 FPS
|
||||||
setting.vsync.name = 垂直同步
|
setting.vsync.name = 垂直同步
|
||||||
setting.pixelate.name = 像素画面 [LIGHT_GRAY](禁用动画)
|
setting.pixelate.name = 像素画面 [lightgray](禁用动画)
|
||||||
setting.minimap.name = 显示小地图
|
setting.minimap.name = 显示小地图
|
||||||
setting.position.name = 显示玩家坐标
|
setting.position.name = 显示玩家坐标
|
||||||
setting.musicvol.name = 音乐音量
|
setting.musicvol.name = 音乐音量
|
||||||
setting.ambientvol.name = 环境体积
|
setting.ambientvol.name = 环境音量
|
||||||
setting.mutemusic.name = 静音
|
setting.mutemusic.name = 无音乐
|
||||||
setting.sfxvol.name = 音效音量
|
setting.sfxvol.name = 音效音量
|
||||||
setting.mutesound.name = 静音
|
setting.mutesound.name = 无音效
|
||||||
setting.crashreport.name = 发送匿名崩溃报告
|
setting.crashreport.name = 发送匿名的崩溃报告
|
||||||
setting.savecreate.name = 自动创建存档
|
setting.savecreate.name = 自动创建存档
|
||||||
setting.publichost.name = 公共游戏旁观
|
setting.publichost.name = 游戏公开可见
|
||||||
setting.chatopacity.name = 聊天界面透明度
|
setting.chatopacity.name = 聊天界面不透明度
|
||||||
setting.lasersopacity.name = 能量激光不透明度
|
setting.lasersopacity.name = 能量激光不透明度
|
||||||
setting.playerchat.name = 显示游戏内聊天界面
|
setting.playerchat.name = 显示玩家聊天气泡
|
||||||
public.confirm = 确定开启旁观?\n[lightgray]可在设置->游戏->公共游戏旁观中修改。
|
public.confirm = 确定使您的游戏公开可见?\n[accent]其他人将可以加入到您的游戏。\n[lightgray]您之后可以在 设置->游戏->游戏公开可见 更改。
|
||||||
public.beta = 请注意,测试版的游戏不能公共旁观。
|
public.beta = 请注意,测试版的游戏不能公开可见。
|
||||||
uiscale.reset = UI缩放比例已经改变。\n按下“确定”来确定缩放比例\n[accent]{0}[]秒后[scarlet]退出并恢复设定。
|
uiscale.reset = UI缩放比例已更改。\n按下“确定”来执行缩放比例的更改。\n[accent]{0}[]秒后[scarlet]将自动退出并还原设置。
|
||||||
uiscale.cancel = 取消并退出
|
uiscale.cancel = 取消并退出
|
||||||
setting.bloom.name = 特效
|
setting.bloom.name = 特效
|
||||||
keybind.title = 重新绑定按键
|
keybind.title = 重新绑定按键
|
||||||
keybinds.mobile = [scarlet]这里的大多数键绑定在移动设备上都不起作用。仅支持基本运动。
|
keybinds.mobile = [scarlet]这里的大多数按键绑定在移动设备上都不能用。仅支持基本的移动。
|
||||||
category.general.name = 普通
|
category.general.name = 常规
|
||||||
category.view.name = 查看
|
category.view.name = 视图
|
||||||
category.multiplayer.name = 多人
|
category.multiplayer.name = 多人
|
||||||
command.attack = 攻击
|
command.attack = 攻击
|
||||||
command.rally = 集合
|
command.rally = 团体
|
||||||
command.retreat = 撤退
|
command.retreat = 撤退
|
||||||
keybind.clear_building.name = 清除建筑
|
keybind.clear_building.name = 清除建筑
|
||||||
keybind.press = 按一下键……
|
keybind.press = 请按一个键…
|
||||||
keybind.press.axis = 按一下轴或键……
|
keybind.press.axis = 请按一个轴或键…
|
||||||
keybind.screenshot.name = 地图截图
|
keybind.screenshot.name = 地图截图
|
||||||
keybind.move_x.name = 水平移动
|
keybind.move_x.name = 水平移动
|
||||||
keybind.move_y.name = 竖直移动
|
keybind.move_y.name = 竖直移动
|
||||||
|
keybind.mouse_move.name = 跟随鼠标
|
||||||
keybind.schematic_select.name = 选择区域
|
keybind.schematic_select.name = 选择区域
|
||||||
keybind.schematic_menu.name = 蓝图目录
|
keybind.schematic_menu.name = 蓝图目录
|
||||||
keybind.schematic_flip_x.name = 水平翻转
|
keybind.schematic_flip_x.name = 水平翻转
|
||||||
@@ -650,9 +667,9 @@ keybind.select.name = 选择/射击
|
|||||||
keybind.diagonal_placement.name = 自动铺设
|
keybind.diagonal_placement.name = 自动铺设
|
||||||
keybind.pick.name = 选择方块
|
keybind.pick.name = 选择方块
|
||||||
keybind.break_block.name = 破坏方块
|
keybind.break_block.name = 破坏方块
|
||||||
keybind.deselect.name = 取消
|
keybind.deselect.name = 取消选择
|
||||||
keybind.shoot.name = 射击
|
keybind.shoot.name = 射击
|
||||||
keybind.zoom_hold.name = 保持缩放
|
keybind.zoom_hold.name = 按住调整缩放
|
||||||
keybind.zoom.name = 缩放
|
keybind.zoom.name = 缩放
|
||||||
keybind.menu.name = 菜单
|
keybind.menu.name = 菜单
|
||||||
keybind.pause.name = 暂停
|
keybind.pause.name = 暂停
|
||||||
@@ -664,41 +681,43 @@ keybind.player_list.name = 玩家列表
|
|||||||
keybind.console.name = 控制台
|
keybind.console.name = 控制台
|
||||||
keybind.rotate.name = 旋转
|
keybind.rotate.name = 旋转
|
||||||
keybind.rotateplaced.name = 旋转全部(长按)
|
keybind.rotateplaced.name = 旋转全部(长按)
|
||||||
keybind.toggle_menus.name = 切换菜单
|
keybind.toggle_menus.name = 显隐选项
|
||||||
keybind.chat_history_prev.name = 前面的聊天记录
|
keybind.chat_history_prev.name = 聊天记录向前
|
||||||
keybind.chat_history_next.name = 后面的聊天记录
|
keybind.chat_history_next.name = 聊天记录向后
|
||||||
keybind.chat_scroll.name = 聊天记录滚动
|
keybind.chat_scroll.name = 聊天记录滚动
|
||||||
keybind.drop_unit.name = 释放单位
|
keybind.drop_unit.name = 松开单位
|
||||||
keybind.zoom_minimap.name = 小地图缩放
|
keybind.zoom_minimap.name = 小地图缩放
|
||||||
mode.help.title = 模式说明
|
mode.help.title = 模式说明
|
||||||
mode.survival.name = 生存
|
mode.survival.name = 生存
|
||||||
mode.survival.description = 正常的游戏模式,有限的资源和自动波次。\n[gray]需要敌人出生点。
|
mode.survival.description = 正常的游戏模式,有限的资源、自动的波次。\n[gray]需要击退周期性出现的敌人。
|
||||||
mode.sandbox.name = 沙盒
|
mode.sandbox.name = 沙盒
|
||||||
mode.sandbox.description = 无限的资源,不会自动生成敌人。
|
mode.sandbox.description = 无限的资源,不会自动生成敌人。
|
||||||
mode.editor.name = 编辑
|
mode.editor.name = 编辑器
|
||||||
mode.pvp.name = PvP
|
mode.pvp.name = PvP
|
||||||
mode.pvp.description = 和本地玩家对战。\n[gray]需要不同队伍的核心。
|
mode.pvp.description = 和本地玩家对战。\n[gray]需要地图中有不同队伍(颜色)的核心。
|
||||||
mode.attack.name = 攻击
|
mode.attack.name = 攻击
|
||||||
mode.attack.description = 没有波数,但是有摧毁敌人基地的任务。\n[gray]需要姨妈红队核心。
|
mode.attack.description = 没有波次,但需要摧毁敌人的基地。\n[gray]需要地图中有红色的核心。
|
||||||
mode.custom = 自定义模式
|
mode.custom = 自定义模式
|
||||||
|
|
||||||
rules.infiniteresources = 无限资源
|
rules.infiniteresources = 无限资源
|
||||||
|
rules.reactorexplosions = 反应堆爆炸
|
||||||
rules.wavetimer = 波次计时器
|
rules.wavetimer = 波次计时器
|
||||||
rules.waves = 波次
|
rules.waves = 波次
|
||||||
rules.attack = 攻击模式
|
rules.attack = 攻击模式
|
||||||
rules.enemyCheat = 敌人无限资源
|
rules.enemyCheat = 敌人(红队)无限资源
|
||||||
rules.unitdrops = 敌人出生点
|
rules.unitdrops = 敌人出生点
|
||||||
rules.unitbuildspeedmultiplier = 单位生产速度倍数
|
rules.unitbuildspeedmultiplier = 单位生产速度倍数
|
||||||
rules.unithealthmultiplier = 单位生命倍数
|
rules.unithealthmultiplier = 单位生命倍数
|
||||||
rules.playerhealthmultiplier = 玩家生命倍数
|
rules.playerhealthmultiplier = 玩家生命倍数
|
||||||
rules.playerdamagemultiplier = 玩家伤害倍数
|
rules.playerdamagemultiplier = 玩家伤害倍数
|
||||||
rules.unitdamagemultiplier = 单位伤害倍数
|
rules.unitdamagemultiplier = 单位伤害倍数
|
||||||
rules.enemycorebuildradius = 敌对核心非建设区半径:[LIGHT_GRAY](格)
|
rules.enemycorebuildradius = 敌对核心非建设区半径:[lightgray](格)
|
||||||
rules.respawntime = 重生时间:[LIGHT_GRAY](秒)
|
rules.respawntime = 重生时间:[lightgray](秒)
|
||||||
rules.wavespacing = 波次间隔时间:[LIGHT_GRAY](秒)
|
rules.wavespacing = 波次间隔时间:[lightgray](秒)
|
||||||
rules.buildcostmultiplier = 建设花费倍数
|
rules.buildcostmultiplier = 建设花费倍数
|
||||||
rules.buildspeedmultiplier = 建设时间倍数
|
rules.buildspeedmultiplier = 建设时间倍数
|
||||||
rules.waitForWaveToEnd = 等待敌人时间
|
rules.waitForWaveToEnd = 等待敌人时间
|
||||||
rules.dropzoneradius = 敌人出生点毁灭大小:[LIGHT_GRAY](格)
|
rules.dropzoneradius = 敌人出生点毁灭大小:[lightgray](格)
|
||||||
rules.respawns = 每波最大重生次数
|
rules.respawns = 每波最大重生次数
|
||||||
rules.limitedRespawns = 重生限制次数
|
rules.limitedRespawns = 重生限制次数
|
||||||
rules.title.waves = 波次
|
rules.title.waves = 波次
|
||||||
@@ -753,21 +772,22 @@ mech.trident-ship.name = Trident
|
|||||||
mech.trident-ship.weapon = 炸弹
|
mech.trident-ship.weapon = 炸弹
|
||||||
mech.glaive-ship.name = Glaive
|
mech.glaive-ship.name = Glaive
|
||||||
mech.glaive-ship.weapon = 火焰机枪
|
mech.glaive-ship.weapon = 火焰机枪
|
||||||
item.explosiveness = [LIGHT_GRAY]爆炸性:{0}
|
item.explosiveness = [lightgray]爆炸性:{0}
|
||||||
item.flammability = [LIGHT_GRAY]易燃性:{0}
|
item.flammability = [lightgray]易燃性:{0}
|
||||||
item.radioactivity = [LIGHT_GRAY]放射性:{0}
|
item.radioactivity = [lightgray]放射性:{0}
|
||||||
unit.health = [LIGHT_GRAY]生命值:{0}
|
unit.health = [lightgray]生命值:{0}
|
||||||
unit.speed = [LIGHT_GRAY]速度:{0}
|
unit.speed = [lightgray]速度:{0}
|
||||||
mech.weapon = [LIGHT_GRAY]武器:{0}
|
mech.weapon = [lightgray]武器:{0}
|
||||||
mech.health = [LIGHT_GRAY]生命值:{0}
|
mech.health = [lightgray]生命值:{0}
|
||||||
mech.itemcapacity = [LIGHT_GRAY]物品容量:{0}
|
mech.itemcapacity = [lightgray]物品容量:{0}
|
||||||
mech.minespeed = [LIGHT_GRAY]采矿速度:{0}
|
mech.minespeed = [lightgray]采矿速度:{0}
|
||||||
mech.minepower = [LIGHT_GRAY]采矿力量:{0}
|
mech.minepower = [lightgray]采矿力量:{0}
|
||||||
mech.ability = [LIGHT_GRAY]能力:{0}
|
mech.ability = [lightgray]能力:{0}
|
||||||
mech.buildspeed = [LIGHT_GRAY]建造速度:{0}%
|
mech.buildspeed = [lightgray]建造速度:{0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]热容量:{0}
|
liquid.heatcapacity = [lightgray]热容量:{0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]粘度:{0}
|
liquid.viscosity = [lightgray]粘度:{0}
|
||||||
liquid.temperature = [LIGHT_GRAY]温度:{0}
|
liquid.temperature = [lightgray]温度:{0}
|
||||||
|
|
||||||
block.sand-boulder.name = 沙砂巨石
|
block.sand-boulder.name = 沙砂巨石
|
||||||
block.grass.name = 草地
|
block.grass.name = 草地
|
||||||
block.salt.name = 盐碱地
|
block.salt.name = 盐碱地
|
||||||
@@ -794,7 +814,7 @@ block.thruster.name = 助力器
|
|||||||
block.kiln.name = 熔炉
|
block.kiln.name = 熔炉
|
||||||
block.graphite-press.name = 石墨压缩机
|
block.graphite-press.name = 石墨压缩机
|
||||||
block.multi-press.name = 多重压缩机
|
block.multi-press.name = 多重压缩机
|
||||||
block.constructing = {0}\n[LIGHT_GRAY](建造中)
|
block.constructing = {0}\n[lightgray](建造中)
|
||||||
block.spawn.name = 敌人出生点
|
block.spawn.name = 敌人出生点
|
||||||
block.core-shard.name = 小型核心
|
block.core-shard.name = 小型核心
|
||||||
block.core-foundation.name = 中型核心
|
block.core-foundation.name = 中型核心
|
||||||
@@ -859,13 +879,14 @@ block.lancer.name = 蓝瑟炮
|
|||||||
block.conveyor.name = 传送带
|
block.conveyor.name = 传送带
|
||||||
block.titanium-conveyor.name = 钛传送带
|
block.titanium-conveyor.name = 钛传送带
|
||||||
block.armored-conveyor.name = 装甲传送带
|
block.armored-conveyor.name = 装甲传送带
|
||||||
block.armored-conveyor.description = 向钛传送带一样运物品,但有更好的装甲。除其他传送带,不接受任何边的输入。
|
block.armored-conveyor.description = 运送物品,与钛传送带一样的速度,但有更强的装甲。除其他传送带,不接受任何边的输入。
|
||||||
block.junction.name = 连接点
|
block.junction.name = 连接桥
|
||||||
block.router.name = 路由器
|
block.router.name = 路由器
|
||||||
block.distributor.name = 分配器
|
block.distributor.name = 分配器
|
||||||
block.sorter.name = 分类器
|
block.sorter.name = 分类器
|
||||||
block.inverted-sorter.name = 反向分类器
|
block.inverted-sorter.name = 反向分类器
|
||||||
block.message.name = 信息板
|
block.message.name = 信息板
|
||||||
|
block.illuminator.name = Illuminator
|
||||||
block.overflow-gate.name = 溢流门
|
block.overflow-gate.name = 溢流门
|
||||||
block.silicon-smelter.name = 硅冶炼厂
|
block.silicon-smelter.name = 硅冶炼厂
|
||||||
block.phase-weaver.name = 相织布编织器
|
block.phase-weaver.name = 相织布编织器
|
||||||
@@ -879,6 +900,7 @@ block.coal-centrifuge.name = 煤炭离心机
|
|||||||
block.power-node.name = 能量节点
|
block.power-node.name = 能量节点
|
||||||
block.power-node-large.name = 大型能量节点
|
block.power-node-large.name = 大型能量节点
|
||||||
block.surge-tower.name = 巨浪塔
|
block.surge-tower.name = 巨浪塔
|
||||||
|
block.diode.name = Battery Diode
|
||||||
block.battery.name = 电池
|
block.battery.name = 电池
|
||||||
block.battery-large.name = 大型电池
|
block.battery-large.name = 大型电池
|
||||||
block.combustion-generator.name = 燃烧发电机
|
block.combustion-generator.name = 燃烧发电机
|
||||||
@@ -931,10 +953,11 @@ block.fortress-factory.name = 堡垒机甲工厂
|
|||||||
block.revenant-factory.name = 亡魂战机工厂
|
block.revenant-factory.name = 亡魂战机工厂
|
||||||
block.repair-point.name = 维修点
|
block.repair-point.name = 维修点
|
||||||
block.pulse-conduit.name = 脉冲导管
|
block.pulse-conduit.name = 脉冲导管
|
||||||
|
block.plated-conduit.name = Plated Conduit
|
||||||
block.phase-conduit.name = 相织布导管桥
|
block.phase-conduit.name = 相织布导管桥
|
||||||
block.liquid-router.name = 液体路由器
|
block.liquid-router.name = 液体路由器
|
||||||
block.liquid-tank.name = 储液罐
|
block.liquid-tank.name = 储液罐
|
||||||
block.liquid-junction.name = 液体连接点
|
block.liquid-junction.name = 液体连接桥
|
||||||
block.bridge-conduit.name = 导管桥
|
block.bridge-conduit.name = 导管桥
|
||||||
block.rotary-pump.name = 回旋泵
|
block.rotary-pump.name = 回旋泵
|
||||||
block.thorium-reactor.name = 钍反应堆
|
block.thorium-reactor.name = 钍反应堆
|
||||||
@@ -959,13 +982,13 @@ block.meltdown.name = 熔毁
|
|||||||
block.container.name = 容器
|
block.container.name = 容器
|
||||||
block.launch-pad.name = 发射台
|
block.launch-pad.name = 发射台
|
||||||
block.launch-pad-large.name = 大型发射台
|
block.launch-pad-large.name = 大型发射台
|
||||||
team.blue.name = 胖次蓝
|
team.blue.name = 蓝
|
||||||
team.crux.name = 姨妈红
|
team.crux.name = 红
|
||||||
team.sharded.name = 哲学黄
|
team.sharded.name = 黄
|
||||||
team.orange.name = 太阳橙
|
team.orange.name = 橙
|
||||||
team.derelict.name = 高冷灰
|
team.derelict.name = 灰
|
||||||
team.green.name = 原谅绿
|
team.green.name = 绿
|
||||||
team.purple.name = 基佬紫
|
team.purple.name = 紫
|
||||||
unit.spirit.name = 幽灵修理机
|
unit.spirit.name = 幽灵修理机
|
||||||
unit.draug.name = 德鲁格采矿机
|
unit.draug.name = 德鲁格采矿机
|
||||||
unit.phantom.name = 鬼怪建造机
|
unit.phantom.name = 鬼怪建造机
|
||||||
@@ -983,25 +1006,26 @@ unit.lich.name = 尸鬼
|
|||||||
unit.reaper.name = 死神
|
unit.reaper.name = 死神
|
||||||
tutorial.next = [lightgray]<点击以继续>
|
tutorial.next = [lightgray]<点击以继续>
|
||||||
tutorial.intro = 你进入了[scarlet] Mindustry 教程[]。\n[accent]采集铜矿[]以开始。点击附近的一处铜矿。\n\n[accent]{0}/{1} 铜
|
tutorial.intro = 你进入了[scarlet] Mindustry 教程[]。\n[accent]采集铜矿[]以开始。点击附近的一处铜矿。\n\n[accent]{0}/{1} 铜
|
||||||
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
tutorial.intro.mobile = 您已进入[scarlet] Mindustry 教程[]。\n在屏幕上滑动来继续。\n[accent]双指捏合 [] 来缩小和放大。\n让我们从[accent]采集铜矿[]开始。先移动到它旁边,然后点按矿脉附近散落的矿物。\n\n[accent]铜 {0}/{1}
|
||||||
tutorial.drill = 手动采矿效率低。\n[accent]钻头[]可以自动采矿。\n放一个在铜矿上吧。\n点击右下角的钻头菜单。\n选择[accent]机械钻头[]。\n单击将其放置在铜矿上。\n[accent]右键单击[]来停止。
|
tutorial.drill = 手动采矿效率不佳。\n[accent]钻头[]可以自动采矿。\n让我们在在铜矿上放一个。\n点击右下角的钻头菜单。\n选择[accent]机械钻头[]。\n单击将其放置在铜矿上。\n[accent]右键单击[]来停止。
|
||||||
tutorial.drill.mobile = 手动采矿效率低。\n[accent]钻头[]可以自动采矿。\n点击右下角的钻头菜单。\n选择[accent]机械钻头[]。\n点击将其放在铜矿上,点击[accent]对号[]来确定。\n点击[accent]叉号[]来取消。
|
tutorial.drill.mobile = 手动采矿效率不佳。\n[accent]钻头[]可以自动采矿。\n点右下角的钻头菜单。\n选择[accent]机械钻头[]。\n点一下将其放在铜矿上,点[accent]对号[]来确定。\n点[accent]叉号[]来取消。
|
||||||
tutorial.blockinfo = 每个方块具有不同的数据。每个钻头只能开采某些矿石。\n要检查块的信息和统计信息,[accent]在菜单中点击问号。[]\n\n[accent]现在查看机械钻头的数据吧。[]
|
tutorial.blockinfo = 每种方块都有其独特的数据。每个钻头只能开采部分矿石。\n若要查看块的信息和统计信息,[accent]在菜单中点击问号。[]\n\n[accent]现在查看机械钻头的数据吧。[]
|
||||||
tutorial.conveyor = [accent]传送带[]可以把物资传送到核心。\n请从钻头到核心间造一条传送带。
|
tutorial.conveyor = [accent]传送带[]可以把物资传送到核心。\n请在钻头到核心间建造一条传送带。
|
||||||
tutorial.conveyor.mobile = [accent]传送带[]可以把物资传送到核心。\n请从钻头到核心间造一条传送带。\n[accent]长按数秒[]并向一个方向拖动来直线放置。\n\n[accent]{0}/{1} 条传送带\n[accent]0/1 物品
|
tutorial.conveyor.mobile = [accent]传送带[]可以把物资传送到核心。\n请在钻头到核心间建造一条传送带。\n[accent]长按数秒[]并向一个方向拖动来直线放置。\n\n[accent]{0}/{1} 条传送带\n[accent]0/1 物品
|
||||||
tutorial.turret = 必须建造防御建筑来击退[LIGHT_GRAY]敌人[]。\n请在核心附近造一个双管炮。
|
tutorial.turret = 必须建造防御建筑来击退[lightgray]敌人[]。\n请在核心附近造一个双管炮。
|
||||||
tutorial.drillturret = 双管炮需要[accent]铜[]作弹药来射击。\n可以放一个钻头在炮塔附近供应铜。
|
tutorial.drillturret = 双管炮需要[accent]铜[]作弹药来射击。\n可以放一个钻头在炮塔附近供应铜。
|
||||||
tutorial.pause = 在战斗中,您可以[accent]暂停游戏[]。\n暂停时您可以规划建筑物。\n\n按[accent]空格[]暂停。
|
tutorial.pause = 在战斗中,您可以[accent]暂停游戏[]。\n暂停时您可以规划建筑物。\n\n按[accent]空格[]暂停。
|
||||||
tutorial.pause.mobile = 在战斗中,您可以[accent]暂停游戏[]。\n暂停时您可以规划建筑物。\n\n[accent]点击左上角的按钮以暂停。
|
tutorial.pause.mobile = 在战斗中,您可以[accent]暂停游戏[]。\n暂停时您可以规划建筑物。\n\n[accent]点击左上角的按钮以暂停。
|
||||||
tutorial.unpause = 现在再次按空格以继续。
|
tutorial.unpause = 现在再次按空格以继续。
|
||||||
tutorial.unpause.mobile = 现在再次点击以继续。
|
tutorial.unpause.mobile = 现在再次点按以继续。
|
||||||
tutorial.breaking = 方块经常需要拆除。\n[accent]按住鼠标右键[]来拆除选中的方块。[]\n\n[accent]使用范围拆除来拆除核心左侧的废墙。
|
tutorial.breaking = 方块经常需要拆除。\n[accent]按住鼠标右键[]来拆除选中的方块。[]\n\n[accent]使用范围拆除来拆除核心左侧的废墙。
|
||||||
tutorial.breaking.mobile = 方块经常需要拆除。\n[accent]选择拆除模式[],点击方块以拆除。\n[accent]长按几秒[]并拖动来范围拆除。\n点击对号来确定。\n\n[accent]使用范围拆除来拆除核心左侧的废墙。
|
tutorial.breaking.mobile = 方块经常需要拆除。\n[accent]选择拆除模式[],点击方块以拆除。\n[accent]长按几秒[]并拖动来范围拆除。\n点击对号来确定。\n\n[accent]使用范围拆除来拆除核心左侧的废墙。
|
||||||
tutorial.withdraw = 有时,从方块中取出物品是必要的。\n[accent]点击有物品的方块[],然后[accent]点击在方框中的物品[]。\n可以通过[accent]点击或长按[]来取出物品。\n\n[accent]从核心中取出一些铜[]。
|
tutorial.withdraw = 有时,从方块中取出物品是必要的。\n[accent]点击有物品的方块[],然后[accent]点击在方框中的物品[]。\n可以通过[accent]点击或长按[]来取出物品。\n\n[accent]从核心中取出一些铜[]。
|
||||||
tutorial.deposit = 将物品从机甲拖向方块来放下物品。\n\n[accent]将铜放回核心[]。
|
tutorial.deposit = 将物品从机甲拖向方块来放下物品。\n\n[accent]将铜放回核心[]。
|
||||||
tutorial.waves = [lightgray]敌人[]来了。\n\n保护核心,防御2波攻击。造更多的炮塔。[accent]点击[]以射击。\n建造更多的炮塔和钻头,并采更多的矿。
|
tutorial.waves = [lightgray]敌人[]来了。\n\n保护核心,防御两波攻击。造更多的炮塔。[accent]点击[]以射击。\n建造更多的炮塔和钻头,并采更多的矿。
|
||||||
tutorial.waves.mobile = [lightgray]敌人[]来了。\n\n保护核心,防御2波攻击。造更多的炮塔。你的机甲将对敌人自动开火。\n建造更多的炮塔和钻头,并采更多的矿。
|
tutorial.waves.mobile = [lightgray]敌人[]来了。\n\n保护核心,防御两波攻击。造更多的炮塔。你的机甲将对敌人自动开火。\n建造更多的炮塔和钻头,并采更多的矿。
|
||||||
tutorial.launch = 特定波次中,你可以[accent]发射核心[],[accent]携带核心中所有资源[]离开所有的建筑。\n资源可用来研究科技。\n\n[accent]点击发射按钮。
|
tutorial.launch = 特定波次中,你可以[accent]发射核心[],[accent]携带核心中所有资源[]离开所有的建筑。\n资源可用来研究科技。\n\n[accent]点击发射按钮。
|
||||||
|
|
||||||
item.copper.description = 一种有用的结构材料。在各种类型的方块中广泛使用。
|
item.copper.description = 一种有用的结构材料。在各种类型的方块中广泛使用。
|
||||||
item.lead.description = 一种基本的起始材料。广泛用于电子设备和液体运输。
|
item.lead.description = 一种基本的起始材料。广泛用于电子设备和液体运输。
|
||||||
item.metaglass.description = 一种超级强硬的复合玻璃。通常用来传送和收藏液体。
|
item.metaglass.description = 一种超级强硬的复合玻璃。通常用来传送和收藏液体。
|
||||||
@@ -1052,7 +1076,7 @@ block.alloy-smelter.description = 用钛,铅,硅和铜生产浪涌合金。
|
|||||||
block.cryofluidmixer.description = 水和钛结合到低温流体中,冷却效率更高。
|
block.cryofluidmixer.description = 水和钛结合到低温流体中,冷却效率更高。
|
||||||
block.blast-mixer.description = 用油将硫转化为不易燃但更具爆炸性的爆炸化合物。
|
block.blast-mixer.description = 用油将硫转化为不易燃但更具爆炸性的爆炸化合物。
|
||||||
block.pyratite-mixer.description = 将煤,铅和沙子混合成高度易燃的硫。
|
block.pyratite-mixer.description = 将煤,铅和沙子混合成高度易燃的硫。
|
||||||
block.melter.description = 将废料熔化成矿渣,以便进一步加工或用于炮塔子弹。
|
block.melter.description = 将废料熔化成矿渣,以便进一步加工或用于炮塔弹药。
|
||||||
block.separator.description = 从矿渣中提取有用的矿物。
|
block.separator.description = 从矿渣中提取有用的矿物。
|
||||||
block.spore-press.description = 压缩孢子荚得到石油。
|
block.spore-press.description = 压缩孢子荚得到石油。
|
||||||
block.pulverizer.description = 将废料压碎成沙子。当缺少天然沙子时很有用。
|
block.pulverizer.description = 将废料压碎成沙子。当缺少天然沙子时很有用。
|
||||||
@@ -1063,49 +1087,51 @@ block.power-source.description = 无限输出能量。仅限沙盒。
|
|||||||
block.item-source.description = 无限输出物品。仅限沙盒。
|
block.item-source.description = 无限输出物品。仅限沙盒。
|
||||||
block.item-void.description = 在不使用能量的情况下销毁任何进入它的物品。仅限沙盒。
|
block.item-void.description = 在不使用能量的情况下销毁任何进入它的物品。仅限沙盒。
|
||||||
block.liquid-source.description = 无限输出液体。仅限沙盒。
|
block.liquid-source.description = 无限输出液体。仅限沙盒。
|
||||||
block.copper-wall.description = 廉价的防守方块。\n用于保护前几波中的核心和炮塔。
|
block.copper-wall.description = 廉价的防御方块。\n适合在前几个波次中保护核心和炮塔。
|
||||||
block.copper-wall-large.description = 廉价的防守方块。\n用于保护前几个波浪中的核心和炮塔。\n跨越多个区块。
|
block.copper-wall-large.description = 廉价的防御方块。\n适合在前几个波次中保护核心和炮塔。\n跨越多个区块。
|
||||||
block.titanium-wall.description = 中等强度的防御方块。\n提供中等强度的防御以抵御敌人。
|
block.titanium-wall.description = 中等强度的防御方块。\n提供中等强度的防御以抵御敌人。
|
||||||
block.titanium-wall-large.description = 一个中等强度的防御方块。\n提供中等强度的防御以防敌人攻击。\n跨越多个区块。
|
block.titanium-wall-large.description = 中等强度的防御方块。\n提供中等强度的防御以防敌人攻击。\n跨越多个区块。
|
||||||
block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.
|
block.plastanium-wall.description = 一种特殊的防御方块,能吸收电弧、自动与能量节点连接。
|
||||||
block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles.
|
block.plastanium-wall-large.description = 一种特殊的防御方块,能吸收电弧、自动与能量节点连接。\n跨越多个区块。
|
||||||
block.thorium-wall.description = 强大的防守方块。\n可以很好的防御敌人。
|
block.thorium-wall.description = 强大的防御方块。\n可以很好的防御敌人。
|
||||||
block.thorium-wall-large.description = 强大的防守方块。\n很好地防御敌人。\n跨越多个区块。
|
block.thorium-wall-large.description = 强大的防御方块。\n很好地防御敌人。\n跨越多个区块。
|
||||||
block.phase-wall.description = 没有钍墙那样坚固,但是它可以使不太强的子弹发生偏转。
|
block.phase-wall.description = 没有钍墙那样坚固,但是它可以使不太强的弹药发生偏转。
|
||||||
block.phase-wall-large.description = 没有钍墙那样坚固,但是它可以使不太强的子弹发生偏转。\n跨越多个区块。
|
block.phase-wall-large.description = 没有钍墙那样坚固,但是它可以使不太强的弹药发生偏转。\n跨越多个区块。
|
||||||
block.surge-wall.description = 强大的防守方块。\n有很小的机会向攻击者发射闪电。
|
block.surge-wall.description = 强大的防御方块。\n有很小的机会向攻击者发射闪电。
|
||||||
block.surge-wall-large.description = 强大的防御方块。\n有很小的机会向攻击者发射闪电。\n跨越多个区块。
|
block.surge-wall-large.description = 强大的防御方块。\n有很小的机会向攻击者发射闪电。\n跨越多个区块。
|
||||||
block.door.description = 一扇小门,可以通过点击打开和关闭。\n如果打开,敌人可以射击并穿过。
|
block.door.description = 一扇小门,可以通过点击打开和关闭。\n如果打开,敌人可以射击并穿过。
|
||||||
block.door-large.description = 一扇大门,可以通过点击打开和关闭。\n如果打开,敌人可以射击并穿过。\n跨越多个区块。
|
block.door-large.description = 一扇大门,可以通过点击打开和关闭。\n如果打开,敌人可以射击并穿过。\n跨越多个区块。
|
||||||
block.mender.description = 会定期修理附近的方块,使防御系统在波与波之间得到修复。\n可以使用硅来提高修复范围和修复效率。
|
block.mender.description = 会定期修理附近的方块,使防御系统在波与波之间得到修复。\n可以使用硅来提高修复范围和修复效率。
|
||||||
block.mend-projector.description = 修理者的升级版,会定期修复附近的建筑物。
|
block.mend-projector.description = 修理者的升级版,会定期修复附近的建筑物。
|
||||||
block.overdrive-projector.description = 提高附近建筑物的速度,如钻头和传送带。
|
block.overdrive-projector.description = 提高附近建筑物的速度,如钻头和传送带。
|
||||||
block.force-projector.description = 自身周围创建一个六边形力场,使建筑物和内部单位免受子弹的伤害。
|
block.force-projector.description = 自身周围创建一个六边形力场,使建筑物和内部单位免受弹药的伤害。
|
||||||
block.shock-mine.description = 伤害踩到它的敌人。敌人几乎看不到它。
|
block.shock-mine.description = 伤害踩到它的敌人。敌人几乎看不到它。
|
||||||
block.conveyor.description = 初级传送带。将物品向前输送并将它们放入炮塔或工厂中。可旋转方向。
|
block.conveyor.description = 初级传送带。将物品向前输送并将它们放入炮塔或工厂中。可旋转方向。
|
||||||
block.titanium-conveyor.description = 高级传送带,比初级传送带更快地输送物品。
|
block.titanium-conveyor.description = 高级传送带,比初级传送带更快地输送物品。
|
||||||
block.junction.description = 两条交叉传送带的桥梁。适用于两条不同方向传送带将不同物品运送到不同位置的情况。
|
block.junction.description = 作为交叉的两条传送带的桥梁。适用于两条不同方向的传送带将不同的物品运送到不同的位置。
|
||||||
block.bridge-conveyor.description = 高级物品传输方块。允许跨越任何地形或建筑物上运输物品,最多跨越3个块。
|
block.bridge-conveyor.description = 高级物品传输方块。允许跨越任何地形或建筑物上运输物品,最多跨越3个块。
|
||||||
block.phase-conveyor.description = 高级传送带,使用电力将物品传送到距离几个块的相位传送带上。
|
block.phase-conveyor.description = 高级传送带,使用电力将物品传送到距离几个块的相位传送带上。
|
||||||
block.sorter.description = 对物品进行分类,如果物品与所选种类相同,则允许其通过。否则,物品将从左边和右边输出。
|
block.sorter.description = 对物品进行分类,如果物品与所选种类相同,则允许其通过。否则,物品将从左边和右边输出。
|
||||||
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
|
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
|
||||||
block.router.description = 从一个方向接受物品,并将它们平均输出到其他3个方向。可以将材料分成多份。
|
block.router.description = 从一个方向接受物品,并将它们平均输出到其他3个方向。可以将材料分成多份。
|
||||||
block.distributor.description = 一个高级路由器,可以将物品向最多7个方向输出。
|
block.distributor.description = 一个高级路由器,可以将物品向最多7个方向输出。
|
||||||
block.overflow-gate.description = 分离器和路由器的组合,如果前面被挡住,则向从左和右输出。
|
block.overflow-gate.description = 分离器和路由器的组合,如果前面被挡住,则向从左和右输出。
|
||||||
block.mass-driver.description = 终极传送带,收集物品后将它们射向远处的另一个质量驱动器。
|
block.mass-driver.description = 终极传送带,收集物品后将它们射向远处的另一个质量驱动器。
|
||||||
block.mechanical-pump.description = 一种输出速度慢但没有功耗的廉价泵。
|
block.mechanical-pump.description = 一种输出速度慢但没有功耗的廉价泵。
|
||||||
block.rotary-pump.description = 先进的水泵。泵送更多液体,但需要能量。
|
block.rotary-pump.description = 先进的水泵。泵送更多液体,但需要能量。
|
||||||
block.thermal-pump.description = 终级水泵。
|
block.thermal-pump.description = 终级水泵。
|
||||||
block.conduit.description = 基本液体传输管道。像传送带一样工作,但仅适用于液体。用于从泵或其他导管中提取液体。
|
block.conduit.description = 基本液体传输管道。像传送带一样工作,但仅适用于液体。用于从泵或其他导管中提取液体。
|
||||||
block.pulse-conduit.description = 高级液体传输管道。比普通导管更快地输送液体且能储存更多液体。
|
block.pulse-conduit.description = 高级液体传输管道。比普通导管更快地输送液体且能储存更多液体。
|
||||||
|
block.plated-conduit.description = 转移液体的速度与脉冲导管相同,但护甲更强。Does not accept fluids from the sides by anything other than conduits.\n更少泄漏。
|
||||||
block.liquid-router.description = 接受来自一个方向的液体并将它们平均输出到其他3个方向。同时可以储存一定量的液体。用于将液体从一个源分成多个目标。
|
block.liquid-router.description = 接受来自一个方向的液体并将它们平均输出到其他3个方向。同时可以储存一定量的液体。用于将液体从一个源分成多个目标。
|
||||||
block.liquid-tank.description = 存储大量液体,可用于在材料需求不恒定的时候提供缓冲,或作为供给冷却液体的保障。
|
block.liquid-tank.description = 存储大量液体,可用于在材料需求不恒定的时候提供缓冲,或作为供给冷却液体的保障。
|
||||||
block.liquid-junction.description = 作为两个交叉管道的桥梁。适用于两种不同方向的导管将不同液体输送到不同位置的情况。
|
block.liquid-junction.description = 作为两个交叉管道的桥梁。适用于两种不同方向的导管将不同液体输送到不同位置的情况。
|
||||||
block.bridge-conduit.description = 高级液体传输方块。可以跨越任何地形或建筑物,最多跨越3格来传输液体。
|
block.bridge-conduit.description = 高级液体传输方块。可以跨越任何地形或建筑物,最多跨越3格来传输液体。
|
||||||
block.phase-conduit.description = 高级液体传输方块。使用电力将液体传送到多个块上的连接管道。
|
block.phase-conduit.description = 高级液体传输方块。使用电力将液体传送到多个块上的连接管道。
|
||||||
block.power-node.description = 将电源传输到连接的节点上。节点将接收来自任何方块的能量或向任何方块供给能量。
|
block.power-node.description = 将电源传输到连接的节点上。节点将接收来自任何方块的能量或向任何方块供给能量。
|
||||||
block.power-node-large.description = 拥有大范围和多连接点的高级能量节点。
|
block.power-node-large.description = 拥有大范围和多连接点的高级能量节点。
|
||||||
block.surge-tower.description = 连接点较少,但是距离远的能量节点。
|
block.surge-tower.description = 连接点较少,但是距离远的能量节点。
|
||||||
|
block.diode.description = Battery power can flow through this block in only one direction, but only if the other side has less power stored.
|
||||||
block.battery.description = 储存能量,当储存有能量时,可在能源短缺时提供能量。
|
block.battery.description = 储存能量,当储存有能量时,可在能源短缺时提供能量。
|
||||||
block.battery-large.description = 比普通电池容量更大。
|
block.battery-large.description = 比普通电池容量更大。
|
||||||
block.combustion-generator.description = 燃烧煤等材料发电。
|
block.combustion-generator.description = 燃烧煤等材料发电。
|
||||||
@@ -1124,15 +1150,15 @@ block.blast-drill.description = 终极钻头,需要大量电力。
|
|||||||
block.water-extractor.description = 从地下提取水。当附近没有水源时使用它。
|
block.water-extractor.description = 从地下提取水。当附近没有水源时使用它。
|
||||||
block.cultivator.description = 将微小的孢子培养成工业用的孢子荚。
|
block.cultivator.description = 将微小的孢子培养成工业用的孢子荚。
|
||||||
block.oil-extractor.description = 使用大量的电力从沙子中提取石油。当附近没有直接的石油来源时使用它。
|
block.oil-extractor.description = 使用大量的电力从沙子中提取石油。当附近没有直接的石油来源时使用它。
|
||||||
block.core-shard.description = 核心第一代。一旦被摧毁,与该地区的所有连接都将断开。不要让他被摧毁。
|
block.core-shard.description = 核心第一代。一旦被摧毁,与该地区的所有连接都将断开。不要让它被摧毁。
|
||||||
block.core-foundation.description = 核心第二代。血量更高。可以存储更多资源。
|
block.core-foundation.description = 核心第二代。血量更高。可以存储更多资源。
|
||||||
block.core-nucleus.description = 核心第三代,也是最后一代,血量非常高。存储大量资源。
|
block.core-nucleus.description = 核心第三代,也是最后一代,血量非常高。存储大量资源。
|
||||||
block.vault.description = 存储大量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。[LIGHT_GRAY]卸载器[]可从仓库中提取物品。
|
block.vault.description = 存储大量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。[lightgray]卸载器[]可从仓库中提取物品。
|
||||||
block.container.description = 存储少量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。[LIGHT_GRAY]卸载器[]可从容器中提取物品。
|
block.container.description = 存储少量物品。当存在非恒定的材料需求时,使用它来创建缓冲区。[lightgray]卸载器[]可从容器中提取物品。
|
||||||
block.unloader.description = 物品可以从容器,仓库或核心提取到传送带上或直接提取到相邻的方块中。可以通过点击卸载器来更改要卸载的项目类型。
|
block.unloader.description = 物品可以从容器,仓库或核心提取到传送带上或直接提取到相邻的方块中。可以通过点击卸载器来更改要卸载的项目类型。
|
||||||
block.launch-pad.description = 允许不通过核心发射物体。
|
block.launch-pad.description = 允许不通过核心发射物体。
|
||||||
block.launch-pad-large.description = 发射台的改进版,可以存储更多物体的同时启动频率更高。
|
block.launch-pad-large.description = 发射台的改进版,可以存储更多物体的同时启动频率更高。
|
||||||
block.duo.description = 小而便宜的炮塔,对地有效。
|
block.duo.description = 小而便宜的炮塔,对地有效。
|
||||||
block.scatter.description = 不可或缺的防空炮塔,向空中敌人发射铅或废料。
|
block.scatter.description = 不可或缺的防空炮塔,向空中敌人发射铅或废料。
|
||||||
block.scorch.description = 小型炮塔,燃烧任何靠近它的地面敌人。近距离非常有效。
|
block.scorch.description = 小型炮塔,燃烧任何靠近它的地面敌人。近距离非常有效。
|
||||||
block.hail.description = 小型远程炮台。
|
block.hail.description = 小型远程炮台。
|
||||||
@@ -1144,7 +1170,7 @@ block.salvo.description = 双管炮的升级版。中型,齐射射击。
|
|||||||
block.fuse.description = 大型炮塔,发射三道刺穿敌人的短程光束。
|
block.fuse.description = 大型炮塔,发射三道刺穿敌人的短程光束。
|
||||||
block.ripple.description = 大型远程炮台,非常强力,向远处的敌人投射一簇弹药。
|
block.ripple.description = 大型远程炮台,非常强力,向远处的敌人投射一簇弹药。
|
||||||
block.cyclone.description = 大型快速炮塔,对空对地,向周围敌人发射爆炸弹。
|
block.cyclone.description = 大型快速炮塔,对空对地,向周围敌人发射爆炸弹。
|
||||||
block.spectre.description = 超大型炮塔,对空对地,一次射出两颗强大的穿甲子弹。
|
block.spectre.description = 超大型炮塔,对空对地,一次射出两颗强大的穿甲弹药。
|
||||||
block.meltdown.description = 超大型激光炮塔,充能之后持续发射光束,需要冷却剂。
|
block.meltdown.description = 超大型激光炮塔,充能之后持续发射光束,需要冷却剂。
|
||||||
block.command-center.description = 在地图上向盟军发出移动命令。\n使用部队巡逻、攻击敌军核心或撤退到核心/工厂。当没有敌人核心时,部队默认在攻击命令下巡逻。
|
block.command-center.description = 在地图上向盟军发出移动命令。\n使用部队巡逻、攻击敌军核心或撤退到核心/工厂。当没有敌人核心时,部队默认在攻击命令下巡逻。
|
||||||
block.draug-factory.description = 生产德鲁格釆矿机。
|
block.draug-factory.description = 生产德鲁格釆矿机。
|
||||||
|
|||||||
@@ -16,14 +16,16 @@ screenshot = 截圖保存到{0}
|
|||||||
screenshot.invalid = 地圖太大了,可能沒有足夠的內存用於截圖。
|
screenshot.invalid = 地圖太大了,可能沒有足夠的內存用於截圖。
|
||||||
gameover = 遊戲結束
|
gameover = 遊戲結束
|
||||||
gameover.pvp = [accent]{0}[]隊獲勝!
|
gameover.pvp = [accent]{0}[]隊獲勝!
|
||||||
highscore = [accent]新的高分紀錄!
|
highscore = [accent]新的高分紀錄!
|
||||||
copied = 已複製。
|
copied = 已複製。
|
||||||
|
|
||||||
load.sound = 音效載入中
|
load.sound = 音效載入中
|
||||||
load.map = 地圖載入中
|
load.map = 地圖載入中
|
||||||
load.image = 圖片載入中
|
load.image = 圖片載入中
|
||||||
load.content = 內容載入中
|
load.content = 內容載入中
|
||||||
load.system = 系統載入中
|
load.system = 系統載入中
|
||||||
load.mod = 模組載入中
|
load.mod = 模組載入中
|
||||||
|
|
||||||
schematic = 藍圖
|
schematic = 藍圖
|
||||||
schematic.add = 儲存藍圖...
|
schematic.add = 儲存藍圖...
|
||||||
schematics = 藍圖
|
schematics = 藍圖
|
||||||
@@ -40,6 +42,7 @@ schematic.saved = 藍圖已保存。
|
|||||||
schematic.delete.confirm = 該藍圖將被完全清除。
|
schematic.delete.confirm = 該藍圖將被完全清除。
|
||||||
schematic.rename = 重新命名藍圖
|
schematic.rename = 重新命名藍圖
|
||||||
schematic.info = {0}x{1}, {2}方塊
|
schematic.info = {0}x{1}, {2}方塊
|
||||||
|
|
||||||
stat.wave = 打敗的波次:[accent]{0}
|
stat.wave = 打敗的波次:[accent]{0}
|
||||||
stat.enemiesDestroyed = 摧毀的敵人:[accent]{0}
|
stat.enemiesDestroyed = 摧毀的敵人:[accent]{0}
|
||||||
stat.built = 建設的建築:[accent]{0}
|
stat.built = 建設的建築:[accent]{0}
|
||||||
@@ -47,8 +50,9 @@ stat.destroyed = 摧毀的建築:[accent]{0}
|
|||||||
stat.deconstructed = 拆除的建築:[accent]{0}
|
stat.deconstructed = 拆除的建築:[accent]{0}
|
||||||
stat.delivered = 發射的核心資源:
|
stat.delivered = 發射的核心資源:
|
||||||
stat.rank = 最終排名:[accent]{0}
|
stat.rank = 最終排名:[accent]{0}
|
||||||
|
|
||||||
launcheditems = [accent]已發射的物品
|
launcheditems = [accent]已發射的物品
|
||||||
launchinfo = [unlaunched][[LAUNCH]你的核心以獲得藍字部分的物品。
|
launchinfo = [unlaunched][[發射]核心以獲得藍字部分的物品。
|
||||||
map.delete = 確認要刪除「[accent]{0}[]」地圖嗎?
|
map.delete = 確認要刪除「[accent]{0}[]」地圖嗎?
|
||||||
level.highscore = 最高分:[accent]{0}
|
level.highscore = 最高分:[accent]{0}
|
||||||
level.select = 選擇關卡
|
level.select = 選擇關卡
|
||||||
@@ -74,6 +78,7 @@ maps.browse = 瀏覽地圖
|
|||||||
continue = 繼續
|
continue = 繼續
|
||||||
maps.none = [lightgray]找不到地圖!
|
maps.none = [lightgray]找不到地圖!
|
||||||
invalid = 無效
|
invalid = 無效
|
||||||
|
pickcolor = 選擇顏色
|
||||||
preparingconfig = 配置準備中
|
preparingconfig = 配置準備中
|
||||||
preparingcontent = 內容準備中
|
preparingcontent = 內容準備中
|
||||||
uploadingcontent = 內容上傳中
|
uploadingcontent = 內容上傳中
|
||||||
@@ -81,29 +86,30 @@ uploadingpreviewfile = 上傳預覽文件
|
|||||||
committingchanges = 提交變更
|
committingchanges = 提交變更
|
||||||
done = 完成
|
done = 完成
|
||||||
feature.unsupported = 您的設備不支持此功能。
|
feature.unsupported = 您的設備不支持此功能。
|
||||||
mods.alphainfo = 請記住,模組仍處於Alpha狀態,[scarlet]可能會有很多BUG[].\n向Mindustry Github或Discord報告發現的任何問題。
|
mods.alphainfo = 請記住,模組仍處於Alpha狀態,[scarlet]可能會有很多BUG[].\n向Mindustry GitHub或Discord報告發現的任何問題。
|
||||||
mods.alpha = [accent](Alpha)
|
mods.alpha = [accent](Alpha)
|
||||||
mods = 模組
|
mods = 模組
|
||||||
mods.none = [lightgray]找不到模組!
|
mods.none = [lightgray]找不到模組!
|
||||||
mods.guide = 模組指南
|
mods.guide = 模組指南
|
||||||
mods.report = 回報錯誤
|
mods.report = 回報錯誤
|
||||||
mods.openfolder = Open Mod Folder
|
mods.openfolder = 開啟模組資料夾
|
||||||
mod.enabled = [lightgray]已啟用
|
mod.enabled = [lightgray]已啟用
|
||||||
mod.disabled = [scarlet]已禁用
|
mod.disabled = [scarlet]已禁用
|
||||||
|
mod.enable = 啟用
|
||||||
mod.disable = 禁用
|
mod.disable = 禁用
|
||||||
mod.delete.error = Unable to delete mod. File may be in use.
|
mod.delete.error = 無法刪除模組,檔案可能在使用中。
|
||||||
mod.missingdependencies = [scarlet]缺少依賴項目: {0}
|
mod.missingdependencies = [scarlet]缺少依賴項目: {0}
|
||||||
mod.nowdisabled = [scarlet]「{0}'」模組缺少依賴項目:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動禁用。
|
mod.nowdisabled = [scarlet]「{0}'」模組缺少依賴項目:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動禁用。
|
||||||
mod.enable = 啟用
|
|
||||||
mod.requiresrestart = 遊戲將立即關閉以套用模組變更。
|
mod.requiresrestart = 遊戲將立即關閉以套用模組變更。
|
||||||
mod.reloadrequired = [scarlet]需要重新載入
|
mod.reloadrequired = [scarlet]需要重新載入
|
||||||
mod.import = 匯入模組
|
mod.import = 匯入模組
|
||||||
mod.import.github = 匯入Github模組
|
mod.import.github = 匯入GitHub模組
|
||||||
mod.remove.confirm = 該模組將被刪除。
|
mod.remove.confirm = 該模組將被刪除。
|
||||||
mod.author = [lightgray]作者:[] {0}
|
mod.author = [lightgray]作者:[] {0}
|
||||||
mod.missing = 此存檔含有您最近更新或不再安裝的模組。可能會發生存檔損毀。您確定要載入嗎?\n[lightgray]模組:\n{0}
|
mod.missing = 此存檔含有您最近更新或不再安裝的模組。可能會發生存檔損毀。您確定要載入嗎?\n[lightgray]模組:\n{0}
|
||||||
mod.preview.missing = 在工作坊發佈這個模組前,您必須添加預覽圖。\n在該模組的資料夾中放置一個名為[accent] preview.png[]的圖片並重試。
|
mod.preview.missing = 在工作坊發佈這個模組前,您必須添加預覽圖。\n在該模組的資料夾中放置一個名為[accent] preview.png[]的圖片並重試。
|
||||||
mod.folder.missing = 只有資料夾形式的模組可以在工作坊上發布。\n要將模組轉換為資料夾,只需將其文件解壓縮到資料夾並刪除舊的.zip檔,然後重新啟動遊戲或重新載入模組。
|
mod.folder.missing = 只有資料夾形式的模組可以在工作坊上發布。\n要將模組轉換為資料夾,只需將其文件解壓縮到資料夾並刪除舊的.zip檔,然後重新啟動遊戲或重新載入模組。
|
||||||
|
|
||||||
about.button = 關於
|
about.button = 關於
|
||||||
name = 名稱:
|
name = 名稱:
|
||||||
noname = 請先選擇一個[accent]玩家名稱[]。
|
noname = 請先選擇一個[accent]玩家名稱[]。
|
||||||
@@ -270,7 +276,7 @@ missing = 此項目已被刪除或移動。\n[lightgray]工作坊列表現在已
|
|||||||
publishing = [accent]發佈中...
|
publishing = [accent]發佈中...
|
||||||
publish.confirm = 您確定要發布嗎?\n\n[lightgray]首先確定您同意Workshop EULA,否則您的項目將不會顯示!
|
publish.confirm = 您確定要發布嗎?\n\n[lightgray]首先確定您同意Workshop EULA,否則您的項目將不會顯示!
|
||||||
publish.error = 發佈項目時出錯: {0}
|
publish.error = 發佈項目時出錯: {0}
|
||||||
steam.error = Failed to initialize Steam services.\nError: {0}
|
steam.error = Steam 服務初始化失敗.\n錯誤: {0}
|
||||||
editor.brush = 粉刷
|
editor.brush = 粉刷
|
||||||
editor.openin = 在編輯器中開啟
|
editor.openin = 在編輯器中開啟
|
||||||
editor.oregen = 礦石生成
|
editor.oregen = 礦石生成
|
||||||
@@ -347,6 +353,7 @@ editor.overwrite = [accent]警告!這將會覆蓋現有的地圖。
|
|||||||
editor.overwrite.confirm = [scarlet]警告![]同名地圖存在,確定要覆蓋現有地圖?
|
editor.overwrite.confirm = [scarlet]警告![]同名地圖存在,確定要覆蓋現有地圖?
|
||||||
editor.exists = 具有該名稱的地圖已經存在。
|
editor.exists = 具有該名稱的地圖已經存在。
|
||||||
editor.selectmap = 選取要載入的地圖:
|
editor.selectmap = 選取要載入的地圖:
|
||||||
|
|
||||||
toolmode.replace = 取代
|
toolmode.replace = 取代
|
||||||
toolmode.replace.description = 僅繪製在實體方塊上。
|
toolmode.replace.description = 僅繪製在實體方塊上。
|
||||||
toolmode.replaceall = 全部取代
|
toolmode.replaceall = 全部取代
|
||||||
@@ -361,6 +368,7 @@ toolmode.fillteams = 填充團隊
|
|||||||
toolmode.fillteams.description = 填充團隊而不是方塊。
|
toolmode.fillteams.description = 填充團隊而不是方塊。
|
||||||
toolmode.drawteams = Draw Teams
|
toolmode.drawteams = Draw Teams
|
||||||
toolmode.drawteams.description = 繪製團隊而不是方塊。
|
toolmode.drawteams.description = 繪製團隊而不是方塊。
|
||||||
|
|
||||||
filters.empty = [lightgray]沒有過濾器!使用下面的按鈕添加一個。
|
filters.empty = [lightgray]沒有過濾器!使用下面的按鈕添加一個。
|
||||||
filter.distort = 扭曲
|
filter.distort = 扭曲
|
||||||
filter.noise = 雜訊
|
filter.noise = 雜訊
|
||||||
@@ -392,6 +400,7 @@ filter.option.floor2 = 次要地板
|
|||||||
filter.option.threshold2 = 次要閾值
|
filter.option.threshold2 = 次要閾值
|
||||||
filter.option.radius = 半徑
|
filter.option.radius = 半徑
|
||||||
filter.option.percentile = 百分比
|
filter.option.percentile = 百分比
|
||||||
|
|
||||||
width = 寬度:
|
width = 寬度:
|
||||||
height = 長度:
|
height = 長度:
|
||||||
menu = 主選單
|
menu = 主選單
|
||||||
@@ -407,6 +416,7 @@ tutorial = 教學
|
|||||||
tutorial.retake = 重置教學
|
tutorial.retake = 重置教學
|
||||||
editor = 地圖編輯器
|
editor = 地圖編輯器
|
||||||
mapeditor = 地圖編輯器
|
mapeditor = 地圖編輯器
|
||||||
|
|
||||||
abandon = 放棄
|
abandon = 放棄
|
||||||
abandon.text = 此區域及其所有資源將會丟失給敵人。
|
abandon.text = 此區域及其所有資源將會丟失給敵人。
|
||||||
locked = 鎖定
|
locked = 鎖定
|
||||||
@@ -437,6 +447,7 @@ zone.objective.survival = 生存
|
|||||||
zone.objective.attack = 摧毀敵人核心
|
zone.objective.attack = 摧毀敵人核心
|
||||||
add = 新增...
|
add = 新增...
|
||||||
boss.health = 頭目血量
|
boss.health = 頭目血量
|
||||||
|
|
||||||
connectfail = [crimson]伺服器連線錯誤:[accent]{0}
|
connectfail = [crimson]伺服器連線錯誤:[accent]{0}
|
||||||
error.unreachable = 無法到達伺服器。請確認位址是否正確?
|
error.unreachable = 無法到達伺服器。請確認位址是否正確?
|
||||||
error.invalidaddress = 無效的位址。
|
error.invalidaddress = 無效的位址。
|
||||||
@@ -447,6 +458,7 @@ error.mapnotfound = 找不到地圖!
|
|||||||
error.io = 網絡輸出入錯誤。
|
error.io = 網絡輸出入錯誤。
|
||||||
error.any = 未知網絡錯誤。
|
error.any = 未知網絡錯誤。
|
||||||
error.bloom = 初始化特效失敗.\n您的設備可能不支援它
|
error.bloom = 初始化特效失敗.\n您的設備可能不支援它
|
||||||
|
|
||||||
zone.groundZero.name = 零號地區
|
zone.groundZero.name = 零號地區
|
||||||
zone.desertWastes.name = 沙漠荒原
|
zone.desertWastes.name = 沙漠荒原
|
||||||
zone.craters.name = 隕石坑
|
zone.craters.name = 隕石坑
|
||||||
@@ -461,6 +473,7 @@ zone.saltFlats.name = 鹽沼
|
|||||||
zone.impact0078.name = 衝擊 0078
|
zone.impact0078.name = 衝擊 0078
|
||||||
zone.crags.name = 岩壁
|
zone.crags.name = 岩壁
|
||||||
zone.fungalPass.name = 真菌隘口
|
zone.fungalPass.name = 真菌隘口
|
||||||
|
|
||||||
zone.groundZero.description = 再次開始的最佳位置。敵人威脅度低。資源少。\n盡可能的收集更多的鉛和銅。\n繼續前進。
|
zone.groundZero.description = 再次開始的最佳位置。敵人威脅度低。資源少。\n盡可能的收集更多的鉛和銅。\n繼續前進。
|
||||||
zone.frozenForest.description = 即使這裡更靠近山脈,孢子也已經擴散到這裡了。嚴寒的溫度不可能永遠禁錮它們。\n\n開始進入能源的世界。建造燃燒發電機。學會使用修理方塊。
|
zone.frozenForest.description = 即使這裡更靠近山脈,孢子也已經擴散到這裡了。嚴寒的溫度不可能永遠禁錮它們。\n\n開始進入能源的世界。建造燃燒發電機。學會使用修理方塊。
|
||||||
zone.desertWastes.description = 這些荒原規模巨大,難以預測,並且與廢棄的結構交錯在一起。\n此地區存在著煤炭。燃燒它以獲得能源或合成石墨。\n\n[lightgray]無法保證此地圖的著陸位置。
|
zone.desertWastes.description = 這些荒原規模巨大,難以預測,並且與廢棄的結構交錯在一起。\n此地區存在著煤炭。燃燒它以獲得能源或合成石墨。\n\n[lightgray]無法保證此地圖的著陸位置。
|
||||||
@@ -475,6 +488,7 @@ zone.nuclearComplex.description = 以前生產和加工釷的設施已變成廢
|
|||||||
zone.fungalPass.description = 高山與被孢子纏繞的低地之間的過渡區域。一個小的敵人偵察基地位於這裡。\n破壞它。\n使用匕首機甲和爬行機甲單位來摧毀兩個核心。
|
zone.fungalPass.description = 高山與被孢子纏繞的低地之間的過渡區域。一個小的敵人偵察基地位於這裡。\n破壞它。\n使用匕首機甲和爬行機甲單位來摧毀兩個核心。
|
||||||
zone.impact0078.description = <在此處輸入說明>
|
zone.impact0078.description = <在此處輸入說明>
|
||||||
zone.crags.description = <在此輸入說明>
|
zone.crags.description = <在此輸入說明>
|
||||||
|
|
||||||
settings.language = 語言
|
settings.language = 語言
|
||||||
settings.data = 遊戲數據
|
settings.data = 遊戲數據
|
||||||
settings.reset = 重設為預設設定
|
settings.reset = 重設為預設設定
|
||||||
@@ -509,7 +523,7 @@ blocks.shootrange = 範圍
|
|||||||
blocks.size = 尺寸
|
blocks.size = 尺寸
|
||||||
blocks.liquidcapacity = 液體容量
|
blocks.liquidcapacity = 液體容量
|
||||||
blocks.powerrange = 輸出範圍
|
blocks.powerrange = 輸出範圍
|
||||||
blocks.powerconnections = Max Connections
|
blocks.powerconnections = 最大連接數
|
||||||
blocks.poweruse = 能量使用
|
blocks.poweruse = 能量使用
|
||||||
blocks.powerdamage = 能量/傷害
|
blocks.powerdamage = 能量/傷害
|
||||||
blocks.itemcapacity = 物品容量
|
blocks.itemcapacity = 物品容量
|
||||||
@@ -529,9 +543,10 @@ blocks.inaccuracy = 誤差
|
|||||||
blocks.shots = 射擊數
|
blocks.shots = 射擊數
|
||||||
blocks.reload = 射擊次數/秒
|
blocks.reload = 射擊次數/秒
|
||||||
blocks.ammo = 彈藥
|
blocks.ammo = 彈藥
|
||||||
|
|
||||||
bar.drilltierreq = 需要更好的鑽頭
|
bar.drilltierreq = 需要更好的鑽頭
|
||||||
bar.drillspeed = 鑽頭速度:{0}/秒
|
bar.drillspeed = 鑽頭速度:{0}/秒
|
||||||
bar.pumpspeed = Pump Speed: {0}/s
|
bar.pumpspeed = 液體泵送速度:{0}/s
|
||||||
bar.efficiency = 效率:{0}%
|
bar.efficiency = 效率:{0}%
|
||||||
bar.powerbalance = 能量變化:{0}
|
bar.powerbalance = 能量變化:{0}
|
||||||
bar.powerstored = 能量存量: {0}/{1}
|
bar.powerstored = 能量存量: {0}/{1}
|
||||||
@@ -544,6 +559,9 @@ bar.heat = 熱
|
|||||||
bar.power = 能量
|
bar.power = 能量
|
||||||
bar.progress = 建造進度
|
bar.progress = 建造進度
|
||||||
bar.spawned = 單位:{0}/{1}
|
bar.spawned = 單位:{0}/{1}
|
||||||
|
bar.input = 輸入
|
||||||
|
bar.output = 輸出
|
||||||
|
|
||||||
bullet.damage = [stat]{0}[lightgray]傷害
|
bullet.damage = [stat]{0}[lightgray]傷害
|
||||||
bullet.splashdamage = [stat]{0}[lightgray]範圍傷害 ~[stat] {1}[lightgray]格
|
bullet.splashdamage = [stat]{0}[lightgray]範圍傷害 ~[stat] {1}[lightgray]格
|
||||||
bullet.incendiary = [stat]燃燒
|
bullet.incendiary = [stat]燃燒
|
||||||
@@ -555,6 +573,7 @@ bullet.freezing = [stat]冷凍
|
|||||||
bullet.tarred = [stat]焦油
|
bullet.tarred = [stat]焦油
|
||||||
bullet.multiplier = [stat]{0}[lightgray]×彈藥倍數
|
bullet.multiplier = [stat]{0}[lightgray]×彈藥倍數
|
||||||
bullet.reload = [stat]{0}[lightgray]×射擊速率
|
bullet.reload = [stat]{0}[lightgray]×射擊速率
|
||||||
|
|
||||||
unit.blocks = 方塊
|
unit.blocks = 方塊
|
||||||
unit.powersecond = 能量單位/秒
|
unit.powersecond = 能量單位/秒
|
||||||
unit.liquidsecond = 液體單位/秒
|
unit.liquidsecond = 液體單位/秒
|
||||||
@@ -574,9 +593,10 @@ category.items = 物品
|
|||||||
category.crafting = 需求
|
category.crafting = 需求
|
||||||
category.shooting = 射擊
|
category.shooting = 射擊
|
||||||
category.optional = 可選的強化
|
category.optional = 可選的強化
|
||||||
|
|
||||||
setting.landscape.name = 鎖定水平畫面
|
setting.landscape.name = 鎖定水平畫面
|
||||||
setting.shadows.name = 陰影
|
setting.shadows.name = 陰影
|
||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = 方塊建造建議
|
||||||
setting.linear.name = 線性過濾
|
setting.linear.name = 線性過濾
|
||||||
setting.hints.name = 提示
|
setting.hints.name = 提示
|
||||||
setting.animatedwater.name = 水動畫
|
setting.animatedwater.name = 水動畫
|
||||||
@@ -590,7 +610,7 @@ setting.fpscap.name = 最大FPS
|
|||||||
setting.fpscap.none = 没有
|
setting.fpscap.none = 没有
|
||||||
setting.fpscap.text = {0}FPS
|
setting.fpscap.text = {0}FPS
|
||||||
setting.uiscale.name = UI縮放[lightgray] (需要重啟遊戲)[]
|
setting.uiscale.name = UI縮放[lightgray] (需要重啟遊戲)[]
|
||||||
setting.swapdiagonal.name = 始終對角線放置
|
setting.swapdiagonal.name = 預設對角線放置
|
||||||
setting.difficulty.training = 訓練
|
setting.difficulty.training = 訓練
|
||||||
setting.difficulty.easy = 簡單
|
setting.difficulty.easy = 簡單
|
||||||
setting.difficulty.normal = 普通
|
setting.difficulty.normal = 普通
|
||||||
@@ -599,8 +619,8 @@ setting.difficulty.insane = 瘋狂
|
|||||||
setting.difficulty.name = 難度:
|
setting.difficulty.name = 難度:
|
||||||
setting.screenshake.name = 畫面抖動
|
setting.screenshake.name = 畫面抖動
|
||||||
setting.effects.name = 顯示特效
|
setting.effects.name = 顯示特效
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = 顯示被破壞的方塊
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = 自動輸送帶放置規劃
|
||||||
setting.sensitivity.name = 控制器靈敏度
|
setting.sensitivity.name = 控制器靈敏度
|
||||||
setting.saveinterval.name = 自動存檔間隔
|
setting.saveinterval.name = 自動存檔間隔
|
||||||
setting.seconds = {0}秒
|
setting.seconds = {0}秒
|
||||||
@@ -626,14 +646,14 @@ public.confirm = 您想公開遊戲嗎?\n[accent]任何人都可以加入您
|
|||||||
public.beta = 請注意,該遊戲的Beta版本無法公開遊戲大廳。
|
public.beta = 請注意,該遊戲的Beta版本無法公開遊戲大廳。
|
||||||
uiscale.reset = UI縮放已變更\n按下"確定"確認這個比例\n[scarlet][accent] {0}[] 秒後...退出並還原設定
|
uiscale.reset = UI縮放已變更\n按下"確定"確認這個比例\n[scarlet][accent] {0}[] 秒後...退出並還原設定
|
||||||
uiscale.cancel = 取消並退出
|
uiscale.cancel = 取消並退出
|
||||||
setting.bloom.name = 特效
|
setting.bloom.name = 粒子特效
|
||||||
keybind.title = 重新綁定按鍵
|
keybind.title = 重新綁定按鍵
|
||||||
keybinds.mobile = [scarlet]此處的大多數快捷鍵在移動設備上均不起作用。僅支援基本移動。
|
keybinds.mobile = [scarlet]此處的大多數快捷鍵在移動設備上均不起作用。僅支援基本移動。
|
||||||
category.general.name = 一般
|
category.general.name = 一般
|
||||||
category.view.name = 查看
|
category.view.name = 查看
|
||||||
category.multiplayer.name = 多人
|
category.multiplayer.name = 多人
|
||||||
command.attack = 攻擊
|
command.attack = 攻擊
|
||||||
command.rally = Rally
|
command.rally = 集結
|
||||||
command.retreat = 撤退
|
command.retreat = 撤退
|
||||||
keybind.clear_building.name = 清除建築物
|
keybind.clear_building.name = 清除建築物
|
||||||
keybind.press = 按一下按鍵...
|
keybind.press = 按一下按鍵...
|
||||||
@@ -681,7 +701,9 @@ mode.pvp.description = 和其他玩家競爭、戰鬥。
|
|||||||
mode.attack.name = 進攻
|
mode.attack.name = 進攻
|
||||||
mode.attack.description = 沒有波次,目標是摧毀敵人的基地。
|
mode.attack.description = 沒有波次,目標是摧毀敵人的基地。
|
||||||
mode.custom = 自訂規則
|
mode.custom = 自訂規則
|
||||||
|
|
||||||
rules.infiniteresources = 無限資源
|
rules.infiniteresources = 無限資源
|
||||||
|
rules.reactorexplosions = 反應爐爆炸
|
||||||
rules.wavetimer = 波次時間
|
rules.wavetimer = 波次時間
|
||||||
rules.waves = 波次
|
rules.waves = 波次
|
||||||
rules.attack = 攻擊模式
|
rules.attack = 攻擊模式
|
||||||
@@ -707,6 +729,10 @@ rules.title.resourcesbuilding = 資源與建築
|
|||||||
rules.title.player = 玩家
|
rules.title.player = 玩家
|
||||||
rules.title.enemy = 敵人
|
rules.title.enemy = 敵人
|
||||||
rules.title.unit = 單位
|
rules.title.unit = 單位
|
||||||
|
rules.title.experimental = 實驗中
|
||||||
|
rules.lighting = 光照
|
||||||
|
rules.ambientlight = 環境光照
|
||||||
|
|
||||||
content.item.name = 物品
|
content.item.name = 物品
|
||||||
content.liquid.name = 液體
|
content.liquid.name = 液體
|
||||||
content.unit.name = 單位
|
content.unit.name = 單位
|
||||||
@@ -732,6 +758,7 @@ liquid.water.name = 水
|
|||||||
liquid.slag.name = 熔渣
|
liquid.slag.name = 熔渣
|
||||||
liquid.oil.name = 原油
|
liquid.oil.name = 原油
|
||||||
liquid.cryofluid.name = 冷凍液
|
liquid.cryofluid.name = 冷凍液
|
||||||
|
|
||||||
mech.alpha-mech.name = 阿爾法
|
mech.alpha-mech.name = 阿爾法
|
||||||
mech.alpha-mech.weapon = 重型機關槍
|
mech.alpha-mech.weapon = 重型機關槍
|
||||||
mech.alpha-mech.ability = 自修復
|
mech.alpha-mech.ability = 自修復
|
||||||
@@ -866,6 +893,7 @@ block.distributor.name = 大型分配器
|
|||||||
block.sorter.name = 分類器
|
block.sorter.name = 分類器
|
||||||
block.inverted-sorter.name = 反向分類器
|
block.inverted-sorter.name = 反向分類器
|
||||||
block.message.name = 訊息板
|
block.message.name = 訊息板
|
||||||
|
block.illuminator.name = 照明燈
|
||||||
block.overflow-gate.name = 溢流器
|
block.overflow-gate.name = 溢流器
|
||||||
block.silicon-smelter.name = 煉矽廠
|
block.silicon-smelter.name = 煉矽廠
|
||||||
block.phase-weaver.name = 相織布編織器
|
block.phase-weaver.name = 相織布編織器
|
||||||
@@ -879,6 +907,7 @@ block.coal-centrifuge.name = 煤炭離心機
|
|||||||
block.power-node.name = 能量節點
|
block.power-node.name = 能量節點
|
||||||
block.power-node-large.name = 大型能量節點
|
block.power-node-large.name = 大型能量節點
|
||||||
block.surge-tower.name = 波動塔
|
block.surge-tower.name = 波動塔
|
||||||
|
block.diode.name = 二極體
|
||||||
block.battery.name = 電池
|
block.battery.name = 電池
|
||||||
block.battery-large.name = 大型電池
|
block.battery-large.name = 大型電池
|
||||||
block.combustion-generator.name = 燃燒發電機
|
block.combustion-generator.name = 燃燒發電機
|
||||||
@@ -931,6 +960,7 @@ block.fortress-factory.name = 要塞機甲工廠
|
|||||||
block.revenant-factory.name = 復仇鬼戰鬥機工廠
|
block.revenant-factory.name = 復仇鬼戰鬥機工廠
|
||||||
block.repair-point.name = 維修點
|
block.repair-point.name = 維修點
|
||||||
block.pulse-conduit.name = 脈衝管線
|
block.pulse-conduit.name = 脈衝管線
|
||||||
|
block.plated-conduit.name = 裝甲管線
|
||||||
block.phase-conduit.name = 相織管線
|
block.phase-conduit.name = 相織管線
|
||||||
block.liquid-router.name = 液體分配器
|
block.liquid-router.name = 液體分配器
|
||||||
block.liquid-tank.name = 液體儲存槽
|
block.liquid-tank.name = 液體儲存槽
|
||||||
@@ -982,9 +1012,9 @@ unit.eradicator.name = 消除者
|
|||||||
unit.lich.name = 巫妖
|
unit.lich.name = 巫妖
|
||||||
unit.reaper.name = 收掠者
|
unit.reaper.name = 收掠者
|
||||||
tutorial.next = [lightgray]<按下以繼續>
|
tutorial.next = [lightgray]<按下以繼續>
|
||||||
tutorial.intro = 您已進入[scarlet] Mindustry 教學。[]\n從[accent] 挖掘銅礦[]開始吧。點擊靠近您核心的銅礦脈。\n\n[accent]{0}/{1} 個銅礦
|
tutorial.intro = 您已進入[scarlet] Mindustry 教學。[]\n使用[[WASD鍵]來移動.\n在滾動滾輪時[accent]按住 [[Ctrl][]來放大縮小畫面.\n從[accent]開採銅礦[]開始吧靠近它,然後在靠近核心的位置點擊銅礦。\n\n[accent]{0}/{1}銅礦
|
||||||
tutorial.intro.mobile = 您已進入[scarlet] Mindustry 教學。[]\n滑動螢幕即可移動。\n[accent]用兩指捏[]來縮放畫面。\n從[accent]開採銅礦[]開始吧。靠近它,然後在靠近核心的位置點擊銅礦。\n\n[accent]{0}/{1}銅礦
|
tutorial.intro.mobile = 您已進入[scarlet] Mindustry 教學。[]\n滑動螢幕即可移動。\n[accent]用兩指捏[]來縮放畫面。\n從[accent]開採銅礦[]開始吧。靠近它,然後在靠近核心的位置點擊銅礦。\n\n[accent]{0}/{1}銅礦
|
||||||
tutorial.drill = 手動挖掘礦石的效率很低。\n[accent]鑽頭[]能夠自動挖掘礦石。\n在銅脈上放置一個鑽頭。
|
tutorial.drill = 手動挖掘礦石的效率很低。\n[accent]鑽頭[]能夠自動挖掘礦石。\n在銅礦脈上放置一個鑽頭。
|
||||||
tutorial.drill.mobile = 手動挖掘礦石的效率很低。\n[accent]鑽頭[]能夠自動挖掘礦石。\n點選右下角的鑽頭選項\n選擇[accent]機械鑽頭[].\n通過點擊將其放置在銅礦上,然後按下下方的[accent]確認標誌[]確認您的選擇\n按下[accent] X 按鈕[] 取消放置.
|
tutorial.drill.mobile = 手動挖掘礦石的效率很低。\n[accent]鑽頭[]能夠自動挖掘礦石。\n點選右下角的鑽頭選項\n選擇[accent]機械鑽頭[].\n通過點擊將其放置在銅礦上,然後按下下方的[accent]確認標誌[]確認您的選擇\n按下[accent] X 按鈕[] 取消放置.
|
||||||
tutorial.blockinfo = 每個方塊都有不同的屬性。每個鑽頭只能開採特定的礦石。\n查看方塊的資訊和屬性,[accent]在建造目錄時按下"?"鈕。[]\n\n[accent]立即訪問機械鑽頭的屬性資料。[]
|
tutorial.blockinfo = 每個方塊都有不同的屬性。每個鑽頭只能開採特定的礦石。\n查看方塊的資訊和屬性,[accent]在建造目錄時按下"?"鈕。[]\n\n[accent]立即訪問機械鑽頭的屬性資料。[]
|
||||||
tutorial.conveyor = [accent]輸送帶[]能夠將物品運輸到核心。\n製作一條從鑽頭開始到核心的輸送帶。
|
tutorial.conveyor = [accent]輸送帶[]能夠將物品運輸到核心。\n製作一條從鑽頭開始到核心的輸送帶。
|
||||||
@@ -995,16 +1025,15 @@ tutorial.pause = 在戰鬥中,你可以[accent]暫停遊戲。[]\n您可以在
|
|||||||
tutorial.pause.mobile = 在戰鬥中,你可以[accent]暫停遊戲。[]\n您可以在暫停時規劃建築物並加入建造序列。\n\n[accent]按左上角的此按鈕暫停。
|
tutorial.pause.mobile = 在戰鬥中,你可以[accent]暫停遊戲。[]\n您可以在暫停時規劃建築物並加入建造序列。\n\n[accent]按左上角的此按鈕暫停。
|
||||||
tutorial.unpause = 現在再次按空格鍵即可取消暫停。
|
tutorial.unpause = 現在再次按空格鍵即可取消暫停。
|
||||||
tutorial.unpause.mobile = 現在再次按空格鍵即可取消暫停。
|
tutorial.unpause.mobile = 現在再次按空格鍵即可取消暫停。
|
||||||
tutorial.breaking = 方塊經常需要被銷毀。\n[accent]按住右鍵[]破壞選擇中的所有方塊。[]\n\n[accent]使用區域選擇銷毀核心左側的所有廢料方塊。
|
tutorial.breaking = 方塊經常需要被拆除。\n[accent]按住右鍵[]破壞選擇區域中的所有方塊。[]\n\n[accent]使用區域選擇拆除核心左側的所有廢料方塊。
|
||||||
tutorial.breaking.mobile = 方塊經常需要被銷毀。\n[accent]選擇解構模式[],然後點擊一個方塊開始破壞它。\n按住手指幾秒鐘以破壞區域[]並向一個方向拖動。\n按下複選標記按鈕以確認破壞。\n\n[accent]使用區域選擇銷毀核心左側的所有廢料方塊。
|
tutorial.breaking.mobile = 方塊經常需要被拆除。\n[accent]選擇拆除模式[],然後點擊一個方塊以破壞它。\n按住螢幕幾秒鐘並向一個方向拖動以破壞一個範圍內的方塊[]。\n按下確認標記按鈕以確認拆除。\n\n[accent]使用區域選擇拆除核心左側的所有廢料方塊。
|
||||||
tutorial.withdraw = 在某些情況下,直接從方塊中取出物品是必要的。\n去做這個, [accent]點擊有物品的方塊[],然後[accent]點擊在方框中的物品[]。\n可以通過[accent]點擊或常按[]來取出物品。\n\n[accent]從核心中取出一些銅。[]
|
tutorial.withdraw = 在某些情況下,直接從方塊中取出物品是必要的。\n[accent]點擊有物品的方塊[],然後[accent]點擊在方框中的物品[]以將其取出。\n可以通過[accent]點擊或長按[]來取出物品。\n\n[accent]從核心中取出一些銅。[]
|
||||||
tutorial.deposit = 通過將物品從船上拖到目標方塊,將物品放入放塊中。\n\n[accent]將您的銅放到核心中。[]
|
tutorial.deposit = 通過將物品從船上拖到目標方塊,將物品放入方塊中。\n\n[accent]將您的銅放到核心中。[]
|
||||||
tutorial.waves = [lightgray]敵人[]來臨。\n\n防衛核心2波。建造更多的砲塔以防衛。
|
tutorial.waves = [lightgray]敵人[]來臨。\n\n保護核心抵抗兩波攻擊。\n建造更多的砲塔和鑽頭。開採更多的銅。
|
||||||
tutorial.waves.mobile = [lightgray]敵人[]接近。\n\n保護核心抵抗兩波攻擊。您的飛船將自動向敵人開火。\n建造更多的砲塔和鑽頭。開採更多的銅。
|
|
||||||
tutorial.launch = 一旦您達到特定的波數, 您就可以[accent] 發射核心[],放棄防禦並[accent]獲取核心中的所有資源。[]\n這些資源可以用於研究新科技。\n\n[accent]按下發射按鈕。
|
tutorial.launch = 一旦您達到特定的波數, 您就可以[accent] 發射核心[],放棄防禦並[accent]獲取核心中的所有資源。[]\n這些資源可以用於研究新科技。\n\n[accent]按下發射按鈕。
|
||||||
item.copper.description = 一種有用的結構材料。在各種類型的方塊中廣泛使用。
|
item.copper.description = 最基本的結構材料。在各種類型的方塊中廣泛使用。
|
||||||
item.lead.description = 一種基本的起始材料。被廣泛用於電子設備和運輸液體方塊。
|
item.lead.description = 一種基本的起始材料。被廣泛用於電子設備和液體運輸方塊。
|
||||||
item.metaglass.description = 一種高強度的玻璃。廣泛用於液體分配和存儲。
|
item.metaglass.description = 一種超高強度的玻璃。廣泛用於液體分配和存儲。
|
||||||
item.graphite.description = 礦化的碳,用於彈藥和電氣絕緣。
|
item.graphite.description = 礦化的碳,用於彈藥和電氣絕緣。
|
||||||
item.sand.description = 一種常見的材料,廣泛用於冶煉,包括製作合金和助熔劑。
|
item.sand.description = 一種常見的材料,廣泛用於冶煉,包括製作合金和助熔劑。
|
||||||
item.coal.description = 遠在「播種」事件前就形成的植物化石。一種常見並容易獲得的燃料。
|
item.coal.description = 遠在「播種」事件前就形成的植物化石。一種常見並容易獲得的燃料。
|
||||||
@@ -1091,13 +1120,14 @@ block.sorter.description = 對物品進行分類。如果物品與所選種類
|
|||||||
block.inverted-sorter.description = 處理物品的方式類似於分類器,但將所選擇的物品輸出到側面。
|
block.inverted-sorter.description = 處理物品的方式類似於分類器,但將所選擇的物品輸出到側面。
|
||||||
block.router.description = 接受來自一個方向的物品並將它們平均輸出到最多3個其他方向。用於將物品從一個來源分割為多個目標。
|
block.router.description = 接受來自一個方向的物品並將它們平均輸出到最多3個其他方向。用於將物品從一個來源分割為多個目標。
|
||||||
block.distributor.description = 高級的分配器,可將物品均分到最多7個其他方向。
|
block.distributor.description = 高級的分配器,可將物品均分到最多7個其他方向。
|
||||||
block.overflow-gate.description = 分離器和分配器的組合。如果前面被擋住,則向從左邊和右邊輸出物品。
|
block.overflow-gate.description = 如果前面被擋住,則向左邊和右邊輸出物品。
|
||||||
block.mass-driver.description = 終極物品運輸方塊。收集大量物品,然後將它們射向另一個質量驅動器。需要能源以運作。
|
block.mass-driver.description = 終極物品運輸方塊。收集大量物品,然後將它們射向另一個質量驅動器。需要能源以運作。
|
||||||
block.mechanical-pump.description = 一種便宜的泵,輸出速度慢,但不使用能量。
|
block.mechanical-pump.description = 一種便宜的泵,輸出速度慢,但不使用能量。
|
||||||
block.rotary-pump.description = 高級的泵。抽更多液體,但需要能量。
|
block.rotary-pump.description = 高級的泵。抽更多液體,但需要能量。
|
||||||
block.thermal-pump.description = 終極的泵。
|
block.thermal-pump.description = 終極的泵。
|
||||||
block.conduit.description = 基本液體運輸方塊。將液體往前輸送。用於提取器、泵或其他管線。
|
block.conduit.description = 基本液體運輸方塊。將液體往前輸送。用於提取器、泵或其他管線。
|
||||||
block.pulse-conduit.description = 高級的液體運輸方塊。比標準管線更快地輸送並儲存更多液體。
|
block.pulse-conduit.description = 高級的液體運輸方塊。比標準管線更快地輸送並儲存更多液體。
|
||||||
|
block.plated-conduit.description = 用和脈衝管線相同的速率運送液體,但有更強的裝甲。除了其他管線以外,不會接受來自側面的其他液體\n比較不會漏液。
|
||||||
block.liquid-router.description = 接受來自一個方向的液體並將它們平均輸出到最多3個其他方向。可以儲存一定量的液體。用於將液體從一個來源分成多個目標。
|
block.liquid-router.description = 接受來自一個方向的液體並將它們平均輸出到最多3個其他方向。可以儲存一定量的液體。用於將液體從一個來源分成多個目標。
|
||||||
block.liquid-tank.description = 存儲大量液體。當液體需求非恆定時,使用它來創建緩衝或作為冷卻重要方塊的保障。
|
block.liquid-tank.description = 存儲大量液體。當液體需求非恆定時,使用它來創建緩衝或作為冷卻重要方塊的保障。
|
||||||
block.liquid-junction.description = 作為兩個交叉管線的橋樑。適用於兩條不同管線將不同液體運送到不同位置的情況。
|
block.liquid-junction.description = 作為兩個交叉管線的橋樑。適用於兩條不同管線將不同液體運送到不同位置的情況。
|
||||||
@@ -1106,6 +1136,7 @@ block.phase-conduit.description = 高級的液體運輸方塊。使用能量將
|
|||||||
block.power-node.description = 將能量傳輸到相連的節點。該節點將從任何相鄰方塊接收能量或向任何相鄰方塊供應能量。
|
block.power-node.description = 將能量傳輸到相連的節點。該節點將從任何相鄰方塊接收能量或向任何相鄰方塊供應能量。
|
||||||
block.power-node-large.description = 具有更大範圍和更多連接的高級電源節點。
|
block.power-node-large.description = 具有更大範圍和更多連接的高級電源節點。
|
||||||
block.surge-tower.description = 具有兩個可用連接的超遠程能量節點。
|
block.surge-tower.description = 具有兩個可用連接的超遠程能量節點。
|
||||||
|
block.diode.description = 電池中的電力在這個方塊中只能有一個固定的流向,並且只有在另一側的能量較少時才會通過。
|
||||||
block.battery.description = 有能量剩餘時存儲電力並在能量短缺時提供能量。
|
block.battery.description = 有能量剩餘時存儲電力並在能量短缺時提供能量。
|
||||||
block.battery-large.description = 比普通電池存儲更多的能量。
|
block.battery-large.description = 比普通電池存儲更多的能量。
|
||||||
block.combustion-generator.description = 透過燃燒原油或可燃物品以產生能量。
|
block.combustion-generator.description = 透過燃燒原油或可燃物品以產生能量。
|
||||||
@@ -1165,3 +1196,4 @@ block.omega-mech-pad.description = 改裝現在的船隻,換成龐大、具有
|
|||||||
block.javelin-ship-pad.description = 改裝現在的船隻,換成具有閃電武器、強大而快速的攔截機。\n站在上面雙擊機坪以使用它。
|
block.javelin-ship-pad.description = 改裝現在的船隻,換成具有閃電武器、強大而快速的攔截機。\n站在上面雙擊機坪以使用它。
|
||||||
block.trident-ship-pad.description = 改裝現在的船隻,換成具有相當不錯裝甲的重型轟炸機。\n站在上面雙擊機坪以使用它。
|
block.trident-ship-pad.description = 改裝現在的船隻,換成具有相當不錯裝甲的重型轟炸機。\n站在上面雙擊機坪以使用它。
|
||||||
block.glaive-ship-pad.description = 改裝現在的船隻,換成具有重裝甲的砲艇。\n站在上面雙擊機坪以使用它。
|
block.glaive-ship-pad.description = 改裝現在的船隻,換成具有重裝甲的砲艇。\n站在上面雙擊機坪以使用它。
|
||||||
|
|
||||||
|
|||||||
18
core/assets/shaders/light.fragment.glsl
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#ifdef GL_ES
|
||||||
|
precision mediump float;
|
||||||
|
precision mediump int;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define steprad 0.13
|
||||||
|
|
||||||
|
uniform sampler2D u_texture;
|
||||||
|
uniform vec4 u_ambient;
|
||||||
|
|
||||||
|
varying vec4 v_color;
|
||||||
|
varying vec2 v_texCoord;
|
||||||
|
|
||||||
|
void main(){
|
||||||
|
vec4 color = texture2D(u_texture, v_texCoord.xy);
|
||||||
|
//color.a = clamp(color.a, 0.0, 0.8);
|
||||||
|
gl_FragColor = clamp(vec4(mix(u_ambient.rgb, color.rgb, color.a), u_ambient.a - color.a), 0.0, 1.0);
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 736 B After Width: | Height: | Size: 746 B |
|
Before Width: | Height: | Size: 718 KiB After Width: | Height: | Size: 956 KiB |
|
Before Width: | Height: | Size: 278 KiB After Width: | Height: | Size: 304 KiB |
|
Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 187 KiB |
|
Before Width: | Height: | Size: 891 KiB After Width: | Height: | Size: 332 KiB |
@@ -104,7 +104,7 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
|
|||||||
public void resize(int width, int height){
|
public void resize(int width, int height){
|
||||||
if(assets == null) return;
|
if(assets == null) return;
|
||||||
|
|
||||||
if(!assets.isFinished()){
|
if(!finished){
|
||||||
Draw.proj().setOrtho(0, 0, width, height);
|
Draw.proj().setOrtho(0, 0, width, height);
|
||||||
}else{
|
}else{
|
||||||
super.resize(width, height);
|
super.resize(width, height);
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ import io.anuke.mindustry.world.blocks.*;
|
|||||||
import io.anuke.mindustry.world.blocks.defense.*;
|
import io.anuke.mindustry.world.blocks.defense.*;
|
||||||
import io.anuke.mindustry.world.blocks.defense.turrets.*;
|
import io.anuke.mindustry.world.blocks.defense.turrets.*;
|
||||||
import io.anuke.mindustry.world.blocks.distribution.*;
|
import io.anuke.mindustry.world.blocks.distribution.*;
|
||||||
|
import io.anuke.mindustry.world.blocks.liquid.Conduit;
|
||||||
|
import io.anuke.mindustry.world.blocks.liquid.LiquidTank;
|
||||||
import io.anuke.mindustry.world.blocks.logic.*;
|
import io.anuke.mindustry.world.blocks.logic.*;
|
||||||
import io.anuke.mindustry.world.blocks.power.*;
|
import io.anuke.mindustry.world.blocks.power.*;
|
||||||
import io.anuke.mindustry.world.blocks.production.*;
|
import io.anuke.mindustry.world.blocks.production.*;
|
||||||
@@ -48,22 +50,22 @@ public class Blocks implements ContentList{
|
|||||||
melter, separator, sporePress, pulverizer, incinerator, coalCentrifuge,
|
melter, separator, sporePress, pulverizer, incinerator, coalCentrifuge,
|
||||||
|
|
||||||
//sandbox
|
//sandbox
|
||||||
powerVoid, powerSource, itemSource, liquidSource, itemVoid, message,
|
powerSource, powerVoid, itemSource, itemVoid, liquidSource, message, illuminator,
|
||||||
|
|
||||||
//defense
|
//defense
|
||||||
scrapWall, scrapWallLarge, scrapWallHuge, scrapWallGigantic, thruster, //ok, these names are getting ridiculous, but at least I don't have humongous walls yet
|
|
||||||
copperWall, copperWallLarge, titaniumWall, titaniumWallLarge, plastaniumWall, plastaniumWallLarge, thoriumWall, thoriumWallLarge, door, doorLarge,
|
copperWall, copperWallLarge, titaniumWall, titaniumWallLarge, plastaniumWall, plastaniumWallLarge, thoriumWall, thoriumWallLarge, door, doorLarge,
|
||||||
phaseWall, phaseWallLarge, surgeWall, surgeWallLarge, mender, mendProjector, overdriveProjector, forceProjector, shockMine,
|
phaseWall, phaseWallLarge, surgeWall, surgeWallLarge, mender, mendProjector, overdriveProjector, forceProjector, shockMine,
|
||||||
|
scrapWall, scrapWallLarge, scrapWallHuge, scrapWallGigantic, thruster, //ok, these names are getting ridiculous, but at least I don't have humongous walls yet
|
||||||
|
|
||||||
//transport
|
//transport
|
||||||
conveyor, titaniumConveyor, armoredConveyor, distributor, junction, itemBridge, phaseConveyor, sorter, invertedSorter, router, overflowGate, massDriver,
|
conveyor, titaniumConveyor, armoredConveyor, distributor, junction, itemBridge, phaseConveyor, sorter, invertedSorter, router, overflowGate, massDriver,
|
||||||
|
|
||||||
//liquids
|
//liquids
|
||||||
mechanicalPump, rotaryPump, thermalPump, conduit, pulseConduit, liquidRouter, liquidTank, liquidJunction, bridgeConduit, phaseConduit,
|
mechanicalPump, rotaryPump, thermalPump, conduit, pulseConduit, platedConduit, liquidRouter, liquidTank, liquidJunction, bridgeConduit, phaseConduit,
|
||||||
|
|
||||||
//power
|
//power
|
||||||
combustionGenerator, thermalGenerator, turbineGenerator, differentialGenerator, rtgGenerator, solarPanel, largeSolarPanel, thoriumReactor,
|
combustionGenerator, thermalGenerator, turbineGenerator, differentialGenerator, rtgGenerator, solarPanel, largeSolarPanel, thoriumReactor,
|
||||||
impactReactor, battery, batteryLarge, powerNode, powerNodeLarge, surgeTower,
|
impactReactor, battery, batteryLarge, powerNode, powerNodeLarge, surgeTower, diode,
|
||||||
|
|
||||||
//production
|
//production
|
||||||
mechanicalDrill, pneumaticDrill, laserDrill, blastDrill, waterExtractor, oilExtractor, cultivator,
|
mechanicalDrill, pneumaticDrill, laserDrill, blastDrill, waterExtractor, oilExtractor, cultivator,
|
||||||
@@ -537,7 +539,7 @@ public class Blocks implements ContentList{
|
|||||||
hasPower = true;
|
hasPower = true;
|
||||||
|
|
||||||
consumes.power(4f);
|
consumes.power(4f);
|
||||||
consumes.items(new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.copper, 3));
|
consumes.items(new ItemStack(Items.copper, 3), new ItemStack(Items.lead, 4), new ItemStack(Items.titanium, 2), new ItemStack(Items.silicon, 3));
|
||||||
}};
|
}};
|
||||||
|
|
||||||
cryofluidMixer = new LiquidConverter("cryofluidmixer"){{
|
cryofluidMixer = new LiquidConverter("cryofluidmixer"){{
|
||||||
@@ -710,69 +712,11 @@ public class Blocks implements ContentList{
|
|||||||
consumes.power(0.50f);
|
consumes.power(0.50f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
//endregion
|
|
||||||
//region sandbox
|
|
||||||
|
|
||||||
powerVoid = new PowerVoid("power-void"){{
|
|
||||||
requirements(Category.power, BuildVisibility.sandboxOnly, ItemStack.with());
|
|
||||||
alwaysUnlocked = true;
|
|
||||||
}};
|
|
||||||
powerSource = new PowerSource("power-source"){{
|
|
||||||
requirements(Category.power, BuildVisibility.sandboxOnly, ItemStack.with());
|
|
||||||
alwaysUnlocked = true;
|
|
||||||
}};
|
|
||||||
itemSource = new ItemSource("item-source"){{
|
|
||||||
requirements(Category.distribution, BuildVisibility.sandboxOnly, ItemStack.with());
|
|
||||||
alwaysUnlocked = true;
|
|
||||||
}};
|
|
||||||
itemVoid = new ItemVoid("item-void"){{
|
|
||||||
requirements(Category.distribution, BuildVisibility.sandboxOnly, ItemStack.with());
|
|
||||||
alwaysUnlocked = true;
|
|
||||||
}};
|
|
||||||
liquidSource = new LiquidSource("liquid-source"){{
|
|
||||||
requirements(Category.liquid, BuildVisibility.sandboxOnly, ItemStack.with());
|
|
||||||
alwaysUnlocked = true;
|
|
||||||
}};
|
|
||||||
message = new MessageBlock("message"){{
|
|
||||||
requirements(Category.effect, ItemStack.with(Items.graphite, 5));
|
|
||||||
}};
|
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
//region defense
|
//region defense
|
||||||
|
|
||||||
int wallHealthMultiplier = 4;
|
int wallHealthMultiplier = 4;
|
||||||
|
|
||||||
scrapWall = new Wall("scrap-wall"){{
|
|
||||||
requirements(Category.defense, BuildVisibility.sandboxOnly, ItemStack.with());
|
|
||||||
health = 60 * wallHealthMultiplier;
|
|
||||||
variants = 5;
|
|
||||||
}};
|
|
||||||
|
|
||||||
scrapWallLarge = new Wall("scrap-wall-large"){{
|
|
||||||
requirements(Category.defense, BuildVisibility.sandboxOnly, ItemStack.with());
|
|
||||||
health = 60 * 4 * wallHealthMultiplier;
|
|
||||||
size = 2;
|
|
||||||
variants = 4;
|
|
||||||
}};
|
|
||||||
|
|
||||||
scrapWallHuge = new Wall("scrap-wall-huge"){{
|
|
||||||
requirements(Category.defense, BuildVisibility.sandboxOnly, ItemStack.with());
|
|
||||||
health = 60 * 9 * wallHealthMultiplier;
|
|
||||||
size = 3;
|
|
||||||
variants = 3;
|
|
||||||
}};
|
|
||||||
|
|
||||||
scrapWallGigantic = new Wall("scrap-wall-gigantic"){{
|
|
||||||
requirements(Category.defense, BuildVisibility.sandboxOnly, ItemStack.with());
|
|
||||||
health = 60 * 16 * wallHealthMultiplier;
|
|
||||||
size = 4;
|
|
||||||
}};
|
|
||||||
|
|
||||||
thruster = new Wall("thruster"){{
|
|
||||||
health = 55 * 16 * wallHealthMultiplier;
|
|
||||||
size = 4;
|
|
||||||
}};
|
|
||||||
|
|
||||||
copperWall = new Wall("copper-wall"){{
|
copperWall = new Wall("copper-wall"){{
|
||||||
requirements(Category.defense, ItemStack.with(Items.copper, 6));
|
requirements(Category.defense, ItemStack.with(Items.copper, 6));
|
||||||
health = 80 * wallHealthMultiplier;
|
health = 80 * wallHealthMultiplier;
|
||||||
@@ -854,6 +798,37 @@ public class Blocks implements ContentList{
|
|||||||
size = 2;
|
size = 2;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
scrapWall = new Wall("scrap-wall"){{
|
||||||
|
requirements(Category.defense, BuildVisibility.sandboxOnly, ItemStack.with());
|
||||||
|
health = 60 * wallHealthMultiplier;
|
||||||
|
variants = 5;
|
||||||
|
}};
|
||||||
|
|
||||||
|
scrapWallLarge = new Wall("scrap-wall-large"){{
|
||||||
|
requirements(Category.defense, BuildVisibility.sandboxOnly, ItemStack.with());
|
||||||
|
health = 60 * 4 * wallHealthMultiplier;
|
||||||
|
size = 2;
|
||||||
|
variants = 4;
|
||||||
|
}};
|
||||||
|
|
||||||
|
scrapWallHuge = new Wall("scrap-wall-huge"){{
|
||||||
|
requirements(Category.defense, BuildVisibility.sandboxOnly, ItemStack.with());
|
||||||
|
health = 60 * 9 * wallHealthMultiplier;
|
||||||
|
size = 3;
|
||||||
|
variants = 3;
|
||||||
|
}};
|
||||||
|
|
||||||
|
scrapWallGigantic = new Wall("scrap-wall-gigantic"){{
|
||||||
|
requirements(Category.defense, BuildVisibility.sandboxOnly, ItemStack.with());
|
||||||
|
health = 60 * 16 * wallHealthMultiplier;
|
||||||
|
size = 4;
|
||||||
|
}};
|
||||||
|
|
||||||
|
thruster = new Wall("thruster"){{
|
||||||
|
health = 55 * 16 * wallHealthMultiplier;
|
||||||
|
size = 4;
|
||||||
|
}};
|
||||||
|
|
||||||
mender = new MendProjector("mender"){{
|
mender = new MendProjector("mender"){{
|
||||||
requirements(Category.effect, ItemStack.with(Items.lead, 30, Items.copper, 25));
|
requirements(Category.effect, ItemStack.with(Items.lead, 30, Items.copper, 25));
|
||||||
consumes.power(0.3f);
|
consumes.power(0.3f);
|
||||||
@@ -918,7 +893,7 @@ public class Blocks implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
armoredConveyor = new ArmoredConveyor("armored-conveyor"){{
|
armoredConveyor = new ArmoredConveyor("armored-conveyor"){{
|
||||||
requirements(Category.distribution, ItemStack.with(Items.metaglass, 1, Items.thorium, 1));
|
requirements(Category.distribution, ItemStack.with(Items.plastanium, 1, Items.thorium, 1, Items.metaglass, 1));
|
||||||
health = 180;
|
health = 180;
|
||||||
speed = 0.08f;
|
speed = 0.08f;
|
||||||
}};
|
}};
|
||||||
@@ -1002,7 +977,7 @@ public class Blocks implements ContentList{
|
|||||||
size = 3;
|
size = 3;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
conduit = new Conduit("conduit"){{
|
conduit = new io.anuke.mindustry.world.blocks.liquid.Conduit("conduit"){{
|
||||||
requirements(Category.liquid, ItemStack.with(Items.metaglass, 1));
|
requirements(Category.liquid, ItemStack.with(Items.metaglass, 1));
|
||||||
health = 45;
|
health = 45;
|
||||||
}};
|
}};
|
||||||
@@ -1010,10 +985,18 @@ public class Blocks implements ContentList{
|
|||||||
pulseConduit = new Conduit("pulse-conduit"){{
|
pulseConduit = new Conduit("pulse-conduit"){{
|
||||||
requirements(Category.liquid, ItemStack.with(Items.titanium, 2, Items.metaglass, 1));
|
requirements(Category.liquid, ItemStack.with(Items.titanium, 2, Items.metaglass, 1));
|
||||||
liquidCapacity = 16f;
|
liquidCapacity = 16f;
|
||||||
|
liquidPressure = 1.025f;
|
||||||
health = 90;
|
health = 90;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
liquidRouter = new LiquidRouter("liquid-router"){{
|
platedConduit = new io.anuke.mindustry.world.blocks.liquid.ArmoredConduit("plated-conduit"){{
|
||||||
|
requirements(Category.liquid, ItemStack.with(Items.thorium, 2, Items.metaglass, 1));
|
||||||
|
liquidCapacity = 16f;
|
||||||
|
liquidPressure = 1.025f;
|
||||||
|
health = 220;
|
||||||
|
}};
|
||||||
|
|
||||||
|
liquidRouter = new io.anuke.mindustry.world.blocks.liquid.LiquidRouter("liquid-router"){{
|
||||||
requirements(Category.liquid, ItemStack.with(Items.graphite, 4, Items.metaglass, 2));
|
requirements(Category.liquid, ItemStack.with(Items.graphite, 4, Items.metaglass, 2));
|
||||||
liquidCapacity = 20f;
|
liquidCapacity = 20f;
|
||||||
}};
|
}};
|
||||||
@@ -1025,17 +1008,17 @@ public class Blocks implements ContentList{
|
|||||||
health = 500;
|
health = 500;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
liquidJunction = new LiquidJunction("liquid-junction"){{
|
liquidJunction = new io.anuke.mindustry.world.blocks.liquid.LiquidJunction("liquid-junction"){{
|
||||||
requirements(Category.liquid, ItemStack.with(Items.graphite, 2, Items.metaglass, 2));
|
requirements(Category.liquid, ItemStack.with(Items.graphite, 2, Items.metaglass, 2));
|
||||||
}};
|
}};
|
||||||
|
|
||||||
bridgeConduit = new LiquidExtendingBridge("bridge-conduit"){{
|
bridgeConduit = new io.anuke.mindustry.world.blocks.liquid.LiquidExtendingBridge("bridge-conduit"){{
|
||||||
requirements(Category.liquid, ItemStack.with(Items.graphite, 4, Items.metaglass, 8));
|
requirements(Category.liquid, ItemStack.with(Items.graphite, 4, Items.metaglass, 8));
|
||||||
range = 4;
|
range = 4;
|
||||||
hasPower = false;
|
hasPower = false;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
phaseConduit = new LiquidBridge("phase-conduit"){{
|
phaseConduit = new io.anuke.mindustry.world.blocks.liquid.LiquidBridge("phase-conduit"){{
|
||||||
requirements(Category.liquid, ItemStack.with(Items.phasefabric, 5, Items.silicon, 7, Items.metaglass, 20, Items.titanium, 10));
|
requirements(Category.liquid, ItemStack.with(Items.phasefabric, 5, Items.silicon, 7, Items.metaglass, 20, Items.titanium, 10));
|
||||||
range = 12;
|
range = 12;
|
||||||
hasPower = true;
|
hasPower = true;
|
||||||
@@ -1065,6 +1048,10 @@ public class Blocks implements ContentList{
|
|||||||
laserRange = 30f;
|
laserRange = 30f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
diode = new PowerDiode("diode"){{
|
||||||
|
requirements(Category.power, ItemStack.with(Items.silicon, 10, Items.plastanium, 5, Items.metaglass, 10));
|
||||||
|
}};
|
||||||
|
|
||||||
battery = new Battery("battery"){{
|
battery = new Battery("battery"){{
|
||||||
requirements(Category.power, ItemStack.with(Items.copper, 4, Items.lead, 20));
|
requirements(Category.power, ItemStack.with(Items.copper, 4, Items.lead, 20));
|
||||||
consumes.powerBuffered(4000f);
|
consumes.powerBuffered(4000f);
|
||||||
@@ -1136,7 +1123,7 @@ public class Blocks implements ContentList{
|
|||||||
powerProduction = 14f;
|
powerProduction = 14f;
|
||||||
consumes.item(Items.thorium);
|
consumes.item(Items.thorium);
|
||||||
heating = 0.02f;
|
heating = 0.02f;
|
||||||
consumes.liquid(Liquids.cryofluid, 0.1f).update(false);
|
consumes.liquid(Liquids.cryofluid, heating / coolantPower).update(false);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
impactReactor = new ImpactReactor("impact-reactor"){{
|
impactReactor = new ImpactReactor("impact-reactor"){{
|
||||||
@@ -1805,6 +1792,45 @@ public class Blocks implements ContentList{
|
|||||||
consumes.power(1.2f);
|
consumes.power(1.2f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
//endregion
|
||||||
|
//region sandbox
|
||||||
|
|
||||||
|
powerSource = new PowerSource("power-source"){{
|
||||||
|
requirements(Category.power, BuildVisibility.sandboxOnly, ItemStack.with());
|
||||||
|
alwaysUnlocked = true;
|
||||||
|
}};
|
||||||
|
|
||||||
|
powerVoid = new PowerVoid("power-void"){{
|
||||||
|
requirements(Category.power, BuildVisibility.sandboxOnly, ItemStack.with());
|
||||||
|
alwaysUnlocked = true;
|
||||||
|
}};
|
||||||
|
|
||||||
|
itemSource = new ItemSource("item-source"){{
|
||||||
|
requirements(Category.distribution, BuildVisibility.sandboxOnly, ItemStack.with());
|
||||||
|
alwaysUnlocked = true;
|
||||||
|
}};
|
||||||
|
|
||||||
|
itemVoid = new ItemVoid("item-void"){{
|
||||||
|
requirements(Category.distribution, BuildVisibility.sandboxOnly, ItemStack.with());
|
||||||
|
alwaysUnlocked = true;
|
||||||
|
}};
|
||||||
|
|
||||||
|
liquidSource = new LiquidSource("liquid-source"){{
|
||||||
|
requirements(Category.liquid, BuildVisibility.sandboxOnly, ItemStack.with());
|
||||||
|
alwaysUnlocked = true;
|
||||||
|
}};
|
||||||
|
|
||||||
|
message = new MessageBlock("message"){{
|
||||||
|
requirements(Category.effect, ItemStack.with(Items.graphite, 5));
|
||||||
|
}};
|
||||||
|
|
||||||
|
illuminator = new LightBlock("illuminator"){{
|
||||||
|
requirements(Category.effect, BuildVisibility.lightingOnly, ItemStack.with(Items.graphite, 4, Items.silicon, 2));
|
||||||
|
brightness = 0.67f;
|
||||||
|
radius = 120f;
|
||||||
|
consumes.power(0.05f);
|
||||||
|
}};
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import io.anuke.mindustry.graphics.*;
|
|||||||
import io.anuke.mindustry.type.*;
|
import io.anuke.mindustry.type.*;
|
||||||
import io.anuke.mindustry.ui.Cicon;
|
import io.anuke.mindustry.ui.Cicon;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.tilesize;
|
import static io.anuke.mindustry.Vars.*;
|
||||||
|
|
||||||
public class Fx implements ContentList{
|
public class Fx implements ContentList{
|
||||||
public static Effect
|
public static Effect
|
||||||
@@ -456,6 +456,8 @@ public class Fx implements ContentList{
|
|||||||
});
|
});
|
||||||
|
|
||||||
Draw.color();
|
Draw.color();
|
||||||
|
|
||||||
|
renderer.lights.add(e.x, e.y, 20f * e.fslope(), Pal.lightFlame, 0.5f);
|
||||||
});
|
});
|
||||||
|
|
||||||
fireSmoke = new Effect(35f, e -> {
|
fireSmoke = new Effect(35f, e -> {
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ public class Liquids implements ContentList{
|
|||||||
temperature = 1f;
|
temperature = 1f;
|
||||||
viscosity = 0.8f;
|
viscosity = 0.8f;
|
||||||
effect = StatusEffects.melting;
|
effect = StatusEffects.melting;
|
||||||
|
lightColor = Color.valueOf("f0511d").a(0.4f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
oil = new Liquid("oil", Color.valueOf("313131")){{
|
oil = new Liquid("oil", Color.valueOf("313131")){{
|
||||||
@@ -34,6 +35,7 @@ public class Liquids implements ContentList{
|
|||||||
heatCapacity = 0.9f;
|
heatCapacity = 0.9f;
|
||||||
temperature = 0.25f;
|
temperature = 0.25f;
|
||||||
effect = StatusEffects.freezing;
|
effect = StatusEffects.freezing;
|
||||||
|
lightColor = Color.valueOf("0097f5").a(0.2f);
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,6 +199,10 @@ public class TechTree implements ContentList{
|
|||||||
node(phaseConduit, () -> {
|
node(phaseConduit, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
node(platedConduit, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
node(rotaryPump, () -> {
|
node(rotaryPump, () -> {
|
||||||
@@ -215,8 +219,10 @@ public class TechTree implements ContentList{
|
|||||||
node(combustionGenerator, () -> {
|
node(combustionGenerator, () -> {
|
||||||
node(powerNode, () -> {
|
node(powerNode, () -> {
|
||||||
node(powerNodeLarge, () -> {
|
node(powerNodeLarge, () -> {
|
||||||
node(surgeTower, () -> {
|
node(diode, () -> {
|
||||||
|
node(surgeTower, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -189,7 +189,6 @@ public class Zones implements ContentList{
|
|||||||
startingItems = list(copper, 250, lead, 100);
|
startingItems = list(copper, 250, lead, 100);
|
||||||
conditionWave = 15;
|
conditionWave = 15;
|
||||||
launchPeriod = 10;
|
launchPeriod = 10;
|
||||||
requirements = with(new ZoneWave(ruinousShores, 20));
|
|
||||||
resources = with(copper, scrap, lead, coal, titanium, thorium, sand);
|
resources = with(copper, scrap, lead, coal, titanium, thorium, sand);
|
||||||
requirements = with(
|
requirements = with(
|
||||||
new ZoneWave(ruinousShores, 20),
|
new ZoneWave(ruinousShores, 20),
|
||||||
|
|||||||
@@ -292,7 +292,7 @@ public class NetServer implements ApplicationListener{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//cooldown between votes
|
//cooldown between votes
|
||||||
int voteTime = 60 * 5;
|
int voteTime = 60 * 3;
|
||||||
Timekeeper vtime = new Timekeeper(voteTime);
|
Timekeeper vtime = new Timekeeper(voteTime);
|
||||||
//current kick sessions
|
//current kick sessions
|
||||||
VoteSession[] currentlyKicking = {null};
|
VoteSession[] currentlyKicking = {null};
|
||||||
@@ -484,7 +484,7 @@ public class NetServer implements ApplicationListener{
|
|||||||
for(BuildRequest req : requests){
|
for(BuildRequest req : requests){
|
||||||
if(req == null) continue;
|
if(req == null) continue;
|
||||||
Tile tile = world.tile(req.x, req.y);
|
Tile tile = world.tile(req.x, req.y);
|
||||||
if(tile == null) continue;
|
if(tile == null || (!req.breaking && req.block == null)) continue;
|
||||||
//auto-skip done requests
|
//auto-skip done requests
|
||||||
if(req.breaking && tile.block() == Blocks.air){
|
if(req.breaking && tile.block() == Blocks.air){
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ public class Renderer implements ApplicationListener{
|
|||||||
public final BlockRenderer blocks = new BlockRenderer();
|
public final BlockRenderer blocks = new BlockRenderer();
|
||||||
public final MinimapRenderer minimap = new MinimapRenderer();
|
public final MinimapRenderer minimap = new MinimapRenderer();
|
||||||
public final OverlayRenderer overlays = new OverlayRenderer();
|
public final OverlayRenderer overlays = new OverlayRenderer();
|
||||||
|
public final LightRenderer lights = new LightRenderer();
|
||||||
public final Pixelator pixelator = new Pixelator();
|
public final Pixelator pixelator = new Pixelator();
|
||||||
|
|
||||||
public FrameBuffer shieldBuffer = new FrameBuffer(2, 2);
|
public FrameBuffer shieldBuffer = new FrameBuffer(2, 2);
|
||||||
@@ -256,6 +257,7 @@ public class Renderer implements ApplicationListener{
|
|||||||
drawFlyerShadows();
|
drawFlyerShadows();
|
||||||
|
|
||||||
blocks.drawBlocks(Layer.power);
|
blocks.drawBlocks(Layer.power);
|
||||||
|
blocks.drawBlocks(Layer.lights);
|
||||||
|
|
||||||
drawAllTeams(true);
|
drawAllTeams(true);
|
||||||
|
|
||||||
@@ -298,6 +300,10 @@ public class Renderer implements ApplicationListener{
|
|||||||
|
|
||||||
playerGroup.draw(p -> !p.isDead(), Player::drawName);
|
playerGroup.draw(p -> !p.isDead(), Player::drawName);
|
||||||
|
|
||||||
|
if(state.rules.lighting){
|
||||||
|
lights.draw();
|
||||||
|
}
|
||||||
|
|
||||||
drawLanding();
|
drawLanding();
|
||||||
|
|
||||||
Draw.color();
|
Draw.color();
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
public MinimapDialog minimap;
|
public MinimapDialog minimap;
|
||||||
public SchematicsDialog schematics;
|
public SchematicsDialog schematics;
|
||||||
public ModsDialog mods;
|
public ModsDialog mods;
|
||||||
|
public ColorPicker picker;
|
||||||
|
|
||||||
public Cursor drillCursor, unloadCursor;
|
public Cursor drillCursor, unloadCursor;
|
||||||
|
|
||||||
@@ -211,6 +212,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
listfrag = new PlayerListFragment();
|
listfrag = new PlayerListFragment();
|
||||||
loadfrag = new LoadingFragment();
|
loadfrag = new LoadingFragment();
|
||||||
|
|
||||||
|
picker = new ColorPicker();
|
||||||
editor = new MapEditorDialog();
|
editor = new MapEditorDialog();
|
||||||
controls = new ControlsDialog();
|
controls = new ControlsDialog();
|
||||||
restart = new GameOverDialog();
|
restart = new GameOverDialog();
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ public class EditorTile extends Tile{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(floor.isLiquid) return;
|
||||||
if(overlayID() == overlay) return;
|
if(overlayID() == overlay) return;
|
||||||
op(OpType.overlay, this.overlay.id);
|
op(OpType.overlay, this.overlay.id);
|
||||||
super.setOverlayID(overlay);
|
super.setOverlayID(overlay);
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ public class WaveInfoDialog extends FloatingDialog{
|
|||||||
}).width(80f);
|
}).width(80f);
|
||||||
|
|
||||||
a.add(" + ");
|
a.add(" + ");
|
||||||
a.addField(Strings.fixed(Math.max((Mathf.isZero(group.unitScaling) ? 0 : 1f / group.unitScaling), 0), 2), TextFieldFilter.floatsOnly, text -> {
|
a.addField(Strings.fixed(Math.max((Mathf.zero(group.unitScaling) ? 0 : 1f / group.unitScaling), 0), 2), TextFieldFilter.floatsOnly, text -> {
|
||||||
if(Strings.canParsePositiveFloat(text)){
|
if(Strings.canParsePositiveFloat(text)){
|
||||||
group.unitScaling = 1f / Strings.parseFloat(text);
|
group.unitScaling = 1f / Strings.parseFloat(text);
|
||||||
updateWaves();
|
updateWaves();
|
||||||
@@ -217,21 +217,23 @@ public class WaveInfoDialog extends FloatingDialog{
|
|||||||
|
|
||||||
void showUpdate(SpawnGroup group){
|
void showUpdate(SpawnGroup group){
|
||||||
FloatingDialog dialog = new FloatingDialog("");
|
FloatingDialog dialog = new FloatingDialog("");
|
||||||
dialog.setFillParent(false);
|
dialog.setFillParent(true);
|
||||||
int i = 0;
|
dialog.cont.pane(p -> {
|
||||||
for(UnitType type : content.units()){
|
int i = 0;
|
||||||
dialog.cont.addButton(t -> {
|
for(UnitType type : content.units()){
|
||||||
t.left();
|
p.addButton(t -> {
|
||||||
t.addImage(type.icon(io.anuke.mindustry.ui.Cicon.medium)).size(40f).padRight(2f);
|
t.left();
|
||||||
t.add(type.localizedName);
|
t.addImage(type.icon(io.anuke.mindustry.ui.Cicon.medium)).size(40f).padRight(2f);
|
||||||
}, () -> {
|
t.add(type.localizedName);
|
||||||
lastType = type;
|
}, () -> {
|
||||||
group.type = type;
|
lastType = type;
|
||||||
dialog.hide();
|
group.type = type;
|
||||||
buildGroups();
|
dialog.hide();
|
||||||
}).pad(2).margin(12f).fillX();
|
buildGroups();
|
||||||
if(++i % 3 == 0) dialog.cont.row();
|
}).pad(2).margin(12f).fillX();
|
||||||
}
|
if(++i % 3 == 0) p.row();
|
||||||
|
}
|
||||||
|
});
|
||||||
dialog.show();
|
dialog.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -237,6 +237,12 @@ public class Puddle extends SolidEntity implements SaveTrait, Poolable, DrawTrai
|
|||||||
seeds++;
|
seeds++;
|
||||||
});
|
});
|
||||||
Draw.color();
|
Draw.color();
|
||||||
|
|
||||||
|
if(liquid.lightColor.a > 0.001f && f > 0){
|
||||||
|
Color color = liquid.lightColor;
|
||||||
|
float opacity = color.a * f;
|
||||||
|
renderer.lights.add(tile.drawx(), tile.drawy(), 30f * f, color, opacity * 0.8f);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -34,39 +34,36 @@ public interface BuilderTrait extends Entity, TeamTrait{
|
|||||||
default void updateBuilding(){
|
default void updateBuilding(){
|
||||||
float finalPlaceDst = state.rules.infiniteResources ? Float.MAX_VALUE : placeDistance;
|
float finalPlaceDst = state.rules.infiniteResources ? Float.MAX_VALUE : placeDistance;
|
||||||
Unit unit = (Unit)this;
|
Unit unit = (Unit)this;
|
||||||
|
|
||||||
//remove already completed build requests
|
//remove already completed build requests
|
||||||
removal.clear();
|
removal.clear();
|
||||||
for(BuildRequest req : buildQueue()){
|
removal.addAll(buildQueue());
|
||||||
removal.add(req);
|
|
||||||
}
|
|
||||||
|
|
||||||
buildQueue().clear();
|
Structs.filter(buildQueue(), req -> {
|
||||||
|
Tile tile = world.tile(req.x, req.y);
|
||||||
|
return tile == null || (req.breaking && tile.block() == Blocks.air) || (!req.breaking && (tile.rotation() == req.rotation || !req.block.rotate) && tile.block() == req.block);
|
||||||
|
});
|
||||||
|
|
||||||
for(BuildRequest request : removal){
|
TileEntity core = unit.getClosestCore();
|
||||||
Tile tile = world.tile(request.x, request.y);
|
|
||||||
|
|
||||||
if(!(tile == null || (request.breaking && tile.block() == Blocks.air) ||
|
//nothing to build.
|
||||||
(!request.breaking && (tile.rotation() == request.rotation || !request.block.rotate) && tile.block() == request.block))){
|
if(buildRequest() == null) return;
|
||||||
buildQueue().addLast(request);
|
|
||||||
|
//find the next build request
|
||||||
|
if(buildQueue().size > 1){
|
||||||
|
int total = 0;
|
||||||
|
BuildRequest req;
|
||||||
|
while((dst((req = buildRequest()).tile()) > finalPlaceDst || shouldSkip(req, core)) && total < buildQueue().size){
|
||||||
|
buildQueue().removeFirst();
|
||||||
|
buildQueue().addLast(req);
|
||||||
|
total++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BuildRequest current = buildRequest();
|
BuildRequest current = buildRequest();
|
||||||
|
|
||||||
if(current == null){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Tile tile = world.tile(current.x, current.y);
|
Tile tile = world.tile(current.x, current.y);
|
||||||
|
|
||||||
if(dst(tile) > finalPlaceDst){
|
|
||||||
if(buildQueue().size > 1){
|
|
||||||
buildQueue().removeFirst();
|
|
||||||
buildQueue().addLast(current);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!(tile.block() instanceof BuildBlock)){
|
if(!(tile.block() instanceof BuildBlock)){
|
||||||
if(!current.initialized && canCreateBlocks() && !current.breaking && Build.validPlace(getTeam(), current.x, current.y, current.block, current.rotation)){
|
if(!current.initialized && canCreateBlocks() && !current.breaking && Build.validPlace(getTeam(), current.x, current.y, current.block, current.rotation)){
|
||||||
Call.beginPlace(getTeam(), current.x, current.y, current.block, current.rotation);
|
Call.beginPlace(getTeam(), current.x, current.y, current.block, current.rotation);
|
||||||
@@ -78,8 +75,6 @@ public interface BuilderTrait extends Entity, TeamTrait{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TileEntity core = unit.getClosestCore();
|
|
||||||
|
|
||||||
if(tile.entity instanceof BuildEntity && !current.initialized){
|
if(tile.entity instanceof BuildEntity && !current.initialized){
|
||||||
Core.app.post(() -> Events.fire(new BuildSelectEvent(tile, unit.getTeam(), this, current.breaking)));
|
Core.app.post(() -> Events.fire(new BuildSelectEvent(tile, unit.getTeam(), this, current.breaking)));
|
||||||
current.initialized = true;
|
current.initialized = true;
|
||||||
@@ -111,9 +106,17 @@ public interface BuilderTrait extends Entity, TeamTrait{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
current.stuck = Mathf.equal(current.progress, entity.progress);
|
||||||
current.progress = entity.progress;
|
current.progress = entity.progress;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return whether this request should be skipped, in favor of the next one. */
|
||||||
|
default boolean shouldSkip(BuildRequest request, @Nullable TileEntity core){
|
||||||
|
//requests that you have at least *started* are considered
|
||||||
|
if(state.rules.infiniteResources || request.breaking || !request.initialized || core == null) return false;
|
||||||
|
return request.stuck && !core.items.has(request.block.requirements);
|
||||||
|
}
|
||||||
|
|
||||||
/** Returns the queue for storing build requests. */
|
/** Returns the queue for storing build requests. */
|
||||||
Queue<BuildRequest> buildQueue();
|
Queue<BuildRequest> buildQueue();
|
||||||
|
|
||||||
@@ -287,8 +290,8 @@ public interface BuilderTrait extends Entity, TeamTrait{
|
|||||||
|
|
||||||
/** Last progress.*/
|
/** Last progress.*/
|
||||||
public float progress;
|
public float progress;
|
||||||
/** Whether construction has started for this request.*/
|
/** Whether construction has started for this request, and other special variables.*/
|
||||||
public boolean initialized, worldContext = true;
|
public boolean initialized, worldContext = true, stuck;
|
||||||
|
|
||||||
/** Visual scale. Used only for rendering.*/
|
/** Visual scale. Used only for rendering.*/
|
||||||
public float animScale = 0f;
|
public float animScale = 0f;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import io.anuke.mindustry.entities.bullet.*;
|
|||||||
import io.anuke.mindustry.entities.effect.*;
|
import io.anuke.mindustry.entities.effect.*;
|
||||||
import io.anuke.mindustry.entities.traits.*;
|
import io.anuke.mindustry.entities.traits.*;
|
||||||
import io.anuke.mindustry.game.*;
|
import io.anuke.mindustry.game.*;
|
||||||
|
import io.anuke.mindustry.graphics.*;
|
||||||
import io.anuke.mindustry.world.*;
|
import io.anuke.mindustry.world.*;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.*;
|
import static io.anuke.mindustry.Vars.*;
|
||||||
@@ -294,6 +295,7 @@ public class Bullet extends SolidEntity implements DamageTrait, ScaleTrait, Pool
|
|||||||
@Override
|
@Override
|
||||||
public void draw(){
|
public void draw(){
|
||||||
type.draw(this);
|
type.draw(this);
|
||||||
|
renderer.lights.add(x, y, 16f, Pal.powerLight, 0.3f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -24,9 +24,7 @@ import io.anuke.mindustry.io.*;
|
|||||||
import io.anuke.mindustry.net.Administration.*;
|
import io.anuke.mindustry.net.Administration.*;
|
||||||
import io.anuke.mindustry.net.*;
|
import io.anuke.mindustry.net.*;
|
||||||
import io.anuke.mindustry.type.*;
|
import io.anuke.mindustry.type.*;
|
||||||
import io.anuke.mindustry.type.TypeID;
|
|
||||||
import io.anuke.mindustry.ui.*;
|
import io.anuke.mindustry.ui.*;
|
||||||
import io.anuke.mindustry.ui.Cicon;
|
|
||||||
import io.anuke.mindustry.world.*;
|
import io.anuke.mindustry.world.*;
|
||||||
import io.anuke.mindustry.world.blocks.*;
|
import io.anuke.mindustry.world.blocks.*;
|
||||||
|
|
||||||
@@ -352,6 +350,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
|
|||||||
Draw.rect(getPowerCellRegion(), x + Angles.trnsx(rotation, mech.cellTrnsY, 0f), y + Angles.trnsy(rotation, mech.cellTrnsY, 0f), rotation - 90);
|
Draw.rect(getPowerCellRegion(), x + Angles.trnsx(rotation, mech.cellTrnsY, 0f), y + Angles.trnsy(rotation, mech.cellTrnsY, 0f), rotation - 90);
|
||||||
Draw.reset();
|
Draw.reset();
|
||||||
drawBackItems(itemtime, isLocal);
|
drawBackItems(itemtime, isLocal);
|
||||||
|
drawLight();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -87,6 +87,11 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
|||||||
return Time.delta() * timeScale;
|
return Time.delta() * timeScale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Base efficiency. If this entity has non-buffered power, returns the power %, otherwise returns 1. */
|
||||||
|
public float efficiency(){
|
||||||
|
return power != null && !block.consumes.getPower().buffered ? power.status : 1f;
|
||||||
|
}
|
||||||
|
|
||||||
/** Call when nothing is happening to the entity. This increments the internal sleep timer. */
|
/** Call when nothing is happening to the entity. This increments the internal sleep timer. */
|
||||||
public void sleep(){
|
public void sleep(){
|
||||||
sleepTime += Time.delta();
|
sleepTime += Time.delta();
|
||||||
@@ -306,13 +311,17 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
|||||||
loops.play(block.idleSound, this, block.idleSoundVolume);
|
loops.play(block.idleSound, this, block.idleSoundVolume);
|
||||||
}
|
}
|
||||||
|
|
||||||
Block previous = block;
|
|
||||||
block.update(tile);
|
block.update(tile);
|
||||||
if(block == previous && cons != null){
|
|
||||||
|
if(liquids != null){
|
||||||
|
liquids.update();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cons != null){
|
||||||
cons.update();
|
cons.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(block == previous && power != null){
|
if(power != null){
|
||||||
power.graph.update();
|
power.graph.update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -167,6 +167,8 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void writeSave(DataOutput stream, boolean net) throws IOException{
|
public void writeSave(DataOutput stream, boolean net) throws IOException{
|
||||||
|
if(item.item == null) item.item = Items.copper;
|
||||||
|
|
||||||
stream.writeByte(team.ordinal());
|
stream.writeByte(team.ordinal());
|
||||||
stream.writeBoolean(isDead());
|
stream.writeBoolean(isDead());
|
||||||
stream.writeFloat(net ? interpolator.target.x : x);
|
stream.writeFloat(net ? interpolator.target.x : x);
|
||||||
@@ -399,6 +401,12 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
|
|||||||
Draw.color();
|
Draw.color();
|
||||||
|
|
||||||
drawBackItems(item.amount > 0 ? 1f : 0f, false);
|
drawBackItems(item.amount > 0 ? 1f : 0f, false);
|
||||||
|
|
||||||
|
drawLight();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drawLight(){
|
||||||
|
renderer.lights.add(x, y, 50f, Pal.powerLight, 0.6f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drawBackItems(float itemtime, boolean number){
|
public void drawBackItems(float itemtime, boolean number){
|
||||||
|
|||||||
@@ -27,7 +27,8 @@ public class EventType{
|
|||||||
drown,
|
drown,
|
||||||
exclusionDeath,
|
exclusionDeath,
|
||||||
suicideBomb,
|
suicideBomb,
|
||||||
openWiki
|
openWiki,
|
||||||
|
teamCoreDamage
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class WinEvent{}
|
public static class WinEvent{}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class LoopControl{
|
|||||||
data.curVolume = Mathf.lerpDelta(data.curVolume, data.volume * avol, 0.2f);
|
data.curVolume = Mathf.lerpDelta(data.curVolume, data.volume * avol, 0.2f);
|
||||||
|
|
||||||
boolean play = data.curVolume > 0.01f;
|
boolean play = data.curVolume > 0.01f;
|
||||||
float pan = Mathf.isZero(data.total, 0.0001f) ? 0f : sound.calcPan(data.sum.x / data.total, data.sum.y / data.total);
|
float pan = Mathf.zero(data.total, 0.0001f) ? 0f : sound.calcPan(data.sum.x / data.total, data.sum.y / data.total);
|
||||||
if(data.soundID <= 0){
|
if(data.soundID <= 0){
|
||||||
if(play){
|
if(play){
|
||||||
data.soundID = sound.loop(data.curVolume, 1f, pan);
|
data.soundID = sound.loop(data.curVolume, 1f, pan);
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package io.anuke.mindustry.game;
|
|||||||
|
|
||||||
import io.anuke.annotations.Annotations.*;
|
import io.anuke.annotations.Annotations.*;
|
||||||
import io.anuke.arc.collection.*;
|
import io.anuke.arc.collection.*;
|
||||||
|
import io.anuke.arc.graphics.*;
|
||||||
import io.anuke.mindustry.content.*;
|
import io.anuke.mindustry.content.*;
|
||||||
import io.anuke.mindustry.io.*;
|
import io.anuke.mindustry.io.*;
|
||||||
import io.anuke.mindustry.type.*;
|
import io.anuke.mindustry.type.*;
|
||||||
@@ -25,6 +26,8 @@ public class Rules{
|
|||||||
public boolean pvp;
|
public boolean pvp;
|
||||||
/** Whether enemy units drop random items on death. */
|
/** Whether enemy units drop random items on death. */
|
||||||
public boolean unitDrops = true;
|
public boolean unitDrops = true;
|
||||||
|
/** Whether reactors can explode and damage other blocks. */
|
||||||
|
public boolean reactorExplosions = true;
|
||||||
/** How fast unit pads build units. */
|
/** How fast unit pads build units. */
|
||||||
public float unitBuildSpeedMultiplier = 1f;
|
public float unitBuildSpeedMultiplier = 1f;
|
||||||
/** How much health units start with. */
|
/** How much health units start with. */
|
||||||
@@ -65,12 +68,16 @@ public class Rules{
|
|||||||
public boolean attackMode = false;
|
public boolean attackMode = false;
|
||||||
/** Whether this is the editor gamemode. */
|
/** Whether this is the editor gamemode. */
|
||||||
public boolean editor = false;
|
public boolean editor = false;
|
||||||
/** Whether the tutorial is enabled. False by default.*/
|
/** Whether the tutorial is enabled. False by default. */
|
||||||
public boolean tutorial = false;
|
public boolean tutorial = false;
|
||||||
/** Starting items put in cores */
|
/** Starting items put in cores */
|
||||||
public Array<ItemStack> loadout = Array.with(ItemStack.with(Items.copper, 100));
|
public Array<ItemStack> loadout = Array.with(ItemStack.with(Items.copper, 100));
|
||||||
/** Blocks that cannot be placed. */
|
/** Blocks that cannot be placed. */
|
||||||
public ObjectSet<Block> bannedBlocks = new ObjectSet<>();
|
public ObjectSet<Block> bannedBlocks = new ObjectSet<>();
|
||||||
|
/** Whether everything is dark. Enables lights. Experimental. */
|
||||||
|
public boolean lighting = false;
|
||||||
|
/** Ambient light color, used when lighting is enabled. */
|
||||||
|
public Color ambientLight = new Color(0.01f, 0.01f, 0.04f, 0.99f);
|
||||||
|
|
||||||
/** Copies this ruleset exactly. Not very efficient at all, do not use often. */
|
/** Copies this ruleset exactly. Not very efficient at all, do not use often. */
|
||||||
public Rules copy(){
|
public Rules copy(){
|
||||||
|
|||||||
@@ -9,11 +9,11 @@ import io.anuke.arc.graphics.glutils.*;
|
|||||||
import io.anuke.arc.math.*;
|
import io.anuke.arc.math.*;
|
||||||
import io.anuke.arc.util.*;
|
import io.anuke.arc.util.*;
|
||||||
import io.anuke.mindustry.content.*;
|
import io.anuke.mindustry.content.*;
|
||||||
import io.anuke.mindustry.game.*;
|
|
||||||
import io.anuke.mindustry.game.EventType.*;
|
import io.anuke.mindustry.game.EventType.*;
|
||||||
import io.anuke.mindustry.game.Teams.*;
|
import io.anuke.mindustry.game.Teams.*;
|
||||||
import io.anuke.mindustry.ui.Cicon;
|
import io.anuke.mindustry.ui.*;
|
||||||
import io.anuke.mindustry.world.*;
|
import io.anuke.mindustry.world.*;
|
||||||
|
import io.anuke.mindustry.world.blocks.*;
|
||||||
|
|
||||||
import static io.anuke.arc.Core.camera;
|
import static io.anuke.arc.Core.camera;
|
||||||
import static io.anuke.mindustry.Vars.*;
|
import static io.anuke.mindustry.Vars.*;
|
||||||
@@ -219,6 +219,10 @@ public class BlockRenderer implements Disposable{
|
|||||||
addRequest(tile, Layer.block);
|
addRequest(tile, Layer.block);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(state.rules.lighting && tile.block().synthetic() && !(tile.block() instanceof BlockPart)){
|
||||||
|
addRequest(tile, Layer.lights);
|
||||||
|
}
|
||||||
|
|
||||||
if(block.expanded || !expanded){
|
if(block.expanded || !expanded){
|
||||||
|
|
||||||
if(block.layer != null){
|
if(block.layer != null){
|
||||||
@@ -274,6 +278,9 @@ public class BlockRenderer implements Disposable{
|
|||||||
if(block.synthetic() && request.tile.getTeam() != player.getTeam()){
|
if(block.synthetic() && request.tile.getTeam() != player.getTeam()){
|
||||||
block.drawTeam(request.tile);
|
block.drawTeam(request.tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}else if(request.layer == Layer.lights){
|
||||||
|
block.drawLight(request.tile);
|
||||||
}else if(request.layer == block.layer){
|
}else if(request.layer == block.layer){
|
||||||
block.drawLayer(request.tile);
|
block.drawLayer(request.tile);
|
||||||
}else if(request.layer == block.layer2){
|
}else if(request.layer == block.layer2){
|
||||||
@@ -282,39 +289,6 @@ public class BlockRenderer implements Disposable{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drawTeamBlocks(Layer layer, Team team){
|
|
||||||
int index = this.iterateidx;
|
|
||||||
|
|
||||||
for(; index < requestidx; index++){
|
|
||||||
|
|
||||||
if(index < requests.size && requests.get(index).layer.ordinal() > layer.ordinal()){
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
BlockRequest req = requests.get(index);
|
|
||||||
if(req.tile.getTeam() != team) continue;
|
|
||||||
|
|
||||||
Block block = req.tile.block();
|
|
||||||
|
|
||||||
if(req.layer == Layer.block){
|
|
||||||
block.draw(req.tile);
|
|
||||||
}else if(req.layer == block.layer){
|
|
||||||
block.drawLayer(req.tile);
|
|
||||||
}else if(req.layer == block.layer2){
|
|
||||||
block.drawLayer2(req.tile);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void skipLayer(Layer stopAt){
|
|
||||||
for(; iterateidx < requestidx; iterateidx++){
|
|
||||||
if(iterateidx < requests.size && requests.get(iterateidx).layer.ordinal() > stopAt.ordinal()){
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addRequest(Tile tile, Layer layer){
|
private void addRequest(Tile tile, Layer layer){
|
||||||
if(requestidx >= requests.size){
|
if(requestidx >= requests.size){
|
||||||
requests.add(new BlockRequest());
|
requests.add(new BlockRequest());
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import io.anuke.arc.graphics.g2d.*;
|
|||||||
import io.anuke.arc.math.*;
|
import io.anuke.arc.math.*;
|
||||||
import io.anuke.arc.util.*;
|
import io.anuke.arc.util.*;
|
||||||
|
|
||||||
|
import static io.anuke.mindustry.Vars.renderer;
|
||||||
|
|
||||||
public class Drawf{
|
public class Drawf{
|
||||||
|
|
||||||
public static void dashCircle(float x, float y, float rad, Color color){
|
public static void dashCircle(float x, float y, float rad, Color color){
|
||||||
@@ -40,15 +42,6 @@ public class Drawf{
|
|||||||
square(x, y, radius, Pal.accent);
|
square(x, y, radius, Pal.accent);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
public static void square(float x, float y, float radius){
|
|
||||||
Lines.stroke(1f, Pal.gray);
|
|
||||||
Lines.square(x, y - 1f, radius + 1f, 45);
|
|
||||||
Lines.stroke(1f, Pal.accent);
|
|
||||||
Lines.square(x, y, radius + 1f, 45);
|
|
||||||
Draw.reset();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
public static void arrow(float x, float y, float x2, float y2, float length, float radius){
|
public static void arrow(float x, float y, float x2, float y2, float length, float radius){
|
||||||
float angle = Angles.angle(x, y, x2, y2);
|
float angle = Angles.angle(x, y, x2, y2);
|
||||||
float space = 2f;
|
float space = 2f;
|
||||||
@@ -81,6 +74,8 @@ public class Drawf{
|
|||||||
Lines.line(line, x + Tmp.v1.x, y + Tmp.v1.y, x2 - Tmp.v1.x, y2 - Tmp.v1.y, CapStyle.none, 0f);
|
Lines.line(line, x + Tmp.v1.x, y + Tmp.v1.y, x2 - Tmp.v1.x, y2 - Tmp.v1.y, CapStyle.none, 0f);
|
||||||
Lines.precise(false);
|
Lines.precise(false);
|
||||||
Lines.stroke(1f);
|
Lines.stroke(1f);
|
||||||
|
|
||||||
|
renderer.lights.line(x, y, x2, y2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void tri(float x, float y, float width, float length, float rotation){
|
public static void tri(float x, float y, float width, float length, float rotation){
|
||||||
|
|||||||
@@ -10,5 +10,7 @@ public enum Layer{
|
|||||||
/** "High" blocks, like turrets. */
|
/** "High" blocks, like turrets. */
|
||||||
turret,
|
turret,
|
||||||
/** Power lasers. */
|
/** Power lasers. */
|
||||||
power
|
power,
|
||||||
|
/** Extra layer that's always on top.*/
|
||||||
|
lights
|
||||||
}
|
}
|
||||||
|
|||||||
199
core/src/io/anuke/mindustry/graphics/LightRenderer.java
Normal file
@@ -0,0 +1,199 @@
|
|||||||
|
package io.anuke.mindustry.graphics;
|
||||||
|
|
||||||
|
import io.anuke.arc.*;
|
||||||
|
import io.anuke.arc.collection.*;
|
||||||
|
import io.anuke.arc.graphics.*;
|
||||||
|
import io.anuke.arc.graphics.g2d.*;
|
||||||
|
import io.anuke.arc.graphics.glutils.*;
|
||||||
|
import io.anuke.arc.math.*;
|
||||||
|
import io.anuke.arc.math.geom.*;
|
||||||
|
import io.anuke.arc.util.*;
|
||||||
|
|
||||||
|
import static io.anuke.mindustry.Vars.state;
|
||||||
|
|
||||||
|
/** Renders overlay lights. Client only. */
|
||||||
|
public class LightRenderer{
|
||||||
|
private static final int scaling = 4;
|
||||||
|
private float[] vertices = new float[24];
|
||||||
|
private FrameBuffer buffer = new FrameBuffer(2, 2);
|
||||||
|
private Array<Runnable> lights = new Array<>();
|
||||||
|
|
||||||
|
public void add(Runnable run){
|
||||||
|
if(!enabled()) return;
|
||||||
|
|
||||||
|
lights.add(run);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void add(float x, float y, float radius, Color color, float opacity){
|
||||||
|
if(!enabled()) return;
|
||||||
|
|
||||||
|
float res = color.toFloatBits();
|
||||||
|
add(() -> {
|
||||||
|
Draw.color(res);
|
||||||
|
Draw.alpha(opacity);
|
||||||
|
Draw.rect("circle-shadow", x, y, radius * 2, radius * 2);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void add(float x, float y, TextureRegion region, Color color, float opacity){
|
||||||
|
if(!enabled()) return;
|
||||||
|
|
||||||
|
float res = color.toFloatBits();
|
||||||
|
add(() -> {
|
||||||
|
Draw.color(res);
|
||||||
|
Draw.alpha(opacity);
|
||||||
|
Draw.rect(region, x, y);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void line(float x, float y, float x2, float y2){
|
||||||
|
if(!enabled()) return;
|
||||||
|
|
||||||
|
add(() -> {
|
||||||
|
Draw.color(Color.orange, 0.3f);
|
||||||
|
|
||||||
|
float stroke = 30f;
|
||||||
|
float rot = Mathf.angleExact(x2 - x, y2 - y);
|
||||||
|
TextureRegion ledge = Core.atlas.find("circle-end"), lmid = Core.atlas.find("circle-mid");
|
||||||
|
|
||||||
|
float color = Draw.getColor().toFloatBits();
|
||||||
|
float u = lmid.getU();
|
||||||
|
float v = lmid.getV2();
|
||||||
|
float u2 = lmid.getU2();
|
||||||
|
float v2 = lmid.getV();
|
||||||
|
|
||||||
|
|
||||||
|
Vector2 v1 = Tmp.v1.trnsExact(rot + 90f, stroke);
|
||||||
|
float lx1 = x - v1.x, ly1 = y - v1.y,
|
||||||
|
lx2 = x + v1.x, ly2 = y + v1.y,
|
||||||
|
lx3 = x2 + v1.x, ly3 = y2 + v1.y,
|
||||||
|
lx4 = x2 - v1.x, ly4 = y2 - v1.y;
|
||||||
|
|
||||||
|
vertices[0] = lx1;
|
||||||
|
vertices[1] = ly1;
|
||||||
|
vertices[2] = color;
|
||||||
|
vertices[3] = u;
|
||||||
|
vertices[4] = v;
|
||||||
|
vertices[5] = 0;
|
||||||
|
|
||||||
|
vertices[6] = lx2;
|
||||||
|
vertices[7] = ly2;
|
||||||
|
vertices[8] = color;
|
||||||
|
vertices[9] = u;
|
||||||
|
vertices[10] = v2;
|
||||||
|
vertices[11] = 0;
|
||||||
|
|
||||||
|
vertices[12] = lx3;
|
||||||
|
vertices[13] = ly3;
|
||||||
|
vertices[14] = color;
|
||||||
|
vertices[15] = u2;
|
||||||
|
vertices[16] = v2;
|
||||||
|
vertices[17] = 0;
|
||||||
|
|
||||||
|
vertices[18] = lx4;
|
||||||
|
vertices[19] = ly4;
|
||||||
|
vertices[20] = color;
|
||||||
|
vertices[21] = u2;
|
||||||
|
vertices[22] = v;
|
||||||
|
vertices[23] = 0;
|
||||||
|
|
||||||
|
Draw.vert(ledge.getTexture(), vertices, 0, vertices.length);
|
||||||
|
|
||||||
|
|
||||||
|
Vector2 v3 = Tmp.v2.trnsExact(rot, stroke);
|
||||||
|
|
||||||
|
u = ledge.getU();
|
||||||
|
v = ledge.getV2();
|
||||||
|
u2 = ledge.getU2();
|
||||||
|
v2 = ledge.getV();
|
||||||
|
|
||||||
|
vertices[0] = lx4;
|
||||||
|
vertices[1] = ly4;
|
||||||
|
vertices[2] = color;
|
||||||
|
vertices[3] = u;
|
||||||
|
vertices[4] = v;
|
||||||
|
vertices[5] = 0;
|
||||||
|
|
||||||
|
vertices[6] = lx3;
|
||||||
|
vertices[7] = ly3;
|
||||||
|
vertices[8] = color;
|
||||||
|
vertices[9] = u;
|
||||||
|
vertices[10] = v2;
|
||||||
|
vertices[11] = 0;
|
||||||
|
|
||||||
|
vertices[12] = lx3 + v3.x;
|
||||||
|
vertices[13] = ly3 + v3.y;
|
||||||
|
vertices[14] = color;
|
||||||
|
vertices[15] = u2;
|
||||||
|
vertices[16] = v2;
|
||||||
|
vertices[17] = 0;
|
||||||
|
|
||||||
|
vertices[18] = lx4 + v3.x;
|
||||||
|
vertices[19] = ly4 + v3.y;
|
||||||
|
vertices[20] = color;
|
||||||
|
vertices[21] = u2;
|
||||||
|
vertices[22] = v;
|
||||||
|
vertices[23] = 0;
|
||||||
|
|
||||||
|
Draw.vert(ledge.getTexture(), vertices, 0, vertices.length);
|
||||||
|
|
||||||
|
vertices[0] = lx2;
|
||||||
|
vertices[1] = ly2;
|
||||||
|
vertices[2] = color;
|
||||||
|
vertices[3] = u;
|
||||||
|
vertices[4] = v;
|
||||||
|
vertices[5] = 0;
|
||||||
|
|
||||||
|
vertices[6] = lx1;
|
||||||
|
vertices[7] = ly1;
|
||||||
|
vertices[8] = color;
|
||||||
|
vertices[9] = u;
|
||||||
|
vertices[10] = v2;
|
||||||
|
vertices[11] = 0;
|
||||||
|
|
||||||
|
vertices[12] = lx1 - v3.x;
|
||||||
|
vertices[13] = ly1 - v3.y;
|
||||||
|
vertices[14] = color;
|
||||||
|
vertices[15] = u2;
|
||||||
|
vertices[16] = v2;
|
||||||
|
vertices[17] = 0;
|
||||||
|
|
||||||
|
vertices[18] = lx2 - v3.x;
|
||||||
|
vertices[19] = ly2 - v3.y;
|
||||||
|
vertices[20] = color;
|
||||||
|
vertices[21] = u2;
|
||||||
|
vertices[22] = v;
|
||||||
|
vertices[23] = 0;
|
||||||
|
|
||||||
|
Draw.vert(ledge.getTexture(), vertices, 0, vertices.length);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean enabled(){
|
||||||
|
return state.rules.lighting;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void draw(){
|
||||||
|
if(buffer.getWidth() != Core.graphics.getWidth()/scaling || buffer.getHeight() != Core.graphics.getHeight()/scaling){
|
||||||
|
buffer.resize(Core.graphics.getWidth()/scaling, Core.graphics.getHeight()/scaling);
|
||||||
|
}
|
||||||
|
|
||||||
|
Draw.color();
|
||||||
|
buffer.beginDraw(Color.clear);
|
||||||
|
Draw.blend(Blending.normal);
|
||||||
|
for(Runnable run : lights){
|
||||||
|
run.run();
|
||||||
|
}
|
||||||
|
Draw.reset();
|
||||||
|
Draw.blend();
|
||||||
|
buffer.endDraw();
|
||||||
|
|
||||||
|
Draw.color();
|
||||||
|
Shaders.light.ambient.set(state.rules.ambientLight);
|
||||||
|
Draw.shader(Shaders.light);
|
||||||
|
Draw.rect(Draw.wrap(buffer.getTexture()), Core.camera.position.x, Core.camera.position.y, Core.camera.width, -Core.camera.height);
|
||||||
|
Draw.shader();
|
||||||
|
|
||||||
|
lights.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -67,7 +67,7 @@ public class OverlayRenderer{
|
|||||||
if(!rect.setSize(Core.camera.width * 0.9f, Core.camera.height * 0.9f)
|
if(!rect.setSize(Core.camera.width * 0.9f, Core.camera.height * 0.9f)
|
||||||
.setCenter(Core.camera.position.x, Core.camera.position.y).contains(mechpad.x, mechpad.y)){
|
.setCenter(Core.camera.position.x, Core.camera.position.y).contains(mechpad.x, mechpad.y)){
|
||||||
|
|
||||||
Tmp.v1.set(mechpad.worldx(), mechpad.worldy()).sub(Core.camera.position.x, Core.camera.position.y).setLength(indicatorLength);
|
Tmp.v1.set(mechpad.drawx(), mechpad.drawy()).sub(Core.camera.position.x, Core.camera.position.y).setLength(indicatorLength);
|
||||||
|
|
||||||
Lines.stroke(2f, ((MechPad) mechpad.block()).mech.engineColor);
|
Lines.stroke(2f, ((MechPad) mechpad.block()).mech.engineColor);
|
||||||
Lines.lineAngle(Core.camera.position.x + Tmp.v1.x, Core.camera.position.y + Tmp.v1.y, Tmp.v1.angle(), 0.5f);
|
Lines.lineAngle(Core.camera.position.x + Tmp.v1.x, Core.camera.position.y + Tmp.v1.y, Tmp.v1.angle(), 0.5f);
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ public class Shaders{
|
|||||||
public static UnitBuild build;
|
public static UnitBuild build;
|
||||||
public static FogShader fog;
|
public static FogShader fog;
|
||||||
public static MenuShader menu;
|
public static MenuShader menu;
|
||||||
|
public static LightShader light;
|
||||||
public static SurfaceShader water, tar;
|
public static SurfaceShader water, tar;
|
||||||
|
|
||||||
public static void init(){
|
public static void init(){
|
||||||
@@ -31,10 +32,25 @@ public class Shaders{
|
|||||||
build = new UnitBuild();
|
build = new UnitBuild();
|
||||||
fog = new FogShader();
|
fog = new FogShader();
|
||||||
menu = new MenuShader();
|
menu = new MenuShader();
|
||||||
|
light = new LightShader();
|
||||||
water = new SurfaceShader("water");
|
water = new SurfaceShader("water");
|
||||||
tar = new SurfaceShader("tar");
|
tar = new SurfaceShader("tar");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class LightShader extends LoadShader{
|
||||||
|
public Color ambient = new Color(0.01f, 0.01f, 0.04f, 0.99f);
|
||||||
|
|
||||||
|
public LightShader(){
|
||||||
|
super("light", "default");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void apply(){
|
||||||
|
setUniformf("u_ambient", ambient);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static class MenuShader extends LoadShader{
|
public static class MenuShader extends LoadShader{
|
||||||
float time = 0f;
|
float time = 0f;
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ public enum Binding implements KeyBind{
|
|||||||
move_x(new Axis(KeyCode.A, KeyCode.D), "general"),
|
move_x(new Axis(KeyCode.A, KeyCode.D), "general"),
|
||||||
move_y(new Axis(KeyCode.S, KeyCode.W)),
|
move_y(new Axis(KeyCode.S, KeyCode.W)),
|
||||||
mouse_move(KeyCode.MOUSE_BACK),
|
mouse_move(KeyCode.MOUSE_BACK),
|
||||||
|
dash(KeyCode.SHIFT_LEFT),
|
||||||
select(KeyCode.MOUSE_LEFT),
|
select(KeyCode.MOUSE_LEFT),
|
||||||
deselect(KeyCode.MOUSE_RIGHT),
|
deselect(KeyCode.MOUSE_RIGHT),
|
||||||
break_block(KeyCode.MOUSE_RIGHT),
|
break_block(KeyCode.MOUSE_RIGHT),
|
||||||
@@ -23,7 +24,22 @@ public enum Binding implements KeyBind{
|
|||||||
schematic_flip_x(KeyCode.Z),
|
schematic_flip_x(KeyCode.Z),
|
||||||
schematic_flip_y(KeyCode.X),
|
schematic_flip_y(KeyCode.X),
|
||||||
schematic_menu(KeyCode.T),
|
schematic_menu(KeyCode.T),
|
||||||
dash(KeyCode.SHIFT_LEFT),
|
category_prev(KeyCode.COMMA),
|
||||||
|
category_next(KeyCode.PERIOD),
|
||||||
|
block_select_left(KeyCode.LEFT),
|
||||||
|
block_select_right(KeyCode.RIGHT),
|
||||||
|
block_select_up(KeyCode.UP),
|
||||||
|
block_select_down(KeyCode.DOWN),
|
||||||
|
block_select_01(KeyCode.NUM_1),
|
||||||
|
block_select_02(KeyCode.NUM_2),
|
||||||
|
block_select_03(KeyCode.NUM_3),
|
||||||
|
block_select_04(KeyCode.NUM_4),
|
||||||
|
block_select_05(KeyCode.NUM_5),
|
||||||
|
block_select_06(KeyCode.NUM_6),
|
||||||
|
block_select_07(KeyCode.NUM_7),
|
||||||
|
block_select_08(KeyCode.NUM_8),
|
||||||
|
block_select_09(KeyCode.NUM_9),
|
||||||
|
block_select_10(KeyCode.NUM_0),
|
||||||
zoom_hold(KeyCode.CONTROL_LEFT, "view"),
|
zoom_hold(KeyCode.CONTROL_LEFT, "view"),
|
||||||
zoom(new Axis(KeyCode.SCROLL)),
|
zoom(new Axis(KeyCode.SCROLL)),
|
||||||
menu(Core.app.getType() == ApplicationType.Android ? KeyCode.BACK : KeyCode.ESCAPE),
|
menu(Core.app.getType() == ApplicationType.Android ? KeyCode.BACK : KeyCode.ESCAPE),
|
||||||
|
|||||||
@@ -50,9 +50,9 @@ public class DesktopInput extends InputHandler{
|
|||||||
b.defaults().left();
|
b.defaults().left();
|
||||||
b.label(() -> Core.bundle.format(!player.isBuilding ? "resumebuilding" : "pausebuilding", Core.keybinds.get(Binding.pause_building).key.toString())).style(Styles.outlineLabel);
|
b.label(() -> Core.bundle.format(!player.isBuilding ? "resumebuilding" : "pausebuilding", Core.keybinds.get(Binding.pause_building).key.toString())).style(Styles.outlineLabel);
|
||||||
b.row();
|
b.row();
|
||||||
b.add(Core.bundle.format("cancelbuilding", Core.keybinds.get(Binding.clear_building).key.toString())).style(Styles.outlineLabel);
|
b.label(() -> Core.bundle.format("cancelbuilding", Core.keybinds.get(Binding.clear_building).key.toString())).style(Styles.outlineLabel);
|
||||||
b.row();
|
b.row();
|
||||||
b.add(Core.bundle.format("selectschematic", Core.keybinds.get(Binding.schematic_select).key.toString())).style(Styles.outlineLabel);
|
b.label(() -> Core.bundle.format("selectschematic", Core.keybinds.get(Binding.schematic_select).key.toString())).style(Styles.outlineLabel);
|
||||||
}).margin(10f);
|
}).margin(10f);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ public class DesktopInput extends InputHandler{
|
|||||||
t.bottom();
|
t.bottom();
|
||||||
t.table(Styles.black6, b -> {
|
t.table(Styles.black6, b -> {
|
||||||
b.defaults().left();
|
b.defaults().left();
|
||||||
b.add(Core.bundle.format("schematic.flip",
|
b.label( () -> Core.bundle.format("schematic.flip",
|
||||||
Core.keybinds.get(Binding.schematic_flip_x).key.toString(),
|
Core.keybinds.get(Binding.schematic_flip_x).key.toString(),
|
||||||
Core.keybinds.get(Binding.schematic_flip_y).key.toString())).style(Styles.outlineLabel);
|
Core.keybinds.get(Binding.schematic_flip_y).key.toString())).style(Styles.outlineLabel);
|
||||||
b.row();
|
b.row();
|
||||||
|
|||||||
@@ -455,7 +455,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void drawRequest(BuildRequest request){
|
protected void drawRequest(BuildRequest request){
|
||||||
drawRequest(request.x, request.y, request.block, request.rotation);
|
request.block.drawRequest(request, allRequests(), validPlace(request.x, request.y, request.block, request.rotation));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Draws a placement icon for a specific block. */
|
/** Draws a placement icon for a specific block. */
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import io.anuke.arc.util.serialization.*;
|
|||||||
import io.anuke.arc.util.serialization.Json.*;
|
import io.anuke.arc.util.serialization.Json.*;
|
||||||
import io.anuke.mindustry.*;
|
import io.anuke.mindustry.*;
|
||||||
import io.anuke.mindustry.content.*;
|
import io.anuke.mindustry.content.*;
|
||||||
import io.anuke.mindustry.ctype.MappableContent;
|
import io.anuke.mindustry.ctype.*;
|
||||||
import io.anuke.mindustry.game.*;
|
import io.anuke.mindustry.game.*;
|
||||||
import io.anuke.mindustry.type.*;
|
import io.anuke.mindustry.type.*;
|
||||||
import io.anuke.mindustry.world.*;
|
import io.anuke.mindustry.world.*;
|
||||||
@@ -31,6 +31,10 @@ public class JsonIO{
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public static Json json(){
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
public static String write(Object object){
|
public static String write(Object object){
|
||||||
return json.toJson(object, object.getClass());
|
return json.toJson(object, object.getClass());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,12 @@ import io.anuke.arc.collection.IntSet.*;
|
|||||||
import io.anuke.arc.files.*;
|
import io.anuke.arc.files.*;
|
||||||
import io.anuke.arc.func.*;
|
import io.anuke.arc.func.*;
|
||||||
import io.anuke.arc.graphics.*;
|
import io.anuke.arc.graphics.*;
|
||||||
|
import io.anuke.arc.util.ArcAnnotate.*;
|
||||||
import io.anuke.arc.util.*;
|
import io.anuke.arc.util.*;
|
||||||
import io.anuke.arc.util.async.*;
|
import io.anuke.arc.util.async.*;
|
||||||
import io.anuke.arc.util.io.*;
|
import io.anuke.arc.util.io.*;
|
||||||
import io.anuke.arc.util.serialization.*;
|
import io.anuke.arc.util.serialization.*;
|
||||||
|
import io.anuke.mindustry.*;
|
||||||
import io.anuke.mindustry.content.*;
|
import io.anuke.mindustry.content.*;
|
||||||
import io.anuke.mindustry.ctype.*;
|
import io.anuke.mindustry.ctype.*;
|
||||||
import io.anuke.mindustry.game.EventType.*;
|
import io.anuke.mindustry.game.EventType.*;
|
||||||
@@ -34,9 +36,30 @@ public class Maps{
|
|||||||
/** Serializer for meta. */
|
/** Serializer for meta. */
|
||||||
private Json json = new Json();
|
private Json json = new Json();
|
||||||
|
|
||||||
|
private ShuffleMode shuffleMode = ShuffleMode.all;
|
||||||
|
private @Nullable MapProvider shuffler;
|
||||||
|
|
||||||
private AsyncExecutor executor = new AsyncExecutor(2);
|
private AsyncExecutor executor = new AsyncExecutor(2);
|
||||||
private ObjectSet<Map> previewList = new ObjectSet<>();
|
private ObjectSet<Map> previewList = new ObjectSet<>();
|
||||||
|
|
||||||
|
public ShuffleMode getShuffleMode(){
|
||||||
|
return shuffleMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShuffleMode(ShuffleMode mode){
|
||||||
|
this.shuffleMode = mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set the provider for the map(s) to be played on. Will override the default shuffle mode setting.*/
|
||||||
|
public void setMapProvider(MapProvider provider){
|
||||||
|
this.shuffler = provider;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return the next map to shuffle to. May be null, in which case the server should be stopped. */
|
||||||
|
public @Nullable Map getNextMap(@Nullable Map previous){
|
||||||
|
return shuffler != null ? shuffler.next(previous) : shuffleMode.next(previous);
|
||||||
|
}
|
||||||
|
|
||||||
/** Returns a list of all maps, including custom ones. */
|
/** Returns a list of all maps, including custom ones. */
|
||||||
public Array<Map> all(){
|
public Array<Map> all(){
|
||||||
return maps;
|
return maps;
|
||||||
@@ -422,4 +445,37 @@ public class Maps{
|
|||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface MapProvider{
|
||||||
|
@Nullable Map next(@Nullable Map previous);
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ShuffleMode implements MapProvider{
|
||||||
|
none(map -> null),
|
||||||
|
all(prev -> {
|
||||||
|
Array<Map> maps = Array.withArrays(Vars.maps.defaultMaps(), Vars.maps.customMaps());
|
||||||
|
maps.shuffle();
|
||||||
|
return maps.find(m -> m != prev || maps.size == 1);
|
||||||
|
}),
|
||||||
|
custom(prev -> {
|
||||||
|
Array<Map> maps = Array.withArrays(Vars.maps.customMaps());
|
||||||
|
maps.shuffle();
|
||||||
|
return maps.find(m -> m != prev || maps.size == 1);
|
||||||
|
}),
|
||||||
|
builtin(prev -> {
|
||||||
|
Array<Map> maps = Array.withArrays(Vars.maps.defaultMaps());
|
||||||
|
maps.shuffle();
|
||||||
|
return maps.find(m -> m != prev || maps.size == 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
private final MapProvider provider;
|
||||||
|
|
||||||
|
ShuffleMode(MapProvider provider){
|
||||||
|
this.provider = provider;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map next(@Nullable Map previous){
|
||||||
|
return provider.next(previous);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -10,10 +10,9 @@ import io.anuke.arc.func.*;
|
|||||||
import io.anuke.arc.graphics.*;
|
import io.anuke.arc.graphics.*;
|
||||||
import io.anuke.arc.util.ArcAnnotate.*;
|
import io.anuke.arc.util.ArcAnnotate.*;
|
||||||
import io.anuke.arc.util.*;
|
import io.anuke.arc.util.*;
|
||||||
import io.anuke.arc.util.reflect.Field;
|
|
||||||
import io.anuke.arc.util.reflect.*;
|
|
||||||
import io.anuke.arc.util.serialization.*;
|
import io.anuke.arc.util.serialization.*;
|
||||||
import io.anuke.arc.util.serialization.Json.*;
|
import io.anuke.arc.util.serialization.Json.*;
|
||||||
|
import io.anuke.arc.util.serialization.Jval.*;
|
||||||
import io.anuke.mindustry.*;
|
import io.anuke.mindustry.*;
|
||||||
import io.anuke.mindustry.content.*;
|
import io.anuke.mindustry.content.*;
|
||||||
import io.anuke.mindustry.content.TechTree.*;
|
import io.anuke.mindustry.content.TechTree.*;
|
||||||
@@ -151,6 +150,7 @@ public class ContentParser{
|
|||||||
"io.anuke.mindustry.world.blocks.defense",
|
"io.anuke.mindustry.world.blocks.defense",
|
||||||
"io.anuke.mindustry.world.blocks.defense.turrets",
|
"io.anuke.mindustry.world.blocks.defense.turrets",
|
||||||
"io.anuke.mindustry.world.blocks.distribution",
|
"io.anuke.mindustry.world.blocks.distribution",
|
||||||
|
"io.anuke.mindustry.world.blocks.liquid",
|
||||||
"io.anuke.mindustry.world.blocks.logic",
|
"io.anuke.mindustry.world.blocks.logic",
|
||||||
"io.anuke.mindustry.world.blocks.power",
|
"io.anuke.mindustry.world.blocks.power",
|
||||||
"io.anuke.mindustry.world.blocks.production",
|
"io.anuke.mindustry.world.blocks.production",
|
||||||
@@ -182,7 +182,7 @@ public class ContentParser{
|
|||||||
}else if(child.name.equals("liquid")){
|
}else if(child.name.equals("liquid")){
|
||||||
block.consumes.add((Consume)parser.readValue(ConsumeLiquid.class, child));
|
block.consumes.add((Consume)parser.readValue(ConsumeLiquid.class, child));
|
||||||
}else if(child.name.equals("power")){
|
}else if(child.name.equals("power")){
|
||||||
if(child.isDouble()){
|
if(child.isNumber()){
|
||||||
block.consumes.power(child.asFloat());
|
block.consumes.power(child.asFloat());
|
||||||
}else{
|
}else{
|
||||||
block.consumes.add((Consume)parser.readValue(ConsumePower.class, child));
|
block.consumes.add((Consume)parser.readValue(ConsumePower.class, child));
|
||||||
@@ -342,10 +342,7 @@ public class ContentParser{
|
|||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
//add comments starting with //, but ignore links
|
JsonValue value = parser.fromJson(null, Jval.read(json).toString(Jformat.plain));
|
||||||
json = json.replace("http://", "http:~~").replace("https://", "https:~~").replaceAll("//.*?\n","\n").replace("http:~~", "http://").replace("https:~~", "https://");
|
|
||||||
|
|
||||||
JsonValue value = parser.fromJson(null, json);
|
|
||||||
if(!parsers.containsKey(type)){
|
if(!parsers.containsKey(type)){
|
||||||
throw new SerializationException("No parsers for content type '" + type + "'");
|
throw new SerializationException("No parsers for content type '" + type + "'");
|
||||||
}
|
}
|
||||||
@@ -363,7 +360,7 @@ public class ContentParser{
|
|||||||
|
|
||||||
private <T> T make(Class<T> type){
|
private <T> T make(Class<T> type){
|
||||||
try{
|
try{
|
||||||
java.lang.reflect.Constructor<T> cons = type.getDeclaredConstructor();
|
Constructor<T> cons = type.getDeclaredConstructor();
|
||||||
cons.setAccessible(true);
|
cons.setAccessible(true);
|
||||||
return cons.newInstance();
|
return cons.newInstance();
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
@@ -373,7 +370,7 @@ public class ContentParser{
|
|||||||
|
|
||||||
private <T> T make(Class<T> type, String name){
|
private <T> T make(Class<T> type, String name){
|
||||||
try{
|
try{
|
||||||
java.lang.reflect.Constructor<T> cons = type.getDeclaredConstructor(String.class);
|
Constructor<T> cons = type.getDeclaredConstructor(String.class);
|
||||||
cons.setAccessible(true);
|
cons.setAccessible(true);
|
||||||
return cons.newInstance(name);
|
return cons.newInstance(name);
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
@@ -383,7 +380,7 @@ public class ContentParser{
|
|||||||
|
|
||||||
private <T> Prov<T> supply(Class<T> type){
|
private <T> Prov<T> supply(Class<T> type){
|
||||||
try{
|
try{
|
||||||
java.lang.reflect.Constructor<T> cons = type.getDeclaredConstructor();
|
Constructor<T> cons = type.getDeclaredConstructor();
|
||||||
return () -> {
|
return () -> {
|
||||||
try{
|
try{
|
||||||
return cons.newInstance();
|
return cons.newInstance();
|
||||||
@@ -459,7 +456,7 @@ public class ContentParser{
|
|||||||
Field field = metadata.field;
|
Field field = metadata.field;
|
||||||
try{
|
try{
|
||||||
field.set(object, parser.readValue(field.getType(), metadata.elementType, child, metadata.keyType));
|
field.set(object, parser.readValue(field.getType(), metadata.elementType, child, metadata.keyType));
|
||||||
}catch(ReflectionException ex){
|
}catch(IllegalAccessException ex){
|
||||||
throw new SerializationException("Error accessing field: " + field.getName() + " (" + type.getName() + ")", ex);
|
throw new SerializationException("Error accessing field: " + field.getName() + " (" + type.getName() + ")", ex);
|
||||||
}catch(SerializationException ex){
|
}catch(SerializationException ex){
|
||||||
ex.addTrace(field.getName() + " (" + type.getName() + ")");
|
ex.addTrace(field.getName() + " (" + type.getName() + ")");
|
||||||
|
|||||||
@@ -354,7 +354,7 @@ public class Mods implements Loadable{
|
|||||||
FileHandle folder = contentRoot.child(type.name().toLowerCase() + "s");
|
FileHandle folder = contentRoot.child(type.name().toLowerCase() + "s");
|
||||||
if(folder.exists()){
|
if(folder.exists()){
|
||||||
for(FileHandle file : folder.list()){
|
for(FileHandle file : folder.list()){
|
||||||
if(file.extension().equals("json")){
|
if(file.extension().equals("json") || file.extension().equals("hjson") || file.extension().equals("js")){
|
||||||
runs.add(new LoadRun(type, file, mod));
|
runs.add(new LoadRun(type, file, mod));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public class Packets{
|
|||||||
buffer.put(mobile ? (byte)1 : 0);
|
buffer.put(mobile ? (byte)1 : 0);
|
||||||
buffer.putInt(color);
|
buffer.putInt(color);
|
||||||
buffer.put(Base64Coder.decode(uuid));
|
buffer.put(Base64Coder.decode(uuid));
|
||||||
buffer.putInt(mods.size);
|
buffer.put((byte)mods.size);
|
||||||
for(int i = 0; i < mods.size; i++){
|
for(int i = 0; i < mods.size; i++){
|
||||||
TypeIO.writeString(buffer, mods.get(i));
|
TypeIO.writeString(buffer, mods.get(i));
|
||||||
}
|
}
|
||||||
@@ -97,7 +97,7 @@ public class Packets{
|
|||||||
byte[] idbytes = new byte[8];
|
byte[] idbytes = new byte[8];
|
||||||
buffer.get(idbytes);
|
buffer.get(idbytes);
|
||||||
uuid = new String(Base64Coder.encode(idbytes));
|
uuid = new String(Base64Coder.encode(idbytes));
|
||||||
int totalMods = buffer.getInt();
|
int totalMods = buffer.get();
|
||||||
mods = new Array<>(totalMods);
|
mods = new Array<>(totalMods);
|
||||||
for(int i = 0; i < totalMods; i++){
|
for(int i = 0; i < totalMods; i++){
|
||||||
mods.add(TypeIO.readString(buffer));
|
mods.add(TypeIO.readString(buffer));
|
||||||
|
|||||||
@@ -23,4 +23,12 @@ public enum Category{
|
|||||||
effect;
|
effect;
|
||||||
|
|
||||||
public static final Category[] all = values();
|
public static final Category[] all = values();
|
||||||
|
|
||||||
|
public Category prev(){
|
||||||
|
return all[(this.ordinal() - 1 + all.length) % all.length];
|
||||||
|
}
|
||||||
|
|
||||||
|
public Category next(){
|
||||||
|
return all[(this.ordinal() + 1) % all.length];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ public class Liquid extends UnlockableContent{
|
|||||||
|
|
||||||
/** Color used in bars. */
|
/** Color used in bars. */
|
||||||
public @Nullable Color barColor;
|
public @Nullable Color barColor;
|
||||||
|
/** Color used to draw lights. Note that the alpha channel is used to dictate brightness. */
|
||||||
|
public Color lightColor = Color.clear.cpy();
|
||||||
/** 0-1, 0 is completely inflammable, anything above that may catch fire when exposed to heat, 0.5+ is very flammable. */
|
/** 0-1, 0 is completely inflammable, anything above that may catch fire when exposed to heat, 0.5+ is very flammable. */
|
||||||
public float flammability;
|
public float flammability;
|
||||||
/** temperature: 0.5 is 'room' temperature, 0 is very cold, 1 is molten hot */
|
/** temperature: 0.5 is 'room' temperature, 0 is very cold, 1 is molten hot */
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class Bar extends Element{
|
|||||||
if(fraction == null) return;
|
if(fraction == null) return;
|
||||||
|
|
||||||
float computed = Mathf.clamp(fraction.get());
|
float computed = Mathf.clamp(fraction.get());
|
||||||
if(!Mathf.isEqual(lastValue, computed)){
|
if(!Mathf.equal(lastValue, computed)){
|
||||||
blink = 1f;
|
blink = 1f;
|
||||||
lastValue = computed;
|
lastValue = computed;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ public class Links{
|
|||||||
new LinkEntry("reddit", "https://www.reddit.com/r/Mindustry/", Color.valueOf("ee593b")),
|
new LinkEntry("reddit", "https://www.reddit.com/r/Mindustry/", Color.valueOf("ee593b")),
|
||||||
new LinkEntry("itch.io", "https://anuke.itch.io/mindustry", Color.valueOf("fa5c5c")),
|
new LinkEntry("itch.io", "https://anuke.itch.io/mindustry", Color.valueOf("fa5c5c")),
|
||||||
new LinkEntry("google-play", "https://play.google.com/store/apps/details?id=io.anuke.mindustry", Color.valueOf("689f38")),
|
new LinkEntry("google-play", "https://play.google.com/store/apps/details?id=io.anuke.mindustry", Color.valueOf("689f38")),
|
||||||
|
new LinkEntry("f-droid", "https://f-droid.org/packages/io.anuke.mindustry/", Color.valueOf("026aa7")),
|
||||||
new LinkEntry("github", "https://github.com/Anuken/Mindustry/", Color.valueOf("24292e")),
|
new LinkEntry("github", "https://github.com/Anuken/Mindustry/", Color.valueOf("24292e")),
|
||||||
new LinkEntry("dev-builds", "https://github.com/Anuken/MindustryBuilds", Color.valueOf("fafbfc"))
|
new LinkEntry("dev-builds", "https://github.com/Anuken/MindustryBuilds", Color.valueOf("fafbfc"))
|
||||||
};
|
};
|
||||||
|
|||||||
63
core/src/io/anuke/mindustry/ui/dialogs/ColorPicker.java
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
package io.anuke.mindustry.ui.dialogs;
|
||||||
|
|
||||||
|
import io.anuke.arc.func.*;
|
||||||
|
import io.anuke.arc.graphics.*;
|
||||||
|
import io.anuke.arc.scene.ui.*;
|
||||||
|
import io.anuke.mindustry.gen.*;
|
||||||
|
import io.anuke.mindustry.graphics.*;
|
||||||
|
|
||||||
|
public class ColorPicker extends FloatingDialog{
|
||||||
|
private Cons<Color> cons = c -> {};
|
||||||
|
private Color current = new Color();
|
||||||
|
|
||||||
|
public ColorPicker(){
|
||||||
|
super("$pickcolor");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void show(Color color, Cons<Color> consumer){
|
||||||
|
show(color, true, consumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void show(Color color, boolean alpha, Cons<Color> consumer){
|
||||||
|
this.current.set(color);
|
||||||
|
this.cons = consumer;
|
||||||
|
show();
|
||||||
|
|
||||||
|
cont.clear();
|
||||||
|
cont.pane(t -> {
|
||||||
|
t.table(Tex.pane, i -> {
|
||||||
|
i.stack(new Image(Tex.alphaBg), new Image(){{
|
||||||
|
setColor(current);
|
||||||
|
update(() -> setColor(current));
|
||||||
|
}}).size(200f);
|
||||||
|
}).colspan(2).padBottom(5);
|
||||||
|
|
||||||
|
float w = 150f;
|
||||||
|
|
||||||
|
t.row();
|
||||||
|
|
||||||
|
t.defaults().padBottom(4);
|
||||||
|
t.add("R").color(Pal.remove);
|
||||||
|
t.addSlider(0f, 1f, 0.01f, current.r, current::r).width(w);
|
||||||
|
t.row();
|
||||||
|
t.add("G").color(Color.lime);
|
||||||
|
t.addSlider(0f, 1f, 0.01f, current.g, current::g).width(w);
|
||||||
|
t.row();
|
||||||
|
t.add("B").color(Color.royal);
|
||||||
|
t.addSlider(0f, 1f, 0.01f, current.b, current::b).width(w);
|
||||||
|
t.row();
|
||||||
|
if(alpha){
|
||||||
|
t.add("A");
|
||||||
|
t.addSlider(0f, 1f, 0.01f, current.a, current::a).width(w);
|
||||||
|
t.row();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
buttons.clear();
|
||||||
|
addCloseButton();
|
||||||
|
buttons.addImageTextButton("$ok", Icon.checkSmall, () -> {
|
||||||
|
cons.get(current);
|
||||||
|
hide();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -116,7 +116,7 @@ public class CustomRulesDialog extends FloatingDialog{
|
|||||||
|
|
||||||
void setup(){
|
void setup(){
|
||||||
cont.clear();
|
cont.clear();
|
||||||
cont.pane(m -> main = m);
|
cont.pane(m -> main = m).get().setScrollingDisabled(true, false);
|
||||||
main.margin(10f);
|
main.margin(10f);
|
||||||
main.addButton("$settings.reset", () -> {
|
main.addButton("$settings.reset", () -> {
|
||||||
rules = resetter.get();
|
rules = resetter.get();
|
||||||
@@ -135,13 +135,11 @@ public class CustomRulesDialog extends FloatingDialog{
|
|||||||
number("$rules.dropzoneradius", false, f -> rules.dropZoneRadius = f * tilesize, () -> rules.dropZoneRadius / tilesize, () -> true);
|
number("$rules.dropzoneradius", false, f -> rules.dropZoneRadius = f * tilesize, () -> rules.dropZoneRadius / tilesize, () -> true);
|
||||||
|
|
||||||
title("$rules.title.respawns");
|
title("$rules.title.respawns");
|
||||||
//limited respawns don't work on PvP, commented out until they're fixed
|
|
||||||
//check("$rules.limitedRespawns", b -> rules.limitedRespawns = b, () -> rules.limitedRespawns);
|
|
||||||
//number("$rules.respawns", true, f -> rules.respawns = (int)f, () -> rules.respawns, () -> rules.limitedRespawns);
|
|
||||||
number("$rules.respawntime", f -> rules.respawnTime = f * 60f, () -> rules.respawnTime / 60f);
|
number("$rules.respawntime", f -> rules.respawnTime = f * 60f, () -> rules.respawnTime / 60f);
|
||||||
|
|
||||||
title("$rules.title.resourcesbuilding");
|
title("$rules.title.resourcesbuilding");
|
||||||
check("$rules.infiniteresources", b -> rules.infiniteResources = b, () -> rules.infiniteResources);
|
check("$rules.infiniteresources", b -> rules.infiniteResources = b, () -> rules.infiniteResources);
|
||||||
|
check("$rules.reactorexplosions", b -> rules.reactorExplosions = b, () -> rules.reactorExplosions);
|
||||||
number("$rules.buildcostmultiplier", false, f -> rules.buildCostMultiplier = f, () -> rules.buildCostMultiplier, () -> !rules.infiniteResources);
|
number("$rules.buildcostmultiplier", false, f -> rules.buildCostMultiplier = f, () -> rules.buildCostMultiplier, () -> !rules.infiniteResources);
|
||||||
number("$rules.buildspeedmultiplier", f -> rules.buildSpeedMultiplier = f, () -> rules.buildSpeedMultiplier);
|
number("$rules.buildspeedmultiplier", f -> rules.buildSpeedMultiplier = f, () -> rules.buildSpeedMultiplier);
|
||||||
|
|
||||||
@@ -171,6 +169,20 @@ public class CustomRulesDialog extends FloatingDialog{
|
|||||||
check("$rules.attack", b -> rules.attackMode = b, () -> rules.attackMode);
|
check("$rules.attack", b -> rules.attackMode = b, () -> rules.attackMode);
|
||||||
check("$rules.enemyCheat", b -> rules.enemyCheat = b, () -> rules.enemyCheat);
|
check("$rules.enemyCheat", b -> rules.enemyCheat = b, () -> rules.enemyCheat);
|
||||||
number("$rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f * tilesize, () -> Math.min(rules.enemyCoreBuildRadius / tilesize, 200));
|
number("$rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f * tilesize, () -> Math.min(rules.enemyCoreBuildRadius / tilesize, 200));
|
||||||
|
|
||||||
|
title("$rules.title.experimental");
|
||||||
|
check("$rules.lighting", b -> rules.lighting = b, () -> rules.lighting);
|
||||||
|
|
||||||
|
main.addButton(b -> {
|
||||||
|
b.left();
|
||||||
|
b.table(Tex.pane, in -> {
|
||||||
|
in.stack(new Image(Tex.alphaBg), new Image(Tex.whiteui){{
|
||||||
|
update(() -> setColor(rules.ambientLight));
|
||||||
|
}}).grow();
|
||||||
|
}).margin(4).size(50f).padRight(10);
|
||||||
|
b.add("$rules.ambientlight");
|
||||||
|
}, () -> ui.picker.show(rules.ambientLight, rules.ambientLight::set)).left().width(250f);
|
||||||
|
main.row();
|
||||||
}
|
}
|
||||||
|
|
||||||
void number(String text, Floatc cons, Floatp prov){
|
void number(String text, Floatc cons, Floatp prov){
|
||||||
@@ -200,7 +212,9 @@ public class CustomRulesDialog extends FloatingDialog{
|
|||||||
}
|
}
|
||||||
|
|
||||||
void title(String text){
|
void title(String text){
|
||||||
main.add(text).color(Pal.accent).padTop(20).padBottom(20).padRight(100f);
|
main.add(text).color(Pal.accent).padTop(20).padRight(100f).padBottom(-3);
|
||||||
|
main.row();
|
||||||
|
main.addImage().color(Pal.accent).height(3f).padRight(100f).padBottom(20);
|
||||||
main.row();
|
main.row();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public class HostDialog extends FloatingDialog{
|
|||||||
}).grow().pad(8).get().setMaxLength(40);
|
}).grow().pad(8).get().setMaxLength(40);
|
||||||
|
|
||||||
ImageButton button = t.addImageButton(Tex.whiteui, Styles.clearFulli, 40, () -> {
|
ImageButton button = t.addImageButton(Tex.whiteui, Styles.clearFulli, 40, () -> {
|
||||||
new ColorPickDialog().show(color -> {
|
new PaletteDialog().show(color -> {
|
||||||
player.color.set(color);
|
player.color.set(color);
|
||||||
Core.settings.put("color-0", Color.rgba8888(color));
|
Core.settings.put("color-0", Color.rgba8888(color));
|
||||||
Core.settings.save();
|
Core.settings.save();
|
||||||
|
|||||||
@@ -32,14 +32,14 @@ public class JoinDialog extends FloatingDialog{
|
|||||||
|
|
||||||
loadServers();
|
loadServers();
|
||||||
|
|
||||||
buttons.add().width(60f);
|
if(!steam) buttons.add().width(60f);
|
||||||
buttons.add().growX();
|
buttons.add().growX().width(-1);
|
||||||
|
|
||||||
addCloseButton();
|
addCloseButton();
|
||||||
|
|
||||||
buttons.add().growX();
|
buttons.add().growX().width(-1);
|
||||||
if(!steam){
|
if(!steam){
|
||||||
buttons.addButton("?", () -> ui.showInfo("$join.info")).size(60f, 64f);
|
buttons.addButton("?", () -> ui.showInfo("$join.info")).size(60f, 64f).width(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
add = new FloatingDialog("$joingame.title");
|
add = new FloatingDialog("$joingame.title");
|
||||||
@@ -247,7 +247,7 @@ public class JoinDialog extends FloatingDialog{
|
|||||||
}
|
}
|
||||||
|
|
||||||
ImageButton button = t.addImageButton(Tex.whiteui, Styles.clearFulli, 40, () -> {
|
ImageButton button = t.addImageButton(Tex.whiteui, Styles.clearFulli, 40, () -> {
|
||||||
new ColorPickDialog().show(color -> {
|
new PaletteDialog().show(color -> {
|
||||||
player.color.set(color);
|
player.color.set(color);
|
||||||
Core.settings.put("color-0", Color.rgba8888(color));
|
Core.settings.put("color-0", Color.rgba8888(color));
|
||||||
Core.settings.save();
|
Core.settings.save();
|
||||||
@@ -271,7 +271,7 @@ public class JoinDialog extends FloatingDialog{
|
|||||||
|
|
||||||
Cell cell = ((Table)pane.getParent()).getCell(button);
|
Cell cell = ((Table)pane.getParent()).getCell(button);
|
||||||
|
|
||||||
if(!Mathf.isEqual(cell.minWidth(), pw)){
|
if(!Mathf.equal(cell.minWidth(), pw)){
|
||||||
cell.width(pw);
|
cell.width(pw);
|
||||||
cell.padLeft(pad);
|
cell.padLeft(pad);
|
||||||
pane.getParent().invalidateHierarchy();
|
pane.getParent().invalidateHierarchy();
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ import io.anuke.mindustry.ui.*;
|
|||||||
|
|
||||||
import static io.anuke.mindustry.Vars.*;
|
import static io.anuke.mindustry.Vars.*;
|
||||||
|
|
||||||
public class ColorPickDialog extends Dialog{
|
public class PaletteDialog extends Dialog{
|
||||||
private Cons<Color> cons;
|
private Cons<Color> cons;
|
||||||
|
|
||||||
public ColorPickDialog(){
|
public PaletteDialog(){
|
||||||
super("");
|
super("");
|
||||||
build();
|
build();
|
||||||
}
|
}
|
||||||
@@ -218,9 +218,11 @@ public class SettingsMenuDialog extends SettingsDialog{
|
|||||||
control.setInput(new MobileInput());
|
control.setInput(new MobileInput());
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
game.sliderPref("saveinterval", 60, 10, 5 * 120, i -> Core.bundle.format("setting.seconds", i));
|
game.sliderPref("saveinterval", 60, 10, 5 * 120, 10, i -> Core.bundle.format("setting.seconds", i));
|
||||||
|
|
||||||
if(!mobile){
|
if(!mobile){
|
||||||
|
game.sliderPref("blockselecttimeout", 750, 0, 2000, 50, i -> Core.bundle.format("setting.milliseconds", i));
|
||||||
|
|
||||||
game.checkPref("crashreport", true);
|
game.checkPref("crashreport", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -251,7 +253,7 @@ public class SettingsMenuDialog extends SettingsDialog{
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
graphics.sliderPref("uiscale", 100, 25, 400, 5, s -> {
|
graphics.sliderPref("uiscale", 100, 25, 300, 25, s -> {
|
||||||
if(ui.settings != null){
|
if(ui.settings != null){
|
||||||
Core.settings.put("uiscalechanged", true);
|
Core.settings.put("uiscalechanged", true);
|
||||||
}
|
}
|
||||||
@@ -306,6 +308,9 @@ public class SettingsMenuDialog extends SettingsDialog{
|
|||||||
graphics.checkPref("minimap", !mobile);
|
graphics.checkPref("minimap", !mobile);
|
||||||
graphics.checkPref("position", false);
|
graphics.checkPref("position", false);
|
||||||
graphics.checkPref("fps", false);
|
graphics.checkPref("fps", false);
|
||||||
|
if(!mobile){
|
||||||
|
graphics.checkPref("blockselectkeys", true);
|
||||||
|
}
|
||||||
graphics.checkPref("indicators", true);
|
graphics.checkPref("indicators", true);
|
||||||
graphics.checkPref("animatedwater", !mobile);
|
graphics.checkPref("animatedwater", !mobile);
|
||||||
if(Shaders.shield != null){
|
if(Shaders.shield != null){
|
||||||
@@ -360,7 +365,11 @@ public class SettingsMenuDialog extends SettingsDialog{
|
|||||||
|
|
||||||
keyDown(key -> {
|
keyDown(key -> {
|
||||||
if(key == KeyCode.ESCAPE || key == KeyCode.BACK){
|
if(key == KeyCode.ESCAPE || key == KeyCode.BACK){
|
||||||
hide();
|
if(prefs.getChildren().first() != menu){
|
||||||
|
back();
|
||||||
|
}else{
|
||||||
|
hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,10 +42,6 @@ public class HudFragment extends Fragment{
|
|||||||
private boolean shown = true;
|
private boolean shown = true;
|
||||||
private float dsize = 47.2f;
|
private float dsize = 47.2f;
|
||||||
|
|
||||||
private float coreAttackTime;
|
|
||||||
private float lastCoreHP;
|
|
||||||
private Team lastTeam;
|
|
||||||
private float coreAttackOpacity = 0f;
|
|
||||||
private long lastToast;
|
private long lastToast;
|
||||||
|
|
||||||
public void build(Group parent){
|
public void build(Group parent){
|
||||||
@@ -68,9 +64,7 @@ public class HudFragment extends Fragment{
|
|||||||
select.addImageButton(Icon.menuLargeSmall, style, ui.paused::show);
|
select.addImageButton(Icon.menuLargeSmall, style, ui.paused::show);
|
||||||
flip = select.addImageButton(Icon.arrowUpSmall, style, this::toggleMenus).get();
|
flip = select.addImageButton(Icon.arrowUpSmall, style, this::toggleMenus).get();
|
||||||
|
|
||||||
select.addImageButton(Icon.pasteSmall, style, () -> {
|
select.addImageButton(Icon.pasteSmall, style, ui.schematics::show);
|
||||||
ui.schematics.show();
|
|
||||||
});
|
|
||||||
|
|
||||||
select.addImageButton(Icon.pauseSmall, style, () -> {
|
select.addImageButton(Icon.pauseSmall, style, () -> {
|
||||||
if(net.active()){
|
if(net.active()){
|
||||||
@@ -284,44 +278,29 @@ public class HudFragment extends Fragment{
|
|||||||
parent.fill(t -> {
|
parent.fill(t -> {
|
||||||
t.touchable(Touchable.disabled);
|
t.touchable(Touchable.disabled);
|
||||||
float notifDuration = 240f;
|
float notifDuration = 240f;
|
||||||
|
float[] coreAttackTime = {0};
|
||||||
|
float[] coreAttackOpacity = {0};
|
||||||
|
|
||||||
Events.on(StateChangeEvent.class, event -> {
|
Events.on(Trigger.teamCoreDamage, () -> {
|
||||||
if(event.to == State.menu || event.from == State.menu){
|
coreAttackTime[0] = notifDuration;
|
||||||
coreAttackTime = 0f;
|
|
||||||
lastCoreHP = Float.NaN;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
t.top().visible(() -> {
|
t.top().visible(() -> {
|
||||||
if(state.is(State.menu) || state.teams.get(player.getTeam()).cores.size == 0 || state.teams.get(player.getTeam()).cores.first().entity == null){
|
if(state.is(State.menu) || state.teams.get(player.getTeam()).cores.size == 0 || state.teams.get(player.getTeam()).cores.first().entity == null){
|
||||||
coreAttackTime = 0f;
|
coreAttackTime[0] = 0f;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
float curr = state.teams.get(player.getTeam()).cores.first().entity.health;
|
t.getColor().a = coreAttackOpacity[0];
|
||||||
|
if(coreAttackTime[0] > 0){
|
||||||
if(lastTeam != player.getTeam()){
|
coreAttackOpacity[0] = Mathf.lerpDelta(coreAttackOpacity[0], 1f, 0.1f);
|
||||||
lastCoreHP = curr;
|
|
||||||
lastTeam = player.getTeam();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!Float.isNaN(lastCoreHP) && curr < lastCoreHP){
|
|
||||||
coreAttackTime = notifDuration;
|
|
||||||
}
|
|
||||||
lastCoreHP = curr;
|
|
||||||
|
|
||||||
t.getColor().a = coreAttackOpacity;
|
|
||||||
if(coreAttackTime > 0){
|
|
||||||
coreAttackOpacity = Mathf.lerpDelta(coreAttackOpacity, 1f, 0.1f);
|
|
||||||
}else{
|
}else{
|
||||||
coreAttackOpacity = Mathf.lerpDelta(coreAttackOpacity, 0f, 0.1f);
|
coreAttackOpacity[0] = Mathf.lerpDelta(coreAttackOpacity[0], 0f, 0.1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
coreAttackTime -= Time.delta();
|
coreAttackTime[0] -= Time.delta();
|
||||||
lastTeam = player.getTeam();
|
|
||||||
|
|
||||||
return coreAttackOpacity > 0;
|
return coreAttackOpacity[0] > 0;
|
||||||
});
|
});
|
||||||
t.table(Tex.button, top -> top.add("$coreattack").pad(2)
|
t.table(Tex.button, top -> top.add("$coreattack").pad(2)
|
||||||
.update(label -> label.getColor().set(Color.orange).lerp(Color.scarlet, Mathf.absin(Time.time(), 2f, 1f)))).touchable(Touchable.disabled);
|
.update(label -> label.getColor().set(Color.orange).lerp(Color.scarlet, Mathf.absin(Time.time(), 2f, 1f)))).touchable(Touchable.disabled);
|
||||||
|
|||||||
@@ -36,6 +36,25 @@ public class PlacementFragment extends Fragment{
|
|||||||
Tile hoverTile;
|
Tile hoverTile;
|
||||||
Table blockTable, toggler, topTable;
|
Table blockTable, toggler, topTable;
|
||||||
boolean lastGround;
|
boolean lastGround;
|
||||||
|
boolean blockSelectEnd;
|
||||||
|
int blockSelectSeq;
|
||||||
|
long blockSelectSeqMillis;
|
||||||
|
Binding[] blockSelect = {
|
||||||
|
Binding.block_select_01,
|
||||||
|
Binding.block_select_02,
|
||||||
|
Binding.block_select_03,
|
||||||
|
Binding.block_select_04,
|
||||||
|
Binding.block_select_05,
|
||||||
|
Binding.block_select_06,
|
||||||
|
Binding.block_select_07,
|
||||||
|
Binding.block_select_08,
|
||||||
|
Binding.block_select_09,
|
||||||
|
Binding.block_select_10,
|
||||||
|
Binding.block_select_left,
|
||||||
|
Binding.block_select_right,
|
||||||
|
Binding.block_select_up,
|
||||||
|
Binding.block_select_down
|
||||||
|
};
|
||||||
|
|
||||||
public PlacementFragment(){
|
public PlacementFragment(){
|
||||||
Events.on(WorldLoadEvent.class, event -> {
|
Events.on(WorldLoadEvent.class, event -> {
|
||||||
@@ -83,6 +102,78 @@ public class PlacementFragment extends Fragment{
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(ui.chatfrag.chatOpen()) return false;
|
||||||
|
for(int i = 0; i < blockSelect.length; i++){
|
||||||
|
if(Core.input.keyTap(blockSelect[i])){
|
||||||
|
if(i > 9) { //select block directionally
|
||||||
|
Array<Block> blocks = getByCategory(currentCategory);
|
||||||
|
Block currentBlock = getSelectedBlock(currentCategory);
|
||||||
|
for(int j = 0; j < blocks.size; j++){
|
||||||
|
if(blocks.get(j) == currentBlock){
|
||||||
|
switch(i){
|
||||||
|
case 10: //left
|
||||||
|
j = (j - 1 + blocks.size) % blocks.size;
|
||||||
|
break;
|
||||||
|
case 11: //right
|
||||||
|
j = (j + 1) % blocks.size;
|
||||||
|
break;
|
||||||
|
case 12: //up
|
||||||
|
j = (j > 3 ? j - 4 : blocks.size - blocks.size % 4 + j);
|
||||||
|
j -= (j < blocks.size ? 0 : 4);
|
||||||
|
break;
|
||||||
|
case 13: //down
|
||||||
|
j = (j < blocks.size - 4 ? j + 4 : j % 4);
|
||||||
|
}
|
||||||
|
input.block = blocks.get(j);
|
||||||
|
selectedBlocks.put(currentCategory, input.block);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else if(blockSelectEnd || Time.timeSinceMillis(blockSelectSeqMillis) > Core.settings.getInt("blockselecttimeout")){ //1st number of combo, select category
|
||||||
|
//select only visible categories
|
||||||
|
if(!getByCategory(Category.all[i]).isEmpty()){
|
||||||
|
currentCategory = Category.all[i];
|
||||||
|
if(input.block != null){
|
||||||
|
input.block = getSelectedBlock(currentCategory);
|
||||||
|
}
|
||||||
|
blockSelectEnd = false;
|
||||||
|
blockSelectSeq = 0;
|
||||||
|
blockSelectSeqMillis = Time.millis();
|
||||||
|
}
|
||||||
|
}else{ //select block
|
||||||
|
if(blockSelectSeq == 0){ //2nd number of combo
|
||||||
|
blockSelectSeq = i + 1;
|
||||||
|
}else{ //3rd number of combo
|
||||||
|
//entering "X,1,0" selects the same block as "X,0"
|
||||||
|
i += (blockSelectSeq - (i != 9 ? 0 : 1)) * 10;
|
||||||
|
blockSelectEnd = true;
|
||||||
|
}
|
||||||
|
Array<Block> blocks = getByCategory(currentCategory);
|
||||||
|
input.block = (i < blocks.size) ? blocks.get(i) : null;
|
||||||
|
selectedBlocks.put(currentCategory, input.block);
|
||||||
|
blockSelectSeqMillis = Time.millis();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(Core.input.keyTap(Binding.category_prev)){
|
||||||
|
do{
|
||||||
|
currentCategory = currentCategory.prev();
|
||||||
|
}while(categoryEmpty[currentCategory.ordinal()]);
|
||||||
|
input.block = getSelectedBlock(currentCategory);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(Core.input.keyTap(Binding.category_next)){
|
||||||
|
do{
|
||||||
|
currentCategory = currentCategory.next();
|
||||||
|
}while(categoryEmpty[currentCategory.ordinal()]);
|
||||||
|
input.block = getSelectedBlock(currentCategory);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,11 +200,6 @@ public class PlacementFragment extends Fragment{
|
|||||||
blockTable.row();
|
blockTable.row();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!unlocked(block)){
|
|
||||||
blockTable.add().size(46);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
ImageButton button = blockTable.addImageButton(Icon.lockedSmall, Styles.selecti, () -> {
|
ImageButton button = blockTable.addImageButton(Icon.lockedSmall, Styles.selecti, () -> {
|
||||||
if(unlocked(block)){
|
if(unlocked(block)){
|
||||||
control.input.block = control.input.block == block ? null : block;
|
control.input.block = control.input.block == block ? null : block;
|
||||||
@@ -170,9 +256,22 @@ public class PlacementFragment extends Fragment{
|
|||||||
lastGround = false;
|
lastGround = false;
|
||||||
|
|
||||||
topTable.table(header -> {
|
topTable.table(header -> {
|
||||||
|
String keyCombo = "";
|
||||||
|
if(!mobile && Core.settings.getBool("blockselectkeys")){
|
||||||
|
Array<Block> blocks = getByCategory(currentCategory);
|
||||||
|
for(int i = 0; i < blocks.size; i++){
|
||||||
|
if(blocks.get(i) == lastDisplay){
|
||||||
|
keyCombo = Core.bundle.format("placement.blockselectkeys", Core.keybinds.get(blockSelect[currentCategory.ordinal()]).key.toString())
|
||||||
|
+ (i < 10 ? "" : Core.keybinds.get(blockSelect[(i + 1) / 10 - 1]).key.toString() + ",")
|
||||||
|
+ Core.keybinds.get(blockSelect[i % 10]).key.toString() + "]";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final String keyComboFinal = keyCombo;
|
||||||
header.left();
|
header.left();
|
||||||
header.add(new Image(lastDisplay.icon(Cicon.medium))).size(8 * 4);
|
header.add(new Image(lastDisplay.icon(Cicon.medium))).size(8 * 4);
|
||||||
header.labelWrap(() -> !unlocked(lastDisplay) ? Core.bundle.get("block.unknown") : lastDisplay.localizedName)
|
header.labelWrap(() -> !unlocked(lastDisplay) ? Core.bundle.get("block.unknown") : lastDisplay.localizedName + keyComboFinal)
|
||||||
.left().width(190f).padLeft(5);
|
.left().width(190f).padLeft(5);
|
||||||
header.add().growX();
|
header.add().growX();
|
||||||
if(unlocked(lastDisplay)){
|
if(unlocked(lastDisplay)){
|
||||||
@@ -265,7 +364,7 @@ public class PlacementFragment extends Fragment{
|
|||||||
//update category empty values
|
//update category empty values
|
||||||
for(Category cat : Category.all){
|
for(Category cat : Category.all){
|
||||||
Array<Block> blocks = getByCategory(cat);
|
Array<Block> blocks = getByCategory(cat);
|
||||||
categoryEmpty[cat.ordinal()] = blocks.isEmpty() || !unlocked(blocks.first());
|
categoryEmpty[cat.ordinal()] = blocks.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
int f = 0;
|
int f = 0;
|
||||||
@@ -280,10 +379,7 @@ public class PlacementFragment extends Fragment{
|
|||||||
categories.addImageButton(Core.atlas.drawable("icon-" + cat.name() + "-smaller"), Styles.clearToggleTransi, () -> {
|
categories.addImageButton(Core.atlas.drawable("icon-" + cat.name() + "-smaller"), Styles.clearToggleTransi, () -> {
|
||||||
currentCategory = cat;
|
currentCategory = cat;
|
||||||
if(control.input.block != null){
|
if(control.input.block != null){
|
||||||
if(selectedBlocks.get(currentCategory) == null){
|
control.input.block = getSelectedBlock(currentCategory);
|
||||||
selectedBlocks.put(currentCategory, getByCategory(currentCategory).find(this::unlocked));
|
|
||||||
}
|
|
||||||
control.input.block = selectedBlocks.get(currentCategory);
|
|
||||||
}
|
}
|
||||||
rebuildCategory.run();
|
rebuildCategory.run();
|
||||||
}).group(group).update(i -> i.setChecked(currentCategory == cat)).name("category-" + cat.name());
|
}).group(group).update(i -> i.setChecked(currentCategory == cat)).name("category-" + cat.name());
|
||||||
@@ -308,7 +404,7 @@ public class PlacementFragment extends Fragment{
|
|||||||
Array<Block> getByCategory(Category cat){
|
Array<Block> getByCategory(Category cat){
|
||||||
returnArray.clear();
|
returnArray.clear();
|
||||||
for(Block block : content.blocks()){
|
for(Block block : content.blocks()){
|
||||||
if(block.category == cat && block.isVisible()){
|
if(block.category == cat && block.isVisible() && unlocked(block)){
|
||||||
returnArray.add(block);
|
returnArray.add(block);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -320,6 +416,13 @@ public class PlacementFragment extends Fragment{
|
|||||||
return returnArray;
|
return returnArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Block getSelectedBlock(Category cat){
|
||||||
|
if(selectedBlocks.get(cat) == null){
|
||||||
|
selectedBlocks.put(cat, getByCategory(cat).find(this::unlocked));
|
||||||
|
}
|
||||||
|
return selectedBlocks.get(cat);
|
||||||
|
}
|
||||||
|
|
||||||
boolean unlocked(Block block){
|
boolean unlocked(Block block){
|
||||||
return !world.isZone() || data.isUnlocked(block);
|
return !world.isZone() || data.isUnlocked(block);
|
||||||
}
|
}
|
||||||
|
|||||||