Many crazy things

This commit is contained in:
Anuken
2021-11-14 23:10:15 -05:00
parent 70cf55f314
commit 486622e3e4
86 changed files with 472 additions and 318 deletions

View File

Before

Width:  |  Height:  |  Size: 274 B

After

Width:  |  Height:  |  Size: 274 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

View File

@@ -1312,7 +1312,7 @@ block.rotary-pump.name = Rotary Pump
block.thorium-reactor.name = Thorium Reactor block.thorium-reactor.name = Thorium Reactor
block.mass-driver.name = Mass Driver block.mass-driver.name = Mass Driver
block.blast-drill.name = Airblast Drill block.blast-drill.name = Airblast Drill
block.thermal-pump.name = Thermal Pump block.impulse-pump.name = Impulse Pump
block.thermal-generator.name = Thermal Generator block.thermal-generator.name = Thermal Generator
block.alloy-smelter.name = Alloy Smelter block.alloy-smelter.name = Alloy Smelter
block.mender.name = Mender block.mender.name = Mender
@@ -1512,7 +1512,7 @@ block.underflow-gate.description = Opposite of an overflow gate. Outputs to the
block.mass-driver.description = Long-range item transport structure. Collects batches of items and shoots them to other mass drivers. block.mass-driver.description = Long-range item transport structure. Collects batches of items and shoots them to other mass drivers.
block.mechanical-pump.description = Pumps and outputs liquids. Does not require power. block.mechanical-pump.description = Pumps and outputs liquids. Does not require power.
block.rotary-pump.description = Pumps and outputs liquids. Requires power. block.rotary-pump.description = Pumps and outputs liquids. Requires power.
block.thermal-pump.description = Pumps and outputs liquids. block.impulse-pump.description = Pumps and outputs liquids.
block.conduit.description = Moves liquids forward. Used in conjunction with pumps and other conduits. block.conduit.description = Moves liquids forward. Used in conjunction with pumps and other conduits.
block.pulse-conduit.description = Moves liquids forward. Transports faster and stores more than standard conduits. block.pulse-conduit.description = Moves liquids forward. Transports faster and stores more than standard conduits.
block.plated-conduit.description = Moves liquids forward. Does not accept input from the sides. Does not leak. block.plated-conduit.description = Moves liquids forward. Does not accept input from the sides. Does not leak.

View File

@@ -1126,7 +1126,7 @@ block.rotary-pump.name = Ротарны насос
block.thorium-reactor.name = Торыявы рэактар block.thorium-reactor.name = Торыявы рэактар
block.mass-driver.name = Электрамагнітная катапульта block.mass-driver.name = Электрамагнітная катапульта
block.blast-drill.name = Паветраная буравая ўстаноўка block.blast-drill.name = Паветраная буравая ўстаноўка
block.thermal-pump.name = Тэрмальны насос block.impulse-pump.name = Тэрмальны насос
block.thermal-generator.name = Тэрмальны генератар block.thermal-generator.name = Тэрмальны генератар
block.alloy-smelter.name = Плавільня кінэтычнага сплаву block.alloy-smelter.name = Плавільня кінэтычнага сплаву
block.mender.name = Рэгенератар block.mender.name = Рэгенератар
@@ -1278,7 +1278,7 @@ block.underflow-gate.description = Супрацьлегласць залішня
block.mass-driver.description = Самы прасунуты транспартны блок. Збірае некалькі прадметаў і затым страляе імі ў іншую катапульту на вялікай адлегласці. Патрабуецца энергія для працы. block.mass-driver.description = Самы прасунуты транспартны блок. Збірае некалькі прадметаў і затым страляе імі ў іншую катапульту на вялікай адлегласці. Патрабуецца энергія для працы.
block.mechanical-pump.description = Танны насос з нізкай прадукцыйнасцю, але без энергаспажывання. block.mechanical-pump.description = Танны насос з нізкай прадукцыйнасцю, але без энергаспажывання.
block.rotary-pump.description = Прасунутая помпа. Пампуе больш вадкасці, але патрабуе энергію. block.rotary-pump.description = Прасунутая помпа. Пампуе больш вадкасці, але патрабуе энергію.
block.thermal-pump.description = Найлепшая помпа. block.impulse-pump.description = Найлепшая помпа.
block.conduit.description = Асноўны блок транспарціроўкі вадкасці. Перамяшчае вадкасці наперад. Выкарыстоўваецца сумесна з помпамі і іншымі трубаправодамі. block.conduit.description = Асноўны блок транспарціроўкі вадкасці. Перамяшчае вадкасці наперад. Выкарыстоўваецца сумесна з помпамі і іншымі трубаправодамі.
block.pulse-conduit.description = Палепшаны блок транспарціроўкі вадкасці. Транспартуе вадкасці хутчэй і захоўвае больш, чым стандартныя трубаправоды. block.pulse-conduit.description = Палепшаны блок транспарціроўкі вадкасці. Транспартуе вадкасці хутчэй і захоўвае больш, чым стандартныя трубаправоды.
block.plated-conduit.description = Перамяшчае вадкасці з той жа хуткасцю, што і імпульсныя трубаправоды, але валодае большай трываласцю. Не бярэ вадкасці са бакоў, акрамя як ад іншых трубаправодаў. \nПротекает менш. block.plated-conduit.description = Перамяшчае вадкасці з той жа хуткасцю, што і імпульсныя трубаправоды, але валодае большай трываласцю. Не бярэ вадкасці са бакоў, акрамя як ад іншых трубаправодаў. \nПротекает менш.

View File

@@ -1238,7 +1238,7 @@ block.rotary-pump.name = Ротационна помпа
block.thorium-reactor.name = Ториев реактор block.thorium-reactor.name = Ториев реактор
block.mass-driver.name = Масов Преносител block.mass-driver.name = Масов Преносител
block.blast-drill.name = Въздушно свредло block.blast-drill.name = Въздушно свредло
block.thermal-pump.name = Термична Помпа block.impulse-pump.name = Термична Помпа
block.thermal-generator.name = Термичен Генератор block.thermal-generator.name = Термичен Генератор
block.alloy-smelter.name = Претопител за Импулсна сплав block.alloy-smelter.name = Претопител за Импулсна сплав
block.mender.name = Възстановител block.mender.name = Възстановител
@@ -1423,7 +1423,7 @@ block.underflow-gate.description = Насочва предмети напред
block.mass-driver.description = Структура за пренасяне на предмети на далечни растояния. Събира партиди от предмети и ги изстрелва до други Масови Преносители. block.mass-driver.description = Структура за пренасяне на предмети на далечни растояния. Събира партиди от предмети и ги изстрелва до други Масови Преносители.
block.mechanical-pump.description = Изпомпва течности. Не изисква електричество. block.mechanical-pump.description = Изпомпва течности. Не изисква електричество.
block.rotary-pump.description = Изпомпва течности. Изисква електричество. block.rotary-pump.description = Изпомпва течности. Изисква електричество.
block.thermal-pump.description = Изпомпва течности. block.impulse-pump.description = Изпомпва течности.
block.conduit.description = Пренася течности еднопосочно. Използва се в комбинация с помпи и други тръбопроводи. block.conduit.description = Пренася течности еднопосочно. Използва се в комбинация с помпи и други тръбопроводи.
block.pulse-conduit.description = Пренася течности еднопосочно. Пренася по - бързо и съхранява повече от стандартния тръбопровод. block.pulse-conduit.description = Пренася течности еднопосочно. Пренася по - бързо и съхранява повече от стандартния тръбопровод.
block.plated-conduit.description = Пренася течности еднопосочно. Не приема вход от страни. Не позволява течове. block.plated-conduit.description = Пренася течности еднопосочно. Не приема вход от страни. Не позволява течове.

View File

@@ -1188,7 +1188,7 @@ block.rotary-pump.name = Rotační čerpadlo
block.thorium-reactor.name = Thoriový reaktor block.thorium-reactor.name = Thoriový reaktor
block.mass-driver.name = Hromadný přenašeč block.mass-driver.name = Hromadný přenašeč
block.blast-drill.name = Tlakovzdušný vrt block.blast-drill.name = Tlakovzdušný vrt
block.thermal-pump.name = Tepelné čerpadlo block.impulse-pump.name = Tepelné čerpadlo
block.thermal-generator.name = Tepelný generátor block.thermal-generator.name = Tepelný generátor
block.alloy-smelter.name = Slitinová huť block.alloy-smelter.name = Slitinová huť
block.mender.name = Opravář block.mender.name = Opravář
@@ -1373,7 +1373,7 @@ block.underflow-gate.description = Pokud je směr do stran ucpán, posílá vstu
block.mass-driver.description = Konstrukce pro přepravu položek na velkou vzdálenost. Sesere dávku položek a vystřelí ji k dalšímu hromadnému přenašeči. block.mass-driver.description = Konstrukce pro přepravu položek na velkou vzdálenost. Sesere dávku položek a vystřelí ji k dalšímu hromadnému přenašeči.
block.mechanical-pump.description = Pumpuje kapalinu a předává ji dál. Nevyžaduje energii. block.mechanical-pump.description = Pumpuje kapalinu a předává ji dál. Nevyžaduje energii.
block.rotary-pump.description = Pumpuje kapalinu a předává ji dál. Vyžaduje energii. block.rotary-pump.description = Pumpuje kapalinu a předává ji dál. Vyžaduje energii.
block.thermal-pump.description = Pumpuje kapalinu a předává ji dál. block.impulse-pump.description = Pumpuje kapalinu a předává ji dál.
block.conduit.description = Přepravuje kapaliny vpřed. Používá se spolu s pumpami a dalším potrubím. block.conduit.description = Přepravuje kapaliny vpřed. Používá se spolu s pumpami a dalším potrubím.
block.pulse-conduit.description = Přepravuje kapaliny vpřed. Přepravuje kapaliny rychleji a ukládá jich více, než standadní potrubí. block.pulse-conduit.description = Přepravuje kapaliny vpřed. Přepravuje kapaliny rychleji a ukládá jich více, než standadní potrubí.
block.plated-conduit.description = Přepravuje kapaliny vpřed. Nepřijímá kapaliny ze stran. Nemá úniky. block.plated-conduit.description = Přepravuje kapaliny vpřed. Nepřijímá kapaliny ze stran. Nemá úniky.

View File

@@ -1126,7 +1126,7 @@ block.rotary-pump.name = Drejepumpe
block.thorium-reactor.name = Atomreaktor block.thorium-reactor.name = Atomreaktor
block.mass-driver.name = Kvante-katapult block.mass-driver.name = Kvante-katapult
block.blast-drill.name = Trykluftbor block.blast-drill.name = Trykluftbor
block.thermal-pump.name = Termisk Pumpe block.impulse-pump.name = Termisk Pumpe
block.thermal-generator.name = Termisk Generator block.thermal-generator.name = Termisk Generator
block.alloy-smelter.name = Bronze-digel block.alloy-smelter.name = Bronze-digel
block.mender.name = Reparatør block.mender.name = Reparatør
@@ -1276,7 +1276,7 @@ block.underflow-gate.description = Det modsatte af en overflods-låge. Outputter
block.mass-driver.description = Den ultimative transport-blok. Samler en masse genstande og slynger dem hovedkulds gennem luften til den kvante-katapult. block.mass-driver.description = Den ultimative transport-blok. Samler en masse genstande og slynger dem hovedkulds gennem luften til den kvante-katapult.
block.mechanical-pump.description = En hverdags-pumpe, der ikke engang kræver strøm. block.mechanical-pump.description = En hverdags-pumpe, der ikke engang kræver strøm.
block.rotary-pump.description = En drønhurtig pumpe. Pumper mere væske, kræver mere strøm. block.rotary-pump.description = En drønhurtig pumpe. Pumper mere væske, kræver mere strøm.
block.thermal-pump.description = Den allerbedste pumpe. block.impulse-pump.description = Den allerbedste pumpe.
block.conduit.description = Simpel væske-transport-blok. Transporterer væske fremad. Bruges sammen med pumper, eller i forlængelse af andre rør. block.conduit.description = Simpel væske-transport-blok. Transporterer væske fremad. Bruges sammen med pumper, eller i forlængelse af andre rør.
block.pulse-conduit.description = En avanceret væske-transport-blok. Transporterer væske hurtigere og opbevarer mere end normale rør. block.pulse-conduit.description = En avanceret væske-transport-blok. Transporterer væske hurtigere og opbevarer mere end normale rør.
block.plated-conduit.description = Transporterer væske lige så hurtigt som højhastigheds-rør. Kan ikke tage væske ind fra siderne.\nLækker mindre. block.plated-conduit.description = Transporterer væske lige så hurtigt som højhastigheds-rør. Kan ikke tage væske ind fra siderne.\nLækker mindre.

View File

@@ -1301,7 +1301,7 @@ block.rotary-pump.name = Rotierende Pumpe
block.thorium-reactor.name = Thorium-Reaktor block.thorium-reactor.name = Thorium-Reaktor
block.mass-driver.name = Massenbeschleuniger block.mass-driver.name = Massenbeschleuniger
block.blast-drill.name = Sprengluftbohrer block.blast-drill.name = Sprengluftbohrer
block.thermal-pump.name = Thermische Pumpe block.impulse-pump.name = Thermische Pumpe
block.thermal-generator.name = Thermischer Generator block.thermal-generator.name = Thermischer Generator
block.alloy-smelter.name = Legierungsschmelze block.alloy-smelter.name = Legierungsschmelze
block.mender.name = Reparateur block.mender.name = Reparateur
@@ -1495,7 +1495,7 @@ block.underflow-gate.description = Das Gegenteil eines Überlauftors. Gibt Mater
block.mass-driver.description = Ein Transportblock mit sehr hoher Reichweite. Sammelt mehrere Materialien und schießt sie zu einem verbundenen Massenbeschleuniger. block.mass-driver.description = Ein Transportblock mit sehr hoher Reichweite. Sammelt mehrere Materialien und schießt sie zu einem verbundenen Massenbeschleuniger.
block.mechanical-pump.description = Eine Pumpe, die keinen Strom benötigt. block.mechanical-pump.description = Eine Pumpe, die keinen Strom benötigt.
block.rotary-pump.description = Eine Pumpe, die Strom verbraucht. block.rotary-pump.description = Eine Pumpe, die Strom verbraucht.
block.thermal-pump.description = Eine Pumpe. block.impulse-pump.description = Eine Pumpe.
block.conduit.description = Transportiert Flüssigkeiten. Wird mit Extraktoren, Pumpen oder anderen Kanälen benutzt. block.conduit.description = Transportiert Flüssigkeiten. Wird mit Extraktoren, Pumpen oder anderen Kanälen benutzt.
block.pulse-conduit.description = Transportiert Flüssigkeiten. Transportiert Flüssigkeiten schneller und speichert mehr als ein Leitungsrohr. block.pulse-conduit.description = Transportiert Flüssigkeiten. Transportiert Flüssigkeiten schneller und speichert mehr als ein Leitungsrohr.
block.plated-conduit.description = Transportiert Flüssigkeiten. Nimmt keine Flüssigkeiten von der Seite an.\nHat keine Lecks. block.plated-conduit.description = Transportiert Flüssigkeiten. Nimmt keine Flüssigkeiten von der Seite an.\nHat keine Lecks.

View File

@@ -1306,7 +1306,7 @@ block.rotary-pump.name = Bomba Rotatoria
block.thorium-reactor.name = Reactor de Torio block.thorium-reactor.name = Reactor de Torio
block.mass-driver.name = Teletransportador de Masa block.mass-driver.name = Teletransportador de Masa
block.blast-drill.name = Taladro de explosión block.blast-drill.name = Taladro de explosión
block.thermal-pump.name = Bomba Térmica block.impulse-pump.name = Bomba Térmica
block.thermal-generator.name = Generador Térmico block.thermal-generator.name = Generador Térmico
block.alloy-smelter.name = Fundidor de Materia block.alloy-smelter.name = Fundidor de Materia
block.mender.name = Reparador block.mender.name = Reparador
@@ -1506,7 +1506,7 @@ block.underflow-gate.description = El opuesto de la compuerta de desborde. Sólo
block.mass-driver.description = Estructura de transporte de largo alcance. Acumula varios objetos y los dispara a otro del mismo tipo. block.mass-driver.description = Estructura de transporte de largo alcance. Acumula varios objetos y los dispara a otro del mismo tipo.
block.mechanical-pump.description = Extrae y bombea líquidos. Funciona sin energía. block.mechanical-pump.description = Extrae y bombea líquidos. Funciona sin energía.
block.rotary-pump.description = Extrae y bombea líquidos. Requiere energía. block.rotary-pump.description = Extrae y bombea líquidos. Requiere energía.
block.thermal-pump.description = Extrae y bombea líquidos. block.impulse-pump.description = Extrae y bombea líquidos.
block.conduit.description = Mueve líquidos hacia delante. Se usa junto con bombas y otros conductos. block.conduit.description = Mueve líquidos hacia delante. Se usa junto con bombas y otros conductos.
block.pulse-conduit.description = Transporta líquidos rápidamente y almacena más que los conductos estándar. block.pulse-conduit.description = Transporta líquidos rápidamente y almacena más que los conductos estándar.
block.plated-conduit.description = Transporta líquidos rápidamente pero no acepta líquidos por los lados. Resiste más ante fugas, por lo que no gotea. block.plated-conduit.description = Transporta líquidos rápidamente pero no acepta líquidos por los lados. Resiste más ante fugas, por lo que no gotea.

View File

@@ -1126,7 +1126,7 @@ block.rotary-pump.name = Labapump
block.thorium-reactor.name = Tooriumreaktor block.thorium-reactor.name = Tooriumreaktor
block.mass-driver.name = EM-katapult block.mass-driver.name = EM-katapult
block.blast-drill.name = Plahvatuspuur block.blast-drill.name = Plahvatuspuur
block.thermal-pump.name = Termopump block.impulse-pump.name = Termopump
block.thermal-generator.name = Termogeneraator block.thermal-generator.name = Termogeneraator
block.alloy-smelter.name = Voogsulatusahi block.alloy-smelter.name = Voogsulatusahi
block.mender.name = Parandaja block.mender.name = Parandaja
@@ -1278,7 +1278,7 @@ block.underflow-gate.description = The opposite of an overflow gate. Outputs to
block.mass-driver.description = Ülim ressursside transportimise vahend. Tulistab ressursse pika vahemaa taga asuva vastuvõtva katapuldini. Vajab töötamiseks energiat. block.mass-driver.description = Ülim ressursside transportimise vahend. Tulistab ressursse pika vahemaa taga asuva vastuvõtva katapuldini. Vajab töötamiseks energiat.
block.mechanical-pump.description = Odav ja aeglane pump, mis ei vaja töötamiseks energiat. block.mechanical-pump.description = Odav ja aeglane pump, mis ei vaja töötamiseks energiat.
block.rotary-pump.description = Täiustatud pump, mis pumpab paremini kui harilik pump, kuid vajab töötamiseks energiat. block.rotary-pump.description = Täiustatud pump, mis pumpab paremini kui harilik pump, kuid vajab töötamiseks energiat.
block.thermal-pump.description = Ülim pump, mis vajab töötamiseks palju energiat. block.impulse-pump.description = Ülim pump, mis vajab töötamiseks palju energiat.
block.conduit.description = Vedelike transportimise vahend, mis liigutab vedelikke edasi. Kasutatakse koos pumpade ja teiste torudega. block.conduit.description = Vedelike transportimise vahend, mis liigutab vedelikke edasi. Kasutatakse koos pumpade ja teiste torudega.
block.pulse-conduit.description = Täiustatud toru, mis transpordib ja hoiustab vedelikke kiiremini kui algeline toru. block.pulse-conduit.description = Täiustatud toru, mis transpordib ja hoiustab vedelikke kiiremini kui algeline toru.
block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less. block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.

View File

@@ -1126,7 +1126,7 @@ block.rotary-pump.name = Ponpa birakaria
block.thorium-reactor.name = Toriozko erreaktorea block.thorium-reactor.name = Toriozko erreaktorea
block.mass-driver.name = Mukulu igorlea block.mass-driver.name = Mukulu igorlea
block.blast-drill.name = Zurrusta zulagailua block.blast-drill.name = Zurrusta zulagailua
block.thermal-pump.name = Ponpa termikoa block.impulse-pump.name = Ponpa termikoa
block.thermal-generator.name = Sorgailu termikoa block.thermal-generator.name = Sorgailu termikoa
block.alloy-smelter.name = Aleazio urtzailea block.alloy-smelter.name = Aleazio urtzailea
block.mender.name = Bedezi block.mender.name = Bedezi
@@ -1278,7 +1278,7 @@ block.underflow-gate.description = The opposite of an overflow gate. Outputs to
block.mass-driver.description = Elementuen garraiorako bloke gorena. Hainbat elementu jaso eta beste mukulu-igorle bati jaurtitzen dizkio irismen handiarekin. Energia behar du jarduteko. block.mass-driver.description = Elementuen garraiorako bloke gorena. Hainbat elementu jaso eta beste mukulu-igorle bati jaurtitzen dizkio irismen handiarekin. Energia behar du jarduteko.
block.mechanical-pump.description = Ponpa merke bat, emari motelekoa baina ez du energiarik kontsumitzen. block.mechanical-pump.description = Ponpa merke bat, emari motelekoa baina ez du energiarik kontsumitzen.
block.rotary-pump.description = Ponpa aurreratu bat. Likido gehiago barreiatzen du, baina energia behar du. block.rotary-pump.description = Ponpa aurreratu bat. Likido gehiago barreiatzen du, baina energia behar du.
block.thermal-pump.description = Ponpa gorena. block.impulse-pump.description = Ponpa gorena.
block.conduit.description = Likidoen garraiorako oinarrizko blokea. Likidoak daramatza. Ponpa eta bestelako hodiekin batera erabilia. block.conduit.description = Likidoen garraiorako oinarrizko blokea. Likidoak daramatza. Ponpa eta bestelako hodiekin batera erabilia.
block.pulse-conduit.description = Likidoen garraiorako bloke aurreratua. Hodi arruntek baino azkarrago garraiatzen ditu likidoak eta edukiera handiagoa du. block.pulse-conduit.description = Likidoen garraiorako bloke aurreratua. Hodi arruntek baino azkarrago garraiatzen ditu likidoak eta edukiera handiagoa du.
block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less. block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.

View File

@@ -1126,7 +1126,7 @@ block.rotary-pump.name = Rotary Pump
block.thorium-reactor.name = Thorium Reactor block.thorium-reactor.name = Thorium Reactor
block.mass-driver.name = Massalinko block.mass-driver.name = Massalinko
block.blast-drill.name = Airblast Drill block.blast-drill.name = Airblast Drill
block.thermal-pump.name = Thermal Pump block.impulse-pump.name = Thermal Pump
block.thermal-generator.name = Lämpögeneraattori block.thermal-generator.name = Lämpögeneraattori
block.alloy-smelter.name = Alloy Smelter block.alloy-smelter.name = Alloy Smelter
block.mender.name = Mender block.mender.name = Mender
@@ -1278,7 +1278,7 @@ block.underflow-gate.description = The opposite of an overflow gate. Outputs to
block.mass-driver.description = The ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. Requires power to operate. block.mass-driver.description = The ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. Requires power to operate.
block.mechanical-pump.description = A cheap pump with slow output, but no power consumption. block.mechanical-pump.description = A cheap pump with slow output, but no power consumption.
block.rotary-pump.description = An advanced pump. Pumps more liquid, but requires power. block.rotary-pump.description = An advanced pump. Pumps more liquid, but requires power.
block.thermal-pump.description = The ultimate pump. block.impulse-pump.description = The ultimate pump.
block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits. block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits.
block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits. block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less. block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.

View File

@@ -1126,7 +1126,7 @@ block.rotary-pump.name = Rotary Pump
block.thorium-reactor.name = Thorium Reactor block.thorium-reactor.name = Thorium Reactor
block.mass-driver.name = Mass Driver block.mass-driver.name = Mass Driver
block.blast-drill.name = Airblast Drill block.blast-drill.name = Airblast Drill
block.thermal-pump.name = Thermal Pump block.impulse-pump.name = Thermal Pump
block.thermal-generator.name = Thermal Generator block.thermal-generator.name = Thermal Generator
block.alloy-smelter.name = Alloy Smelter block.alloy-smelter.name = Alloy Smelter
block.mender.name = Mender block.mender.name = Mender
@@ -1278,7 +1278,7 @@ block.underflow-gate.description = The opposite of an overflow gate. Outputs to
block.mass-driver.description = The ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. Requires power to operate. block.mass-driver.description = The ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. Requires power to operate.
block.mechanical-pump.description = A cheap pump with slow output, but no power consumption. block.mechanical-pump.description = A cheap pump with slow output, but no power consumption.
block.rotary-pump.description = An advanced pump. Pumps more liquid, but requires power. block.rotary-pump.description = An advanced pump. Pumps more liquid, but requires power.
block.thermal-pump.description = The ultimate pump. block.impulse-pump.description = The ultimate pump.
block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits. block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits.
block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits. block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less. block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.

View File

@@ -1314,7 +1314,7 @@ block.rotary-pump.name = Pompe Rotative
block.thorium-reactor.name = Réacteur à Thorium block.thorium-reactor.name = Réacteur à Thorium
block.mass-driver.name = Transporteur de masse block.mass-driver.name = Transporteur de masse
block.blast-drill.name = Foreuse à explosion block.blast-drill.name = Foreuse à explosion
block.thermal-pump.name = Pompe thermique block.impulse-pump.name = Pompe thermique
block.thermal-generator.name = Générateur thermique block.thermal-generator.name = Générateur thermique
block.alloy-smelter.name = Fonderie d'Alliage Superchargé block.alloy-smelter.name = Fonderie d'Alliage Superchargé
block.mender.name = Gardien block.mender.name = Gardien
@@ -1515,7 +1515,7 @@ block.underflow-gate.description = Le contraire d'une barrière de débordement.
block.mass-driver.description = Le moyen de transport de ressources ultime! Cette structure collecte des lots de ressources et les envoie à un autre transporteur de masse, sur une longue distance. Nécessite de l'énergie pour fonctionner. block.mass-driver.description = Le moyen de transport de ressources ultime! Cette structure collecte des lots de ressources et les envoie à un autre transporteur de masse, sur une longue distance. Nécessite de l'énergie pour fonctionner.
block.mechanical-pump.description = Une pompe basique et bon marché qui pompe lentement des liquides. Elle ne consomme pas d'énergie. block.mechanical-pump.description = Une pompe basique et bon marché qui pompe lentement des liquides. Elle ne consomme pas d'énergie.
block.rotary-pump.description = Une pompe avancée, plus rapide, mais utilisant de l'énergie. block.rotary-pump.description = Une pompe avancée, plus rapide, mais utilisant de l'énergie.
block.thermal-pump.description = La pompe ultime. block.impulse-pump.description = La pompe ultime.
block.conduit.description = Bloc de transport de liquide de base, faisant avancer les liquides. Utilisé avec des pompes et autres conduits. block.conduit.description = Bloc de transport de liquide de base, faisant avancer les liquides. Utilisé avec des pompes et autres conduits.
block.pulse-conduit.description = Conduit avancé permettant le transport de liquide. Transporte les liquides plus rapidement et en stocke plus que les conduits standards. block.pulse-conduit.description = Conduit avancé permettant le transport de liquide. Transporte les liquides plus rapidement et en stocke plus que les conduits standards.
block.plated-conduit.description = Déplace les liquides au même rythme que les conduits à impulsion, mais est renforcé et empêche les fuites en cas de rupture. N'accepte pas les liquides provenant des côtés, seuls les autres conduits peuvent le faire. block.plated-conduit.description = Déplace les liquides au même rythme que les conduits à impulsion, mais est renforcé et empêche les fuites en cas de rupture. N'accepte pas les liquides provenant des côtés, seuls les autres conduits peuvent le faire.

View File

@@ -1208,7 +1208,7 @@ block.rotary-pump.name = Rotary Pump
block.thorium-reactor.name = Thorium Reactor block.thorium-reactor.name = Thorium Reactor
block.mass-driver.name = Mass Driver block.mass-driver.name = Mass Driver
block.blast-drill.name = Airblast Drill block.blast-drill.name = Airblast Drill
block.thermal-pump.name = Thermal Pump block.impulse-pump.name = Thermal Pump
block.thermal-generator.name = Thermal Generator block.thermal-generator.name = Thermal Generator
block.alloy-smelter.name = Alloy Smelter block.alloy-smelter.name = Alloy Smelter
block.mender.name = Mender block.mender.name = Mender
@@ -1393,7 +1393,7 @@ block.underflow-gate.description = Csak akkor enged tovább nyersanyagokat előr
block.mass-driver.description = Nagy hatótávolságú nyeranyagszállító. Csomagokban lő át nyersanyagokat egy másik mass drivernek. block.mass-driver.description = Nagy hatótávolságú nyeranyagszállító. Csomagokban lő át nyersanyagokat egy másik mass drivernek.
block.mechanical-pump.description = Folyadékot szivattyúz. Nem igényel áramot. block.mechanical-pump.description = Folyadékot szivattyúz. Nem igényel áramot.
block.rotary-pump.description = Folyadékot szivattyúz. Árammal működik. block.rotary-pump.description = Folyadékot szivattyúz. Árammal működik.
block.thermal-pump.description = Folyadékot szivattyúz. Sokat termel, sok áramot fogyaszt. block.impulse-pump.description = Folyadékot szivattyúz. Sokat termel, sok áramot fogyaszt.
block.conduit.description = Folyadékot továbbít. block.conduit.description = Folyadékot továbbít.
block.pulse-conduit.description = Folyadékot továbbít. Gyorsabb és nagyobb tárolókapacitású, mint a sima conduit. block.pulse-conduit.description = Folyadékot továbbít. Gyorsabb és nagyobb tárolókapacitású, mint a sima conduit.
block.plated-conduit.description = Folyadékot továbbít. Nem fogad el folyadékot oldalról. Nem önti ki a folyadékot, ha nincs a végén semmi. block.plated-conduit.description = Folyadékot továbbít. Nem fogad el folyadékot oldalról. Nem önti ki a folyadékot, ha nincs a végén semmi.

View File

@@ -1308,7 +1308,7 @@ block.rotary-pump.name = Pompa Putaran
block.thorium-reactor.name = Reaktor Thorium block.thorium-reactor.name = Reaktor Thorium
block.mass-driver.name = Penggerak Massal block.mass-driver.name = Penggerak Massal
block.blast-drill.name = Bor Ledakan Udara block.blast-drill.name = Bor Ledakan Udara
block.thermal-pump.name = Pompa Suhu Panas block.impulse-pump.name = Pompa Suhu Panas
block.thermal-generator.name = Generator Panas block.thermal-generator.name = Generator Panas
block.alloy-smelter.name = Pelebur Paduan Logam block.alloy-smelter.name = Pelebur Paduan Logam
block.mender.name = Mender block.mender.name = Mender
@@ -1508,7 +1508,7 @@ block.underflow-gate.description = Kebalikan dari gerbang luap. Mengeluarkan bar
block.mass-driver.description = Blok transportasi barang jarak jauh. Membawa beberapa barang dan menembaknya ke penggerak massal lainnya. block.mass-driver.description = Blok transportasi barang jarak jauh. Membawa beberapa barang dan menembaknya ke penggerak massal lainnya.
block.mechanical-pump.description = Memompa dan mengeluarkan cairan. Tidak memerlukan tenaga. block.mechanical-pump.description = Memompa dan mengeluarkan cairan. Tidak memerlukan tenaga.
block.rotary-pump.description = Memompa dan mengeluarkan cairan. Menggunakan tenaga. block.rotary-pump.description = Memompa dan mengeluarkan cairan. Menggunakan tenaga.
block.thermal-pump.description = Memeompa dan mengluarkan cairan. block.impulse-pump.description = Memeompa dan mengluarkan cairan.
block.conduit.description = Memindahkan cairan ke depan. Digunakan dengan pompa dan saluran lainnya. block.conduit.description = Memindahkan cairan ke depan. Digunakan dengan pompa dan saluran lainnya.
block.pulse-conduit.description = Memindahkan cairan ke depan. Mengantarkan lebih cepat dan banyak daripada saluran biasa. block.pulse-conduit.description = Memindahkan cairan ke depan. Mengantarkan lebih cepat dan banyak daripada saluran biasa.
block.plated-conduit.description = Memindahkan cairan ke depan. Tidak menerima cairan dari samping. Tidak bocor. block.plated-conduit.description = Memindahkan cairan ke depan. Tidak menerima cairan dari samping. Tidak bocor.

View File

@@ -1188,7 +1188,7 @@ block.rotary-pump.name = Pompa a Turbina
block.thorium-reactor.name = Reattore al Torio block.thorium-reactor.name = Reattore al Torio
block.mass-driver.name = Lancia Materiali block.mass-driver.name = Lancia Materiali
block.blast-drill.name = Trivella ad Impulsi block.blast-drill.name = Trivella ad Impulsi
block.thermal-pump.name = Pompa Termica block.impulse-pump.name = Pompa Termica
block.thermal-generator.name = Generatore Termico block.thermal-generator.name = Generatore Termico
block.alloy-smelter.name = Altoforno block.alloy-smelter.name = Altoforno
block.mender.name = Riparatore block.mender.name = Riparatore
@@ -1371,7 +1371,7 @@ block.underflow-gate.description = L'esatto opposto del separatore per eccesso.
block.mass-driver.description = Struttura per il trasporto di oggetti a lungo raggio. Immagazzina lotti di oggetti e li spara ad un altro trasportatore di massa. block.mass-driver.description = Struttura per il trasporto di oggetti a lungo raggio. Immagazzina lotti di oggetti e li spara ad un altro trasportatore di massa.
block.mechanical-pump.description = Pompa liquidi. Non richiede energia. block.mechanical-pump.description = Pompa liquidi. Non richiede energia.
block.rotary-pump.description = Pompa liquidi. Richiede energia. block.rotary-pump.description = Pompa liquidi. Richiede energia.
block.thermal-pump.description = Pompa liquidi. block.impulse-pump.description = Pompa liquidi.
block.conduit.description = Trasporta i liquidi. Spesso usato insieme a pompe e altri condotti. block.conduit.description = Trasporta i liquidi. Spesso usato insieme a pompe e altri condotti.
block.pulse-conduit.description = Trasporta i liquidi più velocemente. Ha una capacità maggiore rispetto ai condotti tradizionali. block.pulse-conduit.description = Trasporta i liquidi più velocemente. Ha una capacità maggiore rispetto ai condotti tradizionali.
block.plated-conduit.description = Trasporta i liquidi. Non accetta liquidi dai lati. Non spande. block.plated-conduit.description = Trasporta i liquidi. Non accetta liquidi dai lati. Non spande.

View File

@@ -1312,7 +1312,7 @@ block.rotary-pump.name = ロータリーポンプ
block.thorium-reactor.name = トリウムリアクター block.thorium-reactor.name = トリウムリアクター
block.mass-driver.name = マスドライバー block.mass-driver.name = マスドライバー
block.blast-drill.name = エアブラストドリル block.blast-drill.name = エアブラストドリル
block.thermal-pump.name = サーマルポンプ block.impulse-pump.name = サーマルポンプ
block.thermal-generator.name = サーマル発電機 block.thermal-generator.name = サーマル発電機
block.alloy-smelter.name = 合金溶鉱炉 block.alloy-smelter.name = 合金溶鉱炉
block.mender.name = 修復機 block.mender.name = 修復機
@@ -1513,7 +1513,7 @@ block.underflow-gate.description = オーバーフローゲートの反対の機
block.mass-driver.description = 長距離の輸送が可能な上位アイテム輸送ブロックです。離れた別のマスドライバーにアイテムを発射します。 block.mass-driver.description = 長距離の輸送が可能な上位アイテム輸送ブロックです。離れた別のマスドライバーにアイテムを発射します。
block.mechanical-pump.description = 安価なポンプです。搬出速度は遅いですが、電力を使わず使用できます。 block.mechanical-pump.description = 安価なポンプです。搬出速度は遅いですが、電力を使わず使用できます。
block.rotary-pump.description = 高度なポンプです。電力が必要ですが、より多く搬出することができます。 block.rotary-pump.description = 高度なポンプです。電力が必要ですが、より多く搬出することができます。
block.thermal-pump.description = 最高性能のポンプです。 block.impulse-pump.description = 最高性能のポンプです。
block.conduit.description = 一般的な液体輸送ブロックです。液体版のコンベアーです。ポンプや他のパイプに使うことができます。 block.conduit.description = 一般的な液体輸送ブロックです。液体版のコンベアーです。ポンプや他のパイプに使うことができます。
block.pulse-conduit.description = 高度な液体輸送ブロックです。通常のパイプより速くたくさんの液体を輸送することができます。 block.pulse-conduit.description = 高度な液体輸送ブロックです。通常のパイプより速くたくさんの液体を輸送することができます。
block.plated-conduit.description = パルスパイプと同じ速度で液体を輸送することができ、耐久性に優れています。\nまた、パイプ以外による側面への入力を受け入れません。 block.plated-conduit.description = パルスパイプと同じ速度で液体を輸送することができ、耐久性に優れています。\nまた、パイプ以外による側面への入力を受け入れません。

View File

@@ -1308,7 +1308,7 @@ block.rotary-pump.name = 동력 펌프
block.thorium-reactor.name = 토륨 원자로 block.thorium-reactor.name = 토륨 원자로
block.mass-driver.name = 매스 드라이버 block.mass-driver.name = 매스 드라이버
block.blast-drill.name = 압축 공기분사 드릴 block.blast-drill.name = 압축 공기분사 드릴
block.thermal-pump.name = 화력 펌프 block.impulse-pump.name = 화력 펌프
block.thermal-generator.name = 지열 발전기 block.thermal-generator.name = 지열 발전기
block.alloy-smelter.name = 설금 제련소 block.alloy-smelter.name = 설금 제련소
block.mender.name = 멘더 block.mender.name = 멘더
@@ -1508,7 +1508,7 @@ block.underflow-gate.description = 오버플로 게이트의 반대. 왼쪽 및
block.mass-driver.description = 최고의 자원 운송 블록. 여러 자원을 모아서 장거리에 걸쳐 다른 매스 드라이버에게 발사합니다. 작동하려면 전원이 필요합니다. block.mass-driver.description = 최고의 자원 운송 블록. 여러 자원을 모아서 장거리에 걸쳐 다른 매스 드라이버에게 발사합니다. 작동하려면 전원이 필요합니다.
block.mechanical-pump.description = 느린 속도로 액체를 퍼 올리지만, 전력을 사용하지 않는 펌프입니다. block.mechanical-pump.description = 느린 속도로 액체를 퍼 올리지만, 전력을 사용하지 않는 펌프입니다.
block.rotary-pump.description = 고급 펌프. 더 많은 액체를 퍼 올리지만, 전력이 필요합니다. block.rotary-pump.description = 고급 펌프. 더 많은 액체를 퍼 올리지만, 전력이 필요합니다.
block.thermal-pump.description = 가장 강력한 펌프. block.impulse-pump.description = 가장 강력한 펌프.
block.conduit.description = 기본 액체 운송 블록. 액체를 앞으로 이동시킵니다. 펌프 및 기타 파이프와 함께 사용됩니다. block.conduit.description = 기본 액체 운송 블록. 액체를 앞으로 이동시킵니다. 펌프 및 기타 파이프와 함께 사용됩니다.
block.pulse-conduit.description = 고급 액체 운송 블록. 액체를 더 빠르게 운반하고 표준 파이프보다 더 많이 저장합니다. block.pulse-conduit.description = 고급 액체 운송 블록. 액체를 더 빠르게 운반하고 표준 파이프보다 더 많이 저장합니다.
block.plated-conduit.description = 펄스 파이프와 같은 속도로 이동하지만 더 높은 방어력을 가지고 있습니다. 측면에서 액체들을 받아들이지 않습니다.\n액체가 누설하지 않습니다. block.plated-conduit.description = 펄스 파이프와 같은 속도로 이동하지만 더 높은 방어력을 가지고 있습니다. 측면에서 액체들을 받아들이지 않습니다.\n액체가 누설하지 않습니다.
@@ -1877,7 +1877,7 @@ block.underflow-gate.details =
block.mass-driver.details = [lightgray][비공식][]발사하려면 최소 아이템 10개가 필요하다. block.mass-driver.details = [lightgray][비공식][]발사하려면 최소 아이템 10개가 필요하다.
block.mechanical-pump.details = block.mechanical-pump.details =
block.rotary-pump.details = block.rotary-pump.details =
block.thermal-pump.details = block.impulse-pump.details =
block.conduit.details = block.conduit.details =
block.pulse-conduit.details = block.pulse-conduit.details =
block.plated-conduit.details = block.plated-conduit.details =

View File

@@ -1126,7 +1126,7 @@ block.rotary-pump.name = Rotacinis Siurblys
block.thorium-reactor.name = Torio Reaktorius block.thorium-reactor.name = Torio Reaktorius
block.mass-driver.name = Elektromagnetinė Katapulta block.mass-driver.name = Elektromagnetinė Katapulta
block.blast-drill.name = Oro Srovės Grąžtas block.blast-drill.name = Oro Srovės Grąžtas
block.thermal-pump.name = Šiluminė Pompa block.impulse-pump.name = Šiluminė Pompa
block.thermal-generator.name = Terminis Generatorius block.thermal-generator.name = Terminis Generatorius
block.alloy-smelter.name = Lydinio Lydykla block.alloy-smelter.name = Lydinio Lydykla
block.mender.name = Taisytojas block.mender.name = Taisytojas
@@ -1278,7 +1278,7 @@ block.underflow-gate.description = Veikia priešingai nei perpildymo užtvara. I
block.mass-driver.description = Tobuliausias daiktų gabenimo blokas. Surenka daiktus ir šauna juos į kitą elektromagnetinę katapultą didelias atstumais. Veikimui reikalauja energijos. block.mass-driver.description = Tobuliausias daiktų gabenimo blokas. Surenka daiktus ir šauna juos į kitą elektromagnetinę katapultą didelias atstumais. Veikimui reikalauja energijos.
block.mechanical-pump.description = pigi pompa su lėta išeiga, bet nenaudoja energijos. block.mechanical-pump.description = pigi pompa su lėta išeiga, bet nenaudoja energijos.
block.rotary-pump.description = Pažangesnė pompa. Pumpuoja daugiau skysčių, bet reikalauja energijos. block.rotary-pump.description = Pažangesnė pompa. Pumpuoja daugiau skysčių, bet reikalauja energijos.
block.thermal-pump.description = Tobuliausia pompa. block.impulse-pump.description = Tobuliausia pompa.
block.conduit.description = Paprastas vandens gabenimo blokas. Gabena skysčius į priekį. Naudojamas kartu su siurbliais ir kitais vamzdžiais. block.conduit.description = Paprastas vandens gabenimo blokas. Gabena skysčius į priekį. Naudojamas kartu su siurbliais ir kitais vamzdžiais.
block.pulse-conduit.description = Pažangus vandens gabenimo blokas. Gabena skysčius greičiau ir talpina daugiau skysčių negu standartinis vamzdis. block.pulse-conduit.description = Pažangus vandens gabenimo blokas. Gabena skysčius greičiau ir talpina daugiau skysčių negu standartinis vamzdis.
block.plated-conduit.description = Gabena skysčius tokiuo pačiu greičiu kaip pulsinis vamzdis, tačiau turi daugiau šarvų. Nepriima skysčių iš šonų, išskyrus kitus vamzdžius.\nMažiau nutekina skysčių. block.plated-conduit.description = Gabena skysčius tokiuo pačiu greičiu kaip pulsinis vamzdis, tačiau turi daugiau šarvų. Nepriima skysčių iš šonų, išskyrus kitus vamzdžius.\nMažiau nutekina skysčių.

View File

@@ -1126,7 +1126,7 @@ block.rotary-pump.name = Rotary Pump
block.thorium-reactor.name = Thoriumreactor block.thorium-reactor.name = Thoriumreactor
block.mass-driver.name = Mass Driver block.mass-driver.name = Mass Driver
block.blast-drill.name = Airblast Drill block.blast-drill.name = Airblast Drill
block.thermal-pump.name = Thermische Pomp block.impulse-pump.name = Thermische Pomp
block.thermal-generator.name = Thermische Generator block.thermal-generator.name = Thermische Generator
block.alloy-smelter.name = Legering Smelterij block.alloy-smelter.name = Legering Smelterij
block.mender.name = Mender block.mender.name = Mender
@@ -1278,7 +1278,7 @@ block.underflow-gate.description = The opposite of an overflow gate. Outputs to
block.mass-driver.description = Ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. block.mass-driver.description = Ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range.
block.mechanical-pump.description = A cheap pump with slow output, but no power consumption. block.mechanical-pump.description = A cheap pump with slow output, but no power consumption.
block.rotary-pump.description = An advanced pump which doubles up speed by using power. block.rotary-pump.description = An advanced pump which doubles up speed by using power.
block.thermal-pump.description = The ultimate pump. Three times as fast as a mechanical pump and the only pump which is able to retrieve lava. block.impulse-pump.description = The ultimate pump. Three times as fast as a mechanical pump and the only pump which is able to retrieve lava.
block.conduit.description = Basic liquid transport block. Works like a conveyor, but with liquids. Best used with extractors, pumps or other conduits. block.conduit.description = Basic liquid transport block. Works like a conveyor, but with liquids. Best used with extractors, pumps or other conduits.
block.pulse-conduit.description = Advanced liquid transport block. Transports liquids faster and stores more than standard conduits. block.pulse-conduit.description = Advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less. block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.

View File

@@ -1126,7 +1126,7 @@ block.rotary-pump.name = Rotary Pump
block.thorium-reactor.name = Thorium Reactor block.thorium-reactor.name = Thorium Reactor
block.mass-driver.name = Mass Driver block.mass-driver.name = Mass Driver
block.blast-drill.name = Airblast Drill block.blast-drill.name = Airblast Drill
block.thermal-pump.name = Thermal Pump block.impulse-pump.name = Thermal Pump
block.thermal-generator.name = Thermal Generator block.thermal-generator.name = Thermal Generator
block.alloy-smelter.name = Alloy Smelter block.alloy-smelter.name = Alloy Smelter
block.mender.name = Mender block.mender.name = Mender
@@ -1278,7 +1278,7 @@ block.underflow-gate.description = The opposite of an overflow gate. Outputs to
block.mass-driver.description = Ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. block.mass-driver.description = Ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range.
block.mechanical-pump.description = A cheap pump with slow output, but no power consumption. block.mechanical-pump.description = A cheap pump with slow output, but no power consumption.
block.rotary-pump.description = An advanced pump which doubles up speed by using power. block.rotary-pump.description = An advanced pump which doubles up speed by using power.
block.thermal-pump.description = The ultimate pump. block.impulse-pump.description = The ultimate pump.
block.conduit.description = Basic liquid transport block. Works like a conveyor, but with liquids. Best used with extractors, pumps or other conduits. block.conduit.description = Basic liquid transport block. Works like a conveyor, but with liquids. Best used with extractors, pumps or other conduits.
block.pulse-conduit.description = Advanced liquid transport block. Transports liquids faster and stores more than standard conduits. block.pulse-conduit.description = Advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less. block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.

View File

@@ -1254,7 +1254,7 @@ block.rotary-pump.name = Wirowa Pompa
block.thorium-reactor.name = Reaktor Torowy block.thorium-reactor.name = Reaktor Torowy
block.mass-driver.name = Katapulta Masy block.mass-driver.name = Katapulta Masy
block.blast-drill.name = Wiertło Wybuchowe block.blast-drill.name = Wiertło Wybuchowe
block.thermal-pump.name = Pompa Termalna block.impulse-pump.name = Pompa Termalna
block.thermal-generator.name = Generator Termalny block.thermal-generator.name = Generator Termalny
block.alloy-smelter.name = Piec Mieszający block.alloy-smelter.name = Piec Mieszający
block.mender.name = Naprawiacz block.mender.name = Naprawiacz
@@ -1439,7 +1439,7 @@ block.underflow-gate.description = Odwrotność bramy przepełnieniowej, który
block.mass-driver.description = Najlepszy blok do transportu przedmiotów. Zbiera wiele przedmiotów naraz a potem wystrzeliwuje je do kolejnej katapulty masy na bardzo duże odległości. block.mass-driver.description = Najlepszy blok do transportu przedmiotów. Zbiera wiele przedmiotów naraz a potem wystrzeliwuje je do kolejnej katapulty masy na bardzo duże odległości.
block.mechanical-pump.description = Tania pompa o niskiej wydajności. Nie wymaga prądu. block.mechanical-pump.description = Tania pompa o niskiej wydajności. Nie wymaga prądu.
block.rotary-pump.description = Zaawansowana pompa. Pompuje więcej cieczy, ale wymaga zasilania. block.rotary-pump.description = Zaawansowana pompa. Pompuje więcej cieczy, ale wymaga zasilania.
block.thermal-pump.description = Najlepsza pompa. Pompuje ogromne ilości cieczy, ale wymaga zasilania. block.impulse-pump.description = Najlepsza pompa. Pompuje ogromne ilości cieczy, ale wymaga zasilania.
block.conduit.description = Podstawowy blok do transportowania cieczy. Używany w połączeniu z pompami i innymi rurami. block.conduit.description = Podstawowy blok do transportowania cieczy. Używany w połączeniu z pompami i innymi rurami.
block.pulse-conduit.description = Zaawansowany blok do transportowania cieczy. Transportuje je szybciej i magazynuje więcej niż standardowe rury. block.pulse-conduit.description = Zaawansowany blok do transportowania cieczy. Transportuje je szybciej i magazynuje więcej niż standardowe rury.
block.plated-conduit.description = Przesyła ciecze z taką samą szybkością co rura tytanowa, ale jest bardziej odporna. Wejściami bocznymi mogą być tylko inne rury.\nWycieka z niej mniej cieczy. block.plated-conduit.description = Przesyła ciecze z taką samą szybkością co rura tytanowa, ale jest bardziej odporna. Wejściami bocznymi mogą być tylko inne rury.\nWycieka z niej mniej cieczy.

View File

@@ -1292,7 +1292,7 @@ block.rotary-pump.name = Bomba rotatória
block.thorium-reactor.name = Reator nuclear block.thorium-reactor.name = Reator nuclear
block.mass-driver.name = Catapulta eletromagnética block.mass-driver.name = Catapulta eletromagnética
block.blast-drill.name = Broca de impacto block.blast-drill.name = Broca de impacto
block.thermal-pump.name = Bomba térmica block.impulse-pump.name = Bomba térmica
block.thermal-generator.name = Gerador térmico block.thermal-generator.name = Gerador térmico
block.alloy-smelter.name = Fundidora de liga block.alloy-smelter.name = Fundidora de liga
block.mender.name = Reparador block.mender.name = Reparador
@@ -1459,7 +1459,7 @@ block.underflow-gate.description = O oposto de um portão de sobrecarga. Apenas
block.mass-driver.description = Estrutura de transporte de itens de longo alcance. Coleta grupos de itens e os atira em outras catapultas electromagnéticas. block.mass-driver.description = Estrutura de transporte de itens de longo alcance. Coleta grupos de itens e os atira em outras catapultas electromagnéticas.
block.mechanical-pump.description = Uma bomba barata com baixa saída de líquidos que não consome energia. block.mechanical-pump.description = Uma bomba barata com baixa saída de líquidos que não consome energia.
block.rotary-pump.description = Uma bomba avançada. Bombeia mais líquido, mas requer energia. block.rotary-pump.description = Uma bomba avançada. Bombeia mais líquido, mas requer energia.
block.thermal-pump.description = A bomba final. Bombeia líquidos com o máximo de eficiência, mas requer uma quantidade maior de energia. block.impulse-pump.description = A bomba final. Bombeia líquidos com o máximo de eficiência, mas requer uma quantidade maior de energia.
block.conduit.description = Bloco básico de transporte de líquidos. Move líquidos para a frente. Usado em conjunto com bombas e outros canos. block.conduit.description = Bloco básico de transporte de líquidos. Move líquidos para a frente. Usado em conjunto com bombas e outros canos.
block.pulse-conduit.description = Bloco avancado de transporte de líquido. Transporta líquidos mais rápido e armazena mais que os canos padrões. block.pulse-conduit.description = Bloco avancado de transporte de líquido. Transporta líquidos mais rápido e armazena mais que os canos padrões.
block.plated-conduit.description = Move líquidos na mesma velocidade que canos de pulso, mas possui mais blindagem. Não aceita fluidos dos lados de nada além de outros canos.\nVaza menos. block.plated-conduit.description = Move líquidos na mesma velocidade que canos de pulso, mas possui mais blindagem. Não aceita fluidos dos lados de nada além de outros canos.\nVaza menos.

View File

@@ -1126,7 +1126,7 @@ block.rotary-pump.name = Bomba Rotatória
block.thorium-reactor.name = Reator a Tório block.thorium-reactor.name = Reator a Tório
block.mass-driver.name = Drive de Massa block.mass-driver.name = Drive de Massa
block.blast-drill.name = Broca de Explosão block.blast-drill.name = Broca de Explosão
block.thermal-pump.name = Bomba térmica block.impulse-pump.name = Bomba térmica
block.thermal-generator.name = Gerador Térmico block.thermal-generator.name = Gerador Térmico
block.alloy-smelter.name = Fundidora de Liga block.alloy-smelter.name = Fundidora de Liga
block.mender.name = Reparador block.mender.name = Reparador
@@ -1278,7 +1278,7 @@ block.underflow-gate.description = O oposto de um portão de transbordamento. Sa
block.mass-driver.description = Bloco de transporte de itens supremo. Coleta itens severos e atira eles em outro mass driver de uma longa distancia. block.mass-driver.description = Bloco de transporte de itens supremo. Coleta itens severos e atira eles em outro mass driver de uma longa distancia.
block.mechanical-pump.description = Uma bomba barata com baixa saída de líquidos, mas sem consumo de energia. block.mechanical-pump.description = Uma bomba barata com baixa saída de líquidos, mas sem consumo de energia.
block.rotary-pump.description = Uma bomba avançada. Bombeia mais líquido, mas requer energia. block.rotary-pump.description = Uma bomba avançada. Bombeia mais líquido, mas requer energia.
block.thermal-pump.description = A bomba final. block.impulse-pump.description = A bomba final.
block.conduit.description = Bloco básico de transporte de líquidos. Move líquidos para a frente. Usado em conjunto com bombas e outros canos. block.conduit.description = Bloco básico de transporte de líquidos. Move líquidos para a frente. Usado em conjunto com bombas e outros canos.
block.pulse-conduit.description = Bloco avancado de transporte de liquido. Transporta liquidos mais rápido e armazena mais que os canos padrões. block.pulse-conduit.description = Bloco avancado de transporte de liquido. Transporta liquidos mais rápido e armazena mais que os canos padrões.
block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less. block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.

View File

@@ -1297,7 +1297,7 @@ block.rotary-pump.name = Pompă Rotativă
block.thorium-reactor.name = Reactor de Toriu block.thorium-reactor.name = Reactor de Toriu
block.mass-driver.name = Distributor în Masă block.mass-driver.name = Distributor în Masă
block.blast-drill.name = Burghiu Tornadă block.blast-drill.name = Burghiu Tornadă
block.thermal-pump.name = Pompă Termală block.impulse-pump.name = Pompă Termală
block.thermal-generator.name = Generator Termal block.thermal-generator.name = Generator Termal
block.alloy-smelter.name = Topitorie Aliaj block.alloy-smelter.name = Topitorie Aliaj
block.mender.name = Reparator block.mender.name = Reparator
@@ -1491,7 +1491,7 @@ block.underflow-gate.description = Opusul porții de revărsare. Transportă mat
block.mass-driver.description = Structură de transport al materialelor pe distanțe mari. Adună mai multe materiale și apoi le lansează către un alt distributor în masă. block.mass-driver.description = Structură de transport al materialelor pe distanțe mari. Adună mai multe materiale și apoi le lansează către un alt distributor în masă.
block.mechanical-pump.description = Pompează lichide din mediul înconjurător. Nu necesită electricitate. block.mechanical-pump.description = Pompează lichide din mediul înconjurător. Nu necesită electricitate.
block.rotary-pump.description = Pompează lichide din mediul înconjurător. Necesită electricitate. block.rotary-pump.description = Pompează lichide din mediul înconjurător. Necesită electricitate.
block.thermal-pump.description = Pompează lichide din mediul înconjurător. block.impulse-pump.description = Pompează lichide din mediul înconjurător.
block.conduit.description = Împinge lichidele în față. Folosit cu pompe și alte conducte. block.conduit.description = Împinge lichidele în față. Folosit cu pompe și alte conducte.
block.pulse-conduit.description = Împinge lichidele în față. Transportă lichidele mai rapid și stochează mai mult decât conductele standard. block.pulse-conduit.description = Împinge lichidele în față. Transportă lichidele mai rapid și stochează mai mult decât conductele standard.
block.plated-conduit.description = Împinge lichidele în față. Nu acceptă lichide din lateral de la altceva în afară de conducte. Lichidul nu se varsă la exterior. block.plated-conduit.description = Împinge lichidele în față. Nu acceptă lichide din lateral de la altceva în afară de conducte. Lichidul nu se varsă la exterior.

View File

@@ -1309,7 +1309,7 @@ block.rotary-pump.name = Роторный насос
block.thorium-reactor.name = Ториевый реактор block.thorium-reactor.name = Ториевый реактор
block.mass-driver.name = Электромагнитная катапульта block.mass-driver.name = Электромагнитная катапульта
block.blast-drill.name = Воздушная буровая установка block.blast-drill.name = Воздушная буровая установка
block.thermal-pump.name = Термальный насос block.impulse-pump.name = Термальный насос
block.thermal-generator.name = Термальный генератор block.thermal-generator.name = Термальный генератор
block.alloy-smelter.name = Плавильня кинетического сплава block.alloy-smelter.name = Плавильня кинетического сплава
block.mender.name = Регенератор block.mender.name = Регенератор
@@ -1511,7 +1511,7 @@ block.underflow-gate.description = Противоположность избыт
block.mass-driver.description = Постройка для дальней транспортировки предметов. Собирает несколько предметов и затем стреляет ими в другие катапульты. block.mass-driver.description = Постройка для дальней транспортировки предметов. Собирает несколько предметов и затем стреляет ими в другие катапульты.
block.mechanical-pump.description = Перекачивает и выводит жидкости. Не требует энергию. block.mechanical-pump.description = Перекачивает и выводит жидкости. Не требует энергию.
block.rotary-pump.description = Перекачивает и выводит жидкости. Требует энергию. block.rotary-pump.description = Перекачивает и выводит жидкости. Требует энергию.
block.thermal-pump.description = Перекачивает и выводит жидкости. block.impulse-pump.description = Перекачивает и выводит жидкости.
block.conduit.description = Перемещает жидкости вперёд. Используется вместе с насосами и другими трубопроводами. block.conduit.description = Перемещает жидкости вперёд. Используется вместе с насосами и другими трубопроводами.
block.pulse-conduit.description = Перемещает жидкости вперёд. Работает быстрее и вмещает в себе больше, чем стандартный трубопровод. block.pulse-conduit.description = Перемещает жидкости вперёд. Работает быстрее и вмещает в себе больше, чем стандартный трубопровод.
block.plated-conduit.description = Перемещает жидкости вперёд. Не принимает ввод по бокам. Не протекает. block.plated-conduit.description = Перемещает жидкости вперёд. Не принимает ввод по бокам. Не протекает.

View File

@@ -1301,7 +1301,7 @@ block.rotary-pump.name = Obrtna pumpa
block.thorium-reactor.name = Nuklearni reaktor block.thorium-reactor.name = Nuklearni reaktor
block.mass-driver.name = Akcelerator block.mass-driver.name = Akcelerator
block.blast-drill.name = Vazdušna bušilica block.blast-drill.name = Vazdušna bušilica
block.thermal-pump.name = Termalna pumpa block.impulse-pump.name = Termalna pumpa
block.thermal-generator.name = Termalni generator block.thermal-generator.name = Termalni generator
block.alloy-smelter.name = Topionica impulsne legure block.alloy-smelter.name = Topionica impulsne legure
block.mender.name = Popravljač block.mender.name = Popravljač
@@ -1495,7 +1495,7 @@ block.underflow-gate.description = Opposite of an overflow gate. Outputs to the
block.mass-driver.description = Long-range item transport structure. Collects batches of items and shoots them to other mass drivers. block.mass-driver.description = Long-range item transport structure. Collects batches of items and shoots them to other mass drivers.
block.mechanical-pump.description = Pumps and outputs liquids. Does not require power. block.mechanical-pump.description = Pumps and outputs liquids. Does not require power.
block.rotary-pump.description = Pumps and outputs liquids. Requires power. block.rotary-pump.description = Pumps and outputs liquids. Requires power.
block.thermal-pump.description = Pumps and outputs liquids. block.impulse-pump.description = Pumps and outputs liquids.
block.conduit.description = Moves liquids forward. Used in conjunction with pumps and other conduits. block.conduit.description = Moves liquids forward. Used in conjunction with pumps and other conduits.
block.pulse-conduit.description = Moves liquids forward. Transports faster and stores more than standard conduits. block.pulse-conduit.description = Moves liquids forward. Transports faster and stores more than standard conduits.
block.plated-conduit.description = Moves liquids forward. Does not accept input from the sides. Does not leak. block.plated-conduit.description = Moves liquids forward. Does not accept input from the sides. Does not leak.

View File

@@ -1126,7 +1126,7 @@ block.rotary-pump.name = Rotary Pump
block.thorium-reactor.name = Thorium Reactor block.thorium-reactor.name = Thorium Reactor
block.mass-driver.name = Mass Driver block.mass-driver.name = Mass Driver
block.blast-drill.name = Airblast Drill block.blast-drill.name = Airblast Drill
block.thermal-pump.name = Thermal Pump block.impulse-pump.name = Thermal Pump
block.thermal-generator.name = Thermal Generator block.thermal-generator.name = Thermal Generator
block.alloy-smelter.name = Alloy Smelter block.alloy-smelter.name = Alloy Smelter
block.mender.name = Mender block.mender.name = Mender
@@ -1278,7 +1278,7 @@ block.underflow-gate.description = The opposite of an overflow gate. Outputs to
block.mass-driver.description = The ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. Requires power to operate. block.mass-driver.description = The ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. Requires power to operate.
block.mechanical-pump.description = A cheap pump with slow output, but no power consumption. block.mechanical-pump.description = A cheap pump with slow output, but no power consumption.
block.rotary-pump.description = An advanced pump. Pumps more liquid, but requires power. block.rotary-pump.description = An advanced pump. Pumps more liquid, but requires power.
block.thermal-pump.description = The ultimate pump. block.impulse-pump.description = The ultimate pump.
block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits. block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits.
block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits. block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less. block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.

View File

@@ -1308,7 +1308,7 @@ block.rotary-pump.name = ปั๊มโรตารี่
block.thorium-reactor.name = เตาปฏิกรณ์ทอเรี่ยม block.thorium-reactor.name = เตาปฏิกรณ์ทอเรี่ยม
block.mass-driver.name = เครื่องโอนถ่ายมวล block.mass-driver.name = เครื่องโอนถ่ายมวล
block.blast-drill.name = เครื่องขุดแอร์บลาสต์ block.blast-drill.name = เครื่องขุดแอร์บลาสต์
block.thermal-pump.name = ปั๊มความร้อน block.impulse-pump.name = ปั๊มความร้อน
block.thermal-generator.name = เครื่องกำเนิดไฟฟ้าพลังอัคคี block.thermal-generator.name = เครื่องกำเนิดไฟฟ้าพลังอัคคี
block.alloy-smelter.name = เครื่องหลอมอัลลอย block.alloy-smelter.name = เครื่องหลอมอัลลอย
block.mender.name = เครื่องซ่อมแซม block.mender.name = เครื่องซ่อมแซม
@@ -1518,7 +1518,7 @@ block.underflow-gate.description = ตรงข้ามกับประตู
block.mass-driver.description = บล็อกขนส่งไอเท็มทางไกล รวบรวมไอเท็มจำนวนหนึ่งแล้ว\nยิงไปหาเครื่องโอนถ่ายมวลอีกเครื่องที่อยู่ไกลออกไป block.mass-driver.description = บล็อกขนส่งไอเท็มทางไกล รวบรวมไอเท็มจำนวนหนึ่งแล้ว\nยิงไปหาเครื่องโอนถ่ายมวลอีกเครื่องที่อยู่ไกลออกไป
block.mechanical-pump.description = ปั้มของเหลวขึ้นมา ไม่ใช้พลังงาน block.mechanical-pump.description = ปั้มของเหลวขึ้นมา ไม่ใช้พลังงาน
block.rotary-pump.description = ปั๊มของเหลวได้มากขึ้น แต่ต้องใช้พลังงาน block.rotary-pump.description = ปั๊มของเหลวได้มากขึ้น แต่ต้องใช้พลังงาน
block.thermal-pump.description = ปั๊มขั้นสุดยอด ปั้มของเหลวขึ้นมาได้เป็นจำนวนมาก block.impulse-pump.description = ปั๊มขั้นสุดยอด ปั้มของเหลวขึ้นมาได้เป็นจำนวนมาก
block.conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า ใช้ร่วมกับปั๊มและท่อน้ำอื่นๆ block.conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า ใช้ร่วมกับปั๊มและท่อน้ำอื่นๆ
block.pulse-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า เคลื่อนย้ายได้เร็วขึ้นและเก็บของเหลวได้เยอะกว่าท่อน้ำธรรมดา block.pulse-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า เคลื่อนย้ายได้เร็วขึ้นและเก็บของเหลวได้เยอะกว่าท่อน้ำธรรมดา
block.plated-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า ไม่รับของเหลวจากด้านข้างนอกจากท่อน้ำด้วยกันเอง\nไม่รั่ว และมีเกราะที่หนากว่า block.plated-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า ไม่รับของเหลวจากด้านข้างนอกจากท่อน้ำด้วยกันเอง\nไม่รั่ว และมีเกราะที่หนากว่า

View File

@@ -1126,7 +1126,7 @@ block.rotary-pump.name = donen boru
block.thorium-reactor.name = Thorium Reaktoru block.thorium-reactor.name = Thorium Reaktoru
block.mass-driver.name = kütle surucusu block.mass-driver.name = kütle surucusu
block.blast-drill.name = Patlatici kazici block.blast-drill.name = Patlatici kazici
block.thermal-pump.name = Termal pompa block.impulse-pump.name = Termal pompa
block.thermal-generator.name = Magma jeneratoru block.thermal-generator.name = Magma jeneratoru
block.alloy-smelter.name = Alloy eritici block.alloy-smelter.name = Alloy eritici
block.mender.name = Mender block.mender.name = Mender
@@ -1278,7 +1278,7 @@ block.underflow-gate.description = The opposite of an overflow gate. Outputs to
block.mass-driver.description = Ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. block.mass-driver.description = Ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range.
block.mechanical-pump.description = A cheap pump with slow output, but no power consumption. block.mechanical-pump.description = A cheap pump with slow output, but no power consumption.
block.rotary-pump.description = An advanced pump which doubles up speed by using power. block.rotary-pump.description = An advanced pump which doubles up speed by using power.
block.thermal-pump.description = The ultimate pump. Three times as fast as a mechanical pump and the only pump which is able to retrieve lava. block.impulse-pump.description = The ultimate pump. Three times as fast as a mechanical pump and the only pump which is able to retrieve lava.
block.conduit.description = Basic liquid transport block. Works like a conveyor, but with liquids. Best used with extractors, pumps or other conduits. block.conduit.description = Basic liquid transport block. Works like a conveyor, but with liquids. Best used with extractors, pumps or other conduits.
block.pulse-conduit.description = Advanced liquid transport block. Transports liquids faster and stores more than standard conduits. block.pulse-conduit.description = Advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less. block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.

View File

@@ -1307,7 +1307,7 @@ block.rotary-pump.name = Döner Pompa
block.thorium-reactor.name = Toryum Reaktörü block.thorium-reactor.name = Toryum Reaktörü
block.mass-driver.name = Kütle Sürücüsü block.mass-driver.name = Kütle Sürücüsü
block.blast-drill.name = Hava Patlamalı Matkap block.blast-drill.name = Hava Patlamalı Matkap
block.thermal-pump.name = Termal Pompa block.impulse-pump.name = Termal Pompa
block.thermal-generator.name = Termal Jeneratör block.thermal-generator.name = Termal Jeneratör
block.alloy-smelter.name = Alaşım Fırını block.alloy-smelter.name = Alaşım Fırını
block.mender.name = Tamirci block.mender.name = Tamirci
@@ -1508,7 +1508,7 @@ block.underflow-gate.description = Taşma geçidinin zıttıdır. Sol ve sağ ta
block.mass-driver.description = En gelişmiş materyal taşıma bloğu. bir miktar materyalı alır ve onları uzak mesafedeki bir başka kütle sürücüsüne ateşler. Çalışması için enerji gerekir. block.mass-driver.description = En gelişmiş materyal taşıma bloğu. bir miktar materyalı alır ve onları uzak mesafedeki bir başka kütle sürücüsüne ateşler. Çalışması için enerji gerekir.
block.mechanical-pump.description = Hiç enerji harcamayan, düşük çıktılı, ucuz bir pompa. block.mechanical-pump.description = Hiç enerji harcamayan, düşük çıktılı, ucuz bir pompa.
block.rotary-pump.description = Daha gelişmiş bir pompa. Daha fazla sıvı depolar ama çalışması için enerji gerekir. block.rotary-pump.description = Daha gelişmiş bir pompa. Daha fazla sıvı depolar ama çalışması için enerji gerekir.
block.thermal-pump.description = En iyi pompa. Çalışması için enerji gerekir. block.impulse-pump.description = En iyi pompa. Çalışması için enerji gerekir.
block.conduit.description = Temel sıvı taşıma bloğu. Sıvıları ileri taşır. Pompalar ve diğer borularla birlikte kullanılır. block.conduit.description = Temel sıvı taşıma bloğu. Sıvıları ileri taşır. Pompalar ve diğer borularla birlikte kullanılır.
block.pulse-conduit.description = Gelişmiş bir sıvı taşıma bloğu. Sıvıları normal borulardan daha hızlı taşır ve onlardan daha fazla sıvı alır. block.pulse-conduit.description = Gelişmiş bir sıvı taşıma bloğu. Sıvıları normal borulardan daha hızlı taşır ve onlardan daha fazla sıvı alır.
block.plated-conduit.description = Sıvıları dalga borusuyla aynı güçte taşır ancak daha fazla zırha sahiptir. Borular dışında başka bir şekilde yandan sıvı kabul etmez.\nDaha az sızıntı yapar. block.plated-conduit.description = Sıvıları dalga borusuyla aynı güçte taşır ancak daha fazla zırha sahiptir. Borular dışında başka bir şekilde yandan sıvı kabul etmez.\nDaha az sızıntı yapar.

View File

@@ -1265,7 +1265,7 @@ block.rotary-pump.name = Роторний насос
block.thorium-reactor.name = Торієвий реактор block.thorium-reactor.name = Торієвий реактор
block.mass-driver.name = Електромагнітна катапульта block.mass-driver.name = Електромагнітна катапульта
block.blast-drill.name = Бурова установка block.blast-drill.name = Бурова установка
block.thermal-pump.name = Тепловий насос block.impulse-pump.name = Тепловий насос
block.thermal-generator.name = Теплогенератор block.thermal-generator.name = Теплогенератор
block.alloy-smelter.name = Сплавовий завод block.alloy-smelter.name = Сплавовий завод
block.mender.name = Ремонтник block.mender.name = Ремонтник
@@ -1461,7 +1461,7 @@ block.underflow-gate.description = Повна протилежність над
block.mass-driver.description = Найкращий блок для транспортування предметів. Збирає кілька предметів, а потім вистрілює їх до іншої електромагнітної катапульти на велику відстань. Для роботи потребує енергію. block.mass-driver.description = Найкращий блок для транспортування предметів. Збирає кілька предметів, а потім вистрілює їх до іншої електромагнітної катапульти на велику відстань. Для роботи потребує енергію.
block.mechanical-pump.description = Дешевий насос із повільним виходом, але не потребує енергоспоживання. block.mechanical-pump.description = Дешевий насос із повільним виходом, але не потребує енергоспоживання.
block.rotary-pump.description = Удосконалений насос. Насоси більше викачують, але потребують енергію. block.rotary-pump.description = Удосконалений насос. Насоси більше викачують, але потребують енергію.
block.thermal-pump.description = Найкращий насос. block.impulse-pump.description = Найкращий насос.
block.conduit.description = Пересуває рідини вперед. Застосовується спільно з насосами та іншими трубопроводами. block.conduit.description = Пересуває рідини вперед. Застосовується спільно з насосами та іншими трубопроводами.
block.pulse-conduit.description = Пересуває рідини вперед. Швидше транспортує і зберігає більше рідини, ніж стандартні трубопроводи. block.pulse-conduit.description = Пересуває рідини вперед. Швидше транспортує і зберігає більше рідини, ніж стандартні трубопроводи.
block.plated-conduit.description = Пересуває рідини вперед. Не приймає рідин із боків окрім інших трубопроводів. Не протікає. block.plated-conduit.description = Пересуває рідини вперед. Не приймає рідин із боків окрім інших трубопроводів. Не протікає.

View File

@@ -1308,7 +1308,7 @@ block.rotary-pump.name = Bơm điện
block.thorium-reactor.name = Lò phản ứng Thorium block.thorium-reactor.name = Lò phản ứng Thorium
block.mass-driver.name = Máy phóng điện từ block.mass-driver.name = Máy phóng điện từ
block.blast-drill.name = Máy khoan thủy lực block.blast-drill.name = Máy khoan thủy lực
block.thermal-pump.name = Bơm nhiệt block.impulse-pump.name = Bơm nhiệt
block.thermal-generator.name = Máy phát nhiệt điện block.thermal-generator.name = Máy phát nhiệt điện
block.alloy-smelter.name = Lò luyện hợp kim block.alloy-smelter.name = Lò luyện hợp kim
block.mender.name = Máy sửa chữa block.mender.name = Máy sửa chữa
@@ -1508,7 +1508,7 @@ block.underflow-gate.description = Ngược với cổng tràn, chỉ đưa vậ
block.mass-driver.description = Cấu trúc vận chuyển vật phẩm tầm xa. Thu thập các lô vật phẩm và bắn chúng cho các máy phóng điện từ khác. block.mass-driver.description = Cấu trúc vận chuyển vật phẩm tầm xa. Thu thập các lô vật phẩm và bắn chúng cho các máy phóng điện từ khác.
block.mechanical-pump.description = Bơm chất lỏng, không yêu cầu năng lượng. block.mechanical-pump.description = Bơm chất lỏng, không yêu cầu năng lượng.
block.rotary-pump.description = Bơm chất lỏng, yêu cầu năng lượng. block.rotary-pump.description = Bơm chất lỏng, yêu cầu năng lượng.
block.thermal-pump.description = Bơm chất lỏng. block.impulse-pump.description = Bơm chất lỏng.
block.conduit.description = Đẩy chất lỏng đến trước, dùng với bơm và các ống dẫn khác. block.conduit.description = Đẩy chất lỏng đến trước, dùng với bơm và các ống dẫn khác.
block.pulse-conduit.description = Đẩy chất lỏng đến trước, vận chuyển nhanh và trữ nhiều hơn so với ống tiêu chuẩn. block.pulse-conduit.description = Đẩy chất lỏng đến trước, vận chuyển nhanh và trữ nhiều hơn so với ống tiêu chuẩn.
block.plated-conduit.description = Đẩy chất lỏng đến trước, không nhận đầu vào ở bên, không bị rò rỉ. block.plated-conduit.description = Đẩy chất lỏng đến trước, không nhận đầu vào ở bên, không bị rò rỉ.

View File

@@ -1309,7 +1309,7 @@ block.rotary-pump.name = 回转泵
block.thorium-reactor.name = 钍反应堆 block.thorium-reactor.name = 钍反应堆
block.mass-driver.name = 质量驱动器 block.mass-driver.name = 质量驱动器
block.blast-drill.name = 爆破钻头 block.blast-drill.name = 爆破钻头
block.thermal-pump.name = 热能泵 block.impulse-pump.name = 热能泵
block.thermal-generator.name = 热能发电机 block.thermal-generator.name = 热能发电机
block.alloy-smelter.name = 合金冶炼厂 block.alloy-smelter.name = 合金冶炼厂
block.mender.name = 修理器 block.mender.name = 修理器
@@ -1509,7 +1509,7 @@ block.underflow-gate.description = 与溢流门相反,当两侧均堵塞时才
block.mass-driver.description = 远距离物品传输建筑,收集若干物品后将其发射到远处的另一个质量驱动器。 block.mass-driver.description = 远距离物品传输建筑,收集若干物品后将其发射到远处的另一个质量驱动器。
block.mechanical-pump.description = 泵送液体,不需要电力。 block.mechanical-pump.description = 泵送液体,不需要电力。
block.rotary-pump.description = 泵送液体,需要电力。 block.rotary-pump.description = 泵送液体,需要电力。
block.thermal-pump.description = 泵送液体,需要大量电力。 block.impulse-pump.description = 泵送液体,需要大量电力。
block.conduit.description = 向前方传输液体。 与泵或者其他导管联合使用。 block.conduit.description = 向前方传输液体。 与泵或者其他导管联合使用。
block.pulse-conduit.description = 向前方传输液体。 比普通导管传输液体更快,且能储存更多液体。 block.pulse-conduit.description = 向前方传输液体。 比普通导管传输液体更快,且能储存更多液体。
block.plated-conduit.description = 向前方传输液体,不接受侧面输入。 不会发生泄露。 block.plated-conduit.description = 向前方传输液体,不接受侧面输入。 不会发生泄露。

View File

@@ -1301,7 +1301,7 @@ block.rotary-pump.name = 迴旋泵
block.thorium-reactor.name = 釷反應堆 block.thorium-reactor.name = 釷反應堆
block.mass-driver.name = 質量驅動器 block.mass-driver.name = 質量驅動器
block.blast-drill.name = 氣爆鑽頭 block.blast-drill.name = 氣爆鑽頭
block.thermal-pump.name = 熱能泵 block.impulse-pump.name = 熱能泵
block.thermal-generator.name = 地熱發電機 block.thermal-generator.name = 地熱發電機
block.alloy-smelter.name = 合金冶煉廠 block.alloy-smelter.name = 合金冶煉廠
block.mender.name = 修理方塊 block.mender.name = 修理方塊
@@ -1495,7 +1495,7 @@ block.underflow-gate.description = 反向的溢流器。如果側面被阻擋,
block.mass-driver.description = 終極物品運輸方塊。收集大量物品,然後將它們射向另一個質量驅動器。需要能源以運作。 block.mass-driver.description = 終極物品運輸方塊。收集大量物品,然後將它們射向另一個質量驅動器。需要能源以運作。
block.mechanical-pump.description = 一種便宜的泵,輸出速度慢,但不使用能量。 block.mechanical-pump.description = 一種便宜的泵,輸出速度慢,但不使用能量。
block.rotary-pump.description = 高級的泵。抽更多液體,但需要能量。 block.rotary-pump.description = 高級的泵。抽更多液體,但需要能量。
block.thermal-pump.description = 終極的泵。 block.impulse-pump.description = 終極的泵。
block.conduit.description = 基本液體運輸方塊。將液體往前輸送。用於提取器、泵或其他管線。 block.conduit.description = 基本液體運輸方塊。將液體往前輸送。用於提取器、泵或其他管線。
block.pulse-conduit.description = 高級的液體運輸方塊。比標準管線更快地輸送並儲存更多液體。 block.pulse-conduit.description = 高級的液體運輸方塊。比標準管線更快地輸送並儲存更多液體。
block.plated-conduit.description = 用和脈衝管線相同的速率運送液體,但有更強的裝甲。除了其他管線以外,不會接受來自側面的其他液體\n比較不會漏液。 block.plated-conduit.description = 用和脈衝管線相同的速率運送液體,但有更強的裝甲。除了其他管線以外,不會接受來自側面的其他液體\n比較不會漏液。

View File

@@ -108,7 +108,7 @@
63627=mass-driver|block-mass-driver-ui 63627=mass-driver|block-mass-driver-ui
63626=mechanical-pump|block-mechanical-pump-ui 63626=mechanical-pump|block-mechanical-pump-ui
63625=rotary-pump|block-rotary-pump-ui 63625=rotary-pump|block-rotary-pump-ui
63624=thermal-pump|block-thermal-pump-ui 63624=impulse-pump|block-impulse-pump-ui
63623=conduit|block-conduit-ui 63623=conduit|block-conduit-ui
63622=pulse-conduit|block-pulse-conduit-ui 63622=pulse-conduit|block-pulse-conduit-ui
63621=plated-conduit|block-plated-conduit-ui 63621=plated-conduit|block-plated-conduit-ui
@@ -436,3 +436,8 @@
63270=heat-reactor|block-heat-reactor-ui 63270=heat-reactor|block-heat-reactor-ui
63269=core-bastion|block-core-bastion-ui 63269=core-bastion|block-core-bastion-ui
63268=incite|unit-incite-ui 63268=incite|unit-incite-ui
63267=oxidizer|block-oxidizer-ui
63266=reinforced-pump|block-reinforced-pump-ui
63265=oxide|item-oxide-ui
63264=oxygen|liquid-oxygen-ui
63263=hydrogen|liquid-hydrogen-ui

Binary file not shown.

View File

@@ -60,7 +60,7 @@ public class Blocks implements ContentList{
//crafting //crafting
siliconSmelter, siliconCrucible, siliconArcFurnace, kiln, graphitePress, plastaniumCompressor, multiPress, phaseWeaver, surgeSmelter, pyratiteMixer, blastMixer, cryofluidMixer, siliconSmelter, siliconCrucible, siliconArcFurnace, kiln, graphitePress, plastaniumCompressor, multiPress, phaseWeaver, surgeSmelter, pyratiteMixer, blastMixer, cryofluidMixer,
melter, separator, disassembler, sporePress, pulverizer, incinerator, coalCentrifuge, melter, separator, disassembler, sporePress, pulverizer, incinerator, coalCentrifuge,
heatReactor, carbideCrucible, oxidizer, heatReactor, carbideCrucible,
cellSynthesisChamber, cellSynthesisChamber,
//sandbox //sandbox
@@ -75,13 +75,16 @@ public class Blocks implements ContentList{
//transport //transport
conveyor, titaniumConveyor, plastaniumConveyor, armoredConveyor, distributor, junction, itemBridge, phaseConveyor, sorter, invertedSorter, router, conveyor, titaniumConveyor, plastaniumConveyor, armoredConveyor, distributor, junction, itemBridge, phaseConveyor, sorter, invertedSorter, router,
overflowGate, underflowGate, massDriver, overflowGate, underflowGate, massDriver,
//transport - alternate
duct, ductRouter, ductBridge, ductUnloader, duct, ductRouter, ductBridge, ductUnloader,
surgeConveyor, surgeRouter, surgeConveyor, surgeRouter,
//liquid //liquid
mechanicalPump, rotaryPump, thermalPump, conduit, pulseConduit, platedConduit, liquidRouter, liquidContainer, liquidTank, liquidJunction, bridgeConduit, phaseConduit, mechanicalPump, rotaryPump, impulsePump, conduit, pulseConduit, platedConduit, liquidRouter, liquidContainer, liquidTank, liquidJunction, bridgeConduit, phaseConduit,
reinforcedConduit, reinforcedBridgeConduit, reinforcedLiquidRouter, reinforcedLiquidContainer, reinforcedLiquidTank, //liquid - reinforced
reinforcedPump, reinforcedConduit, reinforcedBridgeConduit, reinforcedLiquidRouter, reinforcedLiquidContainer, reinforcedLiquidTank,
//power //power
combustionGenerator, thermalGenerator, steamGenerator, differentialGenerator, rtgGenerator, solarPanel, largeSolarPanel, thoriumReactor, combustionGenerator, thermalGenerator, steamGenerator, differentialGenerator, rtgGenerator, solarPanel, largeSolarPanel, thoriumReactor,
@@ -943,11 +946,21 @@ public class Blocks implements ContentList{
consumes.power(0.50f); consumes.power(0.50f);
}}; }};
oxidizer = new HeatProducer("oxidizer"){{
requirements(Category.crafting, with(Items.tungsten, 60, Items.graphite, 30));
//TODO bigger?
size = 2;
//TODO multi liquid output
//converts oxygen (?) + beryllium into heat + oxide
}};
heatReactor = new HeatProducer("heat-reactor"){{ heatReactor = new HeatProducer("heat-reactor"){{
//TODO quadvent //TODO quadvent
//TODO coolant?
requirements(Category.crafting, with(Items.tungsten, 60, Items.graphite, 30)); requirements(Category.crafting, with(Items.tungsten, 60, Items.graphite, 30));
size = 3; size = 3;
consumeTime = 60f * 10f; craftTime = 60f * 10f;
consumes.item(Items.fissileMatter, 1); consumes.item(Items.fissileMatter, 1);
}}; }};
@@ -1370,7 +1383,7 @@ public class Blocks implements ContentList{
size = 2; size = 2;
}}; }};
thermalPump = new Pump("thermal-pump"){{ impulsePump = new Pump("impulse-pump"){{
requirements(Category.liquid, with(Items.copper, 80, Items.metaglass, 90, Items.silicon, 30, Items.titanium, 40, Items.thorium, 35)); requirements(Category.liquid, with(Items.copper, 80, Items.metaglass, 90, Items.silicon, 30, Items.titanium, 40, Items.thorium, 35));
pumpAmount = 0.22f; pumpAmount = 0.22f;
consumes.power(1.3f); consumes.power(1.3f);
@@ -1439,6 +1452,21 @@ public class Blocks implements ContentList{
consumes.power(0.30f); consumes.power(0.30f);
}}; }};
//reinforced stuff
//TODO different name
reinforcedPump = new Pump("reinforced-pump"){{
requirements(Category.liquid, with(Items.beryllium, 70, Items.tungsten, 20, Items.silicon, 20));
//TODO perhaps something else?
consumes.item(Items.beryllium);
pumpAmount = 0.4f;
consumes.power(0.5f);
liquidCapacity = 40f;
hasPower = true;
size = 2;
}};
reinforcedConduit = new ArmoredConduit("reinforced-conduit"){{ reinforcedConduit = new ArmoredConduit("reinforced-conduit"){{
requirements(Category.liquid, with(Items.beryllium, 2, Items.graphite, 1)); requirements(Category.liquid, with(Items.beryllium, 2, Items.graphite, 1));
botColor = Pal.darkestMetal; botColor = Pal.darkestMetal;

View File

@@ -8,7 +8,7 @@ public class Items implements ContentList{
public static Item public static Item
scrap, copper, lead, graphite, coal, titanium, thorium, silicon, plastanium, scrap, copper, lead, graphite, coal, titanium, thorium, silicon, plastanium,
phaseFabric, surgeAlloy, sporePod, sand, blastCompound, pyratite, metaglass, phaseFabric, surgeAlloy, sporePod, sand, blastCompound, pyratite, metaglass,
beryllium, fissileMatter, dormantCyst, tungsten, carbide; beryllium, tungsten, oxide, carbide, fissileMatter, dormantCyst;
@Override @Override
public void load(){ public void load(){
@@ -98,6 +98,19 @@ public class Items implements ContentList{
cost = 1.3f; cost = 1.3f;
}}; }};
tungsten = new Item("tungsten", Color.valueOf("768a9a")){{
hardness = 5;
cost = 1.5f;
}};
oxide = new Item("oxide", Color.valueOf("e4ffd6")){{
cost = 1.1f;
}};
carbide = new Item("carbide", Color.valueOf("89769a")){{
cost = 1.3f;
}};
fissileMatter = new Item("fissile-matter", Color.valueOf("5e988d")){{ fissileMatter = new Item("fissile-matter", Color.valueOf("5e988d")){{
radioactivity = 1.5f; radioactivity = 1.5f;
}}; }};
@@ -105,14 +118,5 @@ public class Items implements ContentList{
dormantCyst = new Item("dormant-cyst", Color.valueOf("df824d")){{ dormantCyst = new Item("dormant-cyst", Color.valueOf("df824d")){{
flammability = 0.1f; flammability = 0.1f;
}}; }};
tungsten = new Item("tungsten", Color.valueOf("768a9a")){{
hardness = 5;
cost = 1.5f;
}};
carbide = new Item("carbide", Color.valueOf("89769a")){{
cost = 1.3f;
}};
} }
} }

View File

@@ -5,7 +5,8 @@ import mindustry.ctype.*;
import mindustry.type.*; import mindustry.type.*;
public class Liquids implements ContentList{ public class Liquids implements ContentList{
public static Liquid water, slag, oil, cryofluid, neoplasm; public static Liquid water, slag, oil, cryofluid, neoplasm,
ozone, hydrogen;
@Override @Override
public void load(){ public void load(){
@@ -55,5 +56,21 @@ public class Liquids implements ContentList{
colorFrom = Color.valueOf("f98f4a"); colorFrom = Color.valueOf("f98f4a");
colorTo = Color.valueOf("9e172c"); colorTo = Color.valueOf("9e172c");
}}; }};
//TODO reactivity, etc
ozone = new Liquid("ozone", Color.valueOf("bdd7ff")){{
gas = true;
barColor = Color.valueOf("97bdf7");
explosiveness = 1f;
flammability = 1f;
}};
//TODO combustion
hydrogen = new Liquid("hydrogen", Color.valueOf("e8d1ff")){{
gas = true;
barColor = Color.valueOf("c599f0");
}};
//TODO dicyanoacetylene
} }
} }

View File

@@ -104,7 +104,7 @@ public class TechTree implements ContentList{
}); });
node(rotaryPump, () -> { node(rotaryPump, () -> {
node(thermalPump, () -> { node(impulsePump, () -> {
}); });
}); });

View File

@@ -572,6 +572,11 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
} }
public void dumpLiquid(Liquid liquid, float scaling){ public void dumpLiquid(Liquid liquid, float scaling){
dumpLiquid(liquid, scaling, -1);
}
/** @param outputDir output liquid direction relative to rotation, or -1 to use any direction. */
public void dumpLiquid(Liquid liquid, float scaling, int outputDir){
int dump = this.cdump; int dump = this.cdump;
if(liquids.get(liquid) <= 0.0001f) return; if(liquids.get(liquid) <= 0.0001f) return;
@@ -581,6 +586,9 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
for(int i = 0; i < proximity.size; i++){ for(int i = 0; i < proximity.size; i++){
incrementDump(proximity.size); incrementDump(proximity.size);
Building other = proximity.get((i + dump) % proximity.size); Building other = proximity.get((i + dump) % proximity.size);
if(outputDir != -1 && (relativeTo(other) + rotation) % 4 != outputDir) return;
other = other.getLiquidDestination(self(), liquid); other = other.getLiquidDestination(self(), liquid);
if(other != null && other.team == team && other.block.hasLiquids && canDumpLiquid(other, liquid) && other.liquids != null){ if(other != null && other.team == team && other.block.hasLiquids && canDumpLiquid(other, liquid) && other.liquids != null){
@@ -1211,13 +1219,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
public void displayBars(Table table){ public void displayBars(Table table){
for(Func<Building, Bar> bar : block.bars.list()){ for(Func<Building, Bar> bar : block.bars.list()){
//TODO fix conclusively table.add(bar.get(self())).growX();
try{ table.row();
table.add(bar.get(self())).growX();
table.row();
}catch(ClassCastException e){
break;
}
} }
} }

View File

@@ -128,13 +128,13 @@ public class Drawf{
} }
public static void liquid(TextureRegion region, float x, float y, float alpha, Color color, float rotation){ public static void liquid(TextureRegion region, float x, float y, float alpha, Color color, float rotation){
Draw.color(color, alpha); Draw.color(color, alpha * color.a);
Draw.rect(region, x, y, rotation); Draw.rect(region, x, y, rotation);
Draw.color(); Draw.color();
} }
public static void liquid(TextureRegion region, float x, float y, float alpha, Color color){ public static void liquid(TextureRegion region, float x, float y, float alpha, Color color){
Draw.color(color, alpha); Draw.color(color, alpha * color.a);
Draw.rect(region, x, y); Draw.rect(region, x, y);
Draw.color(); Draw.color();
} }

View File

@@ -59,7 +59,8 @@ public abstract class SaveFileReader{
"cryofluidmixer", "cryofluid-mixer", "cryofluidmixer", "cryofluid-mixer",
"block-forge", "constructor", "block-forge", "constructor",
"block-unloader", "payload-unloader", "block-unloader", "payload-unloader",
"block-loader", "payload-loader" "block-loader", "payload-loader",
"thermal-pump", "impulse-pump"
); );
public static final ObjectMap<String, String> modContentNameMap = ObjectMap.of( public static final ObjectMap<String, String> modContentNameMap = ObjectMap.of(

View File

@@ -14,9 +14,12 @@ import mindustry.world.meta.*;
import static mindustry.entities.Puddles.*; import static mindustry.entities.Puddles.*;
/** A better name for this class would be "fluid", but it's too late for that. */
public class Liquid extends UnlockableContent{ public class Liquid extends UnlockableContent{
protected static final Rand rand = new Rand(); protected static final Rand rand = new Rand();
/** TODO If true, this fluid is treated as a gas (and does not create puddles) */
public boolean gas = false;
/** Color used in pipes and on the ground. */ /** Color used in pipes and on the ground. */
public Color color; public Color color;
/** Color of this liquid in gas form. */ /** Color of this liquid in gas form. */
@@ -58,6 +61,22 @@ public class Liquid extends UnlockableContent{
this(name, new Color(Color.black)); this(name, new Color(Color.black));
} }
@Override
public void init(){
super.init();
if(gas){
//always "boils", it's a gas
boilPoint = -1;
//ensure no accidental global mutation
color = color.cpy();
//all gases are transparent
color.a = 0.5f;
//for gases, gas color is implicitly their color
gasColor = color;
}
}
/** @return true if this liquid will boil in this global environment. */ /** @return true if this liquid will boil in this global environment. */
public boolean willBoil(){ public boolean willBoil(){
return Attribute.heat.env() >= boilPoint; return Attribute.heat.env() >= boilPoint;

View File

@@ -30,19 +30,11 @@ public class Bar extends Element{
public Bar(Prov<CharSequence> name, Prov<Color> color, Floatp fraction){ public Bar(Prov<CharSequence> name, Prov<Color> color, Floatp fraction){
this.fraction = fraction; this.fraction = fraction;
try{ lastValue = value = Mathf.clamp(fraction.get());
lastValue = value = Mathf.clamp(fraction.get());
}catch(Exception e){ //getting the fraction may involve referring to invalid data
lastValue = value = 0f;
}
update(() -> { update(() -> {
try{ this.name = name.get();
this.name = name.get(); this.blinkColor.set(color.get());
this.blinkColor.set(color.get()); setColor(color.get());
setColor(color.get());
}catch(Exception e){ //getting the fraction may involve referring to invalid data
this.name = "";
}
}); });
} }
@@ -85,12 +77,8 @@ public class Bar extends Element{
public void draw(){ public void draw(){
if(fraction == null) return; if(fraction == null) return;
float computed; float computed = Mathf.clamp(fraction.get());
try{
computed = Mathf.clamp(fraction.get());
}catch(Exception e){ //getting the fraction may involve referring to invalid data
computed = 0f;
}
if(lastValue > computed){ if(lastValue > computed){
blink = 1f; blink = 1f;

View File

@@ -454,10 +454,14 @@ public class Block extends UnlockableContent{
Liquid liquid = consumes.<ConsumeLiquid>get(ConsumeType.liquid).liquid; Liquid liquid = consumes.<ConsumeLiquid>get(ConsumeType.liquid).liquid;
current = entity -> liquid; current = entity -> liquid;
}else{ }else{
current = entity -> entity.liquids == null ? Liquids.water : entity.liquids.current(); current = entity -> entity.liquids.current();
} }
bars.add("liquid", entity -> new Bar(() -> entity.liquids.get(current.get(entity)) <= 0.001f ? Core.bundle.get("bar.liquid") : current.get(entity).localizedName,
() -> current.get(entity).barColor(), () -> entity == null || entity.liquids == null ? 0f : entity.liquids.get(current.get(entity)) / liquidCapacity)); bars.add("liquid", entity -> new Bar(
() -> entity.liquids.get(current.get(entity)) <= 0.001f ? Core.bundle.get("bar.liquid") : current.get(entity).localizedName,
() -> current.get(entity).barColor(),
() -> entity.liquids.get(current.get(entity)) / liquidCapacity)
);
} }
if(hasPower && consumes.hasPower()){ if(hasPower && consumes.hasPower()){
@@ -465,12 +469,20 @@ public class Block extends UnlockableContent{
boolean buffered = cons.buffered; boolean buffered = cons.buffered;
float capacity = cons.capacity; float capacity = cons.capacity;
bars.add("power", entity -> new Bar(() -> buffered ? Core.bundle.format("bar.poweramount", Float.isNaN(entity.power.status * capacity) ? "<ERROR>" : UI.formatAmount((int)(entity.power.status * capacity))) : bars.add("power", entity -> new Bar(
Core.bundle.get("bar.power"), () -> Pal.powerBar, () -> Mathf.zero(cons.requestedPower(entity)) && entity.power.graph.getPowerProduced() + entity.power.graph.getBatteryStored() > 0f ? 1f : entity.power.status)); () -> buffered ? Core.bundle.format("bar.poweramount", Float.isNaN(entity.power.status * capacity) ? "<ERROR>" : UI.formatAmount((int)(entity.power.status * capacity))) :
Core.bundle.get("bar.power"),
() -> Pal.powerBar,
() -> Mathf.zero(cons.requestedPower(entity)) && entity.power.graph.getPowerProduced() + entity.power.graph.getBatteryStored() > 0f ? 1f : entity.power.status)
);
} }
if(hasItems && configurable){ if(hasItems && configurable){
bars.add("items", entity -> new Bar(() -> Core.bundle.format("bar.items", entity.items.total()), () -> Pal.items, () -> (float)entity.items.total() / itemCapacity)); bars.add("items", entity -> new Bar(
() -> Core.bundle.format("bar.items", entity.items.total()),
() -> Pal.items,
() -> (float)entity.items.total() / itemCapacity)
);
} }
if(unitCapModifier != 0){ if(unitCapModifier != 0){
@@ -515,46 +527,46 @@ public class Block extends UnlockableContent{
} }
public void drawPlan(BuildPlan req, Eachable<BuildPlan> list, boolean valid){ public void drawPlan(BuildPlan plan, Eachable<BuildPlan> list, boolean valid){
drawPlan(req, list, valid, 1f); drawPlan(plan, list, valid, 1f);
} }
public void drawPlan(BuildPlan req, Eachable<BuildPlan> list, boolean valid, float alpha){ public void drawPlan(BuildPlan plan, Eachable<BuildPlan> list, boolean valid, float alpha){
Draw.reset(); Draw.reset();
Draw.mixcol(!valid ? Pal.breakInvalid : Color.white, (!valid ? 0.4f : 0.24f) + Mathf.absin(Time.globalTime, 6f, 0.28f)); Draw.mixcol(!valid ? Pal.breakInvalid : Color.white, (!valid ? 0.4f : 0.24f) + Mathf.absin(Time.globalTime, 6f, 0.28f));
Draw.alpha(alpha); Draw.alpha(alpha);
float prevScale = Draw.scl; float prevScale = Draw.scl;
Draw.scl *= req.animScale; Draw.scl *= plan.animScale;
drawRequestRegion(req, list); drawRequestRegion(plan, list);
Draw.scl = prevScale; Draw.scl = prevScale;
Draw.reset(); Draw.reset();
} }
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
TextureRegion reg = getRequestRegion(req, list); TextureRegion reg = getRequestRegion(plan, list);
Draw.rect(reg, req.drawx(), req.drawy(), !rotate ? 0 : req.rotation * 90); Draw.rect(reg, plan.drawx(), plan.drawy(), !rotate ? 0 : plan.rotation * 90);
if(req.worldContext && player != null && teamRegion != null && teamRegion.found()){ if(plan.worldContext && player != null && teamRegion != null && teamRegion.found()){
if(teamRegions[player.team().id] == teamRegion) Draw.color(player.team().color); if(teamRegions[player.team().id] == teamRegion) Draw.color(player.team().color);
Draw.rect(teamRegions[player.team().id], req.drawx(), req.drawy()); Draw.rect(teamRegions[player.team().id], plan.drawx(), plan.drawy());
Draw.color(); Draw.color();
} }
drawRequestConfig(req, list); drawRequestConfig(plan, list);
} }
public TextureRegion getRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public TextureRegion getRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
return fullIcon; return fullIcon;
} }
public void drawRequestConfig(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfig(BuildPlan plan, Eachable<BuildPlan> list){
} }
public void drawRequestConfigCenter(BuildPlan req, Object content, String region, boolean cross){ public void drawRequestConfigCenter(BuildPlan plan, Object content, String region, boolean cross){
if(content == null){ if(content == null){
if(cross){ if(cross){
Draw.rect("cross", req.drawx(), req.drawy()); Draw.rect("cross", plan.drawx(), plan.drawy());
} }
return; return;
} }
@@ -562,15 +574,15 @@ public class Block extends UnlockableContent{
if(color == null) return; if(color == null) return;
Draw.color(color); Draw.color(color);
Draw.rect(region, req.drawx(), req.drawy()); Draw.rect(region, plan.drawx(), plan.drawy());
Draw.color(); Draw.color();
} }
public void drawRequestConfigCenter(BuildPlan req, Object content, String region){ public void drawRequestConfigCenter(BuildPlan plan, Object content, String region){
drawRequestConfigCenter(req, content, region, false); drawRequestConfigCenter(plan, content, region, false);
} }
public void drawRequestConfigTop(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfigTop(BuildPlan plan, Eachable<BuildPlan> list){
} }

View File

@@ -51,8 +51,8 @@ public class Door extends Wall{
} }
@Override @Override
public TextureRegion getRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public TextureRegion getRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
return req.config == Boolean.TRUE ? openRegion : region; return plan.config == Boolean.TRUE ? openRegion : region;
} }
public class DoorBuild extends Building{ public class DoorBuild extends Building{

View File

@@ -15,9 +15,9 @@ public class Thruster extends Wall{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(region, req.drawx(), req.drawy()); Draw.rect(region, plan.drawx(), plan.drawy());
Draw.rect(topRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(topRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
} }
@Override @Override

View File

@@ -66,13 +66,13 @@ public class Conveyor extends Block implements Autotiler{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
int[] bits = getTiling(req, list); int[] bits = getTiling(plan, list);
if(bits == null) return; if(bits == null) return;
TextureRegion region = regions[bits[0]][0]; TextureRegion region = regions[bits[0]][0];
Draw.rect(region, req.drawx(), req.drawy(), region.width * bits[1] * Draw.scl, region.height * bits[2] * Draw.scl, req.rotation * 90); Draw.rect(region, plan.drawx(), plan.drawy(), region.width * bits[1] * Draw.scl, region.height * bits[2] * Draw.scl, plan.rotation * 90);
} }
@Override @Override

View File

@@ -47,19 +47,19 @@ public class DirectionBridge extends Block{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(region, req.drawx(), req.drawy()); Draw.rect(region, plan.drawx(), plan.drawy());
Draw.rect(dirRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(dirRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
} }
@Override @Override
public void drawRequestConfigTop(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfigTop(BuildPlan plan, Eachable<BuildPlan> list){
otherReq = null; otherReq = null;
otherDst = range; otherDst = range;
Point2 d = Geometry.d4(req.rotation); Point2 d = Geometry.d4(plan.rotation);
list.each(other -> { list.each(other -> {
if(other.block == this && req != other && Mathf.clamp(other.x - req.x, -1, 1) == d.x && Mathf.clamp(other.y - req.y, -1, 1) == d.y){ if(other.block == this && plan != other && Mathf.clamp(other.x - plan.x, -1, 1) == d.x && Mathf.clamp(other.y - plan.y, -1, 1) == d.y){
int dst = Math.max(Math.abs(other.x - req.x), Math.abs(other.y - req.y)); int dst = Math.max(Math.abs(other.x - plan.x), Math.abs(other.y - plan.y));
if(dst <= otherDst){ if(dst <= otherDst){
otherReq = other; otherReq = other;
otherDst = dst; otherDst = dst;
@@ -68,7 +68,7 @@ public class DirectionBridge extends Block{
}); });
if(otherReq != null){ if(otherReq != null){
drawBridge(req.rotation, req.drawx(), req.drawy(), otherReq.drawx(), otherReq.drawy(), null); drawBridge(plan.rotation, plan.drawx(), plan.drawy(), otherReq.drawx(), otherReq.drawy(), null);
} }
} }

View File

@@ -46,15 +46,15 @@ public class DirectionalUnloader extends Block{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(region, req.drawx(), req.drawy()); Draw.rect(region, plan.drawx(), plan.drawy());
Draw.rect(topRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(topRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
drawRequestConfig(req, list); drawRequestConfig(plan, list);
} }
@Override @Override
public void drawRequestConfig(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfig(BuildPlan plan, Eachable<BuildPlan> list){
drawRequestConfigCenter(req, req.config, "duct-unloader-center"); drawRequestConfigCenter(plan, plan.config, "duct-unloader-center");
} }
@Override @Override

View File

@@ -50,16 +50,16 @@ public class Duct extends Block implements Autotiler{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
int[] bits = getTiling(req, list); int[] bits = getTiling(plan, list);
if(bits == null) return; if(bits == null) return;
Draw.scl(bits[1], bits[2]); Draw.scl(bits[1], bits[2]);
Draw.alpha(0.5f); Draw.alpha(0.5f);
Draw.rect(botRegions[bits[0]], req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(botRegions[bits[0]], plan.drawx(), plan.drawy(), plan.rotation * 90);
Draw.color(); Draw.color();
Draw.rect(topRegions[bits[0]], req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(topRegions[bits[0]], plan.drawx(), plan.drawy(), plan.rotation * 90);
Draw.scl(); Draw.scl();
} }

View File

@@ -53,9 +53,9 @@ public class DuctRouter extends Block{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(region, req.drawx(), req.drawy()); Draw.rect(region, plan.drawx(), plan.drawy());
Draw.rect(topRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(topRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
} }
public class DuctRouterBuild extends Building{ public class DuctRouterBuild extends Building{

View File

@@ -61,16 +61,16 @@ public class ItemBridge extends Block{
} }
@Override @Override
public void drawRequestConfigTop(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfigTop(BuildPlan plan, Eachable<BuildPlan> list){
otherReq = null; otherReq = null;
list.each(other -> { list.each(other -> {
if(other.block == this && req != other && req.config instanceof Point2 p && p.equals(other.x - req.x, other.y - req.y)){ if(other.block == this && plan != other && plan.config instanceof Point2 p && p.equals(other.x - plan.x, other.y - plan.y)){
otherReq = other; otherReq = other;
} }
}); });
if(otherReq != null){ if(otherReq != null){
drawBridge(req, otherReq.drawx(), otherReq.drawy(), 0); drawBridge(plan, otherReq.drawx(), otherReq.drawy(), 0);
} }
} }

View File

@@ -21,10 +21,10 @@ public class PayloadRouter extends PayloadConveyor{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
super.drawRequestRegion(req, list); super.drawRequestRegion(plan, list);
Draw.rect(overRegion, req.drawx(), req.drawy()); Draw.rect(overRegion, plan.drawx(), plan.drawy());
} }
public class PayloadRouterBuild extends PayloadConveyorBuild{ public class PayloadRouterBuild extends PayloadConveyorBuild{

View File

@@ -32,8 +32,8 @@ public class Sorter extends Block{
} }
@Override @Override
public void drawRequestConfig(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfig(BuildPlan plan, Eachable<BuildPlan> list){
drawRequestConfigCenter(req, req.config, "center", true); drawRequestConfigCenter(plan, plan.config, "center", true);
} }
@Override @Override

View File

@@ -82,17 +82,17 @@ public class StackConveyor extends Block implements Autotiler{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
int[] bits = getTiling(req, list); int[] bits = getTiling(plan, list);
if(bits == null) return; if(bits == null) return;
TextureRegion region = regions[0]; TextureRegion region = regions[0];
Draw.rect(region, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(region, plan.drawx(), plan.drawy(), plan.rotation * 90);
for(int i = 0; i < 4; i++){ for(int i = 0; i < 4; i++){
if((bits[3] & (1 << i)) == 0){ if((bits[3] & (1 << i)) == 0){
Draw.rect(edgeRegion, req.drawx(), req.drawy(), (req.rotation - i) * 90); Draw.rect(edgeRegion, plan.drawx(), plan.drawy(), (plan.rotation - i) * 90);
} }
} }
} }

View File

@@ -3,4 +3,6 @@ package mindustry.world.blocks.heat;
/** Basic interface for any block that produces heat.*/ /** Basic interface for any block that produces heat.*/
public interface HeatBlock{ public interface HeatBlock{
float heat(); float heat();
/** @return heat as a fraction of max heat */
float heatFrac();
} }

View File

@@ -1,47 +1,28 @@
package mindustry.world.blocks.heat; package mindustry.world.blocks.heat;
import arc.graphics.*;
import arc.graphics.g2d.*;
import arc.math.*; import arc.math.*;
import arc.util.*;
import arc.util.io.*; import arc.util.io.*;
import mindustry.annotations.Annotations.*;
import mindustry.content.*;
import mindustry.entities.*;
import mindustry.entities.units.*;
import mindustry.gen.*;
import mindustry.graphics.*; import mindustry.graphics.*;
import mindustry.logic.*;
import mindustry.ui.*; import mindustry.ui.*;
import mindustry.world.*;
import mindustry.world.blocks.power.NuclearReactor.*; import mindustry.world.blocks.power.NuclearReactor.*;
import mindustry.world.meta.*; import mindustry.world.blocks.production.*;
import mindustry.world.draw.*;
public class HeatProducer extends Block{ public class HeatProducer extends GenericCrafter{
public float heatOutput = 10f; public float heatOutput = 10f;
public float warmupRate = 0.15f; public float warmupRate = 0.15f;
public float consumeTime = 100;
public @Load("@-heat") TextureRegion heatRegion;
public @Load("@-glow") TextureRegion glowRegion;
public @Load("@-top1") TextureRegion topRegion1;
public @Load("@-top2") TextureRegion topRegion2;
public Color heatColor = new Color(1f, 0.22f, 0.22f, 0.8f);
public float heatPulse = 0.3f, heatPulseScl = 10f, glowMult = 1.2f;
public Effect consumeEffect = Fx.none;
public HeatProducer(String name){ public HeatProducer(String name){
super(name); super(name);
drawer = new DrawHeatOutput();
update = solid = rotate = true; update = solid = rotate = true;
canOverdrive = false; canOverdrive = false;
} }
@Override @Override
public void setStats(){ public void setStats(){
stats.timePeriod = consumeTime;
super.setStats(); super.setStats();
stats.add(Stat.productionTime, consumeTime / 60f, StatUnit.seconds);
//TODO heat prod stats //TODO heat prod stats
} }
@@ -52,64 +33,20 @@ public class HeatProducer extends Block{
bars.add("heat", (NuclearReactorBuild entity) -> new Bar("bar.heat", Pal.lightOrange, () -> entity.heat)); bars.add("heat", (NuclearReactorBuild entity) -> new Bar("bar.heat", Pal.lightOrange, () -> entity.heat));
} }
@Override public class HeatProducerBuild extends GenericCrafterBuild implements HeatBlock{
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){
Draw.rect(region, req.drawx(), req.drawy());
Draw.rect(req.rotation > 1 ? topRegion2 : topRegion1, req.drawx(), req.drawy(), req.rotation * 90);
}
@Override
public TextureRegion[] icons(){
return new TextureRegion[]{region, topRegion1};
}
public class HeatProducerBuild extends Building implements HeatBlock{
public float heat; public float heat;
public float progress;
@Override @Override
public void updateTile(){ public void updateTile(){
if(consValid()){ super.updateTile();
progress += getProgressIncrease(consumeTime);
if(progress >= 1f){
consume();
consumeEffect.at(this);
progress -= 1f;
}
}
//heat approaches target at the same speed regardless of efficiency //heat approaches target at the same speed regardless of efficiency
heat = Mathf.approachDelta(heat, heatOutput * efficiency() * Mathf.num(consValid()), warmupRate * delta()); heat = Mathf.approachDelta(heat, heatOutput * efficiency() * Mathf.num(consValid()), warmupRate * delta());
} }
@Override @Override
public void draw(){ public float heatFrac(){
Draw.rect(region, x, y); return heat / heatOutput;
Draw.rect(rotation > 1 ? topRegion2 : topRegion1, x, y, rotdeg());
if(heat > 0){
Draw.z(Layer.blockAdditive);
Draw.blend(Blending.additive);
Draw.color(heatColor, heat / heatOutput * (heatColor.a * (1f - heatPulse + Mathf.absin(heatPulseScl, heatPulse))));
Draw.rect(heatRegion, x, y, rotdeg());
Draw.color(Draw.getColor().mul(glowMult));
Draw.rect(glowRegion, x, y);
Draw.blend();
Draw.color();
}
}
@Override
public double sense(LAccess sensor){
if(sensor == LAccess.progress) return Mathf.clamp(progress);
return super.sense(sensor);
}
@Override
public boolean shouldAmbientSound(){
return cons.valid();
} }
@Override @Override
@@ -120,14 +57,12 @@ public class HeatProducer extends Block{
@Override @Override
public void write(Writes write){ public void write(Writes write){
super.write(write); super.write(write);
write.f(progress);
write.f(heat); write.f(heat);
} }
@Override @Override
public void read(Reads read, byte revision){ public void read(Reads read, byte revision){
super.read(read, revision); super.read(read, revision);
progress = read.f();
heat = read.f(); heat = read.f();
} }
} }

View File

@@ -52,17 +52,17 @@ public class Conduit extends LiquidBlock implements Autotiler{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
int[] bits = getTiling(req, list); int[] bits = getTiling(plan, list);
if(bits == null) return; if(bits == null) return;
Draw.scl(bits[1], bits[2]); Draw.scl(bits[1], bits[2]);
Draw.color(botColor); Draw.color(botColor);
Draw.alpha(0.5f); Draw.alpha(0.5f);
Draw.rect(botRegions[bits[0]], req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(botRegions[bits[0]], plan.drawx(), plan.drawy(), plan.rotation * 90);
Draw.color(); Draw.color();
Draw.rect(topRegions[bits[0]], req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(topRegions[bits[0]], plan.drawx(), plan.drawy(), plan.rotation * 90);
Draw.scl(); Draw.scl();
} }

View File

@@ -39,10 +39,10 @@ public abstract class BlockProducer extends PayloadBlock{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(region, req.drawx(), req.drawy()); Draw.rect(region, plan.drawx(), plan.drawy());
Draw.rect(outRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(outRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
Draw.rect(topRegion, req.drawx(), req.drawy()); Draw.rect(topRegion, plan.drawx(), plan.drawy());
} }
@Override @Override

View File

@@ -51,11 +51,11 @@ public class PayloadLoader extends PayloadBlock{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(region, req.drawx(), req.drawy()); Draw.rect(region, plan.drawx(), plan.drawy());
Draw.rect(inRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(inRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
Draw.rect(outRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(outRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
Draw.rect(topRegion, req.drawx(), req.drawy()); Draw.rect(topRegion, plan.drawx(), plan.drawy());
} }
public class PayloadLoaderBuild extends PayloadBlockBuild<BuildPayload>{ public class PayloadLoaderBuild extends PayloadBlockBuild<BuildPayload>{

View File

@@ -87,11 +87,11 @@ public class PayloadMassDriver extends PayloadBlock{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(baseRegion, req.drawx(), req.drawy()); Draw.rect(baseRegion, plan.drawx(), plan.drawy());
Draw.rect(topRegion, req.drawx(), req.drawy()); Draw.rect(topRegion, plan.drawx(), plan.drawy());
Draw.rect(outRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(outRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
Draw.rect(region, req.drawx(), req.drawy()); Draw.rect(region, plan.drawx(), plan.drawy());
} }
@Override @Override

View File

@@ -64,10 +64,10 @@ public class PayloadSource extends PayloadBlock{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(region, req.drawx(), req.drawy()); Draw.rect(region, plan.drawx(), plan.drawy());
Draw.rect(outRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(outRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
Draw.rect(topRegion, req.drawx(), req.drawy()); Draw.rect(topRegion, plan.drawx(), plan.drawy());
} }
public boolean canProduce(Block b){ public boolean canProduce(Block b){

View File

@@ -35,9 +35,9 @@ public class PowerDiode extends Block{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(fullIcon, req.drawx(), req.drawy()); Draw.rect(fullIcon, plan.drawx(), plan.drawy());
Draw.rect(arrow, req.drawx(), req.drawy(), !rotate ? 0 : req.rotation * 90); Draw.rect(arrow, plan.drawx(), plan.drawy(), !rotate ? 0 : plan.rotation * 90);
} }
// battery % of the graph on either side, defaults to zero // battery % of the graph on either side, defaults to zero

View File

@@ -302,23 +302,23 @@ public class PowerNode extends PowerBlock{
} }
@Override @Override
public void drawRequestConfigTop(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfigTop(BuildPlan plan, Eachable<BuildPlan> list){
if(req.config instanceof Point2[] ps){ if(plan.config instanceof Point2[] ps){
setupColor(1f); setupColor(1f);
for(Point2 point : ps){ for(Point2 point : ps){
int px = req.x + point.x, py = req.y + point.y; int px = plan.x + point.x, py = plan.y + point.y;
otherReq = null; otherReq = null;
list.each(other -> { list.each(other -> {
if(other.block != null if(other.block != null
&& (px >= other.x - ((other.block.size-1)/2) && py >= other.y - ((other.block.size-1)/2) && px <= other.x + other.block.size/2 && py <= other.y + other.block.size/2) && (px >= other.x - ((other.block.size-1)/2) && py >= other.y - ((other.block.size-1)/2) && px <= other.x + other.block.size/2 && py <= other.y + other.block.size/2)
&& other != req && other.block.hasPower){ && other != plan && other.block.hasPower){
otherReq = other; otherReq = other;
} }
}); });
if(otherReq == null || otherReq.block == null) continue; if(otherReq == null || otherReq.block == null) continue;
drawLaser(player == null ? Team.sharded : player.team(), req.drawx(), req.drawy(), otherReq.drawx(), otherReq.drawy(), size, otherReq.block.size); drawLaser(player == null ? Team.sharded : player.team(), plan.drawx(), plan.drawy(), otherReq.drawx(), otherReq.drawy(), size, otherReq.block.size);
} }
Draw.color(); Draw.color();
} }

View File

@@ -71,9 +71,9 @@ public class BeamDrill extends Block{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(region, req.drawx(), req.drawy()); Draw.rect(region, plan.drawx(), plan.drawy());
Draw.rect(topRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(topRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
} }
@Override @Override

View File

@@ -82,16 +82,16 @@ public class Drill extends Block{
} }
@Override @Override
public void drawRequestConfigTop(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfigTop(BuildPlan plan, Eachable<BuildPlan> list){
if(!req.worldContext) return; if(!plan.worldContext) return;
Tile tile = req.tile(); Tile tile = plan.tile();
if(tile == null) return; if(tile == null) return;
countOre(tile); countOre(tile);
if(returnItem == null || !drawMineItem) return; if(returnItem == null || !drawMineItem) return;
Draw.color(returnItem.color); Draw.color(returnItem.color);
Draw.rect(itemRegion, req.drawx(), req.drawy()); Draw.rect(itemRegion, plan.drawx(), plan.drawy());
Draw.color(); Draw.color();
} }

View File

@@ -7,9 +7,11 @@ import arc.util.*;
import arc.util.io.*; import arc.util.io.*;
import mindustry.content.*; import mindustry.content.*;
import mindustry.entities.*; import mindustry.entities.*;
import mindustry.entities.units.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.logic.*; import mindustry.logic.*;
import mindustry.type.*; import mindustry.type.*;
import mindustry.ui.*;
import mindustry.world.*; import mindustry.world.*;
import mindustry.world.draw.*; import mindustry.world.draw.*;
import mindustry.world.meta.*; import mindustry.world.meta.*;
@@ -19,7 +21,13 @@ public class GenericCrafter extends Block{
public @Nullable ItemStack outputItem; public @Nullable ItemStack outputItem;
/** Overwrites outputItem if not null. */ /** Overwrites outputItem if not null. */
public @Nullable ItemStack[] outputItems; public @Nullable ItemStack[] outputItems;
/** Written to outputLiquids as a single-element array if outputLiquids is null. */
public @Nullable LiquidStack outputLiquid; public @Nullable LiquidStack outputLiquid;
/** Overwrites outputLiquid if not null. */
public @Nullable LiquidStack[] outputLiquids;
/** Liquid output directions, specified in the same order as outputLiquids. Use -1 to dump in every direction. Rotations are relative to block. */
public int[] liquidOutputDirections = {-1};
public float craftTime = 80; public float craftTime = 80;
public Effect craftEffect = Fx.none; public Effect craftEffect = Fx.none;
@@ -52,8 +60,27 @@ public class GenericCrafter extends Block{
stats.add(Stat.output, StatValues.items(craftTime, outputItems)); stats.add(Stat.output, StatValues.items(craftTime, outputItems));
} }
if(outputLiquid != null){ if(outputLiquids != null){
stats.add(Stat.output, outputLiquid.liquid, outputLiquid.amount * (60f / craftTime), true); stats.add(Stat.output, StatValues.liquids(craftTime, outputLiquids));
}
}
@Override
public void setBars(){
super.setBars();
//set up liquid bars for multiple liquid outputs; TODO multiple inputs not yet supported due to inherent complexity
//TODO this will currently screw up input display if input liquids are available
if(outputLiquids != null && outputLiquids.length > 1){
bars.remove("liquid");
for(var stack : outputLiquids){
bars.add("liquid-" + stack.liquid.name, entity -> new Bar(
() -> stack.liquid.localizedName,
() -> stack.liquid.barColor(),
() -> entity.liquids.get(stack.liquid) / liquidCapacity)
);
}
} }
} }
@@ -70,9 +97,21 @@ public class GenericCrafter extends Block{
if(outputItems == null && outputItem != null){ if(outputItems == null && outputItem != null){
outputItems = new ItemStack[]{outputItem}; outputItems = new ItemStack[]{outputItem};
} }
if(outputLiquids == null && outputLiquid != null){
outputLiquids = new LiquidStack[]{outputLiquid};
}
super.init(); super.init();
} }
public void drawPlanBase(BuildPlan req, Eachable<BuildPlan> list){
super.drawRequestRegion(req, list);
}
@Override
public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
drawer.drawPlan(this, plan, list);
}
@Override @Override
public TextureRegion[] icons(){ public TextureRegion[] icons(){
return drawer.icons(this); return drawer.icons(this);
@@ -102,13 +141,21 @@ public class GenericCrafter extends Block{
@Override @Override
public boolean shouldConsume(){ public boolean shouldConsume(){
if(outputItems != null){ if(outputItems != null){
for(ItemStack output : outputItems){ for(var output : outputItems){
if(items.get(output.item) + output.amount > itemCapacity){ if(items.get(output.item) + output.amount > itemCapacity){
return false; return false;
} }
} }
} }
return (outputLiquid == null || !(liquids.get(outputLiquid.liquid) >= liquidCapacity - 0.001f)) && enabled; if(outputLiquids != null){
for(var output : outputLiquids){
if(liquids.get(output.liquid) >= liquidCapacity - 0.001f){
return false;
}
}
}
return enabled;
} }
@Override @Override
@@ -141,15 +188,17 @@ public class GenericCrafter extends Block{
consume(); consume();
if(outputItems != null){ if(outputItems != null){
for(ItemStack output : outputItems){ for(var output : outputItems){
for(int i = 0; i < output.amount; i++){ for(int i = 0; i < output.amount; i++){
offload(output.item); offload(output.item);
} }
} }
} }
if(outputLiquid != null){ if(outputLiquids != null){
handleLiquid(this, outputLiquid.liquid, outputLiquid.amount); for(var output : outputLiquids){
handleLiquid(this, output.liquid, output.amount);
}
} }
craftEffect.at(x, y); craftEffect.at(x, y);
@@ -163,8 +212,12 @@ public class GenericCrafter extends Block{
} }
} }
if(outputLiquid != null){ if(outputLiquids != null){
dumpLiquid(outputLiquid.liquid); for(int i = 0; i < outputLiquids.length; i++){
int dir = liquidOutputDirections.length > i ? liquidOutputDirections[i] : -1;
dumpLiquid(outputLiquids[i].liquid, 2f, dir);
}
} }
} }

View File

@@ -15,6 +15,8 @@ import static mindustry.Vars.*;
public class Pump extends LiquidBlock{ public class Pump extends LiquidBlock{
/** Pump amount per tile. */ /** Pump amount per tile. */
public float pumpAmount = 0.2f; public float pumpAmount = 0.2f;
/** Interval in-between item consumptions, if applicable. */
public float consumeTime = 60f * 5f;
public Pump(String name){ public Pump(String name){
super(name); super(name);
@@ -41,6 +43,10 @@ public class Pump extends LiquidBlock{
for(Tile other : tile.getLinkedTilesAs(this, tempTiles)){ for(Tile other : tile.getLinkedTilesAs(this, tempTiles)){
if(canPump(other)){ if(canPump(other)){
if(liquidDrop != null && other.floor().liquidDrop != liquidDrop){
liquidDrop = null;
break;
}
liquidDrop = other.floor().liquidDrop; liquidDrop = other.floor().liquidDrop;
amount += other.floor().liquidMultiplier; amount += other.floor().liquidMultiplier;
} }
@@ -81,6 +87,7 @@ public class Pump extends LiquidBlock{
} }
public class PumpBuild extends LiquidBuild{ public class PumpBuild extends LiquidBuild{
public float consTimer;
public float amount = 0f; public float amount = 0f;
public Liquid liquidDrop = null; public Liquid liquidDrop = null;
@@ -121,6 +128,12 @@ public class Pump extends LiquidBlock{
if(consValid() && liquidDrop != null){ if(consValid() && liquidDrop != null){
float maxPump = Math.min(liquidCapacity - liquids.total(), amount * pumpAmount * edelta()); float maxPump = Math.min(liquidCapacity - liquids.total(), amount * pumpAmount * edelta());
liquids.add(liquidDrop, maxPump); liquids.add(liquidDrop, maxPump);
//does nothing for most pumps, as those do not require items.
if((consTimer += delta()) >= consumeTime){
consume();
consumeTime = 0f;
}
} }
dumpLiquid(liquids.current()); dumpLiquid(liquids.current());

View File

@@ -81,9 +81,9 @@ public class WallCrafter extends Block{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(region, req.drawx(), req.drawy()); Draw.rect(region, plan.drawx(), plan.drawy());
Draw.rect(topRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(topRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
} }
@Override @Override

View File

@@ -45,8 +45,8 @@ public class ItemSource extends Block{
} }
@Override @Override
public void drawRequestConfig(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfig(BuildPlan plan, Eachable<BuildPlan> list){
drawRequestConfigCenter(req, req.config, "center", true); drawRequestConfigCenter(plan, plan.config, "center", true);
} }
@Override @Override

View File

@@ -41,8 +41,8 @@ public class LiquidSource extends Block{
} }
@Override @Override
public void drawRequestConfig(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfig(BuildPlan plan, Eachable<BuildPlan> list){
drawRequestConfigCenter(req, req.config, "center", true); drawRequestConfigCenter(plan, plan.config, "center", true);
} }
public class LiquidSourceBuild extends Building{ public class LiquidSourceBuild extends Building{

View File

@@ -44,8 +44,8 @@ public class Unloader extends Block{
} }
@Override @Override
public void drawRequestConfig(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestConfig(BuildPlan plan, Eachable<BuildPlan> list){
drawRequestConfigCenter(req, req.config, "unloader-center"); drawRequestConfigCenter(plan, plan.config, "unloader-center");
} }
@Override @Override

View File

@@ -32,11 +32,11 @@ public class Reconstructor extends UnitBlock{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(region, req.drawx(), req.drawy()); Draw.rect(region, plan.drawx(), plan.drawy());
Draw.rect(inRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(inRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
Draw.rect(outRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(outRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
Draw.rect(topRegion, req.drawx(), req.drawy()); Draw.rect(topRegion, plan.drawx(), plan.drawy());
} }
@Override @Override

View File

@@ -116,10 +116,10 @@ public class UnitFactory extends UnitBlock{
} }
@Override @Override
public void drawRequestRegion(BuildPlan req, Eachable<BuildPlan> list){ public void drawRequestRegion(BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(region, req.drawx(), req.drawy()); Draw.rect(region, plan.drawx(), plan.drawy());
Draw.rect(outRegion, req.drawx(), req.drawy(), req.rotation * 90); Draw.rect(outRegion, plan.drawx(), plan.drawy(), plan.rotation * 90);
Draw.rect(topRegion, req.drawx(), req.drawy()); Draw.rect(topRegion, plan.drawx(), plan.drawy());
} }
public static class UnitPlan{ public static class UnitPlan{

View File

@@ -2,7 +2,10 @@ package mindustry.world.draw;
import arc.graphics.g2d.*; import arc.graphics.g2d.*;
import arc.math.*; import arc.math.*;
import arc.util.*;
import mindustry.entities.units.*;
import mindustry.world.*; import mindustry.world.*;
import mindustry.world.blocks.production.*;
import mindustry.world.blocks.production.GenericCrafter.*; import mindustry.world.blocks.production.GenericCrafter.*;
/** An implementation of custom rendering behavior for a crafter block. /** An implementation of custom rendering behavior for a crafter block.
@@ -20,6 +23,11 @@ public class DrawBlock{
} }
/** Draws the planned version of this block. */
public void drawPlan(GenericCrafter crafter, BuildPlan plan, Eachable<BuildPlan> list){
crafter.drawPlanBase(plan, list);
}
/** Load any relevant texture regions. */ /** Load any relevant texture regions. */
public void load(Block block){ public void load(Block block){

View File

@@ -0,0 +1,58 @@
package mindustry.world.draw;
import arc.*;
import arc.graphics.*;
import arc.graphics.g2d.*;
import arc.math.*;
import arc.util.*;
import mindustry.entities.units.*;
import mindustry.graphics.*;
import mindustry.world.*;
import mindustry.world.blocks.heat.*;
import mindustry.world.blocks.production.*;
import mindustry.world.blocks.production.GenericCrafter.*;
public class DrawHeatOutput extends DrawBlock{
public TextureRegion heat, glow, top1, top2;
public Color heatColor = new Color(1f, 0.22f, 0.22f, 0.8f);
public float heatPulse = 0.3f, heatPulseScl = 10f, glowMult = 1.2f;
@Override
public void draw(GenericCrafterBuild build){
Draw.rect(build.block.region, build.x, build.y);
Draw.rect(build.rotation > 1 ? top2 : top1, build.x, build.y, build.rotdeg());
if(build instanceof HeatBlock heater && heater.heat() > 0){
Draw.z(Layer.blockAdditive);
Draw.blend(Blending.additive);
Draw.color(heatColor, heater.heatFrac() * (heatColor.a * (1f - heatPulse + Mathf.absin(heatPulseScl, heatPulse))));
Draw.rect(heat, build.x, build.y, build.rotdeg());
Draw.color(Draw.getColor().mul(glowMult));
Draw.rect(glow, build.x, build.y);
Draw.blend();
Draw.color();
}
}
@Override
public void drawPlan(GenericCrafter block, BuildPlan plan, Eachable<BuildPlan> list){
Draw.rect(block.region, plan.drawx(), plan.drawy());
Draw.rect(plan.rotation > 1 ? top2 : top1, plan.drawx(), plan.drawy(), plan.rotation * 90);
}
@Override
public void load(Block block){
heat = Core.atlas.find(block.name + "-heat");
glow = Core.atlas.find(block.name + "-glow");
top1 = Core.atlas.find(block.name + "-top1");
top2 = Core.atlas.find(block.name + "-top2");
}
@Override
public TextureRegion[] icons(Block block){
return new TextureRegion[]{block.region, top1};
}
}

View File

@@ -61,6 +61,14 @@ public class StatValues{
}; };
} }
public static StatValue liquids(float timePeriod, LiquidStack... stacks){
return table -> {
for(var stack : stacks){
table.add(new LiquidDisplay(stack.liquid, stack.amount * (60f / timePeriod), true)).padRight(5);
}
};
}
public static StatValue items(ItemStack... stacks){ public static StatValue items(ItemStack... stacks){
return items(true, stacks); return items(true, stacks);
} }