Compare commits

..

16 Commits
v154 ... v154.2

Author SHA1 Message Date
Anuken
3d34d95c74 No more assetsJar until jitpack is fixed 2025-12-17 19:11:24 -05:00
Vector
be4dd84a13 Update bundle_es.properties (#11334)
* Update bundle_es.properties

* te fallé español

* Update bundle_es.properties

* Update bundle_es.properties

* sector wave simulation string

* last changes I guess

* Update bundle_es.properties

* Translate some sector names
2025-12-17 19:03:16 -05:00
SITUVNgcd
a3c0c39615 Update Vietnamese translation (#11456)
* Translate new strings

Patch guide & Fields view

* Translate new strings
2025-12-17 19:02:45 -05:00
summoner
5784b3207b Translation: Update bundle_hu.properties (#11457)
* Translation: Update bundle_hu.properties

Updated various terms to use 'életpont' instead of 'életerő' for consistency in the Hungarian localization for the word health.

Follow the changes of the english bundle minimum game version: 147 -> 154

* Translation: Update bundle_hu.properties

fix typo (add missing letter)
2025-12-17 19:02:39 -05:00
Anuken
87399ef1a9 Bigger liquid capacity for reconstructors 2025-12-17 18:55:07 -05:00
Anuken
670e9467da Flare nerf / More liquid capacity increase considerations 2025-12-17 18:51:24 -05:00
EggleEgg
425b154e3b I bet this will break shit somewhere (#11292) 2025-12-17 18:32:53 -05:00
Anuken
8d734d70cd arc 2025-12-17 14:55:49 -05:00
Anuken
48d3329b07 Merge remote-tracking branch 'origin/master' 2025-12-17 14:54:29 -05:00
Anuken
6986bcbf90 Possible crash fix 2025-12-17 14:54:23 -05:00
Anuken
c30e3d2cd7 Fixed iOS building with intelliJ plugin 2025-12-17 14:14:38 -05:00
Anuken
a552908d76 Java mod minGameVersion increased 2025-12-17 10:49:51 -05:00
Anuken
4f0ebdc4f3 Updating android natives with new alignment 2025-12-17 10:08:52 -05:00
Anuken
9b9c7d5f5a Merge remote-tracking branch 'origin/master' 2025-12-16 23:57:57 -05:00
Anuken
5b74ef6e65 Unused bullet volume code cleanup 2025-12-16 23:57:31 -05:00
BalaM314
3343c02997 Remove debug message (#11453)
this must have slipped through in development, it is in the released version v154
2025-12-16 23:56:01 -05:00
18 changed files with 377 additions and 368 deletions

View File

@@ -452,9 +452,10 @@ configure([":core", ":server"].collect{project(it)}){
publications{ publications{
maven(MavenPublication){ maven(MavenPublication){
from components.java from components.java
if(project.name == "core"){ //TODO: uncomment this once the jitpack packing is fixed (currently depends on a newer glibc version)
artifact(tasks.named("assetsJar")) //if(project.name == "core"){
} // artifact(tasks.named("assetsJar"))
//}
} }
} }
} }

View File

@@ -160,7 +160,7 @@ mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies mod.incompletedependencies = [red]Incomplete Dependencies
mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function. mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function.
mod.incompatiblemod.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 147[] to its [accent]mod.json[] file. mod.incompatiblemod.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 154[] to its [accent]mod.json[] file.
mod.blacklisted.details = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it. mod.blacklisted.details = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it.
mod.missingdependencies.details = This mod is missing dependencies: {0} mod.missingdependencies.details = This mod is missing dependencies: {0}
mod.erroredcontent.details = This mod caused errors when loading. Ask the mod author to fix them. mod.erroredcontent.details = This mod caused errors when loading. Ask the mod author to fix them.

File diff suppressed because it is too large Load Diff

View File

@@ -160,7 +160,7 @@ mod.circulardependencies = [red]Körkörös függőségek
mod.incompletedependencies = [red]Hiányos függőségek mod.incompletedependencies = [red]Hiányos függőségek
mod.requiresversion.details = Szükséges játékverzió: [accent]{0}[]\nA játék ezen verziója elavult. A mod működéséhez újabb verzió szükséges (valószínűleg egy béta vagy alfa kiadás). mod.requiresversion.details = Szükséges játékverzió: [accent]{0}[]\nA játék ezen verziója elavult. A mod működéséhez újabb verzió szükséges (valószínűleg egy béta vagy alfa kiadás).
mod.incompatiblemod.details = Ez a mod nem kompatibilis a játék legújabb verziójával. A mod készítőjének frissítenie kell azt és hozzá kell adnia a következőt a [accent]mod.json[] fájlhoz: [accent]minGameVersion: 147[]. mod.incompatiblemod.details = Ez a mod nem kompatibilis a játék legújabb verziójával. A mod készítőjének frissítenie kell azt és hozzá kell adnia a következőt a [accent]mod.json[] fájlhoz: [accent]minGameVersion: 154[].
mod.blacklisted.details = Ezt a modot a Mindustry fejlesztői kézzel tiltólistára tették, mert a játék összeomlott tőle, vagy más problémát okozott. Ne használd. mod.blacklisted.details = Ezt a modot a Mindustry fejlesztői kézzel tiltólistára tették, mert a játék összeomlott tőle, vagy más problémát okozott. Ne használd.
mod.missingdependencies.details = Ez a mod függőségeket hiányol: {0} mod.missingdependencies.details = Ez a mod függőségeket hiányol: {0}
mod.erroredcontent.details = Ez a mod hibákat okozott a betöltésnél. Kérd meg a mod készítőjét, hogy javítsa őket. mod.erroredcontent.details = Ez a mod hibákat okozott a betöltésnél. Kérd meg a mod készítőjét, hogy javítsa őket.
@@ -501,7 +501,7 @@ waves.team = Csapat
waves.remove = Eltávolítás waves.remove = Eltávolítás
waves.every = minden waves.every = minden
waves.waves = hullámonként waves.waves = hullámonként
waves.health = élet: {0}% waves.health = életpontok: {0}%
waves.perspawn = kezdőpontonként waves.perspawn = kezdőpontonként
waves.shields = erőpajzs/hullám waves.shields = erőpajzs/hullám
waves.to = - waves.to = -
@@ -522,7 +522,7 @@ waves.none = Nincs ellenség megadva.\nVedd figyelembe, hogy az üresen hagyott
waves.sort = Rendezési szempont waves.sort = Rendezési szempont
waves.sort.reverse = Rendezés visszafelé waves.sort.reverse = Rendezés visszafelé
waves.sort.begin = Kezdés waves.sort.begin = Kezdés
waves.sort.health = Élet waves.sort.health = Életpontok
waves.sort.type = Típus waves.sort.type = Típus
waves.search = Hullám keresése… waves.search = Hullám keresése…
waves.filter = Egységszűrő waves.filter = Egységszűrő
@@ -850,7 +850,7 @@ difficulty.normal = Normál
difficulty.hard = Nehéz difficulty.hard = Nehéz
difficulty.eradication = Irtózatos difficulty.eradication = Irtózatos
difficulty.enemyHealthMultiplier = Ellenség életereje: {0} difficulty.enemyHealthMultiplier = Ellenség életpontjai: {0}
difficulty.enemySpawnMultiplier = Ellenségek száma: {0} difficulty.enemySpawnMultiplier = Ellenségek száma: {0}
difficulty.waveTimeMultiplier = Hullámidőzítő: {0} difficulty.waveTimeMultiplier = Hullámidőzítő: {0}
difficulty.nomodifiers = [lightgray](Nincsenek módosítók) difficulty.nomodifiers = [lightgray](Nincsenek módosítók)
@@ -1067,7 +1067,7 @@ stat.inaccuracy = Pontatlanság
stat.shots = Lövések stat.shots = Lövések
stat.reload = Tüzelési sebesség stat.reload = Tüzelési sebesség
stat.ammo = Lőszer stat.ammo = Lőszer
stat.shieldhealth = Erőpajzs életereje stat.shieldhealth = Erőpajzs életpontjai
stat.cooldowntime = Újratöltés időtartama stat.cooldowntime = Újratöltés időtartama
stat.regenerationrate = Regenerálási sebesség stat.regenerationrate = Regenerálási sebesség
stat.explosiveness = Robbanékonyság stat.explosiveness = Robbanékonyság
@@ -1091,7 +1091,7 @@ stat.flying = Repül
stat.ammouse = Lőszerhasználat stat.ammouse = Lőszerhasználat
stat.ammocapacity = Lőszerkapacitás stat.ammocapacity = Lőszerkapacitás
stat.damagemultiplier = Sebzésszorzó stat.damagemultiplier = Sebzésszorzó
stat.healthmultiplier = Életerőszorzó stat.healthmultiplier = Életpontszorzó
stat.speedmultiplier = Sebességszorzó stat.speedmultiplier = Sebességszorzó
stat.reloadmultiplier = Újratöltési szorzó stat.reloadmultiplier = Újratöltési szorzó
stat.buildspeedmultiplier = Építési sebességszorzó stat.buildspeedmultiplier = Építési sebességszorzó
@@ -1122,7 +1122,7 @@ ability.energyfield = Energiamező
ability.energyfield.description = Megrázza a közeli ellenségeket ability.energyfield.description = Megrázza a közeli ellenségeket
ability.energyfield.healdescription = Megrázza a közeli ellenségeket, és gyógyítja a szövetségeseket ability.energyfield.healdescription = Megrázza a közeli ellenségeket, és gyógyítja a szövetségeseket
ability.regen = Regeneráció ability.regen = Regeneráció
ability.regen.description = Idővel regenerálja a saját életerejét ability.regen.description = Idővel regenerálja a saját életpontjait
ability.liquidregen = Folyadékelnyelés ability.liquidregen = Folyadékelnyelés
ability.liquidregen.description = Folyadékot nyel el, hogy gyógyítsa magát ability.liquidregen.description = Folyadékot nyel el, hogy gyógyítsa magát
ability.spawndeath = Szétesés ability.spawndeath = Szétesés
@@ -1131,12 +1131,12 @@ ability.liquidexplode = Szétömlés
ability.liquidexplode.description = Megsemmisülésekor folyadék ömlik ki belőle ability.liquidexplode.description = Megsemmisülésekor folyadék ömlik ki belőle
ability.stat.firingrate = [stat]{0}/mp[lightgray] tüzelési sebesség ability.stat.firingrate = [stat]{0}/mp[lightgray] tüzelési sebesség
ability.stat.regen = [stat]{0}[lightgray] életerő/mp ability.stat.regen = [stat]{0}[lightgray] életpont/mp
ability.stat.pulseregen = [stat]{0}[lightgray] életerő/impulzus ability.stat.pulseregen = [stat]{0}[lightgray] életpont/impulzus
ability.stat.shield = [stat]{0}[lightgray] maximális pajzs ability.stat.shield = [stat]{0}[lightgray] maximális pajzs
ability.stat.repairspeed = [stat]{0}/mp[lightgray] javítási sebesség ability.stat.repairspeed = [stat]{0}/mp[lightgray] javítási sebesség
ability.stat.deflectchance = [stat]{0}%[lightgray] hárítási esély ability.stat.deflectchance = [stat]{0}%[lightgray] hárítási esély
ability.stat.slurpheal = [stat]{0}[lightgray] életerő/folyadékegység ability.stat.slurpheal = [stat]{0}[lightgray] életpont/folyadékegység
ability.stat.cooldown = [stat]{0} mp[lightgray] újratöltődés ability.stat.cooldown = [stat]{0} mp[lightgray] újratöltődés
ability.stat.maxtargets = [stat]{0}[lightgray] célpont (legfeljebb) ability.stat.maxtargets = [stat]{0}[lightgray] célpont (legfeljebb)
ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] javítási mennyiség (azonos típusnál) ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] javítási mennyiség (azonos típusnál)
@@ -1223,7 +1223,7 @@ unit.perminute = /perc
unit.timesspeed = x sebesség unit.timesspeed = x sebesség
unit.multiplier = x unit.multiplier = x
unit.percent = % unit.percent = %
unit.shieldhealth = erőpajzs életereje unit.shieldhealth = erőpajzs életpontjai
unit.items = nyersanyag unit.items = nyersanyag
unit.thousands = k unit.thousands = k
unit.millions = mil unit.millions = mil
@@ -2328,7 +2328,7 @@ block.ripple.description = Lövedékek csoportjával tüzel nagy távolságra l
block.cyclone.description = Robbanó lövedékeket lő közeli ellenségekre. block.cyclone.description = Robbanó lövedékeket lő közeli ellenségekre.
block.spectre.description = Nagy lövedékekkel tüzel légi és földi célpontokra. block.spectre.description = Nagy lövedékekkel tüzel légi és földi célpontokra.
block.meltdown.description = Feltöltődés után folyamatos lézersugarat lő a közeli ellenségekre. A működéséhez hűtőfolyadékot igényel. block.meltdown.description = Feltöltődés után folyamatos lézersugarat lő a közeli ellenségekre. A működéséhez hűtőfolyadékot igényel.
block.foreshadow.description = Egy nagy villámot lő ki egy nagy távolságra lévő célpontra. A magasabb maximális életerővel rendelkező ellenségeket részesíti előnyben. block.foreshadow.description = Egy nagy villámot lő ki egy nagy távolságra lévő célpontra. A magasabb maximális életponttal rendelkező ellenségeket részesíti előnyben.
block.repair-point.description = Folyamatosan javítja a hatósugarában lévő legközelebbi sérült egységet. block.repair-point.description = Folyamatosan javítja a hatósugarában lévő legközelebbi sérült egységet.
block.segment.description = Megsemmisíti a beérkező lövedékeket, de a lézerrel szemben hatástalan. block.segment.description = Megsemmisíti a beérkező lövedékeket, de a lézerrel szemben hatástalan.
block.parallax.description = Vonósugarat bocsát ki, amivel magához vonzza, és közben sebzi a légi egységeket. block.parallax.description = Vonósugarat bocsát ki, amivel magához vonzza, és közben sebzi a légi egységeket.
@@ -2466,8 +2466,8 @@ unit.vela.description = Folyamatos lézernyalábot bocsát ki, amelyek sebzik az
unit.corvus.description = Hatalmas lézersugarat lő, amelyek sebzik az ellenséges célpontokat, és megjavítják a szövetséges épületeket. Átlépi a legtöbb terepakadályt. unit.corvus.description = Hatalmas lézersugarat lő, amelyek sebzik az ellenséges célpontokat, és megjavítják a szövetséges épületeket. Átlépi a legtöbb terepakadályt.
unit.crawler.description = Az ellenséghez rohan és megsemmisíti önmagát, nagy robbanást okozva. unit.crawler.description = Az ellenséghez rohan és megsemmisíti önmagát, nagy robbanást okozva.
unit.atrax.description = Bénító salakgolyókat lő a földi célpontokra. A legtöbb terepakadályt átlépi. unit.atrax.description = Bénító salakgolyókat lő a földi célpontokra. A legtöbb terepakadályt átlépi.
unit.spiroct.description = Lézersugarakkal elszívja az ellenséges célpontok életerejét, miközben javítja önmagát. A legtöbb terepakadályt átlépi. unit.spiroct.description = Lézersugarakkal elszívja az ellenséges célpontok életpontjait, miközben javítja önmagát. A legtöbb terepakadályt átlépi.
unit.arkyid.description = Nagy lézersugarakkal elszívja az ellenséges célpontok életerejét, miközben javítja önmagát. A legtöbb terepakadályt átlépi. unit.arkyid.description = Nagy lézersugarakkal elszívja az ellenséges célpontok életpontjait, miközben javítja önmagát. A legtöbb terepakadályt átlépi.
unit.toxopid.description = Kazettás elektromos bombákat és átütő erejű lézert lő az ellenségre. A legtöbb terepakadályt átlépi. unit.toxopid.description = Kazettás elektromos bombákat és átütő erejű lézert lő az ellenségre. A legtöbb terepakadályt átlépi.
unit.flare.description = Szokásos lövedékeket lő közeli földi célpontokra. unit.flare.description = Szokásos lövedékeket lő közeli földi célpontokra.
unit.horizon.description = Kazettás bombákat szór földi célpontokra. unit.horizon.description = Kazettás bombákat szór földi célpontokra.

View File

@@ -469,7 +469,7 @@ editor.generation = Tạo ra
editor.objectives = Mục tiêu nhiệm vụ editor.objectives = Mục tiêu nhiệm vụ
editor.locales = Gói ngôn ngữ editor.locales = Gói ngôn ngữ
editor.patches.guide = Hướng Dẫn Bản Vá editor.patches.guide = Hướng Dẫn Bản Vá
editor.patches = Bản Vá Nội Dung editor.patches = Bản Vá Dữ Liệu
editor.patch = Bộ vá: {0} editor.patch = Bộ vá: {0}
editor.patches.none = [lightgray]Không có bản vá nào được nạp. editor.patches.none = [lightgray]Không có bản vá nào được nạp.
editor.patches.errors = Lỗi Bộ Vá editor.patches.errors = Lỗi Bộ Vá
@@ -811,7 +811,7 @@ sectors.wave = Đợt:
sectors.stored = Lưu trữ: sectors.stored = Lưu trữ:
sectors.resume = Tiếp tục sectors.resume = Tiếp tục
sectors.launch = Phóng sectors.launch = Phóng
sectors.nolaunchcandidate = No Launch Sector sectors.nolaunchcandidate = Phân Khu Không Phóng
sectors.viewsubmission = \ue80d Xem Bản đệ trình sectors.viewsubmission = \ue80d Xem Bản đệ trình
sectors.select = Chọn sectors.select = Chọn
sectors.launchselect = Chọn đích phóng sectors.launchselect = Chọn đích phóng
@@ -820,12 +820,12 @@ sectors.redirect = Chuyển hướng bệ phóng
sectors.rename = Đổi tên phân khu sectors.rename = Đổi tên phân khu
sectors.enemybase = [scarlet]Căn cứ địch sectors.enemybase = [scarlet]Căn cứ địch
sectors.vulnerable = [scarlet]Dễ bị tổn thất sectors.vulnerable = [scarlet]Dễ bị tổn thất
sectors.underattack = [scarlet]Đang bị tấn công! [accent]{0}% tổn thất sectors.underattack = [scarlet]Đang bị tấn công!
sectors.go = Đi sectors.go = Đi
sector.abandon = Rời bỏ sector.abandon = Rời bỏ
sector.abandon.confirm = Những lõi ở đây sẽ tự huỷ.\nTiếp tục chứ? sector.abandon.confirm = Những lõi ở đây sẽ tự huỷ.\nTiếp tục chứ?
sector.curcapture = Phân khu đã được chiếm sector.curcapture = Phân khu đã được chiếm
sector.lockdown = [red]:warning:[accent] Sector currently under attack\n[lightgray]production, research, export and import disabled sector.lockdown = [red]:warning:[accent] Phân khu hiện đang bị tấn công\n[lightgray]sản xuất, nghiên cứu, xuất và nhập bị vô hiệu
sector.curlost = Phân khu đã bị mất sector.curlost = Phân khu đã bị mất
sector.missingresources = [scarlet]Không đủ tài nguyên lõi sector.missingresources = [scarlet]Không đủ tài nguyên lõi
sector.attacked = Phân khu [accent]{0}[white] đang bị tấn công! sector.attacked = Phân khu [accent]{0}[white] đang bị tấn công!
@@ -1028,8 +1028,8 @@ stat.frequency = Tần suất
stat.targetsair = Mục tiêu trên không stat.targetsair = Mục tiêu trên không
stat.targetsground = Mục tiêu mặt đất stat.targetsground = Mục tiêu mặt đất
stat.crushdamage = Sát thương nghiền nát stat.crushdamage = Sát thương nghiền nát
stat.legsplashdamage = Leg Splash Damage stat.legsplashdamage = Sát Thương Lan Tỏa Từ Chân
stat.legsplashrange = Leg Splash Range stat.legsplashrange = Tầm Lan Tỏa Từ Chân
stat.itemsmoved = Tốc độ dịch chuyển stat.itemsmoved = Tốc độ dịch chuyển
stat.launchtime = Thời gian giữa các lần phóng stat.launchtime = Thời gian giữa các lần phóng
stat.shootrange = Phạm vi stat.shootrange = Phạm vi
@@ -1069,7 +1069,7 @@ stat.reload = Tốc độ bắn
stat.ammo = Đạn stat.ammo = Đạn
stat.shieldhealth = Độ bền khiên stat.shieldhealth = Độ bền khiên
stat.cooldowntime = Thời gian hồi phục stat.cooldowntime = Thời gian hồi phục
stat.regenerationrate = Regeneration Rate stat.regenerationrate = Tốc Độ Hồi Phục
stat.explosiveness = Gây nổ stat.explosiveness = Gây nổ
stat.basedeflectchance = Tỷ lệ phản đạn stat.basedeflectchance = Tỷ lệ phản đạn
stat.lightningchance = Tỷ lệ phóng điện stat.lightningchance = Tỷ lệ phóng điện
@@ -1179,7 +1179,7 @@ bar.launchcooldown = Hồi phóng
bar.input = Đầu vào bar.input = Đầu vào
bar.output = Đầu ra bar.output = Đầu ra
bar.strength = [stat]{0}[lightgray]x sức mạnh bar.strength = [stat]{0}[lightgray]x sức mạnh
bar.regenerationrate = [stat]{0}/sec[lightgray] regen rate bar.regenerationrate = [stat]{0}/sec[lightgray] tốc độ hồi phục
units.processorcontrol = [lightgray]Điều khiển bởi bộ xử lý units.processorcontrol = [lightgray]Điều khiển bởi bộ xử lý
@@ -1230,7 +1230,7 @@ unit.millions = tr
unit.billions = tỷ unit.billions = tỷ
unit.shots = phát bắn unit.shots = phát bắn
unit.pershot = /phát bắn unit.pershot = /phát bắn
unit.perleg = per leg unit.perleg = mỗi chân
category.purpose = Mục đích category.purpose = Mục đích
category.general = Chung category.general = Chung
category.power = Năng lượng category.power = Năng lượng

View File

@@ -50,7 +50,7 @@ public class Vars implements Loadable{
/** Min game version for all mods. */ /** Min game version for all mods. */
public static final int minModGameVersion = 136; public static final int minModGameVersion = 136;
/** Min game version for java mods specifically - this is higher, as Java mods have more breaking changes. */ /** Min game version for java mods specifically - this is higher, as Java mods have more breaking changes. */
public static final int minJavaModGameVersion = 147; public static final int minJavaModGameVersion = 154;
/** If true, a button to view sector submission threads is shown. */ /** If true, a button to view sector submission threads is shown. */
public static boolean showSectorSubmissions = true; public static boolean showSectorSubmissions = true;
/** If true, the BE server list is always used. */ /** If true, the BE server list is always used. */

View File

@@ -6196,7 +6196,7 @@ public class Blocks{
airFactory = new UnitFactory("air-factory"){{ airFactory = new UnitFactory("air-factory"){{
requirements(Category.units, with(Items.copper, 60, Items.lead, 70)); requirements(Category.units, with(Items.copper, 60, Items.lead, 70));
plans = Seq.with( plans = Seq.with(
new UnitPlan(UnitTypes.flare, 60f * 15, with(Items.silicon, 15)), new UnitPlan(UnitTypes.flare, 60f * 15, with(Items.silicon, 20)),
new UnitPlan(UnitTypes.mono, 60f * 35, with(Items.silicon, 30, Items.lead, 15)) new UnitPlan(UnitTypes.mono, 60f * 35, with(Items.silicon, 30, Items.lead, 15))
); );
size = 3; size = 3;
@@ -6265,7 +6265,6 @@ public class Blocks{
createSound = Sounds.unitCreateBig; createSound = Sounds.unitCreateBig;
constructTime = 60f * 60f * 1.5f; constructTime = 60f * 60f * 1.5f;
liquidCapacity = 60f;
upgrades.addAll( upgrades.addAll(
new UnitType[]{UnitTypes.zenith, UnitTypes.antumbra}, new UnitType[]{UnitTypes.zenith, UnitTypes.antumbra},
@@ -6287,7 +6286,6 @@ public class Blocks{
consumeLiquid(Liquids.cryofluid, 3f); consumeLiquid(Liquids.cryofluid, 3f);
constructTime = 60f * 60f * 4; constructTime = 60f * 60f * 4;
liquidCapacity = 180f;
createSound = Sounds.unitCreateBig; createSound = Sounds.unitCreateBig;
upgrades.addAll( upgrades.addAll(

View File

@@ -1079,10 +1079,11 @@ public class UnitTypes{
shoot.shotDelay = 3f; shoot.shotDelay = 3f;
ejectEffect = Fx.casing1; ejectEffect = Fx.casing1;
mirror = false; mirror = false;
bullet = new BasicBulletType(2.5f, 16){{ bullet = new BasicBulletType(2.5f, 9){{
inaccuracy = 4f;
width = 7f; width = 7f;
height = 9f; height = 9f;
lifetime = 45f; lifetime = 32f;
shootEffect = Fx.shootSmall; shootEffect = Fx.shootSmall;
smokeEffect = Fx.shootSmallSmoke; smokeEffect = Fx.shootSmallSmoke;
ammoMultiplier = 2; ammoMultiplier = 2;
@@ -1525,6 +1526,7 @@ public class UnitTypes{
mixColorTo = Color.white; mixColorTo = Color.white;
hitSound = Sounds.explosionQuad; hitSound = Sounds.explosionQuad;
hitSoundVolume = 0.9f;
shootCone = 180f; shootCone = 180f;
ejectEffect = Fx.none; ejectEffect = Fx.none;

View File

@@ -15,7 +15,7 @@ import static mindustry.Vars.*;
public class StatusFieldAbility extends Ability{ public class StatusFieldAbility extends Ability{
public StatusEffect effect; public StatusEffect effect;
public float duration = 60, reload = 100, range = 20; // public float duration = 60, reload = 100, range = 20;
public boolean onShoot = false; public boolean onShoot = false;
public Effect applyEffect = Fx.none; public Effect applyEffect = Fx.none;
public Effect activeEffect = Fx.overdriveWave; public Effect activeEffect = Fx.overdriveWave;

View File

@@ -25,9 +25,6 @@ public class BasicBulletType extends BulletType{
public BasicBulletType(float speed, float damage, String bulletSprite){ public BasicBulletType(float speed, float damage, String bulletSprite){
super(speed, damage); super(speed, damage);
this.sprite = bulletSprite; this.sprite = bulletSprite;
hitSoundPitchRange = 0.2f;
hitSoundVolume = 0.4f;
} }
public BasicBulletType(float speed, float damage){ public BasicBulletType(float speed, float damage){

View File

@@ -169,7 +169,7 @@ public class FloorRenderer{
//loop through all layers, and add layer index if it exists //loop through all layers, and add layer index if it exists
for(int i = 0; i < layers; i++){ for(int i = 0; i < layers; i++){
if(chunk[i] != null && i != CacheLayer.walls.id && chunk[i].bounds.overlaps(bounds)){ if(i < chunk.length && chunk[i] != null && i != CacheLayer.walls.id && chunk[i].bounds.overlaps(bounds)){
drawnLayerSet.add(i); drawnLayerSet.add(i);
} }
} }

View File

@@ -72,8 +72,6 @@ public class DataPatcher{
contentLoader = Vars.content.copy(); contentLoader = Vars.content.copy();
patches.clear(); patches.clear();
Log.info(patchArray.toString("\n"));
for(String patch : patchArray){ for(String patch : patchArray){
PatchSet set = new PatchSet(patch, new JsonValue("error")); PatchSet set = new PatchSet(patch, new JsonValue("error"));
patches.add(set); patches.add(set);

View File

@@ -70,8 +70,8 @@ public class Block extends UnlockableContent implements Senseable{
public boolean separateItemCapacity = false; public boolean separateItemCapacity = false;
/** maximum items this block can carry (usually, this is per-type of item) */ /** maximum items this block can carry (usually, this is per-type of item) */
public int itemCapacity = 10; public int itemCapacity = 10;
/** maximum total liquids this block can carry if hasLiquids = true */ /** maximum total liquids this block can carry if hasLiquids = true. Default value is 10, scales with max liquid consumption in ConsumeLiquid */
public float liquidCapacity = 10f; public float liquidCapacity = -1f;
/** higher numbers increase liquid output speed; TODO remove and replace with better liquids system */ /** higher numbers increase liquid output speed; TODO remove and replace with better liquids system */
public float liquidPressure = 1f; public float liquidPressure = 1f;
/** If true, this block outputs to its facing direction, when applicable. /** If true, this block outputs to its facing direction, when applicable.
@@ -1327,6 +1327,21 @@ public class Block extends UnlockableContent implements Senseable{
lightClipSize = Math.max(lightClipSize, size * 30f * 2f); lightClipSize = Math.max(lightClipSize, size * 30f * 2f);
} }
//some blocks don't have hasLiquids, but have liquid consumers/liquid capacity
if(liquidCapacity < 0){
float consumeAmount = 1f;
for(var cons : consumeBuilder){
if(cons instanceof ConsumeLiquidBase liq){
consumeAmount = Math.max(consumeAmount, liq.amount * 60f);
}else if(cons instanceof ConsumeLiquids liq){
for(var stack : liq.liquids){
consumeAmount = Math.max(consumeAmount, stack.amount * 60f);
}
}
}
liquidCapacity = Mathf.round(10f * consumeAmount);
}
if(emitLight){ if(emitLight){
lightClipSize = Math.max(lightClipSize, lightRadius * 2f); lightClipSize = Math.max(lightClipSize, lightRadius * 2f);
} }

View File

@@ -155,7 +155,6 @@ public class Turret extends ReloadTurret{
public Turret(String name){ public Turret(String name){
super(name); super(name);
liquidCapacity = 20f;
outlinedIcon = 1; outlinedIcon = 1;
drawLiquidLight = false; drawLiquidLight = false;
sync = true; sync = true;

View File

@@ -79,7 +79,6 @@ public class Drill extends Block{
solid = true; solid = true;
group = BlockGroup.drills; group = BlockGroup.drills;
hasLiquids = true; hasLiquids = true;
liquidCapacity = 5f;
hasItems = true; hasItems = true;
ambientSound = Sounds.loopDrill; ambientSound = Sounds.loopDrill;
ambientSoundVolume = 0.019f; ambientSoundVolume = 0.019f;

View File

@@ -26,4 +26,4 @@ org.gradle.caching=true
org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.socketTimeout=100000
org.gradle.internal.http.connectionTimeout=100000 org.gradle.internal.http.connectionTimeout=100000
android.enableR8.fullMode=false android.enableR8.fullMode=false
archash=46c0956944 archash=ec5df18e54

View File

@@ -4,7 +4,7 @@ buildscript{
} }
dependencies{ dependencies{
classpath "com.mobidevelop.robovm:robovm-gradle-plugin:2.3.23" classpath "com.mobidevelop.robovm:robovm-gradle-plugin:2.3.24"
} }
} }
@@ -20,7 +20,7 @@ task incrementConfig{
}else{ }else{
props['app.id'] = 'io.anuke.mindustry' props['app.id'] = 'io.anuke.mindustry'
props['app.version'] = '7.0' props['app.version'] = '7.0'
props['app.mainclass'] = 'mindustry.IOSLauncher' props['app.mainclass'] = 'mindustry.ios.IOSLauncher'
props['app.executable'] = 'IOSLauncher' props['app.executable'] = 'IOSLauncher'
props['app.name'] = 'Mindustry' props['app.name'] = 'Mindustry'
} }

View File

@@ -1,5 +1,5 @@
jdk: jdk:
- openjdk16 - openjdk17
before_install: before_install:
- wget https://github.com/sormuras/bach/raw/releases/11/install-jdk.sh - wget https://github.com/sormuras/bach/raw/releases/11/install-jdk.sh
- source install-jdk.sh --feature 17 - source install-jdk.sh --feature 17