Merge branch 'master' of https://github.com/Anuken/Mindustry into v106-alpha

This commit is contained in:
Petr Gašparík
2020-10-05 11:56:55 +02:00
371 changed files with 9362 additions and 8700 deletions

View File

@@ -19,7 +19,7 @@ assignees: ''
**Link(s) to mod(s) used**: *The mod repositories or zip files that are related to the issue, if applicable.* **Link(s) to mod(s) used**: *The mod repositories or zip files that are related to the issue, if applicable.*
**Save file**: *The save file you were playing on when the bug happened. REQUIRED for any issue that happens in-game.* **Save file**: *The (zipped) save file you were playing on when the bug happened. THIS IS REQUIRED FOR ANY ISSUE HAPPENING IN-GAME, REGARDLESS OF WHETHER YOU THINK IT HAPPENS EVERYWHERE. DO NOT DELETE OR OMIT THIS LINE UNLESS YOU ARE SURE THAT THE ISSUE DOES NOT HAPPEN IN-GAME.*
**Crash report**: *The contents of relevant crash report files. REQUIRED if you are reporting a crash.* **Crash report**: *The contents of relevant crash report files. REQUIRED if you are reporting a crash.*

View File

@@ -3,18 +3,6 @@ name: Java CI
on: [push] on: [push]
jobs: jobs:
buildJava8:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up JDK 8
uses: actions/setup-java@v1
with:
java-version: 8
- name: Run unit tests with gradle and Java 8
run: ./gradlew compileJava
buildJava14: buildJava14:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -26,3 +14,14 @@ jobs:
java-version: 14 java-version: 14
- name: Run unit tests with gradle and Java 14 - name: Run unit tests with gradle and Java 14
run: ./gradlew compileJava run: ./gradlew compileJava
buildJava15:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up JDK 15
uses: actions/setup-java@v1
with:
java-version: 15
- name: Run unit tests with gradle and Java 15
run: ./gradlew compileJava

View File

@@ -4,33 +4,38 @@ This is for code contributions. For translations, see [TRANSLATING](TRANSLATING.
## Basic Guidelines ## Basic Guidelines
#### Use an IDE. ### 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. 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. ### Always test your changes.
Do not submit something without at least running the game to see if it compiles. 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. 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.
#### 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*). 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. 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.
### Do not include packed sprites in your pull request.
When making a pull request that changes or adds new sprites, do not add the modified atlas & `spritesX.png` files to your final pull request. These are a frequent source of conflicts.
## Style Guidelines ## Style Guidelines
#### Follow the formatting guidelines. ### Follow the formatting guidelines.
This means: This means:
- No spaces around parentheses: `if(condition){`, `SomeType s = (SomeType)object` - No spaces around parentheses: `if(condition){`, `SomeType s = (SomeType)object`
- Same-line braces. - Same-line braces.
- 4 spaces indentation - 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. - `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. Any reasonable IDE should highlight them for you anyway.
- 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) - 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)
- Do not use braceless `if/else` statements. `if(x) statement else statement2` should **never** be done. In very specific situations, having braceless if-statements on one line is allowed: `if(cond) return;` would be valid. - Do not use braceless `if/else` statements. `if(x) statement else statement2` should **never** be done. In very specific situations, having braceless if-statements on one line is allowed: `if(cond) return;` would be valid.
- Prefer single-line javadoc `/** @return for example */` instead of multiline javadoc whenver possible
- Short method/variable names (multipleLongWords should be avoided if it's possible to so reasonably, especially for variables)
- Use wildcard imports - `import some.package.*` - for everything. This makes incorrect class usage more obvious (*e.g. arc.util.Timer vs java.util.Timer*) and leads to cleaner-looking code.
Import [this style file](.github/Mindustry-CodeStyle-IJ.xml) into IntelliJ to get correct formatting when developing Mindustry. 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). ### Do not use incompatible Java features (java.util.function, java.awt).
Android and RoboVM (iOS) do not support 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. Android and RoboVM (iOS) do not support 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 `arc.func`, which are more or less the same with different naming schemes. If you need to use functional interfaces, use the ones in `arc.func`, which are more or less the same with different naming schemes.
@@ -39,7 +44,7 @@ The same applies to any class *outside* of the standard `java.[n]io` / `java.net
In general, if you are using IntelliJ, you should be warned about platform incompatiblities. In general, if you are using IntelliJ, you should be warned about platform incompatiblities.
#### Use `arc` collections and classes when possible. ### Use `arc` collections and classes when possible.
Instead of using `java.util.List`, `java.util.HashMap`, and other standard Java collections, use `Seq`, `ObjectMap` and other equivalents from `arc.struct`. Instead of using `java.util.List`, `java.util.HashMap`, and other standard Java collections, use `Seq`, `ObjectMap` and other equivalents from `arc.struct`.
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. 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`). In the rare case that concurrency is required, you may use the standard Java classes for that purpose (e.g. `CopyOnWriteArrayList`).
@@ -52,21 +57,21 @@ What you'll usually need to change:
- *Many others* - *Many others*
#### Avoid boxed types (Integer, Boolean) ### Avoid boxed types (Integer, Boolean)
Never create variables or collections with boxed types `Seq<Integer>` or `ObjectMap<Integer, ...>`. Use the collections specialized for this task, e.g. `IntSeq` and `IntMap`. Never create variables or collections with boxed types `Seq<Integer>` or `ObjectMap<Integer, ...>`. Use the collections specialized for this task, e.g. `IntSeq` and `IntMap`.
#### Do not allocate anything if possible. ### 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. 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. 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. 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. ### 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. 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. If something needs to be encapsulated in the future, IntelliJ can handle it with a few clicks.
#### Do not create methods unless necessary. ### 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. 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.
## Other Notes ## Other Notes

View File

@@ -3,7 +3,6 @@ package mindustry.annotations.entity;
import arc.files.*; import arc.files.*;
import arc.func.*; import arc.func.*;
import arc.struct.*; import arc.struct.*;
import arc.util.ArcAnnotate.*;
import arc.util.*; import arc.util.*;
import arc.util.io.*; import arc.util.io.*;
import arc.util.pooling.Pool.*; import arc.util.pooling.Pool.*;
@@ -77,9 +76,10 @@ public class EntityProcess extends BaseProcessor{
if(elem.is(Modifier.ABSTRACT) || elem.is(Modifier.NATIVE)) continue; if(elem.is(Modifier.ABSTRACT) || elem.is(Modifier.NATIVE)) continue;
//get all statements in the method, store them //get all statements in the method, store them
methodBlocks.put(elem.descString(), elem.tree().getBody().toString() methodBlocks.put(elem.descString(), elem.tree().getBody().toString()
//replace all self() invocations with this .replaceAll("this\\.<(.*)>self\\(\\)", "this") //fix parameterized self() calls
.replaceAll("this\\.<(.*)>self\\(\\)", "this") .replaceAll("self\\(\\)", "this") //fix self() calls
.replaceAll("self\\(\\)", "this") .replaceAll(" yield ", "") //fix enchanced switch
.replaceAll("\\/\\*missing\\*\\/", "var") //fix vars
); );
} }
} }

View File

@@ -1,7 +1,7 @@
package mindustry.annotations.util; package mindustry.annotations.util;
import arc.struct.*; import arc.struct.*;
import arc.util.ArcAnnotate.*; import arc.util.*;
import com.squareup.javapoet.*; import com.squareup.javapoet.*;
import com.sun.tools.javac.code.Attribute.*; import com.sun.tools.javac.code.Attribute.*;
import mindustry.annotations.*; import mindustry.annotations.*;
@@ -19,7 +19,8 @@ public class Selement<T extends Element>{
this.e = e; this.e = e;
} }
public @Nullable String doc(){ @Nullable
public String doc(){
return BaseProcessor.elementu.getDocComment(e); return BaseProcessor.elementu.getDocComment(e);
} }

View File

@@ -0,0 +1 @@
{fields:[{name:ammo,type:float},{name:armor,type:float},{name:controller,type:mindustry.entities.units.UnitController},{name:elevation,type:float},{name:health,type:float},{name:isShooting,type:boolean},{name:mounts,type:"mindustry.entities.units.WeaponMount[]"},{name:payloads,type:arc.struct.Seq<mindustry.world.blocks.payloads.Payload>},{name:plans,type:arc.struct.Queue<mindustry.entities.units.BuildPlan>},{name:rotation,type:float},{name:shield,type:float},{name:spawnedByCore,type:boolean},{name:stack,type:mindustry.type.ItemStack},{name:statuses,type:arc.struct.Seq<mindustry.entities.units.StatusEntry>},{name:team,type:mindustry.game.Team},{name:type,type:mindustry.type.UnitType},{name:x,type:float},{name:y,type:float}]}

View File

@@ -173,23 +173,38 @@ allprojects{
} }
tasks.withType(JavaCompile){ tasks.withType(JavaCompile){
sourceCompatibility = 1.8 targetCompatibility = 8
targetCompatibility = 1.8 sourceCompatibility = 14
options.encoding = "UTF-8" options.encoding = "UTF-8"
options.compilerArgs += ["-Xlint:deprecation"] options.compilerArgs += ["-Xlint:deprecation"]
} }
} }
//compile with java 8 compatibility for everything except the annotati project configure(project(":annotations")){
tasks.withType(JavaCompile){
targetCompatibility = 8
sourceCompatibility = 8
}
}
//compile with java 8 compatibility for everything except the annotation project
configure(subprojects - project(":annotations")){ configure(subprojects - project(":annotations")){
tasks.withType(JavaCompile){ tasks.withType(JavaCompile){
if(JavaVersion.current() != JavaVersion.VERSION_1_8){ if(JavaVersion.current() != JavaVersion.VERSION_1_8){
options.compilerArgs.addAll(['--release', '8']) options.compilerArgs.addAll(['--release', '8', '--enable-preview'])
}
doFirst{
options.compilerArgs = options.compilerArgs.findAll{it != '--enable-preview' }
} }
} }
tasks.withType(Javadoc){ tasks.withType(Javadoc){
options.addStringOption('Xdoclint:none', '-quiet') options{
addStringOption('Xdoclint:none', '-quiet')
addBooleanOption('-enable-preview', true)
addStringOption('-release', '14')
}
} }
} }
@@ -288,6 +303,8 @@ project(":core"){
compileOnly project(":annotations") compileOnly project(":annotations")
annotationProcessor project(":annotations") annotationProcessor project(":annotations")
annotationProcessor 'com.github.Anuken:jabel:40eec868af'
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 758 B

After

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 794 B

After

Width:  |  Height:  |  Size: 687 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 514 B

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 304 B

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 B

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 B

After

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 947 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 653 B

After

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 559 B

After

Width:  |  Height:  |  Size: 853 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 277 B

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 926 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -851,6 +851,7 @@ rules.title.unit = Units
rules.title.experimental = Experimental rules.title.experimental = Experimental
rules.title.environment = Environment rules.title.environment = Environment
rules.lighting = Lighting rules.lighting = Lighting
rules.enemyLights = Enemy Lights
rules.fire = Fire rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light rules.ambientlight = Ambient Light
@@ -1047,7 +1048,7 @@ block.underflow-gate.name = Underflow 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
block.pulverizer.name = Pulverizer block.pulverizer.name = Pulverizer
block.cryofluidmixer.name = Cryofluid Mixer block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Melter block.melter.name = Melter
block.incinerator.name = Incinerator block.incinerator.name = Incinerator
block.spore-press.name = Spore Press block.spore-press.name = Spore Press
@@ -1079,6 +1080,7 @@ block.power-source.name = Power Infinite
block.unloader.name = Unloader block.unloader.name = Unloader
block.vault.name = Vault block.vault.name = Vault
block.wave.name = Wave block.wave.name = Wave
block.tsunami.name = Tsunami
block.swarmer.name = Swarmer block.swarmer.name = Swarmer
block.salvo.name = Salvo block.salvo.name = Salvo
block.ripple.name = Ripple block.ripple.name = Ripple
@@ -1118,6 +1120,7 @@ block.arc.name = Arc
block.rtg-generator.name = RTG Generator block.rtg-generator.name = RTG Generator
block.spectre.name = Spectre block.spectre.name = Spectre
block.meltdown.name = Meltdown block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Container block.container.name = Container
block.launch-pad.name = Launch Pad block.launch-pad.name = Launch Pad
block.launch-pad-large.name = Large Launch Pad block.launch-pad-large.name = Large Launch Pad
@@ -1204,7 +1207,7 @@ block.kiln.description = Smelts sand and lead into the compound known as metagla
block.plastanium-compressor.description = Produces plastanium from oil and titanium. block.plastanium-compressor.description = Produces plastanium from oil and titanium.
block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function. block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function.
block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy. block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy.
block.cryofluidmixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage. block.cryofluid-mixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage.
block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound. block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound.
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite. block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets. block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Залішнi шлюз
block.silicon-smelter.name = Крэмнявы плавільны завод block.silicon-smelter.name = Крэмнявы плавільны завод
block.phase-weaver.name = Фазавы ткач block.phase-weaver.name = Фазавы ткач
block.pulverizer.name = Здрабняльнік block.pulverizer.name = Здрабняльнік
block.cryofluidmixer.name = Мешалка крыягеннай вадкасці block.cryofluid-mixer.name = Мешалка крыягеннай вадкасці
block.melter.name = Плавільня block.melter.name = Плавільня
block.incinerator.name = Мусарасжыгатель block.incinerator.name = Мусарасжыгатель
block.spore-press.name = Споравы прэс block.spore-press.name = Споравы прэс
@@ -1199,7 +1199,7 @@ block.kiln.description = выплавляемым пясок і свінец ў
block.plastanium-compressor.description = Вырабляе пластан з нафты ды тытана. block.plastanium-compressor.description = Вырабляе пластан з нафты ды тытана.
block.phase-weaver.description = Сінтэзуе фазавую тканіна з радыеактыўнага торыя і пяску. Патрабуецца вялікая колькасць энергіі для працы. block.phase-weaver.description = Сінтэзуе фазавую тканіна з радыеактыўнага торыя і пяску. Патрабуецца вялікая колькасць энергіі для працы.
block.alloy-smelter.description = Аб'ядноўвае тытан, свінец, крэмній і медзь для вытворчасці кінэтычнага сплаву. block.alloy-smelter.description = Аб'ядноўвае тытан, свінец, крэмній і медзь для вытворчасці кінэтычнага сплаву.
block.cryofluidmixer.description = змешваюцца ваду і дробны тытанавы парашок у криогеннную вадкасць. Неад'емная частка пры выкарыстання ториевого рэактара block.cryofluid-mixer.description = змешваюцца ваду і дробны тытанавы парашок у криогеннную вадкасць. Неад'емная частка пры выкарыстання ториевого рэактара
block.blast-mixer.description = расціскаюць і змешвае навалы спрэчка з пиротитом для атрымання выбуховага рэчыва. block.blast-mixer.description = расціскаюць і змешвае навалы спрэчка з пиротитом для атрымання выбуховага рэчыва.
block.pyratite-mixer.description = Змешвае вугаль, свінец і пясок у гаручы піратыт block.pyratite-mixer.description = Змешвае вугаль, свінец і пясок у гаручы піратыт
block.melter.description = Плавіць металалом ў шлак для далейшай апрацоўкі або выкарыстання ў турэлях «Хваля». block.melter.description = Плавіць металалом ў шлак для далейшай апрацоўкі або выкарыстання ў турэлях «Хваля».

View File

@@ -1047,7 +1047,7 @@ block.underflow-gate.name = Brána s podtokem
block.silicon-smelter.name = Křemíková huť block.silicon-smelter.name = Křemíková huť
block.phase-weaver.name = Tkalcovna pro fázovou tkaninu block.phase-weaver.name = Tkalcovna pro fázovou tkaninu
block.pulverizer.name = Rozmělňovač block.pulverizer.name = Rozmělňovač
block.cryofluidmixer.name = Míchačka na chladící kapalinu block.cryofluid-mixer.name = Míchačka na chladící kapalinu
block.melter.name = Tavírna block.melter.name = Tavírna
block.incinerator.name = Spalovna block.incinerator.name = Spalovna
block.spore-press.name = Lis na spóry block.spore-press.name = Lis na spóry
@@ -1204,7 +1204,7 @@ block.kiln.description = Taví písek a olovo na směs známou jako metasklo. Vy
block.plastanium-compressor.description = Produkuje plastanu z titanu a nafty. block.plastanium-compressor.description = Produkuje plastanu z titanu a nafty.
block.phase-weaver.description = Produkuje fázovou tkaninu z radioaktivního thoria a písku. Spotřebuje k tomu výrazné množství energie. block.phase-weaver.description = Produkuje fázovou tkaninu z radioaktivního thoria a písku. Spotřebuje k tomu výrazné množství energie.
block.alloy-smelter.description = Produkuje rázovou slitinu z titanu, olova, křemíku a mědi. block.alloy-smelter.description = Produkuje rázovou slitinu z titanu, olova, křemíku a mědi.
block.cryofluidmixer.description = Míchá vodu a jemný titanová prášek do chladící kapaliny, nezbytné například pro thoriový reaktor. block.cryofluid-mixer.description = Míchá vodu a jemný titanová prášek do chladící kapaliny, nezbytné například pro thoriový reaktor.
block.blast-mixer.description = Drtí a míchá shluky spór s pyratitem, čímž vzniká výbušnina. block.blast-mixer.description = Drtí a míchá shluky spór s pyratitem, čímž vzniká výbušnina.
block.pyratite-mixer.description = Míchá uhlí, olovo a písek do vysoce hořlavého pyratitu. block.pyratite-mixer.description = Míchá uhlí, olovo a písek do vysoce hořlavého pyratitu.
block.melter.description = Taví šrot do roztaveného kovu pro další zpracování, nebo pro munici do střílny Vlna. block.melter.description = Taví šrot do roztaveného kovu pro další zpracování, nebo pro munici do střílny Vlna.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow 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
block.pulverizer.name = Pulverizer block.pulverizer.name = Pulverizer
block.cryofluidmixer.name = Cryofluid Mixer block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Melter block.melter.name = Melter
block.incinerator.name = Incinerator block.incinerator.name = Incinerator
block.spore-press.name = Spore Press block.spore-press.name = Spore Press
@@ -1199,7 +1199,7 @@ block.kiln.description = Smelts sand and lead into the compound known as metagla
block.plastanium-compressor.description = Produces plastanium from oil and titanium. block.plastanium-compressor.description = Produces plastanium from oil and titanium.
block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function. block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function.
block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy. block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy.
block.cryofluidmixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage. block.cryofluid-mixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage.
block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound. block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound.
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite. block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets. block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Unterlauftor
block.silicon-smelter.name = Silizium-Schmelzer block.silicon-smelter.name = Silizium-Schmelzer
block.phase-weaver.name = Phasenweber block.phase-weaver.name = Phasenweber
block.pulverizer.name = Pulverisierer block.pulverizer.name = Pulverisierer
block.cryofluidmixer.name = Kryoflüssigkeitsmixer block.cryofluid-mixer.name = Kryoflüssigkeitsmixer
block.melter.name = Schmelzer block.melter.name = Schmelzer
block.incinerator.name = Verbrennungsanlage block.incinerator.name = Verbrennungsanlage
block.spore-press.name = Sporenpresse block.spore-press.name = Sporenpresse
@@ -1199,7 +1199,7 @@ block.kiln.description = Schmelzt Sand und Blei zu Metaglass. Erfordert kleine M
block.plastanium-compressor.description = Produziert Plastanium aus Öl und Titan. block.plastanium-compressor.description = Produziert Plastanium aus Öl und Titan.
block.phase-weaver.description = Produziert Phasengewebe aus radioaktivem Thorium und großen Mengen an Sand. block.phase-weaver.description = Produziert Phasengewebe aus radioaktivem Thorium und großen Mengen an Sand.
block.alloy-smelter.description = Verarbeitet Titan, Blei, Silizium und Kupfer zu einer Stromstoßlegierung. block.alloy-smelter.description = Verarbeitet Titan, Blei, Silizium und Kupfer zu einer Stromstoßlegierung.
block.cryofluidmixer.description = Verarbeitet Wasser mit Titan zu einer Kryoflüssigkeit, die viel effizienter kühlt. block.cryofluid-mixer.description = Verarbeitet Wasser mit Titan zu einer Kryoflüssigkeit, die viel effizienter kühlt.
block.blast-mixer.description = Verwendet Sporen, um Pyratit in eine weniger enzündliche aber explosive Mischung umzuwandeln. block.blast-mixer.description = Verwendet Sporen, um Pyratit in eine weniger enzündliche aber explosive Mischung umzuwandeln.
block.pyratite-mixer.description = Vermischt Kohle, Blei und Sand zu hochentzündlichem Pyratit. block.pyratite-mixer.description = Vermischt Kohle, Blei und Sand zu hochentzündlichem Pyratit.
block.melter.description = Erhitzt Schrott auf extrem hohe Temperaturen, um Lava zu erhalten. block.melter.description = Erhitzt Schrott auf extrem hohe Temperaturen, um Lava zu erhalten.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Compuerta de Subdesbordamiento
block.silicon-smelter.name = Horno para Silicio block.silicon-smelter.name = Horno para Silicio
block.phase-weaver.name = Tejedor de Fase block.phase-weaver.name = Tejedor de Fase
block.pulverizer.name = Pulverizador block.pulverizer.name = Pulverizador
block.cryofluidmixer.name = Mezclador de Criogénicos block.cryofluid-mixer.name = Mezclador de Criogénicos
block.melter.name = Fundidor block.melter.name = Fundidor
block.incinerator.name = Incinerador block.incinerator.name = Incinerador
block.spore-press.name = Prensa de Esporas block.spore-press.name = Prensa de Esporas
@@ -1199,7 +1199,7 @@ block.kiln.description = Funde arena y plomo en metacristal. Requiere cantidades
block.plastanium-compressor.description = Produce plastanio con aceite y titanio. block.plastanium-compressor.description = Produce plastanio con aceite y titanio.
block.phase-weaver.description = Produce tejido de fase del torio radioactivo y altas cantidades de arena. block.phase-weaver.description = Produce tejido de fase del torio radioactivo y altas cantidades de arena.
block.alloy-smelter.description = Produce aleación eléctrica con titanio, plomo, silicio y cobre. block.alloy-smelter.description = Produce aleación eléctrica con titanio, plomo, silicio y cobre.
block.cryofluidmixer.description = Combina agua y titanio en líquido criogénico, que es mucho más eficiente para enfriar. block.cryofluid-mixer.description = Combina agua y titanio en líquido criogénico, que es mucho más eficiente para enfriar.
block.blast-mixer.description = Usa aceite para transformar pirotita en un objeto menos inflamable pero más explosivo: el compuesto explosivo. block.blast-mixer.description = Usa aceite para transformar pirotita en un objeto menos inflamable pero más explosivo: el compuesto explosivo.
block.pyratite-mixer.description = Mezcla carbón, plomo y arena en pirotita altamente inflamable. block.pyratite-mixer.description = Mezcla carbón, plomo y arena en pirotita altamente inflamable.
block.melter.description = Calienta piedra a temperaturas muy altas para obtener lava. block.melter.description = Calienta piedra a temperaturas muy altas para obtener lava.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Ränisulatusahi block.silicon-smelter.name = Ränisulatusahi
block.phase-weaver.name = Faaskangakuduja block.phase-weaver.name = Faaskangakuduja
block.pulverizer.name = Metallijahvataja block.pulverizer.name = Metallijahvataja
block.cryofluidmixer.name = Krüosegisti block.cryofluid-mixer.name = Krüosegisti
block.melter.name = Metallisulataja block.melter.name = Metallisulataja
block.incinerator.name = Tuhastusahi block.incinerator.name = Tuhastusahi
block.spore-press.name = Spooripress block.spore-press.name = Spooripress
@@ -1199,7 +1199,7 @@ block.kiln.description = Sulatab liiva ja plii metaklaasiks. Väike energiatarve
block.plastanium-compressor.description = Toodab naftast ja titaanist plastiumit. block.plastanium-compressor.description = Toodab naftast ja titaanist plastiumit.
block.phase-weaver.description = Sünteesib faaskangast radioaktiivsest tooriumist ja liivast. Tohutu energiatarve. block.phase-weaver.description = Sünteesib faaskangast radioaktiivsest tooriumist ja liivast. Tohutu energiatarve.
block.alloy-smelter.description = Kombineerib titaaniumi, plii, räni ja vase voogsulamiks. block.alloy-smelter.description = Kombineerib titaaniumi, plii, räni ja vase voogsulamiks.
block.cryofluidmixer.description = Toodab krüovedelikku, segades kokku vee ja peene titaanpulbri. Hädavajalik tooriumreaktori toimimiseks. block.cryofluid-mixer.description = Toodab krüovedelikku, segades kokku vee ja peene titaanpulbri. Hädavajalik tooriumreaktori toimimiseks.
block.blast-mixer.description = Purustab spoorikobaraid ja segab neid püratiidiga, et toota lõhkeainet. block.blast-mixer.description = Purustab spoorikobaraid ja segab neid püratiidiga, et toota lõhkeainet.
block.pyratite-mixer.description = Segab söe, plii ja liiva tuleohtlikuks püratiidiks. block.pyratite-mixer.description = Segab söe, plii ja liiva tuleohtlikuks püratiidiks.
block.melter.description = Sulatab vanametalli räbuks, mida saab kas edasi töödelda või kasutada pritskahurites. block.melter.description = Sulatab vanametalli räbuks, mida saab kas edasi töödelda või kasutada pritskahurites.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Silizio galdategia block.silicon-smelter.name = Silizio galdategia
block.phase-weaver.name = Fase ehulea block.phase-weaver.name = Fase ehulea
block.pulverizer.name = Birringailua block.pulverizer.name = Birringailua
block.cryofluidmixer.name = Krio-isurkari nahasgailua block.cryofluid-mixer.name = Krio-isurkari nahasgailua
block.melter.name = Urtzailea block.melter.name = Urtzailea
block.incinerator.name = Erraustegia block.incinerator.name = Erraustegia
block.spore-press.name = Espora prentsa block.spore-press.name = Espora prentsa
@@ -1199,7 +1199,7 @@ block.kiln.description = Hondarra eta beruna galdatzen ditu metabeira izeneko ko
block.plastanium-compressor.description = Plastanioa ekoizten du olioa eta titanioa erabiliz. block.plastanium-compressor.description = Plastanioa ekoizten du olioa eta titanioa erabiliz.
block.phase-weaver.description = Fasezko ehuna sintetizatzen du torio erradioaktiboa eta hondarra erabiliz. Energia kopurua handia behar du jarduteko. block.phase-weaver.description = Fasezko ehuna sintetizatzen du torio erradioaktiboa eta hondarra erabiliz. Energia kopurua handia behar du jarduteko.
block.alloy-smelter.description = Titanioa, beruna, silizioa eta kobrea konbinatzen ditu tirain aleazioa ekoizteko. block.alloy-smelter.description = Titanioa, beruna, silizioa eta kobrea konbinatzen ditu tirain aleazioa ekoizteko.
block.cryofluidmixer.description = Ura eta titanio hauts fina nahasten ditu krio-isurkia ekoizteko. Toriozko erreaktorea erabiltzeko ezinbestekoa. block.cryofluid-mixer.description = Ura eta titanio hauts fina nahasten ditu krio-isurkia ekoizteko. Toriozko erreaktorea erabiltzeko ezinbestekoa.
block.blast-mixer.description = Espora sortak eta piratita txikitu eta nahasten ditu lehergai konposatua ekoizteko. block.blast-mixer.description = Espora sortak eta piratita txikitu eta nahasten ditu lehergai konposatua ekoizteko.
block.pyratite-mixer.description = Ikatza, beruna, eta hondarra nahasten ditu oso sukoia den piratita sortuz. block.pyratite-mixer.description = Ikatza, beruna, eta hondarra nahasten ditu oso sukoia den piratita sortuz.
block.melter.description = Metala zepara urtzen du, prozesatzen jarraitzeko edo olatu dorreetan erabiltzeko. block.melter.description = Metala zepara urtzen du, prozesatzen jarraitzeko edo olatu dorreetan erabiltzeko.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow 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
block.pulverizer.name = Pulverizer block.pulverizer.name = Pulverizer
block.cryofluidmixer.name = Cryofluid Mixer block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Melter block.melter.name = Melter
block.incinerator.name = Incinerator block.incinerator.name = Incinerator
block.spore-press.name = Spore Press block.spore-press.name = Spore Press
@@ -1199,7 +1199,7 @@ block.kiln.description = Smelts sand and lead into the compound known as metagla
block.plastanium-compressor.description = Produces plastanium from oil and titanium. block.plastanium-compressor.description = Produces plastanium from oil and titanium.
block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function. block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function.
block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy. block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy.
block.cryofluidmixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage. block.cryofluid-mixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage.
block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound. block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound.
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite. block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets. block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow 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
block.pulverizer.name = Pulverizer block.pulverizer.name = Pulverizer
block.cryofluidmixer.name = Cryofluid Mixer block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Melter block.melter.name = Melter
block.incinerator.name = Incinerator block.incinerator.name = Incinerator
block.spore-press.name = Spore Press block.spore-press.name = Spore Press
@@ -1199,7 +1199,7 @@ block.kiln.description = Smelts sand and lead into the compound known as metagla
block.plastanium-compressor.description = Produces plastanium from oil and titanium. block.plastanium-compressor.description = Produces plastanium from oil and titanium.
block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function. block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function.
block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy. block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy.
block.cryofluidmixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage. block.cryofluid-mixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage.
block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound. block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound.
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite. block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets. block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Barrière de Refoulement
block.silicon-smelter.name = Fonderie de Silicium block.silicon-smelter.name = Fonderie de Silicium
block.phase-weaver.name = Tisseur à Phase block.phase-weaver.name = Tisseur à Phase
block.pulverizer.name = Pulvérisateur block.pulverizer.name = Pulvérisateur
block.cryofluidmixer.name = Refroidisseur block.cryofluid-mixer.name = Refroidisseur
block.melter.name = Four à Fusion block.melter.name = Four à Fusion
block.incinerator.name = Incinérateur block.incinerator.name = Incinérateur
block.spore-press.name = Presse à Spore block.spore-press.name = Presse à Spore
@@ -1199,7 +1199,7 @@ block.kiln.description = Fait fondre le sable et le plomb en verre trempé. Néc
block.plastanium-compressor.description = Produit du plastanium à partir de pétrole et de titane. block.plastanium-compressor.description = Produit du plastanium à partir de pétrole et de titane.
block.phase-weaver.description = Produit du tissu phasé à partir de thoriums et de grandes quantités de sable. Nécessite une quantité massive d'énergie pour fonctionner. block.phase-weaver.description = Produit du tissu phasé à partir de thoriums et de grandes quantités de sable. Nécessite une quantité massive d'énergie pour fonctionner.
block.alloy-smelter.description = Produit un alliage superchargé à l'aide de titane, de plomb, de silicium et de cuivre. block.alloy-smelter.description = Produit un alliage superchargé à l'aide de titane, de plomb, de silicium et de cuivre.
block.cryofluidmixer.description = Mélange de leau et de la fine poudre de titane pour former du liquide cryogénique. Indispensable lors de l'utilisation de réacteurs aux thoriums. block.cryofluid-mixer.description = Mélange de leau et de la fine poudre de titane pour former du liquide cryogénique. Indispensable lors de l'utilisation de réacteurs aux thoriums.
block.blast-mixer.description = Écrase et mélange les amas de spores avec de la pyratite pour produire un mélange explosif. block.blast-mixer.description = Écrase et mélange les amas de spores avec de la pyratite pour produire un mélange explosif.
block.pyratite-mixer.description = Mélange le charbon, le plomb et le sable en pyratite hautement inflammable. block.pyratite-mixer.description = Mélange le charbon, le plomb et le sable en pyratite hautement inflammable.
block.melter.description = Fait fondre la ferraille en scories pour un traitement ultérieur ou une utilisation dans les tourelles « Onde ». block.melter.description = Fait fondre la ferraille en scories pour un traitement ultérieur ou une utilisation dans les tourelles « Onde ».

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Fonderie de silicium block.silicon-smelter.name = Fonderie de silicium
block.phase-weaver.name = Tisseur à phase block.phase-weaver.name = Tisseur à phase
block.pulverizer.name = Pulvérisateur block.pulverizer.name = Pulvérisateur
block.cryofluidmixer.name = Refroidisseur block.cryofluid-mixer.name = Refroidisseur
block.melter.name = Four à Fusion block.melter.name = Four à Fusion
block.incinerator.name = Incinérateur block.incinerator.name = Incinérateur
block.spore-press.name = Spore presse block.spore-press.name = Spore presse
@@ -1199,7 +1199,7 @@ block.kiln.description = Fait fondre le sable et le plomb en métaverre. Nécess
block.plastanium-compressor.description = Produit du plastanium à partir de pétrole et de titane. block.plastanium-compressor.description = Produit du plastanium à partir de pétrole et de titane.
block.phase-weaver.description = Produit un tissu de phase à partir de thorium radioactif et de grandes quantités de sable. block.phase-weaver.description = Produit un tissu de phase à partir de thorium radioactif et de grandes quantités de sable.
block.alloy-smelter.description = Produit un alliage de surtension à partir de titane, plomb, silicium et cuivre. block.alloy-smelter.description = Produit un alliage de surtension à partir de titane, plomb, silicium et cuivre.
block.cryofluidmixer.description = L'eau et le titane combinés forment un fluide cryo beaucoup plus efficace pour le refroidissement. block.cryofluid-mixer.description = L'eau et le titane combinés forment un fluide cryo beaucoup plus efficace pour le refroidissement.
block.blast-mixer.description = Utilise du pétrole pour transformer la pyratite en un composé explosif moins inflammable mais plus explosif. block.blast-mixer.description = Utilise du pétrole pour transformer la pyratite en un composé explosif moins inflammable mais plus explosif.
block.pyratite-mixer.description = Mélange le charbon, le plomb et le sable en pyratite hautement inflammable. block.pyratite-mixer.description = Mélange le charbon, le plomb et le sable en pyratite hautement inflammable.
block.melter.description = Chauffe la pierre à des températures très élevées pour obtenir de la lave. block.melter.description = Chauffe la pierre à des températures très élevées pour obtenir de la lave.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow 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
block.pulverizer.name = Pulverizer block.pulverizer.name = Pulverizer
block.cryofluidmixer.name = Cryofluid Mixer block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Melter block.melter.name = Melter
block.incinerator.name = Incinerator block.incinerator.name = Incinerator
block.spore-press.name = Spore Press block.spore-press.name = Spore Press
@@ -1199,7 +1199,7 @@ block.kiln.description = Smelts sand and lead into the compound known as metagla
block.plastanium-compressor.description = Produces plastanium from oil and titanium. block.plastanium-compressor.description = Produces plastanium from oil and titanium.
block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function. block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function.
block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy. block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy.
block.cryofluidmixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage. block.cryofluid-mixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage.
block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound. block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound.
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite. block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets. block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Gerbang Tidak Meluap
block.silicon-smelter.name = Pelebur Silikon block.silicon-smelter.name = Pelebur Silikon
block.phase-weaver.name = Pengrajut Phase block.phase-weaver.name = Pengrajut Phase
block.pulverizer.name = Pulverisator block.pulverizer.name = Pulverisator
block.cryofluidmixer.name = Penyampur Cairan Dingin block.cryofluid-mixer.name = Penyampur Cairan Dingin
block.melter.name = Pencair block.melter.name = Pencair
block.incinerator.name = Penghangus block.incinerator.name = Penghangus
block.spore-press.name = Penekan Spora block.spore-press.name = Penekan Spora
@@ -1199,7 +1199,7 @@ block.kiln.description = Membakar pasir dan timah menjadi kaca meta. Membutuhkan
block.plastanium-compressor.description = Memproduksi plastanium dari minyak dan titanium. block.plastanium-compressor.description = Memproduksi plastanium dari minyak dan titanium.
block.phase-weaver.description = Memproduksi kain phase dari thorium dan banyak pasir. block.phase-weaver.description = Memproduksi kain phase dari thorium dan banyak pasir.
block.alloy-smelter.description = Memproduksi campuran logam dari titanium, timah, silikon dan tembaga. block.alloy-smelter.description = Memproduksi campuran logam dari titanium, timah, silikon dan tembaga.
block.cryofluidmixer.description = Mencampur air dan titanium menjadi cairan dingin yang lebih efisien untuk pendingin. block.cryofluid-mixer.description = Mencampur air dan titanium menjadi cairan dingin yang lebih efisien untuk pendingin.
block.blast-mixer.description = Menggunakan minyak untuk membentuk pyratite menjadi senyawa peledak yang kurang mudah terbakar tetapi lebih eksplosif. block.blast-mixer.description = Menggunakan minyak untuk membentuk pyratite menjadi senyawa peledak yang kurang mudah terbakar tetapi lebih eksplosif.
block.pyratite-mixer.description = Mencampur batu bara, timah dan pasir menjadi pyratite yang sangat mudah terbakar. block.pyratite-mixer.description = Mencampur batu bara, timah dan pasir menjadi pyratite yang sangat mudah terbakar.
block.melter.description = Melelehkan kepingan menjadi terak untuk proses selanjutnya atau digunakan menara. block.melter.description = Melelehkan kepingan menjadi terak untuk proses selanjutnya atau digunakan menara.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Separatore per Eccesso Inverso
block.silicon-smelter.name = Fonderia block.silicon-smelter.name = Fonderia
block.phase-weaver.name = Tessitore di Fase block.phase-weaver.name = Tessitore di Fase
block.pulverizer.name = Polverizzatore block.pulverizer.name = Polverizzatore
block.cryofluidmixer.name = Miscelatore di Liquidi block.cryofluid-mixer.name = Miscelatore di Liquidi
block.melter.name = Fonditore block.melter.name = Fonditore
block.incinerator.name = Inceneritore block.incinerator.name = Inceneritore
block.spore-press.name = Pressa di Spore block.spore-press.name = Pressa di Spore
@@ -1199,7 +1199,7 @@ block.kiln.description = Fonde la sabbia ed il piombo in vetro metallico. Richie
block.plastanium-compressor.description = Produce plastanio da petrolio e titanio. block.plastanium-compressor.description = Produce plastanio da petrolio e titanio.
block.phase-weaver.description = Produce tessuto di fase da torio radioattivo ed elevate quantità di sabbia. block.phase-weaver.description = Produce tessuto di fase da torio radioattivo ed elevate quantità di sabbia.
block.alloy-smelter.description = Produce leghe di sovratensione da titanio, piombo, silicio e rame. block.alloy-smelter.description = Produce leghe di sovratensione da titanio, piombo, silicio e rame.
block.cryofluidmixer.description = Combina acqua e titanio in criofluido che è molto più efficiente per il raffreddamento. block.cryofluid-mixer.description = Combina acqua e titanio in criofluido che è molto più efficiente per il raffreddamento.
block.blast-mixer.description = Frantuma e mescola le spore con la pirite per produrre composto esplosivo. block.blast-mixer.description = Frantuma e mescola le spore con la pirite per produrre composto esplosivo.
block.pyratite-mixer.description = Mescola carbone, piombo e sabbia in pirite altamente infiammabile. block.pyratite-mixer.description = Mescola carbone, piombo e sabbia in pirite altamente infiammabile.
block.melter.description = Riscalda la pietra a temperature molto elevate per ottenere scoria liquida. block.melter.description = Riscalda la pietra a temperature molto elevate per ottenere scoria liquida.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = アンダーフローゲート
block.silicon-smelter.name = シリコン溶鉱炉 block.silicon-smelter.name = シリコン溶鉱炉
block.phase-weaver.name = フェーズ織機 block.phase-weaver.name = フェーズ織機
block.pulverizer.name = 粉砕機 block.pulverizer.name = 粉砕機
block.cryofluidmixer.name = 冷却ミキサー block.cryofluid-mixer.name = 冷却ミキサー
block.melter.name = 融合機 block.melter.name = 融合機
block.incinerator.name = 焼却炉 block.incinerator.name = 焼却炉
block.spore-press.name = 胞子圧縮機 block.spore-press.name = 胞子圧縮機
@@ -1199,7 +1199,7 @@ block.kiln.description = 砂と鉛を溶かしてメタガラスを生成しま
block.plastanium-compressor.description = オイルとチタンからプラスタニウムを製造します。 block.plastanium-compressor.description = オイルとチタンからプラスタニウムを製造します。
block.phase-weaver.description = 放射性トリウムと多量の砂からフェーズファイバーを製造します。 block.phase-weaver.description = 放射性トリウムと多量の砂からフェーズファイバーを製造します。
block.alloy-smelter.description = チタンや鉛、シリコン、銅からサージ合金を製造します。 block.alloy-smelter.description = チタンや鉛、シリコン、銅からサージ合金を製造します。
block.cryofluidmixer.description = 水とチタンから冷却に効率的な冷却水を製造します。 block.cryofluid-mixer.description = 水とチタンから冷却に効率的な冷却水を製造します。
block.blast-mixer.description = 可燃性のピラタイトを石油を使用してさらに爆発性化合物にします。 block.blast-mixer.description = 可燃性のピラタイトを石油を使用してさらに爆発性化合物にします。
block.pyratite-mixer.description = 石炭、鉛、砂から燃えやすいピラタイトを製造します。 block.pyratite-mixer.description = 石炭、鉛、砂から燃えやすいピラタイトを製造します。
block.melter.description = 石を熱で溶かして溶岩を生成します。 block.melter.description = 石を熱で溶かして溶岩を生成します。

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = 불포화 필터
block.silicon-smelter.name = 실리콘 제련소 block.silicon-smelter.name = 실리콘 제련소
block.phase-weaver.name = 메타 합성기 block.phase-weaver.name = 메타 합성기
block.pulverizer.name = 분쇄기 block.pulverizer.name = 분쇄기
block.cryofluidmixer.name = 냉각수 제조기 block.cryofluid-mixer.name = 냉각수 제조기
block.melter.name = 융해기 block.melter.name = 융해기
block.incinerator.name = 소각로 block.incinerator.name = 소각로
block.spore-press.name = 포자 압축기 block.spore-press.name = 포자 압축기
@@ -1199,7 +1199,7 @@ block.kiln.description = 모래를 제련하여 강화 유리라고 알려진
block.plastanium-compressor.description = 석유와 티타늄으로 플라스터늄을 생산합니다. block.plastanium-compressor.description = 석유와 티타늄으로 플라스터늄을 생산합니다.
block.phase-weaver.description = 방사성 토륨과 모래에서 메타를 합성합니다. 작동하려면 엄청난 양의 전력이 필요합니다. block.phase-weaver.description = 방사성 토륨과 모래에서 메타를 합성합니다. 작동하려면 엄청난 양의 전력이 필요합니다.
block.alloy-smelter.description = 티타늄, 납, 실리콘, 구리를 결합하여 설금을 생산합니다. block.alloy-smelter.description = 티타늄, 납, 실리콘, 구리를 결합하여 설금을 생산합니다.
block.cryofluidmixer.description = 물과 미세 티타늄 분말을 냉각수로 혼합합니다. 토륨 원자로 사용에 필수적입니다. block.cryofluid-mixer.description = 물과 미세 티타늄 분말을 냉각수로 혼합합니다. 토륨 원자로 사용에 필수적입니다.
block.blast-mixer.description = 포자 클러스터를 파이라타이트와 분쇄하고 혼합하여 폭발물을 만듭니다. block.blast-mixer.description = 포자 클러스터를 파이라타이트와 분쇄하고 혼합하여 폭발물을 만듭니다.
block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 파이라타이트로 만듭니다. block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 파이라타이트로 만듭니다.
block.melter.description = 웨이브 포탑에서 추가 처리 또는 사용을 위해 고철을 광재로 녹입니다. block.melter.description = 웨이브 포탑에서 추가 처리 또는 사용을 위해 고철을 광재로 녹입니다.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Neperpildymo Užtvara
block.silicon-smelter.name = Silicio Lydykla block.silicon-smelter.name = Silicio Lydykla
block.phase-weaver.name = Fazinė Audykla block.phase-weaver.name = Fazinė Audykla
block.pulverizer.name = Pulverizatorius block.pulverizer.name = Pulverizatorius
block.cryofluidmixer.name = Krio Skysčio Maišytojas block.cryofluid-mixer.name = Krio Skysčio Maišytojas
block.melter.name = Lydytuvas block.melter.name = Lydytuvas
block.incinerator.name = Deginimo krosnis block.incinerator.name = Deginimo krosnis
block.spore-press.name = Sporų Presas block.spore-press.name = Sporų Presas
@@ -1199,7 +1199,7 @@ block.kiln.description = Sulydo smėlį ir stiklą į junginį žinomą kaip met
block.plastanium-compressor.description = Gamina plastaniumą iš naftos ir titano. block.plastanium-compressor.description = Gamina plastaniumą iš naftos ir titano.
block.phase-weaver.description = Susintetina fazinį audinį iš radioaktyvaus torio ir smėlio. Veikimui reikalingas didžiulis kiekis energijos. block.phase-weaver.description = Susintetina fazinį audinį iš radioaktyvaus torio ir smėlio. Veikimui reikalingas didžiulis kiekis energijos.
block.alloy-smelter.description = Sumaišo titaną, šviną, silicį ir varį į viršįtampį lydinį. block.alloy-smelter.description = Sumaišo titaną, šviną, silicį ir varį į viršįtampį lydinį.
block.cryofluidmixer.description = Maišo vandenį ir smulkias titano dulkes į krio skystį. Būtinas torio reaktoriaus naudojimui. block.cryofluid-mixer.description = Maišo vandenį ir smulkias titano dulkes į krio skystį. Būtinas torio reaktoriaus naudojimui.
block.blast-mixer.description = Susmulkina ir sumaišo sporas su piratitu ir pagamina sprogųjį junginį. block.blast-mixer.description = Susmulkina ir sumaišo sporas su piratitu ir pagamina sprogųjį junginį.
block.pyratite-mixer.description = Sumaišo anglį, šviną ir smėlį į itin degų piratitą. block.pyratite-mixer.description = Sumaišo anglį, šviną ir smėlį į itin degų piratitą.
block.melter.description = Išlydo metalo laužą į šlaką tolesniam apdorojimui arba naudojimui wave bokštuose. block.melter.description = Išlydo metalo laužą į šlaką tolesniam apdorojimui arba naudojimui wave bokštuose.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Siliciumsmelter block.silicon-smelter.name = Siliciumsmelter
block.phase-weaver.name = Phase Weaver block.phase-weaver.name = Phase Weaver
block.pulverizer.name = Vermorzelaar block.pulverizer.name = Vermorzelaar
block.cryofluidmixer.name = Cryofluid Mixer block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Smelter block.melter.name = Smelter
block.incinerator.name = Verbrandingsoven block.incinerator.name = Verbrandingsoven
block.spore-press.name = Schimmelpers block.spore-press.name = Schimmelpers
@@ -1199,7 +1199,7 @@ block.kiln.description = Smelts sand and lead into metaglass. Requires small amo
block.plastanium-compressor.description = Produces plastanium from oil and titanium. block.plastanium-compressor.description = Produces plastanium from oil and titanium.
block.phase-weaver.description = Produces phase fabric from radioactive thorium and high amounts of sand. block.phase-weaver.description = Produces phase fabric from radioactive thorium and high amounts of sand.
block.alloy-smelter.description = Produces surge alloy from titanium, lead, silicon and copper. block.alloy-smelter.description = Produces surge alloy from titanium, lead, silicon and copper.
block.cryofluidmixer.description = Combines water and titanium into cryofluid which is much more efficient for cooling. block.cryofluid-mixer.description = Combines water and titanium into cryofluid which is much more efficient for cooling.
block.blast-mixer.description = Uses oil for transforming pyratite into the less flammable but more explosive blast compound. block.blast-mixer.description = Uses oil for transforming pyratite into the less flammable but more explosive blast compound.
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite. block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
block.melter.description = Melts down scrap into slag for further processing or usage in turrets. block.melter.description = Melts down scrap into slag for further processing or usage in turrets.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow 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
block.pulverizer.name = Pulverizer block.pulverizer.name = Pulverizer
block.cryofluidmixer.name = Cryofluid Mixer block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Melter block.melter.name = Melter
block.incinerator.name = Incinerator block.incinerator.name = Incinerator
block.spore-press.name = Spore Press block.spore-press.name = Spore Press
@@ -1199,7 +1199,7 @@ block.kiln.description = Smelts sand and lead into metaglass. Requires small amo
block.plastanium-compressor.description = Produces plastanium from oil and titanium. block.plastanium-compressor.description = Produces plastanium from oil and titanium.
block.phase-weaver.description = Produces phase fabric from radioactive thorium and high amounts of sand. block.phase-weaver.description = Produces phase fabric from radioactive thorium and high amounts of sand.
block.alloy-smelter.description = Produces surge alloy from titanium, lead, silicon and copper. block.alloy-smelter.description = Produces surge alloy from titanium, lead, silicon and copper.
block.cryofluidmixer.description = Combines water and titanium into cryofluid which is much more efficient for cooling. block.cryofluid-mixer.description = Combines water and titanium into cryofluid which is much more efficient for cooling.
block.blast-mixer.description = Uses oil for transforming pyratite into the less flammable but more explosive blast compound. block.blast-mixer.description = Uses oil for transforming pyratite into the less flammable but more explosive blast compound.
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite. block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
block.melter.description = Melts down scrap into slag for further processing or usage in turrets. block.melter.description = Melts down scrap into slag for further processing or usage in turrets.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Brama Niedomiaru
block.silicon-smelter.name = Huta Krzemu block.silicon-smelter.name = Huta Krzemu
block.phase-weaver.name = Fazowa Fabryka block.phase-weaver.name = Fazowa Fabryka
block.pulverizer.name = Rozkruszacz block.pulverizer.name = Rozkruszacz
block.cryofluidmixer.name = Mieszacz Lodocieczy block.cryofluid-mixer.name = Mieszacz Lodocieczy
block.melter.name = Przetapiacz block.melter.name = Przetapiacz
block.incinerator.name = Spalacz block.incinerator.name = Spalacz
block.spore-press.name = Prasa Zarodników block.spore-press.name = Prasa Zarodników
@@ -1199,7 +1199,7 @@ block.kiln.description = Stapia ołów i piasek na metaszkło. Wymaga małej ilo
block.plastanium-compressor.description = Wytwarza plastan z oleju i tytanu. block.plastanium-compressor.description = Wytwarza plastan z oleju i tytanu.
block.phase-weaver.description = Produkuje Włókna Fazowe z radioaktywnego toru i dużych ilości piasku. block.phase-weaver.description = Produkuje Włókna Fazowe z radioaktywnego toru i dużych ilości piasku.
block.alloy-smelter.description = Produkuje stop Elektrum z tytanu, ołowiu, krzemu i miedzi. block.alloy-smelter.description = Produkuje stop Elektrum z tytanu, ołowiu, krzemu i miedzi.
block.cryofluidmixer.description = Łączy wodę i tytan w lodociecz, który jest znacznie bardziej wydajny w chłodzeniu niż woda. block.cryofluid-mixer.description = Łączy wodę i tytan w lodociecz, który jest znacznie bardziej wydajny w chłodzeniu niż woda.
block.blast-mixer.description = Kruszy i miesza skupiska zarodników z piratytem, tworząc związek wybuchowy. block.blast-mixer.description = Kruszy i miesza skupiska zarodników z piratytem, tworząc związek wybuchowy.
block.pyratite-mixer.description = Miesza węgiel, ołów i piasek tworząc bardzo łatwopalny piratian. block.pyratite-mixer.description = Miesza węgiel, ołów i piasek tworząc bardzo łatwopalny piratian.
block.melter.description = Przetapia złom na żużel do dalszego przetwarzania lub użycia w wieżyczkach block.melter.description = Przetapia złom na żużel do dalszego przetwarzania lub użycia w wieżyczkach

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Comporta invertida
block.silicon-smelter.name = Fundidora de silicio block.silicon-smelter.name = Fundidora de silicio
block.phase-weaver.name = Palheta de fase block.phase-weaver.name = Palheta de fase
block.pulverizer.name = Pulverizador block.pulverizer.name = Pulverizador
block.cryofluidmixer.name = Misturador de Crio Fluido block.cryofluid-mixer.name = Misturador de Crio Fluido
block.melter.name = Aparelho de fusão block.melter.name = Aparelho de fusão
block.incinerator.name = Incinerador block.incinerator.name = Incinerador
block.spore-press.name = Prensa de Esporo block.spore-press.name = Prensa de Esporo
@@ -1199,7 +1199,7 @@ block.kiln.description = Derrete chumbo e areia no composto conhecido como metav
block.plastanium-compressor.description = Produz plastânio usando petróleo e titânio. block.plastanium-compressor.description = Produz plastânio usando petróleo e titânio.
block.phase-weaver.description = Produz tecido de fase usando tório radioativo e areia. Requer massivas quantidades de energia para funcionar. block.phase-weaver.description = Produz tecido de fase usando tório radioativo e areia. Requer massivas quantidades de energia para funcionar.
block.alloy-smelter.description = Combina titânio, chumbo, silicio e cobre para produzir liga de surto. block.alloy-smelter.description = Combina titânio, chumbo, silicio e cobre para produzir liga de surto.
block.cryofluidmixer.description = Mistura água e pó fino de titânio para produzir criofluido. Essencial para o uso do reator a tório. block.cryofluid-mixer.description = Mistura água e pó fino de titânio para produzir criofluido. Essencial para o uso do reator a tório.
block.blast-mixer.description = Quebra e mistura aglomerados de esporos com piratita para produzir composto de explosão. block.blast-mixer.description = Quebra e mistura aglomerados de esporos com piratita para produzir composto de explosão.
block.pyratite-mixer.description = Mistura carvão, chumbo e areia em piratita altamente inflamável. block.pyratite-mixer.description = Mistura carvão, chumbo e areia em piratita altamente inflamável.
block.melter.description = Derrete sucata em escória para processamento posterior ou uso em torretas. block.melter.description = Derrete sucata em escória para processamento posterior ou uso em torretas.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Portão Desobrecarregado
block.silicon-smelter.name = Fundidora de silicio block.silicon-smelter.name = Fundidora de silicio
block.phase-weaver.name = Palheta de fase block.phase-weaver.name = Palheta de fase
block.pulverizer.name = Pulverizador block.pulverizer.name = Pulverizador
block.cryofluidmixer.name = Misturador de Crio Fluido block.cryofluid-mixer.name = Misturador de Crio Fluido
block.melter.name = Aparelho de fusão block.melter.name = Aparelho de fusão
block.incinerator.name = Incinerador block.incinerator.name = Incinerador
block.spore-press.name = Prensa de Esporo block.spore-press.name = Prensa de Esporo
@@ -1199,7 +1199,7 @@ block.kiln.description = Derrete chumbo e areia no composto conhecido como metav
block.plastanium-compressor.description = Produz plastânio usando petróleo e titânio. block.plastanium-compressor.description = Produz plastânio usando petróleo e titânio.
block.phase-weaver.description = Produz tecido de fase usando tório radioativo e areia. Requer massivas quantidades de energia para funcionar. block.phase-weaver.description = Produz tecido de fase usando tório radioativo e areia. Requer massivas quantidades de energia para funcionar.
block.alloy-smelter.description = Combina titânio, chumbo, silicio e cobre para produzir liga de surto. block.alloy-smelter.description = Combina titânio, chumbo, silicio e cobre para produzir liga de surto.
block.cryofluidmixer.description = Mistura água e pó fino de titânio para produzir criofluido. Essencial para o uso do reator a tório. block.cryofluid-mixer.description = Mistura água e pó fino de titânio para produzir criofluido. Essencial para o uso do reator a tório.
block.blast-mixer.description = Quebra e mistura aglomerados de esporos com piratita para produzir composto de explosão. block.blast-mixer.description = Quebra e mistura aglomerados de esporos com piratita para produzir composto de explosão.
block.pyratite-mixer.description = Mistura carvão, chumbo e areia em piratita altamente inflamável block.pyratite-mixer.description = Mistura carvão, chumbo e areia em piratita altamente inflamável
block.melter.description = Derrete sucata em escória para processamento posterior ou uso em torretas. block.melter.description = Derrete sucata em escória para processamento posterior ou uso em torretas.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Poartă de Subversare
block.silicon-smelter.name = Topitor de Silicon block.silicon-smelter.name = Topitor de Silicon
block.phase-weaver.name = Țesătorie de Fază block.phase-weaver.name = Țesătorie de Fază
block.pulverizer.name = Pulverizator block.pulverizer.name = Pulverizator
block.cryofluidmixer.name = Mixer de Criofluid block.cryofluid-mixer.name = Mixer de Criofluid
block.melter.name = Topitor block.melter.name = Topitor
block.incinerator.name = Incinerator block.incinerator.name = Incinerator
block.spore-press.name = Presă de Spori block.spore-press.name = Presă de Spori
@@ -1199,7 +1199,7 @@ block.kiln.description = Toarnă nisip și plumb în compusul numit metasticlă.
block.plastanium-compressor.description = Produce plastaniu din petrol și titan. block.plastanium-compressor.description = Produce plastaniu din petrol și titan.
block.phase-weaver.description = Sintetizează fibră-fază din toriu radioactiv și nisip. Necesită electricitate pt a funcționa. block.phase-weaver.description = Sintetizează fibră-fază din toriu radioactiv și nisip. Necesită electricitate pt a funcționa.
block.alloy-smelter.description = Combină titan, plumb, silicon și cupru pt a produce supra aliaj. block.alloy-smelter.description = Combină titan, plumb, silicon și cupru pt a produce supra aliaj.
block.cryofluidmixer.description = Amestecă apă și pudră fină de titan în criofluid. Esențial pt folosirea în reactoarele de toriu. block.cryofluid-mixer.description = Amestecă apă și pudră fină de titan în criofluid. Esențial pt folosirea în reactoarele de toriu.
block.blast-mixer.description = Zdrobește și amestecă gramezi de spori cu piratită pt a produce un compus explozibil. block.blast-mixer.description = Zdrobește și amestecă gramezi de spori cu piratită pt a produce un compus explozibil.
block.pyratite-mixer.description = Amestecă niște cărbune, plumb și nisip în inflamabila piratită. block.pyratite-mixer.description = Amestecă niște cărbune, plumb și nisip în inflamabila piratită.
block.melter.description = Topește fierul vechi în zgură pt procesare ulterioară sau folosire în armele Wave. block.melter.description = Topește fierul vechi în zgură pt procesare ulterioară sau folosire în armele Wave.

View File

@@ -1054,7 +1054,7 @@ block.underflow-gate.name = Избыточный шлюз
block.silicon-smelter.name = Кремниевая плавильня block.silicon-smelter.name = Кремниевая плавильня
block.phase-weaver.name = Фазовый ткач block.phase-weaver.name = Фазовый ткач
block.pulverizer.name = Измельчитель block.pulverizer.name = Измельчитель
block.cryofluidmixer.name = Мешалка криогенной жидкости block.cryofluid-mixer.name = Мешалка криогенной жидкости
block.melter.name = Плавильня block.melter.name = Плавильня
block.incinerator.name = Мусоросжигатель block.incinerator.name = Мусоросжигатель
block.spore-press.name = Споровый пресс block.spore-press.name = Споровый пресс
@@ -1211,7 +1211,7 @@ block.kiln.description = Выплавляет песок и свинец в со
block.plastanium-compressor.description = Производит пластан из нефти и титана. block.plastanium-compressor.description = Производит пластан из нефти и титана.
block.phase-weaver.description = Синтезирует фазовую ткань из радиоактивного тория и песка. Требуется огромное количество энергии для работы. block.phase-weaver.description = Синтезирует фазовую ткань из радиоактивного тория и песка. Требуется огромное количество энергии для работы.
block.alloy-smelter.description = Объединяет титан, свинец, кремний и медь для производства кинетического сплава. block.alloy-smelter.description = Объединяет титан, свинец, кремний и медь для производства кинетического сплава.
block.cryofluidmixer.description = Смешивает воду и мелкий титановый порошок в криогенную жидкость. Неотъемлемая часть при использования ториевого реактора block.cryofluid-mixer.description = Смешивает воду и мелкий титановый порошок в криогенную жидкость. Неотъемлемая часть при использования ториевого реактора
block.blast-mixer.description = Раздавливает и смешивает скопления спор с пиротитом для получения взрывчатого вещества. block.blast-mixer.description = Раздавливает и смешивает скопления спор с пиротитом для получения взрывчатого вещества.
block.pyratite-mixer.description = Смешивает уголь, свинец и песок в легковоспламеняющийся пиротит. block.pyratite-mixer.description = Смешивает уголь, свинец и песок в легковоспламеняющийся пиротит.
block.melter.description = Плавит металлолом в шлак для дальнейшей обработки или использования в турелях «Волна». block.melter.description = Плавит металлолом в шлак для дальнейшей обработки или использования в турелях «Волна».

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Kiselsmältare block.silicon-smelter.name = Kiselsmältare
block.phase-weaver.name = Phase Weaver block.phase-weaver.name = Phase Weaver
block.pulverizer.name = Pulveriserare block.pulverizer.name = Pulveriserare
block.cryofluidmixer.name = Cryofluid Mixer block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Smältare block.melter.name = Smältare
block.incinerator.name = Förbrännare block.incinerator.name = Förbrännare
block.spore-press.name = Spore Press block.spore-press.name = Spore Press
@@ -1199,7 +1199,7 @@ block.kiln.description = Smelts sand and lead into the compound known as metagla
block.plastanium-compressor.description = Produces plastanium from oil and titanium. block.plastanium-compressor.description = Produces plastanium from oil and titanium.
block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function. block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function.
block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy. block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy.
block.cryofluidmixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage. block.cryofluid-mixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage.
block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound. block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound.
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite. block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets. block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = เตาเผาซิลิกอน block.silicon-smelter.name = เตาเผาซิลิกอน
block.phase-weaver.name = เครื่องทอใยเฟส block.phase-weaver.name = เครื่องทอใยเฟส
block.pulverizer.name = เครื่องบด block.pulverizer.name = เครื่องบด
block.cryofluidmixer.name = เครื่องผสมสารหล่อเย็น block.cryofluid-mixer.name = เครื่องผสมสารหล่อเย็น
block.melter.name = เตาหลอม block.melter.name = เตาหลอม
block.incinerator.name = เตาเผาขยะ block.incinerator.name = เตาเผาขยะ
block.spore-press.name = เครื่องอัดสปอร์ block.spore-press.name = เครื่องอัดสปอร์
@@ -1199,7 +1199,7 @@ block.kiln.description = เผาทรายและตะกั่วเป
block.plastanium-compressor.description = ผลิตพลาสตาเนี่ยมจากน้ำมันและไทเทเนี่ยม. block.plastanium-compressor.description = ผลิตพลาสตาเนี่ยมจากน้ำมันและไทเทเนี่ยม.
block.phase-weaver.description = สังเคราะห์ใยเฟสจากทอเรี่ยมที่มีรังสีและทราย. จำเป็นต้องใช้พลังงานจำนวนมากจึงจะทำงานง. block.phase-weaver.description = สังเคราะห์ใยเฟสจากทอเรี่ยมที่มีรังสีและทราย. จำเป็นต้องใช้พลังงานจำนวนมากจึงจะทำงานง.
block.alloy-smelter.description = ผสมไทเทเนี่ยม, ตะกั่ว, ซิลิก้อนและทองแดงเพื่อที่จะผลิตเซิร์จอัลลอย. block.alloy-smelter.description = ผสมไทเทเนี่ยม, ตะกั่ว, ซิลิก้อนและทองแดงเพื่อที่จะผลิตเซิร์จอัลลอย.
block.cryofluidmixer.description = ผสมน้ำและผงไทเทเนี่ยมบริสุทธิ์เป็นไครโยฟลูอิด. สำคัญสำหรับเตาปฏิกรณ์ทอเรี่ยม. block.cryofluid-mixer.description = ผสมน้ำและผงไทเทเนี่ยมบริสุทธิ์เป็นไครโยฟลูอิด. สำคัญสำหรับเตาปฏิกรณ์ทอเรี่ยม.
block.blast-mixer.description = บอและผสมสปอร์กับไพไรต์เพื่อผลิตสารประกอบระเบิด. block.blast-mixer.description = บอและผสมสปอร์กับไพไรต์เพื่อผลิตสารประกอบระเบิด.
block.pyratite-mixer.description = ผสมถ่านหิน, ตะกั่วและทรายเข้าด้วยกันเป็นไฟไรต์ที่ติดไฟได้ง่าย. block.pyratite-mixer.description = ผสมถ่านหิน, ตะกั่วและทรายเข้าด้วยกันเป็นไฟไรต์ที่ติดไฟได้ง่าย.
block.melter.description = หลอมเศษเหล็กเป็กกากแร่เพื่อใช้สำหรับกระบวนการต่อไปหรือใช้ในป้อมปืนเวฟ. block.melter.description = หลอมเศษเหล็กเป็กกากแร่เพื่อใช้สำหรับกระบวนการต่อไปหรือใช้ในป้อมปืนเวฟ.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Silikon eritici block.silicon-smelter.name = Silikon eritici
block.phase-weaver.name = Dokumaci block.phase-weaver.name = Dokumaci
block.pulverizer.name = pulvarizor block.pulverizer.name = pulvarizor
block.cryofluidmixer.name = Cryosivisi karistiricisi block.cryofluid-mixer.name = Cryosivisi karistiricisi
block.melter.name = eritici block.melter.name = eritici
block.incinerator.name = isi firini block.incinerator.name = isi firini
block.spore-press.name = Spore Press block.spore-press.name = Spore Press
@@ -1199,7 +1199,7 @@ block.kiln.description = Smelts sand and lead into metaglass. Requires small amo
block.plastanium-compressor.description = Produces plastanium from oil and titanium. block.plastanium-compressor.description = Produces plastanium from oil and titanium.
block.phase-weaver.description = Produces phase fabric from radioactive thorium and high amounts of sand. block.phase-weaver.description = Produces phase fabric from radioactive thorium and high amounts of sand.
block.alloy-smelter.description = Produces surge alloy from titanium, lead, silicon and copper. block.alloy-smelter.description = Produces surge alloy from titanium, lead, silicon and copper.
block.cryofluidmixer.description = Combines water and titanium into cryofluid which is much more efficient for cooling. block.cryofluid-mixer.description = Combines water and titanium into cryofluid which is much more efficient for cooling.
block.blast-mixer.description = Uses oil for transforming pyratite into the less flammable but more explosive blast compound. block.blast-mixer.description = Uses oil for transforming pyratite into the less flammable but more explosive blast compound.
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite. block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
block.melter.description = Heats up stone to very high temperatures to obtain lava. block.melter.description = Heats up stone to very high temperatures to obtain lava.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Silikon Fırını block.silicon-smelter.name = Silikon Fırını
block.phase-weaver.name = Faz Örücü block.phase-weaver.name = Faz Örücü
block.pulverizer.name = Pulverizatör block.pulverizer.name = Pulverizatör
block.cryofluidmixer.name = Kriyosıvı Mikseri block.cryofluid-mixer.name = Kriyosıvı Mikseri
block.melter.name = Eritici block.melter.name = Eritici
block.incinerator.name = Yakıcı block.incinerator.name = Yakıcı
block.spore-press.name = Spor Presi block.spore-press.name = Spor Presi
@@ -1199,7 +1199,7 @@ block.kiln.description = Kum ve kurşunu eritir ve metacam olarak bilinen malzem
block.plastanium-compressor.description = Petrol ve titanyumdan plastanyum üretir. block.plastanium-compressor.description = Petrol ve titanyumdan plastanyum üretir.
block.phase-weaver.description = Kum ve radyoaktif toryumdan faz örgüsü üretir. Çalışması için çok miktarda enerji gerekir. block.phase-weaver.description = Kum ve radyoaktif toryumdan faz örgüsü üretir. Çalışması için çok miktarda enerji gerekir.
block.alloy-smelter.description = Akı alaşımı üretmek için titanyum, kurşun, silikon ve bakırı birleştirir. block.alloy-smelter.description = Akı alaşımı üretmek için titanyum, kurşun, silikon ve bakırı birleştirir.
block.cryofluidmixer.description = Su ve titanyum tozunu karıştırıp kriyosıvı üretir. Toryum reaktörü kullanımı için gereklidir. block.cryofluid-mixer.description = Su ve titanyum tozunu karıştırıp kriyosıvı üretir. Toryum reaktörü kullanımı için gereklidir.
block.blast-mixer.description = Patlayıcı bileşen üretmek için spor kapsüllerini pirratit ile ezer ve karıştırır. block.blast-mixer.description = Patlayıcı bileşen üretmek için spor kapsüllerini pirratit ile ezer ve karıştırır.
block.pyratite-mixer.description = Kömür, kurşun ve kumu karıştırıp oldukça yanıcı olan pirratit üretir. block.pyratite-mixer.description = Kömür, kurşun ve kumu karıştırıp oldukça yanıcı olan pirratit üretir.
block.melter.description = Wave taretlerinde kullanılması veya daha çok işlemesi için hurdayı eritip cürufa çevirir. block.melter.description = Wave taretlerinde kullanılması veya daha çok işlemesi için hurdayı eritip cürufa çevirir.

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Недостатній затвор
block.silicon-smelter.name = Кремнієвий плавильний завод block.silicon-smelter.name = Кремнієвий плавильний завод
block.phase-weaver.name = Фазовий ткач block.phase-weaver.name = Фазовий ткач
block.pulverizer.name = Подрібнювач block.pulverizer.name = Подрібнювач
block.cryofluidmixer.name = Змішувач кріогенної рідини block.cryofluid-mixer.name = Змішувач кріогенної рідини
block.melter.name = Плавильня block.melter.name = Плавильня
block.incinerator.name = Сміттєспалювальний завод block.incinerator.name = Сміттєспалювальний завод
block.spore-press.name = Споровий прес block.spore-press.name = Споровий прес
@@ -1199,7 +1199,7 @@ block.kiln.description = Виплавляє пісок та свинець у с
block.plastanium-compressor.description = Виробляє пластаній із нафти та титану. block.plastanium-compressor.description = Виробляє пластаній із нафти та титану.
block.phase-weaver.description = Синтезує фазову тканину з радіоактивного торію та піску. Для роботи потрібна велика кількість енергії. block.phase-weaver.description = Синтезує фазову тканину з радіоактивного торію та піску. Для роботи потрібна велика кількість енергії.
block.alloy-smelter.description = Поєднує титан, свинець, кремній і мідь для отримання кінетичного сплаву. block.alloy-smelter.description = Поєднує титан, свинець, кремній і мідь для отримання кінетичного сплаву.
block.cryofluidmixer.description = Змішує воду і дрібний порошок титану в кріогенну рідину. Основне використання в торієвому реактору. block.cryofluid-mixer.description = Змішує воду і дрібний порошок титану в кріогенну рідину. Основне використання в торієвому реактору.
block.blast-mixer.description = Подрібнює і змішує скупчення спор із піротитом для отримання вибухової суміші. block.blast-mixer.description = Подрібнює і змішує скупчення спор із піротитом для отримання вибухової суміші.
block.pyratite-mixer.description = Змішує вугілля, свинець та пісок у легкозаймистий піротит. block.pyratite-mixer.description = Змішує вугілля, свинець та пісок у легкозаймистий піротит.
block.melter.description = Розплавляє брухт у шлак для подальшого перероблювання, або використання в баштах «Хвиля». block.melter.description = Розплавляє брухт у шлак для подальшого перероблювання, або використання в баштах «Хвиля».

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = 反向溢流门
block.silicon-smelter.name = 硅冶炼厂 block.silicon-smelter.name = 硅冶炼厂
block.phase-weaver.name = 相织物编织器 block.phase-weaver.name = 相织物编织器
block.pulverizer.name = 粉碎机 block.pulverizer.name = 粉碎机
block.cryofluidmixer.name = 冷冻液混合器 block.cryofluid-mixer.name = 冷冻液混合器
block.melter.name = 熔炉 block.melter.name = 熔炉
block.incinerator.name = 焚化炉 block.incinerator.name = 焚化炉
block.spore-press.name = 孢子压缩机 block.spore-press.name = 孢子压缩机
@@ -1199,7 +1199,7 @@ block.kiln.description = 将铅和沙子熔炼成钢化玻璃,需要少量电
block.plastanium-compressor.description = 用石油和钛生产塑钢。 block.plastanium-compressor.description = 用石油和钛生产塑钢。
block.phase-weaver.description = 用放射性钍和大量沙子生产相织物。 block.phase-weaver.description = 用放射性钍和大量沙子生产相织物。
block.alloy-smelter.description = 用钛、铅、硅和铜生产巨浪合金。 block.alloy-smelter.description = 用钛、铅、硅和铜生产巨浪合金。
block.cryofluidmixer.description = 将水和细的钛粉混成冷却液。钍反应堆的必备之物。 block.cryofluid-mixer.description = 将水和细的钛粉混成冷却液。钍反应堆的必备之物。
block.blast-mixer.description = 用油料将硫转化为不易燃但更具爆炸性的爆炸化合物。 block.blast-mixer.description = 用油料将硫转化为不易燃但更具爆炸性的爆炸化合物。
block.pyratite-mixer.description = 将煤、铅和沙子混合成高度易燃的硫。 block.pyratite-mixer.description = 将煤、铅和沙子混合成高度易燃的硫。
block.melter.description = 将废料熔化成矿渣,以便进一步加工或用于炮塔弹药。 block.melter.description = 将废料熔化成矿渣,以便进一步加工或用于炮塔弹药。

View File

@@ -1043,7 +1043,7 @@ block.underflow-gate.name = 反向溢流器
block.silicon-smelter.name = 煉矽廠 block.silicon-smelter.name = 煉矽廠
block.phase-weaver.name = 相織布編織器 block.phase-weaver.name = 相織布編織器
block.pulverizer.name = 粉碎機 block.pulverizer.name = 粉碎機
block.cryofluidmixer.name = 冷凍液混合器 block.cryofluid-mixer.name = 冷凍液混合器
block.melter.name = 熔爐 block.melter.name = 熔爐
block.incinerator.name = 焚化爐 block.incinerator.name = 焚化爐
block.spore-press.name = 孢子壓縮機 block.spore-press.name = 孢子壓縮機
@@ -1199,7 +1199,7 @@ block.kiln.description = 將沙子和鉛熔煉成鋼化玻璃。需要少量能
block.plastanium-compressor.description = 將原油和鈦壓縮製造塑鋼。 block.plastanium-compressor.description = 將原油和鈦壓縮製造塑鋼。
block.phase-weaver.description = 使用放射性的釷和大量的沙子生產相織布。需要巨量能量。 block.phase-weaver.description = 使用放射性的釷和大量的沙子生產相織布。需要巨量能量。
block.alloy-smelter.description = 使用鈦、鉛、矽和銅以生產波動合金。 block.alloy-smelter.description = 使用鈦、鉛、矽和銅以生產波動合金。
block.cryofluidmixer.description = 混合水和研磨的鈦粉製造冷卻效率更高的冷凍液。對釷反應堆是必要的。 block.cryofluid-mixer.description = 混合水和研磨的鈦粉製造冷卻效率更高的冷凍液。對釷反應堆是必要的。
block.blast-mixer.description = 混合胞子碎塊將火焰彈變成比較不易燃但更具爆炸性的爆炸混合物。 block.blast-mixer.description = 混合胞子碎塊將火焰彈變成比較不易燃但更具爆炸性的爆炸混合物。
block.pyratite-mixer.description = 混合煤、鉛和沙子混合成為易燃的火焰彈。 block.pyratite-mixer.description = 混合煤、鉛和沙子混合成為易燃的火焰彈。
block.melter.description = 將廢料加熱到很高的溫度產生熔渣,用於進一步製程或波浪炮。 block.melter.description = 將廢料加熱到很高的溫度產生熔渣,用於進一步製程或波浪炮。

View File

@@ -94,3 +94,4 @@ The Slaylord
ThePlayerA ThePlayerA
YellOw139 YellOw139
PetrGasparik PetrGasparik
LeoDog896

View File

@@ -62,7 +62,7 @@
63674=plastanium-compressor|block-plastanium-compressor-medium 63674=plastanium-compressor|block-plastanium-compressor-medium
63673=phase-weaver|block-phase-weaver-medium 63673=phase-weaver|block-phase-weaver-medium
63672=alloy-smelter|block-alloy-smelter-medium 63672=alloy-smelter|block-alloy-smelter-medium
63671=cryofluidmixer|block-cryofluidmixer-medium 63671=cryofluid-mixer|block-cryofluid-mixer-medium
63670=blast-mixer|block-blast-mixer-medium 63670=blast-mixer|block-blast-mixer-medium
63669=pyratite-mixer|block-pyratite-mixer-medium 63669=pyratite-mixer|block-pyratite-mixer-medium
63668=melter|block-melter-medium 63668=melter|block-melter-medium
@@ -311,3 +311,5 @@
63425=vela|unit-vela-medium 63425=vela|unit-vela-medium
63424=corvus|unit-corvus-medium 63424=corvus|unit-corvus-medium
63423=memory-bank|block-memory-bank-medium 63423=memory-bank|block-memory-bank-medium
63422=foreshadow|block-foreshadow-medium
63421=tsunami|block-tsunami-medium

Binary file not shown.

View File

@@ -108,7 +108,6 @@ importPackage(Packages.mindustry.world.draw)
importPackage(Packages.mindustry.world.meta) importPackage(Packages.mindustry.world.meta)
importPackage(Packages.mindustry.world.meta.values) importPackage(Packages.mindustry.world.meta.values)
importPackage(Packages.mindustry.world.modules) importPackage(Packages.mindustry.world.modules)
importPackage(Packages.mindustry.world.producers)
const PlayerIpUnbanEvent = Packages.mindustry.game.EventType.PlayerIpUnbanEvent const PlayerIpUnbanEvent = Packages.mindustry.game.EventType.PlayerIpUnbanEvent
const PlayerIpBanEvent = Packages.mindustry.game.EventType.PlayerIpBanEvent const PlayerIpBanEvent = Packages.mindustry.game.EventType.PlayerIpBanEvent
const PlayerUnbanEvent = Packages.mindustry.game.EventType.PlayerUnbanEvent const PlayerUnbanEvent = Packages.mindustry.game.EventType.PlayerUnbanEvent
@@ -118,6 +117,7 @@ const PlayerConnect = Packages.mindustry.game.EventType.PlayerConnect
const PlayerJoin = Packages.mindustry.game.EventType.PlayerJoin const PlayerJoin = Packages.mindustry.game.EventType.PlayerJoin
const UnitChangeEvent = Packages.mindustry.game.EventType.UnitChangeEvent const UnitChangeEvent = Packages.mindustry.game.EventType.UnitChangeEvent
const UnitCreateEvent = Packages.mindustry.game.EventType.UnitCreateEvent const UnitCreateEvent = Packages.mindustry.game.EventType.UnitCreateEvent
const UnitDrownEvent = Packages.mindustry.game.EventType.UnitDrownEvent
const UnitDestroyEvent = Packages.mindustry.game.EventType.UnitDestroyEvent const UnitDestroyEvent = Packages.mindustry.game.EventType.UnitDestroyEvent
const BlockDestroyEvent = Packages.mindustry.game.EventType.BlockDestroyEvent const BlockDestroyEvent = Packages.mindustry.game.EventType.BlockDestroyEvent
const BuildSelectEvent = Packages.mindustry.game.EventType.BuildSelectEvent const BuildSelectEvent = Packages.mindustry.game.EventType.BuildSelectEvent
@@ -128,6 +128,7 @@ const UnlockEvent = Packages.mindustry.game.EventType.UnlockEvent
const StateChangeEvent = Packages.mindustry.game.EventType.StateChangeEvent const StateChangeEvent = Packages.mindustry.game.EventType.StateChangeEvent
const TileChangeEvent = Packages.mindustry.game.EventType.TileChangeEvent const TileChangeEvent = Packages.mindustry.game.EventType.TileChangeEvent
const GameOverEvent = Packages.mindustry.game.EventType.GameOverEvent const GameOverEvent = Packages.mindustry.game.EventType.GameOverEvent
const TapEvent = Packages.mindustry.game.EventType.TapEvent
const ConfigEvent = Packages.mindustry.game.EventType.ConfigEvent const ConfigEvent = Packages.mindustry.game.EventType.ConfigEvent
const DepositEvent = Packages.mindustry.game.EventType.DepositEvent const DepositEvent = Packages.mindustry.game.EventType.DepositEvent
const WithdrawEvent = Packages.mindustry.game.EventType.WithdrawEvent const WithdrawEvent = Packages.mindustry.game.EventType.WithdrawEvent

Binary file not shown.

Before

Width:  |  Height:  |  Size: 812 B

After

Width:  |  Height:  |  Size: 819 B

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 968 KiB

After

Width:  |  Height:  |  Size: 917 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 KiB

After

Width:  |  Height:  |  Size: 562 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 KiB

After

Width:  |  Height:  |  Size: 428 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 KiB

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

View File

@@ -6,7 +6,7 @@ import arc.struct.*;
import arc.util.*; import arc.util.*;
import mindustry.world.*; import mindustry.world.*;
import static mindustry.Vars.world; import static mindustry.Vars.*;
public class Astar{ public class Astar{
public static final DistanceHeuristic manhattan = (x1, y1, x2, y2) -> Math.abs(x1 - x2) + Math.abs(y1 - y2); public static final DistanceHeuristic manhattan = (x1, y1, x2, y2) -> Math.abs(x1 - x2) + Math.abs(y1 - y2);

View File

@@ -3,7 +3,6 @@ package mindustry.ai;
import arc.*; import arc.*;
import arc.math.*; import arc.math.*;
import arc.struct.*; import arc.struct.*;
import arc.util.ArcAnnotate.*;
import arc.util.*; import arc.util.*;
import mindustry.ctype.*; import mindustry.ctype.*;
import mindustry.game.*; import mindustry.game.*;
@@ -17,7 +16,7 @@ import mindustry.world.meta.*;
import java.io.*; import java.io.*;
import static mindustry.Vars.tilesize; import static mindustry.Vars.*;
public class BaseRegistry{ public class BaseRegistry{
public Seq<BasePart> cores = new Seq<>(); public Seq<BasePart> cores = new Seq<>();

View File

@@ -6,7 +6,7 @@ import arc.math.*;
import arc.math.geom.*; import arc.math.geom.*;
import arc.struct.EnumSet; import arc.struct.EnumSet;
import arc.struct.*; import arc.struct.*;
import arc.util.ArcAnnotate.*; import arc.util.*;
import mindustry.content.*; import mindustry.content.*;
import mindustry.game.EventType.*; import mindustry.game.EventType.*;
import mindustry.game.*; import mindustry.game.*;
@@ -220,7 +220,7 @@ public class BlockIndexer{
public void notifyTileDamaged(Building entity){ public void notifyTileDamaged(Building entity){
if(damagedTiles[entity.team.id] == null){ if(damagedTiles[entity.team.id] == null){
damagedTiles[entity.team.id] = new ObjectSet<Building>(); damagedTiles[entity.team.id] = new ObjectSet<>();
} }
damagedTiles[entity.team.id].add(entity); damagedTiles[entity.team.id].add(entity);

View File

@@ -4,7 +4,6 @@ import arc.*;
import arc.func.*; import arc.func.*;
import arc.math.geom.*; import arc.math.geom.*;
import arc.struct.*; import arc.struct.*;
import arc.util.ArcAnnotate.*;
import arc.util.*; import arc.util.*;
import arc.util.async.*; import arc.util.async.*;
import mindustry.annotations.Annotations.*; import mindustry.annotations.Annotations.*;
@@ -51,7 +50,7 @@ public class Pathfinder implements Runnable{
(PathTile.solid(tile) ? 5 : 0), (PathTile.solid(tile) ? 5 : 0),
//water //water
(team, tile) -> PathTile.solid(tile) || !PathTile.liquid(tile) ? 200 : 2 + //TODO cannot go through blocks - pathfinding isn't great (team, tile) -> PathTile.solid(tile) || !PathTile.liquid(tile) ? 200 : 2 +
(PathTile.nearGround(tile) || PathTile.nearSolid(tile) ? 14 : 0) + (PathTile.nearGround(tile) || PathTile.nearSolid(tile) ? 14 : 0) +
(PathTile.deep(tile) ? -1 : 0) + (PathTile.deep(tile) ? -1 : 0) +
(PathTile.damages(tile) ? 35 : 0) (PathTile.damages(tile) ? 35 : 0)
@@ -103,7 +102,6 @@ public class Pathfinder implements Runnable{
/** Packs a tile into its internal representation. */ /** Packs a tile into its internal representation. */
private int packTile(Tile tile){ private int packTile(Tile tile){
//TODO nearGround is just the inverse of nearLiquid?
boolean nearLiquid = false, nearSolid = false, nearGround = false; boolean nearLiquid = false, nearSolid = false, nearGround = false;
for(int i = 0; i < 4; i++){ for(int i = 0; i < 4; i++){
@@ -188,6 +186,8 @@ public class Pathfinder implements Runnable{
for(Flowfield data : threadList){ for(Flowfield data : threadList){
updateFrontier(data, maxUpdate / threadList.size); updateFrontier(data, maxUpdate / threadList.size);
//TODO implement timeouts... or don't
/*
//remove flowfields that have 'timed out' so they can be garbage collected and no longer waste space //remove flowfields that have 'timed out' so they can be garbage collected and no longer waste space
if(data.refreshRate > 0 && Time.timeSinceMillis(data.lastUpdateTime) > fieldTimeout){ if(data.refreshRate > 0 && Time.timeSinceMillis(data.lastUpdateTime) > fieldTimeout){
//make sure it doesn't get removed twice //make sure it doesn't get removed twice
@@ -196,12 +196,11 @@ public class Pathfinder implements Runnable{
Team team = data.team; Team team = data.team;
Core.app.post(() -> { Core.app.post(() -> {
//TODO ?????
//remove its used state //remove its used state
//if(fieldMap[team.id] != null){ if(fieldMap[team.id] != null){
// fieldMap[team.id].remove(data.target); fieldMap[team.id].remove(data.target);
// fieldMapUsed[team.id].remove(data.target); fieldMapUsed[team.id].remove(data.target);
//} }
//remove from main thread list //remove from main thread list
mainList.remove(data); mainList.remove(data);
}); });
@@ -210,7 +209,7 @@ public class Pathfinder implements Runnable{
//remove from this thread list with a delay //remove from this thread list with a delay
threadList.remove(data); threadList.remove(data);
}); });
} }*/
} }
} }
@@ -469,7 +468,7 @@ public class Pathfinder implements Runnable{
/** search frontier, these are Pos objects */ /** search frontier, these are Pos objects */
IntQueue frontier = new IntQueue(); IntQueue frontier = new IntQueue();
/** all target positions; these positions have a cost of 0, and must be synchronized on! */ /** all target positions; these positions have a cost of 0, and must be synchronized on! */
IntSeq targets = new IntSeq(); final IntSeq targets = new IntSeq();
/** current search ID */ /** current search ID */
int search = 1; int search = 1;
/** last updated time */ /** last updated time */

View File

@@ -1,26 +0,0 @@
package mindustry.ai.formations.patterns;
import arc.math.geom.*;
import mindustry.ai.formations.*;
public class ArrowFormation extends FormationPattern{
//total triangular numbers
private static final int totalTris = 30;
//triangular number table
private static final int[] triTable = new int[totalTris];
//calculat triangular numbers
static{
int sum = 0;
for(int i = 0; i < totalTris; i++){
triTable[i] = sum;
sum += (i + 1);
}
}
@Override
public Vec3 calculateSlotLocation(Vec3 out, int slot){
//TODO
return out;
}
}

View File

@@ -1,7 +1,7 @@
package mindustry.ai.types; package mindustry.ai.types;
import arc.struct.*; import arc.struct.*;
import arc.util.ArcAnnotate.*; import arc.util.*;
import mindustry.entities.*; import mindustry.entities.*;
import mindustry.entities.units.*; import mindustry.entities.units.*;
import mindustry.game.Teams.*; import mindustry.game.Teams.*;
@@ -87,8 +87,8 @@ public class BuilderAI extends AIController{
} }
//find new request //find new request
if(!unit.team().data().blocks.isEmpty() && following == null && timer.get(timerTarget3, 60 * 2f)){ if(!unit.team.data().blocks.isEmpty() && following == null && timer.get(timerTarget3, 60 * 2f)){
Queue<BlockPlan> blocks = unit.team().data().blocks; Queue<BlockPlan> blocks = unit.team.data().blocks;
BlockPlan block = blocks.first(); BlockPlan block = blocks.first();
//check if it's already been placed //check if it's already been placed

View File

@@ -2,7 +2,7 @@ package mindustry.ai.types;
import arc.math.*; import arc.math.*;
import arc.math.geom.*; import arc.math.geom.*;
import arc.util.ArcAnnotate.*; import arc.util.*;
import mindustry.ai.formations.*; import mindustry.ai.formations.*;
import mindustry.entities.units.*; import mindustry.entities.units.*;
import mindustry.gen.*; import mindustry.gen.*;

View File

@@ -7,7 +7,7 @@ import mindustry.game.EventType.*;
import java.util.concurrent.*; import java.util.concurrent.*;
import static mindustry.Vars.state; import static mindustry.Vars.*;
public class AsyncCore{ public class AsyncCore{
//all processes to be executed each frame //all processes to be executed each frame

View File

@@ -5,8 +5,8 @@ import arc.math.geom.*;
import arc.math.geom.QuadTree.*; import arc.math.geom.QuadTree.*;
import arc.struct.*; import arc.struct.*;
import mindustry.*; import mindustry.*;
import mindustry.entities.*;
import mindustry.async.PhysicsProcess.PhysicsWorld.*; import mindustry.async.PhysicsProcess.PhysicsWorld.*;
import mindustry.entities.*;
import mindustry.gen.*; import mindustry.gen.*;
public class PhysicsProcess implements AsyncProcess{ public class PhysicsProcess implements AsyncProcess{

View File

@@ -30,11 +30,11 @@ public class TeamIndexProcess implements AsyncProcess{
} }
public void updateCount(Team team, UnitType type, int amount){ public void updateCount(Team team, UnitType type, int amount){
counts[team.id] += amount; counts[team.id] = Math.max(amount + counts[team.id], 0);
if(typeCounts[team.id].length <= type.id){ if(typeCounts[team.id].length <= type.id){
typeCounts[team.id] = new int[Vars.content.units().size]; typeCounts[team.id] = new int[Vars.content.units().size];
} }
typeCounts[team.id][type.id] += amount; typeCounts[team.id][type.id] = Math.max(amount + typeCounts[team.id][type.id], 0);
} }
private void count(Unit unit){ private void count(Unit unit){

View File

@@ -2,9 +2,9 @@ package mindustry.audio;
import arc.*; import arc.*;
import arc.audio.*; import arc.audio.*;
import arc.struct.*;
import arc.math.*; import arc.math.*;
import arc.math.geom.*; import arc.math.geom.*;
import arc.struct.*;
import mindustry.*; import mindustry.*;
public class LoopControl{ public class LoopControl{

View File

@@ -4,7 +4,6 @@ import arc.*;
import arc.audio.*; import arc.audio.*;
import arc.math.*; import arc.math.*;
import arc.struct.*; import arc.struct.*;
import arc.util.ArcAnnotate.*;
import arc.util.*; import arc.util.*;
import mindustry.game.EventType.*; import mindustry.game.EventType.*;
import mindustry.gen.*; import mindustry.gen.*;

View File

@@ -74,7 +74,7 @@ public class Blocks implements ContentList{
coreShard, coreFoundation, coreNucleus, vault, container, unloader, coreShard, coreFoundation, coreNucleus, vault, container, unloader,
//turrets //turrets
duo, scatter, scorch, hail, arc, wave, lancer, swarmer, salvo, fuse, ripple, cyclone, spectre, meltdown, segment, parallax, duo, scatter, scorch, hail, arc, wave, lancer, swarmer, salvo, fuse, ripple, cyclone, foreshadow, spectre, meltdown, segment, parallax, tsunami,
//units //units
commandCenter, commandCenter,
@@ -594,7 +594,7 @@ public class Blocks implements ContentList{
consumes.items(new ItemStack(Items.copper, 3), new ItemStack(Items.lead, 4), new ItemStack(Items.titanium, 2), new ItemStack(Items.silicon, 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("cryofluid-mixer"){{
requirements(Category.crafting, with(Items.lead, 65, Items.silicon, 40, Items.titanium, 60)); requirements(Category.crafting, with(Items.lead, 65, Items.silicon, 40, Items.titanium, 60));
outputLiquid = new LiquidStack(Liquids.cryofluid, 0.2f); outputLiquid = new LiquidStack(Liquids.cryofluid, 0.2f);
craftTime = 120f; craftTime = 120f;
@@ -757,14 +757,14 @@ public class Blocks implements ContentList{
plastaniumWall = new Wall("plastanium-wall"){{ plastaniumWall = new Wall("plastanium-wall"){{
requirements(Category.defense, with(Items.plastanium, 5, Items.metaglass, 2)); requirements(Category.defense, with(Items.plastanium, 5, Items.metaglass, 2));
health = 190 * wallHealthMultiplier; health = 130 * wallHealthMultiplier;
insulated = true; insulated = true;
absorbLasers = true; absorbLasers = true;
}}; }};
plastaniumWallLarge = new Wall("plastanium-wall-large"){{ plastaniumWallLarge = new Wall("plastanium-wall-large"){{
requirements(Category.defense, ItemStack.mult(plastaniumWall.requirements, 4)); requirements(Category.defense, ItemStack.mult(plastaniumWall.requirements, 4));
health = 190 * wallHealthMultiplier * 4; health = 130 * wallHealthMultiplier * 4;
size = 2; size = 2;
insulated = true; insulated = true;
absorbLasers = true; absorbLasers = true;
@@ -947,7 +947,7 @@ public class Blocks implements ContentList{
requirements(Category.distribution, with(Items.plastanium, 1, Items.thorium, 1, Items.metaglass, 1)); requirements(Category.distribution, with(Items.plastanium, 1, Items.thorium, 1, Items.metaglass, 1));
health = 180; health = 180;
speed = 0.08f; speed = 0.08f;
displayedSpeed = 10f; displayedSpeed = 11f;
}}; }};
junction = new Junction("junction"){{ junction = new Junction("junction"){{
@@ -1350,17 +1350,20 @@ public class Blocks implements ContentList{
requirements(Category.effect, with(Items.titanium, 250, Items.thorium, 125)); requirements(Category.effect, with(Items.titanium, 250, Items.thorium, 125));
size = 3; size = 3;
itemCapacity = 1000; itemCapacity = 1000;
group = BlockGroup.storage;
}}; }};
container = new StorageBlock("container"){{ container = new StorageBlock("container"){{
requirements(Category.effect, with(Items.titanium, 100)); requirements(Category.effect, with(Items.titanium, 100));
size = 2; size = 2;
itemCapacity = 300; itemCapacity = 300;
group = BlockGroup.storage;
}}; }};
unloader = new Unloader("unloader"){{ unloader = new Unloader("unloader"){{
requirements(Category.effect, with(Items.titanium, 25, Items.silicon, 30)); requirements(Category.effect, with(Items.titanium, 25, Items.silicon, 30));
speed = 6f; speed = 6f;
group = BlockGroup.transportation;
}}; }};
//endregion //endregion
@@ -1526,7 +1529,7 @@ public class Blocks implements ContentList{
force = 4.5f; force = 4.5f;
scaledForce = 5.5f; scaledForce = 5.5f;
range = 110f; range = 110f;
damage = 0.1f; damage = 0.4f;
health = 160 * size * size; health = 160 * size * size;
rotateSpeed = 10; rotateSpeed = 10;
@@ -1580,13 +1583,37 @@ public class Blocks implements ContentList{
requirements(Category.turret, with(Items.silicon, 130, Items.thorium, 80, Items.phasefabric, 40)); requirements(Category.turret, with(Items.silicon, 130, Items.thorium, 80, Items.phasefabric, 40));
health = 250 * size * size; health = 250 * size * size;
range = 140f; range = 160f;
hasPower = true; hasPower = true;
consumes.power(8f); consumes.powerCond(8f, (PointDefenseBuild b) -> b.target != null);
size = 2; size = 2;
shootLength = 5f; shootLength = 5f;
bulletDamage = 25f; bulletDamage = 25f;
reloadTime = 10f; reloadTime = 9f;
}};
tsunami = new LiquidTurret("tsunami"){{
requirements(Category.turret, with(Items.metaglass, 100, Items.lead, 400, Items.titanium, 250, Items.thorium, 100));
ammo(
Liquids.water, Bullets.heavyWaterShot,
Liquids.slag, Bullets.heavySlagShot,
Liquids.cryofluid, Bullets.heavyCryoShot,
Liquids.oil, Bullets.heavyOilShot
);
size = 3;
recoilAmount = 0f;
reloadTime = 2f;
shots = 2;
velocityInaccuracy = 0.1f;
inaccuracy = 4f;
recoilAmount = 1f;
restitution = 0.04f;
shootCone = 45f;
liquidCapacity = 40f;
shootEffect = Fx.shootLiquid;
range = 190f;
health = 250 * size * size;
shootSound = Sounds.splash;
}}; }};
fuse = new ItemTurret("fuse"){{ fuse = new ItemTurret("fuse"){{
@@ -1665,6 +1692,48 @@ public class Blocks implements ContentList{
health = 145 * size * size; health = 145 * size * size;
}}; }};
foreshadow = new ItemTurret("foreshadow"){{
float brange = range = 500f;
requirements(Category.turret, with(Items.copper, 1000, Items.metaglass, 600, Items.surgealloy, 300, Items.plastanium, 200, Items.silicon, 600));
ammo(
Items.surgealloy, new PointBulletType(){{
shootEffect = Fx.instShoot;
hitEffect = Fx.instHit;
smokeEffect = Fx.smokeCloud;
trailEffect = Fx.instTrail;
despawnEffect = Fx.instBomb;
trailSpacing = 20f;
damage = 1350;
tileDamageMultiplier = 0.5f;
speed = brange;
hitShake = 6f;
ammoMultiplier = 1f;
}}
);
rotateSpeed = 2.5f;
reloadTime = 200f;
restitution = 0.2f;
ammoUseEffect = Fx.shellEjectBig;
recoilAmount = 5f;
restitution = 0.009f;
cooldown = 0.009f;
shootShake = 4f;
shots = 1;
size = 4;
shootCone = 2f;
shootSound = Sounds.shootBig;
unitSort = (u, x, y) -> -u.maxHealth;
coolantMultiplier = 0.09f;
health = 150 * size * size;
consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 2f)).update(false).optional(true, true);
consumes.powerCond(10f, TurretBuild::isActive);
}};
spectre = new ItemTurret("spectre"){{ spectre = new ItemTurret("spectre"){{
requirements(Category.turret, with(Items.copper, 900, Items.graphite, 300, Items.surgealloy, 250, Items.plastanium, 175, Items.thorium, 250)); requirements(Category.turret, with(Items.copper, 900, Items.graphite, 300, Items.surgealloy, 250, Items.plastanium, 175, Items.thorium, 250));
ammo( ammo(
@@ -1687,7 +1756,7 @@ public class Blocks implements ContentList{
shootCone = 24f; shootCone = 24f;
shootSound = Sounds.shootBig; shootSound = Sounds.shootBig;
health = 155 * size * size; health = 160 * size * size;
consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 2f)).update(false).optional(true, true); consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 2f)).update(false).optional(true, true);
}}; }};

View File

@@ -34,7 +34,7 @@ public class Bullets implements ContentList{
standardGlaive, standardDenseBig, standardThoriumBig, standardIncendiaryBig, standardGlaive, standardDenseBig, standardThoriumBig, standardIncendiaryBig,
//liquid //liquid
waterShot, cryoShot, slagShot, oilShot, waterShot, cryoShot, slagShot, oilShot, heavyWaterShot, heavyCryoShot, heavySlagShot, heavyOilShot,
//environment, misc. //environment, misc.
damageLightning, damageLightningGround, fireball, basicFlame, pyraFlame, driverBolt, healBullet, healBulletBig, frag; damageLightning, damageLightningGround, fireball, basicFlame, pyraFlame, driverBolt, healBullet, healBulletBig, frag;
@@ -375,10 +375,9 @@ public class Bullets implements ContentList{
}}; }};
//this is just a copy of the damage lightning bullet that doesn't damage air units //this is just a copy of the damage lightning bullet that doesn't damage air units
damageLightningGround = new BulletType(0.0001f, 0f){{ damageLightningGround = new BulletType(0.0001f, 0f){};
collidesAir = false;
}};
JsonIO.copy(damageLightning, damageLightningGround); JsonIO.copy(damageLightning, damageLightningGround);
damageLightningGround.collidesAir = false;
healBullet = new HealBulletType(5.2f, 13){{ healBullet = new HealBulletType(5.2f, 13){{
healPercent = 3f; healPercent = 3f;
@@ -474,6 +473,50 @@ public class Bullets implements ContentList{
drag = 0.03f; drag = 0.03f;
}}; }};
heavyWaterShot = new LiquidBulletType(Liquids.water){{
lifetime = 49f;
speed = 4f;
knockback = 1.7f;
puddleSize = 8f;
drag = 0.001f;
ammoMultiplier = 2f;
statusDuration = 60f * 4f;
damage = 0.1f;
}};
heavyCryoShot = new LiquidBulletType(Liquids.cryofluid){{
lifetime = 49f;
speed = 4f;
knockback = 1.3f;
puddleSize = 8f;
drag = 0.001f;
ammoMultiplier = 2f;
statusDuration = 60f * 4f;
damage = 0.1f;
}};
heavySlagShot = new LiquidBulletType(Liquids.slag){{
lifetime = 49f;
speed = 4f;
knockback = 1.3f;
puddleSize = 8f;
damage = 6f;
drag = 0.001f;
ammoMultiplier = 2f;
statusDuration = 60f * 4f;
}};
heavyOilShot = new LiquidBulletType(Liquids.oil){{
lifetime = 49f;
speed = 4f;
knockback = 1.3f;
puddleSize = 8f;
drag = 0.001f;
ammoMultiplier = 2f;
statusDuration = 60f * 4f;
damage = 0.1f;
}};
driverBolt = new MassDriverBolt(); driverBolt = new MassDriverBolt();
frag = new BasicBulletType(5f, 8, "bullet"){{ frag = new BasicBulletType(5f, 8, "bullet"){{

View File

@@ -18,7 +18,7 @@ import static arc.graphics.g2d.Draw.rect;
import static arc.graphics.g2d.Draw.*; import static arc.graphics.g2d.Draw.*;
import static arc.graphics.g2d.Lines.*; import static arc.graphics.g2d.Lines.*;
import static arc.math.Angles.*; import static arc.math.Angles.*;
import static mindustry.Vars.tilesize; import static mindustry.Vars.*;
public class Fx{ public class Fx{
public static final Effect public static final Effect
@@ -138,12 +138,13 @@ public class Fx{
stroke(3f * e.fout()); stroke(3f * e.fout());
color(e.color, Color.white, e.fin()); color(e.color, Color.white, e.fin());
beginLine(); for(int i = 0; i < lines.size - 1; i++){
lines.each(Lines::linePoint); Vec2 cur = lines.get(i);
linePoint(e.x, e.y); Vec2 next = lines.get(i + 1);
endLine();
Lines.line(cur.x, cur.y, next.x, next.y, false);
}
int i = 0;
for(Vec2 p : lines){ for(Vec2 p : lines){
Fill.circle(p.x, p.y, Lines.getStroke() / 2f); Fill.circle(p.x, p.y, Lines.getStroke() / 2f);
} }
@@ -455,6 +456,79 @@ public class Fx{
}), }),
instBomb = new Effect(15f, 100f, e -> {
color(Pal.bulletYellowBack);
stroke(e.fout() * 4f);
Lines.circle(e.x, e.y, 4f + e.finpow() * 20f);
for(int i = 0; i < 4; i++){
Drawf.tri(e.x, e.y, 6f, 80f * e.fout(), i*90 + 45);
}
color();
for(int i = 0; i < 4; i++){
Drawf.tri(e.x, e.y, 3f, 30f * e.fout(), i*90 + 45);
}
}),
instTrail = new Effect(30, e -> {
for(int i = 0; i < 2; i++){
color(i == 0 ? Pal.bulletYellowBack : Pal.bulletYellow);
float m = i == 0 ? 1f : 0.5f;
float rot = e.rotation + 180f;
float w = 15f * e.fout() * m;
Drawf.tri(e.x, e.y, w, (30f + Mathf.randomSeedRange(e.id, 15f)) * m, rot);
Drawf.tri(e.x, e.y, w, 10f * m, rot + 180f);
}
}),
instShoot = new Effect(24f, e -> {
e.scaled(10f, b -> {
color(Color.white, Pal.bulletYellowBack, b.fin());
stroke(b.fout() * 3f + 0.2f);
Lines.circle(b.x, b.y, b.fin() * 50f);
});
color(Pal.bulletYellowBack);
for(int i : Mathf.signs){
Drawf.tri(e.x, e.y, 13f * e.fout(), 85f, e.rotation + 90f * i);
Drawf.tri(e.x, e.y, 13f * e.fout(), 50f, e.rotation + 20f * i);
}
}),
instHit = new Effect(20f, 200f, e -> {
color(Pal.bulletYellowBack);
for(int i = 0; i < 2; i++){
color(i == 0 ? Pal.bulletYellowBack : Pal.bulletYellow);
float m = i == 0 ? 1f : 0.5f;
for(int j = 0; j < 5; j++){
float rot = e.rotation + Mathf.randomSeedRange(e.id + j, 50f);
float w = 23f * e.fout() * m;
Drawf.tri(e.x, e.y, w, (80f + Mathf.randomSeedRange(e.id + j, 40f)) * m, rot);
Drawf.tri(e.x, e.y, w, 20f * m, rot + 180f);
}
}
e.scaled(10f, c -> {
color(Pal.bulletYellow);
stroke(c.fout() * 2f + 0.2f);
Lines.circle(e.x, e.y, c.fin() * 30f);
});
e.scaled(12f, c -> {
color(Pal.bulletYellowBack);
randLenVectors(e.id, 25, 5f + e.fin() * 80f, e.rotation, 60f, (x, y) -> {
Fill.square(e.x + x, e.y + y, c.fout() * 3f, 45f);
});
});
}),
hitLaser = new Effect(8, e -> { hitLaser = new Effect(8, e -> {
color(Color.white, Pal.heal, e.fin()); color(Color.white, Pal.heal, e.fin());
stroke(0.5f + e.fout()); stroke(0.5f + e.fout());
@@ -1074,28 +1148,11 @@ public class Fx{
}), }),
railHit = new Effect(18f, 200f, e -> { railHit = new Effect(18f, 200f, e -> {
if(true){ color(Pal.orangeSpark);
color(Pal.orangeSpark);
for(int i : Mathf.signs){ for(int i : Mathf.signs){
Drawf.tri(e.x, e.y, 10f * e.fout(), 60f, e.rotation + 140f * i); Drawf.tri(e.x, e.y, 10f * e.fout(), 60f, e.rotation + 140f * i);
}
}else{
e.scaled(7f, b -> {
color(Color.white, Color.lightGray, b.fin());
stroke(b.fout() * 2f + 0.2f);
Lines.circle(b.x, b.y, b.fin() * 28f);
});
color(Pal.orangeSpark);
float rot = e.rotation + Mathf.randomSeedRange(e.id, 20f);
float w = 9f * e.fout();
Drawf.tri(e.x, e.y, w, 100f, rot);
Drawf.tri(e.x, e.y, w, 10f, rot + 180f);
} }
}), }),
lancerLaserShoot = new Effect(21f, e -> { lancerLaserShoot = new Effect(21f, e -> {
@@ -1109,7 +1166,7 @@ public class Fx{
lancerLaserShootSmoke = new Effect(26f, e -> { lancerLaserShootSmoke = new Effect(26f, e -> {
color(Color.white); color(Color.white);
float length = e.data == null || !(e.data instanceof Float) ? 70f : (Float)e.data; float length = !(e.data instanceof Float) ? 70f : (Float)e.data;
randLenVectors(e.id, 7, length, e.rotation, 0f, (x, y) -> { randLenVectors(e.id, 7, length, e.rotation, 0f, (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fout() * 9f); lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fout() * 9f);

View File

@@ -1,8 +1,8 @@
package mindustry.content; package mindustry.content;
import arc.graphics.Color; import arc.graphics.*;
import mindustry.ctype.ContentList; import mindustry.ctype.*;
import mindustry.type.Liquid; import mindustry.type.*;
public class Liquids implements ContentList{ public class Liquids implements ContentList{
public static Liquid water, slag, oil, cryofluid; public static Liquid water, slag, oil, cryofluid;

View File

@@ -2,10 +2,11 @@ package mindustry.content;
import arc.*; import arc.*;
import arc.graphics.*; import arc.graphics.*;
import arc.math.Mathf; import arc.math.*;
import mindustry.ctype.ContentList; import mindustry.ctype.*;
import mindustry.game.EventType.*; import mindustry.game.EventType.*;
import mindustry.type.StatusEffect; import mindustry.type.*;
import static mindustry.Vars.*; import static mindustry.Vars.*;
public class StatusEffects implements ContentList{ public class StatusEffects implements ContentList{

View File

@@ -2,7 +2,7 @@ package mindustry.content;
import arc.*; import arc.*;
import arc.struct.*; import arc.struct.*;
import arc.util.ArcAnnotate.*; import arc.util.*;
import mindustry.ctype.*; import mindustry.ctype.*;
import mindustry.game.Objectives.*; import mindustry.game.Objectives.*;
import mindustry.type.*; import mindustry.type.*;
@@ -109,6 +109,9 @@ public class TechTree implements ContentList{
node(Items.coal, with(Items.lead, 3000), () -> { node(Items.coal, with(Items.lead, 3000), () -> {
node(Items.graphite, with(Items.coal, 1000), () -> { node(Items.graphite, with(Items.coal, 1000), () -> {
node(illuminator, () -> {
});
node(graphitePress, () -> { node(graphitePress, () -> {
node(Items.titanium, with(Items.graphite, 6000, Items.copper, 10000, Items.lead, 10000), () -> { node(Items.titanium, with(Items.graphite, 6000, Items.copper, 10000, Items.lead, 10000), () -> {
node(pneumaticDrill, () -> { node(pneumaticDrill, () -> {
@@ -344,11 +347,17 @@ public class TechTree implements ContentList{
}); });
}); });
node(tsunami, () -> {
});
}); });
node(lancer, () -> { node(lancer, () -> {
node(meltdown, () -> { node(foreshadow, () -> {
node(meltdown, () -> {
});
}); });
node(shockMine, () -> { node(shockMine, () -> {
@@ -562,7 +571,8 @@ public class TechTree implements ContentList{
return node(block, () -> {}); return node(block, () -> {});
} }
public static @Nullable TechNode get(UnlockableContent content){ public static @Nullable
TechNode get(UnlockableContent content){
return map.get(content); return map.get(content);
} }

View File

@@ -50,7 +50,7 @@ public class UnitTypes implements ContentList{
public static @EntityDef({Unitc.class, Builderc.class, Payloadc.class}) UnitType quad; public static @EntityDef({Unitc.class, Builderc.class, Payloadc.class}) UnitType quad;
//air + building + payload + command //air + building + payload + command
public static @EntityDef({Unitc.class, Builderc.class, Payloadc.class, Commanderc.class}) UnitType oct; public static @EntityDef({Unitc.class, Builderc.class, Payloadc.class, Commanderc.class, AmmoDistributec.class}) UnitType oct;
//air + building + mining //air + building + mining
public static @EntityDef({Unitc.class, Builderc.class, Minerc.class}) UnitType alpha, beta, gamma; public static @EntityDef({Unitc.class, Builderc.class, Minerc.class}) UnitType alpha, beta, gamma;
@@ -446,7 +446,7 @@ public class UnitTypes implements ContentList{
mineTier = 1; mineTier = 1;
hitSize = 29f; hitSize = 29f;
itemCapacity = 80; itemCapacity = 80;
health = 19000f; health = 18000f;
buildSpeed = 1.7f; buildSpeed = 1.7f;
armor = 9f; armor = 9f;
landShake = 1.5f; landShake = 1.5f;
@@ -488,7 +488,7 @@ public class UnitTypes implements ContentList{
firstShotDelay = Fx.greenLaserCharge.lifetime; firstShotDelay = Fx.greenLaserCharge.lifetime;
bullet = new LaserBulletType(){{ bullet = new LaserBulletType(){{
length = 500f; length = 460f;
damage = 550f; damage = 550f;
width = 75f; width = 75f;
@@ -519,7 +519,7 @@ public class UnitTypes implements ContentList{
crawler = new UnitType("crawler"){{ crawler = new UnitType("crawler"){{
defaultController = SuicideAI::new; defaultController = SuicideAI::new;
speed = 0.85f; speed = 0.9f;
hitSize = 8f; hitSize = 8f;
health = 180; health = 180;
mechSideSway = 0.25f; mechSideSway = 0.25f;
@@ -536,7 +536,7 @@ public class UnitTypes implements ContentList{
speed = 1f; speed = 1f;
splashDamageRadius = 55f; splashDamageRadius = 55f;
instantDisappear = true; instantDisappear = true;
splashDamage = 55f; splashDamage = 60f;
killShooter = true; killShooter = true;
hittable = false; hittable = false;
collidesAir = true; collidesAir = true;
@@ -1314,6 +1314,10 @@ public class UnitTypes implements ContentList{
buildSpeed = 4f; buildSpeed = 4f;
drawShields = false; drawShields = false;
commandLimit = 6; commandLimit = 6;
lowAltitude = true;
ammoCapacity = 1300;
ammoResupplyAmount = 20;
abilities.add(new ForceFieldAbility(140f, 4f, 7000f, 60f * 8), new HealFieldAbility(130f, 60f * 2, 140f)); abilities.add(new ForceFieldAbility(140f, 4f, 7000f, 60f * 8), new HealFieldAbility(130f, 60f * 2, 140f));
}}; }};

View File

@@ -1,10 +1,9 @@
package mindustry.core; package mindustry.core;
import arc.files.*; import arc.files.*;
import arc.struct.*;
import arc.func.*; import arc.func.*;
import arc.graphics.*; import arc.graphics.*;
import arc.util.ArcAnnotate.*; import arc.struct.*;
import arc.util.*; import arc.util.*;
import mindustry.content.*; import mindustry.content.*;
import mindustry.ctype.*; import mindustry.ctype.*;
@@ -13,8 +12,8 @@ import mindustry.mod.Mods.*;
import mindustry.type.*; import mindustry.type.*;
import mindustry.world.*; import mindustry.world.*;
import static arc.Core.files; import static arc.Core.*;
import static mindustry.Vars.mods; import static mindustry.Vars.*;
/** /**
* Loads all game content. * Loads all game content.

View File

@@ -9,7 +9,6 @@ import arc.math.*;
import arc.scene.ui.*; import arc.scene.ui.*;
import arc.struct.*; import arc.struct.*;
import arc.util.*; import arc.util.*;
import arc.util.ArcAnnotate.*;
import mindustry.*; import mindustry.*;
import mindustry.audio.*; import mindustry.audio.*;
import mindustry.content.*; import mindustry.content.*;
@@ -191,10 +190,6 @@ public class Control implements ApplicationListener, Loadable{
} }
void resetCamera(){
}
@Override @Override
public void loadAsync(){ public void loadAsync(){
Draw.scl = 1f / Core.atlas.find("scale_marker").width; Draw.scl = 1f / Core.atlas.find("scale_marker").width;
@@ -485,7 +480,7 @@ public class Control implements ApplicationListener, Loadable{
@Override @Override
public void update(){ public void update(){
//TODO find out why this happens on Android //this happens on Android and nobody knows why
if(assets == null) return; if(assets == null) return;
saves.update(); saves.update();
@@ -523,7 +518,7 @@ public class Control implements ApplicationListener, Loadable{
platform.updateRPC(); platform.updateRPC();
} }
if(Core.input.keyTap(Binding.pause) && !state.isOutOfTime() && !scene.hasDialog() && !scene.hasKeyboard() && !ui.restart.isShown() && (state.is(State.paused) || state.is(State.playing))){ if(Core.input.keyTap(Binding.pause) && !scene.hasDialog() && !scene.hasKeyboard() && !ui.restart.isShown() && (state.is(State.paused) || state.is(State.playing))){
state.set(state.is(State.playing) ? State.paused : State.playing); state.set(state.is(State.playing) ? State.paused : State.playing);
} }

View File

@@ -2,8 +2,8 @@ package mindustry.core;
import arc.*; import arc.*;
import arc.assets.loaders.*; import arc.assets.loaders.*;
import arc.struct.*;
import arc.files.*; import arc.files.*;
import arc.struct.*;
/** Handles files in a modded context. */ /** Handles files in a modded context. */
public class FileTree implements FileHandleResolver{ public class FileTree implements FileHandleResolver{

Some files were not shown because too many files have changed in this diff Show More