diff --git a/core/assets-raw/sprites/blocks/power/neoplasia-reactor-bottom.png b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-bottom.png new file mode 100644 index 0000000000..c3eeda8e4c Binary files /dev/null and b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-bottom.png differ diff --git a/core/assets-raw/sprites/blocks/power/neoplasia-reactor-center.png b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-center.png new file mode 100644 index 0000000000..e26c3c877d Binary files /dev/null and b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-center.png differ diff --git a/core/assets-raw/sprites/blocks/power/neoplasia-reactor-glow.png b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-glow.png new file mode 100644 index 0000000000..88336542e8 Binary files /dev/null and b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-glow.png differ diff --git a/core/assets-raw/sprites/blocks/power/neoplasia-reactor-heat.png b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-heat.png new file mode 100644 index 0000000000..a5da4dbe49 Binary files /dev/null and b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-heat.png differ diff --git a/core/assets-raw/sprites/blocks/power/neoplasia-reactor-middle.png b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-middle.png new file mode 100644 index 0000000000..3b1e8154c6 Binary files /dev/null and b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-middle.png differ diff --git a/core/assets-raw/sprites/blocks/power/neoplasia-reactor-top1.png b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-top1.png new file mode 100644 index 0000000000..3d713dd948 Binary files /dev/null and b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-top1.png differ diff --git a/core/assets-raw/sprites/blocks/power/neoplasia-reactor-top2.png b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-top2.png new file mode 100644 index 0000000000..fe644e7923 Binary files /dev/null and b/core/assets-raw/sprites/blocks/power/neoplasia-reactor-top2.png differ diff --git a/core/assets-raw/sprites/blocks/power/neoplasia-reactor.png b/core/assets-raw/sprites/blocks/power/neoplasia-reactor.png new file mode 100644 index 0000000000..d13908e222 Binary files /dev/null and b/core/assets-raw/sprites/blocks/power/neoplasia-reactor.png differ diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 761d4926be..e1c7a888ee 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1673,6 +1673,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Switch block.micro-processor.name = Micro Processor diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 0202cb1345..50b553d59b 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Пераключальнік block.micro-processor.name = Мікропрацэсар diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 89f325e7f2..e1a7d184e7 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -1657,6 +1657,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Превключвател block.micro-processor.name = Микропроцесор diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index 19b9cb11dc..b3df61cacc 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -1668,6 +1668,7 @@ block.basic-assembler-module.name = Mòdul de muntatge bàsic block.smite.name = Smite block.malign.name = Maligne block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Interruptor block.micro-processor.name = Microprocessador diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index dc6a418e31..8ff745d576 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -1661,6 +1661,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Přepínač block.micro-processor.name = Mikroprocesor diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index d65e9d0ecc..29584c2faa 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Kontakt block.micro-processor.name = Datamat diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index e24bbdbb99..d3ad0197c0 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -1668,6 +1668,7 @@ block.basic-assembler-module.name = Einfaches Verbesserermodul block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Schalter block.micro-processor.name = Mikroprozessor block.logic-processor.name = Logikprozessor diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index fb4064d6a4..09d3a4e115 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -1668,6 +1668,7 @@ block.basic-assembler-module.name = Módulo ensamblador básico block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Interruptor block.micro-processor.name = Microprocesador diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 3951c87972..bbd1cbfafd 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Switch block.micro-processor.name = Micro Processor diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index ef541460fe..ae6f51b85d 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Switch block.micro-processor.name = Micro Processor diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 1f9bf03ec8..256a5ef5b2 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -1650,6 +1650,7 @@ block.basic-assembler-module.name = Yksinkertainen kokoajamoduuli block.smite.name = Isku block.malign.name = Pahantahto block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Kytkin block.micro-processor.name = Mikroprosessori diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index c2c5a44415..844f0309d2 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Switch block.micro-processor.name = Micro Processor diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index f3778ffbac..fea11d8f94 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -1671,6 +1671,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Interrupteur block.micro-processor.name = Micro Processeur diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 26710df6c6..10dd89daf2 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -1656,6 +1656,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Switch block.micro-processor.name = Micro Processor diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 43547b6645..0379bd00dc 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -1668,6 +1668,7 @@ block.basic-assembler-module.name = Modul Perakitan Dasar block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Saklar block.micro-processor.name = Prosesor Mikro diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index acedf11cba..b765cd9979 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -1654,6 +1654,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Interruttore block.micro-processor.name = Micro Processore diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index a86a49343d..d53baf1fb8 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -1661,6 +1661,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = スイッチ block.micro-processor.name = マイクロプロセッサー diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 9f20e2b129..2d60d22090 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -311,11 +311,11 @@ open = 열기 customize = 사용자 정의 규칙 cancel = 취소 command = 명령 -command.mine = Mine -command.repair = Repair -command.rebuild = Rebuild -command.assist = Assist Player -command.move = Move +command.mine = 채굴 +command.repair = 수리 +command.rebuild = 재건 +command.assist = 플레이어 지원 +command.move = 이동 openlink = 링크 열기 copylink = 링크 복사 back = 뒤로가기 @@ -1221,7 +1221,7 @@ liquid.water.name = 물 liquid.slag.name = 광재 liquid.oil.name = 석유 liquid.cryofluid.name = 냉각수 -liquid.neoplasm.name = 종양 +liquid.neoplasm.name = 신생물 liquid.arkycite.name = 아르키사이트 liquid.gallium.name = 갈륨 liquid.ozone.name = 오존 @@ -1661,7 +1661,8 @@ block.diffuse.name = 디퓨즈 block.basic-assembler-module.name = 기본 조립 모듈 block.smite.name = 스마이트 block.malign.name = 멀라인 -block.flux-reactor.name = Flux Reactor +block.flux-reactor.name = 융제 원자로 +block.neoplasia-reactor.name = 신생물 원자로 block.switch.name = 스위치 block.micro-processor.name = 마이크로 프로세서 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index afafba901a..b7519bc888 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Switch block.micro-processor.name = Micro Processor diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 37e9a51dee..754fce85e2 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Switch block.micro-processor.name = Micro Processor diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 328209013d..f06e994b76 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Switch block.micro-processor.name = Micro Processor diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 5d7ea282c5..52de179a5e 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -1669,6 +1669,7 @@ block.basic-assembler-module.name = Podstawowy Moduł Montażowy block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Przełącznik block.micro-processor.name = Mikroprocesor diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 0c43b4cdc8..3714dacbac 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -1654,6 +1654,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Alavanca block.micro-processor.name = Micro Processador diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index 13af0f1f40..8d3dbb895f 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Switch block.micro-processor.name = Micro Processor diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index 302bb029f7..20f563b4e9 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -1661,6 +1661,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Întrerupător block.micro-processor.name = Microprocesor diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 7b275e670d..20e348d978 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -1660,6 +1660,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Переключатель block.micro-processor.name = Микропроцессор diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index 7e28d29de1..a4f366e4b0 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -1661,6 +1661,7 @@ block.basic-assembler-module.name = Prosti Proizvodni Modul block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Prekidač block.micro-processor.name = Mikro Procesor diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 6aba0f8e7d..22db62801d 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Switch block.micro-processor.name = Micro Processor diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 3d859c10e0..162f9cfec6 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -1661,6 +1661,7 @@ block.basic-assembler-module.name = หน่วยประกอบการ block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = สวิตช์ block.micro-processor.name = ตัวประมวลผลขนาดเล็ก diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 5dfa7a9f85..7c9b17af84 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -1647,6 +1647,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Switch block.micro-processor.name = Micro Processor diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 9953735f73..4ccb2887d8 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -1662,6 +1662,7 @@ block.basic-assembler-module.name = Basit İnşa Modülü block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor #ama tüp ne aga -Anti Dragon block.switch.name = Düğme diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 4c8c188224..c88c55eb59 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -1668,6 +1668,7 @@ block.basic-assembler-module.name = Базовий збиральний моду block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Перемикач block.micro-processor.name = Мікропроцесор diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 71f996f078..2cdd5443ff 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -1661,6 +1661,7 @@ block.basic-assembler-module.name = Basic Assembler Module block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = Công tắc block.micro-processor.name = Bộ xử lí nhỏ diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 186cdf5b77..eb2c415bcf 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -311,11 +311,11 @@ open = 打开 customize = 自定义规则 cancel = 取消 command = 指挥 -command.mine = Mine -command.repair = Repair -command.rebuild = Rebuild -command.assist = Assist Player -command.move = Move +command.mine = 挖矿 +command.repair = 维修 +command.rebuild = 重建 +command.assist = 协助建造 +command.move = 移动 openlink = 打开链接 copylink = 复制链接 back = 返回 @@ -348,8 +348,8 @@ wave.waveInProgress = [lightgray]波次袭来 waiting = [lightgray]等待中… waiting.players = 等待玩家中… wave.enemies = [lightgray]剩余 {0} 个敌人 -wave.enemycores = [accent]{0}[lightgray] 敌人核心 -wave.enemycore = [accent]{0}[lightgray] 敌人核心 +wave.enemycores = [accent]{0}[lightgray] 敌方核心 +wave.enemycore = [accent]{0}[lightgray] 敌方核心 wave.enemy = [lightgray]剩余 {0} 个敌人 wave.guardianwarn = Boss 将在[accent]{0}[]波后到来。 wave.guardianwarn.one = Boss 将在[accent]{0}[]波后到来。 @@ -418,7 +418,7 @@ waves.perspawn = 每波 waves.shields = 护盾/波 waves.to = 至 waves.spawn = 出生点: -waves.spawn.all = +waves.spawn.all = <全部> waves.spawn.select = 出生点选择 waves.spawn.none = [scarlet]地图上没有出生点 waves.max = 最大单位数 @@ -909,7 +909,7 @@ bar.capacity = 容量:{0} bar.unitcap = {0} {1}/{2} bar.liquid = 液体 bar.heat = 热量 -bar.instability = Instability +bar.instability = 不稳定性 bar.heatamount = 热量: {0} bar.heatpercent = 热量: {0} ({1}%) bar.power = 电力 @@ -1650,7 +1650,7 @@ block.reinforced-payload-conveyor.name = 强化载荷传送带 block.reinforced-payload-router.name = 强化载荷路由器 block.payload-mass-driver.name = 载荷质量驱动器 block.small-deconstructor.name = 小型解构器 -block.canvas.name = 画布 +block.canvas.name = 画板 block.world-processor.name = 世界处理器 block.world-cell.name = 世界内存元 block.shield-breaker.name = 破盾机 (临时翻译/贴图) @@ -1664,7 +1664,8 @@ block.basic-assembler-module.name = 基本装配厂模块 block.smite.name = 天谴 block.malign.name = 魔灵 -block.flux-reactor.name = Flux Reactor +block.flux-reactor.name = 通量反应堆 +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = 开关 block.micro-processor.name = 微型处理器 @@ -1850,7 +1851,7 @@ block.cultivator.details = 一种失传已久的技术,用于尽可能高效 block.oil-extractor.description = 使用沙子、 水和大量电力钻取石油。 block.core-shard.description = 基地的核心。 一旦被摧毁,此区块就会丢失。 block.core-shard.details = 初代核心,坚固且能够自我维持。 不具备星际旅行的能力。 -block.core-foundation.description = 基地的核心。 装甲优良。 比初代核心容量更大。 +block.core-foundation.description = 基地的核心。 装甲优良。 容量比初代核心更大。 block.core-foundation.details = 次代核心。 block.core-nucleus.description = 基地的核心。 装甲极佳,容量极大。 block.core-nucleus.details = 三代也是终代核心。 @@ -1858,7 +1859,7 @@ block.vault.description = 大量存储各种类型的物品。 可使用装卸 block.container.description = 少量存储各种类型的物品。 可使用装卸器卸载物品。 block.unloader.description = 从周围的建筑卸载指定物品。 block.launch-pad.description = 将货物发射至指定区块。 -block.launch-pad.details = 用于资源点对点运输的亚轨道系统。载荷仓很脆弱,再入大气时无法保留。 +block.launch-pad.details = 用于资源点对点运输的亚轨道系统。 载荷仓很脆弱,再入大气时无法保留。 block.duo.description = 交替向敌人发射子弹。 block.scatter.description = 向敌方战机发射铅、 废料或钢化玻璃高射炮弹。 block.scorch.description = 焚烧任何靠近它的地面敌人。 近距离内十分有效。 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index a16f4b4d21..434a1c55f9 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -1668,6 +1668,7 @@ block.basic-assembler-module.name = 支援組裝廠 block.smite.name = Smite block.malign.name = Malign block.flux-reactor.name = Flux Reactor +block.neoplasia-reactor.name = Neoplasia Reactor block.switch.name = 按鈕 block.micro-processor.name = 微處理器 diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index f590226e0b..27696878c3 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -578,3 +578,4 @@ 63106=shockwave-tower|block-shockwave-tower-ui 63105=heat-source|block-heat-source-ui 63104=flux-reactor|block-flux-reactor-ui +63103=neoplasia-reactor|block-neoplasia-reactor-ui diff --git a/core/assets/logicids.dat b/core/assets/logicids.dat index c94f7ca2d0..d0aa922655 100644 Binary files a/core/assets/logicids.dat and b/core/assets/logicids.dat differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index e2bb248d5a..b90fff0130 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -36,6 +36,7 @@ import mindustry.world.consumers.*; import mindustry.world.draw.*; import mindustry.world.meta.*; +import static mindustry.Vars.*; import static mindustry.type.ItemStack.*; public class Blocks{ @@ -119,7 +120,7 @@ public class Blocks{ impactReactor, battery, batteryLarge, powerNode, powerNodeLarge, surgeTower, diode, //power - erekir - turbineCondenser, ventCondenser, chemicalCombustionChamber, pyrolysisGenerator, fluxReactor, + turbineCondenser, ventCondenser, chemicalCombustionChamber, pyrolysisGenerator, fluxReactor, neoplasiaReactor, beamNode, beamTower, beamLink, //production @@ -1672,7 +1673,7 @@ public class Blocks{ }}; 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); outputsPower = false; @@ -2374,7 +2375,6 @@ public class Blocks{ heating = 0.02f; consumeItem(Items.thorium); - //TODO how to non update consumeLiquid(Liquids.cryofluid, heating / coolantPower).update(false); }}; @@ -2449,11 +2449,10 @@ public class Blocks{ researchCost = with(Items.beryllium, 15); }}; - //TODO rename chemicalCombustionChamber = new ConsumeGenerator("chemical-combustion-chamber"){{ 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); - powerProduction = 9f; consumeLiquids(LiquidStack.with(Liquids.ozone, 2f / 60f, Liquids.arkycite, 40f / 60f)); size = 3; drawer = new DrawMulti(new DrawRegion("-bottom"), new DrawPistons(){{ @@ -2508,6 +2507,7 @@ public class Blocks{ consumeLiquid(Liquids.cyanogen, 9f / 60f); liquidCapacity = 30f; + explosionMinWarmup = 0.5f; 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 //region production diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java index b04505be68..1b84922fec 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -470,6 +470,26 @@ public class Fx{ } }).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 -> { color(e.color); 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 -> { color(Color.gray); diff --git a/core/src/mindustry/content/Liquids.java b/core/src/mindustry/content/Liquids.java index 90c194294a..d0189e9a9a 100644 --- a/core/src/mindustry/content/Liquids.java +++ b/core/src/mindustry/content/Liquids.java @@ -50,9 +50,9 @@ public class Liquids{ viscosity = 0.85f; flammability = 0f; capPuddles = false; - hidden = true; spreadTarget = Liquids.water; moveThroughBlocks = true; + incinerable = true; colorFrom = Color.valueOf("e8803f"); colorTo = Color.valueOf("8c1225"); diff --git a/core/src/mindustry/content/Planets.java b/core/src/mindustry/content/Planets.java index 51e5edb4be..3487f3a6b1 100644 --- a/core/src/mindustry/content/Planets.java +++ b/core/src/mindustry/content/Planets.java @@ -131,6 +131,8 @@ public class Planets{ allowLaunchSchematics = true; enemyCoreSpawnReplace = true; allowLaunchLoadout = true; + //doesn't play well with configs + prebuildBase = false; ruleSetter = r -> { r.waveTeam = Team.crux; r.placeRangeCheck = false; diff --git a/core/src/mindustry/entities/bullet/FlakBulletType.java b/core/src/mindustry/entities/bullet/FlakBulletType.java index 26991e9287..3fbf88a1b0 100644 --- a/core/src/mindustry/entities/bullet/FlakBulletType.java +++ b/core/src/mindustry/entities/bullet/FlakBulletType.java @@ -6,7 +6,7 @@ import mindustry.entities.*; import mindustry.gen.*; 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){ super(speed, damage, "shell"); @@ -27,9 +27,9 @@ public class FlakBulletType extends BasicBulletType{ super.update(b); //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 -> { - //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(unit.within(b, explodeRange + unit.hitSize/2f)){ diff --git a/core/src/mindustry/entities/comp/BulletComp.java b/core/src/mindustry/entities/comp/BulletComp.java index 3684cacb34..813b3979f0 100644 --- a/core/src/mindustry/entities/comp/BulletComp.java +++ b/core/src/mindustry/entities/comp/BulletComp.java @@ -166,6 +166,8 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw (!build.block.underBullets || //direct hit on correct tile (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 (type.pierce && aimTile != null && Mathf.dst(x, y, originX, originY) > aimTile.dst(originX, originY) + 2f) || //there was nothing to aim at diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index 3e33b3231c..0f3a658652 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -47,7 +47,7 @@ public class Rules{ public boolean schematicsAllowed = true; /** Whether friendly explosions can occur and set fire/damage other blocks. */ public boolean damageExplosions = true; - /** Whether fire is enabled. */ + /** Whether fire (and neoplasm spread) is enabled. */ public boolean fire = true; /** Whether units use and require ammo. */ public boolean unitAmmo = false; diff --git a/core/src/mindustry/graphics/Layer.java b/core/src/mindustry/graphics/Layer.java index d87ef9f185..7d8d9f343a 100644 --- a/core/src/mindustry/graphics/Layer.java +++ b/core/src/mindustry/graphics/Layer.java @@ -35,6 +35,9 @@ public class Layer{ //informal layer used for additive blending overlay, grouped together to reduce draw calls blockAdditive = 31, + //props such as boulders + blockProp = 32, + //things drawn over blocks (intermediate layer) blockOver = 35, @@ -83,7 +86,7 @@ public class Layer{ //shield effects shields = 125, - //weather effects, e.g. rain and snow TODO draw before overlay UI? + //weather effects, e.g. rain and snow weather = 130, //light rendering *shaders used* diff --git a/core/src/mindustry/graphics/Pal.java b/core/src/mindustry/graphics/Pal.java index b10065fa90..2929741cf1 100644 --- a/core/src/mindustry/graphics/Pal.java +++ b/core/src/mindustry/graphics/Pal.java @@ -112,6 +112,7 @@ public class Pal{ neoplasmOutline = Color.valueOf("2e191d"), neoplasm1 = Color.valueOf("f98f4a"), + neoplasmMid = Color.valueOf("e05438"), neoplasm2 = Color.valueOf("9e172c"), logicBlocks = Color.valueOf("d4816b"), diff --git a/core/src/mindustry/net/NetworkIO.java b/core/src/mindustry/net/NetworkIO.java index d9366f0a0e..c6b2ce1478 100644 --- a/core/src/mindustry/net/NetworkIO.java +++ b/core/src/mindustry/net/NetworkIO.java @@ -44,23 +44,8 @@ public class NetworkIO{ stream.writeLong(GlobalVars.rand.seed0); stream.writeLong(GlobalVars.rand.seed1); - Writes write = new Writes(stream); - stream.writeInt(player.id); - player.write(write); - - 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); - } - } + player.write(new Writes(stream)); SaveIO.getSaveWriter().writeContentHeader(stream); SaveIO.getSaveWriter().writeMap(stream); @@ -93,12 +78,6 @@ public class NetworkIO{ player.id = id; player.add(); - int entities = stream.readInt(); - - for(int j = 0; j < entities; j++){ - NetClient.readSyncEntity(stream, read); - } - SaveIO.getSaveWriter().readContentHeader(stream); SaveIO.getSaveWriter().readMap(stream, world.context); SaveIO.getSaveWriter().readTeamBlocks(stream); diff --git a/core/src/mindustry/type/CellLiquid.java b/core/src/mindustry/type/CellLiquid.java index 220953c3c0..0eb19b01fd 100644 --- a/core/src/mindustry/type/CellLiquid.java +++ b/core/src/mindustry/type/CellLiquid.java @@ -5,6 +5,7 @@ import arc.graphics.g2d.*; import arc.math.*; import arc.math.geom.*; import arc.util.*; +import mindustry.*; import mindustry.entities.*; import mindustry.gen.*; import mindustry.graphics.*; @@ -18,7 +19,7 @@ public class CellLiquid extends Liquid{ public int cells = 8; 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){ super(name, color); @@ -30,20 +31,32 @@ public class CellLiquid extends Liquid{ @Override public void update(Puddle puddle){ + if(!Vars.state.rules.fire) return; + if(spreadTarget != null){ float scaling = Mathf.pow(Mathf.clamp(puddle.amount / maxLiquid), 2f); for(var point : Geometry.d4c){ 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); - tile.build.liquids.remove(spreadTarget, amount); + tile.build.liquids.remove(spreadTarget, amount * removeScaling); Puddles.deposit(tile, this, amount * spreadConversion); } } //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); } @@ -79,7 +92,7 @@ public class CellLiquid extends Liquid{ public void drawPuddle(Puddle 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; float amount = puddle.amount, x = puddle.x, y = puddle.y; diff --git a/core/src/mindustry/type/Liquid.java b/core/src/mindustry/type/Liquid.java index b76a595dda..9fb9259b64 100644 --- a/core/src/mindustry/type/Liquid.java +++ b/core/src/mindustry/type/Liquid.java @@ -47,6 +47,8 @@ public class Liquid extends UnlockableContent implements Senseable{ public boolean coolant = true; /** if true, this liquid can move through blocks as a puddle. */ public boolean moveThroughBlocks = false; + /** if true, this liquid can be incinerated in the incinerator block. */ + public boolean incinerable = true; /** The associated status effect. */ public StatusEffect effect = StatusEffects.none; /** Effect shown in puddles. */ diff --git a/core/src/mindustry/world/blocks/defense/ShieldWall.java b/core/src/mindustry/world/blocks/defense/ShieldWall.java index 5fc190c099..b7878e6af4 100644 --- a/core/src/mindustry/world/blocks/defense/ShieldWall.java +++ b/core/src/mindustry/world/blocks/defense/ShieldWall.java @@ -87,6 +87,11 @@ public class ShieldWall extends Wall{ return breakTimer > 0 || !canConsume(); } + @Override + public void pickedUp(){ + shieldRadius = 0f; + } + @Override public void damage(float damage){ float shieldTaken = broken() ? 0f : Math.min(shield, damage); diff --git a/core/src/mindustry/world/blocks/environment/Prop.java b/core/src/mindustry/world/blocks/environment/Prop.java index 0e7807acdd..1564ee6795 100644 --- a/core/src/mindustry/world/blocks/environment/Prop.java +++ b/core/src/mindustry/world/blocks/environment/Prop.java @@ -5,9 +5,11 @@ import arc.graphics.g2d.*; import arc.math.*; import mindustry.content.*; import mindustry.gen.*; +import mindustry.graphics.*; import mindustry.world.*; public class Prop extends Block{ + public float layer = Layer.blockProp; public Prop(String name){ super(name); @@ -20,6 +22,7 @@ public class Prop extends Block{ @Override 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()); } diff --git a/core/src/mindustry/world/blocks/power/HeaterGenerator.java b/core/src/mindustry/world/blocks/power/HeaterGenerator.java new file mode 100644 index 0000000000..53350f9fd5 --- /dev/null +++ b/core/src/mindustry/world/blocks/power/HeaterGenerator.java @@ -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(); + } + } +} diff --git a/core/src/mindustry/world/blocks/power/PowerGenerator.java b/core/src/mindustry/world/blocks/power/PowerGenerator.java index 9500de8030..4b23baae9f 100644 --- a/core/src/mindustry/world/blocks/power/PowerGenerator.java +++ b/core/src/mindustry/world/blocks/power/PowerGenerator.java @@ -35,6 +35,7 @@ public class PowerGenerator extends PowerDistributor{ public float explosionPuddleRange = tilesize * 2f; public float explosionPuddleAmount = 100f; public @Nullable Liquid explosionPuddleLiquid; + public float explosionMinWarmup = 0f; public float explosionShake = 0f, explosionShakeDuration = 6f; @@ -110,23 +111,25 @@ public class PowerGenerator extends PowerDistributor{ } public void createExplosion(){ - 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(warmup() >= explosionMinWarmup){ + if(explosionDamage > 0){ + Damage.damage(x, y, explosionRadius * tilesize, explosionDamage); } - } - if(explosionShake > 0){ - Effect.shake(explosionShake, explosionShakeDuration, this); + 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){ + Effect.shake(explosionShake, explosionShakeDuration, this); + } } } diff --git a/core/src/mindustry/world/blocks/production/Incinerator.java b/core/src/mindustry/world/blocks/production/Incinerator.java index 84b2a144f5..62f8fc573e 100644 --- a/core/src/mindustry/world/blocks/production/Incinerator.java +++ b/core/src/mindustry/world/blocks/production/Incinerator.java @@ -76,7 +76,7 @@ public class Incinerator extends Block{ @Override public boolean acceptLiquid(Building source, Liquid liquid){ - return heat > 0.5f; + return heat > 0.5f && liquid.incinerable; } } } diff --git a/core/src/mindustry/world/draw/DrawCells.java b/core/src/mindustry/world/draw/DrawCells.java index 9b08604c72..28e6b4078c 100644 --- a/core/src/mindustry/world/draw/DrawCells.java +++ b/core/src/mindustry/world/draw/DrawCells.java @@ -11,9 +11,10 @@ import mindustry.world.*; public class DrawCells extends DrawBlock{ public TextureRegion middle; + public Color color = Color.white.cpy(), particleColorFrom = Color.black.cpy(), particleColorTo = Color.black.cpy(); 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 public void draw(Building build){ @@ -38,7 +39,6 @@ public class DrawCells extends DrawBlock{ } Draw.color(); - Draw.rect(build.block.region, build.x, build.y); } @Override diff --git a/ios/src/mindustry/ios/IOSLauncher.java b/ios/src/mindustry/ios/IOSLauncher.java index fa12ea0e48..7faab63ec0 100644 --- a/ios/src/mindustry/ios/IOSLauncher.java +++ b/ios/src/mindustry/ios/IOSLauncher.java @@ -143,11 +143,8 @@ public class IOSLauncher extends IOSApplication.Delegate{ Log.info("Attempting to share file " + file); List list = new ArrayList<>(); - list.add(file.name()); - list.add(NSData.read(file.file())); - //better choice? - //list.add(new NSURL(file.file())); + list.add(new NSURL(file.file())); UIActivityViewController p = new UIActivityViewController(list, null); UIViewController rootVc = UIApplication.getSharedApplication().getKeyWindow().getRootViewController(); diff --git a/servers_be.json b/servers_be.json index 7f94fee01e..4e79349c28 100644 --- a/servers_be.json +++ b/servers_be.json @@ -20,5 +20,9 @@ }, { "address": "n1.yeet.ml:6574" + }, + { + "name":"Phoenix-Network", + "address":["be.phoenix-network.dev"] } ] diff --git a/servers_v6.json b/servers_v6.json index e9f3a8ffad..b7a6707aaa 100644 --- a/servers_v6.json +++ b/servers_v6.json @@ -85,7 +85,7 @@ }, { "name": "TSR", - "address": ["fi01.optik.host:28301", "uk01.optik.host:26164"] + "address": ["uk01.optik.host:26175", "uk01.optik.host:26164"] }, { "name": "Sakura", diff --git a/servers_v7.json b/servers_v7.json index f3388c16fb..3ee76ab952 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -1,8 +1,13 @@ [ + { "name": "mindustry.pl", "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.", "address": ["0.baseduser.eu.org:42001", "0.baseduser.eu.org:42002", "v7.thedimas.pp.ua"] @@ -49,7 +54,7 @@ }, { "name": "Phoenix Network", - "address": ["172.104.253.198", "172.104.253.198:6464"] + "address": ["phoenix-network.dev", "phoenix-network.dev:6464"] }, { "name": "Xpdustry", @@ -93,6 +98,10 @@ }, { "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"] + } ]