From d3a78a9d423b6044b782e35d854592e846f8e1a1 Mon Sep 17 00:00:00 2001 From: Cubical box <67639725+BlueTheCube@users.noreply.github.com> Date: Tue, 2 Apr 2024 22:03:14 +0800 Subject: [PATCH 1/3] Fetching unit by type, build without type, and fixing a nullpointer crash (#9703) * Pluh * Pluh * Update LExecutor.java * fixed the null * Update LExecutor.java * I will point your null exception * is it null or nah * it is nah * Update LExecutor.java * Update LExecutor.java * null zero --- core/src/mindustry/logic/LExecutor.java | 14 +++++++++++--- core/src/mindustry/logic/LStatements.java | 8 +++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index ba9b194364..91cb4575e2 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -1363,13 +1363,21 @@ public class LExecutor{ TeamData data = t.data(); switch(type){ - case unit -> exec.setobj(result, i < 0 || i >= data.units.size ? null : data.units.get(i)); + case unit -> { + UnitType type = exec.obj(extra) instanceof UnitType u ? u : null; + if(type == null){ + exec.setobj(result, i < 0 || i >= data.units.size ? null : data.units.get(i)); + }else{ + var units = data.unitCache(type); + exec.setobj(result, units == null || i < 0 || i >= units.size ? null : units.get(i)); + } + } case player -> exec.setobj(result, i < 0 || i >= data.players.size || data.players.get(i).unit().isNull() ? null : data.players.get(i).unit()); case core -> exec.setobj(result, i < 0 || i >= data.cores.size ? null : data.cores.get(i)); case build -> { Block block = exec.obj(extra) instanceof Block b ? b : null; if(block == null){ - exec.setobj(result, null); + exec.setobj(result, i < 0 || i >= data.buildings.size ? null : data.buildings.get(i)); }else{ var builds = data.getBuildings(block); exec.setobj(result, i < 0 || i >= builds.size ? null : builds.get(i)); @@ -1380,7 +1388,7 @@ public class LExecutor{ if(type == null){ exec.setnum(result, data.units.size); }else{ - exec.setnum(result, data.unitsByType[type.id].size); + exec.setnum(result, data.unitCache(type) == null ? 0 : data.unitCache(type).size); } } case coreCount -> exec.setnum(result, data.cores.size); diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index 29dde175b5..31cce56e0c 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -1856,11 +1856,17 @@ public class LStatements{ fields(table, index, i -> index = i); } - if(type == FetchType.buildCount || type == FetchType.build || type == FetchType.unitCount){ + if(type == FetchType.buildCount || type == FetchType.build){ row(table); fields(table, "block", extra, i -> extra = i); } + + if(type == FetchType.unitCount || type == FetchType.unit){ + row(table); + + fields(table, "unit", extra, i -> extra = i); + } } @Override From 0c52385c6b435855c3fe1ab2a6a8636475acd400 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Mesk=C3=B3?= Date: Tue, 2 Apr 2024 16:06:23 +0200 Subject: [PATCH 2/3] Update Hungarian translation (#9694) * Update bundle_hu.properties I've translated the new strings. * Update bundle_hu.properties Requested change * Fixed capitalization --- core/assets/bundles/bundle_hu.properties | 72 ++++++++++++------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index bb618d854c..b501f41f78 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -832,7 +832,7 @@ sector.planetaryTerminal.description = A végső célpont.\n\nEzen a vízparti b sector.coastline.description = Ezen a helyen egy haditengerészeti egység technológiájának maradványait azonosították. Verd vissza az ellenséges támadásokat, foglald el ezt a szektort, és szerezd meg a technológiát. sector.navalFortress.description = Az ellenség bázist létesített egy távoli, természetes erődítményes szigeten. Pusztítsd el ezt az előőrsöt. Szerezd meg a fejlett hadihajó-technológiájukat, és fejleszd ki te is. -sector.onset.name = A Kezdet +sector.onset.name = A kezdet sector.aegis.name = Égisz sector.lake.name = Tó sector.intersect.name = Metszéspont @@ -866,7 +866,7 @@ sector.crevice.description = Ebben a szektorban az ellenség kegyetlen támadóe sector.siege.description = Ebben a szektorban két párhuzamos kanyon található, amelyek két irányból érkező támadásokat tesznek lehetővé.\nFejleszd ki a [accent]diciánt[], hogy még erősebb tankegységeket hozhass létre.\nVigyázat: ellenséges, nagy hatótávolságú rakéták észlelve. A rakéták a becsapódásuk előtt megsemmisíthetők. sector.crossroads.description = Az ellenséges támaszpontok ebben a szektorban változó terepviszonyok között alakultak ki. Ahhoz, hogy alkalmazkodni tudj, fejlessz ki különböző egységeket.\nEzenkívül egyes bázisokat pajzsok védenek. Találd ki, hogyan táplálják őket. sector.karst.description = Ez a szektor gazdag a nyersanyagokban, de amint egy új támaszpont leszáll, az ellenség megtámadja azt.\nHasználd ki a nyersanyagokat és fedezd fel a [accent]tóritkvarcot[]. -sector.origin.description = Az utolsó szektor, jelentős ellenséges jelenléttel.\nNem valószínű, hogy további fejlesztési lehetőségek maradtak – koncentrálj az ellenséges támaszpontok elpusztítására. +sector.origin.description = Az utolsó szektor, jelentős ellenséges jelenléttel.\nNem valószínű, hogy maradtak további fejlesztési lehetőségek – koncentrálj az ellenséges támaszpontok elpusztítására. status.burning.name = Égő status.freezing.name = Fagyos @@ -998,46 +998,46 @@ stat.immunities = Immunitások stat.healing = Gyógyulás ability.forcefield = Erőtér -ability.forcefield.description = Projects a force shield that absorbs bullets +ability.forcefield.description = Erőteret vetít ki, mely elnyeli a lövedékeket ability.repairfield = Javító mező -ability.repairfield.description = Repairs nearby units +ability.repairfield.description = Megjavítja a közeli egységeket ability.statusfield = Állapotmező -ability.statusfield.description = Applies a status effect to nearby units +ability.statusfield.description = Állapothatást alkalmaz a közeli egységekre ability.unitspawn = Gyár -ability.unitspawn.description = Constructs units +ability.unitspawn.description = Egységeket gyárt ability.shieldregenfield = Pajzsregeneráló mező -ability.shieldregenfield.description = Regenerates shields of nearby units +ability.shieldregenfield.description = Regenerálja a közeli egységek pajzsát ability.movelightning = Villámcsapás -ability.movelightning.description = Releases lightning while moving -ability.armorplate = Armor Plate -ability.armorplate.description = Reduces damage taken while shooting +ability.movelightning.description = Mozgás közben villámokat bocsát ki +ability.armorplate = Páncéllemez +ability.armorplate.description = Csökkenti a kapott sebzést lövés közben ability.shieldarc = Pajzs ív -ability.shieldarc.description = Projects a force shield in an arc that absorbs bullets +ability.shieldarc.description = Erőteret vetít ki egy ívben, mely elnyeli a lövedékeket ability.suppressionfield = Javítás elnyomása -ability.suppressionfield.description = Stops nearby repair buildings +ability.suppressionfield.description = Leállítja a közeli javítóépületeket ability.energyfield = Energiamező -ability.energyfield.description = Zaps nearby enemies -ability.energyfield.healdescription = Zaps nearby enemies and heals allies +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.regen = Regeneráció -ability.regen.description = Regenerates own health over time -ability.liquidregen = Liquid Absorption -ability.liquidregen.description = Absorbs liquid to heal itself -ability.spawndeath = Death Spawns -ability.spawndeath.description = Releases units on death -ability.liquidexplode = Death Spillage -ability.liquidexplode.description = Spills liquid on death -ability.stat.firingrate = [stat]{0}/sec[lightgray] firing rate -ability.stat.regen = [stat]{0}[lightgray] health/sec -ability.stat.shield = [stat]{0}[lightgray] shield -ability.stat.repairspeed = [stat]{0}/sec[lightgray] repair speed -ability.stat.slurpheal = [stat]{0}[lightgray] health/liquid unit -ability.stat.cooldown = [stat]{0} sec[lightgray] cooldown -ability.stat.maxtargets = [stat]{0}[lightgray] max targets -ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] same type repair amount -ability.stat.damagereduction = [stat]{0}%[lightgray] damage reduction -ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min speed -ability.stat.duration = [stat]{0} sec[lightgray] duration -ability.stat.buildtime = [stat]{0} sec[lightgray] build time +ability.regen.description = Idővel regenerálja a saját életerejét +ability.liquidregen = Folyadékelnyelés +ability.liquidregen.description = Folyadékot nyel el, hogy gyógyítsa magát +ability.spawndeath = Szétesés +ability.spawndeath.description = Megsemmisülésekor egységeket bocsát ki +ability.liquidexplode = Szétömlés +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.regen = [stat]{0}[lightgray] életerő/mp +ability.stat.shield = [stat]{0}[lightgray] pajzs +ability.stat.repairspeed = [stat]{0}/mp[lightgray] javítási sebesség +ability.stat.slurpheal = [stat]{0}[lightgray] életerő/folyadékegység +ability.stat.cooldown = [stat]{0} mp[lightgray] újratöltődés +ability.stat.maxtargets = [stat]{0}[lightgray] max. célpont +ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] javítási mennyiség (azonos típusnál) +ability.stat.damagereduction = [stat]{0}%[lightgray] sebzéscsökkentés +ability.stat.minspeed = [stat]{0} csempe/mp[lightgray] min. sebesség +ability.stat.duration = [stat]{0} mp[lightgray] időtartam +ability.stat.buildtime = [stat]{0} mp[lightgray] építési idő bar.onlycoredeposit = Csak a támaszpont elhelyezése megengedett bar.drilltierreq = Erősebb fúró szükséges @@ -1316,7 +1316,7 @@ rules.onlydepositcore = Csak a támaszpontok elhelyezése engedélyezett rules.derelictrepair = Az elhagyatott épületek javításának engedélyezése rules.reactorexplosions = Reaktorrobbanások rules.coreincinerates = Többletnyersanyagok megsemmisítése a támaszpontban -rules.disableworldprocessors = Világfeldolgozók letiltása +rules.disableworldprocessors = Világprocesszorok letiltása rules.schematic = Vázlatok engedélyezése rules.wavetimer = Hullámok időzítése rules.wavesending = Hullámok küldése @@ -1342,7 +1342,7 @@ rules.unitdamagemultiplier = Egység sebzésszorzója rules.unitcrashdamagemultiplier = Egység ütközési sebzésszorzója rules.solarmultiplier = Napenergia szorzója rules.unitcapvariable = A támaszpontok befolyásolják a gyártható egységek darabszámát -rules.unitpayloadsexplode = Carried Payloads Explode With The Unit +rules.unitpayloadsexplode = A szállított rakományok az egységgel együtt felrobbannak rules.unitcap = Alap egységdarabszám rules.limitarea = Játékterület korlátozása rules.enemycorebuildradius = Ellenséges támaszpont körüli tiltott zóna sugara:[lightgray] (csempe) @@ -2345,7 +2345,7 @@ lst.getblock = Csempeadatok lekérdezése tetszőleges helyen. lst.setblock = Csempeadatok beállítása tetszőleges helyen. lst.spawnunit = Egység lerakása az adott helyen. lst.applystatus = Állapothatás alkalmazása vagy törlése egy egységről. -lst.weathersense = Check if a type of weather is active. +lst.weathersense = Ellenőrzés, hogy egy bizonyos típusú időjárás aktív-e. lst.weatherset = Az időjárástípus jelenlegi állapotának megadása. lst.spawnwave = Egy hullám indítása. lst.explosion = Robbanás létrehozása az adott helyen. From 4d916f5b2394534598d3636595a2c422053f5359 Mon Sep 17 00:00:00 2001 From: Redstonneur1256 Date: Wed, 3 Apr 2024 00:52:02 +0200 Subject: [PATCH 3/3] Update servers_v7.json (#9704) --- servers_v7.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/servers_v7.json b/servers_v7.json index ce7a6765fb..58e1268346 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -269,10 +269,6 @@ "name": "Atomic", "address": ["atomic-de.ddns.net:35876", "atomic-de.ddns.net:35663", "atomic-de.ddns.net:35724", "atomic-de.ddns.net:35847"] }, - { - "name": "SkyPlex", - "address": ["mc-skyplex.net"] - }, { "name": "Gadgetroch's Server", "address": ["mindustry.gadgetroch.com", "mindustry.gadgetroch.com:6568", "mindustry.gadgetroch.com:6569"]