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
+1 -1
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.*
**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.*
+11 -12
View File
@@ -3,18 +3,6 @@ name: Java CI
on: [push]
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:
runs-on: ubuntu-latest
@@ -26,3 +14,14 @@ jobs:
java-version: 14
- name: Run unit tests with gradle and Java 14
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
+17 -12
View File
@@ -4,33 +4,38 @@ This is for code contributions. For translations, see [TRANSLATING](TRANSLATING.
## 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.
#### Always test your changes.
### Always test your changes.
Do not submit something without at least running the game to see if it compiles.
If you are submitting a new block, make sure it has a name and description, and that it works correctly in-game. If you are changing existing block mechanics, test them out first.
#### Do not make large changes before discussing them first.
### Do not make large changes before discussing them first.
If you are interested in adding a large mechanic/feature or changing large amounts of code, first contact me (Anuken) via [Discord](https://discord.gg/mindustry) (preferred method) or via e-mail (*anukendev@gmail.com*).
For most changes, this should not be necessary. I just want to know if you're doing something big so I can offer advice and/or make sure you're not wasting your time on it.
### 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
#### Follow the formatting guidelines.
### Follow the formatting guidelines.
This means:
- No spaces around parentheses: `if(condition){`, `SomeType s = (SomeType)object`
- Same-line braces.
- 4 spaces indentation
- `camelCase`, **even for constants or enums**. Why? Because `SCREAMING_CASE` is ugly, annoying to type and does not achieve anything useful. Constants are *less* dangerous than variables, not more.
- `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)
- 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.
#### 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.
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.
#### 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`.
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`).
@@ -52,21 +57,21 @@ What you'll usually need to change:
- *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`.
#### 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.
Otherwise, use the `Tmp` variables for things like vector/shape operations, or create `static` variables for re-use.
If using a list, make it a static variable and clear it every time it is used. Re-use as much as possible.
#### Avoid bloated code and unnecessary getters/setters.
### Avoid bloated code and unnecessary getters/setters.
This is situational, but in essence what it means is to avoid using any sort of getters and setters unless absolutely necessary. Public or protected fields should suffice for most things.
If something needs to be encapsulated in the future, IntelliJ can handle it with a few clicks.
#### Do not create methods unless necessary.
### 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.
## Other Notes
@@ -3,7 +3,6 @@ package mindustry.annotations.entity;
import arc.files.*;
import arc.func.*;
import arc.struct.*;
import arc.util.ArcAnnotate.*;
import arc.util.*;
import arc.util.io.*;
import arc.util.pooling.Pool.*;
@@ -77,9 +76,10 @@ public class EntityProcess extends BaseProcessor{
if(elem.is(Modifier.ABSTRACT) || elem.is(Modifier.NATIVE)) continue;
//get all statements in the method, store them
methodBlocks.put(elem.descString(), elem.tree().getBody().toString()
//replace all self() invocations with this
.replaceAll("this\\.<(.*)>self\\(\\)", "this")
.replaceAll("self\\(\\)", "this")
.replaceAll("this\\.<(.*)>self\\(\\)", "this") //fix parameterized self() calls
.replaceAll("self\\(\\)", "this") //fix self() calls
.replaceAll(" yield ", "") //fix enchanced switch
.replaceAll("\\/\\*missing\\*\\/", "var") //fix vars
);
}
}
@@ -1,7 +1,7 @@
package mindustry.annotations.util;
import arc.struct.*;
import arc.util.ArcAnnotate.*;
import arc.util.*;
import com.squareup.javapoet.*;
import com.sun.tools.javac.code.Attribute.*;
import mindustry.annotations.*;
@@ -19,7 +19,8 @@ public class Selement<T extends Element>{
this.e = e;
}
public @Nullable String doc(){
@Nullable
public String doc(){
return BaseProcessor.elementu.getDocComment(e);
}
@@ -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}]}
+22 -5
View File
@@ -173,23 +173,38 @@ allprojects{
}
tasks.withType(JavaCompile){
sourceCompatibility = 1.8
targetCompatibility = 1.8
targetCompatibility = 8
sourceCompatibility = 14
options.encoding = "UTF-8"
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")){
tasks.withType(JavaCompile){
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){
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")
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

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before

Width:  |  Height:  |  Size: 144 B

After

Width:  |  Height:  |  Size: 144 B

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

+5 -2
View File
@@ -851,6 +851,7 @@ rules.title.unit = Units
rules.title.experimental = Experimental
rules.title.environment = Environment
rules.lighting = Lighting
rules.enemyLights = Enemy Lights
rules.fire = Fire
rules.explosions = Block/Unit Explosion Damage
rules.ambientlight = Ambient Light
@@ -1047,7 +1048,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Silicon Smelter
block.phase-weaver.name = Phase Weaver
block.pulverizer.name = Pulverizer
block.cryofluidmixer.name = Cryofluid Mixer
block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Melter
block.incinerator.name = Incinerator
block.spore-press.name = Spore Press
@@ -1079,6 +1080,7 @@ block.power-source.name = Power Infinite
block.unloader.name = Unloader
block.vault.name = Vault
block.wave.name = Wave
block.tsunami.name = Tsunami
block.swarmer.name = Swarmer
block.salvo.name = Salvo
block.ripple.name = Ripple
@@ -1118,6 +1120,7 @@ block.arc.name = Arc
block.rtg-generator.name = RTG Generator
block.spectre.name = Spectre
block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Container
block.launch-pad.name = 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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Залішнi шлюз
block.silicon-smelter.name = Крэмнявы плавільны завод
block.phase-weaver.name = Фазавы ткач
block.pulverizer.name = Здрабняльнік
block.cryofluidmixer.name = Мешалка крыягеннай вадкасці
block.cryofluid-mixer.name = Мешалка крыягеннай вадкасці
block.melter.name = Плавільня
block.incinerator.name = Мусарасжыгатель
block.spore-press.name = Споравы прэс
@@ -1199,7 +1199,7 @@ block.kiln.description = выплавляемым пясок і свінец ў
block.plastanium-compressor.description = Вырабляе пластан з нафты ды тытана.
block.phase-weaver.description = Сінтэзуе фазавую тканіна з радыеактыўнага торыя і пяску. Патрабуецца вялікая колькасць энергіі для працы.
block.alloy-smelter.description = Аб'ядноўвае тытан, свінец, крэмній і медзь для вытворчасці кінэтычнага сплаву.
block.cryofluidmixer.description = змешваюцца ваду і дробны тытанавы парашок у криогеннную вадкасць. Неад'емная частка пры выкарыстання ториевого рэактара
block.cryofluid-mixer.description = змешваюцца ваду і дробны тытанавы парашок у криогеннную вадкасць. Неад'емная частка пры выкарыстання ториевого рэактара
block.blast-mixer.description = расціскаюць і змешвае навалы спрэчка з пиротитом для атрымання выбуховага рэчыва.
block.pyratite-mixer.description = Змешвае вугаль, свінец і пясок у гаручы піратыт
block.melter.description = Плавіць металалом ў шлак для далейшай апрацоўкі або выкарыстання ў турэлях «Хваля».
+2 -2
View File
@@ -1047,7 +1047,7 @@ block.underflow-gate.name = Brána s podtokem
block.silicon-smelter.name = Křemíková huť
block.phase-weaver.name = Tkalcovna pro fázovou tkaninu
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.incinerator.name = Spalovna
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Silicon Smelter
block.phase-weaver.name = Phase Weaver
block.pulverizer.name = Pulverizer
block.cryofluidmixer.name = Cryofluid Mixer
block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Melter
block.incinerator.name = Incinerator
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Unterlauftor
block.silicon-smelter.name = Silizium-Schmelzer
block.phase-weaver.name = Phasenweber
block.pulverizer.name = Pulverisierer
block.cryofluidmixer.name = Kryoflüssigkeitsmixer
block.cryofluid-mixer.name = Kryoflüssigkeitsmixer
block.melter.name = Schmelzer
block.incinerator.name = Verbrennungsanlage
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Compuerta de Subdesbordamiento
block.silicon-smelter.name = Horno para Silicio
block.phase-weaver.name = Tejedor de Fase
block.pulverizer.name = Pulverizador
block.cryofluidmixer.name = Mezclador de Criogénicos
block.cryofluid-mixer.name = Mezclador de Criogénicos
block.melter.name = Fundidor
block.incinerator.name = Incinerador
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Ränisulatusahi
block.phase-weaver.name = Faaskangakuduja
block.pulverizer.name = Metallijahvataja
block.cryofluidmixer.name = Krüosegisti
block.cryofluid-mixer.name = Krüosegisti
block.melter.name = Metallisulataja
block.incinerator.name = Tuhastusahi
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Silizio galdategia
block.phase-weaver.name = Fase ehulea
block.pulverizer.name = Birringailua
block.cryofluidmixer.name = Krio-isurkari nahasgailua
block.cryofluid-mixer.name = Krio-isurkari nahasgailua
block.melter.name = Urtzailea
block.incinerator.name = Erraustegia
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Silicon Smelter
block.phase-weaver.name = Phase Weaver
block.pulverizer.name = Pulverizer
block.cryofluidmixer.name = Cryofluid Mixer
block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Melter
block.incinerator.name = Incinerator
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Silicon Smelter
block.phase-weaver.name = Phase Weaver
block.pulverizer.name = Pulverizer
block.cryofluidmixer.name = Cryofluid Mixer
block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Melter
block.incinerator.name = Incinerator
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Barrière de Refoulement
block.silicon-smelter.name = Fonderie de Silicium
block.phase-weaver.name = Tisseur à Phase
block.pulverizer.name = Pulvérisateur
block.cryofluidmixer.name = Refroidisseur
block.cryofluid-mixer.name = Refroidisseur
block.melter.name = Four à Fusion
block.incinerator.name = Incinérateur
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.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.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.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 ».
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Fonderie de silicium
block.phase-weaver.name = Tisseur à phase
block.pulverizer.name = Pulvérisateur
block.cryofluidmixer.name = Refroidisseur
block.cryofluid-mixer.name = Refroidisseur
block.melter.name = Four à Fusion
block.incinerator.name = Incinérateur
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Silicon Smelter
block.phase-weaver.name = Phase Weaver
block.pulverizer.name = Pulverizer
block.cryofluidmixer.name = Cryofluid Mixer
block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Melter
block.incinerator.name = Incinerator
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Gerbang Tidak Meluap
block.silicon-smelter.name = Pelebur Silikon
block.phase-weaver.name = Pengrajut Phase
block.pulverizer.name = Pulverisator
block.cryofluidmixer.name = Penyampur Cairan Dingin
block.cryofluid-mixer.name = Penyampur Cairan Dingin
block.melter.name = Pencair
block.incinerator.name = Penghangus
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Separatore per Eccesso Inverso
block.silicon-smelter.name = Fonderia
block.phase-weaver.name = Tessitore di Fase
block.pulverizer.name = Polverizzatore
block.cryofluidmixer.name = Miscelatore di Liquidi
block.cryofluid-mixer.name = Miscelatore di Liquidi
block.melter.name = Fonditore
block.incinerator.name = Inceneritore
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = アンダーフローゲート
block.silicon-smelter.name = シリコン溶鉱炉
block.phase-weaver.name = フェーズ織機
block.pulverizer.name = 粉砕機
block.cryofluidmixer.name = 冷却ミキサー
block.cryofluid-mixer.name = 冷却ミキサー
block.melter.name = 融合機
block.incinerator.name = 焼却炉
block.spore-press.name = 胞子圧縮機
@@ -1199,7 +1199,7 @@ block.kiln.description = 砂と鉛を溶かしてメタガラスを生成しま
block.plastanium-compressor.description = オイルとチタンからプラスタニウムを製造します。
block.phase-weaver.description = 放射性トリウムと多量の砂からフェーズファイバーを製造します。
block.alloy-smelter.description = チタンや鉛、シリコン、銅からサージ合金を製造します。
block.cryofluidmixer.description = 水とチタンから冷却に効率的な冷却水を製造します。
block.cryofluid-mixer.description = 水とチタンから冷却に効率的な冷却水を製造します。
block.blast-mixer.description = 可燃性のピラタイトを石油を使用してさらに爆発性化合物にします。
block.pyratite-mixer.description = 石炭、鉛、砂から燃えやすいピラタイトを製造します。
block.melter.description = 石を熱で溶かして溶岩を生成します。
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = 불포화 필터
block.silicon-smelter.name = 실리콘 제련소
block.phase-weaver.name = 메타 합성기
block.pulverizer.name = 분쇄기
block.cryofluidmixer.name = 냉각수 제조기
block.cryofluid-mixer.name = 냉각수 제조기
block.melter.name = 융해기
block.incinerator.name = 소각로
block.spore-press.name = 포자 압축기
@@ -1199,7 +1199,7 @@ block.kiln.description = 모래를 제련하여 강화 유리라고 알려진
block.plastanium-compressor.description = 석유와 티타늄으로 플라스터늄을 생산합니다.
block.phase-weaver.description = 방사성 토륨과 모래에서 메타를 합성합니다. 작동하려면 엄청난 양의 전력이 필요합니다.
block.alloy-smelter.description = 티타늄, 납, 실리콘, 구리를 결합하여 설금을 생산합니다.
block.cryofluidmixer.description = 물과 미세 티타늄 분말을 냉각수로 혼합합니다. 토륨 원자로 사용에 필수적입니다.
block.cryofluid-mixer.description = 물과 미세 티타늄 분말을 냉각수로 혼합합니다. 토륨 원자로 사용에 필수적입니다.
block.blast-mixer.description = 포자 클러스터를 파이라타이트와 분쇄하고 혼합하여 폭발물을 만듭니다.
block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 파이라타이트로 만듭니다.
block.melter.description = 웨이브 포탑에서 추가 처리 또는 사용을 위해 고철을 광재로 녹입니다.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Neperpildymo Užtvara
block.silicon-smelter.name = Silicio Lydykla
block.phase-weaver.name = Fazinė Audykla
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.incinerator.name = Deginimo krosnis
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Siliciumsmelter
block.phase-weaver.name = Phase Weaver
block.pulverizer.name = Vermorzelaar
block.cryofluidmixer.name = Cryofluid Mixer
block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Smelter
block.incinerator.name = Verbrandingsoven
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Silicon Smelter
block.phase-weaver.name = Phase Weaver
block.pulverizer.name = Pulverizer
block.cryofluidmixer.name = Cryofluid Mixer
block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Melter
block.incinerator.name = Incinerator
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Brama Niedomiaru
block.silicon-smelter.name = Huta Krzemu
block.phase-weaver.name = Fazowa Fabryka
block.pulverizer.name = Rozkruszacz
block.cryofluidmixer.name = Mieszacz Lodocieczy
block.cryofluid-mixer.name = Mieszacz Lodocieczy
block.melter.name = Przetapiacz
block.incinerator.name = Spalacz
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.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.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.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
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Comporta invertida
block.silicon-smelter.name = Fundidora de silicio
block.phase-weaver.name = Palheta de fase
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.incinerator.name = Incinerador
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Portão Desobrecarregado
block.silicon-smelter.name = Fundidora de silicio
block.phase-weaver.name = Palheta de fase
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.incinerator.name = Incinerador
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Poartă de Subversare
block.silicon-smelter.name = Topitor de Silicon
block.phase-weaver.name = Țesătorie de Fază
block.pulverizer.name = Pulverizator
block.cryofluidmixer.name = Mixer de Criofluid
block.cryofluid-mixer.name = Mixer de Criofluid
block.melter.name = Topitor
block.incinerator.name = Incinerator
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.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.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.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.
+2 -2
View File
@@ -1054,7 +1054,7 @@ block.underflow-gate.name = Избыточный шлюз
block.silicon-smelter.name = Кремниевая плавильня
block.phase-weaver.name = Фазовый ткач
block.pulverizer.name = Измельчитель
block.cryofluidmixer.name = Мешалка криогенной жидкости
block.cryofluid-mixer.name = Мешалка криогенной жидкости
block.melter.name = Плавильня
block.incinerator.name = Мусоросжигатель
block.spore-press.name = Споровый пресс
@@ -1211,7 +1211,7 @@ block.kiln.description = Выплавляет песок и свинец в со
block.plastanium-compressor.description = Производит пластан из нефти и титана.
block.phase-weaver.description = Синтезирует фазовую ткань из радиоактивного тория и песка. Требуется огромное количество энергии для работы.
block.alloy-smelter.description = Объединяет титан, свинец, кремний и медь для производства кинетического сплава.
block.cryofluidmixer.description = Смешивает воду и мелкий титановый порошок в криогенную жидкость. Неотъемлемая часть при использования ториевого реактора
block.cryofluid-mixer.description = Смешивает воду и мелкий титановый порошок в криогенную жидкость. Неотъемлемая часть при использования ториевого реактора
block.blast-mixer.description = Раздавливает и смешивает скопления спор с пиротитом для получения взрывчатого вещества.
block.pyratite-mixer.description = Смешивает уголь, свинец и песок в легковоспламеняющийся пиротит.
block.melter.description = Плавит металлолом в шлак для дальнейшей обработки или использования в турелях «Волна».
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Kiselsmältare
block.phase-weaver.name = Phase Weaver
block.pulverizer.name = Pulveriserare
block.cryofluidmixer.name = Cryofluid Mixer
block.cryofluid-mixer.name = Cryofluid Mixer
block.melter.name = Smältare
block.incinerator.name = Förbrännare
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = เตาเผาซิลิกอน
block.phase-weaver.name = เครื่องทอใยเฟส
block.pulverizer.name = เครื่องบด
block.cryofluidmixer.name = เครื่องผสมสารหล่อเย็น
block.cryofluid-mixer.name = เครื่องผสมสารหล่อเย็น
block.melter.name = เตาหลอม
block.incinerator.name = เตาเผาขยะ
block.spore-press.name = เครื่องอัดสปอร์
@@ -1199,7 +1199,7 @@ block.kiln.description = เผาทรายและตะกั่วเป
block.plastanium-compressor.description = ผลิตพลาสตาเนี่ยมจากน้ำมันและไทเทเนี่ยม.
block.phase-weaver.description = สังเคราะห์ใยเฟสจากทอเรี่ยมที่มีรังสีและทราย. จำเป็นต้องใช้พลังงานจำนวนมากจึงจะทำงานง.
block.alloy-smelter.description = ผสมไทเทเนี่ยม, ตะกั่ว, ซิลิก้อนและทองแดงเพื่อที่จะผลิตเซิร์จอัลลอย.
block.cryofluidmixer.description = ผสมน้ำและผงไทเทเนี่ยมบริสุทธิ์เป็นไครโยฟลูอิด. สำคัญสำหรับเตาปฏิกรณ์ทอเรี่ยม.
block.cryofluid-mixer.description = ผสมน้ำและผงไทเทเนี่ยมบริสุทธิ์เป็นไครโยฟลูอิด. สำคัญสำหรับเตาปฏิกรณ์ทอเรี่ยม.
block.blast-mixer.description = บอและผสมสปอร์กับไพไรต์เพื่อผลิตสารประกอบระเบิด.
block.pyratite-mixer.description = ผสมถ่านหิน, ตะกั่วและทรายเข้าด้วยกันเป็นไฟไรต์ที่ติดไฟได้ง่าย.
block.melter.description = หลอมเศษเหล็กเป็กกากแร่เพื่อใช้สำหรับกระบวนการต่อไปหรือใช้ในป้อมปืนเวฟ.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Silikon eritici
block.phase-weaver.name = Dokumaci
block.pulverizer.name = pulvarizor
block.cryofluidmixer.name = Cryosivisi karistiricisi
block.cryofluid-mixer.name = Cryosivisi karistiricisi
block.melter.name = eritici
block.incinerator.name = isi firini
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Underflow Gate
block.silicon-smelter.name = Silikon Fırını
block.phase-weaver.name = Faz Örücü
block.pulverizer.name = Pulverizatör
block.cryofluidmixer.name = Kriyosıvı Mikseri
block.cryofluid-mixer.name = Kriyosıvı Mikseri
block.melter.name = Eritici
block.incinerator.name = Yakıcı
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.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.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.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.
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = Недостатній затвор
block.silicon-smelter.name = Кремнієвий плавильний завод
block.phase-weaver.name = Фазовий ткач
block.pulverizer.name = Подрібнювач
block.cryofluidmixer.name = Змішувач кріогенної рідини
block.cryofluid-mixer.name = Змішувач кріогенної рідини
block.melter.name = Плавильня
block.incinerator.name = Сміттєспалювальний завод
block.spore-press.name = Споровий прес
@@ -1199,7 +1199,7 @@ block.kiln.description = Виплавляє пісок та свинець у с
block.plastanium-compressor.description = Виробляє пластаній із нафти та титану.
block.phase-weaver.description = Синтезує фазову тканину з радіоактивного торію та піску. Для роботи потрібна велика кількість енергії.
block.alloy-smelter.description = Поєднує титан, свинець, кремній і мідь для отримання кінетичного сплаву.
block.cryofluidmixer.description = Змішує воду і дрібний порошок титану в кріогенну рідину. Основне використання в торієвому реактору.
block.cryofluid-mixer.description = Змішує воду і дрібний порошок титану в кріогенну рідину. Основне використання в торієвому реактору.
block.blast-mixer.description = Подрібнює і змішує скупчення спор із піротитом для отримання вибухової суміші.
block.pyratite-mixer.description = Змішує вугілля, свинець та пісок у легкозаймистий піротит.
block.melter.description = Розплавляє брухт у шлак для подальшого перероблювання, або використання в баштах «Хвиля».
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = 反向溢流门
block.silicon-smelter.name = 硅冶炼厂
block.phase-weaver.name = 相织物编织器
block.pulverizer.name = 粉碎机
block.cryofluidmixer.name = 冷冻液混合器
block.cryofluid-mixer.name = 冷冻液混合器
block.melter.name = 熔炉
block.incinerator.name = 焚化炉
block.spore-press.name = 孢子压缩机
@@ -1199,7 +1199,7 @@ block.kiln.description = 将铅和沙子熔炼成钢化玻璃,需要少量电
block.plastanium-compressor.description = 用石油和钛生产塑钢。
block.phase-weaver.description = 用放射性钍和大量沙子生产相织物。
block.alloy-smelter.description = 用钛、铅、硅和铜生产巨浪合金。
block.cryofluidmixer.description = 将水和细的钛粉混成冷却液。钍反应堆的必备之物。
block.cryofluid-mixer.description = 将水和细的钛粉混成冷却液。钍反应堆的必备之物。
block.blast-mixer.description = 用油料将硫转化为不易燃但更具爆炸性的爆炸化合物。
block.pyratite-mixer.description = 将煤、铅和沙子混合成高度易燃的硫。
block.melter.description = 将废料熔化成矿渣,以便进一步加工或用于炮塔弹药。
+2 -2
View File
@@ -1043,7 +1043,7 @@ block.underflow-gate.name = 反向溢流器
block.silicon-smelter.name = 煉矽廠
block.phase-weaver.name = 相織布編織器
block.pulverizer.name = 粉碎機
block.cryofluidmixer.name = 冷凍液混合器
block.cryofluid-mixer.name = 冷凍液混合器
block.melter.name = 熔爐
block.incinerator.name = 焚化爐
block.spore-press.name = 孢子壓縮機
@@ -1199,7 +1199,7 @@ block.kiln.description = 將沙子和鉛熔煉成鋼化玻璃。需要少量能
block.plastanium-compressor.description = 將原油和鈦壓縮製造塑鋼。
block.phase-weaver.description = 使用放射性的釷和大量的沙子生產相織布。需要巨量能量。
block.alloy-smelter.description = 使用鈦、鉛、矽和銅以生產波動合金。
block.cryofluidmixer.description = 混合水和研磨的鈦粉製造冷卻效率更高的冷凍液。對釷反應堆是必要的。
block.cryofluid-mixer.description = 混合水和研磨的鈦粉製造冷卻效率更高的冷凍液。對釷反應堆是必要的。
block.blast-mixer.description = 混合胞子碎塊將火焰彈變成比較不易燃但更具爆炸性的爆炸混合物。
block.pyratite-mixer.description = 混合煤、鉛和沙子混合成為易燃的火焰彈。
block.melter.description = 將廢料加熱到很高的溫度產生熔渣,用於進一步製程或波浪炮。
+1
View File
@@ -94,3 +94,4 @@ The Slaylord
ThePlayerA
YellOw139
PetrGasparik
LeoDog896
+3 -1
View File
@@ -62,7 +62,7 @@
63674=plastanium-compressor|block-plastanium-compressor-medium
63673=phase-weaver|block-phase-weaver-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
63669=pyratite-mixer|block-pyratite-mixer-medium
63668=melter|block-melter-medium
@@ -311,3 +311,5 @@
63425=vela|unit-vela-medium
63424=corvus|unit-corvus-medium
63423=memory-bank|block-memory-bank-medium
63422=foreshadow|block-foreshadow-medium
63421=tsunami|block-tsunami-medium
Binary file not shown.
+2 -1
View File
@@ -108,7 +108,6 @@ importPackage(Packages.mindustry.world.draw)
importPackage(Packages.mindustry.world.meta)
importPackage(Packages.mindustry.world.meta.values)
importPackage(Packages.mindustry.world.modules)
importPackage(Packages.mindustry.world.producers)
const PlayerIpUnbanEvent = Packages.mindustry.game.EventType.PlayerIpUnbanEvent
const PlayerIpBanEvent = Packages.mindustry.game.EventType.PlayerIpBanEvent
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 UnitChangeEvent = Packages.mindustry.game.EventType.UnitChangeEvent
const UnitCreateEvent = Packages.mindustry.game.EventType.UnitCreateEvent
const UnitDrownEvent = Packages.mindustry.game.EventType.UnitDrownEvent
const UnitDestroyEvent = Packages.mindustry.game.EventType.UnitDestroyEvent
const BlockDestroyEvent = Packages.mindustry.game.EventType.BlockDestroyEvent
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 TileChangeEvent = Packages.mindustry.game.EventType.TileChangeEvent
const GameOverEvent = Packages.mindustry.game.EventType.GameOverEvent
const TapEvent = Packages.mindustry.game.EventType.TapEvent
const ConfigEvent = Packages.mindustry.game.EventType.ConfigEvent
const DepositEvent = Packages.mindustry.game.EventType.DepositEvent
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

+1 -1
View File
@@ -6,7 +6,7 @@ import arc.struct.*;
import arc.util.*;
import mindustry.world.*;
import static mindustry.Vars.world;
import static mindustry.Vars.*;
public class Astar{
public static final DistanceHeuristic manhattan = (x1, y1, x2, y2) -> Math.abs(x1 - x2) + Math.abs(y1 - y2);
+1 -2
View File
@@ -3,7 +3,6 @@ package mindustry.ai;
import arc.*;
import arc.math.*;
import arc.struct.*;
import arc.util.ArcAnnotate.*;
import arc.util.*;
import mindustry.ctype.*;
import mindustry.game.*;
@@ -17,7 +16,7 @@ import mindustry.world.meta.*;
import java.io.*;
import static mindustry.Vars.tilesize;
import static mindustry.Vars.*;
public class BaseRegistry{
public Seq<BasePart> cores = new Seq<>();
+2 -2
View File
@@ -6,7 +6,7 @@ import arc.math.*;
import arc.math.geom.*;
import arc.struct.EnumSet;
import arc.struct.*;
import arc.util.ArcAnnotate.*;
import arc.util.*;
import mindustry.content.*;
import mindustry.game.EventType.*;
import mindustry.game.*;
@@ -220,7 +220,7 @@ public class BlockIndexer{
public void notifyTileDamaged(Building entity){
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);
+9 -10
View File
@@ -4,7 +4,6 @@ import arc.*;
import arc.func.*;
import arc.math.geom.*;
import arc.struct.*;
import arc.util.ArcAnnotate.*;
import arc.util.*;
import arc.util.async.*;
import mindustry.annotations.Annotations.*;
@@ -51,7 +50,7 @@ public class Pathfinder implements Runnable{
(PathTile.solid(tile) ? 5 : 0),
//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.deep(tile) ? -1 : 0) +
(PathTile.damages(tile) ? 35 : 0)
@@ -103,7 +102,6 @@ public class Pathfinder implements Runnable{
/** Packs a tile into its internal representation. */
private int packTile(Tile tile){
//TODO nearGround is just the inverse of nearLiquid?
boolean nearLiquid = false, nearSolid = false, nearGround = false;
for(int i = 0; i < 4; i++){
@@ -188,6 +186,8 @@ public class Pathfinder implements Runnable{
for(Flowfield data : threadList){
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
if(data.refreshRate > 0 && Time.timeSinceMillis(data.lastUpdateTime) > fieldTimeout){
//make sure it doesn't get removed twice
@@ -196,12 +196,11 @@ public class Pathfinder implements Runnable{
Team team = data.team;
Core.app.post(() -> {
//TODO ?????
//remove its used state
//if(fieldMap[team.id] != null){
// fieldMap[team.id].remove(data.target);
// fieldMapUsed[team.id].remove(data.target);
//}
if(fieldMap[team.id] != null){
fieldMap[team.id].remove(data.target);
fieldMapUsed[team.id].remove(data.target);
}
//remove from main thread list
mainList.remove(data);
});
@@ -210,7 +209,7 @@ public class Pathfinder implements Runnable{
//remove from this thread list with a delay
threadList.remove(data);
});
}
}*/
}
}
@@ -469,7 +468,7 @@ public class Pathfinder implements Runnable{
/** search frontier, these are Pos objects */
IntQueue frontier = new IntQueue();
/** 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 */
int search = 1;
/** last updated time */
@@ -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;
}
}
+3 -3
View File
@@ -1,7 +1,7 @@
package mindustry.ai.types;
import arc.struct.*;
import arc.util.ArcAnnotate.*;
import arc.util.*;
import mindustry.entities.*;
import mindustry.entities.units.*;
import mindustry.game.Teams.*;
@@ -87,8 +87,8 @@ public class BuilderAI extends AIController{
}
//find new request
if(!unit.team().data().blocks.isEmpty() && following == null && timer.get(timerTarget3, 60 * 2f)){
Queue<BlockPlan> blocks = unit.team().data().blocks;
if(!unit.team.data().blocks.isEmpty() && following == null && timer.get(timerTarget3, 60 * 2f)){
Queue<BlockPlan> blocks = unit.team.data().blocks;
BlockPlan block = blocks.first();
//check if it's already been placed
+1 -1
View File
@@ -2,7 +2,7 @@ package mindustry.ai.types;
import arc.math.*;
import arc.math.geom.*;
import arc.util.ArcAnnotate.*;
import arc.util.*;
import mindustry.ai.formations.*;
import mindustry.entities.units.*;
import mindustry.gen.*;
+1 -1
View File
@@ -7,7 +7,7 @@ import mindustry.game.EventType.*;
import java.util.concurrent.*;
import static mindustry.Vars.state;
import static mindustry.Vars.*;
public class AsyncCore{
//all processes to be executed each frame
+1 -1
View File
@@ -5,8 +5,8 @@ import arc.math.geom.*;
import arc.math.geom.QuadTree.*;
import arc.struct.*;
import mindustry.*;
import mindustry.entities.*;
import mindustry.async.PhysicsProcess.PhysicsWorld.*;
import mindustry.entities.*;
import mindustry.gen.*;
public class PhysicsProcess implements AsyncProcess{
@@ -30,11 +30,11 @@ public class TeamIndexProcess implements AsyncProcess{
}
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){
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){
+1 -1
View File
@@ -2,9 +2,9 @@ package mindustry.audio;
import arc.*;
import arc.audio.*;
import arc.struct.*;
import arc.math.*;
import arc.math.geom.*;
import arc.struct.*;
import mindustry.*;
public class LoopControl{
@@ -4,7 +4,6 @@ import arc.*;
import arc.audio.*;
import arc.math.*;
import arc.struct.*;
import arc.util.ArcAnnotate.*;
import arc.util.*;
import mindustry.game.EventType.*;
import mindustry.gen.*;
+79 -10
View File
@@ -74,7 +74,7 @@ public class Blocks implements ContentList{
coreShard, coreFoundation, coreNucleus, vault, container, unloader,
//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
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));
}};
cryofluidMixer = new LiquidConverter("cryofluidmixer"){{
cryofluidMixer = new LiquidConverter("cryofluid-mixer"){{
requirements(Category.crafting, with(Items.lead, 65, Items.silicon, 40, Items.titanium, 60));
outputLiquid = new LiquidStack(Liquids.cryofluid, 0.2f);
craftTime = 120f;
@@ -757,14 +757,14 @@ public class Blocks implements ContentList{
plastaniumWall = new Wall("plastanium-wall"){{
requirements(Category.defense, with(Items.plastanium, 5, Items.metaglass, 2));
health = 190 * wallHealthMultiplier;
health = 130 * wallHealthMultiplier;
insulated = true;
absorbLasers = true;
}};
plastaniumWallLarge = new Wall("plastanium-wall-large"){{
requirements(Category.defense, ItemStack.mult(plastaniumWall.requirements, 4));
health = 190 * wallHealthMultiplier * 4;
health = 130 * wallHealthMultiplier * 4;
size = 2;
insulated = 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));
health = 180;
speed = 0.08f;
displayedSpeed = 10f;
displayedSpeed = 11f;
}};
junction = new Junction("junction"){{
@@ -1350,17 +1350,20 @@ public class Blocks implements ContentList{
requirements(Category.effect, with(Items.titanium, 250, Items.thorium, 125));
size = 3;
itemCapacity = 1000;
group = BlockGroup.storage;
}};
container = new StorageBlock("container"){{
requirements(Category.effect, with(Items.titanium, 100));
size = 2;
itemCapacity = 300;
group = BlockGroup.storage;
}};
unloader = new Unloader("unloader"){{
requirements(Category.effect, with(Items.titanium, 25, Items.silicon, 30));
speed = 6f;
group = BlockGroup.transportation;
}};
//endregion
@@ -1526,7 +1529,7 @@ public class Blocks implements ContentList{
force = 4.5f;
scaledForce = 5.5f;
range = 110f;
damage = 0.1f;
damage = 0.4f;
health = 160 * size * size;
rotateSpeed = 10;
@@ -1580,13 +1583,37 @@ public class Blocks implements ContentList{
requirements(Category.turret, with(Items.silicon, 130, Items.thorium, 80, Items.phasefabric, 40));
health = 250 * size * size;
range = 140f;
range = 160f;
hasPower = true;
consumes.power(8f);
consumes.powerCond(8f, (PointDefenseBuild b) -> b.target != null);
size = 2;
shootLength = 5f;
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"){{
@@ -1665,6 +1692,48 @@ public class Blocks implements ContentList{
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"){{
requirements(Category.turret, with(Items.copper, 900, Items.graphite, 300, Items.surgealloy, 250, Items.plastanium, 175, Items.thorium, 250));
ammo(
@@ -1687,7 +1756,7 @@ public class Blocks implements ContentList{
shootCone = 24f;
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);
}};
+47 -4
View File
@@ -34,7 +34,7 @@ public class Bullets implements ContentList{
standardGlaive, standardDenseBig, standardThoriumBig, standardIncendiaryBig,
//liquid
waterShot, cryoShot, slagShot, oilShot,
waterShot, cryoShot, slagShot, oilShot, heavyWaterShot, heavyCryoShot, heavySlagShot, heavyOilShot,
//environment, misc.
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
damageLightningGround = new BulletType(0.0001f, 0f){{
collidesAir = false;
}};
damageLightningGround = new BulletType(0.0001f, 0f){};
JsonIO.copy(damageLightning, damageLightningGround);
damageLightningGround.collidesAir = false;
healBullet = new HealBulletType(5.2f, 13){{
healPercent = 3f;
@@ -474,6 +473,50 @@ public class Bullets implements ContentList{
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();
frag = new BasicBulletType(5f, 8, "bullet"){{
+84 -27
View File
@@ -18,7 +18,7 @@ import static arc.graphics.g2d.Draw.rect;
import static arc.graphics.g2d.Draw.*;
import static arc.graphics.g2d.Lines.*;
import static arc.math.Angles.*;
import static mindustry.Vars.tilesize;
import static mindustry.Vars.*;
public class Fx{
public static final Effect
@@ -138,12 +138,13 @@ public class Fx{
stroke(3f * e.fout());
color(e.color, Color.white, e.fin());
beginLine();
lines.each(Lines::linePoint);
linePoint(e.x, e.y);
endLine();
for(int i = 0; i < lines.size - 1; i++){
Vec2 cur = lines.get(i);
Vec2 next = lines.get(i + 1);
Lines.line(cur.x, cur.y, next.x, next.y, false);
}
int i = 0;
for(Vec2 p : lines){
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 -> {
color(Color.white, Pal.heal, e.fin());
stroke(0.5f + e.fout());
@@ -1074,28 +1148,11 @@ public class Fx{
}),
railHit = new Effect(18f, 200f, e -> {
if(true){
color(Pal.orangeSpark);
color(Pal.orangeSpark);
for(int i : Mathf.signs){
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);
for(int i : Mathf.signs){
Drawf.tri(e.x, e.y, 10f * e.fout(), 60f, e.rotation + 140f * i);
}
}),
lancerLaserShoot = new Effect(21f, e -> {
@@ -1109,7 +1166,7 @@ public class Fx{
lancerLaserShootSmoke = new Effect(26f, e -> {
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) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fout() * 9f);
+3 -3
View File
@@ -1,8 +1,8 @@
package mindustry.content;
import arc.graphics.Color;
import mindustry.ctype.ContentList;
import mindustry.type.Liquid;
import arc.graphics.*;
import mindustry.ctype.*;
import mindustry.type.*;
public class Liquids implements ContentList{
public static Liquid water, slag, oil, cryofluid;
@@ -2,10 +2,11 @@ package mindustry.content;
import arc.*;
import arc.graphics.*;
import arc.math.Mathf;
import mindustry.ctype.ContentList;
import arc.math.*;
import mindustry.ctype.*;
import mindustry.game.EventType.*;
import mindustry.type.StatusEffect;
import mindustry.type.*;
import static mindustry.Vars.*;
public class StatusEffects implements ContentList{
+13 -3
View File
@@ -2,7 +2,7 @@ package mindustry.content;
import arc.*;
import arc.struct.*;
import arc.util.ArcAnnotate.*;
import arc.util.*;
import mindustry.ctype.*;
import mindustry.game.Objectives.*;
import mindustry.type.*;
@@ -109,6 +109,9 @@ public class TechTree implements ContentList{
node(Items.coal, with(Items.lead, 3000), () -> {
node(Items.graphite, with(Items.coal, 1000), () -> {
node(illuminator, () -> {
});
node(graphitePress, () -> {
node(Items.titanium, with(Items.graphite, 6000, Items.copper, 10000, Items.lead, 10000), () -> {
node(pneumaticDrill, () -> {
@@ -344,11 +347,17 @@ public class TechTree implements ContentList{
});
});
node(tsunami, () -> {
});
});
node(lancer, () -> {
node(meltdown, () -> {
node(foreshadow, () -> {
node(meltdown, () -> {
});
});
node(shockMine, () -> {
@@ -562,7 +571,8 @@ public class TechTree implements ContentList{
return node(block, () -> {});
}
public static @Nullable TechNode get(UnlockableContent content){
public static @Nullable
TechNode get(UnlockableContent content){
return map.get(content);
}
+9 -5
View File
@@ -50,7 +50,7 @@ public class UnitTypes implements ContentList{
public static @EntityDef({Unitc.class, Builderc.class, Payloadc.class}) UnitType quad;
//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
public static @EntityDef({Unitc.class, Builderc.class, Minerc.class}) UnitType alpha, beta, gamma;
@@ -446,7 +446,7 @@ public class UnitTypes implements ContentList{
mineTier = 1;
hitSize = 29f;
itemCapacity = 80;
health = 19000f;
health = 18000f;
buildSpeed = 1.7f;
armor = 9f;
landShake = 1.5f;
@@ -488,7 +488,7 @@ public class UnitTypes implements ContentList{
firstShotDelay = Fx.greenLaserCharge.lifetime;
bullet = new LaserBulletType(){{
length = 500f;
length = 460f;
damage = 550f;
width = 75f;
@@ -519,7 +519,7 @@ public class UnitTypes implements ContentList{
crawler = new UnitType("crawler"){{
defaultController = SuicideAI::new;
speed = 0.85f;
speed = 0.9f;
hitSize = 8f;
health = 180;
mechSideSway = 0.25f;
@@ -536,7 +536,7 @@ public class UnitTypes implements ContentList{
speed = 1f;
splashDamageRadius = 55f;
instantDisappear = true;
splashDamage = 55f;
splashDamage = 60f;
killShooter = true;
hittable = false;
collidesAir = true;
@@ -1314,6 +1314,10 @@ public class UnitTypes implements ContentList{
buildSpeed = 4f;
drawShields = false;
commandLimit = 6;
lowAltitude = true;
ammoCapacity = 1300;
ammoResupplyAmount = 20;
abilities.add(new ForceFieldAbility(140f, 4f, 7000f, 60f * 8), new HealFieldAbility(130f, 60f * 2, 140f));
}};
+3 -4
View File
@@ -1,10 +1,9 @@
package mindustry.core;
import arc.files.*;
import arc.struct.*;
import arc.func.*;
import arc.graphics.*;
import arc.util.ArcAnnotate.*;
import arc.struct.*;
import arc.util.*;
import mindustry.content.*;
import mindustry.ctype.*;
@@ -13,8 +12,8 @@ import mindustry.mod.Mods.*;
import mindustry.type.*;
import mindustry.world.*;
import static arc.Core.files;
import static mindustry.Vars.mods;
import static arc.Core.*;
import static mindustry.Vars.*;
/**
* Loads all game content.
+2 -7
View File
@@ -9,7 +9,6 @@ import arc.math.*;
import arc.scene.ui.*;
import arc.struct.*;
import arc.util.*;
import arc.util.ArcAnnotate.*;
import mindustry.*;
import mindustry.audio.*;
import mindustry.content.*;
@@ -191,10 +190,6 @@ public class Control implements ApplicationListener, Loadable{
}
void resetCamera(){
}
@Override
public void loadAsync(){
Draw.scl = 1f / Core.atlas.find("scale_marker").width;
@@ -485,7 +480,7 @@ public class Control implements ApplicationListener, Loadable{
@Override
public void update(){
//TODO find out why this happens on Android
//this happens on Android and nobody knows why
if(assets == null) return;
saves.update();
@@ -523,7 +518,7 @@ public class Control implements ApplicationListener, Loadable{
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);
}
+1 -1
View File
@@ -2,8 +2,8 @@ package mindustry.core;
import arc.*;
import arc.assets.loaders.*;
import arc.struct.*;
import arc.files.*;
import arc.struct.*;
/** Handles files in a modded context. */
public class FileTree implements FileHandleResolver{

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