Merge branch 'master' of https://github.com/Anuken/Mindustry into maps_phase_2

 Conflicts:
	core/src/mindustry/content/Blocks.java
This commit is contained in:
Epowerj
2022-08-04 14:55:14 -04:00
67 changed files with 319 additions and 84 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -1673,6 +1673,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Switch block.switch.name = Switch
block.micro-processor.name = Micro Processor block.micro-processor.name = Micro Processor

View File

@@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Пераключальнік block.switch.name = Пераключальнік
block.micro-processor.name = Мікропрацэсар block.micro-processor.name = Мікропрацэсар

View File

@@ -1657,6 +1657,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Превключвател block.switch.name = Превключвател
block.micro-processor.name = Микропроцесор block.micro-processor.name = Микропроцесор

View File

@@ -1668,6 +1668,7 @@ block.basic-assembler-module.name = Mòdul de muntatge bàsic
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Maligne block.malign.name = Maligne
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Interruptor block.switch.name = Interruptor
block.micro-processor.name = Microprocessador block.micro-processor.name = Microprocessador

View File

@@ -1661,6 +1661,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Přepínač block.switch.name = Přepínač
block.micro-processor.name = Mikroprocesor block.micro-processor.name = Mikroprocesor

View File

@@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Kontakt block.switch.name = Kontakt
block.micro-processor.name = Datamat block.micro-processor.name = Datamat

View File

@@ -1668,6 +1668,7 @@ block.basic-assembler-module.name = Einfaches Verbesserermodul
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Schalter block.switch.name = Schalter
block.micro-processor.name = Mikroprozessor block.micro-processor.name = Mikroprozessor
block.logic-processor.name = Logikprozessor block.logic-processor.name = Logikprozessor

View File

@@ -1668,6 +1668,7 @@ block.basic-assembler-module.name = Módulo ensamblador básico
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Interruptor block.switch.name = Interruptor
block.micro-processor.name = Microprocesador block.micro-processor.name = Microprocesador

View File

@@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Switch block.switch.name = Switch
block.micro-processor.name = Micro Processor block.micro-processor.name = Micro Processor

View File

@@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Switch block.switch.name = Switch
block.micro-processor.name = Micro Processor block.micro-processor.name = Micro Processor

View File

@@ -1650,6 +1650,7 @@ block.basic-assembler-module.name = Yksinkertainen kokoajamoduuli
block.smite.name = Isku block.smite.name = Isku
block.malign.name = Pahantahto block.malign.name = Pahantahto
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Kytkin block.switch.name = Kytkin
block.micro-processor.name = Mikroprosessori block.micro-processor.name = Mikroprosessori

View File

@@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Switch block.switch.name = Switch
block.micro-processor.name = Micro Processor block.micro-processor.name = Micro Processor

View File

@@ -1671,6 +1671,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Interrupteur block.switch.name = Interrupteur
block.micro-processor.name = Micro Processeur block.micro-processor.name = Micro Processeur

View File

@@ -1656,6 +1656,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Switch block.switch.name = Switch
block.micro-processor.name = Micro Processor block.micro-processor.name = Micro Processor

View File

@@ -1668,6 +1668,7 @@ block.basic-assembler-module.name = Modul Perakitan Dasar
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Saklar block.switch.name = Saklar
block.micro-processor.name = Prosesor Mikro block.micro-processor.name = Prosesor Mikro

View File

@@ -1654,6 +1654,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Interruttore block.switch.name = Interruttore
block.micro-processor.name = Micro Processore block.micro-processor.name = Micro Processore

View File

@@ -1661,6 +1661,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = スイッチ block.switch.name = スイッチ
block.micro-processor.name = マイクロプロセッサー block.micro-processor.name = マイクロプロセッサー

View File

@@ -311,11 +311,11 @@ open = 열기
customize = 사용자 정의 규칙 customize = 사용자 정의 규칙
cancel = 취소 cancel = 취소
command = 명령 command = 명령
command.mine = Mine command.mine = 채굴
command.repair = Repair command.repair = 수리
command.rebuild = Rebuild command.rebuild = 재건
command.assist = Assist Player command.assist = 플레이어 지원
command.move = Move command.move = 이동
openlink = 링크 열기 openlink = 링크 열기
copylink = 링크 복사 copylink = 링크 복사
back = 뒤로가기 back = 뒤로가기
@@ -1221,7 +1221,7 @@ liquid.water.name = 물
liquid.slag.name = 광재 liquid.slag.name = 광재
liquid.oil.name = 석유 liquid.oil.name = 석유
liquid.cryofluid.name = 냉각수 liquid.cryofluid.name = 냉각수
liquid.neoplasm.name = 종양 liquid.neoplasm.name = 신생물
liquid.arkycite.name = 아르키사이트 liquid.arkycite.name = 아르키사이트
liquid.gallium.name = 갈륨 liquid.gallium.name = 갈륨
liquid.ozone.name = 오존 liquid.ozone.name = 오존
@@ -1661,7 +1661,8 @@ block.diffuse.name = 디퓨즈
block.basic-assembler-module.name = 기본 조립 모듈 block.basic-assembler-module.name = 기본 조립 모듈
block.smite.name = 스마이트 block.smite.name = 스마이트
block.malign.name = 멀라인 block.malign.name = 멀라인
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = 융제 원자로
block.neoplasia-reactor.name = 신생물 원자로
block.switch.name = 스위치 block.switch.name = 스위치
block.micro-processor.name = 마이크로 프로세서 block.micro-processor.name = 마이크로 프로세서

View File

@@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Switch block.switch.name = Switch
block.micro-processor.name = Micro Processor block.micro-processor.name = Micro Processor

View File

@@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Switch block.switch.name = Switch
block.micro-processor.name = Micro Processor block.micro-processor.name = Micro Processor

View File

@@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Switch block.switch.name = Switch
block.micro-processor.name = Micro Processor block.micro-processor.name = Micro Processor

View File

@@ -1669,6 +1669,7 @@ block.basic-assembler-module.name = Podstawowy Moduł Montażowy
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Przełącznik block.switch.name = Przełącznik
block.micro-processor.name = Mikroprocesor block.micro-processor.name = Mikroprocesor

View File

@@ -1654,6 +1654,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Alavanca block.switch.name = Alavanca
block.micro-processor.name = Micro Processador block.micro-processor.name = Micro Processador

View File

@@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Switch block.switch.name = Switch
block.micro-processor.name = Micro Processor block.micro-processor.name = Micro Processor

View File

@@ -1661,6 +1661,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Întrerupător block.switch.name = Întrerupător
block.micro-processor.name = Microprocesor block.micro-processor.name = Microprocesor

View File

@@ -1660,6 +1660,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Переключатель block.switch.name = Переключатель
block.micro-processor.name = Микропроцессор block.micro-processor.name = Микропроцессор

View File

@@ -1661,6 +1661,7 @@ block.basic-assembler-module.name = Prosti Proizvodni Modul
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Prekidač block.switch.name = Prekidač
block.micro-processor.name = Mikro Procesor block.micro-processor.name = Mikro Procesor

View File

@@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Switch block.switch.name = Switch
block.micro-processor.name = Micro Processor block.micro-processor.name = Micro Processor

View File

@@ -1661,6 +1661,7 @@ block.basic-assembler-module.name = หน่วยประกอบการ
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = สวิตช์ block.switch.name = สวิตช์
block.micro-processor.name = ตัวประมวลผลขนาดเล็ก block.micro-processor.name = ตัวประมวลผลขนาดเล็ก

View File

@@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Switch block.switch.name = Switch
block.micro-processor.name = Micro Processor block.micro-processor.name = Micro Processor

View File

@@ -1662,6 +1662,7 @@ block.basic-assembler-module.name = Basit İnşa Modülü
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
#ama tüp ne aga -Anti Dragon #ama tüp ne aga -Anti Dragon
block.switch.name = Düğme block.switch.name = Düğme

View File

@@ -1668,6 +1668,7 @@ block.basic-assembler-module.name = Базовий збиральний моду
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Перемикач block.switch.name = Перемикач
block.micro-processor.name = Мікропроцесор block.micro-processor.name = Мікропроцесор

View File

@@ -1661,6 +1661,7 @@ block.basic-assembler-module.name = Basic Assembler Module
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = Công tắc block.switch.name = Công tắc
block.micro-processor.name = Bộ xử lí nhỏ block.micro-processor.name = Bộ xử lí nhỏ

View File

@@ -311,11 +311,11 @@ open = 打开
customize = 自定义规则 customize = 自定义规则
cancel = 取消 cancel = 取消
command = 指挥 command = 指挥
command.mine = Mine command.mine = 挖矿
command.repair = Repair command.repair = 维修
command.rebuild = Rebuild command.rebuild = 重建
command.assist = Assist Player command.assist = 协助建造
command.move = Move command.move = 移动
openlink = 打开链接 openlink = 打开链接
copylink = 复制链接 copylink = 复制链接
back = 返回 back = 返回
@@ -348,8 +348,8 @@ wave.waveInProgress = [lightgray]波次袭来
waiting = [lightgray]等待中… waiting = [lightgray]等待中…
waiting.players = 等待玩家中… waiting.players = 等待玩家中…
wave.enemies = [lightgray]剩余 {0} 个敌人 wave.enemies = [lightgray]剩余 {0} 个敌人
wave.enemycores = [accent]{0}[lightgray] 敌核心 wave.enemycores = [accent]{0}[lightgray] 敌核心
wave.enemycore = [accent]{0}[lightgray] 敌核心 wave.enemycore = [accent]{0}[lightgray] 敌核心
wave.enemy = [lightgray]剩余 {0} 个敌人 wave.enemy = [lightgray]剩余 {0} 个敌人
wave.guardianwarn = Boss 将在[accent]{0}[]波后到来。 wave.guardianwarn = Boss 将在[accent]{0}[]波后到来。
wave.guardianwarn.one = Boss 将在[accent]{0}[]波后到来。 wave.guardianwarn.one = Boss 将在[accent]{0}[]波后到来。
@@ -418,7 +418,7 @@ waves.perspawn = 每波
waves.shields = 护盾/波 waves.shields = 护盾/波
waves.to = waves.to =
waves.spawn = 出生点: waves.spawn = 出生点:
waves.spawn.all = <all> waves.spawn.all = <全部>
waves.spawn.select = 出生点选择 waves.spawn.select = 出生点选择
waves.spawn.none = [scarlet]地图上没有出生点 waves.spawn.none = [scarlet]地图上没有出生点
waves.max = 最大单位数 waves.max = 最大单位数
@@ -909,7 +909,7 @@ bar.capacity = 容量:{0}
bar.unitcap = {0} {1}/{2} bar.unitcap = {0} {1}/{2}
bar.liquid = 液体 bar.liquid = 液体
bar.heat = 热量 bar.heat = 热量
bar.instability = Instability bar.instability = 不稳定性
bar.heatamount = 热量: {0} bar.heatamount = 热量: {0}
bar.heatpercent = 热量: {0} ({1}%) bar.heatpercent = 热量: {0} ({1}%)
bar.power = 电力 bar.power = 电力
@@ -1650,7 +1650,7 @@ block.reinforced-payload-conveyor.name = 强化载荷传送带
block.reinforced-payload-router.name = 强化载荷路由器 block.reinforced-payload-router.name = 强化载荷路由器
block.payload-mass-driver.name = 载荷质量驱动器 block.payload-mass-driver.name = 载荷质量驱动器
block.small-deconstructor.name = 小型解构器 block.small-deconstructor.name = 小型解构器
block.canvas.name = block.canvas.name =
block.world-processor.name = 世界处理器 block.world-processor.name = 世界处理器
block.world-cell.name = 世界内存元 block.world-cell.name = 世界内存元
block.shield-breaker.name = 破盾机 (临时翻译/贴图) block.shield-breaker.name = 破盾机 (临时翻译/贴图)
@@ -1664,7 +1664,8 @@ block.basic-assembler-module.name = 基本装配厂模块
block.smite.name = 天谴 block.smite.name = 天谴
block.malign.name = 魔灵 block.malign.name = 魔灵
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = 通量反应堆
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = 开关 block.switch.name = 开关
block.micro-processor.name = 微型处理器 block.micro-processor.name = 微型处理器
@@ -1850,7 +1851,7 @@ block.cultivator.details = 一种失传已久的技术,用于尽可能高效
block.oil-extractor.description = 使用沙子、 水和大量电力钻取石油。 block.oil-extractor.description = 使用沙子、 水和大量电力钻取石油。
block.core-shard.description = 基地的核心。 一旦被摧毁,此区块就会丢失。 block.core-shard.description = 基地的核心。 一旦被摧毁,此区块就会丢失。
block.core-shard.details = 初代核心,坚固且能够自我维持。 不具备星际旅行的能力。 block.core-shard.details = 初代核心,坚固且能够自我维持。 不具备星际旅行的能力。
block.core-foundation.description = 基地的核心。 装甲优良。 比初代核心容量更大。 block.core-foundation.description = 基地的核心。 装甲优良。 容量比初代核心更大。
block.core-foundation.details = 次代核心。 block.core-foundation.details = 次代核心。
block.core-nucleus.description = 基地的核心。 装甲极佳,容量极大。 block.core-nucleus.description = 基地的核心。 装甲极佳,容量极大。
block.core-nucleus.details = 三代也是终代核心。 block.core-nucleus.details = 三代也是终代核心。
@@ -1858,7 +1859,7 @@ block.vault.description = 大量存储各种类型的物品。 可使用装卸
block.container.description = 少量存储各种类型的物品。 可使用装卸器卸载物品。 block.container.description = 少量存储各种类型的物品。 可使用装卸器卸载物品。
block.unloader.description = 从周围的建筑卸载指定物品。 block.unloader.description = 从周围的建筑卸载指定物品。
block.launch-pad.description = 将货物发射至指定区块。 block.launch-pad.description = 将货物发射至指定区块。
block.launch-pad.details = 用于资源点对点运输的亚轨道系统。载荷仓很脆弱,再入大气时无法保留。 block.launch-pad.details = 用于资源点对点运输的亚轨道系统。 载荷仓很脆弱,再入大气时无法保留。
block.duo.description = 交替向敌人发射子弹。 block.duo.description = 交替向敌人发射子弹。
block.scatter.description = 向敌方战机发射铅、 废料或钢化玻璃高射炮弹。 block.scatter.description = 向敌方战机发射铅、 废料或钢化玻璃高射炮弹。
block.scorch.description = 焚烧任何靠近它的地面敌人。 近距离内十分有效。 block.scorch.description = 焚烧任何靠近它的地面敌人。 近距离内十分有效。

View File

@@ -1668,6 +1668,7 @@ block.basic-assembler-module.name = 支援組裝廠
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Flux Reactor
block.neoplasia-reactor.name = Neoplasia Reactor
block.switch.name = 按鈕 block.switch.name = 按鈕
block.micro-processor.name = 微處理器 block.micro-processor.name = 微處理器

View File

@@ -578,3 +578,4 @@
63106=shockwave-tower|block-shockwave-tower-ui 63106=shockwave-tower|block-shockwave-tower-ui
63105=heat-source|block-heat-source-ui 63105=heat-source|block-heat-source-ui
63104=flux-reactor|block-flux-reactor-ui 63104=flux-reactor|block-flux-reactor-ui
63103=neoplasia-reactor|block-neoplasia-reactor-ui

Binary file not shown.

View File

@@ -36,6 +36,7 @@ import mindustry.world.consumers.*;
import mindustry.world.draw.*; import mindustry.world.draw.*;
import mindustry.world.meta.*; import mindustry.world.meta.*;
import static mindustry.Vars.*;
import static mindustry.type.ItemStack.*; import static mindustry.type.ItemStack.*;
public class Blocks{ public class Blocks{
@@ -119,7 +120,7 @@ public class Blocks{
impactReactor, battery, batteryLarge, powerNode, powerNodeLarge, surgeTower, diode, impactReactor, battery, batteryLarge, powerNode, powerNodeLarge, surgeTower, diode,
//power - erekir //power - erekir
turbineCondenser, ventCondenser, chemicalCombustionChamber, pyrolysisGenerator, fluxReactor, turbineCondenser, ventCondenser, chemicalCombustionChamber, pyrolysisGenerator, fluxReactor, neoplasiaReactor,
beamNode, beamTower, beamLink, beamNode, beamTower, beamLink,
//production //production
@@ -1672,7 +1673,7 @@ public class Blocks{
}}; }};
shieldedWall = new ShieldWall("shielded-wall"){{ shieldedWall = new ShieldWall("shielded-wall"){{
requirements(Category.defense, ItemStack.with(Items.phaseFabric, 20, Items.surgeAlloy, 12)); requirements(Category.defense, ItemStack.with(Items.phaseFabric, 20, Items.surgeAlloy, 12, Items.beryllium, 12));
consumePower(3f / 60f); consumePower(3f / 60f);
outputsPower = false; outputsPower = false;
@@ -2374,7 +2375,6 @@ public class Blocks{
heating = 0.02f; heating = 0.02f;
consumeItem(Items.thorium); consumeItem(Items.thorium);
//TODO how to non update
consumeLiquid(Liquids.cryofluid, heating / coolantPower).update(false); consumeLiquid(Liquids.cryofluid, heating / coolantPower).update(false);
}}; }};
@@ -2449,11 +2449,10 @@ public class Blocks{
researchCost = with(Items.beryllium, 15); researchCost = with(Items.beryllium, 15);
}}; }};
//TODO rename
chemicalCombustionChamber = new ConsumeGenerator("chemical-combustion-chamber"){{ chemicalCombustionChamber = new ConsumeGenerator("chemical-combustion-chamber"){{
requirements(Category.power, with(Items.graphite, 40, Items.tungsten, 40, Items.oxide, 40f, Items.silicon, 30)); requirements(Category.power, with(Items.graphite, 40, Items.tungsten, 40, Items.oxide, 40f, Items.silicon, 30));
powerProduction = 8f;
researchCost = with(Items.graphite, 2000, Items.tungsten, 1000, Items.oxide, 10, Items.silicon, 1500); researchCost = with(Items.graphite, 2000, Items.tungsten, 1000, Items.oxide, 10, Items.silicon, 1500);
powerProduction = 9f;
consumeLiquids(LiquidStack.with(Liquids.ozone, 2f / 60f, Liquids.arkycite, 40f / 60f)); consumeLiquids(LiquidStack.with(Liquids.ozone, 2f / 60f, Liquids.arkycite, 40f / 60f));
size = 3; size = 3;
drawer = new DrawMulti(new DrawRegion("-bottom"), new DrawPistons(){{ drawer = new DrawMulti(new DrawRegion("-bottom"), new DrawPistons(){{
@@ -2508,6 +2507,7 @@ public class Blocks{
consumeLiquid(Liquids.cyanogen, 9f / 60f); consumeLiquid(Liquids.cyanogen, 9f / 60f);
liquidCapacity = 30f; liquidCapacity = 30f;
explosionMinWarmup = 0.5f;
size = 5; size = 5;
@@ -2530,6 +2530,70 @@ public class Blocks{
); );
}}; }};
//TODO stats
neoplasiaReactor = new HeaterGenerator("neoplasia-reactor"){{
requirements(Category.power, with(Items.tungsten, 1000, Items.carbide, 300, Items.oxide, 150, Items.silicon, 500, Items.phaseFabric, 300, Items.surgeAlloy, 200));
size = 5;
liquidCapacity = 80f;
outputLiquid = new LiquidStack(Liquids.neoplasm, 20f / 60f);
explodeOnFull = true;
heatOutput = 60f;
//TODO arkycite, or nitrogen? both? Decide.
consumeLiquid(Liquids.arkycite, 80f / 60f);
consumeLiquid(Liquids.water, 10f / 60f);
consumeItem(Items.phaseFabric);
itemDuration = 60f * 3f;
itemCapacity = 10;
explosionRadius = 5;
explosionDamage = 500;
explodeEffect = new MultiEffect(Fx.bigShockwave, new WrapEffect(Fx.titanSmoke, Liquids.neoplasm.color), Fx.neoplasmSplat);
explodeSound = Sounds.explosionbig;
powerProduction = 140f;
rebuildable = false;
explosionPuddles = 80;
explosionPuddleRange = tilesize * 7f;
explosionPuddleLiquid = Liquids.neoplasm;
explosionPuddleAmount = 200f;
explosionMinWarmup = 0.5f;
consumeEffect = new RadialEffect(Fx.neoplasiaSmoke, 4, 90f, 54f / 4f);
drawer = new DrawMulti(
new DrawRegion("-bottom"),
new DrawLiquidTile(Liquids.arkycite, 3f),
new DrawCircles(){{
color = Color.valueOf("feb380").a(0.8f);
strokeMax = 3.25f;
radius = 65f / 4f;
amount = 5;
timeScl = 200f;
}},
new DrawRegion("-center"),
new DrawCells(){{
color = Color.valueOf("c33e2b");
particleColorFrom = Color.valueOf("e8803f");
particleColorTo = Color.valueOf("8c1225");
particles = 50;
range = 4f;
}},
new DrawDefault(),
new DrawHeatOutput(),
new DrawGlowRegion("-glow"){{
color = Color.valueOf("70170b");
alpha = 0.7f;
}}
);
}};
//endregion power //endregion power
//region production //region production

View File

@@ -470,6 +470,26 @@ public class Fx{
} }
}).layer(Layer.bullet - 1f), }).layer(Layer.bullet - 1f),
neoplasmSplat = new Effect(400f, 300f, b -> {
float intensity = 3f;
color(Pal.neoplasm1);
for(int i = 0; i < 4; i++){
rand.setSeed(b.id*2 + i);
float lenScl = rand.random(0.5f, 1f);
int fi = i;
b.scaled(b.lifetime * lenScl, e -> {
randLenVectors(e.id + fi - 1, e.fin(Interp.pow10Out), (int)(5f * intensity), 22f * intensity, (x, y, in, out) -> {
float fout = e.fout(Interp.pow5Out) * rand.random(0.5f, 1f);
float rad = fout * ((2f + intensity) * 1.35f);
Fill.circle(e.x + x, e.y + y, rad);
Drawf.light(e.x + x, e.y + y, rad * 2.5f, b.color, 0.5f);
});
});
}
}).layer(Layer.bullet - 2f),
scatheExplosion = new Effect(60f, 160f, e -> { scatheExplosion = new Effect(60f, 160f, e -> {
color(e.color); color(e.color);
stroke(e.fout() * 5f); stroke(e.fout() * 5f);
@@ -1698,6 +1718,21 @@ public class Fx{
} }
}), }),
neoplasiaSmoke = new Effect(280f, e -> {
color(Pal.neoplasmMid);
alpha(0.6f);
rand.setSeed(e.id);
for(int i = 0; i < 6; i++){
float len = rand.random(10f), rot = rand.range(120f) + e.rotation;
e.scaled(e.lifetime * rand.random(0.3f, 1f), b -> {
v.trns(rot, len * b.finpow());
Fill.circle(e.x + v.x, e.y + v.y, 3.3f * b.fslope() + 0.2f);
});
}
}),
heatReactorSmoke = new Effect(180f, e -> { heatReactorSmoke = new Effect(180f, e -> {
color(Color.gray); color(Color.gray);

View File

@@ -50,9 +50,9 @@ public class Liquids{
viscosity = 0.85f; viscosity = 0.85f;
flammability = 0f; flammability = 0f;
capPuddles = false; capPuddles = false;
hidden = true;
spreadTarget = Liquids.water; spreadTarget = Liquids.water;
moveThroughBlocks = true; moveThroughBlocks = true;
incinerable = true;
colorFrom = Color.valueOf("e8803f"); colorFrom = Color.valueOf("e8803f");
colorTo = Color.valueOf("8c1225"); colorTo = Color.valueOf("8c1225");

View File

@@ -131,6 +131,8 @@ public class Planets{
allowLaunchSchematics = true; allowLaunchSchematics = true;
enemyCoreSpawnReplace = true; enemyCoreSpawnReplace = true;
allowLaunchLoadout = true; allowLaunchLoadout = true;
//doesn't play well with configs
prebuildBase = false;
ruleSetter = r -> { ruleSetter = r -> {
r.waveTeam = Team.crux; r.waveTeam = Team.crux;
r.placeRangeCheck = false; r.placeRangeCheck = false;

View File

@@ -6,7 +6,7 @@ import mindustry.entities.*;
import mindustry.gen.*; import mindustry.gen.*;
public class FlakBulletType extends BasicBulletType{ public class FlakBulletType extends BasicBulletType{
public float explodeRange = 30f, explodeDelay = 5f, flakInterval = 6f; public float explodeRange = 30f, explodeDelay = 5f, flakDelay = 0f, flakInterval = 6f;
public FlakBulletType(float speed, float damage){ public FlakBulletType(float speed, float damage){
super(speed, damage, "shell"); super(speed, damage, "shell");
@@ -27,9 +27,9 @@ public class FlakBulletType extends BasicBulletType{
super.update(b); super.update(b);
//don't check for targets if primed to explode //don't check for targets if primed to explode
if(b.fdata >= 0 && b.timer(2, flakInterval)){ if(b.time >= flakDelay && b.fdata >= 0 && b.timer(2, flakInterval)){
Units.nearbyEnemies(b.team, Tmp.r1.setSize(explodeRange * 2f).setCenter(b.x, b.y), unit -> { Units.nearbyEnemies(b.team, Tmp.r1.setSize(explodeRange * 2f).setCenter(b.x, b.y), unit -> {
//fadata < 0 means it's primed to explode //fdata < 0 means it's primed to explode
if(b.fdata < 0f || !unit.checkTarget(collidesAir, collidesGround)) return; if(b.fdata < 0f || !unit.checkTarget(collidesAir, collidesGround)) return;
if(unit.within(b, explodeRange + unit.hitSize/2f)){ if(unit.within(b, explodeRange + unit.hitSize/2f)){

View File

@@ -166,6 +166,8 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
(!build.block.underBullets || (!build.block.underBullets ||
//direct hit on correct tile //direct hit on correct tile
(aimTile != null && aimTile.build == build) || (aimTile != null && aimTile.build == build) ||
//same team has no 'under build' mechanics
(build.team == team) ||
//a piercing bullet overshot the aim tile, it's fine to hit things now //a piercing bullet overshot the aim tile, it's fine to hit things now
(type.pierce && aimTile != null && Mathf.dst(x, y, originX, originY) > aimTile.dst(originX, originY) + 2f) || (type.pierce && aimTile != null && Mathf.dst(x, y, originX, originY) > aimTile.dst(originX, originY) + 2f) ||
//there was nothing to aim at //there was nothing to aim at

View File

@@ -47,7 +47,7 @@ public class Rules{
public boolean schematicsAllowed = true; public boolean schematicsAllowed = true;
/** Whether friendly explosions can occur and set fire/damage other blocks. */ /** Whether friendly explosions can occur and set fire/damage other blocks. */
public boolean damageExplosions = true; public boolean damageExplosions = true;
/** Whether fire is enabled. */ /** Whether fire (and neoplasm spread) is enabled. */
public boolean fire = true; public boolean fire = true;
/** Whether units use and require ammo. */ /** Whether units use and require ammo. */
public boolean unitAmmo = false; public boolean unitAmmo = false;

View File

@@ -35,6 +35,9 @@ public class Layer{
//informal layer used for additive blending overlay, grouped together to reduce draw calls //informal layer used for additive blending overlay, grouped together to reduce draw calls
blockAdditive = 31, blockAdditive = 31,
//props such as boulders
blockProp = 32,
//things drawn over blocks (intermediate layer) //things drawn over blocks (intermediate layer)
blockOver = 35, blockOver = 35,
@@ -83,7 +86,7 @@ public class Layer{
//shield effects //shield effects
shields = 125, shields = 125,
//weather effects, e.g. rain and snow TODO draw before overlay UI? //weather effects, e.g. rain and snow
weather = 130, weather = 130,
//light rendering *shaders used* //light rendering *shaders used*

View File

@@ -112,6 +112,7 @@ public class Pal{
neoplasmOutline = Color.valueOf("2e191d"), neoplasmOutline = Color.valueOf("2e191d"),
neoplasm1 = Color.valueOf("f98f4a"), neoplasm1 = Color.valueOf("f98f4a"),
neoplasmMid = Color.valueOf("e05438"),
neoplasm2 = Color.valueOf("9e172c"), neoplasm2 = Color.valueOf("9e172c"),
logicBlocks = Color.valueOf("d4816b"), logicBlocks = Color.valueOf("d4816b"),

View File

@@ -44,23 +44,8 @@ public class NetworkIO{
stream.writeLong(GlobalVars.rand.seed0); stream.writeLong(GlobalVars.rand.seed0);
stream.writeLong(GlobalVars.rand.seed1); stream.writeLong(GlobalVars.rand.seed1);
Writes write = new Writes(stream);
stream.writeInt(player.id); stream.writeInt(player.id);
player.write(write); player.write(new Writes(stream));
boolean any = !state.rules.fog;
stream.writeInt(any ? Groups.sync.size() : 0);
if(any){
//write all synced entities *immediately*
for(Syncc entity : Groups.sync){
stream.writeInt(entity.id());
stream.writeByte(entity.classId());
entity.writeSync(write);
}
}
SaveIO.getSaveWriter().writeContentHeader(stream); SaveIO.getSaveWriter().writeContentHeader(stream);
SaveIO.getSaveWriter().writeMap(stream); SaveIO.getSaveWriter().writeMap(stream);
@@ -93,12 +78,6 @@ public class NetworkIO{
player.id = id; player.id = id;
player.add(); player.add();
int entities = stream.readInt();
for(int j = 0; j < entities; j++){
NetClient.readSyncEntity(stream, read);
}
SaveIO.getSaveWriter().readContentHeader(stream); SaveIO.getSaveWriter().readContentHeader(stream);
SaveIO.getSaveWriter().readMap(stream, world.context); SaveIO.getSaveWriter().readMap(stream, world.context);
SaveIO.getSaveWriter().readTeamBlocks(stream); SaveIO.getSaveWriter().readTeamBlocks(stream);

View File

@@ -5,6 +5,7 @@ import arc.graphics.g2d.*;
import arc.math.*; import arc.math.*;
import arc.math.geom.*; import arc.math.geom.*;
import arc.util.*; import arc.util.*;
import mindustry.*;
import mindustry.entities.*; import mindustry.entities.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.graphics.*; import mindustry.graphics.*;
@@ -18,7 +19,7 @@ public class CellLiquid extends Liquid{
public int cells = 8; public int cells = 8;
public @Nullable Liquid spreadTarget; public @Nullable Liquid spreadTarget;
public float maxSpread = 0.5f, spreadConversion = 0.5f, spreadDamage = 0.1f; public float maxSpread = 0.5f, spreadConversion = 1f, spreadDamage = 0.1f, removeScaling = 0.25f;
public CellLiquid(String name, Color color){ public CellLiquid(String name, Color color){
super(name, color); super(name, color);
@@ -30,20 +31,32 @@ public class CellLiquid extends Liquid{
@Override @Override
public void update(Puddle puddle){ public void update(Puddle puddle){
if(!Vars.state.rules.fire) return;
if(spreadTarget != null){ if(spreadTarget != null){
float scaling = Mathf.pow(Mathf.clamp(puddle.amount / maxLiquid), 2f); float scaling = Mathf.pow(Mathf.clamp(puddle.amount / maxLiquid), 2f);
for(var point : Geometry.d4c){ for(var point : Geometry.d4c){
Tile tile = puddle.tile.nearby(point); Tile tile = puddle.tile.nearby(point);
if(tile != null && tile.build != null && tile.build.liquids != null && tile.build.liquids.get(spreadTarget) > 0){ if(tile != null && tile.build != null && tile.build.liquids != null && tile.build.liquids.get(spreadTarget) > 0.0001f){
float amount = Math.min(tile.build.liquids.get(spreadTarget), maxSpread * Time.delta * scaling); float amount = Math.min(tile.build.liquids.get(spreadTarget), maxSpread * Time.delta * scaling);
tile.build.liquids.remove(spreadTarget, amount); tile.build.liquids.remove(spreadTarget, amount * removeScaling);
Puddles.deposit(tile, this, amount * spreadConversion); Puddles.deposit(tile, this, amount * spreadConversion);
} }
} }
//damage thing it is on //damage thing it is on
if(spreadDamage > 0 && puddle.tile.build != null && puddle.tile.build.liquids != null && puddle.tile.build.liquids.get(spreadTarget) > 0){ if(spreadDamage > 0 && puddle.tile.build != null && puddle.tile.build.liquids != null && puddle.tile.build.liquids.get(spreadTarget) > 0.0001f){
//spread in 4 adjacent directions around thing it is on
float amountSpread = Math.min(puddle.tile.build.liquids.get(spreadTarget) * spreadConversion, maxSpread * Time.delta) / 2f;
for(var dir : Geometry.d4){
Tile other = puddle.tile.nearby(dir);
if(other != null){
Puddles.deposit(puddle.tile, other, puddle.liquid, amountSpread);
}
}
puddle.tile.build.damage(spreadDamage * Time.delta * scaling); puddle.tile.build.damage(spreadDamage * Time.delta * scaling);
} }
@@ -79,7 +92,7 @@ public class CellLiquid extends Liquid{
public void drawPuddle(Puddle puddle){ public void drawPuddle(Puddle puddle){
super.drawPuddle(puddle); super.drawPuddle(puddle);
float baseLayer = puddle.tile != null && puddle.tile.build != null ? Layer.blockOver : Layer.debris - 0.5f; float baseLayer = puddle.tile != null && puddle.tile.block().solid || puddle.tile.build != null ? Layer.blockOver : Layer.debris - 0.5f;
int id = puddle.id; int id = puddle.id;
float amount = puddle.amount, x = puddle.x, y = puddle.y; float amount = puddle.amount, x = puddle.x, y = puddle.y;

View File

@@ -47,6 +47,8 @@ public class Liquid extends UnlockableContent implements Senseable{
public boolean coolant = true; public boolean coolant = true;
/** if true, this liquid can move through blocks as a puddle. */ /** if true, this liquid can move through blocks as a puddle. */
public boolean moveThroughBlocks = false; public boolean moveThroughBlocks = false;
/** if true, this liquid can be incinerated in the incinerator block. */
public boolean incinerable = true;
/** The associated status effect. */ /** The associated status effect. */
public StatusEffect effect = StatusEffects.none; public StatusEffect effect = StatusEffects.none;
/** Effect shown in puddles. */ /** Effect shown in puddles. */

View File

@@ -87,6 +87,11 @@ public class ShieldWall extends Wall{
return breakTimer > 0 || !canConsume(); return breakTimer > 0 || !canConsume();
} }
@Override
public void pickedUp(){
shieldRadius = 0f;
}
@Override @Override
public void damage(float damage){ public void damage(float damage){
float shieldTaken = broken() ? 0f : Math.min(shield, damage); float shieldTaken = broken() ? 0f : Math.min(shield, damage);

View File

@@ -5,9 +5,11 @@ import arc.graphics.g2d.*;
import arc.math.*; import arc.math.*;
import mindustry.content.*; import mindustry.content.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.world.*; import mindustry.world.*;
public class Prop extends Block{ public class Prop extends Block{
public float layer = Layer.blockProp;
public Prop(String name){ public Prop(String name){
super(name); super(name);
@@ -20,6 +22,7 @@ public class Prop extends Block{
@Override @Override
public void drawBase(Tile tile){ public void drawBase(Tile tile){
Draw.z(layer);
Draw.rect(variants > 0 ? variantRegions[Mathf.randomSeed(tile.pos(), 0, Math.max(0, variantRegions.length - 1))] : region, tile.worldx(), tile.worldy()); Draw.rect(variants > 0 ? variantRegions[Mathf.randomSeed(tile.pos(), 0, Math.max(0, variantRegions.length - 1))] : region, tile.worldx(), tile.worldy());
} }

View File

@@ -0,0 +1,77 @@
package mindustry.world.blocks.power;
import arc.math.*;
import arc.util.io.*;
import mindustry.graphics.*;
import mindustry.ui.*;
import mindustry.world.blocks.heat.*;
import mindustry.world.draw.*;
import mindustry.world.meta.*;
public class HeaterGenerator extends ConsumeGenerator{
public float heatOutput = 10f;
public float warmupRate = 0.15f;
public HeaterGenerator(String name){
super(name);
drawer = new DrawMulti(new DrawDefault(), new DrawHeatOutput());
rotateDraw = false;
rotate = true;
canOverdrive = false;
drawArrow = true;
}
@Override
public void setStats(){
super.setStats();
stats.add(Stat.output, heatOutput, StatUnit.heatUnits);
}
@Override
public boolean rotatedOutput(int x, int y){
return false;
}
@Override
public void setBars(){
super.setBars();
addBar("heat", (HeaterGeneratorBuild entity) -> new Bar("bar.heat", Pal.lightOrange, () -> entity.heat / heatOutput));
}
public class HeaterGeneratorBuild extends ConsumeGeneratorBuild implements HeatBlock{
public float heat;
@Override
public void updateTile(){
super.updateTile();
//heat approaches target at the same speed regardless of efficiency
heat = Mathf.approachDelta(heat, heatOutput * efficiency, warmupRate * delta());
}
@Override
public float heatFrac(){
return heat / heatOutput;
}
@Override
public float heat(){
return heat;
}
@Override
public void write(Writes write){
super.write(write);
write.f(heat);
}
@Override
public void read(Reads read, byte revision){
super.read(read, revision);
heat = read.f();
}
}
}

View File

@@ -35,6 +35,7 @@ public class PowerGenerator extends PowerDistributor{
public float explosionPuddleRange = tilesize * 2f; public float explosionPuddleRange = tilesize * 2f;
public float explosionPuddleAmount = 100f; public float explosionPuddleAmount = 100f;
public @Nullable Liquid explosionPuddleLiquid; public @Nullable Liquid explosionPuddleLiquid;
public float explosionMinWarmup = 0f;
public float explosionShake = 0f, explosionShakeDuration = 6f; public float explosionShake = 0f, explosionShakeDuration = 6f;
@@ -110,23 +111,25 @@ public class PowerGenerator extends PowerDistributor{
} }
public void createExplosion(){ public void createExplosion(){
if(explosionDamage > 0){ if(warmup() >= explosionMinWarmup){
Damage.damage(x, y, explosionRadius * tilesize, explosionDamage); if(explosionDamage > 0){
} Damage.damage(x, y, explosionRadius * tilesize, explosionDamage);
explodeEffect.at(this);
explodeSound.at(this);
if(explosionPuddleLiquid != null){
for(int i = 0; i < explosionPuddles; i++){
Tmp.v1.trns(Mathf.random(360f), Mathf.random(explosionPuddleRange));
Tile tile = world.tileWorld(x + Tmp.v1.x, y + Tmp.v1.y);
Puddles.deposit(tile, explosionPuddleLiquid, explosionPuddleAmount);
} }
}
if(explosionShake > 0){ explodeEffect.at(this);
Effect.shake(explosionShake, explosionShakeDuration, this); explodeSound.at(this);
if(explosionPuddleLiquid != null){
for(int i = 0; i < explosionPuddles; i++){
Tmp.v1.trns(Mathf.random(360f), Mathf.random(explosionPuddleRange));
Tile tile = world.tileWorld(x + Tmp.v1.x, y + Tmp.v1.y);
Puddles.deposit(tile, explosionPuddleLiquid, explosionPuddleAmount);
}
}
if(explosionShake > 0){
Effect.shake(explosionShake, explosionShakeDuration, this);
}
} }
} }

View File

@@ -76,7 +76,7 @@ public class Incinerator extends Block{
@Override @Override
public boolean acceptLiquid(Building source, Liquid liquid){ public boolean acceptLiquid(Building source, Liquid liquid){
return heat > 0.5f; return heat > 0.5f && liquid.incinerable;
} }
} }
} }

View File

@@ -11,9 +11,10 @@ import mindustry.world.*;
public class DrawCells extends DrawBlock{ public class DrawCells extends DrawBlock{
public TextureRegion middle; public TextureRegion middle;
public Color color = Color.white.cpy(), particleColorFrom = Color.black.cpy(), particleColorTo = Color.black.cpy(); public Color color = Color.white.cpy(), particleColorFrom = Color.black.cpy(), particleColorTo = Color.black.cpy();
public int particles = 12; public int particles = 12;
public float range = 4f, recurrence = 6f, radius = 3f, lifetime = 60f; public float range = 4f, recurrence = 2f, radius = 1.8f, lifetime = 60f * 3f;
@Override @Override
public void draw(Building build){ public void draw(Building build){
@@ -38,7 +39,6 @@ public class DrawCells extends DrawBlock{
} }
Draw.color(); Draw.color();
Draw.rect(build.block.region, build.x, build.y);
} }
@Override @Override

View File

@@ -143,11 +143,8 @@ public class IOSLauncher extends IOSApplication.Delegate{
Log.info("Attempting to share file " + file); Log.info("Attempting to share file " + file);
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
list.add(file.name());
list.add(NSData.read(file.file()));
//better choice? //better choice?
//list.add(new NSURL(file.file())); list.add(new NSURL(file.file()));
UIActivityViewController p = new UIActivityViewController(list, null); UIActivityViewController p = new UIActivityViewController(list, null);
UIViewController rootVc = UIApplication.getSharedApplication().getKeyWindow().getRootViewController(); UIViewController rootVc = UIApplication.getSharedApplication().getKeyWindow().getRootViewController();

View File

@@ -20,5 +20,9 @@
}, },
{ {
"address": "n1.yeet.ml:6574" "address": "n1.yeet.ml:6574"
},
{
"name":"Phoenix-Network",
"address":["be.phoenix-network.dev"]
} }
] ]

View File

@@ -85,7 +85,7 @@
}, },
{ {
"name": "TSR", "name": "TSR",
"address": ["fi01.optik.host:28301", "uk01.optik.host:26164"] "address": ["uk01.optik.host:26175", "uk01.optik.host:26164"]
}, },
{ {
"name": "Sakura", "name": "Sakura",

View File

@@ -1,8 +1,13 @@
[ [
{ {
"name": "mindustry.pl", "name": "mindustry.pl",
"address": ["0.baseduser.eu.org:6966", "0.baseduser.eu.org:6666", "0.baseduser.eu.org:6000"] "address": ["0.baseduser.eu.org:6966", "0.baseduser.eu.org:6666", "0.baseduser.eu.org:6000"]
}, },
{
"name": "SynapseOS",
"address": ["0nera.ru:7777", "185.178.45.224:7777"]
},
{ {
"name": "C.A.M.S.", "name": "C.A.M.S.",
"address": ["0.baseduser.eu.org:42001", "0.baseduser.eu.org:42002", "v7.thedimas.pp.ua"] "address": ["0.baseduser.eu.org:42001", "0.baseduser.eu.org:42002", "v7.thedimas.pp.ua"]
@@ -49,7 +54,7 @@
}, },
{ {
"name": "Phoenix Network", "name": "Phoenix Network",
"address": ["172.104.253.198", "172.104.253.198:6464"] "address": ["phoenix-network.dev", "phoenix-network.dev:6464"]
}, },
{ {
"name": "Xpdustry", "name": "Xpdustry",
@@ -93,6 +98,10 @@
}, },
{ {
"name": "OMNIDUSTRY", "name": "OMNIDUSTRY",
"address": ["109.94.209.233:6569"] "address": ["109.94.209.233:6569","109.94.209.233:6570","109.94.209.233:6571"]
} },
{
"name": "The Devil",
"address": ["dc8.i8mc.cn:8169", "dc8.i8mc.cn:8920", "other.xem8k5.top:10530"]
}
] ]